diff --git a/.github/workflows/mobile-lint.yml b/.github/workflows/mobile-lint.yml new file mode 100644 index 0000000000..b8be43d5a1 --- /dev/null +++ b/.github/workflows/mobile-lint.yml @@ -0,0 +1,40 @@ +name: Run Lint + +on: + push: + branches: + - main + paths: + - apps/mobile/** + - packages/store/** + pull_request: + paths: + - apps/mobile/** + - packages/store/** + +jobs: + lint: + runs-on: ubuntu-latest + + steps: + # Checkout the code + - name: Checkout code + uses: actions/checkout@v4 + + - name: Enable Corepack + run: corepack enable + + # Set up Node.js + - uses: actions/setup-node@v4 + with: + node-version: '22.11.0' # jod + cache: 'yarn' + + # Install dependencies + - name: Install dependencies + run: yarn install --immutable + + # Run tests with coverage + - name: Run lint + run: | + yarn workspace @safe-global/mobile run lint diff --git a/.github/workflows/mobile-unit-tests.yml b/.github/workflows/mobile-unit-tests.yml new file mode 100644 index 0000000000..3c7ae75b81 --- /dev/null +++ b/.github/workflows/mobile-unit-tests.yml @@ -0,0 +1,45 @@ +name: Run Tests and Coverage + +on: + push: + branches: + - main + paths: + - apps/mobile/** + pull_request: + paths: + - apps/mobile/** + +jobs: + test-and-coverage: + runs-on: ubuntu-latest + + steps: + # Checkout the code + - name: Checkout code + uses: actions/checkout@v4 + + - name: Enable Corepack + run: corepack enable + + # Set up Node.js + - uses: actions/setup-node@v4 + with: + node-version: '22.11.0' # jod + cache: 'yarn' + + # Install dependencies + - name: Install dependencies + run: yarn install --immutable + + # Run tests with coverage + - name: Run Jest tests with coverage + run: | + yarn workspace @safe-global/mobile test:coverage --coverageReporters=text --coverageReporters=json-summary | tee ./coverage.txt && exit ${PIPESTATUS[0]} + + - name: Jest Coverage Comment + uses: MishaKav/jest-coverage-comment@v1 + with: + coverage-summary-path: ./coverage/coverage-summary.json + coverage-title: Coverage + coverage-path: ./coverage.txt diff --git a/.gitignore b/.gitignore index ade4b1731e..a098bc6160 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,3 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - # dependencies /node_modules /.pnp @@ -23,6 +21,24 @@ *.pem .idea + + +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions + +# expo +**/.expo/* + +# next.js +**/.next/* + +# tamagui +**/.tamagui/* + # debug npm-debug.log* yarn-debug.log* @@ -30,7 +46,15 @@ yarn-error.log* .pnpm-debug.log* # local env files + .env*.local +.env +.env.local +.env.local* +.env.development.local +.env.test.local +.env.production.local +.env.production # vercel .vercel @@ -41,21 +65,11 @@ yarn-error.log* # yalc .yalc yalc.lock -.env -/cypress/videos -/cypress/screenshots -/cypress/downloads - -/public/sw.js -/public/sw.js.map -/public/worker-*.js -/public/workbox-*.js -/public/workbox-*.js.map -/public/fallback* -/public/*.js.LICENSE.txt certificates *storybook.log -# Yarn v4 -.yarn/* +THUMBS_DB +thumbs.db + +**/node_modules/* diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000000..2312dc587f --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +npx lint-staged diff --git a/.lintstagedrc.json b/.lintstagedrc.json new file mode 100644 index 0000000000..87ca0645ac --- /dev/null +++ b/.lintstagedrc.json @@ -0,0 +1,8 @@ +{ + "*.ts": ["yarn prettier:fix"], + "*.tsx": ["yarn prettier:fix"], + "apps/mobile/assets/fonts/safe-icons/selection.json": [ + "node ./apps/mobile/scripts/generateIconTypes.js", + "git add ./apps/mobile/src/types/iconTypes.ts" + ] +} diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000000..bd82d1908e --- /dev/null +++ b/.prettierignore @@ -0,0 +1,10 @@ +# Ignore artifacts: +build +coverage +node_modules +html +ios +android +/assets + +apps/mobile/assets diff --git a/apps/mobile/.eas/build/build-and-maestro-test.yml b/apps/mobile/.eas/build/build-and-maestro-test.yml new file mode 100644 index 0000000000..0ec7551af4 --- /dev/null +++ b/apps/mobile/.eas/build/build-and-maestro-test.yml @@ -0,0 +1,38 @@ +build: + name: Create a build and run Maestro tests on it + steps: + - eas/checkout + + - run: + name: Enable corepack + command: corepack enable + + # if you are not interested in using custom .npmrc config you can skip it + - eas/use_npm_token + + - eas/install_node_modules + + - eas/resolve_build_config + + - eas/prebuild + + - run: + name: Install pods + working_directory: ./ios + command: pod install + + # if you are not using EAS Update you can remove this step from your config + # https://docs.expo.dev/eas-update/introduction/ + - eas/configure_eas_update: + inputs: + throw_if_not_configured: false + + - eas/generate_gymfile_from_template + + - eas/run_fastlane + + - eas/find_and_upload_build_artifacts + - eas/maestro_test: + inputs: + flow_path: | + e2e/flow.yml diff --git a/apps/mobile/.gitignore b/apps/mobile/.gitignore new file mode 100644 index 0000000000..4453806e56 --- /dev/null +++ b/apps/mobile/.gitignore @@ -0,0 +1,37 @@ +node_modules/ +.expo/ +dist/ +npm-debug.* +*.jks +*.p8 +*.p12 +*.key +*.mobileprovision +*.orig.* +web-build/ + +# Auto generated storybook file +.storybook/storybook.requires.ts + +# From jest +html +coverage + +# macOS +.DS_Store + +# @generated expo-cli sync-2b81b286409207a5da26e14c78851eb30d8ccbdb +# The following patterns were generated by expo-cli + +expo-env.d.ts +# @end expo-cli +/.idea +# Tamagui UI generates a lot of cache files +.tamagui + +*storybook.log +/storybook-static + +# Android and iOS build files +/android/* +/ios/* diff --git a/apps/mobile/.storybook/index.ts b/apps/mobile/.storybook/index.ts new file mode 100644 index 0000000000..977e3d5151 --- /dev/null +++ b/apps/mobile/.storybook/index.ts @@ -0,0 +1,11 @@ +import AsyncStorage from '@react-native-async-storage/async-storage' +import { view } from './storybook.requires' + +const StorybookUIRoot = view.getStorybookUI({ + storage: { + getItem: AsyncStorage.getItem, + setItem: AsyncStorage.setItem, + }, +}) + +export default StorybookUIRoot diff --git a/apps/mobile/.storybook/main.ts b/apps/mobile/.storybook/main.ts new file mode 100644 index 0000000000..48923c9f74 --- /dev/null +++ b/apps/mobile/.storybook/main.ts @@ -0,0 +1,52 @@ +import type { StorybookConfig as WebStorybookConfig } from '@storybook/react-webpack5' +import type { StorybookConfig as RNStorybookConfig } from '@storybook/react-native' + +const isWeb = process.env.STORYBOOK_WEB +import path from 'path' +import TsconfigPathsPlugin from 'tsconfig-paths-webpack-plugin' + +let config: WebStorybookConfig | RNStorybookConfig + +if (isWeb) { + config = { + stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'], + addons: [ + '@storybook/addon-essentials', + '@storybook/addon-interactions', + { + name: '@storybook/addon-react-native-web', + options: { + projectRoot: '../', + modulesToTranspile: [], + }, + }, + '@storybook/addon-webpack5-compiler-babel', + ], + framework: { + name: '@storybook/react-webpack5', + options: {}, + }, + webpackFinal: async (config) => { + if (config.resolve) { + config.resolve.plugins = [ + ...(config.resolve.plugins || []), + new TsconfigPathsPlugin({ + extensions: config.resolve.extensions, + }), + ] + + config.resolve.alias = { + ...config.resolve.alias, + '@': path.resolve(__dirname, '../'), + } + } + return config + }, + } as WebStorybookConfig +} else { + config = { + stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'], + addons: ['@storybook/addon-ondevice-controls', '@storybook/addon-ondevice-actions'], + } as RNStorybookConfig +} +export default config diff --git a/apps/mobile/.storybook/preview.tsx b/apps/mobile/.storybook/preview.tsx new file mode 100644 index 0000000000..86f9a42021 --- /dev/null +++ b/apps/mobile/.storybook/preview.tsx @@ -0,0 +1,40 @@ +import type { Preview } from '@storybook/react' +import { NavigationIndependentTree } from '@react-navigation/native' +import { SafeThemeProvider } from '@/src/theme/provider/safeTheme' +import { View } from 'react-native' +import { SafeToastProvider } from '@/src/theme/provider/toastProvider' +import { SafeAreaProvider } from 'react-native-safe-area-context' +import { PortalProvider } from 'tamagui' + +const preview: Preview = { + parameters: { + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/, + }, + }, + }, + tags: ['autodocs'], + decorators: [ + (Story) => { + return ( + + + + + + + + + + + + + + ) + }, + ], +} + +export default preview diff --git a/apps/mobile/.storybook/tsconfig.json b/apps/mobile/.storybook/tsconfig.json new file mode 100644 index 0000000000..ee8b2aa390 --- /dev/null +++ b/apps/mobile/.storybook/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "module": "commonjs" + }, + "include": ["../src/**/*", "./**/*"] +} diff --git a/apps/mobile/CONTRIBUTING.md b/apps/mobile/CONTRIBUTING.md new file mode 100644 index 0000000000..691c29345b --- /dev/null +++ b/apps/mobile/CONTRIBUTING.md @@ -0,0 +1,69 @@ +# React Native Code Guidelines + +## Code Structure + +### General Components + +- Components that are used across multiple features should reside in the `src/components/` folder. +- Each component should have its own folder, structured as follows: + ``` + Alert/ + - Alert.tsx + - Alert.test.tsx + - Alert.stories.tsx + - index.tsx + ``` +- The main component implementation should be in a named file (e.g., `Alert.tsx`), and `index.tsx` should only be used for exporting the component. +- **Reason**: Using `index.tsx` allows for cleaner imports, e.g., + ``` + import { Alert } from 'src/components/Alert'; + ``` + instead of: + ``` + import { Alert } from 'src/components/Alert/Alert'; + ``` + +### Exporting Components + +- **Always prefer named exports over default exports.** + - Named exports make it easier to refactor and identify exports in a codebase. + +### Features and Screens + +- Feature-specific components and screens should be implemented inside the `src/features/` folder. + +#### Example: Feature File Structure + +For a feature called **Assets**, the file structure might look like this: + +``` +// src/features/Assets +- Assets.container.tsx +- index.tsx +``` + +- `index.tsx` should only export the **Assets** component/container. + +#### Subcomponents for Features + +- If a feature depends on multiple subcomponents unique to that feature, place them in a `components` subfolder. For example: + +``` +// src/features/Assets/components/AssetHeader +- AssetHeader.tsx +- AssetHeader.container.tsx +- index.tsx +``` + +### Presentation vs. Container Components + +- **Presentation Components**: + + - Responsible only for rendering the UI. + - Receive data and callbacks via props. + - Avoid direct manipulation of business logic. + - Simple business logic can be included but should generally be extracted into hooks. + +- **Container Components**: + - Handle business logic (e.g., state management, API calls, etc.). + - Pass necessary data and callbacks to the corresponding Presentation component. diff --git a/apps/mobile/README.md b/apps/mobile/README.md new file mode 100644 index 0000000000..d787ce30a2 --- /dev/null +++ b/apps/mobile/README.md @@ -0,0 +1,168 @@ +# Safe Mobile App 📱 + +This project is now part of the **@safe-global/safe-wallet** monorepo! The monorepo setup allows centralized management of multiple +applications and shared libraries. This workspace (`apps/mobile`) contains the Safe Mobile App. + +You can run commands for this workspace in two ways: + +1. **From the root of the monorepo using `yarn workspace` commands** +2. **From within the `apps/mobile` directory** + +## Prerequisites + +In the addition to the monorepo prerequisites, the mobile app requires the following: + +- Expo CLI +- iOS/Android Development Tools +- [Maestro](https://maestro.mobile.dev/) if you want to run E2E tests + +You can follow the [expo documentation](https://docs.expo.dev/get-started/set-up-your-environment/) to install the CLI and set up your development environment. + +Follow the [Maestro](https://maestro.mobile.dev/) documentation to install the tool for E2E testing. + +## Setup the Project + +1. Install all dependencies from the **root of the monorepo**: + +```bash +yarn install +``` + +## Running the App + +### Running on iOS + +From the root of the monorepo: + +```bash +yarn workspace @safe-global/mobile start:ios +``` + +Or directly from the `apps/mobile` directory: + +```bash +yarn start:ios +``` + +> [!NOTE] +> +> From now on for brevity we will only show the command to run from the root of the monorepo. You can always run the command from the `apps/mobile` directory you just need to omit the `workspace @safe-global/mobile`. + +### Running on Android + +From the root of the monorepo: + +```bash +yarn workspace @safe-global/mobile start:android +``` + +### How to Open the Custom DevTools Menu + +The app supports **Redux**, **RTK Query**, and **React DevTools**. To access these tools: + +1. Run the app. +2. In the terminal where the Expo server is running, press `Shift + M`. +3. Select the desired DevTools option for debugging. Happy debugging! 👨💻👩💻 + +## Running the Storybook + +### Running in the browse + +Run the storybook command from the root: + +```bash +yarn workspace @safe-global/mobile storybook:web +``` + +### Running on a mobile device + +To run the storybook on a mobile device: + +```bash +yarn workspace @safe-global/mobile storybook:[ios|android] +``` + +To View stories press `i` on iOS or `a` on Android. + +## How to Run the E2E Tests + +We use [Maestro](https://maestro.mobile.dev/) for E2E testing. Before running tests, install Maestro following the +documentation for your OS. + +### Run a Dev Build and E2E Tests + +To build the app for tests: + +#### For iOS: + +```bash +yarn workspace @safe-global/mobile e2e:metro-ios +``` + +#### For Android: + +```bash +yarn workspace @safe-global/mobile e2e:metro-android +``` + +These commands include `.e2e.ts|.e2e.tsx` files for mocking services or adding test-specific code. + +### Run the Tests + +In a second terminal run: + +```bash +yarn workspace @safe-global/mobile e2e:run +``` + +### Use Maestro Studio to Write Tests + +To write tests with Maestro Studio, run: + +```bash +maestro studio +``` + +Export the generated YAML file to the `e2e` folder and include it in the test suite. + +### Running E2E Tests in CI + +To run tests in CI, add the `eas-build-ios:build-and-maestro-test` label to a PR. This triggers the Expo CI pipeline to +execute the tests. + +## Unit Tests + +We use **Jest** and the [React Native Testing Library](https://callstack.github.io/react-native-testing-library/) for +unit, component, and hook tests. + +Run tests: + +```bash +yarn workspace @safe-global/mobile test +``` + +Run in watch mode: + +```bash +yarn workspace @safe-global/mobile test:watch +``` + +Check coverage: + +```bash +yarn workspace @safe-global/mobile test +``` + +Navigate to the `coverage` folder and open `index.html` in your browser. + +## Running ESLint & Prettier + +This project uses ESLint, Prettier, and TypeScript for linting and formatting. + +Run linting from the root: + +```bash +yarn workspace @safe-global/mobile lint +``` + +This command validates files with TypeScript, ESLint, and Prettier configurations. diff --git a/apps/mobile/__mocks__/fileMock.js b/apps/mobile/__mocks__/fileMock.js new file mode 100644 index 0000000000..0e56c5b5f7 --- /dev/null +++ b/apps/mobile/__mocks__/fileMock.js @@ -0,0 +1 @@ +module.exports = 'test-file-stub' diff --git a/apps/mobile/app.config.js b/apps/mobile/app.config.js new file mode 100644 index 0000000000..99c83043b9 --- /dev/null +++ b/apps/mobile/app.config.js @@ -0,0 +1,67 @@ +/* eslint-disable no-undef */ +const IS_DEV = process.env.APP_VARIANT === 'development' + +export default { + expo: { + name: IS_DEV ? 'Safe{Wallet} MVP - Development' : 'Safe{Wallet} MVP', + slug: 'safe-mobileapp', + owner: 'safeglobal', + version: '1.0.0', + extra: { + storybookEnabled: process.env.STORYBOOK_ENABLED, + eas: { + projectId: '27e9e907-8675-474d-99ee-6c94e7b83a5c', + }, + }, + orientation: 'portrait', + icon: './assets/images/icon.png', + scheme: 'myapp', + userInterfaceStyle: 'automatic', + newArchEnabled: true, + ios: { + config: { + usesNonExemptEncryption: false, + }, + supportsTablet: true, + appleTeamId: 'MXRS32BBL4', + bundleIdentifier: IS_DEV ? 'global.safe.mobileapp.dev' : 'global.safe.mobileapp', + }, + android: { + adaptiveIcon: { + foregroundImage: './assets/images/adaptive-icon.png', + backgroundColor: '#000000', + }, + package: IS_DEV ? 'global.safe.mobileapp.dev' : 'global.safe.mobileapp', + }, + web: { + bundler: 'metro', + output: 'static', + favicon: './assets/images/favicon.png', + }, + plugins: [ + 'expo-router', + [ + 'expo-font', + { + fonts: ['./assets/fonts/safe-icons/safe-icons.ttf'], + }, + ], + [ + 'expo-splash-screen', + { + image: './assets/images/splash.png', + enableFullScreenImage_legacy: true, + backgroundColor: '#000000', + dark: { + image: './assets/images/splash.png', + backgroundColor: '#000000', + }, + }, + ], + ['./expo-plugins/withDrawableAssets.js', './assets/android/drawable'], + ], + experiments: { + typedRoutes: true, + }, + }, +} diff --git a/apps/mobile/app/(tabs)/_layout.tsx b/apps/mobile/app/(tabs)/_layout.tsx new file mode 100644 index 0000000000..9810e0b327 --- /dev/null +++ b/apps/mobile/app/(tabs)/_layout.tsx @@ -0,0 +1,42 @@ +import { Tabs } from 'expo-router' +import React from 'react' +import { TabBarIcon } from '@/src/components/navigation/TabBarIcon' +import { Navbar as AssetsNavbar } from '@/src/features/Assets/components/Navbar/Navbar' + +export default function TabLayout() { + return ( + + , + }} + /> + + , + }} + /> + + { + return { + title: 'Settings', + headerShown: false, + tabBarButtonTestID: 'tabSettings', + tabBarIcon: ({ color }) => , + } + }} + /> + + ) +} diff --git a/apps/mobile/app/(tabs)/index.tsx b/apps/mobile/app/(tabs)/index.tsx new file mode 100644 index 0000000000..d160099bc8 --- /dev/null +++ b/apps/mobile/app/(tabs)/index.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import { AssetsContainer } from '@/src/features/Assets' + +const HomeScreen = () => { + return +} + +export default HomeScreen diff --git a/apps/mobile/app/(tabs)/settings.tsx b/apps/mobile/app/(tabs)/settings.tsx new file mode 100644 index 0000000000..413651cba9 --- /dev/null +++ b/apps/mobile/app/(tabs)/settings.tsx @@ -0,0 +1,5 @@ +import { SettingsContainer } from '@/src/features/Settings' + +export default function SettingsScreen() { + return +} diff --git a/apps/mobile/app/(tabs)/transactions/(tabs)/_layout.tsx b/apps/mobile/app/(tabs)/transactions/(tabs)/_layout.tsx new file mode 100644 index 0000000000..35623ec2b2 --- /dev/null +++ b/apps/mobile/app/(tabs)/transactions/(tabs)/_layout.tsx @@ -0,0 +1,54 @@ +import React from 'react' + +import { + MaterialTopTabNavigationEventMap, + MaterialTopTabNavigationOptions, + createMaterialTopTabNavigator, +} from '@react-navigation/material-top-tabs' +import { withLayoutContext } from 'expo-router' +import { ParamListBase, TabNavigationState } from '@react-navigation/native' +import { useTheme } from 'tamagui' + +const { Navigator } = createMaterialTopTabNavigator() + +export const MaterialTopTabs = withLayoutContext< + MaterialTopTabNavigationOptions, + typeof Navigator, + TabNavigationState, + MaterialTopTabNavigationEventMap +>(Navigator) + +export default function TransactionsLayout() { + const theme = useTheme() + + return ( + + + + + ) +} diff --git a/apps/mobile/app/(tabs)/transactions/(tabs)/index.tsx b/apps/mobile/app/(tabs)/transactions/(tabs)/index.tsx new file mode 100644 index 0000000000..a7053dae7c --- /dev/null +++ b/apps/mobile/app/(tabs)/transactions/(tabs)/index.tsx @@ -0,0 +1,10 @@ +import { TxHistoryContainer } from '@/src/features/TxHistory' +import { View } from 'react-native' + +export default function TransactionsScreen() { + return ( + + + + ) +} diff --git a/apps/mobile/app/(tabs)/transactions/(tabs)/messages.tsx b/apps/mobile/app/(tabs)/transactions/(tabs)/messages.tsx new file mode 100644 index 0000000000..1748ff3e15 --- /dev/null +++ b/apps/mobile/app/(tabs)/transactions/(tabs)/messages.tsx @@ -0,0 +1,41 @@ +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import { SafeListItem } from '@/src/components/SafeListItem' +import { formatWithSchema } from '@/src/utils/date' +import React from 'react' +import { ScrollView, Text, View } from 'tamagui' +import { SafeAreaView } from 'react-native-safe-area-context' +import { StyleSheet } from 'react-native' + +function Messages() { + return ( + + + + + + + + } + rightNode={ + + Success + + } + /> + + + + ) +} + +const styles = StyleSheet.create({ + wrapper: { + flex: 1, + flexDirection: 'column', + }, +}) + +export default Messages diff --git a/apps/mobile/app/(tabs)/transactions/_layout.tsx b/apps/mobile/app/(tabs)/transactions/_layout.tsx new file mode 100644 index 0000000000..21fc117898 --- /dev/null +++ b/apps/mobile/app/(tabs)/transactions/_layout.tsx @@ -0,0 +1,32 @@ +import { Stack } from 'expo-router' +import React from 'react' +import type { Route } from '@react-navigation/routers' + +import { getFocusedRouteNameFromRoute } from '@react-navigation/native' + +const getHeaderTitle = (route: Partial>) => { + const routeName = getFocusedRouteNameFromRoute(route) ?? 'index' + const name = { + ['index']: 'Transactions', + ['messages']: 'Messages', + }[routeName] + return name || 'Transactions' +} + +export default function TransactionsLayout() { + return ( + + ({ + headerTitle: getHeaderTitle(route), + })} + /> + + ) +} diff --git a/apps/mobile/app/+html.tsx b/apps/mobile/app/+html.tsx new file mode 100644 index 0000000000..3665df8e87 --- /dev/null +++ b/apps/mobile/app/+html.tsx @@ -0,0 +1,39 @@ +import { ScrollViewStyleReset } from 'expo-router/html' +import { type PropsWithChildren } from 'react' + +/** + * This file is web-only and used to configure the root HTML for every web page during static rendering. + * The contents of this function only run in Node.js environments and do not have access to the DOM or browser APIs. + */ +export default function Root({ children }: PropsWithChildren) { + return ( + + + + + + + {/* + Disable body scrolling on web. This makes ScrollView components work closer to how they do on native. + However, body scrolling is often nice to have for mobile web. If you want to enable it, remove this line. + */} + + + {/* Using raw CSS styles as an escape-hatch to ensure the background color never flickers in dark-mode. */} + + {/* Add any additional elements that you want globally available on web... */} + + {children} + + ) +} + +const responsiveBackground = ` +body { + background-color: #fff; +} +@media (prefers-color-scheme: dark) { + body { + background-color: #000; + } +}` diff --git a/apps/mobile/app/+not-found.tsx b/apps/mobile/app/+not-found.tsx new file mode 100644 index 0000000000..12fcba850b --- /dev/null +++ b/apps/mobile/app/+not-found.tsx @@ -0,0 +1,30 @@ +import { Link, Stack } from 'expo-router' +import { StyleSheet, View } from 'react-native' + +import { Text, H1 } from 'tamagui' + +export default function NotFoundScreen() { + return ( + <> + + + This screen doesn't exist. + + Go to home screen! + + + > + ) +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + alignItems: 'center', + justifyContent: 'center', + }, + link: { + marginTop: 15, + paddingVertical: 15, + }, +}) diff --git a/apps/mobile/app/_layout.tsx b/apps/mobile/app/_layout.tsx new file mode 100644 index 0000000000..356e3fc515 --- /dev/null +++ b/apps/mobile/app/_layout.tsx @@ -0,0 +1,76 @@ +import { Stack } from 'expo-router' +import 'react-native-reanimated' +import { SafeThemeProvider } from '@/src/theme/provider/safeTheme' +import { Provider } from 'react-redux' +import { persistor, store } from '@/src/store' +import { PersistGate } from 'redux-persist/integration/react' +import { isStorybookEnv } from '@/src/config/constants' +import { apiSliceWithChainsConfig } from '@safe-global/store/gateway/chains' +import { GestureHandlerRootView } from 'react-native-gesture-handler' +import { HeaderBackButton } from '@react-navigation/elements' +import { BottomSheetModalProvider } from '@gorhom/bottom-sheet' +import { PortalProvider } from '@tamagui/portal' +import { SafeToastProvider } from '@/src/theme/provider/toastProvider' +import { configureReanimatedLogger, ReanimatedLogLevel } from 'react-native-reanimated' +import { OnboardingHeader } from '@/src/features/Onboarding/components/OnboardingHeader' + +configureReanimatedLogger({ + level: ReanimatedLogLevel.warn, + strict: false, +}) + +function RootLayout() { + store.dispatch(apiSliceWithChainsConfig.endpoints.getChainsConfig.initiate()) + + return ( + + + + + + + + ({ + headerBackButtonDisplayMode: 'minimal', + headerShadowVisible: false, + headerLeft: (props) => ( + + ), + })} + > + + + + + + + + + + + + + + + + ) +} + +let AppEntryPoint = RootLayout + +if (isStorybookEnv) { + AppEntryPoint = require('../.storybook').default +} + +export default AppEntryPoint diff --git a/apps/mobile/app/app-settings.tsx b/apps/mobile/app/app-settings.tsx new file mode 100644 index 0000000000..9a34c18c14 --- /dev/null +++ b/apps/mobile/app/app-settings.tsx @@ -0,0 +1,8 @@ +import { AppSettingsContainer } from '@/src/features/Settings/components/AppSettings' +import React from 'react' + +function SignersScreen() { + return +} + +export default SignersScreen diff --git a/apps/mobile/app/index.tsx b/apps/mobile/app/index.tsx new file mode 100644 index 0000000000..5d869fe8b2 --- /dev/null +++ b/apps/mobile/app/index.tsx @@ -0,0 +1,8 @@ +import { Onboarding } from '@/src/features/Onboarding' +import React from 'react' + +function OnboardingPage() { + return +} + +export default OnboardingPage diff --git a/apps/mobile/app/notifications.tsx b/apps/mobile/app/notifications.tsx new file mode 100644 index 0000000000..40f5da171e --- /dev/null +++ b/apps/mobile/app/notifications.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import { NotificationsContainer } from '@/src/features/Notifications' + +function NotificationsScreen() { + return +} + +export default NotificationsScreen diff --git a/apps/mobile/app/pending-transactions.tsx b/apps/mobile/app/pending-transactions.tsx new file mode 100644 index 0000000000..3c15b4c08e --- /dev/null +++ b/apps/mobile/app/pending-transactions.tsx @@ -0,0 +1,14 @@ +import React from 'react' +import { View } from 'tamagui' + +import { PendingTxContainer } from '@/src/features/PendingTx' + +function PendingScreen() { + return ( + + + + ) +} + +export default PendingScreen diff --git a/apps/mobile/app/signers.tsx b/apps/mobile/app/signers.tsx new file mode 100644 index 0000000000..ab5a583ed9 --- /dev/null +++ b/apps/mobile/app/signers.tsx @@ -0,0 +1,8 @@ +import React from 'react' +import { SignersContainer } from '@/src/features/Signers' + +function SignersScreen() { + return +} + +export default SignersScreen diff --git a/apps/mobile/assets/android/drawable/baseline_arrow_outward_24.xml b/apps/mobile/assets/android/drawable/baseline_arrow_outward_24.xml new file mode 100644 index 0000000000..d4a7c99417 --- /dev/null +++ b/apps/mobile/assets/android/drawable/baseline_arrow_outward_24.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/assets/android/drawable/baseline_auto_awesome_motion_24.xml b/apps/mobile/assets/android/drawable/baseline_auto_awesome_motion_24.xml new file mode 100644 index 0000000000..619df85e42 --- /dev/null +++ b/apps/mobile/assets/android/drawable/baseline_auto_awesome_motion_24.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/assets/android/drawable/baseline_create_24.xml b/apps/mobile/assets/android/drawable/baseline_create_24.xml new file mode 100644 index 0000000000..3c53db7ec8 --- /dev/null +++ b/apps/mobile/assets/android/drawable/baseline_create_24.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/assets/android/drawable/baseline_delete_24.xml b/apps/mobile/assets/android/drawable/baseline_delete_24.xml new file mode 100644 index 0000000000..26ba1f0606 --- /dev/null +++ b/apps/mobile/assets/android/drawable/baseline_delete_24.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/assets/android/drawable/baseline_explore_24.xml b/apps/mobile/assets/android/drawable/baseline_explore_24.xml new file mode 100644 index 0000000000..419d867ad9 --- /dev/null +++ b/apps/mobile/assets/android/drawable/baseline_explore_24.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/assets/fonts/SpaceMono-Regular.ttf b/apps/mobile/assets/fonts/SpaceMono-Regular.ttf new file mode 100755 index 0000000000..28d7ff7177 Binary files /dev/null and b/apps/mobile/assets/fonts/SpaceMono-Regular.ttf differ diff --git a/apps/mobile/assets/fonts/safe-icons/safe-icons.ttf b/apps/mobile/assets/fonts/safe-icons/safe-icons.ttf new file mode 100644 index 0000000000..8a4a0963fc Binary files /dev/null and b/apps/mobile/assets/fonts/safe-icons/safe-icons.ttf differ diff --git a/apps/mobile/assets/fonts/safe-icons/selection.json b/apps/mobile/assets/fonts/safe-icons/selection.json new file mode 100644 index 0000000000..21e2ab77d6 --- /dev/null +++ b/apps/mobile/assets/fonts/safe-icons/selection.json @@ -0,0 +1,2451 @@ +{ + "IcoMoonType": "selection", + "icons": [ + { + "icon": { + "paths": [ + "M512 853.333c-78.763 0-151.125-27.093-208.939-72.021l478.251-478.251c44.971 57.771 72.021 130.176 72.021 208.939 0 188.203-153.131 341.333-341.333 341.333zM170.667 512c0-188.203 153.131-341.333 341.333-341.333 78.763 0 151.125 27.093 208.939 72.021l-478.251 478.251c-44.971-57.771-72.021-130.176-72.021-208.939zM512 85.333c-235.264 0-426.667 191.403-426.667 426.667s191.403 426.667 426.667 426.667c235.264 0 426.667-191.403 426.667-426.667s-191.403-426.667-426.667-426.667z" + ], + "attrs": [{ "fill": "rgb(255, 95, 114)" }], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["block"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "f": 4 }] } + }, + "attrs": [{ "fill": "rgb(255, 95, 114)" }], + "properties": { "order": 121, "id": 103, "name": "block", "prevSize": 32, "code": 59648 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 0 + }, + { + "icon": { + "paths": [ + "M511.949 341.432c23.552 0 42.667 19.072 42.667 42.667v170.666c0 23.552-19.115 42.667-42.667 42.667-23.595 0-42.667-19.115-42.667-42.667v-170.666c0-23.595 19.072-42.667 42.667-42.667z", + "M511.949 672.098c29.44 0 53.333 23.893 53.333 53.333s-23.893 53.333-53.333 53.333c-29.44 0-53.333-23.893-53.333-53.333s23.893-53.333 53.333-53.333z", + "M511.991 85.349c-21.419 0-42.837 10.667-54.741 32.085l-406.612 728.62c-23.168 41.6 7.040 92.629 54.784 92.629h813.183c47.744 0 77.909-51.029 54.741-92.629l-406.571-728.62c-11.947-21.419-33.365-32.085-54.784-32.085zM511.991 194.32l367.957 659.372h-735.871l367.914-659.372z" + ], + "attrs": [{ "fill": "rgb(255, 95, 114)" }, { "fill": "rgb(255, 95, 114)" }, { "fill": "rgb(255, 95, 114)" }], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["alert-triangle"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "f": 4 }, { "f": 4 }, { "f": 4 }] } + }, + "attrs": [{ "fill": "rgb(255, 95, 114)" }, { "fill": "rgb(255, 95, 114)" }, { "fill": "rgb(255, 95, 114)" }], + "properties": { "order": 120, "id": 102, "name": "alert-triangle", "prevSize": 32, "code": 59649 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 1 + }, + { + "icon": { + "paths": [ + "M512 256c23.564 0 42.667 19.103 42.667 42.667v256c0 23.564-19.103 42.667-42.667 42.667s-42.667-19.103-42.667-42.667v-256c0-23.564 19.103-42.667 42.667-42.667z", + "M512 672c29.457 0 53.333 23.876 53.333 53.333s-23.876 53.333-53.333 53.333c-29.457 0-53.333-23.876-53.333-53.333s23.876-53.333 53.333-53.333z", + "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667zM170.667 512c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333z" + ], + "attrs": [{ "fill": "rgb(255, 95, 114)" }, { "fill": "rgb(255, 95, 114)" }, { "fill": "rgb(255, 95, 114)" }], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["alert"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "f": 4 }, { "f": 4 }, { "f": 4 }] } + }, + "attrs": [{ "fill": "rgb(255, 95, 114)" }, { "fill": "rgb(255, 95, 114)" }, { "fill": "rgb(255, 95, 114)" }], + "properties": { "order": 119, "id": 101, "name": "alert", "prevSize": 32, "code": 59650 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 2 + }, + { + "icon": { + "paths": [ + "M512 426.667c23.564 0 42.667 19.103 42.667 42.667v256c0 23.564-19.103 42.667-42.667 42.667s-42.667-19.103-42.667-42.667v-256c0-23.564 19.103-42.667 42.667-42.667z", + "M512 245.333c29.457 0 53.333 23.878 53.333 53.333s-23.876 53.333-53.333 53.333c-29.457 0-53.333-23.878-53.333-53.333s23.876-53.333 53.333-53.333z", + "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667zM170.667 512c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["info"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 118, "id": 100, "name": "info", "prevSize": 32, "code": 59651 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 3 + }, + { + "icon": { + "paths": [ + "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667zM170.667 512c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333z", + "M445.525 389.725c0-32.858 27.814-59.947 62.72-59.947 34.829 0 62.635 27.096 62.635 59.947 0.371 23.981-5.726 32.305-35.209 53.824l-2.014 1.468c-49.997 36.484-70.972 65.579-68.023 123.435l-0.055 8.41c0 23.565 19.102 42.667 42.667 42.667s42.667-19.102 42.667-42.667v-10.581c-1.165-23.983 3.981-31.121 33.045-52.331l2.022-1.476c49.643-36.233 71.13-65.574 70.229-123.413 0.004-79.814-66.492-144.615-147.964-144.615-81.54 0-148.052 64.783-148.052 145.28 0 23.564 19.102 42.667 42.667 42.667s42.666-19.103 42.666-42.667z", + "M512 672c29.457 0 53.333 23.876 53.333 53.333s-23.876 53.333-53.333 53.333c-29.457 0-53.333-23.876-53.333-53.333s23.876-53.333 53.333-53.333z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["question"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 117, "id": 99, "name": "question", "prevSize": 32, "code": 59652 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 4 + }, + { + "icon": { + "paths": [ + "M616.64 555.337l32.883-16.546c20.791-10.462 43.58-19.307 67.26-26.79-23.68-7.484-46.468-16.329-67.26-26.79l-32.883-16.546 11.55-34.953c7.305-22.107 17.165-44.481 28.621-66.52-22.042 11.453-44.416 21.316-66.522 28.62l-34.953 11.548-16.546-32.881c-10.466-20.793-19.307-43.582-26.79-67.258-7.484 23.677-16.329 46.466-26.79 67.258l-16.546 32.881-34.953-11.548c-22.107-7.304-44.48-17.167-66.52-28.62 11.453 22.039 21.316 44.413 28.62 66.519l11.548 34.953-32.881 16.546c-20.793 10.462-43.582 19.307-67.259 26.79 23.677 7.484 46.466 16.329 67.259 26.79l32.881 16.546-11.548 34.953c-7.304 22.106-17.167 44.48-28.62 66.522 22.039-11.456 44.413-21.316 66.52-28.621l34.953-11.55 16.546 32.883c10.462 20.791 19.307 43.58 26.79 67.26 7.484-23.68 16.324-46.468 26.79-67.26l16.546-32.883 34.953 11.55c22.106 7.305 44.48 17.165 66.522 28.621-11.456-22.042-21.316-44.416-28.621-66.522l-11.55-34.953zM734.609 703.876c62.31 93.005 139.422 170.155 139.422 170.155s-77.15-77.111-170.155-139.422c-40.994-27.469-85.069-52.062-126.972-65.907-19.84 39.42-33.613 87.974-43.174 136.384-21.7 109.828-21.73 218.914-21.73 218.914s-0.030-109.086-21.73-218.914c-9.562-48.41-23.339-96.964-43.174-136.384-41.902 13.845-85.977 38.438-126.973 65.903-93.002 62.315-170.156 139.426-170.156 139.426s77.113-77.15 139.426-170.155c27.468-40.994 52.061-85.069 65.905-126.972-39.419-19.84-87.973-33.613-136.382-43.174-109.828-21.7-218.916-21.73-218.916-21.73s109.088-0.030 218.916-21.73c48.41-9.562 96.963-23.334 136.382-43.174-13.844-41.902-38.437-85.977-65.905-126.973-62.314-93.002-139.427-170.156-139.427-170.156s77.154 77.113 170.156 139.427c40.995 27.468 85.071 52.061 126.973 65.905 19.836-39.419 33.613-87.972 43.174-136.382 21.7-109.828 21.73-218.916 21.73-218.916s0.030 109.088 21.73 218.916c9.562 48.41 23.334 96.963 43.174 136.382 41.903-13.844 85.978-38.437 126.972-65.905 93.005-62.313 170.155-139.426 170.155-139.426s-77.111 77.154-139.422 170.156c-27.469 40.996-52.062 85.071-65.907 126.973 39.42 19.84 87.974 33.613 136.384 43.174 109.828 21.7 218.914 21.73 218.914 21.73s-109.086 0.030-218.914 21.73c-48.41 9.562-96.964 23.334-136.384 43.174 13.845 41.903 38.438 85.978 65.907 126.972z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["points"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 116, "id": 98, "name": "points", "prevSize": 32, "code": 59653 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 5 + }, + { + "icon": { + "paths": [ + "M307.199 163.142c0-6.317 5.093-11.438 11.377-11.438h79.646c6.284 0 11.378 5.121 11.378 11.438v80.066c0 6.317-5.093 11.438-11.378 11.438h-91.023v-91.504z", + "M204.801 266.083c0-6.317 5.094-11.438 11.378-11.438h91.022v91.504c0 6.317-5.094 11.438-11.378 11.438h-91.022v-91.504z", + "M102.4 369.025c0-6.317 5.094-11.438 11.378-11.438h91.022v91.504c0 6.317-5.094 11.438-11.378 11.438h-91.022v-91.504z", + "M0 471.967c0-6.317 5.094-11.438 11.378-11.438h91.022v102.94h-91.022c-6.284 0-11.378-5.12-11.378-11.435v-80.068z", + "M102.4 563.469h91.022c6.284 0 11.378 5.124 11.378 11.438v91.504h-91.022c-6.284 0-11.378-5.12-11.378-11.438v-91.504z", + "M204.801 666.412h91.022c6.284 0 11.378 5.124 11.378 11.438v91.504h-91.022c-6.284 0-11.378-5.12-11.378-11.438v-91.504z", + "M307.199 769.354h91.023c6.284 0 11.378 5.12 11.378 11.438v80.065c0 6.318-5.093 11.438-11.378 11.438h-79.646c-6.284 0-11.377-5.12-11.377-11.438v-91.504z", + "M716.8 163.142c0-6.317-5.093-11.438-11.378-11.438h-79.644c-6.284 0-11.378 5.121-11.378 11.438v80.066c0 6.317 5.093 11.438 11.378 11.438h91.022v-91.504z", + "M819.2 266.083c0-6.317-5.093-11.438-11.378-11.438h-91.022v91.504c0 6.317 5.093 11.438 11.378 11.438h91.022v-91.504z", + "M921.6 369.025c0-6.317-5.093-11.438-11.378-11.438h-91.022v91.504c0 6.317 5.093 11.438 11.378 11.438h91.022v-91.504z", + "M1024 471.967c0-6.317-5.093-11.438-11.378-11.438h-91.022v102.94h91.022c6.284 0 11.378-5.12 11.378-11.435v-80.068z", + "M921.6 563.469h-91.022c-6.284 0-11.378 5.124-11.378 11.438v91.504h91.022c6.284 0 11.378-5.12 11.378-11.438v-91.504z", + "M819.2 666.412h-91.022c-6.284 0-11.378 5.124-11.378 11.438v91.504h91.022c6.284 0 11.378-5.12 11.378-11.438v-91.504z", + "M716.8 769.354h-91.022c-6.284 0-11.378 5.12-11.378 11.438v80.065c0 6.318 5.093 11.438 11.378 11.438h79.644c6.284 0 11.378-5.12 11.378-11.438v-91.504z" + ], + "attrs": [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["code-blocks"], + "colorPermutations": { + "11611631671181918125521401255951141": [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}] + } + }, + "attrs": [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}], + "properties": { "order": 115, "id": 97, "name": "code-blocks", "prevSize": 32, "code": 59654 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 6 + }, + { + "icon": { + "paths": [ + "M313.544 7.455l-0.002 0.002 2.236 2.012-0.002 0.002 92.821 88.767-95.054-90.783zM313.544 7.455l-0.114-0.096M313.544 7.455l-0.114-0.096M313.43 7.358c-9.616-8.124-21.647-12.158-33.609-12.158M313.43 7.358l-33.609-12.158M443.789 580.65l-191.421-183.062c-36.396-34.806-43.486-87.131-21.158-128.769l-0.106-0.097-0.079-0.073 0.001-0.001-92.82-88.777c-19.335-18.479-19.99-48.173-1.927-67.423l0.089-0.095 0.001 0.001 1.834-1.851 0.001 0.001 105.658-101.033 199.927 571.178zM443.789 580.65l-188.309 180.16c-61.842 62.166-60.854 160.595 2.94 221.603l0.001 0.003c32.357 30.931 74.734 46.384 117.054 46.384s84.707-15.453 117.053-46.387l362.618-346.848c61.84-62.166 60.854-160.589-2.941-221.597l-0.045-0.042-2.832-2.643-0.096-0.083-2.723-2.41c-2.022-2.138-4.115-4.24-6.269-6.301v0l-299.792-286.601c-22.122-19.726-50.352-29.554-78.528-29.554-18.176 0-36.368 4.088-52.922 12.287l34.79 482.028zM279.821-4.8c-12.97 0-25.998 4.735-35.956 14.27l35.956-14.27zM813.021 452.032v0c20.765 19.859 32.147 46.186 32.147 74.176 0 27.987-11.382 54.33-32.147 74.186l-362.298 346.403c-0.010 0.010-0.019 0.019-0.032 0.029-20.448 18.304-46.992 28.365-75.219 28.365-29.466 0-57.112-10.966-77.883-30.829-20.764-19.869-32.146-46.198-32.146-74.198 0-27.987 11.382-54.317 32.146-74.173l362.299-346.397c0.010-0.010 0.019-0.019 0.029-0.029 20.442-18.31 46.995-28.371 75.219-28.371 29.469 0 57.114 10.963 77.885 30.838zM504.246 156.711l0.003 0.002 220.826 211.163c-38.912 2.253-77.2 17.6-106.995 46.093 0 0 0 0 0 0l-134.816 128.915-193.652-185.283c-21.24-22.288-20.61-56.896 1.922-78.454l7.348-7.003c1.403-1.084 2.76-2.249 4.063-3.495h0l107.535-102.936 0.176-0.2 1.533-1.728 7.341-7.033 2.246-2.046c11.005-9.527 25.12-14.76 40.141-14.76 16.038 0 31.050 5.969 42.33 16.766zM181.005 145.102l98.797-94.513 85.788 82.206-98.808 94.493-85.777-82.186zM730.474 460.125c-39.981 0-72.758 31.046-72.758 69.792s32.778 69.792 72.758 69.792c39.981 0 72.771-31.043 72.771-69.792s-32.79-69.792-72.771-69.792zM730.474 513.731c9.68 0 17.152 7.45 17.152 16.182s-7.472 16.182-17.152 16.182c-9.67 0-17.139-7.443-17.139-16.182s7.469-16.182 17.139-16.182z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["hardware"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 122, "id": 96, "name": "hardware", "prevSize": 32, "code": 59655 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 7 + }, + { + "icon": { + "paths": [ + "M436.297 645.107c-62.274 10.381-103.791 108.117-116.765 155.686-18.836 51.895 207.581 155.686 259.476 142.716 41.519-10.381 60.548-73.519 64.87-103.795 25.95 38.925-129.737-207.582-207.582-194.607z", + "M463.159 663.104c10.3 4.791 21.722 12.48 33.822 22.43 24.188 19.895 49.515 47.535 72.013 74.854 22.426 27.23 41.673 53.692 53.705 70.938 3.029 4.343 5.589 8.085 7.616 11.085-2.453 13.982-7.778 33.455-16.516 50.833-9.954 19.81-22.771 33.886-37.935 37.675-3.942 0.99-11.093 1.105-21.717-0.516-10.291-1.57-22.665-4.582-36.395-8.819-27.435-8.474-59.332-21.559-89.135-36.676-29.907-15.172-57.022-32.051-75.281-47.893-9.178-7.966-15.484-15.13-18.953-21.141-3.481-6.029-3.189-9.178-2.654-10.65l0.182-0.503 0.14-0.512c6.235-22.861 19.412-57.958 38.382-88.329 19.374-31.023 42.677-53.751 67.999-57.975 6.148-1.024 14.315 0.358 24.73 5.201zM635.755 804.851c-12.066-16.841-28.339-38.622-46.729-60.958-22.912-27.819-49.476-56.939-75.563-78.4-13.039-10.722-26.351-19.861-39.36-25.916-12.902-6.003-26.624-9.485-39.94-7.266-36.951 6.157-65.543 37.483-85.74 69.82-20.475 32.781-34.496 70.080-41.283 94.797-3.871 11.311-0.641 22.541 4.769 31.915 5.511 9.549 14.209 18.906 24.419 27.767 20.518 17.805 49.72 35.797 80.549 51.435 30.935 15.697 64.198 29.367 93.22 38.332 14.502 4.476 28.186 7.851 40.132 9.677 11.618 1.775 22.899 2.3 31.927 0.038 26.355-6.588 43.81-29.274 54.827-51.196 8.708-17.318 14.374-36.066 17.566-51.166 0.597-0.294 1.165-0.623 1.69-0.981 2.321-3.465 3.494-9.173 3.345-10.859-0.149-0.789-0.474-1.997-0.623-2.428-0.26-0.717-0.529-1.259-0.597-1.399-0.115-0.23-0.218-0.418-0.282-0.533-0.124-0.23-0.247-0.435-0.329-0.572-0.307-0.525-0.755-1.225-1.242-1.988-2.031-3.149-6.353-9.634-12.454-18.377l-8.218-12.326-0.085 0.585z", + "M812.535 593.212c5.696 0 10.257 2.697 13.026 4.71 3.042 2.214 5.841 5.026 8.294 7.829 4.932 5.636 9.822 12.809 14.007 19.507 4.245 6.788 8.034 13.525 10.743 18.534 1.361 2.513 2.466 4.612 3.23 6.093l0.892 1.732 0.239 0.474 0.064 0.132 0.021 0.038 2.91 5.82-2.901 5.803c-11.085 22.165-30.345 55.407-52.335 83.315-10.982 13.935-22.98 26.97-35.311 36.638-12.066 9.463-26.044 16.956-40.725 16.956-9.199 0-18.897-3.081-28.194-7.428-9.476-4.425-19.511-10.628-29.649-17.916-20.288-14.583-41.967-34.214-61.794-54.865-19.836-20.663-38.148-42.697-51.601-62.242-6.716-9.762-12.382-19.136-16.422-27.58-3.861-8.068-6.946-16.717-6.946-24.576v-12.975h272.452zM851.46 658.078l11.593-5.815c0 0 0.009 0.017-11.593 5.815z", + "M488.192 100.203l-298.4 493.009c-25.129 41.515 32.776 155.686 64.87 207.582l337.321-557.877c0-134.929-69.193-151.362-103.791-142.713z", + "M496.329 111.817l-295.437 488.11c-3.936 6.507-5.496 17.719-3.226 34.163 2.208 15.987 7.727 34.748 15.225 54.396 11.748 30.788 27.869 62.515 41.877 87.057l324.223-536.216c-0.602-63.161-17.118-95.872-34.714-112.061-15.842-14.575-34.33-17.4-47.949-15.449zM561.847 108.17c25.318 23.294 43.11 65.333 43.11 134.746v3.617l-350.171 579.13-11.159-18.048c-16.34-26.419-39.261-68.685-54.98-109.879-7.849-20.57-14.1-41.382-16.685-60.1-2.522-18.261-1.897-36.89 6.731-51.145l301.166-497.579 5.188-1.296c20.774-5.195 51.43-2.787 76.8 20.553z", + "M617.933 307.786l-103.795 168.66c-10.377 16.866-4.322 41.626 0 51.895h207.586l25.946-51.895c0-103.791-86.494-155.686-129.737-168.66z", + "M612.109 292.494l9.549 2.865c45.683 13.705 138.987 68.914 138.987 181.087v3.063l-30.903 61.807h-224.218l-3.341-7.94c-2.645-6.285-5.615-16.393-6.49-27.486-0.866-10.961 0.183-24.525 7.398-36.245l109.018-177.151zM623.548 323.414l-98.359 159.833c-3.166 5.146-4.279 12.395-3.631 20.599 0.329 4.139 1.071 8.102 1.946 11.52h190.199l20.966-41.929c-1.532-86.647-69.111-133.952-111.121-150.024z" + ], + "attrs": [{}, {}, {}, {}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["keystone"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}, {}, {}, {}], + "properties": { "order": 123, "id": 95, "name": "keystone", "prevSize": 32, "code": 59656 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 8 + }, + { + "icon": { + "paths": [ + "M0 383.312h233.335v225.015h-233.335v-225.015z", + "M404.647 772.372h233.336v225.014h-233.336v-225.014z", + "M0 155.611c0-85.942 69.669-155.611 155.611-155.611h77.724v216.677h-233.335v-61.066z", + "M0 841.836c0 85.944 69.669 155.612 155.611 155.612h77.724v-216.678h-233.335v61.066z", + "M1023.949 841.836c0 85.944-69.668 155.612-155.612 155.612h-77.722v-216.678h233.334v61.066z", + "M390.647 0h508.866c68.751 0 124.488 55.735 124.488 124.489v483.87h-633.353v-608.358z" + ], + "attrs": [{}, {}, {}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["ledger"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}, {}, {}], + "properties": { "order": 124, "id": 94, "name": "ledger", "prevSize": 32, "code": 59657 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 9 + }, + { + "icon": { + "paths": [ + "M992.614 100.156c4.012-23.876 4.003-23.877 3.994-23.878l17.813 2.798 2.895 17.217c0-0.009 0-0.017-24.702 3.863z", + "M6.683 96.311l-0.014 0.085-0.032 0.194-0.106 0.661-0.364 2.385c-0.303 2.051-0.719 5.011-1.192 8.786-0.946 7.549-2.125 18.376-3.098 31.74-1.942 26.684-3.079 63.708 0.178 105.067 6.437 81.744 30.398 185.086 104.557 256.765 55.461 53.606 129.141 79.951 197.454 92.463 55.22 10.114 108.439 11.469 148.772 10.175v288c0 30.32 25.431 54.9 56.803 54.9s56.804-24.581 56.804-54.9v-288.126c39.913 1.517 93.496 0.545 149.397-9.281 69.483-12.214 144.984-38.54 201.537-93.203 74.166-71.687 98.127-175.040 104.569-256.793 3.254-41.364 2.118-78.392 0.177-105.079-0.973-13.366-2.155-24.194-3.1-31.743-0.475-3.776-0.889-6.736-1.192-8.787l-0.363-2.385-0.107-0.661-0.033-0.194-0.014-0.085-24.702 3.863 3.994-23.878-0.968-0.147-2.472-0.352c-2.122-0.293-5.185-0.695-9.090-1.152-7.81-0.915-19.014-2.054-32.842-2.995-27.611-1.878-65.918-2.977-108.712 0.172-84.582 6.222-191.511 29.385-265.677 101.072-28.416 27.462-49.413 59.537-64.875 93.124-15.458-33.584-36.454-65.657-64.865-93.117-74.159-71.679-181.076-94.839-265.647-101.060-42.79-3.148-81.095-2.049-108.702-0.172-13.826 0.94-25.028 2.080-32.838 2.994-3.906 0.457-6.968 0.859-9.090 1.152l-2.468 0.352-0.684 0.102-0.2 0.031-0.088 0.014 3.995 23.878c-4.011-23.855-4.004-23.877-3.995-23.878l-17.813 2.798-2.895 17.217c0.001-0.009 0.022-0.013 24.703 3.863l-24.703-3.863zM851.144 181.295c21.267-1.564 41.365-1.884 59.127-1.55 0.344 17.168 0.014 36.593-1.606 57.149-5.739 72.92-26.382 143.758-71.619 187.481s-118.523 63.677-193.969 69.227c-21.267 1.564-41.365 1.884-59.127 1.55-0.344-17.169-0.014-36.593 1.606-57.149 5.739-72.92 26.387-143.758 71.619-187.481 45.238-43.724 118.528-63.677 193.969-69.227zM115.333 236.894c-1.618-20.549-1.948-39.968-1.603-57.132 17.758-0.334 37.848-0.014 59.109 1.55 75.433 5.549 148.709 25.499 193.938 69.215s65.869 114.542 71.61 187.453c1.618 20.549 1.948 39.968 1.604 57.132-17.758 0.334-37.848 0.014-59.109-1.55-75.433-5.549-148.709-25.499-193.938-69.215s-65.869-114.542-71.61-187.453z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["seed"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 114, "id": 93, "name": "seed", "prevSize": 32, "code": 59658 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 10 + }, + { + "icon": { + "paths": [ + "M677.197 309.028l142.349-142.351M900.89 85.333v0zM510.033 476.19c21.001 20.719 37.696 45.389 49.122 72.589s17.361 56.393 17.459 85.892c0.098 29.504-5.636 58.735-16.883 86.007-11.243 27.277-27.772 52.058-48.631 72.917-20.864 20.864-45.645 37.393-72.922 48.636-27.273 11.243-56.503 16.981-86.005 16.883s-58.693-6.033-85.893-17.459c-27.199-11.426-51.869-28.122-72.591-49.122-40.748-42.189-63.295-98.692-62.785-157.346s24.035-114.756 65.51-156.233c41.475-41.476 97.58-65.001 156.232-65.51s115.159 22.037 157.348 62.784l0.038-0.038zM510.033 476.19v0zM677.197 309.028l122.014 122.016 142.353-142.352-122.018-122.016-142.349 142.351z" + ], + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["key"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }] } + }, + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "properties": { "order": 141, "id": 92, "name": "key", "prevSize": 32, "code": 59659 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 11 + }, + { + "icon": { + "paths": [ + "M814.289 306.612c-166.95-163.458-437.63-163.458-604.58 0l-22.054 21.592c-8.347 8.173-8.347 21.424 0 29.597l68.733 67.296c4.174 4.087 10.941 4.087 15.114 0l29.611-28.992c116.468-114.033 305.303-114.033 421.77 0l27.652 27.072c4.173 4.087 10.94 4.087 15.113 0l68.732-67.296c8.35-8.173 8.35-21.424 0-29.597l-20.092-19.673zM1017.591 505.681l-61.171-59.895c-8.346-8.171-21.879-8.171-30.229 0l-195.767 191.676c-2.086 2.039-5.47 2.039-7.556 0l-195.772-191.68c-8.35-8.171-21.884-8.171-30.229 0l-195.763 191.68c-2.087 2.044-5.47 2.044-7.557 0l-195.772-191.68c-8.348-8.171-21.882-8.171-30.229 0l-61.173 59.895c-8.348 8.171-8.348 21.423 0 29.598l275.84 270.067c8.348 8.175 21.882 8.175 30.229 0l195.765-191.671c2.086-2.044 5.47-2.044 7.556 0l195.767 191.671c8.35 8.175 21.884 8.175 30.229 0l275.831-270.067c8.35-8.171 8.35-21.423 0-29.594z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["dapp-logo"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 112, "id": 91, "name": "dapp-logo", "prevSize": 32, "code": 59660 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 12 + }, + { + "icon": { + "paths": [ + "M285.865 780.378c16.64 16.64 43.52 16.64 60.16 0l165.975-165.12 165.547 165.547c16.64 16.64 43.52 16.64 60.16 0s16.64-43.52 0-60.16l-195.84-195.84c-3.947-3.959-8.636-7.095-13.798-9.237s-10.697-3.243-16.282-3.243c-5.589 0-11.123 1.101-16.286 3.243-5.158 2.142-9.847 5.278-13.794 9.237l-195.841 195.413c-16.64 16.64-16.64 43.52 0 60.16z", + "M285.865 499.2c16.64 16.64 43.52 16.64 60.16 0l165.975-165.121 165.547 165.548c16.64 16.64 43.52 16.64 60.16 0s16.64-43.52 0-60.16l-195.84-195.841c-3.947-3.956-8.636-7.095-13.798-9.236s-10.697-3.244-16.282-3.244c-5.589 0-11.123 1.102-16.286 3.244-5.158 2.141-9.847 5.28-13.794 9.236l-195.841 195.415c-16.64 16.64-16.64 43.52 0 60.16z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["double-arrow"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 111, "id": 90, "name": "double-arrow", "prevSize": 32, "code": 59661 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 13 + }, + { + "icon": { + "paths": [ + "M637.966 589.86l166.614-169.279c49.174-49.174 131.092-49.174 180.266 0s49.174 131.092 0 180.266l-379.615 384.968c-24.534 24.532-57.388 38.185-90.134 38.185s-65.491-13.654-90.132-38.185l-387.726-384.968c-54.613-54.612-49.174-147.411 16.426-193.92 51.839-38.185 125.653-27.306 169.278 19.094l144.746 141.971 16.428 2.774v-125.654l-0.108-319.459c0-71.041 57.388-125.654 125.654-125.654 73.814 0 128.428 57.387 128.428 125.654l-0.125 464.206z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["arrow-sort"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 110, "id": 89, "name": "arrow-sort", "prevSize": 32, "code": 59662 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 14 + }, + { + "icon": { + "paths": [ + "M438.907 768.411c40.424 37.378 105.859 37.378 146.186 0l408.412-377.63c65.145-60.235 19-163.226-73.093-163.226l-816.824 0.090c-92.093 0-138.238 102.991-73.093 163.136l408.412 377.63z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["dropdown-arrow-small"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 109, "id": 88, "name": "dropdown-arrow-small", "prevSize": 32, "code": 59663 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 15 + }, + { + "icon": { + "paths": [ + "M512 245.68c-49.939 0-90.422-40.483-90.422-90.422s40.483-90.422 90.422-90.422c49.939 0 90.422 40.483 90.422 90.422s-40.484 90.422-90.422 90.422z", + "M512 603.258c-49.939 0-90.422-40.483-90.422-90.422s40.483-90.422 90.422-90.422c49.939 0 90.422 40.483 90.422 90.422s-40.484 90.422-90.422 90.422z", + "M512 960.838c-49.939 0-90.422-40.486-90.422-90.426s40.483-90.419 90.422-90.419c49.939 0 90.422 40.48 90.422 90.419s-40.483 90.426-90.422 90.426z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["options-vertical"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 108, "id": 87, "name": "options-vertical", "prevSize": 32, "code": 59664 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 16 + }, + { + "icon": { + "paths": [ + "M879.596 448c44.408 0 80.408 36 80.408 80.408v1.103c0 44.408-36 80.408-80.408 80.408s-80.408-36-80.408-80.408v-1.103c0-44.408 36-80.408 80.408-80.408z", + "M512.002 448c44.408 0 80.408 36 80.408 80.408v1.103c0 44.408-36 80.408-80.408 80.408s-80.408-36-80.408-80.408v-1.103c0-44.408 36-80.408 80.408-80.408z", + "M144.408 448c44.408 0 80.408 36 80.408 80.408v1.103c0 44.408-36 80.408-80.408 80.408s-80.408-36-80.408-80.408v-1.103c0-44.408 36-80.408 80.408-80.408z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["options-horizontal"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 107, "id": 86, "name": "options-horizontal", "prevSize": 32, "code": 59665 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 17 + }, + { + "icon": { + "paths": [ + "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667zM170.667 512c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333z", + "M450.999 682.667c-8.107 0-15.876-3.584-21.572-9.997l-121.852-136.627c-11.884-13.342-11.884-34.94 0.030-48.282 11.914-13.274 31.202-13.308 43.116 0.034l100.278 112.465 222.315-248.921c11.913-13.341 31.168-13.341 43.085 0 11.913 13.342 11.913 34.907 0 48.249l-243.857 273.081c-5.696 6.413-13.436 9.997-21.542 9.997z", + "M450.999 682.667v0c-8.107 0-15.876-3.584-21.572-9.997l-121.852-136.627c-11.884-13.342-11.884-34.94 0.030-48.282 11.914-13.274 31.202-13.308 43.116 0.034l100.278 112.465 222.315-248.921c11.913-13.341 31.168-13.341 43.085 0 11.913 13.342 11.913 34.907 0 48.249l-243.857 273.081c-5.696 6.413-13.436 9.997-21.542 9.997" + ], + "attrs": [ + {}, + {}, + { + "fill": "none", + "stroke": "rgb(0, 0, 0)", + "strokeLinejoin": "miter", + "strokeLinecap": "butt", + "strokeMiterlimit": "4", + "strokeWidth": 21.333333333333332 + } + ], + "isMulticolor": false, + "isMulticolor2": true, + "grid": 0, + "tags": ["check-oulined"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, { "s": 0 }] } + }, + "attrs": [ + {}, + {}, + { + "fill": "none", + "stroke": "rgb(0, 0, 0)", + "strokeLinejoin": "miter", + "strokeLinecap": "butt", + "strokeMiterlimit": "4", + "strokeWidth": 21.333333333333332 + } + ], + "properties": { "order": 131, "id": 85, "name": "check-oulined", "prevSize": 32, "code": 59666 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 18 + }, + { + "icon": { + "paths": [ + "M422.393 725.333c-7.945 0-15.532-3.2-21.117-8.93l-179.184-182.946c-11.679-11.913-11.679-31.206 0-43.089 11.679-11.917 30.556-11.917 42.234 0l158.066 161.395 337.278-344.16c11.682-11.916 30.558-11.916 42.236 0s11.678 31.177 0 43.092l-358.396 365.707c-5.585 5.73-13.171 8.93-21.118 8.93z", + "M422.393 725.333v0c-7.945 0-15.532-3.2-21.117-8.93l-179.184-182.946c-11.679-11.913-11.679-31.206 0-43.089 11.679-11.917 30.556-11.917 42.234 0l158.066 161.395 337.278-344.16c11.682-11.916 30.558-11.916 42.236 0s11.678 31.177 0 43.092l-358.396 365.707c-5.585 5.73-13.171 8.93-21.118 8.93" + ], + "attrs": [ + {}, + { + "fill": "none", + "stroke": "rgb(0, 0, 0)", + "strokeLinejoin": "miter", + "strokeLinecap": "butt", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "isMulticolor": false, + "isMulticolor2": true, + "grid": 0, + "tags": ["check"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, { "s": 0 }] } + }, + "attrs": [ + {}, + { + "fill": "none", + "stroke": "rgb(0, 0, 0)", + "strokeLinejoin": "miter", + "strokeLinecap": "butt", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "properties": { "order": 132, "id": 84, "name": "check", "prevSize": 32, "code": 59667 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 19 + }, + { + "icon": { + "paths": [ + "M938.667 512c0-235.642-191.027-426.667-426.667-426.667-235.642 0-426.667 191.025-426.667 426.667 0 235.639 191.025 426.667 426.667 426.667 235.639 0 426.667-191.027 426.667-426.667zM395.726 456.499l96.366 90.159 139.785-143.341c24.678-25.306 65.199-25.815 90.505-1.137s25.813 65.195 1.135 90.5l-183.552 188.224c-24.316 24.939-64.111 25.852-89.545 2.052l-142.144-132.992c-25.81-24.149-27.158-64.649-3.009-90.458s64.649-27.157 90.46-3.008z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["check-filled"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 104, "id": 83, "name": "check-filled", "prevSize": 32, "code": 59668 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 20 + }, + { + "icon": { + "paths": [ + "M474.509 764.894v-598.494c0-21.208 16.785-38.4 37.491-38.4s37.491 17.192 37.491 38.4v598.494l154.509-158.259c14.639-14.997 38.379-14.997 53.018 0 14.643 14.997 14.643 39.309 0 54.306l-212.075 217.225c-1.092 1.118-2.231 2.15-3.418 3.102-6.861 8.969-17.536 14.733-29.525 14.733s-22.665-5.764-29.525-14.733c-1.186-0.951-2.325-1.984-3.418-3.102l-212.076-217.225c-14.641-14.997-14.641-39.309 0-54.306s38.378-14.997 53.019 0l154.509 158.259z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["arrow-down-1"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 103, "id": 82, "name": "arrow-down-1", "prevSize": 32, "code": 59669 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 21 + }, + { + "icon": { + "paths": [ + "M760.567 390.761c9.911 9.014 9.911 23.629 0 32.643l-230.63 209.834c-9.907 9.015-25.967 9.015-35.874 0l-230.633-209.834c-9.907-9.014-9.907-23.629 0-32.643s25.97-9.014 35.878 0l212.692 193.513 212.693-193.513c9.907-9.014 25.967-9.014 35.874 0z" + ], + "attrs": [ + { + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["arrow-down"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }] } + }, + "attrs": [ + { + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "properties": { "order": 135, "id": 81, "name": "arrow-down", "prevSize": 32, "code": 59670 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 22 + }, + { + "icon": { + "paths": [ + "M263.43 633.237c-9.907-9.011-9.907-23.625 0-32.64l230.633-209.837c9.907-9.014 25.967-9.014 35.874 0l230.63 209.837c9.911 9.011 9.911 23.629 0 32.64-9.907 9.015-25.967 9.015-35.874 0l-212.693-193.51-212.692 193.51c-9.908 9.015-25.97 9.015-35.878 0z" + ], + "attrs": [ + { + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["arrow-up"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }] } + }, + "attrs": [ + { + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "properties": { "order": 136, "id": 80, "name": "arrow-up", "prevSize": 32, "code": 59671 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 23 + }, + { + "icon": { + "paths": [ + "M633.237 760.567c-9.011 9.911-23.625 9.911-32.64 0l-209.837-230.63c-9.014-9.907-9.014-25.967 0-35.874l209.837-230.633c9.015-9.907 23.629-9.907 32.644 0 9.011 9.908 9.011 25.97 0 35.878l-193.515 212.692 193.51 212.693c9.015 9.907 9.015 25.967 0 35.874z" + ], + "attrs": [ + { + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["arrow-left"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }] } + }, + "attrs": [ + { + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "properties": { "order": 138, "id": 79, "name": "arrow-left", "prevSize": 32, "code": 59672 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 24 + }, + { + "icon": { + "paths": [ + "M390.761 263.43c9.014-9.907 23.629-9.907 32.643 0l209.834 230.633c9.015 9.907 9.015 25.967 0 35.874l-209.834 230.63c-9.014 9.911-23.629 9.911-32.643 0-9.014-9.907-9.014-25.967 0-35.874l193.513-212.693-193.513-212.692c-9.014-9.908-9.014-25.97 0-35.878z" + ], + "attrs": [ + { + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["arrow-right"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }] } + }, + "attrs": [ + { + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "properties": { "order": 137, "id": 78, "name": "arrow-right", "prevSize": 32, "code": 59673 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 25 + }, + { + "icon": { + "paths": [ + "M873.997 602.462l-271.27 271.339c-7.027 7.040-15.373 12.621-24.555 16.431-9.186 3.81-19.034 5.769-28.979 5.769-9.941 0-19.789-1.958-28.975-5.769s-17.532-9.391-24.559-16.431l-324.992-324.698v-378.436h378.338l324.992 325.077c14.093 14.182 22.003 33.365 22.003 53.359 0 19.998-7.91 39.181-22.003 53.359z", + "M341.333 341.333h0.427" + ], + "attrs": [ + { + "fill": "none", + "stroke": "rgb(161, 163, 167)", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "stroke": "rgb(161, 163, 167)", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["tag"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 3 }, { "s": 3 }] } + }, + "attrs": [ + { + "fill": "none", + "stroke": "rgb(161, 163, 167)", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "stroke": "rgb(161, 163, 167)", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "properties": { "order": 139, "id": 77, "name": "tag", "prevSize": 32, "code": 59674 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 26 + }, + { + "icon": { + "paths": [ + "M358.4 170.667l-102.4 102.4h-68.267c-56.554 0-102.4 45.846-102.4 102.4v375.612c0 56.555 45.846 102.4 102.4 102.4h648.533c56.555 0 102.4-45.845 102.4-102.4v-375.612c0-56.554-45.845-102.4-102.4-102.4h-68.267l-102.4-102.4h-307.2zM291.346 358.4l102.4-102.4h236.509l102.4 102.4h103.612c9.425 0 17.067 7.641 17.067 17.067v375.612c0 9.425-7.642 17.067-17.067 17.067h-648.533c-9.425 0-17.067-7.642-17.067-17.067v-375.612c0-9.425 7.641-17.067 17.067-17.067h103.613z", + "M512 725.333c-106.039 0-192-85.961-192-192s85.961-192 192-192c106.039 0 192 85.961 192 192s-85.961 192-192 192zM618.667 533.333c0-58.91-47.757-106.667-106.667-106.667s-106.667 47.757-106.667 106.667c0 58.91 47.757 106.667 106.667 106.667s106.667-47.757 106.667-106.667z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["camera"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 100, "id": 76, "name": "camera", "prevSize": 32, "code": 59675 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 27 + }, + { + "icon": { + "paths": [ + "M298.667 512.004c0-47.125 38.205-85.333 85.333-85.333 47.13 0 85.333 38.208 85.333 85.333 0 47.13-38.204 85.333-85.333 85.333-47.128 0-85.333-38.204-85.333-85.333z", + "M554.667 512.004c0-47.125 38.204-85.333 85.333-85.333s85.333 38.208 85.333 85.333c0 47.13-38.204 85.333-85.333 85.333s-85.333-38.204-85.333-85.333z", + "M298.667 213.333c0-47.128 38.205-85.333 85.333-85.333 47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333c-47.128 0-85.333-38.205-85.333-85.333z", + "M554.667 213.333c0-47.128 38.204-85.333 85.333-85.333s85.333 38.205 85.333 85.333c0 47.128-38.204 85.333-85.333 85.333s-85.333-38.205-85.333-85.333z", + "M298.667 810.662c0-47.13 38.205-85.333 85.333-85.333 47.13 0 85.333 38.204 85.333 85.333 0 47.125-38.204 85.333-85.333 85.333-47.128 0-85.333-38.208-85.333-85.333z", + "M554.667 810.662c0-47.13 38.204-85.333 85.333-85.333s85.333 38.204 85.333 85.333c0 47.125-38.204 85.333-85.333 85.333s-85.333-38.208-85.333-85.333z" + ], + "attrs": [{}, {}, {}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["element-drag"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}, {}, {}], + "properties": { "order": 99, "id": 75, "name": "element-drag", "prevSize": 32, "code": 59676 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 28 + }, + { + "icon": { + "paths": [ + "M832.499 512.32c0-176.555-143.543-320.181-320-320.32v-128c239.906 0.135 436.343 189.779 447.501 427.012v-1.557c0.38 7.573 0.576 15.198 0.576 22.865s-0.196 15.287-0.576 22.865v-1.557c-10.807 229.734-195.362 414.784-424.892 426.372h0.013c-0.905 0.047-1.805 0.090-2.709 0.128-6.682 0.299-13.402 0.448-20.156 0.448zM512.499 960v-127.424c176.457-0.141 320-143.765 320-320.256zM512.243 960.576c-7.612 0-15.181-0.192-22.703-0.567-0.055-0.004-0.111-0.004-0.166-0.009h0.013c-229.529-11.588-414.085-196.638-424.889-426.372v1.557c-0.383-7.578-0.576-15.198-0.576-22.865s0.193-15.292 0.576-22.865v1.557c11.156-237.233 207.59-426.877 447.502-427.012v896h0.499z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-partial-fill"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 98, "id": 74, "name": "transaction-partial-fill", "prevSize": 32, "code": 59677 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 29 + }, + { + "icon": { + "paths": [ + "M341.333 490.667c0-35.345 28.654-64 64-64h426.667c35.345 0 64 28.655 64 64s-28.655 64-64 64h-426.667c-35.346 0-64-28.655-64-64z", + "M341.333 746.667c0-35.345 28.654-64 64-64h426.667c35.345 0 64 28.655 64 64s-28.655 64-64 64h-426.667c-35.346 0-64-28.655-64-64z", + "M341.333 234.667c0-35.346 28.654-64 64-64h426.667c35.345 0 64 28.654 64 64s-28.655 64-64 64h-426.667c-35.346 0-64-28.654-64-64z", + "M256 234.667c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64z", + "M256 490.667c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64z", + "M256 746.667c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64z" + ], + "attrs": [ + { "fill": "rgb(0, 0, 0)" }, + { "fill": "rgb(0, 0, 0)" }, + { "fill": "rgb(0, 0, 0)" }, + { "fill": "rgb(18, 19, 18)" }, + { "fill": "rgb(18, 19, 18)" }, + { "fill": "rgb(18, 19, 18)" } + ], + "isMulticolor": true, + "isMulticolor2": false, + "grid": 0, + "tags": ["rows-2"], + "colorPermutations": { + "11611631671181918125521401255951141": [ + { "f": 0 }, + { "f": 0 }, + { "f": 0 }, + { "f": 1 }, + { "f": 1 }, + { "f": 1 } + ] + } + }, + "attrs": [ + { "fill": "rgb(0, 0, 0)" }, + { "fill": "rgb(0, 0, 0)" }, + { "fill": "rgb(0, 0, 0)" }, + { "fill": "rgb(18, 19, 18)" }, + { "fill": "rgb(18, 19, 18)" }, + { "fill": "rgb(18, 19, 18)" } + ], + "properties": { + "order": 97, + "id": 73, + "name": "rows-2", + "prevSize": 32, + "code": 59678, + "codes": [59678, 59679, 59680, 59681, 59682, 59683] + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 30 + }, + { + "icon": { + "paths": [ + "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667zM170.667 512c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333z", + "M327.74 438.434c-17.204-16.102-44.204-15.21-60.307 1.993s-15.21 44.207 1.993 60.309l176.683 165.376c16.956 15.868 43.49 15.262 59.703-1.365l228.139-233.984c16.452-16.872 16.111-43.885-0.764-60.335-16.87-16.451-43.883-16.109-60.335 0.763l-198.955 204.050-146.159-136.806z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["check-notifications"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 96, "id": 72, "name": "check-notifications", "prevSize": 32, "code": 59684 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 31 + }, + { + "icon": { + "paths": [ + "M384 85.333h-213.333c-47.128 0-85.333 38.205-85.333 85.333v213.333c0 47.13 38.205 85.333 85.333 85.333h213.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.128-38.204-85.333-85.333-85.333zM170.667 384v-213.333h213.333v213.333h-213.333z", + "M384 554.667h-213.333c-47.128 0-85.333 38.204-85.333 85.333v213.333c0 47.13 38.205 85.333 85.333 85.333h213.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.13-38.204-85.333-85.333-85.333zM170.667 853.333v-213.333h213.333v213.333h-213.333z", + "M853.333 85.333h-213.333c-47.13 0-85.333 38.205-85.333 85.333v213.333c0 47.13 38.204 85.333 85.333 85.333h213.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.128-38.204-85.333-85.333-85.333zM640 384v-213.333h213.333v213.333h-213.333z", + "M661.333 554.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z", + "M917.333 554.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z", + "M789.333 682.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z", + "M917.333 810.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z", + "M661.333 810.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z" + ], + "attrs": [{}, {}, {}, {}, {}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["qr-code-1"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}, {}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}, {}, {}, {}, {}], + "properties": { "order": 95, "id": 71, "name": "qr-code-1", "prevSize": 32, "code": 59685 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 32 + }, + { + "icon": { + "paths": [ + "M938.667 170.667v170.667c0 23.564-19.102 42.667-42.667 42.667s-42.667-19.103-42.667-42.667v-170.667h-170.667c-23.565 0-42.667-19.103-42.667-42.667s19.102-42.667 42.667-42.667h170.667c47.13 0 85.333 38.205 85.333 85.333z", + "M170.667 170.667v170.667c0 23.564-19.103 42.667-42.667 42.667s-42.667-19.103-42.667-42.667v-170.667c0-47.128 38.205-85.333 85.333-85.333h170.667c23.564 0 42.667 19.103 42.667 42.667s-19.103 42.667-42.667 42.667h-170.667z", + "M853.333 853.333v-170.667c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667v170.667c0 47.13-38.204 85.333-85.333 85.333h-170.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667h170.667z", + "M170.667 853.333h170.667c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667h-170.667c-47.128 0-85.333-38.204-85.333-85.333v-170.667c0-23.565 19.103-42.667 42.667-42.667s42.667 19.102 42.667 42.667v170.667z", + "M128 469.333h768c23.564 0 42.667 19.103 42.667 42.667s-19.103 42.667-42.667 42.667h-768c-23.564 0-42.667-19.103-42.667-42.667s19.103-42.667 42.667-42.667z" + ], + "attrs": [{}, {}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["scan-1"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}, {}], + "properties": { "order": 94, "id": 70, "name": "scan-1", "prevSize": 32, "code": 59686 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 33 + }, + { + "icon": { + "paths": [ + "M840.107 597.333c8.576-27.639 13.035-56.393 13.227-85.333v-298.667l-341.333-128-134.828 50.347", + "M201.813 201.812l-31.147 11.52v298.668c0 256 341.333 426.667 341.333 426.667 90.325-47.663 171.507-110.929 239.787-186.88", + "M42.667 42.667l938.667 938.667" + ], + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["shield-crossed"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }, { "s": 0 }, { "s": 0 }] } + }, + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "properties": { "order": 133, "id": 69, "name": "shield-crossed", "prevSize": 32, "code": 59687 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 34 + }, + { + "icon": { + "paths": [ + "M498.129 935.945c9.698 3.639 20.386 3.631 30.076-0.030 168.346-63.599 275.204-151.066 328.93-250.807 10.091-18.052 17.984-38.097 24.009-59.78 6.959-25.050 11.2-51.371 13.321-78.067 1.434-18.014 1.745-33.506 1.455-47.334-0.068-2.987-0.068-2.987-0.073-2.688v-272c0-24.709-20.919-44.251-45.572-42.567-21.329 1.457-32.043 1.991-43.9 1.991-111.714 0-203.981-39.909-267.994-90.209-16.474-12.945-39.906-12.014-55.3 2.196-0.922 0.847-2.022 1.75-3.686 3.001-1.28 0.966-2.85 2.105-7.014 5.123-17.788 11.879-28.122 18.392-43.648 26.725-3.437 1.846-6.883 3.627-10.339 5.341-60.663 29.792-126.433 47.823-200.646 47.823-11.919 0-22.554-0.53-43.941-1.991-24.651-1.684-45.574 17.859-45.574 42.567v269.952c-3.589 50.202 9.391 138.615 44.909 199.134 6.782 12.574 15.632 25.626 26.72 39.684 62.988 83.503 163.576 151.36 298.268 201.937zM782.524 643.695l-0.38 0.687c-41.929 78.042-127.91 149.965-269.060 205.888-112.85-44.476-195.069-101.325-245.661-168.384-8.823-11.2-15.002-20.314-19.968-29.483-14.854-25.357-24.553-57.66-29.862-93.828-3.653-24.883-4.827-50.389-4.13-60.429l0.086-228.169c1.385 0.012 2.78 0.017 4.198 0.017 88.57 0 166.714-21.424 238.411-56.636 4.442-2.202 8.7-4.403 12.932-6.676 15.774-8.467 26.914-15.258 42.914-25.824 75.383 51.486 175.313 89.135 294.37 89.135 1.399 0 2.773-0.006 4.139-0.017v227.26c0.038 2.308 0.038 2.308 0.094 4.467 0.23 11.183-0.026 23.915-1.207 38.793-1.719 21.615-5.111 42.675-10.475 61.986-4.331 15.59-9.809 29.461-16.401 41.212z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["shield"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 92, "id": 68, "name": "shield", "prevSize": 32, "code": 59688 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 35 + }, + { + "icon": { + "paths": [ + "M383.875 640.166c-13.781 0-27.307-6.656-35.541-18.987-13.099-19.584-7.808-46.080 11.819-59.179l109.186-72.832v-189.908c0-23.595 19.072-42.667 42.667-42.667s42.667 19.072 42.667 42.667v212.735c0 14.251-7.125 27.605-18.987 35.499l-128.172 85.504c-7.253 4.821-15.531 7.168-23.637 7.168z", + "M512 170.667c-188.203 0-341.333 153.131-341.333 341.333s153.131 341.333 341.333 341.333c188.203 0 341.333-153.131 341.333-341.333s-153.131-341.333-341.333-341.333zM512 938.667c-235.264 0-426.667-191.403-426.667-426.667s191.403-426.667 426.667-426.667c235.264 0 426.667 191.403 426.667 426.667s-191.403 426.667-426.667 426.667z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["clock"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 91, "id": 67, "name": "clock", "prevSize": 32, "code": 59689 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 36 + }, + { + "icon": { + "paths": [ + "M908.809 229.248c-22.528-7.253-46.464 4.992-53.803 27.392l-16.896 52.053c-68.864-110.805-190.507-180.693-325.973-180.693-178.987 0-332.672 121.515-373.76 295.467-5.419 22.912 8.789 45.909 31.787 51.328 3.285 0.725 6.571 1.109 9.813 1.109 19.328 0 36.821-13.184 41.515-32.853 31.915-135.253 151.424-229.717 290.646-229.717 106.283 0 200.96 55.808 254.251 143.317l-66.133-20.309c-22.571-6.997-46.421 5.803-53.333 28.245-6.912 22.528 5.76 46.421 28.245 53.333l157.312 48.341c4.181 1.28 8.405 1.877 12.544 1.877 18.005 0 34.688-11.477 40.576-29.483l50.603-155.605c7.253-22.443-5.035-46.507-27.392-53.803z", + "M855.309 536.375c-23.424-4.565-45.611 10.539-50.133 33.621-27.392 139.477-150.656 240.683-293.035 240.683-105.941 0-200.704-55.765-254.037-143.104l65.237 20.096c22.613 7.040 46.421-5.76 53.333-28.245 6.912-22.571-5.717-46.421-28.245-53.333l-157.269-48.384c-22.315-6.869-45.909 5.461-53.163 27.605l-50.56 155.691c-7.296 22.357 4.992 46.464 27.435 53.76 4.352 1.408 8.789 2.048 13.141 2.048 18.005 0 34.731-11.435 40.576-29.483l17.152-52.736c68.779 111.189 190.891 181.419 326.4 181.419 183.040 0 341.504-130.176 376.789-309.504 4.565-23.125-10.539-45.611-33.621-50.133z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["update"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 90, "id": 66, "name": "update", "prevSize": 32, "code": 59690 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 37 + }, + { + "icon": { + "paths": [ + "M880.35 303.767c14.694 26.481 26.65 54.71 35.588 84.342 68.083 225.455-58.581 463.706-282.889 532.083-224.292 68.373-461.277-58.931-529.306-284.335-68.087-225.471 58.556-463.71 282.895-532.082 40.347-12.292 81.811-18.442 123.202-18.442 26.048 0 47.168 21.225 47.168 47.408s-21.12 47.408-47.168 47.408c-32.141 0-64.384 4.783-95.834 14.364-174.462 53.171-272.951 238.447-219.995 413.815 52.906 175.296 237.219 274.304 411.662 221.129 174.434-53.18 272.947-238.468 219.998-413.818-7.317-24.248-17.203-47.249-29.414-68.718l-11.695 67.883c-4.446 25.798-28.855 43.091-54.524 38.624-25.664-4.467-42.871-29.004-38.426-54.803l29.056-168.631c4.39-25.487 28.297-42.732 53.726-38.755l167.019 26.122c25.737 4.026 43.358 28.262 39.351 54.134s-28.117 43.581-53.858 39.555l-46.558-7.282z", + "M362.099 548.407c-20.513 14.315-26.913 44.774-14.295 68.041s39.477 30.524 59.991 16.213l126.115-87.987c12.898-8.998 20.757-24.947 20.757-42.125v-197.091c0-27.315-19.524-49.458-43.605-49.458-24.085 0-43.61 22.143-43.61 49.458v169.447l-105.353 73.502z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["repeat"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 89, "id": 65, "name": "repeat", "prevSize": 32, "code": 59691 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 38 + }, + { + "icon": { + "paths": [ + "M554.688 664.913v-536.873c0-23.595-19.115-42.667-42.667-42.667-23.595 0-42.667 19.072-42.667 42.667v536.873l-175.872-175.829c-16.683-16.683-43.691-16.683-60.331 0-16.683 16.683-16.683 43.648 0 60.331l241.366 241.365c1.237 1.237 2.56 2.389 3.883 3.413 7.851 10.027 19.968 16.384 33.621 16.384 13.611 0 25.771-6.357 33.579-16.384 1.323-1.024 2.688-2.176 3.883-3.413l241.365-241.365c16.683-16.683 16.683-43.648 0-60.331-16.64-16.683-43.648-16.683-60.331 0l-175.829 175.829z", + "M128.021 853.333h768c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667h-768c-23.509 0-42.667-19.2-42.667-42.667s19.157-42.667 42.667-42.667z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["download"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 88, "id": 64, "name": "download", "prevSize": 32, "code": 59692 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 39 + }, + { + "icon": { + "paths": [ + "M469.308 359.086v536.876c0 23.595 19.115 42.667 42.667 42.667 23.595 0 42.667-19.072 42.667-42.667v-536.876l175.872 175.83c16.683 16.683 43.691 16.683 60.331 0 16.683-16.683 16.683-43.648 0-60.331l-241.365-241.366c-1.237-1.237-2.56-2.389-3.883-3.413-7.851-10.027-19.968-16.384-33.621-16.384-13.611 0-25.771 6.357-33.579 16.384-1.323 1.024-2.688 2.176-3.883 3.413l-241.366 241.366c-16.683 16.683-16.683 43.648 0 60.331 16.64 16.683 43.648 16.683 60.331 0l175.83-175.83z", + "M895.979 170.667h-768c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667h768c23.509 0 42.667 19.2 42.667 42.667s-19.157 42.667-42.667 42.667z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["upload"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 87, "id": 63, "name": "upload", "prevSize": 32, "code": 59693 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 40 + }, + { + "icon": { + "paths": [ + "M384 85.333h-213.333c-47.128 0-85.333 38.205-85.333 85.333v213.333c0 47.13 38.205 85.333 85.333 85.333h213.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.128-38.204-85.333-85.333-85.333zM170.667 384v-213.333h213.333v213.333h-213.333z", + "M384 554.667h-213.333c-47.128 0-85.333 38.204-85.333 85.333v213.333c0 47.13 38.205 85.333 85.333 85.333h213.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.13-38.204-85.333-85.333-85.333zM170.667 853.333v-213.333h213.333v213.333h-213.333z", + "M853.333 85.333h-213.333c-47.13 0-85.333 38.205-85.333 85.333v213.333c0 47.13 38.204 85.333 85.333 85.333h213.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.128-38.204-85.333-85.333-85.333zM640 384v-213.333h213.333v213.333h-213.333z", + "M661.333 554.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z", + "M917.333 554.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z", + "M789.333 682.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z", + "M917.333 810.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z", + "M661.333 810.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z" + ], + "attrs": [{}, {}, {}, {}, {}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["qr-code"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}, {}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}, {}, {}, {}, {}], + "properties": { "order": 86, "id": 62, "name": "qr-code", "prevSize": 32, "code": 59694 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 41 + }, + { + "icon": { + "paths": [ + "M938.667 170.667v170.667c0 23.564-19.102 42.667-42.667 42.667s-42.667-19.103-42.667-42.667v-170.667h-170.667c-23.565 0-42.667-19.103-42.667-42.667s19.102-42.667 42.667-42.667h170.667c47.13 0 85.333 38.205 85.333 85.333z", + "M170.667 170.667v170.667c0 23.564-19.103 42.667-42.667 42.667s-42.667-19.103-42.667-42.667v-170.667c0-47.128 38.205-85.333 85.333-85.333h170.667c23.564 0 42.667 19.103 42.667 42.667s-19.103 42.667-42.667 42.667h-170.667z", + "M853.333 853.333v-170.667c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667v170.667c0 47.13-38.204 85.333-85.333 85.333h-170.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667h170.667z", + "M170.667 853.333h170.667c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667h-170.667c-47.128 0-85.333-38.204-85.333-85.333v-170.667c0-23.565 19.103-42.667 42.667-42.667s42.667 19.102 42.667 42.667v170.667z", + "M128 469.333h768c23.564 0 42.667 19.103 42.667 42.667s-19.103 42.667-42.667 42.667h-768c-23.564 0-42.667-19.103-42.667-42.667s19.103-42.667 42.667-42.667z" + ], + "attrs": [{}, {}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["scan"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}, {}], + "properties": { "order": 85, "id": 61, "name": "scan", "prevSize": 32, "code": 59695 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 42 + }, + { + "icon": { + "paths": [ + "M512.009 170.674c-221.668 0-410.96 141.506-487.613 341.33 76.653 199.825 265.944 341.329 487.613 341.329 221.619 0 410.914-141.504 487.616-341.329-76.702-199.824-265.997-341.33-487.616-341.33zM512.009 268.197c163.499 0 309.491 94.499 381.461 243.807-71.97 149.308-217.963 243.806-381.461 243.806-163.543 0-309.535-94.498-381.458-243.806 71.923-149.308 217.914-243.807 381.458-243.807z", + "M512.055 316.198c-107.762 0-195.045 87.331-195.045 195.047 0 107.763 87.283 195.042 195.045 195.042 107.716 0 195.046-87.279 195.046-195.042 0-107.715-87.33-195.047-195.046-195.047zM512.060 413.721c53.781 0 97.519 43.738 97.519 97.524 0 53.833-43.738 97.523-97.519 97.523-53.786 0-97.524-43.691-97.524-97.523 0-53.786 43.739-97.524 97.524-97.524z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["eye-n"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 84, "id": 60, "name": "eye-n", "prevSize": 32, "code": 59696 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 43 + }, + { + "icon": { + "paths": [ + "M372.8 284.969c41.137-13.363 84.574-21.184 129.638-21.184 160.619 0 304 90.231 374.686 232.795-30.793 62.11-75.998 113.417-129.779 152.576l68.433 66.53c73.271-56.384 131.123-131.806 165.555-219.106-75.281-190.799-261.188-325.914-478.895-325.914-72.457 0-141.228 15.271-203.772 42.276l74.133 72.027z", + "M497.502 426.497c2.449-0.175 4.762-0.743 7.296-0.743 49.045 0 88.934 39.235 88.934 87.389 0 2.492-0.58 4.762-0.802 7.121l70.882 69.649c11.695-23.245 18.854-49.067 18.854-76.77 0-96.521-79.642-174.778-177.869-174.778-28.194 0-54.473 7.078-78.131 18.483l70.835 69.649z", + "M511.983 733.47c-157.38 0-297.908-89.378-367.139-230.601 20.042-40.909 46.655-76.835 77.398-108.105l102.603 100.817c-0.094 2.214-0.516 4.335-0.516 6.549 0 101.926 84.063 184.482 187.748 184.482 2.3 0 4.459-0.371 6.711-0.461l44.399 43.584c-16.849 2.214-33.839 3.733-51.204 3.733zM785.011 817.271l-612.711-602.006c-18.352-18.033-48.063-18.033-66.368 0-18.352 17.987-18.352 47.181 0 65.214l50.41 49.533c-48.579 48.98-88.053 107.231-113.727 172.861 73.831 189.001 256.039 322.842 469.364 322.842 45.295 0 88.947-6.643 130.624-17.941l76.041 74.714c9.199 9.041 21.167 13.513 33.182 13.513s24.030-4.471 33.186-13.513c18.351-17.988 18.351-47.181 0-65.216z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["eye-off"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 83, "id": 59, "name": "eye-off", "prevSize": 32, "code": 59697 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 44 + }, + { + "icon": { + "paths": [ + "M768 810.522c0 23.552-19.115 42.667-42.667 42.667h-426.667c-23.552 0-42.667-19.115-42.667-42.667v-298.667c0-23.552 19.115-42.667 42.667-42.667h426.667c23.552 0 42.667 19.115 42.667 42.667v298.667zM768.171 391.791v-50.432c0-141.184-114.859-256.043-256-256.043-103.125 0-195.669 61.397-235.819 156.373-9.173 21.717 0.939 46.763 22.656 55.936 21.675 9.131 46.763-1.024 55.893-22.699 26.795-63.317 88.533-104.277 157.269-104.277 94.123 0 170.667 76.587 170.667 170.709v42.496h-384.171c-70.571 0-128 57.429-128 128v298.667c0 70.571 57.429 128 128 128h426.667c70.571 0 128-57.429 128-128v-298.667c0-55.509-35.712-102.357-85.163-120.064z", + "M576 618.398c0-35.371-28.672-64-64-64s-64 28.629-64 64c0 18.901 8.363 35.755 21.419 47.445v59.051c0 23.637 19.157 42.795 42.837 42.795 23.637 0 42.795-19.157 42.795-42.795v-59.392c12.8-11.733 20.949-28.416 20.949-47.104z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["unlock"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 82, "id": 58, "name": "unlock", "prevSize": 32, "code": 59698 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 45 + }, + { + "icon": { + "paths": [ + "M768 810.522c0 23.552-19.115 42.667-42.667 42.667h-426.667c-23.552 0-42.667-19.115-42.667-42.667v-298.667c0-23.552 19.115-42.667 42.667-42.667h426.667c23.552 0 42.667 19.115 42.667 42.667v298.667zM512.171 170.65c94.123 0 170.667 76.587 170.667 170.709v42.496h-341.333v-42.496c0-94.123 76.544-170.709 170.667-170.709zM768.171 391.791v-50.432c0-141.184-114.859-256.043-256-256.043-141.184 0-256 114.859-256 256.043v50.304c-49.664 17.621-85.504 64.555-85.504 120.192v298.667c0 70.571 57.429 128 128 128h426.667c70.571 0 128-57.429 128-128v-298.667c0-55.509-35.712-102.357-85.163-120.064z", + "M576 618.398c0-35.371-28.672-64-64-64s-64 28.629-64 64c0 18.901 8.32 35.712 21.419 47.403v59.093c0 23.637 19.157 42.795 42.795 42.795 23.68 0 42.837-19.157 42.837-42.795v-59.392c12.8-11.733 20.949-28.416 20.949-47.104z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["lock"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 81, "id": 57, "name": "lock", "prevSize": 32, "code": 59699 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 46 + }, + { + "icon": { + "paths": [ + "M698.091 716.335l-140.16-55.339c-21.888-8.704-46.763 2.091-55.339 24.021-8.661 21.888 2.091 46.677 23.979 55.296l49.749 19.669c-28.8 10.027-59.136 15.787-90.027 15.787h-0.64c-96.812-0.213-187.308-52.395-236.247-136.149-11.819-20.309-37.973-27.221-58.325-15.317-20.352 11.861-27.221 37.973-15.317 58.325 64.085 109.781 182.741 178.176 309.761 178.475h0.768c40.789 0 80.939-7.637 119.040-21.035l-15.36 41.003c-8.277 22.059 2.901 46.635 25.003 54.912 4.907 1.835 9.941 2.731 14.933 2.731 17.28 0 33.536-10.539 39.979-27.733l52.48-140.032c8.192-21.76-2.603-46.080-24.277-54.613z", + "M673.843 242.419c28.971 0 52.48 23.552 52.48 52.48s-23.509 52.48-52.48 52.48c-28.928 0-52.437-23.552-52.437-52.48s23.509-52.48 52.437-52.48zM350.090 170.653c28.928 0 52.48 23.552 52.48 52.48 0 28.971-23.552 52.48-52.48 52.48-28.971 0-52.48-23.509-52.48-52.48 0-28.928 23.509-52.48 52.48-52.48zM893.235 554.953c-26.709-71.168-77.269-123.989-137.728-149.675 33.877-25.088 56.149-65.067 56.149-110.378 0-75.99-61.824-137.814-137.813-137.814-75.947 0-137.771 61.824-137.771 137.814 0 45.312 22.272 85.291 56.149 110.378-16.939 7.168-33.195 15.957-48.213 27.264-28.203-45.654-67.328-79.958-112.299-98.987 33.877-25.131 56.192-65.109 56.192-110.421 0-75.947-61.865-137.813-137.812-137.813-75.989 0-137.813 61.867-137.813 137.813 0 45.312 22.272 85.291 56.149 110.421-60.459 25.6-111.019 78.507-137.685 149.675-8.277 22.059 2.901 46.635 24.917 54.955 22.059 8.107 46.677-2.901 54.997-24.96 25.429-67.883 80.171-111.744 139.435-111.744 54.955 0 105.769 38.016 133.161 97.664-11.179 17.152-21.12 35.584-28.757 55.851-8.235 22.059 2.944 46.635 25.003 54.912 4.949 1.835 9.984 2.731 14.976 2.731 17.237 0 33.536-10.539 39.936-27.733 25.472-67.84 80.171-111.701 139.435-111.701s114.005 43.861 139.477 111.744c8.277 22.101 32.853 33.152 54.955 24.96 22.016-8.277 33.195-32.853 24.96-54.955z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["replace-owner"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 80, "id": 56, "name": "replace-owner", "prevSize": 32, "code": 59700 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 47 + }, + { + "icon": { + "paths": [ + "M512.132 170.667c70.571 0 128 57.387 128 128 0 70.571-57.429 128-128 128s-127.998-57.429-127.998-128c0-70.613 57.428-128 127.998-128zM696.068 514.944c-24.747-13.781-51.285-24.107-79.147-31.616 64.469-36.736 108.544-105.301 108.544-184.661 0-117.632-95.701-213.333-213.333-213.333-117.63 0-213.332 95.701-213.332 213.333 0 79.061 43.733 147.413 107.819 184.277-191.275 50.005-271.36 235.904-319.573 401.323-6.571 22.613 6.4 46.336 29.013 52.907 4.011 1.195 8.021 1.707 11.947 1.707 18.517 0 35.541-12.075 40.96-30.677 72.192-247.637 174.805-353.323 343.038-353.323 54.272 0 100.821 11.307 142.379 34.56 20.523 11.435 46.549 4.096 58.069-16.427 11.52-20.565 4.139-46.592-16.384-58.069z", + "M571.674 869.773l0.341 57.259c0 6.443 5.248 11.648 11.691 11.648h56.875c3.115 0 6.101-1.237 8.32-3.456l171.861-171.861c6.741-6.741 6.741-17.664 0-24.405l-50.432-50.475c-6.144-6.144-16.128-6.144-22.272 0l-172.928 172.971c-2.219 2.176-3.456 5.205-3.456 8.32z", + "M872.171 711.94l63.104-63.104c4.736-4.693 4.736-12.416 0-17.152l-56.661-56.576c-4.693-4.736-12.416-4.736-17.152 0l-63.061 63.061c-4.779 4.736-4.779 12.459 0 17.195l56.576 56.576c4.736 4.736 12.459 4.736 17.195 0z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["edit-owner"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 79, "id": 55, "name": "edit-owner", "prevSize": 32, "code": 59701 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 48 + }, + { + "icon": { + "paths": [ + "M555.115 170.667c70.571 0 128 57.429 128 128s-57.429 128-128 128c-70.571 0-128-57.429-128-128s57.429-128 128-128zM979.947 884.309c-48.256-165.376-128.299-351.232-319.403-401.323 64.128-36.821 107.904-105.216 107.904-184.32 0-117.632-95.701-213.333-213.333-213.333s-213.333 95.701-213.333 213.333c0 79.317 44.032 147.883 108.459 184.619-27.989 7.552-54.613 17.877-79.317 31.701-20.608 11.52-27.947 37.504-16.384 58.069 11.435 20.48 37.504 27.947 58.027 16.341 41.515-23.168 88.107-34.475 142.421-34.475 168.192 0 270.805 105.643 343.040 353.28 5.419 18.645 22.443 30.72 40.96 30.72 3.925 0 7.979-0.555 11.947-1.707 22.656-6.571 35.584-30.293 29.013-52.907z", + "M298.624 725.461h85.333c23.552 0 42.667 19.115 42.667 42.667 0 23.595-19.115 42.667-42.667 42.667h-85.333v85.333c0 23.552-19.072 42.667-42.667 42.667-23.552 0-42.667-19.115-42.667-42.667v-85.333h-85.291c-23.552 0-42.667-19.072-42.667-42.667 0-23.552 19.115-42.667 42.667-42.667h85.291v-85.291c0-23.595 19.115-42.667 42.667-42.667 23.595 0 42.667 19.072 42.667 42.667v85.291z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["add-owner"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 78, "id": 54, "name": "add-owner", "prevSize": 32, "code": 59702 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 49 + }, + { + "icon": { + "paths": [ + "M979.541 884.314c-65.873-225.809-162.812-360.751-316.979-401.515 63.13-37.052 105.519-105.64 105.519-184.123 0-117.815-95.518-213.333-213.333-213.333-117.845 0-213.334 95.505-213.334 213.333 0 78.872 42.786 147.741 106.424 184.661-72.535 19.913-133.866 61.282-184.672 122.799-15.005 18.172-12.44 45.065 5.728 60.070 18.169 15.002 45.062 12.437 60.067-5.73 58.092-70.34 130.554-105.549 225.62-105.549 172.625 0 272.363 111.010 343.040 353.284 6.601 22.618 30.289 35.61 52.907 29.009 22.622-6.601 35.61-30.285 29.013-52.907zM682.748 298.676c0 70.687-57.314 128-128 128-70.711 0-128-57.297-128-128s57.289-128 128-128c70.686 0 128 57.314 128 128z", + "M494.182 853.551h-366.161c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667h366.23l-12.079-12.079c-16.661-16.661-16.661-43.678 0-60.339s43.678-16.661 60.339 0l84.864 84.864c16.661 16.657 16.661 43.669 0.009 60.331l-84.864 84.907c-16.661 16.666-43.674 16.674-60.339 0.017-16.67-16.657-16.674-43.674-0.017-60.339l12.019-12.028z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["send-to"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 77, "id": 53, "name": "send-to", "prevSize": 32, "code": 59703 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 50 + }, + { + "icon": { + "paths": [ + "M682.671 383.957c47.061 0 85.333 38.272 85.333 85.333s-38.272 85.333-85.333 85.333c-47.061 0-85.333-38.272-85.333-85.333s38.272-85.333 85.333-85.333zM341.252 170.667c47.061 0 85.333 38.272 85.333 85.333s-38.272 85.333-85.333 85.333c-47.019 0-85.333-38.272-85.333-85.333s38.315-85.333 85.333-85.333zM979.503 884.011c-29.355-100.779-81.621-228.523-204.416-271.616 46.976-30.421 78.251-83.072 78.251-143.104 0-94.123-76.544-170.667-170.667-170.667-86.315 0-157.141 64.64-168.363 147.925-22.528-19.541-49.408-35.968-81.195-47.189 47.275-30.379 78.805-83.115 78.805-143.36 0-94.123-76.544-170.667-170.667-170.667s-170.667 76.544-170.667 170.667c0 60.032 31.317 112.725 78.336 143.104-122.88 43.093-175.147 170.88-204.544 271.701-6.571 22.613 6.357 46.336 29.013 52.907 3.968 1.152 7.979 1.707 11.947 1.707 18.517 0 35.541-12.075 40.96-30.72 46.080-157.909 110.379-225.28 215.040-225.28 92.288 0 151.552 51.371 195.968 168.917-85.973 56.405-126.934 160.683-151.723 245.675-6.571 22.613 6.443 46.336 29.013 52.907 4.011 1.152 8.021 1.707 11.947 1.707 18.518 0 35.542-12.075 40.96-30.72 46.037-157.909 110.336-225.28 215.040-225.28 104.661 0 168.96 67.371 215.040 225.28 6.571 22.571 29.952 35.584 52.907 29.013 22.656-6.571 35.584-30.293 29.013-52.907z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["owners"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 76, "id": 52, "name": "owners", "prevSize": 32, "code": 59704 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 51 + }, + { + "icon": { + "paths": [ + "M503.241 180.42l25.553-24.751c93.803-93.751 245.824-93.751 339.584 0.008 91.268 91.269 93.734 237.657 7.407 331.9l-7.403 7.731-128.781 128.823c-93.76 93.709-245.815 93.709-339.584-0.009-9.055-9.054-17.322-18.752-24.714-28.979-13.807-19.093-9.521-45.764 9.574-59.575 19.095-13.807 45.77-9.519 59.577 9.579 4.732 6.545 10.052 12.787 15.893 18.628 58.283 58.249 151.539 60.326 212.305 6.251l6.613-6.238 128.772-128.815c60.48-60.479 60.48-158.478 0-218.956-58.278-58.279-151.488-60.361-212.723-5.82l-6.669 6.293-26.027 25.216c-16.926 16.397-43.938 15.97-60.335-0.954-15.134-15.622-15.936-39.84-2.658-56.369l3.614-3.963z", + "M284.474 400.029c93.76-93.76 245.826-93.76 339.637 0 6.622 6.624 12.804 13.569 18.56 20.845 14.622 18.477 11.499 45.31-6.98 59.936-18.479 14.622-45.312 11.494-59.934-6.98-3.716-4.698-7.701-9.173-11.981-13.453-58.317-58.287-151.569-60.369-212.351-6.246l-6.617 6.242-128.797 128.755c-60.448 60.48-60.448 158.494-0.009 218.965 58.319 58.317 151.525 60.403 212.157 6.426l6.601-6.225 32.128-32.555c16.55-16.772 43.567-16.951 60.339-0.401 15.479 15.279 16.823 39.475 3.921 56.299l-3.524 4.041-32.324 32.755c-93.805 93.803-245.834 93.803-339.646-0.009-91.216-91.268-93.681-237.641-7.383-331.9l7.397-7.731 128.806-128.764z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["link"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 75, "id": 51, "name": "link", "prevSize": 32, "code": 59705 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 52 + }, + { + "icon": { + "paths": [ + "M426.656 512.149c0-15.859-2.47-31.138-7.048-45.474l216.957-131.441c27.311 29.952 66.65 48.745 110.387 48.745 82.483 0 149.333-66.847 149.333-149.333 0-82.456-66.859-149.333-149.333-149.333s-149.333 66.877-149.333 149.333c0 7.932 0.614 15.72 1.809 23.317l-228.064 138.169c-25.672-20.833-58.396-33.316-94.041-33.316-82.487 0-149.333 66.846-149.333 149.333 0 82.458 66.858 149.333 149.333 149.333 35.651 0 68.385-12.497 94.061-33.348l228.052 138.163c-1.199 7.62-1.818 15.433-1.818 23.39 0 82.487 66.846 149.333 149.333 149.333 82.483 0 149.333-66.846 149.333-149.333s-66.85-149.333-149.333-149.333c-43.712 0-83.034 18.773-110.34 48.695l-216.996-131.465c4.572-14.327 7.040-29.594 7.040-45.436zM746.953 170.645c35.341 0 64 28.666 64 64 0 35.358-28.642 64-64 64-35.362 0-64-28.642-64-64 0-35.334 28.655-64 64-64zM341.323 512.149c0 35.332-28.659 64-64 64s-64-28.668-64-64c0-35.358 28.641-64 64-64s64 28.642 64 64zM746.953 725.687c35.358 0 64 28.642 64 64s-28.642 64-64 64c-35.362 0-64-28.642-64-64s28.638-64 64-64z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["share"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 74, "id": 50, "name": "share", "prevSize": 32, "code": 59706 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 53 + }, + { + "icon": { + "paths": [ + "M853.333 853.333v-341.333c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667v341.333c0 47.13-38.204 85.333-85.333 85.333h-682.667c-47.128 0-85.333-38.204-85.333-85.333v-682.667c0-47.128 38.205-85.333 85.333-85.333h341.333c23.565 0 42.667 19.103 42.667 42.667s-19.102 42.667-42.667 42.667h-341.333v682.667h682.667z", + "M790.848 170.667h-110.327c-23.561 0-42.667-19.103-42.667-42.667s19.106-42.667 42.667-42.667h213.333c11.785 0 22.451 4.776 30.174 12.497 7.718 7.721 12.493 18.388 12.493 30.17v213.333c0 23.564-19.102 42.667-42.667 42.667-23.561 0-42.667-19.103-42.667-42.667v-110.327l-394.351 394.355c-16.661 16.661-43.677 16.661-60.34 0-16.662-16.666-16.662-43.678 0-60.343l394.351-394.351z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["external-link"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 73, "id": 49, "name": "external-link", "prevSize": 32, "code": 59707 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 54 + }, + { + "icon": { + "paths": [ + "M170.667 512v341.333c0 22.63 8.99 44.335 24.994 60.339s37.708 24.994 60.34 24.994h512c22.63 0 44.335-8.99 60.339-24.994s24.994-37.709 24.994-60.339v-341.333", + "M682.667 256l-170.667-170.667-170.667 170.667", + "M512 85.333v554.667" + ], + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["export"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }, { "s": 0 }, { "s": 0 }] } + }, + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "properties": { "order": 140, "id": 48, "name": "export", "prevSize": 32, "code": 59708 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 55 + }, + { + "icon": { + "paths": [ + "M704.009 128h63.991c47.13 0 85.333 38.205 85.333 85.333v640c0 47.13-38.204 85.333-85.333 85.333h-512c-47.128 0-85.333-38.204-85.333-85.333v-640c0-47.128 38.205-85.333 85.333-85.333h63.992c19.46-25.908 50.444-42.667 85.341-42.667h213.333c34.897 0 65.882 16.759 85.342 42.667zM300.8 213.333h-44.8v640h512v-640h-44.8c-9.882 48.688-52.928 85.333-104.533 85.333h-213.333c-51.604 0-94.65-36.646-104.533-85.333zM384 192c0 11.782 9.551 21.333 21.333 21.333h213.333c11.78 0 21.333-9.551 21.333-21.333s-9.553-21.333-21.333-21.333h-213.333c-11.782 0-21.333 9.551-21.333 21.333z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["paste"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 71, "id": 47, "name": "paste", "prevSize": 32, "code": 59709 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 56 + }, + { + "icon": { + "paths": [ + "M384 298.667h-170.667c-47.128 0-85.333 38.205-85.333 85.333v469.333c0 47.13 38.205 85.333 85.333 85.333h341.333c47.13 0 85.333-38.204 85.333-85.333v-128h170.667c47.13 0 85.333-38.204 85.333-85.333v-469.333c0-47.128-38.204-85.333-85.333-85.333h-341.333c-47.128 0-85.333 38.205-85.333 85.333v128zM640 640v-256c0-47.128-38.204-85.333-85.333-85.333h-85.333v-128h341.333v469.333h-170.667zM213.333 853.333v-469.333h341.333v469.333h-341.333z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["copy"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 70, "id": 46, "name": "copy", "prevSize": 32, "code": 59710 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 57 + }, + { + "icon": { + "paths": [ + "M528.73 869.734l0.299 57.259c0.043 6.443 5.248 11.648 11.691 11.648h56.875c3.115 0 6.101-1.237 8.32-3.413l171.861-171.904c6.741-6.741 6.741-17.707 0-24.448l-50.432-50.432c-6.144-6.144-16.128-6.144-22.272 0l-172.928 172.971c-2.219 2.176-3.456 5.205-3.413 8.32z", + "M829.188 711.898l63.104-63.061c4.736-4.736 4.736-12.459 0-17.195l-56.619-56.619c-4.736-4.736-12.459-4.736-17.195 0l-63.061 63.104c-4.779 4.736-4.779 12.459 0 17.195l56.619 56.576c4.736 4.736 12.416 4.736 17.152 0z", + "M554.603 342.191v-136.107l135.552 135.424-135.552 0.683zM810.688 469.295v-112.085c0-10.24-4.096-20.011-11.349-27.221l-231.765-231.552c-8.405-8.405-19.755-13.099-31.616-13.099h-322.603c-47.189 0-85.333 38.187-85.333 85.333v682.666c0 47.104 38.144 85.333 85.333 85.333h170.197c0.171 0 0.299 0.085 0.469 0.085 23.595 0 42.667-19.115 42.667-42.667s-19.072-42.667-42.667-42.667v-0.085h-170.667v-682.666h255.915v171.52c0 46.464 37.888 84.267 84.437 84.267h171.648v43.050h0.085c0.256 23.381 19.157 42.283 42.581 42.283 23.467 0 42.368-18.901 42.581-42.283h0.085v-0.213z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["sign"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 69, "id": 45, "name": "sign", "prevSize": 32, "code": 59711 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 58 + }, + { + "icon": { + "paths": [ + "M256.021 853.35v-682.667h255.915v171.52c0 46.421 37.888 84.224 84.437 84.224h171.648v426.923h-512zM732.821 341.478l-135.552 0.725v-136.107l135.552 135.381zM842.005 329.958l-231.765-231.509c-8.405-8.405-19.755-13.099-31.573-13.099h-322.646c-47.147 0-85.333 38.229-85.333 85.333v682.667c0 47.104 38.187 85.333 85.333 85.333h512c47.104 0 85.333-38.229 85.333-85.333v-496.171c0-10.197-4.096-20.011-11.349-27.221z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["document"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 68, "id": 44, "name": "document", "prevSize": 32, "code": 59712 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 59 + }, + { + "icon": { + "paths": [ + "M204.905 120.436c21.922-22.477 51.655-35.103 82.657-35.103h299.25c11.162 0 21.862 4.546 29.756 12.637l224.439 230.113c7.893 8.091 12.326 19.066 12.326 30.509v460.224c0 31.782-12.314 62.268-34.236 84.745-0.004 0-0.004 0-0.004 0.004-0.004 0-0.004 0.004-0.009 0.004-21.926 22.485-51.661 35.098-82.65 35.098h-448.873c-30.997 0-60.733-12.617-82.661-35.106-21.923-22.477-34.234-52.962-34.234-84.745v-613.632c0-31.786 12.316-62.27 34.237-84.747 0 0 0 0 0-0zM287.562 171.626c-8.682 0-17.007 3.536-23.144 9.828l-0 0.001c-6.138 6.294-9.587 14.83-9.587 23.729v613.632c0 8.905 3.45 17.438 9.584 23.727l0.006 0.009c6.132 6.289 14.453 9.822 23.141 9.822h448.873c8.687 0 17.011-3.537 23.138-9.822l0.013-0.013c6.135-6.285 9.583-14.822 9.583-23.723v-417.077h-182.396c-11.162 0-21.867-4.547-29.756-12.64-7.893-8.093-12.326-19.069-12.326-30.513l0.030-186.96h-257.159zM628.877 232.626l-0.013 82.82h80.794l-80.781-82.82zM320.31 396.963c0-23.829 18.841-43.146 42.082-43.146h74.813c23.241 0 42.082 19.317 42.082 43.146s-18.842 43.148-42.082 43.148h-74.813c-23.241 0-42.082-19.319-42.082-43.148zM320.255 550.391c0-23.829 18.841-43.149 42.082-43.149h299.248c23.241 0 42.082 19.319 42.082 43.149s-18.842 43.145-42.082 43.145h-299.248c-23.241 0-42.082-19.315-42.082-43.145zM320.255 703.761c0-23.829 18.841-43.145 42.082-43.145h299.248c23.241 0 42.082 19.315 42.082 43.145s-18.842 43.149-42.082 43.149h-299.248c-23.241 0-42.082-19.319-42.082-43.149z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["file"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 67, "id": 43, "name": "file", "prevSize": 32, "code": 59713 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 60 + }, + { + "icon": { + "paths": [ + "M170.682 426.662c0-141.184 114.816-256 256.001-256 141.141 0 256 114.816 256 256s-114.859 256-256 256c-141.185 0-256.001-114.816-256.001-256zM926.097 865.83l-230.059-230.059c44.928-57.771 71.979-130.219 71.979-209.109 0-188.501-152.832-341.333-341.333-341.333-188.545 0-341.335 152.832-341.335 341.333s152.789 341.333 341.335 341.333c78.848 0 151.253-27.008 208.981-71.893l230.101 230.059c16.597 16.597 43.733 16.597 60.331 0s16.597-43.733 0-60.331z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["search"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 66, "id": 42, "name": "search", "prevSize": 32, "code": 59714 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 61 + }, + { + "icon": { + "paths": [ + "M750.626 385.792l-110.123-111.061 105.344-103.253 106.539 107.477c0.256 0.256-0.213 4.352 0.085 4.608l-101.845 102.229zM281.163 853.333h-110.507v-111.829l408.962-406.955 110.72 111.659-409.175 407.125zM938.658 279.765c-0.299-23.723-9.728-45.653-25.685-60.885l-105.771-106.667c-15.744-16.811-38.187-26.581-61.653-26.88h-1.152c-23.509 0-46.293 9.472-62.635 25.899l-583.852 582.272c-8.021 7.979-12.587 18.901-12.587 30.251v172.245c0 23.595 19.072 42.667 42.667 42.667h170.795c11.307 0 22.101-4.437 30.080-12.416l584.108-582.485c16.64-16.811 26.027-40.149 25.685-64z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["edit"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 65, "id": 41, "name": "edit", "prevSize": 32, "code": 59715 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 62 + }, + { + "icon": { + "paths": [ + "M426.667 768.414c23.595 0 42.667-19.072 42.667-42.667v-256c0-23.595-19.072-42.667-42.667-42.667s-42.667 19.072-42.667 42.667v256c0 23.595 19.072 42.667 42.667 42.667z", + "M597.376 768.414c23.595 0 42.667-19.072 42.667-42.667v-256c0-23.595-19.072-42.667-42.667-42.667s-42.667 19.072-42.667 42.667v256c0 23.595 19.072 42.667 42.667 42.667z", + "M704.546 834.167c-0.555 10.837-11.008 19.328-21.205 19.243h-343.34c-9.813-1.109-19.669-8.363-20.224-19.541l-27.648-492.544h438.914l-26.496 492.843zM426.528 196.941c0-14.251 12.076-26.283 26.327-26.283h118.101c14.507 0 26.325 11.819 26.325 26.283v59.051h-170.754v-59.051zM853.325 255.991h-74.155c-0.256 0-0.512-0.213-0.811-0.213-0.512-0.043-0.939 0.213-1.493 0.213h-94.251v-59.051c0-61.525-50.048-111.616-111.659-111.616h-118.101c-61.57 0-111.66 50.091-111.66 111.616v59.051h-170.539c-23.552 0-42.667 19.072-42.667 42.667s19.115 42.667 42.667 42.667h36.053l27.861 496.939c2.688 55.893 49.536 100.523 104.107 100.523 0.768 0 1.536-0.043 2.304-0.043h343.767c55.467 0 102.357-44.544 105.045-100.181l26.709-497.237h36.821c23.595 0 42.667-19.072 42.667-42.667s-19.072-42.667-42.667-42.667z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["delete"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 64, "id": 40, "name": "delete", "prevSize": 32, "code": 59716 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 63 + }, + { + "icon": { + "paths": [ + "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667zM170.667 512c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333z", + "M572.343 512l90.509 90.509c16.661 16.661 16.661 43.678 0 60.339-16.661 16.666-43.678 16.666-60.339 0l-90.509-90.509-90.511 90.509c-16.663 16.666-43.677 16.666-60.34 0-16.662-16.661-16.662-43.678 0-60.339l90.508-90.509-90.508-90.51c-16.662-16.663-16.662-43.677 0-60.34s43.677-16.662 60.34 0l90.511 90.511 90.509-90.511c16.661-16.662 43.678-16.662 60.339 0s16.661 43.677 0 60.34l-90.509 90.51z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["close-outlined"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 63, "id": 39, "name": "close-outlined", "prevSize": 32, "code": 59717 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 64 + }, + { + "icon": { + "paths": [ + "M938.675 511.987c0 235.648-191.061 426.667-426.667 426.667-235.646 0-426.665-191.019-426.665-426.667 0-235.605 191.019-426.667 426.665-426.667 235.605 0 426.667 191.061 426.667 426.667zM572.352 512.004l146.782-146.765c16.597-16.64 16.597-43.733 0-60.373-16.64-16.597-43.733-16.597-60.373 0l-146.761 146.782-146.784-146.782c-16.597-16.597-43.733-16.597-60.331 0-16.597 16.64-16.597 43.733 0 60.373l146.763 146.765-146.763 146.782c-16.597 16.597-16.597 43.733 0 60.331s43.733 16.597 60.331 0l146.784-146.765 146.761 146.765c16.64 16.597 43.733 16.597 60.373 0 16.597-16.597 16.597-43.733 0-60.331l-146.782-146.782z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["close-filled"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 62, "id": 38, "name": "close-filled", "prevSize": 32, "code": 59718 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 65 + }, + { + "icon": { + "paths": [ + "M566.336 512l318.455 318.46c14.942 14.976 14.942 39.364 0 54.306-14.98 14.98-39.369 14.98-54.345 0l-318.447-318.434-318.446 318.434c-14.979 14.98-39.367 14.98-54.345 0-14.94-14.942-14.94-39.33 0-54.306l318.455-318.46-318.459-318.449c-14.94-14.979-14.94-39.367 0-54.346 14.979-14.94 39.367-14.94 54.345 0l318.449 318.455 318.451-318.455c14.976-14.94 39.364-14.94 54.345 0 14.938 14.979 14.938 39.368 0 54.346l-318.46 318.449z" + ], + "attrs": [ + { + "strokeLinejoin": "miter", + "strokeLinecap": "butt", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["close"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }] } + }, + "attrs": [ + { + "strokeLinejoin": "miter", + "strokeLinecap": "butt", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "properties": { "order": 134, "id": 37, "name": "close", "prevSize": 32, "code": 59719 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 66 + }, + { + "icon": { + "paths": [ + "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667zM170.667 512c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333z", + "M554.667 469.333h128c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667h-128v128c0 23.565-19.102 42.667-42.667 42.667s-42.667-19.102-42.667-42.667v-128h-128c-23.564 0-42.667-19.102-42.667-42.667s19.103-42.667 42.667-42.667h128v-128c0-23.564 19.102-42.667 42.667-42.667s42.667 19.103 42.667 42.667v128z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["plus-outlined"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 60, "id": 36, "name": "plus-outlined", "prevSize": 32, "code": 59720 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 67 + }, + { + "icon": { + "paths": [ + "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667zM682.667 469.333h-128v-128c0-23.564-19.102-42.667-42.667-42.667s-42.667 19.103-42.667 42.667v128h-128c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667h128v128c0 23.565 19.102 42.667 42.667 42.667s42.667-19.102 42.667-42.667v-128h128c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["plus-filled"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 59, "id": 35, "name": "plus-filled", "prevSize": 32, "code": 59721 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 68 + }, + { + "icon": { + "paths": [ + "M503.019 170.667c24.802 0 44.911 20.108 44.911 44.912v592.844c0 24.802-20.109 44.911-44.911 44.911-24.806 0-44.915-20.109-44.915-44.911v-592.844c0-24.804 20.109-44.912 44.915-44.912z", + "M853.333 503.019c0 24.802-20.109 44.911-44.911 44.911h-592.844c-24.804 0-44.912-20.109-44.912-44.911 0-24.806 20.108-44.915 44.912-44.915h592.844c24.802 0 44.911 20.109 44.911 44.915z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["plus"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 58, "id": 34, "name": "plus", "prevSize": 32, "code": 59722 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 69 + }, + { + "icon": { + "paths": [ + "M512 1024c282.768 0 512-229.232 512-512 0-282.77-229.232-512-512-512-282.77 0-512 229.23-512 512 0 282.768 229.23 512 512 512z", + "M501.592 258.457c6.554-3.276 14.262-3.276 20.815 0l232.723 116.364c7.885 3.942 12.865 12 12.865 20.816s-4.98 16.874-12.865 20.816l-232.723 116.363c-6.554 3.277-14.262 3.277-20.815 0l-232.723-116.363c-7.884-3.942-12.865-12-12.865-20.816s4.98-16.874 12.865-20.816l232.723-116.364zM331.316 395.636l180.684 90.345 180.685-90.345-180.685-90.344-180.684 90.344zM258.462 501.592c5.748-11.497 19.727-16.156 31.223-10.408l222.315 111.16 222.315-111.16c11.497-5.748 25.474-1.089 31.223 10.408s1.089 25.474-10.408 31.223l-232.723 116.364c-6.554 3.277-14.262 3.277-20.815 0l-232.723-116.364c-11.496-5.748-16.156-19.726-10.408-31.223zM258.462 617.956c5.748-11.497 19.727-16.156 31.223-10.408l222.315 111.16 222.315-111.16c11.497-5.748 25.474-1.089 31.223 10.408s1.089 25.474-10.408 31.223l-232.723 116.364c-6.554 3.277-14.262 3.277-20.815 0l-232.723-116.364c-11.496-5.748-16.156-19.726-10.408-31.223z" + ], + "attrs": [{ "fill": "rgb(255, 214, 0)" }, { "fill": "rgb(0, 0, 0)" }], + "isMulticolor": true, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-Batch"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "f": 2 }, { "f": 0 }] } + }, + "attrs": [{ "fill": "rgb(255, 214, 0)" }, { "fill": "rgb(0, 0, 0)" }], + "properties": { + "order": 57, + "id": 33, + "name": "transaction-Batch", + "prevSize": 32, + "code": 59723, + "codes": [59723, 59724] + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 70 + }, + { + "icon": { + "paths": [ + "M234.667 192h170.667c23.564 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.103 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.103-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667z", + "M234.667 576h170.667c23.564 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.103 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.103-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667z", + "M618.667 192h170.667c23.564 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.103 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.103-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667z", + "M618.667 576h170.667c23.564 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.103 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.103-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667z" + ], + "attrs": [{}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["blocks-1"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}], + "properties": { "order": 56, "id": 32, "name": "blocks-1", "prevSize": 32, "code": 59725 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 71 + }, + { + "icon": { + "paths": [ + "M128 224c0-35.346 28.654-64 64-64h640c35.345 0 64 28.654 64 64s-28.655 64-64 64h-640c-35.346 0-64-28.654-64-64z", + "M128 736c0-35.345 28.654-64 64-64h640c35.345 0 64 28.655 64 64s-28.655 64-64 64h-640c-35.346 0-64-28.655-64-64z", + "M128 480c0-35.345 28.654-64 64-64h640c35.345 0 64 28.655 64 64s-28.655 64-64 64h-640c-35.346 0-64-28.655-64-64z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["rows-1"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 55, "id": 31, "name": "rows-1", "prevSize": 32, "code": 59726 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 72 + }, + { + "icon": { + "paths": [ + "M494.656 89.428c10.918-5.46 23.77-5.46 34.688 0l387.874 193.939c13.141 6.57 21.44 20.001 21.44 34.693s-8.299 28.122-21.44 34.693l-387.874 193.939c-10.918 5.461-23.77 5.461-34.688 0l-387.873-193.939c-13.14-6.57-21.441-20.001-21.441-34.693s8.3-28.123 21.441-34.693l387.873-193.939zM210.86 318.061l301.14 150.573 301.141-150.573-301.141-150.573-301.14 150.573zM89.437 494.652c9.58-19.157 32.879-26.927 52.038-17.344l370.525 185.267 370.526-185.267c19.157-9.583 42.458-1.813 52.036 17.344 9.583 19.162 1.813 42.462-17.344 52.041l-387.874 193.941c-10.918 5.457-23.77 5.457-34.688 0l-387.873-193.941c-19.16-9.579-26.926-32.879-17.346-52.041zM89.437 688.593c9.58-19.162 32.879-26.927 52.038-17.348l370.525 185.267 370.526-185.267c19.157-9.579 42.458-1.813 52.036 17.348 9.583 19.162 1.813 42.458-17.344 52.041l-387.874 193.937c-10.918 5.461-23.77 5.461-34.688 0l-387.873-193.937c-19.16-9.583-26.926-32.879-17.346-52.041z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["batch"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 54, "id": 30, "name": "batch", "prevSize": 32, "code": 59727 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 73 + }, + { + "icon": { + "paths": [ + "M181.33 239.36c86.187 110.507 245.333 315.307 245.333 315.307v256c0 23.467 19.199 42.667 42.665 42.667h85.333c23.467 0 42.667-19.2 42.667-42.667v-256c0 0 158.72-204.8 244.907-315.307 21.76-28.16 1.707-68.693-33.707-68.693h-593.492c-35.413 0-55.467 40.533-33.707 68.693z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["filter"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 53, "id": 29, "name": "filter", "prevSize": 32, "code": 59728 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 74 + }, + { + "icon": { + "paths": [ + "M246.137 161.741c21.004-21.604 49.492-33.741 79.196-33.741h373.333c29.705 0 58.193 12.137 79.198 33.741 21.001 21.604 32.802 50.906 32.802 81.459v614.4c0 14.383-7.817 27.563-20.25 34.142-12.437 6.583-27.405 5.466-38.784-2.893l-239.633-176.060-239.634 176.060c-11.38 8.358-26.348 9.476-38.782 2.893-12.435-6.579-20.25-19.759-20.25-34.142v-614.4c0-30.553 11.8-59.855 32.804-81.459z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["bookmark-filled"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 52, "id": 28, "name": "bookmark-filled", "prevSize": 32, "code": 59729 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 75 + }, + { + "icon": { + "paths": [ + "M325.333 204.8c-9.901 0-19.397 4.046-26.399 11.247s-10.935 16.969-10.935 27.153v539.78l202.3-148.629c12.983-9.536 30.417-9.536 43.401 0l202.3 148.629v-539.78c0-10.184-3.934-19.951-10.935-27.153s-16.495-11.247-26.398-11.247h-373.333zM246.137 161.741c21.004-21.604 49.492-33.741 79.196-33.741h373.333c29.705 0 58.193 12.137 79.198 33.741 21.001 21.604 32.802 50.906 32.802 81.459v614.4c0 14.383-7.817 27.563-20.25 34.142-12.437 6.583-27.405 5.466-38.784-2.893l-239.633-176.060-239.634 176.060c-11.38 8.358-26.348 9.476-38.782 2.893-12.435-6.579-20.25-19.759-20.25-34.142v-614.4c0-30.553 11.8-59.855 32.804-81.459z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["bookmark"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 51, "id": 27, "name": "bookmark", "prevSize": 32, "code": 59730 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 76 + }, + { + "icon": { + "paths": [ + "M512.009 42.671c-63.962-0.254-127.283 12.687-186.014 38.014s-111.606 62.497-155.32 109.186v-83.2c0.070-6.185-1.206-12.311-3.738-17.954s-6.262-10.668-10.929-14.726c-4.667-4.059-10.161-7.054-16.101-8.778s-12.183-2.137-18.298-1.209c-10.351 2.006-19.661 7.599-26.295 15.793s-10.164 18.466-9.972 29.007v189.867c0 11.316 4.495 22.168 12.497 30.17s18.854 12.497 30.17 12.497h192c6.185 0.070 12.311-1.206 17.954-3.738s10.668-6.262 14.726-10.929c4.059-4.667 7.054-10.161 8.779-16.101s2.137-12.183 1.208-18.298c-2.006-10.351-7.599-19.661-15.793-26.295s-18.466-10.164-29.007-9.972h-91.733c49.696-55.344 114.396-95.063 186.238-114.332 71.84-19.269 147.736-17.258 218.456 5.789s133.227 66.136 179.921 124.034c46.694 57.898 75.571 128.111 83.119 202.109 1.058 10.56 6.020 20.348 13.909 27.447s18.142 11.004 28.757 10.953c5.982 0.030 11.9-1.199 17.374-3.605 5.478-2.406 10.385-5.935 14.409-10.359 4.023-4.429 7.074-9.647 8.947-15.33 1.873-5.679 2.534-11.686 1.937-17.638-11.639-115.805-65.89-223.153-152.226-301.208-86.332-78.054-198.588-121.247-314.974-121.193z", + "M896.081 682.667h-192c-6.187-0.068-12.309 1.207-17.954 3.738-5.645 2.534-10.667 6.263-14.724 10.931-4.062 4.668-7.057 10.159-8.781 16.098-1.724 5.943-2.138 12.186-1.207 18.3 2.005 10.351 7.599 19.661 15.791 26.295 8.196 6.635 18.466 10.163 29.009 9.971h91.733c-49.698 55.343-114.398 95.061-186.24 114.334-71.842 19.268-147.733 17.254-218.455-5.79-70.721-23.049-133.227-66.138-179.922-124.036-46.695-57.894-75.571-128.111-83.117-202.108-1.061-10.56-6.021-20.348-13.91-27.447s-18.142-11.004-28.756-10.953c-5.981-0.030-11.901 1.199-17.377 3.605s-10.385 5.935-14.408 10.359c-4.023 4.429-7.071 9.647-8.946 15.33-1.875 5.679-2.534 11.686-1.936 17.638 8.961 89.579 43.494 174.686 99.483 245.18s131.070 123.401 216.292 152.405c85.223 29.009 176.986 32.892 264.355 11.191 87.373-21.696 166.656-68.066 228.403-133.577v83.2c-0.073 6.187 1.203 12.309 3.738 17.954s6.263 10.667 10.927 14.724c4.668 4.062 10.163 7.057 16.102 8.781s12.186 2.138 18.3 1.207c10.351-2.005 19.661-7.599 26.295-15.791 6.63-8.196 10.163-18.466 9.971-29.009v-189.867c0-11.315-4.497-22.17-12.497-30.17s-18.854-12.497-30.17-12.497z", + "M738.842 465.613h-180.275v-180.275c0-25.617-20.766-46.409-46.409-46.409-25.617 0-46.409 20.791-46.409 46.409v180.275h-180.227c-25.641 0-46.408 20.791-46.408 46.409s20.768 46.409 46.408 46.409h180.227v180.25c0 25.617 20.791 46.409 46.409 46.409 25.643 0 46.409-20.791 46.409-46.409v-180.25h180.275c25.617 0 46.404-20.791 46.404-46.409s-20.787-46.409-46.404-46.409z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-recovery"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 50, "id": 26, "name": "transaction-recovery", "prevSize": 32, "code": 59731 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 77 + }, + { + "icon": { + "paths": [ + "M512.081 691.2c-101.632 0-184.235-80.213-184.235-179.2s82.517-179.2 184.32-179.2c101.717 0 184.149 80.213 184.149 179.2s-82.432 179.2-184.235 179.2zM903.164 561.664c2.133-16.384 3.755-32.768 3.755-49.664s-1.621-33.792-3.755-51.2l111.104-83.456c4.843-3.771 8.149-9.172 9.31-15.198 1.165-6.026 0.098-12.269-2.995-17.57l-105.301-177.152c-3.136-5.387-8.085-9.481-13.965-11.545-5.884-2.065-12.305-1.965-18.121 0.281l-131.072 51.2c-27.277-20.606-57.178-37.48-88.917-50.176l-19.541-135.68c-1.161-6.099-4.429-11.595-9.237-15.526-4.804-3.931-10.837-6.047-17.045-5.978h-210.517c-6.223-0.090-12.277 2.017-17.1 5.95s-8.105 9.44-9.268 15.554l-19.456 135.68c-33.195 12.8-61.611 30.208-88.917 50.176l-131.072-51.2c-5.824-2.269-12.268-2.381-18.168-0.315s-10.866 6.173-14.003 11.579l-105.216 177.152c-3.225 5.265-4.365 11.546-3.197 17.609s4.561 11.47 9.512 15.159l111.019 83.456c-2.251 16.977-3.476 34.074-3.669 51.2 0 16.896 1.621 33.28 3.669 49.664l-111.019 84.992c-4.951 3.691-8.343 9.097-9.512 15.159s-0.028 12.343 3.197 17.609l105.216 177.152c6.315 11.264 20.565 15.36 32.171 11.264l131.072-51.712c27.307 20.48 55.723 37.888 88.917 50.688l19.456 135.68c1.164 6.114 4.445 11.622 9.268 15.552 4.823 3.934 10.877 6.042 17.1 5.952h210.517c6.208 0.068 12.241-2.048 17.045-5.978 4.809-3.93 8.077-9.429 9.237-15.526l19.541-135.68c31.757-12.873 61.662-29.918 88.917-50.688l131.072 51.712c11.605 4.096 25.771 0 32.085-11.264l105.301-177.152c3.093-5.299 4.16-11.541 2.995-17.57-1.161-6.025-4.467-11.426-9.31-15.198l-111.104-84.992z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-change-settings"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 49, "id": 25, "name": "transaction-change-settings", "prevSize": 32, "code": 59732 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 78 + }, + { + "icon": { + "paths": [ + "M384.023 810.637c-10.913 0-21.825-4.186-30.138-12.463l-256.063-255.953c-7.971-8.026-12.49-18.863-12.49-30.212 0-11.307 4.518-22.187 12.49-30.161l255.849-256.002c16.667-16.683 43.651-16.683 60.275 0 16.666 16.683 16.666 43.648 0 60.331l-225.669 225.833 225.882 225.754c16.666 16.683 16.666 43.644 0.043 60.373-8.312 8.316-19.267 12.501-30.18 12.501z", + "M640.009 810.637c-10.923 0-21.845-4.186-30.165-12.501-16.683-16.683-16.683-43.652 0-60.335l225.792-225.792-225.792-225.833c-16.683-16.683-16.683-43.648 0-60.331s43.648-16.683 60.331 0l255.962 256.002c16.678 16.678 16.678 43.648 0 60.331l-255.962 255.957c-8.32 8.316-19.238 12.501-30.165 12.501z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-contract"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 48, "id": 24, "name": "transaction-contract", "prevSize": 32, "code": 59733 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 79 + }, + { + "icon": { + "paths": [ + "M897.032 99.153c2.961 2.253 5.607 4.901 7.86 7.872 37.29 49.112 14.074 242.14-55.288 328.405l-6.431 7.545-18.506 18.678 1.896 10.543c19.878 119.267 0.057 230.666-45.294 329.597-19.915 43.442-40.096 74.924-54.338 92.721-14.201 17.744-39.637 20.316-56.975 6.685l-3.846-3.432-136.684-138.031-29.475 29.848c-44.397 44.745-124.609 7.549-199.403-65.319l-7.22-7.16c-74.377-75.092-114.932-157.11-75.762-204.194l4.041-4.448 29.413-29.729-136.609-137.993c-17.2-17.371-15.702-45.96 3.219-61.4 17.623-14.381 48.802-34.757 91.823-54.863 100.859-47.136 214.813-66.956 336.893-43.851l18.629-18.704 8.995-7.909c58.298-48.033 152.216-71.286 241.275-71.286 37.99 0 65.409 3.976 81.785 16.428zM587.346 701.26l101.065 102.048c4.329-7.569 8.462-15.393 12.513-23.618l6.005-12.636c32.424-70.738 49.562-148.595 44.503-231.436l-164.086 165.642zM815.247 165.433c-71.029 0-146.907 18.706-187.163 50.672l-6.373 5.449-336.347 339.499 1.029 3.826 2.098 6.078 1.384 3.404 2.501 5.517c11.216 23.376 32.218 51.823 58.882 78.742 26.676 26.931 54.846 48.144 77.987 59.474 3.793 1.86 7.299 3.371 10.437 4.542l4.42 1.503 3.793 1.008 335.704-338.928c26.477-29.211 44.896-81.041 52.543-141.297 2.63-20.728 3.785-41.26 3.523-59.102l-0.324-10.362-0.647-9.090-9.339-0.623-6.836-0.232-7.27-0.079zM219.438 311.785l-11.529 6.395 101.072 102.037 164.131-165.614c-82.064-5.115-159.182 12.186-229.244 44.929-8.541 3.992-16.69 8.092-24.431 12.252z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-execute"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 47, "id": 23, "name": "transaction-execute", "prevSize": 32, "code": 59734 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 80 + }, + { + "icon": { + "paths": [ + "M980.258 154.546c3.703-20.891 3.699-20.892 3.691-20.893l16.439 2.448 2.675 15.065c-0.004-0.008-0.004-0.015-22.805 3.38z", + "M70.168 151.181l-0.013 0.074-0.029 0.169-0.098 0.578-0.336 2.087c-0.28 1.795-0.663 4.384-1.1 7.688-0.873 6.605-1.961 16.079-2.86 27.772-1.793 23.348-2.842 55.745 0.164 91.934 5.942 71.526 28.060 161.951 96.514 224.671 51.195 46.903 119.207 69.956 182.265 80.905 50.973 8.849 100.099 10.035 137.33 8.9v252.002c0 26.53 23.475 48.038 52.433 48.038s52.433-21.508 52.433-48.038v-252.109c36.843 1.323 86.306 0.474 137.907-8.124 64.137-10.688 133.828-33.724 186.031-81.553 68.463-62.724 90.581-153.159 96.525-224.693 3.008-36.193 1.958-68.593 0.162-91.944-0.896-11.695-1.984-21.17-2.859-27.776-0.435-3.304-0.819-5.894-1.101-7.689l-0.337-2.087-0.094-0.578-0.030-0.169-0.013-0.074-22.805 3.38 3.691-20.893-0.9-0.129-2.278-0.308c-1.958-0.256-4.783-0.608-8.388-1.008-7.211-0.8-17.553-1.798-30.319-2.621-25.485-1.643-60.847-2.604-100.352 0.15-78.071 5.445-176.777 25.712-245.239 88.438-26.227 24.029-45.611 52.096-59.883 81.484-14.268-29.386-33.651-57.45-59.874-81.478-68.455-62.719-167.148-82.984-245.214-88.428-39.498-2.755-74.857-1.793-100.34-0.15-12.763 0.823-23.103 1.82-30.312 2.62-3.606 0.4-6.432 0.751-8.391 1.008l-2.278 0.308-0.631 0.090-0.185 0.027-0.081 0.012 3.688 20.893c-3.702-20.873-3.696-20.892-3.688-20.893l-16.442 2.448-2.672 15.065c0.002-0.008 0.020-0.012 22.802 3.38l-22.802-3.38zM849.673 225.542c19.631-1.369 38.182-1.648 54.579-1.356 0.316 15.023 0.013 32.019-1.481 50.006-5.303 63.805-24.358 125.788-66.112 164.047-41.758 38.259-109.41 55.718-179.051 60.574-19.631 1.37-38.182 1.647-54.575 1.357-0.32-15.023-0.017-32.021 1.481-50.005 5.299-63.806 24.354-125.789 66.112-164.048 41.754-38.258 109.406-55.717 179.046-60.573zM170.461 274.192c-1.494-17.981-1.799-34.972-1.481-49.99 16.392-0.292 34.937-0.012 54.562 1.356 69.631 4.855 137.271 22.312 179.020 60.564 41.747 38.252 60.802 100.224 66.101 164.020 1.493 17.98 1.801 34.974 1.481 49.993-16.393 0.29-34.935 0.013-54.562-1.357-69.63-4.855-137.27-22.315-179.020-60.565s-60.802-100.224-66.102-164.020z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-stake"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 46, "id": 22, "name": "transaction-stake", "prevSize": 32, "code": 59735 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 81 + }, + { + "icon": { + "paths": [ + "M690.655 133.067c-12.157-11.836-31.605-11.576-43.438 0.58-11.837 12.156-11.579 31.605 0.578 43.441l73.273 71.343h-370.421c-41.68 0-81.813 16.114-111.528 45.047-29.744 28.96-46.609 68.416-46.609 109.735v62.032c0 16.966 13.754 30.72 30.72 30.72s30.72-13.754 30.72-30.72v-62.032c0-24.487 9.983-48.143 28.031-65.715 18.075-17.599 42.761-27.628 68.667-27.628h370.396l-73.249 71.321c-12.157 11.835-12.415 31.284-0.578 43.441 11.833 12.153 31.281 12.415 43.438 0.578l127.418-124.060c5.939-5.783 9.29-13.721 9.29-22.010s-3.351-16.227-9.29-22.010l-127.418-124.062zM372.658 567.865c11.836 12.157 11.576 31.605-0.58 43.442l-73.254 71.324h370.368c25.907 0 50.594-10.027 68.669-27.628 18.047-17.572 28.029-41.226 28.029-65.716v-62.030c0-16.966 13.754-30.72 30.72-30.72s30.72 13.754 30.72 30.72v62.030c0 41.32-16.867 80.777-46.608 109.736-29.716 28.934-69.849 45.048-111.53 45.048h-370.384l73.27 71.34c12.156 11.833 12.415 31.285 0.58 43.438-11.836 12.157-31.284 12.415-43.441 0.582l-127.418-124.064c-1.823-1.774-3.403-3.752-4.716-5.882-2.755-4.452-4.403-9.667-4.561-15.249-0.009-0.295-0.013-0.59-0.013-0.885 0-8.847 3.739-16.818 9.723-22.426l126.985-123.638c12.156-11.837 31.605-11.575 43.441 0.578z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-swap"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 45, "id": 21, "name": "transaction-swap", "prevSize": 32, "code": 59736 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 82 + }, + { + "icon": { + "paths": [ + "M777.183 648.356c-34.431 0.045-62.538-28.336-62.493-63.095v-204.367l-423.727 427.783c-24.309 24.543-64.087 24.543-88.396 0-24.353-24.584-24.309-64.7 0-89.24l423.727-427.787-202.472-0.044c-34.386 0-62.496-28.38-62.496-63.095s28.11-63.095 62.496-63.095l353.361 0.045c5.218-0.089 9.9 1.785 14.717 2.99 2.961 0.759 6.058 0.669 8.974 1.83 2.609 1.026 4.641 3.079 6.984 4.551 11.887 6.917 21.746 16.956 27.050 29.807 1.102 2.811 1.016 5.845 1.72 8.79 1.282 4.953 3.052 9.683 3.052 15.127v356.704c0 34.714-28.111 63.095-62.497 63.095z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-outgoing"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 44, "id": 20, "name": "transaction-outgoing", "prevSize": 32, "code": 59737 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 83 + }, + { + "icon": { + "paths": [ + "M235.766 355.070c35.865-0.046 65.146 29.234 65.1 65.097v210.852l441.38-441.361c25.323-25.321 66.756-25.321 92.079 0 25.365 25.367 25.323 66.754 0 92.075l-441.38 441.361 210.908 0.047c35.819 0 65.097 29.278 65.097 65.097s-29.278 65.097-65.097 65.097l-368.086-0.047c-5.433 0.094-10.313-1.839-15.331-3.085-3.084-0.781-6.307-0.691-9.346-1.886-2.717-1.058-4.834-3.179-7.274-4.698-12.385-7.134-22.652-17.493-28.176-30.75-1.151-2.901-1.059-6.033-1.796-9.071-1.335-5.111-3.177-9.988-3.177-15.607v-368.023c0-35.817 29.281-65.097 65.1-65.097z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-incoming"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 43, "id": 19, "name": "transaction-incoming", "prevSize": 32, "code": 59738 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 84 + }, + { + "icon": { + "paths": [ + "M682.667 85.329h-341.333c-70.357 0-128 57.6-128 128v597.333c0 70.4 57.643 128 128 128h341.333c70.4 0 128-57.6 128-128v-597.333c0-70.4-57.6-128-128-128zM682.667 170.663c23.125 0 42.667 19.541 42.667 42.667v597.333c0 23.125-19.541 42.667-42.667 42.667h-341.333c-23.125 0-42.667-19.541-42.667-42.667v-597.333c0-23.125 19.541-42.667 42.667-42.667h341.333z", + "M512 714.953c-29.44 0-53.333 23.893-53.333 53.333s23.893 53.333 53.333 53.333c29.44 0 53.333-23.893 53.333-53.333s-23.893-53.333-53.333-53.333z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["mobile"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 42, "id": 18, "name": "mobile", "prevSize": 32, "code": 59739 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 85 + }, + { + "icon": { + "paths": [ + "M896 640v85.333c0 47.13-38.204 85.333-85.333 85.333h-640c-47.128 0-85.333-38.204-85.333-85.333v-426.667c0-47.128 38.205-85.333 85.333-85.333h640c47.13 0 85.333 38.205 85.333 85.333v85.333c23.565 0 42.667 19.103 42.667 42.667v170.667c0 23.565-19.102 42.667-42.667 42.667zM810.667 384v-85.333h-640v426.667h640v-85.333h-128c-23.565 0-42.667-19.102-42.667-42.667v-170.667c0-23.564 19.102-42.667 42.667-42.667h128zM725.333 554.667h128v-85.333h-128v85.333z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["wallet"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 41, "id": 17, "name": "wallet", "prevSize": 32, "code": 59740 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 86 + }, + { + "icon": { + "paths": [ + "M895.996 545.707c-6.711 72.627-33.967 141.841-78.583 199.543-44.612 57.702-104.734 101.504-173.333 126.281-68.599 24.781-142.835 29.508-214.025 13.636s-136.384-51.695-187.958-103.266c-51.574-51.575-87.394-116.77-103.267-187.959s-11.144-145.425 13.634-214.025c24.779-68.599 68.581-128.722 126.283-173.335s126.916-71.869 199.543-78.581c-42.522 57.526-62.982 128.403-57.663 199.74s36.069 138.397 86.65 188.979c50.581 50.581 117.641 81.331 188.979 86.652s142.212-15.142 199.74-57.664v0z" + ], + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["appearance"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }] } + }, + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "properties": { "order": 142, "id": 16, "name": "appearance", "prevSize": 32, "code": 59741 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 87 + }, + { + "icon": { + "paths": [ + "M704 401.066l-384-221.44", + "M896 682.667v-341.334c-0.017-14.964-3.964-29.661-11.456-42.617-7.488-12.956-18.253-23.714-31.211-31.197l-298.667-170.667c-12.971-7.489-27.686-11.433-42.667-11.433s-29.696 3.943-42.667 11.433l-298.667 170.667c-12.96 7.482-23.724 18.241-31.212 31.197s-11.439 27.653-11.454 42.617v341.334c0.015 14.963 3.965 29.662 11.454 42.615 7.489 12.958 18.253 23.714 31.212 31.198l298.667 170.667c12.971 7.488 27.686 11.43 42.667 11.43s29.696-3.942 42.667-11.43l298.667-170.667c12.958-7.484 23.723-18.24 31.211-31.198 7.492-12.954 11.439-27.652 11.456-42.615z", + "M139.521 296.96l372.479 215.467 372.48-215.467", + "M512 942.080v-430.080" + ], + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["experimental"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }, { "s": 0 }, { "s": 0 }, { "s": 0 }] } + }, + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "properties": { "order": 143, "id": 15, "name": "experimental", "prevSize": 32, "code": 59742 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 88 + }, + { + "icon": { + "paths": [ + "M170.675 83.198c-71.871 0-130.134 58.263-130.134 130.133v426.669c0 71.868 58.263 130.129 130.134 130.129h296.533v81.071h-125.867c-24.742 0-44.8 20.058-44.8 44.8 0 24.738 20.058 44.796 44.8 44.796h341.333c24.742 0 44.8-20.058 44.8-44.796 0-24.742-20.058-44.8-44.8-44.8h-125.867v-81.071h296.533c71.872 0 130.133-58.261 130.133-130.129v-426.669c0-71.871-58.261-130.133-130.133-130.133h-682.667zM130.142 213.331c0-22.386 18.147-40.533 40.533-40.533h682.667c22.387 0 40.533 18.147 40.533 40.533v426.669c0 22.383-18.146 40.533-40.533 40.533h-682.667c-22.386 0-40.533-18.15-40.533-40.533v-426.669z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["desktop"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 38, "id": 14, "name": "desktop", "prevSize": 32, "code": 59743 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 89 + }, + { + "icon": { + "paths": [ + "M853.342 170.658c44.966 0 81.843 34.833 85.103 78.968l0.23 6.365v512c0 44.962-34.833 81.839-78.967 85.099l-6.494 0.192c0.004 22.118-16.439 40.128-37.679 42.59l-4.983 0.286c-21.867 0-39.91-16.444-42.377-37.683l-0.294-5.193h-511.956c0.004 22.118-16.477 40.128-37.689 42.59l-4.974 0.286c-23.595 0-42.667-19.072-42.667-42.667-44.93-0.205-81.763-35.029-85.018-79.138l-0.234-6.362v-512c0-44.963 34.833-81.839 78.968-85.099l6.365-0.234h682.665zM853.342 255.991h-682.665v512h682.665v-512z", + "M639.885 341.367c-94.251 0-170.667 76.416-170.667 170.667s76.416 170.667 170.667 170.667c94.251 0 170.667-76.416 170.667-170.667s-76.416-170.667-170.667-170.667zM639.885 426.701c47.061 0 85.333 38.229 85.333 85.333 0 47.061-38.272 85.333-85.333 85.333s-85.333-38.272-85.333-85.333c0-47.104 38.272-85.333 85.333-85.333z", + "M298.594 341.325c21.881 0 39.915 16.471 42.38 37.691l0.287 4.976v256c0 23.565-19.102 42.667-42.667 42.667-21.881 0-39.915-16.469-42.38-37.692l-0.287-4.975v-256c0-23.564 19.103-42.667 42.667-42.667z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["safe"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 24, "id": 13, "name": "safe", "prevSize": 32, "code": 59744 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 90 + }, + { + "icon": { + "paths": [ + "M725.333 369.778c0-56.579-22.477-110.842-62.485-150.849-40.004-40.008-94.268-62.484-150.848-62.484s-110.842 22.476-150.849 62.484c-40.008 40.008-62.484 94.27-62.484 150.849 0 248.889-106.667 320.001-106.667 320.001h640c0 0-106.667-71.113-106.667-320.001z", + "M573.513 832c-6.251 10.778-15.223 19.721-26.018 25.937-10.795 6.221-23.036 9.493-35.494 9.493s-24.695-3.273-35.49-9.493c-10.799-6.217-19.767-15.159-26.022-25.937" + ], + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["bell"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }, { "s": 0 }] } + }, + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "properties": { "order": 144, "id": 12, "name": "bell", "prevSize": 32, "code": 59745 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 91 + }, + { + "icon": { + "paths": [ + "M512.034 85.333c-148.545 0-269.399 120.837-269.399 269.383 0 50.643 14.25 100.063 41.186 142.888 9.838 15.676 21.71 38.157 25.35 50.769l37.98 131.631c3.839 13.239 11.514 25.114 21.421 34.714-2.881 5.188-4.683 11.068-4.683 17.425v127.108c0 19.887 16.141 36.032 36.032 36.032h18.268c-1.172 3.243-1.944 6.635-1.944 10.202 0 18.321 16.163 33.182 36.033 33.182h119.467c19.908 0 36.032-14.861 36.032-33.182 0-3.584-0.777-6.976-1.894-10.202h18.197c19.908 0 36.032-16.145 36.032-36.032v-127.108c0-5.709-1.459-11.063-3.819-15.851 10.829-10.018 19.187-22.613 23.113-36.898l35.959-131.324c3.494-12.736 15.117-34.987 24.777-50.355 26.97-42.825 41.22-92.259 41.22-142.976 0-148.552-120.819-269.406-269.329-269.406zM679.138 459.319c-4.198 6.686-25.532 41.438-33.28 69.67l-35.959 131.319c-0.666 2.432-5.619 6.217-8.141 6.234h-176.688c-2.683 0-7.947-3.998-8.685-6.537l-37.98-131.631c-7.963-27.58-29.332-62.37-33.549-69.111-19.729-31.347-30.159-67.505-30.159-104.547 0-108.804 88.514-197.318 197.332-197.318 108.77 0 197.265 88.514 197.265 197.318 0 37.096-10.415 73.273-30.157 104.603z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["lightbulb"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 26, "id": 11, "name": "lightbulb", "prevSize": 32, "code": 59746 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 92 + }, + { + "icon": { + "paths": [ + "M327.638 166.603c50.311 0 86.695 34.066 113.199 80.535 8.055 14.121 14.566 28.392 19.712 41.37h-132.911c-16.764 0-32.842-6.421-44.696-17.852s-18.513-26.935-18.513-43.1c0-16.166 6.659-31.669 18.513-43.1s27.932-17.853 44.696-17.853zM512 203.349c-32.030-54.196-89.885-118.016-184.362-118.016-39.117 0-76.631 14.984-104.291 41.656s-43.199 62.847-43.199 100.566c0 35.073 13.435 68.811 37.557 94.815h-93.584c-21.422 0-38.788 15.16-38.788 33.862v169.314c0 18.701 17.366 33.86 38.788 33.86h8.62v343.706c0 19.635 18.867 35.554 42.14 35.554h674.237c23.275 0 42.142-15.919 42.142-35.554v-343.706h8.619c21.423 0 38.788-15.159 38.788-33.86v-169.314c0-18.702-17.365-33.862-38.788-33.862h-93.585c24.124-26.004 37.559-59.742 37.559-94.815 0-37.719-15.539-73.894-43.2-100.566s-65.173-41.656-104.29-41.656c-94.477 0-152.333 63.82-184.363 118.016zM559.407 867.554v-308.147h247.573v308.147h-247.573zM464.593 559.407v308.147h-247.572v-308.147h247.572zM559.407 491.682v-101.587h301.683v101.587h-301.683zM464.593 390.095v101.587h-301.684v-101.587h301.684zM696.363 288.508h-132.911c5.146-12.978 11.657-27.249 19.712-41.37 26.505-46.469 62.886-80.535 113.199-80.535 16.764 0 32.841 6.422 44.698 17.853 11.853 11.431 18.513 26.934 18.513 43.1s-6.66 31.669-18.513 43.1c-11.857 11.431-27.934 17.852-44.698 17.852z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["what-is-new"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 27, "id": 10, "name": "what-is-new", "prevSize": 32, "code": 59747 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 93 + }, + { + "icon": { + "paths": [ + "M234.667 192h170.667c23.564 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.103 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.103-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667z", + "M234.667 576h170.667c23.564 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.103 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.103-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667z", + "M618.667 192h170.667c23.564 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.103 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.103-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667z", + "M618.667 576h170.667c23.564 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.103 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.103-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667z" + ], + "attrs": [{}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["blocks"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}], + "properties": { "order": 28, "id": 9, "name": "blocks", "prevSize": 32, "code": 59748 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 94 + }, + { + "icon": { + "paths": [ + "M128 224c0-35.346 28.654-64 64-64h640c35.345 0 64 28.654 64 64s-28.655 64-64 64h-640c-35.346 0-64-28.654-64-64z", + "M128 736c0-35.345 28.654-64 64-64h640c35.345 0 64 28.655 64 64s-28.655 64-64 64h-640c-35.346 0-64-28.655-64-64z", + "M128 480c0-35.345 28.654-64 64-64h640c35.345 0 64 28.655 64 64s-28.655 64-64 64h-640c-35.346 0-64-28.655-64-64z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["rows"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 29, "id": 8, "name": "rows", "prevSize": 32, "code": 59749 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 95 + }, + { + "icon": { + "paths": [ + "M384 85.333h-213.333c-47.128 0-85.333 38.205-85.333 85.333v213.333c0 47.13 38.205 85.333 85.333 85.333h213.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.128-38.204-85.333-85.333-85.333zM170.667 384v-213.333h213.333v213.333h-213.333z", + "M853.333 554.667h-213.333c-47.13 0-85.333 38.204-85.333 85.333v213.333c0 47.13 38.204 85.333 85.333 85.333h213.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.13-38.204-85.333-85.333-85.333zM640 853.333v-213.333h213.333v213.333h-213.333z", + "M938.667 277.333c0 106.039-85.961 192-192 192s-192-85.961-192-192c0-106.039 85.961-192 192-192s192 85.961 192 192zM640 277.333c0 58.91 47.757 106.667 106.667 106.667s106.667-47.756 106.667-106.667c0-58.91-47.757-106.667-106.667-106.667s-106.667 47.756-106.667 106.667z", + "M277.393 804.651l-122.236 122.236c-15.872 15.872-41.813 15.872-57.728 0l-0.171-0.213c-15.872-15.872-15.872-41.856 0-57.771l122.197-122.197-122.18-122.197c-15.872-15.872-15.872-41.856 0-57.728l0.171-0.213c15.915-15.872 41.856-15.872 57.728 0l122.219 122.202 122.202-122.202c15.872-15.872 41.856-15.872 57.728 0l0.213 0.213c15.872 15.872 15.872 41.856 0 57.728l-122.198 122.197 122.215 122.197c15.872 15.915 15.872 41.899 0 57.771l-0.213 0.213c-15.872 15.872-41.856 15.872-57.728 0l-122.219-122.236z" + ], + "attrs": [{}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["apps"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}], + "properties": { "order": 30, "id": 7, "name": "apps", "prevSize": 32, "code": 59750 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 96 + }, + { + "icon": { + "paths": [ + "M170.667 384v256h-42.667c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667h42.667v128c0 47.13 38.205 85.333 85.333 85.333h512c47.13 0 85.333-38.204 85.333-85.333v-682.667c0-47.128-38.204-85.333-85.333-85.333h-512c-47.128 0-85.333 38.205-85.333 85.333v128h-42.667c-23.564 0-42.667 19.103-42.667 42.667s19.103 42.667 42.667 42.667h42.667zM298.667 640h-42.667v-256h42.667c23.564 0 42.667-19.103 42.667-42.667s-19.103-42.667-42.667-42.667h-42.667v-128h512v682.667h-512v-128h42.667c23.564 0 42.667-19.102 42.667-42.667s-19.103-42.667-42.667-42.667z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["address-book"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 31, "id": 6, "name": "address-book", "prevSize": 32, "code": 59751 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 97 + }, + { + "icon": { + "paths": [ + "M896 490.667c0.145 56.316-13.009 111.868-38.4 162.133-30.106 60.233-76.382 110.899-133.658 146.317-57.271 35.418-123.273 54.191-190.609 54.217-56.316 0.145-111.867-13.009-162.133-38.4l-243.2 81.067 81.067-243.2c-25.39-50.266-38.547-105.818-38.4-162.133 0.026-67.338 18.799-133.34 54.217-190.611s86.081-103.551 146.316-133.655c50.266-25.39 105.818-38.547 162.133-38.4h21.333c88.93 4.906 172.928 42.443 235.908 105.423s100.518 146.978 105.425 235.91v21.333z" + ], + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["chat"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }] } + }, + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "properties": { "order": 145, "id": 5, "name": "chat", "prevSize": 32, "code": 59752 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 98 + }, + { + "icon": { + "paths": [ + "M512.427 767.987c-141.184 0-256-114.816-256-256s114.816-256 256-256c141.184 0 256 114.816 256 256s-114.816 256-256 256zM902.443 460.318l-14.763-1.28c-29.568-3.157-40.704-20.949-44.629-30.592-8.192-32.555-21.035-63.147-37.803-91.264-4.053-9.387-9.259-30.123 9.771-53.632l9.472-11.349c20.736-23.637 12.459-38.443-4.096-55.083l-13.739-13.696c-16.597-16.597-31.445-24.832-55.083-4.139l-11.349 9.515c-24.96 20.139-46.763 13.141-55.211 9.045-26.411-15.531-55.083-27.52-85.419-35.541-7.040-1.963-31.104-11.221-34.816-46.165l-1.323-14.763c-2.091-31.36-18.347-36.053-41.856-36.053h-19.413c-23.467 0-39.808 4.693-41.856 36.053l-1.323 14.763c-4.352 40.917-36.821 46.72-36.821 46.72 0 0.085 0.043 0.171 0.043 0.256-28.075 7.68-54.656 18.987-79.317 33.152-0.085-0.128-0.128-0.341-0.256-0.469 0 0-27.051 18.859-59.051-6.955l-11.392-9.557c-23.637-20.693-38.485-12.459-55.083 4.139l-13.696 13.696c-16.597 16.64-24.832 31.445-4.181 55.083l9.557 11.349c25.856 32.043 6.955 59.093 6.955 59.093 0.213 0.171 0.469 0.256 0.683 0.384-14.165 24.704-25.387 51.243-33.024 79.317-0.213-0.043-0.427-0.128-0.597-0.171 0 0-5.76 32.469-46.677 36.864l-14.805 1.28c-31.317 2.091-36.011 18.432-36.011 41.899v19.413c0 23.424 4.693 39.765 36.011 41.813l14.805 1.323c40.917 4.352 46.677 36.864 46.677 36.864 0.171 0 0.341-0.085 0.512-0.128 7.68 28.075 18.688 54.741 32.768 79.445-0.085 0.085-0.256 0.085-0.341 0.171 0 0 18.901 27.093-6.955 59.093l-9.557 11.349c-20.651 23.637-12.459 38.528 4.181 55.083l13.696 13.739c16.597 16.597 31.445 24.832 55.083 4.096l11.392-9.472c32-25.899 59.051-6.997 59.051-6.997 0.043-0.043 0.043-0.085 0.085-0.128 24.747 14.208 51.371 25.259 79.445 32.981v0.128c0 0 32.469 5.803 36.821 46.72l1.323 14.72c2.048 31.36 18.389 36.011 41.856 36.011h19.413c23.509 0 39.765-4.651 41.856-36.011l1.323-14.72c3.413-31.915 23.723-42.411 32.597-45.483 31.019-7.936 60.203-20.267 87.125-36.011 8.021-4.011 30.165-11.861 55.723 8.789l11.349 9.515c23.637 20.693 38.485 12.459 55.083-4.139l13.739-13.739c16.555-16.555 24.832-31.445 4.096-55.083l-9.472-11.307c-20.437-25.344-13.013-47.317-8.917-55.509 16.299-27.691 29.013-57.685 37.077-89.643 4.011-9.685 15.104-27.179 44.501-30.336l14.763-1.323c31.317-2.048 35.968-18.389 35.968-41.813v-19.413c0-23.467-4.651-39.808-35.968-41.899z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["settings"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 33, "id": 4, "name": "settings", "prevSize": 32, "code": 59753 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 99 + }, + { + "icon": { + "paths": [ + "M967.629 575.548c-18.27-19.029-48.141-19.029-66.411 0l-107.558 111.753v-467.835c0-26.839-21.137-48.799-46.972-48.799-25.877 0-46.967 21.959-46.967 48.799v467.835l-107.605-111.753c-18.27-18.982-48.141-18.982-66.411 0-18.274 18.987-18.274 50.022 0 69.005l187.78 195.046c2.722 2.927 6.199 4.489 9.391 6.49 1.975 1.22 3.571 2.978 5.73 3.955 1.929 0.879 4.087 0.879 6.106 1.365 9.958 2.782 20.48 2.731 30.063-1.365 2.065-0.93 3.614-2.637 5.542-3.857 3.285-2.001 6.716-3.61 9.579-6.588l187.733-195.046c18.274-18.982 18.274-50.018 0-69.005z", + "M498.295 448.452c-18.27 19.029-48.141 19.029-66.411 0l-107.559-111.751v467.834c0 26.837-21.136 48.798-46.969 48.798-25.879 0-46.969-21.961-46.969-48.798v-467.834l-107.605 111.751c-18.271 18.982-48.143 18.982-66.413 0-18.271-18.987-18.271-50.021 0-69.004l187.78-195.048c2.724-2.928 6.2-4.49 9.393-6.49 1.973-1.22 3.569-2.977 5.73-3.953 1.926-0.879 4.086-0.879 6.106-1.366 9.957-2.782 20.478-2.733 30.060 1.366 2.066 0.927 3.616 2.635 5.542 3.855 3.287 2.001 6.716 3.611 9.581 6.588l187.732 195.048c18.274 18.983 18.274 50.017 0 69.004z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transactions"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 34, "id": 3, "name": "transactions", "prevSize": 32, "code": 59754 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 100 + }, + { + "icon": { + "paths": [ + "M879.501 335.075h-737.449v73.955h737.449v-73.955z", + "M902.886 381.44l-9.216-7.055c-9.899-7.567-11.891-21.675-4.437-31.631l6.997-9.385c11.375-14.963 6.37-33.338-6.711-48.755l-95.347-133.518c-14.336-20.082-37.491-32.029-62.182-32.029h-440.261c-24.689 0-47.843 11.947-62.179 32.029l-95.119 133.518c-13.085 15.418-18.034 33.736-6.713 48.755l6.997 9.385c7.396 10.013 5.461 24.064-4.437 31.631l-9.216 7.055c-14.962 11.377-17.92 32.71-6.543 47.671l335.076 466.547c5.005 6.541 12.745 10.411 20.992 10.411h82.658c8.247 0 15.987-3.87 20.992-10.411l335.249-466.547c11.375-14.961 8.418-36.35-6.545-47.671h-0.055zM519.454 838.37c-3.81 5.009-11.319 5.009-15.13 0l-335.191-459.604c-3.813-5.006-2.56-12.288 1.138-17.236l105.984-148.538c8.931-12.573 23.381-19.968 38.798-19.968h393.615c15.415 0 29.867 7.453 38.797 19.968l106.155 148.538c3.755 4.948 4.949 12.288 1.139 17.236l-335.305 459.604z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["nft"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 35, "id": 2, "name": "nft", "prevSize": 32, "code": 59755 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 101 + }, + { + "icon": { + "paths": [ + "M639.915 213.312c-164.907 0-298.665 133.76-298.665 298.667 0 164.949 133.758 298.667 298.665 298.667 164.949 0 298.667-133.717 298.667-298.667 0-164.907-133.717-298.667-298.667-298.667zM639.915 298.645c117.675 0 213.333 95.701 213.333 213.333 0 117.675-95.659 213.333-213.333 213.333-117.632 0-213.331-95.659-213.331-213.333 0-117.632 95.699-213.333 213.331-213.333z", + "M290.319 228.618c-121.393 39.957-204.986 153.478-204.986 283.216s83.593 243.26 204.986 283.217c22.383 7.364 46.5-4.809 53.868-27.187 7.367-22.383-4.805-46.502-27.188-53.871-86.66-28.523-146.332-109.559-146.332-202.159s59.671-173.636 146.332-202.16c22.383-7.367 34.555-31.485 27.188-53.868s-31.485-34.555-53.868-27.188z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["token"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 36, "id": 1, "name": "token", "prevSize": 32, "code": 59756 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 102 + }, + { + "icon": { + "paths": [ + "M488.427 93.504c13.867-10.894 33.28-10.894 47.147 0l345.6 271.515c9.357 7.349 14.827 18.648 14.827 30.618v426.665c0 30.861-12.139 60.459-33.741 82.283-21.606 21.824-50.906 34.082-81.459 34.082h-537.6c-30.553 0-59.855-12.258-81.459-34.082s-33.741-51.422-33.741-82.283v-426.665c0-11.97 5.471-23.269 14.825-30.618l345.602-271.515zM204.8 414.607v407.695c0 10.287 4.046 20.156 11.247 27.43 7.202 7.27 16.969 11.358 27.153 11.358h537.6c10.185 0 19.951-4.087 27.153-11.358 7.202-7.275 11.247-17.143 11.247-27.43v-407.695l-307.2-241.347-307.2 241.347z", + "M341.333 508.446c0-21.602 19.103-39.113 42.667-39.113h256c23.565 0 42.667 17.51 42.667 39.113v391.108c0 21.602-19.102 39.113-42.667 39.113s-42.667-17.51-42.667-39.113v-352h-170.667v352c0 21.602-19.103 39.113-42.667 39.113s-42.667-17.51-42.667-39.113v-391.108z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["home"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 37, "id": 0, "name": "home", "prevSize": 32, "code": 59757 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 103 + } + ], + "height": 1024, + "metadata": { "name": "safe-icons" }, + "preferences": { + "showGlyphs": true, + "showQuickUse": true, + "showQuickUse2": true, + "showSVGs": true, + "fontPref": { + "prefix": "icon-", + "metadata": { "fontFamily": "safe-icons", "majorVersion": 1, "minorVersion": 0 }, + "metrics": { "emSize": 1024, "baseline": 6.25, "whitespace": 50 }, + "embed": false, + "noie8": true, + "ie7": false, + "showSelector": false, + "showMetrics": false, + "showMetadata": false, + "showVersion": true + }, + "imagePref": { + "prefix": "icon-", + "png": true, + "useClassSelector": true, + "color": 0, + "bgColor": 16777215, + "classSelector": ".icon", + "name": "icomoon" + }, + "historySize": 50, + "showCodes": true, + "gridSize": 16 + } +} diff --git a/apps/mobile/assets/images/adaptive-icon.png b/apps/mobile/assets/images/adaptive-icon.png new file mode 100644 index 0000000000..0e4aed7ff5 Binary files /dev/null and b/apps/mobile/assets/images/adaptive-icon.png differ diff --git a/apps/mobile/assets/images/anywhere.png b/apps/mobile/assets/images/anywhere.png new file mode 100644 index 0000000000..11fc00015b Binary files /dev/null and b/apps/mobile/assets/images/anywhere.png differ diff --git a/apps/mobile/assets/images/favicon.png b/apps/mobile/assets/images/favicon.png new file mode 100644 index 0000000000..e75f697b18 Binary files /dev/null and b/apps/mobile/assets/images/favicon.png differ diff --git a/apps/mobile/assets/images/icon.png b/apps/mobile/assets/images/icon.png new file mode 100644 index 0000000000..4bbbca5e27 Binary files /dev/null and b/apps/mobile/assets/images/icon.png differ diff --git a/apps/mobile/assets/images/illustration.png b/apps/mobile/assets/images/illustration.png new file mode 100644 index 0000000000..a483b9d30a Binary files /dev/null and b/apps/mobile/assets/images/illustration.png differ diff --git a/apps/mobile/assets/images/partial-react-logo.png b/apps/mobile/assets/images/partial-react-logo.png new file mode 100644 index 0000000000..66fd9570e4 Binary files /dev/null and b/apps/mobile/assets/images/partial-react-logo.png differ diff --git a/apps/mobile/assets/images/react-logo.png b/apps/mobile/assets/images/react-logo.png new file mode 100644 index 0000000000..9d72a9ffcb Binary files /dev/null and b/apps/mobile/assets/images/react-logo.png differ diff --git a/apps/mobile/assets/images/react-logo@2x.png b/apps/mobile/assets/images/react-logo@2x.png new file mode 100644 index 0000000000..2229b130ad Binary files /dev/null and b/apps/mobile/assets/images/react-logo@2x.png differ diff --git a/apps/mobile/assets/images/react-logo@3x.png b/apps/mobile/assets/images/react-logo@3x.png new file mode 100644 index 0000000000..a99b203222 Binary files /dev/null and b/apps/mobile/assets/images/react-logo@3x.png differ diff --git a/apps/mobile/assets/images/safe-wallet.png b/apps/mobile/assets/images/safe-wallet.png new file mode 100644 index 0000000000..9faf2f95b5 Binary files /dev/null and b/apps/mobile/assets/images/safe-wallet.png differ diff --git a/apps/mobile/assets/images/splash.png b/apps/mobile/assets/images/splash.png new file mode 100644 index 0000000000..59b12daa46 Binary files /dev/null and b/apps/mobile/assets/images/splash.png differ diff --git a/apps/mobile/babel.config.js b/apps/mobile/babel.config.js new file mode 100644 index 0000000000..e1e3637afd --- /dev/null +++ b/apps/mobile/babel.config.js @@ -0,0 +1,6 @@ +module.exports = function (api) { + api.cache(true) + return { + presets: ['babel-preset-expo'], + } +} diff --git a/apps/mobile/e2e/flow.yml b/apps/mobile/e2e/flow.yml new file mode 100644 index 0000000000..17ff3b9220 --- /dev/null +++ b/apps/mobile/e2e/flow.yml @@ -0,0 +1,13 @@ +appId: global.safe.mobileapp +--- +- launchApp +- tapOn: + id: "pending-transactions" +- tapOn: "(tabs)" +- tapOn: + id: "tabTransactions" +- "scroll" +- tapOn: + id: "tabSettings" +- assertVisible: "Signers" + diff --git a/apps/mobile/eas.json b/apps/mobile/eas.json new file mode 100644 index 0000000000..a4ad6d5441 --- /dev/null +++ b/apps/mobile/eas.json @@ -0,0 +1,72 @@ +{ + "cli": { + "version": ">= 13.4.2", + "appVersionSource": "remote" + }, + "build": { + "base": { + "node": "22.11.0", + "android": { + "image": "sdk-52" + }, + "ios": { + "image": "sdk-52" + } + }, + "development": { + "extends": "base", + "environment": "development", + "developmentClient": true, + "env": { + "APP_VARIANT": "development" + } + }, + "preview-ios-simulator": { + "extends": "base", + "environment": "preview", + "distribution": "internal", + "ios": { + "simulator": true + } + }, + "preview": { + "extends": "base", + "environment": "preview", + "distribution": "internal", + "ios": {}, + "android": { + "buildType": "apk" + } + }, + "production": { + "extends": "base", + "environment": "production", + "autoIncrement": true, + "env": { + "APP_VARIANT": "production" + } + }, + "build-and-maestro-test": { + "withoutCredentials": true, + "config": "build-and-maestro-test.yml", + "android": { + "buildType": "apk", + "image": "latest" + }, + "ios": { + "simulator": true, + "image": "latest" + } + } + }, + "submit": { + "production": { + "ios": { + "ascAppId": "6738784305" + }, + "android": { + "releaseStatus": "draft" + } + } + } +} diff --git a/apps/mobile/eslint.config.mjs b/apps/mobile/eslint.config.mjs new file mode 100644 index 0000000000..b70d033c0f --- /dev/null +++ b/apps/mobile/eslint.config.mjs @@ -0,0 +1,32 @@ +import globals from 'globals' +import pluginJs from '@eslint/js' +import tseslint from 'typescript-eslint' +import pluginReact from 'eslint-plugin-react' +import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended' + +export default [ + { files: ['**/*.{js,mjs,cjs,ts,jsx,tsx}'] }, + { languageOptions: { globals: globals.browser } }, + pluginJs.configs.recommended, + ...tseslint.configs.strict, + ...tseslint.configs.stylistic, + pluginReact.configs.flat.recommended, + eslintPluginPrettierRecommended, + { + settings: { + react: { + version: 'detect', // Automatically detect the react version + }, + }, + rules: { + 'react/react-in-jsx-scope': 'off', + 'react/no-unescaped-entities': 'off', + '@typescript-eslint/no-require-imports': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + '@typescript-eslint/no-empty-object-type': 'off', + '@typescript-eslint/no-invalid-void-type': 'off', + '@typescript-eslint/consistent-type-definitions': 'off', + curly: 'error', + }, + }, +] diff --git a/apps/mobile/expo-plugins/withDrawableAssets.js b/apps/mobile/expo-plugins/withDrawableAssets.js new file mode 100644 index 0000000000..e60def06f7 --- /dev/null +++ b/apps/mobile/expo-plugins/withDrawableAssets.js @@ -0,0 +1,56 @@ +const fs = require('fs') +const path = require('path') +const { withDangerousMod } = require('@expo/config-plugins') + +const androidFolderPath = ['app', 'src', 'main', 'res', 'drawable'] + +const withDrawableAssets = function (expoConfig, files) { + return withDangerousMod(expoConfig, [ + 'android', + function (modConfig) { + if (modConfig.modRequest.platform === 'android') { + const projectRoot = modConfig.modRequest.projectRoot + const androidDrawablePath = path.join(modConfig.modRequest.platformProjectRoot, ...androidFolderPath) + + if (!Array.isArray(files)) { + files = [files] + } + + files.forEach(function (file) { + if (!path.isAbsolute(file)) { + file = path.join(projectRoot, file) + } + + const isFile = fs.lstatSync(file).isFile() + if (isFile) { + fs.copyFileSync(file, path.join(androidDrawablePath, path.basename(file))) + } else { + copyFolderRecursiveSync(file, androidDrawablePath) + } + }) + } + return modConfig + }, + ]) +} + +function copyFolderRecursiveSync(source, target) { + if (!fs.existsSync(target)) { + fs.mkdirSync(target) + } + + const files = fs.readdirSync(source) + + files.forEach(function (file) { + const sourcePath = path.join(source, file) + const targetPath = path.join(target, file) + + if (fs.lstatSync(sourcePath).isDirectory()) { + copyFolderRecursiveSync(sourcePath, targetPath) + } else { + fs.copyFileSync(sourcePath, targetPath) + } + }) +} + +module.exports = withDrawableAssets diff --git a/apps/mobile/jest.config.js b/apps/mobile/jest.config.js new file mode 100644 index 0000000000..06451fc0d8 --- /dev/null +++ b/apps/mobile/jest.config.js @@ -0,0 +1,24 @@ +const preset = require('../../config/jest-presets/presets/jest-preset') + +module.exports = { + ...preset, + preset: 'jest-expo', + collectCoverage: true, + collectCoverageFrom: [ + './src/**', + '!./src/**/*.stories.{js,jsx,ts,tsx}', + '!./src/tests/**', + '!./src/types/**', + '!./src/**/*.snap', + ], + coverageReporters: ['json-summary', 'html', 'text-summary'], + setupFilesAfterEnv: ['./src/tests/jest.setup.tsx', './src/tests/test-utils.tsx'], + moduleNameMapper: { + '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': + '/__mocks__/fileMock.js', + }, + transformIgnorePatterns: [ + 'node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@sentry/react-native|native-base|react-native-svg|react-redux|moti/.*)', + ], + testPathIgnorePatterns: ['/node_modules/', '/e2e/'], +} diff --git a/apps/mobile/metro.config.js b/apps/mobile/metro.config.js new file mode 100644 index 0000000000..b63e80a53d --- /dev/null +++ b/apps/mobile/metro.config.js @@ -0,0 +1,27 @@ +const path = require('path') + +// Learn more https://docs.expo.io/guides/customizing-metro +const { getDefaultConfig } = require('expo/metro-config') +const withStorybook = require('@storybook/react-native/metro/withStorybook') + +/** @type {import('expo/metro-config').MetroConfig} */ +const config = getDefaultConfig(__dirname) + +config.resolver.resolveRequest = (context, moduleName, platform) => { + const defaultResolveResult = context.resolveRequest(context, moduleName, platform) + + if (process.env.STORYBOOK_ENABLED !== 'true' && defaultResolveResult?.filePath?.includes?.('.storybook/')) { + return { + type: 'empty', + } + } + + return defaultResolveResult +} + +module.exports = withStorybook(config, { + // Set to false to remove storybook specific options + enabled: true, + // Path to your storybook config + configPath: path.resolve(__dirname, './.storybook'), +}) diff --git a/apps/mobile/openapi-config.ts b/apps/mobile/openapi-config.ts new file mode 100644 index 0000000000..dd3fad9d87 --- /dev/null +++ b/apps/mobile/openapi-config.ts @@ -0,0 +1,73 @@ +import type { ConfigFile } from '@rtk-query/codegen-openapi' + +const config: ConfigFile = { + schemaFile: './src/store/gateway/api-schema/schema.json', + prettierConfigFile: './.prettierrc', + apiFile: './src/store/gateway/cgwClient.ts', + apiImport: 'cgwClient', + exportName: 'cgwApi', + hooks: true, + filterEndpoints: [/^(?!.*delegates).*/], + tag: true, + outputFiles: { + './src/store/gateway/AUTO_GENERATED/about.ts': { + filterEndpoints: [/^about/], + }, + './src/store/gateway/AUTO_GENERATED/accounts.ts': { + filterEndpoints: [/^accounts/], + }, + './src/store/gateway/AUTO_GENERATED/auth.ts': { + filterEndpoints: [/^auth/], + }, + './src/store/gateway/AUTO_GENERATED/balances.ts': { + filterEndpoints: [/^balances/], + }, + './src/store/gateway/AUTO_GENERATED/chains.ts': { + filterEndpoints: [/^chains/], + }, + './src/store/gateway/AUTO_GENERATED/collectibles.ts': { + filterEndpoints: [/^collectibles/], + }, + './src/store/gateway/AUTO_GENERATED/community.ts': { + filterEndpoints: [/^community/], + }, + './src/store/gateway/AUTO_GENERATED/contracts.ts': { + filterEndpoints: [/^contracts/], + }, + './src/store/gateway/AUTO_GENERATED/data-decoded.ts': { + filterEndpoints: [/^dataDecoded/], + }, + './src/store/gateway/AUTO_GENERATED/delegates.ts': { + filterEndpoints: [/^delegates(?!DeleteSafeDelegateV1)/], + }, + './src/store/gateway/AUTO_GENERATED/estimations.ts': { + filterEndpoints: [/^estimations/], + }, + './src/store/gateway/AUTO_GENERATED/messages.ts': { + filterEndpoints: [/^messages/], + }, + './src/store/gateway/AUTO_GENERATED/notifications.ts': { + filterEndpoints: [/^notifications/], + }, + './src/store/gateway/AUTO_GENERATED/owners.ts': { + filterEndpoints: [/^owners/], + }, + './src/store/gateway/AUTO_GENERATED/relay.ts': { + filterEndpoints: [/^relay/], + }, + './src/store/gateway/AUTO_GENERATED/safe-apps.ts': { + filterEndpoints: [/^safeApps/], + }, + './src/store/gateway/AUTO_GENERATED/safes.ts': { + filterEndpoints: [/^safes/], + }, + './src/store/gateway/AUTO_GENERATED/targeted-messages.ts': { + filterEndpoints: [/^targetedMessaging/], + }, + './src/store/gateway/AUTO_GENERATED/transactions.ts': { + filterEndpoints: [/^transactions/], + }, + }, +} + +export default config diff --git a/apps/mobile/package.json b/apps/mobile/package.json new file mode 100644 index 0000000000..fa56976785 --- /dev/null +++ b/apps/mobile/package.json @@ -0,0 +1,139 @@ +{ + "name": "@safe-global/mobile", + "main": "expo-router/entry", + "version": "1.0.0", + "doctor": { + "reactNativeDirectoryCheck": { + "enabled": true + } + }, + "scripts": { + "start": "expo start", + "start:android": "expo run:android", + "start:ios": "expo run:ios", + "storybook:metro": "STORYBOOK_ENABLED='true' expo start", + "storybook:web": "STORYBOOK_ENABLED='true' STORYBOOK_WEB='true' storybook dev -p 6006", + "storybook:ios": "STORYBOOK_ENABLED='true' expo run:ios --device", + "storybook:android": "STORYBOOK_ENABLED='true' expo start --android", + "reset-project": "node ./scripts/reset-project.js", + "test": "jest", + "test:watch": "jest --watch", + "test:coverage": "jest --coverage", + "test:snapshots": "jest -u", + "lint": "tsc && npm run eslint", + "eslint": "eslint src/* app/*", + "eslint:fix": "npm run lint -- --fix", + "prettier": "prettier --check \"**/*.{js,jsx,ts,tsx,json,md}\"", + "prettier:fix": "prettier --write \"**/*.{js,jsx,ts,tsx,json,md}\"", + "storybook-generate": "sb-rn-get-stories", + "generate:icons": "node ./scripts/generateIconTypes.js", + "prepare": "husky", + "build-storybook": "STORYBOOK_WEB='true' storybook build", + "e2e:metro-ios": "EXPO_PUBLIC_ENV=e2e NODE_ENV=test RN_SRC_EXT=e2e.ts,e2e.tsx expo run:ios", + "e2e:metro-android": "EXPO_PUBLIC_ENV=e2e NODE_ENV=test RN_SRC_EXT=e2e.ts,e2e.tsx expo run:android", + "e2e:run": "maestro test e2e", + "eas-build-pre-install": "corepack enable && yarn set version 4", + "android": "expo run:android", + "ios": "expo run:ios" + }, + "dependencies": { + "@cowprotocol/app-data": "^2.3.0", + "@expo/config-plugins": "^9.0.10", + "@expo/vector-icons": "^14.0.2", + "@react-native-clipboard/clipboard": "^1.15.0", + "@react-native-community/blur": "^4.4.1", + "@react-native-menu/menu": "^1.1.6", + "@react-native/babel-preset": "^0.76.2", + "@react-navigation/material-top-tabs": "^7.0.1", + "@react-navigation/native": "^7.0.0", + "@reduxjs/toolkit": "^2.4.0", + "@safe-global/store": "workspace:^", + "@storybook/addon-react-native-web": "^0.0.26", + "@storybook/addon-webpack5-compiler-babel": "^3.0.3", + "@tamagui/animations-moti": "^1.117.1", + "@tamagui/babel-plugin": "^1.117.1", + "@tamagui/config": "^1.117.1", + "@tamagui/font-dm-sans": "^1.117.1", + "@tamagui/toast": "^1.117.1", + "babel-plugin-react-native-web": "^0.19.13", + "blo": "^1.2.0", + "burnt": "^0.12.2", + "date-fns": "^4.1.0", + "deepmerge": "^4.3.1", + "expo": "~52.0.14", + "expo-blur": "~14.0.1", + "expo-constants": "~17.0.2", + "expo-dev-client": "~5.0.5", + "expo-font": "~13.0.1", + "expo-image": "~2.0.3", + "expo-linear-gradient": "^14.0.1", + "expo-linking": "~7.0.3", + "expo-router": "~4.0.11", + "expo-splash-screen": "^0.29.16", + "expo-status-bar": "~2.0.0", + "expo-system-ui": "~4.0.5", + "expo-web-browser": "~14.0.1", + "lodash": "^4.17.21", + "moti": "^0.29.0", + "react": "18.3.1", + "react-dom": "^18.3.1", + "react-native": "0.76.3", + "react-native-collapsible-tab-view": "^8.0.0", + "react-native-gesture-handler": "~2.20.2", + "react-native-mmkv": "^3.1.0", + "react-native-pager-view": "6.5.1", + "react-native-reanimated": "^3.16.2", + "react-native-safe-area-context": "4.12.0", + "react-native-screens": "^4.0.0", + "react-native-web": "^0.19.13", + "react-redux": "^9.1.2", + "redux": "^5.0.1", + "redux-persist": "^6.0.0", + "tamagui": "^1.117.1", + "timezone-mock": "^1.3.6", + "tsconfig-paths-webpack-plugin": "^4.2.0" + }, + "devDependencies": { + "@babel/core": "^7.25.2", + "@babel/preset-env": "^7.26.0", + "@babel/preset-react": "^7.26.3", + "@eslint/js": "^9.12.0", + "@gorhom/bottom-sheet": "^5.0.6", + "@react-native-async-storage/async-storage": "1.23.1", + "@react-native-community/datetimepicker": "8.2.0", + "@react-native-community/slider": "4.5.5", + "@rtk-query/codegen-openapi": "^2.0.0", + "@storybook/addon-essentials": "^8.4.6", + "@storybook/addon-interactions": "^8.4.6", + "@storybook/addon-onboarding": "^8.4.6", + "@storybook/addon-ondevice-actions": "^8.4.2", + "@storybook/addon-ondevice-controls": "^8.4.2", + "@storybook/addon-webpack5-compiler-swc": "^1.0.5", + "@storybook/blocks": "^8.4.6", + "@storybook/react": "^8.4.6", + "@storybook/react-native": "^8.4.2", + "@storybook/react-webpack5": "^8.4.6", + "@storybook/test": "^8.4.6", + "@testing-library/react-native": "^12.7.2", + "@types/eslint__js": "^8.42.3", + "@types/jest": "^29.5.12", + "@types/lodash": "^4.17.13", + "@types/node": "^22.9.1", + "@types/react": "~18.3.12", + "babel-loader": "^8.4.1", + "eslint": "^9.12.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", + "eslint-plugin-react": "^7.37.1", + "globals": "^15.11.0", + "jest": "^29.7.0", + "jest-expo": "~52.0.2", + "react-native-svg": "15.8.0", + "redux-devtools-expo-dev-plugin": "^1.0.0", + "storybook": "^8.4.6", + "ts-node": "^10.9.2", + "typescript": "~5.3.3", + "typescript-eslint": "^8.8.1" + }, + "private": true +} diff --git a/apps/mobile/resources/icons/README.md b/apps/mobile/resources/icons/README.md new file mode 100644 index 0000000000..507cfa28a5 --- /dev/null +++ b/apps/mobile/resources/icons/README.md @@ -0,0 +1,13 @@ +## Icon Set + +The icon set is generated from the svg icons in the `source-svgs` folder (those are exported from figma). +The icons have been uploaded to `https://icomoon.io/app/` and a font has been generated. +The generated font has been downloaded an extracted into the safe-icons folder. + +To use the font in the app only the `selection.json` & safe-icons.ttf files are needed. Those need +to be copied to the `assets/fonts/safe-icons` folder. + +There is a lint-staged hook that will run the `generate:icons` script whenever it detects that the `selection.json` file +has been changed. The script will then regenerate the possible icon names. + +You can also manually run the script with `npm run generate:icons`. diff --git a/apps/mobile/resources/icons/safe-icons/Read Me.txt b/apps/mobile/resources/icons/safe-icons/Read Me.txt new file mode 100644 index 0000000000..723a49eeeb --- /dev/null +++ b/apps/mobile/resources/icons/safe-icons/Read Me.txt @@ -0,0 +1,7 @@ +Open *demo.html* to see a list of all the glyphs in your font along with their codes/ligatures. + +To use the generated font in desktop programs, you can install the TTF font. In order to copy the character associated with each icon, refer to the text box at the bottom right corner of each glyph in demo.html. The character inside this text box may be invisible; but it can still be copied. See this guide for more info: https://icomoon.io/docs/#local-fonts + +You won't need any of the files located under the *demo-files* directory when including the generated font in your own projects. + +You can import *selection.json* back to the IcoMoon app using the *Import Icons* button (or via Main Menu → Manage Projects) to retrieve your icon selection. diff --git a/apps/mobile/resources/icons/safe-icons/demo-files/demo.css b/apps/mobile/resources/icons/safe-icons/demo-files/demo.css new file mode 100644 index 0000000000..39b8991da7 --- /dev/null +++ b/apps/mobile/resources/icons/safe-icons/demo-files/demo.css @@ -0,0 +1,152 @@ +body { + padding: 0; + margin: 0; + font-family: sans-serif; + font-size: 1em; + line-height: 1.5; + color: #555; + background: #fff; +} +h1 { + font-size: 1.5em; + font-weight: normal; +} +small { + font-size: .66666667em; +} +a { + color: #e74c3c; + text-decoration: none; +} +a:hover, a:focus { + box-shadow: 0 1px #e74c3c; +} +.bshadow0, input { + box-shadow: inset 0 -2px #e7e7e7; +} +input:hover { + box-shadow: inset 0 -2px #ccc; +} +input, fieldset { + font-family: sans-serif; + font-size: 1em; + margin: 0; + padding: 0; + border: 0; +} +input { + color: inherit; + line-height: 1.5; + height: 1.5em; + padding: .25em 0; +} +input:focus { + outline: none; + box-shadow: inset 0 -2px #449fdb; +} +.glyph { + font-size: 16px; + width: 15em; + padding-bottom: 1em; + margin-right: 4em; + margin-bottom: 1em; + float: left; + overflow: hidden; +} +.liga { + width: 80%; + width: calc(100% - 2.5em); +} +.talign-right { + text-align: right; +} +.talign-center { + text-align: center; +} +.bgc1 { + background: #f1f1f1; +} +.fgc1 { + color: #999; +} +.fgc0 { + color: #000; +} +p { + margin-top: 1em; + margin-bottom: 1em; +} +.mvm { + margin-top: .75em; + margin-bottom: .75em; +} +.mtn { + margin-top: 0; +} +.mtl, .mal { + margin-top: 1.5em; +} +.mbl, .mal { + margin-bottom: 1.5em; +} +.mal, .mhl { + margin-left: 1.5em; + margin-right: 1.5em; +} +.mhmm { + margin-left: 1em; + margin-right: 1em; +} +.mls { + margin-left: .25em; +} +.ptl { + padding-top: 1.5em; +} +.pbs, .pvs { + padding-bottom: .25em; +} +.pvs, .pts { + padding-top: .25em; +} +.unit { + float: left; +} +.unitRight { + float: right; +} +.size1of2 { + width: 50%; +} +.size1of1 { + width: 100%; +} +.clearfix:before, .clearfix:after { + content: " "; + display: table; +} +.clearfix:after { + clear: both; +} +.hidden-true { + display: none; +} +.textbox0 { + width: 3em; + background: #f1f1f1; + padding: .25em .5em; + line-height: 1.5; + height: 1.5em; +} +#testDrive { + display: block; + padding-top: 24px; + line-height: 1.5; +} +.fs0 { + font-size: 16px; +} +.fs1 { + font-size: 32px; +} + diff --git a/apps/mobile/resources/icons/safe-icons/demo-files/demo.js b/apps/mobile/resources/icons/safe-icons/demo-files/demo.js new file mode 100644 index 0000000000..d9eef40ce6 --- /dev/null +++ b/apps/mobile/resources/icons/safe-icons/demo-files/demo.js @@ -0,0 +1,28 @@ +if (!('boxShadow' in document.body.style)) { + document.body.setAttribute('class', 'noBoxShadow') +} + +document.body.addEventListener('click', function (e) { + var target = e.target + if (target.tagName === 'INPUT' && target.getAttribute('class').indexOf('liga') === -1) { + target.select() + } +}) +;(function () { + var fontSize = document.getElementById('fontSize'), + testDrive = document.getElementById('testDrive'), + testText = document.getElementById('testText') + function updateTest() { + testDrive.innerHTML = testText.value || String.fromCharCode(160) + if (window.icomoonLiga) { + window.icomoonLiga(testDrive) + } + } + function updateSize() { + testDrive.style.fontSize = fontSize.value + 'px' + } + fontSize.addEventListener('change', updateSize, false) + testText.addEventListener('input', updateTest, false) + testText.addEventListener('change', updateTest, false) + updateSize() +})() diff --git a/apps/mobile/resources/icons/safe-icons/demo.html b/apps/mobile/resources/icons/safe-icons/demo.html new file mode 100644 index 0000000000..60bc08c862 --- /dev/null +++ b/apps/mobile/resources/icons/safe-icons/demo.html @@ -0,0 +1,1494 @@ + + + + + IcoMoon Demo + + + + + + + Font Name: safe-icons (Glyphs: 104) + + + Grid Size: Unknown + + + + icon-block + + + + + + + liga: + + + + + + + icon-alert-triangle + + + + + + + liga: + + + + + + + icon-alert + + + + + + + liga: + + + + + + + icon-info + + + + + + + liga: + + + + + + + icon-question + + + + + + + liga: + + + + + + + icon-points + + + + + + + liga: + + + + + + + icon-code-blocks + + + + + + + liga: + + + + + + + icon-hardware + + + + + + + liga: + + + + + + + icon-keystone + + + + + + + liga: + + + + + + + icon-ledger + + + + + + + liga: + + + + + + + icon-seed + + + + + + + liga: + + + + + + + icon-key + + + + + + + liga: + + + + + + + icon-dapp-logo + + + + + + + liga: + + + + + + + icon-double-arrow + + + + + + + liga: + + + + + + + icon-arrow-sort + + + + + + + liga: + + + + + + + icon-dropdown-arrow-small + + + + + + + liga: + + + + + + + icon-options-vertical + + + + + + + liga: + + + + + + + icon-options-horizontal + + + + + + + liga: + + + + + + + icon-check-oulined + + + + + + + liga: + + + + + + + icon-check + + + + + + + liga: + + + + + + + icon-check-filled + + + + + + + liga: + + + + + + + icon-arrow-down-1 + + + + + + + liga: + + + + + + + icon-arrow-down + + + + + + + liga: + + + + + + + icon-arrow-up + + + + + + + liga: + + + + + + + icon-arrow-left + + + + + + + liga: + + + + + + + icon-arrow-right + + + + + + + liga: + + + + + + + icon-tag + + + + + + + liga: + + + + + + + icon-camera + + + + + + + liga: + + + + + + + icon-element-drag + + + + + + + liga: + + + + + + + icon-transaction-partial-fill + + + + + + + liga: + + + + + + + icon-rows-2 + + + + + + + liga: + + + + + + + icon-check-notifications + + + + + + + liga: + + + + + + + icon-qr-code-1 + + + + + + + liga: + + + + + + + icon-scan-1 + + + + + + + liga: + + + + + + + icon-shield-crossed + + + + + + + liga: + + + + + + + icon-shield + + + + + + + liga: + + + + + + + icon-clock + + + + + + + liga: + + + + + + + icon-update + + + + + + + liga: + + + + + + + icon-repeat + + + + + + + liga: + + + + + + + icon-download + + + + + + + liga: + + + + + + + icon-upload + + + + + + + liga: + + + + + + + icon-qr-code + + + + + + + liga: + + + + + + + icon-scan + + + + + + + liga: + + + + + + + icon-eye-n + + + + + + + liga: + + + + + + + icon-eye-off + + + + + + + liga: + + + + + + + icon-unlock + + + + + + + liga: + + + + + + + icon-lock + + + + + + + liga: + + + + + + + icon-replace-owner + + + + + + + liga: + + + + + + + icon-edit-owner + + + + + + + liga: + + + + + + + icon-add-owner + + + + + + + liga: + + + + + + + icon-send-to + + + + + + + liga: + + + + + + + icon-owners + + + + + + + liga: + + + + + + + icon-link + + + + + + + liga: + + + + + + + icon-share + + + + + + + liga: + + + + + + + icon-external-link + + + + + + + liga: + + + + + + + icon-export + + + + + + + liga: + + + + + + + icon-paste + + + + + + + liga: + + + + + + + icon-copy + + + + + + + liga: + + + + + + + icon-sign + + + + + + + liga: + + + + + + + icon-document + + + + + + + liga: + + + + + + + icon-file + + + + + + + liga: + + + + + + + icon-search + + + + + + + liga: + + + + + + + icon-edit + + + + + + + liga: + + + + + + + icon-delete + + + + + + + liga: + + + + + + + icon-close-outlined + + + + + + + liga: + + + + + + + icon-close-filled + + + + + + + liga: + + + + + + + icon-close + + + + + + + liga: + + + + + + + icon-plus-outlined + + + + + + + liga: + + + + + + + icon-plus-filled + + + + + + + liga: + + + + + + + icon-plus + + + + + + + liga: + + + + + + + icon-transaction-batch + + + + + + + liga: + + + + + + + icon-blocks-1 + + + + + + + liga: + + + + + + + icon-rows-1 + + + + + + + liga: + + + + + + + icon-batch + + + + + + + liga: + + + + + + + icon-filter + + + + + + + liga: + + + + + + + icon-bookmark-filled + + + + + + + liga: + + + + + + + icon-bookmark + + + + + + + liga: + + + + + + + icon-transaction-recovery + + + + + + + liga: + + + + + + + icon-transaction-change-settings + + + + + + + liga: + + + + + + + icon-transaction-contract + + + + + + + liga: + + + + + + + icon-transaction-execute + + + + + + + liga: + + + + + + + icon-transaction-stake + + + + + + + liga: + + + + + + + icon-transaction-swap + + + + + + + liga: + + + + + + + icon-transaction-outgoing + + + + + + + liga: + + + + + + + icon-transaction-incoming + + + + + + + liga: + + + + + + + icon-mobile + + + + + + + liga: + + + + + + + icon-wallet + + + + + + + liga: + + + + + + + icon-appearance + + + + + + + liga: + + + + + + + icon-experimental + + + + + + + liga: + + + + + + + icon-desktop + + + + + + + liga: + + + + + + + icon-safe + + + + + + + liga: + + + + + + + icon-bell + + + + + + + liga: + + + + + + + icon-lightbulb + + + + + + + liga: + + + + + + + icon-what-is-new + + + + + + + liga: + + + + + + + icon-blocks + + + + + + + liga: + + + + + + + icon-rows + + + + + + + liga: + + + + + + + icon-apps + + + + + + + liga: + + + + + + + icon-address-book + + + + + + + liga: + + + + + + + icon-chat + + + + + + + liga: + + + + + + + icon-settings + + + + + + + liga: + + + + + + + icon-transactions + + + + + + + liga: + + + + + + + icon-nft + + + + + + + liga: + + + + + + + icon-token + + + + + + + liga: + + + + + + + icon-home + + + + + + + liga: + + + + + + + + Font Test Drive + + Font Size: + px + + + + + + + + Generated by IcoMoon + + + + + diff --git a/apps/mobile/resources/icons/safe-icons/fonts/safe-icons.svg b/apps/mobile/resources/icons/safe-icons/fonts/safe-icons.svg new file mode 100644 index 0000000000..38a4513088 --- /dev/null +++ b/apps/mobile/resources/icons/safe-icons/fonts/safe-icons.svg @@ -0,0 +1,112 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/mobile/resources/icons/safe-icons/fonts/safe-icons.ttf b/apps/mobile/resources/icons/safe-icons/fonts/safe-icons.ttf new file mode 100644 index 0000000000..95dd988052 Binary files /dev/null and b/apps/mobile/resources/icons/safe-icons/fonts/safe-icons.ttf differ diff --git a/apps/mobile/resources/icons/safe-icons/fonts/safe-icons.woff b/apps/mobile/resources/icons/safe-icons/fonts/safe-icons.woff new file mode 100644 index 0000000000..13341da035 Binary files /dev/null and b/apps/mobile/resources/icons/safe-icons/fonts/safe-icons.woff differ diff --git a/apps/mobile/resources/icons/safe-icons/selection.json b/apps/mobile/resources/icons/safe-icons/selection.json new file mode 100644 index 0000000000..6bc8add899 --- /dev/null +++ b/apps/mobile/resources/icons/safe-icons/selection.json @@ -0,0 +1,2451 @@ +{ + "IcoMoonType": "selection", + "icons": [ + { + "icon": { + "paths": [ + "M512 853.333c-78.763 0-151.125-27.093-208.939-72.021l478.251-478.251c44.971 57.771 72.021 130.176 72.021 208.939 0 188.203-153.131 341.333-341.333 341.333zM170.667 512c0-188.203 153.131-341.333 341.333-341.333 78.763 0 151.125 27.093 208.939 72.021l-478.251 478.251c-44.971-57.771-72.021-130.176-72.021-208.939zM512 85.333c-235.264 0-426.667 191.403-426.667 426.667s191.403 426.667 426.667 426.667c235.264 0 426.667-191.403 426.667-426.667s-191.403-426.667-426.667-426.667z" + ], + "attrs": [{ "fill": "rgb(255, 95, 114)" }], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["block"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "f": 4 }] } + }, + "attrs": [{ "fill": "rgb(255, 95, 114)" }], + "properties": { "order": 121, "id": 103, "name": "block", "prevSize": 32, "code": 59648 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 0 + }, + { + "icon": { + "paths": [ + "M511.949 341.432c23.552 0 42.667 19.072 42.667 42.667v170.666c0 23.552-19.115 42.667-42.667 42.667-23.595 0-42.667-19.115-42.667-42.667v-170.666c0-23.595 19.072-42.667 42.667-42.667z", + "M511.949 672.098c29.44 0 53.333 23.893 53.333 53.333s-23.893 53.333-53.333 53.333c-29.44 0-53.333-23.893-53.333-53.333s23.893-53.333 53.333-53.333z", + "M511.991 85.349c-21.419 0-42.837 10.667-54.741 32.085l-406.612 728.62c-23.168 41.6 7.040 92.629 54.784 92.629h813.183c47.744 0 77.909-51.029 54.741-92.629l-406.571-728.62c-11.947-21.419-33.365-32.085-54.784-32.085zM511.991 194.32l367.957 659.372h-735.871l367.914-659.372z" + ], + "attrs": [{ "fill": "rgb(255, 95, 114)" }, { "fill": "rgb(255, 95, 114)" }, { "fill": "rgb(255, 95, 114)" }], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["alert-triangle"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "f": 4 }, { "f": 4 }, { "f": 4 }] } + }, + "attrs": [{ "fill": "rgb(255, 95, 114)" }, { "fill": "rgb(255, 95, 114)" }, { "fill": "rgb(255, 95, 114)" }], + "properties": { "order": 120, "id": 102, "name": "alert-triangle", "prevSize": 32, "code": 59649 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 1 + }, + { + "icon": { + "paths": [ + "M512 256c23.564 0 42.667 19.103 42.667 42.667v256c0 23.564-19.103 42.667-42.667 42.667s-42.667-19.103-42.667-42.667v-256c0-23.564 19.103-42.667 42.667-42.667z", + "M512 672c29.457 0 53.333 23.876 53.333 53.333s-23.876 53.333-53.333 53.333c-29.457 0-53.333-23.876-53.333-53.333s23.876-53.333 53.333-53.333z", + "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667zM170.667 512c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333z" + ], + "attrs": [{ "fill": "rgb(255, 95, 114)" }, { "fill": "rgb(255, 95, 114)" }, { "fill": "rgb(255, 95, 114)" }], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["alert"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "f": 4 }, { "f": 4 }, { "f": 4 }] } + }, + "attrs": [{ "fill": "rgb(255, 95, 114)" }, { "fill": "rgb(255, 95, 114)" }, { "fill": "rgb(255, 95, 114)" }], + "properties": { "order": 119, "id": 101, "name": "alert", "prevSize": 32, "code": 59650 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 2 + }, + { + "icon": { + "paths": [ + "M512 426.667c23.564 0 42.667 19.103 42.667 42.667v256c0 23.564-19.103 42.667-42.667 42.667s-42.667-19.103-42.667-42.667v-256c0-23.564 19.103-42.667 42.667-42.667z", + "M512 245.333c29.457 0 53.333 23.878 53.333 53.333s-23.876 53.333-53.333 53.333c-29.457 0-53.333-23.878-53.333-53.333s23.876-53.333 53.333-53.333z", + "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667zM170.667 512c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["info"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 118, "id": 100, "name": "info", "prevSize": 32, "code": 59651 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 3 + }, + { + "icon": { + "paths": [ + "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667zM170.667 512c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333z", + "M445.525 389.725c0-32.858 27.814-59.947 62.72-59.947 34.829 0 62.635 27.096 62.635 59.947 0.371 23.981-5.726 32.305-35.209 53.824l-2.014 1.468c-49.997 36.484-70.972 65.579-68.023 123.435l-0.055 8.41c0 23.565 19.102 42.667 42.667 42.667s42.667-19.102 42.667-42.667v-10.581c-1.165-23.983 3.981-31.121 33.045-52.331l2.022-1.476c49.643-36.233 71.13-65.574 70.229-123.413 0.004-79.814-66.492-144.615-147.964-144.615-81.54 0-148.052 64.783-148.052 145.28 0 23.564 19.102 42.667 42.667 42.667s42.666-19.103 42.666-42.667z", + "M512 672c29.457 0 53.333 23.876 53.333 53.333s-23.876 53.333-53.333 53.333c-29.457 0-53.333-23.876-53.333-53.333s23.876-53.333 53.333-53.333z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["question"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 117, "id": 99, "name": "question", "prevSize": 32, "code": 59652 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 4 + }, + { + "icon": { + "paths": [ + "M616.64 555.337l32.883-16.546c20.791-10.462 43.58-19.307 67.26-26.79-23.68-7.484-46.468-16.329-67.26-26.79l-32.883-16.546 11.55-34.953c7.305-22.107 17.165-44.481 28.621-66.52-22.042 11.453-44.416 21.316-66.522 28.62l-34.953 11.548-16.546-32.881c-10.466-20.793-19.307-43.582-26.79-67.258-7.484 23.677-16.329 46.466-26.79 67.258l-16.546 32.881-34.953-11.548c-22.107-7.304-44.48-17.167-66.52-28.62 11.453 22.039 21.316 44.413 28.62 66.519l11.548 34.953-32.881 16.546c-20.793 10.462-43.582 19.307-67.259 26.79 23.677 7.484 46.466 16.329 67.259 26.79l32.881 16.546-11.548 34.953c-7.304 22.106-17.167 44.48-28.62 66.522 22.039-11.456 44.413-21.316 66.52-28.621l34.953-11.55 16.546 32.883c10.462 20.791 19.307 43.58 26.79 67.26 7.484-23.68 16.324-46.468 26.79-67.26l16.546-32.883 34.953 11.55c22.106 7.305 44.48 17.165 66.522 28.621-11.456-22.042-21.316-44.416-28.621-66.522l-11.55-34.953zM734.609 703.876c62.31 93.005 139.422 170.155 139.422 170.155s-77.15-77.111-170.155-139.422c-40.994-27.469-85.069-52.062-126.972-65.907-19.84 39.42-33.613 87.974-43.174 136.384-21.7 109.828-21.73 218.914-21.73 218.914s-0.030-109.086-21.73-218.914c-9.562-48.41-23.339-96.964-43.174-136.384-41.902 13.845-85.977 38.438-126.973 65.903-93.002 62.315-170.156 139.426-170.156 139.426s77.113-77.15 139.426-170.155c27.468-40.994 52.061-85.069 65.905-126.972-39.419-19.84-87.973-33.613-136.382-43.174-109.828-21.7-218.916-21.73-218.916-21.73s109.088-0.030 218.916-21.73c48.41-9.562 96.963-23.334 136.382-43.174-13.844-41.902-38.437-85.977-65.905-126.973-62.314-93.002-139.427-170.156-139.427-170.156s77.154 77.113 170.156 139.427c40.995 27.468 85.071 52.061 126.973 65.905 19.836-39.419 33.613-87.972 43.174-136.382 21.7-109.828 21.73-218.916 21.73-218.916s0.030 109.088 21.73 218.916c9.562 48.41 23.334 96.963 43.174 136.382 41.903-13.844 85.978-38.437 126.972-65.905 93.005-62.313 170.155-139.426 170.155-139.426s-77.111 77.154-139.422 170.156c-27.469 40.996-52.062 85.071-65.907 126.973 39.42 19.84 87.974 33.613 136.384 43.174 109.828 21.7 218.914 21.73 218.914 21.73s-109.086 0.030-218.914 21.73c-48.41 9.562-96.964 23.334-136.384 43.174 13.845 41.903 38.438 85.978 65.907 126.972z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["points"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 116, "id": 98, "name": "points", "prevSize": 32, "code": 59653 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 5 + }, + { + "icon": { + "paths": [ + "M307.199 163.142c0-6.317 5.093-11.438 11.377-11.438h79.646c6.284 0 11.378 5.121 11.378 11.438v80.066c0 6.317-5.093 11.438-11.378 11.438h-91.023v-91.504z", + "M204.801 266.083c0-6.317 5.094-11.438 11.378-11.438h91.022v91.504c0 6.317-5.094 11.438-11.378 11.438h-91.022v-91.504z", + "M102.4 369.025c0-6.317 5.094-11.438 11.378-11.438h91.022v91.504c0 6.317-5.094 11.438-11.378 11.438h-91.022v-91.504z", + "M0 471.967c0-6.317 5.094-11.438 11.378-11.438h91.022v102.94h-91.022c-6.284 0-11.378-5.12-11.378-11.435v-80.068z", + "M102.4 563.469h91.022c6.284 0 11.378 5.124 11.378 11.438v91.504h-91.022c-6.284 0-11.378-5.12-11.378-11.438v-91.504z", + "M204.801 666.412h91.022c6.284 0 11.378 5.124 11.378 11.438v91.504h-91.022c-6.284 0-11.378-5.12-11.378-11.438v-91.504z", + "M307.199 769.354h91.023c6.284 0 11.378 5.12 11.378 11.438v80.065c0 6.318-5.093 11.438-11.378 11.438h-79.646c-6.284 0-11.377-5.12-11.377-11.438v-91.504z", + "M716.8 163.142c0-6.317-5.093-11.438-11.378-11.438h-79.644c-6.284 0-11.378 5.121-11.378 11.438v80.066c0 6.317 5.093 11.438 11.378 11.438h91.022v-91.504z", + "M819.2 266.083c0-6.317-5.093-11.438-11.378-11.438h-91.022v91.504c0 6.317 5.093 11.438 11.378 11.438h91.022v-91.504z", + "M921.6 369.025c0-6.317-5.093-11.438-11.378-11.438h-91.022v91.504c0 6.317 5.093 11.438 11.378 11.438h91.022v-91.504z", + "M1024 471.967c0-6.317-5.093-11.438-11.378-11.438h-91.022v102.94h91.022c6.284 0 11.378-5.12 11.378-11.435v-80.068z", + "M921.6 563.469h-91.022c-6.284 0-11.378 5.124-11.378 11.438v91.504h91.022c6.284 0 11.378-5.12 11.378-11.438v-91.504z", + "M819.2 666.412h-91.022c-6.284 0-11.378 5.124-11.378 11.438v91.504h91.022c6.284 0 11.378-5.12 11.378-11.438v-91.504z", + "M716.8 769.354h-91.022c-6.284 0-11.378 5.12-11.378 11.438v80.065c0 6.318 5.093 11.438 11.378 11.438h79.644c6.284 0 11.378-5.12 11.378-11.438v-91.504z" + ], + "attrs": [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["code-blocks"], + "colorPermutations": { + "11611631671181918125521401255951141": [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}] + } + }, + "attrs": [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}], + "properties": { "order": 115, "id": 97, "name": "code-blocks", "prevSize": 32, "code": 59654 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 6 + }, + { + "icon": { + "paths": [ + "M313.544 7.455l-0.002 0.002 2.236 2.012-0.002 0.002 92.821 88.767-95.054-90.783zM313.544 7.455l-0.114-0.096M313.544 7.455l-0.114-0.096M313.43 7.358c-9.616-8.124-21.647-12.158-33.609-12.158M313.43 7.358l-33.609-12.158M443.789 580.65l-191.421-183.062c-36.396-34.806-43.486-87.131-21.158-128.769l-0.106-0.097-0.079-0.073 0.001-0.001-92.82-88.777c-19.335-18.479-19.99-48.173-1.927-67.423l0.089-0.095 0.001 0.001 1.834-1.851 0.001 0.001 105.658-101.033 199.927 571.178zM443.789 580.65l-188.309 180.16c-61.842 62.166-60.854 160.595 2.94 221.603l0.001 0.003c32.357 30.931 74.734 46.384 117.054 46.384s84.707-15.453 117.053-46.387l362.618-346.848c61.84-62.166 60.854-160.589-2.941-221.597l-0.045-0.042-2.832-2.643-0.096-0.083-2.723-2.41c-2.022-2.138-4.115-4.24-6.269-6.301v0l-299.792-286.601c-22.122-19.726-50.352-29.554-78.528-29.554-18.176 0-36.368 4.088-52.922 12.287l34.79 482.028zM279.821-4.8c-12.97 0-25.998 4.735-35.956 14.27l35.956-14.27zM813.021 452.032v0c20.765 19.859 32.147 46.186 32.147 74.176 0 27.987-11.382 54.33-32.147 74.186l-362.298 346.403c-0.010 0.010-0.019 0.019-0.032 0.029-20.448 18.304-46.992 28.365-75.219 28.365-29.466 0-57.112-10.966-77.883-30.829-20.764-19.869-32.146-46.198-32.146-74.198 0-27.987 11.382-54.317 32.146-74.173l362.299-346.397c0.010-0.010 0.019-0.019 0.029-0.029 20.442-18.31 46.995-28.371 75.219-28.371 29.469 0 57.114 10.963 77.885 30.838zM504.246 156.711l0.003 0.002 220.826 211.163c-38.912 2.253-77.2 17.6-106.995 46.093 0 0 0 0 0 0l-134.816 128.915-193.652-185.283c-21.24-22.288-20.61-56.896 1.922-78.454l7.348-7.003c1.403-1.084 2.76-2.249 4.063-3.495h0l107.535-102.936 0.176-0.2 1.533-1.728 7.341-7.033 2.246-2.046c11.005-9.527 25.12-14.76 40.141-14.76 16.038 0 31.050 5.969 42.33 16.766zM181.005 145.102l98.797-94.513 85.788 82.206-98.808 94.493-85.777-82.186zM730.474 460.125c-39.981 0-72.758 31.046-72.758 69.792s32.778 69.792 72.758 69.792c39.981 0 72.771-31.043 72.771-69.792s-32.79-69.792-72.771-69.792zM730.474 513.731c9.68 0 17.152 7.45 17.152 16.182s-7.472 16.182-17.152 16.182c-9.67 0-17.139-7.443-17.139-16.182s7.469-16.182 17.139-16.182z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["hardware"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 122, "id": 96, "name": "hardware", "prevSize": 32, "code": 59655 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 7 + }, + { + "icon": { + "paths": [ + "M436.297 645.107c-62.274 10.381-103.791 108.117-116.765 155.686-18.836 51.895 207.581 155.686 259.476 142.716 41.519-10.381 60.548-73.519 64.87-103.795 25.95 38.925-129.737-207.582-207.582-194.607z", + "M463.159 663.104c10.3 4.791 21.722 12.48 33.822 22.43 24.188 19.895 49.515 47.535 72.013 74.854 22.426 27.23 41.673 53.692 53.705 70.938 3.029 4.343 5.589 8.085 7.616 11.085-2.453 13.982-7.778 33.455-16.516 50.833-9.954 19.81-22.771 33.886-37.935 37.675-3.942 0.99-11.093 1.105-21.717-0.516-10.291-1.57-22.665-4.582-36.395-8.819-27.435-8.474-59.332-21.559-89.135-36.676-29.907-15.172-57.022-32.051-75.281-47.893-9.178-7.966-15.484-15.13-18.953-21.141-3.481-6.029-3.189-9.178-2.654-10.65l0.182-0.503 0.14-0.512c6.235-22.861 19.412-57.958 38.382-88.329 19.374-31.023 42.677-53.751 67.999-57.975 6.148-1.024 14.315 0.358 24.73 5.201zM635.755 804.851c-12.066-16.841-28.339-38.622-46.729-60.958-22.912-27.819-49.476-56.939-75.563-78.4-13.039-10.722-26.351-19.861-39.36-25.916-12.902-6.003-26.624-9.485-39.94-7.266-36.951 6.157-65.543 37.483-85.74 69.82-20.475 32.781-34.496 70.080-41.283 94.797-3.871 11.311-0.641 22.541 4.769 31.915 5.511 9.549 14.209 18.906 24.419 27.767 20.518 17.805 49.72 35.797 80.549 51.435 30.935 15.697 64.198 29.367 93.22 38.332 14.502 4.476 28.186 7.851 40.132 9.677 11.618 1.775 22.899 2.3 31.927 0.038 26.355-6.588 43.81-29.274 54.827-51.196 8.708-17.318 14.374-36.066 17.566-51.166 0.597-0.294 1.165-0.623 1.69-0.981 2.321-3.465 3.494-9.173 3.345-10.859-0.149-0.789-0.474-1.997-0.623-2.428-0.26-0.717-0.529-1.259-0.597-1.399-0.115-0.23-0.218-0.418-0.282-0.533-0.124-0.23-0.247-0.435-0.329-0.572-0.307-0.525-0.755-1.225-1.242-1.988-2.031-3.149-6.353-9.634-12.454-18.377l-8.218-12.326-0.085 0.585z", + "M812.535 593.212c5.696 0 10.257 2.697 13.026 4.71 3.042 2.214 5.841 5.026 8.294 7.829 4.932 5.636 9.822 12.809 14.007 19.507 4.245 6.788 8.034 13.525 10.743 18.534 1.361 2.513 2.466 4.612 3.23 6.093l0.892 1.732 0.239 0.474 0.064 0.132 0.021 0.038 2.91 5.82-2.901 5.803c-11.085 22.165-30.345 55.407-52.335 83.315-10.982 13.935-22.98 26.97-35.311 36.638-12.066 9.463-26.044 16.956-40.725 16.956-9.199 0-18.897-3.081-28.194-7.428-9.476-4.425-19.511-10.628-29.649-17.916-20.288-14.583-41.967-34.214-61.794-54.865-19.836-20.663-38.148-42.697-51.601-62.242-6.716-9.762-12.382-19.136-16.422-27.58-3.861-8.068-6.946-16.717-6.946-24.576v-12.975h272.452zM851.46 658.078l11.593-5.815c0 0 0.009 0.017-11.593 5.815z", + "M488.192 100.203l-298.4 493.009c-25.129 41.515 32.776 155.686 64.87 207.582l337.321-557.877c0-134.929-69.193-151.362-103.791-142.713z", + "M496.329 111.817l-295.437 488.11c-3.936 6.507-5.496 17.719-3.226 34.163 2.208 15.987 7.727 34.748 15.225 54.396 11.748 30.788 27.869 62.515 41.877 87.057l324.223-536.216c-0.602-63.161-17.118-95.872-34.714-112.061-15.842-14.575-34.33-17.4-47.949-15.449zM561.847 108.17c25.318 23.294 43.11 65.333 43.11 134.746v3.617l-350.171 579.13-11.159-18.048c-16.34-26.419-39.261-68.685-54.98-109.879-7.849-20.57-14.1-41.382-16.685-60.1-2.522-18.261-1.897-36.89 6.731-51.145l301.166-497.579 5.188-1.296c20.774-5.195 51.43-2.787 76.8 20.553z", + "M617.933 307.786l-103.795 168.66c-10.377 16.866-4.322 41.626 0 51.895h207.586l25.946-51.895c0-103.791-86.494-155.686-129.737-168.66z", + "M612.109 292.494l9.549 2.865c45.683 13.705 138.987 68.914 138.987 181.087v3.063l-30.903 61.807h-224.218l-3.341-7.94c-2.645-6.285-5.615-16.393-6.49-27.486-0.866-10.961 0.183-24.525 7.398-36.245l109.018-177.151zM623.548 323.414l-98.359 159.833c-3.166 5.146-4.279 12.395-3.631 20.599 0.329 4.139 1.071 8.102 1.946 11.52h190.199l20.966-41.929c-1.532-86.647-69.111-133.952-111.121-150.024z" + ], + "attrs": [{}, {}, {}, {}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["keystone"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}, {}, {}, {}], + "properties": { "order": 123, "id": 95, "name": "keystone", "prevSize": 32, "code": 59656 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 8 + }, + { + "icon": { + "paths": [ + "M0 383.312h233.335v225.015h-233.335v-225.015z", + "M404.647 772.372h233.336v225.014h-233.336v-225.014z", + "M0 155.611c0-85.942 69.669-155.611 155.611-155.611h77.724v216.677h-233.335v-61.066z", + "M0 841.836c0 85.944 69.669 155.612 155.611 155.612h77.724v-216.678h-233.335v61.066z", + "M1023.949 841.836c0 85.944-69.668 155.612-155.612 155.612h-77.722v-216.678h233.334v61.066z", + "M390.647 0h508.866c68.751 0 124.488 55.735 124.488 124.489v483.87h-633.353v-608.358z" + ], + "attrs": [{}, {}, {}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["ledger"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}, {}, {}], + "properties": { "order": 124, "id": 94, "name": "ledger", "prevSize": 32, "code": 59657 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 9 + }, + { + "icon": { + "paths": [ + "M992.614 100.156c4.012-23.876 4.003-23.877 3.994-23.878l17.813 2.798 2.895 17.217c0-0.009 0-0.017-24.702 3.863z", + "M6.683 96.311l-0.014 0.085-0.032 0.194-0.106 0.661-0.364 2.385c-0.303 2.051-0.719 5.011-1.192 8.786-0.946 7.549-2.125 18.376-3.098 31.74-1.942 26.684-3.079 63.708 0.178 105.067 6.437 81.744 30.398 185.086 104.557 256.765 55.461 53.606 129.141 79.951 197.454 92.463 55.22 10.114 108.439 11.469 148.772 10.175v288c0 30.32 25.431 54.9 56.803 54.9s56.804-24.581 56.804-54.9v-288.126c39.913 1.517 93.496 0.545 149.397-9.281 69.483-12.214 144.984-38.54 201.537-93.203 74.166-71.687 98.127-175.040 104.569-256.793 3.254-41.364 2.118-78.392 0.177-105.079-0.973-13.366-2.155-24.194-3.1-31.743-0.475-3.776-0.889-6.736-1.192-8.787l-0.363-2.385-0.107-0.661-0.033-0.194-0.014-0.085-24.702 3.863 3.994-23.878-0.968-0.147-2.472-0.352c-2.122-0.293-5.185-0.695-9.090-1.152-7.81-0.915-19.014-2.054-32.842-2.995-27.611-1.878-65.918-2.977-108.712 0.172-84.582 6.222-191.511 29.385-265.677 101.072-28.416 27.462-49.413 59.537-64.875 93.124-15.458-33.584-36.454-65.657-64.865-93.117-74.159-71.679-181.076-94.839-265.647-101.060-42.79-3.148-81.095-2.049-108.702-0.172-13.826 0.94-25.028 2.080-32.838 2.994-3.906 0.457-6.968 0.859-9.090 1.152l-2.468 0.352-0.684 0.102-0.2 0.031-0.088 0.014 3.995 23.878c-4.011-23.855-4.004-23.877-3.995-23.878l-17.813 2.798-2.895 17.217c0.001-0.009 0.022-0.013 24.703 3.863l-24.703-3.863zM851.144 181.295c21.267-1.564 41.365-1.884 59.127-1.55 0.344 17.168 0.014 36.593-1.606 57.149-5.739 72.92-26.382 143.758-71.619 187.481s-118.523 63.677-193.969 69.227c-21.267 1.564-41.365 1.884-59.127 1.55-0.344-17.169-0.014-36.593 1.606-57.149 5.739-72.92 26.387-143.758 71.619-187.481 45.238-43.724 118.528-63.677 193.969-69.227zM115.333 236.894c-1.618-20.549-1.948-39.968-1.603-57.132 17.758-0.334 37.848-0.014 59.109 1.55 75.433 5.549 148.709 25.499 193.938 69.215s65.869 114.542 71.61 187.453c1.618 20.549 1.948 39.968 1.604 57.132-17.758 0.334-37.848 0.014-59.109-1.55-75.433-5.549-148.709-25.499-193.938-69.215s-65.869-114.542-71.61-187.453z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["seed"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 114, "id": 93, "name": "seed", "prevSize": 32, "code": 59658 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 10 + }, + { + "icon": { + "paths": [ + "M677.197 309.028l142.349-142.351M900.89 85.333v0zM510.033 476.19c21.001 20.719 37.696 45.389 49.122 72.589s17.361 56.393 17.459 85.892c0.098 29.504-5.636 58.735-16.883 86.007-11.243 27.277-27.772 52.058-48.631 72.917-20.864 20.864-45.645 37.393-72.922 48.636-27.273 11.243-56.503 16.981-86.005 16.883s-58.693-6.033-85.893-17.459c-27.199-11.426-51.869-28.122-72.591-49.122-40.748-42.189-63.295-98.692-62.785-157.346s24.035-114.756 65.51-156.233c41.475-41.476 97.58-65.001 156.232-65.51s115.159 22.037 157.348 62.784l0.038-0.038zM510.033 476.19v0zM677.197 309.028l122.014 122.016 142.353-142.352-122.018-122.016-142.349 142.351z" + ], + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["key"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }] } + }, + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "properties": { "order": 141, "id": 92, "name": "key", "prevSize": 32, "code": 59659 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 11 + }, + { + "icon": { + "paths": [ + "M814.289 306.612c-166.95-163.458-437.63-163.458-604.58 0l-22.054 21.592c-8.347 8.173-8.347 21.424 0 29.597l68.733 67.296c4.174 4.087 10.941 4.087 15.114 0l29.611-28.992c116.468-114.033 305.303-114.033 421.77 0l27.652 27.072c4.173 4.087 10.94 4.087 15.113 0l68.732-67.296c8.35-8.173 8.35-21.424 0-29.597l-20.092-19.673zM1017.591 505.681l-61.171-59.895c-8.346-8.171-21.879-8.171-30.229 0l-195.767 191.676c-2.086 2.039-5.47 2.039-7.556 0l-195.772-191.68c-8.35-8.171-21.884-8.171-30.229 0l-195.763 191.68c-2.087 2.044-5.47 2.044-7.557 0l-195.772-191.68c-8.348-8.171-21.882-8.171-30.229 0l-61.173 59.895c-8.348 8.171-8.348 21.423 0 29.598l275.84 270.067c8.348 8.175 21.882 8.175 30.229 0l195.765-191.671c2.086-2.044 5.47-2.044 7.556 0l195.767 191.671c8.35 8.175 21.884 8.175 30.229 0l275.831-270.067c8.35-8.171 8.35-21.423 0-29.594z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["dapp-logo"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 112, "id": 91, "name": "dapp-logo", "prevSize": 32, "code": 59660 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 12 + }, + { + "icon": { + "paths": [ + "M285.865 780.378c16.64 16.64 43.52 16.64 60.16 0l165.975-165.12 165.547 165.547c16.64 16.64 43.52 16.64 60.16 0s16.64-43.52 0-60.16l-195.84-195.84c-3.947-3.959-8.636-7.095-13.798-9.237s-10.697-3.243-16.282-3.243c-5.589 0-11.123 1.101-16.286 3.243-5.158 2.142-9.847 5.278-13.794 9.237l-195.841 195.413c-16.64 16.64-16.64 43.52 0 60.16z", + "M285.865 499.2c16.64 16.64 43.52 16.64 60.16 0l165.975-165.121 165.547 165.548c16.64 16.64 43.52 16.64 60.16 0s16.64-43.52 0-60.16l-195.84-195.841c-3.947-3.956-8.636-7.095-13.798-9.236s-10.697-3.244-16.282-3.244c-5.589 0-11.123 1.102-16.286 3.244-5.158 2.141-9.847 5.28-13.794 9.236l-195.841 195.415c-16.64 16.64-16.64 43.52 0 60.16z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["double-arrow"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 111, "id": 90, "name": "double-arrow", "prevSize": 32, "code": 59661 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 13 + }, + { + "icon": { + "paths": [ + "M637.966 589.86l166.614-169.279c49.174-49.174 131.092-49.174 180.266 0s49.174 131.092 0 180.266l-379.615 384.968c-24.534 24.532-57.388 38.185-90.134 38.185s-65.491-13.654-90.132-38.185l-387.726-384.968c-54.613-54.612-49.174-147.411 16.426-193.92 51.839-38.185 125.653-27.306 169.278 19.094l144.746 141.971 16.428 2.774v-125.654l-0.108-319.459c0-71.041 57.388-125.654 125.654-125.654 73.814 0 128.428 57.387 128.428 125.654l-0.125 464.206z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["arrow-sort"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 110, "id": 89, "name": "arrow-sort", "prevSize": 32, "code": 59662 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 14 + }, + { + "icon": { + "paths": [ + "M438.907 768.411c40.424 37.378 105.859 37.378 146.186 0l408.412-377.63c65.145-60.235 19-163.226-73.093-163.226l-816.824 0.090c-92.093 0-138.238 102.991-73.093 163.136l408.412 377.63z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["dropdown-arrow-small"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 109, "id": 88, "name": "dropdown-arrow-small", "prevSize": 32, "code": 59663 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 15 + }, + { + "icon": { + "paths": [ + "M512 245.68c-49.939 0-90.422-40.483-90.422-90.422s40.483-90.422 90.422-90.422c49.939 0 90.422 40.483 90.422 90.422s-40.484 90.422-90.422 90.422z", + "M512 603.258c-49.939 0-90.422-40.483-90.422-90.422s40.483-90.422 90.422-90.422c49.939 0 90.422 40.483 90.422 90.422s-40.484 90.422-90.422 90.422z", + "M512 960.838c-49.939 0-90.422-40.486-90.422-90.426s40.483-90.419 90.422-90.419c49.939 0 90.422 40.48 90.422 90.419s-40.483 90.426-90.422 90.426z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["options-vertical"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 108, "id": 87, "name": "options-vertical", "prevSize": 32, "code": 59664 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 16 + }, + { + "icon": { + "paths": [ + "M879.596 448c44.408 0 80.408 36 80.408 80.408v1.103c0 44.408-36 80.408-80.408 80.408s-80.408-36-80.408-80.408v-1.103c0-44.408 36-80.408 80.408-80.408z", + "M512.002 448c44.408 0 80.408 36 80.408 80.408v1.103c0 44.408-36 80.408-80.408 80.408s-80.408-36-80.408-80.408v-1.103c0-44.408 36-80.408 80.408-80.408z", + "M144.408 448c44.408 0 80.408 36 80.408 80.408v1.103c0 44.408-36 80.408-80.408 80.408s-80.408-36-80.408-80.408v-1.103c0-44.408 36-80.408 80.408-80.408z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["options-horizontal"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 107, "id": 86, "name": "options-horizontal", "prevSize": 32, "code": 59665 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 17 + }, + { + "icon": { + "paths": [ + "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667zM170.667 512c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333z", + "M450.999 682.667c-8.107 0-15.876-3.584-21.572-9.997l-121.852-136.627c-11.884-13.342-11.884-34.94 0.030-48.282 11.914-13.274 31.202-13.308 43.116 0.034l100.278 112.465 222.315-248.921c11.913-13.341 31.168-13.341 43.085 0 11.913 13.342 11.913 34.907 0 48.249l-243.857 273.081c-5.696 6.413-13.436 9.997-21.542 9.997z", + "M450.999 682.667v0c-8.107 0-15.876-3.584-21.572-9.997l-121.852-136.627c-11.884-13.342-11.884-34.94 0.030-48.282 11.914-13.274 31.202-13.308 43.116 0.034l100.278 112.465 222.315-248.921c11.913-13.341 31.168-13.341 43.085 0 11.913 13.342 11.913 34.907 0 48.249l-243.857 273.081c-5.696 6.413-13.436 9.997-21.542 9.997" + ], + "attrs": [ + {}, + {}, + { + "fill": "none", + "stroke": "rgb(0, 0, 0)", + "strokeLinejoin": "miter", + "strokeLinecap": "butt", + "strokeMiterlimit": "4", + "strokeWidth": 21.333333333333332 + } + ], + "isMulticolor": false, + "isMulticolor2": true, + "grid": 0, + "tags": ["check-oulined"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, { "s": 0 }] } + }, + "attrs": [ + {}, + {}, + { + "fill": "none", + "stroke": "rgb(0, 0, 0)", + "strokeLinejoin": "miter", + "strokeLinecap": "butt", + "strokeMiterlimit": "4", + "strokeWidth": 21.333333333333332 + } + ], + "properties": { "order": 131, "id": 85, "name": "check-oulined", "prevSize": 32, "code": 59666 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 18 + }, + { + "icon": { + "paths": [ + "M422.393 725.333c-7.945 0-15.532-3.2-21.117-8.93l-179.184-182.946c-11.679-11.913-11.679-31.206 0-43.089 11.679-11.917 30.556-11.917 42.234 0l158.066 161.395 337.278-344.16c11.682-11.916 30.558-11.916 42.236 0s11.678 31.177 0 43.092l-358.396 365.707c-5.585 5.73-13.171 8.93-21.118 8.93z", + "M422.393 725.333v0c-7.945 0-15.532-3.2-21.117-8.93l-179.184-182.946c-11.679-11.913-11.679-31.206 0-43.089 11.679-11.917 30.556-11.917 42.234 0l158.066 161.395 337.278-344.16c11.682-11.916 30.558-11.916 42.236 0s11.678 31.177 0 43.092l-358.396 365.707c-5.585 5.73-13.171 8.93-21.118 8.93" + ], + "attrs": [ + {}, + { + "fill": "none", + "stroke": "rgb(0, 0, 0)", + "strokeLinejoin": "miter", + "strokeLinecap": "butt", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "isMulticolor": false, + "isMulticolor2": true, + "grid": 0, + "tags": ["check"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, { "s": 0 }] } + }, + "attrs": [ + {}, + { + "fill": "none", + "stroke": "rgb(0, 0, 0)", + "strokeLinejoin": "miter", + "strokeLinecap": "butt", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "properties": { "order": 132, "id": 84, "name": "check", "prevSize": 32, "code": 59667 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 19 + }, + { + "icon": { + "paths": [ + "M938.667 512c0-235.642-191.027-426.667-426.667-426.667-235.642 0-426.667 191.025-426.667 426.667 0 235.639 191.025 426.667 426.667 426.667 235.639 0 426.667-191.027 426.667-426.667zM395.726 456.499l96.366 90.159 139.785-143.341c24.678-25.306 65.199-25.815 90.505-1.137s25.813 65.195 1.135 90.5l-183.552 188.224c-24.316 24.939-64.111 25.852-89.545 2.052l-142.144-132.992c-25.81-24.149-27.158-64.649-3.009-90.458s64.649-27.157 90.46-3.008z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["check-filled"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 104, "id": 83, "name": "check-filled", "prevSize": 32, "code": 59668 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 20 + }, + { + "icon": { + "paths": [ + "M474.509 764.894v-598.494c0-21.208 16.785-38.4 37.491-38.4s37.491 17.192 37.491 38.4v598.494l154.509-158.259c14.639-14.997 38.379-14.997 53.018 0 14.643 14.997 14.643 39.309 0 54.306l-212.075 217.225c-1.092 1.118-2.231 2.15-3.418 3.102-6.861 8.969-17.536 14.733-29.525 14.733s-22.665-5.764-29.525-14.733c-1.186-0.951-2.325-1.984-3.418-3.102l-212.076-217.225c-14.641-14.997-14.641-39.309 0-54.306s38.378-14.997 53.019 0l154.509 158.259z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["arrow-down-1"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 103, "id": 82, "name": "arrow-down-1", "prevSize": 32, "code": 59669 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 21 + }, + { + "icon": { + "paths": [ + "M760.567 390.761c9.911 9.014 9.911 23.629 0 32.643l-230.63 209.834c-9.907 9.015-25.967 9.015-35.874 0l-230.633-209.834c-9.907-9.014-9.907-23.629 0-32.643s25.97-9.014 35.878 0l212.692 193.513 212.693-193.513c9.907-9.014 25.967-9.014 35.874 0z" + ], + "attrs": [ + { + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["arrow-down"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }] } + }, + "attrs": [ + { + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "properties": { "order": 135, "id": 81, "name": "arrow-down", "prevSize": 32, "code": 59670 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 22 + }, + { + "icon": { + "paths": [ + "M263.43 633.237c-9.907-9.011-9.907-23.625 0-32.64l230.633-209.837c9.907-9.014 25.967-9.014 35.874 0l230.63 209.837c9.911 9.011 9.911 23.629 0 32.64-9.907 9.015-25.967 9.015-35.874 0l-212.693-193.51-212.692 193.51c-9.908 9.015-25.97 9.015-35.878 0z" + ], + "attrs": [ + { + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["arrow-up"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }] } + }, + "attrs": [ + { + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "properties": { "order": 136, "id": 80, "name": "arrow-up", "prevSize": 32, "code": 59671 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 23 + }, + { + "icon": { + "paths": [ + "M633.237 760.567c-9.011 9.911-23.625 9.911-32.64 0l-209.837-230.63c-9.014-9.907-9.014-25.967 0-35.874l209.837-230.633c9.015-9.907 23.629-9.907 32.644 0 9.011 9.908 9.011 25.97 0 35.878l-193.515 212.692 193.51 212.693c9.015 9.907 9.015 25.967 0 35.874z" + ], + "attrs": [ + { + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["arrow-left"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }] } + }, + "attrs": [ + { + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "properties": { "order": 138, "id": 79, "name": "arrow-left", "prevSize": 32, "code": 59672 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 24 + }, + { + "icon": { + "paths": [ + "M390.761 263.43c9.014-9.907 23.629-9.907 32.643 0l209.834 230.633c9.015 9.907 9.015 25.967 0 35.874l-209.834 230.63c-9.014 9.911-23.629 9.911-32.643 0-9.014-9.907-9.014-25.967 0-35.874l193.513-212.693-193.513-212.692c-9.014-9.908-9.014-25.97 0-35.878z" + ], + "attrs": [ + { + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["arrow-right"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }] } + }, + "attrs": [ + { + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "properties": { "order": 137, "id": 78, "name": "arrow-right", "prevSize": 32, "code": 59673 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 25 + }, + { + "icon": { + "paths": [ + "M873.997 602.462l-271.27 271.339c-7.027 7.040-15.373 12.621-24.555 16.431-9.186 3.81-19.034 5.769-28.979 5.769-9.941 0-19.789-1.958-28.975-5.769s-17.532-9.391-24.559-16.431l-324.992-324.698v-378.436h378.338l324.992 325.077c14.093 14.182 22.003 33.365 22.003 53.359 0 19.998-7.91 39.181-22.003 53.359z", + "M341.333 341.333h0.427" + ], + "attrs": [ + { + "fill": "none", + "stroke": "rgb(161, 163, 167)", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "stroke": "rgb(161, 163, 167)", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["tag"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 3 }, { "s": 3 }] } + }, + "attrs": [ + { + "fill": "none", + "stroke": "rgb(161, 163, 167)", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "stroke": "rgb(161, 163, 167)", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "properties": { "order": 139, "id": 77, "name": "tag", "prevSize": 32, "code": 59674 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 26 + }, + { + "icon": { + "paths": [ + "M358.4 170.667l-102.4 102.4h-68.267c-56.554 0-102.4 45.846-102.4 102.4v375.612c0 56.555 45.846 102.4 102.4 102.4h648.533c56.555 0 102.4-45.845 102.4-102.4v-375.612c0-56.554-45.845-102.4-102.4-102.4h-68.267l-102.4-102.4h-307.2zM291.346 358.4l102.4-102.4h236.509l102.4 102.4h103.612c9.425 0 17.067 7.641 17.067 17.067v375.612c0 9.425-7.642 17.067-17.067 17.067h-648.533c-9.425 0-17.067-7.642-17.067-17.067v-375.612c0-9.425 7.641-17.067 17.067-17.067h103.613z", + "M512 725.333c-106.039 0-192-85.961-192-192s85.961-192 192-192c106.039 0 192 85.961 192 192s-85.961 192-192 192zM618.667 533.333c0-58.91-47.757-106.667-106.667-106.667s-106.667 47.757-106.667 106.667c0 58.91 47.757 106.667 106.667 106.667s106.667-47.757 106.667-106.667z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["camera"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 100, "id": 76, "name": "camera", "prevSize": 32, "code": 59675 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 27 + }, + { + "icon": { + "paths": [ + "M298.667 512.004c0-47.125 38.205-85.333 85.333-85.333 47.13 0 85.333 38.208 85.333 85.333 0 47.13-38.204 85.333-85.333 85.333-47.128 0-85.333-38.204-85.333-85.333z", + "M554.667 512.004c0-47.125 38.204-85.333 85.333-85.333s85.333 38.208 85.333 85.333c0 47.13-38.204 85.333-85.333 85.333s-85.333-38.204-85.333-85.333z", + "M298.667 213.333c0-47.128 38.205-85.333 85.333-85.333 47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333c-47.128 0-85.333-38.205-85.333-85.333z", + "M554.667 213.333c0-47.128 38.204-85.333 85.333-85.333s85.333 38.205 85.333 85.333c0 47.128-38.204 85.333-85.333 85.333s-85.333-38.205-85.333-85.333z", + "M298.667 810.662c0-47.13 38.205-85.333 85.333-85.333 47.13 0 85.333 38.204 85.333 85.333 0 47.125-38.204 85.333-85.333 85.333-47.128 0-85.333-38.208-85.333-85.333z", + "M554.667 810.662c0-47.13 38.204-85.333 85.333-85.333s85.333 38.204 85.333 85.333c0 47.125-38.204 85.333-85.333 85.333s-85.333-38.208-85.333-85.333z" + ], + "attrs": [{}, {}, {}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["element-drag"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}, {}, {}], + "properties": { "order": 99, "id": 75, "name": "element-drag", "prevSize": 32, "code": 59676 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 28 + }, + { + "icon": { + "paths": [ + "M832.499 512.32c0-176.555-143.543-320.181-320-320.32v-128c239.906 0.135 436.343 189.779 447.501 427.012v-1.557c0.38 7.573 0.576 15.198 0.576 22.865s-0.196 15.287-0.576 22.865v-1.557c-10.807 229.734-195.362 414.784-424.892 426.372h0.013c-0.905 0.047-1.805 0.090-2.709 0.128-6.682 0.299-13.402 0.448-20.156 0.448zM512.499 960v-127.424c176.457-0.141 320-143.765 320-320.256zM512.243 960.576c-7.612 0-15.181-0.192-22.703-0.567-0.055-0.004-0.111-0.004-0.166-0.009h0.013c-229.529-11.588-414.085-196.638-424.889-426.372v1.557c-0.383-7.578-0.576-15.198-0.576-22.865s0.193-15.292 0.576-22.865v1.557c11.156-237.233 207.59-426.877 447.502-427.012v896h0.499z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-partial-fill"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 98, "id": 74, "name": "transaction-partial-fill", "prevSize": 32, "code": 59677 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 29 + }, + { + "icon": { + "paths": [ + "M341.333 490.667c0-35.345 28.654-64 64-64h426.667c35.345 0 64 28.655 64 64s-28.655 64-64 64h-426.667c-35.346 0-64-28.655-64-64z", + "M341.333 746.667c0-35.345 28.654-64 64-64h426.667c35.345 0 64 28.655 64 64s-28.655 64-64 64h-426.667c-35.346 0-64-28.655-64-64z", + "M341.333 234.667c0-35.346 28.654-64 64-64h426.667c35.345 0 64 28.654 64 64s-28.655 64-64 64h-426.667c-35.346 0-64-28.654-64-64z", + "M256 234.667c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64z", + "M256 490.667c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64z", + "M256 746.667c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64z" + ], + "attrs": [ + { "fill": "rgb(0, 0, 0)" }, + { "fill": "rgb(0, 0, 0)" }, + { "fill": "rgb(0, 0, 0)" }, + { "fill": "rgb(18, 19, 18)" }, + { "fill": "rgb(18, 19, 18)" }, + { "fill": "rgb(18, 19, 18)" } + ], + "isMulticolor": true, + "isMulticolor2": false, + "grid": 0, + "tags": ["rows-2"], + "colorPermutations": { + "11611631671181918125521401255951141": [ + { "f": 0 }, + { "f": 0 }, + { "f": 0 }, + { "f": 1 }, + { "f": 1 }, + { "f": 1 } + ] + } + }, + "attrs": [ + { "fill": "rgb(0, 0, 0)" }, + { "fill": "rgb(0, 0, 0)" }, + { "fill": "rgb(0, 0, 0)" }, + { "fill": "rgb(18, 19, 18)" }, + { "fill": "rgb(18, 19, 18)" }, + { "fill": "rgb(18, 19, 18)" } + ], + "properties": { + "order": 97, + "id": 73, + "name": "rows-2", + "prevSize": 32, + "code": 59678, + "codes": [59678, 59679, 59680, 59681, 59682, 59683] + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 30 + }, + { + "icon": { + "paths": [ + "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667zM170.667 512c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333z", + "M327.74 438.434c-17.204-16.102-44.204-15.21-60.307 1.993s-15.21 44.207 1.993 60.309l176.683 165.376c16.956 15.868 43.49 15.262 59.703-1.365l228.139-233.984c16.452-16.872 16.111-43.885-0.764-60.335-16.87-16.451-43.883-16.109-60.335 0.763l-198.955 204.050-146.159-136.806z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["check-notifications"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 96, "id": 72, "name": "check-notifications", "prevSize": 32, "code": 59684 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 31 + }, + { + "icon": { + "paths": [ + "M384 85.333h-213.333c-47.128 0-85.333 38.205-85.333 85.333v213.333c0 47.13 38.205 85.333 85.333 85.333h213.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.128-38.204-85.333-85.333-85.333zM170.667 384v-213.333h213.333v213.333h-213.333z", + "M384 554.667h-213.333c-47.128 0-85.333 38.204-85.333 85.333v213.333c0 47.13 38.205 85.333 85.333 85.333h213.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.13-38.204-85.333-85.333-85.333zM170.667 853.333v-213.333h213.333v213.333h-213.333z", + "M853.333 85.333h-213.333c-47.13 0-85.333 38.205-85.333 85.333v213.333c0 47.13 38.204 85.333 85.333 85.333h213.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.128-38.204-85.333-85.333-85.333zM640 384v-213.333h213.333v213.333h-213.333z", + "M661.333 554.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z", + "M917.333 554.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z", + "M789.333 682.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z", + "M917.333 810.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z", + "M661.333 810.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z" + ], + "attrs": [{}, {}, {}, {}, {}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["qr-code-1"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}, {}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}, {}, {}, {}, {}], + "properties": { "order": 95, "id": 71, "name": "qr-code-1", "prevSize": 32, "code": 59685 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 32 + }, + { + "icon": { + "paths": [ + "M938.667 170.667v170.667c0 23.564-19.102 42.667-42.667 42.667s-42.667-19.103-42.667-42.667v-170.667h-170.667c-23.565 0-42.667-19.103-42.667-42.667s19.102-42.667 42.667-42.667h170.667c47.13 0 85.333 38.205 85.333 85.333z", + "M170.667 170.667v170.667c0 23.564-19.103 42.667-42.667 42.667s-42.667-19.103-42.667-42.667v-170.667c0-47.128 38.205-85.333 85.333-85.333h170.667c23.564 0 42.667 19.103 42.667 42.667s-19.103 42.667-42.667 42.667h-170.667z", + "M853.333 853.333v-170.667c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667v170.667c0 47.13-38.204 85.333-85.333 85.333h-170.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667h170.667z", + "M170.667 853.333h170.667c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667h-170.667c-47.128 0-85.333-38.204-85.333-85.333v-170.667c0-23.565 19.103-42.667 42.667-42.667s42.667 19.102 42.667 42.667v170.667z", + "M128 469.333h768c23.564 0 42.667 19.103 42.667 42.667s-19.103 42.667-42.667 42.667h-768c-23.564 0-42.667-19.103-42.667-42.667s19.103-42.667 42.667-42.667z" + ], + "attrs": [{}, {}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["scan-1"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}, {}], + "properties": { "order": 94, "id": 70, "name": "scan-1", "prevSize": 32, "code": 59686 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 33 + }, + { + "icon": { + "paths": [ + "M840.107 597.333c8.576-27.639 13.035-56.393 13.227-85.333v-298.667l-341.333-128-134.828 50.347", + "M201.813 201.812l-31.147 11.52v298.668c0 256 341.333 426.667 341.333 426.667 90.325-47.663 171.507-110.929 239.787-186.88", + "M42.667 42.667l938.667 938.667" + ], + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["shield-crossed"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }, { "s": 0 }, { "s": 0 }] } + }, + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "properties": { "order": 133, "id": 69, "name": "shield-crossed", "prevSize": 32, "code": 59687 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 34 + }, + { + "icon": { + "paths": [ + "M498.129 935.945c9.698 3.639 20.386 3.631 30.076-0.030 168.346-63.599 275.204-151.066 328.93-250.807 10.091-18.052 17.984-38.097 24.009-59.78 6.959-25.050 11.2-51.371 13.321-78.067 1.434-18.014 1.745-33.506 1.455-47.334-0.068-2.987-0.068-2.987-0.073-2.688v-272c0-24.709-20.919-44.251-45.572-42.567-21.329 1.457-32.043 1.991-43.9 1.991-111.714 0-203.981-39.909-267.994-90.209-16.474-12.945-39.906-12.014-55.3 2.196-0.922 0.847-2.022 1.75-3.686 3.001-1.28 0.966-2.85 2.105-7.014 5.123-17.788 11.879-28.122 18.392-43.648 26.725-3.437 1.846-6.883 3.627-10.339 5.341-60.663 29.792-126.433 47.823-200.646 47.823-11.919 0-22.554-0.53-43.941-1.991-24.651-1.684-45.574 17.859-45.574 42.567v269.952c-3.589 50.202 9.391 138.615 44.909 199.134 6.782 12.574 15.632 25.626 26.72 39.684 62.988 83.503 163.576 151.36 298.268 201.937zM782.524 643.695l-0.38 0.687c-41.929 78.042-127.91 149.965-269.060 205.888-112.85-44.476-195.069-101.325-245.661-168.384-8.823-11.2-15.002-20.314-19.968-29.483-14.854-25.357-24.553-57.66-29.862-93.828-3.653-24.883-4.827-50.389-4.13-60.429l0.086-228.169c1.385 0.012 2.78 0.017 4.198 0.017 88.57 0 166.714-21.424 238.411-56.636 4.442-2.202 8.7-4.403 12.932-6.676 15.774-8.467 26.914-15.258 42.914-25.824 75.383 51.486 175.313 89.135 294.37 89.135 1.399 0 2.773-0.006 4.139-0.017v227.26c0.038 2.308 0.038 2.308 0.094 4.467 0.23 11.183-0.026 23.915-1.207 38.793-1.719 21.615-5.111 42.675-10.475 61.986-4.331 15.59-9.809 29.461-16.401 41.212z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["shield"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 92, "id": 68, "name": "shield", "prevSize": 32, "code": 59688 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 35 + }, + { + "icon": { + "paths": [ + "M383.875 640.166c-13.781 0-27.307-6.656-35.541-18.987-13.099-19.584-7.808-46.080 11.819-59.179l109.186-72.832v-189.908c0-23.595 19.072-42.667 42.667-42.667s42.667 19.072 42.667 42.667v212.735c0 14.251-7.125 27.605-18.987 35.499l-128.172 85.504c-7.253 4.821-15.531 7.168-23.637 7.168z", + "M512 170.667c-188.203 0-341.333 153.131-341.333 341.333s153.131 341.333 341.333 341.333c188.203 0 341.333-153.131 341.333-341.333s-153.131-341.333-341.333-341.333zM512 938.667c-235.264 0-426.667-191.403-426.667-426.667s191.403-426.667 426.667-426.667c235.264 0 426.667 191.403 426.667 426.667s-191.403 426.667-426.667 426.667z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["clock"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 91, "id": 67, "name": "clock", "prevSize": 32, "code": 59689 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 36 + }, + { + "icon": { + "paths": [ + "M908.809 229.248c-22.528-7.253-46.464 4.992-53.803 27.392l-16.896 52.053c-68.864-110.805-190.507-180.693-325.973-180.693-178.987 0-332.672 121.515-373.76 295.467-5.419 22.912 8.789 45.909 31.787 51.328 3.285 0.725 6.571 1.109 9.813 1.109 19.328 0 36.821-13.184 41.515-32.853 31.915-135.253 151.424-229.717 290.646-229.717 106.283 0 200.96 55.808 254.251 143.317l-66.133-20.309c-22.571-6.997-46.421 5.803-53.333 28.245-6.912 22.528 5.76 46.421 28.245 53.333l157.312 48.341c4.181 1.28 8.405 1.877 12.544 1.877 18.005 0 34.688-11.477 40.576-29.483l50.603-155.605c7.253-22.443-5.035-46.507-27.392-53.803z", + "M855.309 536.375c-23.424-4.565-45.611 10.539-50.133 33.621-27.392 139.477-150.656 240.683-293.035 240.683-105.941 0-200.704-55.765-254.037-143.104l65.237 20.096c22.613 7.040 46.421-5.76 53.333-28.245 6.912-22.571-5.717-46.421-28.245-53.333l-157.269-48.384c-22.315-6.869-45.909 5.461-53.163 27.605l-50.56 155.691c-7.296 22.357 4.992 46.464 27.435 53.76 4.352 1.408 8.789 2.048 13.141 2.048 18.005 0 34.731-11.435 40.576-29.483l17.152-52.736c68.779 111.189 190.891 181.419 326.4 181.419 183.040 0 341.504-130.176 376.789-309.504 4.565-23.125-10.539-45.611-33.621-50.133z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["update"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 90, "id": 66, "name": "update", "prevSize": 32, "code": 59690 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 37 + }, + { + "icon": { + "paths": [ + "M880.35 303.767c14.694 26.481 26.65 54.71 35.588 84.342 68.083 225.455-58.581 463.706-282.889 532.083-224.292 68.373-461.277-58.931-529.306-284.335-68.087-225.471 58.556-463.71 282.895-532.082 40.347-12.292 81.811-18.442 123.202-18.442 26.048 0 47.168 21.225 47.168 47.408s-21.12 47.408-47.168 47.408c-32.141 0-64.384 4.783-95.834 14.364-174.462 53.171-272.951 238.447-219.995 413.815 52.906 175.296 237.219 274.304 411.662 221.129 174.434-53.18 272.947-238.468 219.998-413.818-7.317-24.248-17.203-47.249-29.414-68.718l-11.695 67.883c-4.446 25.798-28.855 43.091-54.524 38.624-25.664-4.467-42.871-29.004-38.426-54.803l29.056-168.631c4.39-25.487 28.297-42.732 53.726-38.755l167.019 26.122c25.737 4.026 43.358 28.262 39.351 54.134s-28.117 43.581-53.858 39.555l-46.558-7.282z", + "M362.099 548.407c-20.513 14.315-26.913 44.774-14.295 68.041s39.477 30.524 59.991 16.213l126.115-87.987c12.898-8.998 20.757-24.947 20.757-42.125v-197.091c0-27.315-19.524-49.458-43.605-49.458-24.085 0-43.61 22.143-43.61 49.458v169.447l-105.353 73.502z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["repeat"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 89, "id": 65, "name": "repeat", "prevSize": 32, "code": 59691 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 38 + }, + { + "icon": { + "paths": [ + "M554.688 664.913v-536.873c0-23.595-19.115-42.667-42.667-42.667-23.595 0-42.667 19.072-42.667 42.667v536.873l-175.872-175.829c-16.683-16.683-43.691-16.683-60.331 0-16.683 16.683-16.683 43.648 0 60.331l241.366 241.365c1.237 1.237 2.56 2.389 3.883 3.413 7.851 10.027 19.968 16.384 33.621 16.384 13.611 0 25.771-6.357 33.579-16.384 1.323-1.024 2.688-2.176 3.883-3.413l241.365-241.365c16.683-16.683 16.683-43.648 0-60.331-16.64-16.683-43.648-16.683-60.331 0l-175.829 175.829z", + "M128.021 853.333h768c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667h-768c-23.509 0-42.667-19.2-42.667-42.667s19.157-42.667 42.667-42.667z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["download"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 88, "id": 64, "name": "download", "prevSize": 32, "code": 59692 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 39 + }, + { + "icon": { + "paths": [ + "M469.308 359.086v536.876c0 23.595 19.115 42.667 42.667 42.667 23.595 0 42.667-19.072 42.667-42.667v-536.876l175.872 175.83c16.683 16.683 43.691 16.683 60.331 0 16.683-16.683 16.683-43.648 0-60.331l-241.365-241.366c-1.237-1.237-2.56-2.389-3.883-3.413-7.851-10.027-19.968-16.384-33.621-16.384-13.611 0-25.771 6.357-33.579 16.384-1.323 1.024-2.688 2.176-3.883 3.413l-241.366 241.366c-16.683 16.683-16.683 43.648 0 60.331 16.64 16.683 43.648 16.683 60.331 0l175.83-175.83z", + "M895.979 170.667h-768c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667h768c23.509 0 42.667 19.2 42.667 42.667s-19.157 42.667-42.667 42.667z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["upload"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 87, "id": 63, "name": "upload", "prevSize": 32, "code": 59693 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 40 + }, + { + "icon": { + "paths": [ + "M384 85.333h-213.333c-47.128 0-85.333 38.205-85.333 85.333v213.333c0 47.13 38.205 85.333 85.333 85.333h213.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.128-38.204-85.333-85.333-85.333zM170.667 384v-213.333h213.333v213.333h-213.333z", + "M384 554.667h-213.333c-47.128 0-85.333 38.204-85.333 85.333v213.333c0 47.13 38.205 85.333 85.333 85.333h213.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.13-38.204-85.333-85.333-85.333zM170.667 853.333v-213.333h213.333v213.333h-213.333z", + "M853.333 85.333h-213.333c-47.13 0-85.333 38.205-85.333 85.333v213.333c0 47.13 38.204 85.333 85.333 85.333h213.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.128-38.204-85.333-85.333-85.333zM640 384v-213.333h213.333v213.333h-213.333z", + "M661.333 554.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z", + "M917.333 554.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z", + "M789.333 682.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z", + "M917.333 810.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z", + "M661.333 810.667h-85.333c-11.782 0-21.333 9.551-21.333 21.333v85.333c0 11.782 9.551 21.333 21.333 21.333h85.333c11.782 0 21.333-9.551 21.333-21.333v-85.333c0-11.782-9.551-21.333-21.333-21.333z" + ], + "attrs": [{}, {}, {}, {}, {}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["qr-code"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}, {}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}, {}, {}, {}, {}], + "properties": { "order": 86, "id": 62, "name": "qr-code", "prevSize": 32, "code": 59694 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 41 + }, + { + "icon": { + "paths": [ + "M938.667 170.667v170.667c0 23.564-19.102 42.667-42.667 42.667s-42.667-19.103-42.667-42.667v-170.667h-170.667c-23.565 0-42.667-19.103-42.667-42.667s19.102-42.667 42.667-42.667h170.667c47.13 0 85.333 38.205 85.333 85.333z", + "M170.667 170.667v170.667c0 23.564-19.103 42.667-42.667 42.667s-42.667-19.103-42.667-42.667v-170.667c0-47.128 38.205-85.333 85.333-85.333h170.667c23.564 0 42.667 19.103 42.667 42.667s-19.103 42.667-42.667 42.667h-170.667z", + "M853.333 853.333v-170.667c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667v170.667c0 47.13-38.204 85.333-85.333 85.333h-170.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667h170.667z", + "M170.667 853.333h170.667c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667h-170.667c-47.128 0-85.333-38.204-85.333-85.333v-170.667c0-23.565 19.103-42.667 42.667-42.667s42.667 19.102 42.667 42.667v170.667z", + "M128 469.333h768c23.564 0 42.667 19.103 42.667 42.667s-19.103 42.667-42.667 42.667h-768c-23.564 0-42.667-19.103-42.667-42.667s19.103-42.667 42.667-42.667z" + ], + "attrs": [{}, {}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["scan"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}, {}], + "properties": { "order": 85, "id": 61, "name": "scan", "prevSize": 32, "code": 59695 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 42 + }, + { + "icon": { + "paths": [ + "M512.009 170.674c-221.668 0-410.96 141.506-487.613 341.33 76.653 199.825 265.944 341.329 487.613 341.329 221.619 0 410.914-141.504 487.616-341.329-76.702-199.824-265.997-341.33-487.616-341.33zM512.009 268.197c163.499 0 309.491 94.499 381.461 243.807-71.97 149.308-217.963 243.806-381.461 243.806-163.543 0-309.535-94.498-381.458-243.806 71.923-149.308 217.914-243.807 381.458-243.807z", + "M512.055 316.198c-107.762 0-195.045 87.331-195.045 195.047 0 107.763 87.283 195.042 195.045 195.042 107.716 0 195.046-87.279 195.046-195.042 0-107.715-87.33-195.047-195.046-195.047zM512.060 413.721c53.781 0 97.519 43.738 97.519 97.524 0 53.833-43.738 97.523-97.519 97.523-53.786 0-97.524-43.691-97.524-97.523 0-53.786 43.739-97.524 97.524-97.524z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["eye-n"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 84, "id": 60, "name": "eye-n", "prevSize": 32, "code": 59696 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 43 + }, + { + "icon": { + "paths": [ + "M372.8 284.969c41.137-13.363 84.574-21.184 129.638-21.184 160.619 0 304 90.231 374.686 232.795-30.793 62.11-75.998 113.417-129.779 152.576l68.433 66.53c73.271-56.384 131.123-131.806 165.555-219.106-75.281-190.799-261.188-325.914-478.895-325.914-72.457 0-141.228 15.271-203.772 42.276l74.133 72.027z", + "M497.502 426.497c2.449-0.175 4.762-0.743 7.296-0.743 49.045 0 88.934 39.235 88.934 87.389 0 2.492-0.58 4.762-0.802 7.121l70.882 69.649c11.695-23.245 18.854-49.067 18.854-76.77 0-96.521-79.642-174.778-177.869-174.778-28.194 0-54.473 7.078-78.131 18.483l70.835 69.649z", + "M511.983 733.47c-157.38 0-297.908-89.378-367.139-230.601 20.042-40.909 46.655-76.835 77.398-108.105l102.603 100.817c-0.094 2.214-0.516 4.335-0.516 6.549 0 101.926 84.063 184.482 187.748 184.482 2.3 0 4.459-0.371 6.711-0.461l44.399 43.584c-16.849 2.214-33.839 3.733-51.204 3.733zM785.011 817.271l-612.711-602.006c-18.352-18.033-48.063-18.033-66.368 0-18.352 17.987-18.352 47.181 0 65.214l50.41 49.533c-48.579 48.98-88.053 107.231-113.727 172.861 73.831 189.001 256.039 322.842 469.364 322.842 45.295 0 88.947-6.643 130.624-17.941l76.041 74.714c9.199 9.041 21.167 13.513 33.182 13.513s24.030-4.471 33.186-13.513c18.351-17.988 18.351-47.181 0-65.216z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["eye-off"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 83, "id": 59, "name": "eye-off", "prevSize": 32, "code": 59697 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 44 + }, + { + "icon": { + "paths": [ + "M768 810.522c0 23.552-19.115 42.667-42.667 42.667h-426.667c-23.552 0-42.667-19.115-42.667-42.667v-298.667c0-23.552 19.115-42.667 42.667-42.667h426.667c23.552 0 42.667 19.115 42.667 42.667v298.667zM768.171 391.791v-50.432c0-141.184-114.859-256.043-256-256.043-103.125 0-195.669 61.397-235.819 156.373-9.173 21.717 0.939 46.763 22.656 55.936 21.675 9.131 46.763-1.024 55.893-22.699 26.795-63.317 88.533-104.277 157.269-104.277 94.123 0 170.667 76.587 170.667 170.709v42.496h-384.171c-70.571 0-128 57.429-128 128v298.667c0 70.571 57.429 128 128 128h426.667c70.571 0 128-57.429 128-128v-298.667c0-55.509-35.712-102.357-85.163-120.064z", + "M576 618.398c0-35.371-28.672-64-64-64s-64 28.629-64 64c0 18.901 8.363 35.755 21.419 47.445v59.051c0 23.637 19.157 42.795 42.837 42.795 23.637 0 42.795-19.157 42.795-42.795v-59.392c12.8-11.733 20.949-28.416 20.949-47.104z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["unlock"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 82, "id": 58, "name": "unlock", "prevSize": 32, "code": 59698 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 45 + }, + { + "icon": { + "paths": [ + "M768 810.522c0 23.552-19.115 42.667-42.667 42.667h-426.667c-23.552 0-42.667-19.115-42.667-42.667v-298.667c0-23.552 19.115-42.667 42.667-42.667h426.667c23.552 0 42.667 19.115 42.667 42.667v298.667zM512.171 170.65c94.123 0 170.667 76.587 170.667 170.709v42.496h-341.333v-42.496c0-94.123 76.544-170.709 170.667-170.709zM768.171 391.791v-50.432c0-141.184-114.859-256.043-256-256.043-141.184 0-256 114.859-256 256.043v50.304c-49.664 17.621-85.504 64.555-85.504 120.192v298.667c0 70.571 57.429 128 128 128h426.667c70.571 0 128-57.429 128-128v-298.667c0-55.509-35.712-102.357-85.163-120.064z", + "M576 618.398c0-35.371-28.672-64-64-64s-64 28.629-64 64c0 18.901 8.32 35.712 21.419 47.403v59.093c0 23.637 19.157 42.795 42.795 42.795 23.68 0 42.837-19.157 42.837-42.795v-59.392c12.8-11.733 20.949-28.416 20.949-47.104z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["lock"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 81, "id": 57, "name": "lock", "prevSize": 32, "code": 59699 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 46 + }, + { + "icon": { + "paths": [ + "M698.091 716.335l-140.16-55.339c-21.888-8.704-46.763 2.091-55.339 24.021-8.661 21.888 2.091 46.677 23.979 55.296l49.749 19.669c-28.8 10.027-59.136 15.787-90.027 15.787h-0.64c-96.812-0.213-187.308-52.395-236.247-136.149-11.819-20.309-37.973-27.221-58.325-15.317-20.352 11.861-27.221 37.973-15.317 58.325 64.085 109.781 182.741 178.176 309.761 178.475h0.768c40.789 0 80.939-7.637 119.040-21.035l-15.36 41.003c-8.277 22.059 2.901 46.635 25.003 54.912 4.907 1.835 9.941 2.731 14.933 2.731 17.28 0 33.536-10.539 39.979-27.733l52.48-140.032c8.192-21.76-2.603-46.080-24.277-54.613z", + "M673.843 242.419c28.971 0 52.48 23.552 52.48 52.48s-23.509 52.48-52.48 52.48c-28.928 0-52.437-23.552-52.437-52.48s23.509-52.48 52.437-52.48zM350.090 170.653c28.928 0 52.48 23.552 52.48 52.48 0 28.971-23.552 52.48-52.48 52.48-28.971 0-52.48-23.509-52.48-52.48 0-28.928 23.509-52.48 52.48-52.48zM893.235 554.953c-26.709-71.168-77.269-123.989-137.728-149.675 33.877-25.088 56.149-65.067 56.149-110.378 0-75.99-61.824-137.814-137.813-137.814-75.947 0-137.771 61.824-137.771 137.814 0 45.312 22.272 85.291 56.149 110.378-16.939 7.168-33.195 15.957-48.213 27.264-28.203-45.654-67.328-79.958-112.299-98.987 33.877-25.131 56.192-65.109 56.192-110.421 0-75.947-61.865-137.813-137.812-137.813-75.989 0-137.813 61.867-137.813 137.813 0 45.312 22.272 85.291 56.149 110.421-60.459 25.6-111.019 78.507-137.685 149.675-8.277 22.059 2.901 46.635 24.917 54.955 22.059 8.107 46.677-2.901 54.997-24.96 25.429-67.883 80.171-111.744 139.435-111.744 54.955 0 105.769 38.016 133.161 97.664-11.179 17.152-21.12 35.584-28.757 55.851-8.235 22.059 2.944 46.635 25.003 54.912 4.949 1.835 9.984 2.731 14.976 2.731 17.237 0 33.536-10.539 39.936-27.733 25.472-67.84 80.171-111.701 139.435-111.701s114.005 43.861 139.477 111.744c8.277 22.101 32.853 33.152 54.955 24.96 22.016-8.277 33.195-32.853 24.96-54.955z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["replace-owner"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 80, "id": 56, "name": "replace-owner", "prevSize": 32, "code": 59700 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 47 + }, + { + "icon": { + "paths": [ + "M512.132 170.667c70.571 0 128 57.387 128 128 0 70.571-57.429 128-128 128s-127.998-57.429-127.998-128c0-70.613 57.428-128 127.998-128zM696.068 514.944c-24.747-13.781-51.285-24.107-79.147-31.616 64.469-36.736 108.544-105.301 108.544-184.661 0-117.632-95.701-213.333-213.333-213.333-117.63 0-213.332 95.701-213.332 213.333 0 79.061 43.733 147.413 107.819 184.277-191.275 50.005-271.36 235.904-319.573 401.323-6.571 22.613 6.4 46.336 29.013 52.907 4.011 1.195 8.021 1.707 11.947 1.707 18.517 0 35.541-12.075 40.96-30.677 72.192-247.637 174.805-353.323 343.038-353.323 54.272 0 100.821 11.307 142.379 34.56 20.523 11.435 46.549 4.096 58.069-16.427 11.52-20.565 4.139-46.592-16.384-58.069z", + "M571.674 869.773l0.341 57.259c0 6.443 5.248 11.648 11.691 11.648h56.875c3.115 0 6.101-1.237 8.32-3.456l171.861-171.861c6.741-6.741 6.741-17.664 0-24.405l-50.432-50.475c-6.144-6.144-16.128-6.144-22.272 0l-172.928 172.971c-2.219 2.176-3.456 5.205-3.456 8.32z", + "M872.171 711.94l63.104-63.104c4.736-4.693 4.736-12.416 0-17.152l-56.661-56.576c-4.693-4.736-12.416-4.736-17.152 0l-63.061 63.061c-4.779 4.736-4.779 12.459 0 17.195l56.576 56.576c4.736 4.736 12.459 4.736 17.195 0z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["edit-owner"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 79, "id": 55, "name": "edit-owner", "prevSize": 32, "code": 59701 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 48 + }, + { + "icon": { + "paths": [ + "M555.115 170.667c70.571 0 128 57.429 128 128s-57.429 128-128 128c-70.571 0-128-57.429-128-128s57.429-128 128-128zM979.947 884.309c-48.256-165.376-128.299-351.232-319.403-401.323 64.128-36.821 107.904-105.216 107.904-184.32 0-117.632-95.701-213.333-213.333-213.333s-213.333 95.701-213.333 213.333c0 79.317 44.032 147.883 108.459 184.619-27.989 7.552-54.613 17.877-79.317 31.701-20.608 11.52-27.947 37.504-16.384 58.069 11.435 20.48 37.504 27.947 58.027 16.341 41.515-23.168 88.107-34.475 142.421-34.475 168.192 0 270.805 105.643 343.040 353.28 5.419 18.645 22.443 30.72 40.96 30.72 3.925 0 7.979-0.555 11.947-1.707 22.656-6.571 35.584-30.293 29.013-52.907z", + "M298.624 725.461h85.333c23.552 0 42.667 19.115 42.667 42.667 0 23.595-19.115 42.667-42.667 42.667h-85.333v85.333c0 23.552-19.072 42.667-42.667 42.667-23.552 0-42.667-19.115-42.667-42.667v-85.333h-85.291c-23.552 0-42.667-19.072-42.667-42.667 0-23.552 19.115-42.667 42.667-42.667h85.291v-85.291c0-23.595 19.115-42.667 42.667-42.667 23.595 0 42.667 19.072 42.667 42.667v85.291z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["add-owner"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 78, "id": 54, "name": "add-owner", "prevSize": 32, "code": 59702 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 49 + }, + { + "icon": { + "paths": [ + "M979.541 884.314c-65.873-225.809-162.812-360.751-316.979-401.515 63.13-37.052 105.519-105.64 105.519-184.123 0-117.815-95.518-213.333-213.333-213.333-117.845 0-213.334 95.505-213.334 213.333 0 78.872 42.786 147.741 106.424 184.661-72.535 19.913-133.866 61.282-184.672 122.799-15.005 18.172-12.44 45.065 5.728 60.070 18.169 15.002 45.062 12.437 60.067-5.73 58.092-70.34 130.554-105.549 225.62-105.549 172.625 0 272.363 111.010 343.040 353.284 6.601 22.618 30.289 35.61 52.907 29.009 22.622-6.601 35.61-30.285 29.013-52.907zM682.748 298.676c0 70.687-57.314 128-128 128-70.711 0-128-57.297-128-128s57.289-128 128-128c70.686 0 128 57.314 128 128z", + "M494.182 853.551h-366.161c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667h366.23l-12.079-12.079c-16.661-16.661-16.661-43.678 0-60.339s43.678-16.661 60.339 0l84.864 84.864c16.661 16.657 16.661 43.669 0.009 60.331l-84.864 84.907c-16.661 16.666-43.674 16.674-60.339 0.017-16.67-16.657-16.674-43.674-0.017-60.339l12.019-12.028z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["send-to"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 77, "id": 53, "name": "send-to", "prevSize": 32, "code": 59703 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 50 + }, + { + "icon": { + "paths": [ + "M682.671 383.957c47.061 0 85.333 38.272 85.333 85.333s-38.272 85.333-85.333 85.333c-47.061 0-85.333-38.272-85.333-85.333s38.272-85.333 85.333-85.333zM341.252 170.667c47.061 0 85.333 38.272 85.333 85.333s-38.272 85.333-85.333 85.333c-47.019 0-85.333-38.272-85.333-85.333s38.315-85.333 85.333-85.333zM979.503 884.011c-29.355-100.779-81.621-228.523-204.416-271.616 46.976-30.421 78.251-83.072 78.251-143.104 0-94.123-76.544-170.667-170.667-170.667-86.315 0-157.141 64.64-168.363 147.925-22.528-19.541-49.408-35.968-81.195-47.189 47.275-30.379 78.805-83.115 78.805-143.36 0-94.123-76.544-170.667-170.667-170.667s-170.667 76.544-170.667 170.667c0 60.032 31.317 112.725 78.336 143.104-122.88 43.093-175.147 170.88-204.544 271.701-6.571 22.613 6.357 46.336 29.013 52.907 3.968 1.152 7.979 1.707 11.947 1.707 18.517 0 35.541-12.075 40.96-30.72 46.080-157.909 110.379-225.28 215.040-225.28 92.288 0 151.552 51.371 195.968 168.917-85.973 56.405-126.934 160.683-151.723 245.675-6.571 22.613 6.443 46.336 29.013 52.907 4.011 1.152 8.021 1.707 11.947 1.707 18.518 0 35.542-12.075 40.96-30.72 46.037-157.909 110.336-225.28 215.040-225.28 104.661 0 168.96 67.371 215.040 225.28 6.571 22.571 29.952 35.584 52.907 29.013 22.656-6.571 35.584-30.293 29.013-52.907z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["owners"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 76, "id": 52, "name": "owners", "prevSize": 32, "code": 59704 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 51 + }, + { + "icon": { + "paths": [ + "M503.241 180.42l25.553-24.751c93.803-93.751 245.824-93.751 339.584 0.008 91.268 91.269 93.734 237.657 7.407 331.9l-7.403 7.731-128.781 128.823c-93.76 93.709-245.815 93.709-339.584-0.009-9.055-9.054-17.322-18.752-24.714-28.979-13.807-19.093-9.521-45.764 9.574-59.575 19.095-13.807 45.77-9.519 59.577 9.579 4.732 6.545 10.052 12.787 15.893 18.628 58.283 58.249 151.539 60.326 212.305 6.251l6.613-6.238 128.772-128.815c60.48-60.479 60.48-158.478 0-218.956-58.278-58.279-151.488-60.361-212.723-5.82l-6.669 6.293-26.027 25.216c-16.926 16.397-43.938 15.97-60.335-0.954-15.134-15.622-15.936-39.84-2.658-56.369l3.614-3.963z", + "M284.474 400.029c93.76-93.76 245.826-93.76 339.637 0 6.622 6.624 12.804 13.569 18.56 20.845 14.622 18.477 11.499 45.31-6.98 59.936-18.479 14.622-45.312 11.494-59.934-6.98-3.716-4.698-7.701-9.173-11.981-13.453-58.317-58.287-151.569-60.369-212.351-6.246l-6.617 6.242-128.797 128.755c-60.448 60.48-60.448 158.494-0.009 218.965 58.319 58.317 151.525 60.403 212.157 6.426l6.601-6.225 32.128-32.555c16.55-16.772 43.567-16.951 60.339-0.401 15.479 15.279 16.823 39.475 3.921 56.299l-3.524 4.041-32.324 32.755c-93.805 93.803-245.834 93.803-339.646-0.009-91.216-91.268-93.681-237.641-7.383-331.9l7.397-7.731 128.806-128.764z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["link"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 75, "id": 51, "name": "link", "prevSize": 32, "code": 59705 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 52 + }, + { + "icon": { + "paths": [ + "M426.656 512.149c0-15.859-2.47-31.138-7.048-45.474l216.957-131.441c27.311 29.952 66.65 48.745 110.387 48.745 82.483 0 149.333-66.847 149.333-149.333 0-82.456-66.859-149.333-149.333-149.333s-149.333 66.877-149.333 149.333c0 7.932 0.614 15.72 1.809 23.317l-228.064 138.169c-25.672-20.833-58.396-33.316-94.041-33.316-82.487 0-149.333 66.846-149.333 149.333 0 82.458 66.858 149.333 149.333 149.333 35.651 0 68.385-12.497 94.061-33.348l228.052 138.163c-1.199 7.62-1.818 15.433-1.818 23.39 0 82.487 66.846 149.333 149.333 149.333 82.483 0 149.333-66.846 149.333-149.333s-66.85-149.333-149.333-149.333c-43.712 0-83.034 18.773-110.34 48.695l-216.996-131.465c4.572-14.327 7.040-29.594 7.040-45.436zM746.953 170.645c35.341 0 64 28.666 64 64 0 35.358-28.642 64-64 64-35.362 0-64-28.642-64-64 0-35.334 28.655-64 64-64zM341.323 512.149c0 35.332-28.659 64-64 64s-64-28.668-64-64c0-35.358 28.641-64 64-64s64 28.642 64 64zM746.953 725.687c35.358 0 64 28.642 64 64s-28.642 64-64 64c-35.362 0-64-28.642-64-64s28.638-64 64-64z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["share"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 74, "id": 50, "name": "share", "prevSize": 32, "code": 59706 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 53 + }, + { + "icon": { + "paths": [ + "M853.333 853.333v-341.333c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667v341.333c0 47.13-38.204 85.333-85.333 85.333h-682.667c-47.128 0-85.333-38.204-85.333-85.333v-682.667c0-47.128 38.205-85.333 85.333-85.333h341.333c23.565 0 42.667 19.103 42.667 42.667s-19.102 42.667-42.667 42.667h-341.333v682.667h682.667z", + "M790.848 170.667h-110.327c-23.561 0-42.667-19.103-42.667-42.667s19.106-42.667 42.667-42.667h213.333c11.785 0 22.451 4.776 30.174 12.497 7.718 7.721 12.493 18.388 12.493 30.17v213.333c0 23.564-19.102 42.667-42.667 42.667-23.561 0-42.667-19.103-42.667-42.667v-110.327l-394.351 394.355c-16.661 16.661-43.677 16.661-60.34 0-16.662-16.666-16.662-43.678 0-60.343l394.351-394.351z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["external-link"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 73, "id": 49, "name": "external-link", "prevSize": 32, "code": 59707 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 54 + }, + { + "icon": { + "paths": [ + "M170.667 512v341.333c0 22.63 8.99 44.335 24.994 60.339s37.708 24.994 60.34 24.994h512c22.63 0 44.335-8.99 60.339-24.994s24.994-37.709 24.994-60.339v-341.333", + "M682.667 256l-170.667-170.667-170.667 170.667", + "M512 85.333v554.667" + ], + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["export"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }, { "s": 0 }, { "s": 0 }] } + }, + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "properties": { "order": 140, "id": 48, "name": "export", "prevSize": 32, "code": 59708 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 55 + }, + { + "icon": { + "paths": [ + "M704.009 128h63.991c47.13 0 85.333 38.205 85.333 85.333v640c0 47.13-38.204 85.333-85.333 85.333h-512c-47.128 0-85.333-38.204-85.333-85.333v-640c0-47.128 38.205-85.333 85.333-85.333h63.992c19.46-25.908 50.444-42.667 85.341-42.667h213.333c34.897 0 65.882 16.759 85.342 42.667zM300.8 213.333h-44.8v640h512v-640h-44.8c-9.882 48.688-52.928 85.333-104.533 85.333h-213.333c-51.604 0-94.65-36.646-104.533-85.333zM384 192c0 11.782 9.551 21.333 21.333 21.333h213.333c11.78 0 21.333-9.551 21.333-21.333s-9.553-21.333-21.333-21.333h-213.333c-11.782 0-21.333 9.551-21.333 21.333z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["paste"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 71, "id": 47, "name": "paste", "prevSize": 32, "code": 59709 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 56 + }, + { + "icon": { + "paths": [ + "M384 298.667h-170.667c-47.128 0-85.333 38.205-85.333 85.333v469.333c0 47.13 38.205 85.333 85.333 85.333h341.333c47.13 0 85.333-38.204 85.333-85.333v-128h170.667c47.13 0 85.333-38.204 85.333-85.333v-469.333c0-47.128-38.204-85.333-85.333-85.333h-341.333c-47.128 0-85.333 38.205-85.333 85.333v128zM640 640v-256c0-47.128-38.204-85.333-85.333-85.333h-85.333v-128h341.333v469.333h-170.667zM213.333 853.333v-469.333h341.333v469.333h-341.333z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["copy"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 70, "id": 46, "name": "copy", "prevSize": 32, "code": 59710 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 57 + }, + { + "icon": { + "paths": [ + "M528.73 869.734l0.299 57.259c0.043 6.443 5.248 11.648 11.691 11.648h56.875c3.115 0 6.101-1.237 8.32-3.413l171.861-171.904c6.741-6.741 6.741-17.707 0-24.448l-50.432-50.432c-6.144-6.144-16.128-6.144-22.272 0l-172.928 172.971c-2.219 2.176-3.456 5.205-3.413 8.32z", + "M829.188 711.898l63.104-63.061c4.736-4.736 4.736-12.459 0-17.195l-56.619-56.619c-4.736-4.736-12.459-4.736-17.195 0l-63.061 63.104c-4.779 4.736-4.779 12.459 0 17.195l56.619 56.576c4.736 4.736 12.416 4.736 17.152 0z", + "M554.603 342.191v-136.107l135.552 135.424-135.552 0.683zM810.688 469.295v-112.085c0-10.24-4.096-20.011-11.349-27.221l-231.765-231.552c-8.405-8.405-19.755-13.099-31.616-13.099h-322.603c-47.189 0-85.333 38.187-85.333 85.333v682.666c0 47.104 38.144 85.333 85.333 85.333h170.197c0.171 0 0.299 0.085 0.469 0.085 23.595 0 42.667-19.115 42.667-42.667s-19.072-42.667-42.667-42.667v-0.085h-170.667v-682.666h255.915v171.52c0 46.464 37.888 84.267 84.437 84.267h171.648v43.050h0.085c0.256 23.381 19.157 42.283 42.581 42.283 23.467 0 42.368-18.901 42.581-42.283h0.085v-0.213z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["sign"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 69, "id": 45, "name": "sign", "prevSize": 32, "code": 59711 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 58 + }, + { + "icon": { + "paths": [ + "M256.021 853.35v-682.667h255.915v171.52c0 46.421 37.888 84.224 84.437 84.224h171.648v426.923h-512zM732.821 341.478l-135.552 0.725v-136.107l135.552 135.381zM842.005 329.958l-231.765-231.509c-8.405-8.405-19.755-13.099-31.573-13.099h-322.646c-47.147 0-85.333 38.229-85.333 85.333v682.667c0 47.104 38.187 85.333 85.333 85.333h512c47.104 0 85.333-38.229 85.333-85.333v-496.171c0-10.197-4.096-20.011-11.349-27.221z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["document"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 68, "id": 44, "name": "document", "prevSize": 32, "code": 59712 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 59 + }, + { + "icon": { + "paths": [ + "M204.905 120.436c21.922-22.477 51.655-35.103 82.657-35.103h299.25c11.162 0 21.862 4.546 29.756 12.637l224.439 230.113c7.893 8.091 12.326 19.066 12.326 30.509v460.224c0 31.782-12.314 62.268-34.236 84.745-0.004 0-0.004 0-0.004 0.004-0.004 0-0.004 0.004-0.009 0.004-21.926 22.485-51.661 35.098-82.65 35.098h-448.873c-30.997 0-60.733-12.617-82.661-35.106-21.923-22.477-34.234-52.962-34.234-84.745v-613.632c0-31.786 12.316-62.27 34.237-84.747 0 0 0 0 0-0zM287.562 171.626c-8.682 0-17.007 3.536-23.144 9.828l-0 0.001c-6.138 6.294-9.587 14.83-9.587 23.729v613.632c0 8.905 3.45 17.438 9.584 23.727l0.006 0.009c6.132 6.289 14.453 9.822 23.141 9.822h448.873c8.687 0 17.011-3.537 23.138-9.822l0.013-0.013c6.135-6.285 9.583-14.822 9.583-23.723v-417.077h-182.396c-11.162 0-21.867-4.547-29.756-12.64-7.893-8.093-12.326-19.069-12.326-30.513l0.030-186.96h-257.159zM628.877 232.626l-0.013 82.82h80.794l-80.781-82.82zM320.31 396.963c0-23.829 18.841-43.146 42.082-43.146h74.813c23.241 0 42.082 19.317 42.082 43.146s-18.842 43.148-42.082 43.148h-74.813c-23.241 0-42.082-19.319-42.082-43.148zM320.255 550.391c0-23.829 18.841-43.149 42.082-43.149h299.248c23.241 0 42.082 19.319 42.082 43.149s-18.842 43.145-42.082 43.145h-299.248c-23.241 0-42.082-19.315-42.082-43.145zM320.255 703.761c0-23.829 18.841-43.145 42.082-43.145h299.248c23.241 0 42.082 19.315 42.082 43.145s-18.842 43.149-42.082 43.149h-299.248c-23.241 0-42.082-19.319-42.082-43.149z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["file"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 67, "id": 43, "name": "file", "prevSize": 32, "code": 59713 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 60 + }, + { + "icon": { + "paths": [ + "M170.682 426.662c0-141.184 114.816-256 256.001-256 141.141 0 256 114.816 256 256s-114.859 256-256 256c-141.185 0-256.001-114.816-256.001-256zM926.097 865.83l-230.059-230.059c44.928-57.771 71.979-130.219 71.979-209.109 0-188.501-152.832-341.333-341.333-341.333-188.545 0-341.335 152.832-341.335 341.333s152.789 341.333 341.335 341.333c78.848 0 151.253-27.008 208.981-71.893l230.101 230.059c16.597 16.597 43.733 16.597 60.331 0s16.597-43.733 0-60.331z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["search"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 66, "id": 42, "name": "search", "prevSize": 32, "code": 59714 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 61 + }, + { + "icon": { + "paths": [ + "M750.626 385.792l-110.123-111.061 105.344-103.253 106.539 107.477c0.256 0.256-0.213 4.352 0.085 4.608l-101.845 102.229zM281.163 853.333h-110.507v-111.829l408.962-406.955 110.72 111.659-409.175 407.125zM938.658 279.765c-0.299-23.723-9.728-45.653-25.685-60.885l-105.771-106.667c-15.744-16.811-38.187-26.581-61.653-26.88h-1.152c-23.509 0-46.293 9.472-62.635 25.899l-583.852 582.272c-8.021 7.979-12.587 18.901-12.587 30.251v172.245c0 23.595 19.072 42.667 42.667 42.667h170.795c11.307 0 22.101-4.437 30.080-12.416l584.108-582.485c16.64-16.811 26.027-40.149 25.685-64z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["edit"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 65, "id": 41, "name": "edit", "prevSize": 32, "code": 59715 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 62 + }, + { + "icon": { + "paths": [ + "M426.667 768.414c23.595 0 42.667-19.072 42.667-42.667v-256c0-23.595-19.072-42.667-42.667-42.667s-42.667 19.072-42.667 42.667v256c0 23.595 19.072 42.667 42.667 42.667z", + "M597.376 768.414c23.595 0 42.667-19.072 42.667-42.667v-256c0-23.595-19.072-42.667-42.667-42.667s-42.667 19.072-42.667 42.667v256c0 23.595 19.072 42.667 42.667 42.667z", + "M704.546 834.167c-0.555 10.837-11.008 19.328-21.205 19.243h-343.34c-9.813-1.109-19.669-8.363-20.224-19.541l-27.648-492.544h438.914l-26.496 492.843zM426.528 196.941c0-14.251 12.076-26.283 26.327-26.283h118.101c14.507 0 26.325 11.819 26.325 26.283v59.051h-170.754v-59.051zM853.325 255.991h-74.155c-0.256 0-0.512-0.213-0.811-0.213-0.512-0.043-0.939 0.213-1.493 0.213h-94.251v-59.051c0-61.525-50.048-111.616-111.659-111.616h-118.101c-61.57 0-111.66 50.091-111.66 111.616v59.051h-170.539c-23.552 0-42.667 19.072-42.667 42.667s19.115 42.667 42.667 42.667h36.053l27.861 496.939c2.688 55.893 49.536 100.523 104.107 100.523 0.768 0 1.536-0.043 2.304-0.043h343.767c55.467 0 102.357-44.544 105.045-100.181l26.709-497.237h36.821c23.595 0 42.667-19.072 42.667-42.667s-19.072-42.667-42.667-42.667z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["delete"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 64, "id": 40, "name": "delete", "prevSize": 32, "code": 59716 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 63 + }, + { + "icon": { + "paths": [ + "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667zM170.667 512c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333z", + "M572.343 512l90.509 90.509c16.661 16.661 16.661 43.678 0 60.339-16.661 16.666-43.678 16.666-60.339 0l-90.509-90.509-90.511 90.509c-16.663 16.666-43.677 16.666-60.34 0-16.662-16.661-16.662-43.678 0-60.339l90.508-90.509-90.508-90.51c-16.662-16.663-16.662-43.677 0-60.34s43.677-16.662 60.34 0l90.511 90.511 90.509-90.511c16.661-16.662 43.678-16.662 60.339 0s16.661 43.677 0 60.34l-90.509 90.51z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["close-outlined"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 63, "id": 39, "name": "close-outlined", "prevSize": 32, "code": 59717 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 64 + }, + { + "icon": { + "paths": [ + "M938.675 511.987c0 235.648-191.061 426.667-426.667 426.667-235.646 0-426.665-191.019-426.665-426.667 0-235.605 191.019-426.667 426.665-426.667 235.605 0 426.667 191.061 426.667 426.667zM572.352 512.004l146.782-146.765c16.597-16.64 16.597-43.733 0-60.373-16.64-16.597-43.733-16.597-60.373 0l-146.761 146.782-146.784-146.782c-16.597-16.597-43.733-16.597-60.331 0-16.597 16.64-16.597 43.733 0 60.373l146.763 146.765-146.763 146.782c-16.597 16.597-16.597 43.733 0 60.331s43.733 16.597 60.331 0l146.784-146.765 146.761 146.765c16.64 16.597 43.733 16.597 60.373 0 16.597-16.597 16.597-43.733 0-60.331l-146.782-146.782z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["close-filled"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 62, "id": 38, "name": "close-filled", "prevSize": 32, "code": 59718 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 65 + }, + { + "icon": { + "paths": [ + "M566.336 512l318.455 318.46c14.942 14.976 14.942 39.364 0 54.306-14.98 14.98-39.369 14.98-54.345 0l-318.447-318.434-318.446 318.434c-14.979 14.98-39.367 14.98-54.345 0-14.94-14.942-14.94-39.33 0-54.306l318.455-318.46-318.459-318.449c-14.94-14.979-14.94-39.367 0-54.346 14.979-14.94 39.367-14.94 54.345 0l318.449 318.455 318.451-318.455c14.976-14.94 39.364-14.94 54.345 0 14.938 14.979 14.938 39.368 0 54.346l-318.46 318.449z" + ], + "attrs": [ + { + "strokeLinejoin": "miter", + "strokeLinecap": "butt", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["close"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }] } + }, + "attrs": [ + { + "strokeLinejoin": "miter", + "strokeLinecap": "butt", + "strokeMiterlimit": "4", + "strokeWidth": 42.666666666666664 + } + ], + "properties": { "order": 134, "id": 37, "name": "close", "prevSize": 32, "code": 59719 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 66 + }, + { + "icon": { + "paths": [ + "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667zM170.667 512c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333z", + "M554.667 469.333h128c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667h-128v128c0 23.565-19.102 42.667-42.667 42.667s-42.667-19.102-42.667-42.667v-128h-128c-23.564 0-42.667-19.102-42.667-42.667s19.103-42.667 42.667-42.667h128v-128c0-23.564 19.102-42.667 42.667-42.667s42.667 19.103 42.667 42.667v128z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["plus-outlined"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 60, "id": 36, "name": "plus-outlined", "prevSize": 32, "code": 59720 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 67 + }, + { + "icon": { + "paths": [ + "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667zM682.667 469.333h-128v-128c0-23.564-19.102-42.667-42.667-42.667s-42.667 19.103-42.667 42.667v128h-128c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667h128v128c0 23.565 19.102 42.667 42.667 42.667s42.667-19.102 42.667-42.667v-128h128c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["plus-filled"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 59, "id": 35, "name": "plus-filled", "prevSize": 32, "code": 59721 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 68 + }, + { + "icon": { + "paths": [ + "M503.019 170.667c24.802 0 44.911 20.108 44.911 44.912v592.844c0 24.802-20.109 44.911-44.911 44.911-24.806 0-44.915-20.109-44.915-44.911v-592.844c0-24.804 20.109-44.912 44.915-44.912z", + "M853.333 503.019c0 24.802-20.109 44.911-44.911 44.911h-592.844c-24.804 0-44.912-20.109-44.912-44.911 0-24.806 20.108-44.915 44.912-44.915h592.844c24.802 0 44.911 20.109 44.911 44.915z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["plus"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 58, "id": 34, "name": "plus", "prevSize": 32, "code": 59722 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 69 + }, + { + "icon": { + "paths": [ + "M512 1024c282.768 0 512-229.232 512-512 0-282.77-229.232-512-512-512-282.77 0-512 229.23-512 512 0 282.768 229.23 512 512 512z", + "M501.592 258.457c6.554-3.276 14.262-3.276 20.815 0l232.723 116.364c7.885 3.942 12.865 12 12.865 20.816s-4.98 16.874-12.865 20.816l-232.723 116.363c-6.554 3.277-14.262 3.277-20.815 0l-232.723-116.363c-7.884-3.942-12.865-12-12.865-20.816s4.98-16.874 12.865-20.816l232.723-116.364zM331.316 395.636l180.684 90.345 180.685-90.345-180.685-90.344-180.684 90.344zM258.462 501.592c5.748-11.497 19.727-16.156 31.223-10.408l222.315 111.16 222.315-111.16c11.497-5.748 25.474-1.089 31.223 10.408s1.089 25.474-10.408 31.223l-232.723 116.364c-6.554 3.277-14.262 3.277-20.815 0l-232.723-116.364c-11.496-5.748-16.156-19.726-10.408-31.223zM258.462 617.956c5.748-11.497 19.727-16.156 31.223-10.408l222.315 111.16 222.315-111.16c11.497-5.748 25.474-1.089 31.223 10.408s1.089 25.474-10.408 31.223l-232.723 116.364c-6.554 3.277-14.262 3.277-20.815 0l-232.723-116.364c-11.496-5.748-16.156-19.726-10.408-31.223z" + ], + "attrs": [{ "fill": "rgb(255, 214, 0)" }, { "fill": "rgb(0, 0, 0)" }], + "isMulticolor": true, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-batch"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "f": 2 }, { "f": 0 }] } + }, + "attrs": [{ "fill": "rgb(255, 214, 0)" }, { "fill": "rgb(0, 0, 0)" }], + "properties": { + "order": 146, + "id": 33, + "name": "transaction-batch", + "prevSize": 32, + "code": 59723, + "codes": [59723, 59724] + }, + "setIdx": 0, + "setId": 2, + "iconIdx": 70 + }, + { + "icon": { + "paths": [ + "M234.667 192h170.667c23.564 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.103 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.103-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667z", + "M234.667 576h170.667c23.564 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.103 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.103-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667z", + "M618.667 192h170.667c23.564 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.103 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.103-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667z", + "M618.667 576h170.667c23.564 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.103 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.103-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667z" + ], + "attrs": [{}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["blocks-1"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}], + "properties": { "order": 56, "id": 32, "name": "blocks-1", "prevSize": 32, "code": 59725 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 71 + }, + { + "icon": { + "paths": [ + "M128 224c0-35.346 28.654-64 64-64h640c35.345 0 64 28.654 64 64s-28.655 64-64 64h-640c-35.346 0-64-28.654-64-64z", + "M128 736c0-35.345 28.654-64 64-64h640c35.345 0 64 28.655 64 64s-28.655 64-64 64h-640c-35.346 0-64-28.655-64-64z", + "M128 480c0-35.345 28.654-64 64-64h640c35.345 0 64 28.655 64 64s-28.655 64-64 64h-640c-35.346 0-64-28.655-64-64z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["rows-1"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 55, "id": 31, "name": "rows-1", "prevSize": 32, "code": 59726 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 72 + }, + { + "icon": { + "paths": [ + "M494.656 89.428c10.918-5.46 23.77-5.46 34.688 0l387.874 193.939c13.141 6.57 21.44 20.001 21.44 34.693s-8.299 28.122-21.44 34.693l-387.874 193.939c-10.918 5.461-23.77 5.461-34.688 0l-387.873-193.939c-13.14-6.57-21.441-20.001-21.441-34.693s8.3-28.123 21.441-34.693l387.873-193.939zM210.86 318.061l301.14 150.573 301.141-150.573-301.141-150.573-301.14 150.573zM89.437 494.652c9.58-19.157 32.879-26.927 52.038-17.344l370.525 185.267 370.526-185.267c19.157-9.583 42.458-1.813 52.036 17.344 9.583 19.162 1.813 42.462-17.344 52.041l-387.874 193.941c-10.918 5.457-23.77 5.457-34.688 0l-387.873-193.941c-19.16-9.579-26.926-32.879-17.346-52.041zM89.437 688.593c9.58-19.162 32.879-26.927 52.038-17.348l370.525 185.267 370.526-185.267c19.157-9.579 42.458-1.813 52.036 17.348 9.583 19.162 1.813 42.458-17.344 52.041l-387.874 193.937c-10.918 5.461-23.77 5.461-34.688 0l-387.873-193.937c-19.16-9.583-26.926-32.879-17.346-52.041z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["batch"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 54, "id": 30, "name": "batch", "prevSize": 32, "code": 59727 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 73 + }, + { + "icon": { + "paths": [ + "M181.33 239.36c86.187 110.507 245.333 315.307 245.333 315.307v256c0 23.467 19.199 42.667 42.665 42.667h85.333c23.467 0 42.667-19.2 42.667-42.667v-256c0 0 158.72-204.8 244.907-315.307 21.76-28.16 1.707-68.693-33.707-68.693h-593.492c-35.413 0-55.467 40.533-33.707 68.693z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["filter"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 53, "id": 29, "name": "filter", "prevSize": 32, "code": 59728 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 74 + }, + { + "icon": { + "paths": [ + "M246.137 161.741c21.004-21.604 49.492-33.741 79.196-33.741h373.333c29.705 0 58.193 12.137 79.198 33.741 21.001 21.604 32.802 50.906 32.802 81.459v614.4c0 14.383-7.817 27.563-20.25 34.142-12.437 6.583-27.405 5.466-38.784-2.893l-239.633-176.060-239.634 176.060c-11.38 8.358-26.348 9.476-38.782 2.893-12.435-6.579-20.25-19.759-20.25-34.142v-614.4c0-30.553 11.8-59.855 32.804-81.459z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["bookmark-filled"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 52, "id": 28, "name": "bookmark-filled", "prevSize": 32, "code": 59729 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 75 + }, + { + "icon": { + "paths": [ + "M325.333 204.8c-9.901 0-19.397 4.046-26.399 11.247s-10.935 16.969-10.935 27.153v539.78l202.3-148.629c12.983-9.536 30.417-9.536 43.401 0l202.3 148.629v-539.78c0-10.184-3.934-19.951-10.935-27.153s-16.495-11.247-26.398-11.247h-373.333zM246.137 161.741c21.004-21.604 49.492-33.741 79.196-33.741h373.333c29.705 0 58.193 12.137 79.198 33.741 21.001 21.604 32.802 50.906 32.802 81.459v614.4c0 14.383-7.817 27.563-20.25 34.142-12.437 6.583-27.405 5.466-38.784-2.893l-239.633-176.060-239.634 176.060c-11.38 8.358-26.348 9.476-38.782 2.893-12.435-6.579-20.25-19.759-20.25-34.142v-614.4c0-30.553 11.8-59.855 32.804-81.459z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["bookmark"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 51, "id": 27, "name": "bookmark", "prevSize": 32, "code": 59730 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 76 + }, + { + "icon": { + "paths": [ + "M512.009 42.671c-63.962-0.254-127.283 12.687-186.014 38.014s-111.606 62.497-155.32 109.186v-83.2c0.070-6.185-1.206-12.311-3.738-17.954s-6.262-10.668-10.929-14.726c-4.667-4.059-10.161-7.054-16.101-8.778s-12.183-2.137-18.298-1.209c-10.351 2.006-19.661 7.599-26.295 15.793s-10.164 18.466-9.972 29.007v189.867c0 11.316 4.495 22.168 12.497 30.17s18.854 12.497 30.17 12.497h192c6.185 0.070 12.311-1.206 17.954-3.738s10.668-6.262 14.726-10.929c4.059-4.667 7.054-10.161 8.779-16.101s2.137-12.183 1.208-18.298c-2.006-10.351-7.599-19.661-15.793-26.295s-18.466-10.164-29.007-9.972h-91.733c49.696-55.344 114.396-95.063 186.238-114.332 71.84-19.269 147.736-17.258 218.456 5.789s133.227 66.136 179.921 124.034c46.694 57.898 75.571 128.111 83.119 202.109 1.058 10.56 6.020 20.348 13.909 27.447s18.142 11.004 28.757 10.953c5.982 0.030 11.9-1.199 17.374-3.605 5.478-2.406 10.385-5.935 14.409-10.359 4.023-4.429 7.074-9.647 8.947-15.33 1.873-5.679 2.534-11.686 1.937-17.638-11.639-115.805-65.89-223.153-152.226-301.208-86.332-78.054-198.588-121.247-314.974-121.193z", + "M896.081 682.667h-192c-6.187-0.068-12.309 1.207-17.954 3.738-5.645 2.534-10.667 6.263-14.724 10.931-4.062 4.668-7.057 10.159-8.781 16.098-1.724 5.943-2.138 12.186-1.207 18.3 2.005 10.351 7.599 19.661 15.791 26.295 8.196 6.635 18.466 10.163 29.009 9.971h91.733c-49.698 55.343-114.398 95.061-186.24 114.334-71.842 19.268-147.733 17.254-218.455-5.79-70.721-23.049-133.227-66.138-179.922-124.036-46.695-57.894-75.571-128.111-83.117-202.108-1.061-10.56-6.021-20.348-13.91-27.447s-18.142-11.004-28.756-10.953c-5.981-0.030-11.901 1.199-17.377 3.605s-10.385 5.935-14.408 10.359c-4.023 4.429-7.071 9.647-8.946 15.33-1.875 5.679-2.534 11.686-1.936 17.638 8.961 89.579 43.494 174.686 99.483 245.18s131.070 123.401 216.292 152.405c85.223 29.009 176.986 32.892 264.355 11.191 87.373-21.696 166.656-68.066 228.403-133.577v83.2c-0.073 6.187 1.203 12.309 3.738 17.954s6.263 10.667 10.927 14.724c4.668 4.062 10.163 7.057 16.102 8.781s12.186 2.138 18.3 1.207c10.351-2.005 19.661-7.599 26.295-15.791 6.63-8.196 10.163-18.466 9.971-29.009v-189.867c0-11.315-4.497-22.17-12.497-30.17s-18.854-12.497-30.17-12.497z", + "M738.842 465.613h-180.275v-180.275c0-25.617-20.766-46.409-46.409-46.409-25.617 0-46.409 20.791-46.409 46.409v180.275h-180.227c-25.641 0-46.408 20.791-46.408 46.409s20.768 46.409 46.408 46.409h180.227v180.25c0 25.617 20.791 46.409 46.409 46.409 25.643 0 46.409-20.791 46.409-46.409v-180.25h180.275c25.617 0 46.404-20.791 46.404-46.409s-20.787-46.409-46.404-46.409z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-recovery"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 50, "id": 26, "name": "transaction-recovery", "prevSize": 32, "code": 59731 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 77 + }, + { + "icon": { + "paths": [ + "M512.081 691.2c-101.632 0-184.235-80.213-184.235-179.2s82.517-179.2 184.32-179.2c101.717 0 184.149 80.213 184.149 179.2s-82.432 179.2-184.235 179.2zM903.164 561.664c2.133-16.384 3.755-32.768 3.755-49.664s-1.621-33.792-3.755-51.2l111.104-83.456c4.843-3.771 8.149-9.172 9.31-15.198 1.165-6.026 0.098-12.269-2.995-17.57l-105.301-177.152c-3.136-5.387-8.085-9.481-13.965-11.545-5.884-2.065-12.305-1.965-18.121 0.281l-131.072 51.2c-27.277-20.606-57.178-37.48-88.917-50.176l-19.541-135.68c-1.161-6.099-4.429-11.595-9.237-15.526-4.804-3.931-10.837-6.047-17.045-5.978h-210.517c-6.223-0.090-12.277 2.017-17.1 5.95s-8.105 9.44-9.268 15.554l-19.456 135.68c-33.195 12.8-61.611 30.208-88.917 50.176l-131.072-51.2c-5.824-2.269-12.268-2.381-18.168-0.315s-10.866 6.173-14.003 11.579l-105.216 177.152c-3.225 5.265-4.365 11.546-3.197 17.609s4.561 11.47 9.512 15.159l111.019 83.456c-2.251 16.977-3.476 34.074-3.669 51.2 0 16.896 1.621 33.28 3.669 49.664l-111.019 84.992c-4.951 3.691-8.343 9.097-9.512 15.159s-0.028 12.343 3.197 17.609l105.216 177.152c6.315 11.264 20.565 15.36 32.171 11.264l131.072-51.712c27.307 20.48 55.723 37.888 88.917 50.688l19.456 135.68c1.164 6.114 4.445 11.622 9.268 15.552 4.823 3.934 10.877 6.042 17.1 5.952h210.517c6.208 0.068 12.241-2.048 17.045-5.978 4.809-3.93 8.077-9.429 9.237-15.526l19.541-135.68c31.757-12.873 61.662-29.918 88.917-50.688l131.072 51.712c11.605 4.096 25.771 0 32.085-11.264l105.301-177.152c3.093-5.299 4.16-11.541 2.995-17.57-1.161-6.025-4.467-11.426-9.31-15.198l-111.104-84.992z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-change-settings"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 49, "id": 25, "name": "transaction-change-settings", "prevSize": 32, "code": 59732 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 78 + }, + { + "icon": { + "paths": [ + "M384.023 810.637c-10.913 0-21.825-4.186-30.138-12.463l-256.063-255.953c-7.971-8.026-12.49-18.863-12.49-30.212 0-11.307 4.518-22.187 12.49-30.161l255.849-256.002c16.667-16.683 43.651-16.683 60.275 0 16.666 16.683 16.666 43.648 0 60.331l-225.669 225.833 225.882 225.754c16.666 16.683 16.666 43.644 0.043 60.373-8.312 8.316-19.267 12.501-30.18 12.501z", + "M640.009 810.637c-10.923 0-21.845-4.186-30.165-12.501-16.683-16.683-16.683-43.652 0-60.335l225.792-225.792-225.792-225.833c-16.683-16.683-16.683-43.648 0-60.331s43.648-16.683 60.331 0l255.962 256.002c16.678 16.678 16.678 43.648 0 60.331l-255.962 255.957c-8.32 8.316-19.238 12.501-30.165 12.501z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-contract"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 48, "id": 24, "name": "transaction-contract", "prevSize": 32, "code": 59733 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 79 + }, + { + "icon": { + "paths": [ + "M897.032 99.153c2.961 2.253 5.607 4.901 7.86 7.872 37.29 49.112 14.074 242.14-55.288 328.405l-6.431 7.545-18.506 18.678 1.896 10.543c19.878 119.267 0.057 230.666-45.294 329.597-19.915 43.442-40.096 74.924-54.338 92.721-14.201 17.744-39.637 20.316-56.975 6.685l-3.846-3.432-136.684-138.031-29.475 29.848c-44.397 44.745-124.609 7.549-199.403-65.319l-7.22-7.16c-74.377-75.092-114.932-157.11-75.762-204.194l4.041-4.448 29.413-29.729-136.609-137.993c-17.2-17.371-15.702-45.96 3.219-61.4 17.623-14.381 48.802-34.757 91.823-54.863 100.859-47.136 214.813-66.956 336.893-43.851l18.629-18.704 8.995-7.909c58.298-48.033 152.216-71.286 241.275-71.286 37.99 0 65.409 3.976 81.785 16.428zM587.346 701.26l101.065 102.048c4.329-7.569 8.462-15.393 12.513-23.618l6.005-12.636c32.424-70.738 49.562-148.595 44.503-231.436l-164.086 165.642zM815.247 165.433c-71.029 0-146.907 18.706-187.163 50.672l-6.373 5.449-336.347 339.499 1.029 3.826 2.098 6.078 1.384 3.404 2.501 5.517c11.216 23.376 32.218 51.823 58.882 78.742 26.676 26.931 54.846 48.144 77.987 59.474 3.793 1.86 7.299 3.371 10.437 4.542l4.42 1.503 3.793 1.008 335.704-338.928c26.477-29.211 44.896-81.041 52.543-141.297 2.63-20.728 3.785-41.26 3.523-59.102l-0.324-10.362-0.647-9.090-9.339-0.623-6.836-0.232-7.27-0.079zM219.438 311.785l-11.529 6.395 101.072 102.037 164.131-165.614c-82.064-5.115-159.182 12.186-229.244 44.929-8.541 3.992-16.69 8.092-24.431 12.252z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-execute"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 47, "id": 23, "name": "transaction-execute", "prevSize": 32, "code": 59734 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 80 + }, + { + "icon": { + "paths": [ + "M980.258 154.546c3.703-20.891 3.699-20.892 3.691-20.893l16.439 2.448 2.675 15.065c-0.004-0.008-0.004-0.015-22.805 3.38z", + "M70.168 151.181l-0.013 0.074-0.029 0.169-0.098 0.578-0.336 2.087c-0.28 1.795-0.663 4.384-1.1 7.688-0.873 6.605-1.961 16.079-2.86 27.772-1.793 23.348-2.842 55.745 0.164 91.934 5.942 71.526 28.060 161.951 96.514 224.671 51.195 46.903 119.207 69.956 182.265 80.905 50.973 8.849 100.099 10.035 137.33 8.9v252.002c0 26.53 23.475 48.038 52.433 48.038s52.433-21.508 52.433-48.038v-252.109c36.843 1.323 86.306 0.474 137.907-8.124 64.137-10.688 133.828-33.724 186.031-81.553 68.463-62.724 90.581-153.159 96.525-224.693 3.008-36.193 1.958-68.593 0.162-91.944-0.896-11.695-1.984-21.17-2.859-27.776-0.435-3.304-0.819-5.894-1.101-7.689l-0.337-2.087-0.094-0.578-0.030-0.169-0.013-0.074-22.805 3.38 3.691-20.893-0.9-0.129-2.278-0.308c-1.958-0.256-4.783-0.608-8.388-1.008-7.211-0.8-17.553-1.798-30.319-2.621-25.485-1.643-60.847-2.604-100.352 0.15-78.071 5.445-176.777 25.712-245.239 88.438-26.227 24.029-45.611 52.096-59.883 81.484-14.268-29.386-33.651-57.45-59.874-81.478-68.455-62.719-167.148-82.984-245.214-88.428-39.498-2.755-74.857-1.793-100.34-0.15-12.763 0.823-23.103 1.82-30.312 2.62-3.606 0.4-6.432 0.751-8.391 1.008l-2.278 0.308-0.631 0.090-0.185 0.027-0.081 0.012 3.688 20.893c-3.702-20.873-3.696-20.892-3.688-20.893l-16.442 2.448-2.672 15.065c0.002-0.008 0.020-0.012 22.802 3.38l-22.802-3.38zM849.673 225.542c19.631-1.369 38.182-1.648 54.579-1.356 0.316 15.023 0.013 32.019-1.481 50.006-5.303 63.805-24.358 125.788-66.112 164.047-41.758 38.259-109.41 55.718-179.051 60.574-19.631 1.37-38.182 1.647-54.575 1.357-0.32-15.023-0.017-32.021 1.481-50.005 5.299-63.806 24.354-125.789 66.112-164.048 41.754-38.258 109.406-55.717 179.046-60.573zM170.461 274.192c-1.494-17.981-1.799-34.972-1.481-49.99 16.392-0.292 34.937-0.012 54.562 1.356 69.631 4.855 137.271 22.312 179.020 60.564 41.747 38.252 60.802 100.224 66.101 164.020 1.493 17.98 1.801 34.974 1.481 49.993-16.393 0.29-34.935 0.013-54.562-1.357-69.63-4.855-137.27-22.315-179.020-60.565s-60.802-100.224-66.102-164.020z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-stake"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 46, "id": 22, "name": "transaction-stake", "prevSize": 32, "code": 59735 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 81 + }, + { + "icon": { + "paths": [ + "M690.655 133.067c-12.157-11.836-31.605-11.576-43.438 0.58-11.837 12.156-11.579 31.605 0.578 43.441l73.273 71.343h-370.421c-41.68 0-81.813 16.114-111.528 45.047-29.744 28.96-46.609 68.416-46.609 109.735v62.032c0 16.966 13.754 30.72 30.72 30.72s30.72-13.754 30.72-30.72v-62.032c0-24.487 9.983-48.143 28.031-65.715 18.075-17.599 42.761-27.628 68.667-27.628h370.396l-73.249 71.321c-12.157 11.835-12.415 31.284-0.578 43.441 11.833 12.153 31.281 12.415 43.438 0.578l127.418-124.060c5.939-5.783 9.29-13.721 9.29-22.010s-3.351-16.227-9.29-22.010l-127.418-124.062zM372.658 567.865c11.836 12.157 11.576 31.605-0.58 43.442l-73.254 71.324h370.368c25.907 0 50.594-10.027 68.669-27.628 18.047-17.572 28.029-41.226 28.029-65.716v-62.030c0-16.966 13.754-30.72 30.72-30.72s30.72 13.754 30.72 30.72v62.030c0 41.32-16.867 80.777-46.608 109.736-29.716 28.934-69.849 45.048-111.53 45.048h-370.384l73.27 71.34c12.156 11.833 12.415 31.285 0.58 43.438-11.836 12.157-31.284 12.415-43.441 0.582l-127.418-124.064c-1.823-1.774-3.403-3.752-4.716-5.882-2.755-4.452-4.403-9.667-4.561-15.249-0.009-0.295-0.013-0.59-0.013-0.885 0-8.847 3.739-16.818 9.723-22.426l126.985-123.638c12.156-11.837 31.605-11.575 43.441 0.578z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-swap"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 45, "id": 21, "name": "transaction-swap", "prevSize": 32, "code": 59736 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 82 + }, + { + "icon": { + "paths": [ + "M777.183 648.356c-34.431 0.045-62.538-28.336-62.493-63.095v-204.367l-423.727 427.783c-24.309 24.543-64.087 24.543-88.396 0-24.353-24.584-24.309-64.7 0-89.24l423.727-427.787-202.472-0.044c-34.386 0-62.496-28.38-62.496-63.095s28.11-63.095 62.496-63.095l353.361 0.045c5.218-0.089 9.9 1.785 14.717 2.99 2.961 0.759 6.058 0.669 8.974 1.83 2.609 1.026 4.641 3.079 6.984 4.551 11.887 6.917 21.746 16.956 27.050 29.807 1.102 2.811 1.016 5.845 1.72 8.79 1.282 4.953 3.052 9.683 3.052 15.127v356.704c0 34.714-28.111 63.095-62.497 63.095z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-outgoing"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 44, "id": 20, "name": "transaction-outgoing", "prevSize": 32, "code": 59737 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 83 + }, + { + "icon": { + "paths": [ + "M235.766 355.070c35.865-0.046 65.146 29.234 65.1 65.097v210.852l441.38-441.361c25.323-25.321 66.756-25.321 92.079 0 25.365 25.367 25.323 66.754 0 92.075l-441.38 441.361 210.908 0.047c35.819 0 65.097 29.278 65.097 65.097s-29.278 65.097-65.097 65.097l-368.086-0.047c-5.433 0.094-10.313-1.839-15.331-3.085-3.084-0.781-6.307-0.691-9.346-1.886-2.717-1.058-4.834-3.179-7.274-4.698-12.385-7.134-22.652-17.493-28.176-30.75-1.151-2.901-1.059-6.033-1.796-9.071-1.335-5.111-3.177-9.988-3.177-15.607v-368.023c0-35.817 29.281-65.097 65.1-65.097z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transaction-incoming"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 43, "id": 19, "name": "transaction-incoming", "prevSize": 32, "code": 59738 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 84 + }, + { + "icon": { + "paths": [ + "M682.667 85.329h-341.333c-70.357 0-128 57.6-128 128v597.333c0 70.4 57.643 128 128 128h341.333c70.4 0 128-57.6 128-128v-597.333c0-70.4-57.6-128-128-128zM682.667 170.663c23.125 0 42.667 19.541 42.667 42.667v597.333c0 23.125-19.541 42.667-42.667 42.667h-341.333c-23.125 0-42.667-19.541-42.667-42.667v-597.333c0-23.125 19.541-42.667 42.667-42.667h341.333z", + "M512 714.953c-29.44 0-53.333 23.893-53.333 53.333s23.893 53.333 53.333 53.333c29.44 0 53.333-23.893 53.333-53.333s-23.893-53.333-53.333-53.333z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["mobile"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 42, "id": 18, "name": "mobile", "prevSize": 32, "code": 59739 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 85 + }, + { + "icon": { + "paths": [ + "M896 640v85.333c0 47.13-38.204 85.333-85.333 85.333h-640c-47.128 0-85.333-38.204-85.333-85.333v-426.667c0-47.128 38.205-85.333 85.333-85.333h640c47.13 0 85.333 38.205 85.333 85.333v85.333c23.565 0 42.667 19.103 42.667 42.667v170.667c0 23.565-19.102 42.667-42.667 42.667zM810.667 384v-85.333h-640v426.667h640v-85.333h-128c-23.565 0-42.667-19.102-42.667-42.667v-170.667c0-23.564 19.102-42.667 42.667-42.667h128zM725.333 554.667h128v-85.333h-128v85.333z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["wallet"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 41, "id": 17, "name": "wallet", "prevSize": 32, "code": 59740 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 86 + }, + { + "icon": { + "paths": [ + "M895.996 545.707c-6.711 72.627-33.967 141.841-78.583 199.543-44.612 57.702-104.734 101.504-173.333 126.281-68.599 24.781-142.835 29.508-214.025 13.636s-136.384-51.695-187.958-103.266c-51.574-51.575-87.394-116.77-103.267-187.959s-11.144-145.425 13.634-214.025c24.779-68.599 68.581-128.722 126.283-173.335s126.916-71.869 199.543-78.581c-42.522 57.526-62.982 128.403-57.663 199.74s36.069 138.397 86.65 188.979c50.581 50.581 117.641 81.331 188.979 86.652s142.212-15.142 199.74-57.664v0z" + ], + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["appearance"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }] } + }, + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "properties": { "order": 142, "id": 16, "name": "appearance", "prevSize": 32, "code": 59741 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 87 + }, + { + "icon": { + "paths": [ + "M704 401.066l-384-221.44", + "M896 682.667v-341.334c-0.017-14.964-3.964-29.661-11.456-42.617-7.488-12.956-18.253-23.714-31.211-31.197l-298.667-170.667c-12.971-7.489-27.686-11.433-42.667-11.433s-29.696 3.943-42.667 11.433l-298.667 170.667c-12.96 7.482-23.724 18.241-31.212 31.197s-11.439 27.653-11.454 42.617v341.334c0.015 14.963 3.965 29.662 11.454 42.615 7.489 12.958 18.253 23.714 31.212 31.198l298.667 170.667c12.971 7.488 27.686 11.43 42.667 11.43s29.696-3.942 42.667-11.43l298.667-170.667c12.958-7.484 23.723-18.24 31.211-31.198 7.492-12.954 11.439-27.652 11.456-42.615z", + "M139.521 296.96l372.479 215.467 372.48-215.467", + "M512 942.080v-430.080" + ], + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["experimental"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }, { "s": 0 }, { "s": 0 }, { "s": 0 }] } + }, + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "properties": { "order": 143, "id": 15, "name": "experimental", "prevSize": 32, "code": 59742 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 88 + }, + { + "icon": { + "paths": [ + "M170.675 83.198c-71.871 0-130.134 58.263-130.134 130.133v426.669c0 71.868 58.263 130.129 130.134 130.129h296.533v81.071h-125.867c-24.742 0-44.8 20.058-44.8 44.8 0 24.738 20.058 44.796 44.8 44.796h341.333c24.742 0 44.8-20.058 44.8-44.796 0-24.742-20.058-44.8-44.8-44.8h-125.867v-81.071h296.533c71.872 0 130.133-58.261 130.133-130.129v-426.669c0-71.871-58.261-130.133-130.133-130.133h-682.667zM130.142 213.331c0-22.386 18.147-40.533 40.533-40.533h682.667c22.387 0 40.533 18.147 40.533 40.533v426.669c0 22.383-18.146 40.533-40.533 40.533h-682.667c-22.386 0-40.533-18.15-40.533-40.533v-426.669z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["desktop"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 38, "id": 14, "name": "desktop", "prevSize": 32, "code": 59743 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 89 + }, + { + "icon": { + "paths": [ + "M853.342 170.658c44.966 0 81.843 34.833 85.103 78.968l0.23 6.365v512c0 44.962-34.833 81.839-78.967 85.099l-6.494 0.192c0.004 22.118-16.439 40.128-37.679 42.59l-4.983 0.286c-21.867 0-39.91-16.444-42.377-37.683l-0.294-5.193h-511.956c0.004 22.118-16.477 40.128-37.689 42.59l-4.974 0.286c-23.595 0-42.667-19.072-42.667-42.667-44.93-0.205-81.763-35.029-85.018-79.138l-0.234-6.362v-512c0-44.963 34.833-81.839 78.968-85.099l6.365-0.234h682.665zM853.342 255.991h-682.665v512h682.665v-512z", + "M639.885 341.367c-94.251 0-170.667 76.416-170.667 170.667s76.416 170.667 170.667 170.667c94.251 0 170.667-76.416 170.667-170.667s-76.416-170.667-170.667-170.667zM639.885 426.701c47.061 0 85.333 38.229 85.333 85.333 0 47.061-38.272 85.333-85.333 85.333s-85.333-38.272-85.333-85.333c0-47.104 38.272-85.333 85.333-85.333z", + "M298.594 341.325c21.881 0 39.915 16.471 42.38 37.691l0.287 4.976v256c0 23.565-19.102 42.667-42.667 42.667-21.881 0-39.915-16.469-42.38-37.692l-0.287-4.975v-256c0-23.564 19.103-42.667 42.667-42.667z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["safe"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 24, "id": 13, "name": "safe", "prevSize": 32, "code": 59744 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 90 + }, + { + "icon": { + "paths": [ + "M725.333 369.778c0-56.579-22.477-110.842-62.485-150.849-40.004-40.008-94.268-62.484-150.848-62.484s-110.842 22.476-150.849 62.484c-40.008 40.008-62.484 94.27-62.484 150.849 0 248.889-106.667 320.001-106.667 320.001h640c0 0-106.667-71.113-106.667-320.001z", + "M573.513 832c-6.251 10.778-15.223 19.721-26.018 25.937-10.795 6.221-23.036 9.493-35.494 9.493s-24.695-3.273-35.49-9.493c-10.799-6.217-19.767-15.159-26.022-25.937" + ], + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["bell"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }, { "s": 0 }] } + }, + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + }, + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "properties": { "order": 144, "id": 12, "name": "bell", "prevSize": 32, "code": 59745 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 91 + }, + { + "icon": { + "paths": [ + "M512.034 85.333c-148.545 0-269.399 120.837-269.399 269.383 0 50.643 14.25 100.063 41.186 142.888 9.838 15.676 21.71 38.157 25.35 50.769l37.98 131.631c3.839 13.239 11.514 25.114 21.421 34.714-2.881 5.188-4.683 11.068-4.683 17.425v127.108c0 19.887 16.141 36.032 36.032 36.032h18.268c-1.172 3.243-1.944 6.635-1.944 10.202 0 18.321 16.163 33.182 36.033 33.182h119.467c19.908 0 36.032-14.861 36.032-33.182 0-3.584-0.777-6.976-1.894-10.202h18.197c19.908 0 36.032-16.145 36.032-36.032v-127.108c0-5.709-1.459-11.063-3.819-15.851 10.829-10.018 19.187-22.613 23.113-36.898l35.959-131.324c3.494-12.736 15.117-34.987 24.777-50.355 26.97-42.825 41.22-92.259 41.22-142.976 0-148.552-120.819-269.406-269.329-269.406zM679.138 459.319c-4.198 6.686-25.532 41.438-33.28 69.67l-35.959 131.319c-0.666 2.432-5.619 6.217-8.141 6.234h-176.688c-2.683 0-7.947-3.998-8.685-6.537l-37.98-131.631c-7.963-27.58-29.332-62.37-33.549-69.111-19.729-31.347-30.159-67.505-30.159-104.547 0-108.804 88.514-197.318 197.332-197.318 108.77 0 197.265 88.514 197.265 197.318 0 37.096-10.415 73.273-30.157 104.603z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["lightbulb"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 26, "id": 11, "name": "lightbulb", "prevSize": 32, "code": 59746 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 92 + }, + { + "icon": { + "paths": [ + "M327.638 166.603c50.311 0 86.695 34.066 113.199 80.535 8.055 14.121 14.566 28.392 19.712 41.37h-132.911c-16.764 0-32.842-6.421-44.696-17.852s-18.513-26.935-18.513-43.1c0-16.166 6.659-31.669 18.513-43.1s27.932-17.853 44.696-17.853zM512 203.349c-32.030-54.196-89.885-118.016-184.362-118.016-39.117 0-76.631 14.984-104.291 41.656s-43.199 62.847-43.199 100.566c0 35.073 13.435 68.811 37.557 94.815h-93.584c-21.422 0-38.788 15.16-38.788 33.862v169.314c0 18.701 17.366 33.86 38.788 33.86h8.62v343.706c0 19.635 18.867 35.554 42.14 35.554h674.237c23.275 0 42.142-15.919 42.142-35.554v-343.706h8.619c21.423 0 38.788-15.159 38.788-33.86v-169.314c0-18.702-17.365-33.862-38.788-33.862h-93.585c24.124-26.004 37.559-59.742 37.559-94.815 0-37.719-15.539-73.894-43.2-100.566s-65.173-41.656-104.29-41.656c-94.477 0-152.333 63.82-184.363 118.016zM559.407 867.554v-308.147h247.573v308.147h-247.573zM464.593 559.407v308.147h-247.572v-308.147h247.572zM559.407 491.682v-101.587h301.683v101.587h-301.683zM464.593 390.095v101.587h-301.684v-101.587h301.684zM696.363 288.508h-132.911c5.146-12.978 11.657-27.249 19.712-41.37 26.505-46.469 62.886-80.535 113.199-80.535 16.764 0 32.841 6.422 44.698 17.853 11.853 11.431 18.513 26.934 18.513 43.1s-6.66 31.669-18.513 43.1c-11.857 11.431-27.934 17.852-44.698 17.852z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["what-is-new"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 27, "id": 10, "name": "what-is-new", "prevSize": 32, "code": 59747 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 93 + }, + { + "icon": { + "paths": [ + "M234.667 192h170.667c23.564 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.103 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.103-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667z", + "M234.667 576h170.667c23.564 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.103 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.103-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667z", + "M618.667 192h170.667c23.564 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.103 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.103-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667z", + "M618.667 576h170.667c23.564 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.103 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.103-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667z" + ], + "attrs": [{}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["blocks"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}], + "properties": { "order": 28, "id": 9, "name": "blocks", "prevSize": 32, "code": 59748 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 94 + }, + { + "icon": { + "paths": [ + "M128 224c0-35.346 28.654-64 64-64h640c35.345 0 64 28.654 64 64s-28.655 64-64 64h-640c-35.346 0-64-28.654-64-64z", + "M128 736c0-35.345 28.654-64 64-64h640c35.345 0 64 28.655 64 64s-28.655 64-64 64h-640c-35.346 0-64-28.655-64-64z", + "M128 480c0-35.345 28.654-64 64-64h640c35.345 0 64 28.655 64 64s-28.655 64-64 64h-640c-35.346 0-64-28.655-64-64z" + ], + "attrs": [{}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["rows"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}] } + }, + "attrs": [{}, {}, {}], + "properties": { "order": 29, "id": 8, "name": "rows", "prevSize": 32, "code": 59749 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 95 + }, + { + "icon": { + "paths": [ + "M384 85.333h-213.333c-47.128 0-85.333 38.205-85.333 85.333v213.333c0 47.13 38.205 85.333 85.333 85.333h213.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.128-38.204-85.333-85.333-85.333zM170.667 384v-213.333h213.333v213.333h-213.333z", + "M853.333 554.667h-213.333c-47.13 0-85.333 38.204-85.333 85.333v213.333c0 47.13 38.204 85.333 85.333 85.333h213.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.13-38.204-85.333-85.333-85.333zM640 853.333v-213.333h213.333v213.333h-213.333z", + "M938.667 277.333c0 106.039-85.961 192-192 192s-192-85.961-192-192c0-106.039 85.961-192 192-192s192 85.961 192 192zM640 277.333c0 58.91 47.757 106.667 106.667 106.667s106.667-47.756 106.667-106.667c0-58.91-47.757-106.667-106.667-106.667s-106.667 47.756-106.667 106.667z", + "M277.393 804.651l-122.236 122.236c-15.872 15.872-41.813 15.872-57.728 0l-0.171-0.213c-15.872-15.872-15.872-41.856 0-57.771l122.197-122.197-122.18-122.197c-15.872-15.872-15.872-41.856 0-57.728l0.171-0.213c15.915-15.872 41.856-15.872 57.728 0l122.219 122.202 122.202-122.202c15.872-15.872 41.856-15.872 57.728 0l0.213 0.213c15.872 15.872 15.872 41.856 0 57.728l-122.198 122.197 122.215 122.197c15.872 15.915 15.872 41.899 0 57.771l-0.213 0.213c-15.872 15.872-41.856 15.872-57.728 0l-122.219-122.236z" + ], + "attrs": [{}, {}, {}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["apps"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}, {}, {}] } + }, + "attrs": [{}, {}, {}, {}], + "properties": { "order": 30, "id": 7, "name": "apps", "prevSize": 32, "code": 59750 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 96 + }, + { + "icon": { + "paths": [ + "M170.667 384v256h-42.667c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667h42.667v128c0 47.13 38.205 85.333 85.333 85.333h512c47.13 0 85.333-38.204 85.333-85.333v-682.667c0-47.128-38.204-85.333-85.333-85.333h-512c-47.128 0-85.333 38.205-85.333 85.333v128h-42.667c-23.564 0-42.667 19.103-42.667 42.667s19.103 42.667 42.667 42.667h42.667zM298.667 640h-42.667v-256h42.667c23.564 0 42.667-19.103 42.667-42.667s-19.103-42.667-42.667-42.667h-42.667v-128h512v682.667h-512v-128h42.667c23.564 0 42.667-19.102 42.667-42.667s-19.103-42.667-42.667-42.667z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["address-book"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 31, "id": 6, "name": "address-book", "prevSize": 32, "code": 59751 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 97 + }, + { + "icon": { + "paths": [ + "M896 490.667c0.145 56.316-13.009 111.868-38.4 162.133-30.106 60.233-76.382 110.899-133.658 146.317-57.271 35.418-123.273 54.191-190.609 54.217-56.316 0.145-111.867-13.009-162.133-38.4l-243.2 81.067 81.067-243.2c-25.39-50.266-38.547-105.818-38.4-162.133 0.026-67.338 18.799-133.34 54.217-190.611s86.081-103.551 146.316-133.655c50.266-25.39 105.818-38.547 162.133-38.4h21.333c88.93 4.906 172.928 42.443 235.908 105.423s100.518 146.978 105.425 235.91v21.333z" + ], + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["chat"], + "colorPermutations": { "11611631671181918125521401255951141": [{ "s": 0 }] } + }, + "attrs": [ + { + "fill": "none", + "strokeLinejoin": "round", + "strokeLinecap": "round", + "strokeMiterlimit": "4", + "strokeWidth": 85.33333333333333 + } + ], + "properties": { "order": 145, "id": 5, "name": "chat", "prevSize": 32, "code": 59752 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 98 + }, + { + "icon": { + "paths": [ + "M512.427 767.987c-141.184 0-256-114.816-256-256s114.816-256 256-256c141.184 0 256 114.816 256 256s-114.816 256-256 256zM902.443 460.318l-14.763-1.28c-29.568-3.157-40.704-20.949-44.629-30.592-8.192-32.555-21.035-63.147-37.803-91.264-4.053-9.387-9.259-30.123 9.771-53.632l9.472-11.349c20.736-23.637 12.459-38.443-4.096-55.083l-13.739-13.696c-16.597-16.597-31.445-24.832-55.083-4.139l-11.349 9.515c-24.96 20.139-46.763 13.141-55.211 9.045-26.411-15.531-55.083-27.52-85.419-35.541-7.040-1.963-31.104-11.221-34.816-46.165l-1.323-14.763c-2.091-31.36-18.347-36.053-41.856-36.053h-19.413c-23.467 0-39.808 4.693-41.856 36.053l-1.323 14.763c-4.352 40.917-36.821 46.72-36.821 46.72 0 0.085 0.043 0.171 0.043 0.256-28.075 7.68-54.656 18.987-79.317 33.152-0.085-0.128-0.128-0.341-0.256-0.469 0 0-27.051 18.859-59.051-6.955l-11.392-9.557c-23.637-20.693-38.485-12.459-55.083 4.139l-13.696 13.696c-16.597 16.64-24.832 31.445-4.181 55.083l9.557 11.349c25.856 32.043 6.955 59.093 6.955 59.093 0.213 0.171 0.469 0.256 0.683 0.384-14.165 24.704-25.387 51.243-33.024 79.317-0.213-0.043-0.427-0.128-0.597-0.171 0 0-5.76 32.469-46.677 36.864l-14.805 1.28c-31.317 2.091-36.011 18.432-36.011 41.899v19.413c0 23.424 4.693 39.765 36.011 41.813l14.805 1.323c40.917 4.352 46.677 36.864 46.677 36.864 0.171 0 0.341-0.085 0.512-0.128 7.68 28.075 18.688 54.741 32.768 79.445-0.085 0.085-0.256 0.085-0.341 0.171 0 0 18.901 27.093-6.955 59.093l-9.557 11.349c-20.651 23.637-12.459 38.528 4.181 55.083l13.696 13.739c16.597 16.597 31.445 24.832 55.083 4.096l11.392-9.472c32-25.899 59.051-6.997 59.051-6.997 0.043-0.043 0.043-0.085 0.085-0.128 24.747 14.208 51.371 25.259 79.445 32.981v0.128c0 0 32.469 5.803 36.821 46.72l1.323 14.72c2.048 31.36 18.389 36.011 41.856 36.011h19.413c23.509 0 39.765-4.651 41.856-36.011l1.323-14.72c3.413-31.915 23.723-42.411 32.597-45.483 31.019-7.936 60.203-20.267 87.125-36.011 8.021-4.011 30.165-11.861 55.723 8.789l11.349 9.515c23.637 20.693 38.485 12.459 55.083-4.139l13.739-13.739c16.555-16.555 24.832-31.445 4.096-55.083l-9.472-11.307c-20.437-25.344-13.013-47.317-8.917-55.509 16.299-27.691 29.013-57.685 37.077-89.643 4.011-9.685 15.104-27.179 44.501-30.336l14.763-1.323c31.317-2.048 35.968-18.389 35.968-41.813v-19.413c0-23.467-4.651-39.808-35.968-41.899z" + ], + "attrs": [{}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["settings"], + "colorPermutations": { "11611631671181918125521401255951141": [{}] } + }, + "attrs": [{}], + "properties": { "order": 33, "id": 4, "name": "settings", "prevSize": 32, "code": 59753 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 99 + }, + { + "icon": { + "paths": [ + "M967.629 575.548c-18.27-19.029-48.141-19.029-66.411 0l-107.558 111.753v-467.835c0-26.839-21.137-48.799-46.972-48.799-25.877 0-46.967 21.959-46.967 48.799v467.835l-107.605-111.753c-18.27-18.982-48.141-18.982-66.411 0-18.274 18.987-18.274 50.022 0 69.005l187.78 195.046c2.722 2.927 6.199 4.489 9.391 6.49 1.975 1.22 3.571 2.978 5.73 3.955 1.929 0.879 4.087 0.879 6.106 1.365 9.958 2.782 20.48 2.731 30.063-1.365 2.065-0.93 3.614-2.637 5.542-3.857 3.285-2.001 6.716-3.61 9.579-6.588l187.733-195.046c18.274-18.982 18.274-50.018 0-69.005z", + "M498.295 448.452c-18.27 19.029-48.141 19.029-66.411 0l-107.559-111.751v467.834c0 26.837-21.136 48.798-46.969 48.798-25.879 0-46.969-21.961-46.969-48.798v-467.834l-107.605 111.751c-18.271 18.982-48.143 18.982-66.413 0-18.271-18.987-18.271-50.021 0-69.004l187.78-195.048c2.724-2.928 6.2-4.49 9.393-6.49 1.973-1.22 3.569-2.977 5.73-3.953 1.926-0.879 4.086-0.879 6.106-1.366 9.957-2.782 20.478-2.733 30.060 1.366 2.066 0.927 3.616 2.635 5.542 3.855 3.287 2.001 6.716 3.611 9.581 6.588l187.732 195.048c18.274 18.983 18.274 50.017 0 69.004z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["transactions"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 34, "id": 3, "name": "transactions", "prevSize": 32, "code": 59754 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 100 + }, + { + "icon": { + "paths": [ + "M879.501 335.075h-737.449v73.955h737.449v-73.955z", + "M902.886 381.44l-9.216-7.055c-9.899-7.567-11.891-21.675-4.437-31.631l6.997-9.385c11.375-14.963 6.37-33.338-6.711-48.755l-95.347-133.518c-14.336-20.082-37.491-32.029-62.182-32.029h-440.261c-24.689 0-47.843 11.947-62.179 32.029l-95.119 133.518c-13.085 15.418-18.034 33.736-6.713 48.755l6.997 9.385c7.396 10.013 5.461 24.064-4.437 31.631l-9.216 7.055c-14.962 11.377-17.92 32.71-6.543 47.671l335.076 466.547c5.005 6.541 12.745 10.411 20.992 10.411h82.658c8.247 0 15.987-3.87 20.992-10.411l335.249-466.547c11.375-14.961 8.418-36.35-6.545-47.671h-0.055zM519.454 838.37c-3.81 5.009-11.319 5.009-15.13 0l-335.191-459.604c-3.813-5.006-2.56-12.288 1.138-17.236l105.984-148.538c8.931-12.573 23.381-19.968 38.798-19.968h393.615c15.415 0 29.867 7.453 38.797 19.968l106.155 148.538c3.755 4.948 4.949 12.288 1.139 17.236l-335.305 459.604z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["nft"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 35, "id": 2, "name": "nft", "prevSize": 32, "code": 59755 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 101 + }, + { + "icon": { + "paths": [ + "M639.915 213.312c-164.907 0-298.665 133.76-298.665 298.667 0 164.949 133.758 298.667 298.665 298.667 164.949 0 298.667-133.717 298.667-298.667 0-164.907-133.717-298.667-298.667-298.667zM639.915 298.645c117.675 0 213.333 95.701 213.333 213.333 0 117.675-95.659 213.333-213.333 213.333-117.632 0-213.331-95.659-213.331-213.333 0-117.632 95.699-213.333 213.331-213.333z", + "M290.319 228.618c-121.393 39.957-204.986 153.478-204.986 283.216s83.593 243.26 204.986 283.217c22.383 7.364 46.5-4.809 53.868-27.187 7.367-22.383-4.805-46.502-27.188-53.871-86.66-28.523-146.332-109.559-146.332-202.159s59.671-173.636 146.332-202.16c22.383-7.367 34.555-31.485 27.188-53.868s-31.485-34.555-53.868-27.188z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["token"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 36, "id": 1, "name": "token", "prevSize": 32, "code": 59756 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 102 + }, + { + "icon": { + "paths": [ + "M488.427 93.504c13.867-10.894 33.28-10.894 47.147 0l345.6 271.515c9.357 7.349 14.827 18.648 14.827 30.618v426.665c0 30.861-12.139 60.459-33.741 82.283-21.606 21.824-50.906 34.082-81.459 34.082h-537.6c-30.553 0-59.855-12.258-81.459-34.082s-33.741-51.422-33.741-82.283v-426.665c0-11.97 5.471-23.269 14.825-30.618l345.602-271.515zM204.8 414.607v407.695c0 10.287 4.046 20.156 11.247 27.43 7.202 7.27 16.969 11.358 27.153 11.358h537.6c10.185 0 19.951-4.087 27.153-11.358 7.202-7.275 11.247-17.143 11.247-27.43v-407.695l-307.2-241.347-307.2 241.347z", + "M341.333 508.446c0-21.602 19.103-39.113 42.667-39.113h256c23.565 0 42.667 17.51 42.667 39.113v391.108c0 21.602-19.102 39.113-42.667 39.113s-42.667-17.51-42.667-39.113v-352h-170.667v352c0 21.602-19.103 39.113-42.667 39.113s-42.667-17.51-42.667-39.113v-391.108z" + ], + "attrs": [{}, {}], + "isMulticolor": false, + "isMulticolor2": false, + "grid": 0, + "tags": ["home"], + "colorPermutations": { "11611631671181918125521401255951141": [{}, {}] } + }, + "attrs": [{}, {}], + "properties": { "order": 37, "id": 0, "name": "home", "prevSize": 32, "code": 59757 }, + "setIdx": 0, + "setId": 2, + "iconIdx": 103 + } + ], + "height": 1024, + "metadata": { "name": "safe-icons" }, + "preferences": { + "showGlyphs": true, + "showQuickUse": true, + "showQuickUse2": true, + "showSVGs": true, + "fontPref": { + "prefix": "icon-", + "metadata": { "fontFamily": "safe-icons", "majorVersion": 1, "minorVersion": 0 }, + "metrics": { "emSize": 1024, "baseline": 6.25, "whitespace": 50 }, + "embed": false, + "noie8": true, + "ie7": false, + "showSelector": false, + "showMetrics": false, + "showMetadata": false, + "showVersion": true + }, + "imagePref": { + "prefix": "icon-", + "png": true, + "useClassSelector": true, + "color": 0, + "bgColor": 16777215, + "classSelector": ".icon", + "name": "icomoon" + }, + "historySize": 50, + "showCodes": true, + "gridSize": 16 + } +} diff --git a/apps/mobile/resources/icons/safe-icons/style.css b/apps/mobile/resources/icons/safe-icons/style.css new file mode 100644 index 0000000000..1719198c8d --- /dev/null +++ b/apps/mobile/resources/icons/safe-icons/style.css @@ -0,0 +1,373 @@ +@font-face { + font-family: 'safe-icons'; + src: + url('fonts/safe-icons.ttf?oqz473') format('truetype'), + url('fonts/safe-icons.woff?oqz473') format('woff'), + url('fonts/safe-icons.svg?oqz473#safe-icons') format('svg'); + font-weight: normal; + font-style: normal; + font-display: block; +} + +[class^="icon-"], [class*=" icon-"] { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'safe-icons' !important; + speak: never; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-block:before { + content: "\e900"; + color: #ff5f72; +} +.icon-alert-triangle:before { + content: "\e901"; + color: #ff5f72; +} +.icon-alert:before { + content: "\e902"; + color: #ff5f72; +} +.icon-info:before { + content: "\e903"; +} +.icon-question:before { + content: "\e904"; +} +.icon-points:before { + content: "\e905"; +} +.icon-code-blocks:before { + content: "\e906"; +} +.icon-hardware:before { + content: "\e907"; +} +.icon-keystone:before { + content: "\e908"; +} +.icon-ledger:before { + content: "\e909"; +} +.icon-seed:before { + content: "\e90a"; +} +.icon-key:before { + content: "\e90b"; +} +.icon-dapp-logo:before { + content: "\e90c"; +} +.icon-double-arrow:before { + content: "\e90d"; +} +.icon-arrow-sort:before { + content: "\e90e"; +} +.icon-dropdown-arrow-small:before { + content: "\e90f"; +} +.icon-options-vertical:before { + content: "\e910"; +} +.icon-options-horizontal:before { + content: "\e911"; +} +.icon-check-oulined:before { + content: "\e912"; +} +.icon-check:before { + content: "\e913"; +} +.icon-check-filled:before { + content: "\e914"; +} +.icon-arrow-down-1:before { + content: "\e915"; +} +.icon-arrow-down:before { + content: "\e916"; +} +.icon-arrow-up:before { + content: "\e917"; +} +.icon-arrow-left:before { + content: "\e918"; +} +.icon-arrow-right:before { + content: "\e919"; +} +.icon-tag:before { + content: "\e91a"; +} +.icon-camera:before { + content: "\e91b"; +} +.icon-element-drag:before { + content: "\e91c"; +} +.icon-transaction-partial-fill:before { + content: "\e91d"; +} +.icon-rows-2 .path1:before { + content: "\e91e"; + color: rgb(0, 0, 0); +} +.icon-rows-2 .path2:before { + content: "\e91f"; + margin-left: -1em; + color: rgb(0, 0, 0); +} +.icon-rows-2 .path3:before { + content: "\e920"; + margin-left: -1em; + color: rgb(0, 0, 0); +} +.icon-rows-2 .path4:before { + content: "\e921"; + margin-left: -1em; + color: rgb(18, 19, 18); +} +.icon-rows-2 .path5:before { + content: "\e922"; + margin-left: -1em; + color: rgb(18, 19, 18); +} +.icon-rows-2 .path6:before { + content: "\e923"; + margin-left: -1em; + color: rgb(18, 19, 18); +} +.icon-check-notifications:before { + content: "\e924"; +} +.icon-qr-code-1:before { + content: "\e925"; +} +.icon-scan-1:before { + content: "\e926"; +} +.icon-shield-crossed:before { + content: "\e927"; +} +.icon-shield:before { + content: "\e928"; +} +.icon-clock:before { + content: "\e929"; +} +.icon-update:before { + content: "\e92a"; +} +.icon-repeat:before { + content: "\e92b"; +} +.icon-download:before { + content: "\e92c"; +} +.icon-upload:before { + content: "\e92d"; +} +.icon-qr-code:before { + content: "\e92e"; +} +.icon-scan:before { + content: "\e92f"; +} +.icon-eye-n:before { + content: "\e930"; +} +.icon-eye-off:before { + content: "\e931"; +} +.icon-unlock:before { + content: "\e932"; +} +.icon-lock:before { + content: "\e933"; +} +.icon-replace-owner:before { + content: "\e934"; +} +.icon-edit-owner:before { + content: "\e935"; +} +.icon-add-owner:before { + content: "\e936"; +} +.icon-send-to:before { + content: "\e937"; +} +.icon-owners:before { + content: "\e938"; +} +.icon-link:before { + content: "\e939"; +} +.icon-share:before { + content: "\e93a"; +} +.icon-external-link:before { + content: "\e93b"; +} +.icon-export:before { + content: "\e93c"; +} +.icon-paste:before { + content: "\e93d"; +} +.icon-copy:before { + content: "\e93e"; +} +.icon-sign:before { + content: "\e93f"; +} +.icon-document:before { + content: "\e940"; +} +.icon-file:before { + content: "\e941"; +} +.icon-search:before { + content: "\e942"; +} +.icon-edit:before { + content: "\e943"; +} +.icon-delete:before { + content: "\e944"; +} +.icon-close-outlined:before { + content: "\e945"; +} +.icon-close-filled:before { + content: "\e946"; +} +.icon-close:before { + content: "\e947"; +} +.icon-plus-outlined:before { + content: "\e948"; +} +.icon-plus-filled:before { + content: "\e949"; +} +.icon-plus:before { + content: "\e94a"; +} +.icon-transaction-batch .path1:before { + content: "\e94b"; + color: rgb(255, 214, 0); +} +.icon-transaction-batch .path2:before { + content: "\e94c"; + margin-left: -1em; + color: rgb(0, 0, 0); +} +.icon-blocks-1:before { + content: "\e94d"; +} +.icon-rows-1:before { + content: "\e94e"; +} +.icon-batch:before { + content: "\e94f"; +} +.icon-filter:before { + content: "\e950"; +} +.icon-bookmark-filled:before { + content: "\e951"; +} +.icon-bookmark:before { + content: "\e952"; +} +.icon-transaction-recovery:before { + content: "\e953"; +} +.icon-transaction-change-settings:before { + content: "\e954"; +} +.icon-transaction-contract:before { + content: "\e955"; +} +.icon-transaction-execute:before { + content: "\e956"; +} +.icon-transaction-stake:before { + content: "\e957"; +} +.icon-transaction-swap:before { + content: "\e958"; +} +.icon-transaction-outgoing:before { + content: "\e959"; +} +.icon-transaction-incoming:before { + content: "\e95a"; +} +.icon-mobile:before { + content: "\e95b"; +} +.icon-wallet:before { + content: "\e95c"; +} +.icon-appearance:before { + content: "\e95d"; +} +.icon-experimental:before { + content: "\e95e"; +} +.icon-desktop:before { + content: "\e95f"; +} +.icon-safe:before { + content: "\e960"; +} +.icon-bell:before { + content: "\e961"; +} +.icon-lightbulb:before { + content: "\e962"; +} +.icon-what-is-new:before { + content: "\e963"; +} +.icon-blocks:before { + content: "\e964"; +} +.icon-rows:before { + content: "\e965"; +} +.icon-apps:before { + content: "\e966"; +} +.icon-address-book:before { + content: "\e967"; +} +.icon-chat:before { + content: "\e968"; +} +.icon-settings:before { + content: "\e969"; +} +.icon-transactions:before { + content: "\e96a"; +} +.icon-nft:before { + content: "\e96b"; +} +.icon-token:before { + content: "\e96c"; +} +.icon-home:before { + content: "\e96d"; +} diff --git a/apps/mobile/resources/icons/source-svgs/add-owner.svg b/apps/mobile/resources/icons/source-svgs/add-owner.svg new file mode 100644 index 0000000000..e2de36b504 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/add-owner.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/address-book.svg b/apps/mobile/resources/icons/source-svgs/address-book.svg new file mode 100644 index 0000000000..5b39535f06 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/address-book.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/alert-triangle.svg b/apps/mobile/resources/icons/source-svgs/alert-triangle.svg new file mode 100644 index 0000000000..dbd021d612 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/alert-triangle.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/alert.svg b/apps/mobile/resources/icons/source-svgs/alert.svg new file mode 100644 index 0000000000..c69118d18d --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/alert.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/appearance.svg b/apps/mobile/resources/icons/source-svgs/appearance.svg new file mode 100644 index 0000000000..1971adba94 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/appearance.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/apps.svg b/apps/mobile/resources/icons/source-svgs/apps.svg new file mode 100644 index 0000000000..6a03223dc3 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/apps.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/arrow-down-1.svg b/apps/mobile/resources/icons/source-svgs/arrow-down-1.svg new file mode 100644 index 0000000000..fe10e9838d --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/arrow-down-1.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/arrow-down.svg b/apps/mobile/resources/icons/source-svgs/arrow-down.svg new file mode 100644 index 0000000000..1ec931b144 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/arrow-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/arrow-left.svg b/apps/mobile/resources/icons/source-svgs/arrow-left.svg new file mode 100644 index 0000000000..3260c611ff --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/arrow-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/arrow-right.svg b/apps/mobile/resources/icons/source-svgs/arrow-right.svg new file mode 100644 index 0000000000..e813007d12 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/arrow-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/arrow-sort.svg b/apps/mobile/resources/icons/source-svgs/arrow-sort.svg new file mode 100644 index 0000000000..3c5bb96c71 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/arrow-sort.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/arrow-up.svg b/apps/mobile/resources/icons/source-svgs/arrow-up.svg new file mode 100644 index 0000000000..0f06e3a2b3 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/arrow-up.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/batch.svg b/apps/mobile/resources/icons/source-svgs/batch.svg new file mode 100644 index 0000000000..ec19949368 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/batch.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/bell.svg b/apps/mobile/resources/icons/source-svgs/bell.svg new file mode 100644 index 0000000000..4386eff7c3 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/bell.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/block.svg b/apps/mobile/resources/icons/source-svgs/block.svg new file mode 100644 index 0000000000..f2bd56de5f --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/block.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/blocks-1.svg b/apps/mobile/resources/icons/source-svgs/blocks-1.svg new file mode 100644 index 0000000000..b6a5f2b3fb --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/blocks-1.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/blocks.svg b/apps/mobile/resources/icons/source-svgs/blocks.svg new file mode 100644 index 0000000000..b6a5f2b3fb --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/blocks.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/bookmark-filled.svg b/apps/mobile/resources/icons/source-svgs/bookmark-filled.svg new file mode 100644 index 0000000000..be2282353a --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/bookmark-filled.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/bookmark.svg b/apps/mobile/resources/icons/source-svgs/bookmark.svg new file mode 100644 index 0000000000..235fbb225d --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/bookmark.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/camera.svg b/apps/mobile/resources/icons/source-svgs/camera.svg new file mode 100644 index 0000000000..790aaa911d --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/camera.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/chat.svg b/apps/mobile/resources/icons/source-svgs/chat.svg new file mode 100644 index 0000000000..342d6eb8b8 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/chat.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/check-filled.svg b/apps/mobile/resources/icons/source-svgs/check-filled.svg new file mode 100644 index 0000000000..caf30f2cf1 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/check-filled.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/check-notifications.svg b/apps/mobile/resources/icons/source-svgs/check-notifications.svg new file mode 100644 index 0000000000..60d44b0a30 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/check-notifications.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/check-oulined.svg b/apps/mobile/resources/icons/source-svgs/check-oulined.svg new file mode 100644 index 0000000000..0e9037cefb --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/check-oulined.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/check.svg b/apps/mobile/resources/icons/source-svgs/check.svg new file mode 100644 index 0000000000..cf4c2ba173 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/check.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/clock.svg b/apps/mobile/resources/icons/source-svgs/clock.svg new file mode 100644 index 0000000000..15ec73691f --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/clock.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/close-filled.svg b/apps/mobile/resources/icons/source-svgs/close-filled.svg new file mode 100644 index 0000000000..9fa57c4b59 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/close-filled.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/close-outlined.svg b/apps/mobile/resources/icons/source-svgs/close-outlined.svg new file mode 100644 index 0000000000..e722ae9732 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/close-outlined.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/close.svg b/apps/mobile/resources/icons/source-svgs/close.svg new file mode 100644 index 0000000000..b6caeb3b95 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/close.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/code-blocks.svg b/apps/mobile/resources/icons/source-svgs/code-blocks.svg new file mode 100644 index 0000000000..d6d3558a3d --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/code-blocks.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/copy.svg b/apps/mobile/resources/icons/source-svgs/copy.svg new file mode 100644 index 0000000000..2faacebe44 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/copy.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/dapp-logo.svg b/apps/mobile/resources/icons/source-svgs/dapp-logo.svg new file mode 100644 index 0000000000..741d5eceea --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/dapp-logo.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/delete.svg b/apps/mobile/resources/icons/source-svgs/delete.svg new file mode 100644 index 0000000000..75a3d50cc8 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/delete.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/desktop.svg b/apps/mobile/resources/icons/source-svgs/desktop.svg new file mode 100644 index 0000000000..6c0f6907a8 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/desktop.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/document.svg b/apps/mobile/resources/icons/source-svgs/document.svg new file mode 100644 index 0000000000..ad3e1cfa9c --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/document.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/double-arrow.svg b/apps/mobile/resources/icons/source-svgs/double-arrow.svg new file mode 100644 index 0000000000..0b82f202a6 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/double-arrow.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/download.svg b/apps/mobile/resources/icons/source-svgs/download.svg new file mode 100644 index 0000000000..08cb308afa --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/download.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/dropdown-arrow-small.svg b/apps/mobile/resources/icons/source-svgs/dropdown-arrow-small.svg new file mode 100644 index 0000000000..f42ace4a98 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/dropdown-arrow-small.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/edit-owner.svg b/apps/mobile/resources/icons/source-svgs/edit-owner.svg new file mode 100644 index 0000000000..2047f6fb8d --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/edit-owner.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/edit.svg b/apps/mobile/resources/icons/source-svgs/edit.svg new file mode 100644 index 0000000000..80e9170397 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/edit.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/element-drag.svg b/apps/mobile/resources/icons/source-svgs/element-drag.svg new file mode 100644 index 0000000000..a496771eea --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/element-drag.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/experimental.svg b/apps/mobile/resources/icons/source-svgs/experimental.svg new file mode 100644 index 0000000000..bae035cd43 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/experimental.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/export.svg b/apps/mobile/resources/icons/source-svgs/export.svg new file mode 100644 index 0000000000..33c2b3de8b --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/export.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/external-link.svg b/apps/mobile/resources/icons/source-svgs/external-link.svg new file mode 100644 index 0000000000..9fdb171a2c --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/external-link.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/eye-n.svg b/apps/mobile/resources/icons/source-svgs/eye-n.svg new file mode 100644 index 0000000000..dafa314db1 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/eye-n.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/eye-off.svg b/apps/mobile/resources/icons/source-svgs/eye-off.svg new file mode 100644 index 0000000000..90ab431f6e --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/eye-off.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/file.svg b/apps/mobile/resources/icons/source-svgs/file.svg new file mode 100644 index 0000000000..082704540c --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/file.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/filter.svg b/apps/mobile/resources/icons/source-svgs/filter.svg new file mode 100644 index 0000000000..23e1396ccb --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/filter.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/hardware.svg b/apps/mobile/resources/icons/source-svgs/hardware.svg new file mode 100644 index 0000000000..0c5729ab30 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/hardware.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/home.svg b/apps/mobile/resources/icons/source-svgs/home.svg new file mode 100644 index 0000000000..be5e4118c0 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/home.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/info.svg b/apps/mobile/resources/icons/source-svgs/info.svg new file mode 100644 index 0000000000..45d0027615 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/info.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/key.svg b/apps/mobile/resources/icons/source-svgs/key.svg new file mode 100644 index 0000000000..a937862c3f --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/key.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/keystone.svg b/apps/mobile/resources/icons/source-svgs/keystone.svg new file mode 100644 index 0000000000..efd796e737 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/keystone.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/ledger.svg b/apps/mobile/resources/icons/source-svgs/ledger.svg new file mode 100644 index 0000000000..4567f0a2e2 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/ledger.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/lightbulb.svg b/apps/mobile/resources/icons/source-svgs/lightbulb.svg new file mode 100644 index 0000000000..4d07899dc5 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/lightbulb.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/link.svg b/apps/mobile/resources/icons/source-svgs/link.svg new file mode 100644 index 0000000000..6afdc9044a --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/link.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/lock.svg b/apps/mobile/resources/icons/source-svgs/lock.svg new file mode 100644 index 0000000000..4050305220 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/lock.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/mobile.svg b/apps/mobile/resources/icons/source-svgs/mobile.svg new file mode 100644 index 0000000000..ef826b94c6 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/mobile.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/nft.svg b/apps/mobile/resources/icons/source-svgs/nft.svg new file mode 100644 index 0000000000..52c27e82aa --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/nft.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/options-horizontal.svg b/apps/mobile/resources/icons/source-svgs/options-horizontal.svg new file mode 100644 index 0000000000..82596eccee --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/options-horizontal.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/options-vertical.svg b/apps/mobile/resources/icons/source-svgs/options-vertical.svg new file mode 100644 index 0000000000..59b05f6f2c --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/options-vertical.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/owners.svg b/apps/mobile/resources/icons/source-svgs/owners.svg new file mode 100644 index 0000000000..84230b06ae --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/owners.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/paste.svg b/apps/mobile/resources/icons/source-svgs/paste.svg new file mode 100644 index 0000000000..4a56163fa2 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/paste.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/plus-filled.svg b/apps/mobile/resources/icons/source-svgs/plus-filled.svg new file mode 100644 index 0000000000..6fa6e614a5 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/plus-filled.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/plus-outlined.svg b/apps/mobile/resources/icons/source-svgs/plus-outlined.svg new file mode 100644 index 0000000000..bd36825b91 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/plus-outlined.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/plus.svg b/apps/mobile/resources/icons/source-svgs/plus.svg new file mode 100644 index 0000000000..f60361c29d --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/plus.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/points.svg b/apps/mobile/resources/icons/source-svgs/points.svg new file mode 100644 index 0000000000..f91e82a4da --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/points.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/qr-code-1.svg b/apps/mobile/resources/icons/source-svgs/qr-code-1.svg new file mode 100644 index 0000000000..66ff2c9f42 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/qr-code-1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/qr-code.svg b/apps/mobile/resources/icons/source-svgs/qr-code.svg new file mode 100644 index 0000000000..66ff2c9f42 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/qr-code.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/question.svg b/apps/mobile/resources/icons/source-svgs/question.svg new file mode 100644 index 0000000000..eafb900b4a --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/question.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/repeat.svg b/apps/mobile/resources/icons/source-svgs/repeat.svg new file mode 100644 index 0000000000..f77b797397 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/repeat.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/replace-owner.svg b/apps/mobile/resources/icons/source-svgs/replace-owner.svg new file mode 100644 index 0000000000..7644982f0d --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/replace-owner.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/rows-1.svg b/apps/mobile/resources/icons/source-svgs/rows-1.svg new file mode 100644 index 0000000000..73bfee78fb --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/rows-1.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/rows-2.svg b/apps/mobile/resources/icons/source-svgs/rows-2.svg new file mode 100644 index 0000000000..e2fcbeb2e9 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/rows-2.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/rows.svg b/apps/mobile/resources/icons/source-svgs/rows.svg new file mode 100644 index 0000000000..73bfee78fb --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/rows.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/safe.svg b/apps/mobile/resources/icons/source-svgs/safe.svg new file mode 100644 index 0000000000..4ee47b4e48 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/safe.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/scan-1.svg b/apps/mobile/resources/icons/source-svgs/scan-1.svg new file mode 100644 index 0000000000..d0be3efd00 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/scan-1.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/scan.svg b/apps/mobile/resources/icons/source-svgs/scan.svg new file mode 100644 index 0000000000..d0be3efd00 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/scan.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/search.svg b/apps/mobile/resources/icons/source-svgs/search.svg new file mode 100644 index 0000000000..9265f48beb --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/search.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/seed.svg b/apps/mobile/resources/icons/source-svgs/seed.svg new file mode 100644 index 0000000000..9c26ef276a --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/seed.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/send-to.svg b/apps/mobile/resources/icons/source-svgs/send-to.svg new file mode 100644 index 0000000000..1c21308cd0 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/send-to.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/settings.svg b/apps/mobile/resources/icons/source-svgs/settings.svg new file mode 100644 index 0000000000..f5ef77e433 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/settings.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/share.svg b/apps/mobile/resources/icons/source-svgs/share.svg new file mode 100644 index 0000000000..ef2a82cbac --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/share.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/shield-crossed.svg b/apps/mobile/resources/icons/source-svgs/shield-crossed.svg new file mode 100644 index 0000000000..cc308d84b7 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/shield-crossed.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/shield.svg b/apps/mobile/resources/icons/source-svgs/shield.svg new file mode 100644 index 0000000000..e2efccad33 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/shield.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/sign.svg b/apps/mobile/resources/icons/source-svgs/sign.svg new file mode 100644 index 0000000000..2f73fcdb39 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/sign.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/tag.svg b/apps/mobile/resources/icons/source-svgs/tag.svg new file mode 100644 index 0000000000..8fe0a6d4e6 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/tag.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/token.svg b/apps/mobile/resources/icons/source-svgs/token.svg new file mode 100644 index 0000000000..fde8bb5466 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/token.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/transaction-batch.svg b/apps/mobile/resources/icons/source-svgs/transaction-batch.svg new file mode 100644 index 0000000000..5662be33a5 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/transaction-batch.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/transaction-change-settings.svg b/apps/mobile/resources/icons/source-svgs/transaction-change-settings.svg new file mode 100644 index 0000000000..fb7e59525c --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/transaction-change-settings.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/transaction-contract.svg b/apps/mobile/resources/icons/source-svgs/transaction-contract.svg new file mode 100644 index 0000000000..837de855b6 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/transaction-contract.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/transaction-execute.svg b/apps/mobile/resources/icons/source-svgs/transaction-execute.svg new file mode 100644 index 0000000000..b5af65351e --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/transaction-execute.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/transaction-incoming.svg b/apps/mobile/resources/icons/source-svgs/transaction-incoming.svg new file mode 100644 index 0000000000..b4beb22471 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/transaction-incoming.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/transaction-outgoing.svg b/apps/mobile/resources/icons/source-svgs/transaction-outgoing.svg new file mode 100644 index 0000000000..783cbf0870 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/transaction-outgoing.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/transaction-partial-fill.svg b/apps/mobile/resources/icons/source-svgs/transaction-partial-fill.svg new file mode 100644 index 0000000000..7d8ac41a81 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/transaction-partial-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/transaction-recovery.svg b/apps/mobile/resources/icons/source-svgs/transaction-recovery.svg new file mode 100644 index 0000000000..40a7ec9e88 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/transaction-recovery.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/mobile/resources/icons/source-svgs/transaction-stake.svg b/apps/mobile/resources/icons/source-svgs/transaction-stake.svg new file mode 100644 index 0000000000..eaa40d3293 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/transaction-stake.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/transaction-swap.svg b/apps/mobile/resources/icons/source-svgs/transaction-swap.svg new file mode 100644 index 0000000000..d5cc049dbb --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/transaction-swap.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/transactions.svg b/apps/mobile/resources/icons/source-svgs/transactions.svg new file mode 100644 index 0000000000..11e0b508f7 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/transactions.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/unlock.svg b/apps/mobile/resources/icons/source-svgs/unlock.svg new file mode 100644 index 0000000000..08cb957285 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/unlock.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/update.svg b/apps/mobile/resources/icons/source-svgs/update.svg new file mode 100644 index 0000000000..3dac3e76ff --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/update.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/upload.svg b/apps/mobile/resources/icons/source-svgs/upload.svg new file mode 100644 index 0000000000..5a63431ff1 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/upload.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/mobile/resources/icons/source-svgs/wallet.svg b/apps/mobile/resources/icons/source-svgs/wallet.svg new file mode 100644 index 0000000000..786d4ce5f4 --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/wallet.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/resources/icons/source-svgs/what-is-new.svg b/apps/mobile/resources/icons/source-svgs/what-is-new.svg new file mode 100644 index 0000000000..0de615a6ed --- /dev/null +++ b/apps/mobile/resources/icons/source-svgs/what-is-new.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/mobile/scripts/generateIconTypes.js b/apps/mobile/scripts/generateIconTypes.js new file mode 100644 index 0000000000..d36bbaccc9 --- /dev/null +++ b/apps/mobile/scripts/generateIconTypes.js @@ -0,0 +1,26 @@ +/* eslint-disable */ +/** + * This script generates the possible names for the SafeFontIcon component + */ + +const fs = require('fs') +const path = require('path') + +const selectionFilePath = path.join(__dirname, '../assets/fonts/safe-icons/selection.json') + +// Read the selection.json file +const selection = JSON.parse(fs.readFileSync(selectionFilePath, 'utf8')) + +// Get the icon names +const iconNames = selection.icons.map((icon) => icon.icon.tags[0]).filter(Boolean) + +// Create TypeScript union type +const typeDef = `export type IconName =\n ${iconNames.map((name) => `| '${name}'`).join('\n ')}\n` + +// Create an array of icon names +const arrayDef = `export const iconNames: IconName[] = [\n ${iconNames.map((name) => `'${name}'`).join(',\n ')},\n]` + +// Write the type definition to a file +fs.writeFileSync(path.join(__dirname, '../src/types/iconTypes.ts'), `${typeDef}\n${arrayDef}\n`) + +console.log('Icon type and Icon names generated') diff --git a/apps/mobile/scripts/reset-project.js b/apps/mobile/scripts/reset-project.js new file mode 100755 index 0000000000..9b4f780b6d --- /dev/null +++ b/apps/mobile/scripts/reset-project.js @@ -0,0 +1,73 @@ +#!/usr/bin/env node + +/** + * This script is used to reset the project to a blank state. + * It moves the /app directory to /app-example and creates a new /app directory with an SafeFontIcon.tsx and _layout.tsx file. + * You can remove the `reset-project` script from package.json and safely delete this file after running it. + */ + +const fs = require('fs') +const path = require('path') + +const root = process.cwd() +const oldDirPath = path.join(root, 'app') +const newDirPath = path.join(root, 'app-example') +const newAppDirPath = path.join(root, 'app') + +const indexContent = `import { Text, View } from "react-native"; + +export default function Index() { + return ( + + Edit app/index.tsx to edit this screen. + + ); +} +` + +const layoutContent = `import { Stack } from "expo-router"; + +export default function RootLayout() { + return ( + + + + ); +} +` + +fs.rename(oldDirPath, newDirPath, (error) => { + if (error) { + return console.error(`Error renaming directory: ${error}`) + } + console.log('/app moved to /app-example.') + + fs.mkdir(newAppDirPath, { recursive: true }, (error) => { + if (error) { + return console.error(`Error creating new app directory: ${error}`) + } + console.log('New /app directory created.') + + const indexPath = path.join(newAppDirPath, 'SafeFontIcon.tsx') + fs.writeFile(indexPath, indexContent, (error) => { + if (error) { + return console.error(`Error creating index.tsx: ${error}`) + } + console.log('app/SafeFontIcon.tsx created.') + + const layoutPath = path.join(newAppDirPath, '_layout.tsx') + fs.writeFile(layoutPath, layoutContent, (error) => { + if (error) { + return console.error(`Error creating _layout.tsx: ${error}`) + } + console.log('app/_layout.tsx created.') + }) + }) + }) +}) diff --git a/apps/mobile/src/components/Alert/Alert.stories.tsx b/apps/mobile/src/components/Alert/Alert.stories.tsx new file mode 100644 index 0000000000..1a7a5ad51b --- /dev/null +++ b/apps/mobile/src/components/Alert/Alert.stories.tsx @@ -0,0 +1,41 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { Alert } from '@/src/components/Alert' + +const meta: Meta = { + title: 'Alert', + component: Alert, + argTypes: { + type: { control: 'select', options: ['error', 'warning', 'info'] }, + message: { type: 'string' }, + iconName: { type: 'string' }, + displayIcon: { type: 'boolean' }, + }, +} + +export default meta + +type Story = StoryObj + +export const Warning: Story = { + args: { + type: 'warning', + message: 'Proceed with caution', + displayIcon: true, + }, +} + +export const Error: Story = { + args: { + type: 'error', + message: 'The transaction will most likely fail', + displayIcon: true, + }, +} + +export const Info: Story = { + args: { + type: 'info', + message: 'This is info block', + displayIcon: true, + }, +} diff --git a/apps/mobile/src/components/Alert/Alert.test.tsx b/apps/mobile/src/components/Alert/Alert.test.tsx new file mode 100644 index 0000000000..b8b261ed9a --- /dev/null +++ b/apps/mobile/src/components/Alert/Alert.test.tsx @@ -0,0 +1,96 @@ +import { render, userEvent } from '@/src/tests/test-utils' +import { Alert } from '.' +import { SafeFontIcon } from '../SafeFontIcon/SafeFontIcon' + +describe('Alert', () => { + it('should render a info alert', async () => { + const container = render() + + expect(container.getByText('Info alert')).toBeTruthy() + expect(container.getByTestId('info-icon')).toBeTruthy() + expect(container.queryByTestId('alert-end-icon')).not.toBeTruthy() + expect(container.queryByTestId('alert-start-icon')).not.toBeTruthy() + }) + it('should render a info alert without icon', () => { + const container = render() + + expect(container.getByText('Info alert')).toBeTruthy() + expect(container.queryByTestId('info-icon')).not.toBeTruthy() + expect(container.queryByTestId('alert-end-icon')).not.toBeTruthy() + expect(container.queryByTestId('alert-start-icon')).not.toBeTruthy() + }) + + it('should render a warning alert', () => { + const container = render() + + expect(container.getByText('Warning alert')).toBeTruthy() + expect(container.queryByTestId('warning-icon')).toBeTruthy() + expect(container.queryByTestId('alert-end-icon')).not.toBeTruthy() + expect(container.queryByTestId('alert-start-icon')).not.toBeTruthy() + }) + + it('should render a warning alert without icon', () => { + const container = render() + + expect(container.getByText('Warning alert')).toBeTruthy() + expect(container.queryByTestId('warning-icon')).not.toBeTruthy() + expect(container.queryByTestId('alert-end-icon')).not.toBeTruthy() + expect(container.queryByTestId('alert-start-icon')).not.toBeTruthy() + }) + + it('should render an error alert', () => { + const container = render() + + expect(container.getByText('Error alert')).toBeTruthy() + expect(container.queryByTestId('error-icon')).toBeTruthy() + expect(container.queryByTestId('alert-end-icon')).not.toBeTruthy() + expect(container.queryByTestId('alert-start-icon')).not.toBeTruthy() + }) + + it('should render an error alert without icon', () => { + const container = render() + + expect(container.getByText('Error alert')).toBeTruthy() + expect(container.queryByTestId('error-icon')).not.toBeTruthy() + expect(container.queryByTestId('alert-end-icon')).not.toBeTruthy() + expect(container.queryByTestId('alert-start-icon')).not.toBeTruthy() + }) + + it('should be able to click in the alert component if an onPress function is passed', async () => { + const user = userEvent.setup() + const mockFn = jest.fn() + const container = render( + , + ) + + await user.press(container.getByText('Click to see something')) + + expect(mockFn).toHaveBeenCalled() + }) + + it('should render an alert with start icon', () => { + const container = render( + } + message="Error alert" + />, + ) + + expect(container.queryByTestId('add-owner-icon')).toBeTruthy() + }) + + it('should render an alert with an end icon', () => { + const container = render( + } message="Error alert" />, + ) + + expect(container.queryByTestId('add-owner-icon')).toBeTruthy() + }) + + it('should render an alert with a name icon', () => { + const container = render() + + expect(container.queryByTestId('add-owner-icon')).toBeTruthy() + }) +}) diff --git a/apps/mobile/src/components/Alert/Alert.tsx b/apps/mobile/src/components/Alert/Alert.tsx new file mode 100644 index 0000000000..8f14f69bab --- /dev/null +++ b/apps/mobile/src/components/Alert/Alert.tsx @@ -0,0 +1,75 @@ +import { View, Text, Theme } from 'tamagui' +import React, { type ReactElement } from 'react' +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import { IconName } from '@/src/types/iconTypes' +import { TouchableOpacity } from 'react-native' + +export type AlertType = 'error' | 'warning' | 'info' | 'success' + +interface AlertProps { + type: AlertType + message: string + iconName?: IconName + displayIcon?: boolean + fullWidth?: boolean + endIcon?: React.ReactNode + startIcon?: React.ReactNode + onPress?: () => void + testID?: string +} + +const icons = { + error: , + warning: , + info: , + success: , +} + +const getAlertIcon = (type: AlertType, iconName?: IconName, displayIcon?: boolean): ReactElement | null => { + if (!displayIcon) { + return null + } + + return iconName ? : icons[type] +} + +export const Alert = ({ + type, + fullWidth = true, + message, + iconName, + startIcon, + endIcon, + displayIcon = true, + onPress, + testID, +}: AlertProps) => { + const Icon = getAlertIcon(type, iconName, displayIcon) + return ( + + + + + {startIcon ? {startIcon} : Icon} + + + {message} + + + {endIcon && {endIcon}} + + + + + ) +} diff --git a/apps/mobile/src/components/Alert/index.ts b/apps/mobile/src/components/Alert/index.ts new file mode 100644 index 0000000000..67c990447c --- /dev/null +++ b/apps/mobile/src/components/Alert/index.ts @@ -0,0 +1,3 @@ +import { Alert } from './Alert' + +export { Alert } diff --git a/apps/mobile/src/components/Badge/Badge.tsx b/apps/mobile/src/components/Badge/Badge.tsx new file mode 100644 index 0000000000..4db8b7b31e --- /dev/null +++ b/apps/mobile/src/components/Badge/Badge.tsx @@ -0,0 +1,62 @@ +import React from 'react' +import { Circle, CircleProps, Text, TextProps, Theme, View } from 'tamagui' +import { badgeTheme } from '@/src/components/Badge/theme' + +type BadgeThemeKeys = keyof typeof badgeTheme + +type ExtractAfterUnderscore = T extends `${string}_${infer Rest}` ? Rest : never +type BadgeThemeTypes = ExtractAfterUnderscore + +interface BadgeProps { + content: string | React.ReactElement + themeName?: BadgeThemeTypes + circleSize?: string + fontSize?: TextProps['fontSize'] + circleProps?: Partial + textContentProps?: Partial + circular?: boolean +} + +export const Badge = ({ + content, + circleSize = '$7', + fontSize = 14, + themeName = 'badge_warning', + circular = true, + circleProps, + textContentProps, +}: BadgeProps) => { + let contentToRender = content + if (typeof content === 'string') { + contentToRender = ( + + {content} + + ) + } + + if (circular) { + return ( + + + {contentToRender} + + + ) + } + return ( + + + {contentToRender} + + + ) +} diff --git a/apps/mobile/src/components/Badge/badge.stories.tsx b/apps/mobile/src/components/Badge/badge.stories.tsx new file mode 100644 index 0000000000..a4d968778b --- /dev/null +++ b/apps/mobile/src/components/Badge/badge.stories.tsx @@ -0,0 +1,66 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { Badge } from '@/src/components/Badge' +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import React from 'react' +import { Text, View } from 'tamagui' + +const meta: Meta = { + title: 'Badge', + component: Badge, + args: { + content: '3/9', + }, +} + +export default meta + +type Story = StoryObj + +export const Circular: Story = { + args: { + content: '12+', + }, +} +export const CircularWithIcon: Story = { + render: function Render(args) { + return } /> + }, +} +export const NonCircular: Story = { + args: { + content: 'Badge', + circular: false, + }, +} + +export const NonCircularBold: Story = { + args: { + content: 'Badge', + circular: false, + textContentProps: { + fontWeight: 700, + }, + }, +} + +export const NonCircularWithComplexContent: Story = { + args: { + circular: false, + }, + render: function Render(args) { + return ( + + + + + 3/9 + + + } + /> + ) + }, +} diff --git a/apps/mobile/src/components/Badge/index.ts b/apps/mobile/src/components/Badge/index.ts new file mode 100644 index 0000000000..7a972c4456 --- /dev/null +++ b/apps/mobile/src/components/Badge/index.ts @@ -0,0 +1,3 @@ +import { Badge } from './Badge' + +export { Badge } diff --git a/apps/mobile/src/components/Badge/theme.ts b/apps/mobile/src/components/Badge/theme.ts new file mode 100644 index 0000000000..ef7b44ae17 --- /dev/null +++ b/apps/mobile/src/components/Badge/theme.ts @@ -0,0 +1,36 @@ +import { tokens } from '@/src/theme/tokens' + +export const badgeTheme = { + light_badge_success: { + background: tokens.color.successLightDark, + color: tokens.color.backgroundMainDark, + }, + dark_badge_success: { + color: tokens.color.backgroundMainDark, + background: tokens.color.primaryMainDark, + }, + light_badge_success_variant1: { + background: tokens.color.successDarkDark, + color: tokens.color.successMainLight, + }, + dark_badge_success_variant1: { + background: tokens.color.successDarkDark, + color: tokens.color.successMainLight, + }, + light_badge_warning: { + color: tokens.color.warning1MainLight, + background: tokens.color.warningBackgroundLight, + }, + dark_badge_warning: { + color: tokens.color.warning1MainDark, + background: tokens.color.warning1ContrastTextDark, + }, + light_badge_warning_variant1: { + color: tokens.color.warning1ContrastTextLight, + background: tokens.color.warningDarkDark, + }, + dark_badge_warning_variant1: { + color: tokens.color.warning1ContrastTextDark, + background: tokens.color.warningDarkDark, + }, +} diff --git a/apps/mobile/src/components/BlurredIdenticonBackground/BlurredIdenticonBackground.stories.tsx b/apps/mobile/src/components/BlurredIdenticonBackground/BlurredIdenticonBackground.stories.tsx new file mode 100644 index 0000000000..ae0cef8819 --- /dev/null +++ b/apps/mobile/src/components/BlurredIdenticonBackground/BlurredIdenticonBackground.stories.tsx @@ -0,0 +1,32 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { BlurredIdenticonBackground } from '@/src/components/BlurredIdenticonBackground' +import { View } from 'tamagui' + +const meta: Meta = { + title: 'BlurredIdenticonBackground', + component: BlurredIdenticonBackground, + argTypes: {}, +} + +export default meta + +type Story = StoryObj + +export const Default: Story = { + args: { + address: '0xA77DE01e157f9f57C7c4A326eeE9C4874D0598b6', + }, + decorators: [ + (Story) => ( + // This is a hack to make the story full screen + // we apply global decorator padding of 16 in preview.tsx + // and then we remove it here + + + + ), + ], + parameters: { + layout: 'fullscreen', + }, +} diff --git a/apps/mobile/src/components/BlurredIdenticonBackground/BlurredIdenticonBackground.tsx b/apps/mobile/src/components/BlurredIdenticonBackground/BlurredIdenticonBackground.tsx new file mode 100644 index 0000000000..1b6af57cf6 --- /dev/null +++ b/apps/mobile/src/components/BlurredIdenticonBackground/BlurredIdenticonBackground.tsx @@ -0,0 +1,77 @@ +import { blo } from 'blo' +import { View } from 'tamagui' +import { Image } from 'expo-image' +import { Dimensions, StyleSheet, useColorScheme } from 'react-native' +import { BlurView } from 'expo-blur' +import React from 'react' +import { Address } from '@/src/types/address' + +type Props = { + address: Address + height?: number + children: React.ReactNode +} +export const BlurredIdenticonBackground = ({ address, height = 125, children }: Props) => { + const blockie = blo(address) + const colorScheme = useColorScheme() + + return ( + + + + + + + + + + {children} + + + ) +} + +const styles = StyleSheet.create({ + containerInner: { + position: 'relative', + }, + containerInnerBackground: { + position: 'absolute', + width: '100%', + height: '100%', + }, + // Android cannot handle border-radius on Image component + // so we need to wrap it in a View with borderRadius + androidHack: { + borderRadius: '50%', + overflow: 'hidden', + bottom: 20, + position: 'absolute', + }, + identicon: { + width: Dimensions.get('window').width, + height: Dimensions.get('window').width, + }, + blurView: { + position: 'absolute', + bottom: 0, + width: '100%', + }, +}) diff --git a/apps/mobile/src/components/BlurredIdenticonBackground/index.tsx b/apps/mobile/src/components/BlurredIdenticonBackground/index.tsx new file mode 100644 index 0000000000..fcca8f3f86 --- /dev/null +++ b/apps/mobile/src/components/BlurredIdenticonBackground/index.tsx @@ -0,0 +1 @@ +export { BlurredIdenticonBackground } from './BlurredIdenticonBackground' diff --git a/apps/mobile/src/components/Container/Container.stories.tsx b/apps/mobile/src/components/Container/Container.stories.tsx new file mode 100644 index 0000000000..b3d6176912 --- /dev/null +++ b/apps/mobile/src/components/Container/Container.stories.tsx @@ -0,0 +1,23 @@ +import type { StoryObj, Meta } from '@storybook/react' +import { Container } from '@/src/components/Container' +import { Text } from 'tamagui' + +const meta: Meta = { + title: 'Container', + component: Container, + args: { + children: 'Some text', + }, +} + +export default meta + +type Story = StoryObj + +export const Default: Story = { + render: (args) => ( + + Some text + + ), +} diff --git a/apps/mobile/src/components/Container/Container.test.tsx b/apps/mobile/src/components/Container/Container.test.tsx new file mode 100644 index 0000000000..79d043b813 --- /dev/null +++ b/apps/mobile/src/components/Container/Container.test.tsx @@ -0,0 +1,25 @@ +import React from 'react' +import { render } from '@testing-library/react-native' +import { Container } from './index' +import { Text } from 'react-native' + +describe('Container', () => { + it('renders correctly with children', () => { + const { getByText } = render( + + Test Child + , + ) + expect(getByText('Test Child')).toBeTruthy() + }) + + it('applies the correct styles', () => { + const { getByTestId } = render( + + Test Child + , + ) + const container = getByTestId('container') + expect(container.props.style).toMatchSnapshot() + }) +}) diff --git a/apps/mobile/src/components/Container/Container.tsx b/apps/mobile/src/components/Container/Container.tsx new file mode 100644 index 0000000000..95b7585e00 --- /dev/null +++ b/apps/mobile/src/components/Container/Container.tsx @@ -0,0 +1,34 @@ +import { styled, Theme, ThemeName, YStack, YStackProps } from 'tamagui' + +const StyledYStack = styled(YStack, { + variants: { + bordered: { + true: { + borderColor: '#303033', + borderWidth: 1, + }, + false: { + backgroundColor: '$backgroundPaper', + }, + }, + transparent: { + true: { + backgroundColor: 'transparent', + borderWidth: 0, + }, + }, + } as const, +}) + +export const Container = ( + props: YStackProps & { bordered?: boolean; transparent?: boolean; themeName?: ThemeName }, +) => { + const { children, bordered, themeName = 'container', ...rest } = props + return ( + + + {children} + + + ) +} diff --git a/apps/mobile/src/components/Container/__snapshots__/Container.test.tsx.snap b/apps/mobile/src/components/Container/__snapshots__/Container.test.tsx.snap new file mode 100644 index 0000000000..d7ea5a52a2 --- /dev/null +++ b/apps/mobile/src/components/Container/__snapshots__/Container.test.tsx.snap @@ -0,0 +1,15 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Container applies the correct styles 1`] = ` +{ + "borderBottomLeftRadius": 7, + "borderBottomRightRadius": 7, + "borderTopLeftRadius": 7, + "borderTopRightRadius": 7, + "flexDirection": "column", + "paddingBottom": 16, + "paddingLeft": 16, + "paddingRight": 16, + "paddingTop": 16, +} +`; diff --git a/apps/mobile/src/components/Container/index.ts b/apps/mobile/src/components/Container/index.ts new file mode 100644 index 0000000000..0b2730f6f3 --- /dev/null +++ b/apps/mobile/src/components/Container/index.ts @@ -0,0 +1,3 @@ +import { Container } from './Container' + +export { Container } diff --git a/apps/mobile/src/components/CopyButton/CopyButton.stories.tsx b/apps/mobile/src/components/CopyButton/CopyButton.stories.tsx new file mode 100644 index 0000000000..bd027f5106 --- /dev/null +++ b/apps/mobile/src/components/CopyButton/CopyButton.stories.tsx @@ -0,0 +1,21 @@ +import type { StoryObj, Meta } from '@storybook/react' +import { CopyButton } from '@/src/components/CopyButton/index' + +const meta: Meta = { + title: 'CopyButton', + component: CopyButton, + args: {}, +} + +export default meta + +type Story = StoryObj + +/** + * Displays a copy button. On press, the value passed is copied to the clipboard. + */ +export const Default: Story = { + args: { + value: '0xA77DE01e157f9f57C7c4A326eeE9C4874D0598b6', + }, +} diff --git a/apps/mobile/src/components/CopyButton/CopyButton.tsx b/apps/mobile/src/components/CopyButton/CopyButton.tsx new file mode 100644 index 0000000000..8bbb3ed3b0 --- /dev/null +++ b/apps/mobile/src/components/CopyButton/CopyButton.tsx @@ -0,0 +1,18 @@ +import { Button, TextProps } from 'tamagui' +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import { useCopyAndDispatchToast } from '@/src/hooks/useCopyAndDispatchToast' + +export const CopyButton = ({ value, color }: { value: string; color: TextProps['color'] }) => { + const copyAndDispatchToast = useCopyAndDispatchToast() + return ( + { + copyAndDispatchToast(value) + }} + height={20} + backgroundColor={'transparent'} + > + + + ) +} diff --git a/apps/mobile/src/components/CopyButton/index.ts b/apps/mobile/src/components/CopyButton/index.ts new file mode 100644 index 0000000000..7c281caef9 --- /dev/null +++ b/apps/mobile/src/components/CopyButton/index.ts @@ -0,0 +1,3 @@ +import { CopyButton } from './CopyButton' + +export { CopyButton } diff --git a/apps/mobile/src/components/DataRow/DataRow.stories.tsx b/apps/mobile/src/components/DataRow/DataRow.stories.tsx new file mode 100644 index 0000000000..cc9479533e --- /dev/null +++ b/apps/mobile/src/components/DataRow/DataRow.stories.tsx @@ -0,0 +1,54 @@ +import React from 'react' +import { Container } from '@/src/components/Container' +import { DataRow } from '@/src/components/DataRow' +import { XStack, Text } from 'tamagui' + +export default { + title: 'DataRow', + component: DataRow, + decorators: [ + (Story: React.ComponentType) => ( + + + + ), + ], +} + +// Basic usage of DataRow with Label and Value +export const Default = () => ( + + Send + 0.05452 ETH + +) + +// DataRow with a Header and values below it +export const WithHeader = () => ( + <> + Transaction Details + + Recipient + 0x13d91...4589 + + + Network + Ethereum + + > +) + +// DataRow showcasing more complex ReactNode as Value +export const ComplexValue = () => ( + + Recipient + + + 0x13d91...4589 + + (Verified) + + + + +) diff --git a/apps/mobile/src/components/DataRow/DataRow.test.tsx b/apps/mobile/src/components/DataRow/DataRow.test.tsx new file mode 100644 index 0000000000..49609e7161 --- /dev/null +++ b/apps/mobile/src/components/DataRow/DataRow.test.tsx @@ -0,0 +1,81 @@ +import React from 'react' +import { render } from '@testing-library/react-native' +import { DataRow } from './index' +import { Text } from 'react-native' +import { View } from 'tamagui' + +describe('DataRow', () => { + it('renders correctly with children', () => { + const { getByText } = render( + + Test Child + , + ) + expect(getByText('Test Child')).toBeTruthy() + }) + + it('applies the correct styles', () => { + const { getByTestId } = render( + + Test Child + , + ) + const dataRow = getByTestId('data-row') + expect(dataRow.props.style).toMatchObject({ + justifyContent: 'space-between', + alignItems: 'center', + paddingTop: 8, + paddingRight: 8, + paddingBottom: 8, + paddingLeft: 8, + }) + }) +}) + +describe('DataRow.Label', () => { + it('renders correctly with children', () => { + const { getByText } = render(Label) + expect(getByText('Label')).toBeTruthy() + }) + + it('applies the correct styles', () => { + const { getByText } = render(Label) + const label = getByText('Label') + expect(label.props.style).toMatchObject({ + fontWeight: 'bold', + }) + }) +}) + +describe('DataRow.Value', () => { + it('renders correctly with children', () => { + const { getByText } = render(Value) + expect(getByText('Value')).toBeTruthy() + }) + + it('renders correctly with children as a React node', () => { + const { getByText } = render( + + + bob + + , + ) + expect(getByText('bob')).toBeTruthy() + }) +}) + +describe('DataRow.Header', () => { + it('renders correctly with children', () => { + const { getByText } = render(Header Child) + expect(getByText('Header Child')).toBeTruthy() + }) + + it('applies the correct styles', () => { + const { getByText } = render(Header Child) + const header = getByText('Header Child') + expect(header.props.style).toMatchObject({ + fontWeight: '600', + }) + }) +}) diff --git a/apps/mobile/src/components/DataRow/DataRow.tsx b/apps/mobile/src/components/DataRow/DataRow.tsx new file mode 100644 index 0000000000..a460e3b9b7 --- /dev/null +++ b/apps/mobile/src/components/DataRow/DataRow.tsx @@ -0,0 +1,47 @@ +import React from 'react' +import { XStack, Text, Theme, XStackProps } from 'tamagui' + +type Props = { + children: string +} + +type ValueProps = { + children: string | React.ReactElement +} + +export const DataRow: React.FC & { + Label: React.FC + Value: React.FC + Header: React.FC +} = (props: XStackProps) => { + const { children, ...rest } = props + return ( + + {children} + + ) +} + +const Label = ({ children }: Props) => ( + + {children} + +) + +const Value = ({ children }: { children: string | React.ReactElement }) => { + if (typeof children === 'string') { + return {children} + } + + return children +} + +const Header = ({ children }: Props) => ( + + {children} + +) + +DataRow.Label = Label +DataRow.Value = Value +DataRow.Header = Header diff --git a/apps/mobile/src/components/DataRow/index.ts b/apps/mobile/src/components/DataRow/index.ts new file mode 100644 index 0000000000..52f82bceef --- /dev/null +++ b/apps/mobile/src/components/DataRow/index.ts @@ -0,0 +1,2 @@ +import { DataRow } from './DataRow' +export { DataRow } diff --git a/apps/mobile/src/components/Dropdown/Dropdown.test.tsx b/apps/mobile/src/components/Dropdown/Dropdown.test.tsx new file mode 100644 index 0000000000..c8b8d0b71c --- /dev/null +++ b/apps/mobile/src/components/Dropdown/Dropdown.test.tsx @@ -0,0 +1,52 @@ +import { render, userEvent } from '@/src/tests/test-utils' +import { Dropdown } from '.' +import { Text, View } from 'tamagui' +import * as hooks from '@gorhom/bottom-sheet' + +const mockedItems = ['Ethereum', 'Sepolia', 'Nevinha'] + +describe('Dropdown', () => { + beforeEach(() => { + jest.clearAllMocks() + }) + + it('should render the default markup', () => { + const { getByText, queryByText, getByTestId } = render( + Here is my leftNode} + items={mockedItems} + keyExtractor={({ item }) => item} + renderItem={() => It should not be rendered} + />, + ) + + expect(getByText('Ethereum')).toBeTruthy() + expect(getByTestId('dropdown-arrow')).toBeTruthy() + expect(getByText('Here is my leftNode')).toBeTruthy() + expect(queryByText('It should not be rendered')).not.toBeTruthy() + }) + + it('should open and close the dropdown container', async () => { + const user = userEvent.setup() + const container = render( + Here is my leftNode}> + my custom child component + , + ) + const dismissSpy = jest.fn() + + jest.spyOn(hooks, 'useBottomSheetModal').mockImplementation(() => ({ dismiss: dismissSpy, dismissAll: jest.fn() })) + + expect(container.queryByText('my custom child component')).not.toBeVisible() + + await user.press(container.getByTestId('dropdown-label-view')) + + expect(container.getByText('my custom child component')).toBeVisible() + + await user.press(container.getByTestId('dropdown-backdrop')) + + expect(dismissSpy).toHaveBeenCalled() + }) +}) diff --git a/apps/mobile/src/components/Dropdown/Dropdown.tsx b/apps/mobile/src/components/Dropdown/Dropdown.tsx new file mode 100644 index 0000000000..45952f63f2 --- /dev/null +++ b/apps/mobile/src/components/Dropdown/Dropdown.tsx @@ -0,0 +1,100 @@ +import React, { useCallback, useRef } from 'react' +import { H5, ScrollView, Text, View } from 'tamagui' +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import { BottomSheetModal, BottomSheetView } from '@gorhom/bottom-sheet' +import { StyleSheet } from 'react-native' +import { BackdropComponent, BackgroundComponent } from './sheetComponents' + +interface DropdownProps { + label: string + leftNode?: React.ReactNode + children?: React.ReactNode + dropdownTitle?: string + items?: T[] + renderItem?: React.FC<{ item: T; onClose: () => void }> + keyExtractor?: ({ item, index }: { item: T; index: number }) => string +} + +export function Dropdown({ + label, + leftNode, + children, + dropdownTitle, + items, + keyExtractor, + renderItem: Render, +}: DropdownProps) { + const bottomSheetModalRef = useRef(null) + + const handlePresentModalPress = useCallback(() => { + bottomSheetModalRef.current?.present() + }, []) + + const handleModalClose = useCallback(() => { + bottomSheetModalRef.current?.dismiss() + }, []) + + const hasCustomItems = items && Render + + return ( + <> + + {leftNode} + + + {label} + + + + + + + + + + {dropdownTitle && ( + + {dropdownTitle} + + )} + + + {hasCustomItems + ? items.map((item, index) => ( + + )) + : children} + + + + + + > + ) +} + +const styles = StyleSheet.create({ + contentContainer: { + paddingHorizontal: 20, + flex: 1, + }, +}) diff --git a/apps/mobile/src/components/Dropdown/index.ts b/apps/mobile/src/components/Dropdown/index.ts new file mode 100644 index 0000000000..80f50ef94c --- /dev/null +++ b/apps/mobile/src/components/Dropdown/index.ts @@ -0,0 +1,2 @@ +import { Dropdown } from './Dropdown' +export { Dropdown } diff --git a/apps/mobile/src/components/Dropdown/sheetComponents.tsx b/apps/mobile/src/components/Dropdown/sheetComponents.tsx new file mode 100644 index 0000000000..8710158f35 --- /dev/null +++ b/apps/mobile/src/components/Dropdown/sheetComponents.tsx @@ -0,0 +1,50 @@ +import React from 'react' +import { View as RCView, StyleSheet } from 'react-native' +import { View } from 'tamagui' +import { BottomSheetBackgroundProps, useBottomSheetModal } from '@gorhom/bottom-sheet' +import { BlurView } from 'expo-blur' + +const BackgroundComponent = React.memo(({ style }: BottomSheetBackgroundProps) => { + return ( + + + + ) +}) + +const BackdropComponent = React.memo(() => { + const { dismiss } = useBottomSheetModal() + + const handleClose = () => dismiss() + + return ( + + + + ) +}) + +BackgroundComponent.displayName = 'BackgroundComponent' +BackdropComponent.displayName = 'BackdropComponent' + +const styles = StyleSheet.create({ + absolute: { + position: 'absolute', + top: 0, + left: 0, + bottom: 0, + right: 0, + width: '100%', + height: '100%', + }, +}) + +export { BackgroundComponent, BackdropComponent } diff --git a/apps/mobile/src/components/EthAddress/ETHAddress.stories.tsx b/apps/mobile/src/components/EthAddress/ETHAddress.stories.tsx new file mode 100644 index 0000000000..006cd3675b --- /dev/null +++ b/apps/mobile/src/components/EthAddress/ETHAddress.stories.tsx @@ -0,0 +1,25 @@ +import type { StoryObj, Meta } from '@storybook/react' +import { EthAddress } from '@/src/components/EthAddress' + +const meta: Meta = { + title: 'EthAddress', + component: EthAddress, + args: {}, +} + +export default meta + +type Story = StoryObj + +export const Default: Story = { + args: { + address: '0xA77DE01e157f9f57C7c4A326eeE9C4874D0598b6', + }, +} + +export const WithCopy: Story = { + args: { + address: '0xA77DE01e157f9f57C7c4A326eeE9C4874D0598b6', + copy: true, + }, +} diff --git a/apps/mobile/src/components/EthAddress/ETHAddress.tsx b/apps/mobile/src/components/EthAddress/ETHAddress.tsx new file mode 100644 index 0000000000..08cecb995e --- /dev/null +++ b/apps/mobile/src/components/EthAddress/ETHAddress.tsx @@ -0,0 +1,20 @@ +import { Address } from '@/src/types/address' +import { shortenAddress } from '@/src/utils/formatters' +import { Text, type TextProps, View } from 'tamagui' +import { CopyButton } from '@/src/components/CopyButton' + +type Props = { + address: Address + copy?: boolean + textProps?: Partial +} +export const EthAddress = ({ address, copy, textProps }: Props) => { + return ( + + + {shortenAddress(address)} + + {copy && } + + ) +} diff --git a/apps/mobile/src/components/EthAddress/index.ts b/apps/mobile/src/components/EthAddress/index.ts new file mode 100644 index 0000000000..1e81222b12 --- /dev/null +++ b/apps/mobile/src/components/EthAddress/index.ts @@ -0,0 +1,2 @@ +import { EthAddress } from './ETHAddress' +export { EthAddress } diff --git a/apps/mobile/src/components/Fiat/Fiat.test.tsx b/apps/mobile/src/components/Fiat/Fiat.test.tsx new file mode 100644 index 0000000000..f6c105a93d --- /dev/null +++ b/apps/mobile/src/components/Fiat/Fiat.test.tsx @@ -0,0 +1,12 @@ +import { render } from '@/src/tests/test-utils' +import { Fiat } from '.' + +describe('Fiat', () => { + it('should render the default markup', () => { + const { getByText } = render() + + expect(getByText('$')).toBeTruthy() + expect(getByText('215,531')).toBeTruthy() + expect(getByText('.65')).toBeTruthy() + }) +}) diff --git a/apps/mobile/src/components/Fiat/Fiat.tsx b/apps/mobile/src/components/Fiat/Fiat.tsx new file mode 100644 index 0000000000..ff233da340 --- /dev/null +++ b/apps/mobile/src/components/Fiat/Fiat.tsx @@ -0,0 +1,23 @@ +import React from 'react' +import { H1, H3, View } from 'tamagui' + +interface FiatProps { + baseAmount: string +} + +export const Fiat = ({ baseAmount }: FiatProps) => { + const amount = baseAmount.split('.') + + return ( + + $ + {amount[0]} + + {amount[1] && ( + + .{amount[1].slice(0, 2)} + + )} + + ) +} diff --git a/apps/mobile/src/components/Fiat/index.ts b/apps/mobile/src/components/Fiat/index.ts new file mode 100644 index 0000000000..f6acb30369 --- /dev/null +++ b/apps/mobile/src/components/Fiat/index.ts @@ -0,0 +1,2 @@ +import { Fiat } from './Fiat' +export { Fiat } diff --git a/apps/mobile/src/components/Identicon/Identicon.stories.tsx b/apps/mobile/src/components/Identicon/Identicon.stories.tsx new file mode 100644 index 0000000000..4c308a3f9f --- /dev/null +++ b/apps/mobile/src/components/Identicon/Identicon.stories.tsx @@ -0,0 +1,26 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { Identicon } from '@/src/components/Identicon' +import { type Address } from '@/src/types/address' + +const defaultProps = { + address: '0xA77DE01e157f9f57C7c4A326eeE9C4874D0598b6' as Address, + size: 56, +} +const meta: Meta = { + title: 'Identicon', + component: Identicon, + args: defaultProps, +} + +export default meta + +type Story = StoryObj + +export const Default: Story = {} + +export const Rounded: Story = { + args: { + ...defaultProps, + rounded: true, + }, +} diff --git a/apps/mobile/src/components/Identicon/Identicon.test.tsx b/apps/mobile/src/components/Identicon/Identicon.test.tsx new file mode 100644 index 0000000000..73aa12e910 --- /dev/null +++ b/apps/mobile/src/components/Identicon/Identicon.test.tsx @@ -0,0 +1,31 @@ +import React from 'react' +import { render } from '@testing-library/react-native' +import { Identicon } from './index' + +describe('Identicon', () => { + it('renders correctly with address', () => { + const { getByTestId } = render() + const image = getByTestId('identicon-image') + expect(image).toBeTruthy() + }) + + it('applies rounded style when rounded prop is true', () => { + const { getByTestId } = render() + const image = getByTestId('identicon-image') + expect(image.props.style.borderRadius).toBe('50%') + }) + + it('applies default size when size prop is not provided', () => { + const { getByTestId } = render() + const image = getByTestId('identicon-image') + expect(image.props.style.width).toBe(56) + expect(image.props.style.height).toBe(56) + }) + + it('applies custom size when size prop is provided', () => { + const { getByTestId } = render() + const image = getByTestId('identicon-image') + expect(image.props.style.width).toBe(100) + expect(image.props.style.height).toBe(100) + }) +}) diff --git a/apps/mobile/src/components/Identicon/Identicon.tsx b/apps/mobile/src/components/Identicon/Identicon.tsx new file mode 100644 index 0000000000..1d2cdd2494 --- /dev/null +++ b/apps/mobile/src/components/Identicon/Identicon.tsx @@ -0,0 +1,27 @@ +import { blo } from 'blo' +import { Image } from 'expo-image' +import { type Address } from '@/src/types/address' +import { View } from 'tamagui' + +type Props = { + address: Address + rounded?: boolean + size?: number +} + +const DEFAULT_SIZE = 56 +export const Identicon = ({ address, rounded, size }: Props) => { + const style = { + borderRadius: rounded ? '50%' : 0, + width: size ? size : DEFAULT_SIZE, + height: size ? size : DEFAULT_SIZE, + } + + const blockie = blo(address) + + return ( + + + + ) +} diff --git a/apps/mobile/src/components/Identicon/index.ts b/apps/mobile/src/components/Identicon/index.ts new file mode 100644 index 0000000000..b086ee4050 --- /dev/null +++ b/apps/mobile/src/components/Identicon/index.ts @@ -0,0 +1,2 @@ +import { Identicon } from './Identicon' +export { Identicon } diff --git a/apps/mobile/src/components/InnerShadow/InnerShadow.test.tsx b/apps/mobile/src/components/InnerShadow/InnerShadow.test.tsx new file mode 100644 index 0000000000..44a79f3fdd --- /dev/null +++ b/apps/mobile/src/components/InnerShadow/InnerShadow.test.tsx @@ -0,0 +1,10 @@ +import { render } from '@/src/tests/test-utils' +import { InnerShadow } from '.' + +describe('InnerShadow', () => { + it('should render the default markup', () => { + const container = render() + + expect(container).toMatchSnapshot() + }) +}) diff --git a/apps/mobile/src/components/InnerShadow/InnerShadow.tsx b/apps/mobile/src/components/InnerShadow/InnerShadow.tsx new file mode 100644 index 0000000000..4079d26630 --- /dev/null +++ b/apps/mobile/src/components/InnerShadow/InnerShadow.tsx @@ -0,0 +1,14 @@ +import { styled, View } from 'tamagui' + +export const InnerShadow = styled(View, { + position: 'absolute', + bottom: 0, + height: 10, + left: 0, + width: '100%', + backgroundColor: '$background', + shadowColor: '$background', + shadowOffset: { width: -2, height: -4 }, + shadowRadius: 4, + shadowOpacity: 1, +}) diff --git a/apps/mobile/src/components/InnerShadow/__snapshots__/InnerShadow.test.tsx.snap b/apps/mobile/src/components/InnerShadow/__snapshots__/InnerShadow.test.tsx.snap new file mode 100644 index 0000000000..bef7d551e8 --- /dev/null +++ b/apps/mobile/src/components/InnerShadow/__snapshots__/InnerShadow.test.tsx.snap @@ -0,0 +1,25 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`InnerShadow should render the default markup 1`] = ` + + + +`; diff --git a/apps/mobile/src/components/InnerShadow/index.ts b/apps/mobile/src/components/InnerShadow/index.ts new file mode 100644 index 0000000000..975b859a6f --- /dev/null +++ b/apps/mobile/src/components/InnerShadow/index.ts @@ -0,0 +1,2 @@ +import { InnerShadow } from './InnerShadow' +export { InnerShadow } diff --git a/apps/mobile/src/components/Logo/Logo.test.tsx b/apps/mobile/src/components/Logo/Logo.test.tsx new file mode 100644 index 0000000000..685288f03a --- /dev/null +++ b/apps/mobile/src/components/Logo/Logo.test.tsx @@ -0,0 +1,17 @@ +import { render } from '@/src/tests/test-utils' +import { Logo } from '.' + +describe('Logo', () => { + it('should render the default markup', () => { + const container = render() + + expect(container.getByLabelText('Mocked logo')).toBeTruthy() + }) + + it('should render the fallback markup', () => { + const container = render() + + expect(container.queryByTestId('logo-image')).not.toBeTruthy() + expect(container.queryByTestId('logo-fallback-icon')).toBeTruthy() + }) +}) diff --git a/apps/mobile/src/components/Logo/Logo.tsx b/apps/mobile/src/components/Logo/Logo.tsx new file mode 100644 index 0000000000..9409ac759d --- /dev/null +++ b/apps/mobile/src/components/Logo/Logo.tsx @@ -0,0 +1,33 @@ +import React from 'react' +import { Avatar, Theme, View } from 'tamagui' +import { IconProps, SafeFontIcon } from '../SafeFontIcon/SafeFontIcon' + +interface LogoProps { + logoUri?: string | null + accessibilityLabel?: string + fallbackIcon?: IconProps['name'] + imageBackground?: string +} + +export function Logo({ logoUri, accessibilityLabel, imageBackground = '$color', fallbackIcon = 'nft' }: LogoProps) { + return ( + + + {logoUri && ( + + )} + + + + + + + + + ) +} diff --git a/apps/mobile/src/components/Logo/index.ts b/apps/mobile/src/components/Logo/index.ts new file mode 100644 index 0000000000..5e50891375 --- /dev/null +++ b/apps/mobile/src/components/Logo/index.ts @@ -0,0 +1,2 @@ +import { Logo } from './Logo' +export { Logo } diff --git a/apps/mobile/src/components/SafeButton/SafeButton.stories.tsx b/apps/mobile/src/components/SafeButton/SafeButton.stories.tsx new file mode 100644 index 0000000000..fc79031e47 --- /dev/null +++ b/apps/mobile/src/components/SafeButton/SafeButton.stories.tsx @@ -0,0 +1,18 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { SafeButton } from '@/src/components/SafeButton' +import { action } from '@storybook/addon-actions' + +const meta: Meta = { + title: 'SafeButton', + component: SafeButton, + args: { + label: 'Get started', + onPress: action('onPress'), + }, +} + +export default meta + +type Story = StoryObj + +export const Default: Story = {} diff --git a/apps/mobile/src/components/SafeButton/SafeButton.tsx b/apps/mobile/src/components/SafeButton/SafeButton.tsx new file mode 100644 index 0000000000..503a36883a --- /dev/null +++ b/apps/mobile/src/components/SafeButton/SafeButton.tsx @@ -0,0 +1,27 @@ +import React from 'react' +import { TouchableOpacity } from 'react-native' +import { styled, Text, View } from 'tamagui' + +interface SafeButtonProps { + onPress: () => void + label: string +} + +export const StyledButtonWrapper = styled(View, { + height: 48, + alignItems: 'center', + justifyContent: 'center', + borderRadius: 8, +}) + +export function SafeButton({ onPress, label }: SafeButtonProps) { + return ( + + + + {label} + + + + ) +} diff --git a/apps/mobile/src/components/SafeButton/index.ts b/apps/mobile/src/components/SafeButton/index.ts new file mode 100644 index 0000000000..4e666e4309 --- /dev/null +++ b/apps/mobile/src/components/SafeButton/index.ts @@ -0,0 +1,2 @@ +import { SafeButton } from './SafeButton' +export { SafeButton } diff --git a/apps/mobile/src/components/SafeFontIcon/SafeFontIcon.stories.tsx b/apps/mobile/src/components/SafeFontIcon/SafeFontIcon.stories.tsx new file mode 100644 index 0000000000..67c82d53a2 --- /dev/null +++ b/apps/mobile/src/components/SafeFontIcon/SafeFontIcon.stories.tsx @@ -0,0 +1,35 @@ +import { View, Text, ScrollView } from 'tamagui' +import type { Meta, StoryObj } from '@storybook/react' +import { SafeFontIcon } from './SafeFontIcon' +import { iconNames } from '@/src/types/iconTypes' + +const meta: Meta = { + component: SafeFontIcon, + argTypes: { + color: { control: 'color' }, + }, +} + +export default meta + +type Story = StoryObj + +export const AllIcons: Story = { + render: (args) => { + return ( + + + {iconNames.map((iconName) => ( + + + {iconName} + + ))} + + + ) + }, + args: { + size: 50, + }, +} diff --git a/apps/mobile/src/components/SafeFontIcon/SafeFontIcon.tsx b/apps/mobile/src/components/SafeFontIcon/SafeFontIcon.tsx new file mode 100644 index 0000000000..903be123cf --- /dev/null +++ b/apps/mobile/src/components/SafeFontIcon/SafeFontIcon.tsx @@ -0,0 +1,32 @@ +import React from 'react' +import createIconSetFromIcoMoon from '@expo/vector-icons/createIconSetFromIcoMoon' +import { useFonts } from 'expo-font' +import { IconName } from '@/src/types/iconTypes' +import { getVariable, useTheme } from 'tamagui' + +export const SafeIcon = createIconSetFromIcoMoon( + require('@/assets/fonts/safe-icons/selection.json'), + 'SafeIcons', + 'safe-icons.ttf', +) + +export interface IconProps { + name: IconName + size?: number + color?: string + testID?: string +} + +export const SafeFontIcon = ({ name, size = 24, color, ...rest }: IconProps) => { + const theme = useTheme() + const iconColor = color ? theme[color]?.get() || getVariable(color, 'color') : theme.color?.get() + const [fontsLoaded] = useFonts({ + SafeIcons: require('@/assets/fonts/safe-icons/safe-icons.ttf'), + }) + + if (!fontsLoaded) { + return null + } + + return +} diff --git a/apps/mobile/src/components/SafeFontIcon/index.ts b/apps/mobile/src/components/SafeFontIcon/index.ts new file mode 100644 index 0000000000..b3472d49e2 --- /dev/null +++ b/apps/mobile/src/components/SafeFontIcon/index.ts @@ -0,0 +1,2 @@ +import { SafeFontIcon } from './SafeFontIcon' +export { SafeFontIcon } diff --git a/apps/mobile/src/components/SafeListItem/SafeListItem.test.tsx b/apps/mobile/src/components/SafeListItem/SafeListItem.test.tsx new file mode 100644 index 0000000000..53599f7c9d --- /dev/null +++ b/apps/mobile/src/components/SafeListItem/SafeListItem.test.tsx @@ -0,0 +1,76 @@ +import { render } from '@/src/tests/test-utils' +import { SafeListItem } from '.' +import { Text, View } from 'tamagui' +import { ellipsis } from '@/src/utils/formatters' + +describe('SafeListItem', () => { + it('should render the default markup', () => { + const { getByText } = render( + Left node} rightNode={Right node} />, + ) + + expect(getByText('A label')).toBeTruthy() + expect(getByText('Left node')).toBeTruthy() + expect(getByText('Right node')).toBeTruthy() + }) + + it('should render a list item, with type and icon', () => { + const { getByText, getByTestId } = render( + Left node} + rightNode={Right node} + />, + ) + + expect(getByText('A label')).toBeTruthy() + expect(getByText('some type')).toBeTruthy() + expect(getByTestId('safe-list-add-owner-icon')).toBeTruthy() + expect(getByText('Left node')).toBeTruthy() + expect(getByText('Right node')).toBeTruthy() + }) + + it('should render a list item with truncated label when the label text length is very long', () => { + const text = 'A very long label text to test if it it will truncate, in this case it should truncate.' + const { getByText, getByTestId } = render( + Left node} />, + ) + + expect(getByText(ellipsis(text, 30))).toBeTruthy() + expect(getByText('some type')).toBeTruthy() + expect(getByTestId('safe-list-add-owner-icon')).toBeTruthy() + expect(getByText('Left node')).toBeTruthy() + }) + + it('should render a list item with a custom label template', () => { + const container = render( + + Here is my label + + } + type="some type" + icon="add-owner" + leftNode={Left node} + />, + ) + + expect(container.getByText('Here is my label')).toBeTruthy() + expect(container.getByText('some type')).toBeTruthy() + expect(container.getByTestId('safe-list-add-owner-icon')).toBeTruthy() + expect(container.getByText('Left node')).toBeTruthy() + + expect(container).toMatchSnapshot() + }) +}) + +describe('SafeListItem.Header', () => { + it('should render the default markup', () => { + const { getByText } = render() + + expect(getByText('any title for your header here')).toBeTruthy() + }) +}) diff --git a/apps/mobile/src/components/SafeListItem/SafeListItem.tsx b/apps/mobile/src/components/SafeListItem/SafeListItem.tsx new file mode 100644 index 0000000000..9e71f252f8 --- /dev/null +++ b/apps/mobile/src/components/SafeListItem/SafeListItem.tsx @@ -0,0 +1,112 @@ +import React from 'react' +import { Container } from '../Container' +import { Text, Theme, ThemeName, View } from 'tamagui' +import { IconProps, SafeFontIcon } from '../SafeFontIcon/SafeFontIcon' +import { ellipsis } from '@/src/utils/formatters' +import { isMultisigExecutionInfo } from '@/src/utils/transaction-guards' +import { Transaction } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' +import { Badge } from '../Badge' + +interface SafeListItemProps { + type?: string + label: string | React.ReactNode + icon?: IconProps['name'] + children?: React.ReactNode + rightNode?: React.ReactNode + leftNode?: React.ReactNode + bordered?: boolean + transparent?: boolean + inQueue?: boolean + executionInfo?: Transaction['executionInfo'] + themeName?: ThemeName +} + +export function SafeListItem({ + type, + leftNode, + icon, + bordered, + label, + transparent, + rightNode, + children, + inQueue, + executionInfo, + themeName, +}: SafeListItemProps) { + return ( + + + {leftNode} + + + {type && ( + + {icon && } + + {type} + + + )} + + {typeof label === 'string' ? ( + + {ellipsis(label, rightNode ? 23 : 30)} + + ) : ( + label + )} + + + + {inQueue && executionInfo && isMultisigExecutionInfo(executionInfo) ? ( + + + + + + {executionInfo?.confirmationsSubmitted}/{executionInfo?.confirmationsRequired} + + + } + themeName={ + executionInfo?.confirmationsRequired === executionInfo?.confirmationsSubmitted + ? 'badge_success_variant1' + : 'badge_warning_variant1' + } + /> + + + + ) : ( + rightNode + )} + + {children} + + ) +} + +SafeListItem.Header = function Header({ title }: { title: string }) { + return ( + + + + {title} + + + + ) +} diff --git a/apps/mobile/src/components/SafeListItem/__snapshots__/SafeListItem.test.tsx.snap b/apps/mobile/src/components/SafeListItem/__snapshots__/SafeListItem.test.tsx.snap new file mode 100644 index 0000000000..f3b36019c3 --- /dev/null +++ b/apps/mobile/src/components/SafeListItem/__snapshots__/SafeListItem.test.tsx.snap @@ -0,0 +1,106 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`SafeListItem should render a list item with a custom label template 1`] = ` + + + + + Left node + + + + + + + + some type + + + + + Here is my label + + + + + + +`; diff --git a/apps/mobile/src/components/SafeListItem/index.tsx b/apps/mobile/src/components/SafeListItem/index.tsx new file mode 100644 index 0000000000..267d451f03 --- /dev/null +++ b/apps/mobile/src/components/SafeListItem/index.tsx @@ -0,0 +1,2 @@ +import { SafeListItem } from './SafeListItem' +export { SafeListItem } diff --git a/apps/mobile/src/components/SafeTab/SafeTab.tsx b/apps/mobile/src/components/SafeTab/SafeTab.tsx new file mode 100644 index 0000000000..60024a8136 --- /dev/null +++ b/apps/mobile/src/components/SafeTab/SafeTab.tsx @@ -0,0 +1,37 @@ +import React, { ReactElement, useState } from 'react' +import { TabBarProps, Tabs } from 'react-native-collapsible-tab-view' +import { safeTabItem } from './types' +import { SafeTabBar } from './SafeTabBar' + +interface SafeTabProps { + renderHeader?: (props: TabBarProps) => ReactElement + headerHeight?: number + items: safeTabItem[] +} + +export function SafeTab({ renderHeader, headerHeight, items }: SafeTabProps) { + const [activeTab, setActiveTab] = useState(items[0].label) + + return ( + } + onTabChange={(event) => setActiveTab(event.tabName)} + initialTabName={items[0].label} + > + {items.map(({ label, Component }, index) => ( + + + + ))} + + ) +} + +const headerContainerStyle = { backgroundColor: '$background' } + +SafeTab.FlashList = Tabs.FlashList +SafeTab.FlatList = Tabs.FlatList +SafeTab.ScrollView = Tabs.ScrollView diff --git a/apps/mobile/src/components/SafeTab/SafeTabBar.tsx b/apps/mobile/src/components/SafeTab/SafeTabBar.tsx new file mode 100644 index 0000000000..7e1cea7887 --- /dev/null +++ b/apps/mobile/src/components/SafeTab/SafeTabBar.tsx @@ -0,0 +1,46 @@ +import React from 'react' +import { TabBarProps } from 'react-native-collapsible-tab-view' +import { TabName } from 'react-native-collapsible-tab-view/lib/typescript/src/types' +import { TouchableOpacity } from 'react-native-gesture-handler' +import { View, Text, useTheme } from 'tamagui' + +interface SafeTabBarProps { + setActiveTab: (name: string) => void + activeTab: string +} + +export const SafeTabBar = ({ + tabNames, + onTabPress, + activeTab, + setActiveTab, +}: TabBarProps & SafeTabBarProps) => { + const theme = useTheme() + + const activeButtonStyle = { + paddingBottom: 8, + borderBottomColor: theme.color?.get(), + borderBottomWidth: 2, + } + + const handleTabPressed = (name: string) => () => { + onTabPress(name) + setActiveTab(name) + } + + const isActiveTab = (name: string) => { + return activeTab === name + } + + return ( + + {tabNames.map((name) => ( + + + {name} + + + ))} + + ) +} diff --git a/apps/mobile/src/components/SafeTab/index.tsx b/apps/mobile/src/components/SafeTab/index.tsx new file mode 100644 index 0000000000..a4a4066904 --- /dev/null +++ b/apps/mobile/src/components/SafeTab/index.tsx @@ -0,0 +1,2 @@ +import { SafeTab } from './SafeTab' +export { SafeTab } diff --git a/apps/mobile/src/components/SafeTab/types.ts b/apps/mobile/src/components/SafeTab/types.ts new file mode 100644 index 0000000000..8177417942 --- /dev/null +++ b/apps/mobile/src/components/SafeTab/types.ts @@ -0,0 +1,4 @@ +export interface safeTabItem { + label: string + Component: React.FC +} diff --git a/apps/mobile/src/components/StatusBanners/PendingTransactions/PendingTransactions.stories.tsx b/apps/mobile/src/components/StatusBanners/PendingTransactions/PendingTransactions.stories.tsx new file mode 100644 index 0000000000..6a7b6ba0b3 --- /dev/null +++ b/apps/mobile/src/components/StatusBanners/PendingTransactions/PendingTransactions.stories.tsx @@ -0,0 +1,23 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { PendingTransactions } from '@/src/components/StatusBanners/PendingTransactions' +import { action } from '@storybook/addon-actions' + +const meta: Meta = { + title: 'StatusBanners/PendingTransactions', + component: PendingTransactions, + argTypes: { + number: { control: 'number' }, + }, + parameters: { actions: { argTypesRegex: '^on.*' } }, + args: { + fullWidth: false, + number: '5', + onPress: action('on-press'), + }, +} + +export default meta + +type Story = StoryObj + +export const Default: Story = {} diff --git a/apps/mobile/src/components/StatusBanners/PendingTransactions/PendingTransactions.test.tsx b/apps/mobile/src/components/StatusBanners/PendingTransactions/PendingTransactions.test.tsx new file mode 100644 index 0000000000..ba945664d5 --- /dev/null +++ b/apps/mobile/src/components/StatusBanners/PendingTransactions/PendingTransactions.test.tsx @@ -0,0 +1,27 @@ +import { render, userEvent } from '@/src/tests/test-utils' +import { PendingTransactions } from '.' + +describe('PendingTransactions', () => { + beforeEach(() => { + jest.clearAllMocks() + }) + + it('should render the default markup', async () => { + const user = userEvent.setup() + const mockedFn = jest.fn() + + const { getByText } = render() + + expect(getByText('2')).toBeTruthy() + + await user.press(getByText('Pending Transactions')) + + expect(mockedFn).toHaveBeenCalled() + }) + + it('should render the pending transactions in fullWidth layout', () => { + const container = render() + + expect(container).toMatchSnapshot() + }) +}) diff --git a/apps/mobile/src/components/StatusBanners/PendingTransactions/PendingTransactions.tsx b/apps/mobile/src/components/StatusBanners/PendingTransactions/PendingTransactions.tsx new file mode 100644 index 0000000000..bfcd6b5669 --- /dev/null +++ b/apps/mobile/src/components/StatusBanners/PendingTransactions/PendingTransactions.tsx @@ -0,0 +1,31 @@ +import React from 'react' +import { Spinner } from 'tamagui' + +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import { Badge } from '@/src/components/Badge' + +import { Alert } from '../../Alert' + +interface Props { + number: string + fullWidth?: boolean + onPress: () => void + isLoading?: boolean +} + +export const PendingTransactions = ({ number, isLoading, fullWidth, onPress }: Props) => { + const startIcon = isLoading ? : + const endIcon = + + return ( + + ) +} diff --git a/apps/mobile/src/components/StatusBanners/PendingTransactions/__snapshots__/PendingTransactions.test.tsx.snap b/apps/mobile/src/components/StatusBanners/PendingTransactions/__snapshots__/PendingTransactions.test.tsx.snap new file mode 100644 index 0000000000..8fbe02a1f1 --- /dev/null +++ b/apps/mobile/src/components/StatusBanners/PendingTransactions/__snapshots__/PendingTransactions.test.tsx.snap @@ -0,0 +1,150 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`PendingTransactions should render the pending transactions in fullWidth layout 1`] = ` + + + + + + + + 2 + + + + + Pending Transactions + + + + + + + + + + +`; diff --git a/apps/mobile/src/components/StatusBanners/PendingTransactions/index.tsx b/apps/mobile/src/components/StatusBanners/PendingTransactions/index.tsx new file mode 100644 index 0000000000..2ec0f893f0 --- /dev/null +++ b/apps/mobile/src/components/StatusBanners/PendingTransactions/index.tsx @@ -0,0 +1,2 @@ +import { PendingTransactions } from './PendingTransactions' +export { PendingTransactions } diff --git a/apps/mobile/src/components/Title/LargeHeaderTitle.tsx b/apps/mobile/src/components/Title/LargeHeaderTitle.tsx new file mode 100644 index 0000000000..3c2e00b07f --- /dev/null +++ b/apps/mobile/src/components/Title/LargeHeaderTitle.tsx @@ -0,0 +1,6 @@ +import { SizableText, styled } from 'tamagui' + +export const LargeHeaderTitle = styled(SizableText, { + size: '$9', + fontWeight: 600, +}) diff --git a/apps/mobile/src/components/Title/NavBarTitle.tsx b/apps/mobile/src/components/Title/NavBarTitle.tsx new file mode 100644 index 0000000000..20665e68dc --- /dev/null +++ b/apps/mobile/src/components/Title/NavBarTitle.tsx @@ -0,0 +1,6 @@ +import { SizableText, styled } from 'tamagui' + +export const NavBarTitle = styled(SizableText, { + size: '$5', + fontWeight: 600, +}) diff --git a/apps/mobile/src/components/Title/Title.test.tsx b/apps/mobile/src/components/Title/Title.test.tsx new file mode 100644 index 0000000000..a8060c051f --- /dev/null +++ b/apps/mobile/src/components/Title/Title.test.tsx @@ -0,0 +1,19 @@ +import { render } from '@/src/tests/test-utils' +import { LargeHeaderTitle } from './LargeHeaderTitle' +import { NavBarTitle } from './NavBarTitle' + +describe('LargeHeaderTitle', () => { + it('should render the default markup', () => { + const { getByText } = render(Here is my large header) + + expect(getByText('Here is my large header')).toBeTruthy() + }) +}) + +describe('NavBarTitle', () => { + it('should render the default markup', () => { + const { getByText } = render(Here is my NabBarTitle) + + expect(getByText('Here is my NabBarTitle')).toBeTruthy() + }) +}) diff --git a/apps/mobile/src/components/Title/index.ts b/apps/mobile/src/components/Title/index.ts new file mode 100644 index 0000000000..266a44a765 --- /dev/null +++ b/apps/mobile/src/components/Title/index.ts @@ -0,0 +1,4 @@ +import { LargeHeaderTitle } from './LargeHeaderTitle' +import { NavBarTitle } from './NavBarTitle' + +export { LargeHeaderTitle, NavBarTitle } diff --git a/apps/mobile/src/components/TxInfo/TxInfo.tsx b/apps/mobile/src/components/TxInfo/TxInfo.tsx new file mode 100644 index 0000000000..8921e3865d --- /dev/null +++ b/apps/mobile/src/components/TxInfo/TxInfo.tsx @@ -0,0 +1,101 @@ +import React from 'react' +import { TransactionInfoType } from '@safe-global/store/gateway/types' +import { type Transaction } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' +import { useTransactionType } from '@/src/hooks/useTransactionType' +import { TxTokenCard } from '@/src/components/transactions-list/Card/TxTokenCard' +import { TxSettingsCard } from '@/src/components/transactions-list/Card/TxSettingsCard' +import { + isCancellationTxInfo, + isCreationTxInfo, + isCustomTxInfo, + isMultiSendTxInfo, + isSettingsChangeTxInfo, + isSwapOrderTxInfo, + isTransferTxInfo, +} from '@/src/utils/transaction-guards' +import { TxBatchCard } from '@/src/components/transactions-list/Card/TxBatchCard' +import { TxSafeAppCard } from '@/src/components/transactions-list/Card/TxSafeAppCard' +import { TxRejectionCard } from '@/src/components/transactions-list/Card/TxRejectionCard' +import { TxContractInteractionCard } from '@/src/components/transactions-list/Card/TxContractInteractionCard' +import { TxSwapCard } from '@/src/components/transactions-list/Card/TxSwapCard' +import { TxCreationCard } from '@/src/components/transactions-list/Card/TxCreationCard' + +interface TxInfoProps { + tx: Transaction + bordered?: boolean + inQueue?: boolean +} + +function TxInfoComponent({ tx, bordered, inQueue }: TxInfoProps) { + const txType = useTransactionType(tx) + + const txInfo = tx.txInfo + if (isTransferTxInfo(txInfo)) { + return ( + + ) + } + + if (isSettingsChangeTxInfo(txInfo)) { + return + } + + if (isMultiSendTxInfo(txInfo) && tx.txInfo.type === TransactionInfoType.CUSTOM) { + return ( + + ) + } + + if (isMultiSendTxInfo(txInfo) && tx.safeAppInfo) { + return ( + + ) + } + + if (isCreationTxInfo(txInfo)) { + return + } + + if (isCancellationTxInfo(txInfo)) { + return + } + + if (isMultiSendTxInfo(txInfo) || isCustomTxInfo(txInfo)) { + return ( + + ) + } + + if (isSwapOrderTxInfo(txInfo)) { + return + } + + return <>> +} + +export const TxInfo = React.memo(TxInfoComponent, (prevProps, nextProps) => { + return prevProps.tx.txHash === nextProps.tx.txHash +}) diff --git a/apps/mobile/src/components/TxInfo/index.tsx b/apps/mobile/src/components/TxInfo/index.tsx new file mode 100644 index 0000000000..d683ece413 --- /dev/null +++ b/apps/mobile/src/components/TxInfo/index.tsx @@ -0,0 +1,3 @@ +import { TxInfo } from './TxInfo' + +export { TxInfo } diff --git a/apps/mobile/src/components/navigation/TabBarIcon.test.tsx b/apps/mobile/src/components/navigation/TabBarIcon.test.tsx new file mode 100644 index 0000000000..2f8245e88e --- /dev/null +++ b/apps/mobile/src/components/navigation/TabBarIcon.test.tsx @@ -0,0 +1,10 @@ +import { render } from '@/src/tests/test-utils' +import { TabBarIcon } from './TabBarIcon' + +describe('TabBarIcon', () => { + it('should render the default markup', () => { + const { getByTestId } = render() + + expect(getByTestId('tab-bar-add-owner-icon')).toBeTruthy() + }) +}) diff --git a/apps/mobile/src/components/navigation/TabBarIcon.tsx b/apps/mobile/src/components/navigation/TabBarIcon.tsx new file mode 100644 index 0000000000..61c74d38b0 --- /dev/null +++ b/apps/mobile/src/components/navigation/TabBarIcon.tsx @@ -0,0 +1,5 @@ +import { SafeFontIcon, IconProps } from '@/src/components/SafeFontIcon/SafeFontIcon' + +export function TabBarIcon({ name, ...rest }: IconProps) { + return +} diff --git a/apps/mobile/src/components/navigation/index.ts b/apps/mobile/src/components/navigation/index.ts new file mode 100644 index 0000000000..98a0c1e782 --- /dev/null +++ b/apps/mobile/src/components/navigation/index.ts @@ -0,0 +1,2 @@ +import { TabBarIcon } from './TabBarIcon' +export { TabBarIcon } diff --git a/apps/mobile/src/components/transactions-list/Card/AssetsCard/AssetsCard.test.tsx b/apps/mobile/src/components/transactions-list/Card/AssetsCard/AssetsCard.test.tsx new file mode 100644 index 0000000000..d6e5b5ef37 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/AssetsCard/AssetsCard.test.tsx @@ -0,0 +1,18 @@ +import { render } from '@/src/tests/test-utils' +import { AssetsCard } from '.' + +describe('AssetsCard', () => { + it('should render the default markup', () => { + const { getByText } = render() + + expect(getByText('Ether')).toBeTruthy() + expect(getByText('some info about the token')).toBeTruthy() + }) + + it('should render the price of the asset', () => { + const { getByText } = render() + + expect(getByText('Ether')).toBeTruthy() + expect(getByText('some info about the token')).toBeTruthy() + }) +}) diff --git a/apps/mobile/src/components/transactions-list/Card/AssetsCard/AssetsCard.tsx b/apps/mobile/src/components/transactions-list/Card/AssetsCard/AssetsCard.tsx new file mode 100644 index 0000000000..399ad2e94f --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/AssetsCard/AssetsCard.tsx @@ -0,0 +1,49 @@ +import React from 'react' +import { Text, View } from 'tamagui' +import { SafeListItem } from '@/src/components/SafeListItem' +import { Logo } from '@/src/components/Logo' +import { ellipsis } from '@/src/utils/formatters' + +interface AssetsCardProps { + name: string + description: string + logoUri?: string | null + rightNode?: string | React.ReactNode + accessibilityLabel?: string + imageBackground?: string +} + +export function AssetsCard({ + name, + description, + imageBackground, + logoUri, + accessibilityLabel, + rightNode, +}: AssetsCardProps) { + return ( + + + {name} + + + {description} + + + } + transparent + leftNode={} + rightNode={ + typeof rightNode === 'string' ? ( + + {ellipsis(rightNode, 10)} + + ) : ( + rightNode + ) + } + /> + ) +} diff --git a/apps/mobile/src/components/transactions-list/Card/AssetsCard/index.tsx b/apps/mobile/src/components/transactions-list/Card/AssetsCard/index.tsx new file mode 100644 index 0000000000..737269b43b --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/AssetsCard/index.tsx @@ -0,0 +1,2 @@ +import { AssetsCard } from './AssetsCard' +export { AssetsCard } diff --git a/apps/mobile/src/components/transactions-list/Card/TxBatchCard/TxBatchCard.stories.tsx b/apps/mobile/src/components/transactions-list/Card/TxBatchCard/TxBatchCard.stories.tsx new file mode 100644 index 0000000000..52e6c4ad65 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxBatchCard/TxBatchCard.stories.tsx @@ -0,0 +1,35 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { TxBatchCard } from '@/src/components/transactions-list/Card/TxBatchCard' +import { mockTransferWithInfo } from '@/src/tests/mocks' +import { MultiSend, TransactionInfoType } from '@safe-global/store/gateway/types' + +const meta: Meta = { + title: 'TransactionsList/TxBatchCard', + component: TxBatchCard, + argTypes: { + bordered: { + description: 'Define if you want a border on the transaction', + control: { + type: 'boolean', + }, + }, + }, + args: { + bordered: false, + txInfo: mockTransferWithInfo({ + type: TransactionInfoType.CUSTOM, + actionCount: 2, + to: { + value: '', + logoUri: 'https://safe-transaction-assets.safe.global/safe_apps/408a90a2-170c-485a-93bb-daa843298f11/icon.png', + name: 'Gnosis Bridge', + }, + }) as MultiSend, + }, +} + +export default meta + +type Story = StoryObj + +export const Default: Story = {} diff --git a/apps/mobile/src/components/transactions-list/Card/TxBatchCard/TxBatchCard.test.tsx b/apps/mobile/src/components/transactions-list/Card/TxBatchCard/TxBatchCard.test.tsx new file mode 100644 index 0000000000..6031fc4d82 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxBatchCard/TxBatchCard.test.tsx @@ -0,0 +1,28 @@ +import { render } from '@/src/tests/test-utils' +import { TxBatchCard } from '.' +import { mockTransferWithInfo } from '@/src/tests/mocks' +import { MultiSend, TransactionInfoType } from '@safe-global/store/gateway/types' + +describe('TxBatchCard', () => { + it('should render the default markup', () => { + const container = render( + , + ) + + expect(container.getByText('Batch')).toBeTruthy() + expect(container.getByText('2 actions')).toBeTruthy() + expect(container).toMatchSnapshot() + }) +}) diff --git a/apps/mobile/src/components/transactions-list/Card/TxBatchCard/TxBatchCard.tsx b/apps/mobile/src/components/transactions-list/Card/TxBatchCard/TxBatchCard.tsx new file mode 100644 index 0000000000..c82326cd32 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxBatchCard/TxBatchCard.tsx @@ -0,0 +1,40 @@ +import React from 'react' +import { Avatar, View } from 'tamagui' +import { SafeListItem } from '@/src/components/SafeListItem' +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import type { MultiSend } from '@safe-global/store/gateway/types' +import type { Transaction } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +interface TxBatchCardProps { + txInfo: MultiSend + bordered?: boolean + label?: string + inQueue?: boolean + executionInfo?: Transaction['executionInfo'] +} + +export function TxBatchCard({ txInfo, bordered, executionInfo, inQueue, label }: TxBatchCardProps) { + const logoUri = txInfo.to.logoUri + + return ( + + {logoUri && } + + + + + + + + } + /> + ) +} diff --git a/apps/mobile/src/components/transactions-list/Card/TxBatchCard/__snapshots__/TxBatchCard.test.tsx.snap b/apps/mobile/src/components/transactions-list/Card/TxBatchCard/__snapshots__/TxBatchCard.test.tsx.snap new file mode 100644 index 0000000000..9d5d6ee8b3 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxBatchCard/__snapshots__/TxBatchCard.test.tsx.snap @@ -0,0 +1,205 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`TxBatchCard should render the default markup 1`] = ` + + + + + + + + + + + + + + + + + + + + + + Batch + + + + 2 actions + + + + + +`; diff --git a/apps/mobile/src/components/transactions-list/Card/TxBatchCard/index.tsx b/apps/mobile/src/components/transactions-list/Card/TxBatchCard/index.tsx new file mode 100644 index 0000000000..17d120587a --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxBatchCard/index.tsx @@ -0,0 +1,2 @@ +import { TxBatchCard } from './TxBatchCard' +export { TxBatchCard } diff --git a/apps/mobile/src/components/transactions-list/Card/TxConflictingCard/TxConflictingCard.tsx b/apps/mobile/src/components/transactions-list/Card/TxConflictingCard/TxConflictingCard.tsx new file mode 100644 index 0000000000..a0ca3f53d9 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxConflictingCard/TxConflictingCard.tsx @@ -0,0 +1,32 @@ +import React from 'react' +import { Theme, View } from 'tamagui' +import { TxInfo } from '@/src/components/TxInfo' +import { Alert } from '@/src/components/Alert' +import { TransactionQueuedItem } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +interface TxConflictingCard { + transactions: TransactionQueuedItem[] + inQueue?: boolean +} + +function TxConflictingComponent({ transactions, inQueue }: TxConflictingCard) { + return ( + <> + + + + + + {transactions.map((item, index) => ( + + + + ))} + + > + ) +} + +export const TxConflictingCard = React.memo(TxConflictingComponent, (prevProps, nextProps) => { + return prevProps.transactions.length === nextProps.transactions.length +}) diff --git a/apps/mobile/src/components/transactions-list/Card/TxConflictingCard/index.tsx b/apps/mobile/src/components/transactions-list/Card/TxConflictingCard/index.tsx new file mode 100644 index 0000000000..5e744b182b --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxConflictingCard/index.tsx @@ -0,0 +1,2 @@ +import { TxConflictingCard } from './TxConflictingCard' +export { TxConflictingCard } diff --git a/apps/mobile/src/components/transactions-list/Card/TxContractInteractionCard/TxContractInteractionCard.stories.tsx b/apps/mobile/src/components/transactions-list/Card/TxContractInteractionCard/TxContractInteractionCard.stories.tsx new file mode 100644 index 0000000000..82acbdd373 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxContractInteractionCard/TxContractInteractionCard.stories.tsx @@ -0,0 +1,35 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { TxContractInteractionCard } from '@/src/components/transactions-list/Card/TxContractInteractionCard' +import { mockTransferWithInfo } from '@/src/tests/mocks' +import { CustomTransactionInfo } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' +import { TransactionInfoType } from '@safe-global/store/gateway/types' + +const meta: Meta = { + title: 'TransactionsList/TxContractInteractionCard', + component: TxContractInteractionCard, + argTypes: { + bordered: { + description: 'Define if you want a border on the transaction', + control: { + type: 'boolean', + }, + }, + }, + args: { + bordered: false, + txInfo: mockTransferWithInfo({ + type: TransactionInfoType.CUSTOM, + to: { + value: '0x0000', + name: 'CryptoNevinhosos', + logoUri: '', + }, + }) as CustomTransactionInfo, + }, +} + +export default meta + +type Story = StoryObj + +export const Default: Story = {} diff --git a/apps/mobile/src/components/transactions-list/Card/TxContractInteractionCard/TxContractInteractionCard.test.tsx b/apps/mobile/src/components/transactions-list/Card/TxContractInteractionCard/TxContractInteractionCard.test.tsx new file mode 100644 index 0000000000..99725f1fd7 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxContractInteractionCard/TxContractInteractionCard.test.tsx @@ -0,0 +1,44 @@ +import { render } from '@/src/tests/test-utils' +import { TxContractInteractionCard } from '.' +import { mockTransferWithInfo } from '@/src/tests/mocks' +import { TransactionInfoType } from '@safe-global/store/gateway/types' +import { CustomTransactionInfo } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +describe('TxContractInteractionCard', () => { + it('should render the default markup', () => { + const { getByText, getByLabelText } = render( + , + ) + + expect(getByText('CryptoNevinhosos')).toBeTruthy() + expect(getByLabelText('CryptoNevinhosos')).toBeTruthy() + }) + + it('should render a fallback in the label and icon if the contract is missing name and logoUri', () => { + const { getByText } = render( + , + ) + + expect(getByText('Contract interaction')).toBeTruthy() + }) +}) diff --git a/apps/mobile/src/components/transactions-list/Card/TxContractInteractionCard/TxContractInteractionCard.tsx b/apps/mobile/src/components/transactions-list/Card/TxContractInteractionCard/TxContractInteractionCard.tsx new file mode 100644 index 0000000000..75c08f7dd7 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxContractInteractionCard/TxContractInteractionCard.tsx @@ -0,0 +1,47 @@ +import React from 'react' +import { Avatar, Text, Theme, View } from 'tamagui' +import { SafeListItem } from '@/src/components/SafeListItem' +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import { MultiSend } from '@safe-global/store/gateway/types' +import { Transaction, CustomTransactionInfo } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +interface TxContractInteractionCardProps { + bordered?: boolean + txInfo: CustomTransactionInfo | MultiSend + inQueue?: boolean + executionInfo?: Transaction['executionInfo'] +} + +export function TxContractInteractionCard({ + bordered, + executionInfo, + txInfo, + inQueue, +}: TxContractInteractionCardProps) { + const logoUri = txInfo.to.logoUri + const label = txInfo.to.name || 'Contract interaction' + return ( + + + {logoUri && } + + + + + + + + + } + rightNode={{txInfo.methodName}} + /> + ) +} diff --git a/apps/mobile/src/components/transactions-list/Card/TxContractInteractionCard/index.tsx b/apps/mobile/src/components/transactions-list/Card/TxContractInteractionCard/index.tsx new file mode 100644 index 0000000000..792582ea8e --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxContractInteractionCard/index.tsx @@ -0,0 +1,2 @@ +import { TxContractInteractionCard } from './TxContractInteractionCard' +export { TxContractInteractionCard } diff --git a/apps/mobile/src/components/transactions-list/Card/TxCreationCard/TxCreationCard.stories.tsx b/apps/mobile/src/components/transactions-list/Card/TxCreationCard/TxCreationCard.stories.tsx new file mode 100644 index 0000000000..1f8ecf6dde --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxCreationCard/TxCreationCard.stories.tsx @@ -0,0 +1,35 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { TxCreationCard } from '@/src/components/transactions-list/Card/TxCreationCard' +import { mockTransferWithInfo } from '@/src/tests/mocks' +import { type CreationTransactionInfo } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' +import { TransactionInfoType } from '@safe-global/store/gateway/types' + +const meta: Meta = { + title: 'TransactionsList/TxCreationCard', + component: TxCreationCard, + argTypes: { + bordered: { + description: 'Define if you want a border on the transaction', + control: { + type: 'boolean', + }, + }, + }, + args: { + bordered: false, + txInfo: mockTransferWithInfo({ + type: TransactionInfoType.CREATION, + creator: { + name: 'Nevinha', + logoUri: '', + value: '0xas123da123sdasdsd001230sdf1sdf12sd12f', + }, + }) as CreationTransactionInfo, + }, +} + +export default meta + +type Story = StoryObj + +export const Default: Story = {} diff --git a/apps/mobile/src/components/transactions-list/Card/TxCreationCard/TxCreationCard.test.tsx b/apps/mobile/src/components/transactions-list/Card/TxCreationCard/TxCreationCard.test.tsx new file mode 100644 index 0000000000..7d20459925 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxCreationCard/TxCreationCard.test.tsx @@ -0,0 +1,27 @@ +import { render } from '@/src/tests/test-utils' +import { TxCreationCard } from '.' +import { mockTransferWithInfo } from '@/src/tests/mocks' +import { TransactionInfoType } from '@safe-global/store/gateway/types' +import { CreationTransactionInfo } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +describe('TxCreationCard', () => { + it('should render the default markup', () => { + const { getByText } = render( + , + ) + + expect(getByText('Safe Account created')).toBeTruthy() + expect(getByText('Created by: 0xas12...d12f')).toBeTruthy() + }) +}) diff --git a/apps/mobile/src/components/transactions-list/Card/TxCreationCard/TxCreationCard.tsx b/apps/mobile/src/components/transactions-list/Card/TxCreationCard/TxCreationCard.tsx new file mode 100644 index 0000000000..4a052a937b --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxCreationCard/TxCreationCard.tsx @@ -0,0 +1,32 @@ +import React from 'react' +import { Theme, View } from 'tamagui' +import { SafeListItem } from '@/src/components/SafeListItem' +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import { shortenAddress } from '@/src/utils/formatters' +import type { Transaction, CreationTransactionInfo } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +interface TxCreationCardProps { + txInfo: CreationTransactionInfo + bordered?: boolean + inQueue?: boolean + executionInfo?: Transaction['executionInfo'] +} + +export function TxCreationCard({ txInfo, executionInfo, bordered, inQueue }: TxCreationCardProps) { + return ( + + + + + + } + /> + ) +} diff --git a/apps/mobile/src/components/transactions-list/Card/TxCreationCard/index.ts b/apps/mobile/src/components/transactions-list/Card/TxCreationCard/index.ts new file mode 100644 index 0000000000..5203e4a311 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxCreationCard/index.ts @@ -0,0 +1,2 @@ +import { TxCreationCard } from './TxCreationCard' +export { TxCreationCard } diff --git a/apps/mobile/src/components/transactions-list/Card/TxGroupedCard/TxGroupedCard.stories.tsx b/apps/mobile/src/components/transactions-list/Card/TxGroupedCard/TxGroupedCard.stories.tsx new file mode 100644 index 0000000000..409cbf6beb --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxGroupedCard/TxGroupedCard.stories.tsx @@ -0,0 +1,41 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { mockERC20Transfer, mockListItemByType, mockNFTTransfer } from '@/src/tests/mocks' +import { TransactionItem } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' +import { TransactionListItemType, TransactionStatus } from '@safe-global/store/gateway/types' +import { TxGroupedCard } from '.' + +const meta: Meta = { + title: 'TransactionsList/TxGroupedCard', + component: TxGroupedCard, + argTypes: {}, + args: { + transactions: [ + { + ...mockListItemByType(TransactionListItemType.TRANSACTION), + transaction: { + id: 'id', + timestamp: 123123, + txStatus: TransactionStatus.SUCCESS, + txInfo: mockERC20Transfer, + txHash: '0x0000000', + }, + } as TransactionItem, + { + ...mockListItemByType(TransactionListItemType.TRANSACTION), + transaction: { + id: 'id', + timestamp: 123123, + txStatus: TransactionStatus.SUCCESS, + txInfo: mockNFTTransfer, + txHash: '0x0000000', + }, + } as TransactionItem, + ], + }, +} + +export default meta + +type Story = StoryObj + +export const Default: Story = {} diff --git a/apps/mobile/src/components/transactions-list/Card/TxGroupedCard/TxGroupedCard.test.tsx b/apps/mobile/src/components/transactions-list/Card/TxGroupedCard/TxGroupedCard.test.tsx new file mode 100644 index 0000000000..2db0a34663 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxGroupedCard/TxGroupedCard.test.tsx @@ -0,0 +1,56 @@ +import { render } from '@/src/tests/test-utils' +import { TxGroupedCard } from '.' +import { mockERC20Transfer, mockListItemByType, mockNFTTransfer, mockSwapTransfer } from '@/src/tests/mocks' +import { TransactionListItemType, TransactionStatus } from '@safe-global/store/gateway/types' +import { TransactionItem } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +describe('TxGroupedCard', () => { + it('should render the default markup', () => { + const { getAllByTestId } = render( + , + ) + + expect(getAllByTestId('tx-group-info')).toHaveLength(2) + }) + + it('should render a gropuped swap transaction', () => { + const container = render( + , + ) + + expect(container.getByText('Swap order settlement')).toBeTruthy() + }) +}) diff --git a/apps/mobile/src/components/transactions-list/Card/TxGroupedCard/TxGroupedCard.tsx b/apps/mobile/src/components/transactions-list/Card/TxGroupedCard/TxGroupedCard.tsx new file mode 100644 index 0000000000..0cebc6e7c5 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxGroupedCard/TxGroupedCard.tsx @@ -0,0 +1,58 @@ +import React from 'react' +import { Theme, View } from 'tamagui' +import { SafeListItem } from '@/src/components/SafeListItem' +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import { TxInfo } from '@/src/components/TxInfo' +import { getOrderClass } from '@/src/hooks/useTransactionType' +import { isSwapTransferOrderTxInfo } from '@/src/utils/transaction-guards' +import { OrderTransactionInfo } from '@safe-global/store/gateway/types' +import { TransactionQueuedItem, TransactionItem } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +interface TxGroupedCard { + transactions: (TransactionItem | TransactionQueuedItem)[] + inQueue?: boolean +} + +const orderClassTitles: Record = { + limit: 'Limit order settlement', + twap: 'TWAP order settlement', + liquidity: 'Liquidity order settlement', + market: 'Swap order settlement', +} + +const getSettlementOrderTitle = (order: OrderTransactionInfo): string => { + const orderClass = getOrderClass(order) + return orderClassTitles[orderClass] || orderClassTitles['market'] +} + +function TxGroupedCardComponent({ transactions, inQueue }: TxGroupedCard) { + const firstTxInfo = transactions[0].transaction.txInfo + const isSwapTransfer = isSwapTransferOrderTxInfo(firstTxInfo) + const label = isSwapTransfer ? getSettlementOrderTitle(firstTxInfo) : 'Bulk transactions' + + return ( + + + + + + } + rightNode={} + > + + {transactions.map((item, index) => ( + + + + ))} + + + ) +} + +export const TxGroupedCard = React.memo(TxGroupedCardComponent, (prevProps, nextProps) => { + return prevProps.transactions.length === nextProps.transactions.length +}) diff --git a/apps/mobile/src/components/transactions-list/Card/TxGroupedCard/index.tsx b/apps/mobile/src/components/transactions-list/Card/TxGroupedCard/index.tsx new file mode 100644 index 0000000000..94f626f089 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxGroupedCard/index.tsx @@ -0,0 +1,2 @@ +import { TxGroupedCard } from './TxGroupedCard' +export { TxGroupedCard } diff --git a/apps/mobile/src/components/transactions-list/Card/TxRejectionCard/TxRejectionCard.stories.tsx b/apps/mobile/src/components/transactions-list/Card/TxRejectionCard/TxRejectionCard.stories.tsx new file mode 100644 index 0000000000..5901b682df --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxRejectionCard/TxRejectionCard.stories.tsx @@ -0,0 +1,27 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { TxRejectionCard } from '@/src/components/transactions-list/Card/TxRejectionCard' +import { mockTransferWithInfo } from '@/src/tests/mocks' +import { Cancellation } from '@safe-global/store/gateway/types' + +const meta: Meta = { + title: 'TransactionsList/TxRejectionCard', + component: TxRejectionCard, + argTypes: { + bordered: { + description: 'Define if you want a border on the transaction', + control: { + type: 'boolean', + }, + }, + }, + args: { + bordered: false, + txInfo: mockTransferWithInfo({}) as Cancellation, + }, +} + +export default meta + +type Story = StoryObj + +export const Default: Story = {} diff --git a/apps/mobile/src/components/transactions-list/Card/TxRejectionCard/TxRejectionCard.test.tsx b/apps/mobile/src/components/transactions-list/Card/TxRejectionCard/TxRejectionCard.test.tsx new file mode 100644 index 0000000000..c11f4f3bee --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxRejectionCard/TxRejectionCard.test.tsx @@ -0,0 +1,12 @@ +import { render } from '@/src/tests/test-utils' +import { TxRejectionCard } from '.' +import { mockTransferWithInfo } from '@/src/tests/mocks' +import { Cancellation } from '@safe-global/store/gateway/types' + +describe('TxRejectionCard', () => { + it('should render the default markup', () => { + const { getByText } = render() + + expect(getByText('Rejected')).toBeTruthy() + }) +}) diff --git a/apps/mobile/src/components/transactions-list/Card/TxRejectionCard/TxRejectionCard.tsx b/apps/mobile/src/components/transactions-list/Card/TxRejectionCard/TxRejectionCard.tsx new file mode 100644 index 0000000000..afff4d9f7e --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxRejectionCard/TxRejectionCard.tsx @@ -0,0 +1,30 @@ +import React from 'react' +import { View } from 'tamagui' +import { SafeListItem } from '@/src/components/SafeListItem' +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import type { Cancellation } from '@safe-global/store/gateway/types' +import type { Transaction } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +interface TxRejectionCardProps { + bordered?: boolean + txInfo: Cancellation + inQueue?: boolean + executionInfo?: Transaction['executionInfo'] +} + +export function TxRejectionCard({ bordered, executionInfo, txInfo, inQueue }: TxRejectionCardProps) { + return ( + + + + } + /> + ) +} diff --git a/apps/mobile/src/components/transactions-list/Card/TxRejectionCard/index.tsx b/apps/mobile/src/components/transactions-list/Card/TxRejectionCard/index.tsx new file mode 100644 index 0000000000..d72615fec4 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxRejectionCard/index.tsx @@ -0,0 +1,2 @@ +import { TxRejectionCard } from './TxRejectionCard' +export { TxRejectionCard } diff --git a/apps/mobile/src/components/transactions-list/Card/TxSafeAppCard/TxSafeAppCard.stories.tsx b/apps/mobile/src/components/transactions-list/Card/TxSafeAppCard/TxSafeAppCard.stories.tsx new file mode 100644 index 0000000000..57d77ed48e --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxSafeAppCard/TxSafeAppCard.stories.tsx @@ -0,0 +1,32 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { TxSafeAppCard } from '@/src/components/transactions-list/Card/TxSafeAppCard' +import { mockTransferWithInfo } from '@/src/tests/mocks' +import { MultiSend } from '@safe-global/store/gateway/types' + +const meta: Meta = { + title: 'TransactionsList/TxSafeAppCard', + component: TxSafeAppCard, + argTypes: { + bordered: { + description: 'Define if you want a border on the transaction', + control: { + type: 'boolean', + }, + }, + }, + args: { + bordered: false, + safeAppInfo: { + name: 'Transaction Builder', + url: 'http://something.com', + logoUri: 'https://safe-transaction-assets.safe.global/safe_apps/29/icon.png', + }, + txInfo: mockTransferWithInfo({}) as MultiSend, + }, +} + +export default meta + +type Story = StoryObj + +export const Default: Story = {} diff --git a/apps/mobile/src/components/transactions-list/Card/TxSafeAppCard/TxSafeAppCard.test.tsx b/apps/mobile/src/components/transactions-list/Card/TxSafeAppCard/TxSafeAppCard.test.tsx new file mode 100644 index 0000000000..051785e262 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxSafeAppCard/TxSafeAppCard.test.tsx @@ -0,0 +1,39 @@ +import { render } from '@/src/tests/test-utils' +import { TxSafeAppCard } from '.' +import { mockTransferWithInfo } from '@/src/tests/mocks' +import { MultiSend } from '@safe-global/store/gateway/types' + +describe('TxSafeAppCard', () => { + it('should render the default markup', () => { + const { getByText } = render( + , + ) + + expect(getByText('Transaction Builder')).toBeTruthy() + expect(getByText('Safe app')).toBeTruthy() + }) + + it('should render a fallback if no image url is provided', () => { + const { getByText, getByTestId, queryByTestId } = render( + , + ) + + expect(getByText('Transaction Builder')).toBeTruthy() + expect(getByText('Safe app')).toBeTruthy() + expect(queryByTestId('safe-app-image')).not.toBeTruthy() + expect(getByTestId('safe-app-fallback')).toBeTruthy() + }) +}) diff --git a/apps/mobile/src/components/transactions-list/Card/TxSafeAppCard/TxSafeAppCard.tsx b/apps/mobile/src/components/transactions-list/Card/TxSafeAppCard/TxSafeAppCard.tsx new file mode 100644 index 0000000000..6b4850f8fc --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxSafeAppCard/TxSafeAppCard.tsx @@ -0,0 +1,41 @@ +import React from 'react' +import { Avatar, Text, View } from 'tamagui' +import { SafeListItem } from '@/src/components/SafeListItem' +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import type { MultiSend } from '@safe-global/store/gateway/types' +import type { SafeAppInfo, Transaction } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +interface TxSafeAppCardProps { + safeAppInfo: SafeAppInfo + txInfo: MultiSend + bordered?: boolean + inQueue?: boolean + executionInfo?: Transaction['executionInfo'] +} + +export function TxSafeAppCard({ safeAppInfo, executionInfo, txInfo, inQueue, bordered }: TxSafeAppCardProps) { + return ( + + {safeAppInfo.logoUri && ( + + )} + + + + + + + + } + rightNode={{txInfo.methodName}} + /> + ) +} diff --git a/apps/mobile/src/components/transactions-list/Card/TxSafeAppCard/index.tsx b/apps/mobile/src/components/transactions-list/Card/TxSafeAppCard/index.tsx new file mode 100644 index 0000000000..918ccd9f5d --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxSafeAppCard/index.tsx @@ -0,0 +1,2 @@ +import { TxSafeAppCard } from './TxSafeAppCard' +export { TxSafeAppCard } diff --git a/apps/mobile/src/components/transactions-list/Card/TxSettingsCard/TxSettingCard.stories.tsx b/apps/mobile/src/components/transactions-list/Card/TxSettingsCard/TxSettingCard.stories.tsx new file mode 100644 index 0000000000..3eb6822bea --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxSettingsCard/TxSettingCard.stories.tsx @@ -0,0 +1,22 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { TxSettingsCard } from '@/src/components/transactions-list/Card/TxSettingsCard' +import { mockTransferWithInfo } from '@/src/tests/mocks' +import { SettingsChangeTransaction } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' +import { TransactionInfoType } from '@safe-global/store/gateway/types' + +const meta: Meta = { + title: 'TransactionsList/TxSettingsCard', + component: TxSettingsCard, + argTypes: {}, + args: { + txInfo: mockTransferWithInfo({ + type: TransactionInfoType.SETTINGS_CHANGE, + }) as SettingsChangeTransaction, + }, +} + +export default meta + +type Story = StoryObj + +export const Default: Story = {} diff --git a/apps/mobile/src/components/transactions-list/Card/TxSettingsCard/TxSettingCard.test.tsx b/apps/mobile/src/components/transactions-list/Card/TxSettingsCard/TxSettingCard.test.tsx new file mode 100644 index 0000000000..d6e9a98a87 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxSettingsCard/TxSettingCard.test.tsx @@ -0,0 +1,21 @@ +import { render } from '@/src/tests/test-utils' +import { TxSettingsCard } from '.' +import { mockTransferWithInfo } from '@/src/tests/mocks' +import { TransactionInfoType } from '@safe-global/store/gateway/types' +import { SettingsChangeTransaction } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +describe('TxSettingCard', () => { + it('should render the default markup', () => { + const container = render( + , + ) + + expect(container).toMatchSnapshot() + }) +}) diff --git a/apps/mobile/src/components/transactions-list/Card/TxSettingsCard/TxSettingsCard.tsx b/apps/mobile/src/components/transactions-list/Card/TxSettingsCard/TxSettingsCard.tsx new file mode 100644 index 0000000000..d0dbab637e --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxSettingsCard/TxSettingsCard.tsx @@ -0,0 +1,35 @@ +import React from 'react' +import { Theme, View } from 'tamagui' +import { SafeListItem } from '@/src/components/SafeListItem' +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import { SettingsInfoType } from '@safe-global/store/gateway/types' +import { SettingsChangeTransaction, Transaction } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +interface TxSettingsCardProps { + txInfo: SettingsChangeTransaction + bordered?: boolean + inQueue?: boolean + executionInfo?: Transaction['executionInfo'] +} + +export function TxSettingsCard({ txInfo, bordered, executionInfo, inQueue }: TxSettingsCardProps) { + const isDeleteGuard = txInfo.settingsInfo?.type === SettingsInfoType.DELETE_GUARD + const label = isDeleteGuard ? 'deleteGuard' : txInfo.dataDecoded.method + + return ( + + + + + + } + /> + ) +} diff --git a/apps/mobile/src/components/transactions-list/Card/TxSettingsCard/__snapshots__/TxSettingCard.test.tsx.snap b/apps/mobile/src/components/transactions-list/Card/TxSettingsCard/__snapshots__/TxSettingCard.test.tsx.snap new file mode 100644 index 0000000000..f5052f6c5f --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxSettingsCard/__snapshots__/TxSettingCard.test.tsx.snap @@ -0,0 +1,111 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`TxSettingCard should render the default markup 1`] = ` + + + + + + + + + + + + Settings change + + + + mockMethod + + + + + +`; diff --git a/apps/mobile/src/components/transactions-list/Card/TxSettingsCard/index.tsx b/apps/mobile/src/components/transactions-list/Card/TxSettingsCard/index.tsx new file mode 100644 index 0000000000..b3c254bd23 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxSettingsCard/index.tsx @@ -0,0 +1,2 @@ +import { TxSettingsCard } from './TxSettingsCard' +export { TxSettingsCard } diff --git a/apps/mobile/src/components/transactions-list/Card/TxSwapCard/TxSwapCard.stories.tsx b/apps/mobile/src/components/transactions-list/Card/TxSwapCard/TxSwapCard.stories.tsx new file mode 100644 index 0000000000..47ab945cba --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxSwapCard/TxSwapCard.stories.tsx @@ -0,0 +1,18 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { TxSwapCard } from '@/src/components/transactions-list/Card/TxSwapCard' +import { mockSwapTransfer } from '@/src/tests/mocks' +import { OrderTransactionInfo } from '@safe-global/store/gateway/types' + +const meta: Meta = { + title: 'TransactionsList/TxSwapCard', + component: TxSwapCard, + args: { + txInfo: mockSwapTransfer as OrderTransactionInfo, + }, +} + +export default meta + +type Story = StoryObj + +export const Default: Story = {} diff --git a/apps/mobile/src/components/transactions-list/Card/TxSwapCard/TxSwapCard.test.tsx b/apps/mobile/src/components/transactions-list/Card/TxSwapCard/TxSwapCard.test.tsx new file mode 100644 index 0000000000..94e4414277 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxSwapCard/TxSwapCard.test.tsx @@ -0,0 +1,12 @@ +import { render } from '@/src/tests/test-utils' +import { TxSwapCard } from '.' +import { OrderTransactionInfo } from '@safe-global/store/gateway/types' +import { mockSwapTransfer } from '@/src/tests/mocks' + +describe('TxSwapCard', () => { + it('should render the default markup', () => { + const container = render() + + expect(container).toMatchSnapshot() + }) +}) diff --git a/apps/mobile/src/components/transactions-list/Card/TxSwapCard/TxSwapCard.tsx b/apps/mobile/src/components/transactions-list/Card/TxSwapCard/TxSwapCard.tsx new file mode 100644 index 0000000000..bc01210024 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxSwapCard/TxSwapCard.tsx @@ -0,0 +1,63 @@ +import React from 'react' +import { Avatar, Text, Theme, View } from 'tamagui' +import { SafeListItem } from '@/src/components/SafeListItem' +import { formatValue } from '@/src/utils/formatters' +import { OrderTransactionInfo } from '@safe-global/store/gateway/types' +import { Transaction } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +interface TxSwapCardProps { + txInfo: OrderTransactionInfo + bordered?: boolean + inQueue?: boolean + executionInfo?: Transaction['executionInfo'] +} + +export function TxSwapCard({ txInfo, bordered, executionInfo, inQueue }: TxSwapCardProps) { + return ( + ${txInfo.buyToken.symbol}`} + icon="transaction-swap" + type="Swap order" + executionInfo={executionInfo} + bordered={bordered} + inQueue={inQueue} + leftNode={ + + + + {txInfo.sellToken.logoUri && ( + + )} + + + + + {txInfo.buyToken.logoUri && ( + + )} + + + + + } + rightNode={ + + + +{formatValue(txInfo.buyAmount, txInfo.buyToken.decimals)} {txInfo.buyToken.symbol} + + + −{formatValue(txInfo.sellAmount, txInfo.sellToken.decimals)} {txInfo.sellToken.symbol} + + + } + /> + ) +} diff --git a/apps/mobile/src/components/transactions-list/Card/TxSwapCard/__snapshots__/TxSwapCard.test.tsx.snap b/apps/mobile/src/components/transactions-list/Card/TxSwapCard/__snapshots__/TxSwapCard.test.tsx.snap new file mode 100644 index 0000000000..03c227f393 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxSwapCard/__snapshots__/TxSwapCard.test.tsx.snap @@ -0,0 +1,289 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`TxSwapCard should render the default markup 1`] = ` + + + + + + + + + + + + + + + + + + + + + + + + Swap order + + + + SAFE > ETH + + + + + + + + 0.05 + + ETH + + + − + 0.05 + + SAFE + + + + +`; diff --git a/apps/mobile/src/components/transactions-list/Card/TxSwapCard/index.tsx b/apps/mobile/src/components/transactions-list/Card/TxSwapCard/index.tsx new file mode 100644 index 0000000000..4c95c2e35b --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxSwapCard/index.tsx @@ -0,0 +1,2 @@ +import { TxSwapCard } from './TxSwapCard' +export { TxSwapCard } diff --git a/apps/mobile/src/components/transactions-list/Card/TxTokenCard/TxTokenCard.stories.tsx b/apps/mobile/src/components/transactions-list/Card/TxTokenCard/TxTokenCard.stories.tsx new file mode 100644 index 0000000000..ee710c8681 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxTokenCard/TxTokenCard.stories.tsx @@ -0,0 +1,37 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { TxTokenCard } from '@/src/components/transactions-list/Card/TxTokenCard' +import { mockERC20Transfer, mockNFTTransfer } from '@/src/tests/mocks' +import { TransactionStatus } from '@safe-global/store/gateway/types' +import { type TransferTransactionInfo } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +const meta: Meta = { + title: 'TransactionsList/TxTokenCard', + component: TxTokenCard, + argTypes: { + bordered: { + description: 'Define if you want a border on the transaction', + control: { + type: 'boolean', + }, + }, + }, + args: { + bordered: false, + }, +} + +export default meta +type Story = StoryObj + +export const Default: Story = { + args: { + txStatus: TransactionStatus.SUCCESS, + txInfo: mockERC20Transfer as TransferTransactionInfo, + }, +} +export const NFT: Story = { + args: { + txStatus: TransactionStatus.SUCCESS, + txInfo: mockNFTTransfer as TransferTransactionInfo, + }, +} diff --git a/apps/mobile/src/components/transactions-list/Card/TxTokenCard/TxTokenCard.tsx b/apps/mobile/src/components/transactions-list/Card/TxTokenCard/TxTokenCard.tsx new file mode 100644 index 0000000000..eef29051e5 --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxTokenCard/TxTokenCard.tsx @@ -0,0 +1,102 @@ +import React from 'react' +import { Text, View } from 'tamagui' +import { SafeListItem } from '@/src/components/SafeListItem' +import { + isERC20Transfer, + isERC721Transfer, + isNativeTokenTransfer, + isOutgoingTransfer, + isTxQueued, +} from '@/src/utils/transaction-guards' +import { ellipsis, formatValue } from '@/src/utils/formatters' +import { useSelector } from 'react-redux' +import { selectNativeCurrency } from '@/src/store/activeChainSlice' +import { TransferDirection } from '@safe-global/store/gateway/types' +import { TransferTransactionInfo, Transaction } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' +import { Logo } from '@/src/components/Logo' + +interface TxTokenCardProps { + bordered?: boolean + txStatus: Transaction['txStatus'] + inQueue?: boolean + txInfo: TransferTransactionInfo + executionInfo?: Transaction['executionInfo'] +} + +interface tokenDetails { + value: string + decimals?: number + tokenSymbol?: string + name: string + logoUri?: string +} + +const getTokenDetails = (txInfo: TransferTransactionInfo): tokenDetails => { + const transfer = txInfo.transferInfo + const unnamedToken = 'Unnamed token' + const nativeCurrency = useSelector(selectNativeCurrency) + + if (isNativeTokenTransfer(transfer)) { + return { + value: formatValue(transfer.value || '0', nativeCurrency.decimals), + // take it from the native currency slice + decimals: nativeCurrency.decimals, + tokenSymbol: nativeCurrency.symbol, + name: nativeCurrency.name, + logoUri: nativeCurrency.logoUri, + } + } + + if (isERC20Transfer(transfer)) { + return { + value: formatValue(transfer.value, transfer.decimals || 18), + decimals: transfer.decimals || undefined, + logoUri: transfer.logoUri || undefined, + tokenSymbol: ellipsis((transfer.tokenSymbol || 'Unknown Token').trim(), 6), + name: transfer.tokenName || unnamedToken, + } + } + + if (isERC721Transfer(transfer)) { + return { + name: transfer.tokenName || unnamedToken, + tokenSymbol: ellipsis(`${transfer.tokenSymbol || 'Unknown NFT'} #${transfer.tokenId}`, 8), + value: '1', + decimals: 0, + logoUri: transfer?.logoUri || undefined, + } + } + + return { + name: unnamedToken, + value: '', + } +} + +export function TxTokenCard({ bordered, inQueue, txStatus, executionInfo, txInfo }: TxTokenCardProps) { + const isSendTx = isOutgoingTransfer(txInfo) + const icon = isSendTx ? 'transaction-outgoing' : 'transaction-incoming' + const type = isSendTx ? (isTxQueued(txStatus) ? 'Send' : 'Sent') : 'Received' + const { logoUri, name, value, tokenSymbol } = getTokenDetails(txInfo) + const isERC721 = isERC721Transfer(txInfo.transferInfo) + const isOutgoing = txInfo.direction === TransferDirection.OUTGOING + + return ( + } + rightNode={ + + + {isOutgoing ? '-' : '+'} {ellipsis(value, 8)} {!isERC721 && tokenSymbol} + + + } + /> + ) +} diff --git a/apps/mobile/src/components/transactions-list/Card/TxTokenCard/index.tsx b/apps/mobile/src/components/transactions-list/Card/TxTokenCard/index.tsx new file mode 100644 index 0000000000..122cb0ab2b --- /dev/null +++ b/apps/mobile/src/components/transactions-list/Card/TxTokenCard/index.tsx @@ -0,0 +1,2 @@ +import { TxTokenCard } from './TxTokenCard' +export { TxTokenCard } diff --git a/apps/mobile/src/config/constants.ts b/apps/mobile/src/config/constants.ts new file mode 100644 index 0000000000..47b9bee8ee --- /dev/null +++ b/apps/mobile/src/config/constants.ts @@ -0,0 +1,13 @@ +import Constants from 'expo-constants' +import { Platform } from 'react-native' + +export const isProduction = process.env.NODE_ENV !== 'production' +export const isAndroid = Platform.OS === 'android' +export const isTestingEnv = process.env.NODE_ENV === 'test' +export const isStorybookEnv = Constants?.expoConfig?.extra?.storybookEnabled === 'true' +export const POLLING_INTERVAL = 15_000 + +export const GATEWAY_URL_PRODUCTION = + process.env.NEXT_PUBLIC_GATEWAY_URL_PRODUCTION || 'https://safe-client.safe.global' +export const GATEWAY_URL_STAGING = process.env.NEXT_PUBLIC_GATEWAY_URL_STAGING || 'https://safe-client.staging.5afe.dev' +export const GATEWAY_URL = process.env.NODE_ENV !== 'production' ? GATEWAY_URL_STAGING : GATEWAY_URL_PRODUCTION diff --git a/apps/mobile/src/features/Assets/Assets.container.tsx b/apps/mobile/src/features/Assets/Assets.container.tsx new file mode 100644 index 0000000000..11b4f3db78 --- /dev/null +++ b/apps/mobile/src/features/Assets/Assets.container.tsx @@ -0,0 +1,22 @@ +import React from 'react' + +import { SafeTab } from '@/src/components/SafeTab' + +import { TokensContainer } from '@/src/features/Assets/components/Tokens' +import { NFTsContainer } from '@/src/features/Assets/components/NFTs' +import { AssetsHeaderContainer } from '@/src/features/Assets/components/AssetsHeader' + +const tabItems = [ + { + label: 'Tokens', + Component: TokensContainer, + }, + { + label: `NFT's`, + Component: NFTsContainer, + }, +] + +export function AssetsContainer() { + return +} diff --git a/apps/mobile/src/features/Assets/components/AssetsHeader/AssetsHeader.container.tsx b/apps/mobile/src/features/Assets/components/AssetsHeader/AssetsHeader.container.tsx new file mode 100644 index 0000000000..5314a90f21 --- /dev/null +++ b/apps/mobile/src/features/Assets/components/AssetsHeader/AssetsHeader.container.tsx @@ -0,0 +1,21 @@ +import usePendingTxs from '@/src/hooks/usePendingTxs' +import { router } from 'expo-router' +import { useCallback } from 'react' +import { AssetsHeader } from './AssetsHeader' + +export const AssetsHeaderContainer = () => { + const { amount, hasMore, isLoading } = usePendingTxs() + + const onPendingTransactionsPress = useCallback(() => { + router.push('/pending-transactions') + }, [router]) + + return ( + + ) +} diff --git a/apps/mobile/src/features/Assets/components/AssetsHeader/AssetsHeader.tsx b/apps/mobile/src/features/Assets/components/AssetsHeader/AssetsHeader.tsx new file mode 100644 index 0000000000..fa0e163129 --- /dev/null +++ b/apps/mobile/src/features/Assets/components/AssetsHeader/AssetsHeader.tsx @@ -0,0 +1,30 @@ +import React from 'react' +import { BalanceContainer } from '../Balance' +import { PendingTransactions } from '@/src/components/StatusBanners/PendingTransactions' +import { View } from 'tamagui' +import { StyledAssetsHeader } from './styles' + +interface AssetsHeaderProps { + amount: number + isLoading: boolean + onPendingTransactionsPress: () => void + hasMore: boolean +} + +export function AssetsHeader({ amount, isLoading, onPendingTransactionsPress, hasMore }: AssetsHeaderProps) { + return ( + + + {amount > 0 && ( + + )} + + + + + ) +} diff --git a/apps/mobile/src/features/Assets/components/AssetsHeader/index.tsx b/apps/mobile/src/features/Assets/components/AssetsHeader/index.tsx new file mode 100644 index 0000000000..44bb8fad04 --- /dev/null +++ b/apps/mobile/src/features/Assets/components/AssetsHeader/index.tsx @@ -0,0 +1,2 @@ +import { AssetsHeaderContainer } from './AssetsHeader.container' +export { AssetsHeaderContainer } diff --git a/apps/mobile/src/features/Assets/components/AssetsHeader/styles.ts b/apps/mobile/src/features/Assets/components/AssetsHeader/styles.ts new file mode 100644 index 0000000000..3f37a11007 --- /dev/null +++ b/apps/mobile/src/features/Assets/components/AssetsHeader/styles.ts @@ -0,0 +1,5 @@ +import { styled, View } from 'tamagui' + +export const StyledAssetsHeader = styled(View, { + paddingHorizontal: 10, +}) diff --git a/apps/mobile/src/features/Assets/components/Balance/Balance.container.tsx b/apps/mobile/src/features/Assets/components/Balance/Balance.container.tsx new file mode 100644 index 0000000000..f9997d588c --- /dev/null +++ b/apps/mobile/src/features/Assets/components/Balance/Balance.container.tsx @@ -0,0 +1,43 @@ +import { selectActiveChain, switchActiveChain } from '@/src/store/activeChainSlice' +import { useDispatch, useSelector } from 'react-redux' +import { useSafesGetSafeOverviewV1Query } from '@safe-global/store/gateway/AUTO_GENERATED/safes' +import { selectActiveSafe } from '@/src/store/activeSafeSlice' +import { SafeOverviewResult } from '@safe-global/store/gateway/types' +import { POLLING_INTERVAL } from '@/src/config/constants' +import { selectAllChains } from '@/src/store/chains' +import { Balance } from './Balance' + +const makeSafeId = (chainId: string, address: string) => `${chainId}:${address}` as `${number}:0x${string}` + +export function BalanceContainer() { + const activeChain = useSelector(selectActiveChain) + const chains = useSelector(selectAllChains) + const activeSafe = useSelector(selectActiveSafe) + const dispatch = useDispatch() + const { data, isLoading } = useSafesGetSafeOverviewV1Query( + { + safes: chains.map((chain) => makeSafeId(chain.chainId, activeSafe.address)).join(','), + currency: 'usd', + trusted: true, + excludeSpam: true, + }, + { + pollingInterval: POLLING_INTERVAL, + skip: chains.length === 0, + }, + ) + + const handleChainChange = (id: string) => { + dispatch(switchActiveChain({ id })) + } + + return ( + + ) +} diff --git a/apps/mobile/src/features/Assets/components/Balance/Balance.tsx b/apps/mobile/src/features/Assets/components/Balance/Balance.tsx new file mode 100644 index 0000000000..4636453345 --- /dev/null +++ b/apps/mobile/src/features/Assets/components/Balance/Balance.tsx @@ -0,0 +1,63 @@ +import React from 'react' +import { Image, Spinner, View } from 'tamagui' + +import { Alert } from '@/src/components/Alert' +import { Dropdown } from '@/src/components/Dropdown' +import { Fiat } from '@/src/components/Fiat' +import { SafeOverview } from '@safe-global/store/gateway/AUTO_GENERATED/safes' +import { Chain } from '@safe-global/store/gateway/AUTO_GENERATED/chains' + +import { ChainItems } from './ChainItems' + +interface BalanceProps { + activeChain: Chain + data: SafeOverview[] + isLoading: boolean + chains: Chain[] + onChainChange: (chainId: string) => void +} + +export function Balance({ activeChain, data, chains, isLoading, onChainChange }: BalanceProps) { + const balance = data?.find((chain) => chain.chainId === activeChain.chainId) + + return ( + + + {activeChain && ( + + label={activeChain?.chainName} + dropdownTitle="Select network:" + leftNode={ + activeChain?.chainLogoUri && ( + + ) + } + items={data} + keyExtractor={({ item }) => item.chainId} + renderItem={({ item, onClose }) => ( + { + onChainChange(chainId) + onClose() + }} + activeChain={activeChain} + fiatTotal={item.fiatTotal} + chains={chains} + chainId={item.chainId} + key={item.chainId} + /> + )} + /> + )} + + {isLoading ? ( + + ) : balance ? ( + + ) : ( + + )} + + + ) +} diff --git a/apps/mobile/src/features/Assets/components/Balance/ChainItems.tsx b/apps/mobile/src/features/Assets/components/Balance/ChainItems.tsx new file mode 100644 index 0000000000..2bf3fd6514 --- /dev/null +++ b/apps/mobile/src/features/Assets/components/Balance/ChainItems.tsx @@ -0,0 +1,40 @@ +import React from 'react' +import { View } from 'tamagui' +import { Chain } from '@safe-global/store/gateway/AUTO_GENERATED/chains' +import { AssetsCard } from '@/src/components/transactions-list/Card/AssetsCard' +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import { TouchableOpacity } from 'react-native' + +interface ChainItemsProps { + activeChain: Chain + chains: Chain[] + chainId: string + fiatTotal: string + onSelect: (chainId: string) => void +} + +export function ChainItems({ chainId, chains, activeChain, fiatTotal, onSelect }: ChainItemsProps) { + const chain = chains.find((item) => item.chainId === chainId) + const isActive = chainId === activeChain.chainId + + const handleChainSelect = () => { + onSelect(chainId) + } + + if (!chain) { + return null + } + + return ( + + + } + /> + + + ) +} diff --git a/apps/mobile/src/features/Assets/components/Balance/index.tsx b/apps/mobile/src/features/Assets/components/Balance/index.tsx new file mode 100644 index 0000000000..fd6e5f9ffc --- /dev/null +++ b/apps/mobile/src/features/Assets/components/Balance/index.tsx @@ -0,0 +1,2 @@ +import { BalanceContainer } from './Balance.container' +export { BalanceContainer } diff --git a/apps/mobile/src/features/Assets/components/Fallback/Fallback.tsx b/apps/mobile/src/features/Assets/components/Fallback/Fallback.tsx new file mode 100644 index 0000000000..e290f86076 --- /dev/null +++ b/apps/mobile/src/features/Assets/components/Fallback/Fallback.tsx @@ -0,0 +1,18 @@ +import React from 'react' +import { Spinner } from 'tamagui' + +import { Alert } from '@/src/components/Alert' +import { SafeTab } from '@/src/components/SafeTab' +import { NoFunds } from '../NoFunds' + +export const Fallback = ({ loading, hasError }: { loading: boolean; hasError: boolean }) => ( + + {loading ? ( + + ) : hasError ? ( + + ) : ( + + )} + +) diff --git a/apps/mobile/src/features/Assets/components/Fallback/index.ts b/apps/mobile/src/features/Assets/components/Fallback/index.ts new file mode 100644 index 0000000000..eb18c0665e --- /dev/null +++ b/apps/mobile/src/features/Assets/components/Fallback/index.ts @@ -0,0 +1,2 @@ +import { Fallback } from './Fallback' +export { Fallback } diff --git a/apps/mobile/src/features/Assets/components/NFTs/NFTItem.tsx b/apps/mobile/src/features/Assets/components/NFTs/NFTItem.tsx new file mode 100644 index 0000000000..bb36487f78 --- /dev/null +++ b/apps/mobile/src/features/Assets/components/NFTs/NFTItem.tsx @@ -0,0 +1,14 @@ +import React from 'react' +import { AssetsCard } from '@/src/components/transactions-list/Card/AssetsCard' +import { Collectible } from '@safe-global/store/gateway/AUTO_GENERATED/collectibles' + +export function NFTItem({ item }: { item: Collectible }) { + return ( + + ) +} diff --git a/apps/mobile/src/features/Assets/components/NFTs/NFTs.container.tsx b/apps/mobile/src/features/Assets/components/NFTs/NFTs.container.tsx new file mode 100644 index 0000000000..6ee3ca8e13 --- /dev/null +++ b/apps/mobile/src/features/Assets/components/NFTs/NFTs.container.tsx @@ -0,0 +1,62 @@ +import { safelyDecodeURIComponent } from 'expo-router/build/fork/getStateFromPath-forks' +import React, { useEffect, useState } from 'react' +import { useSelector } from 'react-redux' + +import { SafeTab } from '@/src/components/SafeTab' +import { POLLING_INTERVAL } from '@/src/config/constants' +import { selectActiveSafe } from '@/src/store/activeSafeSlice' +import { + Collectible, + CollectiblePage, + useCollectiblesGetCollectiblesV2Query, +} from '@safe-global/store/gateway/AUTO_GENERATED/collectibles' + +import { Fallback } from '../Fallback' +import { NFTItem } from './NFTItem' + +export function NFTsContainer() { + const activeSafe = useSelector(selectActiveSafe) + const [pageUrl, setPageUrl] = useState() + const [list, setList] = useState() + + const { data, isLoading, error, refetch } = useCollectiblesGetCollectiblesV2Query( + { + chainId: activeSafe.chainId, + safeAddress: activeSafe.address, + cursor: pageUrl && safelyDecodeURIComponent(pageUrl?.split('cursor=')[1]), + }, + { + pollingInterval: POLLING_INTERVAL, + }, + ) + + useEffect(() => { + if (!data?.results) { + return + } + + setList((prev) => (prev ? [...prev, ...data.results] : data.results)) + }, [data]) + + const onEndReached = () => { + if (!data?.next) { + return + } + + setPageUrl(data.next) + refetch() + } + + if (isLoading || !list?.length || error) { + return + } + + return ( + + onEndReached={onEndReached} + data={list} + renderItem={NFTItem} + keyExtractor={(item) => item.id} + /> + ) +} diff --git a/apps/mobile/src/features/Assets/components/NFTs/index.tsx b/apps/mobile/src/features/Assets/components/NFTs/index.tsx new file mode 100644 index 0000000000..cbcb115f84 --- /dev/null +++ b/apps/mobile/src/features/Assets/components/NFTs/index.tsx @@ -0,0 +1,2 @@ +import { NFTsContainer } from './NFTs.container' +export { NFTsContainer } diff --git a/apps/mobile/src/features/Assets/components/Navbar/Navbar.tsx b/apps/mobile/src/features/Assets/components/Navbar/Navbar.tsx new file mode 100644 index 0000000000..0700470f2e --- /dev/null +++ b/apps/mobile/src/features/Assets/components/Navbar/Navbar.tsx @@ -0,0 +1,48 @@ +import { useSelector } from 'react-redux' +import { selectActiveSafe } from '@/src/store/activeSafeSlice' +import { Text, View } from 'tamagui' +import { BlurredIdenticonBackground } from '@/src/components/BlurredIdenticonBackground' +import { SafeAreaView } from 'react-native-safe-area-context' +import { Identicon } from '@/src/components/Identicon' +import { shortenAddress } from '@/src/utils/formatters' +import { SafeFontIcon } from '@/src/components/SafeFontIcon' +import { StyleSheet, TouchableOpacity } from 'react-native' +import React from 'react' +import { Address } from '@/src/types/address' + +export const Navbar = () => { + const activeSafe = useSelector(selectActiveSafe) + return ( + + + + + + + + + {shortenAddress(activeSafe.address)} + + + + + + + + + + + + ) +} + +const styles = StyleSheet.create({ + headerContainer: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'space-between', + paddingHorizontal: 10, + paddingVertical: 16, + paddingBottom: 0, + }, +}) diff --git a/apps/mobile/src/features/Assets/components/Navbar/index.tsx b/apps/mobile/src/features/Assets/components/Navbar/index.tsx new file mode 100644 index 0000000000..7d0badea6a --- /dev/null +++ b/apps/mobile/src/features/Assets/components/Navbar/index.tsx @@ -0,0 +1 @@ +export { Navbar } from './Navbar' diff --git a/apps/mobile/src/features/Assets/components/NoFunds/EmptyToken.tsx b/apps/mobile/src/features/Assets/components/NoFunds/EmptyToken.tsx new file mode 100644 index 0000000000..5b49887b01 --- /dev/null +++ b/apps/mobile/src/features/Assets/components/NoFunds/EmptyToken.tsx @@ -0,0 +1,57 @@ +import React from 'react' +import Svg, { Path } from 'react-native-svg' + +function EmptyToken() { + return ( + + + + + + + + + + + + + + ) +} + +export default EmptyToken diff --git a/apps/mobile/src/features/Assets/components/NoFunds/NoFunds.tsx b/apps/mobile/src/features/Assets/components/NoFunds/NoFunds.tsx new file mode 100644 index 0000000000..b0cf7f0e9d --- /dev/null +++ b/apps/mobile/src/features/Assets/components/NoFunds/NoFunds.tsx @@ -0,0 +1,15 @@ +import React from 'react' +import { H3, Text, View } from 'tamagui' +import EmptyToken from './EmptyToken' + +export function NoFunds() { + return ( + + + Add funds to get started + + Send funds to your Safe Account from another wallet by copying your address. + + + ) +} diff --git a/apps/mobile/src/features/Assets/components/NoFunds/index.ts b/apps/mobile/src/features/Assets/components/NoFunds/index.ts new file mode 100644 index 0000000000..cc15cc4e9b --- /dev/null +++ b/apps/mobile/src/features/Assets/components/NoFunds/index.ts @@ -0,0 +1,2 @@ +import { NoFunds } from './NoFunds' +export { NoFunds } diff --git a/apps/mobile/src/features/Assets/components/Tokens/Tokens.container.tsx b/apps/mobile/src/features/Assets/components/Tokens/Tokens.container.tsx new file mode 100644 index 0000000000..bba93e7497 --- /dev/null +++ b/apps/mobile/src/features/Assets/components/Tokens/Tokens.container.tsx @@ -0,0 +1,59 @@ +import React from 'react' +import { ListRenderItem } from 'react-native' +import { useSelector } from 'react-redux' +import { Text } from 'tamagui' + +import { SafeTab } from '@/src/components/SafeTab' +import { AssetsCard } from '@/src/components/transactions-list/Card/AssetsCard' +import { POLLING_INTERVAL } from '@/src/config/constants' +import { selectActiveSafe } from '@/src/store/activeSafeSlice' +import { Balance, useBalancesGetBalancesV1Query } from '@safe-global/store/gateway/AUTO_GENERATED/balances' +import { formatValue } from '@/src/utils/formatters' +// import { selectActiveChain } from '@/src/store/activeChainSlice' + +import { Fallback } from '../Fallback' + +export function TokensContainer() { + const activeSafe = useSelector(selectActiveSafe) + // const activeChain = useSelector(selectActiveChain) + + const { data, isLoading, error } = useBalancesGetBalancesV1Query( + { + chainId: activeSafe.chainId, + fiatCode: 'USD', + safeAddress: activeSafe.address, + excludeSpam: false, + trusted: true, + }, + { + pollingInterval: POLLING_INTERVAL, + }, + ) + + const renderItem: ListRenderItem = React.useCallback(({ item }) => { + return ( + + ${item.fiatBalance} + + } + /> + ) + }, []) + + if (isLoading || !data?.items.length || error) { + return + } + + return ( + + data={data?.items} + renderItem={renderItem} + keyExtractor={(item, index): string => item.tokenInfo.name + index} + /> + ) +} diff --git a/apps/mobile/src/features/Assets/components/Tokens/index.tsx b/apps/mobile/src/features/Assets/components/Tokens/index.tsx new file mode 100644 index 0000000000..c2dd3ac69f --- /dev/null +++ b/apps/mobile/src/features/Assets/components/Tokens/index.tsx @@ -0,0 +1,2 @@ +import { TokensContainer } from './Tokens.container' +export { TokensContainer } diff --git a/apps/mobile/src/features/Assets/index.tsx b/apps/mobile/src/features/Assets/index.tsx new file mode 100644 index 0000000000..d08f5e70ca --- /dev/null +++ b/apps/mobile/src/features/Assets/index.tsx @@ -0,0 +1,2 @@ +import { AssetsContainer } from './Assets.container' +export { AssetsContainer } diff --git a/apps/mobile/src/features/Assets/styles.ts b/apps/mobile/src/features/Assets/styles.ts new file mode 100644 index 0000000000..3f37a11007 --- /dev/null +++ b/apps/mobile/src/features/Assets/styles.ts @@ -0,0 +1,5 @@ +import { styled, View } from 'tamagui' + +export const StyledAssetsHeader = styled(View, { + paddingHorizontal: 10, +}) diff --git a/apps/mobile/src/features/Notifications/Notifications.container.tsx b/apps/mobile/src/features/Notifications/Notifications.container.tsx new file mode 100644 index 0000000000..7b4bda088b --- /dev/null +++ b/apps/mobile/src/features/Notifications/Notifications.container.tsx @@ -0,0 +1,10 @@ +import { View, Text } from 'tamagui' +import React from 'react' + +export const NotificationsContainer = () => { + return ( + + Notifications + + ) +} diff --git a/apps/mobile/src/features/Notifications/index.tsx b/apps/mobile/src/features/Notifications/index.tsx new file mode 100644 index 0000000000..b5f074338c --- /dev/null +++ b/apps/mobile/src/features/Notifications/index.tsx @@ -0,0 +1,2 @@ +import { NotificationsContainer } from './Notifications.container' +export { NotificationsContainer } diff --git a/apps/mobile/src/features/Onboarding/Onboarding.container.test.tsx b/apps/mobile/src/features/Onboarding/Onboarding.container.test.tsx new file mode 100644 index 0000000000..0c4fe03678 --- /dev/null +++ b/apps/mobile/src/features/Onboarding/Onboarding.container.test.tsx @@ -0,0 +1,26 @@ +import React from 'react' +import { Onboarding } from './Onboarding.container' +import { fireEvent, render } from '@/src/tests/test-utils' + +const mockNavigate = jest.fn() + +jest.mock('expo-router', () => ({ + useRouter: () => ({ + navigate: mockNavigate, + }), +})) + +describe('Onboarding Component', () => { + it('renders correctly', () => { + const { getAllByText } = render() + expect(getAllByText('Get started')).toHaveLength(1) + }) + + it('navigates on button press', () => { + const { getByText } = render() + const button = getByText('Get started') + + fireEvent.press(button) + expect(mockNavigate).toHaveBeenCalledWith('/(tabs)') + }) +}) diff --git a/apps/mobile/src/features/Onboarding/Onboarding.container.tsx b/apps/mobile/src/features/Onboarding/Onboarding.container.tsx new file mode 100644 index 0000000000..5a1ba7c431 --- /dev/null +++ b/apps/mobile/src/features/Onboarding/Onboarding.container.tsx @@ -0,0 +1,19 @@ +import React from 'react' +import { OnboardingCarousel } from './components/OnboardingCarousel' +import { items } from './components/OnboardingCarousel/items' +import { useRouter } from 'expo-router' +import { SafeButton } from '@/src/components/SafeButton' + +export function Onboarding() { + const router = useRouter() + + const onGetStartedPress = () => { + router.navigate('/(tabs)') + } + + return ( + + + + ) +} diff --git a/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/CarouselFeedback.test.tsx b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/CarouselFeedback.test.tsx new file mode 100644 index 0000000000..b96f4c9696 --- /dev/null +++ b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/CarouselFeedback.test.tsx @@ -0,0 +1,21 @@ +import React from 'react' +import { CarouselFeedback } from './CarouselFeedback' +import { render } from '@/src/tests/test-utils' +import darkPalette from '@/src/theme/palettes/darkPalette' + +describe('CarouselFeedback', () => { + it('renders with active state', () => { + const { getByTestId } = render() + + const carouselFeedback = getByTestId('carousel-feedback') + + expect(carouselFeedback.props.style.backgroundColor).toBe(darkPalette.background.default) + }) + + it('renders with inactive state', () => { + const { getByTestId } = render() + const carouselFeedback = getByTestId('carousel-feedback') + + expect(carouselFeedback.props.style.backgroundColor).toBe(darkPalette.primary.light) + }) +}) diff --git a/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/CarouselFeedback.tsx b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/CarouselFeedback.tsx new file mode 100644 index 0000000000..b3f4491dff --- /dev/null +++ b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/CarouselFeedback.tsx @@ -0,0 +1,35 @@ +import React, { useEffect } from 'react' +import Animated, { useSharedValue, withSpring } from 'react-native-reanimated' +import { useTheme } from 'tamagui' + +interface CarouselFeedbackProps { + isActive: boolean +} + +const UNACTIVE_WIDTH = 4 +const ACTIVE_WIDTH = 14 + +export function CarouselFeedback({ isActive }: CarouselFeedbackProps) { + const width = useSharedValue(UNACTIVE_WIDTH) + const theme = useTheme() + + useEffect(() => { + if (isActive) { + width.value = withSpring(ACTIVE_WIDTH) + } else { + width.value = withSpring(UNACTIVE_WIDTH) + } + }, [isActive]) + + return ( + + ) +} diff --git a/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/CarouselItem.test.tsx b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/CarouselItem.test.tsx new file mode 100644 index 0000000000..16c2db7ceb --- /dev/null +++ b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/CarouselItem.test.tsx @@ -0,0 +1,33 @@ +import React from 'react' +import { CarouselItem } from './CarouselItem' // adjust the import path as necessary +import { Text } from 'tamagui' +import { render } from '@/src/tests/test-utils' + +describe('CarouselItem Component', () => { + it('renders correctly with all props', () => { + const item = { + title: Test Title, + description: 'Test Description', + image: Test Image, + name: 'nevinha', + } + + const { getByText } = render() + + expect(getByText('Test Title')).toBeTruthy() + expect(getByText('Test Description')).toBeTruthy() + expect(getByText('Test Image')).toBeTruthy() + }) + + it('renders correctly without optional props', () => { + const item = { + title: Test Title, + name: 'Test Name', + } + + const { getByText, queryByText } = render() + + expect(getByText('Test Title')).toBeTruthy() + expect(queryByText('Test Description')).toBeNull() // Description is optional and not provided + }) +}) diff --git a/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/CarouselItem.tsx b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/CarouselItem.tsx new file mode 100644 index 0000000000..e4d4ac249b --- /dev/null +++ b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/CarouselItem.tsx @@ -0,0 +1,28 @@ +import { Text, View, YStack } from 'tamagui' + +export type CarouselItem = { + title: string | React.ReactNode + name: string + description?: string + image?: React.ReactNode +} + +interface CarouselItemProps { + item: CarouselItem +} + +export const CarouselItem = ({ item: { title, description, image } }: CarouselItemProps) => { + return ( + + {image} + + + {title} + + + {description} + + + + ) +} diff --git a/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/OnboardingCarousel.stories.tsx b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/OnboardingCarousel.stories.tsx new file mode 100644 index 0000000000..bb5fa87761 --- /dev/null +++ b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/OnboardingCarousel.stories.tsx @@ -0,0 +1,25 @@ +import type { Meta, StoryObj } from '@storybook/react' +import React from 'react' +import { OnboardingCarousel } from './OnboardingCarousel' +import { items } from './items' +import { SafeButton } from '@/src/components/SafeButton' +import { action } from '@storybook/addon-actions' + +const meta: Meta = { + title: 'Carousel', + component: OnboardingCarousel, +} + +export default meta + +type Story = StoryObj + +export const Default: Story = { + render: function Render(args) { + return ( + + + + ) + }, +} diff --git a/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/OnboardingCarousel.test.tsx b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/OnboardingCarousel.test.tsx new file mode 100644 index 0000000000..6dd655e228 --- /dev/null +++ b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/OnboardingCarousel.test.tsx @@ -0,0 +1,24 @@ +import React from 'react' +import { OnboardingCarousel } from './OnboardingCarousel' +import { Text, View } from 'tamagui' +import { render } from '@/src/tests/test-utils' + +describe('OnboardingCarousel', () => { + const items = [ + { name: 'Item1', title: Item1 Title }, + { name: 'Item2', title: Item2 Title }, + { name: 'Item3', title: Item3 Title }, + ] + + // react-native-collapsible-tab-view does not returns any information about the tabs children + // that is why we only test the children component here =/ + it('renders without crashing', () => { + const { getByTestId } = render( + + Child Element + , + ) + + expect(getByTestId('child-element')).toBeTruthy() + }) +}) diff --git a/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/OnboardingCarousel.tsx b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/OnboardingCarousel.tsx new file mode 100644 index 0000000000..840acf9956 --- /dev/null +++ b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/OnboardingCarousel.tsx @@ -0,0 +1,40 @@ +import React, { useState } from 'react' +import { CarouselItem } from './CarouselItem' +import { View } from 'tamagui' +import { Tabs } from 'react-native-collapsible-tab-view' +import { CarouselFeedback } from './CarouselFeedback' + +interface OnboardingCarouselProps { + items: CarouselItem[] + children: React.ReactNode +} + +export function OnboardingCarousel({ items, children }: OnboardingCarouselProps) { + const [activeTab, setActiveTab] = useState(items[0].name) + + return ( + + setActiveTab(event.tabName)} + initialTabName={items[0].name} + renderTabBar={() => <>>} + > + {items.map((item, index) => ( + + + + ))} + + + + + {items.map((item) => ( + + ))} + + + {children} + + + ) +} diff --git a/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/index.ts b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/index.ts new file mode 100644 index 0000000000..cac5baa9a3 --- /dev/null +++ b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/index.ts @@ -0,0 +1,2 @@ +import { OnboardingCarousel } from './OnboardingCarousel' +export { OnboardingCarousel } diff --git a/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/items.tsx b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/items.tsx new file mode 100644 index 0000000000..012eb6acf5 --- /dev/null +++ b/apps/mobile/src/features/Onboarding/components/OnboardingCarousel/items.tsx @@ -0,0 +1,101 @@ +import { Dimensions, StyleSheet } from 'react-native' +import { H1, Image, View } from 'tamagui' +import Signing from '@/assets/images/illustration.png' +import TrackAnywhere from '@/assets/images/anywhere.png' +import { CarouselItem } from './CarouselItem' +import { ParticlesLogo } from '../ParticlesLogo' + +const windowHeight = Dimensions.get('window').height + +const styles = StyleSheet.create({ + image: { + width: '100%', + }, + anywhere: { + height: Math.abs(windowHeight * 0.32), + }, + signing: { + height: Math.abs(windowHeight * 0.3), + }, + textContainer: { + textAlign: 'center', + flexDirection: 'column', + }, +}) + +export const items: CarouselItem[] = [ + { + name: 'multisig', + image: ( + + + + ), + title: ( + <> + + Your main + + + + Safe + {' '} + multisig + + + companion + + > + ), + }, + { + name: 'tracking', + image: , + title: ( + <> + + Track + + + everything. + + + Anywhere. + + > + ), + description: 'Quickly check your asset balances and portfolio performance anytime, anywhere.', + }, + { + name: 'signing', + image: , + title: ( + <> + + Seamless + + + signing + + > + ), + description: + 'Sign and execute transactions securely from your mobile device. Ensuring your assets are protected, even on the move.', + }, + { + name: 'update-to-date', + image: , + title: ( + <> + + Stay + + + up-to-date + + > + ), + description: + 'Sign and execute transactions securely from your mobile device. Ensuring your assets are protected, even on the move.', + }, +] diff --git a/apps/mobile/src/features/Onboarding/components/OnboardingHeader/OnboardingHeader.test.tsx b/apps/mobile/src/features/Onboarding/components/OnboardingHeader/OnboardingHeader.test.tsx new file mode 100644 index 0000000000..99232471d4 --- /dev/null +++ b/apps/mobile/src/features/Onboarding/components/OnboardingHeader/OnboardingHeader.test.tsx @@ -0,0 +1,10 @@ +import React from 'react' +import { OnboardingHeader } from './OnboardingHeader' +import { render } from '@testing-library/react-native' + +test('renders the OnboardingHeader component with the Safe Wallet image', () => { + const { getByLabelText } = render() + + const image = getByLabelText(/Safe Wallet/i) + expect(image).toBeTruthy() +}) diff --git a/apps/mobile/src/features/Onboarding/components/OnboardingHeader/OnboardingHeader.tsx b/apps/mobile/src/features/Onboarding/components/OnboardingHeader/OnboardingHeader.tsx new file mode 100644 index 0000000000..3a9b18e45e --- /dev/null +++ b/apps/mobile/src/features/Onboarding/components/OnboardingHeader/OnboardingHeader.tsx @@ -0,0 +1,16 @@ +import React from 'react' +import { Image, styled } from 'tamagui' +import SafeWalletLogo from '@/assets/images/safe-wallet.png' +import { SafeAreaView } from 'react-native' + +export const StyledSafeAreaView = styled(SafeAreaView, { + alignItems: 'center', +}) + +export function OnboardingHeader() { + return ( + + + + ) +} diff --git a/apps/mobile/src/features/Onboarding/components/OnboardingHeader/index.ts b/apps/mobile/src/features/Onboarding/components/OnboardingHeader/index.ts new file mode 100644 index 0000000000..ea4b33e18e --- /dev/null +++ b/apps/mobile/src/features/Onboarding/components/OnboardingHeader/index.ts @@ -0,0 +1,2 @@ +import { OnboardingHeader } from './OnboardingHeader' +export { OnboardingHeader } diff --git a/apps/mobile/src/features/Onboarding/components/ParticlesLogo/ParticlesLogo.test.tsx b/apps/mobile/src/features/Onboarding/components/ParticlesLogo/ParticlesLogo.test.tsx new file mode 100644 index 0000000000..861b813bbc --- /dev/null +++ b/apps/mobile/src/features/Onboarding/components/ParticlesLogo/ParticlesLogo.test.tsx @@ -0,0 +1,10 @@ +import { render } from '@/src/tests/test-utils' +import { ParticlesLogo } from './ParticlesLogo' + +describe('ParticlesLogo', () => { + it('should render default markup', () => { + const container = render() + + expect(container).toMatchSnapshot() + }) +}) diff --git a/apps/mobile/src/features/Onboarding/components/ParticlesLogo/ParticlesLogo.tsx b/apps/mobile/src/features/Onboarding/components/ParticlesLogo/ParticlesLogo.tsx new file mode 100644 index 0000000000..b344654ab7 --- /dev/null +++ b/apps/mobile/src/features/Onboarding/components/ParticlesLogo/ParticlesLogo.tsx @@ -0,0 +1,45 @@ +import React from 'react' +import Svg, { Path } from 'react-native-svg' + +export function ParticlesLogo() { + return ( + + + + + + + + + + + + ) +} diff --git a/apps/mobile/src/features/Onboarding/components/ParticlesLogo/__snapshots__/ParticlesLogo.test.tsx.snap b/apps/mobile/src/features/Onboarding/components/ParticlesLogo/__snapshots__/ParticlesLogo.test.tsx.snap new file mode 100644 index 0000000000..fb8cbe4522 --- /dev/null +++ b/apps/mobile/src/features/Onboarding/components/ParticlesLogo/__snapshots__/ParticlesLogo.test.tsx.snap @@ -0,0 +1,169 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`ParticlesLogo should render default markup 1`] = ` + + + + + + + + + + + + + + + +`; diff --git a/apps/mobile/src/features/Onboarding/components/ParticlesLogo/index.ts b/apps/mobile/src/features/Onboarding/components/ParticlesLogo/index.ts new file mode 100644 index 0000000000..41f8265075 --- /dev/null +++ b/apps/mobile/src/features/Onboarding/components/ParticlesLogo/index.ts @@ -0,0 +1,2 @@ +import { ParticlesLogo } from './ParticlesLogo' +export { ParticlesLogo } diff --git a/apps/mobile/src/features/Onboarding/index.ts b/apps/mobile/src/features/Onboarding/index.ts new file mode 100644 index 0000000000..68f4aa89dc --- /dev/null +++ b/apps/mobile/src/features/Onboarding/index.ts @@ -0,0 +1,2 @@ +import { Onboarding } from './Onboarding.container' +export { Onboarding } diff --git a/apps/mobile/src/features/PendingTx/PendingTx.container.tsx b/apps/mobile/src/features/PendingTx/PendingTx.container.tsx new file mode 100644 index 0000000000..da1118db1c --- /dev/null +++ b/apps/mobile/src/features/PendingTx/PendingTx.container.tsx @@ -0,0 +1,17 @@ +import React from 'react' +import { PendingTxListContainer } from '@/src/features/PendingTx/components/PendingTxList' +import usePendingTxs from '@/src/hooks/usePendingTxs' + +export function PendingTxContainer() { + const { data, isLoading, fetchMoreTx, hasMore, amount } = usePendingTxs() + + return ( + + ) +} diff --git a/apps/mobile/src/features/PendingTx/components/PendingTxList/PendingTxList.container.tsx b/apps/mobile/src/features/PendingTx/components/PendingTxList/PendingTxList.container.tsx new file mode 100644 index 0000000000..21622f85f3 --- /dev/null +++ b/apps/mobile/src/features/PendingTx/components/PendingTxList/PendingTxList.container.tsx @@ -0,0 +1,68 @@ +import { SafeListItem } from '@/src/components/SafeListItem' +import React from 'react' +import { SectionList } from 'react-native' +import { Spinner, View } from 'tamagui' +import { Badge } from '@/src/components/Badge' +import { NavBarTitle } from '@/src/components/Title/NavBarTitle' +import { LargeHeaderTitle } from '@/src/components/Title/LargeHeaderTitle' +import { useScrollableHeader } from '@/src/navigation/useScrollableHeader' +import { TransactionQueuedItem } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' +import { PendingTransactionItems } from '@safe-global/store/gateway/types' +import { keyExtractor, renderItem } from '@/src/features/PendingTx/utils' + +export interface GroupedPendingTxsWithTitle { + title: string + data: (PendingTransactionItems | TransactionQueuedItem[])[] +} + +interface PendingTxListContainerProps { + transactions: GroupedPendingTxsWithTitle[] + onEndReached: (info: { distanceFromEnd: number }) => void + isLoading?: boolean + amount: number + hasMore: boolean +} + +export function PendingTxListContainer({ + transactions, + onEndReached, + isLoading, + hasMore, + amount, +}: PendingTxListContainerProps) { + const { handleScroll } = useScrollableHeader({ + children: ( + <> + Pending Transactions + + > + ), + }) + + const LargeHeader = ( + + Pending Transactions + {isLoading ? ( + + ) : ( + + )} + + ) + + return ( + : undefined} + renderSectionHeader={({ section: { title } }) => } + onScroll={handleScroll} + scrollEventThrottle={16} + /> + ) +} diff --git a/apps/mobile/src/features/PendingTx/components/PendingTxList/index.ts b/apps/mobile/src/features/PendingTx/components/PendingTxList/index.ts new file mode 100644 index 0000000000..b3867e5adb --- /dev/null +++ b/apps/mobile/src/features/PendingTx/components/PendingTxList/index.ts @@ -0,0 +1,2 @@ +import { PendingTxListContainer } from './PendingTxList.container' +export { PendingTxListContainer } diff --git a/apps/mobile/src/features/PendingTx/index.tsx b/apps/mobile/src/features/PendingTx/index.tsx new file mode 100644 index 0000000000..74ebac85f8 --- /dev/null +++ b/apps/mobile/src/features/PendingTx/index.tsx @@ -0,0 +1,2 @@ +import { PendingTxContainer } from './PendingTx.container' +export { PendingTxContainer } diff --git a/apps/mobile/src/features/PendingTx/utils.tsx b/apps/mobile/src/features/PendingTx/utils.tsx new file mode 100644 index 0000000000..8db8a49bd6 --- /dev/null +++ b/apps/mobile/src/features/PendingTx/utils.tsx @@ -0,0 +1,134 @@ +import { TransactionQueuedItem } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' +import { + getBulkGroupTxHash, + getTxHash, + isConflictHeaderListItem, + isLabelListItem, + isTransactionListItem, +} from '@/src/utils/transaction-guards' +import { groupBulkTxs } from '@/src/utils/transactions' +import { type PendingTransactionItems, TransactionListItemType } from '@safe-global/store//src/gateway/types' +import { View } from 'tamagui' +import { TxGroupedCard } from '@/src/components/transactions-list/Card/TxGroupedCard' +import { TxConflictingCard } from '@/src/components/transactions-list/Card/TxConflictingCard' +import { SafeListItem } from '@/src/components/SafeListItem' +import { TxInfo } from '@/src/components/TxInfo' +import React from 'react' +import { GroupedPendingTxsWithTitle } from './components/PendingTxList/PendingTxList.container' + +type GroupedTxs = (PendingTransactionItems | TransactionQueuedItem[])[] + +export const groupTxs = (list: PendingTransactionItems[]) => { + const groupedByConflicts = groupConflictingTxs(list) + return groupBulkTxs(groupedByConflicts) +} + +export const groupPendingTxs = (list: PendingTransactionItems[]) => { + const transactions = groupTxs(list) + const sections = ['Next', 'Queued'] + + const txSections: { + pointer: number + amount: number + sections: GroupedPendingTxsWithTitle[] + } = { + pointer: -1, + amount: 0, + sections: [ + { title: 'Ready to execute', data: [] }, + { title: 'Confirmation needed', data: [] }, + ], + } + + return transactions.reduce((acc, item) => { + if ('type' in item && isLabelListItem(item)) { + acc.pointer = sections.indexOf(item.label) + } else if ( + acc.sections[acc.pointer] && + (Array.isArray(item) || item.type === TransactionListItemType.TRANSACTION) + ) { + acc.amount += Array.isArray(item) ? item.length : 1 + + acc.sections[acc.pointer].data.push(item as TransactionQueuedItem) + } + + return acc + }, txSections) +} + +export const groupConflictingTxs = (list: PendingTransactionItems[]): GroupedTxs => + list + .reduce((resultItems, item) => { + if (isConflictHeaderListItem(item)) { + return [...resultItems, []] + } + + const prevItem = resultItems[resultItems.length - 1] + if (Array.isArray(prevItem) && isTransactionListItem(item) && item.conflictType !== 'None') { + const updatedPrevItem = [...prevItem, item] + return [...resultItems.slice(0, -1), updatedPrevItem] + } + + return [...resultItems, item] + }, []) + .map((item) => { + return Array.isArray(item) + ? item.sort((a, b) => { + return b.transaction.timestamp - a.transaction.timestamp + }) + : item + }) + +export const renderItem = ({ + item, + index, +}: { + item: PendingTransactionItems | TransactionQueuedItem[] + index: number +}) => { + if (Array.isArray(item)) { + // Handle bulk transactions + return ( + + {getBulkGroupTxHash(item) ? ( + + ) : ( + + )} + + ) + } + + if (isLabelListItem(item)) { + return ( + + + + ) + } + + if (isTransactionListItem(item)) { + return ( + + + + ) + } + + return null +} + +export const keyExtractor = (item: PendingTransactionItems | TransactionQueuedItem[], index: number) => { + if (Array.isArray(item)) { + const txGroupHash = getBulkGroupTxHash(item) + if (txGroupHash) { + return txGroupHash + index + } + + if (isTransactionListItem(item[0])) { + return getTxHash(item[0]) + index + } + return String(index) + } + return String(index) +} diff --git a/apps/mobile/src/features/Settings/Settings.container.tsx b/apps/mobile/src/features/Settings/Settings.container.tsx new file mode 100644 index 0000000000..f5eb3930d5 --- /dev/null +++ b/apps/mobile/src/features/Settings/Settings.container.tsx @@ -0,0 +1,15 @@ +import { useGetSafeQuery } from '@safe-global/store/gateway' +import { SafeState } from '@safe-global/store/gateway/AUTO_GENERATED/safes' +import { useSelector } from 'react-redux' +import { selectActiveSafe } from '@/src/store/activeSafeSlice' +import { Settings } from './Settings' + +export const SettingsContainer = () => { + const { chainId, address } = useSelector(selectActiveSafe) + const { data = {} as SafeState } = useGetSafeQuery({ + chainId: chainId, + safeAddress: address, + }) + + return +} diff --git a/apps/mobile/src/features/Settings/Settings.tsx b/apps/mobile/src/features/Settings/Settings.tsx new file mode 100644 index 0000000000..f4246cfc25 --- /dev/null +++ b/apps/mobile/src/features/Settings/Settings.tsx @@ -0,0 +1,159 @@ +import React from 'react' +import { H2, ScrollView, Text, View, XStack, YStack } from 'tamagui' +import { SafeFontIcon as Icon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import { SafeListItem } from '@/src/components/SafeListItem' +import { Skeleton } from 'moti/skeleton' +import { Pressable } from 'react-native' +import { EthAddress } from '@/src/components/EthAddress' +import { SafeState } from '@safe-global/store/gateway/AUTO_GENERATED/safes' +import { Address } from '@/src/types/address' +import { router } from 'expo-router' +import { IdenticonWithBadge } from '@/src/features/Settings/components/IdenticonWithBadge' + +import { Navbar } from '@/src/features/Settings/components/Navbar/Navbar' + +interface SettingsProps { + data: SafeState + address: `0x${string}` +} + +export const Settings = ({ address, data }: SettingsProps) => { + const { owners = [], threshold, implementation } = data + + return ( + <> + + + + + + + + My DAO + + + + + + + + saaafe.xyz + + + + + + + + + + {owners.length} + + + + + Signers + + + + + + + + {threshold}/{owners.length} + + + + + Threshold + + + + + + + Members + [{ opacity: pressed ? 0.5 : 1.0 }]} + onPress={() => { + router.push('/signers') + }} + > + } + rightNode={ + + + + {owners.length} + + + + + + + } + /> + + + + + General + + [{ opacity: pressed ? 0.5 : 1.0 }]} + onPress={() => { + router.push('/notifications') + }} + > + } + rightNode={} + /> + + + + + + + {/* Footer */} + + {implementation?.name} + + + + > + ) +} diff --git a/apps/mobile/src/features/Settings/components/AppSettings/AppSettings.container.tsx b/apps/mobile/src/features/Settings/components/AppSettings/AppSettings.container.tsx new file mode 100644 index 0000000000..977811381a --- /dev/null +++ b/apps/mobile/src/features/Settings/components/AppSettings/AppSettings.container.tsx @@ -0,0 +1,22 @@ +import React, { useState } from 'react' +import { useDispatch, useSelector } from 'react-redux' +import { selectActiveChain } from '@/src/store/activeChainSlice' +import { setActiveSafe } from '@/src/store/activeSafeSlice' +import { Address } from '@/src/types/address' +import { AppSettings } from './AppSettings' + +export const AppSettingsContainer = () => { + const dispatch = useDispatch() + const activeChain = useSelector(selectActiveChain) + const [safeAddress, setSafeAddress] = useState('') + + const handleSubmit = () => { + dispatch( + setActiveSafe({ + chainId: activeChain.chainId, + address: safeAddress as Address, + }), + ) + } + return +} diff --git a/apps/mobile/src/features/Settings/components/AppSettings/AppSettings.tsx b/apps/mobile/src/features/Settings/components/AppSettings/AppSettings.tsx new file mode 100644 index 0000000000..bfc6dc0c79 --- /dev/null +++ b/apps/mobile/src/features/Settings/components/AppSettings/AppSettings.tsx @@ -0,0 +1,29 @@ +import { View, Text, Input } from 'tamagui' +import { TouchableOpacity } from 'react-native' + +interface AppSettingsProps { + address: string + onSubmit: () => void + onAddressChange: (address: string) => void +} + +export const AppSettings = ({ address, onAddressChange, onSubmit }: AppSettingsProps) => { + return ( + + + + + Set Safe Address + + + + ) +} diff --git a/apps/mobile/src/features/Settings/components/AppSettings/index.ts b/apps/mobile/src/features/Settings/components/AppSettings/index.ts new file mode 100644 index 0000000000..5e68ca4159 --- /dev/null +++ b/apps/mobile/src/features/Settings/components/AppSettings/index.ts @@ -0,0 +1,2 @@ +import { AppSettingsContainer } from './AppSettings.container' +export { AppSettingsContainer } diff --git a/apps/mobile/src/features/Settings/components/IdenticonWithBadge/IdenticonWithBadge.tsx b/apps/mobile/src/features/Settings/components/IdenticonWithBadge/IdenticonWithBadge.tsx new file mode 100644 index 0000000000..43052e96d8 --- /dev/null +++ b/apps/mobile/src/features/Settings/components/IdenticonWithBadge/IdenticonWithBadge.tsx @@ -0,0 +1,46 @@ +import { View } from 'tamagui' +import { Identicon } from '@/src/components/Identicon' +import { Skeleton } from 'moti/skeleton' +import { Badge } from '@/src/components/Badge' +import React from 'react' +import { StyleSheet } from 'react-native' +import { Address } from '@/src/types/address' + +type Props = { + address: Address + badgeContent?: string +} + +export const IdenticonWithBadge = ({ address, badgeContent }: Props) => { + return ( + + + + + {badgeContent && ( + + )} + + + + ) +} + +const styles = StyleSheet.create({ + container: { + position: 'relative', + }, + badge: { + position: 'absolute', + top: -5, + right: -10, + }, +}) diff --git a/apps/mobile/src/features/Settings/components/IdenticonWithBadge/index.ts b/apps/mobile/src/features/Settings/components/IdenticonWithBadge/index.ts new file mode 100644 index 0000000000..709c911ee3 --- /dev/null +++ b/apps/mobile/src/features/Settings/components/IdenticonWithBadge/index.ts @@ -0,0 +1,2 @@ +import { IdenticonWithBadge } from './IdenticonWithBadge' +export { IdenticonWithBadge } diff --git a/apps/mobile/src/features/Settings/components/Navbar/Navbar.tsx b/apps/mobile/src/features/Settings/components/Navbar/Navbar.tsx new file mode 100644 index 0000000000..1aa862e81a --- /dev/null +++ b/apps/mobile/src/features/Settings/components/Navbar/Navbar.tsx @@ -0,0 +1,36 @@ +import React from 'react' +import { View } from 'tamagui' +import { SettingsMenu } from '@/src/features/Settings/components/Navbar/SettingsMenu' +import { SettingsButton } from '@/src/features/Settings/components/Navbar/SettingsButton' +import { BlurredIdenticonBackground } from '@/src/components/BlurredIdenticonBackground/BlurredIdenticonBackground' +import { StyleSheet } from 'react-native' +import { SafeAreaView } from 'react-native-safe-area-context' +import { Address } from '@/src/types/address' + +export const Navbar = (props: { safeAddress: Address }) => { + const { safeAddress } = props + + return ( + + + + + + + + + + + ) +} + +const styles = StyleSheet.create({ + headerContainer: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'flex-end', + paddingHorizontal: 10, + paddingVertical: 16, + paddingBottom: 0, + }, +}) diff --git a/apps/mobile/src/features/Settings/components/Navbar/SettingsButton.tsx b/apps/mobile/src/features/Settings/components/Navbar/SettingsButton.tsx new file mode 100644 index 0000000000..927a388d7f --- /dev/null +++ b/apps/mobile/src/features/Settings/components/Navbar/SettingsButton.tsx @@ -0,0 +1,21 @@ +import { Button } from 'tamagui' +import { router } from 'expo-router' +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import React from 'react' + +export const SettingsButton = () => { + return ( + { + router.push('/app-settings') + }} + > + + + ) +} diff --git a/apps/mobile/src/features/Settings/components/Navbar/SettingsMenu.tsx b/apps/mobile/src/features/Settings/components/Navbar/SettingsMenu.tsx new file mode 100644 index 0000000000..cba28adcb0 --- /dev/null +++ b/apps/mobile/src/features/Settings/components/Navbar/SettingsMenu.tsx @@ -0,0 +1,144 @@ +import { Button, useTheme } from 'tamagui' +import { MenuView, NativeActionEvent } from '@react-native-menu/menu' +import { Linking, Platform } from 'react-native' +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import React from 'react' +import { selectActiveChain } from '@/src/store/activeChainSlice' +import { useSelector } from 'react-redux' +import { getExplorerLink } from '@/src/utils/gateway' +import { useCopyAndDispatchToast } from '@/src/hooks/useCopyAndDispatchToast' +import { useToastController } from '@tamagui/toast' + +type Props = { + safeAddress: string | undefined +} +export const SettingsMenu = ({ safeAddress }: Props) => { + const toast = useToastController() + const activeChain = useSelector(selectActiveChain) + const copyAndDispatchToast = useCopyAndDispatchToast() + const theme = useTheme() + const color = theme.color?.get() + const colorError = 'red' + + const toBeImplemented = () => { + toast.show('This feature is not implemented yet.', { + native: true, + duration: 2000, + burntOptions: { + preset: 'error', + }, + }) + } + if (!safeAddress) { + return null + } + + return ( + { + console.warn(JSON.stringify(nativeEvent)) + + if (nativeEvent.event === 'rename') { + console.log('rename') + toBeImplemented() + } + + if (nativeEvent.event === 'explorer') { + const link = getExplorerLink(safeAddress, activeChain.blockExplorerUriTemplate) + Linking.openURL(link.href) + } + + if (nativeEvent.event === 'copy') { + console.log('copy') + copyAndDispatchToast(safeAddress) + } + + if (nativeEvent.event === 'remove') { + console.log('remove') + toBeImplemented() + } + + if (nativeEvent.event === 'share') { + console.log('share') + toBeImplemented() + } + }} + color={color} + destructiveColor={colorError} + /> + ) +} + +type MenuProps = { + onPressAction: (event: NativeActionEvent) => void + color: string + destructiveColor: string +} +const Menu = ({ onPressAction, color, destructiveColor }: MenuProps) => { + return ( + + + + + + ) +} diff --git a/apps/mobile/src/features/Settings/components/Navbar/index.ts b/apps/mobile/src/features/Settings/components/Navbar/index.ts new file mode 100644 index 0000000000..a87e583366 --- /dev/null +++ b/apps/mobile/src/features/Settings/components/Navbar/index.ts @@ -0,0 +1,2 @@ +import { Navbar } from './Navbar' +export { Navbar } diff --git a/apps/mobile/src/features/Settings/index.tsx b/apps/mobile/src/features/Settings/index.tsx new file mode 100644 index 0000000000..1d77d701b1 --- /dev/null +++ b/apps/mobile/src/features/Settings/index.tsx @@ -0,0 +1,2 @@ +import { SettingsContainer } from './Settings.container' +export { SettingsContainer } diff --git a/apps/mobile/src/features/Signers/Signers.container.tsx b/apps/mobile/src/features/Signers/Signers.container.tsx new file mode 100644 index 0000000000..dbbb083418 --- /dev/null +++ b/apps/mobile/src/features/Signers/Signers.container.tsx @@ -0,0 +1,9 @@ +import { View, Text } from 'tamagui' + +export const SignersContainer = () => { + return ( + + Signers + + ) +} diff --git a/apps/mobile/src/features/Signers/index.tsx b/apps/mobile/src/features/Signers/index.tsx new file mode 100644 index 0000000000..7a56ad945f --- /dev/null +++ b/apps/mobile/src/features/Signers/index.tsx @@ -0,0 +1,2 @@ +import { SignersContainer } from './Signers.container' +export { SignersContainer } diff --git a/apps/mobile/src/features/TxHistory/TxHistory.container.tsx b/apps/mobile/src/features/TxHistory/TxHistory.container.tsx new file mode 100644 index 0000000000..1adb86a82d --- /dev/null +++ b/apps/mobile/src/features/TxHistory/TxHistory.container.tsx @@ -0,0 +1,38 @@ +import React, { useEffect, useState } from 'react' +import { useSelector } from 'react-redux' +import { safelyDecodeURIComponent } from 'expo-router/build/fork/getStateFromPath-forks' + +import { useGetTxsHistoryQuery } from '@safe-global/store/gateway' +import type { TransactionItemPage } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' +import { selectActiveSafe } from '@/src/store/activeSafeSlice' +import { TxHistoryList } from '@/src/features/TxHistory/components/TxHistoryList' + +export function TxHistoryContainer() { + const [pageUrl, setPageUrl] = useState() + const [list, setList] = useState([]) + const activeSafe = useSelector(selectActiveSafe) + const { data, refetch, isFetching, isUninitialized } = useGetTxsHistoryQuery({ + chainId: activeSafe.chainId, + safeAddress: activeSafe.address, + cursor: pageUrl && safelyDecodeURIComponent(pageUrl?.split('cursor=')[1]), + }) + + useEffect(() => { + if (!data?.results) { + return + } + + setList((prev) => [...prev, ...data.results]) + }, [data]) + + const onEndReached = () => { + if (!data?.next) { + return + } + + setPageUrl(data.next) + refetch() + } + + return +} diff --git a/apps/mobile/src/features/TxHistory/components/TxHistoryList/TxHistoryList.tsx b/apps/mobile/src/features/TxHistory/components/TxHistoryList/TxHistoryList.tsx new file mode 100644 index 0000000000..fda4ac0a8b --- /dev/null +++ b/apps/mobile/src/features/TxHistory/components/TxHistoryList/TxHistoryList.tsx @@ -0,0 +1,35 @@ +import { Spinner } from 'tamagui' +import React, { useMemo } from 'react' +import { SectionList } from 'react-native' + +import { SafeListItem } from '@/src/components/SafeListItem' +import { TransactionItem } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' +import { getTxHash, GroupedTxsWithTitle, groupTxsByDate } from '@/src/features/TxHistory/utils' +import { HistoryTransactionItems } from '@safe-global/store/gateway/types' +import { renderItem } from '@/src/features/TxHistory/utils' + +interface TxHistoryList { + transactions?: HistoryTransactionItems[] + onEndReached: (info: { distanceFromEnd: number }) => void + isLoading?: boolean +} + +export function TxHistoryList({ transactions, onEndReached, isLoading }: TxHistoryList) { + const groupedList: GroupedTxsWithTitle[] = useMemo(() => { + return groupTxsByDate(transactions || []) + }, [transactions]) + + return ( + (Array.isArray(item) ? getTxHash(item[0]) + index : getTxHash(item) + index)} + renderItem={renderItem} + onEndReached={onEndReached} + ListFooterComponent={isLoading ? : undefined} + renderSectionHeader={({ section: { title } }) => } + /> + ) +} diff --git a/apps/mobile/src/features/TxHistory/components/TxHistoryList/index.ts b/apps/mobile/src/features/TxHistory/components/TxHistoryList/index.ts new file mode 100644 index 0000000000..86e3dcfe65 --- /dev/null +++ b/apps/mobile/src/features/TxHistory/components/TxHistoryList/index.ts @@ -0,0 +1,2 @@ +import { TxHistoryList } from './TxHistoryList' +export { TxHistoryList } diff --git a/apps/mobile/src/features/TxHistory/index.tsx b/apps/mobile/src/features/TxHistory/index.tsx new file mode 100644 index 0000000000..be8a9b5471 --- /dev/null +++ b/apps/mobile/src/features/TxHistory/index.tsx @@ -0,0 +1,2 @@ +import { TxHistoryContainer } from './TxHistory.container' +export { TxHistoryContainer } diff --git a/apps/mobile/src/features/TxHistory/utils.tsx b/apps/mobile/src/features/TxHistory/utils.tsx new file mode 100644 index 0000000000..1106268ee4 --- /dev/null +++ b/apps/mobile/src/features/TxHistory/utils.tsx @@ -0,0 +1,63 @@ +import { DateLabel, TransactionItem } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' +import { groupBulkTxs } from '@/src/utils/transactions' +import { formatWithSchema } from '@/src/utils/date' +import { isDateLabel } from '@/src/utils/transaction-guards' +import { HistoryTransactionItems } from '@safe-global/store/gateway/types' +import { View } from 'tamagui' +import { TxGroupedCard } from '@/src/components/transactions-list/Card/TxGroupedCard' +import { TxInfo } from '@/src/components/TxInfo' +import React from 'react' + +export type GroupedTxs = (T | T[])[] + +export interface GroupedTxsWithTitle { + title: string + data: (T | T[])[] +} + +export const groupTxsByDate = (list: HistoryTransactionItems[]) => { + return groupByDateLabel(groupBulkTxs(list)) +} + +const getDateLabel = (item: HistoryTransactionItems) => { + if (isDateLabel(item)) { + return formatWithSchema(item.timestamp, 'MMM d, yyyy') + } + return undefined +} + +const groupByDateLabel = ( + list: GroupedTxs, +): GroupedTxsWithTitle>[] => { + const groupedTx: GroupedTxsWithTitle>[] = [] + + list.forEach((item) => { + if (Array.isArray(item) || item.type === 'TRANSACTION') { + if (groupedTx.length === 0) { + groupedTx.push({ title: 'Unknown Date', data: [] }) + } + groupedTx[groupedTx.length - 1].data.push(item as Exclude) + } else { + const title = getDateLabel(item) + if (title) { + groupedTx.push({ title, data: [] }) + } + } + }) + + return groupedTx +} +export const getTxHash = (item: HistoryTransactionItems): string => { + if (item.type !== 'TRANSACTION') { + return '' + } + + return item.transaction.txHash as unknown as string +} +export const renderItem = ({ item, index }: { item: TransactionItem | TransactionItem[]; index: number }) => { + return ( + + {Array.isArray(item) ? : } + + ) +} diff --git a/apps/mobile/src/hooks/useCopyAndDispatchToast/index.ts b/apps/mobile/src/hooks/useCopyAndDispatchToast/index.ts new file mode 100644 index 0000000000..1d3f365a76 --- /dev/null +++ b/apps/mobile/src/hooks/useCopyAndDispatchToast/index.ts @@ -0,0 +1,13 @@ +import { useToastController } from '@tamagui/toast' +import Clipboard from '@react-native-clipboard/clipboard' + +export const useCopyAndDispatchToast = () => { + const toast = useToastController() + return (value: string) => { + Clipboard.setString(value) + toast.show('Address copied.', { + native: false, + duration: 2000, + }) + } +} diff --git a/apps/mobile/src/hooks/useCopyAndDispatchToast/useCopyAndDisptachToast.test.tsx b/apps/mobile/src/hooks/useCopyAndDispatchToast/useCopyAndDisptachToast.test.tsx new file mode 100644 index 0000000000..20126ff75a --- /dev/null +++ b/apps/mobile/src/hooks/useCopyAndDispatchToast/useCopyAndDisptachToast.test.tsx @@ -0,0 +1,50 @@ +import { renderHook, act } from '@/src/tests/test-utils' +import Clipboard from '@react-native-clipboard/clipboard' +import { useToastController } from '@tamagui/toast' +import { useCopyAndDispatchToast } from './index' + +jest.mock('@react-native-clipboard/clipboard', () => ({ + setString: jest.fn(), +})) + +jest.mock('@tamagui/toast', () => ({ + useToastController: jest.fn(), +})) + +describe('useCopyAndDispatchToast', () => { + const mockShow = jest.fn() + + beforeEach(() => { + ;(useToastController as jest.Mock).mockReturnValue({ + show: mockShow, + }) + }) + + afterEach(() => { + jest.clearAllMocks() + }) + + it('copies the provided value to the clipboard', () => { + const { result } = renderHook(() => useCopyAndDispatchToast()) + const testValue = 'Test Clipboard Value' + + act(() => { + result.current(testValue) + }) + + expect(Clipboard.setString).toHaveBeenCalledWith(testValue) + }) + + it('displays a toast message after copying', () => { + const { result } = renderHook(() => useCopyAndDispatchToast()) + + act(() => { + result.current('Any Value') + }) + + expect(mockShow).toHaveBeenCalledWith('Address copied.', { + native: false, + duration: 2000, + }) + }) +}) diff --git a/apps/mobile/src/hooks/usePendingTxs/index.ts b/apps/mobile/src/hooks/usePendingTxs/index.ts new file mode 100644 index 0000000000..ec803e2a06 --- /dev/null +++ b/apps/mobile/src/hooks/usePendingTxs/index.ts @@ -0,0 +1,54 @@ +import { useGetPendingTxsQuery } from '@safe-global/store/gateway' +import { useEffect, useMemo, useState } from 'react' +import { useSelector } from 'react-redux' +import { QueuedItemPage } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' +import { groupPendingTxs } from '@/src/features/PendingTx/utils' +import { selectActiveSafe } from '@/src/store/activeSafeSlice' + +const usePendingTxs = () => { + const activeSafe = useSelector(selectActiveSafe) + const [list, setList] = useState([]) + const [pageUrl, setPageUrl] = useState() + + const { data, isLoading, isFetching, refetch, isUninitialized } = useGetPendingTxsQuery( + { + chainId: activeSafe.chainId, + safeAddress: activeSafe.address, + cursor: pageUrl, + }, + { + skip: !activeSafe.chainId, + }, + ) + + useEffect(() => { + if (!data?.results) { + return + } + + setList((prev) => [...prev, ...data.results]) + }, [data]) + + const fetchMoreTx = async () => { + if (!data?.next) { + return + } + + setPageUrl(data.next) + + refetch() + } + + const pendingTxs = useMemo(() => groupPendingTxs(list || []), [list]) + + return { + hasMore: Boolean(data?.next), + amount: pendingTxs.amount, + data: pendingTxs.sections, + fetchMoreTx, + isLoading: isLoading || isUninitialized, + isFetching: isFetching, + } +} + +export default usePendingTxs diff --git a/apps/mobile/src/hooks/useTransactionType/index.tsx b/apps/mobile/src/hooks/useTransactionType/index.tsx new file mode 100644 index 0000000000..f7d39b775f --- /dev/null +++ b/apps/mobile/src/hooks/useTransactionType/index.tsx @@ -0,0 +1,156 @@ +import { useMemo } from 'react' +import type { AnyAppDataDocVersion, latest } from '@cowprotocol/app-data' +import { SettingsInfoType, TransactionInfoType } from '@safe-global/store/gateway/types' +import type { Transaction, AddressInfo } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' +import { + isCancellationTxInfo, + isModuleExecutionInfo, + isMultiSendTxInfo, + isOutgoingTransfer, + isTxQueued, +} from '@/src/utils/transaction-guards' +import { SafeFontIcon } from '@/src/components/SafeFontIcon/SafeFontIcon' +import { SwapOrderTransactionInfo } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +const getTxTo = ({ txInfo }: Pick): AddressInfo | undefined => { + switch (txInfo.type) { + case TransactionInfoType.CREATION: { + return txInfo.factory + } + case TransactionInfoType.TRANSFER: { + return txInfo.recipient + } + case TransactionInfoType.SETTINGS_CHANGE: { + return undefined + } + case TransactionInfoType.CUSTOM: { + return txInfo.to + } + } +} + +interface TxType { + text: string + icon?: string | React.ReactElement + image: string | React.ReactElement +} + +export const getOrderClass = (order: Pick): latest.OrderClass1 => { + const fullAppData = order.fullAppData as AnyAppDataDocVersion + const orderClass = (fullAppData?.metadata?.orderClass as latest.OrderClass)?.orderClass + + return orderClass || 'market' +} + +export const getTransactionType = (tx: Transaction): TxType => { + const toAddress = getTxTo(tx) + + switch (tx.txInfo.type) { + case TransactionInfoType.CREATION: { + return { + image: toAddress?.logoUri || , + icon: toAddress?.logoUri || , + text: 'Safe Account created', + } + } + case TransactionInfoType.SWAP_TRANSFER: + case TransactionInfoType.TRANSFER: { + const isSendTx = isOutgoingTransfer(tx.txInfo) + const icon = isSendTx ? ( + + ) : ( + + ) + return { + icon, + image: 'https://safe-transaction-assets.safe.global/chains/1/currency_logo.png', + text: isSendTx ? (isTxQueued(tx.txStatus) ? 'Send' : 'Sent') : 'Received', + } + } + case TransactionInfoType.SETTINGS_CHANGE: { + // deleteGuard doesn't exist in Solidity + // It is decoded as 'setGuard' with a settingsInfo.type of 'DELETE_GUARD' + const isDeleteGuard = tx.txInfo.settingsInfo?.type === SettingsInfoType.DELETE_GUARD + + return { + image: , + icon: , + text: isDeleteGuard ? 'deleteGuard' : tx.txInfo.dataDecoded.method, + } + } + + case TransactionInfoType.SWAP_ORDER: { + const orderClass = getOrderClass(tx.txInfo) + const altText = orderClass === 'limit' ? 'Limit order' : 'Swap order' + + return { + image: , + icon: , + text: altText, + } + } + case TransactionInfoType.TWAP_ORDER: { + return { + image: , + icon: , + text: 'TWAP order', + } + } + case TransactionInfoType.CUSTOM: { + if (isMultiSendTxInfo(tx.txInfo) && !tx.safeAppInfo) { + return { + image: , + icon: , + text: 'Batch', + } + } + + if (isModuleExecutionInfo(tx.executionInfo)) { + return { + image: toAddress?.logoUri || , + icon: , + text: toAddress?.name || 'Contract interaction', + } + } + + if (isCancellationTxInfo(tx.txInfo)) { + return { + image: , + icon: , + text: 'On-chain rejection', + } + } + + return { + image: toAddress?.logoUri || , + icon: , + text: toAddress?.name || 'Contract interaction', + } + } + default: { + if (tx.safeAppInfo) { + return { + image: tx.safeAppInfo.logoUri || '', + icon: , + text: tx.safeAppInfo.name, + } + } + + return { + icon: , + image: , + text: 'Contract interaction', + } + } + } +} + +// We're going to need the address book in the future +// rename it to useTransactionNormalizer +export const useTransactionType = (tx: Transaction): TxType => { + // addressBook = useAddressBook + + return useMemo(() => { + return getTransactionType(tx) + }, [tx]) +} diff --git a/apps/mobile/src/hooks/useTransactionType/useTransactionType.test.tsx b/apps/mobile/src/hooks/useTransactionType/useTransactionType.test.tsx new file mode 100644 index 0000000000..429fb848c1 --- /dev/null +++ b/apps/mobile/src/hooks/useTransactionType/useTransactionType.test.tsx @@ -0,0 +1,161 @@ +import { renderHook } from '@/src/tests/test-utils' +import { useTransactionType } from '.' +import { mockTransactionSummary, mockTransferWithInfo } from '@/src/tests/mocks' +import { TransactionInfoType, TransactionStatus, TransferDirection } from '@safe-global/store/gateway/types' + +describe('useTransactionType', () => { + it('should be a Received transaction', () => { + const { result } = renderHook(() => useTransactionType(mockTransactionSummary)) + + expect(result.current.text).toBe('Received') + }) + + it('should be a Creation transaction', () => { + const { result } = renderHook(() => + useTransactionType({ + ...mockTransactionSummary, + txInfo: mockTransferWithInfo({ + type: TransactionInfoType.CREATION, + }), + }), + ) + + expect(result.current.text).toBe('Safe Account created') + }) + + it('should be a outgoing transfer transaction', () => { + const { result } = renderHook(() => + useTransactionType({ + ...mockTransactionSummary, + txInfo: mockTransferWithInfo({ + type: TransactionInfoType.TRANSFER, + direction: TransferDirection.OUTGOING, + }), + }), + ) + + expect(result.current.text).toBe('Sent') + }) + + it('should be a outgoing transfer transaction awaiting for execution', () => { + const { result } = renderHook(() => + useTransactionType({ + ...mockTransactionSummary, + txStatus: TransactionStatus.AWAITING_EXECUTION, + txInfo: mockTransferWithInfo({ + type: TransactionInfoType.TRANSFER, + direction: TransferDirection.OUTGOING, + }), + }), + ) + + expect(result.current.text).toBe('Send') + }) + + it('should return the type for a SETTINGS_CHANGE transaction', () => { + const { result } = renderHook(() => + useTransactionType({ + ...mockTransactionSummary, + txStatus: TransactionStatus.SUCCESS, + txInfo: mockTransferWithInfo({ + type: TransactionInfoType.SETTINGS_CHANGE, + }), + }), + ) + + expect(result.current.text).toBe('mockMethod') + }) + + it('should return the type for a SWAP_ORDER transaction', () => { + const { result } = renderHook(() => + useTransactionType({ + ...mockTransactionSummary, + txStatus: TransactionStatus.SUCCESS, + txInfo: mockTransferWithInfo({ + type: TransactionInfoType.SWAP_ORDER, + }), + }), + ) + + expect(result.current.text).toBe('Swap order') + }) + + it('should return the type for a TWAP_ORDER transaction', () => { + const { result } = renderHook(() => + useTransactionType({ + ...mockTransactionSummary, + txStatus: TransactionStatus.SUCCESS, + txInfo: mockTransferWithInfo({ + type: TransactionInfoType.TWAP_ORDER, + }), + }), + ) + + expect(result.current.text).toBe('TWAP order') + }) + + it('should return the type for a CUSTOM transaction', () => { + const { result } = renderHook(() => + useTransactionType({ + ...mockTransactionSummary, + txStatus: TransactionStatus.SUCCESS, + txInfo: mockTransferWithInfo({ + type: TransactionInfoType.CUSTOM, + }), + }), + ) + + expect(result.current.text).toBe('Contract interaction') + }) + + it('should return a `Batch` text for a CUSTOM batch transaction', () => { + const { result } = renderHook(() => + useTransactionType({ + ...mockTransactionSummary, + txStatus: TransactionStatus.SUCCESS, + txInfo: mockTransferWithInfo({ + type: TransactionInfoType.CUSTOM, + methodName: 'multiSend', + actionCount: 2, + }), + safeAppInfo: undefined, + }), + ) + + expect(result.current.text).toBe('Batch') + }) + + it('should return the default transaction information', () => { + const { result } = renderHook(() => + useTransactionType({ + ...mockTransactionSummary, + txStatus: TransactionStatus.SUCCESS, + txInfo: mockTransferWithInfo({ + type: 'something else' as TransactionInfoType, + }), + safeAppInfo: undefined, + }), + ) + + expect(result.current.text).toBe('Contract interaction') + }) + + it('should return the default transaction information with safe information', () => { + const { result } = renderHook(() => + useTransactionType({ + ...mockTransactionSummary, + txStatus: TransactionStatus.SUCCESS, + txInfo: mockTransferWithInfo({ + type: 'something else' as TransactionInfoType, + }), + safeAppInfo: { + name: 'somename', + url: 'http://google.com', + logoUri: 'myurl.com', + }, + }), + ) + + expect(result.current.text).toBe('somename') + }) +}) diff --git a/apps/mobile/src/navigation/useScrollableHeader.tsx b/apps/mobile/src/navigation/useScrollableHeader.tsx new file mode 100644 index 0000000000..9df2b05468 --- /dev/null +++ b/apps/mobile/src/navigation/useScrollableHeader.tsx @@ -0,0 +1,50 @@ +// useScrollableHeader.ts +import { useEffect } from 'react' +import { NativeSyntheticEvent, NativeScrollEvent } from 'react-native' +import { useNavigation } from 'expo-router' +import Animated, { useSharedValue, useAnimatedStyle, withTiming } from 'react-native-reanimated' + +interface UseScrollableHeaderProps { + children: React.ReactNode + scrollYThreshold?: number // Default threshold for opacity change +} + +/** + * https://reactnavigation.org/docs/native-stack-navigator/#headerlargetitle + * HeaderLargeTitle only works when the header title is a string. + * If one tries to pass a component as a header title, the LargeHeaderTitle will not work. + * + * This hook is a workaround to use a custom component as a header title and update the opacity of the header dynamically. + * + * @param children + * @param scrollYThreshold + */ +export const useScrollableHeader = ({ children, scrollYThreshold = 37 }: UseScrollableHeaderProps) => { + const navigation = useNavigation() + const opacity = useSharedValue(0) + + // Update navigation header title dynamically + useEffect(() => { + navigation.setOptions({ + headerTitle: () => ( + + {children} + + ), + }) + }, [navigation, children]) + + const animatedHeaderStyle = useAnimatedStyle(() => ({ + opacity: withTiming(opacity.value, { duration: 300 }), + })) + + // Scroll event handler for updating opacity + const handleScroll = (event: NativeSyntheticEvent) => { + const scrollY = event.nativeEvent.contentOffset.y + opacity.value = scrollY > scrollYThreshold ? 1 : 0 + } + + return { + handleScroll, + } +} diff --git a/apps/mobile/src/react-app-env.d.ts b/apps/mobile/src/react-app-env.d.ts new file mode 100644 index 0000000000..be0fb4f82f --- /dev/null +++ b/apps/mobile/src/react-app-env.d.ts @@ -0,0 +1,5 @@ +declare module '*.png' +declare module '*.svg' +declare module '*.jpeg' +declare module '*.jpg' +declare module '*.ttf' diff --git a/apps/mobile/src/services/exceptions/utils.test.ts b/apps/mobile/src/services/exceptions/utils.test.ts new file mode 100644 index 0000000000..0c6b91f763 --- /dev/null +++ b/apps/mobile/src/services/exceptions/utils.test.ts @@ -0,0 +1,33 @@ +import { asError } from './utils' + +describe('Exceptions Utils', () => { + it('should throw an error from an Error instance', () => { + const message = 'This is an error message' + const errorFn = () => { + throw asError(new Error(message)) + } + + expect(errorFn).toThrow(Error) + expect(errorFn).toThrow(message) + }) + + it('should throw an Error from a json string', () => { + const message = { myError: 'something', nested: { id: 1 } } + const errorFn = () => { + throw asError(message) + } + + expect(errorFn).toThrow(Error) + expect(errorFn).toThrow(JSON.stringify(message)) + }) + + it('should throw an Error from a string', () => { + const message = 'some error' + const errorFn = () => { + throw asError(message) + } + + expect(errorFn).toThrow(Error) + expect(errorFn).toThrow(message) + }) +}) diff --git a/apps/mobile/src/services/exceptions/utils.ts b/apps/mobile/src/services/exceptions/utils.ts new file mode 100644 index 0000000000..710ac44641 --- /dev/null +++ b/apps/mobile/src/services/exceptions/utils.ts @@ -0,0 +1,19 @@ +export const asError = (thrown: unknown): Error => { + if (thrown instanceof Error) { + return thrown + } + + let message: string + + if (typeof thrown === 'string') { + message = thrown + } else { + try { + message = JSON.stringify(thrown) + } catch { + message = String(thrown) + } + } + + return new Error(message) +} diff --git a/apps/mobile/src/store/activeChainSlice.ts b/apps/mobile/src/store/activeChainSlice.ts new file mode 100644 index 0000000000..fc5dc964e6 --- /dev/null +++ b/apps/mobile/src/store/activeChainSlice.ts @@ -0,0 +1,22 @@ +import { createSelector, createSlice, PayloadAction } from '@reduxjs/toolkit' +import { RootState } from '.' +import { selectChainById } from './chains' + +const initialState = { id: '1' } + +const activeChainSlice = createSlice({ + name: 'activeChain', + initialState, + reducers: { + switchActiveChain: (state, action: PayloadAction<{ id: string }>) => { + return action.payload + }, + }, +}) + +export const { switchActiveChain } = activeChainSlice.actions + +export const selectActiveChain = (state: RootState) => selectChainById(state, state.activeChain.id) +export const selectNativeCurrency = createSelector([selectActiveChain], (activeChain) => activeChain?.nativeCurrency) + +export default activeChainSlice.reducer diff --git a/apps/mobile/src/store/activeSafeSlice.ts b/apps/mobile/src/store/activeSafeSlice.ts new file mode 100644 index 0000000000..f600545480 --- /dev/null +++ b/apps/mobile/src/store/activeSafeSlice.ts @@ -0,0 +1,32 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit' +import { Address } from '@/src/types/address' +import { RootState } from '.' + +interface SafeInfo { + address: Address + chainId: string +} + +const initialState: SafeInfo = { + address: '0xA77DE01e157f9f57C7c4A326eeE9C4874D0598b6', + chainId: '1', +} + +const activeSafeSlice = createSlice({ + name: 'activeSafe', + initialState, + reducers: { + setActiveSafe: (state, action: PayloadAction) => { + return action.payload + }, + clearActiveSafe: () => { + return initialState + }, + }, +}) + +export const { setActiveSafe, clearActiveSafe } = activeSafeSlice.actions + +export const selectActiveSafe = (state: RootState) => state.activeSafe + +export default activeSafeSlice.reducer diff --git a/apps/mobile/src/store/chains/index.ts b/apps/mobile/src/store/chains/index.ts new file mode 100644 index 0000000000..ed675e21b7 --- /dev/null +++ b/apps/mobile/src/store/chains/index.ts @@ -0,0 +1,15 @@ +import { apiSliceWithChainsConfig, chainsAdapter, initialState } from '@safe-global/store/gateway/chains' +import { createSelector } from '@reduxjs/toolkit' +import { RootState } from '..' + +const selectChainsResult = apiSliceWithChainsConfig.endpoints.getChainsConfig.select() + +const selectChainsData = createSelector(selectChainsResult, (result) => { + return result.data ?? initialState +}) + +const { selectAll: selectAllChains, selectById } = chainsAdapter.getSelectors(selectChainsData) + +export const selectChainById = (state: RootState, chainId: string) => selectById(state, chainId) +export const { useGetChainsConfigQuery } = apiSliceWithChainsConfig +export { selectAllChains } diff --git a/apps/mobile/src/store/hooks/index.ts b/apps/mobile/src/store/hooks/index.ts new file mode 100644 index 0000000000..66442f10fa --- /dev/null +++ b/apps/mobile/src/store/hooks/index.ts @@ -0,0 +1,7 @@ +import { useDispatch, useSelector } from 'react-redux' +import { AppDispatch, RootState } from '../index' + +// It's recommended to extend the default redux hooks +// https://redux-toolkit.js.org/tutorials/typescript#define-typed-hooks +export const useAppDispatch = useDispatch.withTypes() +export const useAppSelector = useSelector.withTypes() diff --git a/apps/mobile/src/store/hooks/storeHooks.test.ts b/apps/mobile/src/store/hooks/storeHooks.test.ts new file mode 100644 index 0000000000..8a80d5977a --- /dev/null +++ b/apps/mobile/src/store/hooks/storeHooks.test.ts @@ -0,0 +1,30 @@ +import { renderHook, act } from '@/src/tests/test-utils' +import { useAppSelector, useAppDispatch } from '.' +import { addTx, txHistorySelector } from '../txHistorySlice' +import { mockHistoryPageItem } from '@/src/tests/mocks' +import { TransactionListItemType } from '@safe-global/store/gateway/types' + +const mockHook = () => { + const dispatch = useAppDispatch() + const historyList = useAppSelector(txHistorySelector) + + return { dispatch, historyList } +} + +describe('React Redux Hooks', () => { + it(`should dispatch an action to a slice`, () => { + const { result } = renderHook(() => mockHook()) + + expect(result.current.historyList.results).toHaveLength(0) + + act(() => { + result.current.dispatch( + addTx({ + item: mockHistoryPageItem(TransactionListItemType.TRANSACTION), + }), + ) + }) + + expect(result.current.historyList.results).toHaveLength(1) + }) +}) diff --git a/apps/mobile/src/store/index.ts b/apps/mobile/src/store/index.ts new file mode 100644 index 0000000000..4f078cd2e3 --- /dev/null +++ b/apps/mobile/src/store/index.ts @@ -0,0 +1,51 @@ +import { combineReducers, configureStore } from '@reduxjs/toolkit' +import { persistStore, persistReducer, FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER } from 'redux-persist' +import { reduxStorage } from './storage' +import txHistory from './txHistorySlice' +import activeChain from './activeChainSlice' +import activeSafe from './activeSafeSlice' +import { cgwClient, setBaseUrl } from '@safe-global/store/gateway/cgwClient' +import devToolsEnhancer from 'redux-devtools-expo-dev-plugin' +import { GATEWAY_URL, isTestingEnv } from '../config/constants' + +setBaseUrl(GATEWAY_URL) +const persistConfig = { + key: 'root', + version: 1, + storage: reduxStorage, + blacklist: [cgwClient.reducerPath], +} +export const rootReducer = combineReducers({ + txHistory, + activeChain, + activeSafe, + [cgwClient.reducerPath]: cgwClient.reducer, +}) + +const persistedReducer = persistReducer(persistConfig, rootReducer) + +export const makeStore = () => + configureStore({ + reducer: persistedReducer, + devTools: false, + middleware: (getDefaultMiddleware) => + getDefaultMiddleware({ + serializableCheck: { + ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER], + }, + }).concat(cgwClient.middleware), + enhancers: (getDefaultEnhancers) => { + if (isTestingEnv) { + return getDefaultEnhancers() + } + + return getDefaultEnhancers().concat(devToolsEnhancer()) + }, + }) + +export const store = makeStore() + +export const persistor = persistStore(store) + +export type RootState = ReturnType +export type AppDispatch = typeof store.dispatch diff --git a/apps/mobile/src/store/storage.ts b/apps/mobile/src/store/storage.ts new file mode 100644 index 0000000000..1d8f617e75 --- /dev/null +++ b/apps/mobile/src/store/storage.ts @@ -0,0 +1,19 @@ +import { Storage } from 'redux-persist' +import { MMKV } from 'react-native-mmkv' + +const storage = new MMKV() + +export const reduxStorage: Storage = { + setItem: (key, value) => { + storage.set(key, value) + return Promise.resolve(true) + }, + getItem: (key) => { + const value = storage.getString(key) + return Promise.resolve(value) + }, + removeItem: (key) => { + storage.delete(key) + return Promise.resolve() + }, +} diff --git a/apps/mobile/src/store/txHistorySlice.ts b/apps/mobile/src/store/txHistorySlice.ts new file mode 100644 index 0000000000..f64b20408b --- /dev/null +++ b/apps/mobile/src/store/txHistorySlice.ts @@ -0,0 +1,23 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit' +import { RootState } from '.' +import { TransactionItemPage } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +const initialState: TransactionItemPage = { results: [] } + +const txHistorySlice = createSlice({ + name: 'txHistory', + initialState, + reducers: { + // TODO: this will be removed in the next task + // it is here just to test the action + addTx: (state, action: PayloadAction<{ item: TransactionItemPage['results'][number] }>) => { + state.results.push(action.payload.item) + }, + }, +}) + +export const { addTx } = txHistorySlice.actions + +export const txHistorySelector = (state: RootState) => state.txHistory + +export default txHistorySlice.reducer diff --git a/apps/mobile/src/tests/jest.setup.tsx b/apps/mobile/src/tests/jest.setup.tsx new file mode 100644 index 0000000000..8643b5a8d1 --- /dev/null +++ b/apps/mobile/src/tests/jest.setup.tsx @@ -0,0 +1,90 @@ +import '@testing-library/react-native/extend-expect' + +jest.useFakeTimers() + +/** + * This mock is necessary because useFonts is async and we get an error + * Warning: An update to FontProvider inside a test was not wrapped in act(...) + */ +jest.mock('expo-font', () => ({ + useFonts: () => [true], + isLoaded: () => true, +})) + +jest.mock('react-native-mmkv', () => ({ + MMKV: function () { + // @ts-ignore + this.getString = jest.fn() + // @ts-ignore + this.delete = jest.fn() + // @ts-ignore + this.set = jest.fn() + }, +})) + +jest.mock('expo-splash-screen', () => ({ + preventAutoHideAsync: jest.fn(), + setOptions: jest.fn(), + hideAsync: jest.fn(), +})) + +jest.mock('redux-persist', () => { + const real = jest.requireActual('redux-persist') + return { + ...real, + persistReducer: jest.fn().mockImplementation((config, reducers) => reducers), + } +}) +jest.mock('redux-devtools-expo-dev-plugin', () => ({ + default: () => jest.fn(), +})) +jest.mock('@gorhom/bottom-sheet', () => { + const reactNative = jest.requireActual('react-native') + const { useState, forwardRef, useImperativeHandle } = jest.requireActual('react') + const { View } = reactNative + const MockBottomSheetComponent = forwardRef( + ( + { + children, + backdropComponent: Backdrop, + backgroundComponent: Background, + }: { backgroundComponent: React.FC; backdropComponent: React.FC; children: React.ReactNode }, + ref: React.ForwardedRef, + ) => { + const [isOpened, setIsOpened] = useState() + + // Exposing some imperative methods to the parent. + useImperativeHandle(ref, () => ({ + // Add methods here that can be accessed using the ref from parent + present: () => { + setIsOpened(true) + }, + dismiss: () => { + setIsOpened(false) + }, + })) + + return isOpened ? ( + <> + + {children} + > + ) : null + }, + ) + + MockBottomSheetComponent.displayName = 'MockBottomSheetComponent' + + return { + __esModule: true, + default: View, + BottomSheetModal: MockBottomSheetComponent, + BottomSheetModalProvider: View, + BottomSheetView: View, + useBottomSheetModal: () => ({ + dismiss: () => { + return null + }, + }), + } +}) diff --git a/apps/mobile/src/tests/mocks.ts b/apps/mobile/src/tests/mocks.ts new file mode 100644 index 0000000000..7b1b4861ec --- /dev/null +++ b/apps/mobile/src/tests/mocks.ts @@ -0,0 +1,217 @@ +import { + PendingTransactionItems, + DetailedExecutionInfoType, + TransactionTokenType, + TransactionStatus, + TransactionInfoType, + TransferDirection, + ConflictType, + TransactionListItemType, + HistoryTransactionItems, +} from '@safe-global/store/gateway/types' +import { + TransferTransactionInfo, + SwapTransferTransactionInfo, + DateLabel, + TransactionQueuedItem, + LabelQueuedItem, + ConflictHeaderQueuedItem, + AddressInfo, + Transaction, +} from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +export const fakeToken = { + address: '0x1111111111', + decimals: 18, + name: 'Ether', + logoUri: 'https://safe-transaction-assets.safe.global/chains/1/chain_logo.png', + symbol: 'ETH', + trusted: false, +} +export const fakeToken2 = { + address: '0x1111111111', + decimals: 18, + name: 'SafeToken', + logoUri: 'https://safe-transaction-assets.safe.global/tokens/logos/0x5aFE3855358E112B5647B952709E6165e1c1eEEe.png', + symbol: 'SAFE', + trusted: false, +} +export const mockERC20Transfer: TransferTransactionInfo = { + type: TransactionInfoType.TRANSFER, + sender: { + value: '0x000000', + name: 'something', + }, + recipient: { + value: '0x0ab', + name: 'something', + }, + transferInfo: { + type: TransactionTokenType.ERC20, + tokenAddress: '0x000000', + value: '50000000000000000', + tokenName: 'Nevinha', + logoUri: 'https://safe-transaction-assets.safe.global/chains/1/chain_logo.png', + tokenSymbol: 'NEV', + trusted: false, + decimals: 18, + imitation: true, + }, + direction: TransferDirection.INCOMING, + humanDescription: 'a simple incoming transaction', +} +export const mockNFTTransfer: TransferTransactionInfo = { + type: TransactionInfoType.TRANSFER, + sender: { + value: '0x000000', + name: 'something', + }, + recipient: { + value: '0x0ab', + name: 'something', + }, + transferInfo: { + tokenId: '1', + type: TransactionTokenType.ERC721, + tokenAddress: '0x000000', + tokenName: 'My NFT', + tokenSymbol: 'NEV', + }, + direction: TransferDirection.OUTGOING, + humanDescription: 'a simple incoming transaction', +} +export const mockSwapTransfer: SwapTransferTransactionInfo = { + type: TransactionInfoType.SWAP_TRANSFER, + sender: { + value: '0x000000', + name: 'something', + }, + direction: TransferDirection.INCOMING, + recipient: { + value: '0x0ab', + name: 'something', + }, + transferInfo: { + type: TransactionTokenType.ERC20, + tokenAddress: '0x000000', + value: '50000000000000000', + trusted: false, + imitation: true, + }, + uid: '231', + humanDescription: 'here a human description', + status: 'fulfilled', + kind: 'buy', + orderClass: 'limit', + validUntil: 11902381293, + sellAmount: '50000000000000000', + buyAmount: '50000000000000000', + executedSellAmount: '50000000000000000', + executedBuyAmount: '50000000000000000', + sellToken: fakeToken2, + buyToken: fakeToken, + explorerUrl: 'http://google.com', + executedSurplusFee: '', + receiver: '0xbob', + owner: '0xalice', +} + +interface mockTransferWithInfoArgs { + type?: TransactionInfoType + direction?: TransferDirection + methodName?: string + actionCount?: number + isCancellation?: boolean + to?: AddressInfo + creator?: AddressInfo +} + +export const mockTransferWithInfo = ({ + type = TransactionInfoType.TRANSFER, + direction = TransferDirection.INCOMING, + methodName, + actionCount, + isCancellation, + to, + creator, +}: mockTransferWithInfoArgs): Transaction['txInfo'] => + ({ + type, + sender: { + value: '0x000000', + name: 'something', + }, + to, + creator, + methodName, + actionCount, + recipient: { + value: '0x0ab', + name: 'something', + }, + transferInfo: { + type: TransactionTokenType.ERC20, + tokenAddress: '0x000000', + value: '100000', + trusted: false, + imitation: true, + }, + dataDecoded: { + method: 'mockMethod', + }, + isCancellation, + direction, + humanDescription: 'a simple incoming transaction', + }) as Transaction['txInfo'] + +export const mockTransactionSummary: Transaction = { + id: 'id', + timestamp: 123123, + txStatus: TransactionStatus.SUCCESS, + txInfo: mockTransferWithInfo({ type: TransactionInfoType.TRANSFER }), + txHash: '0x0000000', + executionInfo: { + type: DetailedExecutionInfoType.MODULE, + address: { + value: '0x000000', + name: 'something', + }, + }, +} + +export const mockHistoryPageItem = (type: 'TRANSACTION'): HistoryTransactionItems => { + return { + type, + transaction: mockTransactionSummary, + conflictType: ConflictType.NONE, + } +} + +export const mockListItemByType = (type: TransactionListItemType): PendingTransactionItems | DateLabel => { + if (type === TransactionListItemType.DATE_LABEL) { + return { + type: TransactionListItemType.DATE_LABEL, + timestamp: 123123, + } as DateLabel + } + + if (type === TransactionListItemType.LABEL) { + return { + type: TransactionListItemType.LABEL, + label: 'label', + } as LabelQueuedItem + } + + if (type === TransactionListItemType.CONFLICT_HEADER) { + return { + type: TransactionListItemType.CONFLICT_HEADER, + nonce: 123, + } as ConflictHeaderQueuedItem + } + + return { + type: TransactionListItemType.TRANSACTION, + transaction: mockTransactionSummary, + conflictType: ConflictType.NONE, + } as TransactionQueuedItem +} diff --git a/apps/mobile/src/tests/test-utils.tsx b/apps/mobile/src/tests/test-utils.tsx new file mode 100644 index 0000000000..c2b1e81b2c --- /dev/null +++ b/apps/mobile/src/tests/test-utils.tsx @@ -0,0 +1,40 @@ +import { render as nativeRender, renderHook } from '@testing-library/react-native' +import { SafeThemeProvider } from '@/src/theme/provider/safeTheme' +import { Provider } from 'react-redux' +import { makeStore } from '../store' +import { PortalProvider } from 'tamagui' +import { BottomSheetModalProvider } from '@gorhom/bottom-sheet' + +const getProviders: () => React.FC<{ children: React.ReactElement }> = () => + function ProviderComponent({ children }: { children: React.ReactNode }) { + const store = makeStore() + + return ( + + + + {children} + + + + ) + } + +const customRender = (ui: React.ReactElement) => { + const wrapper = getProviders() + + return nativeRender(ui, { wrapper }) +} + +function customRenderHook(render: (initialProps: Props) => Result) { + const wrapper = getProviders() + + return renderHook(render, { wrapper }) +} + +// re-export everything +export * from '@testing-library/react-native' + +// override render method +export { customRender as render } +export { customRenderHook as renderHook } diff --git a/apps/mobile/src/theme/helpers/utils.ts b/apps/mobile/src/theme/helpers/utils.ts new file mode 100644 index 0000000000..e7e6404e8d --- /dev/null +++ b/apps/mobile/src/theme/helpers/utils.ts @@ -0,0 +1,61 @@ +interface Palette { + [key: string]: string | Palette +} + +type Flatten< + T extends Palette, + Prefix extends string = '', + Suffix extends string = '', + Depth extends number = 5, // Limit recursion depth +> = [Depth] extends [never] + ? object + : T extends object + ? { + [K in keyof T as T[K] extends object + ? never + : Prefix extends '' + ? `${K & string}${Suffix}` + : `${Prefix}${Capitalize}${Suffix}`]: T[K] + } & UnionToIntersection< + { + [K in keyof T]: T[K] extends object + ? Flatten}`, Suffix, Prev[Depth]> + : object + }[keyof T] + > + : object + +type Prev = [never, 0, 1, 2, 3, 4, 5] + +type UnionToIntersection = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never + +export function flattenPalette( + palette: T, + options?: { suffix?: Suffix }, +): Flatten { + const result = {} as Flatten + const suffix = (options?.suffix ?? '') as Suffix + + function flatten(current: Palette, parentKey = ''): void { + for (const key in current) { + if (Object.prototype.hasOwnProperty.call(current, key)) { + const value = current[key] + + const newKey = parentKey ? parentKey + key.charAt(0).toUpperCase() + key.slice(1) : key + + if (typeof value === 'object' && value !== null) { + flatten(value as Palette, newKey) + } else { + ;(result as Flatten)[(newKey + suffix) as keyof Flatten] = value as Flatten< + T, + '', + Suffix + >[keyof Flatten] + } + } + } + } + + flatten(palette) + return result +} diff --git a/apps/mobile/src/theme/navigation.ts b/apps/mobile/src/theme/navigation.ts new file mode 100644 index 0000000000..b24f8944e0 --- /dev/null +++ b/apps/mobile/src/theme/navigation.ts @@ -0,0 +1,28 @@ +import { getTokenValue } from 'tamagui' +import type { Theme } from '@react-navigation/native/src/types' +import { DarkTheme, DefaultTheme } from '@react-navigation/native' +export const NavDarkTheme: Theme = { + ...DarkTheme, + dark: true, + colors: { + primary: getTokenValue('$color.primaryMainDark'), + background: getTokenValue('$color.backgroundMainDark'), + card: getTokenValue('$color.backgroundMainDark'), + text: getTokenValue('$color.textPrimaryDark'), + border: getTokenValue('$color.backgroundMainDark'), + notification: getTokenValue('$color.warningBackgroundDark'), + }, +} + +export const NavLightTheme: Theme = { + ...DefaultTheme, + dark: false, + colors: { + primary: getTokenValue('$color.primaryMainLight'), + background: getTokenValue('$color.backgroundMainLight'), + card: getTokenValue('$color.backgroundMainLight'), + text: getTokenValue('$color.textPrimaryLight'), + border: getTokenValue('$color.backgroundMainLight'), + notification: getTokenValue('$color.warningBackgroundLight'), + }, +} diff --git a/apps/mobile/src/theme/palettes/darkPalette.ts b/apps/mobile/src/theme/palettes/darkPalette.ts new file mode 100644 index 0000000000..565d44ec91 --- /dev/null +++ b/apps/mobile/src/theme/palettes/darkPalette.ts @@ -0,0 +1,74 @@ +const darkPalette = { + text: { + primary: '#FFFFFF', + secondary: '#636669', + disabled: '#636669', + }, + primary: { + dark: '#0cb259', + main: '#12FF80', + light: '#A1A3A7', + }, + secondary: { + dark: '#636669', + main: '#FFFFFF', + light: '#B0FFC9', + background: '#1B2A22', + }, + border: { + main: '#636669', + light: '#303033', + background: '#121312', + }, + error: { + dark: '#411C20', + main: '#FF5F72', + light: '#FFB4BD', + background: '#2F2527', + }, + error1: { + main: '#49191F', + contrastText: '#FF5F72', + }, + success: { + dark: '#1D3D28', + main: '#00B460', + light: '#81C784', + background: '#1F2920', + }, + info: { + dark: '#52BFDC', + main: '#5FDDFF', + light: '#B7F0FF', + background: '#19252C', + }, + warning: { + dark: '#432F18', + main: '#FF8061', + light: '#FFBC9F', + background: '#2F2318', + }, + warning1: { + main: '#322211', + contrastText: '#FF8C00', + }, + background: { + default: '#121312', + main: '#121312', + paper: '#1C1C1C', + light: '#1B2A22', + skeleton: 'rgba(255, 255, 255, 0.04)', + }, + backdrop: { + main: '#636669', + }, + logo: { + main: '#FFFFFF', + background: '#303033', + }, + static: { + main: '#121312', + }, +} + +export default darkPalette diff --git a/apps/mobile/src/theme/palettes/lightPalette.ts b/apps/mobile/src/theme/palettes/lightPalette.ts new file mode 100644 index 0000000000..a8f1140c6c --- /dev/null +++ b/apps/mobile/src/theme/palettes/lightPalette.ts @@ -0,0 +1,74 @@ +const lightPalette = { + text: { + primary: '#121312', + secondary: '#A1A3A7', + disabled: '#DDDEE0', + }, + primary: { + dark: '#3c3c3c', + main: '#121312', + light: '#636669', + }, + secondary: { + dark: '#0FDA6D', + main: '#12FF80', + light: '#B0FFC9', + background: '#EFFFF4', + }, + border: { + main: '#A1A3A7', + light: '#DCDEE0', + background: '#F4F4F4', + }, + error: { + dark: '#411C20', + main: '#FF5F72', + light: '#FFB4BD', + background: '#FFE6EA', + }, + error1: { + main: '#49191F', + contrastText: '#FF5F72', + }, + success: { + dark: '#2D3D28', + main: '#00B460', + light: '#72F5B8', + background: '#EFFAF1', + }, + info: { + dark: '#553B1E', + main: '#5FDDFF', + light: '#B7F0FF', + background: '#EFFCFF', + }, + warning: { + dark: '#C04C32', + main: '#FF8061', + light: '#FFBC9F', + background: '#FFF1E0', + }, + warning1: { + main: '#fff0e0', + contrastText: '#FF8C00', + }, + background: { + default: '#FFFFFF', + main: '#FFFFFF', + paper: '#F4F4F4', + light: '#EFFFF4', + skeleton: 'rgba(255, 255, 255, 0.04)', + }, + backdrop: { + main: '#636669', + }, + logo: { + main: '#121312', + background: '#EEEFF0', + }, + static: { + main: '#121312', + }, +} + +export default lightPalette diff --git a/apps/mobile/src/theme/provider/font.tsx b/apps/mobile/src/theme/provider/font.tsx new file mode 100644 index 0000000000..20210d7c4d --- /dev/null +++ b/apps/mobile/src/theme/provider/font.tsx @@ -0,0 +1,38 @@ +import React, { useEffect } from 'react' +import { useFonts } from 'expo-font' +import DmSansSemiBold from '@tamagui/font-dm-sans/fonts/static/DMSans-SemiBold.ttf' +import DmSansRegular from '@tamagui/font-dm-sans/fonts/static/DMSans-Regular.ttf' +import DmSansMedium from '@tamagui/font-dm-sans/fonts/static/DMSans-Medium.ttf' +import * as SplashScreen from 'expo-splash-screen' + +interface SafeThemeProviderProps { + children: React.ReactNode +} + +// Prevent the splash screen from auto-hiding before asset loading is complete. +SplashScreen.preventAutoHideAsync() + +SplashScreen.setOptions({ + duration: 1000, + fade: true, +}) + +export const FontProvider = ({ children }: SafeThemeProviderProps) => { + const [loaded] = useFonts({ + 'DmSans-SemiBold': DmSansSemiBold, + 'DmSans-Regular': DmSansRegular, + 'DmSans-Medium': DmSansMedium, + }) + + useEffect(() => { + if (loaded) { + SplashScreen.hideAsync() + } + }, [loaded]) + + if (!loaded) { + return null + } + + return children +} diff --git a/apps/mobile/src/theme/provider/safeTheme.tsx b/apps/mobile/src/theme/provider/safeTheme.tsx new file mode 100644 index 0000000000..7340b83e68 --- /dev/null +++ b/apps/mobile/src/theme/provider/safeTheme.tsx @@ -0,0 +1,39 @@ +import React from 'react' +import { StatusBar, useColorScheme } from 'react-native' +import { ThemeProvider } from '@react-navigation/native' +import { TamaguiProvider } from '@tamagui/core' + +import { config } from '@/src/theme/tamagui.config' +import { NavDarkTheme, NavLightTheme } from '@/src/theme/navigation' +import { FontProvider } from '@/src/theme/provider/font' +import { isStorybookEnv } from '@/src/config/constants' +import { View } from 'tamagui' + +interface SafeThemeProviderProps { + children: React.ReactNode +} + +export const SafeThemeProvider = ({ children }: SafeThemeProviderProps) => { + const colorScheme = useColorScheme() + + const themeProvider = isStorybookEnv ? ( + + {children} + + ) : ( + {children} + ) + + return ( + + + + + {themeProvider} + + + ) +} diff --git a/apps/mobile/src/theme/provider/toastProvider.tsx b/apps/mobile/src/theme/provider/toastProvider.tsx new file mode 100644 index 0000000000..acde0f2fb2 --- /dev/null +++ b/apps/mobile/src/theme/provider/toastProvider.tsx @@ -0,0 +1,48 @@ +import React from 'react' +import { Toast, ToastProvider, ToastViewport, useToastState } from '@tamagui/toast' +import { useSafeAreaInsets } from 'react-native-safe-area-context' +import { YStack } from 'tamagui' + +interface SafeThemeProviderProps { + children: React.ReactNode +} + +export const SafeToastProvider = ({ children }: SafeThemeProviderProps) => { + const { top } = useSafeAreaInsets() + + return ( + + {children} + + + + ) +} + +const CurrentToast = () => { + const currentToast = useToastState() + + if (!currentToast || currentToast.isHandledNatively) { + return null + } + + return ( + + + {currentToast.title} + {!!currentToast.message && {currentToast.message}} + + + ) +} diff --git a/apps/mobile/src/theme/tamagui.config.ts b/apps/mobile/src/theme/tamagui.config.ts new file mode 100644 index 0000000000..72d1390768 --- /dev/null +++ b/apps/mobile/src/theme/tamagui.config.ts @@ -0,0 +1,173 @@ +import { createTamagui } from 'tamagui' +import { createDmSansFont } from '@tamagui/font-dm-sans' +import { badgeTheme } from '@/src/components/Badge/theme' +import { tokens } from '@/src/theme/tokens' +import { createAnimations } from '@tamagui/animations-moti' + +const DmSansFont = createDmSansFont({ + face: { + 500: { normal: 'DMSans-Medium', italic: 'DMSans-MediumItalic' }, + 600: { normal: 'DMSans-SemiBold', italic: 'DMSans-SemiBoldItalic' }, + 700: { normal: 'DMSans-Bold', italic: 'DMSans-BoldItalic' }, + }, +}) +export const config = createTamagui({ + fonts: { + body: DmSansFont, + heading: DmSansFont, + }, + themes: { + light: { + background: tokens.color.backgroundMainLight, + backgroundPaper: tokens.color.backgroundPaperLight, + backgroundHover: tokens.color.backgroundLightLight, + backgroundPress: tokens.color.primaryLightLight, + backgroundFocus: tokens.color.backgroundMainLight, + backgroundStrong: tokens.color.primaryDarkLight, + backgroundTransparent: 'transparent', + backgroundSkeleton: tokens.color.backgroundSkeletonLight, + color: tokens.color.textPrimaryLight, + primary: tokens.color.primaryMainLight, + colorHover: tokens.color.textSecondaryLight, + colorSecondary: tokens.color.textSecondaryLight, + borderLight: tokens.color.borderLightLight, + error: tokens.color.errorMainLight, + errorDark: tokens.color.errorDarkDark, + }, + light_label: { + color: tokens.color.textSecondaryLight, + }, + dark_label: { + color: tokens.color.textSecondaryDark, + }, + light_info: { + background: tokens.color.infoBackgroundLight, + color: tokens.color.infoMainLight, + }, + dark_info: { + background: tokens.color.infoBackgroundDark, + color: tokens.color.infoMainDark, + }, + ...badgeTheme, + light_success: { + background: tokens.color.successBackgroundLight, + color: tokens.color.successMainLight, + badgeBackground: tokens.color.successDarkLight, + badgeTextColor: tokens.color.backgroundMainDark, + }, + dark_success: { + background: tokens.color.successBackgroundDark, + color: tokens.color.successMainDark, + badgeBackground: tokens.color.successDarkDark, + }, + dark_success_light: {}, + light_warning: { + background: tokens.color.warning1MainLight, + color: tokens.color.warning1ContrastTextLight, + }, + dark_warning: { + background: tokens.color.warning1MainDark, + color: tokens.color.warning1ContrastTextDark, + }, + light_error: { + background: tokens.color.error1MainLight, + color: tokens.color.error1ContrastTextLight, + }, + dark_error: { + background: tokens.color.error1MainDark, + color: tokens.color.error1ContrastTextDark, + }, + light_logo: { + background: tokens.color.logoBackgroundLight, + }, + dark_logo: { + background: tokens.color.logoBackgroundDark, + }, + light_container: { + background: tokens.color.backgroundPaperLight, + }, + light_safe_list: { + background: tokens.color.backgroundDefaultLight, + }, + dark_safe_list: { + background: tokens.color.backgroundDefaultDark, + }, + dark: { + background: tokens.color.backgroundDefaultDark, + backgroundPaper: tokens.color.backgroundPaperDark, + backgroundHover: tokens.color.backgroundLightDark, + backgroundPress: tokens.color.primaryLightDark, + backgroundFocus: tokens.color.backgroundMainDark, + backgroundStrong: tokens.color.primaryDarkDark, + backgroundTransparent: 'transparent', + backgroundSkeleton: tokens.color.backgroundSkeletonLight, + color: tokens.color.textPrimaryDark, + primary: tokens.color.primaryMainDark, + borderLight: tokens.color.borderLightDark, + colorHover: tokens.color.textSecondaryDark, + colorSecondary: tokens.color.textSecondaryDark, + error: tokens.color.errorMainDark, + errorDark: tokens.color.errorDarkDark, + }, + }, + tokens, + animations: createAnimations({ + fast: { + type: 'spring', + damping: 20, + mass: 1.2, + stiffness: 250, + }, + medium: { + type: 'spring', + damping: 10, + mass: 0.9, + stiffness: 100, + }, + slow: { + type: 'spring', + damping: 20, + stiffness: 60, + }, + '100ms': { + type: 'timing', + duration: 100, + }, + '200ms': { + type: 'timing', + duration: 200, + }, + bouncy: { + type: 'spring', + damping: 10, + mass: 0.9, + stiffness: 100, + }, + lazy: { + type: 'spring', + damping: 20, + stiffness: 60, + }, + quick: { + type: 'spring', + damping: 20, + mass: 1.2, + stiffness: 250, + }, + tooltip: { + damping: 10, + mass: 0.9, + stiffness: 100, + }, + }), +}) + +export type Conf = typeof config + +declare module 'tamagui' { + interface TamaguiCustomConfig extends Conf { + tokens: typeof tokens + } +} + +export default config diff --git a/apps/mobile/src/theme/tokens.ts b/apps/mobile/src/theme/tokens.ts new file mode 100644 index 0000000000..5486830953 --- /dev/null +++ b/apps/mobile/src/theme/tokens.ts @@ -0,0 +1,41 @@ +import { createTokens } from 'tamagui' +import { radius, zIndex } from '@tamagui/themes' +import { flattenPalette } from '@/src/theme/helpers/utils' +import lightPalette from '@/src/theme/palettes/lightPalette' +import darkPalette from '@/src/theme/palettes/darkPalette' +const colors = { + ...flattenPalette(lightPalette, { suffix: 'Light' }), + ...flattenPalette(darkPalette, { suffix: 'Dark' }), +} +export const tokens = createTokens({ + color: colors, + space: { + $1: 4, + $2: 8, + true: 8, + $3: 12, + $4: 16, + $5: 20, + $6: 24, + $7: 28, + $8: 32, + $9: 36, + $10: 40, + }, + // space, + size: { + $1: 4, + $2: 8, + true: 8, + $3: 12, + $4: 16, + $5: 20, + $6: 24, + $7: 28, + $8: 32, + $9: 36, + $10: 40, + }, + zIndex, + radius, +}) diff --git a/apps/mobile/src/types/address.ts b/apps/mobile/src/types/address.ts new file mode 100644 index 0000000000..816b1b8638 --- /dev/null +++ b/apps/mobile/src/types/address.ts @@ -0,0 +1 @@ +export type Address = `0x${string}` diff --git a/apps/mobile/src/types/iconTypes.ts b/apps/mobile/src/types/iconTypes.ts new file mode 100644 index 0000000000..300a733c8f --- /dev/null +++ b/apps/mobile/src/types/iconTypes.ts @@ -0,0 +1,212 @@ +export type IconName = + | 'block' + | 'alert-triangle' + | 'alert' + | 'info' + | 'question' + | 'points' + | 'code-blocks' + | 'hardware' + | 'keystone' + | 'ledger' + | 'seed' + | 'key' + | 'dapp-logo' + | 'double-arrow' + | 'arrow-sort' + | 'dropdown-arrow-small' + | 'options-vertical' + | 'options-horizontal' + | 'check-oulined' + | 'check' + | 'check-filled' + | 'arrow-down-1' + | 'arrow-down' + | 'arrow-up' + | 'arrow-left' + | 'arrow-right' + | 'tag' + | 'camera' + | 'element-drag' + | 'transaction-partial-fill' + | 'rows-2' + | 'check-notifications' + | 'qr-code-1' + | 'scan-1' + | 'shield-crossed' + | 'shield' + | 'clock' + | 'update' + | 'repeat' + | 'download' + | 'upload' + | 'qr-code' + | 'scan' + | 'eye-n' + | 'eye-off' + | 'unlock' + | 'lock' + | 'replace-owner' + | 'edit-owner' + | 'add-owner' + | 'send-to' + | 'owners' + | 'link' + | 'share' + | 'external-link' + | 'export' + | 'paste' + | 'copy' + | 'sign' + | 'document' + | 'file' + | 'search' + | 'edit' + | 'delete' + | 'close-outlined' + | 'close-filled' + | 'close' + | 'plus-outlined' + | 'plus-filled' + | 'plus' + | 'transaction-Batch' + | 'blocks-1' + | 'rows-1' + | 'batch' + | 'filter' + | 'bookmark-filled' + | 'bookmark' + | 'transaction-recovery' + | 'transaction-change-settings' + | 'transaction-contract' + | 'transaction-execute' + | 'transaction-stake' + | 'transaction-swap' + | 'transaction-outgoing' + | 'transaction-incoming' + | 'mobile' + | 'wallet' + | 'appearance' + | 'experimental' + | 'desktop' + | 'safe' + | 'bell' + | 'lightbulb' + | 'what-is-new' + | 'blocks' + | 'rows' + | 'apps' + | 'address-book' + | 'chat' + | 'settings' + | 'transactions' + | 'nft' + | 'token' + | 'home' + +export const iconNames: IconName[] = [ + 'block', + 'alert-triangle', + 'alert', + 'info', + 'question', + 'points', + 'code-blocks', + 'hardware', + 'keystone', + 'ledger', + 'seed', + 'key', + 'dapp-logo', + 'double-arrow', + 'arrow-sort', + 'dropdown-arrow-small', + 'options-vertical', + 'options-horizontal', + 'check-oulined', + 'check', + 'check-filled', + 'arrow-down-1', + 'arrow-down', + 'arrow-up', + 'arrow-left', + 'arrow-right', + 'tag', + 'camera', + 'element-drag', + 'transaction-partial-fill', + 'rows-2', + 'check-notifications', + 'qr-code-1', + 'scan-1', + 'shield-crossed', + 'shield', + 'clock', + 'update', + 'repeat', + 'download', + 'upload', + 'qr-code', + 'scan', + 'eye-n', + 'eye-off', + 'unlock', + 'lock', + 'replace-owner', + 'edit-owner', + 'add-owner', + 'send-to', + 'owners', + 'link', + 'share', + 'external-link', + 'export', + 'paste', + 'copy', + 'sign', + 'document', + 'file', + 'search', + 'edit', + 'delete', + 'close-outlined', + 'close-filled', + 'close', + 'plus-outlined', + 'plus-filled', + 'plus', + 'transaction-Batch', + 'blocks-1', + 'rows-1', + 'batch', + 'filter', + 'bookmark-filled', + 'bookmark', + 'transaction-recovery', + 'transaction-change-settings', + 'transaction-contract', + 'transaction-execute', + 'transaction-stake', + 'transaction-swap', + 'transaction-outgoing', + 'transaction-incoming', + 'mobile', + 'wallet', + 'appearance', + 'experimental', + 'desktop', + 'safe', + 'bell', + 'lightbulb', + 'what-is-new', + 'blocks', + 'rows', + 'apps', + 'address-book', + 'chat', + 'settings', + 'transactions', + 'nft', + 'token', + 'home', +] diff --git a/apps/mobile/src/types/navigation.d.ts b/apps/mobile/src/types/navigation.d.ts new file mode 100644 index 0000000000..a35d3214c2 --- /dev/null +++ b/apps/mobile/src/types/navigation.d.ts @@ -0,0 +1,11 @@ +// navigation.d.ts + +export interface Screens {} + +export declare global { + namespace ReactNavigation { + interface RootParamList extends Screens { + settings: { safeAddress?: string } + } + } +} diff --git a/apps/mobile/src/utils/date.test.ts b/apps/mobile/src/utils/date.test.ts new file mode 100644 index 0000000000..121de73fc7 --- /dev/null +++ b/apps/mobile/src/utils/date.test.ts @@ -0,0 +1,43 @@ +import timezoneMock from 'timezone-mock' +import { currentMinutes, formatDateTime, formatTime, getCountdown, getPeriod } from './date' + +const MOCKED_TIMESTAMP = 1729506116962 + +describe('Date utils', () => { + beforeAll(() => { + timezoneMock.register('Etc/GMT-2') + jest.spyOn(Date, 'now').mockImplementation(() => MOCKED_TIMESTAMP) + }) + + it('should show the date in minutes', () => { + expect(currentMinutes()).toBe(28825101) + }) + + it('should format the date time based in a timestamp', () => { + expect(formatTime(MOCKED_TIMESTAMP)).toBe('12:21 PM') + }) + + it('should format the date based in a timestamp', () => { + expect(formatDateTime(MOCKED_TIMESTAMP)).toBe('Oct 21, 2024 - 12:21:56 PM') + }) + + it('should return a countdown object', () => { + expect(getCountdown(20000)).toStrictEqual({ + days: 0, + hours: 5, + minutes: 33, + }) + }) + + it('should get the time period in hours from seconds', () => { + expect(getPeriod(20000)).toBe('5 hours') + }) + + it('should get the time period in minutes from seconds', () => { + expect(getPeriod(2000)).toBe('33 minutes') + }) + + it('should get the time period in days from seconds', () => { + expect(getPeriod(2000000)).toBe('23 days') + }) +}) diff --git a/apps/mobile/src/utils/date.ts b/apps/mobile/src/utils/date.ts new file mode 100644 index 0000000000..6b24c8f6dd --- /dev/null +++ b/apps/mobile/src/utils/date.ts @@ -0,0 +1,41 @@ +import { format, formatDistanceToNow } from 'date-fns' + +export const currentMinutes = (): number => Math.floor(Date.now() / (1000 * 60)) + +export const formatWithSchema = (timestamp: number, schema: string): string => format(timestamp, schema) + +export const formatTime = (timestamp: number): string => formatWithSchema(timestamp, 'h:mm a') + +export const formatDateTime = (timestamp: number): string => formatWithSchema(timestamp, 'MMM d, yyyy - h:mm:ss a') + +export const formatTimeInWords = (timestamp: number): string => formatDistanceToNow(timestamp, { addSuffix: true }) + +export function getCountdown(seconds: number): { days: number; hours: number; minutes: number } { + const MINUTE_IN_SECONDS = 60 + const HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS + const DAY_IN_SECONDS = 24 * HOUR_IN_SECONDS + + const days = Math.floor(seconds / DAY_IN_SECONDS) + + const remainingSeconds = seconds % DAY_IN_SECONDS + const hours = Math.floor(remainingSeconds / HOUR_IN_SECONDS) + const minutes = Math.floor((remainingSeconds % HOUR_IN_SECONDS) / MINUTE_IN_SECONDS) + + return { days, hours, minutes } +} + +export function getPeriod(seconds: number): string | undefined { + const { days, hours, minutes } = getCountdown(seconds) + + if (days > 0) { + return `${days} day${days === 1 ? '' : 's'}` + } + + if (hours > 0) { + return `${hours} hour${hours === 1 ? '' : 's'}` + } + + if (minutes > 0) { + return `${minutes} minute${minutes === 1 ? '' : 's'}` + } +} diff --git a/apps/mobile/src/utils/formatters.ts b/apps/mobile/src/utils/formatters.ts new file mode 100644 index 0000000000..4ef155a16a --- /dev/null +++ b/apps/mobile/src/utils/formatters.ts @@ -0,0 +1,15 @@ +export const ellipsis = (str: string, length: number): string => { + return str.length > length ? `${str.slice(0, length)}...` : str +} + +export const shortenAddress = (address: string, length = 4): string => { + if (!address) { + return '' + } + + return `${address.slice(0, length + 2)}...${address.slice(-length)}` +} + +export const formatValue = (value: string, decimals: number): string => { + return (parseInt(value) / 10 ** decimals).toString().substring(0, 8) +} diff --git a/apps/mobile/src/utils/gateway.test.ts b/apps/mobile/src/utils/gateway.test.ts new file mode 100644 index 0000000000..80d2c7e3ab --- /dev/null +++ b/apps/mobile/src/utils/gateway.test.ts @@ -0,0 +1,62 @@ +import { getExplorerLink, getHashedExplorerUrl, _replaceTemplate } from './gateway' + +describe('gateway', () => { + describe('replaceTemplate', () => { + it('should replace template syntax with data', () => { + const uri = 'Hello {{this}}' + const data = { this: 'world' } + + const result = _replaceTemplate(uri, data) + expect(result).toEqual('Hello world') + }) + it("shouldn't replace non-template text", () => { + const uri = 'Hello this' + const data = { this: 'world' } + + const result = _replaceTemplate(uri, data) + expect(result).toEqual('Hello this') + }) + }) + + describe('getHashedExplorerUrl', () => { + it('should return a url with a transaction hash', () => { + const txHash = '0x4d32cc132307cde65b44162156f961ed421a84f83bb8cf3730c91f53374cc5de' + + const result = getHashedExplorerUrl(txHash, { + address: 'https://etherscan.io/address/{{address}}', + txHash: 'https://etherscan.io/tx/{{txHash}}', + api: 'https://api.etherscan.io/api?module={{module}}&action={{action}}&address={{address}}&apiKey={{apiKey}}', + }) + + expect(result).toEqual( + 'https://etherscan.io/tx/0x4d32cc132307cde65b44162156f961ed421a84f83bb8cf3730c91f53374cc5de', + ) + }) + it('should return a url with an address', () => { + const address = '0xabcdbc2ecb47642ee8cf52fd7b88fa42fbb69f98' + + const result = getHashedExplorerUrl(address, { + address: 'https://etherscan.io/address/{{address}}', + txHash: 'https://etherscan.io/tx/{{txHash}}', + api: 'https://api.etherscan.io/api?module={{module}}&action={{action}}&address={{address}}&apiKey={{apiKey}}', + }) + + expect(result).toEqual('https://etherscan.io/address/0xabcdbc2ecb47642ee8cf52fd7b88fa42fbb69f98') + }) + }) + + describe('getExplorerLink', () => { + it('should return an object with a href and title', () => { + const address = '0xabcdbc2ecb47642ee8cf52fd7b88fa42fbb69f98' + + const { href, title } = getExplorerLink(address, { + address: 'https://etherscan.io/address/{{address}}', + txHash: 'https://etherscan.io/tx/{{txHash}}', + api: 'https://api.etherscan.io/api?module={{module}}&action={{action}}&address={{address}}&apiKey={{apiKey}}', + }) + + expect(href).toEqual('https://etherscan.io/address/0xabcdbc2ecb47642ee8cf52fd7b88fa42fbb69f98') + expect(title).toEqual('View on etherscan.io') + }) + }) +}) diff --git a/apps/mobile/src/utils/gateway.ts b/apps/mobile/src/utils/gateway.ts new file mode 100644 index 0000000000..770301365f --- /dev/null +++ b/apps/mobile/src/utils/gateway.ts @@ -0,0 +1,28 @@ +import { type Chain } from '@safe-global/store/gateway/AUTO_GENERATED/chains' + +export const _replaceTemplate = (uri: string, data: Record): string => { + // Template syntax returned from gateway is {{this}} + const TEMPLATE_REGEX = /\{\{([^}]+)\}\}/g + + return uri.replace(TEMPLATE_REGEX, (_, key: string) => data[key]) +} + +export const getHashedExplorerUrl = ( + hash: string, + blockExplorerUriTemplate: Chain['blockExplorerUriTemplate'], +): string => { + const isTx = hash.length > 42 + const param = isTx ? 'txHash' : 'address' + + return _replaceTemplate(blockExplorerUriTemplate[param], { [param]: hash }) +} + +export const getExplorerLink = ( + hash: string, + blockExplorerUriTemplate: Chain['blockExplorerUriTemplate'], +): { href: string; title: string } => { + const href = getHashedExplorerUrl(hash, blockExplorerUriTemplate) + const title = `View on ${new URL(href).hostname}` + + return { href, title } +} diff --git a/apps/mobile/src/utils/transaction-guards.test.ts b/apps/mobile/src/utils/transaction-guards.test.ts new file mode 100644 index 0000000000..aab64ad884 --- /dev/null +++ b/apps/mobile/src/utils/transaction-guards.test.ts @@ -0,0 +1,153 @@ +import { + DetailedExecutionInfoType, + ExecutionInfo, + TransactionInfoType, + TransactionListItemType, + TransactionStatus, + TransferDirection, +} from '@safe-global/store/gateway/types' +import { + isCancellationTxInfo, + isCreationTxInfo, + isCustomTxInfo, + isDateLabel, + isLabelListItem, + isModuleExecutionInfo, + isMultiSendTxInfo, + isMultisigExecutionInfo, + isOutgoingTransfer, + isSwapOrderTxInfo, + isTransactionListItem, + isTransferTxInfo, + isTxQueued, +} from './transaction-guards' +import { mockERC20Transfer, mockListItemByType, mockSwapTransfer, mockTransferWithInfo } from '../tests/mocks' + +const multisigTx: ExecutionInfo = { + type: DetailedExecutionInfoType.MULTISIG, + nonce: 1, + confirmationsRequired: 2, + confirmationsSubmitted: 1, + missingSigners: [ + { + value: '0x000000', + name: 'alice', + }, + { + value: '0x00asd0', + name: 'bob', + }, + ], +} + +const moduleTx: ExecutionInfo = { + type: DetailedExecutionInfoType.MODULE, + address: { + value: '0x000000', + name: 'alice', + }, +} + +describe('Transaction Guards', () => { + it('should check if isTxQueued', () => { + expect(isTxQueued(TransactionStatus.AWAITING_CONFIRMATIONS)).toBe(true) + expect(isTxQueued(TransactionStatus.AWAITING_EXECUTION)).toBe(true) + expect(isTxQueued(TransactionStatus.CANCELLED)).toBe(false) + }) + + it('should check a txInfo transfer', () => { + expect(isTransferTxInfo(mockERC20Transfer)).toBe(true) + expect(isTransferTxInfo(mockSwapTransfer)).toBe(true) + }) + + it('should check an outGoing transfer', () => { + const incomingTx = mockTransferWithInfo({ + direction: TransferDirection.INCOMING, + }) + const outGoingTx = mockTransferWithInfo({ + direction: TransferDirection.OUTGOING, + }) + + expect(isOutgoingTransfer(outGoingTx)).toBe(true) + expect(isOutgoingTransfer(incomingTx)).toBe(false) + }) + + it('should check if a transaction is a custom transaction', () => { + const customTx = mockTransferWithInfo({ + type: TransactionInfoType.CUSTOM, + }) + const swapTx = mockTransferWithInfo({ + type: TransactionInfoType.SWAP_ORDER, + }) + + expect(isCustomTxInfo(customTx)).toBe(true) + expect(isCustomTxInfo(swapTx)).toBe(false) + }) + + it('should check if a transaction is a multi send transaction', () => { + const multiSend = mockTransferWithInfo({ + type: TransactionInfoType.CUSTOM, + methodName: 'multiSend', + actionCount: 2, + }) + const swapTx = mockTransferWithInfo({ + type: TransactionInfoType.SWAP_ORDER, + }) + + expect(isMultiSendTxInfo(multiSend)).toBe(true) + expect(isMultiSendTxInfo(swapTx)).toBe(false) + }) + + it('should check if it is possible to cancel a transaction', () => { + const multiSend = mockTransferWithInfo({ + type: TransactionInfoType.CUSTOM, + methodName: 'multiSend', + actionCount: 2, + isCancellation: true, + }) + const customTx = mockTransferWithInfo({ + type: TransactionInfoType.CUSTOM, + }) + + expect(isCancellationTxInfo(multiSend)).toBe(true) + expect(isCancellationTxInfo(customTx)).toBeFalsy() + }) + + it('should check if it is a transaction list item', () => { + expect(isTransactionListItem(mockListItemByType(TransactionListItemType.TRANSACTION))).toBe(true) + expect(isTransactionListItem(mockListItemByType(TransactionListItemType.DATE_LABEL))).toBe(false) + expect(isTransactionListItem(mockListItemByType(TransactionListItemType.LABEL))).toBe(false) + }) + + it('should check if it is a DateLabel transaction', () => { + expect(isDateLabel(mockListItemByType(TransactionListItemType.TRANSACTION))).toBe(false) + expect(isDateLabel(mockListItemByType(TransactionListItemType.DATE_LABEL))).toBe(true) + expect(isDateLabel(mockListItemByType(TransactionListItemType.LABEL))).toBe(false) + }) + + it('should check if it is a Label list item', () => { + expect(isLabelListItem(mockListItemByType(TransactionListItemType.TRANSACTION))).toBe(false) + expect(isLabelListItem(mockListItemByType(TransactionListItemType.DATE_LABEL))).toBe(false) + expect(isLabelListItem(mockListItemByType(TransactionListItemType.LABEL))).toBe(true) + }) + + it('should check if it is a creation transaction type', () => { + expect(isCreationTxInfo(mockTransferWithInfo({ type: TransactionInfoType.CREATION }))).toBe(true) + expect(isCreationTxInfo(mockTransferWithInfo({ type: TransactionInfoType.CUSTOM }))).toBe(false) + }) + + it('should check if it is a multisig execution', () => { + expect(isMultisigExecutionInfo(multisigTx)).toBe(true) + expect(isMultisigExecutionInfo(moduleTx)).toBe(false) + }) + + it('should check if it is a multisig execution', () => { + expect(isModuleExecutionInfo(moduleTx)).toBe(true) + expect(isModuleExecutionInfo(multisigTx)).toBe(false) + }) + + it('should check if it is a swap order', () => { + expect(isSwapOrderTxInfo(mockTransferWithInfo({ type: TransactionInfoType.SWAP_ORDER }))).toBe(true) + expect(isSwapOrderTxInfo(mockTransferWithInfo({ type: TransactionInfoType.CUSTOM }))).toBe(false) + }) +}) diff --git a/apps/mobile/src/utils/transaction-guards.ts b/apps/mobile/src/utils/transaction-guards.ts new file mode 100644 index 0000000000..f0e6fd90c7 --- /dev/null +++ b/apps/mobile/src/utils/transaction-guards.ts @@ -0,0 +1,155 @@ +import uniq from 'lodash/uniq' +import { + type Cancellation, + type MultiSend, + ConflictType, + TransactionInfoType, + TransactionListItemType, + TransactionTokenType, + TransferDirection, +} from '@safe-global/store/gateway/types' +import type { + ModuleExecutionInfo, + TransactionDetails, + TransactionInfo, + SwapTransferTransactionInfo, + TwapOrderTransactionInfo, + ConflictHeaderQueuedItem, + TransactionQueuedItem, + DateLabel, + TransferTransactionInfo, + SettingsChangeTransaction, + LabelQueuedItem, + MultisigExecutionInfo, + SwapOrderTransactionInfo, + Erc20Transfer, + Erc721Transfer, + NativeCoinTransfer, + Transaction, + CreationTransactionInfo, + CustomTransactionInfo, +} from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +import { HistoryTransactionItems, PendingTransactionItems } from '@safe-global/store/gateway/types' + +const TransactionStatus = { + AWAITING_CONFIRMATIONS: 'AWAITING_CONFIRMATIONS', + AWAITING_EXECUTION: 'AWAITING_EXECUTION', + CANCELLED: 'CANCELLED', + FAILED: 'FAILED', + SUCCESS: 'SUCCESS', +} + +export const isTxQueued = (value: Transaction['txStatus']): boolean => { + return [TransactionStatus.AWAITING_CONFIRMATIONS as string, TransactionStatus.AWAITING_EXECUTION as string].includes( + value, + ) +} + +export const getBulkGroupTxHash = (group: PendingTransactionItems[]) => { + const hashList = group.map((item) => { + if (isTransactionListItem(item)) { + return item.transaction.txHash + } + return null + }) + return uniq(hashList).length === 1 ? hashList[0] : undefined +} + +export const getTxHash = (item: TransactionQueuedItem): string => item.transaction.txHash as unknown as string + +export const isTransferTxInfo = (value: Transaction['txInfo']): value is TransferTransactionInfo => { + return value.type === TransactionInfoType.TRANSFER || isSwapTransferOrderTxInfo(value) +} + +export const isSettingsChangeTxInfo = (value: Transaction['txInfo']): value is SettingsChangeTransaction => { + return value.type === TransactionInfoType.SETTINGS_CHANGE +} +/** + * A fulfillment transaction for swap, limit or twap order is always a SwapOrder + * It cannot be a TWAP order + * + * @param value + */ +export const isSwapTransferOrderTxInfo = (value: Transaction['txInfo']): value is SwapTransferTransactionInfo => { + return value.type === TransactionInfoType.SWAP_TRANSFER +} + +export const isOutgoingTransfer = (txInfo: Transaction['txInfo']): boolean => { + return isTransferTxInfo(txInfo) && txInfo.direction.toUpperCase() === TransferDirection.OUTGOING +} + +export const isCustomTxInfo = (value: Transaction['txInfo']): value is CustomTransactionInfo => { + return value.type === TransactionInfoType.CUSTOM +} + +export const isMultiSendTxInfo = (value: Transaction['txInfo']): value is MultiSend => { + return ( + value.type === TransactionInfoType.CUSTOM && + value.methodName === 'multiSend' && + typeof value.actionCount === 'number' + ) +} + +export const isSwapOrderTxInfo = (value: TransactionInfo): value is SwapOrderTransactionInfo => { + return value.type === TransactionInfoType.SWAP_ORDER +} +export const isTwapOrderTxInfo = (value: Transaction['txInfo']): value is TwapOrderTransactionInfo => { + return value.type === TransactionInfoType.TWAP_ORDER +} + +export const isOrderTxInfo = (value: Transaction['txInfo']): value is SwapOrderTransactionInfo => { + return isSwapOrderTxInfo(value) || isTwapOrderTxInfo(value) +} + +export const isCancellationTxInfo = (value: Transaction['txInfo']): value is Cancellation => { + return isCustomTxInfo(value) && value.isCancellation +} + +export const isTransactionListItem = ( + value: HistoryTransactionItems | PendingTransactionItems, +): value is TransactionQueuedItem => { + return value.type === TransactionListItemType.TRANSACTION +} + +export const isConflictHeaderListItem = (value: PendingTransactionItems): value is ConflictHeaderQueuedItem => { + return value.type === TransactionListItemType.CONFLICT_HEADER +} + +export const isNoneConflictType = (transaction: TransactionQueuedItem) => { + return transaction.conflictType === ConflictType.NONE +} + +export const isDateLabel = (value: HistoryTransactionItems | PendingTransactionItems): value is DateLabel => { + return value.type === TransactionListItemType.DATE_LABEL +} + +export const isLabelListItem = (value: PendingTransactionItems | DateLabel): value is LabelQueuedItem => { + return value.type === TransactionListItemType.LABEL +} + +export const isCreationTxInfo = (value: TransactionInfo): value is CreationTransactionInfo => { + return value.type === TransactionInfoType.CREATION +} + +export const isMultisigExecutionInfo = ( + value?: Transaction['executionInfo'] | TransactionDetails['detailedExecutionInfo'], +): value is MultisigExecutionInfo => { + return value?.type === 'MULTISIG' +} + +export const isModuleExecutionInfo = ( + value?: Transaction['executionInfo'] | TransactionDetails['detailedExecutionInfo'], +): value is ModuleExecutionInfo => value?.type === 'MODULE' + +export const isNativeTokenTransfer = (value: TransferTransactionInfo['transferInfo']): value is NativeCoinTransfer => { + return value.type === TransactionTokenType.NATIVE_COIN +} + +export const isERC20Transfer = (value: TransferTransactionInfo['transferInfo']): value is Erc20Transfer => { + return value.type === TransactionTokenType.ERC20 +} + +export const isERC721Transfer = (value: TransferTransactionInfo['transferInfo']): value is Erc721Transfer => { + return value.type === TransactionTokenType.ERC721 +} diff --git a/apps/mobile/src/utils/transactions.tsx b/apps/mobile/src/utils/transactions.tsx new file mode 100644 index 0000000000..87c4e487d2 --- /dev/null +++ b/apps/mobile/src/utils/transactions.tsx @@ -0,0 +1,30 @@ +import { GroupedTxs } from '@/src/features/TxHistory/utils' +import { Transaction } from '@safe-global/store/gateway/AUTO_GENERATED/transactions' + +export const groupBulkTxs = ( + list: GroupedTxs, +): GroupedTxs => { + const grouped = list + .reduce>((resultItems, item) => { + if (Array.isArray(item) || item.type !== 'TRANSACTION') { + return resultItems.concat([item]) + } + const currentTxHash = item.transaction?.txHash + + const prevItem = resultItems[resultItems.length - 1] + if (!Array.isArray(prevItem)) { + return resultItems.concat([[item]]) + } + const prevTxHash = prevItem[0]?.transaction?.txHash + + if (currentTxHash && currentTxHash === prevTxHash) { + prevItem.push(item) + return resultItems + } + + return resultItems.concat([[item]]) + }, []) + .map((item) => (Array.isArray(item) && item.length === 1 ? item[0] : item)) + + return grouped +} diff --git a/apps/mobile/tsconfig.json b/apps/mobile/tsconfig.json new file mode 100644 index 0000000000..a4564769f3 --- /dev/null +++ b/apps/mobile/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "expo/tsconfig.base", + "compilerOptions": { + "strict": true, + "paths": { + "@/*": ["./*"], + "@safe-global/store/*": ["../../packages/store/src/*"] + }, + "types": ["jest", "node"] + }, + "include": ["**/*.ts", "**/*.tsx", ".expo/types/**/*.ts", "expo-env.d.ts"] +} diff --git a/config/jest-presets/package.json b/config/jest-presets/package.json new file mode 100644 index 0000000000..0951149bd2 --- /dev/null +++ b/config/jest-presets/package.json @@ -0,0 +1,12 @@ +{ + "name": "@safe-global/jest-presets", + "version": "0.0.0", + "dependencies": { + "ts-jest": "29.2.5" + }, + "devDependencies": { + "jest-transform-stub": "2.0.0" + }, + "license": "MIT", + "private": true +} diff --git a/config/jest-presets/presets/jest-preset.js b/config/jest-presets/presets/jest-preset.js new file mode 100644 index 0000000000..d1882045a6 --- /dev/null +++ b/config/jest-presets/presets/jest-preset.js @@ -0,0 +1,24 @@ +/** @type any */ +module.exports = { + preset: 'ts-jest', + moduleDirectories: ['node_modules', 'src'], + moduleFileExtensions: ['ts', 'tsx', 'js', 'mjs', 'cjs', 'jsx', 'json', 'node', 'mp4'], + moduleNameMapper: { + '.+\\.(css|style|less|sass|scss|png|jpg|ttf|woff|woff2|mp4)$': 'jest-transform-stub', + // Jest by default doesn't support absolute imports out of the box + '^src/(.*)$': '/src/$1', + }, + modulePathIgnorePatterns: ['/node_modules'], + testPathIgnorePatterns: ['/node_modules', '/dist', '/e2e'], + testMatch: ['/**/*.(spec|test).[jt]s?(x)'], + // setupFilesAfterEnv: ['/../../config/jest-presets/jest/setup.js'], + + transformIgnorePatterns: [ + 'node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@sentry/react-native|native-base|react-native-svg|react-redux|moti/.*)', + ], + coverageDirectory: '/coverage', + coverageReporters: ['json', 'lcov', 'html'], + collectCoverageFrom: ['/packages/**/src/**/*.ts'], + collectCoverage: false, // turn it on when you want to collect coverage + clearMocks: true, +} diff --git a/config/tsconfig/confs/base.json b/config/tsconfig/confs/base.json new file mode 100644 index 0000000000..4d2c701606 --- /dev/null +++ b/config/tsconfig/confs/base.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "paths": { + "@safe-global/store/*": ["packages/store/src/*"] + }, + "importHelpers": true, + "allowJs": false, + "allowSyntheticDefaultImports": true, + "downlevelIteration": true, + "esModuleInterop": true, + "preserveSymlinks": true, + "incremental": true, + "module": "ESNext", + "moduleResolution": "node", + "forceConsistentCasingInFileNames": true, + "noEmitOnError": false, + "noImplicitAny": false, + "noImplicitReturns": false, + "noUnusedLocals": false, + "noUnusedParameters": false, + "experimentalDecorators": true, + "useUnknownInCatchVariables": false, + "preserveConstEnums": true, + "removeComments": false, + "strict": true, + "skipLibCheck": true, + "typeRoots": ["../../../node_modules/@types"], + "sourceMap": false, + "target": "ESNext", + "types": ["node", "jest"], + "jsx": "react-jsx", + "lib": ["dom", "dom.iterable", "esnext"], + "resolveJsonModule": true, + "plugins": [] + }, + "exclude": ["_"], + "typeAcquisition": { + "enable": true + } +} diff --git a/config/tsconfig/package.json b/config/tsconfig/package.json new file mode 100644 index 0000000000..bc7928be8e --- /dev/null +++ b/config/tsconfig/package.json @@ -0,0 +1,8 @@ +{ + "name": "@safe-global/tsconfig", + "version": "0.0.0", + "files": [ + "confs/base.json" + ], + "private": true +} diff --git a/package.json b/package.json index b7097877b7..c434372f7e 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "version": "1.0.0", "workspaces": [ "apps/*", + "config/*", "packages/*" ], "scripts": { @@ -21,7 +22,8 @@ }, "devDependencies": { "husky": "^9.1.6", - "lint-staged": "^15.2.10" + "lint-staged": "^15.2.10", + "prettier": "^3.4.2" }, "packageManager": "yarn@4.5.3" } diff --git a/packages/store/README.md b/packages/store/README.md new file mode 100644 index 0000000000..72435794cb --- /dev/null +++ b/packages/store/README.md @@ -0,0 +1,39 @@ +# @safe-global/store + +This is a utility package that deals with the state management of the application. It uses the [Redux Toolkit](https://redux-toolkit.js.org/) to manage the state of the application. + +## Usage + +The use the generated API you first need to initialiize the baseURL of the API. + +```typescript +import { setBaseUrl } from '@safe-global/store' + +setBaseUrl('YOUR_API_BASE_URL') +``` + +## Automatic code generation from the Client's Gateway OpenAPI + +This package includes a script to generate the necessary boilerplate API code from the Client-Gateway(CGW)'s OpenAPI specification using @rtk-query/codegen-openapi. + +## Prerequisites + +1. You've initialized the monorepo and installed all dependencies. +2. The openapi-config.ts file is correctly configured in this package with your OpenAPI specification details. +3. You've updated the scripts/api-schema/schema.json file with the latest OpenAPI specification. + +> [!NOTE] +> To get the latest OpenAPI schema look at the output from the `/api-json` endpoint of the CGW. + +## Running the Code Generation Script + +From the mono-repo root directory, run the following command: + +```bash +yarn workspace @safe-global/store generate-api +``` + +This will: + +- Use the configuration provided in the openapi-config.ts file. +- Gerate the API code using @rtk-query/codegen-openapi. diff --git a/packages/store/jest.config.js b/packages/store/jest.config.js new file mode 100644 index 0000000000..943377aaf3 --- /dev/null +++ b/packages/store/jest.config.js @@ -0,0 +1,5 @@ +const preset = require('../../config/jest-presets/presets/jest-preset') + +module.exports = { + ...preset, +} diff --git a/packages/store/package.json b/packages/store/package.json new file mode 100644 index 0000000000..e1ed003e57 --- /dev/null +++ b/packages/store/package.json @@ -0,0 +1,13 @@ +{ + "private": true, + "name": "@safe-global/store", + "version": "1.0.0", + "scripts": { + "test": "jest", + "api-generate": " npx @rtk-query/codegen-openapi scripts/openapi-config.ts" + }, + "devDependencies": { + "@types/jest": "^29.5.14", + "jest": "^29.7.0" + } +} diff --git a/packages/store/scripts/api-schema/schema.json b/packages/store/scripts/api-schema/schema.json new file mode 100644 index 0000000000..2d6dcabaa0 --- /dev/null +++ b/packages/store/scripts/api-schema/schema.json @@ -0,0 +1,6911 @@ +{ + "openapi": "3.0.0", + "paths": { + "/about": { + "get": { + "operationId": "aboutGetAbout", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/About" + } + } + } + } + }, + "tags": ["about"] + } + }, + "/v1/accounts": { + "post": { + "operationId": "accountsCreateAccountV1", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateAccountDto" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Account" + } + } + } + } + }, + "tags": ["accounts"] + } + }, + "/v1/accounts/data-types": { + "get": { + "operationId": "accountsGetDataTypesV1", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AccountDataType" + } + } + } + } + } + }, + "tags": ["accounts"] + } + }, + "/v1/accounts/{address}/data-settings": { + "get": { + "operationId": "accountsGetAccountDataSettingsV1", + "parameters": [ + { + "name": "address", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AccountDataSetting" + } + } + } + } + } + }, + "tags": ["accounts"] + }, + "put": { + "operationId": "accountsUpsertAccountDataSettingsV1", + "parameters": [ + { + "name": "address", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertAccountDataSettingsDto" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AccountDataSetting" + } + } + } + } + } + }, + "tags": ["accounts"] + } + }, + "/v1/accounts/{address}": { + "get": { + "operationId": "accountsGetAccountV1", + "parameters": [ + { + "name": "address", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Account" + } + } + } + } + }, + "tags": ["accounts"] + }, + "delete": { + "operationId": "accountsDeleteAccountV1", + "parameters": [ + { + "name": "address", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "" + } + }, + "tags": ["accounts"] + } + }, + "/v1/accounts/{address}/address-books/{chainId}": { + "get": { + "operationId": "addressBooksGetAddressBookV1", + "parameters": [ + { + "name": "address", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddressBook" + } + } + } + } + }, + "tags": ["accounts"] + }, + "post": { + "operationId": "addressBooksCreateAddressBookItemV1", + "parameters": [ + { + "name": "address", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateAddressBookItemDto" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddressBookItem" + } + } + } + } + }, + "tags": ["accounts"] + }, + "delete": { + "operationId": "addressBooksDeleteAddressBookV1", + "parameters": [ + { + "name": "address", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": ["accounts"] + } + }, + "/v1/accounts/{address}/address-books/{chainId}/{addressBookItemId}": { + "delete": { + "operationId": "addressBooksDeleteAddressBookItemV1", + "parameters": [ + { + "name": "address", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "addressBookItemId", + "required": true, + "in": "path", + "schema": { + "type": "number" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": ["accounts"] + } + }, + "/v1/accounts/{address}/counterfactual-safes/{chainId}/{predictedAddress}": { + "get": { + "operationId": "counterfactualSafesGetCounterfactualSafeV1", + "parameters": [ + { + "name": "address", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "predictedAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CounterfactualSafe" + } + } + } + } + }, + "tags": ["accounts"] + }, + "delete": { + "operationId": "counterfactualSafesDeleteCounterfactualSafeV1", + "parameters": [ + { + "name": "address", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "predictedAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": ["accounts"] + } + }, + "/v1/accounts/{address}/counterfactual-safes": { + "get": { + "operationId": "counterfactualSafesGetCounterfactualSafesV1", + "parameters": [ + { + "name": "address", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CounterfactualSafe" + } + } + } + } + } + }, + "tags": ["accounts"] + }, + "put": { + "operationId": "counterfactualSafesCreateCounterfactualSafeV1", + "parameters": [ + { + "name": "address", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateCounterfactualSafeDto" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CounterfactualSafe" + } + } + } + } + }, + "tags": ["accounts"] + }, + "delete": { + "operationId": "counterfactualSafesDeleteCounterfactualSafesV1", + "parameters": [ + { + "name": "address", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": ["accounts"] + } + }, + "/v1/auth/nonce": { + "get": { + "operationId": "authGetNonceV1", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthNonce" + } + } + } + } + }, + "tags": ["auth"] + } + }, + "/v1/auth/verify": { + "post": { + "operationId": "authVerifyV1", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SiweDto" + } + } + } + }, + "responses": { + "200": { + "description": "Empty response body. JWT token is set as response cookie." + } + }, + "tags": ["auth"] + } + }, + "/v1/chains/{chainId}/safes/{safeAddress}/balances/{fiatCode}": { + "get": { + "operationId": "balancesGetBalancesV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "fiatCode", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "trusted", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "exclude_spam", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Balances" + } + } + } + } + }, + "tags": ["balances"] + } + }, + "/v1/balances/supported-fiat-codes": { + "get": { + "operationId": "balancesGetSupportedFiatCodesV1", + "parameters": [], + "responses": { + "200": { + "description": "" + } + }, + "tags": ["balances"] + } + }, + "/v1/chains": { + "get": { + "operationId": "chainsGetChainsV1", + "parameters": [ + { + "name": "cursor", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChainPage" + } + } + } + } + }, + "tags": ["chains"] + } + }, + "/v1/chains/{chainId}": { + "get": { + "operationId": "chainsGetChainV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Chain" + } + } + } + } + }, + "tags": ["chains"] + } + }, + "/v1/chains/{chainId}/about": { + "get": { + "operationId": "chainsGetAboutChainV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AboutChain" + } + } + } + } + }, + "tags": ["chains"] + } + }, + "/v1/chains/{chainId}/about/backbone": { + "get": { + "operationId": "chainsGetBackboneV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Backbone" + } + } + } + } + }, + "tags": ["chains"] + } + }, + "/v1/chains/{chainId}/about/master-copies": { + "get": { + "operationId": "chainsGetMasterCopiesV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MasterCopy" + } + } + } + } + } + }, + "tags": ["chains"] + } + }, + "/v1/chains/{chainId}/about/indexing": { + "get": { + "operationId": "chainsGetIndexingStatusV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IndexingStatus" + } + } + } + } + }, + "tags": ["chains"] + } + }, + "/v2/chains/{chainId}/safes/{safeAddress}/collectibles": { + "get": { + "operationId": "collectiblesGetCollectiblesV2", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "trusted", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "exclude_spam", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "cursor", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectiblePage" + } + } + } + } + }, + "tags": ["collectibles"] + } + }, + "/v1/community/campaigns": { + "get": { + "operationId": "communityGetCampaignsV1", + "parameters": [ + { + "name": "cursor", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CampaignPage" + } + } + } + } + }, + "tags": ["community"] + } + }, + "/v1/community/campaigns/{resourceId}": { + "get": { + "operationId": "communityGetCampaignByIdV1", + "parameters": [ + { + "name": "resourceId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Campaign" + } + } + } + } + }, + "tags": ["community"] + } + }, + "/v1/community/campaigns/{resourceId}/activities": { + "get": { + "operationId": "communityGetCampaignActivitiesV1", + "parameters": [ + { + "name": "resourceId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "holder", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "cursor", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": ["community"] + } + }, + "/v1/community/campaigns/{resourceId}/leaderboard": { + "get": { + "operationId": "communityGetCampaignLeaderboardV1", + "parameters": [ + { + "name": "resourceId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "cursor", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CampaignRankPage" + } + } + } + } + }, + "tags": ["community"] + } + }, + "/v1/community/campaigns/{resourceId}/leaderboard/{safeAddress}": { + "get": { + "operationId": "communityGetCampaignRankV1", + "parameters": [ + { + "name": "resourceId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CampaignRank" + } + } + } + } + }, + "tags": ["community"] + } + }, + "/v1/community/eligibility": { + "post": { + "operationId": "communityCheckEligibilityV1", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EligibilityRequest" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Eligibility" + } + } + } + } + }, + "tags": ["community"] + } + }, + "/v1/community/locking/leaderboard": { + "get": { + "operationId": "communityGetLeaderboardV1", + "parameters": [ + { + "name": "cursor", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LockingRankPage" + } + } + } + } + }, + "tags": ["community"] + } + }, + "/v1/community/locking/{safeAddress}/rank": { + "get": { + "operationId": "communityGetLockingRankV1", + "parameters": [ + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LockingRank" + } + } + } + } + }, + "tags": ["community"] + } + }, + "/v1/community/locking/{safeAddress}/history": { + "get": { + "operationId": "communityGetLockingHistoryV1", + "parameters": [ + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "cursor", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LockingEventPage" + } + } + } + } + }, + "tags": ["community"] + } + }, + "/v1/chains/{chainId}/contracts/{contractAddress}": { + "get": { + "operationId": "contractsGetContractV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "contractAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Contract" + } + } + } + } + }, + "tags": ["contracts"] + } + }, + "/v1/chains/{chainId}/data-decoder": { + "post": { + "operationId": "dataDecodedGetDataDecodedV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionDataDto" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DataDecoded" + } + } + } + } + }, + "tags": ["data-decoded"] + } + }, + "/v1/chains/{chainId}/delegates": { + "get": { + "deprecated": true, + "operationId": "delegatesGetDelegatesV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safe", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "delegate", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "delegator", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "label", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "cursor", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DelegatePage" + } + } + } + } + }, + "summary": "", + "tags": ["delegates"] + }, + "post": { + "deprecated": true, + "operationId": "delegatesPostDelegateV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateDelegateDto" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "summary": "", + "tags": ["delegates"] + } + }, + "/v1/chains/{chainId}/delegates/{delegateAddress}": { + "delete": { + "deprecated": true, + "operationId": "delegatesDeleteDelegateV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "delegateAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteDelegateDto" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "summary": "", + "tags": ["delegates"] + } + }, + "/v1/chains/{chainId}/safes/{safeAddress}/delegates/{delegateAddress}": { + "delete": { + "deprecated": true, + "operationId": "delegatesDeleteSafeDelegateV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteSafeDelegateDto" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "summary": "", + "tags": ["delegates"] + } + }, + "/v2/chains/{chainId}/delegates": { + "get": { + "operationId": "delegatesGetDelegatesV2", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safe", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "delegate", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "delegator", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "label", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "cursor", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DelegatePage" + } + } + } + } + }, + "tags": ["delegates"] + }, + "post": { + "operationId": "delegatesPostDelegateV2", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateDelegateDto" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": ["delegates"] + } + }, + "/v2/chains/{chainId}/delegates/{delegateAddress}": { + "delete": { + "operationId": "delegatesDeleteDelegateV2", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "delegateAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteDelegateV2Dto" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": ["delegates"] + } + }, + "/v2/chains/{chainId}/safes/{address}/multisig-transactions/estimations": { + "post": { + "operationId": "estimationsGetEstimationV2", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "address", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetEstimationDto" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EstimationResponse" + } + } + } + } + }, + "tags": ["estimations"] + } + }, + "/v1/chains/{chainId}/messages/{messageHash}": { + "get": { + "operationId": "messagesGetMessageByHashV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "messageHash", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Message" + } + } + } + } + }, + "tags": ["messages"] + } + }, + "/v1/chains/{chainId}/safes/{safeAddress}/messages": { + "get": { + "operationId": "messagesGetMessagesBySafeV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "cursor", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessagePage" + } + } + } + } + }, + "tags": ["messages"] + }, + "post": { + "operationId": "messagesCreateMessageV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateMessageDto" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": ["messages"] + } + }, + "/v1/chains/{chainId}/messages/{messageHash}/signatures": { + "post": { + "operationId": "messagesUpdateMessageSignatureV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "messageHash", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateMessageSignatureDto" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": ["messages"] + } + }, + "/v1/register/notifications": { + "post": { + "operationId": "notificationsRegisterDeviceV1", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegisterDeviceDto" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": ["notifications"] + } + }, + "/v1/chains/{chainId}/notifications/devices/{uuid}": { + "delete": { + "operationId": "notificationsUnregisterDeviceV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": ["notifications"] + } + }, + "/v1/chains/{chainId}/notifications/devices/{uuid}/safes/{safeAddress}": { + "delete": { + "operationId": "notificationsUnregisterSafeV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "uuid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": ["notifications"] + } + }, + "/v1/chains/{chainId}/owners/{ownerAddress}/safes": { + "get": { + "operationId": "ownersGetSafesByOwnerV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "ownerAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SafeList" + } + } + } + } + }, + "tags": ["owners"] + } + }, + "/v1/owners/{ownerAddress}/safes": { + "get": { + "operationId": "ownersGetAllSafesByOwnerV1", + "parameters": [ + { + "name": "ownerAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SafeList" + } + } + } + } + }, + "tags": ["owners"] + } + }, + "/v1/chains/{chainId}/relay": { + "post": { + "operationId": "relayRelayV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RelayDto" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": ["relay"] + } + }, + "/v1/chains/{chainId}/relay/{safeAddress}": { + "get": { + "operationId": "relayGetRelaysRemainingV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": ["relay"] + } + }, + "/v1/chains/{chainId}/safe-apps": { + "get": { + "operationId": "safeAppsGetSafeAppsV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "clientUrl", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "url", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SafeApp" + } + } + } + } + } + }, + "tags": ["safe-apps"] + } + }, + "/v1/chains/{chainId}/safes/{safeAddress}": { + "get": { + "operationId": "safesGetSafeV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SafeState" + } + } + } + } + }, + "tags": ["safes"] + } + }, + "/v1/chains/{chainId}/safes/{safeAddress}/nonces": { + "get": { + "operationId": "safesGetNoncesV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SafeNonces" + } + } + } + } + }, + "tags": ["safes"] + } + }, + "/v1/safes": { + "get": { + "operationId": "safesGetSafeOverviewV1", + "parameters": [ + { + "name": "currency", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "safes", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "trusted", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "exclude_spam", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "wallet_address", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SafeOverview" + } + } + } + } + } + }, + "tags": ["safes"] + } + }, + "/v1/targeted-messaging/outreaches/{outreachId}/chains/{chainId}/safes/{safeAddress}/signers/{signerAddress}/submissions": { + "get": { + "operationId": "targetedMessagingGetSubmissionV1", + "parameters": [ + { + "name": "outreachId", + "required": true, + "in": "path", + "schema": { + "type": "number" + } + }, + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "signerAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Submission" + } + } + } + } + }, + "tags": ["targeted-messaging"] + }, + "post": { + "operationId": "targetedMessagingCreateSubmissionV1", + "parameters": [ + { + "name": "outreachId", + "required": true, + "in": "path", + "schema": { + "type": "number" + } + }, + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "signerAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateSubmissionDto" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Submission" + } + } + } + } + }, + "tags": ["targeted-messaging"] + } + }, + "/v1/chains/{chainId}/transactions/{id}": { + "get": { + "operationId": "transactionsGetTransactionByIdV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionDetails" + } + } + } + } + }, + "tags": ["transactions"] + } + }, + "/v1/chains/{chainId}/safes/{safeAddress}/multisig-transactions": { + "get": { + "operationId": "transactionsGetMultisigTransactionsV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "execution_date__gte", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "execution_date__lte", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "to", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "value", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "nonce", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "executed", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "cursor", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultisigTransactionPage" + } + } + } + } + }, + "tags": ["transactions"] + } + }, + "/v1/chains/{chainId}/transactions/{safeTxHash}": { + "delete": { + "operationId": "transactionsDeleteTransactionV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeTxHash", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteTransactionDto" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": ["transactions"] + } + }, + "/v1/chains/{chainId}/safes/{safeAddress}/module-transactions": { + "get": { + "operationId": "transactionsGetModuleTransactionsV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "to", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "module", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "transaction_hash", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "cursor", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ModuleTransactionPage" + } + } + } + } + }, + "tags": ["transactions"] + } + }, + "/v1/chains/{chainId}/transactions/{safeTxHash}/confirmations": { + "post": { + "operationId": "transactionsAddConfirmationV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeTxHash", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddConfirmationDto" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Transaction" + } + } + } + } + }, + "tags": ["transactions"] + } + }, + "/v1/chains/{chainId}/safes/{safeAddress}/incoming-transfers": { + "get": { + "operationId": "transactionsGetIncomingTransfersV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "trusted", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "execution_date__gte", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "execution_date__lte", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "to", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "value", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "token_address", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "cursor", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IncomingTransferPage" + } + } + } + } + }, + "tags": ["transactions"] + } + }, + "/v1/chains/{chainId}/transactions/{safeAddress}/preview": { + "post": { + "operationId": "transactionsPreviewTransactionV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PreviewTransactionDto" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionPreview" + } + } + } + } + }, + "tags": ["transactions"] + } + }, + "/v1/chains/{chainId}/safes/{safeAddress}/transactions/queued": { + "get": { + "operationId": "transactionsGetTransactionQueueV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "trusted", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "cursor", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueuedItemPage" + } + } + } + } + }, + "tags": ["transactions"] + } + }, + "/v1/chains/{chainId}/safes/{safeAddress}/transactions/history": { + "get": { + "operationId": "transactionsGetTransactionsHistoryV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "timezone_offset", + "required": false, + "in": "query", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "trusted", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "imitation", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "timezone", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "cursor", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionItemPage" + } + } + } + } + }, + "tags": ["transactions"] + } + }, + "/v1/chains/{chainId}/transactions/{safeAddress}/propose": { + "post": { + "operationId": "transactionsProposeTransactionV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProposeTransactionDto" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Transaction" + } + } + } + } + }, + "tags": ["transactions"] + } + }, + "/v1/chains/{chainId}/safes/{safeAddress}/transactions/creation": { + "get": { + "operationId": "transactionsGetCreationTransactionV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreationTransaction" + } + } + } + } + }, + "tags": ["transactions"] + } + }, + "/v1/chains/{chainId}/safes/{safeAddress}/views/transaction-confirmation": { + "post": { + "deprecated": true, + "description": "Deprecated in favour of /v1/chains/:chainId/transactions/:safeAddress/preview.", + "operationId": "transactionsViewGetTransactionConfirmationViewV1", + "parameters": [ + { + "name": "chainId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "safeAddress", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionDataDto" + } + } + } + }, + "responses": { + "200": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/BaselineConfirmationView" + }, + { + "$ref": "#/components/schemas/CowSwapConfirmationView" + }, + { + "$ref": "#/components/schemas/CowSwapTwapConfirmationView" + }, + { + "$ref": "#/components/schemas/NativeStakingDepositConfirmationView" + }, + { + "$ref": "#/components/schemas/NativeStakingValidatorsExitConfirmationView" + }, + { + "$ref": "#/components/schemas/NativeStakingWithdrawConfirmationView" + } + ] + }, + "description": "", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/BaselineConfirmationView" + }, + { + "$ref": "#/components/schemas/CowSwapConfirmationView" + }, + { + "$ref": "#/components/schemas/CowSwapTwapConfirmationView" + }, + { + "$ref": "#/components/schemas/NativeStakingDepositConfirmationView" + }, + { + "$ref": "#/components/schemas/NativeStakingValidatorsExitConfirmationView" + }, + { + "$ref": "#/components/schemas/NativeStakingWithdrawConfirmationView" + } + ] + } + } + } + } + }, + "summary": "", + "tags": ["transactions"] + } + } + }, + "info": { + "title": "Safe Client Gateway", + "description": "", + "version": "", + "contact": {} + }, + "tags": [], + "servers": [], + "components": { + "schemas": { + "About": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string", + "nullable": true + }, + "buildNumber": { + "type": "string", + "nullable": true + } + }, + "required": ["name"] + }, + "CreateAccountDto": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": ["address", "name"] + }, + "Account": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "groupId": { + "type": "string", + "nullable": true + }, + "address": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": ["id", "address", "name"] + }, + "AccountDataType": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "isActive": { + "type": "boolean" + } + }, + "required": ["id", "name", "isActive"] + }, + "AccountDataSetting": { + "type": "object", + "properties": { + "dataTypeId": { + "type": "string" + }, + "enabled": { + "type": "boolean" + } + }, + "required": ["dataTypeId", "enabled"] + }, + "UpsertAccountDataSettingDto": { + "type": "object", + "properties": { + "dataTypeId": { + "type": "string" + }, + "enabled": { + "type": "boolean" + } + }, + "required": ["dataTypeId", "enabled"] + }, + "UpsertAccountDataSettingsDto": { + "type": "object", + "properties": { + "accountDataSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UpsertAccountDataSettingDto" + } + } + }, + "required": ["accountDataSettings"] + }, + "AddressBookItem": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": ["id", "name", "address"] + }, + "AddressBook": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "accountId": { + "type": "string" + }, + "chainId": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AddressBookItem" + } + } + }, + "required": ["id", "accountId", "chainId", "data"] + }, + "CreateAddressBookItemDto": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "address": { + "type": "string" + } + }, + "required": ["name", "address"] + }, + "CounterfactualSafe": { + "type": "object", + "properties": { + "chainId": { + "type": "string" + }, + "creator": { + "type": "string" + }, + "fallbackHandler": { + "type": "string" + }, + "owners": { + "type": "array", + "items": { + "type": "string" + } + }, + "predictedAddress": { + "type": "string" + }, + "saltNonce": { + "type": "string" + }, + "singletonAddress": { + "type": "string" + }, + "threshold": { + "type": "number" + } + }, + "required": [ + "chainId", + "creator", + "fallbackHandler", + "owners", + "predictedAddress", + "saltNonce", + "singletonAddress", + "threshold" + ] + }, + "CreateCounterfactualSafeDto": { + "type": "object", + "properties": { + "chainId": { + "type": "string" + }, + "fallbackHandler": { + "type": "string" + }, + "owners": { + "type": "array", + "items": { + "type": "string" + } + }, + "predictedAddress": { + "type": "string" + }, + "saltNonce": { + "type": "string" + }, + "singletonAddress": { + "type": "string" + }, + "threshold": { + "type": "number" + } + }, + "required": [ + "chainId", + "fallbackHandler", + "owners", + "predictedAddress", + "saltNonce", + "singletonAddress", + "threshold" + ] + }, + "AuthNonce": { + "type": "object", + "properties": { + "nonce": { + "type": "string" + } + }, + "required": ["nonce"] + }, + "SiweDto": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "signature": { + "type": "string" + } + }, + "required": ["message", "signature"] + }, + "Token": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "decimals": { + "type": "number", + "nullable": true + }, + "logoUri": { + "type": "string" + }, + "name": { + "type": "string" + }, + "symbol": { + "type": "string" + }, + "type": { + "type": "string", + "enum": ["ERC721", "ERC20", "NATIVE_TOKEN", "UNKNOWN"] + } + }, + "required": ["address", "logoUri", "name", "symbol", "type"] + }, + "Balance": { + "type": "object", + "properties": { + "balance": { + "type": "string" + }, + "fiatBalance": { + "type": "string" + }, + "fiatConversion": { + "type": "string" + }, + "tokenInfo": { + "$ref": "#/components/schemas/Token" + } + }, + "required": ["balance", "fiatBalance", "fiatConversion", "tokenInfo"] + }, + "Balances": { + "type": "object", + "properties": { + "fiatTotal": { + "type": "string" + }, + "items": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/Balance" + } + ] + } + } + }, + "required": ["fiatTotal", "items"] + }, + "GasPriceOracle": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "gasParameter": { + "type": "string" + }, + "gweiFactor": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "required": ["type", "gasParameter", "gweiFactor", "uri"] + }, + "GasPriceFixed": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "weiValue": { + "type": "string" + } + }, + "required": ["type", "weiValue"] + }, + "GasPriceFixedEIP1559": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "maxFeePerGas": { + "type": "string" + }, + "maxPriorityFeePerGas": { + "type": "string" + } + }, + "required": ["type", "maxFeePerGas", "maxPriorityFeePerGas"] + }, + "NativeCurrency": { + "type": "object", + "properties": { + "decimals": { + "type": "number" + }, + "logoUri": { + "type": "string" + }, + "name": { + "type": "string" + }, + "symbol": { + "type": "string" + } + }, + "required": ["decimals", "logoUri", "name", "symbol"] + }, + "BlockExplorerUriTemplate": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "api": { + "type": "string" + }, + "txHash": { + "type": "string" + } + }, + "required": ["address", "api", "txHash"] + }, + "BalancesProvider": { + "type": "object", + "properties": { + "chainName": { + "type": "number", + "nullable": true + }, + "enabled": { + "type": "boolean" + } + }, + "required": ["enabled"] + }, + "ContractAddresses": { + "type": "object", + "properties": { + "safeSingletonAddress": { + "type": "string", + "nullable": true + }, + "safeProxyFactoryAddress": { + "type": "string", + "nullable": true + }, + "multiSendAddress": { + "type": "string", + "nullable": true + }, + "multiSendCallOnlyAddress": { + "type": "string", + "nullable": true + }, + "fallbackHandlerAddress": { + "type": "string", + "nullable": true + }, + "signMessageLibAddress": { + "type": "string", + "nullable": true + }, + "createCallAddress": { + "type": "string", + "nullable": true + }, + "simulateTxAccessorAddress": { + "type": "string", + "nullable": true + }, + "safeWebAuthnSignerFactoryAddress": { + "type": "string", + "nullable": true + } + } + }, + "RpcUri": { + "type": "object", + "properties": { + "authentication": { + "type": "string", + "enum": ["API_KEY_PATH", "NO_AUTHENTICATION", "UNKNOWN"] + }, + "value": { + "type": "string" + } + }, + "required": ["authentication", "value"] + }, + "Theme": { + "type": "object", + "properties": { + "backgroundColor": { + "type": "string" + }, + "textColor": { + "type": "string" + } + }, + "required": ["backgroundColor", "textColor"] + }, + "Chain": { + "type": "object", + "properties": { + "chainId": { + "type": "string" + }, + "chainName": { + "type": "string" + }, + "description": { + "type": "string" + }, + "chainLogoUri": { + "type": "string", + "nullable": true + }, + "l2": { + "type": "boolean" + }, + "isTestnet": { + "type": "boolean" + }, + "nativeCurrency": { + "$ref": "#/components/schemas/NativeCurrency" + }, + "transactionService": { + "type": "string" + }, + "blockExplorerUriTemplate": { + "$ref": "#/components/schemas/BlockExplorerUriTemplate" + }, + "beaconChainExplorerUriTemplate": { + "type": "object" + }, + "disabledWallets": { + "type": "array", + "items": { + "type": "string" + } + }, + "ensRegistryAddress": { + "type": "string", + "nullable": true + }, + "balancesProvider": { + "$ref": "#/components/schemas/BalancesProvider" + }, + "contractAddresses": { + "$ref": "#/components/schemas/ContractAddresses" + }, + "features": { + "type": "array", + "items": { + "type": "string" + } + }, + "gasPrice": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/GasPriceOracle" + }, + { + "$ref": "#/components/schemas/GasPriceFixed" + }, + { + "$ref": "#/components/schemas/GasPriceFixedEIP1559" + } + ] + } + }, + "publicRpcUri": { + "$ref": "#/components/schemas/RpcUri" + }, + "rpcUri": { + "$ref": "#/components/schemas/RpcUri" + }, + "safeAppsRpcUri": { + "$ref": "#/components/schemas/RpcUri" + }, + "shortName": { + "type": "string" + }, + "theme": { + "$ref": "#/components/schemas/Theme" + } + }, + "required": [ + "chainId", + "chainName", + "description", + "l2", + "isTestnet", + "nativeCurrency", + "transactionService", + "blockExplorerUriTemplate", + "beaconChainExplorerUriTemplate", + "disabledWallets", + "balancesProvider", + "contractAddresses", + "features", + "gasPrice", + "publicRpcUri", + "rpcUri", + "safeAppsRpcUri", + "shortName", + "theme" + ] + }, + "ChainPage": { + "type": "object", + "properties": { + "count": { + "type": "number", + "nullable": true + }, + "next": { + "type": "string", + "nullable": true + }, + "previous": { + "type": "string", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Chain" + } + } + }, + "required": ["results"] + }, + "AboutChain": { + "type": "object", + "properties": { + "transactionServiceBaseUri": { + "type": "string" + }, + "name": { + "type": "string" + }, + "version": { + "type": "string" + }, + "buildNumber": { + "type": "string" + } + }, + "required": ["transactionServiceBaseUri", "name", "version", "buildNumber"] + }, + "Backbone": { + "type": "object", + "properties": { + "api_version": { + "type": "string" + }, + "headers": { + "type": "string", + "nullable": true + }, + "host": { + "type": "string" + }, + "name": { + "type": "string" + }, + "secure": { + "type": "boolean" + }, + "settings": { + "type": "object", + "nullable": true + }, + "version": { + "type": "string" + } + }, + "required": ["api_version", "host", "name", "secure", "settings", "version"] + }, + "MasterCopy": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": ["address", "version"] + }, + "IndexingStatus": { + "type": "object", + "properties": { + "lastSync": { + "type": "number" + }, + "synced": { + "type": "boolean" + } + }, + "required": ["lastSync", "synced"] + }, + "Collectible": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "tokenName": { + "type": "string" + }, + "tokenSymbol": { + "type": "string" + }, + "logoUri": { + "type": "string" + }, + "id": { + "type": "string" + }, + "uri": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "imageUri": { + "type": "string", + "nullable": true + }, + "metadata": { + "type": "object", + "nullable": true + } + }, + "required": ["address", "tokenName", "tokenSymbol", "logoUri", "id"] + }, + "CollectiblePage": { + "type": "object", + "properties": { + "count": { + "type": "number", + "nullable": true + }, + "next": { + "type": "string", + "nullable": true + }, + "previous": { + "type": "string", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Collectible" + } + } + }, + "required": ["results"] + }, + "ActivityMetadata": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "maxPoints": { + "type": "number" + } + }, + "required": ["name", "description", "maxPoints"] + }, + "Campaign": { + "type": "object", + "properties": { + "resourceId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "startDate": { + "type": "string" + }, + "endDate": { + "type": "string" + }, + "lastUpdated": { + "type": "string", + "nullable": true + }, + "activitiesMetadata": { + "nullable": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/ActivityMetadata" + } + }, + "rewardValue": { + "type": "string", + "nullable": true + }, + "rewardText": { + "type": "string", + "nullable": true + }, + "iconUrl": { + "type": "string", + "nullable": true + }, + "safeAppUrl": { + "type": "string", + "nullable": true + }, + "partnerUrl": { + "type": "string", + "nullable": true + }, + "isPromoted": { + "type": "boolean" + } + }, + "required": ["resourceId", "name", "description", "startDate", "endDate", "isPromoted"] + }, + "CampaignPage": { + "type": "object", + "properties": { + "count": { + "type": "number", + "nullable": true + }, + "next": { + "type": "string", + "nullable": true + }, + "previous": { + "type": "string", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Campaign" + } + } + }, + "required": ["results"] + }, + "CampaignRank": { + "type": "object", + "properties": { + "holder": { + "type": "string" + }, + "position": { + "type": "number" + }, + "boost": { + "type": "number" + }, + "totalPoints": { + "type": "number" + }, + "totalBoostedPoints": { + "type": "number" + } + }, + "required": ["holder", "position", "boost", "totalPoints", "totalBoostedPoints"] + }, + "CampaignRankPage": { + "type": "object", + "properties": { + "count": { + "type": "number", + "nullable": true + }, + "next": { + "type": "string", + "nullable": true + }, + "previous": { + "type": "string", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CampaignRank" + } + } + }, + "required": ["results"] + }, + "EligibilityRequest": { + "type": "object", + "properties": { + "requestId": { + "type": "string" + }, + "sealedData": { + "type": "string" + } + }, + "required": ["requestId", "sealedData"] + }, + "Eligibility": { + "type": "object", + "properties": { + "requestId": { + "type": "string" + }, + "isAllowed": { + "type": "boolean" + }, + "isVpn": { + "type": "boolean" + } + }, + "required": ["requestId", "isAllowed", "isVpn"] + }, + "LockingRank": { + "type": "object", + "properties": { + "holder": { + "type": "string" + }, + "position": { + "type": "number" + }, + "lockedAmount": { + "type": "string" + }, + "unlockedAmount": { + "type": "string" + }, + "withdrawnAmount": { + "type": "string" + } + }, + "required": ["holder", "position", "lockedAmount", "unlockedAmount", "withdrawnAmount"] + }, + "LockingRankPage": { + "type": "object", + "properties": { + "count": { + "type": "number", + "nullable": true + }, + "next": { + "type": "string", + "nullable": true + }, + "previous": { + "type": "string", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LockingRank" + } + } + }, + "required": ["results"] + }, + "LockEventItem": { + "type": "object", + "properties": { + "eventType": { + "type": "string", + "enum": ["LOCKED"] + }, + "executionDate": { + "type": "string" + }, + "transactionHash": { + "type": "string" + }, + "holder": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "logIndex": { + "type": "string" + } + }, + "required": ["eventType", "executionDate", "transactionHash", "holder", "amount", "logIndex"] + }, + "UnlockEventItem": { + "type": "object", + "properties": { + "eventType": { + "type": "string", + "enum": ["UNLOCKED"] + }, + "executionDate": { + "type": "string" + }, + "transactionHash": { + "type": "string" + }, + "holder": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "logIndex": { + "type": "string" + }, + "unlockIndex": { + "type": "string" + } + }, + "required": ["eventType", "executionDate", "transactionHash", "holder", "amount", "logIndex", "unlockIndex"] + }, + "WithdrawEventItem": { + "type": "object", + "properties": { + "eventType": { + "type": "string", + "enum": ["WITHDRAWN"] + }, + "executionDate": { + "type": "string" + }, + "transactionHash": { + "type": "string" + }, + "holder": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "logIndex": { + "type": "string" + }, + "unlockIndex": { + "type": "string" + } + }, + "required": ["eventType", "executionDate", "transactionHash", "holder", "amount", "logIndex", "unlockIndex"] + }, + "LockingEventPage": { + "type": "object", + "properties": { + "count": { + "type": "number", + "nullable": true + }, + "next": { + "type": "string", + "nullable": true + }, + "previous": { + "type": "string", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/LockEventItem" + }, + { + "$ref": "#/components/schemas/UnlockEventItem" + }, + { + "$ref": "#/components/schemas/WithdrawEventItem" + } + ] + } + } + }, + "required": ["results"] + }, + "Contract": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "name": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "logoUri": { + "type": "string" + }, + "contractAbi": { + "type": "object", + "nullable": true + }, + "trustedForDelegateCall": { + "type": "boolean" + } + }, + "required": ["address", "name", "displayName", "logoUri", "trustedForDelegateCall"] + }, + "TransactionDataDto": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Hexadecimal value" + }, + "to": { + "type": "string", + "description": "The target Ethereum address" + }, + "value": { + "type": "string", + "description": "The wei amount being sent to a payable function" + } + }, + "required": ["data"] + }, + "DataDecodedParameter": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "object" + }, + "valueDecoded": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "array", + "items": { + "type": "object" + } + } + ], + "nullable": true + } + }, + "required": ["name", "type", "value"] + }, + "DataDecoded": { + "type": "object", + "properties": { + "method": { + "type": "string" + }, + "parameters": { + "nullable": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/DataDecodedParameter" + } + } + }, + "required": ["method"] + }, + "Delegate": { + "type": "object", + "properties": { + "safe": { + "type": "string", + "nullable": true + }, + "delegate": { + "type": "string" + }, + "delegator": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": ["delegate", "delegator", "label"] + }, + "DelegatePage": { + "type": "object", + "properties": { + "count": { + "type": "number", + "nullable": true + }, + "next": { + "type": "string", + "nullable": true + }, + "previous": { + "type": "string", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Delegate" + } + } + }, + "required": ["results"] + }, + "CreateDelegateDto": { + "type": "object", + "properties": { + "safe": { + "type": "string", + "nullable": true + }, + "delegate": { + "type": "string" + }, + "delegator": { + "type": "string" + }, + "signature": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": ["delegate", "delegator", "signature", "label"] + }, + "DeleteDelegateDto": { + "type": "object", + "properties": { + "delegate": { + "type": "string" + }, + "delegator": { + "type": "string" + }, + "signature": { + "type": "string" + } + }, + "required": ["delegate", "delegator", "signature"] + }, + "DeleteSafeDelegateDto": { + "type": "object", + "properties": { + "delegate": { + "type": "string" + }, + "safe": { + "type": "string" + }, + "signature": { + "type": "string" + } + }, + "required": ["delegate", "safe", "signature"] + }, + "DeleteDelegateV2Dto": { + "type": "object", + "properties": { + "delegator": { + "type": "string", + "nullable": true + }, + "safe": { + "type": "string", + "nullable": true + }, + "signature": { + "type": "string" + } + }, + "required": ["signature"] + }, + "GetEstimationDto": { + "type": "object", + "properties": { + "to": { + "type": "string" + }, + "value": { + "type": "string" + }, + "data": { + "type": "string", + "nullable": true + }, + "operation": { + "type": "number" + } + }, + "required": ["to", "value", "operation"] + }, + "EstimationResponse": { + "type": "object", + "properties": { + "currentNonce": { + "type": "number" + }, + "recommendedNonce": { + "type": "number" + }, + "safeTxGas": { + "type": "string" + } + }, + "required": ["currentNonce", "recommendedNonce", "safeTxGas"] + }, + "AddressInfo": { + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "name": { + "type": "string", + "nullable": true + }, + "logoUri": { + "type": "string", + "nullable": true + } + }, + "required": ["value"] + }, + "Message": { + "type": "object", + "properties": { + "messageHash": { + "type": "string" + }, + "status": { + "type": "string" + }, + "logoUri": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "message": { + "type": "object" + }, + "creationTimestamp": { + "type": "number" + }, + "modifiedTimestamp": { + "type": "number" + }, + "confirmationsSubmitted": { + "type": "number" + }, + "confirmationsRequired": { + "type": "number" + }, + "proposedBy": { + "$ref": "#/components/schemas/AddressInfo" + }, + "confirmations": { + "type": "array", + "items": { + "type": "string" + } + }, + "preparedSignature": { + "type": "string", + "nullable": true + }, + "origin": { + "type": "string", + "nullable": true + } + }, + "required": [ + "messageHash", + "status", + "message", + "creationTimestamp", + "modifiedTimestamp", + "confirmationsSubmitted", + "confirmationsRequired", + "proposedBy", + "confirmations" + ] + }, + "MessageItem": { + "type": "object", + "properties": { + "messageHash": { + "type": "string" + }, + "status": { + "type": "string" + }, + "logoUri": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "message": { + "type": "object" + }, + "creationTimestamp": { + "type": "number" + }, + "modifiedTimestamp": { + "type": "number" + }, + "confirmationsSubmitted": { + "type": "number" + }, + "confirmationsRequired": { + "type": "number" + }, + "proposedBy": { + "$ref": "#/components/schemas/AddressInfo" + }, + "confirmations": { + "type": "array", + "items": { + "type": "string" + } + }, + "preparedSignature": { + "type": "string", + "nullable": true + }, + "origin": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string" + } + }, + "required": [ + "messageHash", + "status", + "message", + "creationTimestamp", + "modifiedTimestamp", + "confirmationsSubmitted", + "confirmationsRequired", + "proposedBy", + "confirmations", + "type" + ] + }, + "DateLabel": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["DATE_LABEL"] + }, + "timestamp": { + "type": "number" + } + }, + "required": ["type", "timestamp"] + }, + "MessagePage": { + "type": "object", + "properties": { + "count": { + "type": "number", + "nullable": true + }, + "next": { + "type": "string", + "nullable": true + }, + "previous": { + "type": "string", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/MessageItem" + }, + { + "$ref": "#/components/schemas/DateLabel" + } + ] + } + } + }, + "required": ["results"] + }, + "CreateMessageDto": { + "type": "object", + "properties": { + "message": { + "type": "object" + }, + "safeAppId": { + "type": "number", + "nullable": true, + "deprecated": true + }, + "signature": { + "type": "string" + }, + "origin": { + "type": "string", + "nullable": true + } + }, + "required": ["message", "signature"] + }, + "UpdateMessageSignatureDto": { + "type": "object", + "properties": { + "signature": { + "type": "string" + } + }, + "required": ["signature"] + }, + "SafeRegistration": { + "type": "object", + "properties": { + "chainId": { + "type": "string" + }, + "safes": { + "type": "array", + "items": { + "type": "string" + } + }, + "signatures": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["chainId", "safes", "signatures"] + }, + "RegisterDeviceDto": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "nullable": true + }, + "cloudMessagingToken": { + "type": "string" + }, + "buildNumber": { + "type": "string" + }, + "bundle": { + "type": "string" + }, + "deviceType": { + "type": "string" + }, + "version": { + "type": "string" + }, + "timestamp": { + "type": "string", + "nullable": true + }, + "safeRegistrations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SafeRegistration" + } + } + }, + "required": ["cloudMessagingToken", "buildNumber", "bundle", "deviceType", "version", "safeRegistrations"] + }, + "SafeList": { + "type": "object", + "properties": { + "safes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["safes"] + }, + "RelayDto": { + "type": "object", + "properties": { + "version": { + "type": "string" + }, + "to": { + "type": "string" + }, + "data": { + "type": "string" + }, + "gasLimit": { + "type": "string", + "nullable": true, + "description": "If specified, a gas buffer of 150k will be added on top of the expected gas usage for the transaction.\n This is for the \n Gelato Relay execution overhead, reducing the chance of the task cancelling before it is executed on-chain." + } + }, + "required": ["version", "to", "data"] + }, + "SafeAppProvider": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": ["url", "name"] + }, + "SafeAppAccessControl": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "nullable": true, + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["type"] + }, + "SafeAppSocialProfile": { + "type": "object", + "properties": { + "platform": { + "type": "string", + "enum": ["DISCORD", "GITHUB", "TWITTER", "UNKNOWN"] + }, + "url": { + "type": "string" + } + }, + "required": ["platform", "url"] + }, + "SafeApp": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "url": { + "type": "string" + }, + "name": { + "type": "string" + }, + "iconUrl": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string" + }, + "chainIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "provider": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/SafeAppProvider" + } + ] + }, + "accessControl": { + "$ref": "#/components/schemas/SafeAppAccessControl" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "features": { + "type": "array", + "items": { + "type": "string" + } + }, + "developerWebsite": { + "type": "string", + "nullable": true + }, + "socialProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SafeAppSocialProfile" + } + }, + "featured": { + "type": "boolean" + } + }, + "required": [ + "id", + "url", + "name", + "description", + "chainIds", + "accessControl", + "tags", + "features", + "socialProfiles", + "featured" + ] + }, + "SafeState": { + "type": "object", + "properties": { + "address": { + "$ref": "#/components/schemas/AddressInfo" + }, + "chainId": { + "type": "string" + }, + "nonce": { + "type": "number" + }, + "threshold": { + "type": "number" + }, + "owners": { + "type": "array", + "items": { + "type": "string" + } + }, + "implementation": { + "$ref": "#/components/schemas/AddressInfo" + }, + "modules": { + "nullable": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/AddressInfo" + } + }, + "fallbackHandler": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/AddressInfo" + } + ] + }, + "guard": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/AddressInfo" + } + ] + }, + "version": { + "type": "string", + "nullable": true + }, + "implementationVersionState": { + "type": "string", + "enum": ["UP_TO_DATE", "OUTDATED", "UNKNOWN"] + }, + "collectiblesTag": { + "type": "string", + "nullable": true + }, + "txQueuedTag": { + "type": "string", + "nullable": true + }, + "txHistoryTag": { + "type": "string", + "nullable": true + }, + "messagesTag": { + "type": "string", + "nullable": true + } + }, + "required": [ + "address", + "chainId", + "nonce", + "threshold", + "owners", + "implementation", + "implementationVersionState" + ] + }, + "SafeNonces": { + "type": "object", + "properties": { + "currentNonce": { + "type": "number" + }, + "recommendedNonce": { + "type": "number" + } + }, + "required": ["currentNonce", "recommendedNonce"] + }, + "SafeOverview": { + "type": "object", + "properties": { + "address": { + "$ref": "#/components/schemas/AddressInfo" + }, + "chainId": { + "type": "string" + }, + "threshold": { + "type": "number" + }, + "owners": { + "type": "array", + "items": { + "type": "string" + } + }, + "fiatTotal": { + "type": "string" + }, + "queued": { + "type": "number" + }, + "awaitingConfirmation": { + "type": "number", + "nullable": true + } + }, + "required": ["address", "chainId", "threshold", "owners", "fiatTotal", "queued"] + }, + "Submission": { + "type": "object", + "properties": { + "outreachId": { + "type": "number" + }, + "targetedSafeId": { + "type": "number" + }, + "signerAddress": { + "type": "string" + }, + "completionDate": { + "format": "date-time", + "type": "string", + "nullable": true + } + }, + "required": ["outreachId", "targetedSafeId", "signerAddress"] + }, + "CreateSubmissionDto": { + "type": "object", + "properties": { + "completed": { + "type": "boolean" + } + }, + "required": ["completed"] + }, + "TransactionInfo": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "Creation", + "Custom", + "SettingsChange", + "Transfer", + "SwapOrder", + "SwapTransfer", + "TwapOrder", + "NativeStakingDeposit", + "NativeStakingValidatorsExit", + "NativeStakingWithdraw" + ] + }, + "humanDescription": { + "type": "string", + "nullable": true + } + }, + "required": ["type"] + }, + "TransactionData": { + "type": "object", + "properties": { + "hexData": { + "type": "string", + "nullable": true + }, + "dataDecoded": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/DataDecoded" + } + ] + }, + "to": { + "$ref": "#/components/schemas/AddressInfo" + }, + "value": { + "type": "string", + "nullable": true + }, + "operation": { + "type": "number" + }, + "trustedDelegateCallTarget": { + "type": "boolean", + "nullable": true + }, + "addressInfoIndex": { + "type": "object", + "nullable": true + } + }, + "required": ["to", "operation"] + }, + "MultisigExecutionDetails": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["MULTISIG"] + }, + "submittedAt": { + "type": "number" + }, + "nonce": { + "type": "number" + }, + "safeTxGas": { + "type": "string" + }, + "baseGas": { + "type": "string" + }, + "gasPrice": { + "type": "string" + }, + "gasToken": { + "type": "string" + }, + "refundReceiver": { + "$ref": "#/components/schemas/AddressInfo" + }, + "safeTxHash": { + "type": "string" + }, + "executor": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/AddressInfo" + } + ] + }, + "signers": { + "type": "array", + "items": { + "type": "string" + } + }, + "confirmationsRequired": { + "type": "number" + }, + "confirmations": { + "type": "array", + "items": { + "type": "string" + } + }, + "rejectors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AddressInfo" + } + }, + "gasTokenInfo": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/Token" + } + ] + }, + "trusted": { + "type": "boolean" + }, + "proposer": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/AddressInfo" + } + ] + }, + "proposedByDelegate": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/AddressInfo" + } + ] + } + }, + "required": [ + "type", + "submittedAt", + "nonce", + "safeTxGas", + "baseGas", + "gasPrice", + "gasToken", + "refundReceiver", + "safeTxHash", + "signers", + "confirmationsRequired", + "confirmations", + "rejectors", + "trusted" + ] + }, + "ModuleExecutionDetails": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["MODULE"] + }, + "address": { + "$ref": "#/components/schemas/AddressInfo" + } + }, + "required": ["type", "address"] + }, + "SafeAppInfo": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "logoUri": { + "type": "string", + "nullable": true + } + }, + "required": ["name", "url"] + }, + "TransactionDetails": { + "type": "object", + "properties": { + "safeAddress": { + "type": "string" + }, + "txId": { + "type": "string" + }, + "executedAt": { + "type": "number", + "nullable": true + }, + "txStatus": { + "type": "string", + "enum": ["SUCCESS", "FAILED", "CANCELLED", "AWAITING_CONFIRMATIONS", "AWAITING_EXECUTION"] + }, + "txInfo": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/TransactionInfo" + } + ] + }, + "txData": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/TransactionData" + } + ] + }, + "detailedExecutionInfo": { + "oneOf": [ + { + "$ref": "#/components/schemas/MultisigExecutionDetails" + }, + { + "$ref": "#/components/schemas/ModuleExecutionDetails" + } + ], + "nullable": true + }, + "txHash": { + "type": "string", + "nullable": true + }, + "safeAppInfo": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/SafeAppInfo" + } + ] + } + }, + "required": ["safeAddress", "txId", "txStatus", "txInfo"] + }, + "CreationTransactionInfo": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["Creation"] + }, + "humanDescription": { + "type": "string", + "nullable": true + }, + "creator": { + "$ref": "#/components/schemas/AddressInfo" + }, + "transactionHash": { + "type": "string" + }, + "implementation": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/AddressInfo" + } + ] + }, + "factory": { + "$ref": "#/components/schemas/AddressInfo" + }, + "saltNonce": { + "type": "string", + "nullable": true + } + }, + "required": ["type", "creator", "transactionHash"] + }, + "CustomTransactionInfo": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["Custom"] + }, + "humanDescription": { + "type": "string", + "nullable": true + }, + "to": { + "$ref": "#/components/schemas/AddressInfo" + }, + "dataSize": { + "type": "string" + }, + "value": { + "type": "string", + "nullable": true + }, + "isCancellation": { + "type": "boolean" + }, + "methodName": { + "type": "string", + "nullable": true + }, + "actionCount": { + "type": "number", + "nullable": true + } + }, + "required": ["type", "to", "dataSize", "isCancellation"] + }, + "SettingsChange": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "ADD_OWNER", + "CHANGE_MASTER_COPY", + "CHANGE_THRESHOLD", + "DELETE_GUARD", + "DISABLE_MODULE", + "ENABLE_MODULE", + "REMOVE_OWNER", + "SET_FALLBACK_HANDLER", + "SET_GUARD", + "SWAP_OWNER" + ] + } + }, + "required": ["type"] + }, + "SettingsChangeTransaction": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["SettingsChange"] + }, + "humanDescription": { + "type": "string", + "nullable": true + }, + "dataDecoded": { + "$ref": "#/components/schemas/DataDecoded" + }, + "settingsInfo": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/SettingsChange" + } + ] + } + }, + "required": ["type", "dataDecoded"] + }, + "Erc20Transfer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["ERC20"] + }, + "tokenAddress": { + "type": "string" + }, + "value": { + "type": "string" + }, + "tokenName": { + "type": "string", + "nullable": true + }, + "tokenSymbol": { + "type": "string", + "nullable": true + }, + "logoUri": { + "type": "string", + "nullable": true + }, + "decimals": { + "type": "number", + "nullable": true + }, + "trusted": { + "type": "boolean", + "nullable": true + }, + "imitation": { + "type": "boolean" + } + }, + "required": ["type", "tokenAddress", "value", "imitation"] + }, + "Erc721Transfer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["ERC721"] + }, + "tokenAddress": { + "type": "string" + }, + "tokenId": { + "type": "string" + }, + "tokenName": { + "type": "string", + "nullable": true + }, + "tokenSymbol": { + "type": "string", + "nullable": true + }, + "logoUri": { + "type": "string", + "nullable": true + }, + "trusted": { + "type": "boolean", + "nullable": true + } + }, + "required": ["type", "tokenAddress", "tokenId"] + }, + "NativeCoinTransfer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["NATIVE_COIN"] + }, + "value": { + "type": "string", + "nullable": true + } + }, + "required": ["type"] + }, + "Transfer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["NATIVE_COIN", "ERC20", "ERC721"] + } + }, + "required": ["type"] + }, + "TransferTransactionInfo": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["Transfer"] + }, + "humanDescription": { + "type": "string", + "nullable": true + }, + "sender": { + "$ref": "#/components/schemas/AddressInfo" + }, + "recipient": { + "$ref": "#/components/schemas/AddressInfo" + }, + "direction": { + "type": "string", + "enum": ["INCOMING", "OUTGOING", "UNKNOWN"] + }, + "transferInfo": { + "oneOf": [ + { + "$ref": "#/components/schemas/Erc20Transfer" + }, + { + "$ref": "#/components/schemas/Erc721Transfer" + }, + { + "$ref": "#/components/schemas/NativeCoinTransfer" + } + ], + "allOf": [ + { + "$ref": "#/components/schemas/Transfer" + } + ] + } + }, + "required": ["type", "sender", "recipient", "direction", "transferInfo"] + }, + "ModuleExecutionInfo": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["MODULE"] + }, + "address": { + "$ref": "#/components/schemas/AddressInfo" + } + }, + "required": ["type", "address"] + }, + "MultisigExecutionInfo": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["MULTISIG"] + }, + "nonce": { + "type": "number" + }, + "confirmationsRequired": { + "type": "number" + }, + "confirmationsSubmitted": { + "type": "number" + }, + "missingSigners": { + "nullable": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/AddressInfo" + } + } + }, + "required": ["type", "nonce", "confirmationsRequired", "confirmationsSubmitted"] + }, + "TokenInfo": { + "type": "object", + "properties": { + "address": { + "type": "string", + "description": "The token address" + }, + "decimals": { + "type": "number", + "description": "The token decimals" + }, + "logoUri": { + "type": "string", + "nullable": true, + "description": "The logo URI for the token" + }, + "name": { + "type": "string", + "description": "The token name" + }, + "symbol": { + "type": "string", + "description": "The token symbol" + }, + "trusted": { + "type": "boolean", + "description": "The token trusted status" + } + }, + "required": ["address", "decimals", "name", "symbol", "trusted"] + }, + "SwapOrderTransactionInfo": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["SwapOrder"] + }, + "humanDescription": { + "type": "string", + "nullable": true + }, + "uid": { + "type": "string", + "description": "The order UID" + }, + "status": { + "type": "string", + "enum": ["presignaturePending", "open", "fulfilled", "cancelled", "expired", "unknown"] + }, + "kind": { + "type": "string", + "enum": ["buy", "sell", "unknown"] + }, + "orderClass": { + "type": "string", + "enum": ["market", "limit", "liquidity", "unknown"] + }, + "validUntil": { + "type": "number", + "description": "The timestamp when the order expires" + }, + "sellAmount": { + "type": "string", + "description": "The sell token raw amount (no decimals)" + }, + "buyAmount": { + "type": "string", + "description": "The buy token raw amount (no decimals)" + }, + "executedSellAmount": { + "type": "string", + "description": "The executed sell token raw amount (no decimals)" + }, + "executedBuyAmount": { + "type": "string", + "description": "The executed buy token raw amount (no decimals)" + }, + "sellToken": { + "description": "The sell token of the order", + "allOf": [ + { + "$ref": "#/components/schemas/TokenInfo" + } + ] + }, + "buyToken": { + "description": "The buy token of the order", + "allOf": [ + { + "$ref": "#/components/schemas/TokenInfo" + } + ] + }, + "explorerUrl": { + "type": "string", + "description": "The URL to the explorer page of the order" + }, + "executedSurplusFee": { + "type": "string", + "nullable": true, + "description": "The amount of fees paid for this order." + }, + "receiver": { + "type": "string", + "nullable": true, + "description": "The (optional) address to receive the proceeds of the trade" + }, + "owner": { + "type": "string" + }, + "fullAppData": { + "type": "object", + "nullable": true, + "description": "The App Data for this order" + } + }, + "required": [ + "type", + "uid", + "status", + "kind", + "orderClass", + "validUntil", + "sellAmount", + "buyAmount", + "executedSellAmount", + "executedBuyAmount", + "sellToken", + "buyToken", + "explorerUrl", + "owner" + ] + }, + "SwapTransferTransactionInfo": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["SwapTransfer"] + }, + "humanDescription": { + "type": "string", + "nullable": true + }, + "sender": { + "$ref": "#/components/schemas/AddressInfo" + }, + "recipient": { + "$ref": "#/components/schemas/AddressInfo" + }, + "direction": { + "type": "string" + }, + "transferInfo": { + "oneOf": [ + { + "$ref": "#/components/schemas/Erc20Transfer" + }, + { + "$ref": "#/components/schemas/Erc721Transfer" + }, + { + "$ref": "#/components/schemas/NativeCoinTransfer" + } + ], + "allOf": [ + { + "$ref": "#/components/schemas/Transfer" + } + ] + }, + "uid": { + "type": "string", + "description": "The order UID" + }, + "status": { + "type": "string", + "enum": ["presignaturePending", "open", "fulfilled", "cancelled", "expired", "unknown"] + }, + "kind": { + "type": "string", + "enum": ["buy", "sell", "unknown"] + }, + "orderClass": { + "type": "string", + "enum": ["market", "limit", "liquidity", "unknown"] + }, + "validUntil": { + "type": "number", + "description": "The timestamp when the order expires" + }, + "sellAmount": { + "type": "string", + "description": "The sell token raw amount (no decimals)" + }, + "buyAmount": { + "type": "string", + "description": "The buy token raw amount (no decimals)" + }, + "executedSellAmount": { + "type": "string", + "description": "The executed sell token raw amount (no decimals)" + }, + "executedBuyAmount": { + "type": "string", + "description": "The executed buy token raw amount (no decimals)" + }, + "sellToken": { + "description": "The sell token of the order", + "allOf": [ + { + "$ref": "#/components/schemas/TokenInfo" + } + ] + }, + "buyToken": { + "description": "The buy token of the order", + "allOf": [ + { + "$ref": "#/components/schemas/TokenInfo" + } + ] + }, + "explorerUrl": { + "type": "string", + "description": "The URL to the explorer page of the order" + }, + "executedSurplusFee": { + "type": "string", + "nullable": true, + "description": "The amount of fees paid for this order." + }, + "receiver": { + "type": "string", + "nullable": true, + "description": "The (optional) address to receive the proceeds of the trade" + }, + "owner": { + "type": "string" + }, + "fullAppData": { + "type": "object", + "nullable": true, + "description": "The App Data for this order" + } + }, + "required": [ + "type", + "sender", + "recipient", + "direction", + "transferInfo", + "uid", + "status", + "kind", + "orderClass", + "validUntil", + "sellAmount", + "buyAmount", + "executedSellAmount", + "executedBuyAmount", + "sellToken", + "buyToken", + "explorerUrl", + "owner" + ] + }, + "TwapOrderTransactionInfo": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["TwapOrder"] + }, + "humanDescription": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "description": "The TWAP status", + "enum": ["presignaturePending", "open", "fulfilled", "cancelled", "expired", "unknown"] + }, + "kind": { + "type": "string", + "enum": ["buy", "sell", "unknown"] + }, + "class": { + "type": "string", + "enum": ["market", "limit", "liquidity", "unknown"] + }, + "activeOrderUid": { + "type": "string", + "nullable": true, + "description": "The order UID of the active order, or null if none is active" + }, + "validUntil": { + "type": "number", + "description": "The timestamp when the TWAP expires" + }, + "sellAmount": { + "type": "string", + "description": "The sell token raw amount (no decimals)" + }, + "buyAmount": { + "type": "string", + "description": "The buy token raw amount (no decimals)" + }, + "executedSellAmount": { + "type": "string", + "nullable": true, + "description": "The executed sell token raw amount (no decimals), or null if there are too many parts" + }, + "executedBuyAmount": { + "type": "string", + "nullable": true, + "description": "The executed buy token raw amount (no decimals), or null if there are too many parts" + }, + "executedSurplusFee": { + "type": "string", + "nullable": true, + "description": "The executed surplus fee raw amount (no decimals), or null if there are too many parts" + }, + "sellToken": { + "description": "The sell token of the TWAP", + "allOf": [ + { + "$ref": "#/components/schemas/TokenInfo" + } + ] + }, + "buyToken": { + "description": "The buy token of the TWAP", + "allOf": [ + { + "$ref": "#/components/schemas/TokenInfo" + } + ] + }, + "receiver": { + "type": "string", + "description": "The address to receive the proceeds of the trade" + }, + "owner": { + "type": "string" + }, + "fullAppData": { + "type": "object", + "nullable": true, + "description": "The App Data for this TWAP" + }, + "numberOfParts": { + "type": "string", + "description": "The number of parts in the TWAP" + }, + "partSellAmount": { + "type": "string", + "description": "The amount of sellToken to sell in each part" + }, + "minPartLimit": { + "type": "string", + "description": "The amount of buyToken that must be bought in each part" + }, + "timeBetweenParts": { + "type": "number", + "description": "The duration of the TWAP interval" + }, + "durationOfPart": { + "type": "object", + "description": "Whether the TWAP is valid for the entire interval or not" + }, + "startTime": { + "type": "object", + "description": "The start time of the TWAP" + } + }, + "required": [ + "type", + "status", + "kind", + "validUntil", + "sellAmount", + "buyAmount", + "sellToken", + "buyToken", + "receiver", + "owner", + "numberOfParts", + "partSellAmount", + "minPartLimit", + "timeBetweenParts", + "durationOfPart", + "startTime" + ] + }, + "NativeStakingDepositTransactionInfo": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["NativeStakingDeposit"] + }, + "humanDescription": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "NOT_STAKED", + "ACTIVATING", + "DEPOSIT_IN_PROGRESS", + "ACTIVE", + "EXIT_REQUESTED", + "EXITING", + "EXITED", + "SLASHED" + ] + }, + "estimatedEntryTime": { + "type": "number" + }, + "estimatedExitTime": { + "type": "number" + }, + "estimatedWithdrawalTime": { + "type": "number" + }, + "fee": { + "type": "number" + }, + "monthlyNrr": { + "type": "number" + }, + "annualNrr": { + "type": "number" + }, + "value": { + "type": "string" + }, + "numValidators": { + "type": "number" + }, + "expectedAnnualReward": { + "type": "string" + }, + "expectedMonthlyReward": { + "type": "string" + }, + "expectedFiatAnnualReward": { + "type": "number" + }, + "expectedFiatMonthlyReward": { + "type": "number" + }, + "tokenInfo": { + "$ref": "#/components/schemas/TokenInfo" + }, + "validators": { + "nullable": true, + "description": "Populated after transaction has been executed", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type", + "status", + "estimatedEntryTime", + "estimatedExitTime", + "estimatedWithdrawalTime", + "fee", + "monthlyNrr", + "annualNrr", + "value", + "numValidators", + "expectedAnnualReward", + "expectedMonthlyReward", + "expectedFiatAnnualReward", + "expectedFiatMonthlyReward", + "tokenInfo" + ] + }, + "NativeStakingValidatorsExitTransactionInfo": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["NativeStakingValidatorsExit"] + }, + "humanDescription": { + "type": "string", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "NOT_STAKED", + "ACTIVATING", + "DEPOSIT_IN_PROGRESS", + "ACTIVE", + "EXIT_REQUESTED", + "EXITING", + "EXITED", + "SLASHED" + ] + }, + "estimatedExitTime": { + "type": "number" + }, + "estimatedWithdrawalTime": { + "type": "number" + }, + "value": { + "type": "string" + }, + "numValidators": { + "type": "number" + }, + "tokenInfo": { + "$ref": "#/components/schemas/TokenInfo" + }, + "validators": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type", + "status", + "estimatedExitTime", + "estimatedWithdrawalTime", + "value", + "numValidators", + "tokenInfo", + "validators" + ] + }, + "NativeStakingWithdrawTransactionInfo": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["NativeStakingWithdraw"] + }, + "humanDescription": { + "type": "string", + "nullable": true + }, + "value": { + "type": "string" + }, + "tokenInfo": { + "$ref": "#/components/schemas/TokenInfo" + }, + "validators": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["type", "value", "tokenInfo", "validators"] + }, + "Transaction": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "txHash": { + "type": "string", + "nullable": true + }, + "timestamp": { + "type": "number" + }, + "txStatus": { + "type": "string", + "enum": ["SUCCESS", "FAILED", "CANCELLED", "AWAITING_CONFIRMATIONS", "AWAITING_EXECUTION"] + }, + "txInfo": { + "oneOf": [ + { + "$ref": "#/components/schemas/CreationTransactionInfo" + }, + { + "$ref": "#/components/schemas/CustomTransactionInfo" + }, + { + "$ref": "#/components/schemas/SettingsChangeTransaction" + }, + { + "$ref": "#/components/schemas/SwapOrderTransactionInfo" + }, + { + "$ref": "#/components/schemas/SwapTransferTransactionInfo" + }, + { + "$ref": "#/components/schemas/TwapOrderTransactionInfo" + }, + { + "$ref": "#/components/schemas/TransferTransactionInfo" + }, + { + "$ref": "#/components/schemas/NativeStakingDepositTransactionInfo" + }, + { + "$ref": "#/components/schemas/NativeStakingValidatorsExitTransactionInfo" + }, + { + "$ref": "#/components/schemas/NativeStakingWithdrawTransactionInfo" + } + ], + "allOf": [ + { + "$ref": "#/components/schemas/TransactionInfo" + } + ] + }, + "executionInfo": { + "oneOf": [ + { + "$ref": "#/components/schemas/MultisigExecutionInfo" + }, + { + "$ref": "#/components/schemas/ModuleExecutionInfo" + } + ], + "nullable": true + }, + "safeAppInfo": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/SafeAppInfo" + } + ] + } + }, + "required": ["id", "timestamp", "txStatus", "txInfo"] + }, + "MultisigTransaction": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["TRANSACTION"] + }, + "transaction": { + "$ref": "#/components/schemas/Transaction" + }, + "conflictType": { + "type": "string", + "enum": ["None", "HasNext", "End"] + } + }, + "required": ["type", "transaction", "conflictType"] + }, + "MultisigTransactionPage": { + "type": "object", + "properties": { + "count": { + "type": "number", + "nullable": true + }, + "next": { + "type": "string", + "nullable": true + }, + "previous": { + "type": "string", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MultisigTransaction" + } + } + }, + "required": ["results"] + }, + "DeleteTransactionDto": { + "type": "object", + "properties": { + "signature": { + "type": "string" + } + }, + "required": ["signature"] + }, + "ModuleTransaction": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["TRANSACTION"] + }, + "transaction": { + "$ref": "#/components/schemas/Transaction" + }, + "conflictType": { + "type": "string", + "enum": ["None"] + } + }, + "required": ["type", "transaction", "conflictType"] + }, + "ModuleTransactionPage": { + "type": "object", + "properties": { + "count": { + "type": "number", + "nullable": true + }, + "next": { + "type": "string", + "nullable": true + }, + "previous": { + "type": "string", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ModuleTransaction" + } + } + }, + "required": ["results"] + }, + "AddConfirmationDto": { + "type": "object", + "properties": { + "signedSafeTxHash": { + "type": "string" + } + }, + "required": ["signedSafeTxHash"] + }, + "IncomingTransfer": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["TRANSACTION"] + }, + "transaction": { + "$ref": "#/components/schemas/Transaction" + }, + "conflictType": { + "type": "string", + "enum": ["None"] + } + }, + "required": ["type", "transaction", "conflictType"] + }, + "IncomingTransferPage": { + "type": "object", + "properties": { + "count": { + "type": "number", + "nullable": true + }, + "next": { + "type": "string", + "nullable": true + }, + "previous": { + "type": "string", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IncomingTransfer" + } + } + }, + "required": ["results"] + }, + "PreviewTransactionDto": { + "type": "object", + "properties": { + "to": { + "type": "string" + }, + "data": { + "type": "string", + "nullable": true + }, + "value": { + "type": "string" + }, + "operation": { + "type": "number" + } + }, + "required": ["to", "value", "operation"] + }, + "TransactionPreview": { + "type": "object", + "properties": { + "txInfo": { + "oneOf": [ + { + "$ref": "#/components/schemas/CreationTransactionInfo" + }, + { + "$ref": "#/components/schemas/CustomTransactionInfo" + }, + { + "$ref": "#/components/schemas/SettingsChangeTransaction" + }, + { + "$ref": "#/components/schemas/TransferTransactionInfo" + }, + { + "$ref": "#/components/schemas/SwapOrderTransactionInfo" + }, + { + "$ref": "#/components/schemas/TwapOrderTransactionInfo" + }, + { + "$ref": "#/components/schemas/NativeStakingDepositTransactionInfo" + }, + { + "$ref": "#/components/schemas/NativeStakingValidatorsExitTransactionInfo" + }, + { + "$ref": "#/components/schemas/NativeStakingWithdrawTransactionInfo" + } + ], + "allOf": [ + { + "$ref": "#/components/schemas/TransactionInfo" + } + ] + }, + "txData": { + "$ref": "#/components/schemas/TransactionData" + } + }, + "required": ["txInfo", "txData"] + }, + "ConflictHeaderQueuedItem": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["CONFLICT_HEADER"] + }, + "nonce": { + "type": "number" + } + }, + "required": ["type", "nonce"] + }, + "LabelQueuedItem": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["LABEL"] + }, + "label": { + "type": "string" + } + }, + "required": ["type", "label"] + }, + "TransactionQueuedItem": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["TRANSACTION"] + }, + "transaction": { + "$ref": "#/components/schemas/Transaction" + }, + "conflictType": { + "type": "string", + "enum": ["None", "HasNext", "End"] + } + }, + "required": ["type", "transaction", "conflictType"] + }, + "QueuedItemPage": { + "type": "object", + "properties": { + "count": { + "type": "number", + "nullable": true + }, + "next": { + "type": "string", + "nullable": true + }, + "previous": { + "type": "string", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ConflictHeaderQueuedItem" + }, + { + "$ref": "#/components/schemas/LabelQueuedItem" + }, + { + "$ref": "#/components/schemas/TransactionQueuedItem" + } + ] + } + } + }, + "required": ["results"] + }, + "TransactionItem": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["TRANSACTION"] + }, + "transaction": { + "$ref": "#/components/schemas/Transaction" + }, + "conflictType": { + "type": "string", + "enum": ["None"] + } + }, + "required": ["type", "transaction", "conflictType"] + }, + "TransactionItemPage": { + "type": "object", + "properties": { + "count": { + "type": "number", + "nullable": true + }, + "next": { + "type": "string", + "nullable": true + }, + "previous": { + "type": "string", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/TransactionItem" + }, + { + "$ref": "#/components/schemas/DateLabel" + } + ] + } + } + }, + "required": ["results"] + }, + "ProposeTransactionDto": { + "type": "object", + "properties": { + "to": { + "type": "string" + }, + "value": { + "type": "string" + }, + "data": { + "type": "string", + "nullable": true + }, + "nonce": { + "type": "string" + }, + "operation": { + "type": "number" + }, + "safeTxGas": { + "type": "string" + }, + "baseGas": { + "type": "string" + }, + "gasPrice": { + "type": "string" + }, + "gasToken": { + "type": "string" + }, + "refundReceiver": { + "type": "string", + "nullable": true + }, + "safeTxHash": { + "type": "string" + }, + "sender": { + "type": "string" + }, + "signature": { + "type": "string", + "nullable": true + }, + "origin": { + "type": "string", + "nullable": true + } + }, + "required": [ + "to", + "value", + "nonce", + "operation", + "safeTxGas", + "baseGas", + "gasPrice", + "gasToken", + "safeTxHash", + "sender" + ] + }, + "CreationTransaction": { + "type": "object", + "properties": { + "created": { + "format": "date-time", + "type": "string" + }, + "creator": { + "type": "string" + }, + "transactionHash": { + "type": "string" + }, + "factoryAddress": { + "type": "string" + }, + "masterCopy": { + "type": "string", + "nullable": true + }, + "setupData": { + "type": "string", + "nullable": true + }, + "saltNonce": { + "type": "string", + "nullable": true + }, + "dataDecoded": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/DataDecoded" + } + ] + } + }, + "required": ["created", "creator", "transactionHash", "factoryAddress"] + }, + "BaselineConfirmationView": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["GENERIC"] + }, + "method": { + "type": "string" + }, + "parameters": { + "nullable": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/DataDecodedParameter" + } + } + }, + "required": ["type", "method"] + }, + "CowSwapConfirmationView": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["COW_SWAP_ORDER"] + }, + "method": { + "type": "string" + }, + "parameters": { + "nullable": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/DataDecodedParameter" + } + }, + "uid": { + "type": "string", + "description": "The order UID" + }, + "status": { + "type": "string", + "enum": ["presignaturePending", "open", "fulfilled", "cancelled", "expired", "unknown"] + }, + "kind": { + "type": "string", + "enum": ["buy", "sell", "unknown"] + }, + "orderClass": { + "type": "string", + "enum": ["market", "limit", "liquidity", "unknown"] + }, + "validUntil": { + "type": "number", + "description": "The timestamp when the order expires" + }, + "sellAmount": { + "type": "string", + "description": "The sell token raw amount (no decimals)" + }, + "buyAmount": { + "type": "string", + "description": "The buy token raw amount (no decimals)" + }, + "executedSellAmount": { + "type": "string", + "description": "The executed sell token raw amount (no decimals)" + }, + "executedBuyAmount": { + "type": "string", + "description": "The executed buy token raw amount (no decimals)" + }, + "explorerUrl": { + "type": "string", + "description": "The URL to the explorer page of the order" + }, + "executedSurplusFee": { + "type": "string", + "nullable": true, + "description": "The amount of fees paid for this order." + }, + "receiver": { + "type": "string", + "nullable": true, + "description": "The (optional) address to receive the proceeds of the trade" + }, + "owner": { + "type": "string" + }, + "fullAppData": { + "type": "object", + "nullable": true, + "description": "The App Data for this order" + }, + "sellToken": { + "description": "The sell token of the order", + "allOf": [ + { + "$ref": "#/components/schemas/TokenInfo" + } + ] + }, + "buyToken": { + "description": "The buy token of the order", + "allOf": [ + { + "$ref": "#/components/schemas/TokenInfo" + } + ] + } + }, + "required": [ + "type", + "method", + "uid", + "status", + "kind", + "orderClass", + "validUntil", + "sellAmount", + "buyAmount", + "executedSellAmount", + "executedBuyAmount", + "explorerUrl", + "owner", + "sellToken", + "buyToken" + ] + }, + "CowSwapTwapConfirmationView": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["COW_SWAP_TWAP_ORDER"] + }, + "method": { + "type": "string" + }, + "parameters": { + "nullable": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/DataDecodedParameter" + } + }, + "status": { + "type": "string", + "enum": ["presignaturePending", "open", "fulfilled", "cancelled", "expired", "unknown"], + "description": "The TWAP status" + }, + "kind": { + "type": "string", + "enum": ["buy", "sell", "unknown"] + }, + "class": { + "type": "string", + "enum": ["market", "limit", "liquidity", "unknown"] + }, + "activeOrderUid": { + "type": "null", + "description": "The order UID of the active order, null as it is not an active order" + }, + "validUntil": { + "type": "number", + "description": "The timestamp when the TWAP expires" + }, + "sellAmount": { + "type": "string", + "description": "The sell token raw amount (no decimals)" + }, + "buyAmount": { + "type": "string", + "description": "The buy token raw amount (no decimals)" + }, + "executedSellAmount": { + "type": "string", + "nullable": true, + "description": "The executed sell token raw amount (no decimals), or null if there are too many parts" + }, + "executedSurplusFee": { + "type": "string", + "nullable": true, + "description": "The executed surplus fee raw amount (no decimals), or null if there are too many parts" + }, + "executedBuyAmount": { + "type": "string", + "nullable": true, + "description": "The executed buy token raw amount (no decimals), or null if there are too many parts" + }, + "sellToken": { + "description": "The sell token of the TWAP", + "allOf": [ + { + "$ref": "#/components/schemas/TokenInfo" + } + ] + }, + "buyToken": { + "description": "The buy token of the TWAP", + "allOf": [ + { + "$ref": "#/components/schemas/TokenInfo" + } + ] + }, + "receiver": { + "type": "string", + "description": "The address to receive the proceeds of the trade" + }, + "owner": { + "type": "string" + }, + "fullAppData": { + "type": "object", + "nullable": true, + "description": "The App Data for this TWAP" + }, + "numberOfParts": { + "type": "string", + "description": "The number of parts in the TWAP" + }, + "partSellAmount": { + "type": "string", + "description": "The amount of sellToken to sell in each part" + }, + "minPartLimit": { + "type": "string", + "description": "The amount of buyToken that must be bought in each part" + }, + "timeBetweenParts": { + "type": "number", + "description": "The duration of the TWAP interval" + }, + "durationOfPart": { + "type": "object", + "description": "Whether the TWAP is valid for the entire interval or not" + }, + "startTime": { + "type": "object", + "description": "The start time of the TWAP" + } + }, + "required": [ + "type", + "method", + "status", + "kind", + "class", + "activeOrderUid", + "validUntil", + "sellAmount", + "buyAmount", + "sellToken", + "buyToken", + "receiver", + "owner", + "numberOfParts", + "partSellAmount", + "minPartLimit", + "timeBetweenParts", + "durationOfPart", + "startTime" + ] + }, + "NativeStakingDepositConfirmationView": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["KILN_NATIVE_STAKING_DEPOSIT"] + }, + "status": { + "type": "string", + "enum": [ + "NOT_STAKED", + "ACTIVATING", + "DEPOSIT_IN_PROGRESS", + "ACTIVE", + "EXIT_REQUESTED", + "EXITING", + "EXITED", + "SLASHED" + ] + }, + "method": { + "type": "string" + }, + "parameters": { + "nullable": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/DataDecodedParameter" + } + }, + "estimatedEntryTime": { + "type": "number" + }, + "estimatedExitTime": { + "type": "number" + }, + "estimatedWithdrawalTime": { + "type": "number" + }, + "fee": { + "type": "number" + }, + "monthlyNrr": { + "type": "number" + }, + "annualNrr": { + "type": "number" + }, + "value": { + "type": "string" + }, + "numValidators": { + "type": "number" + }, + "expectedAnnualReward": { + "type": "string" + }, + "expectedMonthlyReward": { + "type": "string" + }, + "expectedFiatAnnualReward": { + "type": "number" + }, + "expectedFiatMonthlyReward": { + "type": "number" + }, + "tokenInfo": { + "$ref": "#/components/schemas/TokenInfo" + } + }, + "required": [ + "type", + "status", + "method", + "estimatedEntryTime", + "estimatedExitTime", + "estimatedWithdrawalTime", + "fee", + "monthlyNrr", + "annualNrr", + "value", + "numValidators", + "expectedAnnualReward", + "expectedMonthlyReward", + "expectedFiatAnnualReward", + "expectedFiatMonthlyReward", + "tokenInfo" + ] + }, + "NativeStakingValidatorsExitConfirmationView": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["KILN_NATIVE_STAKING_VALIDATORS_EXIT"] + }, + "status": { + "type": "string", + "enum": [ + "NOT_STAKED", + "ACTIVATING", + "DEPOSIT_IN_PROGRESS", + "ACTIVE", + "EXIT_REQUESTED", + "EXITING", + "EXITED", + "SLASHED" + ] + }, + "method": { + "type": "string" + }, + "parameters": { + "nullable": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/DataDecodedParameter" + } + }, + "estimatedExitTime": { + "type": "number" + }, + "estimatedWithdrawalTime": { + "type": "number" + }, + "value": { + "type": "string" + }, + "numValidators": { + "type": "number" + }, + "tokenInfo": { + "$ref": "#/components/schemas/TokenInfo" + }, + "validators": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type", + "status", + "method", + "estimatedExitTime", + "estimatedWithdrawalTime", + "value", + "numValidators", + "tokenInfo", + "validators" + ] + }, + "NativeStakingWithdrawConfirmationView": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": ["KILN_NATIVE_STAKING_WITHDRAW"] + }, + "method": { + "type": "string" + }, + "parameters": { + "nullable": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/DataDecodedParameter" + } + }, + "value": { + "type": "string" + }, + "tokenInfo": { + "$ref": "#/components/schemas/TokenInfo" + }, + "validators": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["type", "method", "value", "tokenInfo", "validators"] + } + } + } +} diff --git a/packages/store/scripts/openapi-config.ts b/packages/store/scripts/openapi-config.ts new file mode 100644 index 0000000000..fd213327cb --- /dev/null +++ b/packages/store/scripts/openapi-config.ts @@ -0,0 +1,73 @@ +import type { ConfigFile } from '@rtk-query/codegen-openapi' + +const config: ConfigFile = { + schemaFile: './api-schema/schema.json', + prettierConfigFile: '../../../.prettierrc', + apiFile: '../src/gateway/cgwClient.ts', + apiImport: 'cgwClient', + exportName: 'cgwApi', + hooks: true, + filterEndpoints: [/^(?!.*delegates).*/], + tag: true, + outputFiles: { + '../src/gateway/AUTO_GENERATED/about.ts': { + filterEndpoints: [/^about/], + }, + '../src/gateway/AUTO_GENERATED/accounts.ts': { + filterEndpoints: [/^accounts/], + }, + '../src/gateway/AUTO_GENERATED/auth.ts': { + filterEndpoints: [/^auth/], + }, + '../src/gateway/AUTO_GENERATED/balances.ts': { + filterEndpoints: [/^balances/], + }, + '../src/gateway/AUTO_GENERATED/chains.ts': { + filterEndpoints: [/^chains/], + }, + '../src/gateway/AUTO_GENERATED/collectibles.ts': { + filterEndpoints: [/^collectibles/], + }, + '../src/gateway/AUTO_GENERATED/community.ts': { + filterEndpoints: [/^community/], + }, + '../src/gateway/AUTO_GENERATED/contracts.ts': { + filterEndpoints: [/^contracts/], + }, + '../src/gateway/AUTO_GENERATED/data-decoded.ts': { + filterEndpoints: [/^dataDecoded/], + }, + '../src/gateway/AUTO_GENERATED/delegates.ts': { + filterEndpoints: [/^delegates(?!DeleteSafeDelegateV1)/], + }, + '../src/gateway/AUTO_GENERATED/estimations.ts': { + filterEndpoints: [/^estimations/], + }, + '../src/gateway/AUTO_GENERATED/messages.ts': { + filterEndpoints: [/^messages/], + }, + '../src/gateway/AUTO_GENERATED/notifications.ts': { + filterEndpoints: [/^notifications/], + }, + '../src/gateway/AUTO_GENERATED/owners.ts': { + filterEndpoints: [/^owners/], + }, + '../src/gateway/AUTO_GENERATED/relay.ts': { + filterEndpoints: [/^relay/], + }, + '../src/gateway/AUTO_GENERATED/safe-apps.ts': { + filterEndpoints: [/^safeApps/], + }, + '../src/gateway/AUTO_GENERATED/safes.ts': { + filterEndpoints: [/^safes/], + }, + '../src/gateway/AUTO_GENERATED/targeted-messages.ts': { + filterEndpoints: [/^targetedMessaging/], + }, + '../src/gateway/AUTO_GENERATED/transactions.ts': { + filterEndpoints: [/^transactions/], + }, + }, +} + +export default config diff --git a/packages/store/src/gateway/AUTO_GENERATED/about.ts b/packages/store/src/gateway/AUTO_GENERATED/about.ts new file mode 100644 index 0000000000..7fb6b45528 --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/about.ts @@ -0,0 +1,24 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['about'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + aboutGetAbout: build.query({ + query: () => ({ url: `/about` }), + providesTags: ['about'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type AboutGetAboutApiResponse = /** status 200 */ About +export type AboutGetAboutApiArg = void +export type About = { + name: string + version?: string | null + buildNumber?: string | null +} +export const { useAboutGetAboutQuery } = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/accounts.ts b/packages/store/src/gateway/AUTO_GENERATED/accounts.ts new file mode 100644 index 0000000000..75fc89334e --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/accounts.ts @@ -0,0 +1,104 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['accounts'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + accountsCreateAccountV1: build.mutation({ + query: (queryArg) => ({ url: `/v1/accounts`, method: 'POST', body: queryArg.createAccountDto }), + invalidatesTags: ['accounts'], + }), + accountsGetDataTypesV1: build.query({ + query: () => ({ url: `/v1/accounts/data-types` }), + providesTags: ['accounts'], + }), + accountsGetAccountDataSettingsV1: build.query< + AccountsGetAccountDataSettingsV1ApiResponse, + AccountsGetAccountDataSettingsV1ApiArg + >({ + query: (queryArg) => ({ url: `/v1/accounts/${queryArg.address}/data-settings` }), + providesTags: ['accounts'], + }), + accountsUpsertAccountDataSettingsV1: build.mutation< + AccountsUpsertAccountDataSettingsV1ApiResponse, + AccountsUpsertAccountDataSettingsV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/accounts/${queryArg.address}/data-settings`, + method: 'PUT', + body: queryArg.upsertAccountDataSettingsDto, + }), + invalidatesTags: ['accounts'], + }), + accountsGetAccountV1: build.query({ + query: (queryArg) => ({ url: `/v1/accounts/${queryArg.address}` }), + providesTags: ['accounts'], + }), + accountsDeleteAccountV1: build.mutation({ + query: (queryArg) => ({ url: `/v1/accounts/${queryArg.address}`, method: 'DELETE' }), + invalidatesTags: ['accounts'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type AccountsCreateAccountV1ApiResponse = /** status 200 */ Account +export type AccountsCreateAccountV1ApiArg = { + createAccountDto: CreateAccountDto +} +export type AccountsGetDataTypesV1ApiResponse = /** status 200 */ AccountDataType[] +export type AccountsGetDataTypesV1ApiArg = void +export type AccountsGetAccountDataSettingsV1ApiResponse = /** status 200 */ AccountDataSetting[] +export type AccountsGetAccountDataSettingsV1ApiArg = { + address: string +} +export type AccountsUpsertAccountDataSettingsV1ApiResponse = /** status 200 */ AccountDataSetting[] +export type AccountsUpsertAccountDataSettingsV1ApiArg = { + address: string + upsertAccountDataSettingsDto: UpsertAccountDataSettingsDto +} +export type AccountsGetAccountV1ApiResponse = /** status 200 */ Account +export type AccountsGetAccountV1ApiArg = { + address: string +} +export type AccountsDeleteAccountV1ApiResponse = unknown +export type AccountsDeleteAccountV1ApiArg = { + address: string +} +export type Account = { + id: string + groupId?: string | null + address: string + name: string +} +export type CreateAccountDto = { + address: string + name: string +} +export type AccountDataType = { + id: string + name: string + description?: string | null + isActive: boolean +} +export type AccountDataSetting = { + dataTypeId: string + enabled: boolean +} +export type UpsertAccountDataSettingDto = { + dataTypeId: string + enabled: boolean +} +export type UpsertAccountDataSettingsDto = { + accountDataSettings: UpsertAccountDataSettingDto[] +} +export const { + useAccountsCreateAccountV1Mutation, + useAccountsGetDataTypesV1Query, + useAccountsGetAccountDataSettingsV1Query, + useAccountsUpsertAccountDataSettingsV1Mutation, + useAccountsGetAccountV1Query, + useAccountsDeleteAccountV1Mutation, +} = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/auth.ts b/packages/store/src/gateway/AUTO_GENERATED/auth.ts new file mode 100644 index 0000000000..a5e675faa3 --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/auth.ts @@ -0,0 +1,34 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['auth'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + authGetNonceV1: build.query({ + query: () => ({ url: `/v1/auth/nonce` }), + providesTags: ['auth'], + }), + authVerifyV1: build.mutation({ + query: (queryArg) => ({ url: `/v1/auth/verify`, method: 'POST', body: queryArg.siweDto }), + invalidatesTags: ['auth'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type AuthGetNonceV1ApiResponse = /** status 200 */ AuthNonce +export type AuthGetNonceV1ApiArg = void +export type AuthVerifyV1ApiResponse = unknown +export type AuthVerifyV1ApiArg = { + siweDto: SiweDto +} +export type AuthNonce = { + nonce: string +} +export type SiweDto = { + message: string + signature: string +} +export const { useAuthGetNonceV1Query, useAuthVerifyV1Mutation } = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/balances.ts b/packages/store/src/gateway/AUTO_GENERATED/balances.ts new file mode 100644 index 0000000000..985f785d16 --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/balances.ts @@ -0,0 +1,58 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['balances'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + balancesGetBalancesV1: build.query({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/safes/${queryArg.safeAddress}/balances/${queryArg.fiatCode}`, + params: { + trusted: queryArg.trusted, + exclude_spam: queryArg.excludeSpam, + }, + }), + providesTags: ['balances'], + }), + balancesGetSupportedFiatCodesV1: build.query< + BalancesGetSupportedFiatCodesV1ApiResponse, + BalancesGetSupportedFiatCodesV1ApiArg + >({ + query: () => ({ url: `/v1/balances/supported-fiat-codes` }), + providesTags: ['balances'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type BalancesGetBalancesV1ApiResponse = /** status 200 */ Balances +export type BalancesGetBalancesV1ApiArg = { + chainId: string + safeAddress: string + fiatCode: string + trusted?: boolean + excludeSpam?: boolean +} +export type BalancesGetSupportedFiatCodesV1ApiResponse = unknown +export type BalancesGetSupportedFiatCodesV1ApiArg = void +export type Token = { + address: string + decimals?: number | null + logoUri: string + name: string + symbol: string + type: 'ERC721' | 'ERC20' | 'NATIVE_TOKEN' | 'UNKNOWN' +} +export type Balance = { + balance: string + fiatBalance: string + fiatConversion: string + tokenInfo: Token +} +export type Balances = { + fiatTotal: string + items: Balance[] +} +export const { useBalancesGetBalancesV1Query, useBalancesGetSupportedFiatCodesV1Query } = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/chains.ts b/packages/store/src/gateway/AUTO_GENERATED/chains.ts new file mode 100644 index 0000000000..f1d9929dee --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/chains.ts @@ -0,0 +1,174 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['chains'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + chainsGetChainsV1: build.query({ + query: (queryArg) => ({ + url: `/v1/chains`, + params: { + cursor: queryArg.cursor, + }, + }), + providesTags: ['chains'], + }), + chainsGetChainV1: build.query({ + query: (queryArg) => ({ url: `/v1/chains/${queryArg.chainId}` }), + providesTags: ['chains'], + }), + chainsGetAboutChainV1: build.query({ + query: (queryArg) => ({ url: `/v1/chains/${queryArg.chainId}/about` }), + providesTags: ['chains'], + }), + chainsGetBackboneV1: build.query({ + query: (queryArg) => ({ url: `/v1/chains/${queryArg.chainId}/about/backbone` }), + providesTags: ['chains'], + }), + chainsGetMasterCopiesV1: build.query({ + query: (queryArg) => ({ url: `/v1/chains/${queryArg.chainId}/about/master-copies` }), + providesTags: ['chains'], + }), + chainsGetIndexingStatusV1: build.query({ + query: (queryArg) => ({ url: `/v1/chains/${queryArg.chainId}/about/indexing` }), + providesTags: ['chains'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type ChainsGetChainsV1ApiResponse = /** status 200 */ ChainPage +export type ChainsGetChainsV1ApiArg = { + cursor?: string +} +export type ChainsGetChainV1ApiResponse = /** status 200 */ Chain +export type ChainsGetChainV1ApiArg = { + chainId: string +} +export type ChainsGetAboutChainV1ApiResponse = /** status 200 */ AboutChain +export type ChainsGetAboutChainV1ApiArg = { + chainId: string +} +export type ChainsGetBackboneV1ApiResponse = /** status 200 */ Backbone +export type ChainsGetBackboneV1ApiArg = { + chainId: string +} +export type ChainsGetMasterCopiesV1ApiResponse = /** status 200 */ MasterCopy[] +export type ChainsGetMasterCopiesV1ApiArg = { + chainId: string +} +export type ChainsGetIndexingStatusV1ApiResponse = /** status 200 */ IndexingStatus +export type ChainsGetIndexingStatusV1ApiArg = { + chainId: string +} +export type NativeCurrency = { + decimals: number + logoUri: string + name: string + symbol: string +} +export type BlockExplorerUriTemplate = { + address: string + api: string + txHash: string +} +export type BalancesProvider = { + chainName?: number | null + enabled: boolean +} +export type ContractAddresses = { + safeSingletonAddress?: string | null + safeProxyFactoryAddress?: string | null + multiSendAddress?: string | null + multiSendCallOnlyAddress?: string | null + fallbackHandlerAddress?: string | null + signMessageLibAddress?: string | null + createCallAddress?: string | null + simulateTxAccessorAddress?: string | null + safeWebAuthnSignerFactoryAddress?: string | null +} +export type GasPriceOracle = { + type: string + gasParameter: string + gweiFactor: string + uri: string +} +export type GasPriceFixed = { + type: string + weiValue: string +} +export type GasPriceFixedEip1559 = { + type: string + maxFeePerGas: string + maxPriorityFeePerGas: string +} +export type RpcUri = { + authentication: 'API_KEY_PATH' | 'NO_AUTHENTICATION' | 'UNKNOWN' + value: string +} +export type Theme = { + backgroundColor: string + textColor: string +} +export type Chain = { + chainId: string + chainName: string + description: string + chainLogoUri?: string | null + l2: boolean + isTestnet: boolean + nativeCurrency: NativeCurrency + transactionService: string + blockExplorerUriTemplate: BlockExplorerUriTemplate + beaconChainExplorerUriTemplate: object + disabledWallets: string[] + ensRegistryAddress?: string | null + balancesProvider: BalancesProvider + contractAddresses: ContractAddresses + features: string[] + gasPrice: (GasPriceOracle | GasPriceFixed | GasPriceFixedEip1559)[] + publicRpcUri: RpcUri + rpcUri: RpcUri + safeAppsRpcUri: RpcUri + shortName: string + theme: Theme +} +export type ChainPage = { + count?: number | null + next?: string | null + previous?: string | null + results: Chain[] +} +export type AboutChain = { + transactionServiceBaseUri: string + name: string + version: string + buildNumber: string +} +export type Backbone = { + api_version: string + headers?: string | null + host: string + name: string + secure: boolean + settings: object | null + version: string +} +export type MasterCopy = { + address: string + version: string +} +export type IndexingStatus = { + lastSync: number + synced: boolean +} +export const { + useChainsGetChainsV1Query, + useChainsGetChainV1Query, + useChainsGetAboutChainV1Query, + useChainsGetBackboneV1Query, + useChainsGetMasterCopiesV1Query, + useChainsGetIndexingStatusV1Query, +} = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/collectibles.ts b/packages/store/src/gateway/AUTO_GENERATED/collectibles.ts new file mode 100644 index 0000000000..bfde94a37a --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/collectibles.ts @@ -0,0 +1,53 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['collectibles'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + collectiblesGetCollectiblesV2: build.query< + CollectiblesGetCollectiblesV2ApiResponse, + CollectiblesGetCollectiblesV2ApiArg + >({ + query: (queryArg) => ({ + url: `/v2/chains/${queryArg.chainId}/safes/${queryArg.safeAddress}/collectibles`, + params: { + trusted: queryArg.trusted, + exclude_spam: queryArg.excludeSpam, + cursor: queryArg.cursor, + }, + }), + providesTags: ['collectibles'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type CollectiblesGetCollectiblesV2ApiResponse = /** status 200 */ CollectiblePage +export type CollectiblesGetCollectiblesV2ApiArg = { + chainId: string + safeAddress: string + trusted?: boolean + excludeSpam?: boolean + cursor?: string +} +export type Collectible = { + address: string + tokenName: string + tokenSymbol: string + logoUri: string + id: string + uri?: string | null + name?: string | null + description?: string | null + imageUri?: string | null + metadata?: object | null +} +export type CollectiblePage = { + count?: number | null + next?: string | null + previous?: string | null + results: Collectible[] +} +export const { useCollectiblesGetCollectiblesV2Query } = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/community.ts b/packages/store/src/gateway/AUTO_GENERATED/community.ts new file mode 100644 index 0000000000..775ae1c88f --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/community.ts @@ -0,0 +1,233 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['community'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + communityGetCampaignsV1: build.query({ + query: (queryArg) => ({ + url: `/v1/community/campaigns`, + params: { + cursor: queryArg.cursor, + }, + }), + providesTags: ['community'], + }), + communityGetCampaignByIdV1: build.query({ + query: (queryArg) => ({ url: `/v1/community/campaigns/${queryArg.resourceId}` }), + providesTags: ['community'], + }), + communityGetCampaignActivitiesV1: build.query< + CommunityGetCampaignActivitiesV1ApiResponse, + CommunityGetCampaignActivitiesV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/community/campaigns/${queryArg.resourceId}/activities`, + params: { + holder: queryArg.holder, + cursor: queryArg.cursor, + }, + }), + providesTags: ['community'], + }), + communityGetCampaignLeaderboardV1: build.query< + CommunityGetCampaignLeaderboardV1ApiResponse, + CommunityGetCampaignLeaderboardV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/community/campaigns/${queryArg.resourceId}/leaderboard`, + params: { + cursor: queryArg.cursor, + }, + }), + providesTags: ['community'], + }), + communityGetCampaignRankV1: build.query({ + query: (queryArg) => ({ + url: `/v1/community/campaigns/${queryArg.resourceId}/leaderboard/${queryArg.safeAddress}`, + }), + providesTags: ['community'], + }), + communityCheckEligibilityV1: build.mutation< + CommunityCheckEligibilityV1ApiResponse, + CommunityCheckEligibilityV1ApiArg + >({ + query: (queryArg) => ({ url: `/v1/community/eligibility`, method: 'POST', body: queryArg.eligibilityRequest }), + invalidatesTags: ['community'], + }), + communityGetLeaderboardV1: build.query({ + query: (queryArg) => ({ + url: `/v1/community/locking/leaderboard`, + params: { + cursor: queryArg.cursor, + }, + }), + providesTags: ['community'], + }), + communityGetLockingRankV1: build.query({ + query: (queryArg) => ({ url: `/v1/community/locking/${queryArg.safeAddress}/rank` }), + providesTags: ['community'], + }), + communityGetLockingHistoryV1: build.query< + CommunityGetLockingHistoryV1ApiResponse, + CommunityGetLockingHistoryV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/community/locking/${queryArg.safeAddress}/history`, + params: { + cursor: queryArg.cursor, + }, + }), + providesTags: ['community'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type CommunityGetCampaignsV1ApiResponse = /** status 200 */ CampaignPage +export type CommunityGetCampaignsV1ApiArg = { + cursor?: string +} +export type CommunityGetCampaignByIdV1ApiResponse = /** status 200 */ Campaign +export type CommunityGetCampaignByIdV1ApiArg = { + resourceId: string +} +export type CommunityGetCampaignActivitiesV1ApiResponse = unknown +export type CommunityGetCampaignActivitiesV1ApiArg = { + resourceId: string + holder?: string + cursor?: string +} +export type CommunityGetCampaignLeaderboardV1ApiResponse = /** status 200 */ CampaignRankPage +export type CommunityGetCampaignLeaderboardV1ApiArg = { + resourceId: string + cursor?: string +} +export type CommunityGetCampaignRankV1ApiResponse = /** status 200 */ CampaignRank +export type CommunityGetCampaignRankV1ApiArg = { + resourceId: string + safeAddress: string +} +export type CommunityCheckEligibilityV1ApiResponse = /** status 200 */ Eligibility +export type CommunityCheckEligibilityV1ApiArg = { + eligibilityRequest: EligibilityRequest +} +export type CommunityGetLeaderboardV1ApiResponse = /** status 200 */ LockingRankPage +export type CommunityGetLeaderboardV1ApiArg = { + cursor?: string +} +export type CommunityGetLockingRankV1ApiResponse = /** status 200 */ LockingRank +export type CommunityGetLockingRankV1ApiArg = { + safeAddress: string +} +export type CommunityGetLockingHistoryV1ApiResponse = /** status 200 */ LockingEventPage +export type CommunityGetLockingHistoryV1ApiArg = { + safeAddress: string + cursor?: string +} +export type ActivityMetadata = { + name: string + description: string + maxPoints: number +} +export type Campaign = { + resourceId: string + name: string + description: string + startDate: string + endDate: string + lastUpdated?: string | null + activitiesMetadata?: ActivityMetadata[] | null + rewardValue?: string | null + rewardText?: string | null + iconUrl?: string | null + safeAppUrl?: string | null + partnerUrl?: string | null + isPromoted: boolean +} +export type CampaignPage = { + count?: number | null + next?: string | null + previous?: string | null + results: Campaign[] +} +export type CampaignRank = { + holder: string + position: number + boost: number + totalPoints: number + totalBoostedPoints: number +} +export type CampaignRankPage = { + count?: number | null + next?: string | null + previous?: string | null + results: CampaignRank[] +} +export type Eligibility = { + requestId: string + isAllowed: boolean + isVpn: boolean +} +export type EligibilityRequest = { + requestId: string + sealedData: string +} +export type LockingRank = { + holder: string + position: number + lockedAmount: string + unlockedAmount: string + withdrawnAmount: string +} +export type LockingRankPage = { + count?: number | null + next?: string | null + previous?: string | null + results: LockingRank[] +} +export type LockEventItem = { + eventType: 'LOCKED' + executionDate: string + transactionHash: string + holder: string + amount: string + logIndex: string +} +export type UnlockEventItem = { + eventType: 'UNLOCKED' + executionDate: string + transactionHash: string + holder: string + amount: string + logIndex: string + unlockIndex: string +} +export type WithdrawEventItem = { + eventType: 'WITHDRAWN' + executionDate: string + transactionHash: string + holder: string + amount: string + logIndex: string + unlockIndex: string +} +export type LockingEventPage = { + count?: number | null + next?: string | null + previous?: string | null + results: (LockEventItem | UnlockEventItem | WithdrawEventItem)[] +} +export const { + useCommunityGetCampaignsV1Query, + useCommunityGetCampaignByIdV1Query, + useCommunityGetCampaignActivitiesV1Query, + useCommunityGetCampaignLeaderboardV1Query, + useCommunityGetCampaignRankV1Query, + useCommunityCheckEligibilityV1Mutation, + useCommunityGetLeaderboardV1Query, + useCommunityGetLockingRankV1Query, + useCommunityGetLockingHistoryV1Query, +} = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/contracts.ts b/packages/store/src/gateway/AUTO_GENERATED/contracts.ts new file mode 100644 index 0000000000..8a13816e3c --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/contracts.ts @@ -0,0 +1,30 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['contracts'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + contractsGetContractV1: build.query({ + query: (queryArg) => ({ url: `/v1/chains/${queryArg.chainId}/contracts/${queryArg.contractAddress}` }), + providesTags: ['contracts'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type ContractsGetContractV1ApiResponse = /** status 200 */ Contract +export type ContractsGetContractV1ApiArg = { + chainId: string + contractAddress: string +} +export type Contract = { + address: string + name: string + displayName: string + logoUri: string + contractAbi?: object | null + trustedForDelegateCall: boolean +} +export const { useContractsGetContractV1Query } = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/data-decoded.ts b/packages/store/src/gateway/AUTO_GENERATED/data-decoded.ts new file mode 100644 index 0000000000..eecc3f5828 --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/data-decoded.ts @@ -0,0 +1,47 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['data-decoded'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + dataDecodedGetDataDecodedV1: build.mutation< + DataDecodedGetDataDecodedV1ApiResponse, + DataDecodedGetDataDecodedV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/data-decoder`, + method: 'POST', + body: queryArg.transactionDataDto, + }), + invalidatesTags: ['data-decoded'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type DataDecodedGetDataDecodedV1ApiResponse = /** status 200 */ DataDecoded +export type DataDecodedGetDataDecodedV1ApiArg = { + chainId: string + transactionDataDto: TransactionDataDto +} +export type DataDecodedParameter = { + name: string + type: string + value: object + valueDecoded?: ((object | null) | (object[] | null)) | null +} +export type DataDecoded = { + method: string + parameters?: DataDecodedParameter[] | null +} +export type TransactionDataDto = { + /** Hexadecimal value */ + data: string + /** The target Ethereum address */ + to?: string + /** The wei amount being sent to a payable function */ + value?: string +} +export const { useDataDecodedGetDataDecodedV1Mutation } = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/delegates.ts b/packages/store/src/gateway/AUTO_GENERATED/delegates.ts new file mode 100644 index 0000000000..1e0baecb34 --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/delegates.ts @@ -0,0 +1,147 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['delegates'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + delegatesGetDelegatesV1: build.query({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/delegates`, + params: { + safe: queryArg.safe, + delegate: queryArg.delegate, + delegator: queryArg.delegator, + label: queryArg.label, + cursor: queryArg.cursor, + }, + }), + providesTags: ['delegates'], + }), + delegatesPostDelegateV1: build.mutation({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/delegates`, + method: 'POST', + body: queryArg.createDelegateDto, + }), + invalidatesTags: ['delegates'], + }), + delegatesDeleteDelegateV1: build.mutation({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/delegates/${queryArg.delegateAddress}`, + method: 'DELETE', + body: queryArg.deleteDelegateDto, + }), + invalidatesTags: ['delegates'], + }), + delegatesGetDelegatesV2: build.query({ + query: (queryArg) => ({ + url: `/v2/chains/${queryArg.chainId}/delegates`, + params: { + safe: queryArg.safe, + delegate: queryArg.delegate, + delegator: queryArg.delegator, + label: queryArg.label, + cursor: queryArg.cursor, + }, + }), + providesTags: ['delegates'], + }), + delegatesPostDelegateV2: build.mutation({ + query: (queryArg) => ({ + url: `/v2/chains/${queryArg.chainId}/delegates`, + method: 'POST', + body: queryArg.createDelegateDto, + }), + invalidatesTags: ['delegates'], + }), + delegatesDeleteDelegateV2: build.mutation({ + query: (queryArg) => ({ + url: `/v2/chains/${queryArg.chainId}/delegates/${queryArg.delegateAddress}`, + method: 'DELETE', + body: queryArg.deleteDelegateV2Dto, + }), + invalidatesTags: ['delegates'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type DelegatesGetDelegatesV1ApiResponse = /** status 200 */ DelegatePage +export type DelegatesGetDelegatesV1ApiArg = { + chainId: string + safe?: string + delegate?: string + delegator?: string + label?: string + cursor?: string +} +export type DelegatesPostDelegateV1ApiResponse = unknown +export type DelegatesPostDelegateV1ApiArg = { + chainId: string + createDelegateDto: CreateDelegateDto +} +export type DelegatesDeleteDelegateV1ApiResponse = unknown +export type DelegatesDeleteDelegateV1ApiArg = { + chainId: string + delegateAddress: string + deleteDelegateDto: DeleteDelegateDto +} +export type DelegatesGetDelegatesV2ApiResponse = /** status 200 */ DelegatePage +export type DelegatesGetDelegatesV2ApiArg = { + chainId: string + safe?: string + delegate?: string + delegator?: string + label?: string + cursor?: string +} +export type DelegatesPostDelegateV2ApiResponse = unknown +export type DelegatesPostDelegateV2ApiArg = { + chainId: string + createDelegateDto: CreateDelegateDto +} +export type DelegatesDeleteDelegateV2ApiResponse = unknown +export type DelegatesDeleteDelegateV2ApiArg = { + chainId: string + delegateAddress: string + deleteDelegateV2Dto: DeleteDelegateV2Dto +} +export type Delegate = { + safe?: string | null + delegate: string + delegator: string + label: string +} +export type DelegatePage = { + count?: number | null + next?: string | null + previous?: string | null + results: Delegate[] +} +export type CreateDelegateDto = { + safe?: string | null + delegate: string + delegator: string + signature: string + label: string +} +export type DeleteDelegateDto = { + delegate: string + delegator: string + signature: string +} +export type DeleteDelegateV2Dto = { + delegator?: string | null + safe?: string | null + signature: string +} +export const { + useDelegatesGetDelegatesV1Query, + useDelegatesPostDelegateV1Mutation, + useDelegatesDeleteDelegateV1Mutation, + useDelegatesGetDelegatesV2Query, + useDelegatesPostDelegateV2Mutation, + useDelegatesDeleteDelegateV2Mutation, +} = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/estimations.ts b/packages/store/src/gateway/AUTO_GENERATED/estimations.ts new file mode 100644 index 0000000000..3ecb190d2e --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/estimations.ts @@ -0,0 +1,41 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['estimations'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + estimationsGetEstimationV2: build.mutation< + EstimationsGetEstimationV2ApiResponse, + EstimationsGetEstimationV2ApiArg + >({ + query: (queryArg) => ({ + url: `/v2/chains/${queryArg.chainId}/safes/${queryArg.address}/multisig-transactions/estimations`, + method: 'POST', + body: queryArg.getEstimationDto, + }), + invalidatesTags: ['estimations'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type EstimationsGetEstimationV2ApiResponse = /** status 200 */ EstimationResponse +export type EstimationsGetEstimationV2ApiArg = { + chainId: string + address: string + getEstimationDto: GetEstimationDto +} +export type EstimationResponse = { + currentNonce: number + recommendedNonce: number + safeTxGas: string +} +export type GetEstimationDto = { + to: string + value: string + data?: string | null + operation: number +} +export const { useEstimationsGetEstimationV2Mutation } = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/messages.ts b/packages/store/src/gateway/AUTO_GENERATED/messages.ts new file mode 100644 index 0000000000..35a8769012 --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/messages.ts @@ -0,0 +1,131 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['messages'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + messagesGetMessageByHashV1: build.query({ + query: (queryArg) => ({ url: `/v1/chains/${queryArg.chainId}/messages/${queryArg.messageHash}` }), + providesTags: ['messages'], + }), + messagesGetMessagesBySafeV1: build.query< + MessagesGetMessagesBySafeV1ApiResponse, + MessagesGetMessagesBySafeV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/safes/${queryArg.safeAddress}/messages`, + params: { + cursor: queryArg.cursor, + }, + }), + providesTags: ['messages'], + }), + messagesCreateMessageV1: build.mutation({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/safes/${queryArg.safeAddress}/messages`, + method: 'POST', + body: queryArg.createMessageDto, + }), + invalidatesTags: ['messages'], + }), + messagesUpdateMessageSignatureV1: build.mutation< + MessagesUpdateMessageSignatureV1ApiResponse, + MessagesUpdateMessageSignatureV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/messages/${queryArg.messageHash}/signatures`, + method: 'POST', + body: queryArg.updateMessageSignatureDto, + }), + invalidatesTags: ['messages'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type MessagesGetMessageByHashV1ApiResponse = /** status 200 */ Message +export type MessagesGetMessageByHashV1ApiArg = { + chainId: string + messageHash: string +} +export type MessagesGetMessagesBySafeV1ApiResponse = /** status 200 */ MessagePage +export type MessagesGetMessagesBySafeV1ApiArg = { + chainId: string + safeAddress: string + cursor?: string +} +export type MessagesCreateMessageV1ApiResponse = unknown +export type MessagesCreateMessageV1ApiArg = { + chainId: string + safeAddress: string + createMessageDto: CreateMessageDto +} +export type MessagesUpdateMessageSignatureV1ApiResponse = unknown +export type MessagesUpdateMessageSignatureV1ApiArg = { + chainId: string + messageHash: string + updateMessageSignatureDto: UpdateMessageSignatureDto +} +export type AddressInfo = { + value: string + name?: string | null + logoUri?: string | null +} +export type Message = { + messageHash: string + status: string + logoUri?: string | null + name?: string | null + message: object + creationTimestamp: number + modifiedTimestamp: number + confirmationsSubmitted: number + confirmationsRequired: number + proposedBy: AddressInfo + confirmations: string[] + preparedSignature?: string | null + origin?: string | null +} +export type MessageItem = { + messageHash: string + status: string + logoUri?: string | null + name?: string | null + message: object + creationTimestamp: number + modifiedTimestamp: number + confirmationsSubmitted: number + confirmationsRequired: number + proposedBy: AddressInfo + confirmations: string[] + preparedSignature?: string | null + origin?: string | null + type: string +} +export type DateLabel = { + type: 'DATE_LABEL' + timestamp: number +} +export type MessagePage = { + count?: number | null + next?: string | null + previous?: string | null + results: (MessageItem | DateLabel)[] +} +export type CreateMessageDto = { + message: object + safeAppId?: number | null + signature: string + origin?: string | null +} +export type UpdateMessageSignatureDto = { + signature: string +} +export const { + useMessagesGetMessageByHashV1Query, + useMessagesGetMessagesBySafeV1Query, + useMessagesCreateMessageV1Mutation, + useMessagesUpdateMessageSignatureV1Mutation, +} = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/notifications.ts b/packages/store/src/gateway/AUTO_GENERATED/notifications.ts new file mode 100644 index 0000000000..fb66aa5205 --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/notifications.ts @@ -0,0 +1,74 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['notifications'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + notificationsRegisterDeviceV1: build.mutation< + NotificationsRegisterDeviceV1ApiResponse, + NotificationsRegisterDeviceV1ApiArg + >({ + query: (queryArg) => ({ url: `/v1/register/notifications`, method: 'POST', body: queryArg.registerDeviceDto }), + invalidatesTags: ['notifications'], + }), + notificationsUnregisterDeviceV1: build.mutation< + NotificationsUnregisterDeviceV1ApiResponse, + NotificationsUnregisterDeviceV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/notifications/devices/${queryArg.uuid}`, + method: 'DELETE', + }), + invalidatesTags: ['notifications'], + }), + notificationsUnregisterSafeV1: build.mutation< + NotificationsUnregisterSafeV1ApiResponse, + NotificationsUnregisterSafeV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/notifications/devices/${queryArg.uuid}/safes/${queryArg.safeAddress}`, + method: 'DELETE', + }), + invalidatesTags: ['notifications'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type NotificationsRegisterDeviceV1ApiResponse = unknown +export type NotificationsRegisterDeviceV1ApiArg = { + registerDeviceDto: RegisterDeviceDto +} +export type NotificationsUnregisterDeviceV1ApiResponse = unknown +export type NotificationsUnregisterDeviceV1ApiArg = { + chainId: string + uuid: string +} +export type NotificationsUnregisterSafeV1ApiResponse = unknown +export type NotificationsUnregisterSafeV1ApiArg = { + chainId: string + uuid: string + safeAddress: string +} +export type SafeRegistration = { + chainId: string + safes: string[] + signatures: string[] +} +export type RegisterDeviceDto = { + uuid?: string | null + cloudMessagingToken: string + buildNumber: string + bundle: string + deviceType: string + version: string + timestamp?: string | null + safeRegistrations: SafeRegistration[] +} +export const { + useNotificationsRegisterDeviceV1Mutation, + useNotificationsUnregisterDeviceV1Mutation, + useNotificationsUnregisterSafeV1Mutation, +} = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/owners.ts b/packages/store/src/gateway/AUTO_GENERATED/owners.ts new file mode 100644 index 0000000000..4fc2f81941 --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/owners.ts @@ -0,0 +1,33 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['owners'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + ownersGetSafesByOwnerV1: build.query({ + query: (queryArg) => ({ url: `/v1/chains/${queryArg.chainId}/owners/${queryArg.ownerAddress}/safes` }), + providesTags: ['owners'], + }), + ownersGetAllSafesByOwnerV1: build.query({ + query: (queryArg) => ({ url: `/v1/owners/${queryArg.ownerAddress}/safes` }), + providesTags: ['owners'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type OwnersGetSafesByOwnerV1ApiResponse = /** status 200 */ SafeList +export type OwnersGetSafesByOwnerV1ApiArg = { + chainId: string + ownerAddress: string +} +export type OwnersGetAllSafesByOwnerV1ApiResponse = /** status 200 */ SafeList +export type OwnersGetAllSafesByOwnerV1ApiArg = { + ownerAddress: string +} +export type SafeList = { + safes: string[] +} +export const { useOwnersGetSafesByOwnerV1Query, useOwnersGetAllSafesByOwnerV1Query } = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/relay.ts b/packages/store/src/gateway/AUTO_GENERATED/relay.ts new file mode 100644 index 0000000000..59c1cf9874 --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/relay.ts @@ -0,0 +1,40 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['relay'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + relayRelayV1: build.mutation({ + query: (queryArg) => ({ url: `/v1/chains/${queryArg.chainId}/relay`, method: 'POST', body: queryArg.relayDto }), + invalidatesTags: ['relay'], + }), + relayGetRelaysRemainingV1: build.query({ + query: (queryArg) => ({ url: `/v1/chains/${queryArg.chainId}/relay/${queryArg.safeAddress}` }), + providesTags: ['relay'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type RelayRelayV1ApiResponse = unknown +export type RelayRelayV1ApiArg = { + chainId: string + relayDto: RelayDto +} +export type RelayGetRelaysRemainingV1ApiResponse = unknown +export type RelayGetRelaysRemainingV1ApiArg = { + chainId: string + safeAddress: string +} +export type RelayDto = { + version: string + to: string + data: string + /** If specified, a gas buffer of 150k will be added on top of the expected gas usage for the transaction. + This is for the + Gelato Relay execution overhead, reducing the chance of the task cancelling before it is executed on-chain. */ + gasLimit?: string | null +} +export const { useRelayRelayV1Mutation, useRelayGetRelaysRemainingV1Query } = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/safe-apps.ts b/packages/store/src/gateway/AUTO_GENERATED/safe-apps.ts new file mode 100644 index 0000000000..edf0521bb3 --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/safe-apps.ts @@ -0,0 +1,56 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['safe-apps'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + safeAppsGetSafeAppsV1: build.query({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/safe-apps`, + params: { + clientUrl: queryArg.clientUrl, + url: queryArg.url, + }, + }), + providesTags: ['safe-apps'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type SafeAppsGetSafeAppsV1ApiResponse = /** status 200 */ SafeApp[] +export type SafeAppsGetSafeAppsV1ApiArg = { + chainId: string + clientUrl?: string + url?: string +} +export type SafeAppProvider = { + url: string + name: string +} +export type SafeAppAccessControl = { + type: string + value?: string[] | null +} +export type SafeAppSocialProfile = { + platform: 'DISCORD' | 'GITHUB' | 'TWITTER' | 'UNKNOWN' + url: string +} +export type SafeApp = { + id: number + url: string + name: string + iconUrl?: string | null + description: string + chainIds: string[] + provider?: SafeAppProvider | null + accessControl: SafeAppAccessControl + tags: string[] + features: string[] + developerWebsite?: string | null + socialProfiles: SafeAppSocialProfile[] + featured: boolean +} +export const { useSafeAppsGetSafeAppsV1Query } = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/safes.ts b/packages/store/src/gateway/AUTO_GENERATED/safes.ts new file mode 100644 index 0000000000..ff3cf1b5f7 --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/safes.ts @@ -0,0 +1,87 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['safes'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + safesGetSafeV1: build.query({ + query: (queryArg) => ({ url: `/v1/chains/${queryArg.chainId}/safes/${queryArg.safeAddress}` }), + providesTags: ['safes'], + }), + safesGetNoncesV1: build.query({ + query: (queryArg) => ({ url: `/v1/chains/${queryArg.chainId}/safes/${queryArg.safeAddress}/nonces` }), + providesTags: ['safes'], + }), + safesGetSafeOverviewV1: build.query({ + query: (queryArg) => ({ + url: `/v1/safes`, + params: { + currency: queryArg.currency, + safes: queryArg.safes, + trusted: queryArg.trusted, + exclude_spam: queryArg.excludeSpam, + wallet_address: queryArg.walletAddress, + }, + }), + providesTags: ['safes'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type SafesGetSafeV1ApiResponse = /** status 200 */ SafeState +export type SafesGetSafeV1ApiArg = { + chainId: string + safeAddress: string +} +export type SafesGetNoncesV1ApiResponse = /** status 200 */ SafeNonces +export type SafesGetNoncesV1ApiArg = { + chainId: string + safeAddress: string +} +export type SafesGetSafeOverviewV1ApiResponse = /** status 200 */ SafeOverview[] +export type SafesGetSafeOverviewV1ApiArg = { + currency: string + safes: string + trusted?: boolean + excludeSpam?: boolean + walletAddress?: string +} +export type AddressInfo = { + value: string + name?: string | null + logoUri?: string | null +} +export type SafeState = { + address: AddressInfo + chainId: string + nonce: number + threshold: number + owners: string[] + implementation: AddressInfo + modules?: AddressInfo[] | null + fallbackHandler?: AddressInfo | null + guard?: AddressInfo | null + version?: string | null + implementationVersionState: 'UP_TO_DATE' | 'OUTDATED' | 'UNKNOWN' + collectiblesTag?: string | null + txQueuedTag?: string | null + txHistoryTag?: string | null + messagesTag?: string | null +} +export type SafeNonces = { + currentNonce: number + recommendedNonce: number +} +export type SafeOverview = { + address: AddressInfo + chainId: string + threshold: number + owners: string[] + fiatTotal: string + queued: number + awaitingConfirmation?: number | null +} +export const { useSafesGetSafeV1Query, useSafesGetNoncesV1Query, useSafesGetSafeOverviewV1Query } = injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/targeted-messages.ts b/packages/store/src/gateway/AUTO_GENERATED/targeted-messages.ts new file mode 100644 index 0000000000..fa291291cf --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/targeted-messages.ts @@ -0,0 +1,58 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['targeted-messaging'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + targetedMessagingGetSubmissionV1: build.query< + TargetedMessagingGetSubmissionV1ApiResponse, + TargetedMessagingGetSubmissionV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/targeted-messaging/outreaches/${queryArg.outreachId}/chains/${queryArg.chainId}/safes/${queryArg.safeAddress}/signers/${queryArg.signerAddress}/submissions`, + }), + providesTags: ['targeted-messaging'], + }), + targetedMessagingCreateSubmissionV1: build.mutation< + TargetedMessagingCreateSubmissionV1ApiResponse, + TargetedMessagingCreateSubmissionV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/targeted-messaging/outreaches/${queryArg.outreachId}/chains/${queryArg.chainId}/safes/${queryArg.safeAddress}/signers/${queryArg.signerAddress}/submissions`, + method: 'POST', + body: queryArg.createSubmissionDto, + }), + invalidatesTags: ['targeted-messaging'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type TargetedMessagingGetSubmissionV1ApiResponse = /** status 200 */ Submission +export type TargetedMessagingGetSubmissionV1ApiArg = { + outreachId: number + chainId: string + safeAddress: string + signerAddress: string +} +export type TargetedMessagingCreateSubmissionV1ApiResponse = /** status 201 */ Submission +export type TargetedMessagingCreateSubmissionV1ApiArg = { + outreachId: number + chainId: string + safeAddress: string + signerAddress: string + createSubmissionDto: CreateSubmissionDto +} +export type Submission = { + outreachId: number + targetedSafeId: number + signerAddress: string + completionDate?: string | null +} +export type CreateSubmissionDto = { + completed: boolean +} +export const { useTargetedMessagingGetSubmissionV1Query, useTargetedMessagingCreateSubmissionV1Mutation } = + injectedRtkApi diff --git a/packages/store/src/gateway/AUTO_GENERATED/transactions.ts b/packages/store/src/gateway/AUTO_GENERATED/transactions.ts new file mode 100644 index 0000000000..d17095c601 --- /dev/null +++ b/packages/store/src/gateway/AUTO_GENERATED/transactions.ts @@ -0,0 +1,902 @@ +import { cgwClient as api } from '../cgwClient' +export const addTagTypes = ['transactions'] as const +const injectedRtkApi = api + .enhanceEndpoints({ + addTagTypes, + }) + .injectEndpoints({ + endpoints: (build) => ({ + transactionsGetTransactionByIdV1: build.query< + TransactionsGetTransactionByIdV1ApiResponse, + TransactionsGetTransactionByIdV1ApiArg + >({ + query: (queryArg) => ({ url: `/v1/chains/${queryArg.chainId}/transactions/${queryArg.id}` }), + providesTags: ['transactions'], + }), + transactionsGetMultisigTransactionsV1: build.query< + TransactionsGetMultisigTransactionsV1ApiResponse, + TransactionsGetMultisigTransactionsV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/safes/${queryArg.safeAddress}/multisig-transactions`, + params: { + execution_date__gte: queryArg.executionDateGte, + execution_date__lte: queryArg.executionDateLte, + to: queryArg.to, + value: queryArg.value, + nonce: queryArg.nonce, + executed: queryArg.executed, + cursor: queryArg.cursor, + }, + }), + providesTags: ['transactions'], + }), + transactionsDeleteTransactionV1: build.mutation< + TransactionsDeleteTransactionV1ApiResponse, + TransactionsDeleteTransactionV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/transactions/${queryArg.safeTxHash}`, + method: 'DELETE', + body: queryArg.deleteTransactionDto, + }), + invalidatesTags: ['transactions'], + }), + transactionsGetModuleTransactionsV1: build.query< + TransactionsGetModuleTransactionsV1ApiResponse, + TransactionsGetModuleTransactionsV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/safes/${queryArg.safeAddress}/module-transactions`, + params: { + to: queryArg.to, + module: queryArg['module'], + transaction_hash: queryArg.transactionHash, + cursor: queryArg.cursor, + }, + }), + providesTags: ['transactions'], + }), + transactionsAddConfirmationV1: build.mutation< + TransactionsAddConfirmationV1ApiResponse, + TransactionsAddConfirmationV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/transactions/${queryArg.safeTxHash}/confirmations`, + method: 'POST', + body: queryArg.addConfirmationDto, + }), + invalidatesTags: ['transactions'], + }), + transactionsGetIncomingTransfersV1: build.query< + TransactionsGetIncomingTransfersV1ApiResponse, + TransactionsGetIncomingTransfersV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/safes/${queryArg.safeAddress}/incoming-transfers`, + params: { + trusted: queryArg.trusted, + execution_date__gte: queryArg.executionDateGte, + execution_date__lte: queryArg.executionDateLte, + to: queryArg.to, + value: queryArg.value, + token_address: queryArg.tokenAddress, + cursor: queryArg.cursor, + }, + }), + providesTags: ['transactions'], + }), + transactionsPreviewTransactionV1: build.mutation< + TransactionsPreviewTransactionV1ApiResponse, + TransactionsPreviewTransactionV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/transactions/${queryArg.safeAddress}/preview`, + method: 'POST', + body: queryArg.previewTransactionDto, + }), + invalidatesTags: ['transactions'], + }), + transactionsGetTransactionQueueV1: build.query< + TransactionsGetTransactionQueueV1ApiResponse, + TransactionsGetTransactionQueueV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/safes/${queryArg.safeAddress}/transactions/queued`, + params: { + trusted: queryArg.trusted, + cursor: queryArg.cursor, + }, + }), + providesTags: ['transactions'], + }), + transactionsGetTransactionsHistoryV1: build.query< + TransactionsGetTransactionsHistoryV1ApiResponse, + TransactionsGetTransactionsHistoryV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/safes/${queryArg.safeAddress}/transactions/history`, + params: { + timezone_offset: queryArg.timezoneOffset, + trusted: queryArg.trusted, + imitation: queryArg.imitation, + timezone: queryArg.timezone, + cursor: queryArg.cursor, + }, + }), + providesTags: ['transactions'], + }), + transactionsProposeTransactionV1: build.mutation< + TransactionsProposeTransactionV1ApiResponse, + TransactionsProposeTransactionV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/transactions/${queryArg.safeAddress}/propose`, + method: 'POST', + body: queryArg.proposeTransactionDto, + }), + invalidatesTags: ['transactions'], + }), + transactionsGetCreationTransactionV1: build.query< + TransactionsGetCreationTransactionV1ApiResponse, + TransactionsGetCreationTransactionV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/safes/${queryArg.safeAddress}/transactions/creation`, + }), + providesTags: ['transactions'], + }), + transactionsViewGetTransactionConfirmationViewV1: build.mutation< + TransactionsViewGetTransactionConfirmationViewV1ApiResponse, + TransactionsViewGetTransactionConfirmationViewV1ApiArg + >({ + query: (queryArg) => ({ + url: `/v1/chains/${queryArg.chainId}/safes/${queryArg.safeAddress}/views/transaction-confirmation`, + method: 'POST', + body: queryArg.transactionDataDto, + }), + invalidatesTags: ['transactions'], + }), + }), + overrideExisting: false, + }) +export { injectedRtkApi as cgwApi } +export type TransactionsGetTransactionByIdV1ApiResponse = /** status 200 */ TransactionDetails +export type TransactionsGetTransactionByIdV1ApiArg = { + chainId: string + id: string +} +export type TransactionsGetMultisigTransactionsV1ApiResponse = /** status 200 */ MultisigTransactionPage +export type TransactionsGetMultisigTransactionsV1ApiArg = { + chainId: string + safeAddress: string + executionDateGte?: string + executionDateLte?: string + to?: string + value?: string + nonce?: string + executed?: boolean + cursor?: string +} +export type TransactionsDeleteTransactionV1ApiResponse = unknown +export type TransactionsDeleteTransactionV1ApiArg = { + chainId: string + safeTxHash: string + deleteTransactionDto: DeleteTransactionDto +} +export type TransactionsGetModuleTransactionsV1ApiResponse = /** status 200 */ ModuleTransactionPage +export type TransactionsGetModuleTransactionsV1ApiArg = { + chainId: string + safeAddress: string + to?: string + module?: string + transactionHash?: string + cursor?: string +} +export type TransactionsAddConfirmationV1ApiResponse = /** status 200 */ Transaction +export type TransactionsAddConfirmationV1ApiArg = { + chainId: string + safeTxHash: string + addConfirmationDto: AddConfirmationDto +} +export type TransactionsGetIncomingTransfersV1ApiResponse = /** status 200 */ IncomingTransferPage +export type TransactionsGetIncomingTransfersV1ApiArg = { + chainId: string + safeAddress: string + trusted?: boolean + executionDateGte?: string + executionDateLte?: string + to?: string + value?: string + tokenAddress?: string + cursor?: string +} +export type TransactionsPreviewTransactionV1ApiResponse = /** status 200 */ TransactionPreview +export type TransactionsPreviewTransactionV1ApiArg = { + chainId: string + safeAddress: string + previewTransactionDto: PreviewTransactionDto +} +export type TransactionsGetTransactionQueueV1ApiResponse = /** status 200 */ QueuedItemPage +export type TransactionsGetTransactionQueueV1ApiArg = { + chainId: string + safeAddress: string + trusted?: boolean + cursor?: string +} +export type TransactionsGetTransactionsHistoryV1ApiResponse = /** status 200 */ TransactionItemPage +export type TransactionsGetTransactionsHistoryV1ApiArg = { + chainId: string + safeAddress: string + timezoneOffset?: string + trusted?: boolean + imitation?: boolean + timezone?: string + cursor?: string +} +export type TransactionsProposeTransactionV1ApiResponse = /** status 200 */ Transaction +export type TransactionsProposeTransactionV1ApiArg = { + chainId: string + safeAddress: string + proposeTransactionDto: ProposeTransactionDto +} +export type TransactionsGetCreationTransactionV1ApiResponse = /** status 200 */ CreationTransaction +export type TransactionsGetCreationTransactionV1ApiArg = { + chainId: string + safeAddress: string +} +export type TransactionsViewGetTransactionConfirmationViewV1ApiResponse = + /** status 200 */ + | BaselineConfirmationView + | CowSwapConfirmationView + | CowSwapTwapConfirmationView + | NativeStakingDepositConfirmationView + | NativeStakingValidatorsExitConfirmationView + | NativeStakingWithdrawConfirmationView +export type TransactionsViewGetTransactionConfirmationViewV1ApiArg = { + chainId: string + safeAddress: string + transactionDataDto: TransactionDataDto +} +export type TransactionInfo = { + type: + | 'Creation' + | 'Custom' + | 'SettingsChange' + | 'Transfer' + | 'SwapOrder' + | 'SwapTransfer' + | 'TwapOrder' + | 'NativeStakingDeposit' + | 'NativeStakingValidatorsExit' + | 'NativeStakingWithdraw' + humanDescription?: string | null +} +export type DataDecodedParameter = { + name: string + type: string + value: object + valueDecoded?: ((object | null) | (object[] | null)) | null +} +export type DataDecoded = { + method: string + parameters?: DataDecodedParameter[] | null +} +export type AddressInfo = { + value: string + name?: string | null + logoUri?: string | null +} +export type TransactionData = { + hexData?: string | null + dataDecoded?: DataDecoded | null + to: AddressInfo + value?: string | null + operation: number + trustedDelegateCallTarget?: boolean | null + addressInfoIndex?: object | null +} +export type Token = { + address: string + decimals?: number | null + logoUri: string + name: string + symbol: string + type: 'ERC721' | 'ERC20' | 'NATIVE_TOKEN' | 'UNKNOWN' +} +export type MultisigExecutionDetails = { + type: 'MULTISIG' + submittedAt: number + nonce: number + safeTxGas: string + baseGas: string + gasPrice: string + gasToken: string + refundReceiver: AddressInfo + safeTxHash: string + executor?: AddressInfo | null + signers: string[] + confirmationsRequired: number + confirmations: string[] + rejectors: AddressInfo[] + gasTokenInfo?: Token | null + trusted: boolean + proposer?: AddressInfo | null + proposedByDelegate?: AddressInfo | null +} +export type ModuleExecutionDetails = { + type: 'MODULE' + address: AddressInfo +} +export type SafeAppInfo = { + name: string + url: string + logoUri?: string | null +} +export type TransactionDetails = { + safeAddress: string + txId: string + executedAt?: number | null + txStatus: 'SUCCESS' | 'FAILED' | 'CANCELLED' | 'AWAITING_CONFIRMATIONS' | 'AWAITING_EXECUTION' + txInfo: TransactionInfo | null + txData?: TransactionData | null + detailedExecutionInfo?: (MultisigExecutionDetails | ModuleExecutionDetails) | null + txHash?: string | null + safeAppInfo?: SafeAppInfo | null +} +export type CreationTransactionInfo = { + type: 'Creation' + humanDescription?: string | null + creator: AddressInfo + transactionHash: string + implementation?: AddressInfo | null + factory?: AddressInfo + saltNonce?: string | null +} +export type CustomTransactionInfo = { + type: 'Custom' + humanDescription?: string | null + to: AddressInfo + dataSize: string + value?: string | null + isCancellation: boolean + methodName?: string | null + actionCount?: number | null +} +export type SettingsChange = { + type: + | 'ADD_OWNER' + | 'CHANGE_MASTER_COPY' + | 'CHANGE_THRESHOLD' + | 'DELETE_GUARD' + | 'DISABLE_MODULE' + | 'ENABLE_MODULE' + | 'REMOVE_OWNER' + | 'SET_FALLBACK_HANDLER' + | 'SET_GUARD' + | 'SWAP_OWNER' +} +export type SettingsChangeTransaction = { + type: 'SettingsChange' + humanDescription?: string | null + dataDecoded: DataDecoded + settingsInfo?: SettingsChange | null +} +export type TokenInfo = { + /** The token address */ + address: string + /** The token decimals */ + decimals: number + /** The logo URI for the token */ + logoUri?: string | null + /** The token name */ + name: string + /** The token symbol */ + symbol: string + /** The token trusted status */ + trusted: boolean +} +export type SwapOrderTransactionInfo = { + type: 'SwapOrder' + humanDescription?: string | null + /** The order UID */ + uid: string + status: 'presignaturePending' | 'open' | 'fulfilled' | 'cancelled' | 'expired' | 'unknown' + kind: 'buy' | 'sell' | 'unknown' + orderClass: 'market' | 'limit' | 'liquidity' | 'unknown' + /** The timestamp when the order expires */ + validUntil: number + /** The sell token raw amount (no decimals) */ + sellAmount: string + /** The buy token raw amount (no decimals) */ + buyAmount: string + /** The executed sell token raw amount (no decimals) */ + executedSellAmount: string + /** The executed buy token raw amount (no decimals) */ + executedBuyAmount: string + /** The sell token of the order */ + sellToken: TokenInfo + /** The buy token of the order */ + buyToken: TokenInfo + /** The URL to the explorer page of the order */ + explorerUrl: string + /** The amount of fees paid for this order. */ + executedSurplusFee?: string | null + /** The (optional) address to receive the proceeds of the trade */ + receiver?: string | null + owner: string + /** The App Data for this order */ + fullAppData?: object | null +} +export type Erc20Transfer = { + type: 'ERC20' + tokenAddress: string + value: string + tokenName?: string | null + tokenSymbol?: string | null + logoUri?: string | null + decimals?: number | null + trusted?: boolean | null + imitation: boolean +} +export type Erc721Transfer = { + type: 'ERC721' + tokenAddress: string + tokenId: string + tokenName?: string | null + tokenSymbol?: string | null + logoUri?: string | null + trusted?: boolean | null +} +export type NativeCoinTransfer = { + type: 'NATIVE_COIN' + value?: string | null +} +export type SwapTransferTransactionInfo = { + type: 'SwapTransfer' + humanDescription?: string | null + sender: AddressInfo + recipient: AddressInfo + direction: string + transferInfo: Erc20Transfer | Erc721Transfer | NativeCoinTransfer + /** The order UID */ + uid: string + status: 'presignaturePending' | 'open' | 'fulfilled' | 'cancelled' | 'expired' | 'unknown' + kind: 'buy' | 'sell' | 'unknown' + orderClass: 'market' | 'limit' | 'liquidity' | 'unknown' + /** The timestamp when the order expires */ + validUntil: number + /** The sell token raw amount (no decimals) */ + sellAmount: string + /** The buy token raw amount (no decimals) */ + buyAmount: string + /** The executed sell token raw amount (no decimals) */ + executedSellAmount: string + /** The executed buy token raw amount (no decimals) */ + executedBuyAmount: string + /** The sell token of the order */ + sellToken: TokenInfo + /** The buy token of the order */ + buyToken: TokenInfo + /** The URL to the explorer page of the order */ + explorerUrl: string + /** The amount of fees paid for this order. */ + executedSurplusFee?: string | null + /** The (optional) address to receive the proceeds of the trade */ + receiver?: string | null + owner: string + /** The App Data for this order */ + fullAppData?: object | null +} +export type TwapOrderTransactionInfo = { + type: 'TwapOrder' + humanDescription?: string | null + /** The TWAP status */ + status: 'presignaturePending' | 'open' | 'fulfilled' | 'cancelled' | 'expired' | 'unknown' + kind: 'buy' | 'sell' | 'unknown' + class?: 'market' | 'limit' | 'liquidity' | 'unknown' + /** The order UID of the active order, or null if none is active */ + activeOrderUid?: string | null + /** The timestamp when the TWAP expires */ + validUntil: number + /** The sell token raw amount (no decimals) */ + sellAmount: string + /** The buy token raw amount (no decimals) */ + buyAmount: string + /** The executed sell token raw amount (no decimals), or null if there are too many parts */ + executedSellAmount?: string | null + /** The executed buy token raw amount (no decimals), or null if there are too many parts */ + executedBuyAmount?: string | null + /** The executed surplus fee raw amount (no decimals), or null if there are too many parts */ + executedSurplusFee?: string | null + /** The sell token of the TWAP */ + sellToken: TokenInfo + /** The buy token of the TWAP */ + buyToken: TokenInfo + /** The address to receive the proceeds of the trade */ + receiver: string + owner: string + /** The App Data for this TWAP */ + fullAppData?: object | null + /** The number of parts in the TWAP */ + numberOfParts: string + /** The amount of sellToken to sell in each part */ + partSellAmount: string + /** The amount of buyToken that must be bought in each part */ + minPartLimit: string + /** The duration of the TWAP interval */ + timeBetweenParts: number + /** Whether the TWAP is valid for the entire interval or not */ + durationOfPart: object + /** The start time of the TWAP */ + startTime: object +} +export type TransferTransactionInfo = { + type: 'Transfer' + humanDescription?: string | null + sender: AddressInfo + recipient: AddressInfo + direction: 'INCOMING' | 'OUTGOING' | 'UNKNOWN' + transferInfo: Erc20Transfer | Erc721Transfer | NativeCoinTransfer +} +export type NativeStakingDepositTransactionInfo = { + type: 'NativeStakingDeposit' + humanDescription?: string | null + status: + | 'NOT_STAKED' + | 'ACTIVATING' + | 'DEPOSIT_IN_PROGRESS' + | 'ACTIVE' + | 'EXIT_REQUESTED' + | 'EXITING' + | 'EXITED' + | 'SLASHED' + estimatedEntryTime: number + estimatedExitTime: number + estimatedWithdrawalTime: number + fee: number + monthlyNrr: number + annualNrr: number + value: string + numValidators: number + expectedAnnualReward: string + expectedMonthlyReward: string + expectedFiatAnnualReward: number + expectedFiatMonthlyReward: number + tokenInfo: TokenInfo + /** Populated after transaction has been executed */ + validators?: string[] | null +} +export type NativeStakingValidatorsExitTransactionInfo = { + type: 'NativeStakingValidatorsExit' + humanDescription?: string | null + status: + | 'NOT_STAKED' + | 'ACTIVATING' + | 'DEPOSIT_IN_PROGRESS' + | 'ACTIVE' + | 'EXIT_REQUESTED' + | 'EXITING' + | 'EXITED' + | 'SLASHED' + estimatedExitTime: number + estimatedWithdrawalTime: number + value: string + numValidators: number + tokenInfo: TokenInfo + validators: string[] +} +export type NativeStakingWithdrawTransactionInfo = { + type: 'NativeStakingWithdraw' + humanDescription?: string | null + value: string + tokenInfo: TokenInfo + validators: string[] +} +export type MultisigExecutionInfo = { + type: 'MULTISIG' + nonce: number + confirmationsRequired: number + confirmationsSubmitted: number + missingSigners?: AddressInfo[] | null +} +export type ModuleExecutionInfo = { + type: 'MODULE' + address: AddressInfo +} +export type Transaction = { + id: string + txHash?: string | null + timestamp: number + txStatus: 'SUCCESS' | 'FAILED' | 'CANCELLED' | 'AWAITING_CONFIRMATIONS' | 'AWAITING_EXECUTION' + txInfo: + | CreationTransactionInfo + | CustomTransactionInfo + | SettingsChangeTransaction + | SwapOrderTransactionInfo + | SwapTransferTransactionInfo + | TwapOrderTransactionInfo + | TransferTransactionInfo + | NativeStakingDepositTransactionInfo + | NativeStakingValidatorsExitTransactionInfo + | NativeStakingWithdrawTransactionInfo + executionInfo?: (MultisigExecutionInfo | ModuleExecutionInfo) | null + safeAppInfo?: SafeAppInfo | null +} +export type MultisigTransaction = { + type: 'TRANSACTION' + transaction: Transaction + conflictType: 'None' | 'HasNext' | 'End' +} +export type MultisigTransactionPage = { + count?: number | null + next?: string | null + previous?: string | null + results: MultisigTransaction[] +} +export type DeleteTransactionDto = { + signature: string +} +export type ModuleTransaction = { + type: 'TRANSACTION' + transaction: Transaction + conflictType: 'None' +} +export type ModuleTransactionPage = { + count?: number | null + next?: string | null + previous?: string | null + results: ModuleTransaction[] +} +export type AddConfirmationDto = { + signedSafeTxHash: string +} +export type IncomingTransfer = { + type: 'TRANSACTION' + transaction: Transaction + conflictType: 'None' +} +export type IncomingTransferPage = { + count?: number | null + next?: string | null + previous?: string | null + results: IncomingTransfer[] +} +export type TransactionPreview = { + txInfo: + | CreationTransactionInfo + | CustomTransactionInfo + | SettingsChangeTransaction + | TransferTransactionInfo + | SwapOrderTransactionInfo + | TwapOrderTransactionInfo + | NativeStakingDepositTransactionInfo + | NativeStakingValidatorsExitTransactionInfo + | NativeStakingWithdrawTransactionInfo + txData: TransactionData +} +export type PreviewTransactionDto = { + to: string + data?: string | null + value: string + operation: number +} +export type ConflictHeaderQueuedItem = { + type: 'CONFLICT_HEADER' + nonce: number +} +export type LabelQueuedItem = { + type: 'LABEL' + label: string +} +export type TransactionQueuedItem = { + type: 'TRANSACTION' + transaction: Transaction + conflictType: 'None' | 'HasNext' | 'End' +} +export type QueuedItemPage = { + count?: number | null + next?: string | null + previous?: string | null + results: (ConflictHeaderQueuedItem | LabelQueuedItem | TransactionQueuedItem)[] +} +export type TransactionItem = { + type: 'TRANSACTION' + transaction: Transaction + conflictType: 'None' +} +export type DateLabel = { + type: 'DATE_LABEL' + timestamp: number +} +export type TransactionItemPage = { + count?: number | null + next?: string | null + previous?: string | null + results: (TransactionItem | DateLabel)[] +} +export type ProposeTransactionDto = { + to: string + value: string + data?: string | null + nonce: string + operation: number + safeTxGas: string + baseGas: string + gasPrice: string + gasToken: string + refundReceiver?: string | null + safeTxHash: string + sender: string + signature?: string | null + origin?: string | null +} +export type CreationTransaction = { + created: string + creator: string + transactionHash: string + factoryAddress: string + masterCopy?: string | null + setupData?: string | null + saltNonce?: string | null + dataDecoded?: DataDecoded | null +} +export type BaselineConfirmationView = { + type: 'GENERIC' + method: string + parameters?: DataDecodedParameter[] | null +} +export type CowSwapConfirmationView = { + type: 'COW_SWAP_ORDER' + method: string + parameters?: DataDecodedParameter[] | null + /** The order UID */ + uid: string + status: 'presignaturePending' | 'open' | 'fulfilled' | 'cancelled' | 'expired' | 'unknown' + kind: 'buy' | 'sell' | 'unknown' + orderClass: 'market' | 'limit' | 'liquidity' | 'unknown' + /** The timestamp when the order expires */ + validUntil: number + /** The sell token raw amount (no decimals) */ + sellAmount: string + /** The buy token raw amount (no decimals) */ + buyAmount: string + /** The executed sell token raw amount (no decimals) */ + executedSellAmount: string + /** The executed buy token raw amount (no decimals) */ + executedBuyAmount: string + /** The URL to the explorer page of the order */ + explorerUrl: string + /** The amount of fees paid for this order. */ + executedSurplusFee?: string | null + /** The (optional) address to receive the proceeds of the trade */ + receiver?: string | null + owner: string + /** The App Data for this order */ + fullAppData?: object | null + /** The sell token of the order */ + sellToken: TokenInfo + /** The buy token of the order */ + buyToken: TokenInfo +} +export type CowSwapTwapConfirmationView = { + type: 'COW_SWAP_TWAP_ORDER' + method: string + parameters?: DataDecodedParameter[] | null + /** The TWAP status */ + status: 'presignaturePending' | 'open' | 'fulfilled' | 'cancelled' | 'expired' | 'unknown' + kind: 'buy' | 'sell' | 'unknown' + class: 'market' | 'limit' | 'liquidity' | 'unknown' + /** The order UID of the active order, null as it is not an active order */ + activeOrderUid: null + /** The timestamp when the TWAP expires */ + validUntil: number + /** The sell token raw amount (no decimals) */ + sellAmount: string + /** The buy token raw amount (no decimals) */ + buyAmount: string + /** The executed sell token raw amount (no decimals), or null if there are too many parts */ + executedSellAmount?: string | null + /** The executed surplus fee raw amount (no decimals), or null if there are too many parts */ + executedSurplusFee?: string | null + /** The executed buy token raw amount (no decimals), or null if there are too many parts */ + executedBuyAmount?: string | null + /** The sell token of the TWAP */ + sellToken: TokenInfo + /** The buy token of the TWAP */ + buyToken: TokenInfo + /** The address to receive the proceeds of the trade */ + receiver: string + owner: string + /** The App Data for this TWAP */ + fullAppData?: object | null + /** The number of parts in the TWAP */ + numberOfParts: string + /** The amount of sellToken to sell in each part */ + partSellAmount: string + /** The amount of buyToken that must be bought in each part */ + minPartLimit: string + /** The duration of the TWAP interval */ + timeBetweenParts: number + /** Whether the TWAP is valid for the entire interval or not */ + durationOfPart: object + /** The start time of the TWAP */ + startTime: object +} +export type NativeStakingDepositConfirmationView = { + type: 'KILN_NATIVE_STAKING_DEPOSIT' + status: + | 'NOT_STAKED' + | 'ACTIVATING' + | 'DEPOSIT_IN_PROGRESS' + | 'ACTIVE' + | 'EXIT_REQUESTED' + | 'EXITING' + | 'EXITED' + | 'SLASHED' + method: string + parameters?: DataDecodedParameter[] | null + estimatedEntryTime: number + estimatedExitTime: number + estimatedWithdrawalTime: number + fee: number + monthlyNrr: number + annualNrr: number + value: string + numValidators: number + expectedAnnualReward: string + expectedMonthlyReward: string + expectedFiatAnnualReward: number + expectedFiatMonthlyReward: number + tokenInfo: TokenInfo +} +export type NativeStakingValidatorsExitConfirmationView = { + type: 'KILN_NATIVE_STAKING_VALIDATORS_EXIT' + status: + | 'NOT_STAKED' + | 'ACTIVATING' + | 'DEPOSIT_IN_PROGRESS' + | 'ACTIVE' + | 'EXIT_REQUESTED' + | 'EXITING' + | 'EXITED' + | 'SLASHED' + method: string + parameters?: DataDecodedParameter[] | null + estimatedExitTime: number + estimatedWithdrawalTime: number + value: string + numValidators: number + tokenInfo: TokenInfo + validators: string[] +} +export type NativeStakingWithdrawConfirmationView = { + type: 'KILN_NATIVE_STAKING_WITHDRAW' + method: string + parameters?: DataDecodedParameter[] | null + value: string + tokenInfo: TokenInfo + validators: string[] +} +export type TransactionDataDto = { + /** Hexadecimal value */ + data: string + /** The target Ethereum address */ + to?: string + /** The wei amount being sent to a payable function */ + value?: string +} +export const { + useTransactionsGetTransactionByIdV1Query, + useTransactionsGetMultisigTransactionsV1Query, + useTransactionsDeleteTransactionV1Mutation, + useTransactionsGetModuleTransactionsV1Query, + useTransactionsAddConfirmationV1Mutation, + useTransactionsGetIncomingTransfersV1Query, + useTransactionsPreviewTransactionV1Mutation, + useTransactionsGetTransactionQueueV1Query, + useTransactionsGetTransactionsHistoryV1Query, + useTransactionsProposeTransactionV1Mutation, + useTransactionsGetCreationTransactionV1Query, + useTransactionsViewGetTransactionConfirmationViewV1Mutation, +} = injectedRtkApi diff --git a/packages/store/src/gateway/cgwClient.test.ts b/packages/store/src/gateway/cgwClient.test.ts new file mode 100644 index 0000000000..4b4b12aa53 --- /dev/null +++ b/packages/store/src/gateway/cgwClient.test.ts @@ -0,0 +1,67 @@ +import type { FetchArgs, BaseQueryApi } from '@reduxjs/toolkit/query/react' + +describe('dynamicBaseQuery', () => { + const api: BaseQueryApi = { + dispatch: jest.fn(), + getState: jest.fn(), + abort: jest.fn(), + signal: new AbortController().signal, + extra: {}, + endpoint: 'testEndpoint', + type: 'query', + } + + beforeEach(() => { + jest.clearAllMocks() + }) + + it('throws an error if baseUrl is not set', async () => { + jest.isolateModules(async () => { + const { dynamicBaseQuery } = await import('./cgwClient') + // Note: We do NOT set baseUrl here, so it remains null by default. + await expect(dynamicBaseQuery('/test', api, {})).rejects.toThrow( + 'baseUrl not set. Call setBaseUrl before using the cgwClient', + ) + }) + }) + + it('calls rawBaseQuery with correct url when baseUrl is set and args is a string', async () => { + jest.isolateModules(async () => { + // Re-import a fresh instance of the module + const { dynamicBaseQuery, setBaseUrl, rawBaseQuery } = await import('./cgwClient') + // Mock rawBaseQuery + const mockRawBaseQuery = jest.fn().mockResolvedValue({ data: 'stringResult' }) + Object.assign(rawBaseQuery, mockRawBaseQuery) + + // Set the baseUrl + setBaseUrl('http://example.com') + + const result = await dynamicBaseQuery('/test', api, {}) + + expect(mockRawBaseQuery).toHaveBeenCalledWith('http://example.com//test', api) + expect(result).toEqual({ data: 'stringResult' }) + }) + }) + + it('calls rawBaseQuery with correct url when baseUrl is set and args is FetchArgs', async () => { + jest.isolateModules(async () => { + const { dynamicBaseQuery, setBaseUrl, rawBaseQuery } = await import('./cgwClient') + const mockRawBaseQuery = jest.fn().mockResolvedValue({ data: 'objectResult' }) + Object.assign(rawBaseQuery, mockRawBaseQuery) + + setBaseUrl('http://example.com') + + const args: FetchArgs = { url: 'endpoint', method: 'POST', body: { hello: 'world' } } + const extraOptions = { credentials: 'include' } + + const result = await dynamicBaseQuery(args, api, extraOptions) + + expect(mockRawBaseQuery).toHaveBeenCalledWith( + { url: 'http://example.com//endpoint', method: 'POST', body: { hello: 'world' } }, + api, + extraOptions, + ) + expect(result).toEqual({ data: 'objectResult' }) + }) + }) +}) diff --git a/packages/store/src/gateway/cgwClient.ts b/packages/store/src/gateway/cgwClient.ts new file mode 100644 index 0000000000..7414d044b5 --- /dev/null +++ b/packages/store/src/gateway/cgwClient.ts @@ -0,0 +1,37 @@ +import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react' +import type { BaseQueryFn, FetchArgs, FetchBaseQueryError } from '@reduxjs/toolkit/query/react' + +let baseUrl: null | string = null +export const setBaseUrl = (url: string) => { + baseUrl = url +} + +export const getBaseUrl = () => { + return baseUrl +} +export const rawBaseQuery = fetchBaseQuery({ + baseUrl: '/', +}) + +export const dynamicBaseQuery: BaseQueryFn = async ( + args, + api, + extraOptions, +) => { + const resolvedBaseUrl = getBaseUrl() + + if (!resolvedBaseUrl) { + throw new Error('baseUrl not set. Call setBaseUrl before using the cgwClient') + } + + const urlEnd = typeof args === 'string' ? args : args.url + const adjustedUrl = `${resolvedBaseUrl}/${urlEnd}` + const adjustedArgs = typeof args === 'string' ? adjustedUrl : { ...args, url: adjustedUrl } + + return rawBaseQuery(adjustedArgs, api, extraOptions) +} + +export const cgwClient = createApi({ + baseQuery: dynamicBaseQuery, + endpoints: () => ({}), +}) diff --git a/packages/store/src/gateway/chains/index.ts b/packages/store/src/gateway/chains/index.ts new file mode 100644 index 0000000000..2316641354 --- /dev/null +++ b/packages/store/src/gateway/chains/index.ts @@ -0,0 +1,48 @@ +import { type Chain as ChainInfo } from '../AUTO_GENERATED/chains' +import { createEntityAdapter, createSelector, EntityState } from '@reduxjs/toolkit' +import { cgwClient, getBaseUrl } from '../cgwClient' +import { QueryReturnValue, FetchBaseQueryError, FetchBaseQueryMeta } from '@reduxjs/toolkit/dist/query' + +export const chainsAdapter = createEntityAdapter({ selectId: (chain: ChainInfo) => chain.chainId }) +export const initialState = chainsAdapter.getInitialState() + +const getChainsConfigs = async ( + url = `${getBaseUrl()}/v1/chains`, + results: ChainInfo[] = [], +): Promise> => { + const response = await fetch(url) + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`) + } + const data = await response.json() + + const nextResults = [...results, ...data.results] + + if (data.next) { + return getChainsConfigs(data.next, nextResults) + } + + return chainsAdapter.setAll(initialState, nextResults) +} + +const getChains = async (): Promise< + QueryReturnValue, FetchBaseQueryError, FetchBaseQueryMeta> +> => { + try { + const data = await getChainsConfigs() + return { data } + } catch (error) { + return { error: error as FetchBaseQueryError } + } +} + +export const apiSliceWithChainsConfig = cgwClient.injectEndpoints({ + endpoints: (builder) => ({ + getChainsConfig: builder.query, void>({ + queryFn: async () => { + return getChains() + }, + }), + }), + overrideExisting: true, +}) diff --git a/packages/store/src/gateway/index.ts b/packages/store/src/gateway/index.ts new file mode 100644 index 0000000000..e7965a4c9d --- /dev/null +++ b/packages/store/src/gateway/index.ts @@ -0,0 +1,5 @@ +export { useSafesGetSafeV1Query as useGetSafeQuery } from './AUTO_GENERATED/safes' +export { + useTransactionsGetTransactionQueueV1Query as useGetPendingTxsQuery, + useTransactionsGetTransactionsHistoryV1Query as useGetTxsHistoryQuery, +} from './AUTO_GENERATED/transactions' diff --git a/packages/store/src/gateway/types.ts b/packages/store/src/gateway/types.ts new file mode 100644 index 0000000000..3e0758e0a7 --- /dev/null +++ b/packages/store/src/gateway/types.ts @@ -0,0 +1,92 @@ +import { + CustomTransactionInfo, + QueuedItemPage, + TransactionItemPage, + SwapOrderTransactionInfo, + TwapOrderTransactionInfo, + SwapTransferTransactionInfo, + ModuleExecutionInfo, + MultisigExecutionInfo, +} from './AUTO_GENERATED/transactions' +import { SafeOverview } from './AUTO_GENERATED/safes' + +export type ExecutionInfo = ModuleExecutionInfo | MultisigExecutionInfo + +export enum TransactionStatus { + AWAITING_CONFIRMATIONS = 'AWAITING_CONFIRMATIONS', + AWAITING_EXECUTION = 'AWAITING_EXECUTION', + CANCELLED = 'CANCELLED', + FAILED = 'FAILED', + SUCCESS = 'SUCCESS', +} + +export enum TransferDirection { + INCOMING = 'INCOMING', + OUTGOING = 'OUTGOING', + UNKNOWN = 'UNKNOWN', +} + +export enum TransactionTokenType { + ERC20 = 'ERC20', + ERC721 = 'ERC721', + NATIVE_COIN = 'NATIVE_COIN', +} + +export enum SettingsInfoType { + SET_FALLBACK_HANDLER = 'SET_FALLBACK_HANDLER', + ADD_OWNER = 'ADD_OWNER', + REMOVE_OWNER = 'REMOVE_OWNER', + SWAP_OWNER = 'SWAP_OWNER', + CHANGE_THRESHOLD = 'CHANGE_THRESHOLD', + CHANGE_IMPLEMENTATION = 'CHANGE_IMPLEMENTATION', + ENABLE_MODULE = 'ENABLE_MODULE', + DISABLE_MODULE = 'DISABLE_MODULE', + SET_GUARD = 'SET_GUARD', + DELETE_GUARD = 'DELETE_GUARD', +} + +export enum TransactionInfoType { + TRANSFER = 'Transfer', + SETTINGS_CHANGE = 'SettingsChange', + CUSTOM = 'Custom', + CREATION = 'Creation', + SWAP_ORDER = 'SwapOrder', + TWAP_ORDER = 'TwapOrder', + SWAP_TRANSFER = 'SwapTransfer', +} + +export enum ConflictType { + NONE = 'None', + HAS_NEXT = 'HasNext', + END = 'End', +} + +export enum TransactionListItemType { + TRANSACTION = 'TRANSACTION', + LABEL = 'LABEL', + CONFLICT_HEADER = 'CONFLICT_HEADER', + DATE_LABEL = 'DATE_LABEL', +} + +export enum DetailedExecutionInfoType { + MULTISIG = 'MULTISIG', + MODULE = 'MODULE', +} + +export type Cancellation = CustomTransactionInfo & { + isCancellation: true +} + +export type MultiSend = CustomTransactionInfo & { + value: string + methodName: 'multiSend' + actionCount: number + isCancellation: boolean + humanDescription?: string +} +export type SafeOverviewResult = { data: SafeOverview[]; error: unknown; isLoading: boolean } + +export type OrderTransactionInfo = SwapOrderTransactionInfo | TwapOrderTransactionInfo | SwapTransferTransactionInfo + +export type PendingTransactionItems = QueuedItemPage['results'][number] +export type HistoryTransactionItems = TransactionItemPage['results'][number] diff --git a/packages/store/src/index.ts b/packages/store/src/index.ts new file mode 100644 index 0000000000..c1b461c27d --- /dev/null +++ b/packages/store/src/index.ts @@ -0,0 +1,3 @@ +import { setBaseUrl, cgwClient } from '@safe-global/store/src/gateway/cgwClient' + +export { setBaseUrl, cgwClient } diff --git a/packages/store/tsconfig.json b/packages/store/tsconfig.json new file mode 100644 index 0000000000..c31f8ba2f2 --- /dev/null +++ b/packages/store/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../config/tsconfig/confs/base.json", + "compilerOptions": { + "rootDir": "./" + }, + "include": ["**/*.ts"] +} diff --git a/yarn.lock b/yarn.lock index 4aecbd51ae..bfe5d6e0e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,6 +5,18 @@ __metadata: version: 8 cacheKey: 10 +"@0no-co/graphql.web@npm:^1.0.5, @0no-co/graphql.web@npm:^1.0.8": + version: 1.0.11 + resolution: "@0no-co/graphql.web@npm:1.0.11" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + graphql: + optional: true + checksum: 10/c69de0d4c0192b2f888c68a1397f777748888b68584b455e4e9fae7a4dd069371462225aa4fe0a84041cf77e65a74863c4d013e56c6a9142b20d3acaeda279d8 + languageName: node + linkType: hard + "@adobe/css-tools@npm:^4.0.1, @adobe/css-tools@npm:^4.4.0": version: 4.4.1 resolution: "@adobe/css-tools@npm:4.4.1" @@ -56,6 +68,48 @@ __metadata: languageName: node linkType: hard +"@apidevtools/json-schema-ref-parser@npm:9.0.6": + version: 9.0.6 + resolution: "@apidevtools/json-schema-ref-parser@npm:9.0.6" + dependencies: + "@jsdevtools/ono": "npm:^7.1.3" + call-me-maybe: "npm:^1.0.1" + js-yaml: "npm:^3.13.1" + checksum: 10/bfdff3d3c54fac0e864322dfa62c018cbcf90f66df6cbe33868a0134bee5bc4d013f980aac0f3e83ffabf4b9c13ffedbf5bae3578ce7db7d4cb559e874b16950 + languageName: node + linkType: hard + +"@apidevtools/openapi-schemas@npm:^2.1.0": + version: 2.1.0 + resolution: "@apidevtools/openapi-schemas@npm:2.1.0" + checksum: 10/4ca78f79ee2e5a162d16d140f939ca90d51265014ea2e500955286ad3acd11b75db4179b7b4bae245b09a981baeb8d80b81bc24c61d6c471a4a4707ed277ebf2 + languageName: node + linkType: hard + +"@apidevtools/swagger-methods@npm:^3.0.2": + version: 3.0.2 + resolution: "@apidevtools/swagger-methods@npm:3.0.2" + checksum: 10/d06b1ac5c1956613c4c6be695612ef860cd4e962b93a509ca551735a328a856cae1e33399cac1dcbf8333ba22b231746f3586074769ef0e172cf549ec9e7eaae + languageName: node + linkType: hard + +"@apidevtools/swagger-parser@npm:^10.0.2, @apidevtools/swagger-parser@npm:^10.1.0": + version: 10.1.0 + resolution: "@apidevtools/swagger-parser@npm:10.1.0" + dependencies: + "@apidevtools/json-schema-ref-parser": "npm:9.0.6" + "@apidevtools/openapi-schemas": "npm:^2.1.0" + "@apidevtools/swagger-methods": "npm:^3.0.2" + "@jsdevtools/ono": "npm:^7.1.3" + ajv: "npm:^8.6.3" + ajv-draft-04: "npm:^1.0.0" + call-me-maybe: "npm:^1.0.1" + peerDependencies: + openapi-types: ">=7" + checksum: 10/24f7f6524334887ff3ef1c8c768698963f4a03e6824719fdbe98ba5444c9f1cdca9a11789e90362c882321dedec3e66f414e05035054084921fe1d2527724adb + languageName: node + linkType: hard + "@assemblyscript/loader@npm:^0.9.4": version: 0.9.4 resolution: "@assemblyscript/loader@npm:0.9.4" @@ -63,7 +117,16 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0, @babel/code-frame@npm:^7.26.2": +"@babel/code-frame@npm:7.10.4, @babel/code-frame@npm:~7.10.4": + version: 7.10.4 + resolution: "@babel/code-frame@npm:7.10.4" + dependencies: + "@babel/highlight": "npm:^7.10.4" + checksum: 10/4ef9c679515be9cb8eab519fcded953f86226155a599cf7ea209e40e088bb9a51bb5893d3307eae510b07bb3e359d64f2620957a00c27825dbe26ac62aca81f5 + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0, @babel/code-frame@npm:^7.26.2": version: 7.26.2 resolution: "@babel/code-frame@npm:7.26.2" dependencies: @@ -81,7 +144,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.18.9, @babel/core@npm:^7.21.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.4": +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.18.9, @babel/core@npm:^7.20.0, @babel/core@npm:^7.21.3, @babel/core@npm:^7.23.7, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.4, @babel/core@npm:^7.25.2": version: 7.26.0 resolution: "@babel/core@npm:7.26.0" dependencies: @@ -104,7 +167,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.26.0, @babel/generator@npm:^7.26.3, @babel/generator@npm:^7.7.2": +"@babel/generator@npm:^7.20.5, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.5, @babel/generator@npm:^7.26.0, @babel/generator@npm:^7.26.3, @babel/generator@npm:^7.7.2": version: 7.26.3 resolution: "@babel/generator@npm:7.26.3" dependencies: @@ -139,7 +202,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.25.9": +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-create-class-features-plugin@npm:7.25.9" dependencies: @@ -226,7 +289,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.9, @babel/helper-plugin-utils@npm:^7.8.0": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.25.9, @babel/helper-plugin-utils@npm:^7.8.0": version: 7.25.9 resolution: "@babel/helper-plugin-utils@npm:7.25.9" checksum: 10/e347d87728b1ab10b6976d46403941c8f9008c045ea6d99997a7ffca7b852dc34b6171380f7b17edf94410e0857ff26f3a53d8618f11d73744db86e8ca9b8c64 @@ -259,7 +322,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9" dependencies: @@ -311,7 +374,19 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.3": +"@babel/highlight@npm:^7.10.4": + version: 7.25.9 + resolution: "@babel/highlight@npm:7.25.9" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.25.9" + chalk: "npm:^2.4.2" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10/0d165283dd4eb312292cea8fec3ae0d376874b1885f476014f0136784ed5b564b2c2ba2d270587ed546ee92505056dab56493f7960c01c4e6394d71d1b2e7db6 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.1.6, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.3, @babel/parser@npm:^7.25.4, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.3": version: 7.26.3 resolution: "@babel/parser@npm:7.26.3" dependencies: @@ -381,6 +456,67 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-proposal-class-properties@npm:^7.13.0": + version: 7.18.6 + resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.18.6" + "@babel/helper-plugin-utils": "npm:^7.18.6" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/49a78a2773ec0db56e915d9797e44fd079ab8a9b2e1716e0df07c92532f2c65d76aeda9543883916b8e0ff13606afeffa67c5b93d05b607bc87653ad18a91422 + languageName: node + linkType: hard + +"@babel/plugin-proposal-decorators@npm:^7.12.9": + version: 7.25.9 + resolution: "@babel/plugin-proposal-decorators@npm:7.25.9" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/plugin-syntax-decorators": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/f564de219ace3980cd679c719738390c02e2e6f562b330bfb941fab94c128bcb2b30e9970e1aae82d3b908703e162e4a62fb9269c7e9fb4bad83d0a56cdb41af + languageName: node + linkType: hard + +"@babel/plugin-proposal-export-default-from@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-proposal-export-default-from@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/0fb96b1229ed15ecfb09e6bf40be2da249007155a3deca53d319420a4d3c028c884e888c447898cbcdaa079165e045a8317be6a9205bef0041e7333822a40da9 + languageName: node + linkType: hard + +"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.13.8": + version: 7.18.6 + resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/949c9ddcdecdaec766ee610ef98f965f928ccc0361dd87cf9f88cf4896a6ccd62fce063d4494778e50da99dea63d270a1be574a62d6ab81cbe9d85884bf55a7d + languageName: node + linkType: hard + +"@babel/plugin-proposal-optional-chaining@npm:^7.13.12": + version: 7.21.0 + resolution: "@babel/plugin-proposal-optional-chaining@npm:7.21.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.20.0" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/522cd133aff5c94c0ef36ff83c64f03deee183815da68b65b6950e81972ace3b514e032df07ea76d0f9ec8cc7a49578092907adfa17fccb4612117557c04a882 + languageName: node + linkType: hard + "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": version: 7.21.0-placeholder-for-preset-env.2 resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" @@ -434,6 +570,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-decorators@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-syntax-decorators@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/e22e85c0a780b9c10619996d8e9fdb5f151869e53ce2b82ea05a52d393a1dbfda82e5896e9a75775a78ca7f91bca3b7d6864bec401ae1e9dc2b490dc044cad8d + languageName: node + linkType: hard + "@babel/plugin-syntax-dynamic-import@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" @@ -445,6 +592,28 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-export-default-from@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-syntax-export-default-from@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/8eb254c8050369f3cfac7755230ad9d39a53d1b489e03170684d6b514a0d09ad6001c38e6dfd271a439a8035a57d60b8be7d3dd80f997c6bc5c7e688ed529517 + languageName: node + linkType: hard + +"@babel/plugin-syntax-flow@npm:^7.12.1, @babel/plugin-syntax-flow@npm:^7.25.9": + version: 7.26.0 + resolution: "@babel/plugin-syntax-flow@npm:7.26.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/fdc0d0a7b512e00d933e12cf93c785ea4645a193f4b539230b7601cfaa8c704410199318ce9ea14e5fca7d13e9027822f7d81a7871d3e854df26b6af04cc3c6c + languageName: node + linkType: hard + "@babel/plugin-syntax-import-assertions@npm:^7.24.1, @babel/plugin-syntax-import-assertions@npm:^7.26.0": version: 7.26.0 resolution: "@babel/plugin-syntax-import-assertions@npm:7.26.0" @@ -611,7 +780,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.25.9": +"@babel/plugin-transform-arrow-functions@npm:^7.0.0-0, @babel/plugin-transform-arrow-functions@npm:^7.24.7, @babel/plugin-transform-arrow-functions@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.9" dependencies: @@ -622,7 +791,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.25.9": +"@babel/plugin-transform-async-generator-functions@npm:^7.25.4, @babel/plugin-transform-async-generator-functions@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.9" dependencies: @@ -635,7 +804,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.25.9": +"@babel/plugin-transform-async-to-generator@npm:^7.24.7, @babel/plugin-transform-async-to-generator@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.9" dependencies: @@ -659,7 +828,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.25.9": +"@babel/plugin-transform-block-scoping@npm:^7.25.0, @babel/plugin-transform-block-scoping@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-block-scoping@npm:7.25.9" dependencies: @@ -670,7 +839,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.24.1, @babel/plugin-transform-class-properties@npm:^7.25.9": +"@babel/plugin-transform-class-properties@npm:^7.0.0-0, @babel/plugin-transform-class-properties@npm:^7.24.1, @babel/plugin-transform-class-properties@npm:^7.25.4, @babel/plugin-transform-class-properties@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-class-properties@npm:7.25.9" dependencies: @@ -694,7 +863,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.25.9": +"@babel/plugin-transform-classes@npm:^7.0.0-0, @babel/plugin-transform-classes@npm:^7.25.4, @babel/plugin-transform-classes@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-classes@npm:7.25.9" dependencies: @@ -710,7 +879,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.25.9": +"@babel/plugin-transform-computed-properties@npm:^7.24.7, @babel/plugin-transform-computed-properties@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-computed-properties@npm:7.25.9" dependencies: @@ -722,7 +891,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.25.9": +"@babel/plugin-transform-destructuring@npm:^7.24.8, @babel/plugin-transform-destructuring@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-destructuring@npm:7.25.9" dependencies: @@ -790,7 +959,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.24.1, @babel/plugin-transform-export-namespace-from@npm:^7.25.9": +"@babel/plugin-transform-export-namespace-from@npm:^7.22.11, @babel/plugin-transform-export-namespace-from@npm:^7.24.1, @babel/plugin-transform-export-namespace-from@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.9" dependencies: @@ -801,7 +970,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.25.9": +"@babel/plugin-transform-flow-strip-types@npm:^7.25.2, @babel/plugin-transform-flow-strip-types@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/plugin-syntax-flow": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/a3ffc76bbc922720debe973bccb501ccbda0d6d32d80c9efd599ab1b683fd72cae3198975d8609b37070fc32f921a9eb7d2db17b7b719395468773be41011822 + languageName: node + linkType: hard + +"@babel/plugin-transform-for-of@npm:^7.24.7, @babel/plugin-transform-for-of@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-for-of@npm:7.25.9" dependencies: @@ -813,7 +994,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.25.9": +"@babel/plugin-transform-function-name@npm:^7.25.1, @babel/plugin-transform-function-name@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-function-name@npm:7.25.9" dependencies: @@ -837,7 +1018,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.25.9": +"@babel/plugin-transform-literals@npm:^7.25.2, @babel/plugin-transform-literals@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-literals@npm:7.25.9" dependencies: @@ -848,7 +1029,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.9": +"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7, @babel/plugin-transform-logical-assignment-operators@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.9" dependencies: @@ -882,7 +1063,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.25.9": +"@babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.24.8, @babel/plugin-transform-modules-commonjs@npm:^7.25.9": version: 7.26.3 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.26.3" dependencies: @@ -920,7 +1101,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.9": +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.9" dependencies: @@ -943,7 +1124,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.9": +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.0.0-0, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.9" dependencies: @@ -954,7 +1135,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.24.1, @babel/plugin-transform-numeric-separator@npm:^7.25.9": +"@babel/plugin-transform-numeric-separator@npm:^7.24.1, @babel/plugin-transform-numeric-separator@npm:^7.24.7, @babel/plugin-transform-numeric-separator@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.9" dependencies: @@ -965,7 +1146,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.24.1, @babel/plugin-transform-object-rest-spread@npm:^7.25.9": +"@babel/plugin-transform-object-rest-spread@npm:^7.12.13, @babel/plugin-transform-object-rest-spread@npm:^7.24.1, @babel/plugin-transform-object-rest-spread@npm:^7.24.7, @babel/plugin-transform-object-rest-spread@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.9" dependencies: @@ -990,7 +1171,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.25.9": +"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7, @babel/plugin-transform-optional-catch-binding@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.9" dependencies: @@ -1001,7 +1182,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.25.9": +"@babel/plugin-transform-optional-chaining@npm:^7.0.0-0, @babel/plugin-transform-optional-chaining@npm:^7.24.8, @babel/plugin-transform-optional-chaining@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.9" dependencies: @@ -1013,7 +1194,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.25.9": +"@babel/plugin-transform-parameters@npm:^7.22.15, @babel/plugin-transform-parameters@npm:^7.24.7, @babel/plugin-transform-parameters@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-parameters@npm:7.25.9" dependencies: @@ -1024,7 +1205,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.25.9": +"@babel/plugin-transform-private-methods@npm:^7.24.7, @babel/plugin-transform-private-methods@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-private-methods@npm:7.25.9" dependencies: @@ -1036,7 +1217,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.25.9": +"@babel/plugin-transform-private-property-in-object@npm:^7.24.7, @babel/plugin-transform-private-property-in-object@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.9" dependencies: @@ -1071,7 +1252,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.25.9": +"@babel/plugin-transform-react-display-name@npm:^7.24.7, @babel/plugin-transform-react-display-name@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-react-display-name@npm:7.25.9" dependencies: @@ -1093,7 +1274,29 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.25.9": +"@babel/plugin-transform-react-jsx-self@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/41c833cd7f91b1432710f91b1325706e57979b2e8da44e83d86312c78bbe96cd9ef778b4e79e4e17ab25fa32c72b909f2be7f28e876779ede28e27506c41f4ae + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-source@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/a3e0e5672e344e9d01fb20b504fe29a84918eaa70cec512c4d4b1b035f72803261257343d8e93673365b72c371f35cf34bb0d129720bf178a4c87812c8b9c662 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx@npm:^7.25.2, @babel/plugin-transform-react-jsx@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-react-jsx@npm:7.25.9" dependencies: @@ -1120,7 +1323,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.25.9": +"@babel/plugin-transform-regenerator@npm:^7.24.7, @babel/plugin-transform-regenerator@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-regenerator@npm:7.25.9" dependencies: @@ -1155,7 +1358,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:^7.24.3": +"@babel/plugin-transform-runtime@npm:^7.24.3, @babel/plugin-transform-runtime@npm:^7.24.7": version: 7.25.9 resolution: "@babel/plugin-transform-runtime@npm:7.25.9" dependencies: @@ -1171,7 +1374,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.25.9": +"@babel/plugin-transform-shorthand-properties@npm:^7.0.0-0, @babel/plugin-transform-shorthand-properties@npm:^7.24.7, @babel/plugin-transform-shorthand-properties@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.9" dependencies: @@ -1182,7 +1385,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.25.9": +"@babel/plugin-transform-spread@npm:^7.24.7, @babel/plugin-transform-spread@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-spread@npm:7.25.9" dependencies: @@ -1194,7 +1397,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.25.9": +"@babel/plugin-transform-sticky-regex@npm:^7.24.7, @babel/plugin-transform-sticky-regex@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.9" dependencies: @@ -1205,7 +1408,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.25.9": +"@babel/plugin-transform-template-literals@npm:^7.0.0-0, @babel/plugin-transform-template-literals@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-template-literals@npm:7.25.9" dependencies: @@ -1227,7 +1430,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.25.9": +"@babel/plugin-transform-typescript@npm:^7.25.2, @babel/plugin-transform-typescript@npm:^7.25.9": version: 7.26.3 resolution: "@babel/plugin-transform-typescript@npm:7.26.3" dependencies: @@ -1265,7 +1468,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.25.9": +"@babel/plugin-transform-unicode-regex@npm:^7.0.0-0, @babel/plugin-transform-unicode-regex@npm:^7.24.7, @babel/plugin-transform-unicode-regex@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.9" dependencies: @@ -1289,7 +1492,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:^7.11.0, @babel/preset-env@npm:^7.20.2, @babel/preset-env@npm:^7.24.4": +"@babel/preset-env@npm:^7.11.0, @babel/preset-env@npm:^7.20.2, @babel/preset-env@npm:^7.24.4, @babel/preset-env@npm:^7.26.0": version: 7.26.0 resolution: "@babel/preset-env@npm:7.26.0" dependencies: @@ -1368,6 +1571,19 @@ __metadata: languageName: node linkType: hard +"@babel/preset-flow@npm:^7.13.13": + version: 7.25.9 + resolution: "@babel/preset-flow@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/plugin-transform-flow-strip-types": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/b1591ea63a7ace7e34bcefa6deba9e2814d7f082e3c074e2648efb68a1a49016ccefbea024156ba28bd3042a4e768e3eb8b5ecfe433978144fdaaadd36203ba2 + languageName: node + linkType: hard + "@babel/preset-modules@npm:0.1.6-no-external-plugins": version: 0.1.6-no-external-plugins resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" @@ -1381,7 +1597,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-react@npm:^7.18.6, @babel/preset-react@npm:^7.24.1": +"@babel/preset-react@npm:^7.18.6, @babel/preset-react@npm:^7.22.15, @babel/preset-react@npm:^7.24.1, @babel/preset-react@npm:^7.26.3": version: 7.26.3 resolution: "@babel/preset-react@npm:7.26.3" dependencies: @@ -1397,7 +1613,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-typescript@npm:^7.21.0, @babel/preset-typescript@npm:^7.24.1, @babel/preset-typescript@npm:^7.24.7": +"@babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.16.7, @babel/preset-typescript@npm:^7.21.0, @babel/preset-typescript@npm:^7.23.0, @babel/preset-typescript@npm:^7.24.1, @babel/preset-typescript@npm:^7.24.7": version: 7.26.0 resolution: "@babel/preset-typescript@npm:7.26.0" dependencies: @@ -1412,7 +1628,22 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:7.26.0, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.6, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.24.4, @babel/runtime@npm:^7.25.7, @babel/runtime@npm:^7.26.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": +"@babel/register@npm:^7.13.16": + version: 7.25.9 + resolution: "@babel/register@npm:7.25.9" + dependencies: + clone-deep: "npm:^4.0.1" + find-cache-dir: "npm:^2.0.0" + make-dir: "npm:^2.1.0" + pirates: "npm:^4.0.6" + source-map-support: "npm:^0.5.16" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/eb0192c2e83566043b9777062c50567c869bbe9ed65cbeece25a3f0c07c7763199d8008b7b860cb0090d6f4f2ab1b590adf29b539115c260566e44296e0559fb + languageName: node + linkType: hard + +"@babel/runtime@npm:7.26.0, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.14.6, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.5, @babel/runtime@npm:^7.24.4, @babel/runtime@npm:^7.25.0, @babel/runtime@npm:^7.25.4, @babel/runtime@npm:^7.25.7, @babel/runtime@npm:^7.26.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": version: 7.26.0 resolution: "@babel/runtime@npm:7.26.0" dependencies: @@ -1421,7 +1652,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.25.9, @babel/template@npm:^7.3.3": +"@babel/template@npm:^7.25.0, @babel/template@npm:^7.25.9, @babel/template@npm:^7.3.3": version: 7.25.9 resolution: "@babel/template@npm:7.25.9" dependencies: @@ -1432,7 +1663,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.25.9": +"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.25.4, @babel/traverse@npm:^7.25.9": version: 7.26.4 resolution: "@babel/traverse@npm:7.26.4" dependencies: @@ -1447,7 +1678,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.26.3, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.1.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.4, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.26.3, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": version: 7.26.3 resolution: "@babel/types@npm:7.26.3" dependencies: @@ -1498,7 +1729,7 @@ __metadata: languageName: node linkType: hard -"@cowprotocol/app-data@npm:^2.4.0": +"@cowprotocol/app-data@npm:^2.3.0, @cowprotocol/app-data@npm:^2.4.0": version: 2.4.0 resolution: "@cowprotocol/app-data@npm:2.4.0" dependencies: @@ -1541,6 +1772,15 @@ __metadata: languageName: node linkType: hard +"@cspotcode/source-map-support@npm:^0.8.0": + version: 0.8.1 + resolution: "@cspotcode/source-map-support@npm:0.8.1" + dependencies: + "@jridgewell/trace-mapping": "npm:0.3.9" + checksum: 10/b6e38a1712fab242c86a241c229cf562195aad985d0564bd352ac404be583029e89e93028ffd2c251d2c407ecac5fb0cbdca94a2d5c10f29ac806ede0508b3ff + languageName: node + linkType: hard + "@cypress/request@npm:^3.0.6": version: 3.0.7 resolution: "@cypress/request@npm:3.0.7" @@ -1601,6 +1841,15 @@ __metadata: languageName: node linkType: hard +"@egjs/hammerjs@npm:^2.0.17": + version: 2.0.17 + resolution: "@egjs/hammerjs@npm:2.0.17" + dependencies: + "@types/hammerjs": "npm:^2.0.36" + checksum: 10/f695129d45edfcfd6c5f2d1d36186da36ffade013991972ce23721a6b7ad7f214ce282abc4023e3f6b63062620852a63e897b523f247804afc7acd188fee9d9d + languageName: node + linkType: hard + "@emnapi/runtime@npm:^1.2.0": version: 1.3.1 resolution: "@emnapi/runtime@npm:1.3.1" @@ -1649,6 +1898,15 @@ __metadata: languageName: node linkType: hard +"@emotion/is-prop-valid@npm:^0.8.2": + version: 0.8.8 + resolution: "@emotion/is-prop-valid@npm:0.8.8" + dependencies: + "@emotion/memoize": "npm:0.7.4" + checksum: 10/e85bdeb9d9d23de422f271e0f5311a0142b15055bb7e610440dbf250f0cdfd049df88af72a49e2c6081954481f1cbeca9172e2116ff536b38229397dfbed8082 + languageName: node + linkType: hard + "@emotion/is-prop-valid@npm:^1.3.0": version: 1.3.1 resolution: "@emotion/is-prop-valid@npm:1.3.1" @@ -1658,6 +1916,13 @@ __metadata: languageName: node linkType: hard +"@emotion/memoize@npm:0.7.4": + version: 0.7.4 + resolution: "@emotion/memoize@npm:0.7.4" + checksum: 10/4e3920d4ec95995657a37beb43d3f4b7d89fed6caa2b173a4c04d10482d089d5c3ea50bbc96618d918b020f26ed6e9c4026bbd45433566576c1f7b056c3271dc + languageName: node + linkType: hard + "@emotion/memoize@npm:^0.9.0": version: 0.9.0 resolution: "@emotion/memoize@npm:0.9.0" @@ -1787,6 +2052,20 @@ __metadata: languageName: node linkType: hard +"@esbuild-plugins/tsconfig-paths@npm:^0.1.2": + version: 0.1.2 + resolution: "@esbuild-plugins/tsconfig-paths@npm:0.1.2" + dependencies: + debug: "npm:^4.3.1" + find-up: "npm:^5.0.0" + strip-json-comments: "npm:^3.1.1" + peerDependencies: + esbuild: "*" + typescript: "*" + checksum: 10/bbb927745aa1b5f7aeeb7a22445f51f62bc2eb055f7c2de63b5d204a62c09877bc4109e9a1b0d8a93499660e185e93cc20f1d5821573cebf7b908be42cd948b2 + languageName: node + linkType: hard + "@esbuild/aix-ppc64@npm:0.19.12": version: 0.19.12 resolution: "@esbuild/aix-ppc64@npm:0.19.12" @@ -2171,6 +2450,13 @@ __metadata: languageName: node linkType: hard +"@eslint/js@npm:9.16.0, @eslint/js@npm:^9.12.0": + version: 9.16.0 + resolution: "@eslint/js@npm:9.16.0" + checksum: 10/122da09b6a2c6a92d68be26146af1da17d9d4e03cf9435a874d341f18519122eef9ed229e52a1b781dc5987239754954e80a0b11bbe8f65df96e9ef8f3b438ad + languageName: node + linkType: hard + "@eslint/js@npm:9.17.0, @eslint/js@npm:^9.14.0": version: 9.17.0 resolution: "@eslint/js@npm:9.17.0" @@ -3093,79 +3379,479 @@ __metadata: languageName: node linkType: hard -"@faker-js/faker@npm:^9.0.3": - version: 9.3.0 - resolution: "@faker-js/faker@npm:9.3.0" - checksum: 10/fa0718766dc46dea06602b1acdccdf3714e5a076f02eab6dbe26d7dc421ccc43a2e7e08767f7832de963fa2a273c2d9e5d4a2a504247ea5fba119a713efc145c +"@exodus/schemasafe@npm:^1.0.0-rc.2": + version: 1.3.0 + resolution: "@exodus/schemasafe@npm:1.3.0" + checksum: 10/791d9e4b437fe04c6d7cf028d145ed963b8fe973ba6d5811aedf7edea40d5a055a49522241efdafbc32f964c27beaddf1c85fbcc8bf5436cf394623b08e5518b languageName: node linkType: hard -"@figspec/components@npm:^1.0.1": - version: 1.0.3 - resolution: "@figspec/components@npm:1.0.3" +"@expo/bunyan@npm:^4.0.0": + version: 4.0.1 + resolution: "@expo/bunyan@npm:4.0.1" dependencies: - lit: "npm:^2.1.3" - checksum: 10/410244da341c639ac39357f95b2869b5cb258c120efa3fab77cb30c486891c44d89b3ae5de42c15ba89d14feb683e5e3e52b641d12a59760a5067cd0a4a8bb3d + uuid: "npm:^8.0.0" + checksum: 10/22d656b07967e9112c13d3d7432c73f19b777ea31f7bccbc558d59b9f7d9c81a8d94036f9b6e8665abfeb57409107fd61f05e9072d57b12c1087b77b05accbb7 languageName: node linkType: hard -"@figspec/react@npm:^1.0.0": - version: 1.0.3 - resolution: "@figspec/react@npm:1.0.3" +"@expo/cli@npm:0.22.3": + version: 0.22.3 + resolution: "@expo/cli@npm:0.22.3" + dependencies: + "@0no-co/graphql.web": "npm:^1.0.8" + "@babel/runtime": "npm:^7.20.0" + "@expo/code-signing-certificates": "npm:^0.0.5" + "@expo/config": "npm:~10.0.4" + "@expo/config-plugins": "npm:~9.0.10" + "@expo/devcert": "npm:^1.1.2" + "@expo/env": "npm:~0.4.0" + "@expo/image-utils": "npm:^0.6.0" + "@expo/json-file": "npm:^9.0.0" + "@expo/metro-config": "npm:~0.19.0" + "@expo/osascript": "npm:^2.0.31" + "@expo/package-manager": "npm:^1.5.0" + "@expo/plist": "npm:^0.2.0" + "@expo/prebuild-config": "npm:^8.0.22" + "@expo/rudder-sdk-node": "npm:^1.1.1" + "@expo/spawn-async": "npm:^1.7.2" + "@expo/xcpretty": "npm:^4.3.0" + "@react-native/dev-middleware": "npm:0.76.3" + "@urql/core": "npm:^5.0.6" + "@urql/exchange-retry": "npm:^1.3.0" + accepts: "npm:^1.3.8" + arg: "npm:^5.0.2" + better-opn: "npm:~3.0.2" + bplist-creator: "npm:0.0.7" + bplist-parser: "npm:^0.3.1" + cacache: "npm:^18.0.2" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.3.0" + compression: "npm:^1.7.4" + connect: "npm:^3.7.0" + debug: "npm:^4.3.4" + env-editor: "npm:^0.4.1" + fast-glob: "npm:^3.3.2" + form-data: "npm:^3.0.1" + freeport-async: "npm:^2.0.0" + fs-extra: "npm:~8.1.0" + getenv: "npm:^1.0.0" + glob: "npm:^10.4.2" + internal-ip: "npm:^4.3.0" + is-docker: "npm:^2.0.0" + is-wsl: "npm:^2.1.1" + lodash.debounce: "npm:^4.0.8" + minimatch: "npm:^3.0.4" + node-forge: "npm:^1.3.1" + npm-package-arg: "npm:^11.0.0" + ora: "npm:^3.4.0" + picomatch: "npm:^3.0.1" + pretty-bytes: "npm:^5.6.0" + pretty-format: "npm:^29.7.0" + progress: "npm:^2.0.3" + prompts: "npm:^2.3.2" + qrcode-terminal: "npm:0.11.0" + require-from-string: "npm:^2.0.2" + requireg: "npm:^0.2.2" + resolve: "npm:^1.22.2" + resolve-from: "npm:^5.0.0" + resolve.exports: "npm:^2.0.2" + semver: "npm:^7.6.0" + send: "npm:^0.19.0" + slugify: "npm:^1.3.4" + source-map-support: "npm:~0.5.21" + stacktrace-parser: "npm:^0.1.10" + structured-headers: "npm:^0.4.1" + tar: "npm:^6.2.1" + temp-dir: "npm:^2.0.0" + tempy: "npm:^0.7.1" + terminal-link: "npm:^2.1.1" + undici: "npm:^6.18.2" + unique-string: "npm:~2.0.0" + wrap-ansi: "npm:^7.0.0" + ws: "npm:^8.12.1" + bin: + expo-internal: build/bin/cli + checksum: 10/67ad931ebdb185a9686a53a3389dfdc93765c8124b0e9cdbd1b00e5b2dbc0e3005be487ae02552040f462754f1c59840d127fa08086d3a75785ff368efb1abaa + languageName: node + linkType: hard + +"@expo/code-signing-certificates@npm:^0.0.5": + version: 0.0.5 + resolution: "@expo/code-signing-certificates@npm:0.0.5" dependencies: - "@figspec/components": "npm:^1.0.1" - "@lit-labs/react": "npm:^1.0.2" - peerDependencies: - react: ^16.14.0 || ^17.0.0 || ^18.0.0 - checksum: 10/8cfc1be1d8b6aa089fb4a7461a46bc96cdd4ad40ee49b0dea46507221d6036a81644b732ed5be0e8047ef6436e776036bcf0a72db724f0f9358837270f4278cf + node-forge: "npm:^1.2.1" + nullthrows: "npm:^1.1.1" + checksum: 10/6783721e2eafff5547500eaf99bee54641f076dc7221e52b48f1494f993040d779fe13ae7d95d3874c483eb545cafbf692315e2da0b0fc24e7a477b84e289617 languageName: node linkType: hard -"@firebase/analytics-compat@npm:0.2.14": - version: 0.2.14 - resolution: "@firebase/analytics-compat@npm:0.2.14" +"@expo/config-plugins@npm:^9.0.10, @expo/config-plugins@npm:~9.0.10, @expo/config-plugins@npm:~9.0.12": + version: 9.0.12 + resolution: "@expo/config-plugins@npm:9.0.12" dependencies: - "@firebase/analytics": "npm:0.10.8" - "@firebase/analytics-types": "npm:0.8.2" - "@firebase/component": "npm:0.6.9" - "@firebase/util": "npm:1.10.0" - tslib: "npm:^2.1.0" - peerDependencies: - "@firebase/app-compat": 0.x - checksum: 10/0e368159d24223076b488b27308c11e5ef50456aff49fc58e1f66616228021c61e60c3299f63ce52ddc2f7099d803e9048bc28cd952cf5c302917002c03c85ee + "@expo/config-types": "npm:^52.0.0" + "@expo/json-file": "npm:~9.0.0" + "@expo/plist": "npm:^0.2.0" + "@expo/sdk-runtime-versions": "npm:^1.0.0" + chalk: "npm:^4.1.2" + debug: "npm:^4.3.5" + getenv: "npm:^1.0.0" + glob: "npm:^10.4.2" + resolve-from: "npm:^5.0.0" + semver: "npm:^7.5.4" + slash: "npm:^3.0.0" + slugify: "npm:^1.6.6" + xcode: "npm:^3.0.1" + xml2js: "npm:0.6.0" + checksum: 10/0de98fed38fa721b387182d10fd5880b5fbe2eac864924ff98a4ffb3cc3a59f30e700e9729b04f8ba9730484114b2d450ab69d61fbf3744e416e2dce68728621 languageName: node linkType: hard -"@firebase/analytics-types@npm:0.8.2": - version: 0.8.2 - resolution: "@firebase/analytics-types@npm:0.8.2" - checksum: 10/297fb7becbc51950c7de5809fed896c391d1e87b4d8bb4bf88f4e8760b2e32f903a7dd8e92de4424b49c4e2ecb60a44d49e2f9c68ac3f7ffe3a0194f78910392 +"@expo/config-types@npm:^52.0.0": + version: 52.0.1 + resolution: "@expo/config-types@npm:52.0.1" + checksum: 10/9c35fc88dfa9075c6f5584f3887a85646a81439e4b9bdddc64a1f055e7fcd42908b0b33054a1fb407fd525dcb9ed8b786c1b2b403196d6ca5ce9a51e76379e8b languageName: node linkType: hard -"@firebase/analytics@npm:0.10.8": - version: 0.10.8 - resolution: "@firebase/analytics@npm:0.10.8" +"@expo/config@npm:~10.0.4, @expo/config@npm:~10.0.6": + version: 10.0.6 + resolution: "@expo/config@npm:10.0.6" dependencies: - "@firebase/component": "npm:0.6.9" - "@firebase/installations": "npm:0.6.9" - "@firebase/logger": "npm:0.4.2" - "@firebase/util": "npm:1.10.0" - tslib: "npm:^2.1.0" - peerDependencies: - "@firebase/app": 0.x - checksum: 10/152ddaf68146f02baa7060d34426c25ec13890a53942ffa2db09faa148bef35f59ee9810e6fb8f561fb3d115b71d1fb9fb111d2a0f0199aa510220782557c765 + "@babel/code-frame": "npm:~7.10.4" + "@expo/config-plugins": "npm:~9.0.10" + "@expo/config-types": "npm:^52.0.0" + "@expo/json-file": "npm:^9.0.0" + deepmerge: "npm:^4.3.1" + getenv: "npm:^1.0.0" + glob: "npm:^10.4.2" + require-from-string: "npm:^2.0.2" + resolve-from: "npm:^5.0.0" + resolve-workspace-root: "npm:^2.0.0" + semver: "npm:^7.6.0" + slugify: "npm:^1.3.4" + sucrase: "npm:3.35.0" + checksum: 10/0ad3863dc2f16314a878bc09da56294e7adabf0ffed840bad813268768a3f809742a7aa3091de0e330b5a08b4ed406850fb72d4732b6063314aa0a89fb740c4e languageName: node linkType: hard -"@firebase/app-check-compat@npm:0.3.15": - version: 0.3.15 - resolution: "@firebase/app-check-compat@npm:0.3.15" +"@expo/devcert@npm:^1.1.2": + version: 1.1.4 + resolution: "@expo/devcert@npm:1.1.4" dependencies: - "@firebase/app-check": "npm:0.8.8" - "@firebase/app-check-types": "npm:0.5.2" - "@firebase/component": "npm:0.6.9" - "@firebase/logger": "npm:0.4.2" + application-config-path: "npm:^0.1.0" + command-exists: "npm:^1.2.4" + debug: "npm:^3.1.0" + eol: "npm:^0.9.1" + get-port: "npm:^3.2.0" + glob: "npm:^10.4.2" + lodash: "npm:^4.17.21" + mkdirp: "npm:^0.5.1" + password-prompt: "npm:^1.0.4" + sudo-prompt: "npm:^8.2.0" + tmp: "npm:^0.0.33" + tslib: "npm:^2.4.0" + checksum: 10/da897fad243ff74c5c70486aa020b6ed691c3a68a2bed5758e76245d493cee0499d3c1efbc9fa8993e5addc0cf73de5eff77211780669ae122b802327cefacee + languageName: node + linkType: hard + +"@expo/env@npm:~0.4.0": + version: 0.4.0 + resolution: "@expo/env@npm:0.4.0" + dependencies: + chalk: "npm:^4.0.0" + debug: "npm:^4.3.4" + dotenv: "npm:~16.4.5" + dotenv-expand: "npm:~11.0.6" + getenv: "npm:^1.0.0" + checksum: 10/dd4212d4bb2812ce2338c752a53a2ef781313eea3f89439e97fc6dd11cd893fafa18aaa19d398b0519f2e0032f7ed06ed5862e4bb5f7441fca59bde00cb34ed0 + languageName: node + linkType: hard + +"@expo/fingerprint@npm:0.11.3": + version: 0.11.3 + resolution: "@expo/fingerprint@npm:0.11.3" + dependencies: + "@expo/spawn-async": "npm:^1.7.2" + arg: "npm:^5.0.2" + chalk: "npm:^4.1.2" + debug: "npm:^4.3.4" + find-up: "npm:^5.0.0" + getenv: "npm:^1.0.0" + minimatch: "npm:^3.0.4" + p-limit: "npm:^3.1.0" + resolve-from: "npm:^5.0.0" + semver: "npm:^7.6.0" + bin: + fingerprint: bin/cli.js + checksum: 10/5a993c7e0a9f27508bea6e47fac6a32995a5ec70219f0f87eebdcbc1b972fd1dea1c922fa903eb1ca428e96b7740af269da6a16d1fab61eab1f806a2f1663743 + languageName: node + linkType: hard + +"@expo/image-utils@npm:^0.6.0": + version: 0.6.3 + resolution: "@expo/image-utils@npm:0.6.3" + dependencies: + "@expo/spawn-async": "npm:^1.7.2" + chalk: "npm:^4.0.0" + fs-extra: "npm:9.0.0" + getenv: "npm:^1.0.0" + jimp-compact: "npm:0.16.1" + parse-png: "npm:^2.1.0" + resolve-from: "npm:^5.0.0" + semver: "npm:^7.6.0" + temp-dir: "npm:~2.0.0" + unique-string: "npm:~2.0.0" + checksum: 10/aeaef02c98ce8a2b3d00e7a5b988d0be5956531ac68dc4a0182cd735afaab4f707bb8a1bd55975d6a977c082b59303d07ddc59ea3d72605270f94abac6c6683f + languageName: node + linkType: hard + +"@expo/json-file@npm:^9.0.0, @expo/json-file@npm:~9.0.0": + version: 9.0.0 + resolution: "@expo/json-file@npm:9.0.0" + dependencies: + "@babel/code-frame": "npm:~7.10.4" + json5: "npm:^2.2.3" + write-file-atomic: "npm:^2.3.0" + checksum: 10/a18c6c84d03116dfa5fcb767dfce682a71d6245a8734377cfa64d2fc69e8a70046a916409f34ac438f099dc5f66298ce8f37a3168970fca25bd76096329d95b2 + languageName: node + linkType: hard + +"@expo/metro-config@npm:0.19.6, @expo/metro-config@npm:~0.19.0": + version: 0.19.6 + resolution: "@expo/metro-config@npm:0.19.6" + dependencies: + "@babel/core": "npm:^7.20.0" + "@babel/generator": "npm:^7.20.5" + "@babel/parser": "npm:^7.20.0" + "@babel/types": "npm:^7.20.0" + "@expo/config": "npm:~10.0.4" + "@expo/env": "npm:~0.4.0" + "@expo/json-file": "npm:~9.0.0" + "@expo/spawn-async": "npm:^1.7.2" + chalk: "npm:^4.1.0" + debug: "npm:^4.3.2" + fs-extra: "npm:^9.1.0" + getenv: "npm:^1.0.0" + glob: "npm:^10.4.2" + jsc-safe-url: "npm:^0.2.4" + lightningcss: "npm:~1.27.0" + minimatch: "npm:^3.0.4" + postcss: "npm:~8.4.32" + resolve-from: "npm:^5.0.0" + checksum: 10/1a98844a079f3c97854d84f5fac6b207dfc404da4ade0133b9b8c7581903dbf5f4a806fd4b7394bf009bbde39df4bfb10b09930245a017255efe88884b77013f + languageName: node + linkType: hard + +"@expo/metro-runtime@npm:4.0.0": + version: 4.0.0 + resolution: "@expo/metro-runtime@npm:4.0.0" + peerDependencies: + react-native: "*" + checksum: 10/2f5bd81e4d0735dc9b99ac4f35169969eb9dc303669ddc3158f670a3c36115f87d479a6fda11c1d5acab551f1015a32271c83001e8874493f0ec58c02f8ddbf3 + languageName: node + linkType: hard + +"@expo/osascript@npm:^2.0.31": + version: 2.1.4 + resolution: "@expo/osascript@npm:2.1.4" + dependencies: + "@expo/spawn-async": "npm:^1.7.2" + exec-async: "npm:^2.2.0" + checksum: 10/d35a36bd93f0477138e0b93da8bde8098d8b1158fbbf1c4121a8fc345681eb6aff51df8639c3d32fcfc98eedc9c018d044aa56684507604968c31c238a3e53de + languageName: node + linkType: hard + +"@expo/package-manager@npm:^1.5.0": + version: 1.6.1 + resolution: "@expo/package-manager@npm:1.6.1" + dependencies: + "@expo/json-file": "npm:^9.0.0" + "@expo/spawn-async": "npm:^1.7.2" + ansi-regex: "npm:^5.0.0" + chalk: "npm:^4.0.0" + find-up: "npm:^5.0.0" + js-yaml: "npm:^3.13.1" + micromatch: "npm:^4.0.8" + npm-package-arg: "npm:^11.0.0" + ora: "npm:^3.4.0" + resolve-workspace-root: "npm:^2.0.0" + split: "npm:^1.0.1" + sudo-prompt: "npm:9.1.1" + checksum: 10/64c08bdc64516c3085ba9bc5870efac5f93b6e8dc3f5e9e6047984df9a7043b639b024177a927b24f7eca989cf257d9ad430b6ac68900eea6c7ddf203cbed12a + languageName: node + linkType: hard + +"@expo/plist@npm:^0.2.0": + version: 0.2.0 + resolution: "@expo/plist@npm:0.2.0" + dependencies: + "@xmldom/xmldom": "npm:~0.7.7" + base64-js: "npm:^1.2.3" + xmlbuilder: "npm:^14.0.0" + checksum: 10/ac7e3c97642b060de23ebbaa677b8c629afc9e5430f3b8d409d97a0e5113018911c9610f94453966a1021fb15749742d44e39a5ae6d140ca8a1b202ff1c2c8ec + languageName: node + linkType: hard + +"@expo/prebuild-config@npm:^8.0.22": + version: 8.0.22 + resolution: "@expo/prebuild-config@npm:8.0.22" + dependencies: + "@expo/config": "npm:~10.0.4" + "@expo/config-plugins": "npm:~9.0.10" + "@expo/config-types": "npm:^52.0.0" + "@expo/image-utils": "npm:^0.6.0" + "@expo/json-file": "npm:^9.0.0" + "@react-native/normalize-colors": "npm:0.76.3" + debug: "npm:^4.3.1" + fs-extra: "npm:^9.0.0" + resolve-from: "npm:^5.0.0" + semver: "npm:^7.6.0" + xml2js: "npm:0.6.0" + checksum: 10/28780c041c2c6449ec81166c83f5b1f8e223a37e3445b94acfd69e9cd9cfb746a5178ff88133a1cb2044357c4797f0c1e341788a8947022030ebc8eed06ce966 + languageName: node + linkType: hard + +"@expo/rudder-sdk-node@npm:^1.1.1": + version: 1.1.1 + resolution: "@expo/rudder-sdk-node@npm:1.1.1" + dependencies: + "@expo/bunyan": "npm:^4.0.0" + "@segment/loosely-validate-event": "npm:^2.0.0" + fetch-retry: "npm:^4.1.1" + md5: "npm:^2.2.1" + node-fetch: "npm:^2.6.1" + remove-trailing-slash: "npm:^0.1.0" + uuid: "npm:^8.3.2" + checksum: 10/e5611d51cbeb8c7517b2265e909bfc6b59f4b973b3ce08f9581e233164ab4ca2ec3b9288f895750aea1c390fa40cce136665c659a937493b08f00d606a4436f8 + languageName: node + linkType: hard + +"@expo/sdk-runtime-versions@npm:^1.0.0": + version: 1.0.0 + resolution: "@expo/sdk-runtime-versions@npm:1.0.0" + checksum: 10/0942d5a356f590e8dc795761456cc48b3e2d6a38ad2a02d6774efcdc5a70424e05623b4e3e5d2fec0cdc30f40dde05c14391c781607eed3971bf8676518bfd9d + languageName: node + linkType: hard + +"@expo/server@npm:^0.5.0": + version: 0.5.0 + resolution: "@expo/server@npm:0.5.0" + dependencies: + "@remix-run/node": "npm:^2.12.0" + abort-controller: "npm:^3.0.0" + debug: "npm:^4.3.4" + source-map-support: "npm:~0.5.21" + checksum: 10/aec839bcd8e72dd366e7a02721a364644e84d0db4a34b402f676f3f95c1ed49770f8909108f6cb8a1ba1285e9acae3ed2ee2563f18620efdacb1b812eb5fe838 + languageName: node + linkType: hard + +"@expo/spawn-async@npm:^1.7.2": + version: 1.7.2 + resolution: "@expo/spawn-async@npm:1.7.2" + dependencies: + cross-spawn: "npm:^7.0.3" + checksum: 10/009816d1722fc02603cfb4c348a609a80f41fba726d0d20208cd0d2d8a532f511a924a6681501251c851453499c4c13380a93209027a00bacc1b5282a4324cf8 + languageName: node + linkType: hard + +"@expo/vector-icons@npm:^14.0.0, @expo/vector-icons@npm:^14.0.2": + version: 14.0.4 + resolution: "@expo/vector-icons@npm:14.0.4" + dependencies: + prop-types: "npm:^15.8.1" + checksum: 10/bb807830dd886cb439e90bbaf5afd5e9ea538486d3bd0cc240210a230c53e7d858b460d05836875ae0ef3958bc591c21afedb5f58086be4aeeb362d08665c809 + languageName: node + linkType: hard + +"@expo/xcpretty@npm:^4.3.0": + version: 4.3.2 + resolution: "@expo/xcpretty@npm:4.3.2" + dependencies: + "@babel/code-frame": "npm:7.10.4" + chalk: "npm:^4.1.0" + find-up: "npm:^5.0.0" + js-yaml: "npm:^4.1.0" + bin: + excpretty: build/cli.js + checksum: 10/4d2adaf531d24154898b858d3d0f3b4ec272fa08bb628f94cadee5b1eb505cc1f3a6b0ab7c1cb3d55af0f22c2534b4a9781a6fe7293dc2062fc5784eb376b0bb + languageName: node + linkType: hard + +"@faker-js/faker@npm:^9.0.3": + version: 9.3.0 + resolution: "@faker-js/faker@npm:9.3.0" + checksum: 10/fa0718766dc46dea06602b1acdccdf3714e5a076f02eab6dbe26d7dc421ccc43a2e7e08767f7832de963fa2a273c2d9e5d4a2a504247ea5fba119a713efc145c + languageName: node + linkType: hard + +"@figspec/components@npm:^1.0.1": + version: 1.0.3 + resolution: "@figspec/components@npm:1.0.3" + dependencies: + lit: "npm:^2.1.3" + checksum: 10/410244da341c639ac39357f95b2869b5cb258c120efa3fab77cb30c486891c44d89b3ae5de42c15ba89d14feb683e5e3e52b641d12a59760a5067cd0a4a8bb3d + languageName: node + linkType: hard + +"@figspec/react@npm:^1.0.0": + version: 1.0.3 + resolution: "@figspec/react@npm:1.0.3" + dependencies: + "@figspec/components": "npm:^1.0.1" + "@lit-labs/react": "npm:^1.0.2" + peerDependencies: + react: ^16.14.0 || ^17.0.0 || ^18.0.0 + checksum: 10/8cfc1be1d8b6aa089fb4a7461a46bc96cdd4ad40ee49b0dea46507221d6036a81644b732ed5be0e8047ef6436e776036bcf0a72db724f0f9358837270f4278cf + languageName: node + linkType: hard + +"@firebase/analytics-compat@npm:0.2.14": + version: 0.2.14 + resolution: "@firebase/analytics-compat@npm:0.2.14" + dependencies: + "@firebase/analytics": "npm:0.10.8" + "@firebase/analytics-types": "npm:0.8.2" + "@firebase/component": "npm:0.6.9" + "@firebase/util": "npm:1.10.0" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app-compat": 0.x + checksum: 10/0e368159d24223076b488b27308c11e5ef50456aff49fc58e1f66616228021c61e60c3299f63ce52ddc2f7099d803e9048bc28cd952cf5c302917002c03c85ee + languageName: node + linkType: hard + +"@firebase/analytics-types@npm:0.8.2": + version: 0.8.2 + resolution: "@firebase/analytics-types@npm:0.8.2" + checksum: 10/297fb7becbc51950c7de5809fed896c391d1e87b4d8bb4bf88f4e8760b2e32f903a7dd8e92de4424b49c4e2ecb60a44d49e2f9c68ac3f7ffe3a0194f78910392 + languageName: node + linkType: hard + +"@firebase/analytics@npm:0.10.8": + version: 0.10.8 + resolution: "@firebase/analytics@npm:0.10.8" + dependencies: + "@firebase/component": "npm:0.6.9" + "@firebase/installations": "npm:0.6.9" + "@firebase/logger": "npm:0.4.2" + "@firebase/util": "npm:1.10.0" + tslib: "npm:^2.1.0" + peerDependencies: + "@firebase/app": 0.x + checksum: 10/152ddaf68146f02baa7060d34426c25ec13890a53942ffa2db09faa148bef35f59ee9810e6fb8f561fb3d115b71d1fb9fb111d2a0f0199aa510220782557c765 + languageName: node + linkType: hard + +"@firebase/app-check-compat@npm:0.3.15": + version: 0.3.15 + resolution: "@firebase/app-check-compat@npm:0.3.15" + dependencies: + "@firebase/app-check": "npm:0.8.8" + "@firebase/app-check-types": "npm:0.5.2" + "@firebase/component": "npm:0.6.9" + "@firebase/logger": "npm:0.4.2" "@firebase/util": "npm:1.10.0" tslib: "npm:^2.1.0" peerDependencies: @@ -3674,6 +4360,70 @@ __metadata: languageName: node linkType: hard +"@floating-ui/core@npm:^1.0.0, @floating-ui/core@npm:^1.6.0": + version: 1.6.8 + resolution: "@floating-ui/core@npm:1.6.8" + dependencies: + "@floating-ui/utils": "npm:^0.2.8" + checksum: 10/87d52989c3d2cc80373bc153b7a40814db3206ce7d0b2a2bdfb63e2ff39ffb8b999b1b0ccf28e548000ebf863bf16e2bed45eab4c4d287a5dbe974ef22368d82 + languageName: node + linkType: hard + +"@floating-ui/dom@npm:^1.0.0": + version: 1.6.12 + resolution: "@floating-ui/dom@npm:1.6.12" + dependencies: + "@floating-ui/core": "npm:^1.6.0" + "@floating-ui/utils": "npm:^0.2.8" + checksum: 10/5c8e5fdcd3843140a606ab6dc6c12ad740f44e66b898966ef877393faaede0bbe14586e1049e2c2f08856437da8847e884a2762e78275fefa65a5a9cd71e580d + languageName: node + linkType: hard + +"@floating-ui/react-dom@npm:^2.1.2": + version: 2.1.2 + resolution: "@floating-ui/react-dom@npm:2.1.2" + dependencies: + "@floating-ui/dom": "npm:^1.0.0" + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 10/2a67dc8499674e42ff32c7246bded185bb0fdd492150067caf9568569557ac4756a67787421d8604b0f241e5337de10762aee270d9aeef106d078a0ff13596c4 + languageName: node + linkType: hard + +"@floating-ui/react-native@npm:^0.10.6": + version: 0.10.7 + resolution: "@floating-ui/react-native@npm:0.10.7" + dependencies: + "@floating-ui/core": "npm:^1.0.0" + peerDependencies: + react: ">=16.8.0" + react-native: ">=0.64.0" + checksum: 10/98f665b8bea1b02f8b8f6488d699716cca8e870bf137ae5e25d287bd7b31bfc9bbc07cfdd3bafc227128d08985af8b4bf985b7a48859a88ef862ff62a4af915b + languageName: node + linkType: hard + +"@floating-ui/react@npm:^0.26.24": + version: 0.26.28 + resolution: "@floating-ui/react@npm:0.26.28" + dependencies: + "@floating-ui/react-dom": "npm:^2.1.2" + "@floating-ui/utils": "npm:^0.2.8" + tabbable: "npm:^6.0.0" + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 10/7f8e6b27db48b68ca94756687af21857be04e7360ac922d7c8e22411f2895df6384af7bd40f4b48663d3cc5809bb5c6574cd9c9ea15543ec747b9a8e1c8c3008 + languageName: node + linkType: hard + +"@floating-ui/utils@npm:^0.2.8": + version: 0.2.8 + resolution: "@floating-ui/utils@npm:0.2.8" + checksum: 10/3e3ea3b2de06badc4baebdf358b3dbd77ccd9474a257a6ef237277895943db2acbae756477ec64de65a2a1436d94aea3107129a1feeef6370675bf2b161c1abc + languageName: node + linkType: hard + "@formatjs/ecma402-abstract@npm:1.11.4": version: 1.11.4 resolution: "@formatjs/ecma402-abstract@npm:1.11.4" @@ -3752,6 +4502,40 @@ __metadata: languageName: node linkType: hard +"@gorhom/bottom-sheet@npm:^5.0.6": + version: 5.0.6 + resolution: "@gorhom/bottom-sheet@npm:5.0.6" + dependencies: + "@gorhom/portal": "npm:1.0.14" + invariant: "npm:^2.2.4" + peerDependencies: + "@types/react": "*" + "@types/react-native": "*" + react: "*" + react-native: "*" + react-native-gesture-handler: ">=2.16.1" + react-native-reanimated: ">=3.16.0" + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-native": + optional: true + checksum: 10/b8beb6bb4d80828deed5c74c8b19926cbb4887d530d07c19eaaa1d8faae6c79f942f83baad076c84d065f357f6666cbc257799fe8fc58cb375e6cbebf52b6227 + languageName: node + linkType: hard + +"@gorhom/portal@npm:1.0.14": + version: 1.0.14 + resolution: "@gorhom/portal@npm:1.0.14" + dependencies: + nanoid: "npm:^3.3.1" + peerDependencies: + react: "*" + react-native: "*" + checksum: 10/e0fa06be88b850cccdc6a1417a86e5ac21d82e3bfd1cec7eb05eccf7f3b595babe305541f278fdcbde34f3a9db465097dca2c785445c28bafb83b744e235da0c + languageName: node + linkType: hard + "@grpc/grpc-js@npm:~1.9.0": version: 1.9.15 resolution: "@grpc/grpc-js@npm:1.9.15" @@ -4054,6 +4838,13 @@ __metadata: languageName: node linkType: hard +"@isaacs/ttlcache@npm:^1.4.1": + version: 1.4.1 + resolution: "@isaacs/ttlcache@npm:1.4.1" + checksum: 10/57f2b00b58845d48a173c7668c58c27c3e6f91a56c17d6d4c58b38780a475a858ce3b4fc2cd4304469eee9f49818b79a187f0e13120b3617c4f67e4abc475698 + languageName: node + linkType: hard + "@istanbuljs/load-nyc-config@npm:^1.0.0": version: 1.1.0 resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" @@ -4129,6 +4920,15 @@ __metadata: languageName: node linkType: hard +"@jest/create-cache-key-function@npm:^29.2.1, @jest/create-cache-key-function@npm:^29.6.3": + version: 29.7.0 + resolution: "@jest/create-cache-key-function@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + checksum: 10/061ef63b13ec8c8e5d08e4456f03b5cf8c7f9c1cab4fed8402e1479153cafce6eea80420e308ef62027abb7e29b825fcfa06551856bd021d98e92e381bf91723 + languageName: node + linkType: hard + "@jest/environment@npm:^29.7.0": version: 29.7.0 resolution: "@jest/environment@npm:29.7.0" @@ -4174,7 +4974,7 @@ __metadata: languageName: node linkType: hard -"@jest/globals@npm:^29.7.0": +"@jest/globals@npm:^29.2.1, @jest/globals@npm:^29.7.0": version: 29.7.0 resolution: "@jest/globals@npm:29.7.0" dependencies: @@ -4304,6 +5104,17 @@ __metadata: languageName: node linkType: hard +"@jridgewell/gen-mapping@npm:^0.3.2": + version: 0.3.5 + resolution: "@jridgewell/gen-mapping@npm:0.3.5" + dependencies: + "@jridgewell/set-array": "npm:^1.2.1" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10/81587b3c4dd8e6c60252122937cea0c637486311f4ed208b52b62aae2e7a87598f63ec330e6cd0984af494bfb16d3f0d60d3b21d7e5b4aedd2602ff3fe9d32e2 + languageName: node + linkType: hard + "@jridgewell/gen-mapping@npm:^0.3.5": version: 0.3.8 resolution: "@jridgewell/gen-mapping@npm:0.3.8" @@ -4315,7 +5126,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:^3.1.0": +"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.2 resolution: "@jridgewell/resolve-uri@npm:3.1.2" checksum: 10/97106439d750a409c22c8bff822d648f6a71f3aa9bc8e5129efdc36343cd3096ddc4eeb1c62d2fe48e9bdd4db37b05d4646a17114ecebd3bbcacfa2de51c3c1d @@ -4346,6 +5157,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:0.3.9": + version: 0.3.9 + resolution: "@jridgewell/trace-mapping@npm:0.3.9" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.0.3" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + checksum: 10/83deafb8e7a5ca98993c2c6eeaa93c270f6f647a4c0dc00deb38c9cf9b2d3b7bf15e8839540155247ef034a052c0ec4466f980bf0c9e2ab63b97d16c0cedd3ff + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" @@ -4356,6 +5177,13 @@ __metadata: languageName: node linkType: hard +"@jsdevtools/ono@npm:^7.1.3": + version: 7.1.3 + resolution: "@jsdevtools/ono@npm:7.1.3" + checksum: 10/d4a036ccb9d2b21b7e4cec077c59a5a83fad58adacbce89e7e6b77a703050481ff5b6d813aef7f5ff0a8347a85a0eedf599e2e6bb5784a971a93e53e43b10157 + languageName: node + linkType: hard + "@ledgerhq/context-module@npm:^1.1.0": version: 1.1.0 resolution: "@ledgerhq/context-module@npm:1.1.0" @@ -4721,7 +5549,7 @@ __metadata: languageName: node linkType: hard -"@motionone/animation@npm:^10.15.1, @motionone/animation@npm:^10.18.0": +"@motionone/animation@npm:^10.12.0, @motionone/animation@npm:^10.15.1, @motionone/animation@npm:^10.18.0": version: 10.18.0 resolution: "@motionone/animation@npm:10.18.0" dependencies: @@ -4733,6 +5561,20 @@ __metadata: languageName: node linkType: hard +"@motionone/dom@npm:10.12.0": + version: 10.12.0 + resolution: "@motionone/dom@npm:10.12.0" + dependencies: + "@motionone/animation": "npm:^10.12.0" + "@motionone/generators": "npm:^10.12.0" + "@motionone/types": "npm:^10.12.0" + "@motionone/utils": "npm:^10.12.0" + hey-listen: "npm:^1.0.8" + tslib: "npm:^2.3.1" + checksum: 10/6fd7804b8adba5578d700fced12df6e7fca366aeda8837471286481ebfb5275facd3883448df84a2f772c32e7e3297fc696d3a19b110214f070f305b1ab21c67 + languageName: node + linkType: hard + "@motionone/dom@npm:^10.16.2, @motionone/dom@npm:^10.16.4": version: 10.18.0 resolution: "@motionone/dom@npm:10.18.0" @@ -4757,7 +5599,7 @@ __metadata: languageName: node linkType: hard -"@motionone/generators@npm:^10.18.0": +"@motionone/generators@npm:^10.12.0, @motionone/generators@npm:^10.18.0": version: 10.18.0 resolution: "@motionone/generators@npm:10.18.0" dependencies: @@ -4778,14 +5620,14 @@ __metadata: languageName: node linkType: hard -"@motionone/types@npm:^10.15.1, @motionone/types@npm:^10.17.1": +"@motionone/types@npm:^10.12.0, @motionone/types@npm:^10.15.1, @motionone/types@npm:^10.17.1": version: 10.17.1 resolution: "@motionone/types@npm:10.17.1" checksum: 10/21d92d733ba30f810b72609fe04f2ef86125ba0160b826974605cc4cc5fbb6ab7bbf1640cbc64fd6298eb8d36fb920ad3ca646c76adf0e2c47a4920200616952 languageName: node linkType: hard -"@motionone/utils@npm:^10.15.1, @motionone/utils@npm:^10.18.0": +"@motionone/utils@npm:^10.12.0, @motionone/utils@npm:^10.15.1, @motionone/utils@npm:^10.18.0": version: 10.18.0 resolution: "@motionone/utils@npm:10.18.0" dependencies: @@ -5239,6 +6081,15 @@ __metadata: languageName: node linkType: hard +"@npmcli/fs@npm:^3.1.0": + version: 3.1.1 + resolution: "@npmcli/fs@npm:3.1.1" + dependencies: + semver: "npm:^7.3.5" + checksum: 10/1e0e04087049b24b38bc0b30d87a9388ee3ca1d3fdfc347c2f77d84fcfe6a51f250bc57ba2c1f614d7e4285c6c62bf8c769bc19aa0949ea39e5b043ee023b0bd + languageName: node + linkType: hard + "@npmcli/fs@npm:^4.0.0": version: 4.0.0 resolution: "@npmcli/fs@npm:4.0.0" @@ -5575,2128 +6426,4638 @@ __metadata: languageName: node linkType: hard -"@reduxjs/toolkit@npm:^2.5.0": - version: 2.5.0 - resolution: "@reduxjs/toolkit@npm:2.5.0" +"@radix-ui/react-compose-refs@npm:1.0.0": + version: 1.0.0 + resolution: "@radix-ui/react-compose-refs@npm:1.0.0" dependencies: - immer: "npm:^10.0.3" - redux: "npm:^5.0.1" - redux-thunk: "npm:^3.1.0" - reselect: "npm:^5.1.0" + "@babel/runtime": "npm:^7.13.10" peerDependencies: - react: ^16.9.0 || ^17.0.0 || ^18 || ^19 - react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 - peerDependenciesMeta: - react: - optional: true - react-redux: - optional: true - checksum: 10/b24ee7e89bd00c5f3ee5df12cbc1b6395784ff215b9bf75d2c1b211d8494af220057ced666f49c6e815b723252bc3eb704f7be4a3c261ab06ee7b776f4565d4b + react: ^16.8 || ^17.0 || ^18.0 + checksum: 10/fb98be2e275a1a758ccac647780ff5b04be8dcf25dcea1592db3b691fecf719c4c0700126da605b2f512dd89caa111352b9fad59528d736b4e0e9a0e134a74a1 languageName: node linkType: hard -"@reown/walletkit@npm:^1.1.1": - version: 1.1.2 - resolution: "@reown/walletkit@npm:1.1.2" +"@radix-ui/react-slot@npm:1.0.1": + version: 1.0.1 + resolution: "@radix-ui/react-slot@npm:1.0.1" dependencies: - "@walletconnect/core": "npm:2.17.3" - "@walletconnect/jsonrpc-provider": "npm:1.0.14" - "@walletconnect/jsonrpc-utils": "npm:1.0.8" - "@walletconnect/logger": "npm:2.1.2" - "@walletconnect/sign-client": "npm:2.17.3" - "@walletconnect/types": "npm:2.17.3" - "@walletconnect/utils": "npm:2.17.3" - checksum: 10/0cc4bbca0dcdd2bdee8ee2e18a8c2231f3673c9b4ecb40e30f2f78f88ffe760a35b1cb02b18eafd0af10f0014b84d5272438b7e67964fcecc1e83d18fd913d80 + "@babel/runtime": "npm:^7.13.10" + "@radix-ui/react-compose-refs": "npm:1.0.0" + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + checksum: 10/b00fc6ec54a20785263540d9e4a0e3a13d9bc54d7af49b64f6a268eba4a6560c291bd95bbaa7cf7609fdf6fd0ebae54605bb01313de3fa180b06f2a321e9a3b4 languageName: node linkType: hard -"@rollup/plugin-babel@npm:^5.2.0": - version: 5.3.1 - resolution: "@rollup/plugin-babel@npm:5.3.1" +"@react-native-async-storage/async-storage@npm:1.23.1": + version: 1.23.1 + resolution: "@react-native-async-storage/async-storage@npm:1.23.1" dependencies: - "@babel/helper-module-imports": "npm:^7.10.4" - "@rollup/pluginutils": "npm:^3.1.0" + merge-options: "npm:^3.0.4" peerDependencies: - "@babel/core": ^7.0.0 - "@types/babel__core": ^7.1.9 - rollup: ^1.20.0||^2.0.0 - peerDependenciesMeta: - "@types/babel__core": - optional: true - checksum: 10/eb3ee5fedd86fa39ad70c2f8e05f14f8b185261b9f63699a01ac7eae664167f2e5cf87377434bf6aadad7eaf2b13c955ac26f8332a02f8d6a46b3c91990a9fbc + react-native: ^0.0.0-0 || >=0.60 <1.0 + checksum: 10/9d0acc7edb0ba9ee414d6e62c656e5d571c9d9615e7e9f4748865b965178998f2e73786b8050387ada00ddb6faaca97b5cf2e010ceaeebe91571991364a0f515 languageName: node linkType: hard -"@rollup/plugin-node-resolve@npm:^15.2.3": - version: 15.3.1 - resolution: "@rollup/plugin-node-resolve@npm:15.3.1" - dependencies: - "@rollup/pluginutils": "npm:^5.0.1" - "@types/resolve": "npm:1.20.2" - deepmerge: "npm:^4.2.2" - is-module: "npm:^1.0.0" - resolve: "npm:^1.22.1" +"@react-native-clipboard/clipboard@npm:^1.15.0": + version: 1.15.0 + resolution: "@react-native-clipboard/clipboard@npm:1.15.0" peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 + react: ">= 16.9.0" + react-native: ">= 0.61.5" + react-native-macos: ">= 0.61.0" + react-native-windows: ">= 0.61.0" peerDependenciesMeta: - rollup: + react-native-macos: optional: true - checksum: 10/874494c0daca8fb0d633a237dd9df0d30609b374326e57508710f2b6d7ddaa93d203d8daa0257960b2b6723f56dfec1177573126f31ff9604700303b6f5fdbe3 + react-native-windows: + optional: true + checksum: 10/bc33f39ac5c53de6af4a855d95b1791d387c83ef858ecb86decec5b4c92412a2b4f3b776384c1be15451959103703bcb1029601b31d21c820b6291b23ca32982 languageName: node linkType: hard -"@rollup/plugin-replace@npm:^2.4.1": - version: 2.4.2 - resolution: "@rollup/plugin-replace@npm:2.4.2" - dependencies: - "@rollup/pluginutils": "npm:^3.1.0" - magic-string: "npm:^0.25.7" +"@react-native-community/blur@npm:^4.4.1": + version: 4.4.1 + resolution: "@react-native-community/blur@npm:4.4.1" peerDependencies: - rollup: ^1.20.0 || ^2.0.0 - checksum: 10/fc4844c4cd7286013d4ccb51a7a2c86135024e3940797af1af1f24357622c8e874d9a17acfa4be9d2546542a87b68e158cc8d2c1f2a7926d17b9433eea00f6bf + react: "*" + react-native: "*" + checksum: 10/6fa84036db480af765df08d680955e9b5acaa631a54678b8eef970799fc04bdc7f906cb06a94f2da9af097c52ddb56ca4cff2172372d1d5f7717864f43965e0a languageName: node linkType: hard -"@rollup/plugin-terser@npm:^0.4.3": - version: 0.4.4 - resolution: "@rollup/plugin-terser@npm:0.4.4" +"@react-native-community/datetimepicker@npm:8.2.0": + version: 8.2.0 + resolution: "@react-native-community/datetimepicker@npm:8.2.0" dependencies: - serialize-javascript: "npm:^6.0.1" - smob: "npm:^1.0.0" - terser: "npm:^5.17.4" + invariant: "npm:^2.2.4" peerDependencies: - rollup: ^2.0.0||^3.0.0||^4.0.0 + expo: ">=50.0.0" + react: "*" + react-native: "*" + react-native-windows: "*" peerDependenciesMeta: - rollup: + expo: optional: true - checksum: 10/a5e066ddea55fc8c32188bc8b484cca619713516f10e3a06801881ec98bf37459ca24e5fe8711f93a5fa7f26a6e9132a47bc1a61c01e0b513dfd79a96cdc6eb7 + react-native-windows: + optional: true + checksum: 10/57b51a9423d3ba49029e2d9905db040f7091285c51578eef5273baf3dd2e22bde6d1a17962a8dc5e0ac588dccff0ab36c9774f9da76363fca458ec42d30c4d66 languageName: node linkType: hard -"@rollup/pluginutils@npm:^3.1.0": - version: 3.1.0 - resolution: "@rollup/pluginutils@npm:3.1.0" - dependencies: - "@types/estree": "npm:0.0.39" - estree-walker: "npm:^1.0.1" - picomatch: "npm:^2.2.2" - peerDependencies: - rollup: ^1.20.0||^2.0.0 - checksum: 10/3b69f02893eea42455fb97b81f612ac6bfadf94ac73bebd481ea13e90a693eef52c163210a095b12e574a25603af5e55f86a020889019167f331aa8dd3ff30e0 +"@react-native-community/slider@npm:4.5.5": + version: 4.5.5 + resolution: "@react-native-community/slider@npm:4.5.5" + checksum: 10/8c49f7e0b7d7c37b91c936805106e88ee31011dc210d5c237c07e35d330870536b560b48e6212195fffc2e2706b16c31715b6cebbb2cc33127702bff9850f134 languageName: node linkType: hard -"@rollup/pluginutils@npm:^5.0.1": - version: 5.1.4 - resolution: "@rollup/pluginutils@npm:5.1.4" - dependencies: - "@types/estree": "npm:^1.0.0" - estree-walker: "npm:^2.0.2" - picomatch: "npm:^4.0.2" +"@react-native-menu/menu@npm:^1.1.6": + version: 1.1.7 + resolution: "@react-native-menu/menu@npm:1.1.7" peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: 10/598f628988af25541a9a6c6ef154aaf350f8be3238884e500cc0e47138684071abe490563c953f9bda9e8b113ecb1f99c11abfb9dbaf4f72cdd62e257a673fa3 + react: "*" + react-native: "*" + checksum: 10/59571ef815cb395a4961e2e68883cc6bb8b3c35b3d5153f49b5f5b46b255035a07369baf7c54628fbf5c7ed71202dc20e9317a7df54dff09e9de533285c61c28 languageName: node linkType: hard -"@rtsao/scc@npm:^1.1.0": - version: 1.1.0 - resolution: "@rtsao/scc@npm:1.1.0" - checksum: 10/17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01 +"@react-native/assets-registry@npm:0.76.3": + version: 0.76.3 + resolution: "@react-native/assets-registry@npm:0.76.3" + checksum: 10/e56bf32d5900933474ff77b5441a285d6494fa8762eefcb3d3d1ffac85bade6464437142eb156f9c7214bff1a4107ff2054fe96d6e33f74b9b26001868706678 languageName: node linkType: hard -"@rushstack/eslint-patch@npm:^1.10.3": - version: 1.10.4 - resolution: "@rushstack/eslint-patch@npm:1.10.4" - checksum: 10/fa14a091cc800e1fac75c03112db03eaebbdc2de6e1532ed7702e106c3ce0cbf9b896794d885d455b225e9cc696a5e10c7bfb803d00774461d691e7a39915fc7 +"@react-native/babel-plugin-codegen@npm:0.76.3": + version: 0.76.3 + resolution: "@react-native/babel-plugin-codegen@npm:0.76.3" + dependencies: + "@react-native/codegen": "npm:0.76.3" + checksum: 10/7edff369085919470c60da81b86c589d67dd94fdceda44dcf28cd18d21be0bb77c66428796205b23c9c6e440ea15effd12596197235cef81a4e50252804dc1ec languageName: node linkType: hard -"@safe-global/api-kit@npm:^2.4.6": - version: 2.5.6 - resolution: "@safe-global/api-kit@npm:2.5.6" +"@react-native/babel-preset@npm:0.76.3, @react-native/babel-preset@npm:^0.76.2": + version: 0.76.3 + resolution: "@react-native/babel-preset@npm:0.76.3" dependencies: - "@safe-global/protocol-kit": "npm:^5.1.1" - "@safe-global/types-kit": "npm:^1.0.1" - node-fetch: "npm:^2.7.0" - viem: "npm:^2.21.8" - checksum: 10/3d80f288b03c3adb2479dc4e5052b233428ef468728c100385c3709ff6ac4987b841fae1c08123ba907b76bf83205c7483f53538a2221102d2ffe02165587395 + "@babel/core": "npm:^7.25.2" + "@babel/plugin-proposal-export-default-from": "npm:^7.24.7" + "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" + "@babel/plugin-syntax-export-default-from": "npm:^7.24.7" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + "@babel/plugin-transform-arrow-functions": "npm:^7.24.7" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.4" + "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" + "@babel/plugin-transform-block-scoping": "npm:^7.25.0" + "@babel/plugin-transform-class-properties": "npm:^7.25.4" + "@babel/plugin-transform-classes": "npm:^7.25.4" + "@babel/plugin-transform-computed-properties": "npm:^7.24.7" + "@babel/plugin-transform-destructuring": "npm:^7.24.8" + "@babel/plugin-transform-flow-strip-types": "npm:^7.25.2" + "@babel/plugin-transform-for-of": "npm:^7.24.7" + "@babel/plugin-transform-function-name": "npm:^7.25.1" + "@babel/plugin-transform-literals": "npm:^7.25.2" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" + "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7" + "@babel/plugin-transform-numeric-separator": "npm:^7.24.7" + "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7" + "@babel/plugin-transform-optional-chaining": "npm:^7.24.8" + "@babel/plugin-transform-parameters": "npm:^7.24.7" + "@babel/plugin-transform-private-methods": "npm:^7.24.7" + "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7" + "@babel/plugin-transform-react-display-name": "npm:^7.24.7" + "@babel/plugin-transform-react-jsx": "npm:^7.25.2" + "@babel/plugin-transform-react-jsx-self": "npm:^7.24.7" + "@babel/plugin-transform-react-jsx-source": "npm:^7.24.7" + "@babel/plugin-transform-regenerator": "npm:^7.24.7" + "@babel/plugin-transform-runtime": "npm:^7.24.7" + "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7" + "@babel/plugin-transform-spread": "npm:^7.24.7" + "@babel/plugin-transform-sticky-regex": "npm:^7.24.7" + "@babel/plugin-transform-typescript": "npm:^7.25.2" + "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" + "@babel/template": "npm:^7.25.0" + "@react-native/babel-plugin-codegen": "npm:0.76.3" + babel-plugin-syntax-hermes-parser: "npm:^0.25.1" + babel-plugin-transform-flow-enums: "npm:^0.0.2" + react-refresh: "npm:^0.14.0" + peerDependencies: + "@babel/core": "*" + checksum: 10/adbe03b9915430c5174769589a96999fa43f1db5ee6229b0e78780787f262d861d842e9376ece2d4215d299dbf81df814e3c23c548b83bf1fc0afd05296b2e11 languageName: node linkType: hard -"@safe-global/protocol-kit@npm:^4.1.3": - version: 4.1.3 - resolution: "@safe-global/protocol-kit@npm:4.1.3" +"@react-native/codegen@npm:0.76.3": + version: 0.76.3 + resolution: "@react-native/codegen@npm:0.76.3" dependencies: - "@noble/hashes": "npm:^1.3.3" - "@safe-global/safe-core-sdk-types": "npm:^5.1.0" - "@safe-global/safe-deployments": "npm:^1.37.22" - "@safe-global/safe-modules-deployments": "npm:^2.2.1" - abitype: "npm:^1.0.2" - ethereumjs-util: "npm:^7.1.5" - ethers: "npm:^6.13.1" - semver: "npm:^7.6.2" - checksum: 10/c6d45ad2814b6cfc9a0689d119deaaf093debd4a2bd896a34fa79d370fa11a3509f6ce49327f1c91b754f1e7a0974eb6caf972b796040476b85384732ee13710 + "@babel/parser": "npm:^7.25.3" + glob: "npm:^7.1.1" + hermes-parser: "npm:0.23.1" + invariant: "npm:^2.2.4" + jscodeshift: "npm:^0.14.0" + mkdirp: "npm:^0.5.1" + nullthrows: "npm:^1.1.1" + yargs: "npm:^17.6.2" + peerDependencies: + "@babel/preset-env": ^7.1.6 + checksum: 10/2bc81548059095acff0d775a4f6b101b3b559992aaca8dd979faf83177a2d2d4f8653efd970a3b6563a339649d5d0e3f856ad5980c30f99861c0f948e6b34942 languageName: node linkType: hard -"@safe-global/protocol-kit@npm:^5.1.1": - version: 5.1.1 - resolution: "@safe-global/protocol-kit@npm:5.1.1" +"@react-native/community-cli-plugin@npm:0.76.3": + version: 0.76.3 + resolution: "@react-native/community-cli-plugin@npm:0.76.3" dependencies: - "@noble/curves": "npm:^1.6.0" - "@peculiar/asn1-schema": "npm:^2.3.13" - "@safe-global/safe-deployments": "npm:^1.37.22" - "@safe-global/safe-modules-deployments": "npm:^2.2.4" - "@safe-global/types-kit": "npm:^1.0.1" - abitype: "npm:^1.0.2" - semver: "npm:^7.6.3" - viem: "npm:^2.21.8" - dependenciesMeta: - "@noble/curves": - optional: true - "@peculiar/asn1-schema": + "@react-native/dev-middleware": "npm:0.76.3" + "@react-native/metro-babel-transformer": "npm:0.76.3" + chalk: "npm:^4.0.0" + execa: "npm:^5.1.1" + invariant: "npm:^2.2.4" + metro: "npm:^0.81.0" + metro-config: "npm:^0.81.0" + metro-core: "npm:^0.81.0" + node-fetch: "npm:^2.2.0" + readline: "npm:^1.3.0" + semver: "npm:^7.1.3" + peerDependencies: + "@react-native-community/cli-server-api": "*" + peerDependenciesMeta: + "@react-native-community/cli-server-api": optional: true - checksum: 10/1cd58d9906e4d1102aaf27c51f0bdabaada08d7c8925c1baacacd2ec2622ca610280011e4a0569c28d84f86ad388e7137ba48abb700f9b9af3611d2ca31044da + checksum: 10/c415f26bdebb9c32230423879ca206a34343a644c307e4efc07d09a677b1394ef945b1b65d615c84913227cd03bf205315728c8cd9188e5cb51c5cb3b12b589d languageName: node linkType: hard -"@safe-global/safe-apps-sdk@npm:^9.1.0": - version: 9.1.0 - resolution: "@safe-global/safe-apps-sdk@npm:9.1.0" - dependencies: - "@safe-global/safe-gateway-typescript-sdk": "npm:^3.5.3" - viem: "npm:^2.1.1" - checksum: 10/b81e1a554509fc41f5b8ec3bcccaf477fd55824010774699dd2c00dee8431cfd351bf13893ff6acb1450028ce4de31a1316548a0e77a66d801ff9e0b4e08b9ff +"@react-native/debugger-frontend@npm:0.76.3": + version: 0.76.3 + resolution: "@react-native/debugger-frontend@npm:0.76.3" + checksum: 10/6a652a3c18fad1850ec369588e60c4503306ff307404028019d34b31789e9ccb63343d4e8c6b6263dd994f609579380e827e1f42daaacd770d3be636de1ef836 languageName: node linkType: hard -"@safe-global/safe-client-gateway-sdk@npm:v1.60.1": - version: 1.60.1 - resolution: "@safe-global/safe-client-gateway-sdk@npm:1.60.1" +"@react-native/dev-middleware@npm:0.76.3": + version: 0.76.3 + resolution: "@react-native/dev-middleware@npm:0.76.3" dependencies: - openapi-fetch: "npm:0.10.5" - checksum: 10/9899ca9f7590c5543036ae1fd4ac37dd146dba07c390131bb57a4ede645e670756ef4f7c13d607d8f81b161d43b788c1c302919e92321dd40812c493a7442654 + "@isaacs/ttlcache": "npm:^1.4.1" + "@react-native/debugger-frontend": "npm:0.76.3" + chrome-launcher: "npm:^0.15.2" + chromium-edge-launcher: "npm:^0.2.0" + connect: "npm:^3.6.5" + debug: "npm:^2.2.0" + nullthrows: "npm:^1.1.1" + open: "npm:^7.0.3" + selfsigned: "npm:^2.4.1" + serve-static: "npm:^1.13.1" + ws: "npm:^6.2.3" + checksum: 10/d104275f7276837b92cc230dfdeeb8406f834518516bac99c82e81e54487540407627b670705f9b7f8e8a3a506bf7ee86043b4c4b37d6ce970d58309d8f5d251 languageName: node linkType: hard -"@safe-global/safe-core-sdk-types@npm:^5.0.1, @safe-global/safe-core-sdk-types@npm:^5.1.0": - version: 5.1.0 - resolution: "@safe-global/safe-core-sdk-types@npm:5.1.0" - dependencies: - abitype: "npm:^1.0.2" - checksum: 10/2ad129abe2367084c75b906dfa06bc4c2b43413fc00048164168b9fd9336a4ea7494b624d61282963062a20e6c6fe45ac28cd9c16c8b787f26ce19f0d8d054e9 +"@react-native/gradle-plugin@npm:0.76.3": + version: 0.76.3 + resolution: "@react-native/gradle-plugin@npm:0.76.3" + checksum: 10/331263f289418b5416f298328d8ef7b1cf7cc4fcb13707d941f666414c4628d59b2fba988ec4dc38b3a9dbcd2e937053e2259aec7dbdcac890017914ea24516d languageName: node linkType: hard -"@safe-global/safe-deployments@npm:^1.37.22": - version: 1.37.22 - resolution: "@safe-global/safe-deployments@npm:1.37.22" +"@react-native/js-polyfills@npm:0.76.3": + version: 0.76.3 + resolution: "@react-native/js-polyfills@npm:0.76.3" + checksum: 10/6bf86f6003a26fcee796a5e6642eea0c8b8f49016d5fb8c39a5c13397b7c3c26cc0e3c96c9dc40ac8983148a252904ec6fa2201fcbe6c47819bde891d2db0a77 + languageName: node + linkType: hard + +"@react-native/metro-babel-transformer@npm:0.76.3": + version: 0.76.3 + resolution: "@react-native/metro-babel-transformer@npm:0.76.3" dependencies: - semver: "npm:^7.6.2" - checksum: 10/722553e71ed8bfc0a228ea0157badc6dde71ca31a2950ba77676464e281e0f5c220bf6e8e6865ffd3c67ee9520c192aafadb5f835f7d80c43e75418651d12d35 + "@babel/core": "npm:^7.25.2" + "@react-native/babel-preset": "npm:0.76.3" + hermes-parser: "npm:0.23.1" + nullthrows: "npm:^1.1.1" + peerDependencies: + "@babel/core": "*" + checksum: 10/00cc1092042a530665ceadae6315441de8efb41448f2011fdfa7f586c8787346ec90c68f740980b56b1271cea2436497d82b78f5f1551b8df83eab032d05b251 languageName: node linkType: hard -"@safe-global/safe-gateway-typescript-sdk@npm:3.22.6-beta.0": - version: 3.22.6-beta.0 - resolution: "@safe-global/safe-gateway-typescript-sdk@npm:3.22.6-beta.0" - checksum: 10/9a4d0a1ac5d4e82a7e53904f7a8b7d955624e910f3eb041e1c99d09673c71dd9f8252bd33d1708470b1ecf1c80feeeb3d6f33e72e68ee2f4ba248e7ebbd4e80d +"@react-native/normalize-color@npm:^2.1.0": + version: 2.1.0 + resolution: "@react-native/normalize-color@npm:2.1.0" + checksum: 10/a72b98538e6b7e265fb0669b8767d5f788777fb1a0ac1df7b0c82d8b3a804c8122aa7b819688c5e36fcf90b5ba93050b0070e29d3f0d70ab9530c2abd2bb9f9e languageName: node linkType: hard -"@safe-global/safe-gateway-typescript-sdk@npm:^3.5.3": - version: 3.22.4 - resolution: "@safe-global/safe-gateway-typescript-sdk@npm:3.22.4" - checksum: 10/5b088499a01a0d0190b4ab6828bfb2df779b603bbcee7645c23ad8e420670aab4ce7ca39b858fc62ee03fded77b322c3f8a9b0203f41ecb779d08f47bd4bfe0c +"@react-native/normalize-colors@npm:0.76.3": + version: 0.76.3 + resolution: "@react-native/normalize-colors@npm:0.76.3" + checksum: 10/5675856bba8184f2049249cc217dc417857408fba6c4043d8ad2c941a33eba00af2574fa9e884c1f8073c99bd945308a310bbf89f63e67f17f4e6c11fdebf4fa languageName: node linkType: hard -"@safe-global/safe-modules-deployments@npm:^2.2.1, @safe-global/safe-modules-deployments@npm:^2.2.4": - version: 2.2.4 - resolution: "@safe-global/safe-modules-deployments@npm:2.2.4" - checksum: 10/594a86c3c8b9b4b39379dfcc360cf81fce5bda633738f0455ce208447e0bbd01133ddb5934486e714d8115da8b5f38a1b7d2fa0fef2a04d57eb81362ef02ce6d +"@react-native/normalize-colors@npm:^0.74.1": + version: 0.74.88 + resolution: "@react-native/normalize-colors@npm:0.74.88" + checksum: 10/997f3c4f50832a34b0624dfcfc4b8c33ce84462e62d4abc4bee8cd71aea9ed1f378a28f792408813bfb26fd903800595930d643721014b684a309ac814edacfa languageName: node linkType: hard -"@safe-global/safe-wallet@workspace:.": - version: 0.0.0-use.local - resolution: "@safe-global/safe-wallet@workspace:." +"@react-native/virtualized-lists@npm:0.76.3": + version: 0.76.3 + resolution: "@react-native/virtualized-lists@npm:0.76.3" dependencies: - husky: "npm:^9.1.6" - lint-staged: "npm:^15.2.10" - languageName: unknown - linkType: soft + invariant: "npm:^2.2.4" + nullthrows: "npm:^1.1.1" + peerDependencies: + "@types/react": ^18.2.6 + react: "*" + react-native: "*" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/e3a43d669ff00379f93a03c8de4fddc88c0eafd30b1da9927c9613208e8b04bb1a41d1c955c29a2a7a0390ec318bc14aca6364541c9e29e0f803cedc8c0d2542 + languageName: node + linkType: hard -"@safe-global/types-kit@npm:^1.0.1": - version: 1.0.1 - resolution: "@safe-global/types-kit@npm:1.0.1" +"@react-navigation/bottom-tabs@npm:^7.0.0": + version: 7.1.3 + resolution: "@react-navigation/bottom-tabs@npm:7.1.3" dependencies: - abitype: "npm:^1.0.2" - checksum: 10/2b740301a7aa8280f34ba1e7c74f7e9993e60a38b7a303ee65496f0116beff691690c957adc2d49667cc112f44c63141da2ae010c0ef39cb33ad0693a1d39512 + "@react-navigation/elements": "npm:^2.2.4" + color: "npm:^4.2.3" + peerDependencies: + "@react-navigation/native": ^7.0.13 + react: ">= 18.2.0" + react-native: "*" + react-native-safe-area-context: ">= 4.0.0" + react-native-screens: ">= 4.0.0" + checksum: 10/90fc28e02ce49249070f539b9b90ca50cdf596f02f1c6d14a8c19572b5a820cd809b3db658908568f54aaebf08efda21c401bd9369e90a4402821a7fb67d5b25 languageName: node linkType: hard -"@safe-global/web@workspace:apps/web": - version: 0.0.0-use.local - resolution: "@safe-global/web@workspace:apps/web" +"@react-navigation/core@npm:^7.3.0": + version: 7.3.0 + resolution: "@react-navigation/core@npm:7.3.0" dependencies: - "@chromatic-com/storybook": "npm:^1.3.1" - "@cowprotocol/app-data": "npm:^2.4.0" - "@cowprotocol/widget-react": "npm:^0.10.0" - "@ducanh2912/next-pwa": "npm:^10.2.9" - "@emotion/cache": "npm:^11.13.5" - "@emotion/react": "npm:^11.13.5" - "@emotion/server": "npm:^11.11.0" - "@emotion/styled": "npm:^11.13.5" - "@eslint/eslintrc": "npm:^3.1.0" - "@eslint/js": "npm:^9.14.0" - "@faker-js/faker": "npm:^9.0.3" - "@gnosis.pm/zodiac": "npm:^4.0.3" - "@ledgerhq/context-module": "npm:^1.1.0" - "@ledgerhq/device-management-kit": "npm:^0.5.1" - "@ledgerhq/device-signer-kit-ethereum": "npm:^1.1.0" - "@mdx-js/loader": "npm:^3.0.1" - "@mdx-js/react": "npm:^3.0.1" - "@mui/icons-material": "npm:^6.1.6" - "@mui/material": "npm:^6.1.6" - "@mui/x-date-pickers": "npm:^7.22.1" - "@next/bundle-analyzer": "npm:^15.0.4" - "@next/mdx": "npm:^15.0.4" - "@openzeppelin/contracts": "npm:^4.9.6" - "@reduxjs/toolkit": "npm:^2.5.0" - "@reown/walletkit": "npm:^1.1.1" - "@safe-global/api-kit": "npm:^2.4.6" - "@safe-global/protocol-kit": "npm:^4.1.3" - "@safe-global/safe-apps-sdk": "npm:^9.1.0" - "@safe-global/safe-client-gateway-sdk": "npm:v1.60.1" - "@safe-global/safe-core-sdk-types": "npm:^5.0.1" - "@safe-global/safe-gateway-typescript-sdk": "npm:3.22.6-beta.0" - "@safe-global/safe-modules-deployments": "npm:^2.2.1" - "@sentry/react": "npm:^7.91.0" - "@sentry/types": "npm:^7.74.0" - "@spindl-xyz/attribution-lite": "npm:^1.4.0" - "@storybook/addon-designs": "npm:^8.0.3" - "@storybook/addon-essentials": "npm:^8.0.6" - "@storybook/addon-interactions": "npm:^8.0.6" - "@storybook/addon-links": "npm:^8.3.4" - "@storybook/addon-onboarding": "npm:^8.0.6" - "@storybook/addon-themes": "npm:^8.0.6" - "@storybook/blocks": "npm:^8.0.6" - "@storybook/nextjs": "npm:^8.0.6" - "@storybook/react": "npm:^8.0.6" - "@storybook/test": "npm:^8.0.6" - "@svgr/webpack": "npm:^8.1.0" - "@testing-library/cypress": "npm:^10.0.2" - "@testing-library/jest-dom": "npm:^6.6.3" - "@testing-library/react": "npm:^16.1.0" - "@testing-library/user-event": "npm:^14.5.2" - "@typechain/ethers-v6": "npm:^0.5.1" - "@types/jest": "npm:^29.5.4" - "@types/js-cookie": "npm:^3.0.6" - "@types/lodash": "npm:^4.14.182" - "@types/mdx": "npm:^2.0.13" - "@types/node": "npm:18.11.18" - "@types/qrcode": "npm:^1.5.5" - "@types/react": "npm:^19.0.0" - "@types/react-dom": "npm:^19.0.0" - "@types/react-gtm-module": "npm:^2.0.3" - "@types/semver": "npm:^7.3.10" - "@typescript-eslint/eslint-plugin": "npm:^7.6.0" - "@walletconnect/core": "npm:^2.17.2" - "@walletconnect/utils": "npm:^2.17.3" - "@web3-onboard/coinbase": "npm:^2.4.1" - "@web3-onboard/core": "npm:2.21.4" - "@web3-onboard/injected-wallets": "npm:^2.11.2" - "@web3-onboard/ledger": "npm:2.3.2" - "@web3-onboard/trezor": "npm:2.4.3" - "@web3-onboard/walletconnect": "npm:^2.6.1" - blo: "npm:^1.1.1" - classnames: "npm:^2.5.1" - cross-env: "npm:^7.0.3" - cypress: "npm:^13.15.2" - cypress-file-upload: "npm:^5.0.8" - cypress-visual-regression: "npm:^5.2.2" - date-fns: "npm:^2.30.0" - eslint: "npm:^9.14.0" - eslint-config-next: "npm:^15.0.4" - eslint-config-prettier: "npm:^9.1.0" - eslint-plugin-no-only-tests: "npm:^3.3.0" - eslint-plugin-prettier: "npm:^5.2.1" - eslint-plugin-storybook: "npm:^0.11.0" - eslint-plugin-unused-imports: "npm:^4.1.4" - ethers: "npm:^6.13.4" - exponential-backoff: "npm:^3.1.0" - fake-indexeddb: "npm:^4.0.2" - firebase: "npm:^10.3.1" - fuse.js: "npm:^7.0.0" - gray-matter: "npm:^4.0.3" - husky: "npm:^9.0.11" - idb-keyval: "npm:^6.2.1" - jest: "npm:^29.6.2" - jest-environment-jsdom: "npm:^29.6.2" - js-cookie: "npm:^3.0.1" + "@react-navigation/routers": "npm:^7.1.1" + escape-string-regexp: "npm:^4.0.0" + nanoid: "npm:3.3.7" + query-string: "npm:^7.1.3" + react-is: "npm:^18.2.0" + use-latest-callback: "npm:^0.2.1" + use-sync-external-store: "npm:^1.2.2" + peerDependencies: + react: ">= 18.2.0" + checksum: 10/e7aea4e0b61d00759811ed7edbb502e39c3acac362783daf3aef80e344ea7d8152d1f2c964486833d20d4eec4b847dfe3cbe199ec0dd6439e2915b393b21a0c0 + languageName: node + linkType: hard + +"@react-navigation/elements@npm:^2.2.4": + version: 2.2.4 + resolution: "@react-navigation/elements@npm:2.2.4" + dependencies: + color: "npm:^4.2.3" + peerDependencies: + "@react-native-masked-view/masked-view": ">= 0.2.0" + "@react-navigation/native": ^7.0.13 + react: ">= 18.2.0" + react-native: "*" + react-native-safe-area-context: ">= 4.0.0" + peerDependenciesMeta: + "@react-native-masked-view/masked-view": + optional: true + checksum: 10/bb065f81ade79b8bdc1c167d690267bb5b9ff4ac14ed55482a147b460376c1227f9a969d75752e3b1be726505e210586c9c102c8f61b2b17f6582cc4109c3a3c + languageName: node + linkType: hard + +"@react-navigation/material-top-tabs@npm:^7.0.1": + version: 7.0.18 + resolution: "@react-navigation/material-top-tabs@npm:7.0.18" + dependencies: + "@react-navigation/elements": "npm:^2.2.4" + color: "npm:^4.2.3" + react-native-tab-view: "npm:^4.0.5" + peerDependencies: + "@react-navigation/native": ^7.0.13 + react: ">= 18.2.0" + react-native: "*" + react-native-pager-view: ">= 6.0.0" + checksum: 10/fd5f07a28dded4fe0e75df0039f59c6369121c65ebb26cc2c9e95807a9caff1613c7fa26e11d1d78afbd67095987a12151ac0e3e24688f6128daf3c31d342943 + languageName: node + linkType: hard + +"@react-navigation/native-stack@npm:^7.0.0": + version: 7.1.14 + resolution: "@react-navigation/native-stack@npm:7.1.14" + dependencies: + "@react-navigation/elements": "npm:^2.2.4" + warn-once: "npm:^0.1.1" + peerDependencies: + "@react-navigation/native": ^7.0.13 + react: ">= 18.2.0" + react-native: "*" + react-native-safe-area-context: ">= 4.0.0" + react-native-screens: ">= 4.0.0" + checksum: 10/550f93c4a85317f0dcc6b40d7b7833bc87a23056853d77deef2a07746f197f76fb423dc3fd892447e06f03b55657db9337c81c7975bd0b414b7a8fe960f6b295 + languageName: node + linkType: hard + +"@react-navigation/native@npm:^7.0.0": + version: 7.0.13 + resolution: "@react-navigation/native@npm:7.0.13" + dependencies: + "@react-navigation/core": "npm:^7.3.0" + escape-string-regexp: "npm:^4.0.0" + fast-deep-equal: "npm:^3.1.3" + nanoid: "npm:3.3.7" + use-latest-callback: "npm:^0.2.1" + peerDependencies: + react: ">= 18.2.0" + react-native: "*" + checksum: 10/580823213108088c54b0df1b1f16e64ef8b4e6f89d5fc7b45d784d5d6374d0f11cd5ad43d1c37cbf0506a195825656776270e98472a5c34ce67b8b8309915312 + languageName: node + linkType: hard + +"@react-navigation/routers@npm:^7.1.1": + version: 7.1.1 + resolution: "@react-navigation/routers@npm:7.1.1" + dependencies: + nanoid: "npm:3.3.7" + checksum: 10/6c3487b98148b45817c6aed1823cb2d72c5d5beab95db21cbf10a7bdb673fd5c0015a6b781616bcf22ededc2911a92af064529a78fcb0aabdb26ef802e825d9a + languageName: node + linkType: hard + +"@redux-devtools/core@npm:^4.0.0": + version: 4.0.0 + resolution: "@redux-devtools/core@npm:4.0.0" + dependencies: + "@babel/runtime": "npm:^7.23.5" + "@redux-devtools/instrument": "npm:^2.2.0" lodash: "npm:^4.17.21" - mockdate: "npm:^3.0.5" - next: "npm:^15.1.0" - papaparse: "npm:^5.3.2" - prettier: "npm:^3.3.3" - qrcode.react: "npm:^3.1.0" - react: "npm:^19.0.0" - react-dom: "npm:^19.0.0" - react-dropzone: "npm:^14.2.3" - react-gtm-module: "npm:^2.0.11" - react-hook-form: "npm:7.41.1" - react-papaparse: "npm:^4.0.2" - react-redux: "npm:^9.1.2" - remark-frontmatter: "npm:^5.0.0" - remark-gfm: "npm:^4.0.0" - remark-heading-id: "npm:^1.0.1" - remark-mdx-frontmatter: "npm:^5.0.0" - semver: "npm:^7.6.3" - storybook: "npm:^8.3.4" - ts-prune: "npm:^0.10.3" - typechain: "npm:^8.3.2" - typescript: "npm:^5.4.5" - typescript-plugin-css-modules: "npm:^4.2.2" - webpack: "npm:^5.97.1" - zodiac-roles-deployments: "npm:^2.3.4" - languageName: unknown - linkType: soft + peerDependencies: + react: ^16.8.4 || ^17.0.0 || ^18.0.0 + react-redux: ^7.0.0 || ^8.0.0 || ^9.0.0 + redux: ^3.5.2 || ^4.0.0 || ^5.0.0 + checksum: 10/4206c1cff3dafe2b16843f396f939f4ffb4d92714f4bb3ea3a2f1860add919d0b40757ffd43e59cc8b7c0d9c5427e8fe9247a6a3c6c3c67dda419b5d6320de6e + languageName: node + linkType: hard -"@scure/base@npm:~1.1.0, @scure/base@npm:~1.1.2, @scure/base@npm:~1.1.6": - version: 1.1.9 - resolution: "@scure/base@npm:1.1.9" - checksum: 10/f0ab7f687bbcdee2a01377fe3cd808bf63977999672751295b6a92625d5322f4754a96d40f6bd579bc367aad48ecf8a4e6d0390e70296e6ded1076f52adb16bb +"@redux-devtools/instrument@npm:^2.2.0": + version: 2.2.0 + resolution: "@redux-devtools/instrument@npm:2.2.0" + dependencies: + "@babel/runtime": "npm:^7.23.2" + lodash: "npm:^4.17.21" + peerDependencies: + redux: ^3.4.0 || ^4.0.0 || ^5.0.0 + checksum: 10/6c0d977c5a86cf5c54a666f87266f7f0387ae8cfa7ef760b39da8a66fe6592b3b32d013cfe7cd7de52a5b68bd93b38441bc4e85e8a9b4228b246924ec92ae1af languageName: node linkType: hard -"@scure/base@npm:~1.2.1": - version: 1.2.1 - resolution: "@scure/base@npm:1.2.1" - checksum: 10/f7bdd17618ccae7a74c8cbe410a235e4adbe54aa8afe4e2fb1294338aa92f6fd04b1f1f5dea60552f638b5f5e3e74902b7baf59d3954e5e42c0a36c6baa2ebe0 +"@redux-devtools/serialize@npm:^0.4.2": + version: 0.4.2 + resolution: "@redux-devtools/serialize@npm:0.4.2" + dependencies: + "@babel/runtime": "npm:^7.23.2" + jsan: "npm:^3.1.14" + peerDependencies: + immutable: ^4.0.0 + checksum: 10/c0ef1d04aa906e98a4768190bb3073d09db98444ba8d10549ed80740677d8c4da5b66e40366924b999ea3cb8d401ae5eb9ee7923057624b536e854e5cdbc8e49 languageName: node linkType: hard -"@scure/bip32@npm:1.3.2": - version: 1.3.2 - resolution: "@scure/bip32@npm:1.3.2" +"@redux-devtools/utils@npm:^3.0.0": + version: 3.0.1 + resolution: "@redux-devtools/utils@npm:3.0.1" dependencies: - "@noble/curves": "npm:~1.2.0" - "@noble/hashes": "npm:~1.3.2" - "@scure/base": "npm:~1.1.2" - checksum: 10/b90da28dfe75519496a85c97e77c9443734873910f32b8557762910a5c4e642290a462b0ed14fa42e0efed6acb9a7f6155ad5cb5d38d4ff87eb2de4760eb32a4 + "@babel/runtime": "npm:^7.25.7" + "@redux-devtools/core": "npm:^4.0.0" + "@redux-devtools/serialize": "npm:^0.4.2" + "@types/get-params": "npm:^0.1.2" + get-params: "npm:^0.1.2" + immutable: "npm:^4.3.7" + jsan: "npm:^3.1.14" + nanoid: "npm:^5.0.7" + redux: "npm:^5.0.1" + peerDependencies: + "@redux-devtools/core": ^4.0.0 + immutable: ^4.3.7 + redux: ^4.0.0 || ^5.0.0 + checksum: 10/9e7e49571dc18b326db3328e889e215bb7a7492d33e1b5f44cf62b94b46b6c734b6c7e9a8e96dd8ae917fff9124159ab21977d1287a0d1964eff7cb387ccf00d languageName: node linkType: hard -"@scure/bip32@npm:1.4.0": - version: 1.4.0 - resolution: "@scure/bip32@npm:1.4.0" +"@reduxjs/toolkit@npm:^2.4.0": + version: 2.4.0 + resolution: "@reduxjs/toolkit@npm:2.4.0" dependencies: - "@noble/curves": "npm:~1.4.0" - "@noble/hashes": "npm:~1.4.0" - "@scure/base": "npm:~1.1.6" - checksum: 10/6cd5062d902564d9e970597ec8b1adacb415b2eadfbb95aee1a1a0480a52eb0de4d294d3753aa8b48548064c9795ed108d348a31a8ce3fc88785377bb12c63b9 + immer: "npm:^10.0.3" + redux: "npm:^5.0.1" + redux-thunk: "npm:^3.1.0" + reselect: "npm:^5.1.0" + peerDependencies: + react: ^16.9.0 || ^17.0.0 || ^18 + react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 + peerDependenciesMeta: + react: + optional: true + react-redux: + optional: true + checksum: 10/1ae3a8c8f295326d913fd59ff34ccb9dd082612582313bcdfc3519e3ebcff63f2365a3fc9d647f48fd2852b72e603512f3f6c36d54916f9ddb85422098ec3fa9 languageName: node linkType: hard -"@scure/bip32@npm:1.6.0, @scure/bip32@npm:^1.5.0": - version: 1.6.0 - resolution: "@scure/bip32@npm:1.6.0" +"@reduxjs/toolkit@npm:^2.5.0": + version: 2.5.0 + resolution: "@reduxjs/toolkit@npm:2.5.0" dependencies: - "@noble/curves": "npm:~1.7.0" - "@noble/hashes": "npm:~1.6.0" - "@scure/base": "npm:~1.2.1" - checksum: 10/2efb81ed9a7b8d5d35233e10abebc114544a3783a2a32b9fb60e1e9a67965b272c9d17910e1649083b69c8ceb80241b05b59dbeb7a5b18ea34e497aed3f16709 + immer: "npm:^10.0.3" + redux: "npm:^5.0.1" + redux-thunk: "npm:^3.1.0" + reselect: "npm:^5.1.0" + peerDependencies: + react: ^16.9.0 || ^17.0.0 || ^18 || ^19 + react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 + peerDependenciesMeta: + react: + optional: true + react-redux: + optional: true + checksum: 10/b24ee7e89bd00c5f3ee5df12cbc1b6395784ff215b9bf75d2c1b211d8494af220057ced666f49c6e815b723252bc3eb704f7be4a3c261ab06ee7b776f4565d4b languageName: node linkType: hard -"@scure/bip39@npm:1.2.1": - version: 1.2.1 - resolution: "@scure/bip39@npm:1.2.1" +"@remix-run/node@npm:^2.12.0": + version: 2.15.0 + resolution: "@remix-run/node@npm:2.15.0" dependencies: - "@noble/hashes": "npm:~1.3.0" - "@scure/base": "npm:~1.1.0" - checksum: 10/2ea368bbed34d6b1701c20683bf465e147f231a9e37e639b8c82f585d6f978bb0f3855fca7ceff04954ae248b3e313f5d322d0210614fb7acb402739415aaf31 + "@remix-run/server-runtime": "npm:2.15.0" + "@remix-run/web-fetch": "npm:^4.4.2" + "@web3-storage/multipart-parser": "npm:^1.0.0" + cookie-signature: "npm:^1.1.0" + source-map-support: "npm:^0.5.21" + stream-slice: "npm:^0.1.2" + undici: "npm:^6.11.1" + peerDependencies: + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/aa7b087e33e10b66d0737ea6de51cc51de595a596dd982fef4059a68d21cc47ab60582bb7c786bd25e43dd4354df681df4caa9c99009e77d6dd9a650ecf6d3ea languageName: node linkType: hard -"@scure/bip39@npm:1.3.0": - version: 1.3.0 - resolution: "@scure/bip39@npm:1.3.0" +"@remix-run/router@npm:1.21.0": + version: 1.21.0 + resolution: "@remix-run/router@npm:1.21.0" + checksum: 10/cf0fb69d19c1b79095ff67c59cea89086f3982a9a54c8a993818a60fc76e0ebab5a8db647c1a96a662729fad8e806ddd0a96622adf473f5a9f0b99998b2dbad4 + languageName: node + linkType: hard + +"@remix-run/server-runtime@npm:2.15.0": + version: 2.15.0 + resolution: "@remix-run/server-runtime@npm:2.15.0" dependencies: - "@noble/hashes": "npm:~1.4.0" - "@scure/base": "npm:~1.1.6" - checksum: 10/7d71fd58153de22fe8cd65b525f6958a80487bc9d0fbc32c71c328aeafe41fa259f989d2f1e0fa4fdfeaf83b8fcf9310d52ed9862987e46c2f2bfb9dd8cf9fc1 + "@remix-run/router": "npm:1.21.0" + "@types/cookie": "npm:^0.6.0" + "@web3-storage/multipart-parser": "npm:^1.0.0" + cookie: "npm:^0.6.0" + set-cookie-parser: "npm:^2.4.8" + source-map: "npm:^0.7.3" + turbo-stream: "npm:2.4.0" + peerDependencies: + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/df2718b9e592b47e2f8c13f818126ffb00bd7a0a87186db640864c741ad68b65c255b54438a7eae9d346cf7569a6e4eda75c8c1f187b969975a0cd152556db02 + languageName: node + linkType: hard + +"@remix-run/web-blob@npm:^3.1.0": + version: 3.1.0 + resolution: "@remix-run/web-blob@npm:3.1.0" + dependencies: + "@remix-run/web-stream": "npm:^1.1.0" + web-encoding: "npm:1.1.5" + checksum: 10/24b95b90e2a5bfb17478c9e88a03c8de8db2cc6cbe744ee845cd8bfc278744f3d0a6f782f63b3361eef59488f544b60172fb98c628f113c936f597b303bc58f3 + languageName: node + linkType: hard + +"@remix-run/web-fetch@npm:^4.4.2": + version: 4.4.2 + resolution: "@remix-run/web-fetch@npm:4.4.2" + dependencies: + "@remix-run/web-blob": "npm:^3.1.0" + "@remix-run/web-file": "npm:^3.1.0" + "@remix-run/web-form-data": "npm:^3.1.0" + "@remix-run/web-stream": "npm:^1.1.0" + "@web3-storage/multipart-parser": "npm:^1.0.0" + abort-controller: "npm:^3.0.0" + data-uri-to-buffer: "npm:^3.0.1" + mrmime: "npm:^1.0.0" + checksum: 10/46961dae587d1d9eb1c678113cf8fcbe0e5779b3fdedd8b136c7065b47e967056d1508924992a58887b03ab406c44c838bca5d0f7d08a4bbaab9609178c3fe4b + languageName: node + linkType: hard + +"@remix-run/web-file@npm:^3.1.0": + version: 3.1.0 + resolution: "@remix-run/web-file@npm:3.1.0" + dependencies: + "@remix-run/web-blob": "npm:^3.1.0" + checksum: 10/c5ce184fc8e3a8d5736798c9fa784a3416890382be707da927926d173e67227dc60ae2494be680bf0074a00fac5a9a737387ce820349fb2fecdc31be034854a0 + languageName: node + linkType: hard + +"@remix-run/web-form-data@npm:^3.1.0": + version: 3.1.0 + resolution: "@remix-run/web-form-data@npm:3.1.0" + dependencies: + web-encoding: "npm:1.1.5" + checksum: 10/4eaa98da8f8827d2fd6e676920c6352679b35e0fd11f83d99f8a1ee009e8e51a0c710e8d228cd481ad00a81b3afe53a1db97321f3c6c16e14a3d67858e238a91 + languageName: node + linkType: hard + +"@remix-run/web-stream@npm:^1.1.0": + version: 1.1.0 + resolution: "@remix-run/web-stream@npm:1.1.0" + dependencies: + web-streams-polyfill: "npm:^3.1.1" + checksum: 10/9904b1539feee3a86d667e9803783dfc78e21b665a4e67edfd795bd1acee753fda88f50abbebf7cffa010539ed5287b4a0d09f55101b80f2c891c15db1066eea + languageName: node + linkType: hard + +"@reown/walletkit@npm:^1.1.1": + version: 1.1.2 + resolution: "@reown/walletkit@npm:1.1.2" + dependencies: + "@walletconnect/core": "npm:2.17.3" + "@walletconnect/jsonrpc-provider": "npm:1.0.14" + "@walletconnect/jsonrpc-utils": "npm:1.0.8" + "@walletconnect/logger": "npm:2.1.2" + "@walletconnect/sign-client": "npm:2.17.3" + "@walletconnect/types": "npm:2.17.3" + "@walletconnect/utils": "npm:2.17.3" + checksum: 10/0cc4bbca0dcdd2bdee8ee2e18a8c2231f3673c9b4ecb40e30f2f78f88ffe760a35b1cb02b18eafd0af10f0014b84d5272438b7e67964fcecc1e83d18fd913d80 + languageName: node + linkType: hard + +"@rollup/plugin-babel@npm:^5.2.0": + version: 5.3.1 + resolution: "@rollup/plugin-babel@npm:5.3.1" + dependencies: + "@babel/helper-module-imports": "npm:^7.10.4" + "@rollup/pluginutils": "npm:^3.1.0" + peerDependencies: + "@babel/core": ^7.0.0 + "@types/babel__core": ^7.1.9 + rollup: ^1.20.0||^2.0.0 + peerDependenciesMeta: + "@types/babel__core": + optional: true + checksum: 10/eb3ee5fedd86fa39ad70c2f8e05f14f8b185261b9f63699a01ac7eae664167f2e5cf87377434bf6aadad7eaf2b13c955ac26f8332a02f8d6a46b3c91990a9fbc + languageName: node + linkType: hard + +"@rollup/plugin-node-resolve@npm:^15.2.3": + version: 15.3.1 + resolution: "@rollup/plugin-node-resolve@npm:15.3.1" + dependencies: + "@rollup/pluginutils": "npm:^5.0.1" + "@types/resolve": "npm:1.20.2" + deepmerge: "npm:^4.2.2" + is-module: "npm:^1.0.0" + resolve: "npm:^1.22.1" + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/874494c0daca8fb0d633a237dd9df0d30609b374326e57508710f2b6d7ddaa93d203d8daa0257960b2b6723f56dfec1177573126f31ff9604700303b6f5fdbe3 + languageName: node + linkType: hard + +"@rollup/plugin-replace@npm:^2.4.1": + version: 2.4.2 + resolution: "@rollup/plugin-replace@npm:2.4.2" + dependencies: + "@rollup/pluginutils": "npm:^3.1.0" + magic-string: "npm:^0.25.7" + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + checksum: 10/fc4844c4cd7286013d4ccb51a7a2c86135024e3940797af1af1f24357622c8e874d9a17acfa4be9d2546542a87b68e158cc8d2c1f2a7926d17b9433eea00f6bf + languageName: node + linkType: hard + +"@rollup/plugin-terser@npm:^0.4.3": + version: 0.4.4 + resolution: "@rollup/plugin-terser@npm:0.4.4" + dependencies: + serialize-javascript: "npm:^6.0.1" + smob: "npm:^1.0.0" + terser: "npm:^5.17.4" + peerDependencies: + rollup: ^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/a5e066ddea55fc8c32188bc8b484cca619713516f10e3a06801881ec98bf37459ca24e5fe8711f93a5fa7f26a6e9132a47bc1a61c01e0b513dfd79a96cdc6eb7 + languageName: node + linkType: hard + +"@rollup/pluginutils@npm:^3.1.0": + version: 3.1.0 + resolution: "@rollup/pluginutils@npm:3.1.0" + dependencies: + "@types/estree": "npm:0.0.39" + estree-walker: "npm:^1.0.1" + picomatch: "npm:^2.2.2" + peerDependencies: + rollup: ^1.20.0||^2.0.0 + checksum: 10/3b69f02893eea42455fb97b81f612ac6bfadf94ac73bebd481ea13e90a693eef52c163210a095b12e574a25603af5e55f86a020889019167f331aa8dd3ff30e0 + languageName: node + linkType: hard + +"@rollup/pluginutils@npm:^5.0.1": + version: 5.1.4 + resolution: "@rollup/pluginutils@npm:5.1.4" + dependencies: + "@types/estree": "npm:^1.0.0" + estree-walker: "npm:^2.0.2" + picomatch: "npm:^4.0.2" + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/598f628988af25541a9a6c6ef154aaf350f8be3238884e500cc0e47138684071abe490563c953f9bda9e8b113ecb1f99c11abfb9dbaf4f72cdd62e257a673fa3 + languageName: node + linkType: hard + +"@rtk-query/codegen-openapi@npm:^2.0.0": + version: 2.0.0 + resolution: "@rtk-query/codegen-openapi@npm:2.0.0" + dependencies: + "@apidevtools/swagger-parser": "npm:^10.0.2" + commander: "npm:^6.2.0" + lodash.camelcase: "npm:^4.3.0" + oazapfts: "npm:^6.1.0" + prettier: "npm:^3.2.5" + semver: "npm:^7.3.5" + swagger2openapi: "npm:^7.0.4" + typescript: "npm:^5.5.4" + bin: + rtk-query-codegen-openapi: lib/bin/cli.mjs + checksum: 10/c1dbab43e950c4defc1246034506c770a6a742aaf86a991c1cdbac0ac63cd2232c14bbe05d8c29421339b5e3aeb75740de3d709c5503f2af0b746e71b46caa87 + languageName: node + linkType: hard + +"@rtsao/scc@npm:^1.1.0": + version: 1.1.0 + resolution: "@rtsao/scc@npm:1.1.0" + checksum: 10/17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01 + languageName: node + linkType: hard + +"@rushstack/eslint-patch@npm:^1.10.3": + version: 1.10.4 + resolution: "@rushstack/eslint-patch@npm:1.10.4" + checksum: 10/fa14a091cc800e1fac75c03112db03eaebbdc2de6e1532ed7702e106c3ce0cbf9b896794d885d455b225e9cc696a5e10c7bfb803d00774461d691e7a39915fc7 + languageName: node + linkType: hard + +"@safe-global/api-kit@npm:^2.4.6": + version: 2.5.6 + resolution: "@safe-global/api-kit@npm:2.5.6" + dependencies: + "@safe-global/protocol-kit": "npm:^5.1.1" + "@safe-global/types-kit": "npm:^1.0.1" + node-fetch: "npm:^2.7.0" + viem: "npm:^2.21.8" + checksum: 10/3d80f288b03c3adb2479dc4e5052b233428ef468728c100385c3709ff6ac4987b841fae1c08123ba907b76bf83205c7483f53538a2221102d2ffe02165587395 + languageName: node + linkType: hard + +"@safe-global/jest-presets@workspace:config/jest-presets": + version: 0.0.0-use.local + resolution: "@safe-global/jest-presets@workspace:config/jest-presets" + dependencies: + jest-transform-stub: "npm:2.0.0" + ts-jest: "npm:29.2.5" + languageName: unknown + linkType: soft + +"@safe-global/mobile@workspace:apps/mobile": + version: 0.0.0-use.local + resolution: "@safe-global/mobile@workspace:apps/mobile" + dependencies: + "@babel/core": "npm:^7.25.2" + "@babel/preset-env": "npm:^7.26.0" + "@babel/preset-react": "npm:^7.26.3" + "@cowprotocol/app-data": "npm:^2.3.0" + "@eslint/js": "npm:^9.12.0" + "@expo/config-plugins": "npm:^9.0.10" + "@expo/vector-icons": "npm:^14.0.2" + "@gorhom/bottom-sheet": "npm:^5.0.6" + "@react-native-async-storage/async-storage": "npm:1.23.1" + "@react-native-clipboard/clipboard": "npm:^1.15.0" + "@react-native-community/blur": "npm:^4.4.1" + "@react-native-community/datetimepicker": "npm:8.2.0" + "@react-native-community/slider": "npm:4.5.5" + "@react-native-menu/menu": "npm:^1.1.6" + "@react-native/babel-preset": "npm:^0.76.2" + "@react-navigation/material-top-tabs": "npm:^7.0.1" + "@react-navigation/native": "npm:^7.0.0" + "@reduxjs/toolkit": "npm:^2.4.0" + "@rtk-query/codegen-openapi": "npm:^2.0.0" + "@safe-global/store": "workspace:^" + "@storybook/addon-essentials": "npm:^8.4.6" + "@storybook/addon-interactions": "npm:^8.4.6" + "@storybook/addon-onboarding": "npm:^8.4.6" + "@storybook/addon-ondevice-actions": "npm:^8.4.2" + "@storybook/addon-ondevice-controls": "npm:^8.4.2" + "@storybook/addon-react-native-web": "npm:^0.0.26" + "@storybook/addon-webpack5-compiler-babel": "npm:^3.0.3" + "@storybook/addon-webpack5-compiler-swc": "npm:^1.0.5" + "@storybook/blocks": "npm:^8.4.6" + "@storybook/react": "npm:^8.4.6" + "@storybook/react-native": "npm:^8.4.2" + "@storybook/react-webpack5": "npm:^8.4.6" + "@storybook/test": "npm:^8.4.6" + "@tamagui/animations-moti": "npm:^1.117.1" + "@tamagui/babel-plugin": "npm:^1.117.1" + "@tamagui/config": "npm:^1.117.1" + "@tamagui/font-dm-sans": "npm:^1.117.1" + "@tamagui/toast": "npm:^1.117.1" + "@testing-library/react-native": "npm:^12.7.2" + "@types/eslint__js": "npm:^8.42.3" + "@types/jest": "npm:^29.5.12" + "@types/lodash": "npm:^4.17.13" + "@types/node": "npm:^22.9.1" + "@types/react": "npm:~18.3.12" + babel-loader: "npm:^8.4.1" + babel-plugin-react-native-web: "npm:^0.19.13" + blo: "npm:^1.2.0" + burnt: "npm:^0.12.2" + date-fns: "npm:^4.1.0" + deepmerge: "npm:^4.3.1" + eslint: "npm:^9.12.0" + eslint-config-prettier: "npm:^9.1.0" + eslint-plugin-prettier: "npm:^5.2.1" + eslint-plugin-react: "npm:^7.37.1" + expo: "npm:~52.0.14" + expo-blur: "npm:~14.0.1" + expo-constants: "npm:~17.0.2" + expo-dev-client: "npm:~5.0.5" + expo-font: "npm:~13.0.1" + expo-image: "npm:~2.0.3" + expo-linear-gradient: "npm:^14.0.1" + expo-linking: "npm:~7.0.3" + expo-router: "npm:~4.0.11" + expo-splash-screen: "npm:^0.29.16" + expo-status-bar: "npm:~2.0.0" + expo-system-ui: "npm:~4.0.5" + expo-web-browser: "npm:~14.0.1" + globals: "npm:^15.11.0" + jest: "npm:^29.7.0" + jest-expo: "npm:~52.0.2" + lodash: "npm:^4.17.21" + moti: "npm:^0.29.0" + react: "npm:18.3.1" + react-dom: "npm:^18.3.1" + react-native: "npm:0.76.3" + react-native-collapsible-tab-view: "npm:^8.0.0" + react-native-gesture-handler: "npm:~2.20.2" + react-native-mmkv: "npm:^3.1.0" + react-native-pager-view: "npm:6.5.1" + react-native-reanimated: "npm:^3.16.2" + react-native-safe-area-context: "npm:4.12.0" + react-native-screens: "npm:^4.0.0" + react-native-svg: "npm:15.8.0" + react-native-web: "npm:^0.19.13" + react-redux: "npm:^9.1.2" + redux: "npm:^5.0.1" + redux-devtools-expo-dev-plugin: "npm:^1.0.0" + redux-persist: "npm:^6.0.0" + storybook: "npm:^8.4.6" + tamagui: "npm:^1.117.1" + timezone-mock: "npm:^1.3.6" + ts-node: "npm:^10.9.2" + tsconfig-paths-webpack-plugin: "npm:^4.2.0" + typescript: "npm:~5.3.3" + typescript-eslint: "npm:^8.8.1" + languageName: unknown + linkType: soft + +"@safe-global/protocol-kit@npm:^4.1.3": + version: 4.1.3 + resolution: "@safe-global/protocol-kit@npm:4.1.3" + dependencies: + "@noble/hashes": "npm:^1.3.3" + "@safe-global/safe-core-sdk-types": "npm:^5.1.0" + "@safe-global/safe-deployments": "npm:^1.37.22" + "@safe-global/safe-modules-deployments": "npm:^2.2.1" + abitype: "npm:^1.0.2" + ethereumjs-util: "npm:^7.1.5" + ethers: "npm:^6.13.1" + semver: "npm:^7.6.2" + checksum: 10/c6d45ad2814b6cfc9a0689d119deaaf093debd4a2bd896a34fa79d370fa11a3509f6ce49327f1c91b754f1e7a0974eb6caf972b796040476b85384732ee13710 + languageName: node + linkType: hard + +"@safe-global/protocol-kit@npm:^5.1.1": + version: 5.1.1 + resolution: "@safe-global/protocol-kit@npm:5.1.1" + dependencies: + "@noble/curves": "npm:^1.6.0" + "@peculiar/asn1-schema": "npm:^2.3.13" + "@safe-global/safe-deployments": "npm:^1.37.22" + "@safe-global/safe-modules-deployments": "npm:^2.2.4" + "@safe-global/types-kit": "npm:^1.0.1" + abitype: "npm:^1.0.2" + semver: "npm:^7.6.3" + viem: "npm:^2.21.8" + dependenciesMeta: + "@noble/curves": + optional: true + "@peculiar/asn1-schema": + optional: true + checksum: 10/1cd58d9906e4d1102aaf27c51f0bdabaada08d7c8925c1baacacd2ec2622ca610280011e4a0569c28d84f86ad388e7137ba48abb700f9b9af3611d2ca31044da + languageName: node + linkType: hard + +"@safe-global/safe-apps-sdk@npm:^9.1.0": + version: 9.1.0 + resolution: "@safe-global/safe-apps-sdk@npm:9.1.0" + dependencies: + "@safe-global/safe-gateway-typescript-sdk": "npm:^3.5.3" + viem: "npm:^2.1.1" + checksum: 10/b81e1a554509fc41f5b8ec3bcccaf477fd55824010774699dd2c00dee8431cfd351bf13893ff6acb1450028ce4de31a1316548a0e77a66d801ff9e0b4e08b9ff + languageName: node + linkType: hard + +"@safe-global/safe-client-gateway-sdk@npm:v1.60.1": + version: 1.60.1 + resolution: "@safe-global/safe-client-gateway-sdk@npm:1.60.1" + dependencies: + openapi-fetch: "npm:0.10.5" + checksum: 10/9899ca9f7590c5543036ae1fd4ac37dd146dba07c390131bb57a4ede645e670756ef4f7c13d607d8f81b161d43b788c1c302919e92321dd40812c493a7442654 + languageName: node + linkType: hard + +"@safe-global/safe-core-sdk-types@npm:^5.0.1, @safe-global/safe-core-sdk-types@npm:^5.1.0": + version: 5.1.0 + resolution: "@safe-global/safe-core-sdk-types@npm:5.1.0" + dependencies: + abitype: "npm:^1.0.2" + checksum: 10/2ad129abe2367084c75b906dfa06bc4c2b43413fc00048164168b9fd9336a4ea7494b624d61282963062a20e6c6fe45ac28cd9c16c8b787f26ce19f0d8d054e9 + languageName: node + linkType: hard + +"@safe-global/safe-deployments@npm:^1.37.22": + version: 1.37.22 + resolution: "@safe-global/safe-deployments@npm:1.37.22" + dependencies: + semver: "npm:^7.6.2" + checksum: 10/722553e71ed8bfc0a228ea0157badc6dde71ca31a2950ba77676464e281e0f5c220bf6e8e6865ffd3c67ee9520c192aafadb5f835f7d80c43e75418651d12d35 + languageName: node + linkType: hard + +"@safe-global/safe-gateway-typescript-sdk@npm:3.22.6-beta.0": + version: 3.22.6-beta.0 + resolution: "@safe-global/safe-gateway-typescript-sdk@npm:3.22.6-beta.0" + checksum: 10/9a4d0a1ac5d4e82a7e53904f7a8b7d955624e910f3eb041e1c99d09673c71dd9f8252bd33d1708470b1ecf1c80feeeb3d6f33e72e68ee2f4ba248e7ebbd4e80d + languageName: node + linkType: hard + +"@safe-global/safe-gateway-typescript-sdk@npm:^3.5.3": + version: 3.22.4 + resolution: "@safe-global/safe-gateway-typescript-sdk@npm:3.22.4" + checksum: 10/5b088499a01a0d0190b4ab6828bfb2df779b603bbcee7645c23ad8e420670aab4ce7ca39b858fc62ee03fded77b322c3f8a9b0203f41ecb779d08f47bd4bfe0c + languageName: node + linkType: hard + +"@safe-global/safe-modules-deployments@npm:^2.2.1, @safe-global/safe-modules-deployments@npm:^2.2.4": + version: 2.2.4 + resolution: "@safe-global/safe-modules-deployments@npm:2.2.4" + checksum: 10/594a86c3c8b9b4b39379dfcc360cf81fce5bda633738f0455ce208447e0bbd01133ddb5934486e714d8115da8b5f38a1b7d2fa0fef2a04d57eb81362ef02ce6d + languageName: node + linkType: hard + +"@safe-global/safe-wallet@workspace:.": + version: 0.0.0-use.local + resolution: "@safe-global/safe-wallet@workspace:." + dependencies: + husky: "npm:^9.1.6" + lint-staged: "npm:^15.2.10" + prettier: "npm:^3.4.2" + languageName: unknown + linkType: soft + +"@safe-global/store@workspace:^, @safe-global/store@workspace:packages/store": + version: 0.0.0-use.local + resolution: "@safe-global/store@workspace:packages/store" + dependencies: + "@types/jest": "npm:^29.5.14" + jest: "npm:^29.7.0" + languageName: unknown + linkType: soft + +"@safe-global/tsconfig@workspace:config/tsconfig": + version: 0.0.0-use.local + resolution: "@safe-global/tsconfig@workspace:config/tsconfig" + languageName: unknown + linkType: soft + +"@safe-global/types-kit@npm:^1.0.1": + version: 1.0.1 + resolution: "@safe-global/types-kit@npm:1.0.1" + dependencies: + abitype: "npm:^1.0.2" + checksum: 10/2b740301a7aa8280f34ba1e7c74f7e9993e60a38b7a303ee65496f0116beff691690c957adc2d49667cc112f44c63141da2ae010c0ef39cb33ad0693a1d39512 + languageName: node + linkType: hard + +"@safe-global/web@workspace:apps/web": + version: 0.0.0-use.local + resolution: "@safe-global/web@workspace:apps/web" + dependencies: + "@chromatic-com/storybook": "npm:^1.3.1" + "@cowprotocol/app-data": "npm:^2.4.0" + "@cowprotocol/widget-react": "npm:^0.10.0" + "@ducanh2912/next-pwa": "npm:^10.2.9" + "@emotion/cache": "npm:^11.13.5" + "@emotion/react": "npm:^11.13.5" + "@emotion/server": "npm:^11.11.0" + "@emotion/styled": "npm:^11.13.5" + "@eslint/eslintrc": "npm:^3.1.0" + "@eslint/js": "npm:^9.14.0" + "@faker-js/faker": "npm:^9.0.3" + "@gnosis.pm/zodiac": "npm:^4.0.3" + "@ledgerhq/context-module": "npm:^1.1.0" + "@ledgerhq/device-management-kit": "npm:^0.5.1" + "@ledgerhq/device-signer-kit-ethereum": "npm:^1.1.0" + "@mdx-js/loader": "npm:^3.0.1" + "@mdx-js/react": "npm:^3.0.1" + "@mui/icons-material": "npm:^6.1.6" + "@mui/material": "npm:^6.1.6" + "@mui/x-date-pickers": "npm:^7.22.1" + "@next/bundle-analyzer": "npm:^15.0.4" + "@next/mdx": "npm:^15.0.4" + "@openzeppelin/contracts": "npm:^4.9.6" + "@reduxjs/toolkit": "npm:^2.5.0" + "@reown/walletkit": "npm:^1.1.1" + "@safe-global/api-kit": "npm:^2.4.6" + "@safe-global/protocol-kit": "npm:^4.1.3" + "@safe-global/safe-apps-sdk": "npm:^9.1.0" + "@safe-global/safe-client-gateway-sdk": "npm:v1.60.1" + "@safe-global/safe-core-sdk-types": "npm:^5.0.1" + "@safe-global/safe-gateway-typescript-sdk": "npm:3.22.6-beta.0" + "@safe-global/safe-modules-deployments": "npm:^2.2.1" + "@sentry/react": "npm:^7.91.0" + "@sentry/types": "npm:^7.74.0" + "@spindl-xyz/attribution-lite": "npm:^1.4.0" + "@storybook/addon-designs": "npm:^8.0.3" + "@storybook/addon-essentials": "npm:^8.0.6" + "@storybook/addon-interactions": "npm:^8.0.6" + "@storybook/addon-links": "npm:^8.3.4" + "@storybook/addon-onboarding": "npm:^8.0.6" + "@storybook/addon-themes": "npm:^8.0.6" + "@storybook/blocks": "npm:^8.0.6" + "@storybook/nextjs": "npm:^8.0.6" + "@storybook/react": "npm:^8.0.6" + "@storybook/test": "npm:^8.0.6" + "@svgr/webpack": "npm:^8.1.0" + "@testing-library/cypress": "npm:^10.0.2" + "@testing-library/jest-dom": "npm:^6.6.3" + "@testing-library/react": "npm:^16.1.0" + "@testing-library/user-event": "npm:^14.5.2" + "@typechain/ethers-v6": "npm:^0.5.1" + "@types/jest": "npm:^29.5.4" + "@types/js-cookie": "npm:^3.0.6" + "@types/lodash": "npm:^4.14.182" + "@types/mdx": "npm:^2.0.13" + "@types/node": "npm:18.11.18" + "@types/qrcode": "npm:^1.5.5" + "@types/react": "npm:^19.0.0" + "@types/react-dom": "npm:^19.0.0" + "@types/react-gtm-module": "npm:^2.0.3" + "@types/semver": "npm:^7.3.10" + "@typescript-eslint/eslint-plugin": "npm:^7.6.0" + "@walletconnect/core": "npm:^2.17.2" + "@walletconnect/utils": "npm:^2.17.3" + "@web3-onboard/coinbase": "npm:^2.4.1" + "@web3-onboard/core": "npm:2.21.4" + "@web3-onboard/injected-wallets": "npm:^2.11.2" + "@web3-onboard/ledger": "npm:2.3.2" + "@web3-onboard/trezor": "npm:2.4.3" + "@web3-onboard/walletconnect": "npm:^2.6.1" + blo: "npm:^1.1.1" + classnames: "npm:^2.5.1" + cross-env: "npm:^7.0.3" + cypress: "npm:^13.15.2" + cypress-file-upload: "npm:^5.0.8" + cypress-visual-regression: "npm:^5.2.2" + date-fns: "npm:^2.30.0" + eslint: "npm:^9.14.0" + eslint-config-next: "npm:^15.0.4" + eslint-config-prettier: "npm:^9.1.0" + eslint-plugin-no-only-tests: "npm:^3.3.0" + eslint-plugin-prettier: "npm:^5.2.1" + eslint-plugin-storybook: "npm:^0.11.0" + eslint-plugin-unused-imports: "npm:^4.1.4" + ethers: "npm:^6.13.4" + exponential-backoff: "npm:^3.1.0" + fake-indexeddb: "npm:^4.0.2" + firebase: "npm:^10.3.1" + fuse.js: "npm:^7.0.0" + gray-matter: "npm:^4.0.3" + husky: "npm:^9.0.11" + idb-keyval: "npm:^6.2.1" + jest: "npm:^29.6.2" + jest-environment-jsdom: "npm:^29.6.2" + js-cookie: "npm:^3.0.1" + lodash: "npm:^4.17.21" + mockdate: "npm:^3.0.5" + next: "npm:^15.1.0" + papaparse: "npm:^5.3.2" + prettier: "npm:^3.3.3" + qrcode.react: "npm:^3.1.0" + react: "npm:^19.0.0" + react-dom: "npm:^19.0.0" + react-dropzone: "npm:^14.2.3" + react-gtm-module: "npm:^2.0.11" + react-hook-form: "npm:7.41.1" + react-papaparse: "npm:^4.0.2" + react-redux: "npm:^9.1.2" + remark-frontmatter: "npm:^5.0.0" + remark-gfm: "npm:^4.0.0" + remark-heading-id: "npm:^1.0.1" + remark-mdx-frontmatter: "npm:^5.0.0" + semver: "npm:^7.6.3" + storybook: "npm:^8.3.4" + ts-prune: "npm:^0.10.3" + typechain: "npm:^8.3.2" + typescript: "npm:^5.4.5" + typescript-plugin-css-modules: "npm:^4.2.2" + webpack: "npm:^5.97.1" + zodiac-roles-deployments: "npm:^2.3.4" + languageName: unknown + linkType: soft + +"@scure/base@npm:~1.1.0, @scure/base@npm:~1.1.2, @scure/base@npm:~1.1.6": + version: 1.1.9 + resolution: "@scure/base@npm:1.1.9" + checksum: 10/f0ab7f687bbcdee2a01377fe3cd808bf63977999672751295b6a92625d5322f4754a96d40f6bd579bc367aad48ecf8a4e6d0390e70296e6ded1076f52adb16bb + languageName: node + linkType: hard + +"@scure/base@npm:~1.2.1": + version: 1.2.1 + resolution: "@scure/base@npm:1.2.1" + checksum: 10/f7bdd17618ccae7a74c8cbe410a235e4adbe54aa8afe4e2fb1294338aa92f6fd04b1f1f5dea60552f638b5f5e3e74902b7baf59d3954e5e42c0a36c6baa2ebe0 + languageName: node + linkType: hard + +"@scure/bip32@npm:1.3.2": + version: 1.3.2 + resolution: "@scure/bip32@npm:1.3.2" + dependencies: + "@noble/curves": "npm:~1.2.0" + "@noble/hashes": "npm:~1.3.2" + "@scure/base": "npm:~1.1.2" + checksum: 10/b90da28dfe75519496a85c97e77c9443734873910f32b8557762910a5c4e642290a462b0ed14fa42e0efed6acb9a7f6155ad5cb5d38d4ff87eb2de4760eb32a4 + languageName: node + linkType: hard + +"@scure/bip32@npm:1.4.0": + version: 1.4.0 + resolution: "@scure/bip32@npm:1.4.0" + dependencies: + "@noble/curves": "npm:~1.4.0" + "@noble/hashes": "npm:~1.4.0" + "@scure/base": "npm:~1.1.6" + checksum: 10/6cd5062d902564d9e970597ec8b1adacb415b2eadfbb95aee1a1a0480a52eb0de4d294d3753aa8b48548064c9795ed108d348a31a8ce3fc88785377bb12c63b9 + languageName: node + linkType: hard + +"@scure/bip32@npm:1.6.0, @scure/bip32@npm:^1.5.0": + version: 1.6.0 + resolution: "@scure/bip32@npm:1.6.0" + dependencies: + "@noble/curves": "npm:~1.7.0" + "@noble/hashes": "npm:~1.6.0" + "@scure/base": "npm:~1.2.1" + checksum: 10/2efb81ed9a7b8d5d35233e10abebc114544a3783a2a32b9fb60e1e9a67965b272c9d17910e1649083b69c8ceb80241b05b59dbeb7a5b18ea34e497aed3f16709 + languageName: node + linkType: hard + +"@scure/bip39@npm:1.2.1": + version: 1.2.1 + resolution: "@scure/bip39@npm:1.2.1" + dependencies: + "@noble/hashes": "npm:~1.3.0" + "@scure/base": "npm:~1.1.0" + checksum: 10/2ea368bbed34d6b1701c20683bf465e147f231a9e37e639b8c82f585d6f978bb0f3855fca7ceff04954ae248b3e313f5d322d0210614fb7acb402739415aaf31 + languageName: node + linkType: hard + +"@scure/bip39@npm:1.3.0": + version: 1.3.0 + resolution: "@scure/bip39@npm:1.3.0" + dependencies: + "@noble/hashes": "npm:~1.4.0" + "@scure/base": "npm:~1.1.6" + checksum: 10/7d71fd58153de22fe8cd65b525f6958a80487bc9d0fbc32c71c328aeafe41fa259f989d2f1e0fa4fdfeaf83b8fcf9310d52ed9862987e46c2f2bfb9dd8cf9fc1 + languageName: node + linkType: hard + +"@scure/bip39@npm:1.5.0, @scure/bip39@npm:^1.4.0": + version: 1.5.0 + resolution: "@scure/bip39@npm:1.5.0" + dependencies: + "@noble/hashes": "npm:~1.6.0" + "@scure/base": "npm:~1.2.1" + checksum: 10/b795ee31ac4c10603bf3b726cc0e5cf43834a68f05a535e0baf2162772bac100de470b4c6cf7ddbecb95d7a3fb82b8a959badced406c329ab696cd89104194bc + languageName: node + linkType: hard + +"@segment/loosely-validate-event@npm:^2.0.0": + version: 2.0.0 + resolution: "@segment/loosely-validate-event@npm:2.0.0" + dependencies: + component-type: "npm:^1.2.1" + join-component: "npm:^1.1.0" + checksum: 10/4e0b097de2c564673acceb5a0688bb8cf045bab4a1ffed1be19293a6bd2859af723e0d012349ff1d51433a6aad19f729383a302c3c0a9fc831e251cd16ade5ad + languageName: node + linkType: hard + +"@sentry-internal/feedback@npm:7.120.2": + version: 7.120.2 + resolution: "@sentry-internal/feedback@npm:7.120.2" + dependencies: + "@sentry/core": "npm:7.120.2" + "@sentry/types": "npm:7.120.2" + "@sentry/utils": "npm:7.120.2" + checksum: 10/b25036485d70967d45cc553fdfcfcd80aba187b369e26600b124de36e7412708f60344df0f8c49ddf21c55de06d57a6cc7ba1e6cd2e8ee5efc21b9baf0093e12 + languageName: node + linkType: hard + +"@sentry-internal/replay-canvas@npm:7.120.2": + version: 7.120.2 + resolution: "@sentry-internal/replay-canvas@npm:7.120.2" + dependencies: + "@sentry/core": "npm:7.120.2" + "@sentry/replay": "npm:7.120.2" + "@sentry/types": "npm:7.120.2" + "@sentry/utils": "npm:7.120.2" + checksum: 10/c8f123227af25e818eef6d4ea12c1c3c7f0c3fadc83d219f768cef2929a1169db5aff62f1ccc4946743ae04628f30880f4df2d8be176667f9301c0bf7a56ddc3 + languageName: node + linkType: hard + +"@sentry-internal/tracing@npm:7.120.2": + version: 7.120.2 + resolution: "@sentry-internal/tracing@npm:7.120.2" + dependencies: + "@sentry/core": "npm:7.120.2" + "@sentry/types": "npm:7.120.2" + "@sentry/utils": "npm:7.120.2" + checksum: 10/24dbc1be80434431b78fbc6df58f600383e8e41e151237183ff1e59eb17823fec9e924102a9a3d439a0c003a9cf7335cc59902e671519274bfd7d802566ab089 + languageName: node + linkType: hard + +"@sentry/browser@npm:7.120.2": + version: 7.120.2 + resolution: "@sentry/browser@npm:7.120.2" + dependencies: + "@sentry-internal/feedback": "npm:7.120.2" + "@sentry-internal/replay-canvas": "npm:7.120.2" + "@sentry-internal/tracing": "npm:7.120.2" + "@sentry/core": "npm:7.120.2" + "@sentry/integrations": "npm:7.120.2" + "@sentry/replay": "npm:7.120.2" + "@sentry/types": "npm:7.120.2" + "@sentry/utils": "npm:7.120.2" + checksum: 10/6ed7d756a045ff878725ac94f8658d569874614b7638dfaf6f2dc51a18b70e3e0fc6fb32058e09e0787cb22e1f6addc1e29ec56aef8d9493c6bb9a1f3ff8131d + languageName: node + linkType: hard + +"@sentry/core@npm:7.120.2": + version: 7.120.2 + resolution: "@sentry/core@npm:7.120.2" + dependencies: + "@sentry/types": "npm:7.120.2" + "@sentry/utils": "npm:7.120.2" + checksum: 10/6899da46ef74d767e716db3d9bc0da715ce2a8f4016695583058b497f909ccb09199ec2ab21ac280ea0cd6bae9ddd78f066cb624ce4965e608e4cb2caf0039ff + languageName: node + linkType: hard + +"@sentry/hub@npm:6.19.7": + version: 6.19.7 + resolution: "@sentry/hub@npm:6.19.7" + dependencies: + "@sentry/types": "npm:6.19.7" + "@sentry/utils": "npm:6.19.7" + tslib: "npm:^1.9.3" + checksum: 10/ef2381ec399305ee56f7cff990c5bf0f221119193ac1b0862d237c42c9e214a8a3dcabe55085e197710c9667f1c541fffc3fe37e89d7562f3c86432c22d7f09a + languageName: node + linkType: hard + +"@sentry/integrations@npm:7.120.2": + version: 7.120.2 + resolution: "@sentry/integrations@npm:7.120.2" + dependencies: + "@sentry/core": "npm:7.120.2" + "@sentry/types": "npm:7.120.2" + "@sentry/utils": "npm:7.120.2" + localforage: "npm:^1.8.1" + checksum: 10/4fc6e78125258a9268781f260c234712789d48951481f383b156be82c251182a0a6742d26f5d15297a61b44411e0a129975a84497435d4efb4be628d66fa3a1e + languageName: node + linkType: hard + +"@sentry/minimal@npm:^6.19.7": + version: 6.19.7 + resolution: "@sentry/minimal@npm:6.19.7" + dependencies: + "@sentry/hub": "npm:6.19.7" + "@sentry/types": "npm:6.19.7" + tslib: "npm:^1.9.3" + checksum: 10/eac4f79f7116dee90bfd8ea284c777c267e70c0b51883bc419f176dd5283b2b1955ede0bc471759f26a8c686f78f7a664560684a8998fc4c6f85d9e1539d39f9 + languageName: node + linkType: hard + +"@sentry/react@npm:^7.91.0": + version: 7.120.2 + resolution: "@sentry/react@npm:7.120.2" + dependencies: + "@sentry/browser": "npm:7.120.2" + "@sentry/core": "npm:7.120.2" + "@sentry/types": "npm:7.120.2" + "@sentry/utils": "npm:7.120.2" + hoist-non-react-statics: "npm:^3.3.2" + peerDependencies: + react: 15.x || 16.x || 17.x || 18.x + checksum: 10/df8b039b2d9df2234dfe025a4a4b650e79042e1a8f5dd0bac2ccc0decf3917a8781f453125788944dbcbefd926069039536db52f03801cf274dd5f0790822faa + languageName: node + linkType: hard + +"@sentry/replay@npm:7.120.2": + version: 7.120.2 + resolution: "@sentry/replay@npm:7.120.2" + dependencies: + "@sentry-internal/tracing": "npm:7.120.2" + "@sentry/core": "npm:7.120.2" + "@sentry/types": "npm:7.120.2" + "@sentry/utils": "npm:7.120.2" + checksum: 10/84b56a35f974308aa5ab576dee7294ebea870d697f419a788dc51d0c0135079a6fb939b85f6e3681ded6b7462da1e7c4ffa1c5fe81b3f3e73f589dc87e0eef0a + languageName: node + linkType: hard + +"@sentry/types@npm:6.19.7": + version: 6.19.7 + resolution: "@sentry/types@npm:6.19.7" + checksum: 10/f9f70e94c4a3876f6119f7e3979051ea2a054adce6f5583de9f70a08642c7d2c2f80a70a1f9fe5f9fad4e99315f4483340ded1110ae2e7c825c4c1f210fc2507 + languageName: node + linkType: hard + +"@sentry/types@npm:7.120.2, @sentry/types@npm:^7.74.0": + version: 7.120.2 + resolution: "@sentry/types@npm:7.120.2" + checksum: 10/aceaf08ea382ab6c7ac2a9fe7c3953998736aa56458f9ecc6d8ed304912abff505e2ca08f9b7563b02114eb812b1bf3aa6a2c78b6067f306b28c7c1f1425f25d + languageName: node + linkType: hard + +"@sentry/utils@npm:6.19.7": + version: 6.19.7 + resolution: "@sentry/utils@npm:6.19.7" + dependencies: + "@sentry/types": "npm:6.19.7" + tslib: "npm:^1.9.3" + checksum: 10/0ea94d32940705d77b019ca821e45a5866bb3d443e0f19b9bf5edf3d7ffed68c451803f3388913fec4da875e4b7df46b5f8a8681c4d69972fb3d775d864997b2 + languageName: node + linkType: hard + +"@sentry/utils@npm:7.120.2": + version: 7.120.2 + resolution: "@sentry/utils@npm:7.120.2" + dependencies: + "@sentry/types": "npm:7.120.2" + checksum: 10/9ac41322504d17d41b4b4b9216f0008539b80e5f6816d098ca52f4f8c51c5406f2beee9a3464ba0290874f643753f6a16bdfbbaeae76cda9ac41cbea4adcc5ec + languageName: node + linkType: hard + +"@sideway/address@npm:^4.1.3": + version: 4.1.5 + resolution: "@sideway/address@npm:4.1.5" + dependencies: + "@hapi/hoek": "npm:^9.0.0" + checksum: 10/c4c73ac0339504f34e016d3a687118e7ddf197c1c968579572123b67b230be84caa705f0f634efdfdde7f2e07a6e0224b3c70665dc420d8bc95bf400cfc4c998 + languageName: node + linkType: hard + +"@sideway/formula@npm:^3.0.1": + version: 3.0.1 + resolution: "@sideway/formula@npm:3.0.1" + checksum: 10/8d3ee7f80df4e5204b2cbe92a2a711ca89684965a5c9eb3b316b7051212d3522e332a65a0bb2a07cc708fcd1d0b27fcb30f43ff0bcd5089d7006c7160a89eefe + languageName: node + linkType: hard + +"@sideway/pinpoint@npm:^2.0.0": + version: 2.0.0 + resolution: "@sideway/pinpoint@npm:2.0.0" + checksum: 10/1ed21800128b2b23280ba4c9db26c8ff6142b97a8683f17639fd7f2128aa09046461574800b30fb407afc5b663c2331795ccf3b654d4b38fa096e41a5c786bf8 + languageName: node + linkType: hard + +"@sinclair/typebox@npm:^0.27.8": + version: 0.27.8 + resolution: "@sinclair/typebox@npm:0.27.8" + checksum: 10/297f95ff77c82c54de8c9907f186076e715ff2621c5222ba50b8d40a170661c0c5242c763cba2a4791f0f91cb1d8ffa53ea1d7294570cf8cd4694c0e383e484d + languageName: node + linkType: hard + +"@sinclair/typebox@npm:^0.33.7": + version: 0.33.22 + resolution: "@sinclair/typebox@npm:0.33.22" + checksum: 10/7be51bd6f112b2152dfc2f6fe24f565474bc908e1dd78d587c8ff4d9119187839f486baf51f5b8ef162cc8eb2201fd3c604839ad422e0adc12572fb48b472097 + languageName: node + linkType: hard + +"@sinonjs/commons@npm:^3.0.0": + version: 3.0.1 + resolution: "@sinonjs/commons@npm:3.0.1" + dependencies: + type-detect: "npm:4.0.8" + checksum: 10/a0af217ba7044426c78df52c23cedede6daf377586f3ac58857c565769358ab1f44ebf95ba04bbe38814fba6e316ca6f02870a009328294fc2c555d0f85a7117 + languageName: node + linkType: hard + +"@sinonjs/fake-timers@npm:^10.0.2": + version: 10.3.0 + resolution: "@sinonjs/fake-timers@npm:10.3.0" + dependencies: + "@sinonjs/commons": "npm:^3.0.0" + checksum: 10/78155c7bd866a85df85e22028e046b8d46cf3e840f72260954f5e3ed5bd97d66c595524305a6841ffb3f681a08f6e5cef572a2cce5442a8a232dc29fb409b83e + languageName: node + linkType: hard + +"@solana-program/token@npm:^0.4.1": + version: 0.4.1 + resolution: "@solana-program/token@npm:0.4.1" + peerDependencies: + "@solana/web3.js": ^2.0.0 + checksum: 10/c85e83bd43019fb6d0b1e5c0105b0e45fc073ff7bbd1bdb472c37c3ed462f96702ef2461942100c6bd94499e8881106fc90f272b9e45f304c601eb8909e90330 + languageName: node + linkType: hard + +"@solana/accounts@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/accounts@npm:2.0.0" + dependencies: + "@solana/addresses": "npm:2.0.0" + "@solana/codecs-core": "npm:2.0.0" + "@solana/codecs-strings": "npm:2.0.0" + "@solana/errors": "npm:2.0.0" + "@solana/rpc-spec": "npm:2.0.0" + "@solana/rpc-types": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/ff516e50b4544227d041851ca9ad0fda1055cf469451dd3648cec66436266810c56bfe8854118fec59e2b6a26fb6b78fa531dd9616765333276fa9ed1ab13eb5 + languageName: node + linkType: hard + +"@solana/addresses@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/addresses@npm:2.0.0" + dependencies: + "@solana/assertions": "npm:2.0.0" + "@solana/codecs-core": "npm:2.0.0" + "@solana/codecs-strings": "npm:2.0.0" + "@solana/errors": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/f99d09c72046c73858aa8b7bc323e634a60b1023a4d280036bc94489e431075c7f29d2889e8787e33a04cfdecbe77cd8ca26c31ded73f735dc98e49c3151cc17 + languageName: node + linkType: hard + +"@solana/assertions@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/assertions@npm:2.0.0" + dependencies: + "@solana/errors": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/c1af37ae1bd79b1657395d9315ac261dabc9908a64af6ed80e3b7e5140909cd8c8c757f0c41fff084e26fbb4d32f091c89c092a8c1ed5e6f4565dfe7426c0979 + languageName: node + linkType: hard + +"@solana/codecs-core@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/codecs-core@npm:2.0.0" + dependencies: + "@solana/errors": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/e58a72e67bee3e5da60201eecda345c604b49138d5298e39b8e7d4d57a4dee47be3b0ecc8fc3429a2a60a42c952eaf860d43d3df1eb2b1d857e35368eca9c820 + languageName: node + linkType: hard + +"@solana/codecs-data-structures@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/codecs-data-structures@npm:2.0.0" + dependencies: + "@solana/codecs-core": "npm:2.0.0" + "@solana/codecs-numbers": "npm:2.0.0" + "@solana/errors": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/7112beaf42c63b8d895141bcbd9fa503c1e81d857f39f5f63913bd3429e09457d983d5c996024d568dd887206241e628aae7fcd47e16eac7426edfcff38f925c + languageName: node + linkType: hard + +"@solana/codecs-numbers@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/codecs-numbers@npm:2.0.0" + dependencies: + "@solana/codecs-core": "npm:2.0.0" + "@solana/errors": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/500144d549ea0292c2f672300610df9054339a31cb6a4e61b29623308ef3b14f15eb587ee6139cf3334d2e0f29db1da053522da244b12184bb8fbdb097b7102b + languageName: node + linkType: hard + +"@solana/codecs-strings@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/codecs-strings@npm:2.0.0" + dependencies: + "@solana/codecs-core": "npm:2.0.0" + "@solana/codecs-numbers": "npm:2.0.0" + "@solana/errors": "npm:2.0.0" + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + typescript: ">=5" + checksum: 10/4380136e2603c2cee12a28438817beb34b0fe45da222b8c38342c5b3680f02086ec7868cde0bb7b4e5dd459af5988613af1d97230c6a193db3be1c45122aba39 + languageName: node + linkType: hard + +"@solana/codecs@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/codecs@npm:2.0.0" + dependencies: + "@solana/codecs-core": "npm:2.0.0" + "@solana/codecs-data-structures": "npm:2.0.0" + "@solana/codecs-numbers": "npm:2.0.0" + "@solana/codecs-strings": "npm:2.0.0" + "@solana/options": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/145edff71933af37d34f6cccb2158d43872e19b6014d2abe26f317f93ded0827b7d71fad168513cdb7cbfc825c2f58fd6c2ce5775e6a45298608ce6b6d6f4c2a + languageName: node + linkType: hard + +"@solana/errors@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/errors@npm:2.0.0" + dependencies: + chalk: "npm:^5.3.0" + commander: "npm:^12.1.0" + peerDependencies: + typescript: ">=5" + bin: + errors: bin/cli.mjs + checksum: 10/4191f96cad47c64266ec501ae1911a6245fd02b2f68a2c53c3dabbc63eb7c5462f170a765b584348b195da2387e7ca02096d792c67352c2c30a4f3a3cc7e4270 + languageName: node + linkType: hard + +"@solana/fast-stable-stringify@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/fast-stable-stringify@npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/b55ece277ab2489c37a543eb28ff593bb794f8c4aac74c15fb6e61f194f1c2b8102c3a46cc4b87ab01d637af78d8a7165b0efb3da6023da3cf94d93897248699 + languageName: node + linkType: hard + +"@solana/functional@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/functional@npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/4b2ba1615ac1f8cfd4bea9c465e3746ec92a59771fa27c70d6adde5eca783eca539f2d95fe23cc9f84a28c1247937cac8914e27c81fb88f69773fccec9a555f7 + languageName: node + linkType: hard + +"@solana/instructions@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/instructions@npm:2.0.0" + dependencies: + "@solana/errors": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/ae13a298757262de77b6e55bf2a8ffe9967d54775159c94dbef31d771709b14c7b62faedf5d8f0289ce127991414ac5a0088b9d7f241ce99c17ba2e210062ae5 + languageName: node + linkType: hard + +"@solana/keys@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/keys@npm:2.0.0" + dependencies: + "@solana/assertions": "npm:2.0.0" + "@solana/codecs-core": "npm:2.0.0" + "@solana/codecs-strings": "npm:2.0.0" + "@solana/errors": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/488db3e4965304acca2844d325d7d99e9d986e69ef25144ccf53fe6ded75bc38377e4a1e590b3b1e6618a2a040939e1503142df9e586167104ab86236b58ba2e + languageName: node + linkType: hard + +"@solana/options@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/options@npm:2.0.0" + dependencies: + "@solana/codecs-core": "npm:2.0.0" + "@solana/codecs-data-structures": "npm:2.0.0" + "@solana/codecs-numbers": "npm:2.0.0" + "@solana/codecs-strings": "npm:2.0.0" + "@solana/errors": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/a039a68e92f3dffcf1289753dbb99dde93929db62fefc2134d73bb1e1507e757e3f43dad6cbb145bf41a5ade2dc8252e9ec119e03d956e3ac226489d491f4a62 + languageName: node + linkType: hard + +"@solana/programs@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/programs@npm:2.0.0" + dependencies: + "@solana/addresses": "npm:2.0.0" + "@solana/errors": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/aba20ff210e4df05568271022394578f66b7db44b3ee19d4761e21161d288d099248af1b4b2a6b7c690d04b2f1155efe5688be7e08d9339c75702ad8b6ba9289 + languageName: node + linkType: hard + +"@solana/promises@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/promises@npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/d9cf1c008652aeabae077786e1bbe96aeb5ba64762fcfa62710e10bfa4afaa89801d8f3143fe9f90f241f277ad008928a5ac545da4b29ceb0213154f639d3f93 + languageName: node + linkType: hard + +"@solana/rpc-api@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/rpc-api@npm:2.0.0" + dependencies: + "@solana/addresses": "npm:2.0.0" + "@solana/codecs-core": "npm:2.0.0" + "@solana/codecs-strings": "npm:2.0.0" + "@solana/errors": "npm:2.0.0" + "@solana/keys": "npm:2.0.0" + "@solana/rpc-parsed-types": "npm:2.0.0" + "@solana/rpc-spec": "npm:2.0.0" + "@solana/rpc-transformers": "npm:2.0.0" + "@solana/rpc-types": "npm:2.0.0" + "@solana/transaction-messages": "npm:2.0.0" + "@solana/transactions": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/9d05783b0a15cd15a6dbaa75d716004b930f41bfeffd8a170e11d89da255fec416d28c014745ec2b5ff92623098fbb9db03def196cd374887595f58de108d3cd + languageName: node + linkType: hard + +"@solana/rpc-parsed-types@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/rpc-parsed-types@npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/2eec9a00a1c3ad3f49be7cd42611e775046f4fa9d58d03647a1d0c3845d2cf61f3e081d171c32ee3d065f1d98354b1fb9de5607f27fe4bd7aba150ac3c86663f + languageName: node + linkType: hard + +"@solana/rpc-spec-types@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/rpc-spec-types@npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/dae7b1003b6ad600b1c5aa00e91d0f35f091cf397bd5182d13e51367c7dca75f4ae8857171b38d56ef59546399db9a467e006e34f4944eaf081092e238383e1f + languageName: node + linkType: hard + +"@solana/rpc-spec@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/rpc-spec@npm:2.0.0" + dependencies: + "@solana/errors": "npm:2.0.0" + "@solana/rpc-spec-types": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/552e30131dfd9110a978c40d9ac3061f5fa67ad0a182b6a0b9e28165c7479a70bfcb3da585c55150649db667cdec7acc9b57a8deb0993c07c97aa9ae6eda54dc + languageName: node + linkType: hard + +"@solana/rpc-subscriptions-api@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/rpc-subscriptions-api@npm:2.0.0" + dependencies: + "@solana/addresses": "npm:2.0.0" + "@solana/keys": "npm:2.0.0" + "@solana/rpc-subscriptions-spec": "npm:2.0.0" + "@solana/rpc-transformers": "npm:2.0.0" + "@solana/rpc-types": "npm:2.0.0" + "@solana/transaction-messages": "npm:2.0.0" + "@solana/transactions": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/951878716a9784eea86eb326bb5da0bae787e061e9fad4d948f36b502d11b9fdf058ff8236dbe0fae96617bd12843c4726043c69e072a9b22f824b8a75c0cf6e + languageName: node + linkType: hard + +"@solana/rpc-subscriptions-channel-websocket@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/rpc-subscriptions-channel-websocket@npm:2.0.0" + dependencies: + "@solana/errors": "npm:2.0.0" + "@solana/functional": "npm:2.0.0" + "@solana/rpc-subscriptions-spec": "npm:2.0.0" + "@solana/subscribable": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + ws: ^8.18.0 + checksum: 10/4151a9f4f091a8bbeec868c518a838cf485e5bff9e6c535af79206910e117c83fec80ca28427d28b24f1cef69bbaee9fe236a57b1e352f15b8f875621f1a1fea + languageName: node + linkType: hard + +"@solana/rpc-subscriptions-spec@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/rpc-subscriptions-spec@npm:2.0.0" + dependencies: + "@solana/errors": "npm:2.0.0" + "@solana/promises": "npm:2.0.0" + "@solana/rpc-spec-types": "npm:2.0.0" + "@solana/subscribable": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/a104c1d698e9789604c95eb001f32980d3fb0940362659a36e000c4383f25ca1ddce574931d930ff3fdb6519dcad08f7a6a1560e5804ee72739561a283882d86 + languageName: node + linkType: hard + +"@solana/rpc-subscriptions@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/rpc-subscriptions@npm:2.0.0" + dependencies: + "@solana/errors": "npm:2.0.0" + "@solana/fast-stable-stringify": "npm:2.0.0" + "@solana/functional": "npm:2.0.0" + "@solana/promises": "npm:2.0.0" + "@solana/rpc-spec-types": "npm:2.0.0" + "@solana/rpc-subscriptions-api": "npm:2.0.0" + "@solana/rpc-subscriptions-channel-websocket": "npm:2.0.0" + "@solana/rpc-subscriptions-spec": "npm:2.0.0" + "@solana/rpc-transformers": "npm:2.0.0" + "@solana/rpc-types": "npm:2.0.0" + "@solana/subscribable": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/f977631c5df3d6fba7eb475da720e4ba18f1fcb27ae7aa678ac456f338da8c7dd2f7130c773b4c69938d8a28aba1d7348857a77971a84ba289681549f6823afb + languageName: node + linkType: hard + +"@solana/rpc-transformers@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/rpc-transformers@npm:2.0.0" + dependencies: + "@solana/errors": "npm:2.0.0" + "@solana/functional": "npm:2.0.0" + "@solana/rpc-spec-types": "npm:2.0.0" + "@solana/rpc-types": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/13a7bd0aacce701c997479e559ef983430e9a86bab8aaf2d4089299e841835144b45341ed63eb723d16a2b282f0a04e1759f119b6a338474f3c509556477e001 + languageName: node + linkType: hard + +"@solana/rpc-transport-http@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/rpc-transport-http@npm:2.0.0" + dependencies: + "@solana/errors": "npm:2.0.0" + "@solana/rpc-spec": "npm:2.0.0" + "@solana/rpc-spec-types": "npm:2.0.0" + undici-types: "npm:^6.20.0" + peerDependencies: + typescript: ">=5" + checksum: 10/22f3e03a25fce9d39a94dbd31725434eb24ae41d80b15d7e94ec28926d7cbc9f71d423dfaa76a553d54cec8308b3b8e4546955572bc1b76131c1bffe12a23ce0 + languageName: node + linkType: hard + +"@solana/rpc-types@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/rpc-types@npm:2.0.0" + dependencies: + "@solana/addresses": "npm:2.0.0" + "@solana/codecs-core": "npm:2.0.0" + "@solana/codecs-numbers": "npm:2.0.0" + "@solana/codecs-strings": "npm:2.0.0" + "@solana/errors": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/88b212639c3ea023175c4f5c246297d77a2dcaec9f143f03ff2661e2ebd1489639dd98c229031dcb58ac7efa90d533dac16389d53da488bde186654dd41643dd + languageName: node + linkType: hard + +"@solana/rpc@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/rpc@npm:2.0.0" + dependencies: + "@solana/errors": "npm:2.0.0" + "@solana/fast-stable-stringify": "npm:2.0.0" + "@solana/functional": "npm:2.0.0" + "@solana/rpc-api": "npm:2.0.0" + "@solana/rpc-spec": "npm:2.0.0" + "@solana/rpc-spec-types": "npm:2.0.0" + "@solana/rpc-transformers": "npm:2.0.0" + "@solana/rpc-transport-http": "npm:2.0.0" + "@solana/rpc-types": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/b19bc4b855da91f4b4239b62aba990076b2dbd7546645442b7cf1fb177dd8df9df80c643e3a5242da3a971663f1b3d190dbedc951ee3b4c64533d1e32bd7ba01 + languageName: node + linkType: hard + +"@solana/signers@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/signers@npm:2.0.0" + dependencies: + "@solana/addresses": "npm:2.0.0" + "@solana/codecs-core": "npm:2.0.0" + "@solana/errors": "npm:2.0.0" + "@solana/instructions": "npm:2.0.0" + "@solana/keys": "npm:2.0.0" + "@solana/transaction-messages": "npm:2.0.0" + "@solana/transactions": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/4a83ae9f93d83f8a25fd1a39f2bb9237a2ca959ba101d0f047d5ea1187f63d95c80824e73e6e5ef2edbcbec2cfb5fe66fd4d2989e0f3d3025172fa31247d10f3 + languageName: node + linkType: hard + +"@solana/subscribable@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/subscribable@npm:2.0.0" + dependencies: + "@solana/errors": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/1f8b7b1e7ca40c761446d7a7707cc730aa79f2510c4b58781a15c13578825fce2efe4cfb788e9ea107d7353068408bfd0b2760740e089f76beaf4816fe79f2e3 + languageName: node + linkType: hard + +"@solana/sysvars@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/sysvars@npm:2.0.0" + dependencies: + "@solana/accounts": "npm:2.0.0" + "@solana/codecs": "npm:2.0.0" + "@solana/errors": "npm:2.0.0" + "@solana/rpc-types": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/48b360e1d9fbc1b2bc1bf8bc61b5020fcb07b5fd78b314788320bc9fba48aa8c5b3feb7a3193dbc5d065817e1664c2c8c011b8505e44dc3601fcd073d22242a3 + languageName: node + linkType: hard + +"@solana/transaction-confirmation@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/transaction-confirmation@npm:2.0.0" + dependencies: + "@solana/addresses": "npm:2.0.0" + "@solana/codecs-strings": "npm:2.0.0" + "@solana/errors": "npm:2.0.0" + "@solana/keys": "npm:2.0.0" + "@solana/promises": "npm:2.0.0" + "@solana/rpc": "npm:2.0.0" + "@solana/rpc-subscriptions": "npm:2.0.0" + "@solana/rpc-types": "npm:2.0.0" + "@solana/transaction-messages": "npm:2.0.0" + "@solana/transactions": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/b2db200a1f06dc414534e6d98e27eb81cef39f45d0ca32a5ad018121fdec4d37b880b6651789863b05bf842a77279a06a7e821ad372087fb153eab03e05ce8f4 + languageName: node + linkType: hard + +"@solana/transaction-messages@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/transaction-messages@npm:2.0.0" + dependencies: + "@solana/addresses": "npm:2.0.0" + "@solana/codecs-core": "npm:2.0.0" + "@solana/codecs-data-structures": "npm:2.0.0" + "@solana/codecs-numbers": "npm:2.0.0" + "@solana/errors": "npm:2.0.0" + "@solana/functional": "npm:2.0.0" + "@solana/instructions": "npm:2.0.0" + "@solana/rpc-types": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/e64b66e998b0fab5c9cdf9321f7ad39c41d0702fcc1fc3abef9c41bf97333844562b814fc716509495a7b37b3bb0e6c0fd9d659c93a16c12d16d83cc54f29bc2 + languageName: node + linkType: hard + +"@solana/transactions@npm:2.0.0": + version: 2.0.0 + resolution: "@solana/transactions@npm:2.0.0" + dependencies: + "@solana/addresses": "npm:2.0.0" + "@solana/codecs-core": "npm:2.0.0" + "@solana/codecs-data-structures": "npm:2.0.0" + "@solana/codecs-numbers": "npm:2.0.0" + "@solana/codecs-strings": "npm:2.0.0" + "@solana/errors": "npm:2.0.0" + "@solana/functional": "npm:2.0.0" + "@solana/instructions": "npm:2.0.0" + "@solana/keys": "npm:2.0.0" + "@solana/rpc-types": "npm:2.0.0" + "@solana/transaction-messages": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/56ef6722b4683757fb573abace3204fc8fab35ad578c12d21f52175c731843d91e65532298a440dd18a9190afd209118c1662542069c77a515dd229a36c150fc + languageName: node + linkType: hard + +"@solana/web3.js@npm:^2.0.0": + version: 2.0.0 + resolution: "@solana/web3.js@npm:2.0.0" + dependencies: + "@solana/accounts": "npm:2.0.0" + "@solana/addresses": "npm:2.0.0" + "@solana/codecs": "npm:2.0.0" + "@solana/errors": "npm:2.0.0" + "@solana/functional": "npm:2.0.0" + "@solana/instructions": "npm:2.0.0" + "@solana/keys": "npm:2.0.0" + "@solana/programs": "npm:2.0.0" + "@solana/rpc": "npm:2.0.0" + "@solana/rpc-parsed-types": "npm:2.0.0" + "@solana/rpc-spec-types": "npm:2.0.0" + "@solana/rpc-subscriptions": "npm:2.0.0" + "@solana/rpc-types": "npm:2.0.0" + "@solana/signers": "npm:2.0.0" + "@solana/sysvars": "npm:2.0.0" + "@solana/transaction-confirmation": "npm:2.0.0" + "@solana/transaction-messages": "npm:2.0.0" + "@solana/transactions": "npm:2.0.0" + peerDependencies: + typescript: ">=5" + checksum: 10/0b9c8344c966976897e97e68239846e679b6bc07fee669fa0ff256a18326f02b0c2977fe248c394bc579e21d8c11d1b4ea8fb0211a222ed4480411ec67f7dc88 + languageName: node + linkType: hard + +"@spindl-xyz/attribution-lite@npm:^1.4.0": + version: 1.8.0 + resolution: "@spindl-xyz/attribution-lite@npm:1.8.0" + checksum: 10/da2cfdde056cd9249a8949ac879f73e2da7a2103675cd2352ee0ad4d42a9edcf30610d1e1105ca8b274a5c35133e690c025d0ff221577904d9dd384fbc733bb2 + languageName: node + linkType: hard + +"@stablelib/aead@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/aead@npm:1.0.1" + checksum: 10/1a6f68d138f105d17dd65349751515bd252ab0498c77255b8555478d28415600dde493f909eb718245047a993f838dfae546071e1687566ffb7b8c3e10c918d9 + languageName: node + linkType: hard + +"@stablelib/binary@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/binary@npm:1.0.1" + dependencies: + "@stablelib/int": "npm:^1.0.1" + checksum: 10/c5ed769e2b5d607a5cdb72d325fcf98db437627862fade839daad934bd9ccf02a6f6e34f9de8cb3b18d72fce2ba6cc019a5d22398187d7d69d2607165f27f8bf + languageName: node + linkType: hard + +"@stablelib/bytes@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/bytes@npm:1.0.1" + checksum: 10/23d4d632a8a15ca91be1dc56da92eefed695d9b66068d1ab27a5655d0233dc2ac0b8668f875af542ca4ed526893c65dd53e777c72c8056f3648115aac98823ee + languageName: node + linkType: hard + +"@stablelib/chacha20poly1305@npm:1.0.1": + version: 1.0.1 + resolution: "@stablelib/chacha20poly1305@npm:1.0.1" + dependencies: + "@stablelib/aead": "npm:^1.0.1" + "@stablelib/binary": "npm:^1.0.1" + "@stablelib/chacha": "npm:^1.0.1" + "@stablelib/constant-time": "npm:^1.0.1" + "@stablelib/poly1305": "npm:^1.0.1" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10/2a4df136b078b7c09acb3c6fe029613d4c9f70a0ce8bec65551a4a5016930a4f9091d3b83ed1cfc9c2e7bd6ec7f5ee93a7dc729b784b3900dcb97f3c7f5da84a + languageName: node + linkType: hard + +"@stablelib/chacha@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/chacha@npm:1.0.1" + dependencies: + "@stablelib/binary": "npm:^1.0.1" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10/38cd8095d94eda29a9bb8a742b1c945dba7f9ec91fc07ab351c826680d03976641ac6366c3d004a00a72d746fcd838215fe1263ef4b0660c453c5de18a0a4295 + languageName: node + linkType: hard + +"@stablelib/constant-time@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/constant-time@npm:1.0.1" + checksum: 10/dba4f4bf508de2ff15f7f0cbd875e70391aa3ba3698290fe1ed2feb151c243ba08a90fc6fb390ec2230e30fcc622318c591a7c0e35dcb8150afb50c797eac3d7 + languageName: node + linkType: hard + +"@stablelib/ed25519@npm:^1.0.2": + version: 1.0.3 + resolution: "@stablelib/ed25519@npm:1.0.3" + dependencies: + "@stablelib/random": "npm:^1.0.2" + "@stablelib/sha512": "npm:^1.0.1" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10/52e861e4fbd9d3d0a1a370d9ad96de8e2e15f133249bbbc32da66b8993e843db598054a3af17a746beb3fd5043b7529613a5dda7f2e79de6613eb3ebe5ffe3dd + languageName: node + linkType: hard + +"@stablelib/hash@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/hash@npm:1.0.1" + checksum: 10/3ff1f12d1a4082aaf4b6cdf40c2010aabe5c4209d3b40b97b5bbb0d9abc0ee94abdc545e57de0614afaea807ca0212ac870e247ec8f66cdce91ec39ce82948cf + languageName: node + linkType: hard + +"@stablelib/hkdf@npm:1.0.1": + version: 1.0.1 + resolution: "@stablelib/hkdf@npm:1.0.1" + dependencies: + "@stablelib/hash": "npm:^1.0.1" + "@stablelib/hmac": "npm:^1.0.1" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10/9d45e303715a1835c8612b78e6c1b9d2b7463699b484241d8681fb5c17e0f2bbde5ce211c882134b64616a402e09177baeba80426995ff227b3654a155ab225d + languageName: node + linkType: hard + +"@stablelib/hmac@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/hmac@npm:1.0.1" + dependencies: + "@stablelib/constant-time": "npm:^1.0.1" + "@stablelib/hash": "npm:^1.0.1" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10/d3ac9e2fea2b4972a5d874ee9d96c94f8c8207452e2d243a2668b1325a7b20bd9a1541df32387789a0e9bfef82c3fe021a785f46eb3442c782443863faf75205 + languageName: node + linkType: hard + +"@stablelib/int@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/int@npm:1.0.1" + checksum: 10/65bfbf50a382eea70c68e05366bf379cfceff8fbc076f1c267ef2f2411d7aed64fd140c415cb6c29f19a3910d3b8b7805d4b32ad5721a5007a8e744a808c7ae3 + languageName: node + linkType: hard + +"@stablelib/keyagreement@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/keyagreement@npm:1.0.1" + dependencies: + "@stablelib/bytes": "npm:^1.0.1" + checksum: 10/3c8ec904dd50f72f3162f5447a0fa8f1d9ca6e24cd272d3dbe84971267f3b47f9bd5dc4e4eeedf3fbac2fe01f2d9277053e57c8e60db8c5544bfb35c62d290dd + languageName: node + linkType: hard + +"@stablelib/poly1305@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/poly1305@npm:1.0.1" + dependencies: + "@stablelib/constant-time": "npm:^1.0.1" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10/b01d4b532a42e5260f7f263e3a670924849c7ba51569abd8ece8279a448e625cbe4049bff1d50ad0d3a9d5f268c1b52fc611808640a6e684550edd7589a0a581 + languageName: node + linkType: hard + +"@stablelib/random@npm:1.0.2, @stablelib/random@npm:^1.0.1, @stablelib/random@npm:^1.0.2": + version: 1.0.2 + resolution: "@stablelib/random@npm:1.0.2" + dependencies: + "@stablelib/binary": "npm:^1.0.1" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10/f5ace0a588dc4c21f01cb85837892d4c872e994ae77a58a8eb7dd61aa0b26fb1e9b46b0445e71af57d963ef7d9f5965c64258fc0d04df7b2947bc48f2d3560c5 + languageName: node + linkType: hard + +"@stablelib/sha256@npm:1.0.1": + version: 1.0.1 + resolution: "@stablelib/sha256@npm:1.0.1" + dependencies: + "@stablelib/binary": "npm:^1.0.1" + "@stablelib/hash": "npm:^1.0.1" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10/4d55f6c676e2cc0dd2a32be0cfa96837f3e15ae48dc50a340e56db2b201f1341a9ecabb429a3a44a5bf31adee0a8151467a8e7cc15346c561c914faad415d4d4 + languageName: node + linkType: hard + +"@stablelib/sha512@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/sha512@npm:1.0.1" + dependencies: + "@stablelib/binary": "npm:^1.0.1" + "@stablelib/hash": "npm:^1.0.1" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10/35d188cd62f20d27e1d61ea07984022e9a78815a023c8f7c747d92456a60823f0683138591e87158a47cd72e73cf24ecf97f8936aa6fba8b3bef6fcb138e723d + languageName: node + linkType: hard + +"@stablelib/wipe@npm:^1.0.1": + version: 1.0.1 + resolution: "@stablelib/wipe@npm:1.0.1" + checksum: 10/287802eb146810a46ba72af70b82022caf83a8aeebde23605f5ee0decf64fe2b97a60c856e43b6617b5801287c30cfa863cfb0469e7fcde6f02d143cf0c6cbf4 + languageName: node + linkType: hard + +"@stablelib/x25519@npm:1.0.3": + version: 1.0.3 + resolution: "@stablelib/x25519@npm:1.0.3" + dependencies: + "@stablelib/keyagreement": "npm:^1.0.1" + "@stablelib/random": "npm:^1.0.2" + "@stablelib/wipe": "npm:^1.0.1" + checksum: 10/fb5469e390ee2515d926633e3e179038894ac4f5e8c8cd2c2fc912022e34a051112eab0fe80c4dbc6e59129679844182562a036abff89444e5c4a05dd42ed329 + languageName: node + linkType: hard + +"@statelyai/inspect@npm:^0.4.0": + version: 0.4.0 + resolution: "@statelyai/inspect@npm:0.4.0" + dependencies: + fast-safe-stringify: "npm:^2.1.1" + isomorphic-ws: "npm:^5.0.0" + partysocket: "npm:^0.0.25" + safe-stable-stringify: "npm:^2.4.3" + superjson: "npm:^1.13.3" + uuid: "npm:^9.0.1" + peerDependencies: + xstate: ^5.5.1 + checksum: 10/042071bf454399586057fa7b5592aaf96cde22424a273ac70db785298dc2353447c3643afe52e036789e5f93848c8dda746231512eb553e323886c4a1b09026d + languageName: node + linkType: hard + +"@storybook/addon-actions@npm:8.4.7, @storybook/addon-actions@npm:^8.4.2": + version: 8.4.7 + resolution: "@storybook/addon-actions@npm:8.4.7" + dependencies: + "@storybook/global": "npm:^5.0.0" + "@types/uuid": "npm:^9.0.1" + dequal: "npm:^2.0.2" + polished: "npm:^4.2.2" + uuid: "npm:^9.0.0" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/a691f172f2899bf97ee2d454948a53f94fde29038b1dfc8b1fd902cf0912f72b02f484f3ab4abd6df52237edbed2a7f430a6b7f1b6ba8ee2be1e357c586466bd + languageName: node + linkType: hard + +"@storybook/addon-backgrounds@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/addon-backgrounds@npm:8.4.7" + dependencies: + "@storybook/global": "npm:^5.0.0" + memoizerific: "npm:^1.11.3" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/504ecd09fcdd8bd8525233469df386944a7baff7c8aaeb737532987d27d113db4ded72e394cfcb6b00262602e9fd070cce801cffbb157be6242ee56e0491577c + languageName: node + linkType: hard + +"@storybook/addon-controls@npm:8.4.7, @storybook/addon-controls@npm:^8.4.2": + version: 8.4.7 + resolution: "@storybook/addon-controls@npm:8.4.7" + dependencies: + "@storybook/global": "npm:^5.0.0" + dequal: "npm:^2.0.2" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/29a0d760622cc09517416a5775d8ae7e937fe90ede9d9739a56cdec4bc52564c0d8de535040ed540df912c1c3c04c6f557bc78f792c8af07da91753972f9a512 + languageName: node + linkType: hard + +"@storybook/addon-designs@npm:^8.0.3": + version: 8.0.4 + resolution: "@storybook/addon-designs@npm:8.0.4" + dependencies: + "@figspec/react": "npm:^1.0.0" + peerDependencies: + "@storybook/blocks": ^8.0.0 || ^8.1.0-0 || ^8.2.0-0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + "@storybook/components": ^8.0.0 || ^8.1.0-0 || ^8.2.0-0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + "@storybook/theming": ^8.0.0 || ^8.1.0-0 || ^8.2.0-0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@storybook/blocks": + optional: true + "@storybook/components": + optional: true + "@storybook/theming": + optional: true + react: + optional: true + react-dom: + optional: true + checksum: 10/7892f8752e2767e51d7b8c9e73cb415bb3dfef191f38b640e6ac29cd5be7fd6406f2b6fe40045416941051dabeb5cbdd118edc17c0d4d199c6b67aa588014b8b + languageName: node + linkType: hard + +"@storybook/addon-docs@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/addon-docs@npm:8.4.7" + dependencies: + "@mdx-js/react": "npm:^3.0.0" + "@storybook/blocks": "npm:8.4.7" + "@storybook/csf-plugin": "npm:8.4.7" + "@storybook/react-dom-shim": "npm:8.4.7" + react: "npm:^16.8.0 || ^17.0.0 || ^18.0.0" + react-dom: "npm:^16.8.0 || ^17.0.0 || ^18.0.0" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/d09fefeefb462a1b6c368e781f4abbb1dfdf0c58e6f9311bc8a2c320699e9e694153ebf3274f4fc54fb85953eb10ced6de11a848c718ffb38a0f59e1b1717220 + languageName: node + linkType: hard + +"@storybook/addon-essentials@npm:^8.0.6, @storybook/addon-essentials@npm:^8.4.6": + version: 8.4.7 + resolution: "@storybook/addon-essentials@npm:8.4.7" + dependencies: + "@storybook/addon-actions": "npm:8.4.7" + "@storybook/addon-backgrounds": "npm:8.4.7" + "@storybook/addon-controls": "npm:8.4.7" + "@storybook/addon-docs": "npm:8.4.7" + "@storybook/addon-highlight": "npm:8.4.7" + "@storybook/addon-measure": "npm:8.4.7" + "@storybook/addon-outline": "npm:8.4.7" + "@storybook/addon-toolbars": "npm:8.4.7" + "@storybook/addon-viewport": "npm:8.4.7" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/d8731c18935fbc130beee7236b4e80c1621c6964a4109741512b50f065cd8d322446f8ecd84b4120ad1ce2ea829d0d3b5b764cca19c1bd8b73fc77d04dc13f17 + languageName: node + linkType: hard + +"@storybook/addon-highlight@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/addon-highlight@npm:8.4.7" + dependencies: + "@storybook/global": "npm:^5.0.0" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/2d77ce06eaf69445ed6d7c23a666e67576376d770f8fd33055fd35e33c248c2c78f6333461cb92aa21f45bbf06a1255f1977ec3d349fdef531416fc51da809be + languageName: node + linkType: hard + +"@storybook/addon-interactions@npm:^8.0.6, @storybook/addon-interactions@npm:^8.4.6": + version: 8.4.7 + resolution: "@storybook/addon-interactions@npm:8.4.7" + dependencies: + "@storybook/global": "npm:^5.0.0" + "@storybook/instrumenter": "npm:8.4.7" + "@storybook/test": "npm:8.4.7" + polished: "npm:^4.2.2" + ts-dedent: "npm:^2.2.0" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/24d5c55eb7f320a002d54cc638a58f196d243b248df7735d68bba21e5b2b4cd0ba0369b78e7b67522ef741516b022e9e627db9a59476e0ea2da153736950d1bc + languageName: node + linkType: hard + +"@storybook/addon-links@npm:^8.3.4": + version: 8.4.7 + resolution: "@storybook/addon-links@npm:8.4.7" + dependencies: + "@storybook/csf": "npm:^0.1.11" + "@storybook/global": "npm:^5.0.0" + ts-dedent: "npm:^2.0.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.4.7 + peerDependenciesMeta: + react: + optional: true + checksum: 10/3d64225348f1c72dec069551044c7781de03a4775acfefb8ebe2d0c1a6e0171692a1222e15191bccd57b76ca9a995032df14974b7a6271f7a9b283c90bff1a00 + languageName: node + linkType: hard + +"@storybook/addon-measure@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/addon-measure@npm:8.4.7" + dependencies: + "@storybook/global": "npm:^5.0.0" + tiny-invariant: "npm:^1.3.1" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/d7c39c6048add359aa43ae10a65dda738f9b893a1963a9485a5ac0337f2961495fbdcf3e3907c2f19e7fb5380089f16c57a54113ed097cbf915bfe7f8b756ede + languageName: node + linkType: hard + +"@storybook/addon-onboarding@npm:^8.0.6, @storybook/addon-onboarding@npm:^8.4.6": + version: 8.4.7 + resolution: "@storybook/addon-onboarding@npm:8.4.7" + dependencies: + react-confetti: "npm:^6.1.0" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/d5a87f8aae2519a1b2c0f1da93497f7bfe7987c154613895e079780dc80eccf9c9b8fece4a7485dea019eda1b99a17121b0955b797bad9fe4582aca0dc344390 + languageName: node + linkType: hard + +"@storybook/addon-ondevice-actions@npm:^8.4.2": + version: 8.4.2 + resolution: "@storybook/addon-ondevice-actions@npm:8.4.2" + dependencies: + "@storybook/addon-actions": "npm:^8.4.2" + "@storybook/core": "npm:^8.4.2" + "@storybook/global": "npm:^5.0.0" + fast-deep-equal: "npm:^2.0.1" + peerDependencies: + react: "*" + react-native: "*" + checksum: 10/4ad3586817e833229f3bd79d96274eb7e694bff73fe676746a57afd55f6699861b9bda95f5421f0841eda671a8db529afb1c67d7177b0cf50374dc32953230c6 + languageName: node + linkType: hard + +"@storybook/addon-ondevice-controls@npm:^8.4.2": + version: 8.4.2 + resolution: "@storybook/addon-ondevice-controls@npm:8.4.2" + dependencies: + "@storybook/addon-controls": "npm:^8.4.2" + "@storybook/core": "npm:^8.4.2" + "@storybook/react-native-theming": "npm:^8.4.2" + "@storybook/react-native-ui": "npm:^8.4.2" + deep-equal: "npm:^1.0.1" + prop-types: "npm:^15.7.2" + react-native-modal-datetime-picker: "npm:^14.0.0" + react-native-modal-selector: "npm:^2.1.1" + tinycolor2: "npm:^1.4.1" + peerDependencies: + "@gorhom/bottom-sheet": ">=4" + "@react-native-community/datetimepicker": "*" + "@react-native-community/slider": "*" + react: "*" + react-native: "*" + checksum: 10/1492187dfb5a93f357d524392e4a013e3c798cf9f60ceffca48745136a0cdd6cf7bd4e58fdfa5be1fb7f84c209b3fdce6da7fff21e76d66d3f073b1c405b7e98 + languageName: node + linkType: hard + +"@storybook/addon-outline@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/addon-outline@npm:8.4.7" + dependencies: + "@storybook/global": "npm:^5.0.0" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/b213e725b3b150b3346e91206cd62bf348f537bfec999a6ca8c7c3a9f772ae69b0e67c50b29e48aaa3315753459bd66782d571a014cafe131d88e2ec3b68f060 + languageName: node + linkType: hard + +"@storybook/addon-react-native-web@npm:^0.0.26": + version: 0.0.26 + resolution: "@storybook/addon-react-native-web@npm:0.0.26" + peerDependencies: + "@babel/preset-react": "*" + "@react-native/babel-preset": "*" + babel-plugin-react-native-web: "*" + metro-react-native-babel-preset: "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@react-native/babel-preset": + optional: true + metro-react-native-babel-preset: + optional: true + react: + optional: true + react-dom: + optional: true + checksum: 10/35195eb648783dae1cf94dcbade40fbc2cb77e2a7fce37aabf7d5f77694ff6592ea0441da41849d56423d61497dd24348d1970a42a38b8f85a165cf6dd2f8f7e + languageName: node + linkType: hard + +"@storybook/addon-themes@npm:^8.0.6": + version: 8.4.7 + resolution: "@storybook/addon-themes@npm:8.4.7" + dependencies: + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/4a53ca22045f159d1c4d1310eda6d611882a3058a4dd96b41514e495ff085cd828beaa94c5ea25945fae3a066aef1b7300760717273c507e3ebaee6ad523886b + languageName: node + linkType: hard + +"@storybook/addon-toolbars@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/addon-toolbars@npm:8.4.7" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/dff15abb4942a95e89d8d84dfa210388b3fec845e2deee473752f340638348c314b68cb5c052644f3a12b1adba2b3b82dd2dd07a6ac427f6043e26993b81722d + languageName: node + linkType: hard + +"@storybook/addon-viewport@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/addon-viewport@npm:8.4.7" + dependencies: + memoizerific: "npm:^1.11.3" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/8eaf261e43d70b6453a4ec93a3b6ace728a13db0cf49c6c2f38ca49ad987f7b9268dccf71de2b2dd15cacb8862c9de86689ce258565e2c6fa21c20690ff5761a + languageName: node + linkType: hard + +"@storybook/addon-webpack5-compiler-babel@npm:^3.0.3": + version: 3.0.3 + resolution: "@storybook/addon-webpack5-compiler-babel@npm:3.0.3" + dependencies: + "@babel/core": "npm:^7.23.7" + babel-loader: "npm:^9.1.3" + checksum: 10/03a4e310438e127b06b195c901babea89fa215a4d9d9ff08f7206e8359b04aaee76c1dc42b2300872794cdd929ece9c2873bee32d9b5f8118c324cc2587cbc7a + languageName: node + linkType: hard + +"@storybook/addon-webpack5-compiler-swc@npm:^1.0.5": + version: 1.0.5 + resolution: "@storybook/addon-webpack5-compiler-swc@npm:1.0.5" + dependencies: + "@swc/core": "npm:^1.7.3" + swc-loader: "npm:^0.2.3" + checksum: 10/9856a700a5d9a36e1c35b404ec90331ed19617f73f63256752959ee4e2904142c5b0d883b436b5b70e1ec2e04038b461d5cf1d616243fa8cfedd0b5d69b73caf + languageName: node + linkType: hard + +"@storybook/blocks@npm:8.4.7, @storybook/blocks@npm:^8.0.6, @storybook/blocks@npm:^8.4.6": + version: 8.4.7 + resolution: "@storybook/blocks@npm:8.4.7" + dependencies: + "@storybook/csf": "npm:^0.1.11" + "@storybook/icons": "npm:^1.2.12" + ts-dedent: "npm:^2.0.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.4.7 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + checksum: 10/d1b92f08b7a829800b16d7a6c6b540eb9b855ca6b6dd7d87cd9c67d211590e76eb43b03d04685950839e764ac96fb6062872868f204fec91bfc1ec4624dbcd6c + languageName: node + linkType: hard + +"@storybook/builder-webpack5@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/builder-webpack5@npm:8.4.7" + dependencies: + "@storybook/core-webpack": "npm:8.4.7" + "@types/node": "npm:^22.0.0" + "@types/semver": "npm:^7.3.4" + browser-assert: "npm:^1.2.1" + case-sensitive-paths-webpack-plugin: "npm:^2.4.0" + cjs-module-lexer: "npm:^1.2.3" + constants-browserify: "npm:^1.0.0" + css-loader: "npm:^6.7.1" + es-module-lexer: "npm:^1.5.0" + fork-ts-checker-webpack-plugin: "npm:^8.0.0" + html-webpack-plugin: "npm:^5.5.0" + magic-string: "npm:^0.30.5" + path-browserify: "npm:^1.0.1" + process: "npm:^0.11.10" + semver: "npm:^7.3.7" + style-loader: "npm:^3.3.1" + terser-webpack-plugin: "npm:^5.3.1" + ts-dedent: "npm:^2.0.0" + url: "npm:^0.11.0" + util: "npm:^0.12.4" + util-deprecate: "npm:^1.0.2" + webpack: "npm:5" + webpack-dev-middleware: "npm:^6.1.2" + webpack-hot-middleware: "npm:^2.25.1" + webpack-virtual-modules: "npm:^0.6.0" + peerDependencies: + storybook: ^8.4.7 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/169d12e25780ec5801c051bc3abc3de12d236327f6ea035cfb6938f59db009e6bea88d4bbf1e13ceecb9fa726abd317a11fde88b3143b1e35608e62775d4761d + languageName: node + linkType: hard + +"@storybook/components@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/components@npm:8.4.7" + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10/e39fb81e8386db4f3f76cbf4f82e50512fed2f65a581951c0b61e00c9834c20cfff7f717e936353275dadfe6a25ffaac5d47151adbe1e3be85e709f8a64f6a15 + languageName: node + linkType: hard + +"@storybook/core-webpack@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/core-webpack@npm:8.4.7" + dependencies: + "@types/node": "npm:^22.0.0" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/561d28962e201086d9f0d739b377aaa5bdaad9eff0dd78cbb6cc9746b70fa3ad86d223e396f414345d19720807a3084ade16c9f2c634d07ed6b8b3355b96be91 + languageName: node + linkType: hard + +"@storybook/core@npm:8.4.7, @storybook/core@npm:^8.4.2": + version: 8.4.7 + resolution: "@storybook/core@npm:8.4.7" + dependencies: + "@storybook/csf": "npm:^0.1.11" + better-opn: "npm:^3.0.2" + browser-assert: "npm:^1.2.1" + esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0" + esbuild-register: "npm:^3.5.0" + jsdoc-type-pratt-parser: "npm:^4.0.0" + process: "npm:^0.11.10" + recast: "npm:^0.23.5" + semver: "npm:^7.6.2" + util: "npm:^0.12.5" + ws: "npm:^8.2.3" + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true + checksum: 10/a0bc9e1ea05ae69a914e508966f27208815de7aa2a4bed010c2c194bbdf397742f83e19ffa2efd98d2c04f08854c9b0b327632f6b0a3a90d2d3dd4c5002f14c5 + languageName: node + linkType: hard + +"@storybook/csf-plugin@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/csf-plugin@npm:8.4.7" + dependencies: + unplugin: "npm:^1.3.1" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/d9006d1a506796717528ee81948be89c8ca7e4a4ad463e024936d828b8e91e12940a41f054db4d5b1f1b058146113aaeb415eca87ca94142c3ef1ef501aead17 + languageName: node + linkType: hard + +"@storybook/csf@npm:^0.1.1, @storybook/csf@npm:^0.1.11": + version: 0.1.12 + resolution: "@storybook/csf@npm:0.1.12" + dependencies: + type-fest: "npm:^2.19.0" + checksum: 10/f661709de5bd68bfd4ced67df31ef26341168d6679bc13564cb024cfdbc8fdfa94d384267c20b3c858a3058b1ee8dbd71cea169245fcf7b28298890d6c3e1da4 + languageName: node + linkType: hard + +"@storybook/global@npm:^5.0.0": + version: 5.0.0 + resolution: "@storybook/global@npm:5.0.0" + checksum: 10/0e7b495f4fe7f36447e793926f1c0460ec07fd66f0da68e3150da5878f6043c9eeb9b41614a45c5ec0d48d5d383c59ca8f88b6dc7882a2a784ac9b20375d8edb + languageName: node + linkType: hard + +"@storybook/icons@npm:^1.2.12": + version: 1.3.0 + resolution: "@storybook/icons@npm:1.3.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + checksum: 10/927d7df7b16a4bab1340c303772938cbc932cdac0795be87491c09924f26a4222f2b574d650e9324e4a1459eeb394cce49b03f72411ae3a19889ab94c33e85b3 + languageName: node + linkType: hard + +"@storybook/instrumenter@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/instrumenter@npm:8.4.7" + dependencies: + "@storybook/global": "npm:^5.0.0" + "@vitest/utils": "npm:^2.1.1" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/8142789e7dd32f881cf9de551078fb3574cc54b47bb8fd2c8b66ea1fb100f14af702f4cbd4bc11a8d1dd4c89f5d0ce7574d2e232b197c43bbebd0a30c06c7e75 + languageName: node + linkType: hard + +"@storybook/manager-api@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/manager-api@npm:8.4.7" + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10/2b826ec55de7ea0b5b5151dfa896f3e7eddfd36ede61f8a7ad14a37733d5d5645565f863dbde7e2272f1e9b5717f26de7802ae60e297a2647ee2c4c072ed3069 + languageName: node + linkType: hard + +"@storybook/nextjs@npm:^8.0.6": + version: 8.4.7 + resolution: "@storybook/nextjs@npm:8.4.7" + dependencies: + "@babel/core": "npm:^7.24.4" + "@babel/plugin-syntax-bigint": "npm:^7.8.3" + "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" + "@babel/plugin-syntax-import-assertions": "npm:^7.24.1" + "@babel/plugin-transform-class-properties": "npm:^7.24.1" + "@babel/plugin-transform-export-namespace-from": "npm:^7.24.1" + "@babel/plugin-transform-numeric-separator": "npm:^7.24.1" + "@babel/plugin-transform-object-rest-spread": "npm:^7.24.1" + "@babel/plugin-transform-runtime": "npm:^7.24.3" + "@babel/preset-env": "npm:^7.24.4" + "@babel/preset-react": "npm:^7.24.1" + "@babel/preset-typescript": "npm:^7.24.1" + "@babel/runtime": "npm:^7.24.4" + "@pmmmwh/react-refresh-webpack-plugin": "npm:^0.5.11" + "@storybook/builder-webpack5": "npm:8.4.7" + "@storybook/preset-react-webpack": "npm:8.4.7" + "@storybook/react": "npm:8.4.7" + "@storybook/test": "npm:8.4.7" + "@types/node": "npm:^22.0.0" + "@types/semver": "npm:^7.3.4" + babel-loader: "npm:^9.1.3" + css-loader: "npm:^6.7.3" + find-up: "npm:^5.0.0" + image-size: "npm:^1.0.0" + loader-utils: "npm:^3.2.1" + node-polyfill-webpack-plugin: "npm:^2.0.1" + pnp-webpack-plugin: "npm:^1.7.0" + postcss: "npm:^8.4.38" + postcss-loader: "npm:^8.1.1" + react-refresh: "npm:^0.14.0" + resolve-url-loader: "npm:^5.0.0" + sass-loader: "npm:^13.2.0" + semver: "npm:^7.3.5" + sharp: "npm:^0.33.3" + style-loader: "npm:^3.3.1" + styled-jsx: "npm:^5.1.6" + ts-dedent: "npm:^2.0.0" + tsconfig-paths: "npm:^4.0.0" + tsconfig-paths-webpack-plugin: "npm:^4.0.1" + peerDependencies: + next: ^13.5.0 || ^14.0.0 || ^15.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.4.7 + webpack: ^5.0.0 + dependenciesMeta: + sharp: + optional: true + peerDependenciesMeta: + typescript: + optional: true + webpack: + optional: true + checksum: 10/730e6c1a845f8498106151b49ad9a792b8db12089d398213f0e28bfdfe5833491e48c6298cfc489a6e9d46cbf02a849fbe9a2ad3738a163a6623e3017006b8d1 + languageName: node + linkType: hard + +"@storybook/preset-react-webpack@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/preset-react-webpack@npm:8.4.7" + dependencies: + "@storybook/core-webpack": "npm:8.4.7" + "@storybook/react": "npm:8.4.7" + "@storybook/react-docgen-typescript-plugin": "npm:1.0.6--canary.9.0c3f3b7.0" + "@types/node": "npm:^22.0.0" + "@types/semver": "npm:^7.3.4" + find-up: "npm:^5.0.0" + magic-string: "npm:^0.30.5" + react-docgen: "npm:^7.0.0" + resolve: "npm:^1.22.8" + semver: "npm:^7.3.7" + tsconfig-paths: "npm:^4.2.0" + webpack: "npm:5" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.4.7 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/d338fa45547126ee35ec0433a9811d9c816cebf27ec7598539b62bb08b5a9c39634986670e1cbcf11778a13691ee0695fc71e4dea68c393e5feb6ae478d047f5 + languageName: node + linkType: hard + +"@storybook/preview-api@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/preview-api@npm:8.4.7" + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10/1c467bb2c16c5998b9bc4c2c013e6786936d5f6a373ad8d8ab1beb626616c3187329fdfc3a709663b4af963c7e5789a1401166c6e2a3a66a12f66e858aa94e91 + languageName: node + linkType: hard + +"@storybook/react-docgen-typescript-plugin@npm:1.0.6--canary.9.0c3f3b7.0": + version: 1.0.6--canary.9.0c3f3b7.0 + resolution: "@storybook/react-docgen-typescript-plugin@npm:1.0.6--canary.9.0c3f3b7.0" + dependencies: + debug: "npm:^4.1.1" + endent: "npm:^2.0.1" + find-cache-dir: "npm:^3.3.1" + flat-cache: "npm:^3.0.4" + micromatch: "npm:^4.0.2" + react-docgen-typescript: "npm:^2.2.2" + tslib: "npm:^2.0.0" + peerDependencies: + typescript: ">= 4.x" + webpack: ">= 4" + checksum: 10/5d3c64b022d10d7316b600a41eec2cf38ba460e11bf9a01ae976e8d0efe6959633423d2a3546a5d3f9f04bcc946e83774e8efdf9ccfedb76a7065ec08e7ec809 languageName: node linkType: hard -"@scure/bip39@npm:1.5.0, @scure/bip39@npm:^1.4.0": - version: 1.5.0 - resolution: "@scure/bip39@npm:1.5.0" - dependencies: - "@noble/hashes": "npm:~1.6.0" - "@scure/base": "npm:~1.2.1" - checksum: 10/b795ee31ac4c10603bf3b726cc0e5cf43834a68f05a535e0baf2162772bac100de470b4c6cf7ddbecb95d7a3fb82b8a959badced406c329ab696cd89104194bc +"@storybook/react-dom-shim@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/react-dom-shim@npm:8.4.7" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.4.7 + checksum: 10/c45af3e1320f131231aad794c8f0d565677313ba0edbac31e3551bab371927f31ec780151fbc451c57205bd0b73a157b95901d2c4d06c6a63ce868866948f328 languageName: node linkType: hard -"@sentry-internal/feedback@npm:7.120.2": - version: 7.120.2 - resolution: "@sentry-internal/feedback@npm:7.120.2" +"@storybook/react-native-theming@npm:^8.4.2": + version: 8.4.2 + resolution: "@storybook/react-native-theming@npm:8.4.2" dependencies: - "@sentry/core": "npm:7.120.2" - "@sentry/types": "npm:7.120.2" - "@sentry/utils": "npm:7.120.2" - checksum: 10/b25036485d70967d45cc553fdfcfcd80aba187b369e26600b124de36e7412708f60344df0f8c49ddf21c55de06d57a6cc7ba1e6cd2e8ee5efc21b9baf0093e12 + polished: "npm:^4.3.1" + peerDependencies: + react: "*" + react-native: ">=0.57.0" + checksum: 10/cce4ef075961067f8d6a1258107324f9ad2f818556d72ba43f68b35e7443bfb3ad537d41345d854a23f77a927189dcd1d7ecdf00b2977fe21b0bbc95fd6a6041 languageName: node linkType: hard -"@sentry-internal/replay-canvas@npm:7.120.2": - version: 7.120.2 - resolution: "@sentry-internal/replay-canvas@npm:7.120.2" +"@storybook/react-native-ui@npm:^8.4.2": + version: 8.4.2 + resolution: "@storybook/react-native-ui@npm:8.4.2" dependencies: - "@sentry/core": "npm:7.120.2" - "@sentry/replay": "npm:7.120.2" - "@sentry/types": "npm:7.120.2" - "@sentry/utils": "npm:7.120.2" - checksum: 10/c8f123227af25e818eef6d4ea12c1c3c7f0c3fadc83d219f768cef2929a1169db5aff62f1ccc4946743ae04628f30880f4df2d8be176667f9301c0bf7a56ddc3 + "@storybook/core": "npm:^8.4.2" + "@storybook/react": "npm:^8.4.2" + "@storybook/react-native-theming": "npm:^8.4.2" + fuse.js: "npm:^7.0.0" + memoizerific: "npm:^1.11.3" + polished: "npm:^4.3.1" + store2: "npm:^2.14.3" + peerDependencies: + "@gorhom/bottom-sheet": ">=4" + react: "*" + react-native: ">=0.57.0" + react-native-gesture-handler: ">=2" + react-native-reanimated: ">=3" + react-native-safe-area-context: "*" + react-native-svg: ">=14" + checksum: 10/1e0a3055320cfba601a16ab42c9216494b3d10795c8c888655321d8dc9db9b598eee9c5992feba64bcf3176195a366f3c495b9d5a73b8d736deaea273b1759ed languageName: node linkType: hard -"@sentry-internal/tracing@npm:7.120.2": - version: 7.120.2 - resolution: "@sentry-internal/tracing@npm:7.120.2" +"@storybook/react-native@npm:^8.4.2": + version: 8.4.2 + resolution: "@storybook/react-native@npm:8.4.2" dependencies: - "@sentry/core": "npm:7.120.2" - "@sentry/types": "npm:7.120.2" - "@sentry/utils": "npm:7.120.2" - checksum: 10/24dbc1be80434431b78fbc6df58f600383e8e41e151237183ff1e59eb17823fec9e924102a9a3d439a0c003a9cf7335cc59902e671519274bfd7d802566ab089 + "@storybook/core": "npm:^8.4.2" + "@storybook/csf": "npm:^0.1.1" + "@storybook/global": "npm:^5.0.0" + "@storybook/react": "npm:^8.4.2" + "@storybook/react-native-theming": "npm:^8.4.2" + "@storybook/react-native-ui": "npm:^8.4.2" + chokidar: "npm:^3.5.1" + commander: "npm:^8.2.0" + dedent: "npm:^1.5.1" + deepmerge: "npm:^4.3.0" + glob: "npm:^7.1.7" + prettier: "npm:^2.4.1" + react-native-swipe-gestures: "npm:^1.0.5" + react-native-url-polyfill: "npm:^2.0.0" + setimmediate: "npm:^1.0.5" + storybook: "npm:^8.4.2" + type-fest: "npm:~2.19" + util: "npm:^0.12.4" + ws: "npm:^8.18.0" + peerDependencies: + "@gorhom/bottom-sheet": ">=4" + react: "*" + react-native: ">=0.72.0" + react-native-gesture-handler: ">=2" + react-native-safe-area-context: "*" + bin: + sb-rn-get-stories: ./bin/get-stories.js + sb-rn-watcher: ./bin/watcher.js + checksum: 10/8a0a13ef40561831995ca083eed5d4c85e0555c15e4dd458177d3b759ffa90a37e323365ce8da6b1f381083c0aa3e768210a7b08c3bacc9ff8acdf7d06172393 languageName: node linkType: hard -"@sentry/browser@npm:7.120.2": - version: 7.120.2 - resolution: "@sentry/browser@npm:7.120.2" +"@storybook/react-webpack5@npm:^8.4.6": + version: 8.4.7 + resolution: "@storybook/react-webpack5@npm:8.4.7" dependencies: - "@sentry-internal/feedback": "npm:7.120.2" - "@sentry-internal/replay-canvas": "npm:7.120.2" - "@sentry-internal/tracing": "npm:7.120.2" - "@sentry/core": "npm:7.120.2" - "@sentry/integrations": "npm:7.120.2" - "@sentry/replay": "npm:7.120.2" - "@sentry/types": "npm:7.120.2" - "@sentry/utils": "npm:7.120.2" - checksum: 10/6ed7d756a045ff878725ac94f8658d569874614b7638dfaf6f2dc51a18b70e3e0fc6fb32058e09e0787cb22e1f6addc1e29ec56aef8d9493c6bb9a1f3ff8131d + "@storybook/builder-webpack5": "npm:8.4.7" + "@storybook/preset-react-webpack": "npm:8.4.7" + "@storybook/react": "npm:8.4.7" + "@types/node": "npm:^22.0.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.4.7 + typescript: ">= 4.2.x" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/368565a6f8173025dbaa621d161562d0076f87e7ffd72e4bcd5a145501aa6376bc6a6fadad52a9876b586cc1ff82ffd0774faa9fc4833db41447121a8d6bae86 languageName: node linkType: hard -"@sentry/core@npm:7.120.2": - version: 7.120.2 - resolution: "@sentry/core@npm:7.120.2" +"@storybook/react@npm:8.4.7, @storybook/react@npm:^8.0.6, @storybook/react@npm:^8.4.2, @storybook/react@npm:^8.4.6": + version: 8.4.7 + resolution: "@storybook/react@npm:8.4.7" dependencies: - "@sentry/types": "npm:7.120.2" - "@sentry/utils": "npm:7.120.2" - checksum: 10/6899da46ef74d767e716db3d9bc0da715ce2a8f4016695583058b497f909ccb09199ec2ab21ac280ea0cd6bae9ddd78f066cb624ce4965e608e4cb2caf0039ff + "@storybook/components": "npm:8.4.7" + "@storybook/global": "npm:^5.0.0" + "@storybook/manager-api": "npm:8.4.7" + "@storybook/preview-api": "npm:8.4.7" + "@storybook/react-dom-shim": "npm:8.4.7" + "@storybook/theming": "npm:8.4.7" + peerDependencies: + "@storybook/test": 8.4.7 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.4.7 + typescript: ">= 4.2.x" + peerDependenciesMeta: + "@storybook/test": + optional: true + typescript: + optional: true + checksum: 10/4138b11118a313dca2551de307b994f84121c306f2d3a66c29ef9fb07352451a899ce91fd8736149182f8806a7c03dbbe7a4a7d463b0ab3eddbd195057c4cbf8 languageName: node linkType: hard -"@sentry/hub@npm:6.19.7": - version: 6.19.7 - resolution: "@sentry/hub@npm:6.19.7" +"@storybook/test@npm:8.4.7, @storybook/test@npm:^8.0.6, @storybook/test@npm:^8.4.6": + version: 8.4.7 + resolution: "@storybook/test@npm:8.4.7" dependencies: - "@sentry/types": "npm:6.19.7" - "@sentry/utils": "npm:6.19.7" - tslib: "npm:^1.9.3" - checksum: 10/ef2381ec399305ee56f7cff990c5bf0f221119193ac1b0862d237c42c9e214a8a3dcabe55085e197710c9667f1c541fffc3fe37e89d7562f3c86432c22d7f09a + "@storybook/csf": "npm:^0.1.11" + "@storybook/global": "npm:^5.0.0" + "@storybook/instrumenter": "npm:8.4.7" + "@testing-library/dom": "npm:10.4.0" + "@testing-library/jest-dom": "npm:6.5.0" + "@testing-library/user-event": "npm:14.5.2" + "@vitest/expect": "npm:2.0.5" + "@vitest/spy": "npm:2.0.5" + peerDependencies: + storybook: ^8.4.7 + checksum: 10/e6e8c2b5b63337e297362716a9de81818f8d94107cc1eea6c1aef75d0ad93d417d277fa90068ee1960acba98ea2658660514148d106a547419c9088c20905f02 languageName: node linkType: hard -"@sentry/integrations@npm:7.120.2": - version: 7.120.2 - resolution: "@sentry/integrations@npm:7.120.2" - dependencies: - "@sentry/core": "npm:7.120.2" - "@sentry/types": "npm:7.120.2" - "@sentry/utils": "npm:7.120.2" - localforage: "npm:^1.8.1" - checksum: 10/4fc6e78125258a9268781f260c234712789d48951481f383b156be82c251182a0a6742d26f5d15297a61b44411e0a129975a84497435d4efb4be628d66fa3a1e +"@storybook/theming@npm:8.4.7": + version: 8.4.7 + resolution: "@storybook/theming@npm:8.4.7" + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + checksum: 10/47d29993c33bb29994d227af30e099579b7cf760652ed743020f5d7e5a5974f59a6ebeb1cc8995e6158da9cf768a8d2f559d1d819cc082d0bcdb056d85fdcb29 languageName: node linkType: hard -"@sentry/minimal@npm:^6.19.7": - version: 6.19.7 - resolution: "@sentry/minimal@npm:6.19.7" +"@surma/rollup-plugin-off-main-thread@npm:^2.2.3": + version: 2.2.3 + resolution: "@surma/rollup-plugin-off-main-thread@npm:2.2.3" dependencies: - "@sentry/hub": "npm:6.19.7" - "@sentry/types": "npm:6.19.7" - tslib: "npm:^1.9.3" - checksum: 10/eac4f79f7116dee90bfd8ea284c777c267e70c0b51883bc419f176dd5283b2b1955ede0bc471759f26a8c686f78f7a664560684a8998fc4c6f85d9e1539d39f9 + ejs: "npm:^3.1.6" + json5: "npm:^2.2.0" + magic-string: "npm:^0.25.0" + string.prototype.matchall: "npm:^4.0.6" + checksum: 10/0c7dc1c1fc396454513dec9ef34e743ffc8662adc20eeaf392a9cca4bd8a4a33af239c057022b6272c3fc438550e3c7099cdea5f50eb61c5058308989c7c48d6 languageName: node linkType: hard -"@sentry/react@npm:^7.91.0": - version: 7.120.2 - resolution: "@sentry/react@npm:7.120.2" - dependencies: - "@sentry/browser": "npm:7.120.2" - "@sentry/core": "npm:7.120.2" - "@sentry/types": "npm:7.120.2" - "@sentry/utils": "npm:7.120.2" - hoist-non-react-statics: "npm:^3.3.2" +"@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0" peerDependencies: - react: 15.x || 16.x || 17.x || 18.x - checksum: 10/df8b039b2d9df2234dfe025a4a4b650e79042e1a8f5dd0bac2ccc0decf3917a8781f453125788944dbcbefd926069039536db52f03801cf274dd5f0790822faa + "@babel/core": ^7.0.0-0 + checksum: 10/3fc8e35d16f5abe0af5efe5851f27581225ac405d6a1ca44cda0df064cddfcc29a428c48c2e4bef6cebf627c9ac2f652a096030edb02cf5a120ce28d3c234710 languageName: node linkType: hard -"@sentry/replay@npm:7.120.2": - version: 7.120.2 - resolution: "@sentry/replay@npm:7.120.2" - dependencies: - "@sentry-internal/tracing": "npm:7.120.2" - "@sentry/core": "npm:7.120.2" - "@sentry/types": "npm:7.120.2" - "@sentry/utils": "npm:7.120.2" - checksum: 10/84b56a35f974308aa5ab576dee7294ebea870d697f419a788dc51d0c0135079a6fb939b85f6e3681ded6b7462da1e7c4ffa1c5fe81b3f3e73f589dc87e0eef0a +"@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/ff992893c6c4ac802713ba3a97c13be34e62e6d981c813af40daabcd676df68a72a61bd1e692bb1eda3587f1b1d700ea462222ae2153bb0f46886632d4f88d08 languageName: node linkType: hard -"@sentry/types@npm:6.19.7": - version: 6.19.7 - resolution: "@sentry/types@npm:6.19.7" - checksum: 10/f9f70e94c4a3876f6119f7e3979051ea2a054adce6f5583de9f70a08642c7d2c2f80a70a1f9fe5f9fad4e99315f4483340ded1110ae2e7c825c4c1f210fc2507 +"@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/0fb691b63a21bac00da3aa2dccec50d0d5a5b347ff408d60803b84410d8af168f2656e4ba1ee1f24dab0ae4e4af77901f2928752bb0434c1f6788133ec599ec8 languageName: node linkType: hard -"@sentry/types@npm:7.120.2, @sentry/types@npm:^7.74.0": - version: 7.120.2 - resolution: "@sentry/types@npm:7.120.2" - checksum: 10/aceaf08ea382ab6c7ac2a9fe7c3953998736aa56458f9ecc6d8ed304912abff505e2ca08f9b7563b02114eb812b1bf3aa6a2c78b6067f306b28c7c1f1425f25d +"@svgr/babel-plugin-replace-jsx-attribute-value@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-replace-jsx-attribute-value@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/1edda65ef4f4dd8f021143c8ec276a08f6baa6f733b8e8ee2e7775597bf6b97afb47fdeefd579d6ae6c959fe2e634f55cd61d99377631212228c8cfb351b8921 languageName: node linkType: hard -"@sentry/utils@npm:6.19.7": - version: 6.19.7 - resolution: "@sentry/utils@npm:6.19.7" - dependencies: - "@sentry/types": "npm:6.19.7" - tslib: "npm:^1.9.3" - checksum: 10/0ea94d32940705d77b019ca821e45a5866bb3d443e0f19b9bf5edf3d7ffed68c451803f3388913fec4da875e4b7df46b5f8a8681c4d69972fb3d775d864997b2 +"@svgr/babel-plugin-svg-dynamic-title@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-svg-dynamic-title@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/876cec891488992e6a9aebb8155e2bea4ec461b4718c51de36e988e00e271c6d9d01ef6be17b9effd44b2b3d7db0b41c161a5904a46ae6f38b26b387ad7f3709 languageName: node linkType: hard -"@sentry/utils@npm:7.120.2": - version: 7.120.2 - resolution: "@sentry/utils@npm:7.120.2" - dependencies: - "@sentry/types": "npm:7.120.2" - checksum: 10/9ac41322504d17d41b4b4b9216f0008539b80e5f6816d098ca52f4f8c51c5406f2beee9a3464ba0290874f643753f6a16bdfbbaeae76cda9ac41cbea4adcc5ec +"@svgr/babel-plugin-svg-em-dimensions@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-svg-em-dimensions@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/be0e2d391164428327d9ec469a52cea7d93189c6b0e2c290999e048f597d777852f701c64dca44cd45b31ed14a7f859520326e2e4ad7c3a4545d0aa235bc7e9a languageName: node linkType: hard -"@sideway/address@npm:^4.1.3": - version: 4.1.5 - resolution: "@sideway/address@npm:4.1.5" - dependencies: - "@hapi/hoek": "npm:^9.0.0" - checksum: 10/c4c73ac0339504f34e016d3a687118e7ddf197c1c968579572123b67b230be84caa705f0f634efdfdde7f2e07a6e0224b3c70665dc420d8bc95bf400cfc4c998 +"@svgr/babel-plugin-transform-react-native-svg@npm:8.1.0": + version: 8.1.0 + resolution: "@svgr/babel-plugin-transform-react-native-svg@npm:8.1.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/85b434a57572f53bd2b9f0606f253e1fcf57b4a8c554ec3f2d43ed17f50d8cae200cb3aaf1ec9d626e1456e8b135dce530ae047eb0bed6d4bf98a752d6640459 languageName: node linkType: hard -"@sideway/formula@npm:^3.0.1": - version: 3.0.1 - resolution: "@sideway/formula@npm:3.0.1" - checksum: 10/8d3ee7f80df4e5204b2cbe92a2a711ca89684965a5c9eb3b316b7051212d3522e332a65a0bb2a07cc708fcd1d0b27fcb30f43ff0bcd5089d7006c7160a89eefe +"@svgr/babel-plugin-transform-svg-component@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/babel-plugin-transform-svg-component@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/86ca139c0be0e7df05f103c5f10874387ada1434ca0286584ba9cd367c259d74bf9c86700b856449f46cf674bd6f0cf18f8f034f6d3f0e2ce5e5435c25dbff4b + languageName: node + linkType: hard + +"@svgr/babel-preset@npm:8.1.0": + version: 8.1.0 + resolution: "@svgr/babel-preset@npm:8.1.0" + dependencies: + "@svgr/babel-plugin-add-jsx-attribute": "npm:8.0.0" + "@svgr/babel-plugin-remove-jsx-attribute": "npm:8.0.0" + "@svgr/babel-plugin-remove-jsx-empty-expression": "npm:8.0.0" + "@svgr/babel-plugin-replace-jsx-attribute-value": "npm:8.0.0" + "@svgr/babel-plugin-svg-dynamic-title": "npm:8.0.0" + "@svgr/babel-plugin-svg-em-dimensions": "npm:8.0.0" + "@svgr/babel-plugin-transform-react-native-svg": "npm:8.1.0" + "@svgr/babel-plugin-transform-svg-component": "npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/3a67930f080b8891e1e8e2595716b879c944d253112bae763dce59807ba23454d162216c8d66a0a0e3d4f38a649ecd6c387e545d1e1261dd69a68e9a3392ee08 languageName: node linkType: hard -"@sideway/pinpoint@npm:^2.0.0": - version: 2.0.0 - resolution: "@sideway/pinpoint@npm:2.0.0" - checksum: 10/1ed21800128b2b23280ba4c9db26c8ff6142b97a8683f17639fd7f2128aa09046461574800b30fb407afc5b663c2331795ccf3b654d4b38fa096e41a5c786bf8 +"@svgr/core@npm:8.1.0": + version: 8.1.0 + resolution: "@svgr/core@npm:8.1.0" + dependencies: + "@babel/core": "npm:^7.21.3" + "@svgr/babel-preset": "npm:8.1.0" + camelcase: "npm:^6.2.0" + cosmiconfig: "npm:^8.1.3" + snake-case: "npm:^3.0.4" + checksum: 10/bc98cd5fc349ab9dcf0c13c2279164726d45878cdac8999090765379c6e897a1b24aca641c12a3c33f578d06f7a09252fb090962a4695c753fb02b627a56bfe6 languageName: node linkType: hard -"@sinclair/typebox@npm:^0.27.8": - version: 0.27.8 - resolution: "@sinclair/typebox@npm:0.27.8" - checksum: 10/297f95ff77c82c54de8c9907f186076e715ff2621c5222ba50b8d40a170661c0c5242c763cba2a4791f0f91cb1d8ffa53ea1d7294570cf8cd4694c0e383e484d +"@svgr/hast-util-to-babel-ast@npm:8.0.0": + version: 8.0.0 + resolution: "@svgr/hast-util-to-babel-ast@npm:8.0.0" + dependencies: + "@babel/types": "npm:^7.21.3" + entities: "npm:^4.4.0" + checksum: 10/243aa9c92d66aa3f1fc82851fe1fa376808a08fcc02719fed38ebfb4e25cf3e3c1282c185300c29953d047c36acb9e3ac588d46b0af55a3b7a5186a6badec8a9 languageName: node linkType: hard -"@sinclair/typebox@npm:^0.33.7": - version: 0.33.22 - resolution: "@sinclair/typebox@npm:0.33.22" - checksum: 10/7be51bd6f112b2152dfc2f6fe24f565474bc908e1dd78d587c8ff4d9119187839f486baf51f5b8ef162cc8eb2201fd3c604839ad422e0adc12572fb48b472097 +"@svgr/plugin-jsx@npm:8.1.0": + version: 8.1.0 + resolution: "@svgr/plugin-jsx@npm:8.1.0" + dependencies: + "@babel/core": "npm:^7.21.3" + "@svgr/babel-preset": "npm:8.1.0" + "@svgr/hast-util-to-babel-ast": "npm:8.0.0" + svg-parser: "npm:^2.0.4" + peerDependencies: + "@svgr/core": "*" + checksum: 10/0418a9780753d3544912ee2dad5d2cf8d12e1ba74df8053651b3886aeda54d5f0f7d2dece0af5e0d838332c4f139a57f0dabaa3ca1afa4d1a765efce6a7656f2 languageName: node linkType: hard -"@sinonjs/commons@npm:^3.0.0": - version: 3.0.1 - resolution: "@sinonjs/commons@npm:3.0.1" +"@svgr/plugin-svgo@npm:8.1.0": + version: 8.1.0 + resolution: "@svgr/plugin-svgo@npm:8.1.0" dependencies: - type-detect: "npm:4.0.8" - checksum: 10/a0af217ba7044426c78df52c23cedede6daf377586f3ac58857c565769358ab1f44ebf95ba04bbe38814fba6e316ca6f02870a009328294fc2c555d0f85a7117 + cosmiconfig: "npm:^8.1.3" + deepmerge: "npm:^4.3.1" + svgo: "npm:^3.0.2" + peerDependencies: + "@svgr/core": "*" + checksum: 10/59d9d214cebaacca9ca71a561f463d8b7e5a68ca9443e4792a42d903acd52259b1790c0680bc6afecc3f00a255a6cbd7ea278a9f625bac443620ea58a590c2d0 languageName: node linkType: hard -"@sinonjs/fake-timers@npm:^10.0.2": - version: 10.3.0 - resolution: "@sinonjs/fake-timers@npm:10.3.0" +"@svgr/webpack@npm:^8.1.0": + version: 8.1.0 + resolution: "@svgr/webpack@npm:8.1.0" dependencies: - "@sinonjs/commons": "npm:^3.0.0" - checksum: 10/78155c7bd866a85df85e22028e046b8d46cf3e840f72260954f5e3ed5bd97d66c595524305a6841ffb3f681a08f6e5cef572a2cce5442a8a232dc29fb409b83e + "@babel/core": "npm:^7.21.3" + "@babel/plugin-transform-react-constant-elements": "npm:^7.21.3" + "@babel/preset-env": "npm:^7.20.2" + "@babel/preset-react": "npm:^7.18.6" + "@babel/preset-typescript": "npm:^7.21.0" + "@svgr/core": "npm:8.1.0" + "@svgr/plugin-jsx": "npm:8.1.0" + "@svgr/plugin-svgo": "npm:8.1.0" + checksum: 10/c6eec5b0cf2fb2ecd3a7a362d272eda35330b17c76802a3481f499b5d07ff8f87b31d2571043bff399b051a1767b1e2e499dbf186104d1c06d76f9f1535fac01 languageName: node linkType: hard -"@solana-program/token@npm:^0.4.1": - version: 0.4.1 - resolution: "@solana-program/token@npm:0.4.1" - peerDependencies: - "@solana/web3.js": ^2.0.0 - checksum: 10/c85e83bd43019fb6d0b1e5c0105b0e45fc073ff7bbd1bdb472c37c3ed462f96702ef2461942100c6bd94499e8881106fc90f272b9e45f304c601eb8909e90330 +"@swc/core-darwin-arm64@npm:1.10.0": + version: 1.10.0 + resolution: "@swc/core-darwin-arm64@npm:1.10.0" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@solana/accounts@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/accounts@npm:2.0.0" - dependencies: - "@solana/addresses": "npm:2.0.0" - "@solana/codecs-core": "npm:2.0.0" - "@solana/codecs-strings": "npm:2.0.0" - "@solana/errors": "npm:2.0.0" - "@solana/rpc-spec": "npm:2.0.0" - "@solana/rpc-types": "npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/ff516e50b4544227d041851ca9ad0fda1055cf469451dd3648cec66436266810c56bfe8854118fec59e2b6a26fb6b78fa531dd9616765333276fa9ed1ab13eb5 +"@swc/core-darwin-x64@npm:1.10.0": + version: 1.10.0 + resolution: "@swc/core-darwin-x64@npm:1.10.0" + conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@solana/addresses@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/addresses@npm:2.0.0" - dependencies: - "@solana/assertions": "npm:2.0.0" - "@solana/codecs-core": "npm:2.0.0" - "@solana/codecs-strings": "npm:2.0.0" - "@solana/errors": "npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/f99d09c72046c73858aa8b7bc323e634a60b1023a4d280036bc94489e431075c7f29d2889e8787e33a04cfdecbe77cd8ca26c31ded73f735dc98e49c3151cc17 +"@swc/core-linux-arm-gnueabihf@npm:1.10.0": + version: 1.10.0 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.10.0" + conditions: os=linux & cpu=arm languageName: node linkType: hard -"@solana/assertions@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/assertions@npm:2.0.0" - dependencies: - "@solana/errors": "npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/c1af37ae1bd79b1657395d9315ac261dabc9908a64af6ed80e3b7e5140909cd8c8c757f0c41fff084e26fbb4d32f091c89c092a8c1ed5e6f4565dfe7426c0979 +"@swc/core-linux-arm64-gnu@npm:1.10.0": + version: 1.10.0 + resolution: "@swc/core-linux-arm64-gnu@npm:1.10.0" + conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@solana/codecs-core@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/codecs-core@npm:2.0.0" - dependencies: - "@solana/errors": "npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/e58a72e67bee3e5da60201eecda345c604b49138d5298e39b8e7d4d57a4dee47be3b0ecc8fc3429a2a60a42c952eaf860d43d3df1eb2b1d857e35368eca9c820 +"@swc/core-linux-arm64-musl@npm:1.10.0": + version: 1.10.0 + resolution: "@swc/core-linux-arm64-musl@npm:1.10.0" + conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@solana/codecs-data-structures@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/codecs-data-structures@npm:2.0.0" - dependencies: - "@solana/codecs-core": "npm:2.0.0" - "@solana/codecs-numbers": "npm:2.0.0" - "@solana/errors": "npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/7112beaf42c63b8d895141bcbd9fa503c1e81d857f39f5f63913bd3429e09457d983d5c996024d568dd887206241e628aae7fcd47e16eac7426edfcff38f925c +"@swc/core-linux-x64-gnu@npm:1.10.0": + version: 1.10.0 + resolution: "@swc/core-linux-x64-gnu@npm:1.10.0" + conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@solana/codecs-numbers@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/codecs-numbers@npm:2.0.0" - dependencies: - "@solana/codecs-core": "npm:2.0.0" - "@solana/errors": "npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/500144d549ea0292c2f672300610df9054339a31cb6a4e61b29623308ef3b14f15eb587ee6139cf3334d2e0f29db1da053522da244b12184bb8fbdb097b7102b +"@swc/core-linux-x64-musl@npm:1.10.0": + version: 1.10.0 + resolution: "@swc/core-linux-x64-musl@npm:1.10.0" + conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@solana/codecs-strings@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/codecs-strings@npm:2.0.0" - dependencies: - "@solana/codecs-core": "npm:2.0.0" - "@solana/codecs-numbers": "npm:2.0.0" - "@solana/errors": "npm:2.0.0" - peerDependencies: - fastestsmallesttextencoderdecoder: ^1.0.22 - typescript: ">=5" - checksum: 10/4380136e2603c2cee12a28438817beb34b0fe45da222b8c38342c5b3680f02086ec7868cde0bb7b4e5dd459af5988613af1d97230c6a193db3be1c45122aba39 +"@swc/core-win32-arm64-msvc@npm:1.10.0": + version: 1.10.0 + resolution: "@swc/core-win32-arm64-msvc@npm:1.10.0" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@solana/codecs@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/codecs@npm:2.0.0" - dependencies: - "@solana/codecs-core": "npm:2.0.0" - "@solana/codecs-data-structures": "npm:2.0.0" - "@solana/codecs-numbers": "npm:2.0.0" - "@solana/codecs-strings": "npm:2.0.0" - "@solana/options": "npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/145edff71933af37d34f6cccb2158d43872e19b6014d2abe26f317f93ded0827b7d71fad168513cdb7cbfc825c2f58fd6c2ce5775e6a45298608ce6b6d6f4c2a +"@swc/core-win32-ia32-msvc@npm:1.10.0": + version: 1.10.0 + resolution: "@swc/core-win32-ia32-msvc@npm:1.10.0" + conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@solana/errors@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/errors@npm:2.0.0" - dependencies: - chalk: "npm:^5.3.0" - commander: "npm:^12.1.0" - peerDependencies: - typescript: ">=5" - bin: - errors: bin/cli.mjs - checksum: 10/4191f96cad47c64266ec501ae1911a6245fd02b2f68a2c53c3dabbc63eb7c5462f170a765b584348b195da2387e7ca02096d792c67352c2c30a4f3a3cc7e4270 +"@swc/core-win32-x64-msvc@npm:1.10.0": + version: 1.10.0 + resolution: "@swc/core-win32-x64-msvc@npm:1.10.0" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@solana/fast-stable-stringify@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/fast-stable-stringify@npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/b55ece277ab2489c37a543eb28ff593bb794f8c4aac74c15fb6e61f194f1c2b8102c3a46cc4b87ab01d637af78d8a7165b0efb3da6023da3cf94d93897248699 +"@swc/core@npm:^1.5.25, @swc/core@npm:^1.7.21, @swc/core@npm:^1.7.3": + version: 1.10.0 + resolution: "@swc/core@npm:1.10.0" + dependencies: + "@swc/core-darwin-arm64": "npm:1.10.0" + "@swc/core-darwin-x64": "npm:1.10.0" + "@swc/core-linux-arm-gnueabihf": "npm:1.10.0" + "@swc/core-linux-arm64-gnu": "npm:1.10.0" + "@swc/core-linux-arm64-musl": "npm:1.10.0" + "@swc/core-linux-x64-gnu": "npm:1.10.0" + "@swc/core-linux-x64-musl": "npm:1.10.0" + "@swc/core-win32-arm64-msvc": "npm:1.10.0" + "@swc/core-win32-ia32-msvc": "npm:1.10.0" + "@swc/core-win32-x64-msvc": "npm:1.10.0" + "@swc/counter": "npm:^0.1.3" + "@swc/types": "npm:^0.1.17" + peerDependencies: + "@swc/helpers": "*" + dependenciesMeta: + "@swc/core-darwin-arm64": + optional: true + "@swc/core-darwin-x64": + optional: true + "@swc/core-linux-arm-gnueabihf": + optional: true + "@swc/core-linux-arm64-gnu": + optional: true + "@swc/core-linux-arm64-musl": + optional: true + "@swc/core-linux-x64-gnu": + optional: true + "@swc/core-linux-x64-musl": + optional: true + "@swc/core-win32-arm64-msvc": + optional: true + "@swc/core-win32-ia32-msvc": + optional: true + "@swc/core-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@swc/helpers": + optional: true + checksum: 10/986c85e762c83b6651423bcaa3b8cef78a39993c42f417fa944c95dba239a01ca0fbff26a6b3d55d5abd4aba22d9efb42750ead0abac35abde2211319f0e2b34 languageName: node linkType: hard -"@solana/functional@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/functional@npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/4b2ba1615ac1f8cfd4bea9c465e3746ec92a59771fa27c70d6adde5eca783eca539f2d95fe23cc9f84a28c1247937cac8914e27c81fb88f69773fccec9a555f7 +"@swc/counter@npm:0.1.3, @swc/counter@npm:^0.1.3": + version: 0.1.3 + resolution: "@swc/counter@npm:0.1.3" + checksum: 10/df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598 languageName: node linkType: hard -"@solana/instructions@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/instructions@npm:2.0.0" +"@swc/helpers@npm:0.5.15, @swc/helpers@npm:^0.5.11": + version: 0.5.15 + resolution: "@swc/helpers@npm:0.5.15" dependencies: - "@solana/errors": "npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/ae13a298757262de77b6e55bf2a8ffe9967d54775159c94dbef31d771709b14c7b62faedf5d8f0289ce127991414ac5a0088b9d7f241ce99c17ba2e210062ae5 + tslib: "npm:^2.8.0" + checksum: 10/e3f32c6deeecfb0fa3f22edff03a7b358e7ce16d27b0f1c8b5cdc3042c5c4ce4da6eac0b781ab7cc4f54696ece657467d56734fb26883439fb00017385364c4c languageName: node linkType: hard -"@solana/keys@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/keys@npm:2.0.0" +"@swc/types@npm:^0.1.17": + version: 0.1.17 + resolution: "@swc/types@npm:0.1.17" dependencies: - "@solana/assertions": "npm:2.0.0" - "@solana/codecs-core": "npm:2.0.0" - "@solana/codecs-strings": "npm:2.0.0" - "@solana/errors": "npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/488db3e4965304acca2844d325d7d99e9d986e69ef25144ccf53fe6ded75bc38377e4a1e590b3b1e6618a2a040939e1503142df9e586167104ab86236b58ba2e + "@swc/counter": "npm:^0.1.3" + checksum: 10/ddef1ad5bfead3acdfc41f14e79ba43a99200eb325afbad5716058dbe36358b0513400e9f22aff32432be84a98ae93df95a20b94192f69b8687144270e4eaa18 languageName: node linkType: hard - -"@solana/options@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/options@npm:2.0.0" + +"@tamagui/accordion@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/accordion@npm:1.119.0" dependencies: - "@solana/codecs-core": "npm:2.0.0" - "@solana/codecs-data-structures": "npm:2.0.0" - "@solana/codecs-numbers": "npm:2.0.0" - "@solana/codecs-strings": "npm:2.0.0" - "@solana/errors": "npm:2.0.0" + "@tamagui/collapsible": "npm:1.119.0" + "@tamagui/collection": "npm:1.119.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/polyfill-dev": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" peerDependencies: - typescript: ">=5" - checksum: 10/a039a68e92f3dffcf1289753dbb99dde93929db62fefc2134d73bb1e1507e757e3f43dad6cbb145bf41a5ade2dc8252e9ec119e03d956e3ac226489d491f4a62 + react: "*" + checksum: 10/7b205f04f982c289e537d46192937b8fdf3b4383e657e90bcd21e12c484aeae5e6462497008d06df585082a5cd79740a73a0e6e0ba8eddd62d894ad5e63da2d5 languageName: node linkType: hard -"@solana/programs@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/programs@npm:2.0.0" +"@tamagui/adapt@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/adapt@npm:1.119.0" dependencies: - "@solana/addresses": "npm:2.0.0" - "@solana/errors": "npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/aba20ff210e4df05568271022394578f66b7db44b3ee19d4761e21161d288d099248af1b4b2a6b7c690d04b2f1155efe5688be7e08d9339c75702ad8b6ba9289 + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/portal": "npm:1.119.0" + checksum: 10/863cf9706bcb06be9f644cd49dba9e20992bf8139362e59f8eebebdc54e992554138eb9de73ce7119c8709f089ee4102f1c3f56dd997728caa830af97174676f languageName: node linkType: hard -"@solana/promises@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/promises@npm:2.0.0" +"@tamagui/alert-dialog@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/alert-dialog@npm:1.119.0" + dependencies: + "@tamagui/animate-presence": "npm:1.119.0" + "@tamagui/aria-hidden": "npm:1.119.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/dialog": "npm:1.119.0" + "@tamagui/dismissable": "npm:1.119.0" + "@tamagui/focus-scope": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/polyfill-dev": "npm:1.119.0" + "@tamagui/popper": "npm:1.119.0" + "@tamagui/portal": "npm:1.119.0" + "@tamagui/remove-scroll": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/text": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" peerDependencies: - typescript: ">=5" - checksum: 10/d9cf1c008652aeabae077786e1bbe96aeb5ba64762fcfa62710e10bfa4afaa89801d8f3143fe9f90f241f277ad008928a5ac545da4b29ceb0213154f639d3f93 + react: "*" + checksum: 10/27637c086611f2bfd27928bdd8c9d4a8b9768a914ca6b2f6cc966ae170daf5ca76b6c0e3b2670f1f4a767427689ee9c0e9cce81d057ab475e9b38845a3e60778 languageName: node linkType: hard -"@solana/rpc-api@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/rpc-api@npm:2.0.0" +"@tamagui/animate-presence@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/animate-presence@npm:1.119.0" dependencies: - "@solana/addresses": "npm:2.0.0" - "@solana/codecs-core": "npm:2.0.0" - "@solana/codecs-strings": "npm:2.0.0" - "@solana/errors": "npm:2.0.0" - "@solana/keys": "npm:2.0.0" - "@solana/rpc-parsed-types": "npm:2.0.0" - "@solana/rpc-spec": "npm:2.0.0" - "@solana/rpc-transformers": "npm:2.0.0" - "@solana/rpc-types": "npm:2.0.0" - "@solana/transaction-messages": "npm:2.0.0" - "@solana/transactions": "npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/9d05783b0a15cd15a6dbaa75d716004b930f41bfeffd8a170e11d89da255fec416d28c014745ec2b5ff92623098fbb9db03def196cd374887595f58de108d3cd + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/use-constant": "npm:1.119.0" + "@tamagui/use-force-update": "npm:1.119.0" + "@tamagui/use-presence": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" + checksum: 10/eac23c726a75b657dd42efd7f697d1cbbb7099afc68cab3092e64614f6c6715f96a48fa9664a48f931379f412fa3e3207b09a8d3351b7686d5be1e7cdda0ddce languageName: node linkType: hard -"@solana/rpc-parsed-types@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/rpc-parsed-types@npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/2eec9a00a1c3ad3f49be7cd42611e775046f4fa9d58d03647a1d0c3845d2cf61f3e081d171c32ee3d065f1d98354b1fb9de5607f27fe4bd7aba150ac3c86663f +"@tamagui/animate@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/animate@npm:1.119.0" + dependencies: + "@tamagui/animate-presence": "npm:1.119.0" + checksum: 10/fef915a45e3875a037e9773e28e99fec75222b2ef0a316e9b45cb21e8b3d1aadf30ca800907f1e57432ad3d716e589b2828c85dc9322255b5e73a420ea529509 languageName: node linkType: hard -"@solana/rpc-spec-types@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/rpc-spec-types@npm:2.0.0" +"@tamagui/animations-css@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/animations-css@npm:1.119.0" + dependencies: + "@tamagui/constants": "npm:1.119.0" + "@tamagui/cubic-bezier-animator": "npm:1.119.0" + "@tamagui/use-presence": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" peerDependencies: - typescript: ">=5" - checksum: 10/dae7b1003b6ad600b1c5aa00e91d0f35f091cf397bd5182d13e51367c7dca75f4ae8857171b38d56ef59546399db9a467e006e34f4944eaf081092e238383e1f + react: "*" + checksum: 10/d105ab5d3f22c2b404198c997bace1685b8211f9cea338e6c208059cfbc981d077f2462b166e3d91b45eaee22fa7c9dd4e0a2bb81d8c2677b2fd948188e19985 languageName: node linkType: hard -"@solana/rpc-spec@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/rpc-spec@npm:2.0.0" +"@tamagui/animations-moti@npm:1.119.0, @tamagui/animations-moti@npm:^1.117.1": + version: 1.119.0 + resolution: "@tamagui/animations-moti@npm:1.119.0" dependencies: - "@solana/errors": "npm:2.0.0" - "@solana/rpc-spec-types": "npm:2.0.0" + "@tamagui/use-presence": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" + moti: "npm:^0.29.0" peerDependencies: - typescript: ">=5" - checksum: 10/552e30131dfd9110a978c40d9ac3061f5fa67ad0a182b6a0b9e28165c7479a70bfcb3da585c55150649db667cdec7acc9b57a8deb0993c07c97aa9ae6eda54dc + react: "*" + checksum: 10/b641fefd460b61edb4437158e793b377fbe3759c5597c9bc68981f4cc091a1dc6727c43220be12a734fa6c5dcc93d71a2acecfb5a61a947142aec60ff7efdc44 languageName: node linkType: hard -"@solana/rpc-subscriptions-api@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/rpc-subscriptions-api@npm:2.0.0" +"@tamagui/animations-react-native@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/animations-react-native@npm:1.119.0" dependencies: - "@solana/addresses": "npm:2.0.0" - "@solana/keys": "npm:2.0.0" - "@solana/rpc-subscriptions-spec": "npm:2.0.0" - "@solana/rpc-transformers": "npm:2.0.0" - "@solana/rpc-types": "npm:2.0.0" - "@solana/transaction-messages": "npm:2.0.0" - "@solana/transactions": "npm:2.0.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/use-presence": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" peerDependencies: - typescript: ">=5" - checksum: 10/951878716a9784eea86eb326bb5da0bae787e061e9fad4d948f36b502d11b9fdf058ff8236dbe0fae96617bd12843c4726043c69e072a9b22f824b8a75c0cf6e + react: "*" + checksum: 10/05a33dac26bea55faf8d4085dc29ff96373cfed614483f533f496e13d3e949cb22b47b5f39864e9009a3255c20c637cf5ba0b18561f468dab9f69fb75de9cf87 languageName: node linkType: hard -"@solana/rpc-subscriptions-channel-websocket@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/rpc-subscriptions-channel-websocket@npm:2.0.0" +"@tamagui/aria-hidden@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/aria-hidden@npm:1.119.0" dependencies: - "@solana/errors": "npm:2.0.0" - "@solana/functional": "npm:2.0.0" - "@solana/rpc-subscriptions-spec": "npm:2.0.0" - "@solana/subscribable": "npm:2.0.0" + aria-hidden: "npm:^1.1.3" peerDependencies: - typescript: ">=5" - ws: ^8.18.0 - checksum: 10/4151a9f4f091a8bbeec868c518a838cf485e5bff9e6c535af79206910e117c83fec80ca28427d28b24f1cef69bbaee9fe236a57b1e352f15b8f875621f1a1fea + react: "*" + checksum: 10/174b967f44d0d173c04c1c14542c13c350259166e3b8207d83d6bec51d51088fb689f8791cba130160e7a2262b080a2e5b550652f04089c7e868b10e109b8a64 languageName: node linkType: hard -"@solana/rpc-subscriptions-spec@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/rpc-subscriptions-spec@npm:2.0.0" +"@tamagui/avatar@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/avatar@npm:1.119.0" dependencies: - "@solana/errors": "npm:2.0.0" - "@solana/promises": "npm:2.0.0" - "@solana/rpc-spec-types": "npm:2.0.0" - "@solana/subscribable": "npm:2.0.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/image": "npm:1.119.0" + "@tamagui/shapes": "npm:1.119.0" + "@tamagui/text": "npm:1.119.0" peerDependencies: - typescript: ">=5" - checksum: 10/a104c1d698e9789604c95eb001f32980d3fb0940362659a36e000c4383f25ca1ddce574931d930ff3fdb6519dcad08f7a6a1560e5804ee72739561a283882d86 + react: "*" + checksum: 10/e7eb46030376e7fa881d23b9d1e64ea67fb7afb8447b31ac4b7c5232d1eff91ae52dacdcc727e6a55049c10dabe1372dcc5a3a907aafb9d473728275e5236567 languageName: node linkType: hard -"@solana/rpc-subscriptions@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/rpc-subscriptions@npm:2.0.0" +"@tamagui/babel-plugin-fully-specified@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/babel-plugin-fully-specified@npm:1.119.0" dependencies: - "@solana/errors": "npm:2.0.0" - "@solana/fast-stable-stringify": "npm:2.0.0" - "@solana/functional": "npm:2.0.0" - "@solana/promises": "npm:2.0.0" - "@solana/rpc-spec-types": "npm:2.0.0" - "@solana/rpc-subscriptions-api": "npm:2.0.0" - "@solana/rpc-subscriptions-channel-websocket": "npm:2.0.0" - "@solana/rpc-subscriptions-spec": "npm:2.0.0" - "@solana/rpc-transformers": "npm:2.0.0" - "@solana/rpc-types": "npm:2.0.0" - "@solana/subscribable": "npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/f977631c5df3d6fba7eb475da720e4ba18f1fcb27ae7aa678ac456f338da8c7dd2f7130c773b4c69938d8a28aba1d7348857a77971a84ba289681549f6823afb + "@babel/core": "npm:^7.25.2" + checksum: 10/73e337a575c7a1f1b4117544b1380ee7be40f78eddf25b4a1e97073762b5b3848ecf53a32054bc514da1e88a7a83d98746d4e6c081fe17008519cac5a155eb71 languageName: node linkType: hard -"@solana/rpc-transformers@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/rpc-transformers@npm:2.0.0" +"@tamagui/babel-plugin@npm:^1.117.1": + version: 1.119.0 + resolution: "@tamagui/babel-plugin@npm:1.119.0" dependencies: - "@solana/errors": "npm:2.0.0" - "@solana/functional": "npm:2.0.0" - "@solana/rpc-spec-types": "npm:2.0.0" - "@solana/rpc-types": "npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/13a7bd0aacce701c997479e559ef983430e9a86bab8aaf2d4089299e841835144b45341ed63eb723d16a2b282f0a04e1759f119b6a338474f3c509556477e001 + "@babel/generator": "npm:^7.25.5" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.4" + "@tamagui/static": "npm:1.119.0" + checksum: 10/870800fcf66f7ca7fb4a9509ce57f5eaac2b9335f43372e1db315e791afc9090958de5e2910129cc8492238f8f72cb68553be67c3b366ad831bdef444c4d7049 languageName: node linkType: hard -"@solana/rpc-transport-http@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/rpc-transport-http@npm:2.0.0" +"@tamagui/build@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/build@npm:1.119.0" dependencies: - "@solana/errors": "npm:2.0.0" - "@solana/rpc-spec": "npm:2.0.0" - "@solana/rpc-spec-types": "npm:2.0.0" - undici-types: "npm:^6.20.0" - peerDependencies: - typescript: ">=5" - checksum: 10/22f3e03a25fce9d39a94dbd31725434eb24ae41d80b15d7e94ec28926d7cbc9f71d423dfaa76a553d54cec8308b3b8e4546955572bc1b76131c1bffe12a23ce0 + "@babel/core": "npm:^7.25.2" + "@swc/core": "npm:^1.7.21" + "@tamagui/babel-plugin-fully-specified": "npm:1.119.0" + "@types/fs-extra": "npm:^9.0.13" + chokidar: "npm:^3.5.2" + esbuild: "npm:^0.24.0" + esbuild-plugin-es5: "npm:^2.1.1" + esbuild-register: "npm:^3.6.0" + execa: "npm:^5.0.0" + fast-glob: "npm:^3.2.11" + fs-extra: "npm:^11.2.0" + lodash.debounce: "npm:^4.0.8" + typescript: "npm:^5.6.3" + bin: + tamagui-build: tamagui-build.js + teesx: teesx.sh + checksum: 10/bd97dd5e5481c3a6f0cebb1294e496a3a343dcf2bc3fd564476b00f05cff31155427841fabae92075c7d9b16a655f89fff68c9800c2bb49c3fea47184c6e3228 languageName: node linkType: hard -"@solana/rpc-types@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/rpc-types@npm:2.0.0" +"@tamagui/button@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/button@npm:1.119.0" dependencies: - "@solana/addresses": "npm:2.0.0" - "@solana/codecs-core": "npm:2.0.0" - "@solana/codecs-numbers": "npm:2.0.0" - "@solana/codecs-strings": "npm:2.0.0" - "@solana/errors": "npm:2.0.0" + "@tamagui/font-size": "npm:1.119.0" + "@tamagui/get-button-sized": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/helpers-tamagui": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/text": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" peerDependencies: - typescript: ">=5" - checksum: 10/88b212639c3ea023175c4f5c246297d77a2dcaec9f143f03ff2661e2ebd1489639dd98c229031dcb58ac7efa90d533dac16389d53da488bde186654dd41643dd + react: "*" + checksum: 10/96a5ce5044643a972997dd0285ffbdb004ce4fa358d7a08d6242684953106b31298bd3c2db2c561dce05aa777d31a60876b564d2558ae6aab71e76e3c85d6e49 languageName: node linkType: hard -"@solana/rpc@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/rpc@npm:2.0.0" +"@tamagui/card@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/card@npm:1.119.0" dependencies: - "@solana/errors": "npm:2.0.0" - "@solana/fast-stable-stringify": "npm:2.0.0" - "@solana/functional": "npm:2.0.0" - "@solana/rpc-api": "npm:2.0.0" - "@solana/rpc-spec": "npm:2.0.0" - "@solana/rpc-spec-types": "npm:2.0.0" - "@solana/rpc-transformers": "npm:2.0.0" - "@solana/rpc-transport-http": "npm:2.0.0" - "@solana/rpc-types": "npm:2.0.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" peerDependencies: - typescript: ">=5" - checksum: 10/b19bc4b855da91f4b4239b62aba990076b2dbd7546645442b7cf1fb177dd8df9df80c643e3a5242da3a971663f1b3d190dbedc951ee3b4c64533d1e32bd7ba01 + react: "*" + checksum: 10/82b11ea11f04176054dfb473f811596a0b212820f6e0174a5bdbdb287d4c2bf30a2234c86837ec42a14f46786d5abb687afe88ae44c4e065378f18452ddbfbc3 languageName: node linkType: hard -"@solana/signers@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/signers@npm:2.0.0" +"@tamagui/checkbox-headless@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/checkbox-headless@npm:1.119.0" dependencies: - "@solana/addresses": "npm:2.0.0" - "@solana/codecs-core": "npm:2.0.0" - "@solana/errors": "npm:2.0.0" - "@solana/instructions": "npm:2.0.0" - "@solana/keys": "npm:2.0.0" - "@solana/transaction-messages": "npm:2.0.0" - "@solana/transactions": "npm:2.0.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/focusable": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/label": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" + "@tamagui/use-previous": "npm:1.119.0" peerDependencies: - typescript: ">=5" - checksum: 10/4a83ae9f93d83f8a25fd1a39f2bb9237a2ca959ba101d0f047d5ea1187f63d95c80824e73e6e5ef2edbcbec2cfb5fe66fd4d2989e0f3d3025172fa31247d10f3 + react: "*" + checksum: 10/32d8b4316100ed611c635054f9e254dff9b6434a8d9264f98f0dd3ee588bcea4e8ea6edaf4e544e18092f051c1ddc0b285d6dcbf590cdcd476945722012df72f languageName: node linkType: hard -"@solana/subscribable@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/subscribable@npm:2.0.0" +"@tamagui/checkbox@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/checkbox@npm:1.119.0" dependencies: - "@solana/errors": "npm:2.0.0" + "@tamagui/checkbox-headless": "npm:1.119.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/focusable": "npm:1.119.0" + "@tamagui/font-size": "npm:1.119.0" + "@tamagui/get-token": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/helpers-tamagui": "npm:1.119.0" + "@tamagui/label": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" + "@tamagui/use-previous": "npm:1.119.0" peerDependencies: - typescript: ">=5" - checksum: 10/1f8b7b1e7ca40c761446d7a7707cc730aa79f2510c4b58781a15c13578825fce2efe4cfb788e9ea107d7353068408bfd0b2760740e089f76beaf4816fe79f2e3 + react: "*" + checksum: 10/b52f66664f7fe7b9282c68e633903f9aeb845c34556ab94c508939935dc5760828f66870da2f05d1c87b62c442cceb5e733b426eed9ffe89fe398cfc3b322e64 languageName: node linkType: hard -"@solana/sysvars@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/sysvars@npm:2.0.0" +"@tamagui/cli-color@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/cli-color@npm:1.119.0" + checksum: 10/9e35056be2918c4e16fb9acf5ee574aa41eedc8d8329fd8b8b7ee03581529c7b8f7049f1c1528f38c96b773998bcadfee0c875845894263ee21693009de180e3 + languageName: node + linkType: hard + +"@tamagui/collapsible@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/collapsible@npm:1.119.0" dependencies: - "@solana/accounts": "npm:2.0.0" - "@solana/codecs": "npm:2.0.0" - "@solana/errors": "npm:2.0.0" - "@solana/rpc-types": "npm:2.0.0" + "@tamagui/animate-presence": "npm:1.119.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/polyfill-dev": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" peerDependencies: - typescript: ">=5" - checksum: 10/48b360e1d9fbc1b2bc1bf8bc61b5020fcb07b5fd78b314788320bc9fba48aa8c5b3feb7a3193dbc5d065817e1664c2c8c011b8505e44dc3601fcd073d22242a3 + react: "*" + checksum: 10/0450ccc9f2264432a4f3d32aa4a641b6f95dc56a358360e63c1e1f86ed5329cfffc1c711efb97a62578a7dee56289445aac0a342d0a312cded19c68aa474016f languageName: node linkType: hard -"@solana/transaction-confirmation@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/transaction-confirmation@npm:2.0.0" +"@tamagui/collection@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/collection@npm:1.119.0" dependencies: - "@solana/addresses": "npm:2.0.0" - "@solana/codecs-strings": "npm:2.0.0" - "@solana/errors": "npm:2.0.0" - "@solana/keys": "npm:2.0.0" - "@solana/promises": "npm:2.0.0" - "@solana/rpc": "npm:2.0.0" - "@solana/rpc-subscriptions": "npm:2.0.0" - "@solana/rpc-types": "npm:2.0.0" - "@solana/transaction-messages": "npm:2.0.0" - "@solana/transactions": "npm:2.0.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/polyfill-dev": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" peerDependencies: - typescript: ">=5" - checksum: 10/b2db200a1f06dc414534e6d98e27eb81cef39f45d0ca32a5ad018121fdec4d37b880b6651789863b05bf842a77279a06a7e821ad372087fb153eab03e05ce8f4 + react: "*" + checksum: 10/edfad3d467a01134d8e2c7ff17b213a5be6155da7735c2ad32bfa2c4cedc6d2f8a9ced960fab36bbd97ee7cfd6034219c009f31783e64670f23506ffca0407ed languageName: node linkType: hard -"@solana/transaction-messages@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/transaction-messages@npm:2.0.0" - dependencies: - "@solana/addresses": "npm:2.0.0" - "@solana/codecs-core": "npm:2.0.0" - "@solana/codecs-data-structures": "npm:2.0.0" - "@solana/codecs-numbers": "npm:2.0.0" - "@solana/errors": "npm:2.0.0" - "@solana/functional": "npm:2.0.0" - "@solana/instructions": "npm:2.0.0" - "@solana/rpc-types": "npm:2.0.0" +"@tamagui/colors@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/colors@npm:1.119.0" + checksum: 10/9444f353fb7880686e6c22fb8f72ae16ef9dbc8e84c81cfd27768e72c16cc4054621145329525d5d8581fa94a64411b4c9d989a404ab97759887e31a6bb0e972 + languageName: node + linkType: hard + +"@tamagui/compose-refs@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/compose-refs@npm:1.119.0" peerDependencies: - typescript: ">=5" - checksum: 10/e64b66e998b0fab5c9cdf9321f7ad39c41d0702fcc1fc3abef9c41bf97333844562b814fc716509495a7b37b3bb0e6c0fd9d659c93a16c12d16d83cc54f29bc2 + react: "*" + checksum: 10/abc8c747c4997d6632636bcd9e498b8e414b1326796d5663c7722ec3611b832c404380c91c74bd7a88b59917efe214d9695ba828d30ba778c6edfd8fea7b2344 languageName: node linkType: hard -"@solana/transactions@npm:2.0.0": - version: 2.0.0 - resolution: "@solana/transactions@npm:2.0.0" +"@tamagui/config-default@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/config-default@npm:1.119.0" dependencies: - "@solana/addresses": "npm:2.0.0" - "@solana/codecs-core": "npm:2.0.0" - "@solana/codecs-data-structures": "npm:2.0.0" - "@solana/codecs-numbers": "npm:2.0.0" - "@solana/codecs-strings": "npm:2.0.0" - "@solana/errors": "npm:2.0.0" - "@solana/functional": "npm:2.0.0" - "@solana/instructions": "npm:2.0.0" - "@solana/keys": "npm:2.0.0" - "@solana/rpc-types": "npm:2.0.0" - "@solana/transaction-messages": "npm:2.0.0" - peerDependencies: - typescript: ">=5" - checksum: 10/56ef6722b4683757fb573abace3204fc8fab35ad578c12d21f52175c731843d91e65532298a440dd18a9190afd209118c1662542069c77a515dd229a36c150fc + "@tamagui/animations-css": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/shorthands": "npm:1.119.0" + checksum: 10/5eeda1d651f0acc25c6dc54662091b451d3e23bc5b57fd0b8f5054951bbc2c0ebefb11419505e5f9751e9a725b86abb8ef79196f88bae912aaaa55e5324bd18b languageName: node linkType: hard -"@solana/web3.js@npm:^2.0.0": - version: 2.0.0 - resolution: "@solana/web3.js@npm:2.0.0" +"@tamagui/config@npm:^1.117.1": + version: 1.119.0 + resolution: "@tamagui/config@npm:1.119.0" dependencies: - "@solana/accounts": "npm:2.0.0" - "@solana/addresses": "npm:2.0.0" - "@solana/codecs": "npm:2.0.0" - "@solana/errors": "npm:2.0.0" - "@solana/functional": "npm:2.0.0" - "@solana/instructions": "npm:2.0.0" - "@solana/keys": "npm:2.0.0" - "@solana/programs": "npm:2.0.0" - "@solana/rpc": "npm:2.0.0" - "@solana/rpc-parsed-types": "npm:2.0.0" - "@solana/rpc-spec-types": "npm:2.0.0" - "@solana/rpc-subscriptions": "npm:2.0.0" - "@solana/rpc-types": "npm:2.0.0" - "@solana/signers": "npm:2.0.0" - "@solana/sysvars": "npm:2.0.0" - "@solana/transaction-confirmation": "npm:2.0.0" - "@solana/transaction-messages": "npm:2.0.0" - "@solana/transactions": "npm:2.0.0" + "@tamagui/animations-css": "npm:1.119.0" + "@tamagui/animations-moti": "npm:1.119.0" + "@tamagui/animations-react-native": "npm:1.119.0" + "@tamagui/colors": "npm:1.119.0" + "@tamagui/font-inter": "npm:1.119.0" + "@tamagui/font-silkscreen": "npm:1.119.0" + "@tamagui/react-native-media-driver": "npm:1.119.0" + "@tamagui/shorthands": "npm:1.119.0" + "@tamagui/themes": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" + checksum: 10/b53ce7b580d69af18395d511c15422b8496cc7a608eea576910c8a3aa62477b4783b4765f08b8abf40f012c26f4e83f7b457b87520853b2c80ad9916b4444111 + languageName: node + linkType: hard + +"@tamagui/constants@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/constants@npm:1.119.0" peerDependencies: - typescript: ">=5" - checksum: 10/0b9c8344c966976897e97e68239846e679b6bc07fee669fa0ff256a18326f02b0c2977fe248c394bc579e21d8c11d1b4ea8fb0211a222ed4480411ec67f7dc88 + react: "*" + checksum: 10/32df92f27257137b02c2ad6d02aaa3027f59597b4fcfbb2441d273bd196302c026049d7ec93a032a3f5a5c8a501a3692c9989dcae2606d910d74986e679c0ad6 languageName: node linkType: hard -"@spindl-xyz/attribution-lite@npm:^1.4.0": - version: 1.8.0 - resolution: "@spindl-xyz/attribution-lite@npm:1.8.0" - checksum: 10/da2cfdde056cd9249a8949ac879f73e2da7a2103675cd2352ee0ad4d42a9edcf30610d1e1105ca8b274a5c35133e690c025d0ff221577904d9dd384fbc733bb2 +"@tamagui/core@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/core@npm:1.119.0" + dependencies: + "@tamagui/react-native-use-pressable": "npm:1.119.0" + "@tamagui/react-native-use-responder-events": "npm:1.119.0" + "@tamagui/use-event": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" + checksum: 10/ad92b71e37792601f6014e93a7119af407f22b3b506979eec18c72d139afc4ecca7c46d06d6910a111ca1e36811c73943f16964b14ac431ee6529a66429735d4 languageName: node linkType: hard -"@stablelib/aead@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/aead@npm:1.0.1" - checksum: 10/1a6f68d138f105d17dd65349751515bd252ab0498c77255b8555478d28415600dde493f909eb718245047a993f838dfae546071e1687566ffb7b8c3e10c918d9 +"@tamagui/create-context@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/create-context@npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/2462ad6a5bbb18f1bcf0b0fab36ad33442788b347e32e105cfe7fdca6d595dc1d8df536da60bc4d75023e21a6e1c38a4b2112590b4faa13242395bd67e8af106 languageName: node linkType: hard -"@stablelib/binary@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/binary@npm:1.0.1" +"@tamagui/create-theme@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/create-theme@npm:1.119.0" dependencies: - "@stablelib/int": "npm:^1.0.1" - checksum: 10/c5ed769e2b5d607a5cdb72d325fcf98db437627862fade839daad934bd9ccf02a6f6e34f9de8cb3b18d72fce2ba6cc019a5d22398187d7d69d2607165f27f8bf + "@tamagui/web": "npm:1.119.0" + checksum: 10/6ef14304ac400630bec8d6c7d8e2ec3794e50ee36215bc445deaaf868153f6f279bc962489f9031b3ac85fa1f90910ce6a5550965ca8426e678fa2a367fb270c languageName: node linkType: hard -"@stablelib/bytes@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/bytes@npm:1.0.1" - checksum: 10/23d4d632a8a15ca91be1dc56da92eefed695d9b66068d1ab27a5655d0233dc2ac0b8668f875af542ca4ed526893c65dd53e777c72c8056f3648115aac98823ee +"@tamagui/cubic-bezier-animator@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/cubic-bezier-animator@npm:1.119.0" + checksum: 10/222093f70b9d54d31fc12a6c7659cc9d797d6e915e63ab5e407c692ea61d7210628a0bcc1943767369bb710f2dcbb6680371c9a568552a796dab7f7574ec7998 languageName: node linkType: hard -"@stablelib/chacha20poly1305@npm:1.0.1": - version: 1.0.1 - resolution: "@stablelib/chacha20poly1305@npm:1.0.1" +"@tamagui/dialog@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/dialog@npm:1.119.0" dependencies: - "@stablelib/aead": "npm:^1.0.1" - "@stablelib/binary": "npm:^1.0.1" - "@stablelib/chacha": "npm:^1.0.1" - "@stablelib/constant-time": "npm:^1.0.1" - "@stablelib/poly1305": "npm:^1.0.1" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10/2a4df136b078b7c09acb3c6fe029613d4c9f70a0ce8bec65551a4a5016930a4f9091d3b83ed1cfc9c2e7bd6ec7f5ee93a7dc729b784b3900dcb97f3c7f5da84a + "@tamagui/adapt": "npm:1.119.0" + "@tamagui/animate-presence": "npm:1.119.0" + "@tamagui/aria-hidden": "npm:1.119.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/dismissable": "npm:1.119.0" + "@tamagui/focus-scope": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/polyfill-dev": "npm:1.119.0" + "@tamagui/popper": "npm:1.119.0" + "@tamagui/portal": "npm:1.119.0" + "@tamagui/remove-scroll": "npm:1.119.0" + "@tamagui/sheet": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/text": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/484b9e167064977113dd9f93bba70bc6c6b9cb5d27300a8d6224d3d17101f2bfc0123ea41ac932a1b8bbce314ba535779e51cb525ccbd20cd41b70bbb6c5d8dc languageName: node linkType: hard -"@stablelib/chacha@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/chacha@npm:1.0.1" +"@tamagui/dismissable@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/dismissable@npm:1.119.0" dependencies: - "@stablelib/binary": "npm:^1.0.1" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10/38cd8095d94eda29a9bb8a742b1c945dba7f9ec91fc07ab351c826680d03976641ac6366c3d004a00a72d746fcd838215fe1263ef4b0660c453c5de18a0a4295 + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/use-escape-keydown": "npm:1.119.0" + "@tamagui/use-event": "npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/5a200c9ad0cb1d6bf3fae5acebb7b30717fc23796af44f3362197a8890978f3051f7a370cbdb5caa1dd92df6f372afdb90a3dc76855ebb89a4aa0aa6ade2b4e9 languageName: node linkType: hard -"@stablelib/constant-time@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/constant-time@npm:1.0.1" - checksum: 10/dba4f4bf508de2ff15f7f0cbd875e70391aa3ba3698290fe1ed2feb151c243ba08a90fc6fb390ec2230e30fcc622318c591a7c0e35dcb8150afb50c797eac3d7 +"@tamagui/elements@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/elements@npm:1.119.0" + dependencies: + "@tamagui/core": "npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/cfc22124829034a425727fd22627bb9f069e13107eab69a26ab4a70671482dd83d21b9e121ab18f0b7cfd697ef87a8c1e528bb82faa9463d3c579e991b975db5 languageName: node linkType: hard -"@stablelib/ed25519@npm:^1.0.2": - version: 1.0.3 - resolution: "@stablelib/ed25519@npm:1.0.3" - dependencies: - "@stablelib/random": "npm:^1.0.2" - "@stablelib/sha512": "npm:^1.0.1" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10/52e861e4fbd9d3d0a1a370d9ad96de8e2e15f133249bbbc32da66b8993e843db598054a3af17a746beb3fd5043b7529613a5dda7f2e79de6613eb3ebe5ffe3dd +"@tamagui/fake-react-native@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/fake-react-native@npm:1.119.0" + checksum: 10/592c062261751ce6285c42e81c994e71ca2e4b8cf67b36b9d0b4257aafbecd90e933921e04dc6fad4954ca8530b2049cae37c9e66d496bba9a8e26d2e77bcf10 languageName: node linkType: hard -"@stablelib/hash@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/hash@npm:1.0.1" - checksum: 10/3ff1f12d1a4082aaf4b6cdf40c2010aabe5c4209d3b40b97b5bbb0d9abc0ee94abdc545e57de0614afaea807ca0212ac870e247ec8f66cdce91ec39ce82948cf +"@tamagui/floating@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/floating@npm:1.119.0" + dependencies: + "@floating-ui/react-dom": "npm:^2.1.2" + "@floating-ui/react-native": "npm:^0.10.6" + peerDependencies: + react: "*" + checksum: 10/00a8243e82da895674b905a86e9e61f52363096a9625308e99968c82d2e16c6f164ba5db7f47b9a6bc146570692da6bbe6b11f46a430ad27237e849cafc2dae2 languageName: node linkType: hard -"@stablelib/hkdf@npm:1.0.1": - version: 1.0.1 - resolution: "@stablelib/hkdf@npm:1.0.1" +"@tamagui/focus-scope@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/focus-scope@npm:1.119.0" dependencies: - "@stablelib/hash": "npm:^1.0.1" - "@stablelib/hmac": "npm:^1.0.1" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10/9d45e303715a1835c8612b78e6c1b9d2b7463699b484241d8681fb5c17e0f2bbde5ce211c882134b64616a402e09177baeba80426995ff227b3654a155ab225d + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/start-transition": "npm:1.119.0" + "@tamagui/use-event": "npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/adad53f405daa4643cda5332df01ff1e3e253aac554625f88497ecabe4d6fd00eac6bdf4f325fc240d5525b9744df0beb48a350e08e561eb4fcd6391e860013e languageName: node linkType: hard -"@stablelib/hmac@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/hmac@npm:1.0.1" +"@tamagui/focusable@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/focusable@npm:1.119.0" dependencies: - "@stablelib/constant-time": "npm:^1.0.1" - "@stablelib/hash": "npm:^1.0.1" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10/d3ac9e2fea2b4972a5d874ee9d96c94f8c8207452e2d243a2668b1325a7b20bd9a1541df32387789a0e9bfef82c3fe021a785f46eb3442c782443863faf75205 + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/66cd2535c7748f303aa0d6d2905ed11d4b32aa5d86b85b700e0050705642899e1599e8b5b08fda24954f0c6fc259dbdf67afcce5add6b1aa8827f26887f34a39 languageName: node linkType: hard -"@stablelib/int@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/int@npm:1.0.1" - checksum: 10/65bfbf50a382eea70c68e05366bf379cfceff8fbc076f1c267ef2f2411d7aed64fd140c415cb6c29f19a3910d3b8b7805d4b32ad5721a5007a8e744a808c7ae3 +"@tamagui/font-dm-sans@npm:^1.117.1": + version: 1.119.0 + resolution: "@tamagui/font-dm-sans@npm:1.119.0" + checksum: 10/2f7266688b96abbfa93097bb3c8cacbc240a0c38ac9f59c7843d340467c03a01cb10fe18c0471ba5016dc4955f4964262bdc51cf8cbb0c914a8330bf34fc21f9 languageName: node linkType: hard -"@stablelib/keyagreement@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/keyagreement@npm:1.0.1" +"@tamagui/font-inter@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/font-inter@npm:1.119.0" dependencies: - "@stablelib/bytes": "npm:^1.0.1" - checksum: 10/3c8ec904dd50f72f3162f5447a0fa8f1d9ca6e24cd272d3dbe84971267f3b47f9bd5dc4e4eeedf3fbac2fe01f2d9277053e57c8e60db8c5544bfb35c62d290dd + "@tamagui/core": "npm:1.119.0" + checksum: 10/58163f8efefec0c65d2a0165231e1d0234b9af9ef4335ff3293a18fa560f22cba43bdd1e1c6fe388fc8d643bcd05fa4977cafe3ffe3e2bf2bcf84d1f0bbb2d1d languageName: node linkType: hard -"@stablelib/poly1305@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/poly1305@npm:1.0.1" +"@tamagui/font-silkscreen@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/font-silkscreen@npm:1.119.0" dependencies: - "@stablelib/constant-time": "npm:^1.0.1" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10/b01d4b532a42e5260f7f263e3a670924849c7ba51569abd8ece8279a448e625cbe4049bff1d50ad0d3a9d5f268c1b52fc611808640a6e684550edd7589a0a581 + "@tamagui/core": "npm:1.119.0" + checksum: 10/34bec4d124e47bd6470fda9e3cbb35f22191e541b9f75d345a43acf135b09374860d6374d988bb75f0011dec209a16497560e4a8a931b4e6436e26a11609a6f7 languageName: node linkType: hard -"@stablelib/random@npm:1.0.2, @stablelib/random@npm:^1.0.1, @stablelib/random@npm:^1.0.2": - version: 1.0.2 - resolution: "@stablelib/random@npm:1.0.2" +"@tamagui/font-size@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/font-size@npm:1.119.0" dependencies: - "@stablelib/binary": "npm:^1.0.1" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10/f5ace0a588dc4c21f01cb85837892d4c872e994ae77a58a8eb7dd61aa0b26fb1e9b46b0445e71af57d963ef7d9f5965c64258fc0d04df7b2947bc48f2d3560c5 + "@tamagui/core": "npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/2fa4d8c5817679fc7931ba2480ec7a1f7e843a663a6695451939139faf6eb421cc0f847e71303958014e7a301e5bdc88731dc62a05231ee7da01369b00617164 languageName: node linkType: hard -"@stablelib/sha256@npm:1.0.1": - version: 1.0.1 - resolution: "@stablelib/sha256@npm:1.0.1" +"@tamagui/form@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/form@npm:1.119.0" dependencies: - "@stablelib/binary": "npm:^1.0.1" - "@stablelib/hash": "npm:^1.0.1" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10/4d55f6c676e2cc0dd2a32be0cfa96837f3e15ae48dc50a340e56db2b201f1341a9ecabb429a3a44a5bf31adee0a8151467a8e7cc15346c561c914faad415d4d4 + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/focusable": "npm:1.119.0" + "@tamagui/get-button-sized": "npm:1.119.0" + "@tamagui/get-font-sized": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/text": "npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/0fd4f9dbe9da3e8ea8f7ca76761762e106a2a497782152604c03540503c320e0014d7f9aa299d316a363ea8559be548c1ce5af5791cd29dd2184d4a270bbf8c0 languageName: node linkType: hard -"@stablelib/sha512@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/sha512@npm:1.0.1" +"@tamagui/generate-themes@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/generate-themes@npm:1.119.0" dependencies: - "@stablelib/binary": "npm:^1.0.1" - "@stablelib/hash": "npm:^1.0.1" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10/35d188cd62f20d27e1d61ea07984022e9a78815a023c8f7c747d92456a60823f0683138591e87158a47cd72e73cf24ecf97f8936aa6fba8b3bef6fcb138e723d + "@tamagui/create-theme": "npm:1.119.0" + "@tamagui/theme-builder": "npm:1.119.0" + "@tamagui/types": "npm:1.119.0" + esbuild-register: "npm:^3.6.0" + fs-extra: "npm:^11.2.0" + checksum: 10/e3e2e676b048f8ab5b30cf9da475b50c60879b969e66b6c24cf54a66797e6bd2d25bef30869f23121548320c68d4576f49081d99757bfba40b340b4c381ea85f languageName: node linkType: hard -"@stablelib/wipe@npm:^1.0.1": - version: 1.0.1 - resolution: "@stablelib/wipe@npm:1.0.1" - checksum: 10/287802eb146810a46ba72af70b82022caf83a8aeebde23605f5ee0decf64fe2b97a60c856e43b6617b5801287c30cfa863cfb0469e7fcde6f02d143cf0c6cbf4 +"@tamagui/get-button-sized@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/get-button-sized@npm:1.119.0" + dependencies: + "@tamagui/get-token": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/7f0679b2c633aee93cdde26e9fb9c60b9cea08119360c058306f3a297342dcc21ea9ec969316e34e79b6131c5998924f41ad20bbea4fed2571f18898f4ad0b21 languageName: node linkType: hard -"@stablelib/x25519@npm:1.0.3": - version: 1.0.3 - resolution: "@stablelib/x25519@npm:1.0.3" +"@tamagui/get-font-sized@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/get-font-sized@npm:1.119.0" dependencies: - "@stablelib/keyagreement": "npm:^1.0.1" - "@stablelib/random": "npm:^1.0.2" - "@stablelib/wipe": "npm:^1.0.1" - checksum: 10/fb5469e390ee2515d926633e3e179038894ac4f5e8c8cd2c2fc912022e34a051112eab0fe80c4dbc6e59129679844182562a036abff89444e5c4a05dd42ed329 + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/cf783c254c2208fcce01fc5fb01fd6513a12f6036e33c27beb6a4809d5ef62ce4edbb14e057c253e6a97968e48b852c000072f8654fb38f28c776171253a2788 languageName: node linkType: hard -"@statelyai/inspect@npm:^0.4.0": - version: 0.4.0 - resolution: "@statelyai/inspect@npm:0.4.0" +"@tamagui/get-token@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/get-token@npm:1.119.0" dependencies: - fast-safe-stringify: "npm:^2.1.1" - isomorphic-ws: "npm:^5.0.0" - partysocket: "npm:^0.0.25" - safe-stable-stringify: "npm:^2.4.3" - superjson: "npm:^1.13.3" - uuid: "npm:^9.0.1" + "@tamagui/web": "npm:1.119.0" peerDependencies: - xstate: ^5.5.1 - checksum: 10/042071bf454399586057fa7b5592aaf96cde22424a273ac70db785298dc2353447c3643afe52e036789e5f93848c8dda746231512eb553e323886c4a1b09026d + react: "*" + checksum: 10/e9a60b398961c8d59bc24bceeb3c629b4615010e4872e2e4218548026b60b571cc7fea7d9d886ce5d5815f0f2909864390ea0a5e6ddbe0bd59e1849bb081f684 languageName: node linkType: hard -"@storybook/addon-actions@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/addon-actions@npm:8.4.7" +"@tamagui/group@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/group@npm:1.119.0" dependencies: - "@storybook/global": "npm:^5.0.0" - "@types/uuid": "npm:^9.0.1" - dequal: "npm:^2.0.2" - polished: "npm:^4.2.2" - uuid: "npm:^9.0.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" peerDependencies: - storybook: ^8.4.7 - checksum: 10/a691f172f2899bf97ee2d454948a53f94fde29038b1dfc8b1fd902cf0912f72b02f484f3ab4abd6df52237edbed2a7f430a6b7f1b6ba8ee2be1e357c586466bd + react: "*" + checksum: 10/ab58ca946162f72d8491d5ee23041c140e514450a32d1d5b1639bfd38343fc019d7d5ed3732bc0a5735cd0c26b7be0db7b90060ff182bf5f11c0816e0afd1495 languageName: node linkType: hard -"@storybook/addon-backgrounds@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/addon-backgrounds@npm:8.4.7" +"@tamagui/helpers-node@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/helpers-node@npm:1.119.0" dependencies: - "@storybook/global": "npm:^5.0.0" - memoizerific: "npm:^1.11.3" - ts-dedent: "npm:^2.0.0" + "@tamagui/types": "npm:1.119.0" + checksum: 10/f98f59ba756cfad0c224bc8a32e1f8db86fbd91ed9b67b71804a115289eba6f72ca2ee1446a5b83ece110c5d21171ef9d2452736233ac5676315791082b78425 + languageName: node + linkType: hard + +"@tamagui/helpers-tamagui@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/helpers-tamagui@npm:1.119.0" + dependencies: + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" peerDependencies: - storybook: ^8.4.7 - checksum: 10/504ecd09fcdd8bd8525233469df386944a7baff7c8aaeb737532987d27d113db4ded72e394cfcb6b00262602e9fd070cce801cffbb157be6242ee56e0491577c + react: "*" + checksum: 10/878997f481e07c79b180192bcb9a6262b1a1b3617eb452cdeed5d813edae7ddddc4ec17bd951e3d6032d8b6bae7644d481b28d33d3376989fa21d35d173bdb1a languageName: node linkType: hard -"@storybook/addon-controls@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/addon-controls@npm:8.4.7" +"@tamagui/helpers@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/helpers@npm:1.119.0" dependencies: - "@storybook/global": "npm:^5.0.0" - dequal: "npm:^2.0.2" - ts-dedent: "npm:^2.0.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/simple-hash": "npm:1.119.0" + checksum: 10/3d941b7fcd33f0959928a665eaeb483a37be60bd2fbf3f6e0278d7e7f820483a52f517317f2711f569625badc2739ab95597fb15b804b2da9c5642b52273b764 + languageName: node + linkType: hard + +"@tamagui/image@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/image@npm:1.119.0" + dependencies: + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" peerDependencies: - storybook: ^8.4.7 - checksum: 10/29a0d760622cc09517416a5775d8ae7e937fe90ede9d9739a56cdec4bc52564c0d8de535040ed540df912c1c3c04c6f557bc78f792c8af07da91753972f9a512 + react: "*" + checksum: 10/04bbea7cc22450e9181c4dcde470e0273f33467ecc91f393bf2dbf0d887763b8439381d895dc98538e8ed3dbd72cd153f4d10cde1d425a35efba098635ab402a languageName: node linkType: hard -"@storybook/addon-designs@npm:^8.0.3": - version: 8.0.4 - resolution: "@storybook/addon-designs@npm:8.0.4" +"@tamagui/label@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/label@npm:1.119.0" dependencies: - "@figspec/react": "npm:^1.0.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/focusable": "npm:1.119.0" + "@tamagui/get-button-sized": "npm:1.119.0" + "@tamagui/get-font-sized": "npm:1.119.0" + "@tamagui/text": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" peerDependencies: - "@storybook/blocks": ^8.0.0 || ^8.1.0-0 || ^8.2.0-0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - "@storybook/components": ^8.0.0 || ^8.1.0-0 || ^8.2.0-0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - "@storybook/theming": ^8.0.0 || ^8.1.0-0 || ^8.2.0-0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@storybook/blocks": - optional: true - "@storybook/components": - optional: true - "@storybook/theming": - optional: true - react: - optional: true - react-dom: - optional: true - checksum: 10/7892f8752e2767e51d7b8c9e73cb415bb3dfef191f38b640e6ac29cd5be7fd6406f2b6fe40045416941051dabeb5cbdd118edc17c0d4d199c6b67aa588014b8b + react: "*" + react-native: "*" + checksum: 10/74fed94d05f4c1ea8c76e79a2e965a77ea6b7729b3217b39d642caee936bbf43e3f2a7254a405d10fab1e17e62748501353a16d0479f07c9f433da4d4434b28f languageName: node linkType: hard -"@storybook/addon-docs@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/addon-docs@npm:8.4.7" +"@tamagui/linear-gradient@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/linear-gradient@npm:1.119.0" dependencies: - "@mdx-js/react": "npm:^3.0.0" - "@storybook/blocks": "npm:8.4.7" - "@storybook/csf-plugin": "npm:8.4.7" - "@storybook/react-dom-shim": "npm:8.4.7" - react: "npm:^16.8.0 || ^17.0.0 || ^18.0.0" - react-dom: "npm:^16.8.0 || ^17.0.0 || ^18.0.0" - ts-dedent: "npm:^2.0.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" peerDependencies: - storybook: ^8.4.7 - checksum: 10/d09fefeefb462a1b6c368e781f4abbb1dfdf0c58e6f9311bc8a2c320699e9e694153ebf3274f4fc54fb85953eb10ced6de11a848c718ffb38a0f59e1b1717220 + react: "*" + checksum: 10/b45f8fcccd1586c610ffa5e20709c7207fe3f13f1f2752b6f0e06e2157cc0cb3accc17cc6c38290427e1f0d016dcb9f353fed762d4d53797fca6193690cce1cc languageName: node linkType: hard -"@storybook/addon-essentials@npm:^8.0.6": - version: 8.4.7 - resolution: "@storybook/addon-essentials@npm:8.4.7" +"@tamagui/list-item@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/list-item@npm:1.119.0" dependencies: - "@storybook/addon-actions": "npm:8.4.7" - "@storybook/addon-backgrounds": "npm:8.4.7" - "@storybook/addon-controls": "npm:8.4.7" - "@storybook/addon-docs": "npm:8.4.7" - "@storybook/addon-highlight": "npm:8.4.7" - "@storybook/addon-measure": "npm:8.4.7" - "@storybook/addon-outline": "npm:8.4.7" - "@storybook/addon-toolbars": "npm:8.4.7" - "@storybook/addon-viewport": "npm:8.4.7" - ts-dedent: "npm:^2.0.0" + "@tamagui/font-size": "npm:1.119.0" + "@tamagui/get-font-sized": "npm:1.119.0" + "@tamagui/get-token": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/helpers-tamagui": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/text": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" peerDependencies: - storybook: ^8.4.7 - checksum: 10/d8731c18935fbc130beee7236b4e80c1621c6964a4109741512b50f065cd8d322446f8ecd84b4120ad1ce2ea829d0d3b5b764cca19c1bd8b73fc77d04dc13f17 + react: "*" + checksum: 10/cb713811a8860ba1ece3d6767f842d53603d84ca9a35d840a9f2ffeef52bd506cff70e5f3995e74dc9aa7ca24f14e1b8c4a94973a0280fa66ec849f9624b01b4 languageName: node linkType: hard -"@storybook/addon-highlight@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/addon-highlight@npm:8.4.7" +"@tamagui/normalize-css-color@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/normalize-css-color@npm:1.119.0" dependencies: - "@storybook/global": "npm:^5.0.0" + "@react-native/normalize-color": "npm:^2.1.0" + checksum: 10/158c680d69b162c38468e9004b11fbb3948a9dabbc639bdce00b42a9c369e9b042a5a3cd00bdf78391edfd938ee5f87dac43630f60212f1dfb962b37f200a342 + languageName: node + linkType: hard + +"@tamagui/polyfill-dev@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/polyfill-dev@npm:1.119.0" + checksum: 10/6055c33f013992f21142c227f7480eddd826d037bace4a3c7555bb158200dbb04068e0c02575fb3415df6a55a992b957faa949b0fceb0730320af3b7ff7512ad + languageName: node + linkType: hard + +"@tamagui/popover@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/popover@npm:1.119.0" + dependencies: + "@floating-ui/react": "npm:^0.26.24" + "@tamagui/adapt": "npm:1.119.0" + "@tamagui/animate": "npm:1.119.0" + "@tamagui/aria-hidden": "npm:1.119.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/dismissable": "npm:1.119.0" + "@tamagui/floating": "npm:1.119.0" + "@tamagui/focus-scope": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/polyfill-dev": "npm:1.119.0" + "@tamagui/popper": "npm:1.119.0" + "@tamagui/portal": "npm:1.119.0" + "@tamagui/remove-scroll": "npm:1.119.0" + "@tamagui/scroll-view": "npm:1.119.0" + "@tamagui/sheet": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" + react-freeze: "npm:^1.0.3" peerDependencies: - storybook: ^8.4.7 - checksum: 10/2d77ce06eaf69445ed6d7c23a666e67576376d770f8fd33055fd35e33c248c2c78f6333461cb92aa21f45bbf06a1255f1977ec3d349fdef531416fc51da809be + react: "*" + checksum: 10/b5cbfdbb83559cd2b182748f25ca07f06c62916c1af9869868fcdefd31d50f4db0b65dc0c89f11a86e944b444c6e8fc76f7978896cb2c8bc3000782f88ab12c2 languageName: node linkType: hard -"@storybook/addon-interactions@npm:^8.0.6": - version: 8.4.7 - resolution: "@storybook/addon-interactions@npm:8.4.7" +"@tamagui/popper@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/popper@npm:1.119.0" dependencies: - "@storybook/global": "npm:^5.0.0" - "@storybook/instrumenter": "npm:8.4.7" - "@storybook/test": "npm:8.4.7" - polished: "npm:^4.2.2" - ts-dedent: "npm:^2.2.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/floating": "npm:1.119.0" + "@tamagui/get-token": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/start-transition": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" peerDependencies: - storybook: ^8.4.7 - checksum: 10/24d5c55eb7f320a002d54cc638a58f196d243b248df7735d68bba21e5b2b4cd0ba0369b78e7b67522ef741516b022e9e627db9a59476e0ea2da153736950d1bc + react: "*" + checksum: 10/0d5eb2df04a1548d0504efc8348a748f1e9cc8bd5642d9998dc67a6fb3b11c5ec92a9e694279d7cb646e6880727cd18d1dc6a4abe5f6dcc9d6b4c0c62485264a languageName: node linkType: hard -"@storybook/addon-links@npm:^8.3.4": - version: 8.4.7 - resolution: "@storybook/addon-links@npm:8.4.7" +"@tamagui/portal@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/portal@npm:1.119.0" dependencies: - "@storybook/csf": "npm:^0.1.11" - "@storybook/global": "npm:^5.0.0" - ts-dedent: "npm:^2.0.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/start-transition": "npm:1.119.0" + "@tamagui/use-did-finish-ssr": "npm:1.119.0" + "@tamagui/use-event": "npm:1.119.0" + checksum: 10/959da3052db39b8c241b2c7f9811760f3bc42caabaee1c8b513896d1897cb66f3a12b710880bd0da8b2f080cab185ba96be9d837645307d0678713fda744d0cc + languageName: node + linkType: hard + +"@tamagui/progress@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/progress@npm:1.119.0" + dependencies: + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/get-token": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.4.7 - peerDependenciesMeta: - react: - optional: true - checksum: 10/3d64225348f1c72dec069551044c7781de03a4775acfefb8ebe2d0c1a6e0171692a1222e15191bccd57b76ca9a995032df14974b7a6271f7a9b283c90bff1a00 + react: "*" + checksum: 10/f8c510ae02bb1583e1bcb7e0d4e436b89aa0936f9e9b78cc85a33a4a94a729f486f825c77e72c26a2054661124ea3c38a4c0e4a9e1984ac36af51ffddb471d83 languageName: node linkType: hard -"@storybook/addon-measure@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/addon-measure@npm:8.4.7" - dependencies: - "@storybook/global": "npm:^5.0.0" - tiny-invariant: "npm:^1.3.1" - peerDependencies: - storybook: ^8.4.7 - checksum: 10/d7c39c6048add359aa43ae10a65dda738f9b893a1963a9485a5ac0337f2961495fbdcf3e3907c2f19e7fb5380089f16c57a54113ed097cbf915bfe7f8b756ede +"@tamagui/proxy-worm@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/proxy-worm@npm:1.119.0" + checksum: 10/d8c08615042209f3c0fe31dde594331feb55fe393996f43e248148e98d5e46a755de07823336ba153f8756a34be8b80710064dc91c2e7fd5d71243e11ec4d9b7 languageName: node linkType: hard -"@storybook/addon-onboarding@npm:^8.0.6": - version: 8.4.7 - resolution: "@storybook/addon-onboarding@npm:8.4.7" +"@tamagui/radio-group@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/radio-group@npm:1.119.0" dependencies: - react-confetti: "npm:^6.1.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/focusable": "npm:1.119.0" + "@tamagui/get-token": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/label": "npm:1.119.0" + "@tamagui/radio-headless": "npm:1.119.0" + "@tamagui/roving-focus": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" + "@tamagui/use-previous": "npm:1.119.0" peerDependencies: - storybook: ^8.4.7 - checksum: 10/d5a87f8aae2519a1b2c0f1da93497f7bfe7987c154613895e079780dc80eccf9c9b8fece4a7485dea019eda1b99a17121b0955b797bad9fe4582aca0dc344390 + react: "*" + checksum: 10/810f1abb2d2785f2963f6f00eb7b3091686356c7ebcc3c7f1938cfd2ad0c81dda2f1d6d76d45669d6b9cd9b04e2f385978422bf9176ef913fd2f78424690d863 languageName: node linkType: hard -"@storybook/addon-outline@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/addon-outline@npm:8.4.7" +"@tamagui/radio-headless@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/radio-headless@npm:1.119.0" dependencies: - "@storybook/global": "npm:^5.0.0" - ts-dedent: "npm:^2.0.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/focusable": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/label": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" + "@tamagui/use-previous": "npm:1.119.0" peerDependencies: - storybook: ^8.4.7 - checksum: 10/b213e725b3b150b3346e91206cd62bf348f537bfec999a6ca8c7c3a9f772ae69b0e67c50b29e48aaa3315753459bd66782d571a014cafe131d88e2ec3b68f060 + react: "*" + checksum: 10/805d3f8c32c23fa38385f0325606993a29ee56e27fda03bc87a9fa37f8fb2ab2c8a98ef6469e3cc3863983c3f6128a032b3840fe695c7daa99354481a37b38b6 languageName: node linkType: hard -"@storybook/addon-themes@npm:^8.0.6": - version: 8.4.7 - resolution: "@storybook/addon-themes@npm:8.4.7" +"@tamagui/react-native-media-driver@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/react-native-media-driver@npm:1.119.0" dependencies: - ts-dedent: "npm:^2.0.0" + "@tamagui/web": "npm:1.119.0" peerDependencies: - storybook: ^8.4.7 - checksum: 10/4a53ca22045f159d1c4d1310eda6d611882a3058a4dd96b41514e495ff085cd828beaa94c5ea25945fae3a066aef1b7300760717273c507e3ebaee6ad523886b + react-native: "*" + checksum: 10/cda0c124bd72204a6f77fa8ee3b71a064ad903ccd49ad465eeb83618ea73765fbf31ab36888dc940f386ada5c179c54daed368622e84700abc49f7c7d3c48db2 languageName: node linkType: hard -"@storybook/addon-toolbars@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/addon-toolbars@npm:8.4.7" +"@tamagui/react-native-use-pressable@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/react-native-use-pressable@npm:1.119.0" peerDependencies: - storybook: ^8.4.7 - checksum: 10/dff15abb4942a95e89d8d84dfa210388b3fec845e2deee473752f340638348c314b68cb5c052644f3a12b1adba2b3b82dd2dd07a6ac427f6043e26993b81722d + react: "*" + checksum: 10/9c5d58e7da68a6254817beedb6ba92cd2165f41b89826f0c5338d13ae8725367485a284d4ea095825f2f549d6c27bdf0614021c5fc62f10977af52f591f379a2 languageName: node linkType: hard -"@storybook/addon-viewport@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/addon-viewport@npm:8.4.7" - dependencies: - memoizerific: "npm:^1.11.3" +"@tamagui/react-native-use-responder-events@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/react-native-use-responder-events@npm:1.119.0" peerDependencies: - storybook: ^8.4.7 - checksum: 10/8eaf261e43d70b6453a4ec93a3b6ace728a13db0cf49c6c2f38ca49ad987f7b9268dccf71de2b2dd15cacb8862c9de86689ce258565e2c6fa21c20690ff5761a + react: "*" + checksum: 10/d60e7d3f3125863d8a8dec4df02a70b4bc0556db1689b119f830444716b62b15d8160a28ce28bbfb449cccc6f14768fc4582c1d48440921e6877b2b9192b55f8 languageName: node linkType: hard -"@storybook/blocks@npm:8.4.7, @storybook/blocks@npm:^8.0.6": - version: 8.4.7 - resolution: "@storybook/blocks@npm:8.4.7" +"@tamagui/react-native-web-internals@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/react-native-web-internals@npm:1.119.0" dependencies: - "@storybook/csf": "npm:^0.1.11" - "@storybook/icons": "npm:^1.2.12" - ts-dedent: "npm:^2.0.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.4.7 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: 10/d1b92f08b7a829800b16d7a6c6b540eb9b855ca6b6dd7d87cd9c67d211590e76eb43b03d04685950839e764ac96fb6062872868f204fec91bfc1ec4624dbcd6c + "@tamagui/normalize-css-color": "npm:1.119.0" + "@tamagui/react-native-use-pressable": "npm:1.119.0" + "@tamagui/react-native-use-responder-events": "npm:1.119.0" + "@tamagui/simple-hash": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" + checksum: 10/fa3c3f406fbc822b0db7e128e76f9345f8aad985e66f798ba4f724da200b7a118d12c98b6b5f86872065f2e3b7a64e36d43a8a0d0d19c5c484f219d523cad12b languageName: node linkType: hard -"@storybook/builder-webpack5@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/builder-webpack5@npm:8.4.7" +"@tamagui/react-native-web-lite@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/react-native-web-lite@npm:1.119.0" dependencies: - "@storybook/core-webpack": "npm:8.4.7" - "@types/node": "npm:^22.0.0" - "@types/semver": "npm:^7.3.4" - browser-assert: "npm:^1.2.1" - case-sensitive-paths-webpack-plugin: "npm:^2.4.0" - cjs-module-lexer: "npm:^1.2.3" - constants-browserify: "npm:^1.0.0" - css-loader: "npm:^6.7.1" - es-module-lexer: "npm:^1.5.0" - fork-ts-checker-webpack-plugin: "npm:^8.0.0" - html-webpack-plugin: "npm:^5.5.0" - magic-string: "npm:^0.30.5" - path-browserify: "npm:^1.0.1" - process: "npm:^0.11.10" - semver: "npm:^7.3.7" - style-loader: "npm:^3.3.1" - terser-webpack-plugin: "npm:^5.3.1" - ts-dedent: "npm:^2.0.0" - url: "npm:^0.11.0" - util: "npm:^0.12.4" - util-deprecate: "npm:^1.0.2" - webpack: "npm:5" - webpack-dev-middleware: "npm:^6.1.2" - webpack-hot-middleware: "npm:^2.25.1" - webpack-virtual-modules: "npm:^0.6.0" + "@tamagui/normalize-css-color": "npm:1.119.0" + "@tamagui/react-native-use-pressable": "npm:1.119.0" + "@tamagui/react-native-use-responder-events": "npm:1.119.0" + "@tamagui/react-native-web-internals": "npm:1.119.0" + invariant: "npm:^2.2.4" peerDependencies: - storybook: ^8.4.7 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10/169d12e25780ec5801c051bc3abc3de12d236327f6ea035cfb6938f59db009e6bea88d4bbf1e13ceecb9fa726abd317a11fde88b3143b1e35608e62775d4761d + react: "*" + checksum: 10/519143fbd07dbdf96877f726c1d871eeae277beaf3f0568af44e30ff17197e892d0525b854b26d72982415a53f6d470b5595a3d0222d3052278cfd22fa58c8ae languageName: node linkType: hard -"@storybook/components@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/components@npm:8.4.7" +"@tamagui/remove-scroll@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/remove-scroll@npm:1.119.0" + dependencies: + react-remove-scroll: "npm:^2.6.0" peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - checksum: 10/e39fb81e8386db4f3f76cbf4f82e50512fed2f65a581951c0b61e00c9834c20cfff7f717e936353275dadfe6a25ffaac5d47151adbe1e3be85e709f8a64f6a15 + react: "*" + checksum: 10/468e467c68194052460b6881c5aa5f6c2eb8fb918a03dddb9ae8323fa40b90d88c469f5b31aee67ee87f8f06f874327cbab180aef4aa5fc0298453935bcf0320 languageName: node linkType: hard -"@storybook/core-webpack@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/core-webpack@npm:8.4.7" +"@tamagui/roving-focus@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/roving-focus@npm:1.119.0" dependencies: - "@types/node": "npm:^22.0.0" - ts-dedent: "npm:^2.0.0" + "@tamagui/collection": "npm:1.119.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" + "@tamagui/use-direction": "npm:1.119.0" + "@tamagui/use-event": "npm:1.119.0" peerDependencies: - storybook: ^8.4.7 - checksum: 10/561d28962e201086d9f0d739b377aaa5bdaad9eff0dd78cbb6cc9746b70fa3ad86d223e396f414345d19720807a3084ade16c9f2c634d07ed6b8b3355b96be91 + react: "*" + checksum: 10/f3c33ff8d2a31c00d0a848a223eaa30cf706d4d294374bae6f86e6aba85f8a757650785a220bbce23a4a846ad5cd3968a8bb60079d99dd8f9b0eaade0ccec566 languageName: node linkType: hard -"@storybook/core@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/core@npm:8.4.7" +"@tamagui/scroll-view@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/scroll-view@npm:1.119.0" dependencies: - "@storybook/csf": "npm:^0.1.11" - better-opn: "npm:^3.0.2" - browser-assert: "npm:^1.2.1" - esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0" - esbuild-register: "npm:^3.5.0" - jsdoc-type-pratt-parser: "npm:^4.0.0" - process: "npm:^0.11.10" - recast: "npm:^0.23.5" - semver: "npm:^7.6.2" - util: "npm:^0.12.5" - ws: "npm:^8.2.3" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" peerDependencies: - prettier: ^2 || ^3 - peerDependenciesMeta: - prettier: - optional: true - checksum: 10/a0bc9e1ea05ae69a914e508966f27208815de7aa2a4bed010c2c194bbdf397742f83e19ffa2efd98d2c04f08854c9b0b327632f6b0a3a90d2d3dd4c5002f14c5 + react: "*" + checksum: 10/fe960d896815fb35feb424e417619ff8779ec78cd6b9b0f9cea59c3c7ce4aeffd96785977e147d5634f870c6a6dd925f6a53e08c23e141e534b3b22bb951aa35 languageName: node linkType: hard -"@storybook/csf-plugin@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/csf-plugin@npm:8.4.7" +"@tamagui/select@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/select@npm:1.119.0" dependencies: - unplugin: "npm:^1.3.1" + "@floating-ui/react": "npm:^0.26.24" + "@floating-ui/react-dom": "npm:^2.1.2" + "@floating-ui/react-native": "npm:^0.10.6" + "@tamagui/adapt": "npm:1.119.0" + "@tamagui/animate-presence": "npm:1.119.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/dismissable": "npm:1.119.0" + "@tamagui/focus-scope": "npm:1.119.0" + "@tamagui/get-token": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/list-item": "npm:1.119.0" + "@tamagui/portal": "npm:1.119.0" + "@tamagui/remove-scroll": "npm:1.119.0" + "@tamagui/separator": "npm:1.119.0" + "@tamagui/sheet": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/text": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" + "@tamagui/use-debounce": "npm:1.119.0" + "@tamagui/use-event": "npm:1.119.0" + "@tamagui/use-previous": "npm:1.119.0" peerDependencies: - storybook: ^8.4.7 - checksum: 10/d9006d1a506796717528ee81948be89c8ca7e4a4ad463e024936d828b8e91e12940a41f054db4d5b1f1b058146113aaeb415eca87ca94142c3ef1ef501aead17 + react: "*" + checksum: 10/187c7292b9a2cc00b3c9ac2147b50487f02272234110e8717581cd0ea96d62fffa48c4674904dac772dfbcaa9d21fa6b3a44bc704118aa8dd0f5743f792924bd languageName: node linkType: hard -"@storybook/csf@npm:^0.1.11": - version: 0.1.12 - resolution: "@storybook/csf@npm:0.1.12" +"@tamagui/separator@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/separator@npm:1.119.0" dependencies: - type-fest: "npm:^2.19.0" - checksum: 10/f661709de5bd68bfd4ced67df31ef26341168d6679bc13564cb024cfdbc8fdfa94d384267c20b3c858a3058b1ee8dbd71cea169245fcf7b28298890d6c3e1da4 + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/15e401d5b0107bb58c17cfbddef283f7723f6a87406a75094fb98bea773be1b3c3217ae0b11471ef218b43fad9132e1d65d2d455a34f3592f93d64a1cc6fd3a3 languageName: node linkType: hard -"@storybook/global@npm:^5.0.0": - version: 5.0.0 - resolution: "@storybook/global@npm:5.0.0" - checksum: 10/0e7b495f4fe7f36447e793926f1c0460ec07fd66f0da68e3150da5878f6043c9eeb9b41614a45c5ec0d48d5d383c59ca8f88b6dc7882a2a784ac9b20375d8edb +"@tamagui/shapes@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/shapes@npm:1.119.0" + dependencies: + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/92ddbcda915c6b5a29916934b7209d3ee1b579246b9a521ce58177a1efc73018fbffb5e83eace94ea5464a22810fdae9a22f4dfbae32da2cab9ba6778466ec8d languageName: node linkType: hard -"@storybook/icons@npm:^1.2.12": - version: 1.3.0 - resolution: "@storybook/icons@npm:1.3.0" +"@tamagui/sheet@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/sheet@npm:1.119.0" + dependencies: + "@tamagui/adapt": "npm:1.119.0" + "@tamagui/animate-presence": "npm:1.119.0" + "@tamagui/animations-react-native": "npm:1.119.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/portal": "npm:1.119.0" + "@tamagui/remove-scroll": "npm:1.119.0" + "@tamagui/scroll-view": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/use-constant": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" + "@tamagui/use-did-finish-ssr": "npm:1.119.0" + "@tamagui/use-keyboard-visible": "npm:1.119.0" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - checksum: 10/927d7df7b16a4bab1340c303772938cbc932cdac0795be87491c09924f26a4222f2b574d650e9324e4a1459eeb394cce49b03f72411ae3a19889ab94c33e85b3 + react: "*" + checksum: 10/7be8c90f3ea95c2abe291c2e1cb3e6b4baca11915379ed9ce755a8fdfa8c7b03d3a759e33114f13fbf3df74644e659cf183c52f31abae484a44d63802a153b49 languageName: node linkType: hard -"@storybook/instrumenter@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/instrumenter@npm:8.4.7" - dependencies: - "@storybook/global": "npm:^5.0.0" - "@vitest/utils": "npm:^2.1.1" - peerDependencies: - storybook: ^8.4.7 - checksum: 10/8142789e7dd32f881cf9de551078fb3574cc54b47bb8fd2c8b66ea1fb100f14af702f4cbd4bc11a8d1dd4c89f5d0ce7574d2e232b197c43bbebd0a30c06c7e75 +"@tamagui/shorthands@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/shorthands@npm:1.119.0" + checksum: 10/a7ca299ca4f8e840eed76f5a4ab1fcea1ac8bdef85a1d412954a16519a41a0fc96985493acc19686697e722288ecabbe91c886e6d20130dd646d8231ab9b4fb1 languageName: node linkType: hard -"@storybook/manager-api@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/manager-api@npm:8.4.7" - peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - checksum: 10/2b826ec55de7ea0b5b5151dfa896f3e7eddfd36ede61f8a7ad14a37733d5d5645565f863dbde7e2272f1e9b5717f26de7802ae60e297a2647ee2c4c072ed3069 +"@tamagui/simple-hash@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/simple-hash@npm:1.119.0" + checksum: 10/55a1864e47b1d37ae504913d20b71733e3ef88775f868977b2a47a7bb4357f3771f300962e579a316585800e9de0110a6034325500381447c9c1cdead7b157a8 languageName: node linkType: hard -"@storybook/nextjs@npm:^8.0.6": - version: 8.4.7 - resolution: "@storybook/nextjs@npm:8.4.7" - dependencies: - "@babel/core": "npm:^7.24.4" - "@babel/plugin-syntax-bigint": "npm:^7.8.3" - "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" - "@babel/plugin-syntax-import-assertions": "npm:^7.24.1" - "@babel/plugin-transform-class-properties": "npm:^7.24.1" - "@babel/plugin-transform-export-namespace-from": "npm:^7.24.1" - "@babel/plugin-transform-numeric-separator": "npm:^7.24.1" - "@babel/plugin-transform-object-rest-spread": "npm:^7.24.1" - "@babel/plugin-transform-runtime": "npm:^7.24.3" - "@babel/preset-env": "npm:^7.24.4" - "@babel/preset-react": "npm:^7.24.1" - "@babel/preset-typescript": "npm:^7.24.1" - "@babel/runtime": "npm:^7.24.4" - "@pmmmwh/react-refresh-webpack-plugin": "npm:^0.5.11" - "@storybook/builder-webpack5": "npm:8.4.7" - "@storybook/preset-react-webpack": "npm:8.4.7" - "@storybook/react": "npm:8.4.7" - "@storybook/test": "npm:8.4.7" - "@types/node": "npm:^22.0.0" - "@types/semver": "npm:^7.3.4" - babel-loader: "npm:^9.1.3" - css-loader: "npm:^6.7.3" - find-up: "npm:^5.0.0" - image-size: "npm:^1.0.0" - loader-utils: "npm:^3.2.1" - node-polyfill-webpack-plugin: "npm:^2.0.1" - pnp-webpack-plugin: "npm:^1.7.0" - postcss: "npm:^8.4.38" - postcss-loader: "npm:^8.1.1" - react-refresh: "npm:^0.14.0" - resolve-url-loader: "npm:^5.0.0" - sass-loader: "npm:^13.2.0" - semver: "npm:^7.3.5" - sharp: "npm:^0.33.3" - style-loader: "npm:^3.3.1" - styled-jsx: "npm:^5.1.6" - ts-dedent: "npm:^2.0.0" - tsconfig-paths: "npm:^4.0.0" - tsconfig-paths-webpack-plugin: "npm:^4.0.1" +"@tamagui/slider@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/slider@npm:1.119.0" + dependencies: + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/get-token": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" + "@tamagui/use-debounce": "npm:1.119.0" + "@tamagui/use-direction": "npm:1.119.0" peerDependencies: - next: ^13.5.0 || ^14.0.0 || ^15.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.4.7 - webpack: ^5.0.0 - dependenciesMeta: - sharp: - optional: true - peerDependenciesMeta: - typescript: - optional: true - webpack: - optional: true - checksum: 10/730e6c1a845f8498106151b49ad9a792b8db12089d398213f0e28bfdfe5833491e48c6298cfc489a6e9d46cbf02a849fbe9a2ad3738a163a6623e3017006b8d1 + react: "*" + checksum: 10/04baa7c81871dc0d0f413b10a0b6f33b1bdb2b75a80a81900d26594d62efe0c31df294ec91558a747ddcde94b60e31fad7ece1e6afb17f44b8f2f62ce69d7631 languageName: node linkType: hard -"@storybook/preset-react-webpack@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/preset-react-webpack@npm:8.4.7" +"@tamagui/stacks@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/stacks@npm:1.119.0" dependencies: - "@storybook/core-webpack": "npm:8.4.7" - "@storybook/react": "npm:8.4.7" - "@storybook/react-docgen-typescript-plugin": "npm:1.0.6--canary.9.0c3f3b7.0" - "@types/node": "npm:^22.0.0" - "@types/semver": "npm:^7.3.4" - find-up: "npm:^5.0.0" - magic-string: "npm:^0.30.5" - react-docgen: "npm:^7.0.0" - resolve: "npm:^1.22.8" - semver: "npm:^7.3.7" - tsconfig-paths: "npm:^4.2.0" - webpack: "npm:5" + "@tamagui/core": "npm:1.119.0" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.4.7 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10/d338fa45547126ee35ec0433a9811d9c816cebf27ec7598539b62bb08b5a9c39634986670e1cbcf11778a13691ee0695fc71e4dea68c393e5feb6ae478d047f5 + react: "*" + checksum: 10/461cf0c995a1cdb17866794380ef772a65589a0e39263df131a41a7279ebf9cbc2c58e45e5fc1ed3f3ad9a0dc1ef46abbb8e3ea4ecd54418058436e8ef8c3dee languageName: node linkType: hard -"@storybook/preview-api@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/preview-api@npm:8.4.7" - peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - checksum: 10/1c467bb2c16c5998b9bc4c2c013e6786936d5f6a373ad8d8ab1beb626616c3187329fdfc3a709663b4af963c7e5789a1401166c6e2a3a66a12f66e858aa94e91 +"@tamagui/start-transition@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/start-transition@npm:1.119.0" + checksum: 10/00c849e9f740c7453620379918a0d648be77fc44d302bb4280ce9c7cb0c6a994e310d6387f461bbd55c1cf8d8db74cf914ef91307357967d00372bbf58e2ad5e languageName: node linkType: hard -"@storybook/react-docgen-typescript-plugin@npm:1.0.6--canary.9.0c3f3b7.0": - version: 1.0.6--canary.9.0c3f3b7.0 - resolution: "@storybook/react-docgen-typescript-plugin@npm:1.0.6--canary.9.0c3f3b7.0" +"@tamagui/static@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/static@npm:1.119.0" dependencies: - debug: "npm:^4.1.1" - endent: "npm:^2.0.1" - find-cache-dir: "npm:^3.3.1" - flat-cache: "npm:^3.0.4" - micromatch: "npm:^4.0.2" - react-docgen-typescript: "npm:^2.2.2" - tslib: "npm:^2.0.0" + "@babel/core": "npm:^7.25.2" + "@babel/generator": "npm:^7.25.5" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/parser": "npm:^7.25.4" + "@babel/plugin-transform-react-jsx": "npm:^7.25.2" + "@babel/runtime": "npm:^7.25.4" + "@babel/traverse": "npm:^7.25.4" + "@babel/types": "npm:^7.25.4" + "@esbuild-plugins/tsconfig-paths": "npm:^0.1.2" + "@tamagui/build": "npm:1.119.0" + "@tamagui/cli-color": "npm:1.119.0" + "@tamagui/config-default": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/fake-react-native": "npm:1.119.0" + "@tamagui/generate-themes": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/helpers-node": "npm:1.119.0" + "@tamagui/proxy-worm": "npm:1.119.0" + "@tamagui/react-native-web-internals": "npm:1.119.0" + "@tamagui/react-native-web-lite": "npm:1.119.0" + "@tamagui/shorthands": "npm:1.119.0" + "@tamagui/types": "npm:1.119.0" + babel-literal-to-ast: "npm:^2.1.0" + browserslist: "npm:^4.22.2" + check-dependency-version-consistency: "npm:^4.1.0" + esbuild: "npm:^0.24.0" + esbuild-register: "npm:^3.6.0" + fast-glob: "npm:^3.2.11" + find-cache-dir: "npm:^3.3.2" + find-root: "npm:^1.1.0" + fs-extra: "npm:^11.2.0" + invariant: "npm:^2.2.4" + js-yaml: "npm:^4.1.0" + lodash: "npm:^4.17.21" + react-native-web: "npm:^0.19.12" peerDependencies: - typescript: ">= 4.x" - webpack: ">= 4" - checksum: 10/5d3c64b022d10d7316b600a41eec2cf38ba460e11bf9a01ae976e8d0efe6959633423d2a3546a5d3f9f04bcc946e83774e8efdf9ccfedb76a7065ec08e7ec809 + react: "*" + checksum: 10/57b675dce0d417cb271852434a972e8837d905e5643eb8fce1ed9e921e9655728ebc8c6c0904f471c57f8c798a5d64eea86caebb08332645dea4ee8063bc4c4a languageName: node linkType: hard -"@storybook/react-dom-shim@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/react-dom-shim@npm:8.4.7" +"@tamagui/switch-headless@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/switch-headless@npm:1.119.0" + dependencies: + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/label": "npm:1.119.0" + "@tamagui/use-previous": "npm:1.119.0" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.4.7 - checksum: 10/c45af3e1320f131231aad794c8f0d565677313ba0edbac31e3551bab371927f31ec780151fbc451c57205bd0b73a157b95901d2c4d06c6a63ce868866948f328 + react: "*" + checksum: 10/4b693e483abbe7f497b7f04fa3c9b8bdc4d1cf002bce34c54c11e9d4d94356c03a3067ff7b828d30fdf2680d3957e4c78a82bb7e9b9649e414f8fe2bfbeadebb languageName: node linkType: hard -"@storybook/react@npm:8.4.7, @storybook/react@npm:^8.0.6": - version: 8.4.7 - resolution: "@storybook/react@npm:8.4.7" +"@tamagui/switch@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/switch@npm:1.119.0" dependencies: - "@storybook/components": "npm:8.4.7" - "@storybook/global": "npm:^5.0.0" - "@storybook/manager-api": "npm:8.4.7" - "@storybook/preview-api": "npm:8.4.7" - "@storybook/react-dom-shim": "npm:8.4.7" - "@storybook/theming": "npm:8.4.7" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/focusable": "npm:1.119.0" + "@tamagui/get-token": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/label": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/switch-headless": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" + "@tamagui/use-previous": "npm:1.119.0" peerDependencies: - "@storybook/test": 8.4.7 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.4.7 - typescript: ">= 4.2.x" - peerDependenciesMeta: - "@storybook/test": - optional: true - typescript: - optional: true - checksum: 10/4138b11118a313dca2551de307b994f84121c306f2d3a66c29ef9fb07352451a899ce91fd8736149182f8806a7c03dbbe7a4a7d463b0ab3eddbd195057c4cbf8 + react: "*" + checksum: 10/d42fe87408ba473f79e7ab97af6e994b553dc008e3435f625a84fb939038ac0644fbce484ecbcf2f41c5a881dae565460be622cee3b33531cb557395d6bf5ce9 languageName: node linkType: hard -"@storybook/test@npm:8.4.7, @storybook/test@npm:^8.0.6": - version: 8.4.7 - resolution: "@storybook/test@npm:8.4.7" +"@tamagui/tabs@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/tabs@npm:1.119.0" dependencies: - "@storybook/csf": "npm:^0.1.11" - "@storybook/global": "npm:^5.0.0" - "@storybook/instrumenter": "npm:8.4.7" - "@testing-library/dom": "npm:10.4.0" - "@testing-library/jest-dom": "npm:6.5.0" - "@testing-library/user-event": "npm:14.5.2" - "@vitest/expect": "npm:2.0.5" - "@vitest/spy": "npm:2.0.5" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/get-button-sized": "npm:1.119.0" + "@tamagui/group": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/roving-focus": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" + "@tamagui/use-direction": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" peerDependencies: - storybook: ^8.4.7 - checksum: 10/e6e8c2b5b63337e297362716a9de81818f8d94107cc1eea6c1aef75d0ad93d417d277fa90068ee1960acba98ea2658660514148d106a547419c9088c20905f02 + react: "*" + checksum: 10/d33778c3828d2de279cad0bc3e0898c83f62123abb526f06efffa837d6928759071971c86d1f876c813fd908e4cce3477d3adc2681396a2680f48819ecc8666b languageName: node linkType: hard -"@storybook/theming@npm:8.4.7": - version: 8.4.7 - resolution: "@storybook/theming@npm:8.4.7" +"@tamagui/text@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/text@npm:1.119.0" + dependencies: + "@tamagui/get-font-sized": "npm:1.119.0" + "@tamagui/helpers-tamagui": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - checksum: 10/47d29993c33bb29994d227af30e099579b7cf760652ed743020f5d7e5a5974f59a6ebeb1cc8995e6158da9cf768a8d2f559d1d819cc082d0bcdb056d85fdcb29 + react: "*" + checksum: 10/48387fa0129af0393f08f9a1497e206495a4d67ef29f2ef296823f3df5a7bd29bd92d2074850b972c1b2e36fa958df21739e3b0b0587c7bd258ecac50ac9c5c9 languageName: node linkType: hard -"@surma/rollup-plugin-off-main-thread@npm:^2.2.3": - version: 2.2.3 - resolution: "@surma/rollup-plugin-off-main-thread@npm:2.2.3" +"@tamagui/theme-builder@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/theme-builder@npm:1.119.0" dependencies: - ejs: "npm:^3.1.6" - json5: "npm:^2.2.0" - magic-string: "npm:^0.25.0" - string.prototype.matchall: "npm:^4.0.6" - checksum: 10/0c7dc1c1fc396454513dec9ef34e743ffc8662adc20eeaf392a9cca4bd8a4a33af239c057022b6272c3fc438550e3c7099cdea5f50eb61c5058308989c7c48d6 + "@tamagui/create-theme": "npm:1.119.0" + color2k: "npm:^2.0.2" + checksum: 10/b222edf0b1f496f19f35fd3789ed4a7feb0eee9c706092cc4d32168636c8a6fd098e2d5f7e510fc7e309d4b52cbc18b50696f4c879d8073bea8705963a5c1de9 languageName: node linkType: hard -"@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:8.0.0" +"@tamagui/theme@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/theme@npm:1.119.0" + dependencies: + "@tamagui/constants": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/3fc8e35d16f5abe0af5efe5851f27581225ac405d6a1ca44cda0df064cddfcc29a428c48c2e4bef6cebf627c9ac2f652a096030edb02cf5a120ce28d3c234710 + react: "*" + checksum: 10/eeecdb64c569103de1de30a6132e4a5c67dbcaa5a1263ac9073198f9ad06c92d297b7fa108f89b612b660dacc7e1f00b565a84ea0623cc387277bd84ea475e98 languageName: node linkType: hard -"@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0" +"@tamagui/themes@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/themes@npm:1.119.0" + dependencies: + "@tamagui/colors": "npm:1.119.0" + "@tamagui/create-theme": "npm:1.119.0" + "@tamagui/theme-builder": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" + checksum: 10/baebb1237d7e788a386942becb68f065ae0ed59e25fe1395bfa1d8c1effad572256f06594440aedae799aba3ff8ae1f7167c8cf4e5eda2bd6ee904f914cc9bdb + languageName: node + linkType: hard + +"@tamagui/timer@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/timer@npm:1.119.0" + checksum: 10/025cf3fede642132e24ea762a826ee697306e86ca15f3b2430fb72f11ddc0b2e126aece8a2208d818b75e7a8a710e1c51219d29231fb33962f73d12088cb07e3 + languageName: node + linkType: hard + +"@tamagui/toast@npm:^1.117.1": + version: 1.119.0 + resolution: "@tamagui/toast@npm:1.119.0" + dependencies: + "@tamagui/animate-presence": "npm:1.119.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/dismissable": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/polyfill-dev": "npm:1.119.0" + "@tamagui/portal": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/start-transition": "npm:1.119.0" + "@tamagui/text": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" + "@tamagui/visually-hidden": "npm:1.119.0" peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/ff992893c6c4ac802713ba3a97c13be34e62e6d981c813af40daabcd676df68a72a61bd1e692bb1eda3587f1b1d700ea462222ae2153bb0f46886632d4f88d08 + react: "*" + checksum: 10/81690f9b9260a64b4a5834000d1e1d8c334ed316b788b5734ffe1a13b2435b58af8c5cd2c4dd8d562d687cc7a2be3bb93842794b59da955055593c73c6f82eda languageName: node linkType: hard -"@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0" +"@tamagui/toggle-group@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/toggle-group@npm:1.119.0" + dependencies: + "@tamagui/constants": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/focusable": "npm:1.119.0" + "@tamagui/font-size": "npm:1.119.0" + "@tamagui/get-token": "npm:1.119.0" + "@tamagui/group": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/helpers-tamagui": "npm:1.119.0" + "@tamagui/roving-focus": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" + "@tamagui/use-direction": "npm:1.119.0" + "@tamagui/web": "npm:1.119.0" peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/0fb691b63a21bac00da3aa2dccec50d0d5a5b347ff408d60803b84410d8af168f2656e4ba1ee1f24dab0ae4e4af77901f2928752bb0434c1f6788133ec599ec8 + react: "*" + checksum: 10/6713b477ee705399de4bfbe40e3e86fd93406621e0e2e0963ec8321c39ae198e29d1acb4b3d27272b880b1b6a80abc3d82f570c70856ba28fba0b7643773db7d languageName: node linkType: hard -"@svgr/babel-plugin-replace-jsx-attribute-value@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-replace-jsx-attribute-value@npm:8.0.0" +"@tamagui/tooltip@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/tooltip@npm:1.119.0" + dependencies: + "@floating-ui/react": "npm:^0.26.24" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/floating": "npm:1.119.0" + "@tamagui/get-token": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/polyfill-dev": "npm:1.119.0" + "@tamagui/popover": "npm:1.119.0" + "@tamagui/popper": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/text": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/1edda65ef4f4dd8f021143c8ec276a08f6baa6f733b8e8ee2e7775597bf6b97afb47fdeefd579d6ae6c959fe2e634f55cd61d99377631212228c8cfb351b8921 + react: "*" + checksum: 10/add94016046ea72b618b283ead2aab1d9629a55c17ccc59d069def206b92bb7a29c3a98cd42cfbfa477f5dc40ad588fec7c561bdb84712fb9983f41625e528b3 languageName: node linkType: hard -"@svgr/babel-plugin-svg-dynamic-title@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-svg-dynamic-title@npm:8.0.0" +"@tamagui/types@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/types@npm:1.119.0" + checksum: 10/5b30e5adc046b042f294530158e5605b0294d02770bf2be86b1292da66e011e575f57057cb500a30474c33cfceb2bc85a136b7c31c774582798b542e51da0343 + languageName: node + linkType: hard + +"@tamagui/use-callback-ref@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/use-callback-ref@npm:1.119.0" + checksum: 10/0688bc80254c94d75c4cf1a5b7f70a1af102cccb25dbe1a41439b0520d1a88e120e2d3f3488947252b0f7561f6c2c7a0e22c08804a67fab627f3b87c2394e8aa + languageName: node + linkType: hard + +"@tamagui/use-constant@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/use-constant@npm:1.119.0" peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/876cec891488992e6a9aebb8155e2bea4ec461b4718c51de36e988e00e271c6d9d01ef6be17b9effd44b2b3d7db0b41c161a5904a46ae6f38b26b387ad7f3709 + react: "*" + checksum: 10/7d5d740c7ee293c1cef28b7c2da780201e0ed253336ab6f65c634748f495a5f93529770bfb07a8d8fb61654902abb897578447669338ca790bd19b29416bae58 languageName: node linkType: hard -"@svgr/babel-plugin-svg-em-dimensions@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-svg-em-dimensions@npm:8.0.0" +"@tamagui/use-controllable-state@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/use-controllable-state@npm:1.119.0" + dependencies: + "@tamagui/start-transition": "npm:1.119.0" + "@tamagui/use-event": "npm:1.119.0" peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/be0e2d391164428327d9ec469a52cea7d93189c6b0e2c290999e048f597d777852f701c64dca44cd45b31ed14a7f859520326e2e4ad7c3a4545d0aa235bc7e9a + react: "*" + checksum: 10/c87da9b0ee1cc21a89c60b492e12fffd0dc68c2c09852e6e704a6ecf0e749cbff833e412021e520e473bff24795a8f800d8496fda4005bf78b1fe2a5a49fb3d0 languageName: node linkType: hard -"@svgr/babel-plugin-transform-react-native-svg@npm:8.1.0": - version: 8.1.0 - resolution: "@svgr/babel-plugin-transform-react-native-svg@npm:8.1.0" +"@tamagui/use-debounce@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/use-debounce@npm:1.119.0" peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/85b434a57572f53bd2b9f0606f253e1fcf57b4a8c554ec3f2d43ed17f50d8cae200cb3aaf1ec9d626e1456e8b135dce530ae047eb0bed6d4bf98a752d6640459 + react: "*" + checksum: 10/2cd536023459f0627dde323ffe61ca73d0f024e0b25012e8a596d3d8787840c91975349adad0866f3b5884b85dfed8cfed1803a11794a27c32426638f5f73a0d languageName: node linkType: hard -"@svgr/babel-plugin-transform-svg-component@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/babel-plugin-transform-svg-component@npm:8.0.0" +"@tamagui/use-did-finish-ssr@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/use-did-finish-ssr@npm:1.119.0" peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/86ca139c0be0e7df05f103c5f10874387ada1434ca0286584ba9cd367c259d74bf9c86700b856449f46cf674bd6f0cf18f8f034f6d3f0e2ce5e5435c25dbff4b + react: "*" + checksum: 10/66cb9a231709eb706b8dc298326198fb3f59369ca148cf11c0b02a3c02170abf476b60257bb2531a4905ccc254f9ab874591cb5980d92e688a86f0ffcabe9ae3 languageName: node linkType: hard -"@svgr/babel-preset@npm:8.1.0": - version: 8.1.0 - resolution: "@svgr/babel-preset@npm:8.1.0" - dependencies: - "@svgr/babel-plugin-add-jsx-attribute": "npm:8.0.0" - "@svgr/babel-plugin-remove-jsx-attribute": "npm:8.0.0" - "@svgr/babel-plugin-remove-jsx-empty-expression": "npm:8.0.0" - "@svgr/babel-plugin-replace-jsx-attribute-value": "npm:8.0.0" - "@svgr/babel-plugin-svg-dynamic-title": "npm:8.0.0" - "@svgr/babel-plugin-svg-em-dimensions": "npm:8.0.0" - "@svgr/babel-plugin-transform-react-native-svg": "npm:8.1.0" - "@svgr/babel-plugin-transform-svg-component": "npm:8.0.0" +"@tamagui/use-direction@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/use-direction@npm:1.119.0" peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/3a67930f080b8891e1e8e2595716b879c944d253112bae763dce59807ba23454d162216c8d66a0a0e3d4f38a649ecd6c387e545d1e1261dd69a68e9a3392ee08 + react: "*" + checksum: 10/35925ce078a71e4b33c8787a1ce74a1b018617f18f175ede3db341e1fa055d3a15c00167717159fe0f66c7ee1c887b74ea0678a6762bc7b04c0e4c51ce6e56aa languageName: node linkType: hard -"@svgr/core@npm:8.1.0": - version: 8.1.0 - resolution: "@svgr/core@npm:8.1.0" +"@tamagui/use-escape-keydown@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/use-escape-keydown@npm:1.119.0" dependencies: - "@babel/core": "npm:^7.21.3" - "@svgr/babel-preset": "npm:8.1.0" - camelcase: "npm:^6.2.0" - cosmiconfig: "npm:^8.1.3" - snake-case: "npm:^3.0.4" - checksum: 10/bc98cd5fc349ab9dcf0c13c2279164726d45878cdac8999090765379c6e897a1b24aca641c12a3c33f578d06f7a09252fb090962a4695c753fb02b627a56bfe6 + "@tamagui/use-callback-ref": "npm:1.119.0" + checksum: 10/a0426be7c4bcf7687853cd8ed04a66e24eadc1c9a57277393c77db8d0713b7e71fcb1b28a568ce20c5afab76becb28d4ea2ef455b65c3a9f4bd31e2aae80c2d0 languageName: node linkType: hard -"@svgr/hast-util-to-babel-ast@npm:8.0.0": - version: 8.0.0 - resolution: "@svgr/hast-util-to-babel-ast@npm:8.0.0" +"@tamagui/use-event@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/use-event@npm:1.119.0" dependencies: - "@babel/types": "npm:^7.21.3" - entities: "npm:^4.4.0" - checksum: 10/243aa9c92d66aa3f1fc82851fe1fa376808a08fcc02719fed38ebfb4e25cf3e3c1282c185300c29953d047c36acb9e3ac588d46b0af55a3b7a5186a6badec8a9 + "@tamagui/constants": "npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/91cb8faf6c537f14aedebcab8044877b4500cd8f7f101b2cffaabe9b9c43a58b25ed04f854efbef6c91b76b68d0195d1514f7b296a3eade7bc613c33a152a4e2 languageName: node linkType: hard -"@svgr/plugin-jsx@npm:8.1.0": - version: 8.1.0 - resolution: "@svgr/plugin-jsx@npm:8.1.0" - dependencies: - "@babel/core": "npm:^7.21.3" - "@svgr/babel-preset": "npm:8.1.0" - "@svgr/hast-util-to-babel-ast": "npm:8.0.0" - svg-parser: "npm:^2.0.4" +"@tamagui/use-force-update@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/use-force-update@npm:1.119.0" peerDependencies: - "@svgr/core": "*" - checksum: 10/0418a9780753d3544912ee2dad5d2cf8d12e1ba74df8053651b3886aeda54d5f0f7d2dece0af5e0d838332c4f139a57f0dabaa3ca1afa4d1a765efce6a7656f2 + react: "*" + checksum: 10/25ed55c391f1a0842da79e49fd2d2faf34d4c29ad66bb07074b12ba4d2c1be988d4571fd2f9ee671f8b591f0d80220e5fea1660f3269a081d912e1305cfb64ce languageName: node linkType: hard -"@svgr/plugin-svgo@npm:8.1.0": - version: 8.1.0 - resolution: "@svgr/plugin-svgo@npm:8.1.0" +"@tamagui/use-keyboard-visible@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/use-keyboard-visible@npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/3cd6d6675ee013003c1e66176ba5cbbfe7c79779c6e49645dca5a073b4b3f0115272ee41a5f4b2fafa99e80ce70c3676d0061f5243d27cd3864ec7095e33c1a8 + languageName: node + linkType: hard + +"@tamagui/use-presence@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/use-presence@npm:1.119.0" dependencies: - cosmiconfig: "npm:^8.1.3" - deepmerge: "npm:^4.3.1" - svgo: "npm:^3.0.2" + "@tamagui/web": "npm:1.119.0" peerDependencies: - "@svgr/core": "*" - checksum: 10/59d9d214cebaacca9ca71a561f463d8b7e5a68ca9443e4792a42d903acd52259b1790c0680bc6afecc3f00a255a6cbd7ea278a9f625bac443620ea58a590c2d0 + react: "*" + checksum: 10/82c2e1c8ac4f7eca47fcbe79b02ec62965b88f3604f187503e4ba2a882e5ec8b7d0a18a919a5f70610ef59e8d8c5ca5e7ee4f2da746ed56700eeaf3c5c18e21a languageName: node linkType: hard -"@svgr/webpack@npm:^8.1.0": - version: 8.1.0 - resolution: "@svgr/webpack@npm:8.1.0" +"@tamagui/use-previous@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/use-previous@npm:1.119.0" + checksum: 10/7ada11baf20e189a8a1a169cbd994c899a67399ea7bac53badc6662d7a3f591b9d298575f41c82f98a76113ee610805624e387fc6afd1ae0b4d96744ee4bcd90 + languageName: node + linkType: hard + +"@tamagui/use-window-dimensions@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/use-window-dimensions@npm:1.119.0" dependencies: - "@babel/core": "npm:^7.21.3" - "@babel/plugin-transform-react-constant-elements": "npm:^7.21.3" - "@babel/preset-env": "npm:^7.20.2" - "@babel/preset-react": "npm:^7.18.6" - "@babel/preset-typescript": "npm:^7.21.0" - "@svgr/core": "npm:8.1.0" - "@svgr/plugin-jsx": "npm:8.1.0" - "@svgr/plugin-svgo": "npm:8.1.0" - checksum: 10/c6eec5b0cf2fb2ecd3a7a362d272eda35330b17c76802a3481f499b5d07ff8f87b31d2571043bff399b051a1767b1e2e499dbf186104d1c06d76f9f1535fac01 + "@tamagui/constants": "npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/688095a773ae7effb1264edd7e3474115afc0f696aa118c7e0863638c380a14839be11240bf6657cac0b3d1eb8920f86c07ff52365235dcb79ed4afb547cd147 languageName: node linkType: hard -"@swc/counter@npm:0.1.3": - version: 0.1.3 - resolution: "@swc/counter@npm:0.1.3" - checksum: 10/df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598 +"@tamagui/visually-hidden@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/visually-hidden@npm:1.119.0" + dependencies: + "@tamagui/web": "npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/8ec517c55a23dafeefc43ecfa960a5d66bf6b55055cae49004decee972ef14c9c4ff6a4c028a3aa05a3d01e68038728beedc3dd158b0f6e342b496c2e59d2630 languageName: node linkType: hard -"@swc/helpers@npm:0.5.15": - version: 0.5.15 - resolution: "@swc/helpers@npm:0.5.15" +"@tamagui/web@npm:1.119.0": + version: 1.119.0 + resolution: "@tamagui/web@npm:1.119.0" dependencies: - tslib: "npm:^2.8.0" - checksum: 10/e3f32c6deeecfb0fa3f22edff03a7b358e7ce16d27b0f1c8b5cdc3042c5c4ce4da6eac0b781ab7cc4f54696ece657467d56734fb26883439fb00017385364c4c + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/helpers": "npm:1.119.0" + "@tamagui/normalize-css-color": "npm:1.119.0" + "@tamagui/timer": "npm:1.119.0" + "@tamagui/types": "npm:1.119.0" + "@tamagui/use-did-finish-ssr": "npm:1.119.0" + "@tamagui/use-event": "npm:1.119.0" + "@tamagui/use-force-update": "npm:1.119.0" + peerDependencies: + react: "*" + react-dom: "*" + checksum: 10/715e7d88dfa0449054ed390628494cd85c828ad8317914f265ec9b5c47230f5c88fcdc393c4d738d9f116e422c6fa086c30bedb2a95f883c18d1684f7a812c4e languageName: node linkType: hard @@ -7758,6 +11119,25 @@ __metadata: languageName: node linkType: hard +"@testing-library/react-native@npm:^12.7.2": + version: 12.9.0 + resolution: "@testing-library/react-native@npm:12.9.0" + dependencies: + jest-matcher-utils: "npm:^29.7.0" + pretty-format: "npm:^29.7.0" + redent: "npm:^3.0.0" + peerDependencies: + jest: ">=28.0.0" + react: ">=16.8.0" + react-native: ">=0.59" + react-test-renderer: ">=16.8.0" + peerDependenciesMeta: + jest: + optional: true + checksum: 10/dcee1d836e76198a2c397fbcb7db24a40e2c45b2dcbca266a4a5d8a802a859a1e8c50755336a2d70f9eec478de964951673b78acb2e03c007b2bee5b8d8766d1 + languageName: node + linkType: hard + "@testing-library/react@npm:^16.1.0": version: 16.1.0 resolution: "@testing-library/react@npm:16.1.0" @@ -8064,6 +11444,34 @@ __metadata: languageName: node linkType: hard +"@tsconfig/node10@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node10@npm:1.0.11" + checksum: 10/51fe47d55fe1b80ec35e6e5ed30a13665fd3a531945350aa74a14a1e82875fb60b350c2f2a5e72a64831b1b6bc02acb6760c30b3738b54954ec2dea82db7a267 + languageName: node + linkType: hard + +"@tsconfig/node12@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node12@npm:1.0.11" + checksum: 10/5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a + languageName: node + linkType: hard + +"@tsconfig/node14@npm:^1.0.0": + version: 1.0.3 + resolution: "@tsconfig/node14@npm:1.0.3" + checksum: 10/19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d + languageName: node + linkType: hard + +"@tsconfig/node16@npm:^1.0.2": + version: 1.0.4 + resolution: "@tsconfig/node16@npm:1.0.4" + checksum: 10/202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff + languageName: node + linkType: hard + "@typechain/ethers-v6@npm:^0.5.1": version: 0.5.1 resolution: "@typechain/ethers-v6@npm:0.5.1" @@ -8153,6 +11561,13 @@ __metadata: languageName: node linkType: hard +"@types/cookie@npm:^0.6.0": + version: 0.6.0 + resolution: "@types/cookie@npm:0.6.0" + checksum: 10/b883348d5bf88695fbc2c2276b1c49859267a55cae3cf11ea1dccc1b3be15b466e637ce3242109ba27d616c77c6aa4efe521e3d557110b4fdd9bc332a12445c2 + languageName: node + linkType: hard + "@types/debug@npm:^4.0.0": version: 4.1.12 resolution: "@types/debug@npm:4.1.12" @@ -8189,6 +11604,15 @@ __metadata: languageName: node linkType: hard +"@types/eslint__js@npm:^8.42.3": + version: 8.42.3 + resolution: "@types/eslint__js@npm:8.42.3" + dependencies: + "@types/eslint": "npm:*" + checksum: 10/e31f19de642d35a664695d0cab873ce6de19b8a3506755835b91f8a49a8c41099dcace449df49f1a486de6fa6565d21ceb1fa33be6004fc7adef9226e5d256a1 + languageName: node + linkType: hard + "@types/estree-jsx@npm:^1.0.0": version: 1.0.5 resolution: "@types/estree-jsx@npm:1.0.5" @@ -8212,6 +11636,22 @@ __metadata: languageName: node linkType: hard +"@types/fs-extra@npm:^9.0.13": + version: 9.0.13 + resolution: "@types/fs-extra@npm:9.0.13" + dependencies: + "@types/node": "npm:*" + checksum: 10/ac545e377248039c596ef27d9f277b813507ebdd95d05f32fe7e9c67eb1ed567dafb4ba59f5fdcb6601dd7fd396ff9ba24f8c122e89cef096cdc17987c50a7fa + languageName: node + linkType: hard + +"@types/get-params@npm:^0.1.2": + version: 0.1.2 + resolution: "@types/get-params@npm:0.1.2" + checksum: 10/bf573d5d114696e5565ce305cdce461fe9ef434f31b8ad3bf21656bcf9fcd1f9851a3348c471aaec0246debc749303d41731b9fd9887276dc5098d59208d0e8a + languageName: node + linkType: hard + "@types/graceful-fs@npm:^4.1.3": version: 4.1.9 resolution: "@types/graceful-fs@npm:4.1.9" @@ -8221,6 +11661,13 @@ __metadata: languageName: node linkType: hard +"@types/hammerjs@npm:^2.0.36": + version: 2.0.46 + resolution: "@types/hammerjs@npm:2.0.46" + checksum: 10/1b6502d668f45ca49fb488c01f7938d3aa75e989d70c64801c8feded7d659ca1a118f745c1b604d220efe344c93231767d5cc68c05e00e069c14539b6143cfd9 + languageName: node + linkType: hard + "@types/hast@npm:^3.0.0": version: 3.0.4 resolution: "@types/hast@npm:3.0.4" @@ -8262,7 +11709,7 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:^29.5.4": +"@types/jest@npm:^29.5.12, @types/jest@npm:^29.5.14, @types/jest@npm:^29.5.4": version: 29.5.14 resolution: "@types/jest@npm:29.5.14" dependencies: @@ -8279,6 +11726,13 @@ __metadata: languageName: node linkType: hard +"@types/js-yaml@npm:^4.0.5": + version: 4.0.9 + resolution: "@types/js-yaml@npm:4.0.9" + checksum: 10/a0ce595db8a987904badd21fc50f9f444cb73069f4b95a76cc222e0a17b3ff180669059c763ec314bc4c3ce284379177a9da80e83c5f650c6c1310cafbfaa8e6 + languageName: node + linkType: hard + "@types/jsdom@npm:^20.0.0": version: 20.0.1 resolution: "@types/jsdom@npm:20.0.1" @@ -8290,7 +11744,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:7.0.15, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:*, @types/json-schema@npm:7.0.15, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 10/1a3c3e06236e4c4aab89499c428d585527ce50c24fe8259e8b3926d3df4cfbbbcf306cfc73ddfb66cbafc973116efd15967020b0f738f63e09e64c7d260519e7 @@ -8304,7 +11758,7 @@ __metadata: languageName: node linkType: hard -"@types/lodash@npm:^4.14.136, @types/lodash@npm:^4.14.182": +"@types/lodash@npm:^4.14.136, @types/lodash@npm:^4.14.182, @types/lodash@npm:^4.17.13": version: 4.17.13 resolution: "@types/lodash@npm:4.17.13" checksum: 10/ddb34e20810c71be2d9445bcc4b64ec25b83976738454de709854b79c7f655b03704b76235445699956d65012987720e0e429a35489de65495cdb5420202d905 @@ -8348,12 +11802,21 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0, @types/node@npm:^22.0.0": - version: 22.10.2 - resolution: "@types/node@npm:22.10.2" +"@types/node-forge@npm:^1.3.0": + version: 1.3.11 + resolution: "@types/node-forge@npm:1.3.11" + dependencies: + "@types/node": "npm:*" + checksum: 10/670c9b377c48189186ec415e3c8ed371f141ecc1a79ab71b213b20816adeffecba44dae4f8406cc0d09e6349a4db14eb8c5893f643d8e00fa19fc035cf49dee0 + languageName: node + linkType: hard + +"@types/node@npm:*, @types/node@npm:>=13.7.0, @types/node@npm:^22.0.0, @types/node@npm:^22.9.1": + version: 22.10.1 + resolution: "@types/node@npm:22.10.1" dependencies: undici-types: "npm:~6.20.0" - checksum: 10/451adfefed4add58b069407173e616220fd4aaa3307cdde1bb701aa053b65b54ced8483db2f870dcedec7a58cb3b06101fbc19d85852716672ec1fd3660947fa + checksum: 10/c802a526da2f3fa3ccefd00a71244e7cb825329951719e79e8fec62b1dbc2855388c830489770611584665ce10be23c05ed585982038b24924e1ba2c2cce03fd languageName: node linkType: hard @@ -8373,6 +11836,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:>=12.12.47": + version: 22.10.2 + resolution: "@types/node@npm:22.10.2" + dependencies: + undici-types: "npm:~6.20.0" + checksum: 10/451adfefed4add58b069407173e616220fd4aaa3307cdde1bb701aa053b65b54ced8483db2f870dcedec7a58cb3b06101fbc19d85852716672ec1fd3660947fa + languageName: node + linkType: hard + "@types/normalize-package-data@npm:^2.4.0": version: 2.4.4 resolution: "@types/normalize-package-data@npm:2.4.4" @@ -8430,7 +11902,7 @@ __metadata: languageName: node linkType: hard -"@types/prop-types@npm:^15.7.14": +"@types/prop-types@npm:*, @types/prop-types@npm:^15.7.14": version: 15.7.14 resolution: "@types/prop-types@npm:15.7.14" checksum: 10/d0c5407b9ccc3dd5fae0ccf9b1007e7622ba5e6f1c18399b4f24dff33619d469da4b9fa918a374f19dc0d9fe6a013362aab0b844b606cfc10676efba3f5f736d @@ -8480,6 +11952,16 @@ __metadata: languageName: node linkType: hard +"@types/react@npm:~18.3.12": + version: 18.3.14 + resolution: "@types/react@npm:18.3.14" + dependencies: + "@types/prop-types": "npm:*" + csstype: "npm:^3.0.2" + checksum: 10/683927b1e24293276cf62f60f1baa666b7f1053c87ec8d8c79d2d4bc105b99e0492482f801ffce7cdef9d656c11294faa423051807a500c7475f4fbd7661bd8d + languageName: node + linkType: hard + "@types/resolve@npm:1.20.2": version: 1.20.2 resolution: "@types/resolve@npm:1.20.2" @@ -8621,6 +12103,29 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/eslint-plugin@npm:8.17.0": + version: 8.17.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.17.0" + dependencies: + "@eslint-community/regexpp": "npm:^4.10.0" + "@typescript-eslint/scope-manager": "npm:8.17.0" + "@typescript-eslint/type-utils": "npm:8.17.0" + "@typescript-eslint/utils": "npm:8.17.0" + "@typescript-eslint/visitor-keys": "npm:8.17.0" + graphemer: "npm:^1.4.0" + ignore: "npm:^5.3.1" + natural-compare: "npm:^1.4.0" + ts-api-utils: "npm:^1.3.0" + peerDependencies: + "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/753630802632dc1bb15d4b86afe60b5280d080cc6715648f6b717093a81d31f8aa621f823d0aa5632d1cf05f3c8f4ea356eff49efd11d9f7c154cb16d2ac2d79 + languageName: node + linkType: hard + "@typescript-eslint/eslint-plugin@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": version: 8.18.1 resolution: "@typescript-eslint/eslint-plugin@npm:8.18.1" @@ -8665,6 +12170,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/parser@npm:8.17.0": + version: 8.17.0 + resolution: "@typescript-eslint/parser@npm:8.17.0" + dependencies: + "@typescript-eslint/scope-manager": "npm:8.17.0" + "@typescript-eslint/types": "npm:8.17.0" + "@typescript-eslint/typescript-estree": "npm:8.17.0" + "@typescript-eslint/visitor-keys": "npm:8.17.0" + debug: "npm:^4.3.4" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/464981e1424e4a7849ca7253b54092a67d33130d28ecf492efd56d5ce69e640a876b7f84e59f1e368e763125432c34e7de28d78c0eef1bda4e9a9d52de0ccac5 + languageName: node + linkType: hard + "@typescript-eslint/parser@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": version: 8.18.1 resolution: "@typescript-eslint/parser@npm:8.18.1" @@ -8691,6 +12214,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/scope-manager@npm:8.17.0": + version: 8.17.0 + resolution: "@typescript-eslint/scope-manager@npm:8.17.0" + dependencies: + "@typescript-eslint/types": "npm:8.17.0" + "@typescript-eslint/visitor-keys": "npm:8.17.0" + checksum: 10/fa934d9fd88070833c57a3e79c0f933d0b68884c00293a1d571889b882e5c9680ccfdc5c77a7160d5a4b8b46657f93db2468a4726a517fce4d3bc764b66f1995 + languageName: node + linkType: hard + "@typescript-eslint/scope-manager@npm:8.18.1": version: 8.18.1 resolution: "@typescript-eslint/scope-manager@npm:8.18.1" @@ -8718,6 +12251,23 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/type-utils@npm:8.17.0": + version: 8.17.0 + resolution: "@typescript-eslint/type-utils@npm:8.17.0" + dependencies: + "@typescript-eslint/typescript-estree": "npm:8.17.0" + "@typescript-eslint/utils": "npm:8.17.0" + debug: "npm:^4.3.4" + ts-api-utils: "npm:^1.3.0" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/a755935a0c16d6b9456effb1cad5e9605936e60799b57394cd143620dd862a90bcac12f720a009e32cafdae315fda343252117db4dc83520e0d21f1c28889792 + languageName: node + linkType: hard + "@typescript-eslint/type-utils@npm:8.18.1": version: 8.18.1 resolution: "@typescript-eslint/type-utils@npm:8.18.1" @@ -8740,6 +12290,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:8.17.0": + version: 8.17.0 + resolution: "@typescript-eslint/types@npm:8.17.0" + checksum: 10/46baf69ab30dd814a390590b94ca64c407ac725cb0143590ddcaf72fa43c940cec180539752ce4af26ac7e0ae2f5f921cfd0d07b088ca680f8a28800d4d33a5f + languageName: node + linkType: hard + "@typescript-eslint/types@npm:8.18.1": version: 8.18.1 resolution: "@typescript-eslint/types@npm:8.18.1" @@ -8766,6 +12323,25 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/typescript-estree@npm:8.17.0": + version: 8.17.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.17.0" + dependencies: + "@typescript-eslint/types": "npm:8.17.0" + "@typescript-eslint/visitor-keys": "npm:8.17.0" + debug: "npm:^4.3.4" + fast-glob: "npm:^3.3.2" + is-glob: "npm:^4.0.3" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^1.3.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/8a1f8be767b82e75d41eedda7fdb5135787ceaab480671b6d9891b5f92ee3a13f19ad6f48d5abf5e4f2afc4dd3317c621c1935505ef098f22b67be2f9d01ab7b + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:8.18.1": version: 8.18.1 resolution: "@typescript-eslint/typescript-estree@npm:8.18.1" @@ -8798,6 +12374,23 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:8.17.0": + version: 8.17.0 + resolution: "@typescript-eslint/utils@npm:8.17.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + "@typescript-eslint/scope-manager": "npm:8.17.0" + "@typescript-eslint/types": "npm:8.17.0" + "@typescript-eslint/typescript-estree": "npm:8.17.0" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/e82934468bece55ccf633be9f3fe6cae26791fa6488b5af08ea22566f6b32e1296917e46cb1fe39bba7717ebdf0dca49935112760c4439a11af36b3b7925917a + languageName: node + linkType: hard + "@typescript-eslint/utils@npm:8.18.1, @typescript-eslint/utils@npm:^8.8.1": version: 8.18.1 resolution: "@typescript-eslint/utils@npm:8.18.1" @@ -8823,6 +12416,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:8.17.0": + version: 8.17.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.17.0" + dependencies: + "@typescript-eslint/types": "npm:8.17.0" + eslint-visitor-keys: "npm:^4.2.0" + checksum: 10/e7a3c3b9430ecefb8e720f735f8a94f87901f055c75dc8eec60052dfdf90cc28dd33f03c11cd8244551dc988bf98d1db9bd09ef8fd3c51236912cab3680b9c6b + languageName: node + linkType: hard + "@typescript-eslint/visitor-keys@npm:8.18.1": version: 8.18.1 resolution: "@typescript-eslint/visitor-keys@npm:8.18.1" @@ -8840,6 +12443,28 @@ __metadata: languageName: node linkType: hard +"@urql/core@npm:^5.0.0, @urql/core@npm:^5.0.6": + version: 5.0.8 + resolution: "@urql/core@npm:5.0.8" + dependencies: + "@0no-co/graphql.web": "npm:^1.0.5" + wonka: "npm:^6.3.2" + checksum: 10/c973e6e89785ae45ef447726557143ce7bc9d9f5b887297f0b315b2ff546d20bdfb814a4c899644bd5c5814761fc8d75a8ac66f67f3d57a3c2eadd3ec88adb60 + languageName: node + linkType: hard + +"@urql/exchange-retry@npm:^1.3.0": + version: 1.3.0 + resolution: "@urql/exchange-retry@npm:1.3.0" + dependencies: + "@urql/core": "npm:^5.0.0" + wonka: "npm:^6.3.2" + peerDependencies: + "@urql/core": ^5.0.0 + checksum: 10/5bbc914a58a6de6ee7146d55fa8d6454cbf0fb5f6d7a3f7b1770d95dfbaa9e44fad041d4655f00f38ce87f12b52fdd694a1ccb8df487265185f5b425d5e12177 + languageName: node + linkType: hard + "@vitest/expect@npm:2.0.5": version: 2.0.5 resolution: "@vitest/expect@npm:2.0.5" @@ -9341,6 +12966,13 @@ __metadata: languageName: node linkType: hard +"@web3-storage/multipart-parser@npm:^1.0.0": + version: 1.0.0 + resolution: "@web3-storage/multipart-parser@npm:1.0.0" + checksum: 10/20d7a4330392d83f727586477fc6e709f8fca3b3664365b0d9d3041abe2aeb13f53030a3997a28a39cc74930863ebb625878b8c90789e5c990e4b64d9f22a93d + languageName: node + linkType: hard + "@webassemblyjs/ast@npm:1.14.1, @webassemblyjs/ast@npm:^1.14.1": version: 1.14.1 resolution: "@webassemblyjs/ast@npm:1.14.1" @@ -9492,6 +13124,20 @@ __metadata: languageName: node linkType: hard +"@xmldom/xmldom@npm:^0.8.8": + version: 0.8.10 + resolution: "@xmldom/xmldom@npm:0.8.10" + checksum: 10/62400bc5e0e75b90650e33a5ceeb8d94829dd11f9b260962b71a784cd014ddccec3e603fe788af9c1e839fa4648d8c521ebd80d8b752878d3a40edabc9ce7ccf + languageName: node + linkType: hard + +"@xmldom/xmldom@npm:~0.7.7": + version: 0.7.13 + resolution: "@xmldom/xmldom@npm:0.7.13" + checksum: 10/a359d15fe3c24fe85a1e1b3bc4cfd23d4f014fb8aa382aa445cccaac545e42958b75e386dd4853c76d82036401400b8d5e33cbcbfb6af7cdadeba769eae6122a + languageName: node + linkType: hard + "@xtuc/ieee754@npm:^1.2.0": version: 1.2.0 resolution: "@xtuc/ieee754@npm:1.2.0" @@ -9506,6 +13152,13 @@ __metadata: languageName: node linkType: hard +"@zxing/text-encoding@npm:0.9.0": + version: 0.9.0 + resolution: "@zxing/text-encoding@npm:0.9.0" + checksum: 10/268e4ef64b8eaa32b990240bdfd1f7b3e2b501a6ed866a565f7c9747f04ac884fbe0537fe12bb05d9241b98fb111270c0fd0023ef0a02d23a6619b4589e98f6b + languageName: node + linkType: hard + "abab@npm:^2.0.6": version: 2.0.6 resolution: "abab@npm:2.0.6" @@ -9559,6 +13212,16 @@ __metadata: languageName: node linkType: hard +"accepts@npm:^1.3.7, accepts@npm:^1.3.8": + version: 1.3.8 + resolution: "accepts@npm:1.3.8" + dependencies: + mime-types: "npm:~2.1.34" + negotiator: "npm:0.6.3" + checksum: 10/67eaaa90e2917c58418e7a9b89392002d2b1ccd69bcca4799135d0c632f3b082f23f4ae4ddeedbced5aa59bcc7bdf4699c69ebed4593696c922462b7bc5744d6 + languageName: node + linkType: hard + "acorn-globals@npm:^7.0.0": version: 7.0.1 resolution: "acorn-globals@npm:7.0.1" @@ -9578,7 +13241,16 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.0.0, acorn-walk@npm:^8.0.2": +"acorn-loose@npm:^8.3.0": + version: 8.4.0 + resolution: "acorn-loose@npm:8.4.0" + dependencies: + acorn: "npm:^8.11.0" + checksum: 10/a005b2bee62e2575963b311ab7c45701062115a62e4286162498b1b198a6f884ceea186592ce41a27d5f382a5b640f1dffb37dd0e6e7848a74dd36e4b0a55105 + languageName: node + linkType: hard + +"acorn-walk@npm:^8.0.0, acorn-walk@npm:^8.0.2, acorn-walk@npm:^8.1.1": version: 8.3.4 resolution: "acorn-walk@npm:8.3.4" dependencies: @@ -9596,7 +13268,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.0.0, acorn@npm:^8.0.4, acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.14.0, acorn@npm:^8.8.1, acorn@npm:^8.8.2": +"acorn@npm:^8.0.0, acorn@npm:^8.0.4, acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.14.0, acorn@npm:^8.4.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2": version: 8.14.0 resolution: "acorn@npm:8.14.0" bin: @@ -9655,6 +13327,18 @@ __metadata: languageName: node linkType: hard +"ajv-draft-04@npm:^1.0.0": + version: 1.0.0 + resolution: "ajv-draft-04@npm:1.0.0" + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 10/3f11fa0e7f7359bef6608657f02ab78e9cc62b1fb7bdd860db0d00351b3863a1189c1a23b72466d2d82726cab4eb20725c76f5e7c134a89865e2bfd0e6828137 + languageName: node + linkType: hard + "ajv-formats@npm:^2.1.1": version: 2.1.1 resolution: "ajv-formats@npm:2.1.1" @@ -9689,6 +13373,18 @@ __metadata: languageName: node linkType: hard +"ajv@npm:8.11.0": + version: 8.11.0 + resolution: "ajv@npm:8.11.0" + dependencies: + fast-deep-equal: "npm:^3.1.1" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + uri-js: "npm:^4.2.2" + checksum: 10/aa0dfd6cebdedde8e77747e84e7b7c55921930974b8547f54b4156164ff70445819398face32dafda4bd4c61bbc7513d308d4c2bf769f8ea6cb9c8449f9faf54 + languageName: node + linkType: hard + "ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" @@ -9701,7 +13397,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^8.0.0, ajv@npm:^8.11.0, ajv@npm:^8.6.0, ajv@npm:^8.9.0": +"ajv@npm:^8.0.0, ajv@npm:^8.0.1, ajv@npm:^8.11.0, ajv@npm:^8.6.0, ajv@npm:^8.6.3, ajv@npm:^8.9.0": version: 8.17.1 resolution: "ajv@npm:8.17.1" dependencies: @@ -9713,6 +13409,13 @@ __metadata: languageName: node linkType: hard +"anser@npm:^1.4.9": + version: 1.4.10 + resolution: "anser@npm:1.4.10" + checksum: 10/a5a6658ccb2ca8271b25cfb29f53ff7cd042800d8e3daa472cdbde0da99392547baaac6be33cbfe41eb76c48a2e4f1fc6647a8636b33f663ac7dd1ba72e0a199 + languageName: node + linkType: hard + "ansi-colors@npm:^4.1.1": version: 4.1.3 resolution: "ansi-colors@npm:4.1.3" @@ -9720,7 +13423,7 @@ __metadata: languageName: node linkType: hard -"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0": +"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0, ansi-escapes@npm:^4.3.2": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" dependencies: @@ -9729,6 +13432,13 @@ __metadata: languageName: node linkType: hard +"ansi-escapes@npm:^6.0.0": + version: 6.2.1 + resolution: "ansi-escapes@npm:6.2.1" + checksum: 10/3b064937dc8a0645ed8094bc8b09483ee718f3aa3139746280e6c2ea80e28c0a3ce66973d0f33e88e60021abbf67e5f877deabfc810e75edf8a19dfa128850be + languageName: node + linkType: hard + "ansi-escapes@npm:^7.0.0": version: 7.0.0 resolution: "ansi-escapes@npm:7.0.0" @@ -9756,7 +13466,14 @@ __metadata: languageName: node linkType: hard -"ansi-regex@npm:^5.0.1": +"ansi-regex@npm:^4.1.0": + version: 4.1.1 + resolution: "ansi-regex@npm:4.1.1" + checksum: 10/b1a6ee44cb6ecdabaa770b2ed500542714d4395d71c7e5c25baa631f680fb2ad322eb9ba697548d498a6fd366949fc8b5bfcf48d49a32803611f648005b01888 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.0, ansi-regex@npm:^5.0.1": version: 5.0.1 resolution: "ansi-regex@npm:5.0.1" checksum: 10/2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b @@ -9802,6 +13519,13 @@ __metadata: languageName: node linkType: hard +"any-promise@npm:^1.0.0": + version: 1.3.0 + resolution: "any-promise@npm:1.3.0" + checksum: 10/6737469ba353b5becf29e4dc3680736b9caa06d300bda6548812a8fee63ae7d336d756f88572fa6b5219aed36698d808fa55f62af3e7e6845c7a1dc77d240edb + languageName: node + linkType: hard + "anymatch@npm:^3.0.3, anymatch@npm:^3.1.3, anymatch@npm:~3.1.2": version: 3.1.3 resolution: "anymatch@npm:3.1.3" @@ -9812,6 +13536,13 @@ __metadata: languageName: node linkType: hard +"application-config-path@npm:^0.1.0": + version: 0.1.1 + resolution: "application-config-path@npm:0.1.1" + checksum: 10/380f4c49585511813526632c8366318f52941526dbb284a887e5af328caa76424a056795ab18f03f5009197f2dea0ef01a8a9812d85724f26d2f5cf9bf9bf1f9 + languageName: node + linkType: hard + "arch@npm:^2.2.0": version: 2.2.0 resolution: "arch@npm:2.2.0" @@ -9819,6 +13550,20 @@ __metadata: languageName: node linkType: hard +"arg@npm:^4.1.0": + version: 4.1.3 + resolution: "arg@npm:4.1.3" + checksum: 10/969b491082f20cad166649fa4d2073ea9e974a4e5ac36247ca23d2e5a8b3cb12d60e9ff70a8acfe26d76566c71fd351ee5e6a9a6595157eb36f92b1fd64e1599 + languageName: node + linkType: hard + +"arg@npm:^5.0.2": + version: 5.0.2 + resolution: "arg@npm:5.0.2" + checksum: 10/92fe7de222054a060fd2329e92e867410b3ea260328147ee3fb7855f78efae005f4087e698d4e688a856893c56bb09951588c40f2c901cf6996cd8cd7bcfef2c + languageName: node + linkType: hard + "argparse@npm:^1.0.7": version: 1.0.10 resolution: "argparse@npm:1.0.10" @@ -9835,6 +13580,15 @@ __metadata: languageName: node linkType: hard +"aria-hidden@npm:^1.1.3": + version: 1.2.4 + resolution: "aria-hidden@npm:1.2.4" + dependencies: + tslib: "npm:^2.0.0" + checksum: 10/df4bc15423aaaba3729a7d40abcbf6d3fffa5b8fd5eb33d3ac8b7da0110c47552fca60d97f2e1edfbb68a27cae1da499f1c3896966efb3e26aac4e3b57e3cc8b + languageName: node + linkType: hard + "aria-query@npm:5.3.0": version: 5.3.0 resolution: "aria-query@npm:5.3.0" @@ -9983,6 +13737,13 @@ __metadata: languageName: node linkType: hard +"asap@npm:~2.0.3, asap@npm:~2.0.6": + version: 2.0.6 + resolution: "asap@npm:2.0.6" + checksum: 10/b244c0458c571945e4b3be0b14eb001bea5596f9868cc50cc711dc03d58a7e953517d3f0dad81ccde3ff37d1f074701fa76a6f07d41aaa992d7204a37b915dda + languageName: node + linkType: hard + "asn1.js@npm:^4.10.1": version: 4.10.1 resolution: "asn1.js@npm:4.10.1" @@ -10048,6 +13809,15 @@ __metadata: languageName: node linkType: hard +"ast-types@npm:0.15.2": + version: 0.15.2 + resolution: "ast-types@npm:0.15.2" + dependencies: + tslib: "npm:^2.0.1" + checksum: 10/81680bd5829cdec33524e9aa3434e23f3919c0c388927068a0ff2e8466f55b0f34eae53e0007b3668742910c289481ab4e1d486a5318f618ae2fc93b5e7e863b + languageName: node + linkType: hard + "ast-types@npm:^0.16.1": version: 0.16.1 resolution: "ast-types@npm:0.16.1" @@ -10073,6 +13843,13 @@ __metadata: languageName: node linkType: hard +"async-limiter@npm:~1.0.0": + version: 1.0.1 + resolution: "async-limiter@npm:1.0.1" + checksum: 10/2b849695b465d93ad44c116220dee29a5aeb63adac16c1088983c339b0de57d76e82533e8e364a93a9f997f28bbfc6a92948cefc120652bd07f3b59f8d75cf2b + languageName: node + linkType: hard + "async@npm:^3.2.0, async@npm:^3.2.3": version: 3.2.6 resolution: "async@npm:3.2.6" @@ -10167,7 +13944,16 @@ __metadata: languageName: node linkType: hard -"babel-jest@npm:^29.7.0": +"babel-core@npm:^7.0.0-bridge.0": + version: 7.0.0-bridge.0 + resolution: "babel-core@npm:7.0.0-bridge.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/2a1cb879019dffb08d17bec36e13c3a6d74c94773f41c1fd8b14de13f149cc34b705b0a1e07b42fcf35917b49d78db6ff0c5c3b00b202a5235013d517b5c6bbb + languageName: node + linkType: hard + +"babel-jest@npm:^29.2.1, babel-jest@npm:^29.7.0": version: 29.7.0 resolution: "babel-jest@npm:29.7.0" dependencies: @@ -10184,6 +13970,34 @@ __metadata: languageName: node linkType: hard +"babel-literal-to-ast@npm:^2.1.0": + version: 2.1.0 + resolution: "babel-literal-to-ast@npm:2.1.0" + dependencies: + "@babel/parser": "npm:^7.1.6" + "@babel/traverse": "npm:^7.1.6" + "@babel/types": "npm:^7.1.6" + peerDependencies: + "@babel/core": ^7.1.2 + checksum: 10/19eccc9744dccf06e3a34314413cbf1ab4b2e79fbfbd25a13ff3f105dc66a350db5f91c966e88efa6728cb9570e76503c9c2940334a9e426df634da0635b13cd + languageName: node + linkType: hard + +"babel-loader@npm:^8.4.1": + version: 8.4.1 + resolution: "babel-loader@npm:8.4.1" + dependencies: + find-cache-dir: "npm:^3.3.1" + loader-utils: "npm:^2.0.4" + make-dir: "npm:^3.1.0" + schema-utils: "npm:^2.6.5" + peerDependencies: + "@babel/core": ^7.0.0 + webpack: ">=2" + checksum: 10/b54ae3796a351e5b5186cd7a8d53a902b679a33a187424c2858e385850142139a4343524c9fddd0eb4356250e51e67e47a9efeef79d01e132976c406212cba1d + languageName: node + linkType: hard + "babel-loader@npm:^9.1.3": version: 9.2.1 resolution: "babel-loader@npm:9.2.1" @@ -10269,6 +14083,40 @@ __metadata: languageName: node linkType: hard +"babel-plugin-react-native-web@npm:^0.19.13, babel-plugin-react-native-web@npm:~0.19.13": + version: 0.19.13 + resolution: "babel-plugin-react-native-web@npm:0.19.13" + checksum: 10/05ef14f7ffad194a80f27624d52d6f661e5956e606a41aefd34220016357068b6dead23f5c80671345f4e5878dd6ed5cb3a567aef128e38570780458a141d07a + languageName: node + linkType: hard + +"babel-plugin-syntax-hermes-parser@npm:^0.23.1": + version: 0.23.1 + resolution: "babel-plugin-syntax-hermes-parser@npm:0.23.1" + dependencies: + hermes-parser: "npm:0.23.1" + checksum: 10/5412008e8e85b08cd0d78168f746ade68b8ed69c0068831ce5e3d028f01c644f546ca0e2b7c9a4a8c6b9d5f14aff84c2453ab44b19cbec55e4366b20bbba9040 + languageName: node + linkType: hard + +"babel-plugin-syntax-hermes-parser@npm:^0.25.1": + version: 0.25.1 + resolution: "babel-plugin-syntax-hermes-parser@npm:0.25.1" + dependencies: + hermes-parser: "npm:0.25.1" + checksum: 10/dc80fafde1aed8e60cf86ecd2e9920e7f35ffe02b33bd4e772daaa786167bcf508aac3fc1aea425ff4c7a0be94d82528f3fe8619b7f41dac853264272d640c04 + languageName: node + linkType: hard + +"babel-plugin-transform-flow-enums@npm:^0.0.2": + version: 0.0.2 + resolution: "babel-plugin-transform-flow-enums@npm:0.0.2" + dependencies: + "@babel/plugin-syntax-flow": "npm:^7.12.1" + checksum: 10/fd52aef54448e01948a9d1cca0c8f87d064970c8682458962b7a222c372704bc2ce26ae8109e0ab2566e7ea5106856460f04c1a5ed794ab3bcd2f42cae1d9845 + languageName: node + linkType: hard + "babel-preset-current-node-syntax@npm:^1.0.0": version: 1.1.0 resolution: "babel-preset-current-node-syntax@npm:1.1.0" @@ -10294,6 +14142,31 @@ __metadata: languageName: node linkType: hard +"babel-preset-expo@npm:~12.0.3": + version: 12.0.3 + resolution: "babel-preset-expo@npm:12.0.3" + dependencies: + "@babel/plugin-proposal-decorators": "npm:^7.12.9" + "@babel/plugin-transform-export-namespace-from": "npm:^7.22.11" + "@babel/plugin-transform-object-rest-spread": "npm:^7.12.13" + "@babel/plugin-transform-parameters": "npm:^7.22.15" + "@babel/preset-react": "npm:^7.22.15" + "@babel/preset-typescript": "npm:^7.23.0" + "@react-native/babel-preset": "npm:0.76.3" + babel-plugin-react-native-web: "npm:~0.19.13" + react-refresh: "npm:^0.14.2" + peerDependencies: + babel-plugin-react-compiler: ^19.0.0-beta-9ee70a1-20241017 + react-compiler-runtime: ^19.0.0-beta-8a03594-20241020 + peerDependenciesMeta: + babel-plugin-react-compiler: + optional: true + react-compiler-runtime: + optional: true + checksum: 10/9c3cd95c0ed19d3cc6045be668bd0a630781318e28cdc278abc1604bf77f7918bf25c9e5febe0bf634c2b096dfa177453121afa3aba3f22dc096c6d6d6929fad + languageName: node + linkType: hard + "babel-preset-jest@npm:^29.6.3": version: 29.6.3 resolution: "babel-preset-jest@npm:29.6.3" @@ -10343,7 +14216,7 @@ __metadata: languageName: node linkType: hard -"base64-js@npm:^1.3.1": +"base64-js@npm:^1.2.3, base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" checksum: 10/669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 @@ -10385,7 +14258,7 @@ __metadata: languageName: node linkType: hard -"better-opn@npm:^3.0.2": +"better-opn@npm:^3.0.2, better-opn@npm:~3.0.2": version: 3.0.2 resolution: "better-opn@npm:3.0.2" dependencies: @@ -10401,7 +14274,7 @@ __metadata: languageName: node linkType: hard -"big-integer@npm:^1.6.48": +"big-integer@npm:1.6.x, big-integer@npm:^1.6.48": version: 1.6.52 resolution: "big-integer@npm:1.6.52" checksum: 10/4bc6ae152a96edc9f95020f5fc66b13d26a9ad9a021225a9f0213f7e3dc44269f423aa8c42e19d6ac4a63bb2b22140b95d10be8f9ca7a6d9aa1b22b330d1f514 @@ -10491,7 +14364,7 @@ __metadata: languageName: node linkType: hard -"blo@npm:^1.1.1": +"blo@npm:^1.1.1, blo@npm:^1.2.0": version: 1.2.0 resolution: "blo@npm:1.2.0" checksum: 10/17ec61e41b201bbba8ab3c874cad94696604b6ac4029de5050c92ea5817dff6814d8642b9b2948e0d6804194437b751fa2755652201f26fa5d606913c489b757 @@ -10552,6 +14425,33 @@ __metadata: languageName: node linkType: hard +"bplist-creator@npm:0.0.7": + version: 0.0.7 + resolution: "bplist-creator@npm:0.0.7" + dependencies: + stream-buffers: "npm:~2.2.0" + checksum: 10/9fe946e55fe378072592924d2fed16eee80e3027e3637ab2e9ef0e16eef470f11e7d09bf88e6b68016cd8c441213df89df777ca8a3561522a136a26948886eb8 + languageName: node + linkType: hard + +"bplist-creator@npm:0.1.1": + version: 0.1.1 + resolution: "bplist-creator@npm:0.1.1" + dependencies: + stream-buffers: "npm:2.2.x" + checksum: 10/4f185ee84a97f4b7c7caa73436b9c664e410f8640661a4ae97f0fbe1420aa8fc5db39d9a9d8571c87069665f6d3c5a8a8d2be30db7b64681b7cc366695211913 + languageName: node + linkType: hard + +"bplist-parser@npm:0.3.2, bplist-parser@npm:^0.3.1": + version: 0.3.2 + resolution: "bplist-parser@npm:0.3.2" + dependencies: + big-integer: "npm:1.6.x" + checksum: 10/6edf4354c32f5661c258422e478be0f5c6a779bb87c2ae15ee92dd1c046368decbff8a28c86c558a3b7007e1381b91d5eed1c4c8e83e86405197777d944abaa8 + languageName: node + linkType: hard + "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -10669,6 +14569,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.22.2": + version: 4.24.2 + resolution: "browserslist@npm:4.24.2" + dependencies: + caniuse-lite: "npm:^1.0.30001669" + electron-to-chromium: "npm:^1.5.41" + node-releases: "npm:^2.0.18" + update-browserslist-db: "npm:^1.1.1" + bin: + browserslist: cli.js + checksum: 10/f8a9d78bbabe466c57ffd5c50a9e5582a5df9aa68f43078ca62a9f6d0d6c70ba72eca72d0a574dbf177cf55cdca85a46f7eb474917a47ae5398c66f8b76f7d1c + languageName: node + linkType: hard + "browserslist@npm:^4.24.0, browserslist@npm:^4.24.2": version: 4.24.3 resolution: "browserslist@npm:4.24.3" @@ -10683,6 +14597,15 @@ __metadata: languageName: node linkType: hard +"bs-logger@npm:^0.2.6": + version: 0.2.6 + resolution: "bs-logger@npm:0.2.6" + dependencies: + fast-json-stable-stringify: "npm:2.x" + checksum: 10/e6d3ff82698bb3f20ce64fb85355c5716a3cf267f3977abe93bf9c32a2e46186b253f48a028ae5b96ab42bacd2c826766d9ae8cf6892f9b944656be9113cf212 + languageName: node + linkType: hard + "bs58@npm:^4.0.0": version: 4.0.1 resolution: "bs58@npm:4.0.1" @@ -10731,6 +14654,23 @@ __metadata: languageName: node linkType: hard +"buffer-alloc-unsafe@npm:^1.1.0": + version: 1.1.0 + resolution: "buffer-alloc-unsafe@npm:1.1.0" + checksum: 10/c5e18bf51f67754ec843c9af3d4c005051aac5008a3992938dda1344e5cfec77c4b02b4ca303644d1e9a6e281765155ce6356d85c6f5ccc5cd21afc868def396 + languageName: node + linkType: hard + +"buffer-alloc@npm:^1.1.0": + version: 1.2.0 + resolution: "buffer-alloc@npm:1.2.0" + dependencies: + buffer-alloc-unsafe: "npm:^1.1.0" + buffer-fill: "npm:^1.0.0" + checksum: 10/560cd27f3cbe73c614867da373407d4506309c62fe18de45a1ce191f3785ec6ca2488d802ff82065798542422980ca25f903db078c57822218182c37c3576df5 + languageName: node + linkType: hard + "buffer-crc32@npm:~0.2.3": version: 0.2.13 resolution: "buffer-crc32@npm:0.2.13" @@ -10738,6 +14678,13 @@ __metadata: languageName: node linkType: hard +"buffer-fill@npm:^1.0.0": + version: 1.0.0 + resolution: "buffer-fill@npm:1.0.0" + checksum: 10/c29b4723ddeab01e74b5d3b982a0c6828f2ded49cef049ddca3dac661c874ecdbcecb5dd8380cf0f4adbeb8cff90a7de724126750a1f1e5ebd4eb6c59a1315b1 + languageName: node + linkType: hard + "buffer-from@npm:^1.0.0": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" @@ -10769,7 +14716,7 @@ __metadata: languageName: node linkType: hard -"buffer@npm:^5.7.1": +"buffer@npm:^5.4.3, buffer@npm:^5.7.1": version: 5.7.1 resolution: "buffer@npm:5.7.1" dependencies: @@ -10786,6 +14733,20 @@ __metadata: languageName: node linkType: hard +"burnt@npm:^0.12.2": + version: 0.12.2 + resolution: "burnt@npm:0.12.2" + dependencies: + sf-symbols-typescript: "npm:^1.0.0" + sonner: "npm:^0.3.5" + peerDependencies: + expo: "*" + react: "*" + react-native: "*" + checksum: 10/8ecaaa22f6e365640ba247aabfb56311eca4f7199cb07519dffd4fe9fd30d173b5cd9ab4e1ecede1e538d613c5eb9820eb752ba0ac220a468b046ed2d5c060f6 + languageName: node + linkType: hard + "busboy@npm:1.6.0": version: 1.6.0 resolution: "busboy@npm:1.6.0" @@ -10795,6 +14756,33 @@ __metadata: languageName: node linkType: hard +"bytes@npm:3.1.2": + version: 3.1.2 + resolution: "bytes@npm:3.1.2" + checksum: 10/a10abf2ba70c784471d6b4f58778c0beeb2b5d405148e66affa91f23a9f13d07603d0a0354667310ae1d6dc141474ffd44e2a074be0f6e2254edb8fc21445388 + languageName: node + linkType: hard + +"cacache@npm:^18.0.2": + version: 18.0.4 + resolution: "cacache@npm:18.0.4" + dependencies: + "@npmcli/fs": "npm:^3.1.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^10.0.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^4.0.0" + ssri: "npm:^10.0.0" + tar: "npm:^6.1.11" + unique-filename: "npm:^3.0.0" + checksum: 10/ca2f7b2d3003f84d362da9580b5561058ccaecd46cba661cbcff0375c90734b610520d46b472a339fd032d91597ad6ed12dde8af81571197f3c9772b5d35b104 + languageName: node + linkType: hard + "cacache@npm:^19.0.1": version: 19.0.1 resolution: "cacache@npm:19.0.1" @@ -10832,7 +14820,7 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": +"call-bind@npm:^1.0.0, call-bind@npm:^1.0.8": version: 1.0.8 resolution: "call-bind@npm:1.0.8" dependencies: @@ -10844,6 +14832,19 @@ __metadata: languageName: node linkType: hard +"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": + version: 1.0.7 + resolution: "call-bind@npm:1.0.7" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + set-function-length: "npm:^1.2.1" + checksum: 10/cd6fe658e007af80985da5185bff7b55e12ef4c2b6f41829a26ed1eef254b1f1c12e3dfd5b2b068c6ba8b86aba62390842d81752e67dcbaec4f6f76e7113b6b7 + languageName: node + linkType: hard + "call-bound@npm:^1.0.2, call-bound@npm:^1.0.3": version: 1.0.3 resolution: "call-bound@npm:1.0.3" @@ -10854,6 +14855,38 @@ __metadata: languageName: node linkType: hard +"call-me-maybe@npm:^1.0.1": + version: 1.0.2 + resolution: "call-me-maybe@npm:1.0.2" + checksum: 10/3d375b6f810a82c751157b199daba60452876186c19ac653e81bfc5fc10d1e2ba7aedb8622367c3a8aca6879f0e6a29435a1193b35edb8f7fd8267a67ea32373 + languageName: node + linkType: hard + +"caller-callsite@npm:^2.0.0": + version: 2.0.0 + resolution: "caller-callsite@npm:2.0.0" + dependencies: + callsites: "npm:^2.0.0" + checksum: 10/b685e9d126d9247b320cfdfeb3bc8da0c4be28d8fb98c471a96bc51aab3130099898a2fe3bf0308f0fe048d64c37d6d09f563958b9afce1a1e5e63d879c128a2 + languageName: node + linkType: hard + +"caller-path@npm:^2.0.0": + version: 2.0.0 + resolution: "caller-path@npm:2.0.0" + dependencies: + caller-callsite: "npm:^2.0.0" + checksum: 10/3e12ccd0c71ec10a057aac69e3ec175b721ca858c640df021ef0d25999e22f7c1d864934b596b7d47038e9b56b7ec315add042abbd15caac882998b50102fb12 + languageName: node + linkType: hard + +"callsites@npm:^2.0.0": + version: 2.0.0 + resolution: "callsites@npm:2.0.0" + checksum: 10/be2f67b247df913732b7dec1ec0bbfcdbaea263e5a95968b19ec7965affae9496b970e3024317e6d4baa8e28dc6ba0cec03f46fdddc2fdcc51396600e53c2623 + languageName: node + linkType: hard + "callsites@npm:^3.0.0": version: 3.1.0 resolution: "callsites@npm:3.1.0" @@ -10903,6 +14936,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001669": + version: 1.0.30001686 + resolution: "caniuse-lite@npm:1.0.30001686" + checksum: 10/dc34d4daa992256b94def2894e478ba4d9786581dff3b180d642d74c7578f7d8958be985d9da5d08f09b81dd9811b653e4980616bae26b1896968cfdf8d535da + languageName: node + linkType: hard + "case-sensitive-paths-webpack-plugin@npm:^2.4.0": version: 2.4.0 resolution: "case-sensitive-paths-webpack-plugin@npm:2.4.0" @@ -10957,7 +14997,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.4.2": +"chalk@npm:^2.0.1, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -10988,7 +15028,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^5.3.0, chalk@npm:~5.3.0": +"chalk@npm:^5.2.0, chalk@npm:^5.3.0, chalk@npm:~5.3.0": version: 5.3.0 resolution: "chalk@npm:5.3.0" checksum: 10/6373caaab21bd64c405bfc4bd9672b145647fc9482657b5ea1d549b3b2765054e9d3d928870cdf764fb4aad67555f5061538ff247b8310f110c5c888d92397ea @@ -11002,6 +15042,13 @@ __metadata: languageName: node linkType: hard +"char-regex@npm:^2.0.0": + version: 2.0.2 + resolution: "char-regex@npm:2.0.2" + checksum: 10/7d6dc918d215761ab389e799b9b119778722f384c8265ccb3c3025c9b219aea942f497fc7922d3470fc270987927719c5fa78d6337a5ebe9a9dc4c5a49099eb2 + languageName: node + linkType: hard + "character-entities-html4@npm:^2.0.0": version: 2.1.0 resolution: "character-entities-html4@npm:2.1.0" @@ -11030,6 +15077,32 @@ __metadata: languageName: node linkType: hard +"charenc@npm:0.0.2": + version: 0.0.2 + resolution: "charenc@npm:0.0.2" + checksum: 10/81dcadbe57e861d527faf6dd3855dc857395a1c4d6781f4847288ab23cffb7b3ee80d57c15bba7252ffe3e5e8019db767757ee7975663ad2ca0939bb8fcaf2e5 + languageName: node + linkType: hard + +"check-dependency-version-consistency@npm:^4.1.0": + version: 4.1.1 + resolution: "check-dependency-version-consistency@npm:4.1.1" + dependencies: + "@types/js-yaml": "npm:^4.0.5" + chalk: "npm:^5.2.0" + commander: "npm:^11.0.0" + edit-json-file: "npm:^1.7.0" + globby: "npm:^13.1.4" + js-yaml: "npm:^4.1.0" + semver: "npm:^7.5.1" + table: "npm:^6.8.1" + type-fest: "npm:^4.30.0" + bin: + check-dependency-version-consistency: dist/bin/check-dependency-version-consistency.js + checksum: 10/e5927d57b2f76fa5b5b00988654c712ecff1745ed0a031528c800e742e07abb27d414ca58d27f8ab0290ce18f502bce0ba763c8736c14003804cd1ce13fe3044 + languageName: node + linkType: hard + "check-error@npm:^2.1.1": version: 2.1.1 resolution: "check-error@npm:2.1.1" @@ -11044,7 +15117,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^3.5.3, chokidar@npm:^3.6.0": +"chokidar@npm:^3.5.1, chokidar@npm:^3.5.2, chokidar@npm:^3.5.3, chokidar@npm:^3.6.0": version: 3.6.0 resolution: "chokidar@npm:3.6.0" dependencies: @@ -11072,6 +15145,13 @@ __metadata: languageName: node linkType: hard +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: 10/c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f + languageName: node + linkType: hard + "chownr@npm:^3.0.0": version: 3.0.0 resolution: "chownr@npm:3.0.0" @@ -11098,6 +15178,20 @@ __metadata: languageName: node linkType: hard +"chrome-launcher@npm:^0.15.2": + version: 0.15.2 + resolution: "chrome-launcher@npm:0.15.2" + dependencies: + "@types/node": "npm:*" + escape-string-regexp: "npm:^4.0.0" + is-wsl: "npm:^2.2.0" + lighthouse-logger: "npm:^1.0.0" + bin: + print-chrome-path: bin/print-chrome-path.js + checksum: 10/6faa189950790e63356113a08c4dbb25d9ef7d1ffc778f9fcf5967895ea8968aa3e711f6e7a55dadb42aa7a329d77721abf929a589b87e9e19e6e8c084b87e0d + languageName: node + linkType: hard + "chrome-trace-event@npm:^1.0.2": version: 1.0.4 resolution: "chrome-trace-event@npm:1.0.4" @@ -11105,7 +15199,28 @@ __metadata: languageName: node linkType: hard -"ci-info@npm:^3.2.0": +"chromium-edge-launcher@npm:^0.2.0": + version: 0.2.0 + resolution: "chromium-edge-launcher@npm:0.2.0" + dependencies: + "@types/node": "npm:*" + escape-string-regexp: "npm:^4.0.0" + is-wsl: "npm:^2.2.0" + lighthouse-logger: "npm:^1.0.0" + mkdirp: "npm:^1.0.4" + rimraf: "npm:^3.0.2" + checksum: 10/9c58094cb6f149f8b9aae6937c5e60fee3cdf7e43a6902d8d70d2bc18878a0479f1637a5b44f6fbec5c84aa52972fc3ccba61b9984a584f3d98700e247d4ad94 + languageName: node + linkType: hard + +"ci-info@npm:^2.0.0": + version: 2.0.0 + resolution: "ci-info@npm:2.0.0" + checksum: 10/3b374666a85ea3ca43fa49aa3a048d21c9b475c96eb13c133505d2324e7ae5efd6a454f41efe46a152269e9b6a00c9edbe63ec7fa1921957165aae16625acd67 + languageName: node + linkType: hard + +"ci-info@npm:^3.2.0, ci-info@npm:^3.3.0": version: 3.9.0 resolution: "ci-info@npm:3.9.0" checksum: 10/75bc67902b4d1c7b435497adeb91598f6d52a3389398e44294f6601b20cfef32cf2176f7be0eb961d9e085bb333a8a5cae121cb22f81cf238ae7f58eb80e9397 @@ -11193,6 +15308,15 @@ __metadata: languageName: node linkType: hard +"cli-cursor@npm:^2.1.0": + version: 2.1.0 + resolution: "cli-cursor@npm:2.1.0" + dependencies: + restore-cursor: "npm:^2.0.0" + checksum: 10/d88e97bfdac01046a3ffe7d49f06757b3126559d7e44aa2122637eb179284dc6cd49fca2fac4f67c19faaf7e6dab716b6fe1dfcd309977407d8c7578ec2d044d + languageName: node + linkType: hard + "cli-cursor@npm:^3.1.0": version: 3.1.0 resolution: "cli-cursor@npm:3.1.0" @@ -11211,6 +15335,13 @@ __metadata: languageName: node linkType: hard +"cli-spinners@npm:^2.0.0": + version: 2.9.2 + resolution: "cli-spinners@npm:2.9.2" + checksum: 10/a0a863f442df35ed7294424f5491fa1756bd8d2e4ff0c8736531d886cec0ece4d85e8663b77a5afaf1d296e3cbbebff92e2e99f52bbea89b667cbe789b994794 + languageName: node + linkType: hard + "cli-table3@npm:~0.6.1": version: 0.6.5 resolution: "cli-table3@npm:0.6.5" @@ -11244,7 +15375,7 @@ __metadata: languageName: node linkType: hard -"client-only@npm:0.0.1": +"client-only@npm:0.0.1, client-only@npm:^0.0.1": version: 0.0.1 resolution: "client-only@npm:0.0.1" checksum: 10/0c16bf660dadb90610553c1d8946a7fdfb81d624adea073b8440b7d795d5b5b08beb3c950c6a2cf16279365a3265158a236876d92bce16423c485c322d7dfaf8 @@ -11284,6 +15415,24 @@ __metadata: languageName: node linkType: hard +"clone-deep@npm:^4.0.1": + version: 4.0.1 + resolution: "clone-deep@npm:4.0.1" + dependencies: + is-plain-object: "npm:^2.0.4" + kind-of: "npm:^6.0.2" + shallow-clone: "npm:^3.0.0" + checksum: 10/770f912fe4e6f21873c8e8fbb1e99134db3b93da32df271d00589ea4a29dbe83a9808a322c93f3bcaf8584b8b4fa6fc269fc8032efbaa6728e0c9886c74467d2 + languageName: node + linkType: hard + +"clone@npm:^1.0.2": + version: 1.0.4 + resolution: "clone@npm:1.0.4" + checksum: 10/d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd + languageName: node + linkType: hard + "clsx@npm:^1.2.1": version: 1.2.1 resolution: "clsx@npm:1.2.1" @@ -11368,6 +15517,13 @@ __metadata: languageName: node linkType: hard +"color2k@npm:^2.0.2": + version: 2.0.3 + resolution: "color2k@npm:2.0.3" + checksum: 10/63385b3c43749a96a4edfd5f4d30103f850e5a4ab01ad39ec70bebd940a237ab79cbd2d7b2bf4eede6ef6122a1b904877f628500fdc5521310e39d3572370d6c + languageName: node + linkType: hard + "color@npm:^4.2.3": version: 4.2.3 resolution: "color@npm:4.2.3" @@ -11401,6 +15557,13 @@ __metadata: languageName: node linkType: hard +"command-exists@npm:^1.2.4": + version: 1.2.9 + resolution: "command-exists@npm:1.2.9" + checksum: 10/46fb3c4d626ca5a9d274f8fe241230817496abc34d12911505370b7411999e183c11adff7078dd8a03ec4cf1391290facda40c6a4faac8203ae38c985eaedd63 + languageName: node + linkType: hard + "command-line-args@npm:^5.1.1": version: 5.2.1 resolution: "command-line-args@npm:5.2.1" @@ -11425,7 +15588,14 @@ __metadata: languageName: node linkType: hard -"commander@npm:^12.1.0, commander@npm:~12.1.0": +"commander@npm:^11.0.0": + version: 11.1.0 + resolution: "commander@npm:11.1.0" + checksum: 10/66bd2d8a0547f6cb1d34022efb25f348e433b0e04ad76a65279b1b09da108f59a4d3001ca539c60a7a46ea38bcf399fc17d91adad76a8cf43845d8dcbaf5cda1 + languageName: node + linkType: hard + +"commander@npm:^12.0.0, commander@npm:^12.1.0, commander@npm:~12.1.0": version: 12.1.0 resolution: "commander@npm:12.1.0" checksum: 10/cdaeb672d979816853a4eed7f1310a9319e8b976172485c2a6b437ed0db0a389a44cfb222bfbde772781efa9f215bdd1b936f80d6b249485b465c6cb906e1f93 @@ -11439,7 +15609,14 @@ __metadata: languageName: node linkType: hard -"commander@npm:^6.2.1": +"commander@npm:^4.0.0": + version: 4.1.1 + resolution: "commander@npm:4.1.1" + checksum: 10/3b2dc4125f387dab73b3294dbcb0ab2a862f9c0ad748ee2b27e3544d25325b7a8cdfbcc228d103a98a716960b14478114a5206b5415bd48cdafa38797891562c + languageName: node + linkType: hard + +"commander@npm:^6.2.0, commander@npm:^6.2.1": version: 6.2.1 resolution: "commander@npm:6.2.1" checksum: 10/25b88c2efd0380c84f7844b39cf18510da7bfc5013692d68cdc65f764a1c34e6c8a36ea6d72b6620e3710a930cf8fab2695bdec2bf7107a0f4fa30a3ef3b7d0e @@ -11453,7 +15630,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:^8.3.0": +"commander@npm:^8.2.0, commander@npm:^8.3.0": version: 8.3.0 resolution: "commander@npm:8.3.0" checksum: 10/6b7b5d334483ce24bd73c5dac2eab901a7dbb25fd983ea24a1eeac6e7166bb1967f641546e8abf1920afbde86a45fbfe5812fbc69d0dc451bb45ca416a12a3a3 @@ -11481,6 +15658,37 @@ __metadata: languageName: node linkType: hard +"component-type@npm:^1.2.1": + version: 1.2.2 + resolution: "component-type@npm:1.2.2" + checksum: 10/2ba8e2dd3ab0fdfd93010deebc107b45a04d32947bb2524b8ce73cdb0215a5bd0bf709831d60fda43b4058cfc75a3ee6ec5617645b86d0e18644c4bdfcc289da + languageName: node + linkType: hard + +"compressible@npm:~2.0.18": + version: 2.0.18 + resolution: "compressible@npm:2.0.18" + dependencies: + mime-db: "npm:>= 1.43.0 < 2" + checksum: 10/58321a85b375d39230405654721353f709d0c1442129e9a17081771b816302a012471a9b8f4864c7dbe02eef7f2aaac3c614795197092262e94b409c9be108f0 + languageName: node + linkType: hard + +"compression@npm:^1.7.4": + version: 1.7.5 + resolution: "compression@npm:1.7.5" + dependencies: + bytes: "npm:3.1.2" + compressible: "npm:~2.0.18" + debug: "npm:2.6.9" + negotiator: "npm:~0.6.4" + on-headers: "npm:~1.0.2" + safe-buffer: "npm:5.2.1" + vary: "npm:~1.1.2" + checksum: 10/c69cf6da151db6f9db2e242b6a0039ad41975ee886c385cff2920c5f8f7050678e0ee9a021437af033536c451791de529de376851b8d31fee42ca2d6adca03f0 + languageName: node + linkType: hard + "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -11495,6 +15703,18 @@ __metadata: languageName: node linkType: hard +"connect@npm:^3.6.5, connect@npm:^3.7.0": + version: 3.7.0 + resolution: "connect@npm:3.7.0" + dependencies: + debug: "npm:2.6.9" + finalhandler: "npm:1.1.2" + parseurl: "npm:~1.3.3" + utils-merge: "npm:1.0.1" + checksum: 10/f94818b198cc662092276ef6757dd825c59c8469c8064583525e7b81d39a3af86a01c7cb76107dfa0295dfc52b27a7ae1c40ea0e0a10189c3f8776cf08ce3a4e + languageName: node + linkType: hard + "consola@npm:^3.2.3": version: 3.2.3 resolution: "consola@npm:3.2.3" @@ -11537,6 +15757,20 @@ __metadata: languageName: node linkType: hard +"cookie-signature@npm:^1.1.0": + version: 1.2.2 + resolution: "cookie-signature@npm:1.2.2" + checksum: 10/be44a3c9a56f3771aea3a8bd8ad8f0a8e2679bcb967478267f41a510b4eb5ec55085386ba79c706c4ac21605ca76f4251973444b90283e0eb3eeafe8a92c7708 + languageName: node + linkType: hard + +"cookie@npm:^0.6.0": + version: 0.6.0 + resolution: "cookie@npm:0.6.0" + checksum: 10/c1f8f2ea7d443b9331680598b0ae4e6af18a618c37606d1bbdc75bec8361cce09fe93e727059a673f2ba24467131a9fb5a4eec76bb1b149c1b3e1ccb268dc583 + languageName: node + linkType: hard + "copy-anything@npm:^2.0.1": version: 2.0.6 resolution: "copy-anything@npm:2.0.6" @@ -11585,6 +15819,18 @@ __metadata: languageName: node linkType: hard +"cosmiconfig@npm:^5.0.5": + version: 5.2.1 + resolution: "cosmiconfig@npm:5.2.1" + dependencies: + import-fresh: "npm:^2.0.0" + is-directory: "npm:^0.3.1" + js-yaml: "npm:^3.13.1" + parse-json: "npm:^4.0.0" + checksum: 10/1d617668e1367b8d66617fb8a1bd8c13e9598534959ac0cc86195b1b0cbe7afbba2b9faa300c60b9d9d35409cf4f064b0f6e377f4ea036434e5250c69c76932f + languageName: node + linkType: hard + "cosmiconfig@npm:^7.0.0, cosmiconfig@npm:^7.0.1": version: 7.1.0 resolution: "cosmiconfig@npm:7.1.0" @@ -11695,6 +15941,13 @@ __metadata: languageName: node linkType: hard +"create-require@npm:^1.1.0": + version: 1.1.1 + resolution: "create-require@npm:1.1.1" + checksum: 10/a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff + languageName: node + linkType: hard + "cross-env@npm:^7.0.3": version: 7.0.3 resolution: "cross-env@npm:7.0.3" @@ -11725,7 +15978,20 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.6": +"cross-spawn@npm:^6.0.0": + version: 6.0.6 + resolution: "cross-spawn@npm:6.0.6" + dependencies: + nice-try: "npm:^1.0.4" + path-key: "npm:^2.0.1" + semver: "npm:^5.5.0" + shebang-command: "npm:^1.2.0" + which: "npm:^1.2.9" + checksum: 10/7abf6137b23293103a22bfeaf320f2d63faae70d97ddb4b58597237501d2efdd84cdc69a30246977e0c5f68216593894d41a7f122915dd4edf448db14c74171b + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.5, cross-spawn@npm:^7.0.6": version: 7.0.6 resolution: "cross-spawn@npm:7.0.6" dependencies: @@ -11745,6 +16011,13 @@ __metadata: languageName: node linkType: hard +"crypt@npm:0.0.2": + version: 0.0.2 + resolution: "crypt@npm:0.0.2" + checksum: 10/2c72768de3d28278c7c9ffd81a298b26f87ecdfe94415084f339e6632f089b43fe039f2c93f612bcb5ffe447238373d93b2e8c90894cba6cfb0ac7a74616f8b9 + languageName: node + linkType: hard + "crypto-browserify@npm:^3.12.0": version: 3.12.1 resolution: "crypto-browserify@npm:3.12.1" @@ -11786,6 +16059,15 @@ __metadata: languageName: node linkType: hard +"css-in-js-utils@npm:^3.1.0": + version: 3.1.0 + resolution: "css-in-js-utils@npm:3.1.0" + dependencies: + hyphenate-style-name: "npm:^1.0.3" + checksum: 10/bd2f569f1870389004cfacfd7b798c0f40933d34af1f040c391a08322d097790b9a9524affb2ba4d26122e9cb8f4256afb59edb6077dbe607506944a9c673c67 + languageName: node + linkType: hard + "css-loader@npm:^6.7.1, css-loader@npm:^6.7.3": version: 6.11.0 resolution: "css-loader@npm:6.11.0" @@ -11836,6 +16118,16 @@ __metadata: languageName: node linkType: hard +"css-tree@npm:^1.1.3": + version: 1.1.3 + resolution: "css-tree@npm:1.1.3" + dependencies: + mdn-data: "npm:2.0.14" + source-map: "npm:^0.6.1" + checksum: 10/29710728cc4b136f1e9b23ee1228ec403ec9f3d487bc94a9c5dbec563c1e08c59bc917dd6f82521a35e869ff655c298270f43ca673265005b0cd05b292eb05ab + languageName: node + linkType: hard + "css-tree@npm:^2.3.1": version: 2.3.1 resolution: "css-tree@npm:2.3.1" @@ -12020,6 +16312,13 @@ __metadata: languageName: node linkType: hard +"data-uri-to-buffer@npm:^3.0.1": + version: 3.0.1 + resolution: "data-uri-to-buffer@npm:3.0.1" + checksum: 10/c59c3009686a78c071806b72f4810856ec28222f0f4e252aa495ec027ed9732298ceea99c50328cf59b151dd34cbc3ad6150bbb43e41fc56fa19f48c99e9fc30 + languageName: node + linkType: hard + "data-urls@npm:^3.0.2": version: 3.0.2 resolution: "data-urls@npm:3.0.2" @@ -12073,6 +16372,13 @@ __metadata: languageName: node linkType: hard +"date-fns@npm:^4.1.0": + version: 4.1.0 + resolution: "date-fns@npm:4.1.0" + checksum: 10/d5f6e9de5bbc52310f786099e18609289ed5e30af60a71e0646784c8185ddd1d0eebcf7c96b7faaaefc4a8366f3a3a4244d099b6d0866ee2bec80d1361e64342 + languageName: node + linkType: hard + "dayjs@npm:^1.10.4": version: 1.11.13 resolution: "dayjs@npm:1.11.13" @@ -12087,15 +16393,24 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.7, debug@npm:~4.4.0": - version: 4.4.0 - resolution: "debug@npm:4.4.0" +"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.6.9": + version: 2.6.9 + resolution: "debug@npm:2.6.9" + dependencies: + ms: "npm:2.0.0" + checksum: 10/e07005f2b40e04f1bd14a3dd20520e9c4f25f60224cb006ce9d6781732c917964e9ec029fc7f1a151083cd929025ad5133814d4dc624a9aaf020effe4914ed14 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.5": + version: 4.3.7 + resolution: "debug@npm:4.3.7" dependencies: ms: "npm:^2.1.3" peerDependenciesMeta: supports-color: optional: true - checksum: 10/1847944c2e3c2c732514b93d11886575625686056cd765336212dc15de2d2b29612b6cd80e1afba767bb8e1803b778caf9973e98169ef1a24a7a7009e1820367 + checksum: 10/71168908b9a78227ab29d5d25fe03c5867750e31ce24bf2c44a86efc5af041758bb56569b0a3d48a9b5344c00a24a777e6f4100ed6dfd9534a42c1dde285125a languageName: node linkType: hard @@ -12108,6 +16423,18 @@ __metadata: languageName: node linkType: hard +"debug@npm:^4.0.0, debug@npm:^4.3.7, debug@npm:~4.4.0": + version: 4.4.0 + resolution: "debug@npm:4.4.0" + dependencies: + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10/1847944c2e3c2c732514b93d11886575625686056cd765336212dc15de2d2b29612b6cd80e1afba767bb8e1803b778caf9973e98169ef1a24a7a7009e1820367 + languageName: node + linkType: hard + "decamelize-keys@npm:^1.1.0": version: 1.1.1 resolution: "decamelize-keys@npm:1.1.1" @@ -12155,7 +16482,7 @@ __metadata: languageName: node linkType: hard -"dedent@npm:^1.0.0": +"dedent@npm:^1.0.0, dedent@npm:^1.5.1": version: 1.5.3 resolution: "dedent@npm:1.5.3" peerDependencies: @@ -12174,7 +16501,21 @@ __metadata: languageName: node linkType: hard -"deep-extend@npm:~0.6.0": +"deep-equal@npm:^1.0.1": + version: 1.1.2 + resolution: "deep-equal@npm:1.1.2" + dependencies: + is-arguments: "npm:^1.1.1" + is-date-object: "npm:^1.0.5" + is-regex: "npm:^1.1.4" + object-is: "npm:^1.1.5" + object-keys: "npm:^1.1.1" + regexp.prototype.flags: "npm:^1.5.1" + checksum: 10/c9d2ed2a0d93a2ee286bdb320cd51c78cd4c310b2161d1ede6476b67ca1d73860e7ff63b10927830aa4b9eca2a48073cfa54c8c4a1b2246397bda618c2138e97 + languageName: node + linkType: hard + +"deep-extend@npm:^0.6.0, deep-extend@npm:~0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" checksum: 10/7be7e5a8d468d6b10e6a67c3de828f55001b6eb515d014f7aeb9066ce36bd5717161eb47d6a0f7bed8a9083935b465bc163ee2581c8b128d29bf61092fdf57a7 @@ -12188,13 +16529,32 @@ __metadata: languageName: node linkType: hard -"deepmerge@npm:^4.2.2, deepmerge@npm:^4.3.1": +"deepmerge@npm:^4.2.2, deepmerge@npm:^4.3.0, deepmerge@npm:^4.3.1": version: 4.3.1 resolution: "deepmerge@npm:4.3.1" checksum: 10/058d9e1b0ff1a154468bf3837aea436abcfea1ba1d165ddaaf48ca93765fdd01a30d33c36173da8fbbed951dd0a267602bc782fe288b0fc4b7e1e7091afc4529 languageName: node linkType: hard +"default-gateway@npm:^4.2.0": + version: 4.2.0 + resolution: "default-gateway@npm:4.2.0" + dependencies: + execa: "npm:^1.0.0" + ip-regex: "npm:^2.1.0" + checksum: 10/1f5be765471689c6bab33e0c8b87363c3e2485cc1ab78904d383a8a8293a79f684da2a3303744b112503f986af4ea87d917c63a468ed913e9b0c31588c02d6a4 + languageName: node + linkType: hard + +"defaults@npm:^1.0.3": + version: 1.0.4 + resolution: "defaults@npm:1.0.4" + dependencies: + clone: "npm:^1.0.2" + checksum: 10/3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a + languageName: node + linkType: hard + "define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": version: 1.1.4 resolution: "define-data-property@npm:1.1.4" @@ -12231,6 +16591,22 @@ __metadata: languageName: node linkType: hard +"del@npm:^6.0.0": + version: 6.1.1 + resolution: "del@npm:6.1.1" + dependencies: + globby: "npm:^11.0.1" + graceful-fs: "npm:^4.2.4" + is-glob: "npm:^4.0.1" + is-path-cwd: "npm:^2.2.0" + is-path-inside: "npm:^3.0.2" + p-map: "npm:^4.0.0" + rimraf: "npm:^3.0.2" + slash: "npm:^3.0.0" + checksum: 10/563288b73b8b19a7261c47fd21a330eeab6e2acd7c6208c49790dfd369127120dd7836cdf0c1eca216b77c94782a81507eac6b4734252d3bef2795cb366996b6 + languageName: node + linkType: hard + "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" @@ -12238,7 +16614,21 @@ __metadata: languageName: node linkType: hard -"dequal@npm:^2.0.0, dequal@npm:^2.0.2, dequal@npm:^2.0.3": +"denodeify@npm:^1.2.1": + version: 1.2.1 + resolution: "denodeify@npm:1.2.1" + checksum: 10/f5371a93051a81b0d8f54ac2972de6ae7cd9ba272174dff58bbf28a545c5b38e1952b3e8860e6b31ead44981bb14e158720fa43501e86252315b25f3ca34a460 + languageName: node + linkType: hard + +"depd@npm:2.0.0": + version: 2.0.0 + resolution: "depd@npm:2.0.0" + checksum: 10/c0c8ff36079ce5ada64f46cc9d6fd47ebcf38241105b6e0c98f412e8ad91f084bcf906ff644cc3a4bd876ca27a62accb8b0fff72ea6ed1a414b89d8506f4a5ca + languageName: node + linkType: hard + +"dequal@npm:2.0.3, dequal@npm:^2.0.0, dequal@npm:^2.0.2, dequal@npm:^2.0.3": version: 2.0.3 resolution: "dequal@npm:2.0.3" checksum: 10/6ff05a7561f33603df87c45e389c9ac0a95e3c056be3da1a0c4702149e3a7f6fe5ffbb294478687ba51a9e95f3a60e8b6b9005993acd79c292c7d15f71964b6b @@ -12262,6 +16652,13 @@ __metadata: languageName: node linkType: hard +"destroy@npm:1.2.0": + version: 1.2.0 + resolution: "destroy@npm:1.2.0" + checksum: 10/0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 + languageName: node + linkType: hard + "detect-browser@npm:5.3.0": version: 5.3.0 resolution: "detect-browser@npm:5.3.0" @@ -12292,6 +16689,13 @@ __metadata: languageName: node linkType: hard +"detect-node-es@npm:^1.1.0": + version: 1.1.0 + resolution: "detect-node-es@npm:1.1.0" + checksum: 10/e46307d7264644975b71c104b9f028ed1d3d34b83a15b8a22373640ce5ea630e5640b1078b8ea15f202b54641da71e4aa7597093bd4b91f113db520a26a37449 + languageName: node + linkType: hard + "devlop@npm:^1.0.0, devlop@npm:^1.1.0": version: 1.1.0 resolution: "devlop@npm:1.1.0" @@ -12308,6 +16712,13 @@ __metadata: languageName: node linkType: hard +"diff@npm:^4.0.1": + version: 4.0.2 + resolution: "diff@npm:4.0.2" + checksum: 10/ec09ec2101934ca5966355a229d77afcad5911c92e2a77413efda5455636c4cf2ce84057e2d7715227a2eeeda04255b849bd3ae3a4dd22eb22e86e76456df069 + languageName: node + linkType: hard + "diffie-hellman@npm:^5.0.3": version: 5.0.3 resolution: "diffie-hellman@npm:5.0.3" @@ -12490,7 +16901,16 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:^16.0.3": +"dotenv-expand@npm:~11.0.6": + version: 11.0.7 + resolution: "dotenv-expand@npm:11.0.7" + dependencies: + dotenv: "npm:^16.4.5" + checksum: 10/1cd981e2b925e746919e9fca16fa5e953955d021b5d5fea0a4ae96dc61fcc76bc95874e7730f8ceca22f5e3df5a47eb1fc626c3f45e98019ceba54fd58521971 + languageName: node + linkType: hard + +"dotenv@npm:^16.0.3, dotenv@npm:^16.4.5, dotenv@npm:~16.4.5": version: 16.4.7 resolution: "dotenv@npm:16.4.7" checksum: 10/f13bfe97db88f0df4ec505eeffb8925ec51f2d56a3d0b6d916964d8b4af494e6fb1633ba5d09089b552e77ab2a25de58d70259b2c5ed45ec148221835fc99a0c @@ -12581,6 +17001,26 @@ __metadata: languageName: node linkType: hard +"edit-json-file@npm:^1.7.0": + version: 1.8.0 + resolution: "edit-json-file@npm:1.8.0" + dependencies: + find-value: "npm:^1.0.12" + iterate-object: "npm:^1.3.4" + r-json: "npm:^1.2.10" + set-value: "npm:^4.1.0" + w-json: "npm:^1.3.10" + checksum: 10/611e62414a15b1d6e44261d1fd370fa6f080f4a93ff6ee4ec0b103a545984dbb0aa8a68f2c7856cbb63948c2c2df6b2b12d98140d3e040f3ce12cffdc51de7a3 + languageName: node + linkType: hard + +"ee-first@npm:1.1.1": + version: 1.1.1 + resolution: "ee-first@npm:1.1.1" + checksum: 10/1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f + languageName: node + linkType: hard + "eip55@npm:^2.1.1": version: 2.1.1 resolution: "eip55@npm:2.1.1" @@ -12590,7 +17030,7 @@ __metadata: languageName: node linkType: hard -"ejs@npm:^3.1.6": +"ejs@npm:^3.1.10, ejs@npm:^3.1.6": version: 3.1.10 resolution: "ejs@npm:3.1.10" dependencies: @@ -12601,6 +17041,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.5.41": + version: 1.5.71 + resolution: "electron-to-chromium@npm:1.5.71" + checksum: 10/feb1655236b9de715f837e07e4bcb49b199f20ce7b6b8ab8e7e4120220bcb85b96227af72cb5bbed88ff3cb7c09110fe8b04be9504a34a24694fc2e630a64704 + languageName: node + linkType: hard + "electron-to-chromium@npm:^1.5.73": version: 1.5.74 resolution: "electron-to-chromium@npm:1.5.74" @@ -12680,6 +17127,20 @@ __metadata: languageName: node linkType: hard +"encodeurl@npm:~1.0.2": + version: 1.0.2 + resolution: "encodeurl@npm:1.0.2" + checksum: 10/e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c + languageName: node + linkType: hard + +"encodeurl@npm:~2.0.0": + version: 2.0.0 + resolution: "encodeurl@npm:2.0.0" + checksum: 10/abf5cd51b78082cf8af7be6785813c33b6df2068ce5191a40ca8b1afe6a86f9230af9a9ce694a5ce4665955e5c1120871826df9c128a642e09c58d592e2807fe + languageName: node + linkType: hard + "encoding@npm:^0.1.13": version: 0.1.13 resolution: "encoding@npm:0.1.13" @@ -12743,6 +17204,13 @@ __metadata: languageName: node linkType: hard +"env-editor@npm:^0.4.1": + version: 0.4.2 + resolution: "env-editor@npm:0.4.2" + checksum: 10/d162e161d9a1bddaf63f68428c587b1d823afe7d56cde039ce403cc68706c68350c92b9db44692f4ecea1d67ec80de9ba01ca70568299ed929d3fa056c40aebf + languageName: node + linkType: hard + "env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -12757,6 +17225,13 @@ __metadata: languageName: node linkType: hard +"eol@npm:^0.9.1": + version: 0.9.1 + resolution: "eol@npm:0.9.1" + checksum: 10/9d3fd93bb2bb5c69c7fe8dfb97b62213ed95857a2e90f5db3110415993e8a989d87fb011755ce22fdb92ca36fbe4e111b395a6f4ce00b9b51d3f00f19c2acf52 + languageName: node + linkType: hard + "err-code@npm:^2.0.2": version: 2.0.3 resolution: "err-code@npm:2.0.3" @@ -12970,6 +17445,13 @@ __metadata: languageName: node linkType: hard +"es6-promise@npm:^3.2.1": + version: 3.3.1 + resolution: "es6-promise@npm:3.3.1" + checksum: 10/14f46a0a20164d4d6f8a39133c7220688bb9ee2d89a78f2345694b8ac9b6ea7b94f73488e289a083dce732831f4040013b25222d1820580c7b10b698c50c8267 + languageName: node + linkType: hard + "es6-symbol@npm:^3.1.1, es6-symbol@npm:^3.1.3": version: 3.1.4 resolution: "es6-symbol@npm:3.1.4" @@ -13016,7 +17498,20 @@ __metadata: languageName: node linkType: hard -"esbuild-register@npm:^3.5.0": +"esbuild-plugin-es5@npm:^2.1.1": + version: 2.1.1 + resolution: "esbuild-plugin-es5@npm:2.1.1" + dependencies: + "@swc/core": "npm:^1.5.25" + "@swc/helpers": "npm:^0.5.11" + deepmerge: "npm:^4.3.1" + peerDependencies: + esbuild: "*" + checksum: 10/4ed4984d83a8f8f49ced24ee135c1cd213e3a76d3dd503fd4f9f4d8c9c9562b88fb267910ef4753e2ddf15159b76d92631857aec2f001d46470266c6e613db01 + languageName: node + linkType: hard + +"esbuild-register@npm:^3.5.0, esbuild-register@npm:^3.6.0": version: 3.6.0 resolution: "esbuild-register@npm:3.6.0" dependencies: @@ -13027,7 +17522,7 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0": +"esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0, esbuild@npm:^0.24.0": version: 0.24.0 resolution: "esbuild@npm:0.24.0" dependencies: @@ -13197,6 +17692,13 @@ __metadata: languageName: node linkType: hard +"escape-html@npm:~1.0.3": + version: 1.0.3 + resolution: "escape-html@npm:1.0.3" + checksum: 10/6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 + languageName: node + linkType: hard + "escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" @@ -13416,7 +17918,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react@npm:^7.37.0": +"eslint-plugin-react@npm:^7.37.0, eslint-plugin-react@npm:^7.37.1": version: 7.37.2 resolution: "eslint-plugin-react@npm:7.37.2" dependencies: @@ -13504,6 +18006,55 @@ __metadata: languageName: node linkType: hard +"eslint@npm:^9.12.0": + version: 9.16.0 + resolution: "eslint@npm:9.16.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.2.0" + "@eslint-community/regexpp": "npm:^4.12.1" + "@eslint/config-array": "npm:^0.19.0" + "@eslint/core": "npm:^0.9.0" + "@eslint/eslintrc": "npm:^3.2.0" + "@eslint/js": "npm:9.16.0" + "@eslint/plugin-kit": "npm:^0.2.3" + "@humanfs/node": "npm:^0.16.6" + "@humanwhocodes/module-importer": "npm:^1.0.1" + "@humanwhocodes/retry": "npm:^0.4.1" + "@types/estree": "npm:^1.0.6" + "@types/json-schema": "npm:^7.0.15" + ajv: "npm:^6.12.4" + chalk: "npm:^4.0.0" + cross-spawn: "npm:^7.0.5" + debug: "npm:^4.3.2" + escape-string-regexp: "npm:^4.0.0" + eslint-scope: "npm:^8.2.0" + eslint-visitor-keys: "npm:^4.2.0" + espree: "npm:^10.3.0" + esquery: "npm:^1.5.0" + esutils: "npm:^2.0.2" + fast-deep-equal: "npm:^3.1.3" + file-entry-cache: "npm:^8.0.0" + find-up: "npm:^5.0.0" + glob-parent: "npm:^6.0.2" + ignore: "npm:^5.2.0" + imurmurhash: "npm:^0.1.4" + is-glob: "npm:^4.0.0" + json-stable-stringify-without-jsonify: "npm:^1.0.1" + lodash.merge: "npm:^4.6.2" + minimatch: "npm:^3.1.2" + natural-compare: "npm:^1.4.0" + optionator: "npm:^0.9.3" + peerDependencies: + jiti: "*" + peerDependenciesMeta: + jiti: + optional: true + bin: + eslint: bin/eslint.js + checksum: 10/b47a34392a55bc08594ee2fed2777d7aff96f38b584791ccded44d88b72795acfe15b18643fd4046f680734a1f16244d554f34a485f660fa723e25d609fb12ba + languageName: node + linkType: hard + "eslint@npm:^9.14.0": version: 9.17.0 resolution: "eslint@npm:9.17.0" @@ -13716,6 +18267,13 @@ __metadata: languageName: node linkType: hard +"etag@npm:~1.8.1": + version: 1.8.1 + resolution: "etag@npm:1.8.1" + checksum: 10/571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff + languageName: node + linkType: hard + "eth-crypto@npm:^2.1.0": version: 2.7.0 resolution: "eth-crypto@npm:2.7.0" @@ -13953,7 +18511,7 @@ __metadata: languageName: node linkType: hard -"event-target-shim@npm:^5.0.0": +"event-target-shim@npm:^5.0.0, event-target-shim@npm:^5.0.1": version: 5.0.1 resolution: "event-target-shim@npm:5.0.1" checksum: 10/49ff46c3a7facbad3decb31f597063e761785d7fdb3920d4989d7b08c97a61c2f51183e2f3a03130c9088df88d4b489b1b79ab632219901f184f85158508f4c8 @@ -14006,6 +18564,13 @@ __metadata: languageName: node linkType: hard +"exec-async@npm:^2.2.0": + version: 2.2.0 + resolution: "exec-async@npm:2.2.0" + checksum: 10/35932a49c825245e1fe022848a3ffef71717955149a3af8d56bf15b04a21c8f098581ffe2e4916a9dbd7736ce559365ccd55327e72422136adb9f4af867e1203 + languageName: node + linkType: hard + "execa@npm:4.1.0": version: 4.1.0 resolution: "execa@npm:4.1.0" @@ -14023,66 +18588,423 @@ __metadata: languageName: node linkType: hard -"execa@npm:^5.0.0": - version: 5.1.1 - resolution: "execa@npm:5.1.1" +"execa@npm:^1.0.0": + version: 1.0.0 + resolution: "execa@npm:1.0.0" + dependencies: + cross-spawn: "npm:^6.0.0" + get-stream: "npm:^4.0.0" + is-stream: "npm:^1.1.0" + npm-run-path: "npm:^2.0.0" + p-finally: "npm:^1.0.0" + signal-exit: "npm:^3.0.0" + strip-eof: "npm:^1.0.0" + checksum: 10/9b7a0077ba9d0ecdd41bf2d8644f83abf736e37622e3d1af39dec9d5f2cfa6bf8263301d0df489688dda3873d877f4168c01172cbafed5fffd12c808983515b0 + languageName: node + linkType: hard + +"execa@npm:^5.0.0, execa@npm:^5.1.1": + version: 5.1.1 + resolution: "execa@npm:5.1.1" + dependencies: + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^6.0.0" + human-signals: "npm:^2.1.0" + is-stream: "npm:^2.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^4.0.1" + onetime: "npm:^5.1.2" + signal-exit: "npm:^3.0.3" + strip-final-newline: "npm:^2.0.0" + checksum: 10/8ada91f2d70f7dff702c861c2c64f21dfdc1525628f3c0454fd6f02fce65f7b958616cbd2b99ca7fa4d474e461a3d363824e91b3eb881705231abbf387470597 + languageName: node + linkType: hard + +"execa@npm:^8.0.1, execa@npm:~8.0.1": + version: 8.0.1 + resolution: "execa@npm:8.0.1" + dependencies: + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^8.0.1" + human-signals: "npm:^5.0.0" + is-stream: "npm:^3.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^5.1.0" + onetime: "npm:^6.0.0" + signal-exit: "npm:^4.1.0" + strip-final-newline: "npm:^3.0.0" + checksum: 10/d2ab5fe1e2bb92b9788864d0713f1fce9a07c4594e272c0c97bc18c90569897ab262e4ea58d27a694d288227a2e24f16f5e2575b44224ad9983b799dc7f1098d + languageName: node + linkType: hard + +"executable@npm:^4.1.1": + version: 4.1.1 + resolution: "executable@npm:4.1.1" + dependencies: + pify: "npm:^2.2.0" + checksum: 10/f01927ce59bccec804e171bf859a26e362c1f50aa9ebc69f7cafdcce3859d29d4b6267fd47237c18b0a1830614bd3f0ee14b7380d9bad18a4e7af9b5f0b6984f + languageName: node + linkType: hard + +"exit@npm:^0.1.2": + version: 0.1.2 + resolution: "exit@npm:0.1.2" + checksum: 10/387555050c5b3c10e7a9e8df5f43194e95d7737c74532c409910e585d5554eaff34960c166643f5e23d042196529daad059c292dcf1fb61b8ca878d3677f4b87 + languageName: node + linkType: hard + +"expect@npm:^29.0.0, expect@npm:^29.7.0": + version: 29.7.0 + resolution: "expect@npm:29.7.0" + dependencies: + "@jest/expect-utils": "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 10/63f97bc51f56a491950fb525f9ad94f1916e8a014947f8d8445d3847a665b5471b768522d659f5e865db20b6c2033d2ac10f35fcbd881a4d26407a4f6f18451a + languageName: node + linkType: hard + +"expo-asset@npm:~11.0.1": + version: 11.0.1 + resolution: "expo-asset@npm:11.0.1" + dependencies: + "@expo/image-utils": "npm:^0.6.0" + expo-constants: "npm:~17.0.0" + invariant: "npm:^2.2.4" + md5-file: "npm:^3.2.3" + peerDependencies: + expo: "*" + react: "*" + react-native: "*" + checksum: 10/1b1d28048e224d4899fe27e55e650a0a9a2cafb02afb3c2f1d58f4be032fdbaafebe8157dc734503ee7fc84e8f1aec3481aded9f61eaeeaecb4f4ab06d335524 + languageName: node + linkType: hard + +"expo-blur@npm:~14.0.1": + version: 14.0.1 + resolution: "expo-blur@npm:14.0.1" + peerDependencies: + expo: "*" + react: "*" + react-native: "*" + checksum: 10/263fe270941b8d05792f266ac1101de34f89cd1cf69e54802bc97daf798a89d2c3bf9f72780840fd5ed0519a209f71845f4758b49757be0fdc67942fab7da477 + languageName: node + linkType: hard + +"expo-constants@npm:~17.0.0, expo-constants@npm:~17.0.2, expo-constants@npm:~17.0.3": + version: 17.0.3 + resolution: "expo-constants@npm:17.0.3" + dependencies: + "@expo/config": "npm:~10.0.4" + "@expo/env": "npm:~0.4.0" + peerDependencies: + expo: "*" + react-native: "*" + checksum: 10/25487b469010c57ffbb1bf5e052d5e546db0bc7af9a68acd0e359a2f3978c99fc28b49527514da862dfcaf6b7915674b16d70a3c63d31a64cbdb0d27c6294a69 + languageName: node + linkType: hard + +"expo-dev-client@npm:~5.0.5": + version: 5.0.5 + resolution: "expo-dev-client@npm:5.0.5" + dependencies: + expo-dev-launcher: "npm:5.0.18" + expo-dev-menu: "npm:6.0.13" + expo-dev-menu-interface: "npm:1.9.2" + expo-manifests: "npm:~0.15.0" + expo-updates-interface: "npm:~1.0.0" + peerDependencies: + expo: "*" + checksum: 10/67ca16139e600f978c49ce63225afceaab51b284c85cf1115dea403df571b399a46a0f9c9fbb4894cbb6c872de518f0c49f1925f9f5e1c7f01516f50fa631ea0 + languageName: node + linkType: hard + +"expo-dev-launcher@npm:5.0.18": + version: 5.0.18 + resolution: "expo-dev-launcher@npm:5.0.18" + dependencies: + ajv: "npm:8.11.0" + expo-dev-menu: "npm:6.0.13" + expo-manifests: "npm:~0.15.0" + resolve-from: "npm:^5.0.0" + peerDependencies: + expo: "*" + checksum: 10/ef200a3fcbb6e7e7d37c3af56aecafbaeff557100b4f2fa28acd902fce53212fe79d5b7ae7932cca2e4729f5f27e85f4e725d856cbccbec2d72825979f6ba4ac + languageName: node + linkType: hard + +"expo-dev-menu-interface@npm:1.9.2": + version: 1.9.2 + resolution: "expo-dev-menu-interface@npm:1.9.2" + peerDependencies: + expo: "*" + checksum: 10/a65c95aadf959b0be9a83ba302d9ac3f4bffec6ad947cbeba2351fd1958a6d95470357ccfc659ba519364dd9564e6a8c32f66c3e9bb0239a717326680a35e3e5 + languageName: node + linkType: hard + +"expo-dev-menu@npm:6.0.13": + version: 6.0.13 + resolution: "expo-dev-menu@npm:6.0.13" + dependencies: + expo-dev-menu-interface: "npm:1.9.2" + peerDependencies: + expo: "*" + checksum: 10/36e0c1f9f67215eca7b9049778d4f0cc097800266301dcee370db012835be209f1d3b5d158efc9df653ae2d7a2a3fa27b2a46e02d7f89175281b5cd924dc259b + languageName: node + linkType: hard + +"expo-file-system@npm:~18.0.4": + version: 18.0.4 + resolution: "expo-file-system@npm:18.0.4" + dependencies: + web-streams-polyfill: "npm:^3.3.2" + peerDependencies: + expo: "*" + react-native: "*" + checksum: 10/cd4092f70224ca611936d0225491124d57c32dde9a515bb12f3d396bba1717cd16f0eeda3c7a721b29cf21412bfb3fb8bd8c5c7f78fcca226044d53be17a7fa3 + languageName: node + linkType: hard + +"expo-font@npm:~13.0.1": + version: 13.0.1 + resolution: "expo-font@npm:13.0.1" + dependencies: + fontfaceobserver: "npm:^2.1.0" + peerDependencies: + expo: "*" + react: "*" + checksum: 10/c28b41d2861f92b169791e3ecd7d005eb70eb02b72bcded378ad17d3a3e7fb57e26f57021b5b6d9dce8c6707d63c6cf8e2157b2caf28c0fecd235b13a9b2b147 + languageName: node + linkType: hard + +"expo-image@npm:~2.0.3": + version: 2.0.3 + resolution: "expo-image@npm:2.0.3" + peerDependencies: + expo: "*" + react: "*" + react-native: "*" + react-native-web: "*" + peerDependenciesMeta: + react-native-web: + optional: true + checksum: 10/b6fda7c18401f8f0bf5a255e2ebc0d565c31b89075bf6c7ea050ee2590aa8cc4dd20ba7daebeb36e0fdfb9190726717c91e47c185f9ccd43b7962c1744e4de6d + languageName: node + linkType: hard + +"expo-json-utils@npm:~0.14.0": + version: 0.14.0 + resolution: "expo-json-utils@npm:0.14.0" + checksum: 10/96fbfbe5cbef75dc742982b27eb55ca2e00c488fabc0877e01b707ab12ddf349cf9cda6e7f5459982bb24be5374ce6889ae628eb3041f1367d3672ba561900c9 + languageName: node + linkType: hard + +"expo-keep-awake@npm:~14.0.1": + version: 14.0.1 + resolution: "expo-keep-awake@npm:14.0.1" + peerDependencies: + expo: "*" + react: "*" + checksum: 10/a4b72ab4c6c41f44c04f4146f3eda955941f2c7ee500a43da45baff6ca74d40ada8e253b38b4925802a4a003642b0dc0af15501712367b90ae606d5355f7f5f0 + languageName: node + linkType: hard + +"expo-linear-gradient@npm:^14.0.1": + version: 14.0.1 + resolution: "expo-linear-gradient@npm:14.0.1" + peerDependencies: + expo: "*" + react: "*" + react-native: "*" + checksum: 10/d0ff7b10e20b35c09ab7d3f8e8ba205b4274813160bf3eec81c5d4b601985831cf87cb403081c5ed30cf20264245494d29576f8ea7879340f5241b58358136f3 + languageName: node + linkType: hard + +"expo-linking@npm:~7.0.3": + version: 7.0.3 + resolution: "expo-linking@npm:7.0.3" + dependencies: + expo-constants: "npm:~17.0.0" + invariant: "npm:^2.2.4" + peerDependencies: + react: "*" + react-native: "*" + checksum: 10/c2d3e04c5cde99616357182b9b9303814473eebb2dabacc58e7dd91d90bc590618091259d19b8e761cee973f8dece7619660318c347e047f0aaae99163a7e5ae + languageName: node + linkType: hard + +"expo-manifests@npm:~0.15.0": + version: 0.15.4 + resolution: "expo-manifests@npm:0.15.4" + dependencies: + "@expo/config": "npm:~10.0.4" + expo-json-utils: "npm:~0.14.0" + peerDependencies: + expo: "*" + checksum: 10/aed4e1277cd52d4a20ff853c84d431b7ec9f45cea57e28bd765e3a9278099a8633dc28d1d244bec6bd43e1bb5d6c244747645bef6362088f379c13900e9122f0 + languageName: node + linkType: hard + +"expo-modules-autolinking@npm:2.0.3": + version: 2.0.3 + resolution: "expo-modules-autolinking@npm:2.0.3" + dependencies: + "@expo/spawn-async": "npm:^1.7.2" + chalk: "npm:^4.1.0" + commander: "npm:^7.2.0" + fast-glob: "npm:^3.2.5" + find-up: "npm:^5.0.0" + fs-extra: "npm:^9.1.0" + require-from-string: "npm:^2.0.2" + resolve-from: "npm:^5.0.0" + bin: + expo-modules-autolinking: bin/expo-modules-autolinking.js + checksum: 10/22e7a8df3884213791f09bd41972ca463404d84a94c34fb756188112196e447a1f30429732ece35cfdcd46d3de2214cb0d1197fdc611bfea76dd1e50ff233bf6 + languageName: node + linkType: hard + +"expo-modules-core@npm:2.1.1": + version: 2.1.1 + resolution: "expo-modules-core@npm:2.1.1" dependencies: - cross-spawn: "npm:^7.0.3" - get-stream: "npm:^6.0.0" - human-signals: "npm:^2.1.0" - is-stream: "npm:^2.0.0" - merge-stream: "npm:^2.0.0" - npm-run-path: "npm:^4.0.1" - onetime: "npm:^5.1.2" - signal-exit: "npm:^3.0.3" - strip-final-newline: "npm:^2.0.0" - checksum: 10/8ada91f2d70f7dff702c861c2c64f21dfdc1525628f3c0454fd6f02fce65f7b958616cbd2b99ca7fa4d474e461a3d363824e91b3eb881705231abbf387470597 + invariant: "npm:^2.2.4" + checksum: 10/add4f7774e1bb66c4217f3c4d5e977c7b8b1281f91d8278e12af242d7e42ee12474f1f5bca8c38249ef5aa9d073dcc1d2ad8c3c35b571a1328b4d32906771384 languageName: node linkType: hard -"execa@npm:^8.0.1, execa@npm:~8.0.1": - version: 8.0.1 - resolution: "execa@npm:8.0.1" - dependencies: - cross-spawn: "npm:^7.0.3" - get-stream: "npm:^8.0.1" - human-signals: "npm:^5.0.0" - is-stream: "npm:^3.0.0" - merge-stream: "npm:^2.0.0" - npm-run-path: "npm:^5.1.0" - onetime: "npm:^6.0.0" - signal-exit: "npm:^4.1.0" - strip-final-newline: "npm:^3.0.0" - checksum: 10/d2ab5fe1e2bb92b9788864d0713f1fce9a07c4594e272c0c97bc18c90569897ab262e4ea58d27a694d288227a2e24f16f5e2575b44224ad9983b799dc7f1098d +"expo-router@npm:~4.0.11": + version: 4.0.11 + resolution: "expo-router@npm:4.0.11" + dependencies: + "@expo/metro-runtime": "npm:4.0.0" + "@expo/server": "npm:^0.5.0" + "@radix-ui/react-slot": "npm:1.0.1" + "@react-navigation/bottom-tabs": "npm:^7.0.0" + "@react-navigation/native": "npm:^7.0.0" + "@react-navigation/native-stack": "npm:^7.0.0" + client-only: "npm:^0.0.1" + react-helmet-async: "npm:^1.3.0" + react-native-helmet-async: "npm:2.0.4" + react-native-is-edge-to-edge: "npm:^1.1.6" + schema-utils: "npm:^4.0.1" + semver: "npm:~7.6.3" + server-only: "npm:^0.0.1" + peerDependencies: + "@react-navigation/drawer": ^7.0.0 + expo: "*" + expo-constants: "*" + expo-linking: "*" + react-native-reanimated: "*" + react-native-safe-area-context: "*" + react-native-screens: "*" + peerDependenciesMeta: + "@react-navigation/drawer": + optional: true + "@testing-library/jest-native": + optional: true + react-native-reanimated: + optional: true + checksum: 10/a0b6f1ae7e14d7157b81928b638c04e54c280864942bb8322c17f7436c5001ccb07eb81507de0c051553c045e56af6f80d841afe922d33f7c19b2e338aac4eeb languageName: node linkType: hard -"executable@npm:^4.1.1": - version: 4.1.1 - resolution: "executable@npm:4.1.1" +"expo-splash-screen@npm:^0.29.16": + version: 0.29.16 + resolution: "expo-splash-screen@npm:0.29.16" dependencies: - pify: "npm:^2.2.0" - checksum: 10/f01927ce59bccec804e171bf859a26e362c1f50aa9ebc69f7cafdcce3859d29d4b6267fd47237c18b0a1830614bd3f0ee14b7380d9bad18a4e7af9b5f0b6984f + "@expo/prebuild-config": "npm:^8.0.22" + peerDependencies: + expo: "*" + checksum: 10/7a54a5398f31f1cd26f3d6bfb5fa6a6ee6f0ceb33c166ce4bfd7bf0ef11de0b893f05e5edc8fc1e04d855721b8eab0279c5143bd9c6099697d3ee769974c6e6f languageName: node linkType: hard -"exit@npm:^0.1.2": - version: 0.1.2 - resolution: "exit@npm:0.1.2" - checksum: 10/387555050c5b3c10e7a9e8df5f43194e95d7737c74532c409910e585d5554eaff34960c166643f5e23d042196529daad059c292dcf1fb61b8ca878d3677f4b87 +"expo-status-bar@npm:~2.0.0": + version: 2.0.0 + resolution: "expo-status-bar@npm:2.0.0" + peerDependencies: + react: "*" + react-native: "*" + checksum: 10/c965a617a67831f76645997ac3129061a2a906c7c19d60242fd3a21a63441d9d939e62686b949b57f77d6065643d508e6a5faefec3edc4f29cb8232571934c8a languageName: node linkType: hard -"expect@npm:^29.0.0, expect@npm:^29.7.0": - version: 29.7.0 - resolution: "expect@npm:29.7.0" +"expo-system-ui@npm:~4.0.5": + version: 4.0.5 + resolution: "expo-system-ui@npm:4.0.5" dependencies: - "@jest/expect-utils": "npm:^29.7.0" - jest-get-type: "npm:^29.6.3" - jest-matcher-utils: "npm:^29.7.0" - jest-message-util: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - checksum: 10/63f97bc51f56a491950fb525f9ad94f1916e8a014947f8d8445d3847a665b5471b768522d659f5e865db20b6c2033d2ac10f35fcbd881a4d26407a4f6f18451a + "@react-native/normalize-colors": "npm:0.76.3" + debug: "npm:^4.3.2" + peerDependencies: + expo: "*" + react-native: "*" + react-native-web: "*" + peerDependenciesMeta: + react-native-web: + optional: true + checksum: 10/6dd8bdf96b1aef1000f71a58ad5d41f07ab741ab4d86b690668905319e76a513a82b4dff38475d6bf6782180c1cab25edfe23f8054b90d46311df8c95a81796e + languageName: node + linkType: hard + +"expo-updates-interface@npm:~1.0.0": + version: 1.0.0 + resolution: "expo-updates-interface@npm:1.0.0" + peerDependencies: + expo: "*" + checksum: 10/d22fa90eff9d6c6d96c1a4323dc3ac8329ef42fbc0fd21442cead135c46da54e1fa402eceda41bdfdb206da6fe98e28576a7243de7d209ea5d6c45785edf2939 + languageName: node + linkType: hard + +"expo-web-browser@npm:~14.0.1": + version: 14.0.1 + resolution: "expo-web-browser@npm:14.0.1" + peerDependencies: + expo: "*" + react-native: "*" + checksum: 10/fd25d8f3ca063f6f0c75a2af606b0407c2ffc1bb0da61c50749e535d9f27172a4e496c5dbb3fb217edf89c049c8cd28baba03e5a5d00657c7e1a86c4a5237137 + languageName: node + linkType: hard + +"expo@npm:~52.0.14": + version: 52.0.17 + resolution: "expo@npm:52.0.17" + dependencies: + "@babel/runtime": "npm:^7.20.0" + "@expo/cli": "npm:0.22.3" + "@expo/config": "npm:~10.0.6" + "@expo/config-plugins": "npm:~9.0.12" + "@expo/fingerprint": "npm:0.11.3" + "@expo/metro-config": "npm:0.19.6" + "@expo/vector-icons": "npm:^14.0.0" + babel-preset-expo: "npm:~12.0.3" + expo-asset: "npm:~11.0.1" + expo-constants: "npm:~17.0.3" + expo-file-system: "npm:~18.0.4" + expo-font: "npm:~13.0.1" + expo-keep-awake: "npm:~14.0.1" + expo-modules-autolinking: "npm:2.0.3" + expo-modules-core: "npm:2.1.1" + fbemitter: "npm:^3.0.0" + web-streams-polyfill: "npm:^3.3.2" + whatwg-url-without-unicode: "npm:8.0.0-3" + peerDependencies: + "@expo/dom-webview": "*" + "@expo/metro-runtime": "*" + react: "*" + react-native: "*" + react-native-webview: "*" + peerDependenciesMeta: + "@expo/dom-webview": + optional: true + "@expo/metro-runtime": + optional: true + react-native-webview: + optional: true + bin: + expo: bin/cli + checksum: 10/f418b4106f2a9b0433398dfcdbe26c5a9e4d107d80052907ab85015450dd7d601310d42fcf480af45fbf3f3331c2ede7da78f633a940c6cf1ed3e47294e5801c languageName: node linkType: hard @@ -14158,6 +19080,13 @@ __metadata: languageName: node linkType: hard +"fast-deep-equal@npm:^2.0.1": + version: 2.0.1 + resolution: "fast-deep-equal@npm:2.0.1" + checksum: 10/b701835a87985e0ec4925bdf1f0c1e7eb56309b5d12d534d5b4b69d95a54d65bb16861c081781ead55f73f12d6c60ba668713391ee7fbf6b0567026f579b7b0b + languageName: node + linkType: hard + "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" @@ -14185,7 +19114,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:3.3.2, fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": +"fast-glob@npm:3.3.2, fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.5, fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -14205,7 +19134,7 @@ __metadata: languageName: node linkType: hard -"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": +"fast-json-stable-stringify@npm:2.x, fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" checksum: 10/2c20055c1fa43c922428f16ca8bb29f2807de63e5c851f665f7ac9790176c01c3b40335257736b299764a8d383388dabc73c8083b8e1bc3d99f0a941444ec60e @@ -14219,6 +19148,13 @@ __metadata: languageName: node linkType: hard +"fast-loops@npm:^1.1.3": + version: 1.1.4 + resolution: "fast-loops@npm:1.1.4" + checksum: 10/52516fc8bb95a60e512271e731c4dc7b7672af90c5e54681004ee2f509d6ccc8e62d5222e731377dafd48a31218f915fd6d0d02efe602b1b822e1ff93994d2a6 + languageName: node + linkType: hard + "fast-redact@npm:^3.0.0": version: 3.5.0 resolution: "fast-redact@npm:3.5.0" @@ -14226,7 +19162,7 @@ __metadata: languageName: node linkType: hard -"fast-safe-stringify@npm:^2.1.1": +"fast-safe-stringify@npm:^2.0.7, fast-safe-stringify@npm:^2.1.1": version: 2.1.1 resolution: "fast-safe-stringify@npm:2.1.1" checksum: 10/dc1f063c2c6ac9533aee14d406441f86783a8984b2ca09b19c2fe281f9ff59d315298bc7bc22fd1f83d26fe19ef2f20e2ddb68e96b15040292e555c5ced0c1e4 @@ -14276,6 +19212,37 @@ __metadata: languageName: node linkType: hard +"fbemitter@npm:^3.0.0": + version: 3.0.0 + resolution: "fbemitter@npm:3.0.0" + dependencies: + fbjs: "npm:^3.0.0" + checksum: 10/a3d1c922d1523da3a66aac2fc0c4687d2573326838172157cc602d53a5d436bb8388f42f5fed5dbbad775509fc8104f02d90f44440c5f820753f4e86905a71be + languageName: node + linkType: hard + +"fbjs-css-vars@npm:^1.0.0": + version: 1.0.2 + resolution: "fbjs-css-vars@npm:1.0.2" + checksum: 10/72baf6d22c45b75109118b4daecb6c8016d4c83c8c0f23f683f22e9d7c21f32fff6201d288df46eb561e3c7d4bb4489b8ad140b7f56444c453ba407e8bd28511 + languageName: node + linkType: hard + +"fbjs@npm:^3.0.0, fbjs@npm:^3.0.4": + version: 3.0.5 + resolution: "fbjs@npm:3.0.5" + dependencies: + cross-fetch: "npm:^3.1.5" + fbjs-css-vars: "npm:^1.0.0" + loose-envify: "npm:^1.0.0" + object-assign: "npm:^4.1.0" + promise: "npm:^7.1.1" + setimmediate: "npm:^1.0.5" + ua-parser-js: "npm:^1.0.35" + checksum: 10/71252595b00b06fb0475a295c74d81ada1cc499b7e11f2cde51fef04618affa568f5b7f4927f61720c23254b9144be28f8acb2086a5001cf65df8eec87c6ca5c + languageName: node + linkType: hard + "fd-slicer@npm:~1.1.0": version: 1.1.0 resolution: "fd-slicer@npm:1.1.0" @@ -14285,6 +19252,13 @@ __metadata: languageName: node linkType: hard +"fetch-retry@npm:^4.1.1": + version: 4.1.1 + resolution: "fetch-retry@npm:4.1.1" + checksum: 10/c97006c2b604a817cbd4e35085965d07a8f1c51b475bf037f305b98d5748ee742ec98aba119b4df6bf727e61f2f0ee05c5fa714701c4234b91c4b43e0f119bd9 + languageName: node + linkType: hard + "figures@npm:^3.2.0": version: 3.2.0 resolution: "figures@npm:3.2.0" @@ -14358,7 +19332,33 @@ __metadata: languageName: node linkType: hard -"find-cache-dir@npm:^3.3.1": +"finalhandler@npm:1.1.2": + version: 1.1.2 + resolution: "finalhandler@npm:1.1.2" + dependencies: + debug: "npm:2.6.9" + encodeurl: "npm:~1.0.2" + escape-html: "npm:~1.0.3" + on-finished: "npm:~2.3.0" + parseurl: "npm:~1.3.3" + statuses: "npm:~1.5.0" + unpipe: "npm:~1.0.0" + checksum: 10/351e99a889abf149eb3edb24568586469feeb3019f5eafb9b31e632a5ad886f12a5595a221508245e6a37da69ae866c9fb411eb541a844238e2c900f63ac1576 + languageName: node + linkType: hard + +"find-cache-dir@npm:^2.0.0": + version: 2.1.0 + resolution: "find-cache-dir@npm:2.1.0" + dependencies: + commondir: "npm:^1.0.1" + make-dir: "npm:^2.0.0" + pkg-dir: "npm:^3.0.0" + checksum: 10/60ad475a6da9f257df4e81900f78986ab367d4f65d33cf802c5b91e969c28a8762f098693d7a571b6e4dd4c15166c2da32ae2d18b6766a18e2071079448fdce4 + languageName: node + linkType: hard + +"find-cache-dir@npm:^3.3.1, find-cache-dir@npm:^3.3.2": version: 3.3.2 resolution: "find-cache-dir@npm:3.3.2" dependencies: @@ -14395,6 +19395,15 @@ __metadata: languageName: node linkType: hard +"find-up@npm:^3.0.0": + version: 3.0.0 + resolution: "find-up@npm:3.0.0" + dependencies: + locate-path: "npm:^3.0.0" + checksum: 10/38eba3fe7a66e4bc7f0f5a1366dc25508b7cfc349f852640e3678d26ad9a6d7e2c43eff0a472287de4a9753ef58f066a0ea892a256fa3636ad51b3fe1e17fae9 + languageName: node + linkType: hard + "find-up@npm:^4.0.0, find-up@npm:^4.1.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" @@ -14425,6 +19434,13 @@ __metadata: languageName: node linkType: hard +"find-value@npm:^1.0.12": + version: 1.0.12 + resolution: "find-value@npm:1.0.12" + checksum: 10/5cab63c88e5090744de582c8c331c05b134f3501935da270f24c95b395c4fea3e7d0df5e9cfdd6c2a25b80ac7cde3bc06d6dd388e4fdc6cd52f6580ed95e14e1 + languageName: node + linkType: hard + "firebase@npm:^10.3.1": version: 10.14.1 resolution: "firebase@npm:10.14.1" @@ -14489,6 +19505,20 @@ __metadata: languageName: node linkType: hard +"flow-enums-runtime@npm:^0.0.6": + version: 0.0.6 + resolution: "flow-enums-runtime@npm:0.0.6" + checksum: 10/df54ec17f6edbe2bcf17cb1e681faf3bac86e65490e819fdf29713e701eed0448c7db6d42606bf0f7044ce6909ee052920f930bbc251999e4f74e258f1d8790e + languageName: node + linkType: hard + +"flow-parser@npm:0.*": + version: 0.255.0 + resolution: "flow-parser@npm:0.255.0" + checksum: 10/7570e9a2256086d3d011707822315695e1107665b81e30919347cea7db1d95ad0dd8bc33e0fcce114b35dcadbb614e8f2604647f8f856afdb4eefc3f6755e666 + languageName: node + linkType: hard + "follow-redirects@npm:^1.15.6": version: 1.15.9 resolution: "follow-redirects@npm:1.15.9" @@ -14499,6 +19529,13 @@ __metadata: languageName: node linkType: hard +"fontfaceobserver@npm:^2.1.0": + version: 2.3.0 + resolution: "fontfaceobserver@npm:2.3.0" + checksum: 10/fec6de6b7050856f9e5f03375d6dd762b66a7fe5c52516fa9a39ab8be8f6cb62abe758e4efaab2c24caeb03b2d992bdffb397dd016e537309d05ed6ade396b20 + languageName: node + linkType: hard + "for-each@npm:^0.3.3": version: 0.3.3 resolution: "for-each@npm:0.3.3" @@ -14548,6 +19585,17 @@ __metadata: languageName: node linkType: hard +"form-data@npm:^3.0.1": + version: 3.0.2 + resolution: "form-data@npm:3.0.2" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + mime-types: "npm:^2.1.12" + checksum: 10/b8d71d7149de5881c6c8ac75c03ac2e809b1b729399320cc41f59a63043fa34b95dfef5259212d6d902abb4916af48a7ca60ad5c035806ba8e3c7843dbaf3057 + languageName: node + linkType: hard + "form-data@npm:^4.0.0, form-data@npm:~4.0.0": version: 4.0.1 resolution: "form-data@npm:4.0.1" @@ -14566,6 +19614,62 @@ __metadata: languageName: node linkType: hard +"framer-motion@npm:^6.5.1": + version: 6.5.1 + resolution: "framer-motion@npm:6.5.1" + dependencies: + "@emotion/is-prop-valid": "npm:^0.8.2" + "@motionone/dom": "npm:10.12.0" + framesync: "npm:6.0.1" + hey-listen: "npm:^1.0.8" + popmotion: "npm:11.0.3" + style-value-types: "npm:5.0.0" + tslib: "npm:^2.1.0" + peerDependencies: + react: ">=16.8 || ^17.0.0 || ^18.0.0" + react-dom: ">=16.8 || ^17.0.0 || ^18.0.0" + dependenciesMeta: + "@emotion/is-prop-valid": + optional: true + checksum: 10/ecdb2cceb0ff400f2bddc8800b74e0b377fd7d627a051437ec510cf3c1e7184b6a0afc68696e70cb21bf277e41ea41813e2833f8878e23de178be10d7b2978e5 + languageName: node + linkType: hard + +"framesync@npm:6.0.1": + version: 6.0.1 + resolution: "framesync@npm:6.0.1" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10/38a985189c90867a969e9acc1d31bfcab8184bccc0f1ad41a12dbd573e3ec0ba74259d12f3fcabaccd914330601cabd686f47b543798cf6e8c4ad23ea3c0a581 + languageName: node + linkType: hard + +"freeport-async@npm:^2.0.0": + version: 2.0.0 + resolution: "freeport-async@npm:2.0.0" + checksum: 10/c0bc71eb48a9b60277e55f1b4c7b0c14d385e9a6b3f0870a1d8b1ae441504afd481380fe7923506364d6fb765546a5cef821dcc5fe7ec2ae17bb8902c94d49b9 + languageName: node + linkType: hard + +"fresh@npm:0.5.2": + version: 0.5.2 + resolution: "fresh@npm:0.5.2" + checksum: 10/64c88e489b5d08e2f29664eb3c79c705ff9a8eb15d3e597198ef76546d4ade295897a44abb0abd2700e7ef784b2e3cbf1161e4fbf16f59129193fd1030d16da1 + languageName: node + linkType: hard + +"fs-extra@npm:9.0.0": + version: 9.0.0 + resolution: "fs-extra@npm:9.0.0" + dependencies: + at-least-node: "npm:^1.0.0" + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^1.0.0" + checksum: 10/0a5044afb8596f9fa950ef84e678f606c29f3cef980b08f161eac5bfdee08183493646f4fca409959f909ae184a673f61e622b73a27487aeaf24ff531193c98f + languageName: node + linkType: hard + "fs-extra@npm:^10.0.0": version: 10.1.0 resolution: "fs-extra@npm:10.1.0" @@ -14577,6 +19681,17 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:^11.2.0": + version: 11.2.0 + resolution: "fs-extra@npm:11.2.0" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10/0579bf6726a4cd054d4aa308f10b483f52478bb16284f32cf60b4ce0542063d551fca1a08a2af365e35db21a3fa5a06cf2a6ed614004b4368982bc754cb816b3 + languageName: node + linkType: hard + "fs-extra@npm:^7.0.0": version: 7.0.1 resolution: "fs-extra@npm:7.0.1" @@ -14588,7 +19703,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^9.0.1, fs-extra@npm:^9.1.0": +"fs-extra@npm:^9.0.0, fs-extra@npm:^9.0.1, fs-extra@npm:^9.1.0": version: 9.1.0 resolution: "fs-extra@npm:9.1.0" dependencies: @@ -14600,6 +19715,26 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:~8.1.0": + version: 8.1.0 + resolution: "fs-extra@npm:8.1.0" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^4.0.0" + universalify: "npm:^0.1.0" + checksum: 10/6fb12449f5349be724a138b4a7b45fe6a317d2972054517f5971959c26fbd17c0e145731a11c7324460262baa33e0a799b183ceace98f7a372c95fbb6f20f5de + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10/03191781e94bc9a54bd376d3146f90fe8e082627c502185dbf7b9b3032f66b0b142c1115f3b2cc5936575fc1b44845ce903dd4c21bec2a8d69f3bd56f9cee9ec + languageName: node + linkType: hard + "fs-minipass@npm:^3.0.0": version: 3.0.3 resolution: "fs-minipass@npm:3.0.3" @@ -14715,6 +19850,13 @@ __metadata: languageName: node linkType: hard +"get-nonce@npm:^1.0.0": + version: 1.0.1 + resolution: "get-nonce@npm:1.0.1" + checksum: 10/ad5104871d114a694ecc506a2d406e2331beccb961fe1e110dc25556b38bcdbf399a823a8a375976cd8889668156a9561e12ebe3fa6a4c6ba169c8466c2ff868 + languageName: node + linkType: hard + "get-own-enumerable-property-symbols@npm:^3.0.0": version: 3.0.2 resolution: "get-own-enumerable-property-symbols@npm:3.0.2" @@ -14729,6 +19871,13 @@ __metadata: languageName: node linkType: hard +"get-params@npm:^0.1.2": + version: 0.1.2 + resolution: "get-params@npm:0.1.2" + checksum: 10/7768710dd5e68805b51981a6fbb0a689728d280357f5dd1a080fd7e732d9b4ccf7fc5e0fc792ff482022d8af37242ff5e72b2b50dbafccb21db4f77eb9c646c4 + languageName: node + linkType: hard + "get-port-please@npm:^3.1.2": version: 3.1.2 resolution: "get-port-please@npm:3.1.2" @@ -14736,6 +19885,22 @@ __metadata: languageName: node linkType: hard +"get-port@npm:^3.2.0": + version: 3.2.0 + resolution: "get-port@npm:3.2.0" + checksum: 10/577b6ae47dcac1cb64f9bad28c9aa9e4cd8e8f2166c4224485dcdd1dede64154517a57a0eb55bfb557ad3d48f9a1b400415ed047f04002e936f96ddb247f645d + languageName: node + linkType: hard + +"get-stream@npm:^4.0.0": + version: 4.1.0 + resolution: "get-stream@npm:4.1.0" + dependencies: + pump: "npm:^3.0.0" + checksum: 10/12673e8aebc79767d187b203e5bfabb8266304037815d3bcc63b6f8c67c6d4ad0d98d4d4528bcdc1cbea68f1dd91bcbd87827aa3cdcfa9c5fa4a4644716d72c2 + languageName: node + linkType: hard + "get-stream@npm:^5.0.0, get-stream@npm:^5.1.0": version: 5.2.0 resolution: "get-stream@npm:5.2.0" @@ -14779,6 +19944,13 @@ __metadata: languageName: node linkType: hard +"getenv@npm:^1.0.0": + version: 1.0.0 + resolution: "getenv@npm:1.0.0" + checksum: 10/0b8f5f6ddc2400712bf584765e0b218a7b9eabe41d3cafaf2b73fc36140248f72f7040a38f852804a321ec9813a6873a7cafd7bf1d3ab43e8b6f9a18aba663ad + languageName: node + linkType: hard + "getos@npm:^3.2.1": version: 3.2.1 resolution: "getos@npm:3.2.1" @@ -14836,7 +20008,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7": +"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7, glob@npm:^10.4.2": version: 10.4.5 resolution: "glob@npm:10.4.5" dependencies: @@ -14852,7 +20024,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": +"glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.1.7": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -14889,6 +20061,13 @@ __metadata: languageName: node linkType: hard +"globals@npm:^15.11.0": + version: 15.13.0 + resolution: "globals@npm:15.13.0" + checksum: 10/ba84d0612d516bcc1dabdd9ce66667956e1a87401fb53be6c379f8f6a04f8e6ce415b584801ae2689a90e788e89bb38adfafc854a8a50ae8e322bb4dd35a2105 + languageName: node + linkType: hard + "globalthis@npm:^1.0.4": version: 1.0.4 resolution: "globalthis@npm:1.0.4" @@ -14906,7 +20085,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.1.0": +"globby@npm:^11.0.1, globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -14920,6 +20099,19 @@ __metadata: languageName: node linkType: hard +"globby@npm:^13.1.4": + version: 13.2.2 + resolution: "globby@npm:13.2.2" + dependencies: + dir-glob: "npm:^3.0.1" + fast-glob: "npm:^3.3.0" + ignore: "npm:^5.2.4" + merge2: "npm:^1.4.1" + slash: "npm:^4.0.0" + checksum: 10/4494a9d2162a7e4d327988b26be66d8eab87d7f59a83219e74b065e2c3ced23698f68fb10482bf9337133819281803fb886d6ae06afbb2affa743623eb0b1949 + languageName: node + linkType: hard + "globrex@npm:^0.1.2": version: 0.1.2 resolution: "globrex@npm:0.1.2" @@ -14927,14 +20119,14 @@ __metadata: languageName: node linkType: hard -"gopd@npm:^1.0.1, gopd@npm:^1.2.0": +"gopd@npm:^1.0.1, gopd@npm:^1.1.0, gopd@npm:^1.2.0": version: 1.2.0 resolution: "gopd@npm:1.2.0" checksum: 10/94e296d69f92dc1c0768fcfeecfb3855582ab59a7c75e969d5f96ce50c3d201fd86d5a2857c22565764d5bb8a816c7b1e58f133ec318cd56274da36c5e3fb1a1 languageName: node linkType: hard -"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: 10/bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2 @@ -15183,6 +20375,54 @@ __metadata: languageName: node linkType: hard +"hermes-estree@npm:0.23.1": + version: 0.23.1 + resolution: "hermes-estree@npm:0.23.1" + checksum: 10/b7ad78f53044d53ec1c77e93036c16e34f6f0985c895540876301e4791d4db08da828870977140f5cf1ae34532bbb9d9d013a0a1a4a5a0da05177225648d5295 + languageName: node + linkType: hard + +"hermes-estree@npm:0.24.0": + version: 0.24.0 + resolution: "hermes-estree@npm:0.24.0" + checksum: 10/f2c55e06d8a3336efbb19a85974e6a083029a11ea61703d6d626cf7d476deb861189c1ea5f7ecac6055ae4330888100ed0de0343837e01348dec185433b824f4 + languageName: node + linkType: hard + +"hermes-estree@npm:0.25.1": + version: 0.25.1 + resolution: "hermes-estree@npm:0.25.1" + checksum: 10/7b1eca98b264a25632064cffa5771360d30cf452e77db1e191f9913ee45cf78c292b2dbca707e92fb71b0870abb97e94b506a5ab80abd96ba237fee169b601fe + languageName: node + linkType: hard + +"hermes-parser@npm:0.23.1": + version: 0.23.1 + resolution: "hermes-parser@npm:0.23.1" + dependencies: + hermes-estree: "npm:0.23.1" + checksum: 10/de88df4f23bd8dc2ffa89c8a317445320af8c7705a2aeeb05c4dd171f037a747982be153a0a237b1c9c7337b79bceaeb5052934cb8a25fe2e2473294a5343334 + languageName: node + linkType: hard + +"hermes-parser@npm:0.24.0": + version: 0.24.0 + resolution: "hermes-parser@npm:0.24.0" + dependencies: + hermes-estree: "npm:0.24.0" + checksum: 10/c473cf2c3a4dd3fa835c52fe67b4554e88da40cecb4cfd12f0860004eea77256c34c8d5881ef3e0f8bd529edb8f71e1296296e8282b6aee2d1399a97e787ad33 + languageName: node + linkType: hard + +"hermes-parser@npm:0.25.1": + version: 0.25.1 + resolution: "hermes-parser@npm:0.25.1" + dependencies: + hermes-estree: "npm:0.25.1" + checksum: 10/805efc05691420f236654349872c70731121791fa54de521c7ee51059eae34f84dd19f22ee846741dcb60372f8fb5335719b96b4ecb010d2aed7d872f2eff9cc + languageName: node + linkType: hard + "hey-listen@npm:^1.0.8": version: 1.0.8 resolution: "hey-listen@npm:1.0.8" @@ -15201,7 +20441,7 @@ __metadata: languageName: node linkType: hard -"hoist-non-react-statics@npm:^3.3.1, hoist-non-react-statics@npm:^3.3.2": +"hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.1, hoist-non-react-statics@npm:^3.3.2": version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" dependencies: @@ -15226,6 +20466,15 @@ __metadata: languageName: node linkType: hard +"hosted-git-info@npm:^7.0.0": + version: 7.0.2 + resolution: "hosted-git-info@npm:7.0.2" + dependencies: + lru-cache: "npm:^10.0.1" + checksum: 10/8f085df8a4a637d995f357f48b1e3f6fc1f9f92e82b33fb406415b5741834ed431a510a09141071001e8deea2eee43ce72786463e2aa5e5a70db8648c0eedeab + languageName: node + linkType: hard + "html-encoding-sniffer@npm:^3.0.0": version: 3.0.0 resolution: "html-encoding-sniffer@npm:3.0.0" @@ -15321,6 +20570,19 @@ __metadata: languageName: node linkType: hard +"http-errors@npm:2.0.0": + version: 2.0.0 + resolution: "http-errors@npm:2.0.0" + dependencies: + depd: "npm:2.0.0" + inherits: "npm:2.0.4" + setprototypeof: "npm:1.2.0" + statuses: "npm:2.0.1" + toidentifier: "npm:1.0.1" + checksum: 10/0e7f76ee8ff8a33e58a3281a469815b893c41357378f408be8f6d4aa7d1efafb0da064625518e7078381b6a92325949b119dc38fcb30bdbc4e3a35f78c44c439 + languageName: node + linkType: hard + "http-parser-js@npm:>=0.5.1": version: 0.5.8 resolution: "http-parser-js@npm:0.5.8" @@ -15367,6 +20629,13 @@ __metadata: languageName: node linkType: hard +"http2-client@npm:^1.2.5": + version: 1.3.5 + resolution: "http2-client@npm:1.3.5" + checksum: 10/34ef17ea2814acbf9d9b5184f9e2c0767846d62abc357bd63c67b3d1f65e7b6ba772d4950ec4f5188686d3d8bfa15e3fb73721150db5bdb47bcefdba71734729 + languageName: node + linkType: hard + "https-browserify@npm:^1.0.0": version: 1.0.0 resolution: "https-browserify@npm:1.0.0" @@ -15424,6 +20693,13 @@ __metadata: languageName: node linkType: hard +"hyphenate-style-name@npm:^1.0.3": + version: 1.1.0 + resolution: "hyphenate-style-name@npm:1.1.0" + checksum: 10/b9ed74e29181d96bd58a2d0e62fc4a19879db591dba268275829ff0ae595fcdf11faafaeaa63330a45c3004664d7db1f0fc7cdb372af8ee4615ed8260302c207 + languageName: node + linkType: hard + "iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" @@ -15463,14 +20739,14 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0, ignore@npm:^5.3.1": +"ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 10/cceb6a457000f8f6a50e1196429750d782afce5680dd878aa4221bd79972d68b3a55b4b1458fc682be978f4d3c6a249046aa0880637367216444ab7b014cfc98 languageName: node linkType: hard -"image-size@npm:^1.0.0": +"image-size@npm:^1.0.0, image-size@npm:^1.0.2": version: 1.1.1 resolution: "image-size@npm:1.1.1" dependencies: @@ -15504,6 +20780,13 @@ __metadata: languageName: node linkType: hard +"immutable@npm:^4.3.7": + version: 4.3.7 + resolution: "immutable@npm:4.3.7" + checksum: 10/37d963c5050f03ae5f3714ba7a43d469aa482051087f4c65d673d1501c309ea231d87480c792e19fa85e2eaf965f76af5d0aa92726505f3cfe4af91619dfb80b + languageName: node + linkType: hard + "immutable@npm:^5.0.2": version: 5.0.3 resolution: "immutable@npm:5.0.3" @@ -15511,6 +20794,16 @@ __metadata: languageName: node linkType: hard +"import-fresh@npm:^2.0.0": + version: 2.0.0 + resolution: "import-fresh@npm:2.0.0" + dependencies: + caller-path: "npm:^2.0.0" + resolve-from: "npm:^3.0.0" + checksum: 10/610255f9753cc6775df00be08e9f43691aa39f7703e3636c45afe22346b8b545e600ccfe100c554607546fc8e861fa149a0d1da078c8adedeea30fff326eef79 + languageName: node + linkType: hard + "import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" @@ -15557,7 +20850,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3, inherits@npm:~2.0.4": +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3, inherits@npm:~2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 10/cd45e923bee15186c07fa4c89db0aace24824c482fb887b528304694b2aa6ff8a898da8657046a5dcf3e46cd6db6c61629551f9215f208d7c3f157cf9b290521 @@ -15571,6 +20864,13 @@ __metadata: languageName: node linkType: hard +"ini@npm:~1.3.0": + version: 1.3.8 + resolution: "ini@npm:1.3.8" + checksum: 10/314ae176e8d4deb3def56106da8002b462221c174ddb7ce0c49ee72c8cd1f9044f7b10cc555a7d8850982c3b9ca96fc212122749f5234bc2b6fb05fb942ed566 + languageName: node + linkType: hard + "inline-style-parser@npm:0.1.1": version: 0.1.1 resolution: "inline-style-parser@npm:0.1.1" @@ -15585,6 +20885,16 @@ __metadata: languageName: node linkType: hard +"inline-style-prefixer@npm:^6.0.1": + version: 6.0.4 + resolution: "inline-style-prefixer@npm:6.0.4" + dependencies: + css-in-js-utils: "npm:^3.1.0" + fast-loops: "npm:^1.1.3" + checksum: 10/5ee7a082b4d23ac220fabe2353a8452bd50c587ae0d9e20e6c0f4ebc456377c7a3a4ce9d13486e0cfc9032db00d9b0ae33d3944a183340b1b3d34cef2d5df80b + languageName: node + linkType: hard + "int64-buffer@npm:^1.0.1": version: 1.1.0 resolution: "int64-buffer@npm:1.1.0" @@ -15603,6 +20913,16 @@ __metadata: languageName: node linkType: hard +"internal-ip@npm:^4.3.0": + version: 4.3.0 + resolution: "internal-ip@npm:4.3.0" + dependencies: + default-gateway: "npm:^4.2.0" + ipaddr.js: "npm:^1.9.0" + checksum: 10/c970433c84d9a6b46e2c9f5ab7785d3105b856d0a566891bf919241b5a884c5c1c9bf8e915aebb822a86c14b1b6867e58c1eaf5cd49eb023368083069d1a4a9a + languageName: node + linkType: hard + "internal-slot@npm:^1.0.7, internal-slot@npm:^1.1.0": version: 1.1.0 resolution: "internal-slot@npm:1.1.0" @@ -15626,6 +20946,15 @@ __metadata: languageName: node linkType: hard +"invariant@npm:^2.2.4": + version: 2.2.4 + resolution: "invariant@npm:2.2.4" + dependencies: + loose-envify: "npm:^1.0.0" + checksum: 10/cc3182d793aad82a8d1f0af697b462939cb46066ec48bbf1707c150ad5fad6406137e91a262022c269702e01621f35ef60269f6c0d7fd178487959809acdfb14 + languageName: node + linkType: hard + "inversify-logger-middleware@npm:^3.1.0": version: 3.1.0 resolution: "inversify-logger-middleware@npm:3.1.0" @@ -15657,6 +20986,20 @@ __metadata: languageName: node linkType: hard +"ip-regex@npm:^2.1.0": + version: 2.1.0 + resolution: "ip-regex@npm:2.1.0" + checksum: 10/331d95052aa53ce245745ea0fc3a6a1e2e3c8d6da65fa8ea52bf73768c1b22a9ac50629d1d2b08c04e7b3ac4c21b536693c149ce2c2615ee4796030e5b3e3cba + languageName: node + linkType: hard + +"ipaddr.js@npm:^1.9.0": + version: 1.9.1 + resolution: "ipaddr.js@npm:1.9.1" + checksum: 10/864d0cced0c0832700e9621913a6429ccdc67f37c1bd78fb8c6789fff35c9d167cb329134acad2290497a53336813ab4798d2794fd675d5eb33b5fdf0982b9ca + languageName: node + linkType: hard + "ipfs-only-hash@npm:^4.0.0": version: 4.0.0 resolution: "ipfs-only-hash@npm:4.0.0" @@ -15740,13 +21083,13 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.0.4": - version: 1.2.0 - resolution: "is-arguments@npm:1.2.0" +"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": + version: 1.1.1 + resolution: "is-arguments@npm:1.1.1" dependencies: - call-bound: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.2" - checksum: 10/471a8ef631b8ee8829c43a8ab05c081700c0e25180c73d19f3bf819c1a8448c426a9e8e601f278973eca68966384b16ceb78b8c63af795b099cd199ea5afc457 + call-bind: "npm:^1.0.2" + has-tostringtag: "npm:^1.0.0" + checksum: 10/a170c7e26082e10de9be6e96d32ae3db4d5906194051b792e85fae3393b53cf2cb5b3557863e5c8ccbab55e2fd8f2f75aa643d437613f72052cf0356615c34be languageName: node linkType: hard @@ -15812,6 +21155,13 @@ __metadata: languageName: node linkType: hard +"is-buffer@npm:~1.1.6": + version: 1.1.6 + resolution: "is-buffer@npm:1.1.6" + checksum: 10/f63da109e74bbe8947036ed529d43e4ae0c5fcd0909921dce4917ad3ea212c6a87c29f525ba1d17c0858c18331cf1046d4fc69ef59ed26896b25c8288a627133 + languageName: node + linkType: hard + "is-bun-module@npm:^1.0.2": version: 1.3.0 resolution: "is-bun-module@npm:1.3.0" @@ -15828,7 +21178,16 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1, is-core-module@npm:^2.16.0, is-core-module@npm:^2.5.0": +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.5.0": + version: 2.15.1 + resolution: "is-core-module@npm:2.15.1" + dependencies: + hasown: "npm:^2.0.2" + checksum: 10/77316d5891d5743854bcef2cd2f24c5458fb69fbc9705c12ca17d54a2017a67d0693bbf1ba8c77af376c0eef6bf6d1b27a4ab08e4db4e69914c3789bdf2ceec5 + languageName: node + linkType: hard + +"is-core-module@npm:^2.15.1, is-core-module@npm:^2.16.0": version: 2.16.0 resolution: "is-core-module@npm:2.16.0" dependencies: @@ -15865,6 +21224,13 @@ __metadata: languageName: node linkType: hard +"is-directory@npm:^0.3.1": + version: 0.3.1 + resolution: "is-directory@npm:0.3.1" + checksum: 10/dce9a9d3981e38f2ded2a80848734824c50ee8680cd09aa477bef617949715cfc987197a2ca0176c58a9fb192a1a0d69b535c397140d241996a609d5906ae524 + languageName: node + linkType: hard + "is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": version: 2.2.1 resolution: "is-docker@npm:2.2.1" @@ -16044,6 +21410,13 @@ __metadata: languageName: node linkType: hard +"is-path-cwd@npm:^2.2.0": + version: 2.2.0 + resolution: "is-path-cwd@npm:2.2.0" + checksum: 10/46a840921bb8cc0dc7b5b423a14220e7db338072a4495743a8230533ce78812dc152548c86f4b828411fe98c5451959f07cf841c6a19f611e46600bd699e8048 + languageName: node + linkType: hard + "is-path-inside@npm:^3.0.2": version: 3.0.3 resolution: "is-path-inside@npm:3.0.3" @@ -16072,6 +21445,15 @@ __metadata: languageName: node linkType: hard +"is-plain-object@npm:^2.0.4": + version: 2.0.4 + resolution: "is-plain-object@npm:2.0.4" + dependencies: + isobject: "npm:^3.0.1" + checksum: 10/2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca + languageName: node + linkType: hard + "is-plain-object@npm:^5.0.0": version: 5.0.0 resolution: "is-plain-object@npm:5.0.0" @@ -16086,6 +21468,13 @@ __metadata: languageName: node linkType: hard +"is-primitive@npm:^3.0.1": + version: 3.0.1 + resolution: "is-primitive@npm:3.0.1" + checksum: 10/c4da6a6e6d487f31d85b9259b67695fffcc75dca6c9612b0a002e3050c734227b9911be09b877539ec6309710229c19f4edd0f9e26ed2a67924ee0916baf0bed + languageName: node + linkType: hard + "is-promise@npm:^2.2.2": version: 2.2.2 resolution: "is-promise@npm:2.2.2" @@ -16093,6 +21482,18 @@ __metadata: languageName: node linkType: hard +"is-regex@npm:^1.1.4": + version: 1.2.0 + resolution: "is-regex@npm:1.2.0" + dependencies: + call-bind: "npm:^1.0.7" + gopd: "npm:^1.1.0" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.2" + checksum: 10/68df70b5696f865f495551d506c0514e3a221db887d5375c6fb4412389a8ceaf4071e557126fead1bcee21ab38be4548f04e7f6510d793b5150df1e8e2556191 + languageName: node + linkType: hard + "is-regex@npm:^1.2.1": version: 1.2.1 resolution: "is-regex@npm:1.2.1" @@ -16128,6 +21529,13 @@ __metadata: languageName: node linkType: hard +"is-stream@npm:^1.1.0": + version: 1.1.0 + resolution: "is-stream@npm:1.1.0" + checksum: 10/351aa77c543323c4e111204482808cfad68d2e940515949e31ccd0b010fc13d5fba4b9c230e4887fd24284713040f43e542332fbf172f6b9944b7d62e389c0ec + languageName: node + linkType: hard + "is-stream@npm:^2.0.0": version: 2.0.1 resolution: "is-stream@npm:2.0.1" @@ -16163,7 +21571,16 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.3": +"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.3": + version: 1.1.13 + resolution: "is-typed-array@npm:1.1.13" + dependencies: + which-typed-array: "npm:^1.1.14" + checksum: 10/f850ba08286358b9a11aee6d93d371a45e3c59b5953549ee1c1a9a55ba5c1dd1bd9952488ae194ad8f32a9cf5e79c8fa5f0cc4d78c00720aa0bbcf238b38062d + languageName: node + linkType: hard + +"is-typed-array@npm:^1.1.14": version: 1.1.14 resolution: "is-typed-array@npm:1.1.14" dependencies: @@ -16226,7 +21643,7 @@ __metadata: languageName: node linkType: hard -"is-wsl@npm:^2.2.0": +"is-wsl@npm:^2.1.1, is-wsl@npm:^2.2.0": version: 2.2.0 resolution: "is-wsl@npm:2.2.0" dependencies: @@ -16288,6 +21705,13 @@ __metadata: languageName: node linkType: hard +"isobject@npm:^3.0.1": + version: 3.0.1 + resolution: "isobject@npm:3.0.1" + checksum: 10/db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 + languageName: node + linkType: hard + "isomorphic-ws@npm:^5.0.0": version: 5.0.0 resolution: "isomorphic-ws@npm:5.0.0" @@ -16417,6 +21841,13 @@ __metadata: languageName: node linkType: hard +"iterate-object@npm:^1.3.4": + version: 1.3.4 + resolution: "iterate-object@npm:1.3.4" + checksum: 10/4378555000600ec749f82c85323232a12d533491ea1168de6249f2105cefd0c6a30df9fc2c5bfdc47f6386d0c920e99b2c49a58e2e0ec8f19342bee69ba05905 + languageName: node + linkType: hard + "iterator.prototype@npm:^1.1.3": version: 1.1.4 resolution: "iterator.prototype@npm:1.1.4" @@ -16595,7 +22026,7 @@ __metadata: languageName: node linkType: hard -"jest-environment-jsdom@npm:^29.6.2": +"jest-environment-jsdom@npm:^29.2.1, jest-environment-jsdom@npm:^29.6.2": version: 29.7.0 resolution: "jest-environment-jsdom@npm:29.7.0" dependencies: @@ -16616,7 +22047,7 @@ __metadata: languageName: node linkType: hard -"jest-environment-node@npm:^29.7.0": +"jest-environment-node@npm:^29.6.3, jest-environment-node@npm:^29.7.0": version: 29.7.0 resolution: "jest-environment-node@npm:29.7.0" dependencies: @@ -16630,6 +22061,36 @@ __metadata: languageName: node linkType: hard +"jest-expo@npm:~52.0.2": + version: 52.0.2 + resolution: "jest-expo@npm:52.0.2" + dependencies: + "@expo/config": "npm:~10.0.4" + "@expo/json-file": "npm:^9.0.0" + "@jest/create-cache-key-function": "npm:^29.2.1" + "@jest/globals": "npm:^29.2.1" + babel-jest: "npm:^29.2.1" + fbemitter: "npm:^3.0.0" + find-up: "npm:^5.0.0" + jest-environment-jsdom: "npm:^29.2.1" + jest-snapshot: "npm:^29.2.1" + jest-watch-select-projects: "npm:^2.0.0" + jest-watch-typeahead: "npm:2.2.1" + json5: "npm:^2.2.3" + lodash: "npm:^4.17.19" + react-server-dom-webpack: "npm:19.0.0-rc-6230622a1a-20240610" + react-test-renderer: "npm:18.3.1" + server-only: "npm:^0.0.1" + stacktrace-js: "npm:^2.0.2" + peerDependencies: + expo: "*" + react-native: "*" + bin: + jest: bin/jest.js + checksum: 10/772421d867497cd20e73ffc6b56e432156da378213d411f48ce3a864ceef3f7ad783cc954f27c74bd071bec109399d8f965d68ecb0d512f868338a7dc254133e + languageName: node + linkType: hard + "jest-get-type@npm:^29.6.3": version: 29.6.3 resolution: "jest-get-type@npm:29.6.3" @@ -16722,7 +22183,7 @@ __metadata: languageName: node linkType: hard -"jest-regex-util@npm:^29.6.3": +"jest-regex-util@npm:^29.0.0, jest-regex-util@npm:^29.6.3": version: 29.6.3 resolution: "jest-regex-util@npm:29.6.3" checksum: 10/0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a @@ -16815,7 +22276,7 @@ __metadata: languageName: node linkType: hard -"jest-snapshot@npm:^29.7.0": +"jest-snapshot@npm:^29.2.1, jest-snapshot@npm:^29.7.0": version: 29.7.0 resolution: "jest-snapshot@npm:29.7.0" dependencies: @@ -16843,7 +22304,14 @@ __metadata: languageName: node linkType: hard -"jest-util@npm:^29.7.0": +"jest-transform-stub@npm:2.0.0": + version: 2.0.0 + resolution: "jest-transform-stub@npm:2.0.0" + checksum: 10/c46134257e5fb047f5952e4a4a1339925dd009da15aa8d3310ba1d3e4d22266ed6c675cd18e58c9d5ca2246718d6cc8ff00ea6a4b6f3b2a6b285b6426f6ae8fe + languageName: node + linkType: hard + +"jest-util@npm:^29.0.0, jest-util@npm:^29.7.0": version: 29.7.0 resolution: "jest-util@npm:29.7.0" dependencies: @@ -16857,7 +22325,7 @@ __metadata: languageName: node linkType: hard -"jest-validate@npm:^29.7.0": +"jest-validate@npm:^29.6.3, jest-validate@npm:^29.7.0": version: 29.7.0 resolution: "jest-validate@npm:29.7.0" dependencies: @@ -16871,7 +22339,35 @@ __metadata: languageName: node linkType: hard -"jest-watcher@npm:^29.7.0": +"jest-watch-select-projects@npm:^2.0.0": + version: 2.0.0 + resolution: "jest-watch-select-projects@npm:2.0.0" + dependencies: + ansi-escapes: "npm:^4.3.0" + chalk: "npm:^3.0.0" + prompts: "npm:^2.2.1" + checksum: 10/67b7a08d8e7b5ecfba67d86f02be29e4917c4416c9f169246f10cc40792b1c5fa38fcfeb25195643db080ace1f4fdf2f827bd244e7cdff7512d1ddfbc94270f0 + languageName: node + linkType: hard + +"jest-watch-typeahead@npm:2.2.1": + version: 2.2.1 + resolution: "jest-watch-typeahead@npm:2.2.1" + dependencies: + ansi-escapes: "npm:^6.0.0" + chalk: "npm:^4.0.0" + jest-regex-util: "npm:^29.0.0" + jest-watcher: "npm:^29.0.0" + slash: "npm:^5.0.0" + string-length: "npm:^5.0.1" + strip-ansi: "npm:^7.0.1" + peerDependencies: + jest: ^27.0.0 || ^28.0.0 || ^29.0.0 + checksum: 10/5ba8068209da273187065b8900495ca9d0fce13b090d2e0193e1b862f7e920ca808f8a0c4c2ea504e1646d38519083276fbb304dba728e16b9126c0734f8f8ee + languageName: node + linkType: hard + +"jest-watcher@npm:^29.0.0, jest-watcher@npm:^29.7.0": version: 29.7.0 resolution: "jest-watcher@npm:29.7.0" dependencies: @@ -16898,7 +22394,7 @@ __metadata: languageName: node linkType: hard -"jest-worker@npm:^29.7.0": +"jest-worker@npm:^29.6.3, jest-worker@npm:^29.7.0": version: 29.7.0 resolution: "jest-worker@npm:29.7.0" dependencies: @@ -16910,7 +22406,7 @@ __metadata: languageName: node linkType: hard -"jest@npm:^29.6.2": +"jest@npm:^29.6.2, jest@npm:^29.7.0": version: 29.7.0 resolution: "jest@npm:29.7.0" dependencies: @@ -16929,6 +22425,13 @@ __metadata: languageName: node linkType: hard +"jimp-compact@npm:0.16.1": + version: 0.16.1 + resolution: "jimp-compact@npm:0.16.1" + checksum: 10/c9645d159e187383483673a68a444486177b2ee18d6a404ff33fac79bd069610dd043740c4414ba92b3785a1a4daf1c97aee055be6cdcdf5a8623a8327da3c98 + languageName: node + linkType: hard + "jiti@npm:^1.20.0": version: 1.21.7 resolution: "jiti@npm:1.21.7" @@ -16960,6 +22463,13 @@ __metadata: languageName: node linkType: hard +"join-component@npm:^1.1.0": + version: 1.1.0 + resolution: "join-component@npm:1.1.0" + checksum: 10/b904c2f98549e4195022caca3a7dc837f9706c670ff333f3d617f2aed23bce2841322a999734683b6ab8e202568ad810c11ff79b58a64df66888153f04750239 + languageName: node + linkType: hard + "js-cookie@npm:^3.0.1": version: 3.0.5 resolution: "js-cookie@npm:3.0.5" @@ -17004,6 +22514,13 @@ __metadata: languageName: node linkType: hard +"jsan@npm:^3.1.14": + version: 3.1.14 + resolution: "jsan@npm:3.1.14" + checksum: 10/960cd5059bfb50a9c86d391d7bb5173eaf748e8a1b0794892d929f894045dbbdee61c03f1dad4d5b8fc21f924a8e217ed05598adf9339a56b46ab0433a2206f1 + languageName: node + linkType: hard + "jsbn@npm:1.1.0": version: 1.1.0 resolution: "jsbn@npm:1.1.0" @@ -17018,6 +22535,51 @@ __metadata: languageName: node linkType: hard +"jsc-android@npm:^250231.0.0": + version: 250231.0.0 + resolution: "jsc-android@npm:250231.0.0" + checksum: 10/aa5cf773f5d6c4c6ecec42bfd9958b5bd5ec33db7ec87f66152fae96f142220b91b84e54b409ca643a9493dd1b0f273819d46aad8c0d7519c444280815ffb68e + languageName: node + linkType: hard + +"jsc-safe-url@npm:^0.2.2, jsc-safe-url@npm:^0.2.4": + version: 0.2.4 + resolution: "jsc-safe-url@npm:0.2.4" + checksum: 10/2729b32e694ff7badc38ddaaf11bafa2867b3920fffa865da38c8cc84ca59a319eb681f9ba5ffba5aea942dff7850754f6b8aee01dc0f7ae8ecb1890c61d4442 + languageName: node + linkType: hard + +"jscodeshift@npm:^0.14.0": + version: 0.14.0 + resolution: "jscodeshift@npm:0.14.0" + dependencies: + "@babel/core": "npm:^7.13.16" + "@babel/parser": "npm:^7.13.16" + "@babel/plugin-proposal-class-properties": "npm:^7.13.0" + "@babel/plugin-proposal-nullish-coalescing-operator": "npm:^7.13.8" + "@babel/plugin-proposal-optional-chaining": "npm:^7.13.12" + "@babel/plugin-transform-modules-commonjs": "npm:^7.13.8" + "@babel/preset-flow": "npm:^7.13.13" + "@babel/preset-typescript": "npm:^7.13.0" + "@babel/register": "npm:^7.13.16" + babel-core: "npm:^7.0.0-bridge.0" + chalk: "npm:^4.1.2" + flow-parser: "npm:0.*" + graceful-fs: "npm:^4.2.4" + micromatch: "npm:^4.0.4" + neo-async: "npm:^2.5.0" + node-dir: "npm:^0.1.17" + recast: "npm:^0.21.0" + temp: "npm:^0.8.4" + write-file-atomic: "npm:^2.3.0" + peerDependencies: + "@babel/preset-env": ^7.1.6 + bin: + jscodeshift: bin/jscodeshift.js + checksum: 10/fc355dde2287c026a682e8b38df5d8d1ff5c9ca044dfd558f2b6d17bb28f9257063bd0e47690814612e572804caa5383733c9d8ca8bc18e70bcee43e0458df59 + languageName: node + linkType: hard + "jsdoc-type-pratt-parser@npm:^4.0.0": version: 4.1.0 resolution: "jsdoc-type-pratt-parser@npm:4.1.0" @@ -17064,16 +22626,7 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^3.0.2": - version: 3.1.0 - resolution: "jsesc@npm:3.1.0" - bin: - jsesc: bin/jsesc - checksum: 10/20bd37a142eca5d1794f354db8f1c9aeb54d85e1f5c247b371de05d23a9751ecd7bd3a9c4fc5298ea6fa09a100dafb4190fa5c98c6610b75952c3487f3ce7967 - languageName: node - linkType: hard - -"jsesc@npm:~3.0.2": +"jsesc@npm:^3.0.2, jsesc@npm:~3.0.2": version: 3.0.2 resolution: "jsesc@npm:3.0.2" bin: @@ -17089,6 +22642,13 @@ __metadata: languageName: node linkType: hard +"json-parse-better-errors@npm:^1.0.1": + version: 1.0.2 + resolution: "json-parse-better-errors@npm:1.0.2" + checksum: 10/5553232045359b767b0f2039a6777fede1a8d7dca1a0ffb1f9ef73a7519489ae7f566b2e040f2b4c38edb8e35e37ae07af7f0a52420902f869ee0dbf5dc6c784 + languageName: node + linkType: hard + "json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": version: 2.3.1 resolution: "json-parse-even-better-errors@npm:2.3.1" @@ -17347,6 +22907,126 @@ __metadata: languageName: node linkType: hard +"lighthouse-logger@npm:^1.0.0": + version: 1.4.2 + resolution: "lighthouse-logger@npm:1.4.2" + dependencies: + debug: "npm:^2.6.9" + marky: "npm:^1.2.2" + checksum: 10/ffcedbf6878cc8b3289649ad60f42e3def7212b79eac6a21be2408724a2a7f65f9cfc3fbef6c0618ae4f476834949e1a56235e02ffa6b4e5019d2643d9d5977c + languageName: node + linkType: hard + +"lightningcss-darwin-arm64@npm:1.27.0": + version: 1.27.0 + resolution: "lightningcss-darwin-arm64@npm:1.27.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"lightningcss-darwin-x64@npm:1.27.0": + version: 1.27.0 + resolution: "lightningcss-darwin-x64@npm:1.27.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"lightningcss-freebsd-x64@npm:1.27.0": + version: 1.27.0 + resolution: "lightningcss-freebsd-x64@npm:1.27.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"lightningcss-linux-arm-gnueabihf@npm:1.27.0": + version: 1.27.0 + resolution: "lightningcss-linux-arm-gnueabihf@npm:1.27.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"lightningcss-linux-arm64-gnu@npm:1.27.0": + version: 1.27.0 + resolution: "lightningcss-linux-arm64-gnu@npm:1.27.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"lightningcss-linux-arm64-musl@npm:1.27.0": + version: 1.27.0 + resolution: "lightningcss-linux-arm64-musl@npm:1.27.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"lightningcss-linux-x64-gnu@npm:1.27.0": + version: 1.27.0 + resolution: "lightningcss-linux-x64-gnu@npm:1.27.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"lightningcss-linux-x64-musl@npm:1.27.0": + version: 1.27.0 + resolution: "lightningcss-linux-x64-musl@npm:1.27.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"lightningcss-win32-arm64-msvc@npm:1.27.0": + version: 1.27.0 + resolution: "lightningcss-win32-arm64-msvc@npm:1.27.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"lightningcss-win32-x64-msvc@npm:1.27.0": + version: 1.27.0 + resolution: "lightningcss-win32-x64-msvc@npm:1.27.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"lightningcss@npm:~1.27.0": + version: 1.27.0 + resolution: "lightningcss@npm:1.27.0" + dependencies: + detect-libc: "npm:^1.0.3" + lightningcss-darwin-arm64: "npm:1.27.0" + lightningcss-darwin-x64: "npm:1.27.0" + lightningcss-freebsd-x64: "npm:1.27.0" + lightningcss-linux-arm-gnueabihf: "npm:1.27.0" + lightningcss-linux-arm64-gnu: "npm:1.27.0" + lightningcss-linux-arm64-musl: "npm:1.27.0" + lightningcss-linux-x64-gnu: "npm:1.27.0" + lightningcss-linux-x64-musl: "npm:1.27.0" + lightningcss-win32-arm64-msvc: "npm:1.27.0" + lightningcss-win32-x64-msvc: "npm:1.27.0" + dependenciesMeta: + lightningcss-darwin-arm64: + optional: true + lightningcss-darwin-x64: + optional: true + lightningcss-freebsd-x64: + optional: true + lightningcss-linux-arm-gnueabihf: + optional: true + lightningcss-linux-arm64-gnu: + optional: true + lightningcss-linux-arm64-musl: + optional: true + lightningcss-linux-x64-gnu: + optional: true + lightningcss-linux-x64-musl: + optional: true + lightningcss-win32-arm64-msvc: + optional: true + lightningcss-win32-x64-msvc: + optional: true + checksum: 10/275a0103c7dc1dfcf8e456a0523d1719a1caff916c45229ec62cdb28a814dce12b7065b88865fb74fc03a2a658ac3361caff5c348f1646313513c125d4f27954 + languageName: node + linkType: hard + "lilconfig@npm:^2.0.5": version: 2.1.0 resolution: "lilconfig@npm:2.1.0" @@ -17517,6 +23197,16 @@ __metadata: languageName: node linkType: hard +"locate-path@npm:^3.0.0": + version: 3.0.0 + resolution: "locate-path@npm:3.0.0" + dependencies: + p-locate: "npm:^3.0.0" + path-exists: "npm:^3.0.0" + checksum: 10/53db3996672f21f8b0bf2a2c645ae2c13ffdae1eeecfcd399a583bce8516c0b88dcb4222ca6efbbbeb6949df7e46860895be2c02e8d3219abd373ace3bfb4e11 + languageName: node + linkType: hard + "locate-path@npm:^5.0.0": version: 5.0.0 resolution: "locate-path@npm:5.0.0" @@ -17572,6 +23262,13 @@ __metadata: languageName: node linkType: hard +"lodash.memoize@npm:^4.1.2": + version: 4.1.2 + resolution: "lodash.memoize@npm:4.1.2" + checksum: 10/192b2168f310c86f303580b53acf81ab029761b9bd9caa9506a019ffea5f3363ea98d7e39e7e11e6b9917066c9d36a09a11f6fe16f812326390d8f3a54a1a6da + languageName: node + linkType: hard + "lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" @@ -17600,6 +23297,20 @@ __metadata: languageName: node linkType: hard +"lodash.throttle@npm:^4.1.1": + version: 4.1.1 + resolution: "lodash.throttle@npm:4.1.1" + checksum: 10/9be9fb2ffd686c20543167883305542f4564062a5f712a40e8c6f2f0d9fd8254a6e9d801c2470b1b24e0cdf2ae83c1277b55aa0fb4799a2db6daf545f53820e1 + languageName: node + linkType: hard + +"lodash.truncate@npm:^4.4.2": + version: 4.4.2 + resolution: "lodash.truncate@npm:4.4.2" + checksum: 10/7a495616121449e5d2288c606b1025d42ab9979e8c93ba885e5c5802ffd4f1ebad4428c793ccc12f73e73237e85a9f5b67dd6415757546fbd5a4653ba83e25ac + languageName: node + linkType: hard + "lodash.uniqby@npm:^4.7.0": version: 4.7.0 resolution: "lodash.uniqby@npm:4.7.0" @@ -17607,13 +23318,22 @@ __metadata: languageName: node linkType: hard -"lodash@npm:4.17.21, lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.7.0": +"lodash@npm:4.17.21, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.7.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: 10/c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532 languageName: node linkType: hard +"log-symbols@npm:^2.2.0": + version: 2.2.0 + resolution: "log-symbols@npm:2.2.0" + dependencies: + chalk: "npm:^2.0.1" + checksum: 10/4c95e3b65f0352dbe91dc4989c10baf7a44e2ef5b0db7e6721e1476268e2b6f7090c3aa880d4f833a05c5c3ff18f4ec5215a09bd0099986d64a8186cfeb48ac8 + languageName: node + linkType: hard + "log-symbols@npm:^4.0.0": version: 4.1.0 resolution: "log-symbols@npm:4.1.0" @@ -17670,7 +23390,7 @@ __metadata: languageName: node linkType: hard -"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": +"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" dependencies: @@ -17758,7 +23478,7 @@ __metadata: languageName: node linkType: hard -"make-dir@npm:^2.1.0": +"make-dir@npm:^2.0.0, make-dir@npm:^2.1.0": version: 2.1.0 resolution: "make-dir@npm:2.1.0" dependencies: @@ -17768,7 +23488,7 @@ __metadata: languageName: node linkType: hard -"make-dir@npm:^3.0.2": +"make-dir@npm:^3.0.2, make-dir@npm:^3.1.0": version: 3.1.0 resolution: "make-dir@npm:3.1.0" dependencies: @@ -17786,6 +23506,13 @@ __metadata: languageName: node linkType: hard +"make-error@npm:^1.1.1, make-error@npm:^1.3.6": + version: 1.3.6 + resolution: "make-error@npm:1.3.6" + checksum: 10/b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 + languageName: node + linkType: hard + "make-fetch-happen@npm:^14.0.3": version: 14.0.3 resolution: "make-fetch-happen@npm:14.0.3" @@ -17849,6 +23576,13 @@ __metadata: languageName: node linkType: hard +"marky@npm:^1.2.2": + version: 1.2.5 + resolution: "marky@npm:1.2.5" + checksum: 10/ae775cea935859a26560c807be226737e97a533913232f7d4648ab6237fc43e3175fa34664901b5aaed2027f355baa254ded1f6d828394e4abbd222a53b66bcf + languageName: node + linkType: hard + "math-intrinsics@npm:^1.0.0": version: 1.0.0 resolution: "math-intrinsics@npm:1.0.0" @@ -17856,6 +23590,17 @@ __metadata: languageName: node linkType: hard +"md5-file@npm:^3.2.3": + version: 3.2.3 + resolution: "md5-file@npm:3.2.3" + dependencies: + buffer-alloc: "npm:^1.1.0" + bin: + md5-file: cli.js + checksum: 10/a3738274ee0c5ce21e7c14a4b60e5de6b298740f8a37eeb502bb97a056e3f19ea0871418b4dd45ca9c70d2f1d6c79a19e9a320fba1c129b196cdf671e544c450 + languageName: node + linkType: hard + "md5.js@npm:^1.3.4": version: 1.3.5 resolution: "md5.js@npm:1.3.5" @@ -17867,6 +23612,17 @@ __metadata: languageName: node linkType: hard +"md5@npm:^2.2.1": + version: 2.3.0 + resolution: "md5@npm:2.3.0" + dependencies: + charenc: "npm:0.0.2" + crypt: "npm:0.0.2" + is-buffer: "npm:~1.1.6" + checksum: 10/88dce9fb8df1a084c2385726dcc18c7f54e0b64c261b5def7cdfe4928c4ee1cd68695c34108b4fab7ecceb05838c938aa411c6143df9fdc0026c4ddb4e4e72fa + languageName: node + linkType: hard + "mdast-util-find-and-replace@npm:^3.0.0": version: 3.0.1 resolution: "mdast-util-find-and-replace@npm:3.0.1" @@ -18104,6 +23860,13 @@ __metadata: languageName: node linkType: hard +"mdn-data@npm:2.0.14": + version: 2.0.14 + resolution: "mdn-data@npm:2.0.14" + checksum: 10/64c629fcf14807e30d6dc79f97cbcafa16db066f53a294299f3932b3beb0eb0d1386d3a7fe408fc67348c449a4e0999360c894ba4c81eb209d7be4e36503de0e + languageName: node + linkType: hard + "mdn-data@npm:2.0.28": version: 2.0.28 resolution: "mdn-data@npm:2.0.28" @@ -18127,6 +23890,20 @@ __metadata: languageName: node linkType: hard +"memoize-one@npm:^5.0.0": + version: 5.2.1 + resolution: "memoize-one@npm:5.2.1" + checksum: 10/b7141dc148b5c6fdd51e77ecf0421fd2581681eb8756e0b3dfbd4fe765b5e2b5a6bc90214bb6f19a96b6aed44de17eda3407142a7be9e24ccd0774bbd9874d1b + languageName: node + linkType: hard + +"memoize-one@npm:^6.0.0": + version: 6.0.0 + resolution: "memoize-one@npm:6.0.0" + checksum: 10/28feaf7e9a870efef1187df110b876ce42deaf86c955f4111d72d23b96e44eed573469316e6ad0d2cc7fa3b1526978215617b126158015f957242c7493babca9 + languageName: node + linkType: hard + "memoizee@npm:^0.4.15": version: 0.4.17 resolution: "memoizee@npm:0.4.17" @@ -18195,6 +23972,239 @@ __metadata: languageName: node linkType: hard +"metro-babel-transformer@npm:0.81.0": + version: 0.81.0 + resolution: "metro-babel-transformer@npm:0.81.0" + dependencies: + "@babel/core": "npm:^7.25.2" + flow-enums-runtime: "npm:^0.0.6" + hermes-parser: "npm:0.24.0" + nullthrows: "npm:^1.1.1" + checksum: 10/183ccc4890cef88a0bfb8c9be34a471fe27e48bc33465b2ecfcc605475ec1c28ff27d870ce934ca282a199d61ed5a46d62b42553503f07c1f93adc6d2697b5d2 + languageName: node + linkType: hard + +"metro-cache-key@npm:0.81.0": + version: 0.81.0 + resolution: "metro-cache-key@npm:0.81.0" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + checksum: 10/a96e4062ac0f4684f1d80c8b8c3da380c9d7be506c2bc14750d46a6850610c6e05cb1907cc5421393299f25f40575335e899667519d5435c95a09b0438619847 + languageName: node + linkType: hard + +"metro-cache@npm:0.81.0": + version: 0.81.0 + resolution: "metro-cache@npm:0.81.0" + dependencies: + exponential-backoff: "npm:^3.1.1" + flow-enums-runtime: "npm:^0.0.6" + metro-core: "npm:0.81.0" + checksum: 10/20f01fea29dad35fe76fdb9e50ddc428a849696d2e37262ed80e4a96101f708ab1c3196846df0e7569b057267604cc50ffa51065ab6a1c0adafcdabe0615cc41 + languageName: node + linkType: hard + +"metro-config@npm:0.81.0, metro-config@npm:^0.81.0": + version: 0.81.0 + resolution: "metro-config@npm:0.81.0" + dependencies: + connect: "npm:^3.6.5" + cosmiconfig: "npm:^5.0.5" + flow-enums-runtime: "npm:^0.0.6" + jest-validate: "npm:^29.6.3" + metro: "npm:0.81.0" + metro-cache: "npm:0.81.0" + metro-core: "npm:0.81.0" + metro-runtime: "npm:0.81.0" + checksum: 10/f331e9b6dbbe9dbde2e34cbfc1f0a5f59ed1a02f0f64a9df5b2a2e8d4d8164264292d98ba5fb8c08e7973814a74609204370f3f488d74c573eb3e77bf06d08cc + languageName: node + linkType: hard + +"metro-core@npm:0.81.0, metro-core@npm:^0.81.0": + version: 0.81.0 + resolution: "metro-core@npm:0.81.0" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + lodash.throttle: "npm:^4.1.1" + metro-resolver: "npm:0.81.0" + checksum: 10/ee6ea1372872949889f45b1f05ef21dc0d49966a7866d2d410b3d4145f5c45f8d3d4de3d3c5348ddcd8e8e6e1bd517971715a5435b6a03ce6ef775abcbb3559f + languageName: node + linkType: hard + +"metro-file-map@npm:0.81.0": + version: 0.81.0 + resolution: "metro-file-map@npm:0.81.0" + dependencies: + anymatch: "npm:^3.0.3" + debug: "npm:^2.2.0" + fb-watchman: "npm:^2.0.0" + flow-enums-runtime: "npm:^0.0.6" + fsevents: "npm:^2.3.2" + graceful-fs: "npm:^4.2.4" + invariant: "npm:^2.2.4" + jest-worker: "npm:^29.6.3" + micromatch: "npm:^4.0.4" + node-abort-controller: "npm:^3.1.1" + nullthrows: "npm:^1.1.1" + walker: "npm:^1.0.7" + dependenciesMeta: + fsevents: + optional: true + checksum: 10/1bb3b66be5cbb9171674dbf2b635c4ec47cac53cdcb3fbaecba61d5730d6d99bfc1dbdfed8b2b0d745208e29024491138d9058a56ed541a7c774ef6486731bf1 + languageName: node + linkType: hard + +"metro-minify-terser@npm:0.81.0": + version: 0.81.0 + resolution: "metro-minify-terser@npm:0.81.0" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + terser: "npm:^5.15.0" + checksum: 10/53472e5d476613c652f0e8bdf68429c80c66b71dd9a559c2185d56f41a8463ba3431353d453d2e20615875d070389ec24247ddbce67c4d7783bfc85113af18e0 + languageName: node + linkType: hard + +"metro-resolver@npm:0.81.0": + version: 0.81.0 + resolution: "metro-resolver@npm:0.81.0" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + checksum: 10/b0f81dab785d8d533e1fd103072c173716b88055ff224a277f5a15ac52c151b19e1b95df53cf7854bd751ecf46fff00cea243e2d9986110f46b2f6df45615bf9 + languageName: node + linkType: hard + +"metro-runtime@npm:0.81.0, metro-runtime@npm:^0.81.0": + version: 0.81.0 + resolution: "metro-runtime@npm:0.81.0" + dependencies: + "@babel/runtime": "npm:^7.25.0" + flow-enums-runtime: "npm:^0.0.6" + checksum: 10/fdb87c44adc73e217993f2d1f33d7c3ef17d4707747993eb38d5fda5d943e6ffe95e7d82cdc9a9ae7ef56fe56c62865ca3b424e72efa2d7bd2560cd1bb10180c + languageName: node + linkType: hard + +"metro-source-map@npm:0.81.0, metro-source-map@npm:^0.81.0": + version: 0.81.0 + resolution: "metro-source-map@npm:0.81.0" + dependencies: + "@babel/traverse": "npm:^7.25.3" + "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3" + "@babel/types": "npm:^7.25.2" + flow-enums-runtime: "npm:^0.0.6" + invariant: "npm:^2.2.4" + metro-symbolicate: "npm:0.81.0" + nullthrows: "npm:^1.1.1" + ob1: "npm:0.81.0" + source-map: "npm:^0.5.6" + vlq: "npm:^1.0.0" + checksum: 10/4092f3faa8d56705d77d02a15fcab46eaad68d3225796981235635e300ddf5b34db58a9ebfc3e74c4e95fee9775bf22d482840f08f5c2014befc4d8a12b50f7d + languageName: node + linkType: hard + +"metro-symbolicate@npm:0.81.0": + version: 0.81.0 + resolution: "metro-symbolicate@npm:0.81.0" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + invariant: "npm:^2.2.4" + metro-source-map: "npm:0.81.0" + nullthrows: "npm:^1.1.1" + source-map: "npm:^0.5.6" + through2: "npm:^2.0.1" + vlq: "npm:^1.0.0" + bin: + metro-symbolicate: src/index.js + checksum: 10/d612994ac2857fae713f6bf84c64c94c8e4c745b4532bfa11263623f2da9d7966709960b374c40726ffd40aabbc689924d4117c5c2fc380e024720bc8164b620 + languageName: node + linkType: hard + +"metro-transform-plugins@npm:0.81.0": + version: 0.81.0 + resolution: "metro-transform-plugins@npm:0.81.0" + dependencies: + "@babel/core": "npm:^7.25.2" + "@babel/generator": "npm:^7.25.0" + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.3" + flow-enums-runtime: "npm:^0.0.6" + nullthrows: "npm:^1.1.1" + checksum: 10/acf4e7133c815c39c459ea55b72a6217eb5aaefe7a48e2c6d98ec0ce9c1ac76a2eb1d89d6b50c7f836a942e1a76a722c88eab0ffe51f31f30433a7b20c399ea0 + languageName: node + linkType: hard + +"metro-transform-worker@npm:0.81.0": + version: 0.81.0 + resolution: "metro-transform-worker@npm:0.81.0" + dependencies: + "@babel/core": "npm:^7.25.2" + "@babel/generator": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.3" + "@babel/types": "npm:^7.25.2" + flow-enums-runtime: "npm:^0.0.6" + metro: "npm:0.81.0" + metro-babel-transformer: "npm:0.81.0" + metro-cache: "npm:0.81.0" + metro-cache-key: "npm:0.81.0" + metro-minify-terser: "npm:0.81.0" + metro-source-map: "npm:0.81.0" + metro-transform-plugins: "npm:0.81.0" + nullthrows: "npm:^1.1.1" + checksum: 10/6aca50e38add14aa4cb473938cbce1da5aac822dbc1934d592effc59f14fad891b63aa44b432ccfc5feb79792a186678565e7624ecdea70d139f006006ced5ba + languageName: node + linkType: hard + +"metro@npm:0.81.0, metro@npm:^0.81.0": + version: 0.81.0 + resolution: "metro@npm:0.81.0" + dependencies: + "@babel/code-frame": "npm:^7.24.7" + "@babel/core": "npm:^7.25.2" + "@babel/generator": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.3" + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.3" + "@babel/types": "npm:^7.25.2" + accepts: "npm:^1.3.7" + chalk: "npm:^4.0.0" + ci-info: "npm:^2.0.0" + connect: "npm:^3.6.5" + debug: "npm:^2.2.0" + denodeify: "npm:^1.2.1" + error-stack-parser: "npm:^2.0.6" + flow-enums-runtime: "npm:^0.0.6" + graceful-fs: "npm:^4.2.4" + hermes-parser: "npm:0.24.0" + image-size: "npm:^1.0.2" + invariant: "npm:^2.2.4" + jest-worker: "npm:^29.6.3" + jsc-safe-url: "npm:^0.2.2" + lodash.throttle: "npm:^4.1.1" + metro-babel-transformer: "npm:0.81.0" + metro-cache: "npm:0.81.0" + metro-cache-key: "npm:0.81.0" + metro-config: "npm:0.81.0" + metro-core: "npm:0.81.0" + metro-file-map: "npm:0.81.0" + metro-resolver: "npm:0.81.0" + metro-runtime: "npm:0.81.0" + metro-source-map: "npm:0.81.0" + metro-symbolicate: "npm:0.81.0" + metro-transform-plugins: "npm:0.81.0" + metro-transform-worker: "npm:0.81.0" + mime-types: "npm:^2.1.27" + nullthrows: "npm:^1.1.1" + serialize-error: "npm:^2.1.0" + source-map: "npm:^0.5.6" + strip-ansi: "npm:^6.0.0" + throat: "npm:^5.0.0" + ws: "npm:^7.5.10" + yargs: "npm:^17.6.2" + bin: + metro: src/cli.js + checksum: 10/56955726fee6da4d6b4666843969f0008ce7c4c43d8c3659a20eac4391d6cac41d6b0568ed6e49f3221fa2d01e60261f07bceafbc606db4519a4000a37c0edaf + languageName: node + linkType: hard + "micromark-core-commonmark@npm:^2.0.0": version: 2.0.2 resolution: "micromark-core-commonmark@npm:2.0.2" @@ -18646,7 +24656,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5, micromatch@npm:~4.0.8": +"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5, micromatch@npm:^4.0.8, micromatch@npm:~4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -18675,7 +24685,14 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.19": +"mime-db@npm:>= 1.43.0 < 2": + version: 1.53.0 + resolution: "mime-db@npm:1.53.0" + checksum: 10/82409c568a20254cc67a763a25e581d2213e1ef5d070a0af805239634f8a655f5d8a15138200f5f81c5b06fc6623d27f6168c612d447642d59e37eb7f20f7412 + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.19, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -18684,7 +24701,7 @@ __metadata: languageName: node linkType: hard -"mime@npm:^1.4.1": +"mime@npm:1.6.0, mime@npm:^1.4.1": version: 1.6.0 resolution: "mime@npm:1.6.0" bin: @@ -18702,6 +24719,13 @@ __metadata: languageName: node linkType: hard +"mimic-fn@npm:^1.0.0": + version: 1.2.0 + resolution: "mimic-fn@npm:1.2.0" + checksum: 10/69c08205156a1f4906d9c46f9b4dc08d18a50176352e77fdeb645cedfe9f20c0b19865d465bd2dec27a5c432347f24dc07fc3695e11159d193f892834233e939 + languageName: node + linkType: hard + "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" @@ -18744,7 +24768,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:^3.0.2, minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -18849,6 +24873,13 @@ __metadata: languageName: node linkType: hard +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 10/61682162d29f45d3152b78b08bab7fb32ca10899bc5991ffe98afc18c9e9543bd1e3be94f8b8373ba6262497db63607079dc242ea62e43e7b2270837b7347c93 + languageName: node + linkType: hard + "minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": version: 7.1.2 resolution: "minipass@npm:7.1.2" @@ -18856,6 +24887,16 @@ __metadata: languageName: node linkType: hard +"minizlib@npm:^2.1.1": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: "npm:^3.0.0" + yallist: "npm:^4.0.0" + checksum: 10/ae0f45436fb51344dcb87938446a32fbebb540d0e191d63b35e1c773d47512e17307bf54aa88326cc6d176594d00e4423563a091f7266c2f9a6872cdc1e234d1 + languageName: node + linkType: hard + "minizlib@npm:^3.0.1": version: 3.0.1 resolution: "minizlib@npm:3.0.1" @@ -18866,7 +24907,18 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:^1.0.4": +"mkdirp@npm:^0.5.1": + version: 0.5.6 + resolution: "mkdirp@npm:0.5.6" + dependencies: + minimist: "npm:^1.2.6" + bin: + mkdirp: bin/cmd.js + checksum: 10/0c91b721bb12c3f9af4b77ebf73604baf350e64d80df91754dc509491ae93bf238581e59c7188360cec7cb62fc4100959245a42cfe01834efedc5e9d068376c2 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": version: 1.0.4 resolution: "mkdirp@npm:1.0.4" bin: @@ -18903,6 +24955,17 @@ __metadata: languageName: node linkType: hard +"moti@npm:^0.29.0": + version: 0.29.0 + resolution: "moti@npm:0.29.0" + dependencies: + framer-motion: "npm:^6.5.1" + peerDependencies: + react-native-reanimated: "*" + checksum: 10/38a7a173739a1ed7c05e3ddb32ef9bb54857dd9a059290c701ffbc97fc36db14902348116f6f0841b1b63bb92355cc469cbbd952a65d6f9ee64b77bda4987456 + languageName: node + linkType: hard + "motion@npm:10.16.2": version: 10.16.2 resolution: "motion@npm:10.16.2" @@ -18924,6 +24987,13 @@ __metadata: languageName: node linkType: hard +"mrmime@npm:^1.0.0": + version: 1.0.1 + resolution: "mrmime@npm:1.0.1" + checksum: 10/a157e833ffe76648ab2107319deeff024b80b136ec66c60fae9d339009a1bb72c57ec1feecfd6a905dfd3df29e2299e850bff84b69cad790cc9bd9ab075834d1 + languageName: node + linkType: hard + "mrmime@npm:^2.0.0": version: 2.0.0 resolution: "mrmime@npm:2.0.0" @@ -18931,7 +25001,14 @@ __metadata: languageName: node linkType: hard -"ms@npm:^2.1.1, ms@npm:^2.1.3": +"ms@npm:2.0.0": + version: 2.0.0 + resolution: "ms@npm:2.0.0" + checksum: 10/0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 + languageName: node + linkType: hard + +"ms@npm:2.1.3, ms@npm:^2.1.1, ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: 10/aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d @@ -19006,6 +25083,17 @@ __metadata: languageName: node linkType: hard +"mz@npm:^2.7.0": + version: 2.7.0 + resolution: "mz@npm:2.7.0" + dependencies: + any-promise: "npm:^1.0.0" + object-assign: "npm:^4.0.1" + thenify-all: "npm:^1.0.0" + checksum: 10/8427de0ece99a07e9faed3c0c6778820d7543e3776f9a84d22cf0ec0a8eb65f6e9aee9c9d353ff9a105ff62d33a9463c6ca638974cc652ee8140cd1e35951c87 + languageName: node + linkType: hard + "nan@npm:2.14.0": version: 2.14.0 resolution: "nan@npm:2.14.0" @@ -19024,6 +25112,15 @@ __metadata: languageName: node linkType: hard +"nanoid@npm:3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" + bin: + nanoid: bin/nanoid.cjs + checksum: 10/ac1eb60f615b272bccb0e2b9cd933720dad30bf9708424f691b8113826bb91aca7e9d14ef5d9415a6ba15c266b37817256f58d8ce980c82b0ba3185352565679 + languageName: node + linkType: hard + "nanoid@npm:^3.3.1, nanoid@npm:^3.3.6, nanoid@npm:^3.3.7": version: 3.3.8 resolution: "nanoid@npm:3.3.8" @@ -19042,6 +25139,15 @@ __metadata: languageName: node linkType: hard +"nanoid@npm:^5.0.7": + version: 5.0.9 + resolution: "nanoid@npm:5.0.9" + bin: + nanoid: bin/nanoid.js + checksum: 10/8a3f9104f81095e3e4785f58caae47a05755599824b8611b9730cbf73db706b664f100e6189f8303f08764f144d499613d8e4a39e83125c53f4b4986d6576621 + languageName: node + linkType: hard + "napi-wasm@npm:^1.1.0": version: 1.1.3 resolution: "napi-wasm@npm:1.1.3" @@ -19068,6 +25174,13 @@ __metadata: languageName: node linkType: hard +"negotiator@npm:0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: 10/2723fb822a17ad55c93a588a4bc44d53b22855bf4be5499916ca0cab1e7165409d0b288ba2577d7b029f10ce18cf2ed8e703e5af31c984e1e2304277ef979837 + languageName: node + linkType: hard + "negotiator@npm:^1.0.0": version: 1.0.0 resolution: "negotiator@npm:1.0.0" @@ -19075,13 +25188,27 @@ __metadata: languageName: node linkType: hard -"neo-async@npm:^2.6.2": +"negotiator@npm:~0.6.4": + version: 0.6.4 + resolution: "negotiator@npm:0.6.4" + checksum: 10/d98c04a136583afd055746168f1067d58ce4bfe6e4c73ca1d339567f81ea1f7e665b5bd1e81f4771c67b6c2ea89b21cb2adaea2b16058c7dc31317778f931dab + languageName: node + linkType: hard + +"neo-async@npm:^2.5.0, neo-async@npm:^2.6.1, neo-async@npm:^2.6.2": version: 2.6.2 resolution: "neo-async@npm:2.6.2" checksum: 10/1a7948fea86f2b33ec766bc899c88796a51ba76a4afc9026764aedc6e7cde692a09067031e4a1bf6db4f978ccd99e7f5b6c03fe47ad9865c3d4f99050d67e002 languageName: node linkType: hard +"nested-error-stacks@npm:~2.0.1": + version: 2.0.1 + resolution: "nested-error-stacks@npm:2.0.1" + checksum: 10/8430d7d80ad69b1add2992ee2992a363db6c1a26a54740963bc99a004c5acb1d2a67049397062eab2caa3a312b4da89a0b85de3bdf82d7d472a6baa166311fe6 + languageName: node + linkType: hard + "next-tick@npm:^1.1.0": version: 1.1.0 resolution: "next-tick@npm:1.1.0" @@ -19150,6 +25277,13 @@ __metadata: languageName: node linkType: hard +"nice-try@npm:^1.0.4": + version: 1.0.5 + resolution: "nice-try@npm:1.0.5" + checksum: 10/0b4af3b5bb5d86c289f7a026303d192a7eb4417231fe47245c460baeabae7277bcd8fd9c728fb6bd62c30b3e15cd6620373e2cf33353b095d8b403d3e8a15aff + languageName: node + linkType: hard + "no-case@npm:^3.0.4": version: 3.0.4 resolution: "no-case@npm:3.0.4" @@ -19160,7 +25294,7 @@ __metadata: languageName: node linkType: hard -"node-abort-controller@npm:^3.0.1": +"node-abort-controller@npm:^3.0.1, node-abort-controller@npm:^3.1.1": version: 3.1.1 resolution: "node-abort-controller@npm:3.1.1" checksum: 10/0a2cdb7ec0aeaf3cb31e1ca0e192f5add48f1c5c9c9ed822129f9dddbd9432f69b7425982f94ce803c56a2104884530aa67cd57696e5774b2e5b8ec2f58de042 @@ -19212,6 +25346,24 @@ __metadata: languageName: node linkType: hard +"node-dir@npm:^0.1.17": + version: 0.1.17 + resolution: "node-dir@npm:0.1.17" + dependencies: + minimatch: "npm:^3.0.2" + checksum: 10/281fdea12d9c080a7250e5b5afefa3ab39426d40753ec8126a2d1e67f189b8824723abfed74f5d8549c5d78352d8c489fe08d0b067d7684c87c07283d38374a5 + languageName: node + linkType: hard + +"node-fetch-h2@npm:^2.3.0": + version: 2.3.0 + resolution: "node-fetch-h2@npm:2.3.0" + dependencies: + http2-client: "npm:^1.2.5" + checksum: 10/9495b4e52cfb23241a1bca187640a15bcaacb7a0667a825074f9dbf2c1a9b10fedd5344d775d57dea8944eeee1049959a3f662492e2f57d6d5f34c7d296e7c65 + languageName: node + linkType: hard + "node-fetch-native@npm:^1.6.4": version: 1.6.4 resolution: "node-fetch-native@npm:1.6.4" @@ -19219,7 +25371,7 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12, node-fetch@npm:^2.7.0": +"node-fetch@npm:^2.2.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.12, node-fetch@npm:^2.7.0": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" dependencies: @@ -19233,7 +25385,7 @@ __metadata: languageName: node linkType: hard -"node-forge@npm:^1.3.1": +"node-forge@npm:^1, node-forge@npm:^1.2.1, node-forge@npm:^1.3.1": version: 1.3.1 resolution: "node-forge@npm:1.3.1" checksum: 10/05bab6868633bf9ad4c3b1dd50ec501c22ffd69f556cdf169a00998ca1d03e8107a6032ba013852f202035372021b845603aeccd7dfcb58cdb7430013b3daa8d @@ -19313,6 +25465,22 @@ __metadata: languageName: node linkType: hard +"node-readfiles@npm:^0.2.0": + version: 0.2.0 + resolution: "node-readfiles@npm:0.2.0" + dependencies: + es6-promise: "npm:^3.2.1" + checksum: 10/1db0f009955665e63983395f38c2479ef18b4ea8db1d12e03c155238ebe567f2e83981c0e47ac7c6d29ab4a3628082d5e02683e62d26e1af79852e0d8b77e3fb + languageName: node + linkType: hard + +"node-releases@npm:^2.0.18": + version: 2.0.18 + resolution: "node-releases@npm:2.0.18" + checksum: 10/241e5fa9556f1c12bafb83c6c3e94f8cf3d8f2f8f904906ecef6e10bcaa1d59aa61212d4651bec70052015fc54bd3fdcdbe7fc0f638a17e6685aa586c076ec4e + languageName: node + linkType: hard + "node-releases@npm:^2.0.19": version: 2.0.19 resolution: "node-releases@npm:2.0.19" @@ -19362,6 +25530,27 @@ __metadata: languageName: node linkType: hard +"npm-package-arg@npm:^11.0.0": + version: 11.0.3 + resolution: "npm-package-arg@npm:11.0.3" + dependencies: + hosted-git-info: "npm:^7.0.0" + proc-log: "npm:^4.0.0" + semver: "npm:^7.3.5" + validate-npm-package-name: "npm:^5.0.0" + checksum: 10/bacc863907edf98940286edc2fd80327901c1e8b34426d538cdc708ed66bc6567f06d742d838eaf35db6804347bb4ba56ca9cef032c4b52743b33e7a22a2678e + languageName: node + linkType: hard + +"npm-run-path@npm:^2.0.0": + version: 2.0.2 + resolution: "npm-run-path@npm:2.0.2" + dependencies: + path-key: "npm:^2.0.0" + checksum: 10/acd5ad81648ba4588ba5a8effb1d98d2b339d31be16826a118d50f182a134ac523172101b82eab1d01cb4c2ba358e857d54cfafd8163a1ffe7bd52100b741125 + languageName: node + linkType: hard + "npm-run-path@npm:^4.0.0, npm-run-path@npm:^4.0.1": version: 4.0.1 resolution: "npm-run-path@npm:4.0.1" @@ -19389,6 +25578,13 @@ __metadata: languageName: node linkType: hard +"nullthrows@npm:^1.1.1": + version: 1.1.1 + resolution: "nullthrows@npm:1.1.1" + checksum: 10/c7cf377a095535dc301d81cf7959d3784d090a609a2a4faa40b6121a0c1d7f70d3a3aa534a34ab852e8553b66848ec503c28f2c19efd617ed564dc07dfbb6d33 + languageName: node + linkType: hard + "nwsapi@npm:^2.2.2": version: 2.2.16 resolution: "nwsapi@npm:2.2.16" @@ -19396,7 +25592,92 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": +"oas-kit-common@npm:^1.0.8": + version: 1.0.8 + resolution: "oas-kit-common@npm:1.0.8" + dependencies: + fast-safe-stringify: "npm:^2.0.7" + checksum: 10/576ab5f7c7fde551a9c780fde9392cb9dec5159b62c3ad4499e334bffdb12e089e97dccf2a9d0d1ac5be208f9d6f0e72da5ac3744d878134ef0177eed135cc52 + languageName: node + linkType: hard + +"oas-linter@npm:^3.2.2": + version: 3.2.2 + resolution: "oas-linter@npm:3.2.2" + dependencies: + "@exodus/schemasafe": "npm:^1.0.0-rc.2" + should: "npm:^13.2.1" + yaml: "npm:^1.10.0" + checksum: 10/8111c6c759648215b466e0e507e21e3c125762caf925dff28628c1ac0144bc82fe7f231a3249dd0400dff051574b4d5a7bbcc64b95d2f2f7e41a3377e859c395 + languageName: node + linkType: hard + +"oas-resolver@npm:^2.5.6": + version: 2.5.6 + resolution: "oas-resolver@npm:2.5.6" + dependencies: + node-fetch-h2: "npm:^2.3.0" + oas-kit-common: "npm:^1.0.8" + reftools: "npm:^1.1.9" + yaml: "npm:^1.10.0" + yargs: "npm:^17.0.1" + bin: + resolve: resolve.js + checksum: 10/9e20118bf722cb9e9f71a7079336ce705259eb380fa9c2a776d9647b93725314c23abdb6b7b3bc3c91a3559485bbb729447f72ce0c3ca9ce48281b8214a9612d + languageName: node + linkType: hard + +"oas-schema-walker@npm:^1.1.5": + version: 1.1.5 + resolution: "oas-schema-walker@npm:1.1.5" + checksum: 10/27bdeda1ebcf557b90cfb5d2ac3ca8e851f601d96215747c19ce0ae8f8458ad8012701b615fe313eacf4665b733f46ec12870f72d453251217b8a3ceb2be9abf + languageName: node + linkType: hard + +"oas-validator@npm:^5.0.8": + version: 5.0.8 + resolution: "oas-validator@npm:5.0.8" + dependencies: + call-me-maybe: "npm:^1.0.1" + oas-kit-common: "npm:^1.0.8" + oas-linter: "npm:^3.2.2" + oas-resolver: "npm:^2.5.6" + oas-schema-walker: "npm:^1.1.5" + reftools: "npm:^1.1.9" + should: "npm:^13.2.1" + yaml: "npm:^1.10.0" + checksum: 10/3e392d6c99659e58860b78ef1a46eaf8ad782449fe9a21ccb594b74f88a2c211d39ab9d016ec08c995d8728a250229aba84cb02ca3381f0fb2cc1e6782f4e21a + languageName: node + linkType: hard + +"oazapfts@npm:^6.1.0": + version: 6.1.0 + resolution: "oazapfts@npm:6.1.0" + dependencies: + "@apidevtools/swagger-parser": "npm:^10.1.0" + lodash: "npm:^4.17.21" + minimist: "npm:^1.2.8" + swagger2openapi: "npm:^7.0.8" + tapable: "npm:^2.2.1" + typescript: "npm:^5.4.5" + peerDependencies: + "@oazapfts/runtime": "*" + bin: + oazapfts: cli.js + checksum: 10/804c3936702acf66bb9bcff6bdcdce2708783b31c83262d7097fb04a53d3720d96114cec345408cbf3f933f9c5d198815457853a07362796c6a6d5db7a31d150 + languageName: node + linkType: hard + +"ob1@npm:0.81.0": + version: 0.81.0 + resolution: "ob1@npm:0.81.0" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + checksum: 10/f3215ccf72604b4db5f9cfc6c83454a136a035ffd26faffec2c100d5810b87599cc95e167888320f3865959a5f9762c03de20a9e40cf66fc13706886820a9523 + languageName: node + linkType: hard + +"object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: 10/fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f @@ -19523,6 +25804,31 @@ __metadata: languageName: node linkType: hard +"on-finished@npm:2.4.1": + version: 2.4.1 + resolution: "on-finished@npm:2.4.1" + dependencies: + ee-first: "npm:1.1.1" + checksum: 10/8e81472c5028125c8c39044ac4ab8ba51a7cdc19a9fbd4710f5d524a74c6d8c9ded4dd0eed83f28d3d33ac1d7a6a439ba948ccb765ac6ce87f30450a26bfe2ea + languageName: node + linkType: hard + +"on-finished@npm:~2.3.0": + version: 2.3.0 + resolution: "on-finished@npm:2.3.0" + dependencies: + ee-first: "npm:1.1.1" + checksum: 10/1db595bd963b0124d6fa261d18320422407b8f01dc65863840f3ddaaf7bcad5b28ff6847286703ca53f4ec19595bd67a2f1253db79fc4094911ec6aa8df1671b + languageName: node + linkType: hard + +"on-headers@npm:~1.0.2": + version: 1.0.2 + resolution: "on-headers@npm:1.0.2" + checksum: 10/870766c16345855e2012e9422ba1ab110c7e44ad5891a67790f84610bd70a72b67fdd71baf497295f1d1bf38dd4c92248f825d48729c53c0eae5262fb69fa171 + languageName: node + linkType: hard + "once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" @@ -19532,6 +25838,15 @@ __metadata: languageName: node linkType: hard +"onetime@npm:^2.0.0": + version: 2.0.1 + resolution: "onetime@npm:2.0.1" + dependencies: + mimic-fn: "npm:^1.0.0" + checksum: 10/5b4f6079e6b4973244017e157833ab5a7a3de4bd2612d69411e3ee46f61fe8bb57b7c2e243b0b23dbaa5bad7641a15f9100a5c80295ff64c0d87aab5d1576ef9 + languageName: node + linkType: hard + "onetime@npm:^5.1.0, onetime@npm:^5.1.2": version: 5.1.2 resolution: "onetime@npm:5.1.2" @@ -19559,6 +25874,16 @@ __metadata: languageName: node linkType: hard +"open@npm:^7.0.3": + version: 7.4.2 + resolution: "open@npm:7.4.2" + dependencies: + is-docker: "npm:^2.0.0" + is-wsl: "npm:^2.1.1" + checksum: 10/4fc02ed3368dcd5d7247ad3566433ea2695b0713b041ebc0eeb2f0f9e5d4e29fc2068f5cdd500976b3464e77fe8b61662b1b059c73233ccc601fe8b16d6c1cd6 + languageName: node + linkType: hard + "open@npm:^8.0.4": version: 8.4.2 resolution: "open@npm:8.4.2" @@ -19609,6 +25934,20 @@ __metadata: languageName: node linkType: hard +"ora@npm:^3.4.0": + version: 3.4.0 + resolution: "ora@npm:3.4.0" + dependencies: + chalk: "npm:^2.4.2" + cli-cursor: "npm:^2.1.0" + cli-spinners: "npm:^2.0.0" + log-symbols: "npm:^2.2.0" + strip-ansi: "npm:^5.2.0" + wcwidth: "npm:^1.0.1" + checksum: 10/c8ea1fe255fe9739673c0df6e9bc454061aded80372f2018be93336e16ca0988cc4181e4ddd971cb8062f2f12eb922ef2fec9742979f3c8bcac2b51346e35f45 + languageName: node + linkType: hard + "os-browserify@npm:^0.3.0": version: 0.3.0 resolution: "os-browserify@npm:0.3.0" @@ -19616,6 +25955,13 @@ __metadata: languageName: node linkType: hard +"os-tmpdir@npm:~1.0.2": + version: 1.0.2 + resolution: "os-tmpdir@npm:1.0.2" + checksum: 10/5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d + languageName: node + linkType: hard + "ospath@npm:^1.2.2": version: 1.2.2 resolution: "ospath@npm:1.2.2" @@ -19643,7 +25989,14 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^2.2.0": +"p-finally@npm:^1.0.0": + version: 1.0.0 + resolution: "p-finally@npm:1.0.0" + checksum: 10/93a654c53dc805dd5b5891bab16eb0ea46db8f66c4bfd99336ae929323b1af2b70a8b0654f8f1eae924b2b73d037031366d645f1fd18b3d30cbd15950cc4b1d4 + languageName: node + linkType: hard + +"p-limit@npm:^2.0.0, p-limit@npm:^2.2.0": version: 2.3.0 resolution: "p-limit@npm:2.3.0" dependencies: @@ -19670,6 +26023,15 @@ __metadata: languageName: node linkType: hard +"p-locate@npm:^3.0.0": + version: 3.0.0 + resolution: "p-locate@npm:3.0.0" + dependencies: + p-limit: "npm:^2.0.0" + checksum: 10/83991734a9854a05fe9dbb29f707ea8a0599391f52daac32b86f08e21415e857ffa60f0e120bfe7ce0cc4faf9274a50239c7895fc0d0579d08411e513b83a4ae + languageName: node + linkType: hard + "p-locate@npm:^4.1.0": version: 4.1.0 resolution: "p-locate@npm:4.1.0" @@ -19789,6 +26151,16 @@ __metadata: languageName: node linkType: hard +"parse-json@npm:^4.0.0": + version: 4.0.0 + resolution: "parse-json@npm:4.0.0" + dependencies: + error-ex: "npm:^1.3.1" + json-parse-better-errors: "npm:^1.0.1" + checksum: 10/0fe227d410a61090c247e34fa210552b834613c006c2c64d9a05cfe9e89cf8b4246d1246b1a99524b53b313e9ac024438d0680f67e33eaed7e6f38db64cfe7b5 + languageName: node + linkType: hard + "parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" @@ -19808,6 +26180,15 @@ __metadata: languageName: node linkType: hard +"parse-png@npm:^2.1.0": + version: 2.1.0 + resolution: "parse-png@npm:2.1.0" + dependencies: + pngjs: "npm:^3.3.0" + checksum: 10/0c6b6c42c8830cd16f6f9e9aedafd53111c0ad2ff350ba79c629996887567558f5639ad0c95764f96f7acd1f9ff63d4ac73737e80efa3911a6de9839ee520c96 + languageName: node + linkType: hard + "parse5@npm:^7.0.0, parse5@npm:^7.1.1": version: 7.2.1 resolution: "parse5@npm:7.2.1" @@ -19817,6 +26198,13 @@ __metadata: languageName: node linkType: hard +"parseurl@npm:~1.3.3": + version: 1.3.3 + resolution: "parseurl@npm:1.3.3" + checksum: 10/407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 + languageName: node + linkType: hard + "partysocket@npm:^0.0.25": version: 0.0.25 resolution: "partysocket@npm:0.0.25" @@ -19836,6 +26224,16 @@ __metadata: languageName: node linkType: hard +"password-prompt@npm:^1.0.4": + version: 1.1.3 + resolution: "password-prompt@npm:1.1.3" + dependencies: + ansi-escapes: "npm:^4.3.2" + cross-spawn: "npm:^7.0.3" + checksum: 10/1cf7001e66868b2ed7a03e036bc2f1dd45eb6dc8fee7e3e2056370057c484be25e7468fee00a1378e1ee8eca77ba79f48bee5ce15dcb464413987ace63c68b35 + languageName: node + linkType: hard + "path-browserify@npm:^1.0.1": version: 1.0.1 resolution: "path-browserify@npm:1.0.1" @@ -19843,6 +26241,13 @@ __metadata: languageName: node linkType: hard +"path-exists@npm:^3.0.0": + version: 3.0.0 + resolution: "path-exists@npm:3.0.0" + checksum: 10/96e92643aa34b4b28d0de1cd2eba52a1c5313a90c6542d03f62750d82480e20bfa62bc865d5cfc6165f5fcd5aeb0851043c40a39be5989646f223300021bae0a + languageName: node + linkType: hard + "path-exists@npm:^4.0.0": version: 4.0.0 resolution: "path-exists@npm:4.0.0" @@ -19864,6 +26269,13 @@ __metadata: languageName: node linkType: hard +"path-key@npm:^2.0.0, path-key@npm:^2.0.1": + version: 2.0.1 + resolution: "path-key@npm:2.0.1" + checksum: 10/6e654864e34386a2a8e6bf72cf664dcabb76574dd54013add770b374384d438aca95f4357bb26935b514a4e4c2c9b19e191f2200b282422a76ee038b9258c5e7 + languageName: node + linkType: hard + "path-key@npm:^3.0.0, path-key@npm:^3.1.0": version: 3.1.1 resolution: "path-key@npm:3.1.1" @@ -19878,7 +26290,7 @@ __metadata: languageName: node linkType: hard -"path-parse@npm:^1.0.7": +"path-parse@npm:^1.0.5, path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" checksum: 10/49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a @@ -19957,6 +26369,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^3.0.1": + version: 3.0.1 + resolution: "picomatch@npm:3.0.1" + checksum: 10/65ac837fedbd0640586f7c214f6c7481e1e12f41cdcd22a95eb6a2914d1773707ed0f0b5bd2d1e39b5ec7860b43a4c9150152332a3884cd8dd1d419b2a2fa5b5 + languageName: node + linkType: hard + "picomatch@npm:^4.0.2": version: 4.0.2 resolution: "picomatch@npm:4.0.2" @@ -20025,7 +26444,7 @@ __metadata: languageName: node linkType: hard -"pirates@npm:^4.0.4": +"pirates@npm:^4.0.1, pirates@npm:^4.0.4, pirates@npm:^4.0.6": version: 4.0.6 resolution: "pirates@npm:4.0.6" checksum: 10/d02dda76f4fec1cbdf395c36c11cf26f76a644f9f9a1bfa84d3167d0d3154d5289aacc72677aa20d599bb4a6937a471de1b65c995e2aea2d8687cbcd7e43ea5f @@ -20043,6 +26462,15 @@ __metadata: languageName: node linkType: hard +"pkg-dir@npm:^3.0.0": + version: 3.0.0 + resolution: "pkg-dir@npm:3.0.0" + dependencies: + find-up: "npm:^3.0.0" + checksum: 10/70c9476ffefc77552cc6b1880176b71ad70bfac4f367604b2b04efd19337309a4eec985e94823271c7c0e83946fa5aeb18cd360d15d10a5d7533e19344bfa808 + languageName: node + linkType: hard + "pkg-dir@npm:^4.1.0, pkg-dir@npm:^4.2.0": version: 4.2.0 resolution: "pkg-dir@npm:4.2.0" @@ -20072,6 +26500,24 @@ __metadata: languageName: node linkType: hard +"plist@npm:^3.0.5": + version: 3.1.0 + resolution: "plist@npm:3.1.0" + dependencies: + "@xmldom/xmldom": "npm:^0.8.8" + base64-js: "npm:^1.5.1" + xmlbuilder: "npm:^15.1.1" + checksum: 10/f513beecc01a021b4913d4e5816894580b284335ae437e7ed2d5e78f8b6f0d2e0f874ec57bab9c9d424cc49e77b8347efa75abcfa8ac138dbfb63a045e1ce559 + languageName: node + linkType: hard + +"pngjs@npm:^3.3.0": + version: 3.4.0 + resolution: "pngjs@npm:3.4.0" + checksum: 10/0e9227a413ce4b4f5ebae4465b366efc9ca545c74304f3cc30ba2075159eb12f01a6a821c4f61f2b048bd85356abbe6d2109df7052a9030ef4d7a42d99760af6 + languageName: node + linkType: hard + "pngjs@npm:^5.0.0": version: 5.0.0 resolution: "pngjs@npm:5.0.0" @@ -20095,7 +26541,7 @@ __metadata: languageName: node linkType: hard -"polished@npm:^4.2.2": +"polished@npm:^4.2.2, polished@npm:^4.3.1": version: 4.3.1 resolution: "polished@npm:4.3.1" dependencies: @@ -20104,6 +26550,18 @@ __metadata: languageName: node linkType: hard +"popmotion@npm:11.0.3": + version: 11.0.3 + resolution: "popmotion@npm:11.0.3" + dependencies: + framesync: "npm:6.0.1" + hey-listen: "npm:^1.0.8" + style-value-types: "npm:5.0.0" + tslib: "npm:^2.1.0" + checksum: 10/d2b6f16536b093d6106ab4caff105b1b4a8bb260e1deb316ca4fe81997c2ca1fc9e2d7747cee08dc2ce34d23ef7be8fd096efa7bc7f6908479da9d16343e1f63 + languageName: node + linkType: hard + "possible-typed-array-names@npm:^1.0.0": version: 1.0.0 resolution: "possible-typed-array-names@npm:1.0.0" @@ -20158,7 +26616,7 @@ __metadata: languageName: node linkType: hard -"postcss-modules-local-by-default@npm:^4.0.0, postcss-modules-local-by-default@npm:^4.0.5": +"postcss-modules-local-by-default@npm:^4.0.0": version: 4.2.0 resolution: "postcss-modules-local-by-default@npm:4.2.0" dependencies: @@ -20171,6 +26629,19 @@ __metadata: languageName: node linkType: hard +"postcss-modules-local-by-default@npm:^4.0.5": + version: 4.1.0 + resolution: "postcss-modules-local-by-default@npm:4.1.0" + dependencies: + icss-utils: "npm:^5.0.0" + postcss-selector-parser: "npm:^7.0.0" + postcss-value-parser: "npm:^4.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 10/1ea247c6dd3d36beb4c849bcf3bc7eab48ee06d91a0c4cc299b9e1c30c2aa384cfaef95019e475a2fb64693edf08fd3633db8f000dc4dbd1e4979c779bdc902c + languageName: node + linkType: hard + "postcss-modules-scope@npm:^3.0.0, postcss-modules-scope@npm:^3.2.0": version: 3.2.1 resolution: "postcss-modules-scope@npm:3.2.1" @@ -20221,7 +26692,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.0.0, postcss@npm:^8.2.14, postcss@npm:^8.4.21, postcss@npm:^8.4.33, postcss@npm:^8.4.38": +"postcss@npm:^8.0.0, postcss@npm:^8.2.14, postcss@npm:^8.4.21, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:~8.4.32": version: 8.4.49 resolution: "postcss@npm:8.4.49" dependencies: @@ -20255,7 +26726,7 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^2.3.1": +"prettier@npm:^2.3.1, prettier@npm:^2.4.1": version: 2.8.8 resolution: "prettier@npm:2.8.8" bin: @@ -20264,7 +26735,7 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^3.3.3": +"prettier@npm:^3.2.5, prettier@npm:^3.3.3, prettier@npm:^3.4.2": version: 3.4.2 resolution: "prettier@npm:3.4.2" bin: @@ -20312,6 +26783,13 @@ __metadata: languageName: node linkType: hard +"proc-log@npm:^4.0.0": + version: 4.2.0 + resolution: "proc-log@npm:4.2.0" + checksum: 10/4e1394491b717f6c1ade15c570ecd4c2b681698474d3ae2d303c1e4b6ab9455bd5a81566211e82890d5a5ae9859718cc6954d5150bb18b09b72ecb297beae90a + languageName: node + linkType: hard + "proc-log@npm:^5.0.0": version: 5.0.0 resolution: "proc-log@npm:5.0.0" @@ -20340,6 +26818,13 @@ __metadata: languageName: node linkType: hard +"progress@npm:^2.0.3": + version: 2.0.3 + resolution: "progress@npm:2.0.3" + checksum: 10/e6f0bcb71f716eee9dfac0fe8a2606e3704d6a64dd93baaf49fbadbc8499989a610fe14cf1bc6f61b6d6653c49408d94f4a94e124538084efd8e4cf525e0293d + languageName: node + linkType: hard + "promise-retry@npm:^2.0.1": version: 2.0.1 resolution: "promise-retry@npm:2.0.1" @@ -20350,7 +26835,25 @@ __metadata: languageName: node linkType: hard -"prompts@npm:^2.0.1": +"promise@npm:^7.1.1": + version: 7.3.1 + resolution: "promise@npm:7.3.1" + dependencies: + asap: "npm:~2.0.3" + checksum: 10/37dbe58ca7b0716cc881f0618128f1fd6ff9c46cdc529a269fd70004e567126a449a94e9428e2d19b53d06182d11b45d0c399828f103e06b2bb87643319bd2e7 + languageName: node + linkType: hard + +"promise@npm:^8.3.0": + version: 8.3.0 + resolution: "promise@npm:8.3.0" + dependencies: + asap: "npm:~2.0.6" + checksum: 10/55e9d0d723c66810966bc055c6c77a3658c0af7e4a8cc88ea47aeaf2949ca0bd1de327d9c631df61236f5406ad478384fa19a77afb3f88c0303eba9e5eb0a8d8 + languageName: node + linkType: hard + +"prompts@npm:^2.0.1, prompts@npm:^2.2.1, prompts@npm:^2.3.2": version: 2.4.2 resolution: "prompts@npm:2.4.2" dependencies: @@ -20360,7 +26863,7 @@ __metadata: languageName: node linkType: hard -"prop-types@npm:^15.6.2, prop-types@npm:^15.8.1": +"prop-types@npm:^15.5.10, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": version: 15.8.1 resolution: "prop-types@npm:15.8.1" dependencies: @@ -20538,6 +27041,15 @@ __metadata: languageName: node linkType: hard +"qrcode-terminal@npm:0.11.0": + version: 0.11.0 + resolution: "qrcode-terminal@npm:0.11.0" + bin: + qrcode-terminal: ./bin/qrcode-terminal.js + checksum: 10/61fe2336b954584f321f2593d7e33f5b235788d829ea982f11a388d1e80e9cafb086dd28e7bd1649859cac62a6eb5818c9de14657222e3f66ba7376d0edccefd + languageName: node + linkType: hard + "qrcode.react@npm:^3.1.0": version: 3.2.0 resolution: "qrcode.react@npm:3.2.0" @@ -20570,7 +27082,7 @@ __metadata: languageName: node linkType: hard -"query-string@npm:7.1.3": +"query-string@npm:7.1.3, query-string@npm:^7.1.3": version: 7.1.3 resolution: "query-string@npm:7.1.3" dependencies: @@ -20626,6 +27138,15 @@ __metadata: languageName: node linkType: hard +"r-json@npm:^1.2.10": + version: 1.3.0 + resolution: "r-json@npm:1.3.0" + dependencies: + w-json: "npm:1.3.10" + checksum: 10/ebe24b41e9f855af9f61747d7f3a511a78bc11c1841eaf3cbf98b385e91a0a982a3f724e2bf24d737642efc9b510585b5c54d25c098cc6850bdad15a22b36636 + languageName: node + linkType: hard + "rabin-wasm@npm:^0.1.4": version: 0.1.5 resolution: "rabin-wasm@npm:0.1.5" @@ -20668,13 +27189,27 @@ __metadata: languageName: node linkType: hard -"range-parser@npm:^1.2.1": +"range-parser@npm:^1.2.1, range-parser@npm:~1.2.1": version: 1.2.1 resolution: "range-parser@npm:1.2.1" checksum: 10/ce21ef2a2dd40506893157970dc76e835c78cf56437e26e19189c48d5291e7279314477b06ac38abd6a401b661a6840f7b03bd0b1249da9b691deeaa15872c26 languageName: node linkType: hard +"rc@npm:~1.2.7": + version: 1.2.8 + resolution: "rc@npm:1.2.8" + dependencies: + deep-extend: "npm:^0.6.0" + ini: "npm:~1.3.0" + minimist: "npm:^1.2.0" + strip-json-comments: "npm:~2.0.1" + bin: + rc: ./cli.js + checksum: 10/5c4d72ae7eec44357171585938c85ce066da8ca79146b5635baf3d55d74584c92575fa4e2c9eac03efbed3b46a0b2e7c30634c012b4b4fa40d654353d3c163eb + languageName: node + linkType: hard + "react-confetti@npm:^6.1.0": version: 6.1.0 resolution: "react-confetti@npm:6.1.0" @@ -20686,6 +27221,16 @@ __metadata: languageName: node linkType: hard +"react-devtools-core@npm:^5.3.1": + version: 5.3.2 + resolution: "react-devtools-core@npm:5.3.2" + dependencies: + shell-quote: "npm:^1.6.1" + ws: "npm:^7" + checksum: 10/640123f775daeb2176ebc9caf85b1cb9dbb147cbb607f221254ac4967530ddf96332a582d5b169c840984220596a23780ed6f9b37c37461160e9b623f5f4caee + languageName: node + linkType: hard + "react-docgen-typescript@npm:^2.2.2": version: 2.2.2 resolution: "react-docgen-typescript@npm:2.2.2" @@ -20713,83 +27258,376 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:^16.8.0 || ^17.0.0 || ^18.0.0, react-dom@npm:^18.2.0": - version: 18.3.1 - resolution: "react-dom@npm:18.3.1" - dependencies: - loose-envify: "npm:^1.1.0" - scheduler: "npm:^0.23.2" +"react-dom@npm:^16.8.0 || ^17.0.0 || ^18.0.0, react-dom@npm:^18.2.0, react-dom@npm:^18.3.1": + version: 18.3.1 + resolution: "react-dom@npm:18.3.1" + dependencies: + loose-envify: "npm:^1.1.0" + scheduler: "npm:^0.23.2" + peerDependencies: + react: ^18.3.1 + checksum: 10/3f4b73a3aa083091173b29812b10394dd06f4ac06aff410b74702cfb3aa29d7b0ced208aab92d5272919b612e5cda21aeb1d54191848cf6e46e9e354f3541f81 + languageName: node + linkType: hard + +"react-dom@npm:^19.0.0": + version: 19.0.0 + resolution: "react-dom@npm:19.0.0" + dependencies: + scheduler: "npm:^0.25.0" + peerDependencies: + react: ^19.0.0 + checksum: 10/aa64a2f1991042f516260e8b0eca0ae777b6c8f1aa2b5ae096e80bbb6ac9b005aef2bca697969841d34f7e1819556263476bdfea36c35092e8d9aefde3de2d9a + languageName: node + linkType: hard + +"react-dropzone@npm:^14.2.3": + version: 14.3.5 + resolution: "react-dropzone@npm:14.3.5" + dependencies: + attr-accept: "npm:^2.2.4" + file-selector: "npm:^2.1.0" + prop-types: "npm:^15.8.1" + peerDependencies: + react: ">= 16.8 || 18.0.0" + checksum: 10/6124bacd2138002d721c86c2b507a5c1889cfde73344fe474855a4e2e81fecb2c318edb0ab3333a75fd502fb6da44a6f8e9cdee317ec916331fd520d454e6297 + languageName: node + linkType: hard + +"react-fast-compare@npm:^3.2.0, react-fast-compare@npm:^3.2.2": + version: 3.2.2 + resolution: "react-fast-compare@npm:3.2.2" + checksum: 10/a6826180ba75cefba1c8d3ac539735f9b627ca05d3d307fe155487f5d0228d376dac6c9708d04a283a7b9f9aee599b637446635b79c8c8753d0b4eece56c125c + languageName: node + linkType: hard + +"react-freeze@npm:^1.0.0, react-freeze@npm:^1.0.3": + version: 1.0.4 + resolution: "react-freeze@npm:1.0.4" + peerDependencies: + react: ">=17.0.0" + checksum: 10/1dc433319341ec3dca84513c4197ef4f4c8232604d35f83546a8abfb41d9591f934b66aaaa4dc3dc8b1b65f488705a2a48ae6c1d9792660119a9cdedeab4ca8f + languageName: node + linkType: hard + +"react-gtm-module@npm:^2.0.11": + version: 2.0.11 + resolution: "react-gtm-module@npm:2.0.11" + checksum: 10/231dbe4b7c5fbb2577d5bcb7f90ab369a2b55359815633223a03d361775ad52d0eda23d0dbf35f357424d5c4b76f32320fa41ad538e6017a64e258b437d10795 + languageName: node + linkType: hard + +"react-helmet-async@npm:^1.3.0": + version: 1.3.0 + resolution: "react-helmet-async@npm:1.3.0" + dependencies: + "@babel/runtime": "npm:^7.12.5" + invariant: "npm:^2.2.4" + prop-types: "npm:^15.7.2" + react-fast-compare: "npm:^3.2.0" + shallowequal: "npm:^1.1.0" + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 + checksum: 10/73d6383dd5d5794cad3837cf6b71d7e23afa6f3ba745e50a9d0d6bf42ff0ab175e4292f250ffe757f4bd782e64c37c4583fb884340cd63891deb33e144628661 + languageName: node + linkType: hard + +"react-hook-form@npm:7.41.1": + version: 7.41.1 + resolution: "react-hook-form@npm:7.41.1" + peerDependencies: + react: ^16.8.0 || ^17 || ^18 + checksum: 10/eeb8653359dd36e80867e81302b0988a3fefe5e2170783d70ad325b871b3ae639599c8b317a869d34f165252ddc27eafae51ec7a6877af0733709ed3e3674e1f + languageName: node + linkType: hard + +"react-is@npm:^16.12.0 || ^17.0.0 || ^18.0.0, react-is@npm:^18.0.0, react-is@npm:^18.2.0, react-is@npm:^18.3.1": + version: 18.3.1 + resolution: "react-is@npm:18.3.1" + checksum: 10/d5f60c87d285af24b1e1e7eaeb123ec256c3c8bdea7061ab3932e3e14685708221bf234ec50b21e10dd07f008f1b966a2730a0ce4ff67905b3872ff2042aec22 + languageName: node + linkType: hard + +"react-is@npm:^16.13.1, react-is@npm:^16.7.0": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: 10/5aa564a1cde7d391ac980bedee21202fc90bdea3b399952117f54fb71a932af1e5902020144fb354b4690b2414a0c7aafe798eb617b76a3d441d956db7726fdf + languageName: node + linkType: hard + +"react-is@npm:^17.0.1": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 10/73b36281e58eeb27c9cc6031301b6ae19ecdc9f18ae2d518bdb39b0ac564e65c5779405d623f1df9abf378a13858b79442480244bd579968afc1faf9a2ce5e05 + languageName: node + linkType: hard + +"react-is@npm:^19.0.0": + version: 19.0.0 + resolution: "react-is@npm:19.0.0" + checksum: 10/6cd3695c462ec3f0d4db98583f0c1b9a439248d60214f6c42c2b0e2951a1066339d0eefa74707f03484042e043fca87750282a35b652492c035f5f3da0d6498a + languageName: node + linkType: hard + +"react-native-collapsible-tab-view@npm:^8.0.0": + version: 8.0.0 + resolution: "react-native-collapsible-tab-view@npm:8.0.0" + dependencies: + use-deep-compare: "npm:^1.1.0" + peerDependencies: + "@shopify/flash-list": ">=1.0.0" + react: "*" + react-native: "*" + react-native-pager-view: "*" + react-native-reanimated: ">=3.8.1" + peerDependenciesMeta: + "@shopify/flash-list": + optional: true + checksum: 10/3e8372fcea26fb26e2fae7627d8a56e57260dd9a8b2381a4567c52ec0dd4c6c62d272c47170b5fa7d269b6a18d1fe0c4f33a084f038773dd33fe55859f83410d + languageName: node + linkType: hard + +"react-native-gesture-handler@npm:~2.20.2": + version: 2.20.2 + resolution: "react-native-gesture-handler@npm:2.20.2" + dependencies: + "@egjs/hammerjs": "npm:^2.0.17" + hoist-non-react-statics: "npm:^3.3.0" + invariant: "npm:^2.2.4" + prop-types: "npm:^15.7.2" + peerDependencies: + react: "*" + react-native: "*" + checksum: 10/64ab125c539ca8c275f5d305f5e11d366e6098d9e24e3cab25cbfd46a8d618fc3925ea86219972ccc63364e578384bb0120a72562312e596894a04ee0518a363 + languageName: node + linkType: hard + +"react-native-helmet-async@npm:2.0.4": + version: 2.0.4 + resolution: "react-native-helmet-async@npm:2.0.4" + dependencies: + invariant: "npm:^2.2.4" + react-fast-compare: "npm:^3.2.2" + shallowequal: "npm:^1.1.0" + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + checksum: 10/217bd0eaa61d426a512634369c70c44ce8b92127ec626dc40c65b72b1be1534ed3ed00ba2dd1a9ad77d1716ce8fd1e6db3f7209534303a652d9932a962d2c830 + languageName: node + linkType: hard + +"react-native-is-edge-to-edge@npm:^1.1.6": + version: 1.1.6 + resolution: "react-native-is-edge-to-edge@npm:1.1.6" + peerDependencies: + react: ">=18.2.0" + react-native: ">=0.73.0" + checksum: 10/4e07c1e34c01c8d50fd7c1d0460db06f6f0515197405230386a8ffb950cb724b10743af032310d1384df0a90059bfb8992ba2d93344ce86315315f0493feccc2 + languageName: node + linkType: hard + +"react-native-mmkv@npm:^3.1.0": + version: 3.1.0 + resolution: "react-native-mmkv@npm:3.1.0" + peerDependencies: + react: "*" + react-native: "*" + checksum: 10/e601f3c36e3617402542b0dcbb59f039789fb4a409c3492d98444bad3173f8c07cf2dcf5c6ed1377e1f1c2162c3d834f80f3949fbc3d53e33c19b8c48862714c + languageName: node + linkType: hard + +"react-native-modal-datetime-picker@npm:^14.0.0": + version: 14.0.1 + resolution: "react-native-modal-datetime-picker@npm:14.0.1" + dependencies: + prop-types: "npm:^15.7.2" + peerDependencies: + "@react-native-community/datetimepicker": ">=3.0.0" + react-native: ">=0.65.0" + checksum: 10/568c2d54b4b6800a125bc869ecd24c5295910b8af677a197ce003d348f652eb54839251b8b5ba3ed33395d7833212ef3dd9360c3f3cbcda04e4ff838c3119038 + languageName: node + linkType: hard + +"react-native-modal-selector@npm:^2.1.1": + version: 2.1.2 + resolution: "react-native-modal-selector@npm:2.1.2" + dependencies: + prop-types: "npm:^15.5.10" + checksum: 10/6c42fb381c5fab4cd17a6b574cbcca256deeebd202545456eea86d05a76c430cc11192564299c8cb1be8348dd9cc2d1decd642341b517294bb1959545262f603 + languageName: node + linkType: hard + +"react-native-pager-view@npm:6.5.1": + version: 6.5.1 + resolution: "react-native-pager-view@npm:6.5.1" peerDependencies: - react: ^18.3.1 - checksum: 10/3f4b73a3aa083091173b29812b10394dd06f4ac06aff410b74702cfb3aa29d7b0ced208aab92d5272919b612e5cda21aeb1d54191848cf6e46e9e354f3541f81 + react: "*" + react-native: "*" + checksum: 10/3edba80853d8b3b42b3d64cda99894ef75c5e1190321b4f20c85bee289d0f28d7fe6a0736606eecf900522ffb368e4de7ef01d143ea1f67325f76e91168f4e5e languageName: node linkType: hard -"react-dom@npm:^19.0.0": - version: 19.0.0 - resolution: "react-dom@npm:19.0.0" +"react-native-reanimated@npm:^3.16.2": + version: 3.16.3 + resolution: "react-native-reanimated@npm:3.16.3" dependencies: - scheduler: "npm:^0.25.0" + "@babel/plugin-transform-arrow-functions": "npm:^7.0.0-0" + "@babel/plugin-transform-class-properties": "npm:^7.0.0-0" + "@babel/plugin-transform-classes": "npm:^7.0.0-0" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.0.0-0" + "@babel/plugin-transform-optional-chaining": "npm:^7.0.0-0" + "@babel/plugin-transform-shorthand-properties": "npm:^7.0.0-0" + "@babel/plugin-transform-template-literals": "npm:^7.0.0-0" + "@babel/plugin-transform-unicode-regex": "npm:^7.0.0-0" + "@babel/preset-typescript": "npm:^7.16.7" + convert-source-map: "npm:^2.0.0" + invariant: "npm:^2.2.4" peerDependencies: - react: ^19.0.0 - checksum: 10/aa64a2f1991042f516260e8b0eca0ae777b6c8f1aa2b5ae096e80bbb6ac9b005aef2bca697969841d34f7e1819556263476bdfea36c35092e8d9aefde3de2d9a + "@babel/core": ^7.0.0-0 + react: "*" + react-native: "*" + checksum: 10/93a51bcd6f6fd72d115a6861e381a1d0402faf9aae9cf5d0b159e4f483ee87e79c7b3a0d92b127cbc952fc96cfd5923874ec409c9ef2de0e60c1c366397052d1 languageName: node linkType: hard -"react-dropzone@npm:^14.2.3": - version: 14.3.5 - resolution: "react-dropzone@npm:14.3.5" - dependencies: - attr-accept: "npm:^2.2.4" - file-selector: "npm:^2.1.0" - prop-types: "npm:^15.8.1" +"react-native-safe-area-context@npm:4.12.0": + version: 4.12.0 + resolution: "react-native-safe-area-context@npm:4.12.0" peerDependencies: - react: ">= 16.8 || 18.0.0" - checksum: 10/6124bacd2138002d721c86c2b507a5c1889cfde73344fe474855a4e2e81fecb2c318edb0ab3333a75fd502fb6da44a6f8e9cdee317ec916331fd520d454e6297 + react: "*" + react-native: "*" + checksum: 10/1db86f38c20c8b22ea274ea895b3cedbb1f8d8260d7f726ab4ee315f5e1e611ba3dde89c43dcb3ccccf97dfc3e7d8b11b79ffe4a6369697b6fed3bd80eaaf7c5 languageName: node linkType: hard -"react-gtm-module@npm:^2.0.11": - version: 2.0.11 - resolution: "react-gtm-module@npm:2.0.11" - checksum: 10/231dbe4b7c5fbb2577d5bcb7f90ab369a2b55359815633223a03d361775ad52d0eda23d0dbf35f357424d5c4b76f32320fa41ad538e6017a64e258b437d10795 +"react-native-screens@npm:^4.0.0": + version: 4.3.0 + resolution: "react-native-screens@npm:4.3.0" + dependencies: + react-freeze: "npm:^1.0.0" + warn-once: "npm:^0.1.0" + peerDependencies: + react: "*" + react-native: "*" + checksum: 10/3c33d282712f1b7274a88a1bfcaa8de1f012b0a1afd0b3de04714579ec37d803bc22f5bc78b72c0a6f6743e349d77744f7201f6f94f3ab1a6e82aa149e495b9a languageName: node linkType: hard -"react-hook-form@npm:7.41.1": - version: 7.41.1 - resolution: "react-hook-form@npm:7.41.1" +"react-native-svg@npm:15.8.0": + version: 15.8.0 + resolution: "react-native-svg@npm:15.8.0" + dependencies: + css-select: "npm:^5.1.0" + css-tree: "npm:^1.1.3" + warn-once: "npm:0.1.1" peerDependencies: - react: ^16.8.0 || ^17 || ^18 - checksum: 10/eeb8653359dd36e80867e81302b0988a3fefe5e2170783d70ad325b871b3ae639599c8b317a869d34f165252ddc27eafae51ec7a6877af0733709ed3e3674e1f + react: "*" + react-native: "*" + checksum: 10/9a60d1f33539c41ca50b2c21e6d8909e52a3bdf67b29b9231c7ffe72120fc8cb6d7fca45723bd9219b993202ade2343c97c7e4f53de7ee2446279ac91426b096 languageName: node linkType: hard -"react-is@npm:^16.13.1, react-is@npm:^16.7.0": - version: 16.13.1 - resolution: "react-is@npm:16.13.1" - checksum: 10/5aa564a1cde7d391ac980bedee21202fc90bdea3b399952117f54fb71a932af1e5902020144fb354b4690b2414a0c7aafe798eb617b76a3d441d956db7726fdf +"react-native-swipe-gestures@npm:^1.0.5": + version: 1.0.5 + resolution: "react-native-swipe-gestures@npm:1.0.5" + checksum: 10/d637bc40baa50fa0ce3b6cf2b494efeceaea03cc3875cb7cf7d76922914a21d5e6b098d4a084fb291ce61bfbb0a241c03cff24b15bebf0cfae1c146f4ad10d92 languageName: node linkType: hard -"react-is@npm:^17.0.1": - version: 17.0.2 - resolution: "react-is@npm:17.0.2" - checksum: 10/73b36281e58eeb27c9cc6031301b6ae19ecdc9f18ae2d518bdb39b0ac564e65c5779405d623f1df9abf378a13858b79442480244bd579968afc1faf9a2ce5e05 +"react-native-tab-view@npm:^4.0.5": + version: 4.0.5 + resolution: "react-native-tab-view@npm:4.0.5" + dependencies: + use-latest-callback: "npm:^0.2.1" + peerDependencies: + react: ">= 18.2.0" + react-native: "*" + react-native-pager-view: ">= 6.0.0" + checksum: 10/464545c05ff2bc9b5c0ba4f615b206a8aca8c24f76fb7fc553dcae726e971cbae84571d27f5cb7021d21b81786155fbc82b44bbbc32db0c7620ca967c8596b8b languageName: node linkType: hard -"react-is@npm:^18.0.0": - version: 18.3.1 - resolution: "react-is@npm:18.3.1" - checksum: 10/d5f60c87d285af24b1e1e7eaeb123ec256c3c8bdea7061ab3932e3e14685708221bf234ec50b21e10dd07f008f1b966a2730a0ce4ff67905b3872ff2042aec22 +"react-native-url-polyfill@npm:^2.0.0": + version: 2.0.0 + resolution: "react-native-url-polyfill@npm:2.0.0" + dependencies: + whatwg-url-without-unicode: "npm:8.0.0-3" + peerDependencies: + react-native: "*" + checksum: 10/6a8d605eeb1b0ee9b0f47f1866acc2edfa2131a4a8fb1ea3839ceb507e225b894ed66f49a3bd826fc964f2c8005b3678c9d3b65d07eb0a3b979be830cb618686 languageName: node linkType: hard -"react-is@npm:^19.0.0": - version: 19.0.0 - resolution: "react-is@npm:19.0.0" - checksum: 10/6cd3695c462ec3f0d4db98583f0c1b9a439248d60214f6c42c2b0e2951a1066339d0eefa74707f03484042e043fca87750282a35b652492c035f5f3da0d6498a +"react-native-web@npm:^0.19.12, react-native-web@npm:^0.19.13": + version: 0.19.13 + resolution: "react-native-web@npm:0.19.13" + dependencies: + "@babel/runtime": "npm:^7.18.6" + "@react-native/normalize-colors": "npm:^0.74.1" + fbjs: "npm:^3.0.4" + inline-style-prefixer: "npm:^6.0.1" + memoize-one: "npm:^6.0.0" + nullthrows: "npm:^1.1.1" + postcss-value-parser: "npm:^4.2.0" + styleq: "npm:^0.1.3" + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 10/65e0660fb37c1f7e3864a7b506acdd3bbf249de516166775cbf2f371bc28f6e965bc01cbd214bfe820c1a933aee58b6fb29298ccd0dc5f412f147a57e7126dd9 + languageName: node + linkType: hard + +"react-native@npm:0.76.3": + version: 0.76.3 + resolution: "react-native@npm:0.76.3" + dependencies: + "@jest/create-cache-key-function": "npm:^29.6.3" + "@react-native/assets-registry": "npm:0.76.3" + "@react-native/codegen": "npm:0.76.3" + "@react-native/community-cli-plugin": "npm:0.76.3" + "@react-native/gradle-plugin": "npm:0.76.3" + "@react-native/js-polyfills": "npm:0.76.3" + "@react-native/normalize-colors": "npm:0.76.3" + "@react-native/virtualized-lists": "npm:0.76.3" + abort-controller: "npm:^3.0.0" + anser: "npm:^1.4.9" + ansi-regex: "npm:^5.0.0" + babel-jest: "npm:^29.7.0" + babel-plugin-syntax-hermes-parser: "npm:^0.23.1" + base64-js: "npm:^1.5.1" + chalk: "npm:^4.0.0" + commander: "npm:^12.0.0" + event-target-shim: "npm:^5.0.1" + flow-enums-runtime: "npm:^0.0.6" + glob: "npm:^7.1.1" + invariant: "npm:^2.2.4" + jest-environment-node: "npm:^29.6.3" + jsc-android: "npm:^250231.0.0" + memoize-one: "npm:^5.0.0" + metro-runtime: "npm:^0.81.0" + metro-source-map: "npm:^0.81.0" + mkdirp: "npm:^0.5.1" + nullthrows: "npm:^1.1.1" + pretty-format: "npm:^29.7.0" + promise: "npm:^8.3.0" + react-devtools-core: "npm:^5.3.1" + react-refresh: "npm:^0.14.0" + regenerator-runtime: "npm:^0.13.2" + scheduler: "npm:0.24.0-canary-efb381bbf-20230505" + semver: "npm:^7.1.3" + stacktrace-parser: "npm:^0.1.10" + whatwg-fetch: "npm:^3.0.0" + ws: "npm:^6.2.3" + yargs: "npm:^17.6.2" + peerDependencies: + "@types/react": ^18.2.6 + react: ^18.2.0 + peerDependenciesMeta: + "@types/react": + optional: true + bin: + react-native: cli.js + checksum: 10/973f0310ebb56eae4025de7eebf100c83b8e82cd23dd7c51767f004bdff0ed7eac3b6ddf19630376edaaefd3108953b4e3be728b59b3825b67426e02b7fb724b languageName: node linkType: hard @@ -20822,13 +27660,104 @@ __metadata: languageName: node linkType: hard -"react-refresh@npm:^0.14.0": +"react-refresh@npm:^0.14.0, react-refresh@npm:^0.14.2": version: 0.14.2 resolution: "react-refresh@npm:0.14.2" checksum: 10/512abf97271ab8623486061be04b608c39d932e3709f9af1720b41573415fa4993d0009fa5138b6705b60a98f4102f744d4e26c952b14f41a0e455521c6be4cc languageName: node linkType: hard +"react-remove-scroll-bar@npm:^2.3.6": + version: 2.3.6 + resolution: "react-remove-scroll-bar@npm:2.3.6" + dependencies: + react-style-singleton: "npm:^2.2.1" + tslib: "npm:^2.0.0" + peerDependencies: + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/5ab8eda61d5b10825447d11e9c824486c929351a471457c22452caa19b6898e18c3af6a46c3fa68010c713baed1eb9956106d068b4a1058bdcf97a1a9bbed734 + languageName: node + linkType: hard + +"react-remove-scroll@npm:^2.6.0": + version: 2.6.0 + resolution: "react-remove-scroll@npm:2.6.0" + dependencies: + react-remove-scroll-bar: "npm:^2.3.6" + react-style-singleton: "npm:^2.2.1" + tslib: "npm:^2.1.0" + use-callback-ref: "npm:^1.3.0" + use-sidecar: "npm:^1.1.2" + peerDependencies: + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/9fac79e1c2ed2c85729bfe82f61ef4ae5ce51f478736a13892a9a11e05cbd4e9599f9f0e012cb5fc0719e18dc1dd687ab61f516193228615df636db8b851245e + languageName: node + linkType: hard + +"react-server-dom-webpack@npm:19.0.0-rc-6230622a1a-20240610": + version: 19.0.0-rc-6230622a1a-20240610 + resolution: "react-server-dom-webpack@npm:19.0.0-rc-6230622a1a-20240610" + dependencies: + acorn-loose: "npm:^8.3.0" + neo-async: "npm:^2.6.1" + peerDependencies: + react: 19.0.0-rc-6230622a1a-20240610 + react-dom: 19.0.0-rc-6230622a1a-20240610 + webpack: ^5.59.0 + checksum: 10/66ae78f359bcd09400d39f25341c9f799b33cbdb4c7a1134c07ee34d7d142c240bd0dea83942c9260c3e3be6de0bc2bf0ed1343e4f044eeabcf6e5d3c1172c79 + languageName: node + linkType: hard + +"react-shallow-renderer@npm:^16.15.0": + version: 16.15.0 + resolution: "react-shallow-renderer@npm:16.15.0" + dependencies: + object-assign: "npm:^4.1.1" + react-is: "npm:^16.12.0 || ^17.0.0 || ^18.0.0" + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + checksum: 10/06457fe5bcaa44aeca998905b6849304742ea1cc2d3841e4a0964c745ff392bc4dec07f8c779f317faacce3a0bf6f84e15020ac0fa81adb931067dbb0baf707b + languageName: node + linkType: hard + +"react-style-singleton@npm:^2.2.1": + version: 2.2.1 + resolution: "react-style-singleton@npm:2.2.1" + dependencies: + get-nonce: "npm:^1.0.0" + invariant: "npm:^2.2.4" + tslib: "npm:^2.0.0" + peerDependencies: + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/80c58fd6aac3594e351e2e7b048d8a5b09508adb21031a38b3c40911fe58295572eddc640d4b20a7be364842c8ed1120fe30097e22ea055316b375b88d4ff02a + languageName: node + linkType: hard + +"react-test-renderer@npm:18.3.1": + version: 18.3.1 + resolution: "react-test-renderer@npm:18.3.1" + dependencies: + react-is: "npm:^18.3.1" + react-shallow-renderer: "npm:^16.15.0" + scheduler: "npm:^0.23.2" + peerDependencies: + react: ^18.3.1 + checksum: 10/d53137315c677bdfba702a7179a69828233fc7635ae1e0c03b203923d643400ace72b343cb3dd3dafba8911c20bef53f55bff7aa2e4ddff3ccc423fdd9deeee2 + languageName: node + linkType: hard + "react-transition-group@npm:^4.4.5": version: 4.4.5 resolution: "react-transition-group@npm:4.4.5" @@ -20844,7 +27773,7 @@ __metadata: languageName: node linkType: hard -"react@npm:^16.8.0 || ^17.0.0 || ^18.0.0, react@npm:^18.2.0": +"react@npm:18.3.1, react@npm:^16.8.0 || ^17.0.0 || ^18.0.0, react@npm:^18.2.0": version: 18.3.1 resolution: "react@npm:18.3.1" dependencies: @@ -20883,7 +27812,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.0.2, readable-stream@npm:^2.3.8": +"readable-stream@npm:^2.0.2, readable-stream@npm:^2.3.8, readable-stream@npm:~2.3.6": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" dependencies: @@ -20950,6 +27879,13 @@ __metadata: languageName: node linkType: hard +"readline@npm:^1.3.0": + version: 1.3.0 + resolution: "readline@npm:1.3.0" + checksum: 10/2cb7c274333fe1ed55e1bd06c670a32bd9eae5324d8e1fafb9af5c128dfde85601d59defe47947788b0682d5e9efeae6b88ea5fe233d5236a02f382a0b0ad4c3 + languageName: node + linkType: hard + "real-require@npm:^0.1.0": version: 0.1.0 resolution: "real-require@npm:0.1.0" @@ -20968,6 +27904,18 @@ __metadata: languageName: node linkType: hard +"recast@npm:^0.21.0": + version: 0.21.5 + resolution: "recast@npm:0.21.5" + dependencies: + ast-types: "npm:0.15.2" + esprima: "npm:~4.0.0" + source-map: "npm:~0.6.1" + tslib: "npm:^2.0.1" + checksum: 10/b41da2bcf7e705511db2f27d17420ace027de8dd167de9f19190d4988a1f80d112f60c095101ac2f145c8657ddde0c5133eb71df20504efaf3fd9d76ad07e15d + languageName: node + linkType: hard + "recast@npm:^0.23.5": version: 0.23.9 resolution: "recast@npm:0.23.9" @@ -21046,6 +27994,29 @@ __metadata: languageName: node linkType: hard +"redux-devtools-expo-dev-plugin@npm:^1.0.0": + version: 1.0.0 + resolution: "redux-devtools-expo-dev-plugin@npm:1.0.0" + dependencies: + "@redux-devtools/instrument": "npm:^2.2.0" + "@redux-devtools/utils": "npm:^3.0.0" + jsan: "npm:^3.1.14" + peerDependencies: + expo: ">=52" + redux: "*" + checksum: 10/d77032f131703e68c8bc14e45b5981b5d817ad34d17abc6af3bc55b01b4c0e34050445a028de2b776d3f44a23a03314563d6e4e760634cb76ec473dcac4acfa1 + languageName: node + linkType: hard + +"redux-persist@npm:^6.0.0": + version: 6.0.0 + resolution: "redux-persist@npm:6.0.0" + peerDependencies: + redux: ">4.0.0" + checksum: 10/d3bf03fe8fc90f08985b88419eb32a21f727db2cfc93b486a8267b3884a22c665916a3dce1fd80e9e7d8180a849e5dc614b53e09e0a6803855899d7b3e652242 + languageName: node + linkType: hard + "redux-thunk@npm:^3.1.0": version: 3.1.0 resolution: "redux-thunk@npm:3.1.0" @@ -21085,6 +28056,13 @@ __metadata: languageName: node linkType: hard +"reftools@npm:^1.1.9": + version: 1.1.9 + resolution: "reftools@npm:1.1.9" + checksum: 10/6a124748f1c4af84bf651c31c76b7ed0a7f766533530a80cbf2d2517b26e6bfaadc0b1b3e399675343328ab861ab04881e64c8bc3c2f40fc7be27a8aacf8775e + languageName: node + linkType: hard + "regenerate-unicode-properties@npm:^10.2.0": version: 10.2.0 resolution: "regenerate-unicode-properties@npm:10.2.0" @@ -21101,6 +28079,13 @@ __metadata: languageName: node linkType: hard +"regenerator-runtime@npm:^0.13.2": + version: 0.13.11 + resolution: "regenerator-runtime@npm:0.13.11" + checksum: 10/d493e9e118abef5b099c78170834f18540c4933cedf9bfabc32d3af94abfb59a7907bd7950259cbab0a929ebca7db77301e8024e5121e6482a82f78283dfd20c + languageName: node + linkType: hard + "regenerator-runtime@npm:^0.14.0": version: 0.14.1 resolution: "regenerator-runtime@npm:0.14.1" @@ -21124,7 +28109,7 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.2, regexp.prototype.flags@npm:^1.5.3": +"regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.2, regexp.prototype.flags@npm:^1.5.3": version: 1.5.3 resolution: "regexp.prototype.flags@npm:1.5.3" dependencies: @@ -21282,6 +28267,13 @@ __metadata: languageName: node linkType: hard +"remove-trailing-slash@npm:^0.1.0": + version: 0.1.1 + resolution: "remove-trailing-slash@npm:0.1.1" + checksum: 10/dd200c6b7d6f2b49d12b3eff3abc7089917e8a268cefcd5bf67ff23f8c2ad9f866fbe2f3566e1a8dbdc4f4b1171e2941f7dd00852f8de549bb73c3df53b09d96 + languageName: node + linkType: hard + "renderkid@npm:^3.0.0": version: 3.0.0 resolution: "renderkid@npm:3.0.0" @@ -21325,6 +28317,17 @@ __metadata: languageName: node linkType: hard +"requireg@npm:^0.2.2": + version: 0.2.2 + resolution: "requireg@npm:0.2.2" + dependencies: + nested-error-stacks: "npm:~2.0.1" + rc: "npm:~1.2.7" + resolve: "npm:~1.7.1" + checksum: 10/ae3c7759448a8348307ad99f7487f4571a8e5319c5fc5e0499a8791839d1504f3baf61ca846b70731e1973a9243d9d1ef3b54f6f674a5d67d427c92a0d78b072 + languageName: node + linkType: hard + "requires-port@npm:^1.0.0": version: 1.0.0 resolution: "requires-port@npm:1.0.0" @@ -21355,6 +28358,13 @@ __metadata: languageName: node linkType: hard +"resolve-from@npm:^3.0.0": + version: 3.0.0 + resolution: "resolve-from@npm:3.0.0" + checksum: 10/c4189f1592a777f7d51c1ff6153df18b5d062c831fb0c623b4b87736c8a73c08e4eaab19e807399287040791f3e7aa0877f05f9d86739d3ef1ef0c727e9fe06c + languageName: node + linkType: hard + "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -21389,14 +28399,34 @@ __metadata: languageName: node linkType: hard -"resolve.exports@npm:^2.0.0": +"resolve-workspace-root@npm:^2.0.0": + version: 2.0.0 + resolution: "resolve-workspace-root@npm:2.0.0" + checksum: 10/c2de02d213ca327964bd2a1e6cbb17d96d2adbd738b6aa737129ed952ef4f7e52b79452599e1ef99c6cf4f109c937866b7f3abf34f8f41af376e1b08a03523a4 + languageName: node + linkType: hard + +"resolve.exports@npm:^2.0.0, resolve.exports@npm:^2.0.2": version: 2.0.3 resolution: "resolve.exports@npm:2.0.3" checksum: 10/536efee0f30a10fac8604e6cdc7844dbc3f4313568d09f06db4f7ed8a5b8aeb8585966fe975083d1f2dfbc87cf5f8bc7ab65a5c23385c14acbb535ca79f8398a languageName: node linkType: hard -"resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4, resolve@npm:^1.22.8": +"resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2, resolve@npm:^1.22.8": + version: 1.22.8 + resolution: "resolve@npm:1.22.8" + dependencies: + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10/c473506ee01eb45cbcfefb68652ae5759e092e6b0fb64547feadf9736a6394f258fbc6f88e00c5ca36d5477fbb65388b272432a3600fa223062e54333c156753 + languageName: node + linkType: hard + +"resolve@npm:^1.19.0, resolve@npm:^1.22.4": version: 1.22.9 resolution: "resolve@npm:1.22.9" dependencies: @@ -21422,7 +28452,29 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin": +"resolve@npm:~1.7.1": + version: 1.7.1 + resolution: "resolve@npm:1.7.1" + dependencies: + path-parse: "npm:^1.0.5" + checksum: 10/76697bb674d9de34dcfb837739878ad95b3e0021a198c88eb235d812a20d4b15b587e8e14342da41e2a83b6ca2e0c4bfd114d0329cc5b80c264925db1afe0251 + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin": + version: 1.22.8 + resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10/f345cd37f56a2c0275e3fe062517c650bb673815d885e7507566df589375d165bbbf4bdb6aa95600a9bc55f4744b81f452b5a63f95b9f10a72787dba3c90890a + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": version: 1.22.9 resolution: "resolve@patch:resolve@npm%3A1.22.9#optional!builtin::version=1.22.9&hash=c3c19d" dependencies: @@ -21448,6 +28500,25 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@npm%3A~1.7.1#optional!builtin": + version: 1.7.1 + resolution: "resolve@patch:resolve@npm%3A1.7.1#optional!builtin::version=1.7.1&hash=3bafbf" + dependencies: + path-parse: "npm:^1.0.5" + checksum: 10/3bfc4ed0768c158d320bdd1076875e2c783cba03985d6052cd5142ed971e413eb8f8a81753fc4f12f3051723356898bf9c5a24d6c988dfb9de9587f710ca692d + languageName: node + linkType: hard + +"restore-cursor@npm:^2.0.0": + version: 2.0.0 + resolution: "restore-cursor@npm:2.0.0" + dependencies: + onetime: "npm:^2.0.0" + signal-exit: "npm:^3.0.2" + checksum: 10/482e13d02d834b6e5e3aa90304a8b5e840775d6f06916cc92a50038adf9f098dcc72405b567da8a37e137ae40ad3e31896fa3136ae62f7a426c2fbf53d036536 + languageName: node + linkType: hard + "restore-cursor@npm:^3.1.0": version: 3.1.0 resolution: "restore-cursor@npm:3.1.0" @@ -21511,6 +28582,17 @@ __metadata: languageName: node linkType: hard +"rimraf@npm:~2.6.2": + version: 2.6.3 + resolution: "rimraf@npm:2.6.3" + dependencies: + glob: "npm:^7.1.3" + bin: + rimraf: ./bin.js + checksum: 10/756419f2fa99aa119c46a9fc03e09d84ecf5421a80a72d1944c5088c9e4671e77128527a900a313ed9d3fdbdd37e2ae05486cd7e9116d5812d8c31f2399d7c86 + languageName: node + linkType: hard + "ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1, ripemd160@npm:^2.0.2": version: 2.0.2 resolution: "ripemd160@npm:2.0.2" @@ -21661,7 +28743,7 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 10/32872cd0ff68a3ddade7a7617b8f4c2ae8764d8b7d884c651b74457967a9e0e886267d3ecc781220629c44a865167b61c375d2da6c720c840ecd73f45d5d9451 @@ -21750,7 +28832,7 @@ __metadata: languageName: node linkType: hard -"sax@npm:^1.2.4": +"sax@npm:>=0.6.0, sax@npm:^1.2.4": version: 1.4.1 resolution: "sax@npm:1.4.1" checksum: 10/b1c784b545019187b53a0c28edb4f6314951c971e2963a69739c6ce222bfbc767e54d320e689352daba79b7d5e06d22b5d7113b99336219d6e93718e2f99d335 @@ -21773,6 +28855,15 @@ __metadata: languageName: node linkType: hard +"scheduler@npm:0.24.0-canary-efb381bbf-20230505": + version: 0.24.0-canary-efb381bbf-20230505 + resolution: "scheduler@npm:0.24.0-canary-efb381bbf-20230505" + dependencies: + loose-envify: "npm:^1.1.0" + checksum: 10/862881c8d3ece854331516cc048e26a86af461e896ab412506a5b1ffcc82990a08445e0127545ab524df15f88c2a691d8505fc2226a9bddf99bf8a8425bdcc0e + languageName: node + linkType: hard + "scheduler@npm:^0.23.2": version: 0.23.2 resolution: "scheduler@npm:0.23.2" @@ -21789,6 +28880,17 @@ __metadata: languageName: node linkType: hard +"schema-utils@npm:^2.6.5": + version: 2.7.1 + resolution: "schema-utils@npm:2.7.1" + dependencies: + "@types/json-schema": "npm:^7.0.5" + ajv: "npm:^6.12.4" + ajv-keywords: "npm:^3.5.2" + checksum: 10/86c3038798981dbc702d5f6a86d4e4a308a2ec6e8eb1bf7d1a3ea95cb3f1972491833b76ce1c86a068652417019126d5b68219c33a9ad069358dd10429d4096d + languageName: node + linkType: hard + "schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0": version: 3.3.0 resolution: "schema-utils@npm:3.3.0" @@ -21812,6 +28914,18 @@ __metadata: languageName: node linkType: hard +"schema-utils@npm:^4.0.1": + version: 4.2.0 + resolution: "schema-utils@npm:4.2.0" + dependencies: + "@types/json-schema": "npm:^7.0.9" + ajv: "npm:^8.9.0" + ajv-formats: "npm:^2.1.1" + ajv-keywords: "npm:^5.1.0" + checksum: 10/808784735eeb153ab7f3f787f840aa3bc63f423d2a5a7e96c9e70a0e53d0bc62d7b37ea396fc598ce19196e4fb86a72f897154b7c6ce2358bbc426166f205e14 + languageName: node + linkType: hard + "scrypt-js@npm:3.0.1, scrypt-js@npm:^3.0.0": version: 3.0.1 resolution: "scrypt-js@npm:3.0.1" @@ -21870,7 +28984,17 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0": +"selfsigned@npm:^2.4.1": + version: 2.4.1 + resolution: "selfsigned@npm:2.4.1" + dependencies: + "@types/node-forge": "npm:^1.3.0" + node-forge: "npm:^1" + checksum: 10/52536623f1cfdeb2f8b9198377f2ce7931c677ea69421238d1dc1ea2983bbe258e56c19e7d1af87035cad7270f19b7e996eaab1212e724d887722502f68e17f2 + languageName: node + linkType: hard + +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.5.0, semver@npm:^5.6.0": version: 5.7.2 resolution: "semver@npm:5.7.2" bin: @@ -21879,7 +29003,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.6.3, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2, semver@npm:^7.6.3": +"semver@npm:7.6.3, semver@npm:^7.1.3, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.1, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2, semver@npm:^7.6.3, semver@npm:~7.6.3": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -21897,6 +29021,55 @@ __metadata: languageName: node linkType: hard +"send@npm:0.19.0": + version: 0.19.0 + resolution: "send@npm:0.19.0" + dependencies: + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:1.2.0" + encodeurl: "npm:~1.0.2" + escape-html: "npm:~1.0.3" + etag: "npm:~1.8.1" + fresh: "npm:0.5.2" + http-errors: "npm:2.0.0" + mime: "npm:1.6.0" + ms: "npm:2.1.3" + on-finished: "npm:2.4.1" + range-parser: "npm:~1.2.1" + statuses: "npm:2.0.1" + checksum: 10/1f6064dea0ae4cbe4878437aedc9270c33f2a6650a77b56a16b62d057527f2766d96ee282997dd53ec0339082f2aad935bc7d989b46b48c82fc610800dc3a1d0 + languageName: node + linkType: hard + +"send@npm:^0.19.0": + version: 0.19.1 + resolution: "send@npm:0.19.1" + dependencies: + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:1.2.0" + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + etag: "npm:~1.8.1" + fresh: "npm:0.5.2" + http-errors: "npm:2.0.0" + mime: "npm:1.6.0" + ms: "npm:2.1.3" + on-finished: "npm:2.4.1" + range-parser: "npm:~1.2.1" + statuses: "npm:2.0.1" + checksum: 10/360bf50a839c7bbc181f67c3a0f3424a7ad8016dfebcd9eb90891f4b762b4377da14414c32250d67b53872e884171c27469110626f6c22765caa7c38c207ee1d + languageName: node + linkType: hard + +"serialize-error@npm:^2.1.0": + version: 2.1.0 + resolution: "serialize-error@npm:2.1.0" + checksum: 10/28464a6f65e6becd6e49fb782aff06573fdbf3d19f161a20228179842fed05c75a34110e54c3ee020b00240f9e11d8bee9b9fee5d04e0bc0bef1fdbf2baa297e + languageName: node + linkType: hard + "serialize-javascript@npm:^6.0.1, serialize-javascript@npm:^6.0.2": version: 6.0.2 resolution: "serialize-javascript@npm:6.0.2" @@ -21906,6 +29079,25 @@ __metadata: languageName: node linkType: hard +"serve-static@npm:^1.13.1": + version: 1.16.2 + resolution: "serve-static@npm:1.16.2" + dependencies: + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + parseurl: "npm:~1.3.3" + send: "npm:0.19.0" + checksum: 10/7fa9d9c68090f6289976b34fc13c50ac8cd7f16ae6bce08d16459300f7fc61fbc2d7ebfa02884c073ec9d6ab9e7e704c89561882bbe338e99fcacb2912fde737 + languageName: node + linkType: hard + +"server-only@npm:^0.0.1": + version: 0.0.1 + resolution: "server-only@npm:0.0.1" + checksum: 10/c432348956641ea3f460af8dc3765f3a1bdbcf7a1e0205b0756d868e6e6fe8934cdee6bff68401a1dd49ba4a831c75916517a877446d54b334f7de36fa273e53 + languageName: node + linkType: hard + "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -21913,7 +29105,14 @@ __metadata: languageName: node linkType: hard -"set-function-length@npm:^1.2.2": +"set-cookie-parser@npm:^2.4.8": + version: 2.7.1 + resolution: "set-cookie-parser@npm:2.7.1" + checksum: 10/c92b1130032693342bca13ea1b1bc93967ab37deec4387fcd8c2a843c0ef2fd9a9f3df25aea5bb3976cd05a91c2cf4632dd6164d6e1814208fb7d7e14edd42b4 + languageName: node + linkType: hard + +"set-function-length@npm:^1.2.1, set-function-length@npm:^1.2.2": version: 1.2.2 resolution: "set-function-length@npm:1.2.2" dependencies: @@ -21939,6 +29138,16 @@ __metadata: languageName: node linkType: hard +"set-value@npm:^4.1.0": + version: 4.1.0 + resolution: "set-value@npm:4.1.0" + dependencies: + is-plain-object: "npm:^2.0.4" + is-primitive: "npm:^3.0.1" + checksum: 10/67eebb0d78be89242478daf8ab5357c59a35add1d7bdccdb56236e6004128a79bdf298c952e286b60b63ed17b24dcdb399734fbdacc9b76e7fd2e3e01546a42e + languageName: node + linkType: hard + "setimmediate@npm:^1.0.4, setimmediate@npm:^1.0.5": version: 1.0.5 resolution: "setimmediate@npm:1.0.5" @@ -21946,6 +29155,20 @@ __metadata: languageName: node linkType: hard +"setprototypeof@npm:1.2.0": + version: 1.2.0 + resolution: "setprototypeof@npm:1.2.0" + checksum: 10/fde1630422502fbbc19e6844346778f99d449986b2f9cdcceb8326730d2f3d9964dbcb03c02aaadaefffecd0f2c063315ebea8b3ad895914bf1afc1747fc172e + languageName: node + linkType: hard + +"sf-symbols-typescript@npm:^1.0.0": + version: 1.0.0 + resolution: "sf-symbols-typescript@npm:1.0.0" + checksum: 10/008ddfcadceb33ec29fb182104516234cc3f771254619696918481744bc28be51070f226859e4dfc2faf5f094dd8ca13e0364b2bb3d22e8cf044ce37f749df0b + languageName: node + linkType: hard + "sha.js@npm:^2.4.0, sha.js@npm:^2.4.11, sha.js@npm:^2.4.8": version: 2.4.11 resolution: "sha.js@npm:2.4.11" @@ -21958,6 +29181,22 @@ __metadata: languageName: node linkType: hard +"shallow-clone@npm:^3.0.0": + version: 3.0.1 + resolution: "shallow-clone@npm:3.0.1" + dependencies: + kind-of: "npm:^6.0.2" + checksum: 10/e066bd540cfec5e1b0f78134853e0d892d1c8945fb9a926a579946052e7cb0c70ca4fc34f875a8083aa7910d751805d36ae64af250a6de6f3d28f9fa7be6c21b + languageName: node + linkType: hard + +"shallowequal@npm:^1.1.0": + version: 1.1.0 + resolution: "shallowequal@npm:1.1.0" + checksum: 10/f4c1de0837f106d2dbbfd5d0720a5d059d1c66b42b580965c8f06bb1db684be8783538b684092648c981294bf817869f743a066538771dbecb293df78f765e00 + languageName: node + linkType: hard + "sharp@npm:^0.33.3, sharp@npm:^0.33.5": version: 0.33.5 resolution: "sharp@npm:0.33.5" @@ -22027,6 +29266,15 @@ __metadata: languageName: node linkType: hard +"shebang-command@npm:^1.2.0": + version: 1.2.0 + resolution: "shebang-command@npm:1.2.0" + dependencies: + shebang-regex: "npm:^1.0.0" + checksum: 10/9eed1750301e622961ba5d588af2212505e96770ec376a37ab678f965795e995ade7ed44910f5d3d3cb5e10165a1847f52d3348c64e146b8be922f7707958908 + languageName: node + linkType: hard + "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -22036,6 +29284,13 @@ __metadata: languageName: node linkType: hard +"shebang-regex@npm:^1.0.0": + version: 1.0.0 + resolution: "shebang-regex@npm:1.0.0" + checksum: 10/404c5a752cd40f94591dfd9346da40a735a05139dac890ffc229afba610854d8799aaa52f87f7e0c94c5007f2c6af55bdcaeb584b56691926c5eaf41dc8f1372 + languageName: node + linkType: hard + "shebang-regex@npm:^3.0.0": version: 3.0.0 resolution: "shebang-regex@npm:3.0.0" @@ -22043,6 +29298,69 @@ __metadata: languageName: node linkType: hard +"shell-quote@npm:^1.6.1": + version: 1.8.2 + resolution: "shell-quote@npm:1.8.2" + checksum: 10/3ae4804fd80a12ba07650d0262804ae3b479a62a6b6971a6dc5fa12995507aa63d3de3e6a8b7a8d18f4ce6eb118b7d75db7fcb2c0acbf016f210f746b10cfe02 + languageName: node + linkType: hard + +"should-equal@npm:^2.0.0": + version: 2.0.0 + resolution: "should-equal@npm:2.0.0" + dependencies: + should-type: "npm:^1.4.0" + checksum: 10/700e38f7815937f15e415b29df45ae22929c98c87979eb71e3a1085ba94cd0c601f435272eef3c9399ff74fa2d424df37ff03672f61ceda21630edcc77810744 + languageName: node + linkType: hard + +"should-format@npm:^3.0.3": + version: 3.0.3 + resolution: "should-format@npm:3.0.3" + dependencies: + should-type: "npm:^1.3.0" + should-type-adaptors: "npm:^1.0.1" + checksum: 10/099157f4f9bf458919bce8e981438e139c21789bb45f8b5cd8cf4bf01c5df498f1a1e666211bfd906b72b77d645a187563554ab38af807f8cd1aaf270e326186 + languageName: node + linkType: hard + +"should-type-adaptors@npm:^1.0.1": + version: 1.1.0 + resolution: "should-type-adaptors@npm:1.1.0" + dependencies: + should-type: "npm:^1.3.0" + should-util: "npm:^1.0.0" + checksum: 10/ca0fc7b24b916373e987b46e0c54db4aa824a80090a2fbff201679fd059240f4efabe415ffef9f5cfb99d85bf4241bdc3f212a9939724413203258a7dd73c24e + languageName: node + linkType: hard + +"should-type@npm:^1.3.0, should-type@npm:^1.4.0": + version: 1.4.0 + resolution: "should-type@npm:1.4.0" + checksum: 10/3e99a930fd43a47b0967fb5e8d0be31d9e2339c49267d3eabae014717012f4bd7cd942686fc49675114982240dcbfedba94ef49d0811b8f491c7cd74343bf97f + languageName: node + linkType: hard + +"should-util@npm:^1.0.0": + version: 1.0.1 + resolution: "should-util@npm:1.0.1" + checksum: 10/c3be15e0fdc851f8338676b3f8b590d330bbea94ec41c1343cc9983dea295915073f69a215795454b6adda6579ec8927c7c0ab178b83f9f11a0247ccdba53381 + languageName: node + linkType: hard + +"should@npm:^13.2.1": + version: 13.2.3 + resolution: "should@npm:13.2.3" + dependencies: + should-equal: "npm:^2.0.0" + should-format: "npm:^3.0.3" + should-type: "npm:^1.4.0" + should-type-adaptors: "npm:^1.0.1" + should-util: "npm:^1.0.0" + checksum: 10/4d3da94f11fee3db17be09673a73cd1939b0b75ebde102161eecef5559991deed691071ccab1d9289f4b69a45ef1a9d2362686a5f1ac530a43161d5832f6aa7d + languageName: node + linkType: hard + "side-channel-list@npm:^1.0.0": version: 1.0.0 resolution: "side-channel-list@npm:1.0.0" @@ -22091,7 +29409,7 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": +"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" checksum: 10/a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 @@ -22105,6 +29423,17 @@ __metadata: languageName: node linkType: hard +"simple-plist@npm:^1.1.0": + version: 1.4.0 + resolution: "simple-plist@npm:1.4.0" + dependencies: + bplist-creator: "npm:0.1.1" + bplist-parser: "npm:0.3.2" + plist: "npm:^3.0.5" + checksum: 10/e03f1619370d8d502543f2f9c6448722456dd2594e34d689eb8706c7c9e328c1ed5bef89280cb9e13426942ec1ab0f5655406ab70550be28b84fcccc304d447b + languageName: node + linkType: hard + "simple-swizzle@npm:^0.2.2": version: 0.2.2 resolution: "simple-swizzle@npm:0.2.2" @@ -22139,6 +29468,20 @@ __metadata: languageName: node linkType: hard +"slash@npm:^4.0.0": + version: 4.0.0 + resolution: "slash@npm:4.0.0" + checksum: 10/da8e4af73712253acd21b7853b7e0dbba776b786e82b010a5bfc8b5051a1db38ed8aba8e1e8f400dd2c9f373be91eb1c42b66e91abb407ff42b10feece5e1d2d + languageName: node + linkType: hard + +"slash@npm:^5.0.0": + version: 5.1.0 + resolution: "slash@npm:5.1.0" + checksum: 10/2c41ec6fb1414cd9bba0fa6b1dd00e8be739e3fe85d079c69d4b09ca5f2f86eafd18d9ce611c0c0f686428638a36c272a6ac14799146a8295f259c10cc45cde4 + languageName: node + linkType: hard + "slice-ansi@npm:^3.0.0": version: 3.0.0 resolution: "slice-ansi@npm:3.0.0" @@ -22181,6 +29524,13 @@ __metadata: languageName: node linkType: hard +"slugify@npm:^1.3.4, slugify@npm:^1.6.6": + version: 1.6.6 + resolution: "slugify@npm:1.6.6" + checksum: 10/d0737cdedc834c50f74227bc1a1cf4f449f3575893f031b0e8c59f501c73526c866a23e47261b262c7acdaaaaf30d6f9e8aaae22772b3f56e858ac84c35efa7b + languageName: node + linkType: hard + "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" @@ -22246,6 +29596,16 @@ __metadata: languageName: node linkType: hard +"sonner@npm:^0.3.5": + version: 0.3.5 + resolution: "sonner@npm:0.3.5" + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 10/ad42c64bf372b5659c07ed0ce615487f6b8ccb5c4a0eb69d113dd00da34a43129c17bf7cbf9ab0e7354910282a0030064f42e7443013d3d9dc9b06b7f4c5af53 + languageName: node + linkType: hard + "source-list-map@npm:^2.0.0": version: 2.0.1 resolution: "source-list-map@npm:2.0.1" @@ -22270,7 +29630,7 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:~0.5.20": +"source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.21, source-map-support@npm:~0.5.20, source-map-support@npm:~0.5.21": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: @@ -22280,6 +29640,13 @@ __metadata: languageName: node linkType: hard +"source-map@npm:0.5.6": + version: 0.5.6 + resolution: "source-map@npm:0.5.6" + checksum: 10/c62fe98e106c762307eea3a982242c1a76a31bc762da10fe2dda12252d423c163e0cd45d313330c8bd040cc5121702511138252308f72b8a9273825e81e4db30 + languageName: node + linkType: hard + "source-map@npm:0.6.1, source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" @@ -22287,7 +29654,7 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.5.7": +"source-map@npm:^0.5.6, source-map@npm:^0.5.7": version: 0.5.7 resolution: "source-map@npm:0.5.7" checksum: 10/9b4ac749ec5b5831cad1f8cc4c19c4298ebc7474b24a0acf293e2f040f03f8eeccb3d01f12aa0f90cf46d555c887e03912b83a042c627f419bda5152d89c5269 @@ -22379,6 +29746,15 @@ __metadata: languageName: node linkType: hard +"split@npm:^1.0.1": + version: 1.0.1 + resolution: "split@npm:1.0.1" + dependencies: + through: "npm:2" + checksum: 10/12f4554a5792c7e98bb3e22b53c63bfa5ef89aa704353e1db608a55b51f5b12afaad6e4a8ecf7843c15f273f43cdadd67b3705cc43d48a75c2cf4641d51f7e7a + languageName: node + linkType: hard + "sprintf-js@npm:^1.1.3": version: 1.1.3 resolution: "sprintf-js@npm:1.1.3" @@ -22414,6 +29790,15 @@ __metadata: languageName: node linkType: hard +"ssri@npm:^10.0.0": + version: 10.0.6 + resolution: "ssri@npm:10.0.6" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10/f92c1b3cc9bfd0a925417412d07d999935917bc87049f43ebec41074661d64cf720315661844106a77da9f8204b6d55ae29f9514e673083cae39464343af2a8b + languageName: node + linkType: hard + "ssri@npm:^12.0.0": version: 12.0.0 resolution: "ssri@npm:12.0.0" @@ -22437,6 +29822,15 @@ __metadata: languageName: node linkType: hard +"stack-generator@npm:^2.0.5": + version: 2.0.10 + resolution: "stack-generator@npm:2.0.10" + dependencies: + stackframe: "npm:^1.3.4" + checksum: 10/4fc3978a934424218a0aa9f398034e1f78153d5ff4f4ff9c62478c672debb47dd58de05b09fc3900530cbb526d72c93a6e6c9353bacc698e3b1c00ca3dda0c47 + languageName: node + linkType: hard + "stack-utils@npm:^2.0.3": version: 2.0.6 resolution: "stack-utils@npm:2.0.6" @@ -22453,6 +29847,50 @@ __metadata: languageName: node linkType: hard +"stacktrace-gps@npm:^3.0.4": + version: 3.1.2 + resolution: "stacktrace-gps@npm:3.1.2" + dependencies: + source-map: "npm:0.5.6" + stackframe: "npm:^1.3.4" + checksum: 10/21cb60ce0990f7a661e964cf4bdef1e70dda2286fb628fbd0fd1e69e8925138433d08ed84969de2d396b3b91515e15336a502f777c26587db89f3933d6f63f9b + languageName: node + linkType: hard + +"stacktrace-js@npm:^2.0.2": + version: 2.0.2 + resolution: "stacktrace-js@npm:2.0.2" + dependencies: + error-stack-parser: "npm:^2.0.6" + stack-generator: "npm:^2.0.5" + stacktrace-gps: "npm:^3.0.4" + checksum: 10/e5f60a09852687e4a9206927fe1078e24d63e00a71a2dcddd67940e9504a54931a3454439d5b4e3e0e62aeb979be810573e8d3332fbef0dbfa335a8781b4b57c + languageName: node + linkType: hard + +"stacktrace-parser@npm:^0.1.10": + version: 0.1.10 + resolution: "stacktrace-parser@npm:0.1.10" + dependencies: + type-fest: "npm:^0.7.1" + checksum: 10/f4fbddfc09121d91e587b60de4beb4941108e967d71ad3a171812dc839b010ca374d064ad0a296295fed13acd103609d99a4224a25b4e67de13cae131f1901ee + languageName: node + linkType: hard + +"statuses@npm:2.0.1": + version: 2.0.1 + resolution: "statuses@npm:2.0.1" + checksum: 10/18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb + languageName: node + linkType: hard + +"statuses@npm:~1.5.0": + version: 1.5.0 + resolution: "statuses@npm:1.5.0" + checksum: 10/c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c + languageName: node + linkType: hard + "std-env@npm:^3.7.0": version: 3.8.0 resolution: "std-env@npm:3.8.0" @@ -22460,7 +29898,14 @@ __metadata: languageName: node linkType: hard -"storybook@npm:^8.3.4": +"store2@npm:^2.14.3": + version: 2.14.3 + resolution: "store2@npm:2.14.3" + checksum: 10/f95f6fbacff14cc3bb9e5e16ced2f29e2d706e30b248c16cf19abed8b2bb31d8f3907c8ccf1a5284d806fdcaf06e96710e4f4f52195e51522a452536beaf7af9 + languageName: node + linkType: hard + +"storybook@npm:^8.3.4, storybook@npm:^8.4.2, storybook@npm:^8.4.6": version: 8.4.7 resolution: "storybook@npm:8.4.7" dependencies: @@ -22488,6 +29933,13 @@ __metadata: languageName: node linkType: hard +"stream-buffers@npm:2.2.x, stream-buffers@npm:~2.2.0": + version: 2.2.0 + resolution: "stream-buffers@npm:2.2.0" + checksum: 10/79f897cead810383b4181e4ee56f4855a69b51c9da4c96b91ccca6ee6fe90b908bea9b304225bedd1a5e2c41d72bc88d3ada7f897b51f8ffae3593f7460ecbc8 + languageName: node + linkType: hard + "stream-http@npm:^3.2.0": version: 3.2.0 resolution: "stream-http@npm:3.2.0" @@ -22507,6 +29959,13 @@ __metadata: languageName: node linkType: hard +"stream-slice@npm:^0.1.2": + version: 0.1.2 + resolution: "stream-slice@npm:0.1.2" + checksum: 10/6fa948ea58523f11f72e796f99579ff2bbecdff080d63b25762b0c0d282ac9a2d98af0f6e84dcc8d24c6284b2f7ce92ce0f9a1c8f77c91ac273954754e53c781 + languageName: node + linkType: hard + "streamsearch@npm:^1.1.0": version: 1.1.0 resolution: "streamsearch@npm:1.1.0" @@ -22545,6 +30004,16 @@ __metadata: languageName: node linkType: hard +"string-length@npm:^5.0.1": + version: 5.0.1 + resolution: "string-length@npm:5.0.1" + dependencies: + char-regex: "npm:^2.0.0" + strip-ansi: "npm:^7.0.1" + checksum: 10/71f73b8c8a743e01dcd001bcf1b197db78d5e5e53b12bd898cddaf0961be09f947dfd8c429783db3694b55b05cb5a51de6406c5085ff1aaa10c4771440c8396d + languageName: node + linkType: hard + "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -22712,6 +30181,15 @@ __metadata: languageName: node linkType: hard +"strip-ansi@npm:^5.2.0": + version: 5.2.0 + resolution: "strip-ansi@npm:5.2.0" + dependencies: + ansi-regex: "npm:^4.1.0" + checksum: 10/bdb5f76ade97062bd88e7723aa019adbfacdcba42223b19ccb528ffb9fb0b89a5be442c663c4a3fb25268eaa3f6ea19c7c3fbae830bd1562d55adccae1fcec46 + languageName: node + linkType: hard + "strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": version: 7.1.0 resolution: "strip-ansi@npm:7.1.0" @@ -22749,6 +30227,13 @@ __metadata: languageName: node linkType: hard +"strip-eof@npm:^1.0.0": + version: 1.0.0 + resolution: "strip-eof@npm:1.0.0" + checksum: 10/40bc8ddd7e072f8ba0c2d6d05267b4e0a4800898c3435b5fb5f5a21e6e47dfaff18467e7aa0d1844bb5d6274c3097246595841fbfeb317e541974ee992cac506 + languageName: node + linkType: hard + "strip-final-newline@npm:^2.0.0": version: 2.0.0 resolution: "strip-final-newline@npm:2.0.0" @@ -22797,6 +30282,20 @@ __metadata: languageName: node linkType: hard +"strip-json-comments@npm:~2.0.1": + version: 2.0.1 + resolution: "strip-json-comments@npm:2.0.1" + checksum: 10/1074ccb63270d32ca28edfb0a281c96b94dc679077828135141f27d52a5a398ef5e78bcf22809d23cadc2b81dfbe345eb5fd8699b385c8b1128907dec4a7d1e1 + languageName: node + linkType: hard + +"structured-headers@npm:^0.4.1": + version: 0.4.1 + resolution: "structured-headers@npm:0.4.1" + checksum: 10/26752f36ef9e8e1f5a8fded654250a781488172c45c41c4681a52cd0c730d17fbdc32cc15b0968c0bfa0787f429e053a4f0d23077187e5da2449b0d3e7c9c98a + languageName: node + linkType: hard + "sturdy-websocket@npm:^0.1.12": version: 0.1.12 resolution: "sturdy-websocket@npm:0.1.12" @@ -22833,6 +30332,16 @@ __metadata: languageName: node linkType: hard +"style-value-types@npm:5.0.0": + version: 5.0.0 + resolution: "style-value-types@npm:5.0.0" + dependencies: + hey-listen: "npm:^1.0.8" + tslib: "npm:^2.1.0" + checksum: 10/a4043bcc8e9f73e393c48f3f3d26f0ed42ac518cf623b1966737a17dc07ef9a4bcefaa81bfb91037c38b160a7683e139132c87fe747aebe6527b785a04262dd8 + languageName: node + linkType: hard + "styled-jsx@npm:5.1.6, styled-jsx@npm:^5.1.6": version: 5.1.6 resolution: "styled-jsx@npm:5.1.6" @@ -22849,6 +30358,13 @@ __metadata: languageName: node linkType: hard +"styleq@npm:^0.1.3": + version: 0.1.3 + resolution: "styleq@npm:0.1.3" + checksum: 10/9a75a1b635f8ebf5c0fdc3ffb56f466254f29aa1b2962ab2af776015d3b3bb1732a53edcda0c9ac9b97be96c22459db768feac0d61c1a319cc3954011ca9dcd8 + languageName: node + linkType: hard + "stylis@npm:4.2.0": version: 4.2.0 resolution: "stylis@npm:4.2.0" @@ -22871,6 +30387,38 @@ __metadata: languageName: node linkType: hard +"sucrase@npm:3.35.0": + version: 3.35.0 + resolution: "sucrase@npm:3.35.0" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.2" + commander: "npm:^4.0.0" + glob: "npm:^10.3.10" + lines-and-columns: "npm:^1.1.6" + mz: "npm:^2.7.0" + pirates: "npm:^4.0.1" + ts-interface-checker: "npm:^0.1.9" + bin: + sucrase: bin/sucrase + sucrase-node: bin/sucrase-node + checksum: 10/bc601558a62826f1c32287d4fdfa4f2c09fe0fec4c4d39d0e257fd9116d7d6227a18309721d4185ec84c9dc1af0d5ec0e05a42a337fbb74fc293e068549aacbe + languageName: node + linkType: hard + +"sudo-prompt@npm:9.1.1": + version: 9.1.1 + resolution: "sudo-prompt@npm:9.1.1" + checksum: 10/3cdabd32b446c0fab49284824adc991b3456c758b3b2a1429db518cb92c72df62fa364d6cd2fd258cbf72b01713e51c67b2915401b3f1c1b97baa5f49ca08788 + languageName: node + linkType: hard + +"sudo-prompt@npm:^8.2.0": + version: 8.2.5 + resolution: "sudo-prompt@npm:8.2.5" + checksum: 10/5977f72564dc49920a241a08dcae93e110f2e682381ad755b502a6f431548b9aa03169143c9e1a28fe4b430f206c9053128be7993c6d6d2b6d402ed5824ef74a + languageName: node + linkType: hard + "superjson@npm:^1.13.3": version: 1.13.3 resolution: "superjson@npm:1.13.3" @@ -22898,7 +30446,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^7.1.0": +"supports-color@npm:^7.0.0, supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" dependencies: @@ -22916,6 +30464,16 @@ __metadata: languageName: node linkType: hard +"supports-hyperlinks@npm:^2.0.0": + version: 2.3.0 + resolution: "supports-hyperlinks@npm:2.3.0" + dependencies: + has-flag: "npm:^4.0.0" + supports-color: "npm:^7.0.0" + checksum: 10/3e7df6e9eaa177d7bfbbe065c91325e9b482f48de0f7c9133603e3ffa8af31cbceac104a0941cd0266a57f8e691de6eb58b79fec237852dc84ed7ad152b116b0 + languageName: node + linkType: hard + "supports-preserve-symlinks-flag@npm:^1.0.0": version: 1.0.0 resolution: "supports-preserve-symlinks-flag@npm:1.0.0" @@ -22973,6 +30531,41 @@ __metadata: languageName: node linkType: hard +"swagger2openapi@npm:^7.0.4, swagger2openapi@npm:^7.0.8": + version: 7.0.8 + resolution: "swagger2openapi@npm:7.0.8" + dependencies: + call-me-maybe: "npm:^1.0.1" + node-fetch: "npm:^2.6.1" + node-fetch-h2: "npm:^2.3.0" + node-readfiles: "npm:^0.2.0" + oas-kit-common: "npm:^1.0.8" + oas-resolver: "npm:^2.5.6" + oas-schema-walker: "npm:^1.1.5" + oas-validator: "npm:^5.0.8" + reftools: "npm:^1.1.9" + yaml: "npm:^1.10.0" + yargs: "npm:^17.0.1" + bin: + boast: boast.js + oas-validate: oas-validate.js + swagger2openapi: swagger2openapi.js + checksum: 10/f95fe71d306ff2b5763aaa488465c4f111810a6a19f233d3ed63495a544c040d544b914921d8362e31137290bb249585e07944bd91fbb1ecad2ad6e60e9c5a72 + languageName: node + linkType: hard + +"swc-loader@npm:^0.2.3": + version: 0.2.6 + resolution: "swc-loader@npm:0.2.6" + dependencies: + "@swc/counter": "npm:^0.1.3" + peerDependencies: + "@swc/core": ^1.2.147 + webpack: ">=2" + checksum: 10/fe90948c02a51bb8ffcff1ce3590e01dc12860b0bb7c9e22052b14fa846ed437781ae265614a5e14344bea22001108780f00a6e350e28c0b3499bc4cd11335fb + languageName: node + linkType: hard + "symbol-tree@npm:^3.2.4": version: 3.2.4 resolution: "symbol-tree@npm:3.2.4" @@ -22997,6 +30590,13 @@ __metadata: languageName: node linkType: hard +"tabbable@npm:^6.0.0": + version: 6.2.0 + resolution: "tabbable@npm:6.2.0" + checksum: 10/980fa73476026e99dcacfc0d6e000d41d42c8e670faf4682496d30c625495e412c4369694f2a15cf1e5252d22de3c396f2b62edbe8d60b5dadc40d09e3f2dde3 + languageName: node + linkType: hard + "table-layout@npm:^1.0.2": version: 1.0.2 resolution: "table-layout@npm:1.0.2" @@ -23009,6 +30609,81 @@ __metadata: languageName: node linkType: hard +"table@npm:^6.8.1": + version: 6.9.0 + resolution: "table@npm:6.9.0" + dependencies: + ajv: "npm:^8.0.1" + lodash.truncate: "npm:^4.4.2" + slice-ansi: "npm:^4.0.0" + string-width: "npm:^4.2.3" + strip-ansi: "npm:^6.0.1" + checksum: 10/976da6d89841566e39628d1ba107ffab126964c9390a0a877a7c54ebb08820bf388d28fe9f8dcf354b538f19634a572a506c38a3762081640013a149cc862af9 + languageName: node + linkType: hard + +"tamagui@npm:^1.117.1": + version: 1.119.0 + resolution: "tamagui@npm:1.119.0" + dependencies: + "@tamagui/accordion": "npm:1.119.0" + "@tamagui/adapt": "npm:1.119.0" + "@tamagui/alert-dialog": "npm:1.119.0" + "@tamagui/animate-presence": "npm:1.119.0" + "@tamagui/avatar": "npm:1.119.0" + "@tamagui/button": "npm:1.119.0" + "@tamagui/card": "npm:1.119.0" + "@tamagui/checkbox": "npm:1.119.0" + "@tamagui/compose-refs": "npm:1.119.0" + "@tamagui/constants": "npm:1.119.0" + "@tamagui/core": "npm:1.119.0" + "@tamagui/create-context": "npm:1.119.0" + "@tamagui/dialog": "npm:1.119.0" + "@tamagui/elements": "npm:1.119.0" + "@tamagui/fake-react-native": "npm:1.119.0" + "@tamagui/focusable": "npm:1.119.0" + "@tamagui/font-size": "npm:1.119.0" + "@tamagui/form": "npm:1.119.0" + "@tamagui/get-button-sized": "npm:1.119.0" + "@tamagui/get-font-sized": "npm:1.119.0" + "@tamagui/get-token": "npm:1.119.0" + "@tamagui/group": "npm:1.119.0" + "@tamagui/helpers-tamagui": "npm:1.119.0" + "@tamagui/image": "npm:1.119.0" + "@tamagui/label": "npm:1.119.0" + "@tamagui/linear-gradient": "npm:1.119.0" + "@tamagui/list-item": "npm:1.119.0" + "@tamagui/polyfill-dev": "npm:1.119.0" + "@tamagui/popover": "npm:1.119.0" + "@tamagui/popper": "npm:1.119.0" + "@tamagui/portal": "npm:1.119.0" + "@tamagui/progress": "npm:1.119.0" + "@tamagui/radio-group": "npm:1.119.0" + "@tamagui/react-native-media-driver": "npm:1.119.0" + "@tamagui/scroll-view": "npm:1.119.0" + "@tamagui/select": "npm:1.119.0" + "@tamagui/separator": "npm:1.119.0" + "@tamagui/shapes": "npm:1.119.0" + "@tamagui/sheet": "npm:1.119.0" + "@tamagui/slider": "npm:1.119.0" + "@tamagui/stacks": "npm:1.119.0" + "@tamagui/switch": "npm:1.119.0" + "@tamagui/tabs": "npm:1.119.0" + "@tamagui/text": "npm:1.119.0" + "@tamagui/theme": "npm:1.119.0" + "@tamagui/toggle-group": "npm:1.119.0" + "@tamagui/tooltip": "npm:1.119.0" + "@tamagui/use-controllable-state": "npm:1.119.0" + "@tamagui/use-debounce": "npm:1.119.0" + "@tamagui/use-force-update": "npm:1.119.0" + "@tamagui/use-window-dimensions": "npm:1.119.0" + "@tamagui/visually-hidden": "npm:1.119.0" + peerDependencies: + react: "*" + checksum: 10/a04e9925e60536d3dd745ae301438888b3e564a489085c49829cc8fe4f54adc5a94b7a8dc1e62670a078780fe79d0a5f695f72926a2cbb79ecf0aba99bc321b3 + languageName: node + linkType: hard + "tapable@npm:^2.0.0, tapable@npm:^2.1.1, tapable@npm:^2.2.0, tapable@npm:^2.2.1": version: 2.2.1 resolution: "tapable@npm:2.2.1" @@ -23016,6 +30691,20 @@ __metadata: languageName: node linkType: hard +"tar@npm:^6.1.11, tar@npm:^6.2.1": + version: 6.2.1 + resolution: "tar@npm:6.2.1" + dependencies: + chownr: "npm:^2.0.0" + fs-minipass: "npm:^2.0.0" + minipass: "npm:^5.0.0" + minizlib: "npm:^2.1.1" + mkdirp: "npm:^1.0.3" + yallist: "npm:^4.0.0" + checksum: 10/bfbfbb2861888077fc1130b84029cdc2721efb93d1d1fb80f22a7ac3a98ec6f8972f29e564103bbebf5e97be67ebc356d37fa48dbc4960600a1eb7230fbd1ea0 + languageName: node + linkType: hard + "tar@npm:^7.4.3": version: 7.4.3 resolution: "tar@npm:7.4.3" @@ -23030,13 +30719,22 @@ __metadata: languageName: node linkType: hard -"temp-dir@npm:^2.0.0": +"temp-dir@npm:^2.0.0, temp-dir@npm:~2.0.0": version: 2.0.0 resolution: "temp-dir@npm:2.0.0" checksum: 10/cc4f0404bf8d6ae1a166e0e64f3f409b423f4d1274d8c02814a59a5529f07db6cd070a749664141b992b2c1af337fa9bb451a460a43bb9bcddc49f235d3115aa languageName: node linkType: hard +"temp@npm:^0.8.4": + version: 0.8.4 + resolution: "temp@npm:0.8.4" + dependencies: + rimraf: "npm:~2.6.2" + checksum: 10/0a7f76b49637415bc391c3f6e69377cc4c38afac95132b4158fa711e77b70b082fe56fd886f9d11ffab9d148df181a105a93c8b618fb72266eeaa5e5ddbfe37f + languageName: node + linkType: hard + "tempy@npm:^0.6.0": version: 0.6.0 resolution: "tempy@npm:0.6.0" @@ -23049,6 +30747,29 @@ __metadata: languageName: node linkType: hard +"tempy@npm:^0.7.1": + version: 0.7.1 + resolution: "tempy@npm:0.7.1" + dependencies: + del: "npm:^6.0.0" + is-stream: "npm:^2.0.0" + temp-dir: "npm:^2.0.0" + type-fest: "npm:^0.16.0" + unique-string: "npm:^2.0.0" + checksum: 10/265652f94eed077c311777e0290c4b4f3ec670c71c62c979efcbbd67ee506d677ff2741a72d7160556e9b0fba8fc5fbd7b3c482ac94c8acc48d85411f1f079c3 + languageName: node + linkType: hard + +"terminal-link@npm:^2.1.1": + version: 2.1.1 + resolution: "terminal-link@npm:2.1.1" + dependencies: + ansi-escapes: "npm:^4.2.1" + supports-hyperlinks: "npm:^2.0.0" + checksum: 10/ce3d2cd3a438c4a9453947aa664581519173ea40e77e2534d08c088ee6dda449eabdbe0a76d2a516b8b73c33262fedd10d5270ccf7576ae316e3db170ce6562f + languageName: node + linkType: hard + "terser-webpack-plugin@npm:^5.3.1, terser-webpack-plugin@npm:^5.3.10": version: 5.3.11 resolution: "terser-webpack-plugin@npm:5.3.11" @@ -23071,7 +30792,7 @@ __metadata: languageName: node linkType: hard -"terser@npm:^5.10.0, terser@npm:^5.17.4, terser@npm:^5.31.1": +"terser@npm:^5.10.0, terser@npm:^5.15.0, terser@npm:^5.17.4, terser@npm:^5.31.1": version: 5.37.0 resolution: "terser@npm:5.37.0" dependencies: @@ -23096,6 +30817,24 @@ __metadata: languageName: node linkType: hard +"thenify-all@npm:^1.0.0": + version: 1.6.0 + resolution: "thenify-all@npm:1.6.0" + dependencies: + thenify: "npm:>= 3.1.0 < 4" + checksum: 10/dba7cc8a23a154cdcb6acb7f51d61511c37a6b077ec5ab5da6e8b874272015937788402fd271fdfc5f187f8cb0948e38d0a42dcc89d554d731652ab458f5343e + languageName: node + linkType: hard + +"thenify@npm:>= 3.1.0 < 4": + version: 3.3.1 + resolution: "thenify@npm:3.3.1" + dependencies: + any-promise: "npm:^1.0.0" + checksum: 10/486e1283a867440a904e36741ff1a177faa827cf94d69506f7e3ae4187b9afdf9ec368b3d8da225c192bfe2eb943f3f0080594156bf39f21b57cd1411e2e7f6d + languageName: node + linkType: hard + "thread-stream@npm:^0.15.1": version: 0.15.2 resolution: "thread-stream@npm:0.15.2" @@ -23105,6 +30844,13 @@ __metadata: languageName: node linkType: hard +"throat@npm:^5.0.0": + version: 5.0.0 + resolution: "throat@npm:5.0.0" + checksum: 10/00f7197977d433d1c960edfaa6465c1217652999170ef3ecd8dbefa6add6e2304b321480523ae87354df285474ba2c5feff03842e9f398b4bcdd95cfa18cff9c + languageName: node + linkType: hard + "throttleit@npm:^1.0.0": version: 1.0.1 resolution: "throttleit@npm:1.0.1" @@ -23112,6 +30858,16 @@ __metadata: languageName: node linkType: hard +"through2@npm:^2.0.1": + version: 2.0.5 + resolution: "through2@npm:2.0.5" + dependencies: + readable-stream: "npm:~2.3.6" + xtend: "npm:~4.0.1" + checksum: 10/cd71f7dcdc7a8204fea003a14a433ef99384b7d4e31f5497e1f9f622b3cf3be3691f908455f98723bdc80922a53af7fa10c3b7abbe51c6fd3d536dbc7850e2c4 + languageName: node + linkType: hard + "through2@npm:~0.4.1": version: 0.4.2 resolution: "through2@npm:0.4.2" @@ -23122,7 +30878,7 @@ __metadata: languageName: node linkType: hard -"through@npm:^2.3.8": +"through@npm:2, through@npm:^2.3.8": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: 10/5da78346f70139a7d213b65a0106f3c398d6bc5301f9248b5275f420abc2c4b1e77c2abc72d218dedc28c41efb2e7c312cb76a7730d04f9c2d37d247da3f4198 @@ -23148,6 +30904,13 @@ __metadata: languageName: node linkType: hard +"timezone-mock@npm:^1.3.6": + version: 1.3.6 + resolution: "timezone-mock@npm:1.3.6" + checksum: 10/846a69fddb7df234b73eef38518f9385b1e1d33d066590823d144092493dd6e69f893bcd52cd7b3fdd049fafad46a8411aec9a5a6fbd4bf2ae835083455fcb52 + languageName: node + linkType: hard + "tiny-glob@npm:^0.2.9": version: 0.2.9 resolution: "tiny-glob@npm:0.2.9" @@ -23179,6 +30942,13 @@ __metadata: languageName: node linkType: hard +"tinycolor2@npm:^1.4.1": + version: 1.6.0 + resolution: "tinycolor2@npm:1.6.0" + checksum: 10/066c3acf4f82b81c58a0d3ab85f49407efe95ba87afc3c7a16b1d77625193dfbe10dd46c26d0a263c1137361dd5a6a68bff2fb71def5fb9b9aec940fb030bcd4 + languageName: node + linkType: hard + "tinyrainbow@npm:^1.2.0": version: 1.2.0 resolution: "tinyrainbow@npm:1.2.0" @@ -23211,6 +30981,15 @@ __metadata: languageName: node linkType: hard +"tmp@npm:^0.0.33": + version: 0.0.33 + resolution: "tmp@npm:0.0.33" + dependencies: + os-tmpdir: "npm:~1.0.2" + checksum: 10/09c0abfd165cff29b32be42bc35e80b8c64727d97dedde6550022e88fa9fd39a084660415ed8e3ebaa2aca1ee142f86df8b31d4196d4f81c774a3a20fd4b6abf + languageName: node + linkType: hard + "tmp@npm:~0.2.3": version: 0.2.3 resolution: "tmp@npm:0.2.3" @@ -23234,6 +31013,13 @@ __metadata: languageName: node linkType: hard +"toidentifier@npm:1.0.1": + version: 1.0.1 + resolution: "toidentifier@npm:1.0.1" + checksum: 10/952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45 + languageName: node + linkType: hard + "toml@npm:^3.0.0": version: 3.0.0 resolution: "toml@npm:3.0.0" @@ -23388,6 +31174,50 @@ __metadata: languageName: node linkType: hard +"ts-interface-checker@npm:^0.1.9": + version: 0.1.13 + resolution: "ts-interface-checker@npm:0.1.13" + checksum: 10/9f7346b9e25bade7a1050c001ec5a4f7023909c0e1644c5a96ae20703a131627f081479e6622a4ecee2177283d0069e651e507bedadd3904fc4010ab28ffce00 + languageName: node + linkType: hard + +"ts-jest@npm:29.2.5": + version: 29.2.5 + resolution: "ts-jest@npm:29.2.5" + dependencies: + bs-logger: "npm:^0.2.6" + ejs: "npm:^3.1.10" + fast-json-stable-stringify: "npm:^2.1.0" + jest-util: "npm:^29.0.0" + json5: "npm:^2.2.3" + lodash.memoize: "npm:^4.1.2" + make-error: "npm:^1.3.6" + semver: "npm:^7.6.3" + yargs-parser: "npm:^21.1.1" + peerDependencies: + "@babel/core": ">=7.0.0-beta.0 <8" + "@jest/transform": ^29.0.0 + "@jest/types": ^29.0.0 + babel-jest: ^29.0.0 + jest: ^29.0.0 + typescript: ">=4.3 <6" + peerDependenciesMeta: + "@babel/core": + optional: true + "@jest/transform": + optional: true + "@jest/types": + optional: true + babel-jest: + optional: true + esbuild: + optional: true + bin: + ts-jest: cli.js + checksum: 10/f89e562816861ec4510840a6b439be6145f688b999679328de8080dc8e66481325fc5879519b662163e33b7578f35243071c38beb761af34e5fe58e3e326a958 + languageName: node + linkType: hard + "ts-mixer@npm:^6.0.3": version: 6.0.4 resolution: "ts-mixer@npm:6.0.4" @@ -23405,6 +31235,44 @@ __metadata: languageName: node linkType: hard +"ts-node@npm:^10.9.2": + version: 10.9.2 + resolution: "ts-node@npm:10.9.2" + dependencies: + "@cspotcode/source-map-support": "npm:^0.8.0" + "@tsconfig/node10": "npm:^1.0.7" + "@tsconfig/node12": "npm:^1.0.7" + "@tsconfig/node14": "npm:^1.0.0" + "@tsconfig/node16": "npm:^1.0.2" + acorn: "npm:^8.4.1" + acorn-walk: "npm:^8.1.1" + arg: "npm:^4.1.0" + create-require: "npm:^1.1.0" + diff: "npm:^4.0.1" + make-error: "npm:^1.1.1" + v8-compile-cache-lib: "npm:^3.0.1" + yn: "npm:3.1.1" + peerDependencies: + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" + peerDependenciesMeta: + "@swc/core": + optional: true + "@swc/wasm": + optional: true + bin: + ts-node: dist/bin.js + ts-node-cwd: dist/bin-cwd.js + ts-node-esm: dist/bin-esm.js + ts-node-script: dist/bin-script.js + ts-node-transpile-only: dist/bin-transpile.js + ts-script: dist/bin-script-deprecated.js + checksum: 10/a91a15b3c9f76ac462f006fa88b6bfa528130dcfb849dd7ef7f9d640832ab681e235b8a2bc58ecde42f72851cc1d5d4e22c901b0c11aa51001ea1d395074b794 + languageName: node + linkType: hard + "ts-pnp@npm:^1.1.6": version: 1.2.0 resolution: "ts-pnp@npm:1.2.0" @@ -23431,7 +31299,7 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths-webpack-plugin@npm:^4.0.1": +"tsconfig-paths-webpack-plugin@npm:^4.0.1, tsconfig-paths-webpack-plugin@npm:^4.2.0": version: 4.2.0 resolution: "tsconfig-paths-webpack-plugin@npm:4.2.0" dependencies: @@ -23503,6 +31371,13 @@ __metadata: languageName: node linkType: hard +"turbo-stream@npm:2.4.0": + version: 2.4.0 + resolution: "turbo-stream@npm:2.4.0" + checksum: 10/7079bbc82b58340f783144cd669cc7e598288523103a8d68bb8a4c6bb28c64eccb71d389b33aab07788d3a9030638b795709e15cb8486f722b1cdac59cb58afc + languageName: node + linkType: hard + "tween-functions@npm:^1.2.0": version: 1.2.0 resolution: "tween-functions@npm:1.2.0" @@ -23575,6 +31450,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^0.7.1": + version: 0.7.1 + resolution: "type-fest@npm:0.7.1" + checksum: 10/0699b6011bb3f7fac5fd5385e2e09432cde08fa89283f24084f29db00ec69a5445cd3aa976438ec74fc552a9a96f4a04ed390b5cb62eb7483aa4b6e5b935e059 + languageName: node + linkType: hard + "type-fest@npm:^0.8.1": version: 0.8.1 resolution: "type-fest@npm:0.8.1" @@ -23582,13 +31464,20 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^2.14.0, type-fest@npm:^2.19.0": +"type-fest@npm:^2.14.0, type-fest@npm:^2.19.0, type-fest@npm:~2.19": version: 2.19.0 resolution: "type-fest@npm:2.19.0" checksum: 10/7bf9e8fdf34f92c8bb364c0af14ca875fac7e0183f2985498b77be129dc1b3b1ad0a6b3281580f19e48c6105c037fb966ad9934520c69c6434d17fd0af4eed78 languageName: node linkType: hard +"type-fest@npm:^4.30.0": + version: 4.30.0 + resolution: "type-fest@npm:4.30.0" + checksum: 10/46c733df4feb87dfd281fba4fa3913dc38b45136be35adffbcef95e13414105a4669476c1f8686680b9c98e59ed5dc85efe42caf67adbaa04f48dfc41f8330fa + languageName: node + linkType: hard + "type@npm:^2.7.2": version: 2.7.3 resolution: "type@npm:2.7.3" @@ -23678,6 +31567,22 @@ __metadata: languageName: node linkType: hard +"typescript-eslint@npm:^8.8.1": + version: 8.17.0 + resolution: "typescript-eslint@npm:8.17.0" + dependencies: + "@typescript-eslint/eslint-plugin": "npm:8.17.0" + "@typescript-eslint/parser": "npm:8.17.0" + "@typescript-eslint/utils": "npm:8.17.0" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/b6e15a85ae803c9b3863306f02ec2e049b76900f01d0d5fee0ec84e4417ba056c9d90361b1a0e2f21847ee7ee2bef96de5a8a0eba82dc8a4f49f0799e61c52b5 + languageName: node + linkType: hard + "typescript-plugin-css-modules@npm:^4.2.2": version: 4.2.3 resolution: "typescript-plugin-css-modules@npm:4.2.3" @@ -23704,7 +31609,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.4.5": +"typescript@npm:^5.4.5, typescript@npm:^5.5.4, typescript@npm:^5.6.3": version: 5.7.2 resolution: "typescript@npm:5.7.2" bin: @@ -23714,7 +31619,17 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.4.5#optional!builtin": +"typescript@npm:~5.3.3": + version: 5.3.3 + resolution: "typescript@npm:5.3.3" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/6e4e6a14a50c222b3d14d4ea2f729e79f972fa536ac1522b91202a9a65af3605c2928c4a790a4a50aa13694d461c479ba92cedaeb1e7b190aadaa4e4b96b8e18 + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A^5.4.5#optional!builtin, typescript@patch:typescript@npm%3A^5.5.4#optional!builtin, typescript@patch:typescript@npm%3A^5.6.3#optional!builtin": version: 5.7.2 resolution: "typescript@patch:typescript@npm%3A5.7.2#optional!builtin::version=5.7.2&hash=5786d5" bin: @@ -23724,6 +31639,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@npm%3A~5.3.3#optional!builtin": + version: 5.3.3 + resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/c93786fcc9a70718ba1e3819bab56064ead5817004d1b8186f8ca66165f3a2d0100fee91fa64c840dcd45f994ca5d615d8e1f566d39a7470fc1e014dbb4cf15d + languageName: node + linkType: hard + "typeson-registry@npm:^1.0.0-alpha.20": version: 1.0.0-alpha.39 resolution: "typeson-registry@npm:1.0.0-alpha.39" @@ -23763,7 +31688,7 @@ __metadata: languageName: node linkType: hard -"ua-parser-js@npm:^1.0.37": +"ua-parser-js@npm:^1.0.35, ua-parser-js@npm:^1.0.37": version: 1.0.39 resolution: "ua-parser-js@npm:1.0.39" bin: @@ -23860,6 +31785,13 @@ __metadata: languageName: node linkType: hard +"undici@npm:^6.11.1, undici@npm:^6.18.2": + version: 6.21.0 + resolution: "undici@npm:6.21.0" + checksum: 10/c8ff80dcadfcf613e7fe697c37519fca070fcf1cfccc69ffb6a7080a22e225eb79d232e9f70e32b099b3e67ac4216e8fd615e188cfb792e09df9233471ec17e0 + languageName: node + linkType: hard + "unenv@npm:^1.10.0": version: 1.10.0 resolution: "unenv@npm:1.10.0" @@ -23919,6 +31851,15 @@ __metadata: languageName: node linkType: hard +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: "npm:^4.0.0" + checksum: 10/8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + languageName: node + linkType: hard + "unique-filename@npm:^4.0.0": version: 4.0.0 resolution: "unique-filename@npm:4.0.0" @@ -23928,6 +31869,15 @@ __metadata: languageName: node linkType: hard +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: "npm:^0.1.4" + checksum: 10/40912a8963fc02fb8b600cf50197df4a275c602c60de4cac4f75879d3c48558cfac48de08a25cc10df8112161f7180b3bbb4d662aadb711568602f9eddee54f0 + languageName: node + linkType: hard + "unique-slug@npm:^5.0.0": version: 5.0.0 resolution: "unique-slug@npm:5.0.0" @@ -23937,7 +31887,7 @@ __metadata: languageName: node linkType: hard -"unique-string@npm:^2.0.0": +"unique-string@npm:^2.0.0, unique-string@npm:~2.0.0": version: 2.0.0 resolution: "unique-string@npm:2.0.0" dependencies: @@ -24042,6 +31992,13 @@ __metadata: languageName: node linkType: hard +"universalify@npm:^1.0.0": + version: 1.0.0 + resolution: "universalify@npm:1.0.0" + checksum: 10/095a808f2b915e3b89d29b6f3b4ee4163962b02fa5b7cb686970b8d0439f4ca789bc43f319b7cbb1ce552ae724e631d148e5aee9ce04c4f46a7fe0c5bbfd2b9e + languageName: node + linkType: hard + "universalify@npm:^2.0.0": version: 2.0.1 resolution: "universalify@npm:2.0.1" @@ -24049,6 +32006,13 @@ __metadata: languageName: node linkType: hard +"unpipe@npm:~1.0.0": + version: 1.0.0 + resolution: "unpipe@npm:1.0.0" + checksum: 10/4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2 + languageName: node + linkType: hard + "unplugin@npm:^1.3.1": version: 1.16.0 resolution: "unplugin@npm:1.16.0" @@ -24207,6 +32171,57 @@ __metadata: languageName: node linkType: hard +"use-callback-ref@npm:^1.3.0": + version: 1.3.2 + resolution: "use-callback-ref@npm:1.3.2" + dependencies: + tslib: "npm:^2.0.0" + peerDependencies: + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/3be76eae71b52ab233b4fde974eddeff72e67e6723100a0c0297df4b0d60daabedfa706ffb314d0a52645f2c1235e50fdbd53d99f374eb5df68c74d412e98a9b + languageName: node + linkType: hard + +"use-deep-compare@npm:^1.1.0": + version: 1.3.0 + resolution: "use-deep-compare@npm:1.3.0" + dependencies: + dequal: "npm:2.0.3" + peerDependencies: + react: ">=16.8.0" + checksum: 10/4412c771a195729b7ec1b1e885141b097001adfce1e206d26b70f379ffd7dcaf5eeefec66bf82dfbcbcefe61cacbd1d5b6749b56e48987d46c330853b9e457eb + languageName: node + linkType: hard + +"use-latest-callback@npm:^0.2.1": + version: 0.2.3 + resolution: "use-latest-callback@npm:0.2.3" + peerDependencies: + react: ">=16.8" + checksum: 10/5db2dc0d414508c768ba4d1a337bd73dd0fb2a77eccc9dd7051517b28cd71c849c5e9230b5c97fc76a3811c1500f210cb4e4ebb95fe20347e5f910509a8e533c + languageName: node + linkType: hard + +"use-sidecar@npm:^1.1.2": + version: 1.1.2 + resolution: "use-sidecar@npm:1.1.2" + dependencies: + detect-node-es: "npm:^1.1.0" + tslib: "npm:^2.0.0" + peerDependencies: + "@types/react": ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/ec99e31aefeb880f6dc4d02cb19a01d123364954f857811470ece32872f70d6c3eadbe4d073770706a9b7db6136f2a9fbf1bb803e07fbb21e936a47479281690 + languageName: node + linkType: hard + "use-sync-external-store@npm:1.2.0": version: 1.2.0 resolution: "use-sync-external-store@npm:1.2.0" @@ -24216,7 +32231,7 @@ __metadata: languageName: node linkType: hard -"use-sync-external-store@npm:^1.4.0": +"use-sync-external-store@npm:^1.2.2, use-sync-external-store@npm:^1.4.0": version: 1.4.0 resolution: "use-sync-external-store@npm:1.4.0" peerDependencies: @@ -24239,7 +32254,7 @@ __metadata: languageName: node linkType: hard -"util@npm:^0.12.4, util@npm:^0.12.5": +"util@npm:^0.12.3, util@npm:^0.12.4, util@npm:^0.12.5": version: 0.12.5 resolution: "util@npm:0.12.5" dependencies: @@ -24266,6 +32281,13 @@ __metadata: languageName: node linkType: hard +"utils-merge@npm:1.0.1": + version: 1.0.1 + resolution: "utils-merge@npm:1.0.1" + checksum: 10/5d6949693d58cb2e636a84f3ee1c6e7b2f9c16cb1d42d0ecb386d8c025c69e327205aa1c69e2868cc06a01e5e20681fbba55a4e0ed0cce913d60334024eae798 + languageName: node + linkType: hard + "uuid@npm:^10.0.0": version: 10.0.0 resolution: "uuid@npm:10.0.0" @@ -24275,7 +32297,16 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^8.3.2": +"uuid@npm:^7.0.3": + version: 7.0.3 + resolution: "uuid@npm:7.0.3" + bin: + uuid: dist/bin/uuid + checksum: 10/b2a4d30ecd6581015175487426558aafd7f7b4013a2e30802c128cc28cad9abe46ecd36c02f7fbcde7908fd4672334818d56a441c0871963d6bd89d911bef2ea + languageName: node + linkType: hard + +"uuid@npm:^8.0.0, uuid@npm:^8.3.2": version: 8.3.2 resolution: "uuid@npm:8.3.2" bin: @@ -24293,6 +32324,13 @@ __metadata: languageName: node linkType: hard +"v8-compile-cache-lib@npm:^3.0.1": + version: 3.0.1 + resolution: "v8-compile-cache-lib@npm:3.0.1" + checksum: 10/88d3423a52b6aaf1836be779cab12f7016d47ad8430dffba6edf766695e6d90ad4adaa3d8eeb512cc05924f3e246c4a4ca51e089dccf4402caa536b5e5be8961 + languageName: node + linkType: hard + "v8-to-istanbul@npm:^9.0.1": version: 9.3.0 resolution: "v8-to-istanbul@npm:9.3.0" @@ -24314,6 +32352,13 @@ __metadata: languageName: node linkType: hard +"validate-npm-package-name@npm:^5.0.0": + version: 5.0.1 + resolution: "validate-npm-package-name@npm:5.0.1" + checksum: 10/0d583a1af23aeffea7748742cf22b6802458736fb8b60323ba5949763824d46f796474b0e1b9206beb716f9d75269e19dbd7795d6b038b29d561be95dd827381 + languageName: node + linkType: hard + "valtio@npm:1.11.2": version: 1.11.2 resolution: "valtio@npm:1.11.2" @@ -24355,6 +32400,13 @@ __metadata: languageName: node linkType: hard +"vary@npm:~1.1.2": + version: 1.1.2 + resolution: "vary@npm:1.1.2" + checksum: 10/31389debef15a480849b8331b220782230b9815a8e0dbb7b9a8369559aed2e9a7800cd904d4371ea74f4c3527db456dc8e7ac5befce5f0d289014dbdf47b2242 + languageName: node + linkType: hard + "verror@npm:1.10.0": version: 1.10.0 resolution: "verror@npm:1.10.0" @@ -24429,6 +32481,13 @@ __metadata: languageName: node linkType: hard +"vlq@npm:^1.0.0": + version: 1.0.1 + resolution: "vlq@npm:1.0.1" + checksum: 10/0f4270cb3c498077a7ddd343e07ea164ac65cf05f3efd4332948fcb3d48e655538558e3fcdca7c78bb3c6790e0ef43c953efc7d9256c50415c3a5313f1e4192c + languageName: node + linkType: hard + "vm-browserify@npm:^1.1.2": version: 1.1.2 resolution: "vm-browserify@npm:1.1.2" @@ -24436,6 +32495,13 @@ __metadata: languageName: node linkType: hard +"w-json@npm:1.3.10, w-json@npm:^1.3.10": + version: 1.3.10 + resolution: "w-json@npm:1.3.10" + checksum: 10/bf3dfa4e8e2429fcf2b0456ba396245a0be719ff4fb04eec971536c3586cae7489c5ca5801848ecfbc2a454f37829a132f428acf9d457cebe43d5c70348e7a7b + languageName: node + linkType: hard + "w3c-xmlserializer@npm:^4.0.0": version: 4.0.0 resolution: "w3c-xmlserializer@npm:4.0.0" @@ -24445,7 +32511,7 @@ __metadata: languageName: node linkType: hard -"walker@npm:^1.0.8": +"walker@npm:^1.0.7, walker@npm:^1.0.8": version: 1.0.8 resolution: "walker@npm:1.0.8" dependencies: @@ -24454,6 +32520,13 @@ __metadata: languageName: node linkType: hard +"warn-once@npm:0.1.1, warn-once@npm:^0.1.0, warn-once@npm:^0.1.1": + version: 0.1.1 + resolution: "warn-once@npm:0.1.1" + checksum: 10/e6a5a1f5a8dba7744399743d3cfb571db4c3947897875d4962a7c5b1bf2195ab4518c838cb4cea652e71729f21bba2e98dc75686f5fccde0fabbd894e2ed0c0d + languageName: node + linkType: hard + "watchpack@npm:^2.4.1": version: 2.4.2 resolution: "watchpack@npm:2.4.2" @@ -24464,6 +32537,35 @@ __metadata: languageName: node linkType: hard +"wcwidth@npm:^1.0.1": + version: 1.0.1 + resolution: "wcwidth@npm:1.0.1" + dependencies: + defaults: "npm:^1.0.3" + checksum: 10/182ebac8ca0b96845fae6ef44afd4619df6987fe5cf552fdee8396d3daa1fb9b8ec5c6c69855acb7b3c1231571393bd1f0a4cdc4028d421575348f64bb0a8817 + languageName: node + linkType: hard + +"web-encoding@npm:1.1.5": + version: 1.1.5 + resolution: "web-encoding@npm:1.1.5" + dependencies: + "@zxing/text-encoding": "npm:0.9.0" + util: "npm:^0.12.3" + dependenciesMeta: + "@zxing/text-encoding": + optional: true + checksum: 10/243518cfa8388ac05eeb4041bd330d38c599476ff9a93239b386d1ba2af130089a2fcefb0cf65b385f989105ff460ae69dca7e42236f4d98dc776b04e558cdb5 + languageName: node + linkType: hard + +"web-streams-polyfill@npm:^3.1.1, web-streams-polyfill@npm:^3.3.2": + version: 3.3.3 + resolution: "web-streams-polyfill@npm:3.3.3" + checksum: 10/8e7e13501b3834094a50abe7c0b6456155a55d7571312b89570012ef47ec2a46d766934768c50aabad10a9c30dd764a407623e8bfcc74fcb58495c29130edea9 + languageName: node + linkType: hard + "webauthn-p256@npm:0.0.10": version: 0.0.10 resolution: "webauthn-p256@npm:0.0.10" @@ -24488,6 +32590,13 @@ __metadata: languageName: node linkType: hard +"webidl-conversions@npm:^5.0.0": + version: 5.0.0 + resolution: "webidl-conversions@npm:5.0.0" + checksum: 10/cea864dd9cf1f2133d82169a446fb94427ba089e4676f5895273ea085f165649afe587ae3f19f2f0370751a724bba2d96e9956d652b3e41ac1feaaa4376e2d70 + languageName: node + linkType: hard + "webidl-conversions@npm:^6.1.0": version: 6.1.0 resolution: "webidl-conversions@npm:6.1.0" @@ -24641,6 +32750,13 @@ __metadata: languageName: node linkType: hard +"whatwg-fetch@npm:^3.0.0": + version: 3.6.20 + resolution: "whatwg-fetch@npm:3.6.20" + checksum: 10/2b4ed92acd6a7ad4f626a6cb18b14ec982bbcaf1093e6fe903b131a9c6decd14d7f9c9ca3532663c2759d1bdf01d004c77a0adfb2716a5105465c20755a8c57c + languageName: node + linkType: hard + "whatwg-mimetype@npm:^3.0.0": version: 3.0.0 resolution: "whatwg-mimetype@npm:3.0.0" @@ -24648,6 +32764,17 @@ __metadata: languageName: node linkType: hard +"whatwg-url-without-unicode@npm:8.0.0-3": + version: 8.0.0-3 + resolution: "whatwg-url-without-unicode@npm:8.0.0-3" + dependencies: + buffer: "npm:^5.4.3" + punycode: "npm:^2.1.1" + webidl-conversions: "npm:^5.0.0" + checksum: 10/aa588b54b75304335c5e189f8572626f989364c2ac5be5a1643ac687c2501f044405e1eb5761d65a826f570befade5fe51a723d917e9ab7672bb65d14065e82f + languageName: node + linkType: hard + "whatwg-url@npm:^11.0.0": version: 11.0.0 resolution: "whatwg-url@npm:11.0.0" @@ -24743,7 +32870,7 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.2": +"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.2": version: 1.1.16 resolution: "which-typed-array@npm:1.1.16" dependencies: @@ -24756,6 +32883,17 @@ __metadata: languageName: node linkType: hard +"which@npm:^1.2.9": + version: 1.3.1 + resolution: "which@npm:1.3.1" + dependencies: + isexe: "npm:^2.0.0" + bin: + which: ./bin/which + checksum: 10/549dcf1752f3ee7fbb64f5af2eead4b9a2f482108b7de3e85c781d6c26d8cf6a52d37cfbe0642a155fa6470483fe892661a859c03157f24c669cf115f3bbab5e + languageName: node + linkType: hard + "which@npm:^2.0.1": version: 2.0.2 resolution: "which@npm:2.0.2" @@ -24787,6 +32925,13 @@ __metadata: languageName: node linkType: hard +"wonka@npm:^6.3.2": + version: 6.3.4 + resolution: "wonka@npm:6.3.4" + checksum: 10/0f102630182828268b57b54102003449b97abbc2483392239baf856a2fca7b72ae9be67c208415124a3d26a320674ed64387e9bf07a8d0badedb5f607d2ccfdc + languageName: node + linkType: hard + "word-wrap@npm:^1.2.5": version: 1.2.5 resolution: "word-wrap@npm:1.2.5" @@ -25105,6 +33250,17 @@ __metadata: languageName: node linkType: hard +"write-file-atomic@npm:^2.3.0": + version: 2.4.3 + resolution: "write-file-atomic@npm:2.4.3" + dependencies: + graceful-fs: "npm:^4.1.11" + imurmurhash: "npm:^0.1.4" + signal-exit: "npm:^3.0.2" + checksum: 10/15ce863dce07075d0decedd7c9094f4461e46139d28a758c53162f24c0791c16cd2e7a76baa5b47b1a851fbb51e16f2fab739afb156929b22628f3225437135c + languageName: node + linkType: hard + "write-file-atomic@npm:^4.0.2": version: 4.0.2 resolution: "write-file-atomic@npm:4.0.2" @@ -25160,7 +33316,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:8.18.0, ws@npm:^8.11.0, ws@npm:^8.18.0, ws@npm:^8.2.3": +"ws@npm:8.18.0, ws@npm:^8.11.0, ws@npm:^8.12.1, ws@npm:^8.18.0, ws@npm:^8.2.3": version: 8.18.0 resolution: "ws@npm:8.18.0" peerDependencies: @@ -25175,7 +33331,16 @@ __metadata: languageName: node linkType: hard -"ws@npm:^7.2.0, ws@npm:^7.3.1, ws@npm:^7.5.1": +"ws@npm:^6.2.3": + version: 6.2.3 + resolution: "ws@npm:6.2.3" + dependencies: + async-limiter: "npm:~1.0.0" + checksum: 10/19f8d1608317f4c98f63da6eebaa85260a6fe1ba459cbfedd83ebe436368177fb1e2944761e2392c6b7321cbb7a375c8a81f9e1be35d555b6b4647eb61eadd46 + languageName: node + linkType: hard + +"ws@npm:^7, ws@npm:^7.2.0, ws@npm:^7.3.1, ws@npm:^7.5.1, ws@npm:^7.5.10": version: 7.5.10 resolution: "ws@npm:7.5.10" peerDependencies: @@ -25190,6 +33355,16 @@ __metadata: languageName: node linkType: hard +"xcode@npm:^3.0.1": + version: 3.0.1 + resolution: "xcode@npm:3.0.1" + dependencies: + simple-plist: "npm:^1.1.0" + uuid: "npm:^7.0.3" + checksum: 10/539d7b808ccce648078c5ceb63c4f9c14a7018a7db688fe0ff55c7d59e685c67392f18e9f531ce524f8d71162e836714b8835fa0a8688e976d4a293b147917c3 + languageName: node + linkType: hard + "xml-name-validator@npm:^4.0.0": version: 4.0.0 resolution: "xml-name-validator@npm:4.0.0" @@ -25197,6 +33372,37 @@ __metadata: languageName: node linkType: hard +"xml2js@npm:0.6.0": + version: 0.6.0 + resolution: "xml2js@npm:0.6.0" + dependencies: + sax: "npm:>=0.6.0" + xmlbuilder: "npm:~11.0.0" + checksum: 10/717f44ceef3f749ac21b381f829ba6525eec78cb9a53638046739565900e505a8e8caa62a6850b0a94cfe57ebe1a29b5367d55c4f642a3d640b9f69ca1fc7c8c + languageName: node + linkType: hard + +"xmlbuilder@npm:^14.0.0": + version: 14.0.0 + resolution: "xmlbuilder@npm:14.0.0" + checksum: 10/c134bfd15bd6efe0af0306939a8cd667efb6aeace3779043c6bdf18373c0192146907a4ab442fc24e799419a3033e3c99ce41c43016bdf580d40f8ab0e0dc841 + languageName: node + linkType: hard + +"xmlbuilder@npm:^15.1.1": + version: 15.1.1 + resolution: "xmlbuilder@npm:15.1.1" + checksum: 10/e6f4bab2504afdd5f80491bda948894d2146756532521dbe7db33ae0931cd3000e3b4da19b3f5b3f51bedbd9ee06582144d28136d68bd1df96579ecf4d4404a2 + languageName: node + linkType: hard + +"xmlbuilder@npm:~11.0.0": + version: 11.0.1 + resolution: "xmlbuilder@npm:11.0.1" + checksum: 10/c8c3d208783718db5b285101a736cd8e6b69a5c265199a0739abaa93d1a1b7de5489fd16df4e776e18b2c98cb91f421a7349e99fd8c1ebeb44ecfed72a25091a + languageName: node + linkType: hard + "xmlchars@npm:^2.2.0": version: 2.2.0 resolution: "xmlchars@npm:2.2.0" @@ -25211,7 +33417,7 @@ __metadata: languageName: node linkType: hard -"xtend@npm:^4.0.2": +"xtend@npm:^4.0.2, xtend@npm:~4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" checksum: 10/ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a @@ -25321,7 +33527,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^17.3.1, yargs@npm:^17.7.2": +"yargs@npm:^17.0.1, yargs@npm:^17.3.1, yargs@npm:^17.6.2, yargs@npm:^17.7.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: @@ -25346,6 +33552,13 @@ __metadata: languageName: node linkType: hard +"yn@npm:3.1.1": + version: 3.1.1 + resolution: "yn@npm:3.1.1" + checksum: 10/2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 + languageName: node + linkType: hard + "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0"
Generated by IcoMoon