diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index e1a79fb4f00..00000000000 --- a/.eslintignore +++ /dev/null @@ -1,8 +0,0 @@ -__tests__ -node_modules -coverage -e2e/docker -android -ios - -.worktrees/ diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index d4c04cb38e2..00000000000 --- a/.eslintrc.js +++ /dev/null @@ -1,170 +0,0 @@ -module.exports = { - settings: { - 'import/resolver': { - node: { - extensions: ['.ts', '.tsx', '.js', '.ios.js', '.android.js', '.native.js', '.ios.tsx', '.android.tsx'] - }, - typescript: { - project: './tsconfig.json' - } - }, - 'import/parsers': { - '@typescript-eslint/parser': ['.ts', '.tsx'] - }, - react: { - version: 'detect' - } - }, - parser: '@babel/eslint-parser', - extends: [ - '@rocket.chat/eslint-config', - 'plugin:react/recommended', - 'plugin:react-hooks/recommended', - 'plugin:prettier/recommended', - 'prettier' - ], - parserOptions: { - sourceType: 'module', - ecmaVersion: 2024 - }, - plugins: ['import', 'react-native', '@babel'], - env: { - es6: true - }, - rules: { - 'import/extensions': [ - 'error', - 'ignorePackages', - { - js: 'warning', - jsx: 'warning', - ts: 'warning', - tsx: 'warning' - } - ], - 'import/named': 'error', - 'import/no-cycle': 'error', - 'import/no-unresolved': 'error', - 'import/order': [ - 'error', - { - 'newlines-between': 'ignore' - } - ], - 'react/display-name': 'off', - 'react/jsx-fragments': ['error', 'syntax'], - 'react/jsx-key': 'off', - 'react/no-direct-mutation-state': 'off', - 'react/prop-types': 'off', - 'react/react-in-jsx-scope': 'off', - 'react-hooks/set-state-in-effect': 'warn', - 'react-hooks/immutability': 'warn', - 'react-hooks/refs': 'warn', - 'react-native/no-color-literals': 'off', - 'react-native/no-inline-styles': 'off', - 'react-native/no-raw-text': 'off', - 'react-native/no-single-element-style-arrays': 'error', - 'react-native/no-unused-styles': 'error', - 'react-native/split-platform-components': 'off', - 'no-restricted-imports': [ - 'error', - { - paths: [ - { - name: 'react', - importNames: ['default'], - message: 'Import specific named exports from React instead.' - } - ] - } - ], - 'no-restricted-syntax': [ - 'error', - { - selector: 'MemberExpression[object.name="React"]', - message: 'Avoid React.* syntax. Use named imports: import { memo, useState } from "react"' - } - ], - 'no-unused-vars': 'off', - 'no-void': 'error', - 'new-cap': 'error', - 'require-await': 'error' - }, - overrides: [ - { - files: ['**/*.ts', '**/*.tsx'], - extends: [ - 'plugin:@typescript-eslint/recommended', - 'plugin:@typescript-eslint/eslint-recommended', - '@rocket.chat/eslint-config', - 'plugin:prettier/recommended', - 'prettier' - ], - parser: '@typescript-eslint/parser', - rules: { - '@typescript-eslint/ban-ts-comment': 'off', - '@typescript-eslint/ban-types': 'off', - '@typescript-eslint/consistent-type-imports': [ - 'error', - { - prefer: 'type-imports', - disallowTypeAnnotations: true, - fixStyle: 'inline-type-imports' - } - ], - '@typescript-eslint/indent': 'off', - '@typescript-eslint/no-dupe-class-members': 'error', - '@typescript-eslint/no-empty-function': 'off', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-extra-parens': 'off', - '@typescript-eslint/no-restricted-imports': [ - 'error', - { - paths: [ - { - name: 'react', - importNames: ['default'], - message: 'Import specific named exports from React instead.' - } - ] - } - ], - '@typescript-eslint/no-unused-vars': [ - 'error', - { - args: 'all', - argsIgnorePattern: '^_' - } - ], - '@typescript-eslint/no-var-requires': 'off', - 'no-return-assign': 'off', - 'no-dupe-class-members': 'off', - 'no-extra-parens': 'off', - 'no-restricted-imports': 'off', - 'no-spaced-func': 'off', - 'no-unused-vars': 'off', - 'no-useless-constructor': 'off', - 'no-use-before-define': 'off', - 'new-cap': 'off', - 'lines-between-class-members': 'off' - }, - settings: { - 'import/resolver': { - node: { - extensions: ['.js', '.ts', '.tsx'] - } - } - } - }, - { - files: ['jest.setup.js', '__mocks__/**/*.js', '**/*.test.{js,ts,tsx}'], - extends: ['plugin:jest/recommended'] - }, - { - files: ['index.js', 'app/**/*.{js,ts,tsx}'], - env: { - 'react-native/react-native': true - } - } - ] -}; diff --git a/.github/README.md b/.github/README.md index ca95c1c521d..e95718b3428 100644 --- a/.github/README.md +++ b/.github/README.md @@ -6,9 +6,9 @@ Maps which event triggers which workflow and how they call each other. | Workflow | Trigger | What runs | |---|---|---| -| [build-pr.yml](workflows/build-pr.yml) | `pull_request` (all branches) | ESLint + tests, PR changelog, Android + iOS store builds (gated), E2E build + Maestro shards on both platforms (gated) | -| [build-develop.yml](workflows/build-develop.yml) | `push: develop` | ESLint + tests, release changelog, Android + iOS store builds, seeds Android AVD + SDK caches for E2E shards | -| [prettier.yml](workflows/prettier.yml) | `push: * except master, develop, single-server` (main repo) | Auto-formats with Prettier + ESLint and commits any fixes back to the branch | +| [build-pr.yml](workflows/build-pr.yml) | `pull_request` (all branches) | Lint + tests, PR changelog, Android + iOS store builds (gated), E2E build + Maestro shards on both platforms (gated; `e2e-shards` narrows to the sniffler-impacted shards, or skips the stage on a confident-zero diff) | +| [build-develop.yml](workflows/build-develop.yml) | `push: develop` | Lint + tests, release changelog, Android + iOS store builds, seeds Android AVD + SDK caches for E2E shards | +| [prettier.yml](workflows/prettier.yml) | `push: * except master, develop, single-server` (main repo) | Auto-formats with Oxfmt + Oxlint and commits any fixes back to the branch | | [organize_translations.yml](workflows/organize_translations.yml) | `push` touching `app/i18n/locales/**.json` | Sorts JSON keys and commits the result | ## Call graph @@ -18,6 +18,7 @@ flowchart TD classDef entry fill:#d4e6f1,stroke:#2980b9 classDef reusable fill:#d5f5e3,stroke:#27ae60 classDef action fill:#fef9e7,stroke:#f39c12 + classDef gate fill:#f5e6f8,stroke:#8e44ad PR([build-pr.yml]):::entry DEV([build-develop.yml]):::entry @@ -44,13 +45,22 @@ flowchart TD PREAND[preinstall-android-sdk]:::action E2EACC[e2e-account]:::action + ESHARD[e2e-shards preflight]:::gate + ERESULT[e2e-result required check]:::gate + PR --> ESLINT PR --> BUILDAND PR --> BUILDIOS - PR --> E2EAND - PR --> E2EIOS - PR --> MASTAND - PR --> MASIOS + PR --> ESHARD + + ESHARD -->|should_run| E2EAND + ESHARD -->|should_run| E2EIOS + ESHARD -->|should_run| MASTAND + ESHARD -->|should_run| MASIOS + + MASTAND --> ERESULT + MASIOS --> ERESULT + ESHARD --> ERESULT DEV --> ESLINT DEV --> CHANGELOG @@ -90,4 +100,4 @@ flowchart TD | `android_build` | [build-android.yml](workflows/build-android.yml) — `build-hold` | Called with `trigger == pr` (i.e. from `build-pr.yml`) | | `upload_android` | [build-android.yml](workflows/build-android.yml) — `upload-hold` | Called with `trigger == pr`, after the Android build completes | | `ios_build` | [build-ios.yml](workflows/build-ios.yml) — `build-hold` | Called with `trigger == pr` (i.e. from `build-pr.yml`) | -| `approve_e2e_testing` | [build-pr.yml](workflows/build-pr.yml) — `e2e-hold` | Every `pull_request` run | +| `approve_e2e_testing` | [build-pr.yml](workflows/build-pr.yml) — `e2e-hold` | A `pull_request` run whose diff impacts at least one Maestro flow (`e2e-shards` sets `should_run == true`). A confident-zero diff skips the whole e2e stage, so no approval fires. | diff --git a/.github/scripts/__tests__/changed-runner.test.js b/.github/scripts/__tests__/changed-runner.test.js new file mode 100644 index 00000000000..cfe880495d7 --- /dev/null +++ b/.github/scripts/__tests__/changed-runner.test.js @@ -0,0 +1,198 @@ +// Tests for e2e-changed.sh: the local `pnpm e2e:changed ` runner. +// Unlike select-impacted-shards.sh, this script never writes to $GITHUB_OUTPUT — +// it is a pure CLI that gathers a CHANGED file set from git and execs straight +// into `pnpm exec sniffler run --changed ... -- maestro test ...`. Maestro is +// stubbed throughout: these tests prove the arg validation, the maestro guard, +// the merge-base fallback, and the CHANGED-gathering/invocation shape — actual +// Maestro flow execution needs a booted device and is out of scope here. +'use strict'; + +const path = require('path'); +const { runScript } = require('../testlib/runScript'); + +const SCRIPT = path.join(__dirname, '..', 'e2e-changed.sh'); + +// No-op maestro: its presence alone satisfies the `command -v maestro` guard. +const MAESTRO_NOOP = 'exit 0'; + +// Records its own invocation to stdout so the trailing `maestro test ...` +// tail (once sniffler forwards to it) shows up in the captured process output. +const MAESTRO_RECORDING = `echo "MAESTRO_ARGS:$*"\nexit 0`; + +// git stub: branches on the subcommand the script actually calls +// (merge-base / diff / ls-files). `mergeBase: null` simulates the +// unresolved-merge-base failure the script falls back on. +function gitStub({ mergeBase = 'deadbeef', diffFiles = [], untrackedFiles = [] } = {}) { + const diffBody = diffFiles.map(f => `echo '${f}'`).join('\n\t\t') || ':'; + const untrackedBody = untrackedFiles.map(f => `echo '${f}'`).join('\n\t\t') || ':'; + return ` +case "$1" in + merge-base) + ${mergeBase === null ? 'exit 1' : `echo '${mergeBase}'`} + ;; + diff) + ${diffBody} + ;; + ls-files) + ${untrackedBody} + ;; + *) + exit 0 + ;; +esac +`; +} + +// pnpm stub: only intercepts `pnpm exec sniffler ...` (the script's real +// invocation shape). Echoes its own args (proves the --changed set / tail +// command sniffler received), then either reports a confident zero or execs +// the trailing `maestro test ...` command so it shows up in stdout too. +function pnpmStub({ zero = false } = {}) { + return ` +if [ "$1 $2" = "exec sniffler" ]; then + echo "PNPM_ARGS:$*" + if [ "${zero}" = "true" ]; then + echo "sniffler: no impacted flows (confident zero)" + exit 0 + fi + while [ $# -gt 0 ] && [ "$1" != "--" ]; do + shift + done + shift + exec "$@" +fi +exit 0 +`; +} + +describe('e2e-changed.sh', () => { + describe('platform arg validation', () => { + test('missing platform arg prints usage and exits 2', () => { + const result = runScript(SCRIPT, { args: [] }); + expect(result.status).toBe(2); + expect(result.stderr).toContain('usage: pnpm e2e:changed '); + }); + + test('invalid platform arg prints usage and exits 2', () => { + const result = runScript(SCRIPT, { args: ['windows'] }); + expect(result.status).toBe(2); + expect(result.stderr).toContain('usage: pnpm e2e:changed '); + }); + }); + + describe('missing-maestro guard', () => { + test('valid platform but no maestro on PATH fires the guard', () => { + // Override PATH to a maestro-free set of dirs (no binDir stub either — + // the guard fires before any git/sniffler call, so none is needed). + const result = runScript(SCRIPT, { + args: ['android'], + env: { PATH: '/usr/bin:/bin:/opt/homebrew/bin' } + }); + expect(result.status).toBe(2); + expect(result.stderr).toContain('ERROR: maestro not found in PATH'); + }); + }); + + describe('merge-base failure fallback', () => { + test('unresolved merge-base against the default base exits 1 with an actionable error', () => { + const result = runScript(SCRIPT, { + args: ['android'], + stubs: { maestro: MAESTRO_NOOP, git: gitStub({ mergeBase: null }) } + }); + expect(result.status).toBe(1); + expect(result.stderr).toContain("cannot resolve merge-base against 'origin/develop'"); + expect(result.stderr).toContain('set E2E_BASE'); + }); + + test('E2E_BASE override is reflected in the failure message', () => { + const result = runScript(SCRIPT, { + args: ['ios'], + env: { E2E_BASE: 'origin/custom-base' }, + stubs: { maestro: MAESTRO_NOOP, git: gitStub({ mergeBase: null }) } + }); + expect(result.status).toBe(1); + expect(result.stderr).toContain("cannot resolve merge-base against 'origin/custom-base'"); + }); + }); + + describe('CHANGED set gathering', () => { + test('android: committed + uncommitted-tracked + untracked files are deduped, sorted, and forwarded to sniffler', () => { + const result = runScript(SCRIPT, { + args: ['android'], + stubs: { + maestro: MAESTRO_RECORDING, + git: gitStub({ + diffFiles: ['app/views/RoomView.tsx', 'app/actions/room.ts', 'app/actions/room.ts'], + untrackedFiles: ['app/actions/room.ts', 'app/views/NewFeature.tsx'] + }), + pnpm: pnpmStub() + } + }); + expect(result.status).toBe(0); + expect(result.stdout).toContain( + 'PNPM_ARGS:exec sniffler run --changed ' + + 'app/actions/room.ts app/views/NewFeature.tsx app/views/RoomView.tsx -- ' + + 'maestro test -e APP_ID=chat.rocket.android --exclude-tags=util --exclude-tags=ios-only' + ); + }); + + test('ios: platform selects the ios APP_ID and excludes android-only flows', () => { + const result = runScript(SCRIPT, { + args: ['ios'], + stubs: { + maestro: MAESTRO_RECORDING, + git: gitStub({ diffFiles: ['app/views/RoomView.tsx'] }), + pnpm: pnpmStub() + } + }); + expect(result.status).toBe(0); + expect(result.stdout).toContain( + 'PNPM_ARGS:exec sniffler run --changed app/views/RoomView.tsx -- ' + + 'maestro test -e APP_ID=chat.rocket.ios --exclude-tags=util --exclude-tags=android-only' + ); + }); + + test('sniffler forwards to maestro, which is invoked with the built command tail', () => { + const result = runScript(SCRIPT, { + args: ['android'], + stubs: { + maestro: MAESTRO_RECORDING, + git: gitStub({ diffFiles: ['app/views/RoomView.tsx'] }), + pnpm: pnpmStub() + } + }); + expect(result.status).toBe(0); + expect(result.stdout).toContain( + 'MAESTRO_ARGS:test -e APP_ID=chat.rocket.android --exclude-tags=util --exclude-tags=ios-only' + ); + }); + }); + + describe('confident zero', () => { + test('no changes at all vs base exits 0 cleanly without calling sniffler', () => { + const result = runScript(SCRIPT, { + args: ['android'], + stubs: { maestro: MAESTRO_NOOP, git: gitStub() } + // no pnpm stub: if the script reached the exec line, the real (unstubbed) + // pnpm would run and this test would fail or hang instead of passing. + }); + expect(result.status).toBe(0); + expect(result.stdout).toContain('No changes vs origin/develop — nothing to run.'); + expect(result.stdout).not.toContain('PNPM_ARGS'); + }); + + test('changes exist but sniffler reports no impacted flow: clean exit 0, maestro never runs', () => { + const result = runScript(SCRIPT, { + args: ['android'], + stubs: { + maestro: MAESTRO_RECORDING, + git: gitStub({ diffFiles: ['app/views/RoomView.tsx'] }), + pnpm: pnpmStub({ zero: true }) + } + }); + expect(result.status).toBe(0); + expect(result.stdout).toContain('sniffler: no impacted flows (confident zero)'); + expect(result.stdout).not.toContain('MAESTRO_ARGS'); + }); + }); +}); diff --git a/.github/scripts/__tests__/coverage.test.js b/.github/scripts/__tests__/coverage.test.js new file mode 100644 index 00000000000..af69d615ffc --- /dev/null +++ b/.github/scripts/__tests__/coverage.test.js @@ -0,0 +1,92 @@ +// Proves invariant (1) "no under-selection" against the REAL .sniffler/test-map.json +// and .sniffler/config.json: for each map-assertable diff in scenario-catalog.json +// (rows C1..C8), replicates sniffler's documented selection semantics in JS — +// root/ignore filtering, dependsOn glob matching, then flow -> test-N extraction +// the same way select-impacted-shards.sh does — and asserts the exact shard set. +// sniffler's own recommendation algorithm is trusted/out-of-scope; this only +// tests OUR map's globs and OUR config against real flow files on disk. +'use strict'; + +const fs = require('fs'); +const path = require('path'); +const micromatch = require('micromatch'); + +const REPO_ROOT = path.resolve(__dirname, '../../..'); + +const config = require('../../../.sniffler/config.json'); +const testMap = require('../../../.sniffler/test-map.json'); +const catalog = require('./fixtures/scenario-catalog.json'); + +// Mirrors the grep pattern in select-impacted-shards.sh: `^\s*-\s*['"]?test-N`. +const TEST_N_PATTERN = /^[ \t]*-[ \t]*['"]?test-(\d+)/gm; + +function extractShardsFromFlow(flowPath) { + const contents = fs.readFileSync(path.join(REPO_ROOT, flowPath), 'utf8'); + const shards = new Set(); + let match; + while ((match = TEST_N_PATTERN.exec(contents)) !== null) { + shards.add(Number(match[1])); + } + return shards; +} + +function isUnderSourceRoots(diffPath) { + return config.source.roots.some(root => micromatch.isMatch(diffPath, `${root}/**`)); +} + +function isIgnored(diffPath) { + return config.source.ignore.some(glob => micromatch.isMatch(diffPath, glob)); +} + +function matchedFlowsFor(diffPath) { + return testMap.filter(entry => entry.dependsOn.some(glob => micromatch.isMatch(diffPath, glob))).map(entry => entry.test); +} + +// Replicates select-impacted-shards.sh's documented happy path against the real +// map: runAllWhenChanged -> full; else filter by source roots/ignore, match +// dependsOn globs, then union the matched flows' `- test-N` tags. +function computeSelection(diffPaths) { + const fullShards = [...catalog.fullShards].sort((a, b) => a - b); + + if (diffPaths.some(p => config.tests.runAllWhenChanged.includes(p))) { + return { shards: fullShards, shouldRun: true }; + } + + const survivors = diffPaths.filter(p => isUnderSourceRoots(p) && !isIgnored(p)); + if (survivors.length === 0) { + return { shards: [], shouldRun: false }; + } + + const matchedFlows = new Set(survivors.flatMap(matchedFlowsFor)); + if (matchedFlows.size === 0) { + return { shards: [], shouldRun: false }; + } + + const shardSet = new Set(); + for (const flow of matchedFlows) { + for (const shard of extractShardsFromFlow(flow)) shardSet.add(shard); + } + + // Defensive: an impacted flow with no derivable tag must fall to full rather + // than under-select (mirrors select-impacted-shards.sh's own fallback). + if (shardSet.size === 0) { + return { shards: fullShards, shouldRun: true }; + } + + const shards = [...shardSet].sort((a, b) => a - b); + return { shards, shouldRun: true }; +} + +describe('sniffler shard selection against the real .sniffler map', () => { + const scenarios = catalog.scenarios.filter(s => s.assertableIn.includes('map')); + + test('catalog has map-assertable scenarios to run', () => { + expect(scenarios.length).toBeGreaterThan(0); + }); + + test.each(scenarios)('$id: $name', scenario => { + const { shards, shouldRun } = computeSelection(scenario.input.diff); + expect(shards).toEqual(scenario.expectedShards); + expect(shouldRun).toBe(scenario.expectedShouldRun); + }); +}); diff --git a/.github/scripts/__tests__/fixtures/flows/no-tag.yaml b/.github/scripts/__tests__/fixtures/flows/no-tag.yaml new file mode 100644 index 00000000000..be280b0733b --- /dev/null +++ b/.github/scripts/__tests__/fixtures/flows/no-tag.yaml @@ -0,0 +1,4 @@ +appId: ${APP_ID} +name: No Tag Test +tags: + - android-only diff --git a/.github/scripts/__tests__/fixtures/scenario-catalog.json b/.github/scripts/__tests__/fixtures/scenario-catalog.json new file mode 100644 index 00000000000..ac8c59666cf --- /dev/null +++ b/.github/scripts/__tests__/fixtures/scenario-catalog.json @@ -0,0 +1,164 @@ +{ + "_about": "Canonical scenario matrix for the sniffler-driven e2e selection system. Single source of truth consumed by the shard-script tests (select-impacted-shards.sh), the real-test-map coverage fixtures, and the same-PR CI orchestration observation. JSON so both a shell/bats harness (via jq) and a jest harness (via require) can read it. Expected shards are literal test-N integers, matching select-impacted-shards.sh $GITHUB_OUTPUT byte-for-byte. Home may be relocated once the test harness is settled.", + "fullShards": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], + "assertableInLegend": { + "script": "select-impacted-shards.sh run in isolation with stubbed sniffler/git/jq", + "map": "computed against the real .sniffler/test-map.json", + "ci": "observed on real build-pr.yml via a throwaway PR commit" + }, + "scenarios": [ + { + "id": "F1", + "name": "release lane forces full suite", + "category": "fall-to-full", + "input": { "env": { "IS_RELEASE_LANE": "true" } }, + "expectedShards": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], + "expectedShouldRun": true, + "assertableIn": ["script", "ci"] + }, + { + "id": "F2", + "name": "no base ref (not a PR / unset) falls to full", + "category": "fall-to-full", + "input": { "env": { "BASE_REF": "" } }, + "expectedShards": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], + "expectedShouldRun": true, + "assertableIn": ["script"] + }, + { + "id": "F3", + "name": "merge-base empty/fails falls to full (shallow clone, unfetched base, first run)", + "category": "fall-to-full", + "input": { "stub": { "git": "merge-base-empty" } }, + "expectedShards": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], + "expectedShouldRun": true, + "assertableIn": ["script"] + }, + { + "id": "F4", + "name": "sniffler nonzero exit falls to full", + "category": "fall-to-full", + "input": { "stub": { "sniffler": "exit1" } }, + "expectedShards": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], + "expectedShouldRun": true, + "assertableIn": ["script"] + }, + { + "id": "F5", + "name": "unparseable JSON falls to full", + "category": "fall-to-full", + "input": { "stub": { "sniffler": "stdout:not-json" } }, + "expectedShards": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], + "expectedShouldRun": true, + "assertableIn": ["script"] + }, + { + "id": "F5b", + "name": "valid JSON missing recommendedTests key falls to full (never confident-zero)", + "category": "fall-to-full", + "input": { "stub": { "sniffler": "stdout:{\"other\":true}" } }, + "expectedShards": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], + "expectedShouldRun": true, + "assertableIn": ["script"] + }, + { + "id": "F6", + "name": "run-all reason falls to full", + "category": "fall-to-full", + "input": { "stub": { "sniffler": "stdout:{\"recommendedTests\":[{\"test\":\"x\",\"reasons\":[{\"kind\":\"run-all\"}]}]}" } }, + "expectedShards": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], + "expectedShouldRun": true, + "assertableIn": ["script", "ci"] + }, + { + "id": "F7", + "name": "impacted flow with no derivable test-N tag falls to full (defensive)", + "category": "fall-to-full", + "input": { "stub": { "sniffler": "stdout:recommends a flow file with no `- test-N` tag" } }, + "expectedShards": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], + "expectedShouldRun": true, + "assertableIn": ["script"] + }, + { + "id": "Z1", + "name": "confident zero: exit 0 + no impacted flow skips the stage", + "category": "confident-zero", + "input": { "stub": { "sniffler": "stdout:{\"recommendedTests\":[]}" } }, + "expectedShards": [], + "expectedShouldRun": false, + "assertableIn": ["script"] + }, + { + "id": "C1", + "name": "narrow view: LanguageView -> one flow", + "category": "real-domain", + "input": { "diff": ["app/views/LanguageView/LanguageView.tsx"] }, + "expectedShards": [6], + "expectedShouldRun": true, + "assertableIn": ["map", "ci"] + }, + { + "id": "C2", + "name": "shared view fans wide: RoomView -> nine flows", + "category": "real-domain", + "input": { "diff": ["app/views/RoomView/index.tsx"] }, + "expectedShards": [3, 7, 9, 11, 12, 13, 14], + "expectedShouldRun": true, + "assertableIn": ["map", "ci"] + }, + { + "id": "C3", + "name": "shared saga fans wide: sagas/rooms.js -> twelve flows", + "category": "real-domain", + "input": { "diff": ["app/sagas/rooms.js"] }, + "expectedShards": [1, 5, 6, 7, 8, 11, 12, 13, 14], + "expectedShouldRun": true, + "assertableIn": ["map", "ci"] + }, + { + "id": "C4", + "name": "container glob (not a view): containers/markdown -> one flow", + "category": "real-domain", + "input": { "diff": ["app/containers/markdown/index.tsx"] }, + "expectedShards": [9], + "expectedShouldRun": true, + "assertableIn": ["map", "ci"] + }, + { + "id": "C5", + "name": "docs-only outside source roots -> no impact, skip", + "category": "confident-zero", + "input": { "diff": ["README.md"] }, + "expectedShards": [], + "expectedShouldRun": false, + "assertableIn": ["map", "ci"] + }, + { + "id": "C6", + "name": "ignored glob inside root (*.test.*) -> no impact, skip", + "category": "confident-zero", + "input": { "diff": ["app/views/RoomView/RoomView.test.tsx"] }, + "expectedShards": [], + "expectedShouldRun": false, + "assertableIn": ["map", "ci"] + }, + { + "id": "C7", + "name": "runAllWhenChanged (app-internal): sagas/index.js -> run-all -> full", + "category": "real-domain", + "input": { "diff": ["app/sagas/index.js"] }, + "expectedShards": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], + "expectedShouldRun": true, + "assertableIn": ["map", "ci"] + }, + { + "id": "C8", + "name": "runAllWhenChanged (non-app): package.json -> run-all -> full", + "category": "real-domain", + "input": { "diff": ["package.json"] }, + "expectedShards": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], + "expectedShouldRun": true, + "assertableIn": ["map", "ci"] + } + ] +} diff --git a/.github/scripts/__tests__/select-impacted-shards.test.js b/.github/scripts/__tests__/select-impacted-shards.test.js new file mode 100644 index 00000000000..9f00c11efe3 --- /dev/null +++ b/.github/scripts/__tests__/select-impacted-shards.test.js @@ -0,0 +1,186 @@ +// Tests for select-impacted-shards.sh: proves every uncertainty falls back to +// the full 14-shard suite (under-selection impossible) and that the +// confident-zero skip fires only on a genuinely empty impacted set. +// Expected values are read from scenario-catalog.json so this file stays in +// lockstep with the canonical matrix (rows F1, F2, F3, F4, F5, F5b, F6, F7, Z1). +'use strict'; + +const path = require('path'); +const { runScript } = require('../testlib/runScript'); +const catalog = require('./fixtures/scenario-catalog.json'); + +const REPO_ROOT = path.resolve(__dirname, '../../..'); +const SCRIPT = path.join(__dirname, '..', 'select-impacted-shards.sh'); + +const BASE_ENV = { + BASE_REF: 'develop', + HEAD_SHA: 'abc123', + FULL_SHARDS: JSON.stringify(catalog.fullShards) +}; + +function findScenario(id) { + const scenario = catalog.scenarios.find(s => s.id === id); + if (!scenario) { + throw new Error(`scenario ${id} not found in catalog`); + } + return scenario; +} + +// git stub: fetch always succeeds; merge-base echoes a fake sha, or nothing +// when simulating the shallow-clone / unfetched-base fall-to-full case. +function gitStub(mergeBaseEmpty = false) { + return ` +case "$1" in + fetch) exit 0 ;; + merge-base) + ${mergeBaseEmpty ? 'echo ""' : 'echo deadbeef'} + exit 0 + ;; + *) exit 0 ;; +esac +`; +} + +// pnpm stub: only "exec sniffler" is intercepted (matches the script's real +// invocation shape); anything else exits 0 untouched. +function pnpmStub(json, exitCode = 0) { + return ` +if [ "$1 $2" = "exec sniffler" ]; then + ${json === null ? '' : `echo '${json}'`} + exit ${exitCode} +fi +exit 0 +`; +} + +function expectScenario(result, scenario) { + expect(result.status).toBe(0); + expect(JSON.parse(result.shards)).toEqual(scenario.expectedShards); + expect(result.should_run).toBe(String(scenario.expectedShouldRun)); +} + +describe('select-impacted-shards.sh', () => { + describe('fall-to-full branches', () => { + test('F1: release lane forces full suite', () => { + const scenario = findScenario('F1'); + const result = runScript(SCRIPT, { + env: { ...BASE_ENV, IS_RELEASE_LANE: 'true' }, + stubs: { git: gitStub(), pnpm: pnpmStub('{"recommendedTests":[]}') } + }); + expectScenario(result, scenario); + }); + + test('F2: no base ref falls to full', () => { + const scenario = findScenario('F2'); + const result = runScript(SCRIPT, { + env: { ...BASE_ENV, BASE_REF: '' }, + stubs: { git: gitStub(), pnpm: pnpmStub('{"recommendedTests":[]}') } + }); + expectScenario(result, scenario); + }); + + test('F3: merge-base empty falls to full', () => { + const scenario = findScenario('F3'); + const result = runScript(SCRIPT, { + env: BASE_ENV, + stubs: { git: gitStub(true), pnpm: pnpmStub('{"recommendedTests":[]}') } + }); + expectScenario(result, scenario); + }); + + test('F4: sniffler nonzero exit falls to full', () => { + const scenario = findScenario('F4'); + const result = runScript(SCRIPT, { + env: BASE_ENV, + stubs: { git: gitStub(), pnpm: pnpmStub(null, 1) } + }); + expectScenario(result, scenario); + }); + + test('F5: unparseable JSON falls to full', () => { + const scenario = findScenario('F5'); + const result = runScript(SCRIPT, { + env: BASE_ENV, + stubs: { git: gitStub(), pnpm: pnpmStub('not-json') } + }); + expectScenario(result, scenario); + }); + + test('F5b: JSON missing recommendedTests key falls to full', () => { + const scenario = findScenario('F5b'); + const result = runScript(SCRIPT, { + env: BASE_ENV, + stubs: { git: gitStub(), pnpm: pnpmStub('{"other":true}') } + }); + expectScenario(result, scenario); + }); + + test('F6: run-all reason falls to full', () => { + const scenario = findScenario('F6'); + const result = runScript(SCRIPT, { + env: BASE_ENV, + stubs: { + git: gitStub(), + pnpm: pnpmStub('{"recommendedTests":[{"test":"x","reasons":[{"kind":"run-all"}]}]}') + } + }); + expectScenario(result, scenario); + }); + + test('F7: impacted flow with no derivable test-N tag falls to full', () => { + const scenario = findScenario('F7'); + const flowPath = path.join(REPO_ROOT, '.github/scripts/__tests__/fixtures/flows/no-tag.yaml'); + const result = runScript(SCRIPT, { + env: BASE_ENV, + stubs: { + git: gitStub(), + pnpm: pnpmStub(`{"recommendedTests":[{"test":"${flowPath}"}]}`) + } + }); + expectScenario(result, scenario); + }); + }); + + describe('confident-zero', () => { + test('Z1: exit 0 with no impacted flow skips the e2e stage', () => { + const scenario = findScenario('Z1'); + const result = runScript(SCRIPT, { + env: BASE_ENV, + stubs: { git: gitStub(), pnpm: pnpmStub('{"recommendedTests":[]}') } + }); + expectScenario(result, scenario); + }); + }); + + describe('happy path', () => { + test('single impacted flow maps to its shard', () => { + const flowPath = path.join(REPO_ROOT, '.maestro/tests/assorted/i18n.yaml'); // tags: test-6 + const result = runScript(SCRIPT, { + env: BASE_ENV, + stubs: { + git: gitStub(), + pnpm: pnpmStub(`{"recommendedTests":[{"test":"${flowPath}"}]}`) + } + }); + expect(result.status).toBe(0); + expect(JSON.parse(result.shards)).toEqual([6]); + expect(result.should_run).toBe('true'); + }); + + test('multiple impacted flows map to the sorted unique shard union', () => { + const flows = [ + path.join(REPO_ROOT, '.maestro/tests/assorted/i18n.yaml'), // test-6 + path.join(REPO_ROOT, '.maestro/tests/e2ee/e2e-encryption.yaml'), // test-3 + path.join(REPO_ROOT, '.maestro/tests/room/search.yaml') // test-13 + ]; + const json = JSON.stringify({ recommendedTests: flows.map(test => ({ test })) }); + const result = runScript(SCRIPT, { + env: BASE_ENV, + stubs: { git: gitStub(), pnpm: pnpmStub(json) } + }); + expect(result.status).toBe(0); + expect(JSON.parse(result.shards)).toEqual([3, 6, 13]); + expect(result.should_run).toBe('true'); + }); + }); +}); diff --git a/.github/scripts/__tests__/validate-test-map.test.js b/.github/scripts/__tests__/validate-test-map.test.js new file mode 100644 index 00000000000..37bfb264ddb --- /dev/null +++ b/.github/scripts/__tests__/validate-test-map.test.js @@ -0,0 +1,86 @@ +// Tests for validate-test-map.js: each of the 5 checks is proven against a +// purpose-built fixture under testlib/fixtures/maps// that triggers +// exactly that check, plus one fully-consistent fixture that passes clean. +// Fixtures live outside any __tests__ dir — jest's default testMatch +// collects every .js/.ts(x) file under __tests__ regardless of name, and the +// decoupled-gap / clean-pass fixtures need real app/sagas & app/stacks files. +'use strict'; + +const { spawnSync } = require('child_process'); +const path = require('path'); + +const SCRIPT = path.join(__dirname, '..', 'validate-test-map.js'); +const FIXTURES = path.join(__dirname, '..', 'testlib', 'fixtures', 'maps'); + +function runValidator(fixture) { + const result = spawnSync('node', [SCRIPT], { + encoding: 'utf8', + env: { ...process.env, TESTMAP_ROOT: path.join(FIXTURES, fixture) } + }); + return { status: result.status, stdout: result.stdout, stderr: result.stderr }; +} + +describe('validate-test-map', () => { + it('flags an orphan flow: test-N-tagged YAML with no test-map entry', () => { + const { status, stdout } = runValidator('orphan-flow'); + expect(status).toBe(1); + expect(stdout).toContain('::error file=.maestro/tests/orphan.yaml::Orphan flow'); + }); + + it('flags a dangling glob: dependsOn glob matching zero files on disk', () => { + const { status, stdout } = runValidator('dangling-glob'); + expect(status).toBe(1); + expect(stdout).toContain('::error file=.sniffler/test-map.json::Dangling glob: "app/views/Nope/**"'); + }); + + it('flags an uncovered view as a warning and exits 0', () => { + const { status, stdout } = runValidator('uncovered-view'); + expect(status).toBe(0); + expect(stdout).toContain('::warning file=app/views/SomeView::Uncovered view'); + }); + + it('does not let a view dir prefix-match a longer covered dir (SomeView vs SomeViewExtra/**)', () => { + const { status, stdout } = runValidator('prefix-collision'); + expect(status).toBe(0); + expect(stdout).toContain('::warning file=app/views/SomeView::Uncovered view'); + expect(stdout).not.toContain('::warning file=app/views/SomeViewExtra::'); + }); + + it('flags a stale runAllWhenChanged path missing on disk', () => { + const { status, stdout } = runValidator('stale-global'); + expect(status).toBe(1); + expect(stdout).toContain('::error file=app/nonexistent-global.txt::Stale global'); + }); + + // runAllWhenChanged entries may be globs — sniffler matches them as patterns, + // so an existsSync check would wrongly condemn every glob as stale. + it('accepts a runAllWhenChanged glob that matches at least one file', () => { + const { stdout } = runValidator('stale-global'); + expect(stdout).not.toContain('file=patches/**'); + }); + + it('flags a runAllWhenChanged glob that matches nothing on disk', () => { + const { status, stdout } = runValidator('stale-global'); + expect(status).toBe(1); + expect(stdout).toContain('::error file=native/**::Stale global'); + }); + + it('flags a decoupled gap: a saga file anchored in neither a dependsOn glob nor runAllWhenChanged', () => { + const { status, stdout } = runValidator('decoupled-gap'); + expect(status).toBe(1); + expect(stdout).toContain('::error file=app/sagas/foo.js::Decoupled gap'); + }); + + it('passes clean when every flow, glob, view, and global lines up', () => { + const { status, stdout } = runValidator('clean-pass'); + expect(status).toBe(0); + expect(stdout).not.toContain('::error'); + expect(stdout).not.toContain('::warning'); + expect(stdout).toContain('All checks passed'); + }); + + it('behaves identically with TESTMAP_ROOT unset (defaults to the real repo)', () => { + const result = spawnSync('node', [SCRIPT], { encoding: 'utf8', env: process.env }); + expect(result.status).toBe(0); + }); +}); diff --git a/.github/scripts/e2e-changed.sh b/.github/scripts/e2e-changed.sh new file mode 100755 index 00000000000..5ea1fccc1c8 --- /dev/null +++ b/.github/scripts/e2e-changed.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash +set -uo pipefail + +# Runs only the Maestro flows sniffler flags as impacted by the local change +# set, against an already-booted device with the app installed. Uses the same +# sniffler config as CI, but flow-granular (no shard matrix locally) and +# working-tree-aware, so an in-progress edit selects its flows before commit. +# +# Usage: pnpm e2e:changed +# E2E_BASE base ref to diff against (default: origin/develop) + +PLATFORM="${1:-}" +case "$PLATFORM" in + android) APP_ID="chat.rocket.android" OTHER_ONLY="ios-only" ;; + ios) APP_ID="chat.rocket.ios" OTHER_ONLY="android-only" ;; + *) + echo "usage: pnpm e2e:changed " >&2 + exit 2 + ;; +esac + +command -v maestro >/dev/null 2>&1 || { + echo "ERROR: maestro not found in PATH — install it and boot a device with the app." >&2 + exit 2 +} + +BASE="${E2E_BASE:-origin/develop}" +MERGE_BASE="$(git merge-base "$BASE" HEAD 2>/dev/null)" || { + echo "ERROR: cannot resolve merge-base against '$BASE' — fetch it or set E2E_BASE." >&2 + exit 1 +} + +# Committed branch work + uncommitted tracked edits + untracked files. +# Plain read loop (not mapfile) so it runs on macOS's bash 3.2. +CHANGED=() +while IFS= read -r file; do + [ -n "$file" ] && CHANGED+=("$file") +done < <( + { + git diff --name-only "$MERGE_BASE" -- + git ls-files --others --exclude-standard + } | sort -u +) + +if [ "${#CHANGED[@]}" -eq 0 ]; then + echo "No changes vs $BASE — nothing to run." + exit 0 +fi + +# sniffler selects impacted flows and appends them to the command; a confident +# zero (no impacted flow) runs nothing and exits 0. Tag excludes mirror +# run-maestro.sh so util + wrong-platform flows don't run locally. +exec pnpm exec sniffler run --changed "${CHANGED[@]}" -- \ + maestro test -e APP_ID="$APP_ID" --exclude-tags=util --exclude-tags="$OTHER_ONLY" diff --git a/.github/scripts/select-impacted-shards.sh b/.github/scripts/select-impacted-shards.sh new file mode 100755 index 00000000000..c1a46b1b72f --- /dev/null +++ b/.github/scripts/select-impacted-shards.sh @@ -0,0 +1,72 @@ +#!/usr/bin/env bash +set -uo pipefail + +# Narrows the Maestro shard matrix to the shards sniffler flags as impacted by +# the PR diff. Every uncertainty falls back to the full shard list, so +# under-selection is impossible; over-selection is always acceptable. +# +# Emits to $GITHUB_OUTPUT: +# shards JSON int array of shards to run +# should_run "true" to run e2e; "false" only on a confident zero (no impacted +# flow), which skips the whole e2e stage. +# +# Env: +# IS_RELEASE_LANE "true" forces the full suite (release-cut / release label) +# BASE_REF PR base branch name (github.event.pull_request.base.ref) +# HEAD_SHA PR head commit sha (github.event.pull_request.head.sha) +# FULL_SHARDS the guaranteed [1..14] list from assert-maestro-shards.sh + +emit() { + echo "shards=$1" >>"$GITHUB_OUTPUT" + echo "should_run=$2" >>"$GITHUB_OUTPUT" +} + +full() { + emit "$FULL_SHARDS" "true" + exit 0 +} + +# 1. Release lane -> full suite. +[ "${IS_RELEASE_LANE:-}" = "true" ] && full + +# 2. No base ref (not a PR / unset) -> full. +[ -z "${BASE_REF:-}" ] && full + +# 3. merge-base fails/empty -> full (absorbs shallow clone, unfetched base, first run). +git fetch --no-tags --quiet origin "$BASE_REF" 2>/dev/null || true +BASE_SHA="$(git merge-base "origin/$BASE_REF" "$HEAD_SHA" 2>/dev/null)" || true +[ -z "$BASE_SHA" ] && full + +# 4. sniffler nonzero exit -> full. +json="$(pnpm exec sniffler impact --base "$BASE_SHA" --head "$HEAD_SHA" --format json)" || full + +# 5. JSON unparseable -> full. +echo "$json" | jq -e . >/dev/null 2>&1 || full + +# 5b. Missing recommendedTests key -> full (a valid-but-malformed payload must +# never fall through to the confident-zero skip below). +echo "$json" | jq -e 'has("recommendedTests")' >/dev/null 2>&1 || full + +# 6. run-all reason -> full (provably covers 1..14). +if echo "$json" | jq -e 'any(.recommendedTests[].reasons[]?; .kind == "run-all")' >/dev/null; then + full +fi + +# Happy path: recommendedTests[].test (flow paths) -> each flow's test-N tag. +paths="$(echo "$json" | jq -r '.recommendedTests[].test')" + +# Confident zero: exit 0 + no impacted flow -> skip the whole e2e stage. +if [ -z "$paths" ]; then + emit "[]" "false" + exit 0 +fi + +# Match the same `- test-N` list-item shape assert-maestro-shards.sh / run-maestro.sh grep. +shards="$(for f in $paths; do + grep -hoE "^[[:space:]]*-[[:space:]]*['\"]?test-[0-9]+" "$f" 2>/dev/null | grep -oE '[0-9]+' +done | sort -n -u | jq -R . | jq -cs 'map(tonumber)')" + +# Defensive: impacted flows with no derivable tag -> full rather than under-select. +[ "$shards" = "[]" ] && full + +emit "$shards" "true" diff --git a/.github/scripts/testlib/fixtures/maps/clean-pass/.maestro/tests/foo.yaml b/.github/scripts/testlib/fixtures/maps/clean-pass/.maestro/tests/foo.yaml new file mode 100644 index 00000000000..5594b52c46b --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/clean-pass/.maestro/tests/foo.yaml @@ -0,0 +1,2 @@ +tags: + - test-1 diff --git a/.github/scripts/testlib/fixtures/maps/clean-pass/.sniffler/config.json b/.github/scripts/testlib/fixtures/maps/clean-pass/.sniffler/config.json new file mode 100644 index 00000000000..b613255dfb6 --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/clean-pass/.sniffler/config.json @@ -0,0 +1,5 @@ +{ + "tests": { + "runAllWhenChanged": ["app/stacks/bar.tsx"] + } +} diff --git a/.github/scripts/testlib/fixtures/maps/clean-pass/.sniffler/test-map.json b/.github/scripts/testlib/fixtures/maps/clean-pass/.sniffler/test-map.json new file mode 100644 index 00000000000..53a05f8dd0c --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/clean-pass/.sniffler/test-map.json @@ -0,0 +1,6 @@ +[ + { + "test": ".maestro/tests/foo.yaml", + "dependsOn": ["app/views/Foo/**", "app/sagas/foo.js"] + } +] diff --git a/.github/scripts/testlib/fixtures/maps/clean-pass/app/sagas/foo.js b/.github/scripts/testlib/fixtures/maps/clean-pass/app/sagas/foo.js new file mode 100644 index 00000000000..f053ebf7976 --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/clean-pass/app/sagas/foo.js @@ -0,0 +1 @@ +module.exports = {}; diff --git a/.github/scripts/testlib/fixtures/maps/clean-pass/app/stacks/bar.tsx b/.github/scripts/testlib/fixtures/maps/clean-pass/app/stacks/bar.tsx new file mode 100644 index 00000000000..ff8b4c56321 --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/clean-pass/app/stacks/bar.tsx @@ -0,0 +1 @@ +export default {}; diff --git a/.github/scripts/testlib/fixtures/maps/clean-pass/app/views/Foo/placeholder.txt b/.github/scripts/testlib/fixtures/maps/clean-pass/app/views/Foo/placeholder.txt new file mode 100644 index 00000000000..48cdce85287 --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/clean-pass/app/views/Foo/placeholder.txt @@ -0,0 +1 @@ +placeholder diff --git a/.github/scripts/testlib/fixtures/maps/dangling-glob/.maestro/tests/.gitkeep b/.github/scripts/testlib/fixtures/maps/dangling-glob/.maestro/tests/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/.github/scripts/testlib/fixtures/maps/dangling-glob/.sniffler/config.json b/.github/scripts/testlib/fixtures/maps/dangling-glob/.sniffler/config.json new file mode 100644 index 00000000000..6b70da1690a --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/dangling-glob/.sniffler/config.json @@ -0,0 +1,5 @@ +{ + "tests": { + "runAllWhenChanged": [] + } +} diff --git a/.github/scripts/testlib/fixtures/maps/dangling-glob/.sniffler/test-map.json b/.github/scripts/testlib/fixtures/maps/dangling-glob/.sniffler/test-map.json new file mode 100644 index 00000000000..7f7100477d4 --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/dangling-glob/.sniffler/test-map.json @@ -0,0 +1,6 @@ +[ + { + "test": ".maestro/tests/flow.yaml", + "dependsOn": ["app/views/Nope/**"] + } +] diff --git a/.github/scripts/testlib/fixtures/maps/dangling-glob/app/views/.gitkeep b/.github/scripts/testlib/fixtures/maps/dangling-glob/app/views/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/.github/scripts/testlib/fixtures/maps/decoupled-gap/.maestro/tests/.gitkeep b/.github/scripts/testlib/fixtures/maps/decoupled-gap/.maestro/tests/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/.github/scripts/testlib/fixtures/maps/decoupled-gap/.sniffler/config.json b/.github/scripts/testlib/fixtures/maps/decoupled-gap/.sniffler/config.json new file mode 100644 index 00000000000..6b70da1690a --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/decoupled-gap/.sniffler/config.json @@ -0,0 +1,5 @@ +{ + "tests": { + "runAllWhenChanged": [] + } +} diff --git a/.github/scripts/testlib/fixtures/maps/decoupled-gap/.sniffler/test-map.json b/.github/scripts/testlib/fixtures/maps/decoupled-gap/.sniffler/test-map.json new file mode 100644 index 00000000000..fe51488c706 --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/decoupled-gap/.sniffler/test-map.json @@ -0,0 +1 @@ +[] diff --git a/.github/scripts/testlib/fixtures/maps/decoupled-gap/app/sagas/foo.js b/.github/scripts/testlib/fixtures/maps/decoupled-gap/app/sagas/foo.js new file mode 100644 index 00000000000..f053ebf7976 --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/decoupled-gap/app/sagas/foo.js @@ -0,0 +1 @@ +module.exports = {}; diff --git a/.github/scripts/testlib/fixtures/maps/decoupled-gap/app/views/.gitkeep b/.github/scripts/testlib/fixtures/maps/decoupled-gap/app/views/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/.github/scripts/testlib/fixtures/maps/orphan-flow/.maestro/tests/orphan.yaml b/.github/scripts/testlib/fixtures/maps/orphan-flow/.maestro/tests/orphan.yaml new file mode 100644 index 00000000000..5594b52c46b --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/orphan-flow/.maestro/tests/orphan.yaml @@ -0,0 +1,2 @@ +tags: + - test-1 diff --git a/.github/scripts/testlib/fixtures/maps/orphan-flow/.sniffler/config.json b/.github/scripts/testlib/fixtures/maps/orphan-flow/.sniffler/config.json new file mode 100644 index 00000000000..6b70da1690a --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/orphan-flow/.sniffler/config.json @@ -0,0 +1,5 @@ +{ + "tests": { + "runAllWhenChanged": [] + } +} diff --git a/.github/scripts/testlib/fixtures/maps/orphan-flow/.sniffler/test-map.json b/.github/scripts/testlib/fixtures/maps/orphan-flow/.sniffler/test-map.json new file mode 100644 index 00000000000..fe51488c706 --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/orphan-flow/.sniffler/test-map.json @@ -0,0 +1 @@ +[] diff --git a/.github/scripts/testlib/fixtures/maps/orphan-flow/app/views/.gitkeep b/.github/scripts/testlib/fixtures/maps/orphan-flow/app/views/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/.github/scripts/testlib/fixtures/maps/prefix-collision/.maestro/tests/some.yaml b/.github/scripts/testlib/fixtures/maps/prefix-collision/.maestro/tests/some.yaml new file mode 100644 index 00000000000..5594b52c46b --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/prefix-collision/.maestro/tests/some.yaml @@ -0,0 +1,2 @@ +tags: + - test-1 diff --git a/.github/scripts/testlib/fixtures/maps/prefix-collision/.sniffler/config.json b/.github/scripts/testlib/fixtures/maps/prefix-collision/.sniffler/config.json new file mode 100644 index 00000000000..6b70da1690a --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/prefix-collision/.sniffler/config.json @@ -0,0 +1,5 @@ +{ + "tests": { + "runAllWhenChanged": [] + } +} diff --git a/.github/scripts/testlib/fixtures/maps/prefix-collision/.sniffler/test-map.json b/.github/scripts/testlib/fixtures/maps/prefix-collision/.sniffler/test-map.json new file mode 100644 index 00000000000..aa26fa9a70a --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/prefix-collision/.sniffler/test-map.json @@ -0,0 +1,6 @@ +[ + { + "test": ".maestro/tests/some.yaml", + "dependsOn": ["app/views/SomeViewExtra/**"] + } +] diff --git a/.github/scripts/testlib/fixtures/maps/prefix-collision/app/views/SomeView/placeholder.txt b/.github/scripts/testlib/fixtures/maps/prefix-collision/app/views/SomeView/placeholder.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/.github/scripts/testlib/fixtures/maps/prefix-collision/app/views/SomeViewExtra/placeholder.txt b/.github/scripts/testlib/fixtures/maps/prefix-collision/app/views/SomeViewExtra/placeholder.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/.github/scripts/testlib/fixtures/maps/stale-global/.maestro/tests/.gitkeep b/.github/scripts/testlib/fixtures/maps/stale-global/.maestro/tests/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/.github/scripts/testlib/fixtures/maps/stale-global/.sniffler/config.json b/.github/scripts/testlib/fixtures/maps/stale-global/.sniffler/config.json new file mode 100644 index 00000000000..90e7b8a561c --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/stale-global/.sniffler/config.json @@ -0,0 +1,5 @@ +{ + "tests": { + "runAllWhenChanged": ["app/nonexistent-global.txt", "patches/**", "native/**"] + } +} diff --git a/.github/scripts/testlib/fixtures/maps/stale-global/.sniffler/test-map.json b/.github/scripts/testlib/fixtures/maps/stale-global/.sniffler/test-map.json new file mode 100644 index 00000000000..fe51488c706 --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/stale-global/.sniffler/test-map.json @@ -0,0 +1 @@ +[] diff --git a/.github/scripts/testlib/fixtures/maps/stale-global/app/views/.gitkeep b/.github/scripts/testlib/fixtures/maps/stale-global/app/views/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/.github/scripts/testlib/fixtures/maps/stale-global/patches/some.patch b/.github/scripts/testlib/fixtures/maps/stale-global/patches/some.patch new file mode 100644 index 00000000000..48cdce85287 --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/stale-global/patches/some.patch @@ -0,0 +1 @@ +placeholder diff --git a/.github/scripts/testlib/fixtures/maps/uncovered-view/.maestro/tests/.gitkeep b/.github/scripts/testlib/fixtures/maps/uncovered-view/.maestro/tests/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/.github/scripts/testlib/fixtures/maps/uncovered-view/.sniffler/config.json b/.github/scripts/testlib/fixtures/maps/uncovered-view/.sniffler/config.json new file mode 100644 index 00000000000..6b70da1690a --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/uncovered-view/.sniffler/config.json @@ -0,0 +1,5 @@ +{ + "tests": { + "runAllWhenChanged": [] + } +} diff --git a/.github/scripts/testlib/fixtures/maps/uncovered-view/.sniffler/test-map.json b/.github/scripts/testlib/fixtures/maps/uncovered-view/.sniffler/test-map.json new file mode 100644 index 00000000000..fe51488c706 --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/uncovered-view/.sniffler/test-map.json @@ -0,0 +1 @@ +[] diff --git a/.github/scripts/testlib/fixtures/maps/uncovered-view/app/views/SomeView/placeholder.txt b/.github/scripts/testlib/fixtures/maps/uncovered-view/app/views/SomeView/placeholder.txt new file mode 100644 index 00000000000..48cdce85287 --- /dev/null +++ b/.github/scripts/testlib/fixtures/maps/uncovered-view/app/views/SomeView/placeholder.txt @@ -0,0 +1 @@ +placeholder diff --git a/.github/scripts/testlib/runScript.js b/.github/scripts/testlib/runScript.js new file mode 100644 index 00000000000..af6adc35314 --- /dev/null +++ b/.github/scripts/testlib/runScript.js @@ -0,0 +1,54 @@ +// Shared harness for the selection-logic tests: run a shell script under test +// with stubbed executables on $PATH and a scratch $GITHUB_OUTPUT, then read back +// the emitted key=value pairs. Real jq/grep/sort/paste are used (they are correct +// tools, not the unit under test); only external deps like sniffler/git/maestro +// are stubbed via the `stubs` map. +'use strict'; + +const { execFileSync } = require('child_process'); +const fs = require('fs'); +const os = require('os'); +const path = require('path'); + +// stubs: { binName: 'bash body' | '#!/usr/bin/env bash\n…' } +// env: extra environment variables for the script +// args: argv passed to the script +function runScript(scriptPath, { stubs = {}, env = {}, args = [] } = {}) { + const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'selshard-')); + const binDir = path.join(tmp, 'bin'); + fs.mkdirSync(binDir); + + for (const [name, body] of Object.entries(stubs)) { + const file = path.join(binDir, name); + fs.writeFileSync(file, body.startsWith('#!') ? body : `#!/usr/bin/env bash\n${body}`); + fs.chmodSync(file, 0o755); + } + + const outFile = path.join(tmp, 'github_output'); + fs.writeFileSync(outFile, ''); + + let status = 0; + let stdout = ''; + let stderr = ''; + try { + stdout = execFileSync('bash', [scriptPath, ...args], { + encoding: 'utf8', + env: { ...process.env, PATH: `${binDir}:${process.env.PATH}`, GITHUB_OUTPUT: outFile, ...env } + }); + } catch (e) { + status = e.status ?? 1; + stdout = e.stdout || ''; + stderr = e.stderr || ''; + } + + const output = fs.readFileSync(outFile, 'utf8'); + const get = key => { + const m = output.match(new RegExp(`^${key}=(.*)$`, 'm')); + return m ? m[1] : undefined; + }; + + fs.rmSync(tmp, { recursive: true, force: true }); + return { status, stdout, stderr, output, shards: get('shards'), should_run: get('should_run') }; +} + +module.exports = { runScript }; diff --git a/.github/scripts/validate-test-map.js b/.github/scripts/validate-test-map.js new file mode 100644 index 00000000000..778e7ec278f --- /dev/null +++ b/.github/scripts/validate-test-map.js @@ -0,0 +1,116 @@ +#!/usr/bin/env node +// Validates the sniffler test-map against the repo so it cannot silently rot. +// Five checks: +// Orphan flow ERROR — a `test-N`-tagged YAML under .maestro/tests/ with +// no test-map entry (sniffler never selects it). +// Dangling glob ERROR — a dependsOn glob that matches zero files on disk. +// Uncovered view WARNING — an app/views/ directory no dependsOn glob anchors +// (a nudge; not every view needs a flow). `__*` dirs +// (Jest artifacts) are excluded. +// Stale global ERROR — a runAllWhenChanged path missing on disk (never +// fires). +// Decoupled gap ERROR — a saga or stack root neither anchored in a +// dependsOn glob nor in runAllWhenChanged (the +// import graph can't reach flows from it, so its +// changes would silently select zero flows). +// Emits GitHub Actions annotations + a summary; exits 1 on any error. + +'use strict'; + +const fs = require('fs'); +const path = require('path'); +const fg = require('fast-glob'); + +const ROOT = process.env.TESTMAP_ROOT || path.resolve(__dirname, '..', '..'); +const TEST_MAP_PATH = path.join(ROOT, '.sniffler', 'test-map.json'); +const CONFIG_PATH = path.join(ROOT, '.sniffler', 'config.json'); +const FLOWS_DIR = path.join(ROOT, '.maestro', 'tests'); +const VIEWS_DIR = path.join(ROOT, 'app', 'views'); + +const ann = (level, file, msg) => console.log(`::${level} file=${file}::${msg}`); + +let errorCount = 0; +let warnCount = 0; + +const testMap = JSON.parse(fs.readFileSync(TEST_MAP_PATH, 'utf8')); +const config = JSON.parse(fs.readFileSync(CONFIG_PATH, 'utf8')); + +// Orphan flows: test-N-tagged YAML with no test-map entry. +const taggedFlows = fg + .sync(['**/*.yaml', '**/*.yml'], { cwd: FLOWS_DIR, absolute: true }) + .filter(f => /^\s*-\s*['"]?test-\d+/m.test(fs.readFileSync(f, 'utf8'))) + .map(f => path.relative(ROOT, f).replace(/\\/g, '/')); + +const mappedTests = new Set(testMap.map(e => e.test)); +const orphans = taggedFlows.filter(f => !mappedTests.has(f)); +for (const f of orphans) { + ann('error', f, `Orphan flow: "${f}" has a test-N tag but no test-map entry — sniffler will never select it.`); + errorCount++; +} + +// Dangling dependsOn globs: zero matches on disk. +const dangling = []; +for (const entry of testMap) { + for (const glob of entry.dependsOn || []) { + if (fg.sync([glob], { cwd: ROOT }).length === 0) { + ann('error', '.sniffler/test-map.json', `Dangling glob: "${glob}" in test "${entry.test}" resolves to zero files.`); + dangling.push({ test: entry.test, glob }); + errorCount++; + } + } +} + +// Uncovered views (WARNING): app/views/ dir no dependsOn glob anchors. Skip __* dirs. +const viewDirs = fs + .readdirSync(VIEWS_DIR, { withFileTypes: true }) + .filter(d => d.isDirectory() && !d.name.startsWith('__')) + .map(d => `app/views/${d.name}`); + +const allDependsOn = testMap.flatMap(e => e.dependsOn || []); +const uncovered = viewDirs.filter(dir => !allDependsOn.some(g => g.startsWith(`${dir}/`))); +for (const dir of uncovered) { + ann('warning', dir, `Uncovered view: "${dir}" has no dependsOn anchor in any test-map entry — new screen with no Maestro flow?`); + warnCount++; +} + +// Stale runAllWhenChanged paths: missing on disk. Entries may be globs (sniffler +// matches them as patterns), so a glob is fresh when it matches at least one file. +const runAll = config.tests?.runAllWhenChanged || []; +const isGlob = p => /[*?[\]{}]/.test(p); +const staleGlobals = runAll.filter(p => + isGlob(p) ? fg.sync(p, { cwd: ROOT, dot: true }).length === 0 : !fs.existsSync(path.join(ROOT, p)) +); +for (const p of staleGlobals) { + ann('error', p, `Stale global: "${p}" in runAllWhenChanged does not exist — will silently never fire.`); + errorCount++; +} + +// Decoupled gap (ERROR): sagas + stack roots are consumed via the store / +// navigator, so the import graph can't trace them to a flow. Each must be +// anchored in a dependsOn glob (domain) or listed in runAllWhenChanged (global). +const coveredByGlob = new Set(fg.sync(allDependsOn, { cwd: ROOT })); +const runAllSet = new Set(runAll); +const decoupledFiles = fg.sync(['app/sagas/*.{js,ts}', 'app/stacks/*.tsx', 'app/stacks/*/index.tsx'], { + cwd: ROOT, + ignore: ['**/__tests__/**'] +}); +const uncoveredDecoupled = decoupledFiles.filter(f => !coveredByGlob.has(f) && !runAllSet.has(f)); +for (const f of uncoveredDecoupled) { + ann('error', f, `Decoupled gap: "${f}" is neither anchored in a dependsOn glob nor in runAllWhenChanged — its changes would select zero flows.`); + errorCount++; +} + +console.log('\n── test-map freshness ──'); +console.log(` Flows scanned: ${taggedFlows.length}`); +console.log(` Test-map entries: ${testMap.length}`); +console.log(` Orphans: ${orphans.length}`); +console.log(` Dangling globs: ${dangling.length}`); +console.log(` Uncovered views: ${uncovered.length} (warnings)`); +console.log(` Stale globals: ${staleGlobals.length}`); +console.log(` Decoupled gaps: ${uncoveredDecoupled.length}`); + +if (errorCount > 0) { + console.log(`\n❌ ${errorCount} error(s), ${warnCount} warning(s).`); + process.exit(1); +} +console.log(`\n✅ All checks passed (${warnCount} warning(s) allowed).`); diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index bb074b966f3..0b4d7725ad4 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -8,10 +8,13 @@ on: required: false default: pr +permissions: {} + jobs: build-hold: name: Hold runs-on: ubuntu-latest + permissions: {} if: ${{ inputs.trigger == 'pr' }} environment: android_build steps: @@ -20,6 +23,8 @@ jobs: build-android: name: Build runs-on: ubuntu-latest + permissions: + contents: read needs: build-hold if: ${{ always() && (needs.build-hold.result == 'success' || needs.build-hold.result == 'skipped') }} outputs: @@ -57,6 +62,7 @@ jobs: upload-hold: name: Upload Hold runs-on: ubuntu-latest + permissions: {} if: ${{ inputs.trigger == 'pr' }} environment: upload_android needs: [build-android] @@ -68,6 +74,9 @@ jobs: upload-android: name: Upload runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write needs: [build-android, upload-hold] if: ${{ always() && (needs.upload-hold.result == 'success' || needs.upload-hold.result == 'skipped') }} steps: @@ -85,6 +94,9 @@ jobs: upload-internal: name: Internal Sharing runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write needs: [build-android] if: ${{ inputs.trigger == 'pr' }} steps: diff --git a/.github/workflows/build-develop.yml b/.github/workflows/build-develop.yml index 55c9d7ed55c..9e4255160ee 100644 --- a/.github/workflows/build-develop.yml +++ b/.github/workflows/build-develop.yml @@ -1,8 +1,5 @@ name: Build Develop -permissions: - contents: read - on: push: branches: @@ -12,20 +9,29 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permissions: {} + jobs: run-eslint-and-test: name: ESLint and Test if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }} + permissions: + contents: read uses: ./.github/workflows/eslint.yml generate-changelog: name: Generate Release Changelog needs: [run-eslint-and-test] + permissions: + contents: read uses: ./.github/workflows/generate-changelog.yml android-build-store: name: Build Android if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }} + permissions: + contents: read + pull-requests: write uses: ./.github/workflows/build-android.yml needs: [run-eslint-and-test, generate-changelog] secrets: inherit @@ -35,6 +41,9 @@ jobs: ios-build-store: name: Build iOS if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }} + permissions: + contents: read + pull-requests: write uses: ./.github/workflows/build-ios.yml needs: [run-eslint-and-test, generate-changelog] secrets: inherit diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 30e8747bab8..59ca3896641 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -8,10 +8,13 @@ on: required: false default: pr +permissions: {} + jobs: build-hold: name: Hold runs-on: ubuntu-latest + permissions: {} if: ${{ inputs.trigger == 'pr' }} environment: ios_build steps: @@ -20,6 +23,8 @@ jobs: build-ios: name: Build runs-on: macos-26 + permissions: + contents: read needs: [build-hold] if: ${{ always() && (needs.build-hold.result == 'success' || needs.build-hold.result == 'skipped') }} steps: @@ -58,6 +63,9 @@ jobs: upload-ios: name: Upload runs-on: macos-26 + permissions: + contents: read + pull-requests: write needs: [build-ios] if: ${{ always() && needs.build-ios.result == 'success' }} steps: diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml index 4bb3a94572f..54fac98367d 100644 --- a/.github/workflows/build-pr.yml +++ b/.github/workflows/build-pr.yml @@ -1,9 +1,5 @@ name: Build PR -permissions: - contents: read - pull-requests: write - on: pull_request: branches: @@ -13,10 +9,14 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permissions: {} + jobs: run-eslint-and-test: name: ESLint and Test if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }} + permissions: + contents: read uses: ./.github/workflows/eslint.yml generate-pr-changelog: @@ -24,6 +24,9 @@ jobs: needs: [run-eslint-and-test] if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }} runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: read steps: - name: Checkout Repository uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 @@ -45,6 +48,9 @@ jobs: android-build-store: name: Build Android if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }} + permissions: + contents: read + pull-requests: write uses: ./.github/workflows/build-android.yml needs: [run-eslint-and-test, generate-pr-changelog] secrets: inherit @@ -54,46 +60,90 @@ jobs: ios-build-store: name: Build iOS if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }} + permissions: + contents: read + pull-requests: write uses: ./.github/workflows/build-ios.yml needs: [run-eslint-and-test, generate-pr-changelog] secrets: inherit with: trigger: "pr" - e2e-hold: - name: E2E Hold - if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }} - environment: approve_e2e_testing - runs-on: ubuntu-latest - steps: - - run: echo "Waiting for manual approval..." - - e2e-build-android: - name: E2E Build Android - if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }} - uses: ./.github/workflows/e2e-build-android.yml - needs: [e2e-hold] - secrets: inherit - - # Validates flow tags and emits the shard list both matrices fan out over. + # Runs first (cheap, secret-free): validates flow tags, then narrows the shard + # list to the shards sniffler flags as impacted. `should_run=false` is a + # confident zero (no source touched) that skips the whole e2e stage below. e2e-shards: name: E2E Shard Preflight if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }} - needs: [e2e-hold] + permissions: + contents: read + pull-requests: read runs-on: ubuntu-latest outputs: - shards: ${{ steps.shards.outputs.shards }} + shards: ${{ steps.select.outputs.shards }} + should_run: ${{ steps.select.outputs.should_run }} steps: - name: Checkout Repository uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 + with: + fetch-depth: 0 + + - name: Checkout and Setup Node + uses: ./.github/actions/setup-node - name: Assert Maestro shard coverage - id: shards + id: full run: bash .github/scripts/assert-maestro-shards.sh + # Read labels live rather than from the event payload: the payload is frozen + # at push time (a label added afterwards, or a re-run, would never see it), + # and `contains()` over an array is an exact element match — it would miss + # the decorated label name ("💎 release"). + - name: Detect release label + id: label + env: + GH_TOKEN: ${{ github.token }} + PR_NUMBER: ${{ github.event.pull_request.number }} + run: | + if gh pr view "$PR_NUMBER" --json labels --jq '.labels[].name' | grep -qi 'release'; then + echo "release=true" >>"$GITHUB_OUTPUT" + else + echo "release=false" >>"$GITHUB_OUTPUT" + fi + + - name: Select impacted shards + id: select + env: + IS_RELEASE_LANE: ${{ github.event.pull_request.base.ref == 'master' || steps.label.outputs.release == 'true' }} + BASE_REF: ${{ github.event.pull_request.base.ref }} + HEAD_SHA: ${{ github.event.pull_request.head.sha }} + FULL_SHARDS: ${{ steps.full.outputs.shards }} + run: bash .github/scripts/select-impacted-shards.sh + + e2e-hold: + name: E2E Hold + if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' && needs.e2e-shards.outputs.should_run == 'true' }} + needs: [e2e-shards] + permissions: {} + environment: approve_e2e_testing + runs-on: ubuntu-latest + steps: + - run: echo "Waiting for manual approval..." + + e2e-build-android: + name: E2E Build Android + if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' && needs.e2e-shards.outputs.should_run == 'true' }} + permissions: + contents: read + uses: ./.github/workflows/e2e-build-android.yml + needs: [e2e-shards, e2e-hold] + secrets: inherit + e2e-run-android: name: E2E Run Android - if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }} + if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' && needs.e2e-shards.outputs.should_run == 'true' }} + permissions: + contents: read uses: ./.github/workflows/maestro-android.yml needs: [e2e-build-android, e2e-shards] secrets: inherit @@ -106,14 +156,18 @@ jobs: e2e-build-ios: name: E2E Build iOS - if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }} + if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' && needs.e2e-shards.outputs.should_run == 'true' }} + permissions: + contents: read uses: ./.github/workflows/e2e-build-ios.yml - needs: [e2e-hold] + needs: [e2e-shards, e2e-hold] secrets: inherit e2e-run-ios: name: E2E Run iOS - if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' }} + if: ${{ github.repository == 'RocketChat/Rocket.Chat.ReactNative' && needs.e2e-shards.outputs.should_run == 'true' }} + permissions: + contents: read uses: ./.github/workflows/maestro-ios.yml needs: [e2e-build-ios, e2e-shards] secrets: inherit @@ -123,3 +177,39 @@ jobs: fail-fast: false with: shard: ${{ matrix.shard }} + + # Single required e2e status check. Always publishes one stable context, so an + # intentional confident-zero skip merges clean while a real shard failure blocks. + e2e-result: + name: E2E Result + if: ${{ always() && github.repository == 'RocketChat/Rocket.Chat.ReactNative' }} + needs: [e2e-shards, e2e-run-android, e2e-run-ios] + permissions: {} + runs-on: ubuntu-latest + steps: + - name: Aggregate e2e outcome + env: + SHARDS_RESULT: ${{ needs.e2e-shards.result }} + SHOULD_RUN: ${{ needs.e2e-shards.outputs.should_run }} + SHARDS: ${{ needs.e2e-shards.outputs.shards }} + ANDROID: ${{ needs.e2e-run-android.result }} + IOS: ${{ needs.e2e-run-ios.result }} + run: | + if [ "$SHARDS_RESULT" != "success" ]; then + echo "::error title=E2E preflight failed::Shard preflight did not succeed (result=$SHARDS_RESULT)." + exit 1 + fi + if [ "$SHOULD_RUN" != "true" ]; then + echo "### E2E skipped — 0 impacted flows (no source touched)" >> "$GITHUB_STEP_SUMMARY" + exit 0 + fi + { + echo "### E2E ran shards \`$SHARDS\`" + echo "- Android: $ANDROID" + echo "- iOS: $IOS" + } >> "$GITHUB_STEP_SUMMARY" + if [ "$ANDROID" = "success" ] && [ "$IOS" = "success" ]; then + exit 0 + fi + echo "::error title=E2E failed::One or more Maestro shards failed (android=$ANDROID ios=$IOS)." + exit 1 diff --git a/.github/workflows/e2e-build-android.yml b/.github/workflows/e2e-build-android.yml index 5fd11a44f80..dc5f684e8c8 100644 --- a/.github/workflows/e2e-build-android.yml +++ b/.github/workflows/e2e-build-android.yml @@ -12,9 +12,13 @@ on: BUGSNAG_KEY_OFFICIAL: required: true +permissions: {} + jobs: android-build: runs-on: ubuntu-latest + permissions: + contents: read env: # Keep in sync with maestro-android.yml diff --git a/.github/workflows/e2e-build-ios.yml b/.github/workflows/e2e-build-ios.yml index 82c936de132..f290a6d4228 100644 --- a/.github/workflows/e2e-build-ios.yml +++ b/.github/workflows/e2e-build-ios.yml @@ -20,9 +20,13 @@ on: FASTLANE_REPO_PAT: required: true +permissions: {} + jobs: ios-build: runs-on: macos-26 + permissions: + contents: read env: # Keep in sync with maestro-ios.yml diff --git a/.github/workflows/eslint.yml b/.github/workflows/eslint.yml index 995b57a236c..2372337e384 100644 --- a/.github/workflows/eslint.yml +++ b/.github/workflows/eslint.yml @@ -1,11 +1,15 @@ -name: Run ESLint and Test +name: Run Lint and Test on: workflow_call: +permissions: {} + jobs: run-eslint-and-test: runs-on: ubuntu-latest + permissions: + contents: read steps: - name: Checkout Repository @@ -14,8 +18,11 @@ jobs: - name: Checkout and Setup Node uses: ./.github/actions/setup-node - - name: Run ESLint + - name: Run Oxlint run: pnpm lint - name: Run Tests run: pnpm test --runInBand + + - name: Validate sniffler test-map freshness + run: node .github/scripts/validate-test-map.js diff --git a/.github/workflows/generate-changelog.yml b/.github/workflows/generate-changelog.yml index 24bc3afd2e4..26d94b2577b 100644 --- a/.github/workflows/generate-changelog.yml +++ b/.github/workflows/generate-changelog.yml @@ -3,10 +3,14 @@ name: Generate Release Changelog on: workflow_call: +permissions: {} + jobs: generate-changelog: name: Generate changelog runs-on: ubuntu-latest + permissions: + contents: read steps: - name: Checkout repository diff --git a/.github/workflows/maestro-android.yml b/.github/workflows/maestro-android.yml index cc4f83b826f..c6cf9e0c462 100644 --- a/.github/workflows/maestro-android.yml +++ b/.github/workflows/maestro-android.yml @@ -7,10 +7,14 @@ on: required: true type: string +permissions: {} + jobs: android-test: name: 'Android Tests' runs-on: ubuntu-latest + permissions: + contents: read timeout-minutes: 55 env: MAESTRO_VERSION: 2.5.1 diff --git a/.github/workflows/maestro-ios.yml b/.github/workflows/maestro-ios.yml index bf44985256a..25964602f1e 100644 --- a/.github/workflows/maestro-ios.yml +++ b/.github/workflows/maestro-ios.yml @@ -7,9 +7,13 @@ on: required: true type: string +permissions: {} + jobs: ios-test: runs-on: macos-26 + permissions: + contents: read timeout-minutes: 40 env: MAESTRO_VERSION: 2.5.1 diff --git a/.github/workflows/organize_translations.yml b/.github/workflows/organize_translations.yml index 9734f1326c7..4e2dad51c2a 100644 --- a/.github/workflows/organize_translations.yml +++ b/.github/workflows/organize_translations.yml @@ -5,9 +5,13 @@ on: paths: - 'app/i18n/locales/**.json' +permissions: {} + jobs: organize-and-commit: runs-on: ubuntu-latest + permissions: + contents: write steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: diff --git a/.github/workflows/prettier.yml b/.github/workflows/prettier.yml index d56e9cdb75b..0b6cd7d4c69 100644 --- a/.github/workflows/prettier.yml +++ b/.github/workflows/prettier.yml @@ -1,4 +1,4 @@ -name: Format Code with Prettier +name: Format Code with Oxfmt on: push: @@ -9,10 +9,14 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permissions: {} + jobs: format: if: ${{ github.repository != 'RocketChat/Rocket.Chat.ReactNative' || (github.ref != 'refs/heads/master' && github.ref != 'refs/heads/develop' && github.ref != 'refs/heads/single-server') }} runs-on: ubuntu-latest + permissions: + contents: write steps: - name: Checkout code @@ -23,11 +27,11 @@ jobs: - name: Checkout and Setup Node uses: ./.github/actions/setup-node - - name: Run Prettier - run: pnpm exec prettier --write . + - name: Run Oxfmt + run: pnpm exec oxfmt - - name: Run ESLint - run: pnpm exec eslint . --fix + - name: Run Oxlint + run: pnpm exec oxlint --fix -A react/exhaustive-deps - name: Check for changes id: changes @@ -40,7 +44,7 @@ jobs: echo "changes=true" >> $GITHUB_OUTPUT fi - - name: Commit and push eslint changes + - name: Commit and push format changes if: steps.changes.outputs.changes == 'true' run: | git config user.name "${{ github.actor }}" diff --git a/.gitignore b/.gitignore index 0f7757ab412..7791d56a76b 100644 --- a/.gitignore +++ b/.gitignore @@ -95,3 +95,4 @@ AGENTS.md /docs/ .superset/ .jest-cache/ +.sniffler/cache.json diff --git a/.maestro/scripts/data-setup.js b/.maestro/scripts/data-setup.js index 0b340d5b47b..e5e1f06d46c 100644 --- a/.maestro/scripts/data-setup.js +++ b/.maestro/scripts/data-setup.js @@ -70,7 +70,7 @@ const createUserWithPasswordChange = () => { return createUser({ requirePasswordChange: true }); } -const deleteCreatedUser = async ({ username: usernameToDelete }) => { +const deleteCreatedUser = ({ username: usernameToDelete }) => { try { login(output.account.adminUser, output.account.adminPassword); diff --git a/.maestro/tests/assorted/channel-deeplink.yaml b/.maestro/tests/assorted/channel-deeplink.yaml new file mode 100644 index 00000000000..6edcc747621 --- /dev/null +++ b/.maestro/tests/assorted/channel-deeplink.yaml @@ -0,0 +1,63 @@ +appId: ${APP_ID} +name: Channel Deeplink +onFlowStart: + - runFlow: '../../helpers/setup.yaml' +onFlowComplete: + - evalScript: ${output.utils.deleteCreatedUsers()} +tags: + - test-12 + +--- +- evalScript: ${output.user = output.utils.createUser()} +- evalScript: ${output.group = output.utils.createRandomRoom(output.user.username, output.user.password, 'p')} +- evalScript: ${output.channel = output.utils.createRandomRoom(output.user.username, output.user.password, 'c')} + +- runFlow: + file: '../../helpers/login-with-deeplink.yaml' + env: + USERNAME: ${output.user.username} + PASSWORD: ${output.user.password} + +# open group using name +- killApp +- runFlow: + file: '../../helpers/open-deeplink.yaml' + env: + link: ${output.utils.getDeepLink('room', output.data.server, 'path=group/', output.group.name)} +- extendedWaitUntil: + visible: + id: 'room-view-title-${output.group.name}' + timeout: 60000 + +# open group using id +- killApp +- runFlow: + file: '../../helpers/open-deeplink.yaml' + env: + link: ${output.utils.getDeepLink('room', output.data.server, 'path=group/', output.group._id)} +- extendedWaitUntil: + visible: + id: 'room-view-title-${output.group.name}' + timeout: 60000 + +# open channel using name +- killApp +- runFlow: + file: '../../helpers/open-deeplink.yaml' + env: + link: ${output.utils.getDeepLink('room', output.data.server, 'path=channel/', output.channel.name)} +- extendedWaitUntil: + visible: + id: 'room-view-title-${output.channel.name}' + timeout: 60000 + +# open channel using id +- killApp +- runFlow: + file: '../../helpers/open-deeplink.yaml' + env: + link: ${output.utils.getDeepLink('room', output.data.server, 'path=channel/', output.channel._id)} +- extendedWaitUntil: + visible: + id: 'room-view-title-${output.channel.name}' + timeout: 60000 diff --git a/.maestro/tests/room/jump-to-message.yaml b/.maestro/tests/room/jump-to-message.yaml index b6450b62dc3..553a4fe5877 100644 --- a/.maestro/tests/room/jump-to-message.yaml +++ b/.maestro/tests/room/jump-to-message.yaml @@ -16,7 +16,7 @@ tags: # should jump to an old message and load its surroundings - runFlow: - file: '../../helpers/navigate-to-room.yaml' + file: '../../helpers/search-and-navigate-room.yaml' env: ROOM: 'jumping' - extendedWaitUntil: @@ -61,7 +61,7 @@ tags: # should load messages on scroll - runFlow: - file: '../../helpers/navigate-to-room.yaml' + file: '../../helpers/search-and-navigate-room.yaml' env: ROOM: 'jumping' - extendedWaitUntil: @@ -82,7 +82,7 @@ tags: # should search for old message and load its surroundings - runFlow: - file: '../../helpers/navigate-to-room.yaml' + file: '../../helpers/search-and-navigate-room.yaml' env: ROOM: 'jumping' - extendedWaitUntil: @@ -188,7 +188,7 @@ tags: # should navigate to a thread from another room - runFlow: - file: '../../helpers/navigate-to-room.yaml' + file: '../../helpers/search-and-navigate-room.yaml' env: ROOM: 'jumping' - extendedWaitUntil: @@ -237,10 +237,11 @@ tags: timeout: 60000 - extendedWaitUntil: visible: - text: '.*quoted.*' + id: '.*reply-.*-quoted.*' timeout: 60000 - longPressOn: - text: 'quoted' + id: '.*reply-.*-quoted.*' + retryTapIfNoChange: true - extendedWaitUntil: visible: text: 'Jump to message' diff --git a/.maestro/tests/room/quote-thread-message.yaml b/.maestro/tests/room/quote-thread-message.yaml new file mode 100644 index 00000000000..aad6cae1671 --- /dev/null +++ b/.maestro/tests/room/quote-thread-message.yaml @@ -0,0 +1,113 @@ +appId: ${APP_ID} +name: Quote a message inside a thread +onFlowStart: + - runFlow: '../../helpers/setup.yaml' +onFlowComplete: + - evalScript: ${output.utils.deleteCreatedUsers()} +tags: + - test-13 + +--- +- evalScript: ${output.user = output.utils.createUser()} +- evalScript: ${output.room = output.utils.createRandomRoom(output.user.username, output.user.password)} + +- runFlow: + file: '../../helpers/login-with-deeplink.yaml' + env: + USERNAME: ${output.user.username} + PASSWORD: ${output.user.password} +- runFlow: + file: '../../helpers/navigate-to-room.yaml' + env: + ROOM: ${output.room.name} + +# should create a thread with a reply +- runFlow: + file: '../../helpers/send-message.yaml' + env: + message: thread +- tapOn: + id: 'room-view-messages' +- longPressOn: + id: 'message-content-thread' +- extendedWaitUntil: + visible: + text: 'Reply in thread' + timeout: 60000 +- tapOn: + text: 'Reply in thread' +- extendedWaitUntil: + visible: + id: 'message-composer-input-thread' + timeout: 60000 +- tapOn: + id: 'message-composer-input-thread' +- inputText: quotable +- tapOn: + id: 'message-composer-send' +- extendedWaitUntil: + visible: + id: 'message-content-quotable' + timeout: 60000 + +# Reload with a clean local DB so the reply only exists in `thread_messages`, not `messages`. +# Quoting used a messages-only lookup, so it couldn't resolve the reply and silently did nothing. +- runFlow: + file: '../../helpers/login-with-deeplink.yaml' + env: + USERNAME: ${output.user.username} + PASSWORD: ${output.user.password} + CLEAR_STATE: true +- runFlow: + file: '../../helpers/navigate-to-room.yaml' + env: + ROOM: ${output.room.name} + +# should open the thread +- extendedWaitUntil: + visible: + id: 'message-thread-button-thread' + timeout: 60000 +- tapOn: + id: 'message-thread-button-thread' +- extendedWaitUntil: + visible: + id: 'message-content-quotable' + timeout: 60000 + +# should quote the thread reply +- longPressOn: + id: 'message-content-quotable' +- extendedWaitUntil: + visible: + id: 'action-sheet' + timeout: 60000 +- extendedWaitUntil: + visible: + id: 'message-actions-quote' + timeout: 60000 +- tapOn: + id: 'message-actions-quote' + +# should show the quote preview in the composer +- extendedWaitUntil: + visible: + id: 'composer-quote-.*' + timeout: 60000 +- assertVisible: + id: 'composer-quote-remove-.*' + +# should send the message with the quote attached +- tapOn: + id: 'message-composer-input-thread' +- inputText: quotedinthread +- tapOn: + id: 'message-composer-send' +- extendedWaitUntil: + visible: + id: 'message-content-.*quotedinthread' + timeout: 60000 +- extendedWaitUntil: + visible: + id: 'reply-.*-quotable' + timeout: 60000 diff --git a/.maestro/tests/room/room-last-message-thread-50-plus.yaml b/.maestro/tests/room/room-last-message-thread-50-plus.yaml index 4a212d38fb2..b31105fd998 100644 --- a/.maestro/tests/room/room-last-message-thread-50-plus.yaml +++ b/.maestro/tests/room/room-last-message-thread-50-plus.yaml @@ -14,7 +14,7 @@ tags: # should open a room where the last message is a thread containing more than 50 messages. - runFlow: - file: '../../helpers/navigate-to-room.yaml' + file: '../../helpers/search-and-navigate-room.yaml' env: ROOM: 'maestro_test_load_threads' - extendedWaitUntil: diff --git a/.maestro/tests/room/room.yaml b/.maestro/tests/room/room.yaml index 33273db1ac1..a719d7f004c 100644 --- a/.maestro/tests/room/room.yaml +++ b/.maestro/tests/room/room.yaml @@ -35,6 +35,10 @@ tags: id: message-composer-input timeout: 60000 - inputText: ':joy' +- extendedWaitUntil: + visible: + id: autocomplete-item-joystick + timeout: 60000 - extendedWaitUntil: visible: id: autocomplete-item-joy @@ -161,7 +165,11 @@ tags: - tapOn: id: emoji-searchbar-input - inputText: 'laughing' -- hideKeyboard +- runFlow: + when: + platform: android + commands: + - hideKeyboard - extendedWaitUntil: visible: id: emoji-laughing diff --git a/.maestro/tests/uikit/button-kit.yaml b/.maestro/tests/uikit/button-kit.yaml new file mode 100644 index 00000000000..409d12f6153 --- /dev/null +++ b/.maestro/tests/uikit/button-kit.yaml @@ -0,0 +1,42 @@ +appId: ${APP_ID} +name: UIKit Button Kit +onFlowStart: + - runFlow: '../../helpers/setup.yaml' +onFlowComplete: + - evalScript: ${output.utils.deleteCreatedUsers()} +tags: + - test-14 + +--- +- evalScript: ${output.user = output.utils.createUser()} +- evalScript: ${output.room = output.utils.createRandomRoom(output.user.username, output.user.password)} + +- runFlow: + file: '../../helpers/login-with-deeplink.yaml' + env: + USERNAME: ${output.user.username} + PASSWORD: ${output.user.password} + +- runFlow: + file: '../../helpers/navigate-to-room.yaml' + env: + ROOM: ${output.room.name} + +# here send /uikit-test command +- tapOn: + id: message-composer-input +- inputText: + text: '/uikit-test' +- extendedWaitUntil: + visible: + id: autocomplete-item-uikit-test + timeout: 10000 +- tapOn: + id: autocomplete-item-uikit-test +- tapOn: + id: 'message-composer-send' +- tapOn: Tap Me +- extendedWaitUntil: + visible: + text: '.*Button tap received! This reply is private to you*.' + timeout: 10000 diff --git a/.oxfmtrc.json b/.oxfmtrc.json new file mode 100644 index 00000000000..dd13cf977e3 --- /dev/null +++ b/.oxfmtrc.json @@ -0,0 +1,41 @@ +{ + "$schema": "./node_modules/oxfmt/configuration_schema.json", + "bracketSpacing": true, + "singleQuote": true, + "jsxSingleQuote": true, + "trailingComma": "none", + "printWidth": 130, + "useTabs": true, + "arrowParens": "avoid", + "bracketSameLine": true, + "sortPackageJson": false, + "ignorePatterns": [ + ".github/", + "build/", + "node_modules/", + "coverage/", + "e2e/docker/", + "artifacts/", + "android/", + "ios/", + "patches/", + "scripts/", + ".worktrees/", + ".bettercodehub.yml", + ".buckconfig", + ".gitattributes", + ".gitignore", + ".snyk", + ".watchmanconfig", + "CONTRIBUTING.md", + "README.md", + "SECURITY.md", + "npm-debug.log", + "yarn-error.log", + "pnpm-lock.yaml", + ".storybook/", + "app/i18n/locales/", + "app/containers/CustomIcon/mappedIcons.js", + "app/containers/CustomIcon/selection.json" + ] +} diff --git a/.oxlintrc.json b/.oxlintrc.json new file mode 100644 index 00000000000..31014ddd314 --- /dev/null +++ b/.oxlintrc.json @@ -0,0 +1,104 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": ["import", "react", "jest"], + "jsPlugins": ["eslint-plugin-react-native"], + "categories": { + "correctness": "off" + }, + "env": { + "builtin": true, + "es2024": true + }, + "ignorePatterns": [ + "**/__tests__", + "**/node_modules", + "**/coverage", + "e2e/docker", + "**/android", + "**/ios", + "**/.worktrees/", + ".rnstorybook/storybook.requires.ts" + ], + "rules": { + "import/extensions": "off", + "import/no-cycle": "warn", + "react/jsx-fragments": ["error", "syntax"], + "react-native/no-single-element-style-arrays": "error", + "react-native/no-unused-styles": "error", + "no-restricted-imports": [ + "error", + { + "paths": [ + { + "name": "react", + "importNames": ["default"], + "message": "Import specific named exports from React instead." + } + ] + } + ], + "no-void": "error", + "new-cap": "error", + "require-await": "error", + "react/exhaustive-deps": "warn", + "react/rules-of-hooks": "error", + "react/react-compiler": "warn" + }, + "overrides": [ + { + "files": ["**/*.ts", "**/*.tsx"], + "rules": { + "no-return-assign": "off", + "no-dupe-class-members": "error", + "no-restricted-imports": [ + "error", + { + "paths": [ + { + "name": "react", + "importNames": ["default"], + "message": "Import specific named exports from React instead." + } + ] + } + ], + "no-unused-vars": [ + "error", + { + "args": "all", + "argsIgnorePattern": "^_", + "caughtErrors": "none" + } + ], + "no-useless-constructor": "off", + "no-use-before-define": "off", + "new-cap": "off", + "no-empty-function": "off", + "typescript/ban-ts-comment": "off", + "typescript/ban-types": "off", + "typescript/consistent-type-imports": [ + "error", + { + "prefer": "type-imports", + "disallowTypeAnnotations": true, + "fixStyle": "inline-type-imports" + } + ], + "typescript/no-explicit-any": "off", + "typescript/no-var-requires": "off" + }, + "plugins": ["typescript"] + }, + { + "files": ["jest.setup.js", "__mocks__/**/*.js", "**/*.test.{js,ts,tsx}"], + "rules": { + "jest/no-commented-out-tests": "warn", + "jest/no-identical-title": "error", + "jest/no-focused-tests": "error", + "jest/valid-expect": "error", + "jest/no-conditional-expect": "error", + "jest/expect-expect": "off" + } + } + ] +} diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 696fda9feef..00000000000 --- a/.prettierignore +++ /dev/null @@ -1,31 +0,0 @@ -.github/ -build/ -node_modules/ -coverage/ -e2e/docker/ -artifacts/ -android/ -ios/ -patches/ -scripts/ - -.worktrees/ - -.bettercodehub.yml -.buckconfig -.gitattributes -.gitignore -.snyk -.watchmanconfig -CONTRIBUTING.md -README.md -SECURITY.md -npm-debug.log -yarn-error.log -pnpm-lock.yaml - -.storybook/ - -app/i18n/locales/ -app/containers/CustomIcon/mappedIcons.js -app/containers/CustomIcon/selection.json diff --git a/.prettierrc.js b/.prettierrc.js deleted file mode 100644 index 04f6b3a09cc..00000000000 --- a/.prettierrc.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - bracketSpacing: true, - singleQuote: true, - jsxSingleQuote: true, - trailingComma: 'none', - printWidth: 130, - useTabs: true, - arrowParens: 'avoid', - bracketSameLine: true -}; diff --git a/.rnstorybook/generateSnapshots.tsx b/.rnstorybook/generateSnapshots.tsx index a72ed077dc8..90b48d88935 100644 --- a/.rnstorybook/generateSnapshots.tsx +++ b/.rnstorybook/generateSnapshots.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import { createElement, type ComponentType } from 'react'; import { composeStories } from '@storybook/react'; import { render } from '@testing-library/react-native'; import preview from './preview'; @@ -14,7 +14,7 @@ export function generateSnapshots(stories: any) { }); Object.entries(composedStories).forEach(([name, story]) => { test(`${name} should match snapshot`, () => { - const rendered = render(React.createElement(story as React.ComponentType)); + const rendered = render(createElement(story as ComponentType)); expect(rendered.toJSON()).toMatchSnapshot(); }); }); diff --git a/.rnstorybook/main.ts b/.rnstorybook/main.ts index 63b8d1d7e36..8024aa6c7fb 100644 --- a/.rnstorybook/main.ts +++ b/.rnstorybook/main.ts @@ -1,4 +1,4 @@ -import { StorybookConfig } from '@storybook/react-native'; +import { type StorybookConfig } from '@storybook/react-native'; const main: StorybookConfig = { stories: ['../app/**/*.stories.?(ts|tsx|js|jsx)'], diff --git a/.rnstorybook/preview.tsx b/.rnstorybook/preview.tsx index d89a5eb10b2..0c99680939a 100644 --- a/.rnstorybook/preview.tsx +++ b/.rnstorybook/preview.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import type { Preview } from '@storybook/react'; import { Provider } from 'react-redux'; diff --git a/.sniffler/config.json b/.sniffler/config.json new file mode 100644 index 00000000000..e6859fcff41 --- /dev/null +++ b/.sniffler/config.json @@ -0,0 +1,45 @@ +{ + "source": { + "roots": ["app"], + "ignore": ["**/*.test.*", "**/*.spec.*", "**/__tests__/**", "app/stacks/types.ts", "app/definitions/navigationTypes.ts"] + }, + "tests": { + "manifest": ".sniffler/test-map.json", + "runAllWhenChanged": [ + "pnpm-lock.yaml", + "package.json", + "index.js", + "app.json", + "babel.config.js", + "metro.config.js", + "react-native.config.js", + "patches/**", + "android/**", + "ios/**", + ".maestro/**", + ".sniffler/**", + ".github/workflows/**", + ".github/scripts/**", + "app/index.tsx", + "app/lib/notifications/push.ts", + "app/lib/notifications/index.ts", + "app/lib/services/connect.ts", + "app/lib/methods/subscriptions/rooms.ts", + "app/lib/methods/getUsersPresence.ts", + "app/sagas/index.js", + "app/sagas/init.js", + "app/sagas/state.js", + "app/sagas/selectServer.ts", + "app/sagas/deepLinking.js", + "app/sagas/videoConf.ts", + "app/ee/omnichannel/sagas/inquiry.js", + "app/AppContainer.tsx", + "app/stacks/InsideStack.tsx", + "app/stacks/OutsideStack.tsx", + "app/stacks/ShareExtensionStack.tsx", + "app/stacks/MasterDetailStack/index.tsx", + "app/lib/store/index.ts", + "app/reducers/index.js" + ] + } +} diff --git a/.sniffler/test-map.json b/.sniffler/test-map.json new file mode 100644 index 00000000000..08de4f27bda --- /dev/null +++ b/.sniffler/test-map.json @@ -0,0 +1,360 @@ +[ + { + "test": ".maestro/tests/accessibilityAndAppearance/ToastsAndDialogs.yml", + "dependsOn": ["app/views/StatusView/**"] + }, + { + "test": ".maestro/tests/assorted/accessibility-and-appearance.yaml", + "dependsOn": ["app/views/AccessibilityAndAppearanceView/**"] + }, + { + "test": ".maestro/tests/assorted/broadcast.yaml", + "dependsOn": [ + "app/views/NewMessageView/**", + "app/views/SelectedUsersView/**", + "app/views/CreateChannelView/**", + "app/views/RoomInfoView/**", + "app/sagas/createChannel.js" + ] + }, + { + "test": ".maestro/tests/assorted/channel-deeplink.yaml", + "dependsOn": [ + "app/views/RoomView/**", + "app/views/RoomsListView/**", + "app/sagas/deepLinking.js", + "app/sagas/room.js", + "app/sagas/login.js", + "app/sagas/rooms.js" + ] + }, + { + "test": ".maestro/tests/assorted/change-avatar.yaml", + "dependsOn": ["app/views/ChangeAvatarView/**", "app/views/ProfileView/**"] + }, + { + "test": ".maestro/tests/assorted/changeserver.yaml", + "dependsOn": [ + "app/views/NewServerView/**", + "app/views/WorkspaceView/**", + "app/views/RegisterView/**", + "app/views/RoomsListView/**", + "app/sagas/login.js", + "app/sagas/rooms.js" + ] + }, + { + "test": ".maestro/tests/assorted/deeplink.yaml", + "dependsOn": [ + "app/views/NewServerView/**", + "app/views/SelectServerView.tsx", + "app/views/WorkspaceView/**", + "app/views/ShareListView/**", + "app/views/ShareView/**", + "app/views/RoomsListView/**", + "app/views/ThreadMessagesView/**", + "app/sagas/login.js", + "app/sagas/rooms.js", + "app/sagas/inviteLinks.js" + ] + }, + { + "test": ".maestro/tests/assorted/delete-server.yaml", + "dependsOn": [ + "app/views/NewServerView/**", + "app/views/WorkspaceView/**", + "app/views/RegisterView/**", + "app/views/RoomsListView/**", + "app/sagas/login.js", + "app/sagas/rooms.js" + ] + }, + { + "test": ".maestro/tests/assorted/display-perf.yaml", + "dependsOn": ["app/views/DisplayPrefsView.tsx", "app/views/RoomsListView/**", "app/sagas/rooms.js"] + }, + { + "test": ".maestro/tests/assorted/i18n.yaml", + "dependsOn": ["app/views/LanguageView/**"] + }, + { + "test": ".maestro/tests/assorted/in-app-notification.yaml", + "dependsOn": ["app/views/RoomsListView/**", "app/containers/InAppNotification/**", "app/sagas/rooms.js"] + }, + { + "test": ".maestro/tests/assorted/join-from-directory.yaml", + "dependsOn": ["app/views/DirectoryView/**"] + }, + { + "test": ".maestro/tests/assorted/join-protected-room.yaml", + "dependsOn": ["app/views/RoomView/**", "app/sagas/room.js", "app/sagas/inviteLinks.js"] + }, + { + "test": ".maestro/tests/assorted/join-public-room.yaml", + "dependsOn": ["app/views/RoomActionsView/**", "app/views/RoomView/**", "app/sagas/room.js", "app/sagas/inviteLinks.js"] + }, + { + "test": ".maestro/tests/assorted/profile.yaml", + "dependsOn": ["app/views/ProfileView/**", "app/views/ChangePasswordView/**"] + }, + { + "test": ".maestro/tests/assorted/setting.yaml", + "dependsOn": [ + "app/views/SettingsView/**", + "app/views/LegalView.tsx", + "app/views/MediaAutoDownloadView/**", + "app/views/DefaultBrowserView/**", + "app/views/GetHelpView.tsx" + ] + }, + { + "test": ".maestro/tests/assorted/status.yaml", + "dependsOn": ["app/views/StatusView/**", "app/views/SidebarView/**"] + }, + { + "test": ".maestro/tests/assorted/user-preferences.yaml", + "dependsOn": [ + "app/views/UserPreferencesView/**", + "app/views/UserNotificationPreferencesView/**", + "app/views/PushTroubleshootView/**", + "app/sagas/troubleshootingNotification.ts" + ] + }, + { + "test": ".maestro/tests/e2ee/e2e-encryption.yaml", + "dependsOn": [ + "app/views/E2EEncryptionSecurityView/**", + "app/views/E2EEnterYourPasswordView.tsx", + "app/views/SecurityPrivacyView.tsx", + "app/views/RoomView/**", + "app/views/CreateChannelView/**", + "app/views/NewMessageView/**", + "app/views/SelectedUsersView/**", + "app/views/E2EEToggleRoomView/**", + "app/sagas/room.js", + "app/sagas/encryption.js", + "app/sagas/createChannel.js" + ] + }, + { + "test": ".maestro/tests/keyboardNavigation/keyboard-navigation-components.yaml", + "dependsOn": ["app/views/AccessibilityAndAppearanceView/**", "app/views/ThemeView.tsx"] + }, + { + "test": ".maestro/tests/keyboardNavigation/keyboard-navigation-onboarding.yaml", + "dependsOn": ["app/views/NewServerView/**", "app/views/LoginView/**", "app/sagas/login.js"] + }, + { + "test": ".maestro/tests/keyboardNavigation/keyboard-navigation-room.yaml", + "dependsOn": ["app/views/RoomView/**", "app/sagas/room.js"] + }, + { + "test": ".maestro/tests/onboarding/change-password.yaml", + "dependsOn": ["app/views/RoomsListView/**", "app/views/ChangePasswordView/**", "app/sagas/login.js", "app/sagas/rooms.js"] + }, + { + "test": ".maestro/tests/onboarding/forgot-password.yaml", + "dependsOn": ["app/views/ForgotPasswordView.tsx", "app/views/LoginView/**", "app/sagas/login.js"] + }, + { + "test": ".maestro/tests/onboarding/legal.yaml", + "dependsOn": ["app/views/LegalView.tsx", "app/views/LoginView/**", "app/views/RegisterView/**", "app/sagas/login.js"] + }, + { + "test": ".maestro/tests/onboarding/login/invalid-credentials.yaml", + "dependsOn": ["app/views/LoginView/**", "app/sagas/login.js"] + }, + { + "test": ".maestro/tests/onboarding/login/login.yaml", + "dependsOn": ["app/views/LoginView/**", "app/sagas/login.js"] + }, + { + "test": ".maestro/tests/onboarding/register/create-account.yaml", + "dependsOn": ["app/views/RegisterView/**", "app/sagas/login.js"] + }, + { + "test": ".maestro/tests/onboarding/register/email-used.yaml", + "dependsOn": ["app/views/RegisterView/**", "app/sagas/login.js"] + }, + { + "test": ".maestro/tests/onboarding/register/username-used.yaml", + "dependsOn": ["app/views/RegisterView/**", "app/sagas/login.js"] + }, + { + "test": ".maestro/tests/onboarding/roomslist.yaml", + "dependsOn": ["app/views/RoomsListView/**", "app/sagas/login.js", "app/sagas/rooms.js"] + }, + { + "test": ".maestro/tests/onboarding/server-history.yaml", + "dependsOn": ["app/views/NewServerView/**", "app/sagas/login.js"] + }, + { + "test": ".maestro/tests/onboarding/servers-history-small-screen.yaml", + "dependsOn": ["app/views/NewServerView/**", "app/sagas/login.js"] + }, + { + "test": ".maestro/tests/onboarding/workspace/invalid-workspace.yaml", + "dependsOn": ["app/views/NewServerView/**", "app/sagas/login.js"] + }, + { + "test": ".maestro/tests/onboarding/workspace/valid-workspace.yaml", + "dependsOn": ["app/views/NewServerView/**", "app/sagas/login.js"] + }, + { + "test": ".maestro/tests/room/create-dm-group.yaml", + "dependsOn": [ + "app/views/NewMessageView/**", + "app/views/SelectedUsersView/**", + "app/sagas/messages.js", + "app/sagas/createChannel.js" + ] + }, + { + "test": ".maestro/tests/room/create-room.yaml", + "dependsOn": [ + "app/views/NewMessageView/**", + "app/views/SelectedUsersView/**", + "app/views/CreateChannelView/**", + "app/sagas/messages.js", + "app/sagas/createChannel.js" + ] + }, + { + "test": ".maestro/tests/room/discussion.yaml", + "dependsOn": [ + "app/views/NewMessageView/**", + "app/views/SelectedUsersView/**", + "app/views/CreateDiscussionView/**", + "app/views/RoomActionsView/**", + "app/views/RoomInfoView/**", + "app/views/DiscussionsView/**", + "app/sagas/room.js", + "app/sagas/createDiscussion.js" + ] + }, + { + "test": ".maestro/tests/room/ignoreuser.yaml", + "dependsOn": ["app/views/RoomInfoView/**", "app/views/ReportUserView/**", "app/views/RoomActionsView/**", "app/sagas/room.js"] + }, + { + "test": ".maestro/tests/room/jump-to-message.yaml", + "dependsOn": [ + "app/views/RoomView/**", + "app/views/SearchMessagesView/**", + "app/views/ThreadMessagesView/**", + "app/sagas/room.js" + ] + }, + { + "test": ".maestro/tests/room/mark-as-unread.yaml", + "dependsOn": ["app/views/RoomsListView/**", "app/containers/MessageActions/**", "app/sagas/rooms.js"] + }, + { + "test": ".maestro/tests/room/message-markdown-click.yaml", + "dependsOn": ["app/views/RoomView/**", "app/containers/markdown/**", "app/sagas/room.js"] + }, + { + "test": ".maestro/tests/room/quote-thread-message.yaml", + "dependsOn": [ + "app/views/RoomView/**", + "app/containers/MessageComposer/**", + "app/containers/MessageActions/**", + "app/sagas/room.js" + ] + }, + { + "test": ".maestro/tests/room/reaction-picker-small-screen.yaml", + "dependsOn": ["app/containers/EmojiPicker/**", "app/containers/ReactionsList/**"] + }, + { + "test": ".maestro/tests/room/room-actions.yaml", + "dependsOn": [ + "app/views/RoomActionsView/**", + "app/views/RoomMembersView/**", + "app/views/MessagesView/**", + "app/views/NotificationPreferencesView/**", + "app/views/SelectedUsersView/**", + "app/sagas/room.js" + ] + }, + { + "test": ".maestro/tests/room/room-info.yaml", + "dependsOn": ["app/views/RoomInfoView/**", "app/views/RoomInfoEditView/**"] + }, + { + "test": ".maestro/tests/room/room-last-message-thread-50-plus.yaml", + "dependsOn": ["app/views/RoomView/**", "app/sagas/room.js"] + }, + { + "test": ".maestro/tests/room/room.yaml", + "dependsOn": ["app/views/RoomView/**", "app/views/RoomInfoView/**", "app/sagas/room.js", "app/sagas/messages.js"] + }, + { + "test": ".maestro/tests/room/search-member.yaml", + "dependsOn": ["app/views/RoomMembersView/**"] + }, + { + "test": ".maestro/tests/room/search.yaml", + "dependsOn": ["app/views/RoomsListView/**", "app/sagas/rooms.js"] + }, + { + "test": ".maestro/tests/room/servers-list-small-screen.yaml", + "dependsOn": ["app/views/NewServerView/**", "app/views/RoomsListView/**", "app/sagas/login.js", "app/sagas/rooms.js"] + }, + { + "test": ".maestro/tests/room/share-message.yaml", + "dependsOn": ["app/views/ForwardMessageView/**", "app/containers/MessageActions/**"] + }, + { + "test": ".maestro/tests/room/threads.yaml", + "dependsOn": ["app/views/RoomView/**", "app/views/ThreadMessagesView/**", "app/sagas/room.js"] + }, + { + "test": ".maestro/tests/room/unread-badge.yaml", + "dependsOn": ["app/views/RoomsListView/**", "app/sagas/rooms.js"] + }, + { + "test": ".maestro/tests/teams/convert-team.yaml", + "dependsOn": [ + "app/views/RoomActionsView/**", + "app/views/SelectListView.tsx", + "app/views/CreateChannelView/**", + "app/views/NewMessageView/**", + "app/views/SelectedUsersView/**", + "app/sagas/room.js", + "app/sagas/createChannel.js" + ] + }, + { + "test": ".maestro/tests/teams/create-team.yaml", + "dependsOn": [ + "app/views/NewMessageView/**", + "app/views/SelectedUsersView/**", + "app/views/CreateChannelView/**", + "app/views/RoomInfoView/**", + "app/views/RoomInfoEditView/**", + "app/views/RoomActionsView/**", + "app/sagas/room.js", + "app/sagas/createChannel.js" + ] + }, + { + "test": ".maestro/tests/teams/team.yaml", + "dependsOn": [ + "app/views/RoomActionsView/**", + "app/views/TeamChannelsView.tsx", + "app/views/AddChannelTeamView.tsx", + "app/views/AddExistingChannelView/**", + "app/views/RoomMembersView/**", + "app/views/SelectedUsersView/**", + "app/views/SelectListView.tsx", + "app/views/CreateChannelView/**", + "app/sagas/room.js", + "app/sagas/createChannel.js" + ] + }, + { + "test": ".maestro/tests/uikit/button-kit.yaml", + "dependsOn": ["app/containers/UIKit/**"] + } +] diff --git a/CLAUDE.md b/CLAUDE.md index 1c3b37aaf09..048929f381f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -19,7 +19,9 @@ Everything else is a standard `package.json` script. ## Code Style -- **Before committing**: Run `pnpm prettier-lint` and `TZ=UTC pnpm test` for modified files. Nothing enforces this locally — CI is the only gate. +- **Oxfmt**: config in `.oxfmtrc.json` (tabs, single quotes, 130 char width, no trailing commas, arrow parens avoid, bracket same line) +- **Oxlint**: config in `.oxlintrc.json` (import, react, jest, typescript plugins; `eslint-plugin-react-native` loaded via `jsPlugins`) +- **Before committing**: Run `pnpm format-lint` and `TZ=UTC pnpm test` for modified files. Nothing enforces this locally — CI is the only gate. ## Gotchas diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c6c31df8dba..4c04071a2ff 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -50,7 +50,7 @@ Can't help coding? Triaging issues is a **great** way of helping. ## Code style -We use [ESLint](https://eslint.org/) to enforce code style and best practices. We have a pre-commit hook enforcing commits to follow our lint rules. +We use [Oxlint](https://oxc.rs/docs/guide/usage/linter) to enforce code style and best practices. We have a pre-commit hook enforcing commits to follow our lint rules. To check for lint issues on your code, run this on your terminal: @@ -60,15 +60,15 @@ pnpm lint ## Code formatting -We use [Prettier](https://prettier.io) to format the code style in our project. We have a pre-commit hook enforcing commits to follow our style guides. +We use [Oxfmt](https://oxc.rs/docs/guide/usage/formatter) to format the code style in our project. We have a pre-commit hook enforcing commits to follow our style guides. To fix your code formatting issues, run this on your terminal: ```sh -pnpm exec prettier --write . +pnpm exec oxfmt ``` -[Check this link](https://prettier.io/docs/en/editors.html) to see how to integrate Prettier with your preferred code editor, and run Prettier when save your file for example. +[Check this link](https://oxc.rs/docs/guide/usage/formatter/editors.html) to see how to integrate Oxfmt with your preferred code editor, and run Oxfmt when you save a file for example. ## Tests diff --git a/android/app/build.gradle b/android/app/build.gradle index 1fbbffbc9dd..77a8b2e2eaa 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -90,7 +90,7 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode VERSIONCODE as Integer - versionName "4.75.0" + versionName "4.76.0" vectorDrawables.useSupportLibrary = true manifestPlaceholders = [BugsnagAPIKey: BugsnagAPIKey as String] } diff --git a/android/app/src/main/assets/fonts/Inter-Bold.otf b/android/app/src/main/assets/fonts/Inter-Bold.otf deleted file mode 100644 index c74cc0c6c13..00000000000 Binary files a/android/app/src/main/assets/fonts/Inter-Bold.otf and /dev/null differ diff --git a/android/app/src/main/assets/fonts/Inter-Bold.ttf b/android/app/src/main/assets/fonts/Inter-Bold.ttf new file mode 100644 index 00000000000..9fb9b751e5b Binary files /dev/null and b/android/app/src/main/assets/fonts/Inter-Bold.ttf differ diff --git a/android/app/src/main/assets/fonts/Inter-Bold_italic.ttf b/android/app/src/main/assets/fonts/Inter-Bold_italic.ttf new file mode 100644 index 00000000000..8d050001a53 Binary files /dev/null and b/android/app/src/main/assets/fonts/Inter-Bold_italic.ttf differ diff --git a/android/app/src/main/assets/fonts/Inter-Medium.otf b/android/app/src/main/assets/fonts/Inter-Medium.otf deleted file mode 100644 index ca7bfcd4340..00000000000 Binary files a/android/app/src/main/assets/fonts/Inter-Medium.otf and /dev/null differ diff --git a/android/app/src/main/assets/fonts/Inter-Medium.ttf b/android/app/src/main/assets/fonts/Inter-Medium.ttf new file mode 100644 index 00000000000..458cd0601d2 Binary files /dev/null and b/android/app/src/main/assets/fonts/Inter-Medium.ttf differ diff --git a/android/app/src/main/assets/fonts/Inter-Medium_italic.ttf b/android/app/src/main/assets/fonts/Inter-Medium_italic.ttf new file mode 100644 index 00000000000..22b898df31c Binary files /dev/null and b/android/app/src/main/assets/fonts/Inter-Medium_italic.ttf differ diff --git a/android/app/src/main/assets/fonts/Inter-Regular.otf b/android/app/src/main/assets/fonts/Inter-Regular.otf deleted file mode 100644 index 84e6a61c3c0..00000000000 Binary files a/android/app/src/main/assets/fonts/Inter-Regular.otf and /dev/null differ diff --git a/android/app/src/main/assets/fonts/Inter-Regular.ttf b/android/app/src/main/assets/fonts/Inter-Regular.ttf new file mode 100644 index 00000000000..b7aaca8de1f Binary files /dev/null and b/android/app/src/main/assets/fonts/Inter-Regular.ttf differ diff --git a/android/app/src/main/assets/fonts/Inter-Regular_italic.ttf b/android/app/src/main/assets/fonts/Inter-Regular_italic.ttf new file mode 100644 index 00000000000..e7ed211d2d6 Binary files /dev/null and b/android/app/src/main/assets/fonts/Inter-Regular_italic.ttf differ diff --git a/android/app/src/main/assets/fonts/Inter-SemiBold.otf b/android/app/src/main/assets/fonts/Inter-SemiBold.otf deleted file mode 100644 index daf4c4413f7..00000000000 Binary files a/android/app/src/main/assets/fonts/Inter-SemiBold.otf and /dev/null differ diff --git a/android/app/src/main/assets/fonts/Inter-SemiBold.ttf b/android/app/src/main/assets/fonts/Inter-SemiBold.ttf new file mode 100644 index 00000000000..47f8ab1d681 Binary files /dev/null and b/android/app/src/main/assets/fonts/Inter-SemiBold.ttf differ diff --git a/android/app/src/main/assets/fonts/Inter-SemiBold_italic.ttf b/android/app/src/main/assets/fonts/Inter-SemiBold_italic.ttf new file mode 100644 index 00000000000..3f704a20869 Binary files /dev/null and b/android/app/src/main/assets/fonts/Inter-SemiBold_italic.ttf differ diff --git a/app/AppContainer.tsx b/app/AppContainer.tsx index 97380e1a79d..074642a1c50 100644 --- a/app/AppContainer.tsx +++ b/app/AppContainer.tsx @@ -57,8 +57,6 @@ const RootNavigator = createNativeStackNavigator({ ShareExtension: { if: useIsShareExtension, screens: { ShareExtensionStack } } } }).with(({ Navigator }) => { - 'use memo'; - const { theme } = useContext(ThemeContext); return ; }); diff --git a/app/containers/ActionSheet/ActionSheet.tsx b/app/containers/ActionSheet/ActionSheet.tsx index c9e175eb3cd..ce1a59e404f 100644 --- a/app/containers/ActionSheet/ActionSheet.tsx +++ b/app/containers/ActionSheet/ActionSheet.tsx @@ -123,7 +123,7 @@ const ActionSheet = memo( const snap = effectiveSnaps[0]; const fraction = typeof snap === 'number' ? Math.min(1, Math.max(0.1, snap)) : (parseFloat(String(snap)) || 50) / 100; return Math.max(0, windowHeight * fraction - HANDLE_HEIGHT); - })() + })() : undefined; return ( diff --git a/app/containers/ActionSheet/BottomSheetContent.tsx b/app/containers/ActionSheet/BottomSheetContent.tsx index ffd92507298..80472205679 100644 --- a/app/containers/ActionSheet/BottomSheetContent.tsx +++ b/app/containers/ActionSheet/BottomSheetContent.tsx @@ -36,8 +36,6 @@ const BottomSheetContent = memo( contentMinHeight, scrollEnabled }: IBottomSheetContentProps) => { - 'use memo'; - const { colors } = useTheme(); const { bottom } = useSafeAreaInsets(); const height = useActionSheetItemHeight(); diff --git a/app/containers/ActionSheet/Handle.tsx b/app/containers/ActionSheet/Handle.tsx index 105f52acb2f..7734aaa9e85 100644 --- a/app/containers/ActionSheet/Handle.tsx +++ b/app/containers/ActionSheet/Handle.tsx @@ -8,8 +8,6 @@ import { useTheme } from '../../theme'; import i18n from '../../i18n'; export const Handle = forwardRef void }>(({ onPress }, ref) => { - 'use memo'; - const { theme } = useTheme(); // We should use RectButton from gesture-handler to avoid issues with the keyboard diff --git a/app/containers/ActionSheet/Item.tsx b/app/containers/ActionSheet/Item.tsx index 4b22a6cb0b6..7c96d8c9e1c 100644 --- a/app/containers/ActionSheet/Item.tsx +++ b/app/containers/ActionSheet/Item.tsx @@ -17,8 +17,6 @@ export interface IActionSheetItem { } export const Item = memo(({ item, hide }: IActionSheetItem) => { - 'use memo'; - const enabled = item?.enabled ?? true; const { colors } = useTheme(); const height = useActionSheetItemHeight(); diff --git a/app/containers/ActionSheet/Provider.tsx b/app/containers/ActionSheet/Provider.tsx index 76d36ab3b32..b45f4fdc1b2 100644 --- a/app/containers/ActionSheet/Provider.tsx +++ b/app/containers/ActionSheet/Provider.tsx @@ -73,8 +73,6 @@ export const withActionSheet = (Component: ComponentType): typeof Component const actionSheetRef: Ref = createRef(); export const ActionSheetProvider = memo(({ children }: { children: ReactElement | ReactElement[] }) => { - 'use memo'; - const getContext = (): IActionSheetProvider => ({ showActionSheet: options => { actionSheetRef.current?.showActionSheet(options); diff --git a/app/containers/AltTextLabel.tsx b/app/containers/AltTextLabel.tsx index 0e9d9901c69..2570186dbc9 100644 --- a/app/containers/AltTextLabel.tsx +++ b/app/containers/AltTextLabel.tsx @@ -38,8 +38,6 @@ const styles = StyleSheet.create({ }); const AltTextActionSheetContent = ({ altText }: { altText: string }) => { - 'use memo'; - const { colors } = useTheme(); return ( @@ -56,8 +54,6 @@ type TAltTextLabelProps = { }; const AltTextLabel = ({ altText, testID }: TAltTextLabelProps) => { - 'use memo'; - const { colors } = useTheme(); const { showActionSheet } = useActionSheet(); diff --git a/app/containers/AudioPlayer/styles.ts b/app/containers/AudioPlayer/styles.ts index 519ab7a3707..d2b131df4ac 100644 --- a/app/containers/AudioPlayer/styles.ts +++ b/app/containers/AudioPlayer/styles.ts @@ -39,7 +39,6 @@ const styles = StyleSheet.create({ }, duration: { marginHorizontal: 12, - fontVariant: ['tabular-nums'], fontSize: 14, ...sharedStyles.textRegular }, diff --git a/app/containers/BackgroundContainer/__snapshots__/index.test.tsx.snap b/app/containers/BackgroundContainer/__snapshots__/index.test.tsx.snap index dee77777f7b..0a5d30836a0 100644 --- a/app/containers/BackgroundContainer/__snapshots__/index.test.tsx.snap +++ b/app/containers/BackgroundContainer/__snapshots__/index.test.tsx.snap @@ -94,6 +94,9 @@ exports[`Story Snapshots: BlackThemeLoading should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "left": 0, "paddingHorizontal": 24, @@ -156,6 +159,9 @@ exports[`Story Snapshots: BlackThemeText should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "left": 0, "paddingHorizontal": 24, @@ -224,6 +230,9 @@ exports[`Story Snapshots: DarkThemeLoading should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "left": 0, "paddingHorizontal": 24, @@ -286,6 +295,9 @@ exports[`Story Snapshots: DarkThemeText should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "left": 0, "paddingHorizontal": 24, @@ -354,6 +366,9 @@ exports[`Story Snapshots: Loading should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "left": 0, "paddingHorizontal": 24, @@ -416,6 +431,9 @@ exports[`Story Snapshots: LongText should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "left": 0, "paddingHorizontal": 24, @@ -484,6 +502,9 @@ exports[`Story Snapshots: Text should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "left": 0, "paddingHorizontal": 24, diff --git a/app/containers/Button/__snapshots__/Button.test.tsx.snap b/app/containers/Button/__snapshots__/Button.test.tsx.snap index 03f23308774..1b0415bde25 100644 --- a/app/containers/Button/__snapshots__/Button.test.tsx.snap +++ b/app/containers/Button/__snapshots__/Button.test.tsx.snap @@ -63,6 +63,9 @@ exports[`Story Snapshots: CustomButton should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -141,6 +144,9 @@ exports[`Story Snapshots: DisabledButton should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -341,6 +347,9 @@ exports[`Story Snapshots: PrimaryButton should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -415,6 +424,9 @@ exports[`Story Snapshots: SecondaryButton should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -490,6 +502,9 @@ exports[`Story Snapshots: SmallButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 18, "textAlign": "left", diff --git a/app/containers/Chip/__snapshots__/Chip.test.tsx.snap b/app/containers/Chip/__snapshots__/Chip.test.tsx.snap index 113a0ba0758..56eae0b4fe4 100644 --- a/app/containers/Chip/__snapshots__/Chip.test.tsx.snap +++ b/app/containers/Chip/__snapshots__/Chip.test.tsx.snap @@ -87,6 +87,9 @@ exports[`Story Snapshots: ChipFullWidth should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -244,6 +247,9 @@ exports[`Story Snapshots: ChipText should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -427,6 +433,9 @@ exports[`Story Snapshots: ChipWithShortText should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -555,6 +564,9 @@ exports[`Story Snapshots: ChipWithoutAvatar should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -683,6 +695,9 @@ exports[`Story Snapshots: ChipWithoutAvatarAndIcon should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -840,6 +855,9 @@ exports[`Story Snapshots: ChipWithoutIcon should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, diff --git a/app/containers/CollapsibleText/__snapshots__/CollapsibleText.test.tsx.snap b/app/containers/CollapsibleText/__snapshots__/CollapsibleText.test.tsx.snap index b66a935426c..68d73f81c38 100644 --- a/app/containers/CollapsibleText/__snapshots__/CollapsibleText.test.tsx.snap +++ b/app/containers/CollapsibleText/__snapshots__/CollapsibleText.test.tsx.snap @@ -17,6 +17,9 @@ exports[`Story Snapshots: Item should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", "textAlignVertical": "center", @@ -40,6 +43,9 @@ exports[`Story Snapshots: Item should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", "textAlignVertical": "center", @@ -63,6 +69,9 @@ exports[`Story Snapshots: Item should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", "textAlignVertical": "center", diff --git a/app/containers/CustomIcon/index.tsx b/app/containers/CustomIcon/index.tsx index 29cc2c32fff..49f4e5d9340 100644 --- a/app/containers/CustomIcon/index.tsx +++ b/app/containers/CustomIcon/index.tsx @@ -14,7 +14,7 @@ const glyphMap = IconSet.getRawGlyphMap : icoMoonConfig.icons?.reduce((map: Record, glyph: any) => { map[glyph.icon.name] = glyph.icon.code; return map; - }, {}) || {}; + }, {}) || {}; export const hasIcon = (name: string) => Object.prototype.hasOwnProperty.call(glyphMap, name); diff --git a/app/containers/DirectoryItem/__snapshots__/DirectoryItem.test.tsx.snap b/app/containers/DirectoryItem/__snapshots__/DirectoryItem.test.tsx.snap index 376f230643c..02fd544278f 100644 --- a/app/containers/DirectoryItem/__snapshots__/DirectoryItem.test.tsx.snap +++ b/app/containers/DirectoryItem/__snapshots__/DirectoryItem.test.tsx.snap @@ -227,6 +227,9 @@ exports[`Story Snapshots: CustomStyle should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -248,6 +251,9 @@ exports[`Story Snapshots: CustomStyle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -260,6 +266,9 @@ exports[`Story Snapshots: CustomStyle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -507,6 +516,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -528,6 +540,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -540,6 +555,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -756,6 +774,9 @@ exports[`Story Snapshots: DirectMessage should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -777,6 +798,9 @@ exports[`Story Snapshots: DirectMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -789,6 +813,9 @@ exports[`Story Snapshots: DirectMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1036,6 +1063,9 @@ exports[`Story Snapshots: LongRoomName should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1057,6 +1087,9 @@ exports[`Story Snapshots: LongRoomName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1069,6 +1102,9 @@ exports[`Story Snapshots: LongRoomName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1089,6 +1125,9 @@ exports[`Story Snapshots: LongRoomName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingLeft": 10, "textAlign": "left", @@ -1279,6 +1318,9 @@ exports[`Story Snapshots: OnlyTitle should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1526,6 +1568,9 @@ exports[`Story Snapshots: TeamMain should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1547,6 +1592,9 @@ exports[`Story Snapshots: TeamMain should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1559,6 +1607,9 @@ exports[`Story Snapshots: TeamMain should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1806,6 +1857,9 @@ exports[`Story Snapshots: WithRightLabel should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1827,6 +1881,9 @@ exports[`Story Snapshots: WithRightLabel should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1839,6 +1896,9 @@ exports[`Story Snapshots: WithRightLabel should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1859,6 +1919,9 @@ exports[`Story Snapshots: WithRightLabel should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingLeft": 10, "textAlign": "left", @@ -2105,6 +2168,9 @@ exports[`Story Snapshots: WithoutDescription should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, diff --git a/app/containers/Header/components/HeaderBackButton.tsx b/app/containers/Header/components/HeaderBackButton.tsx index 51c1c6b244d..b4ee70b2fa3 100644 --- a/app/containers/Header/components/HeaderBackButton.tsx +++ b/app/containers/Header/components/HeaderBackButton.tsx @@ -20,8 +20,6 @@ const styles = StyleSheet.create({ }); export const HeaderBackButton = ({ ...props }: HeaderBackButtonProps) => { - 'use memo'; - const { colors } = useTheme(); return ( { - 'use memo'; - const { colors } = useTheme(); return ( diff --git a/app/containers/Header/components/HeaderButton/__snapshots__/HeaderButtons.test.tsx.snap b/app/containers/Header/components/HeaderButton/__snapshots__/HeaderButtons.test.tsx.snap index 0847bc01e2c..a085039cf38 100644 --- a/app/containers/Header/components/HeaderButton/__snapshots__/HeaderButtons.test.tsx.snap +++ b/app/containers/Header/components/HeaderButton/__snapshots__/HeaderButtons.test.tsx.snap @@ -197,6 +197,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -313,6 +316,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -429,6 +435,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1224,6 +1233,9 @@ exports[`Story Snapshots: Common should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3267,6 +3279,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3379,6 +3394,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -3812,6 +3830,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3924,6 +3945,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -4357,6 +4381,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4469,6 +4496,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -4640,6 +4670,9 @@ exports[`Story Snapshots: Title should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4758,6 +4791,9 @@ exports[`Story Snapshots: Title should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4919,6 +4955,9 @@ exports[`Story Snapshots: Title should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4979,6 +5018,9 @@ exports[`Story Snapshots: Title should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5097,6 +5139,9 @@ exports[`Story Snapshots: Title should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5157,6 +5202,9 @@ exports[`Story Snapshots: Title should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, diff --git a/app/containers/Header/components/HeaderContainer/index.tsx b/app/containers/Header/components/HeaderContainer/index.tsx index cc98829061d..fce4f886ba2 100644 --- a/app/containers/Header/components/HeaderContainer/index.tsx +++ b/app/containers/Header/components/HeaderContainer/index.tsx @@ -12,8 +12,6 @@ interface IHeaderContainer extends ViewProps { } const HeaderContainer = memo(({ isMasterDetail = false, customRightIcon, customLeftIcon, children }: IHeaderContainer) => { - 'use memo'; - const insets = useSafeAreaInsets(); const { colors } = useTheme(); const paddingTop = 4; diff --git a/app/containers/Header/components/HeaderTitle/index.tsx b/app/containers/Header/components/HeaderTitle/index.tsx index c06773295ea..f2e2aa11c85 100644 --- a/app/containers/Header/components/HeaderTitle/index.tsx +++ b/app/containers/Header/components/HeaderTitle/index.tsx @@ -10,8 +10,6 @@ interface IHeaderTitle { } const HeaderTitle = memo(({ headerTitle }: IHeaderTitle) => { - 'use memo'; - const { colors } = useTheme(); if (!headerTitle) { return null; diff --git a/app/containers/Header/index.tsx b/app/containers/Header/index.tsx index 47d9f516a7d..2d261445764 100644 --- a/app/containers/Header/index.tsx +++ b/app/containers/Header/index.tsx @@ -12,8 +12,6 @@ import { HeaderBackButton } from './components/HeaderBackButton'; interface IHeader extends NativeStackHeaderProps {} const Header = ({ options, navigation, route }: IHeader) => { - 'use memo'; - const { headerLeft, headerTitle, headerRight, title } = options; const [rightButtonsWidth, setRightButtonsWidth] = useState(null); const isMasterDetail = useMasterDetail(); diff --git a/app/containers/InAppNotification/IncomingCallNotification/index.tsx b/app/containers/InAppNotification/IncomingCallNotification/index.tsx index 6febc388c0b..46609aa75e1 100644 --- a/app/containers/InAppNotification/IncomingCallNotification/index.tsx +++ b/app/containers/InAppNotification/IncomingCallNotification/index.tsx @@ -83,7 +83,7 @@ const IncomingCallHeader = memo( /> - + { @@ -91,11 +91,12 @@ const IncomingCallHeader = memo( hideNotification(); }} accessibilityLabel={i18n.t('A11y_incoming_call_dismiss')} - style={styles.closeButton}> + style={styles.closeButton} + rectButtonStyle={styles.closeButtonContainer}> - + { @@ -103,11 +104,12 @@ const IncomingCallHeader = memo( hideNotification(); dispatch(cancelCall({ callId })); }} - style={styles.cancelButton}> + style={styles.cancelButton} + rectButtonStyle={styles.buttonContainer}> {i18n.t('decline')} - + { @@ -115,7 +117,8 @@ const IncomingCallHeader = memo( hideNotification(); dispatch(acceptCall({ callId })); }} - style={styles.acceptButton}> + style={styles.acceptButton} + rectButtonStyle={styles.buttonContainer}> {i18n.t('accept')} diff --git a/app/containers/InAppNotification/IncomingCallNotification/style.tsx b/app/containers/InAppNotification/IncomingCallNotification/style.tsx index 4b3319afa34..03f941df300 100644 --- a/app/containers/InAppNotification/IncomingCallNotification/style.tsx +++ b/app/containers/InAppNotification/IncomingCallNotification/style.tsx @@ -3,6 +3,8 @@ import { PixelRatio, StyleSheet } from 'react-native'; import { useTheme } from '../../../theme'; import sharedStyles from '../../../views/Styles'; +const BUTTON_HEIGHT = 36; + export const useStyle = () => { const { colors } = useTheme(); return StyleSheet.create({ @@ -25,33 +27,40 @@ export const useStyle = () => { flexDirection: 'row', marginTop: 12 }, + // Touch only forwards backgroundColor, borderRadius and margins to the RectButton, so sizing + // goes through rectButtonStyle - on style it lands on the inner View and the button collapses closeButton: { backgroundColor: colors.buttonBackgroundSecondaryDefault, marginRight: 8, + borderRadius: 4 + }, + closeButtonContainer: { + width: BUTTON_HEIGHT, + height: BUTTON_HEIGHT, alignItems: 'center', - justifyContent: 'center', - borderRadius: 4, - width: 36, - height: 36 + justifyContent: 'center' }, cancelButton: { borderRadius: 4, backgroundColor: colors.buttonBackgroundDangerDefault, - marginRight: 8, - flex: 2, + marginRight: 8 + }, + acceptButton: { + borderRadius: 4, + backgroundColor: colors.buttonBackgroundSuccessDefault + }, + // decline and accept share the remaining width evenly, minHeight so the label can grow + buttonWrapper: { + flex: 1 + }, + buttonContainer: { + minHeight: BUTTON_HEIGHT, alignItems: 'center', justifyContent: 'center' }, buttonText: { ...sharedStyles.textMedium, color: 'white' - }, - acceptButton: { - borderRadius: 4, - backgroundColor: colors.buttonBackgroundSuccessDefault, - flex: 2, - alignItems: 'center', - justifyContent: 'center' } }); }; diff --git a/app/containers/InAppNotification/__snapshots__/NotifierComponent.test.tsx.snap b/app/containers/InAppNotification/__snapshots__/NotifierComponent.test.tsx.snap index 299c643eae3..c8346155834 100644 --- a/app/containers/InAppNotification/__snapshots__/NotifierComponent.test.tsx.snap +++ b/app/containers/InAppNotification/__snapshots__/NotifierComponent.test.tsx.snap @@ -191,6 +191,9 @@ exports[`Story Snapshots: ChannelMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 20, "textAlign": "left", @@ -211,6 +214,9 @@ exports[`Story Snapshots: ChannelMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 17, "textAlign": "left", @@ -537,6 +543,9 @@ exports[`Story Snapshots: DirectMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 20, "textAlign": "left", @@ -557,6 +566,9 @@ exports[`Story Snapshots: DirectMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 17, "textAlign": "left", @@ -883,6 +895,9 @@ exports[`Story Snapshots: WithBlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 20, "textAlign": "left", @@ -903,6 +918,9 @@ exports[`Story Snapshots: WithBlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 17, "textAlign": "left", @@ -1229,6 +1247,9 @@ exports[`Story Snapshots: WithDarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 20, "textAlign": "left", @@ -1249,6 +1270,9 @@ exports[`Story Snapshots: WithDarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 17, "textAlign": "left", diff --git a/app/containers/InAppNotification/index.tsx b/app/containers/InAppNotification/index.tsx index c19fa82927d..83f94a33299 100644 --- a/app/containers/InAppNotification/index.tsx +++ b/app/containers/InAppNotification/index.tsx @@ -60,7 +60,8 @@ const InAppNotification = memo(() => { notification }, duration: notification.customTime || (process.env.RUNNING_E2E_TESTS ? 5000 : 3000), // default 3s, - hideOnPress: notification.hideOnPress ?? true, + // our components handle their own presses; the library's press wrapper swallows taps on them + hideOnPress: notification.hideOnPress ?? false, swipeEnabled: notification.swipeEnabled ?? true }); } diff --git a/app/containers/List/ListContainer.tsx b/app/containers/List/ListContainer.tsx index 4542f8be3d0..acbdb1db927 100644 --- a/app/containers/List/ListContainer.tsx +++ b/app/containers/List/ListContainer.tsx @@ -15,8 +15,6 @@ interface IListContainer extends ScrollViewProps { testID?: string; } const ListContainer = ({ children, ...props }: IListContainer) => { - 'use memo'; - const { bottom } = useSafeAreaInsets(); return ( diff --git a/app/containers/List/ListHeader.tsx b/app/containers/List/ListHeader.tsx index 2651c1dc7f1..db4707890bd 100644 --- a/app/containers/List/ListHeader.tsx +++ b/app/containers/List/ListHeader.tsx @@ -25,8 +25,6 @@ interface IListHeader { } const ListHeader = memo(({ title, translateTitle = true, numberOfLines }: IListHeader) => { - 'use memo'; - const { theme } = useTheme(); return ( diff --git a/app/containers/List/ListIcon.tsx b/app/containers/List/ListIcon.tsx index 065ee2eccbe..c7559a3c481 100644 --- a/app/containers/List/ListIcon.tsx +++ b/app/containers/List/ListIcon.tsx @@ -21,8 +21,6 @@ const styles = StyleSheet.create({ }); const ListIcon = ({ name, color, style, testID, size }: IListIcon): ReactElement => { - 'use memo'; - const { colors } = useTheme(); return ( diff --git a/app/containers/List/ListInfo.tsx b/app/containers/List/ListInfo.tsx index fb6c4e84d68..5eb1f486b24 100644 --- a/app/containers/List/ListInfo.tsx +++ b/app/containers/List/ListInfo.tsx @@ -25,8 +25,6 @@ interface IListInfo { } const ListInfo = memo(({ info, translateInfo = true }: IListInfo) => { - 'use memo'; - const { theme } = useTheme(); return ( diff --git a/app/containers/List/ListItem.tsx b/app/containers/List/ListItem.tsx index 3ffd7f56482..62e3f273299 100644 --- a/app/containers/List/ListItem.tsx +++ b/app/containers/List/ListItem.tsx @@ -71,8 +71,6 @@ const styles = StyleSheet.create({ interface IListTitle extends Pick {} const ListTitle = ({ title, color, styleTitle, translateTitle, numberOfLines }: IListTitle) => { - 'use memo'; - const { colors } = useTheme(); switch (typeof title) { case 'string': @@ -134,8 +132,6 @@ const Content = memo( accessibilityLabel, numberOfLines }: IListItemContent) => { - 'use memo'; - const { fontScale } = useResponsiveLayout(); const { colors } = useTheme(); @@ -231,8 +227,6 @@ interface IListItemButton { } const Button = memo(({ onPress, backgroundColor, underlayColor, style, ...props }: IListButtonPress) => { - 'use memo'; - const { colors } = useTheme(); const handlePress = () => { @@ -261,8 +255,6 @@ export interface IListItem extends Omit, Omit { - 'use memo'; - const { colors } = useTheme(); if (props.onPress) { diff --git a/app/containers/List/ListSection.tsx b/app/containers/List/ListSection.tsx index e6c3f7c5156..349442e07ce 100644 --- a/app/containers/List/ListSection.tsx +++ b/app/containers/List/ListSection.tsx @@ -16,8 +16,6 @@ interface IListSection { } const ListSection = ({ children, title, translateTitle }: IListSection) => { - 'use memo'; - return ( {title ?
: null} diff --git a/app/containers/List/ListSeparator.tsx b/app/containers/List/ListSeparator.tsx index 121ecb740e0..f9476016a2f 100644 --- a/app/containers/List/ListSeparator.tsx +++ b/app/containers/List/ListSeparator.tsx @@ -15,8 +15,6 @@ interface IListSeparator { } const ListSeparator = memo(({ style }: IListSeparator) => { - 'use memo'; - const { theme } = useTheme(); return ; diff --git a/app/containers/List/__snapshots__/List.test.tsx.snap b/app/containers/List/__snapshots__/List.test.tsx.snap index 02ca3132ced..09d7aab5b6d 100644 --- a/app/containers/List/__snapshots__/List.test.tsx.snap +++ b/app/containers/List/__snapshots__/List.test.tsx.snap @@ -85,6 +85,9 @@ exports[`Story Snapshots: Alert should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -193,6 +196,9 @@ exports[`Story Snapshots: Alert should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -301,6 +307,9 @@ exports[`Story Snapshots: Alert should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -458,6 +467,9 @@ exports[`Story Snapshots: Alert should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -605,6 +617,9 @@ exports[`Story Snapshots: Header should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -633,6 +648,9 @@ exports[`Story Snapshots: Header should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -882,6 +900,9 @@ exports[`Story Snapshots: ListItemWithRightContainerStyle should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -903,6 +924,9 @@ exports[`Story Snapshots: ListItemWithRightContainerStyle should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1130,6 +1154,9 @@ exports[`Story Snapshots: Pressable should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1286,6 +1313,9 @@ exports[`Story Snapshots: Pressable should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1478,6 +1508,9 @@ exports[`Story Snapshots: Radio should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1681,6 +1714,9 @@ exports[`Story Snapshots: Radio should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1884,6 +1920,9 @@ exports[`Story Snapshots: Radio should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2087,6 +2126,9 @@ exports[`Story Snapshots: Radio should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2108,6 +2150,9 @@ exports[`Story Snapshots: Radio should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2303,6 +2348,9 @@ exports[`Story Snapshots: SectionAndInfo should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2383,6 +2431,9 @@ exports[`Story Snapshots: SectionAndInfo should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2484,6 +2535,9 @@ exports[`Story Snapshots: SectionAndInfo should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2564,6 +2618,9 @@ exports[`Story Snapshots: SectionAndInfo should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2617,6 +2674,9 @@ exports[`Story Snapshots: SectionAndInfo should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2693,6 +2753,9 @@ exports[`Story Snapshots: SectionAndInfo should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2773,6 +2836,9 @@ exports[`Story Snapshots: SectionAndInfo should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2817,6 +2883,9 @@ exports[`Story Snapshots: SectionAndInfo should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -2854,6 +2923,9 @@ exports[`Story Snapshots: SectionAndInfo should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2930,6 +3002,9 @@ exports[`Story Snapshots: SectionAndInfo should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -3010,6 +3085,9 @@ exports[`Story Snapshots: SectionAndInfo should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -3054,6 +3132,9 @@ exports[`Story Snapshots: SectionAndInfo should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -3196,6 +3277,9 @@ exports[`Story Snapshots: TitleAndSubtitle should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -3276,6 +3360,9 @@ exports[`Story Snapshots: TitleAndSubtitle should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -3297,6 +3384,9 @@ exports[`Story Snapshots: TitleAndSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3376,6 +3466,9 @@ exports[`Story Snapshots: TitleAndSubtitle should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -3397,6 +3490,9 @@ exports[`Story Snapshots: TitleAndSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3476,6 +3572,9 @@ exports[`Story Snapshots: TitleAndSubtitle should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -3497,6 +3596,9 @@ exports[`Story Snapshots: TitleAndSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3593,6 +3695,9 @@ exports[`Story Snapshots: WithBiggerFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3787,6 +3892,9 @@ exports[`Story Snapshots: WithBiggerFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -3808,6 +3916,9 @@ exports[`Story Snapshots: WithBiggerFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4057,6 +4168,9 @@ exports[`Story Snapshots: WithBiggerFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -4078,6 +4192,9 @@ exports[`Story Snapshots: WithBiggerFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4171,6 +4288,9 @@ exports[`Story Snapshots: WithBiggerFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -4208,6 +4328,9 @@ exports[`Story Snapshots: WithBiggerFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4402,6 +4525,9 @@ exports[`Story Snapshots: WithBiggerFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -4423,6 +4549,9 @@ exports[`Story Snapshots: WithBiggerFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4672,6 +4801,9 @@ exports[`Story Snapshots: WithBiggerFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -4693,6 +4825,9 @@ exports[`Story Snapshots: WithBiggerFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4786,6 +4921,9 @@ exports[`Story Snapshots: WithBiggerFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -4870,6 +5008,9 @@ exports[`Story Snapshots: WithBlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5064,6 +5205,9 @@ exports[`Story Snapshots: WithBlackTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -5085,6 +5229,9 @@ exports[`Story Snapshots: WithBlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5334,6 +5481,9 @@ exports[`Story Snapshots: WithBlackTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -5355,6 +5505,9 @@ exports[`Story Snapshots: WithBlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5448,6 +5601,9 @@ exports[`Story Snapshots: WithBlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -5485,6 +5641,9 @@ exports[`Story Snapshots: WithBlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5679,6 +5838,9 @@ exports[`Story Snapshots: WithBlackTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -5700,6 +5862,9 @@ exports[`Story Snapshots: WithBlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5949,6 +6114,9 @@ exports[`Story Snapshots: WithBlackTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -5970,6 +6138,9 @@ exports[`Story Snapshots: WithBlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6063,6 +6234,9 @@ exports[`Story Snapshots: WithBlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -6167,6 +6341,9 @@ exports[`Story Snapshots: WithCustomColors should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -6319,6 +6496,9 @@ exports[`Story Snapshots: WithCustomColors should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -6419,6 +6599,9 @@ exports[`Story Snapshots: WithDarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6613,6 +6796,9 @@ exports[`Story Snapshots: WithDarkTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -6634,6 +6820,9 @@ exports[`Story Snapshots: WithDarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6883,6 +7072,9 @@ exports[`Story Snapshots: WithDarkTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -6904,6 +7096,9 @@ exports[`Story Snapshots: WithDarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6997,6 +7192,9 @@ exports[`Story Snapshots: WithDarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -7034,6 +7232,9 @@ exports[`Story Snapshots: WithDarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -7228,6 +7429,9 @@ exports[`Story Snapshots: WithDarkTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -7249,6 +7453,9 @@ exports[`Story Snapshots: WithDarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -7498,6 +7705,9 @@ exports[`Story Snapshots: WithDarkTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -7519,6 +7729,9 @@ exports[`Story Snapshots: WithDarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -7612,6 +7825,9 @@ exports[`Story Snapshots: WithDarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -7805,6 +8021,9 @@ exports[`Story Snapshots: WithFlatList should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -7891,6 +8110,9 @@ exports[`Story Snapshots: WithFlatList should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -7977,6 +8199,9 @@ exports[`Story Snapshots: WithFlatList should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -8063,6 +8288,9 @@ exports[`Story Snapshots: WithFlatList should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -8149,6 +8377,9 @@ exports[`Story Snapshots: WithFlatList should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -8235,6 +8466,9 @@ exports[`Story Snapshots: WithFlatList should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -8321,6 +8555,9 @@ exports[`Story Snapshots: WithFlatList should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -8407,6 +8644,9 @@ exports[`Story Snapshots: WithFlatList should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -8493,6 +8733,9 @@ exports[`Story Snapshots: WithFlatList should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -8579,6 +8822,9 @@ exports[`Story Snapshots: WithFlatList should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -8769,6 +9015,9 @@ exports[`Story Snapshots: WithIcon should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -8849,6 +9098,9 @@ exports[`Story Snapshots: WithIcon should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -9024,6 +9276,9 @@ exports[`Story Snapshots: WithIcon should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -9045,6 +9300,9 @@ exports[`Story Snapshots: WithIcon should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -9172,6 +9430,9 @@ exports[`Story Snapshots: WithIcon should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -9319,6 +9580,9 @@ exports[`Story Snapshots: WithSmallFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -9513,6 +9777,9 @@ exports[`Story Snapshots: WithSmallFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -9534,6 +9801,9 @@ exports[`Story Snapshots: WithSmallFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -9783,6 +10053,9 @@ exports[`Story Snapshots: WithSmallFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -9804,6 +10077,9 @@ exports[`Story Snapshots: WithSmallFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -9897,6 +10173,9 @@ exports[`Story Snapshots: WithSmallFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -9934,6 +10213,9 @@ exports[`Story Snapshots: WithSmallFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -10128,6 +10410,9 @@ exports[`Story Snapshots: WithSmallFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -10149,6 +10434,9 @@ exports[`Story Snapshots: WithSmallFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -10398,6 +10686,9 @@ exports[`Story Snapshots: WithSmallFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -10419,6 +10710,9 @@ exports[`Story Snapshots: WithSmallFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -10512,6 +10806,9 @@ exports[`Story Snapshots: WithSmallFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", diff --git a/app/containers/LoginServices/LoginServices.test.tsx b/app/containers/LoginServices/LoginServices.test.tsx index d07ccee8870..5fe226ae38b 100644 --- a/app/containers/LoginServices/LoginServices.test.tsx +++ b/app/containers/LoginServices/LoginServices.test.tsx @@ -39,7 +39,7 @@ const makeService = (overrides: Partial = {}): IItemService => clientId: 'client-123', scope: '', ...overrides - } as IItemService); + }) as IItemService; const buildServices = (count: number, extra: Partial = {}): IServices => { const names = ['github', 'gitlab', 'google', 'facebook', 'linkedin', 'twitter', 'wordpress'] as const; diff --git a/app/containers/LoginServices/__snapshots__/LoginServices.test.tsx.snap b/app/containers/LoginServices/__snapshots__/LoginServices.test.tsx.snap index 5c4be457eeb..da8fdb96eda 100644 --- a/app/containers/LoginServices/__snapshots__/LoginServices.test.tsx.snap +++ b/app/containers/LoginServices/__snapshots__/LoginServices.test.tsx.snap @@ -62,6 +62,9 @@ exports[`Story Snapshots: Separators should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -102,6 +105,9 @@ exports[`Story Snapshots: Separators should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "marginHorizontal": 12, "textAlign": "left", @@ -188,6 +194,9 @@ exports[`Story Snapshots: Separators should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -228,6 +237,9 @@ exports[`Story Snapshots: Separators should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "marginHorizontal": 12, "textAlign": "left", @@ -319,6 +331,9 @@ exports[`Story Snapshots: ServiceListCollapsed should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -461,6 +476,9 @@ exports[`Story Snapshots: ServiceListCollapsed should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -477,6 +495,9 @@ exports[`Story Snapshots: ServiceListCollapsed should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", } @@ -621,6 +642,9 @@ exports[`Story Snapshots: ServiceListCollapsed should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -637,6 +661,9 @@ exports[`Story Snapshots: ServiceListCollapsed should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", } @@ -781,6 +808,9 @@ exports[`Story Snapshots: ServiceListCollapsed should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -797,6 +827,9 @@ exports[`Story Snapshots: ServiceListCollapsed should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", } @@ -874,6 +907,9 @@ exports[`Story Snapshots: ServiceListUncollapsed should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -1016,6 +1052,9 @@ exports[`Story Snapshots: ServiceListUncollapsed should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1032,6 +1071,9 @@ exports[`Story Snapshots: ServiceListUncollapsed should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", } @@ -1176,6 +1218,9 @@ exports[`Story Snapshots: ServiceListUncollapsed should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1192,6 +1237,9 @@ exports[`Story Snapshots: ServiceListUncollapsed should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", } @@ -1336,6 +1384,9 @@ exports[`Story Snapshots: ServiceListUncollapsed should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1352,6 +1403,9 @@ exports[`Story Snapshots: ServiceListUncollapsed should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", } @@ -1496,6 +1550,9 @@ exports[`Story Snapshots: ServiceListUncollapsed should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1512,6 +1569,9 @@ exports[`Story Snapshots: ServiceListUncollapsed should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", } @@ -1660,6 +1720,9 @@ exports[`Story Snapshots: ServicesList should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1676,6 +1739,9 @@ exports[`Story Snapshots: ServicesList should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", } @@ -1819,6 +1885,9 @@ exports[`Story Snapshots: ServicesList should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1835,6 +1904,9 @@ exports[`Story Snapshots: ServicesList should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", } @@ -1978,6 +2050,9 @@ exports[`Story Snapshots: ServicesList should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1994,6 +2069,9 @@ exports[`Story Snapshots: ServicesList should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", } @@ -2137,6 +2215,9 @@ exports[`Story Snapshots: ServicesList should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2153,6 +2234,9 @@ exports[`Story Snapshots: ServicesList should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", } diff --git a/app/containers/LoginServices/__tests__/serviceLogin.test.ts b/app/containers/LoginServices/__tests__/serviceLogin.test.ts new file mode 100644 index 00000000000..7f85873b725 --- /dev/null +++ b/app/containers/LoginServices/__tests__/serviceLogin.test.ts @@ -0,0 +1,35 @@ +import * as WebBrowser from 'expo-web-browser'; + +import { onPressGoogle } from '../serviceLogin'; + +jest.mock('expo-web-browser', () => ({ + openAuthSessionAsync: jest.fn(() => Promise.resolve({ type: 'dismiss' })) +})); + +jest.mock('../../../lib/services/connect', () => ({ + loginOAuthOrSso: jest.fn() +})); + +const service = { + _id: 'google', + name: 'google', + service: 'google', + authType: 'oauth', + buttonColor: '#fff', + buttonLabelColor: '#000', + clientConfig: { provider: 'google' }, + serverURL: '', + authorizePath: '', + clientId: 'client-id', + scope: '' +} as const; + +describe('onPressGoogle', () => { + it('opens the Google OAuth URL with prompt=select_account', () => { + onPressGoogle({ service, server: 'https://mpbila.qa.rocket.chat' }); + + const url = (WebBrowser.openAuthSessionAsync as jest.Mock).mock.calls[0][0]; + expect(url).toContain('accounts.google.com/o/oauth2/auth'); + expect(url).toContain('prompt=select_account'); + }); +}); diff --git a/app/containers/LoginServices/serviceLogin.ts b/app/containers/LoginServices/serviceLogin.ts index fad1a839ac3..8eafda139bc 100644 --- a/app/containers/LoginServices/serviceLogin.ts +++ b/app/containers/LoginServices/serviceLogin.ts @@ -54,7 +54,7 @@ export const onPressGoogle = ({ service, server }: IServiceLogin) => { const redirect_uri = `${server}/_oauth/google?close`; const scope = encodeURIComponent('profile email'); const state = getOAuthState('redirect'); - const params = `?client_id=${clientId}&redirect_uri=${redirect_uri}&scope=${scope}&state=${state}&response_type=code`; + const params = `?client_id=${clientId}&redirect_uri=${redirect_uri}&scope=${scope}&state=${state}&response_type=code&prompt=select_account`; openOAuthSession(`${endpoint}${params}`); }; diff --git a/app/containers/MediaCallHeader/MediaCallHeader.tsx b/app/containers/MediaCallHeader/MediaCallHeader.tsx index f2e7471d08b..90d535709b9 100644 --- a/app/containers/MediaCallHeader/MediaCallHeader.tsx +++ b/app/containers/MediaCallHeader/MediaCallHeader.tsx @@ -22,8 +22,6 @@ const styles = StyleSheet.create({ }); const MediaCallHeader = () => { - 'use memo'; - const { colors } = useTheme(); const insets = useSafeAreaInsets(); const call = useCallStore(useShallow(state => state.call)); diff --git a/app/containers/MediaCallHeader/__snapshots__/MediaCallHeader.test.tsx.snap b/app/containers/MediaCallHeader/__snapshots__/MediaCallHeader.test.tsx.snap index 4f0abdbca1a..3c951d72160 100644 --- a/app/containers/MediaCallHeader/__snapshots__/MediaCallHeader.test.tsx.snap +++ b/app/containers/MediaCallHeader/__snapshots__/MediaCallHeader.test.tsx.snap @@ -218,6 +218,9 @@ exports[`Story Snapshots: ActiveCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 24, "textAlign": "left", @@ -546,6 +549,9 @@ exports[`Story Snapshots: Collapsed should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 24, "textAlign": "left", @@ -874,6 +880,9 @@ exports[`Story Snapshots: ConnectingCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 24, "textAlign": "left", @@ -895,6 +904,9 @@ exports[`Story Snapshots: ConnectingCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 16, "textAlign": "left", @@ -1219,6 +1231,9 @@ exports[`Story Snapshots: Focused should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 24, "textAlign": "left", @@ -1567,6 +1582,9 @@ exports[`Story Snapshots: WithRemoteHeld should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 24, "textAlign": "left", @@ -1592,6 +1610,9 @@ exports[`Story Snapshots: WithRemoteHeld should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 16, "textAlign": "left", @@ -1916,6 +1937,9 @@ exports[`Story Snapshots: WithRemoteMuted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 24, "textAlign": "left", @@ -1941,6 +1965,9 @@ exports[`Story Snapshots: WithRemoteMuted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 16, "textAlign": "left", diff --git a/app/containers/MediaCallHeader/components/Collapse.tsx b/app/containers/MediaCallHeader/components/Collapse.tsx index 1ad769c30c4..0d5a1450e74 100644 --- a/app/containers/MediaCallHeader/components/Collapse.tsx +++ b/app/containers/MediaCallHeader/components/Collapse.tsx @@ -4,8 +4,6 @@ import { useCallStore } from '../../../lib/services/voip/useCallStore'; import * as HeaderButton from '../../Header/components/HeaderButton'; const Collapse = () => { - 'use memo'; - const { colors } = useTheme(); const focused = useCallStore(state => state.focused); const toggleFocus = useCallStore(state => state.toggleFocus); diff --git a/app/containers/MediaCallHeader/components/EndCall.tsx b/app/containers/MediaCallHeader/components/EndCall.tsx index aecbdfbb7c5..db4e8598f11 100644 --- a/app/containers/MediaCallHeader/components/EndCall.tsx +++ b/app/containers/MediaCallHeader/components/EndCall.tsx @@ -4,8 +4,6 @@ import { useCallStore } from '../../../lib/services/voip/useCallStore'; import * as HeaderButton from '../../Header/components/HeaderButton'; const EndCall = () => { - 'use memo'; - const { colors } = useTheme(); const endCall = useCallStore(state => state.endCall); return ( diff --git a/app/containers/MediaCallHeader/components/Subtitle.tsx b/app/containers/MediaCallHeader/components/Subtitle.tsx index f3a1cd438b3..5d2e32a6537 100644 --- a/app/containers/MediaCallHeader/components/Subtitle.tsx +++ b/app/containers/MediaCallHeader/components/Subtitle.tsx @@ -14,8 +14,6 @@ const styles = StyleSheet.create({ }); const Subtitle = () => { - 'use memo'; - const { colors } = useTheme(); const contact = useCallStore(state => state.contact); const extension = contact.sipExtension; diff --git a/app/containers/MediaCallHeader/components/Timer.tsx b/app/containers/MediaCallHeader/components/Timer.tsx index 56981c57da6..b126e30ed3e 100644 --- a/app/containers/MediaCallHeader/components/Timer.tsx +++ b/app/containers/MediaCallHeader/components/Timer.tsx @@ -12,8 +12,6 @@ const formatDuration = (seconds: number): string => { }; const Timer = () => { - 'use memo'; - const callStartTime = useCallStore(state => state.callStartTime); const [duration, setDuration] = useState(callStartTime ? Math.floor((new Date().getTime() - callStartTime) / 1000) : 0); diff --git a/app/containers/MediaCallHeader/components/Title.tsx b/app/containers/MediaCallHeader/components/Title.tsx index 60df2de936e..ec2af30b9c5 100644 --- a/app/containers/MediaCallHeader/components/Title.tsx +++ b/app/containers/MediaCallHeader/components/Title.tsx @@ -20,8 +20,6 @@ const styles = StyleSheet.create({ }); const Title = () => { - 'use memo'; - const { colors } = useTheme(); const callState = useCallStore(state => state.callState); const callStartTime = useCallStore(state => state.callStartTime); diff --git a/app/containers/MessageComposer/MessageComposer.test.tsx b/app/containers/MessageComposer/MessageComposer.test.tsx index fdcf1a973e0..8a15b8a2472 100644 --- a/app/containers/MessageComposer/MessageComposer.test.tsx +++ b/app/containers/MessageComposer/MessageComposer.test.tsx @@ -92,7 +92,7 @@ jest.mock('../../lib/database/services/Message', () => ({ { description: `Attachment description for ${messageId}` } - ] + ] : [] }) })); diff --git a/app/containers/MessageComposer/MessageComposer.tsx b/app/containers/MessageComposer/MessageComposer.tsx index 40ee12556aa..bcbe3e3a947 100644 --- a/app/containers/MessageComposer/MessageComposer.tsx +++ b/app/containers/MessageComposer/MessageComposer.tsx @@ -42,8 +42,6 @@ export const MessageComposer = ({ forwardedRef: Ref; children?: ReactElement | null; }): ReactElement | null => { - 'use memo'; - const composerInputRef = useRef(null); const composerInputComponentRef = useRef({ getTextAndClear: () => '', @@ -114,7 +112,7 @@ export const MessageComposer = ({ const updatedAttachments = attachments.length ? attachments.map(({ description, altText, fileId, filename }) => altTextSupported ? { description: altText || '', fileId, filename } : { description: description || '' } - ) + ) : undefined; editRequest?.({ id: action.messageId, msg: textFromInput, rid, attachments: updatedAttachments }); clearAttachments(); @@ -125,7 +123,7 @@ export const MessageComposer = ({ let quotedMessage: string | undefined; if (action?.kind === 'quote') { - quotedMessage = await prepareQuoteMessage(textFromInput, action.messageIds); + quotedMessage = await prepareQuoteMessage(textFromInput, action.messageIds, tmid); } try { @@ -149,7 +147,7 @@ export const MessageComposer = ({ } if (action?.kind === 'quote') { - const quoteMessage = await prepareQuoteMessage(textFromInput, action.messageIds); + const quoteMessage = await prepareQuoteMessage(textFromInput, action.messageIds, tmid); onSendMessage?.(quoteMessage); return; } diff --git a/app/containers/MessageComposer/MessageComposerContainer.tsx b/app/containers/MessageComposer/MessageComposerContainer.tsx index eb100e1c510..1beb8fbd977 100644 --- a/app/containers/MessageComposer/MessageComposerContainer.tsx +++ b/app/containers/MessageComposer/MessageComposerContainer.tsx @@ -7,8 +7,6 @@ import { EmojiKeyboardProvider } from './hooks/useEmojiKeyboard'; export const MessageComposerContainer = forwardRef( ({ children }, ref): ReactElement => { - 'use memo'; - return ( diff --git a/app/containers/MessageComposer/__snapshots__/MessageComposer.test.tsx.snap b/app/containers/MessageComposer/__snapshots__/MessageComposer.test.tsx.snap index ab660f0a8df..80bd5075c9e 100644 --- a/app/containers/MessageComposer/__snapshots__/MessageComposer.test.tsx.snap +++ b/app/containers/MessageComposer/__snapshots__/MessageComposer.test.tsx.snap @@ -166,6 +166,9 @@ exports[`MessageComposer Audio tap record 1`] = ` "color": "#6C727A", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -386,6 +389,9 @@ exports[`MessageComposer Quote Add quote \`abc\` 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, @@ -566,6 +572,9 @@ exports[`MessageComposer Quote Add quote \`abc\` 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 20, "paddingRight": 4, @@ -580,6 +589,9 @@ exports[`MessageComposer Quote Add quote \`abc\` 1`] = ` "color": "#9EA2A8", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 16, "textAlign": "left", @@ -668,6 +680,9 @@ exports[`MessageComposer Quote Add quote \`abc\` 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -681,6 +696,9 @@ exports[`MessageComposer Quote Add quote \`abc\` 1`] = ` "color": "#2F343D", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -836,6 +854,9 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, @@ -1017,6 +1038,9 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 20, "paddingRight": 4, @@ -1031,6 +1055,9 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` "color": "#9EA2A8", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 16, "textAlign": "left", @@ -1119,6 +1146,9 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1132,6 +1162,9 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` "color": "#2F343D", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1200,6 +1233,9 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 20, "paddingRight": 4, @@ -1214,6 +1250,9 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` "color": "#9EA2A8", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 16, "textAlign": "left", @@ -1302,6 +1341,9 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1315,6 +1357,9 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` "color": "#2F343D", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1470,6 +1515,9 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, @@ -1651,6 +1699,9 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 20, "paddingRight": 4, @@ -1665,6 +1716,9 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` "color": "#9EA2A8", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 16, "textAlign": "left", @@ -1753,6 +1807,9 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1766,6 +1823,9 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` "color": "#2F343D", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1834,6 +1894,9 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 20, "paddingRight": 4, @@ -1848,6 +1911,9 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` "color": "#9EA2A8", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 16, "textAlign": "left", @@ -1936,6 +2002,9 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1949,6 +2018,9 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` "color": "#2F343D", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -2023,6 +2095,9 @@ exports[`MessageComposer Toolbar Markdown tap bold 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, @@ -2649,6 +2724,9 @@ exports[`MessageComposer Toolbar Markdown tap code 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, @@ -3275,6 +3353,9 @@ exports[`MessageComposer Toolbar Markdown tap code-block 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, @@ -3901,6 +3982,9 @@ exports[`MessageComposer Toolbar Markdown tap italic 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, @@ -4527,6 +4611,9 @@ exports[`MessageComposer Toolbar Markdown tap markdown 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, @@ -5153,6 +5240,9 @@ exports[`MessageComposer Toolbar Markdown tap strike 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, @@ -5779,6 +5869,9 @@ exports[`MessageComposer Toolbar Markdown type test and tap bold 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, @@ -6405,6 +6498,9 @@ exports[`MessageComposer Toolbar Markdown type test and tap code 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, @@ -7031,6 +7127,9 @@ exports[`MessageComposer Toolbar Markdown type test and tap code-block 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, @@ -7657,6 +7756,9 @@ exports[`MessageComposer Toolbar Markdown type test and tap italic 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, @@ -8283,6 +8385,9 @@ exports[`MessageComposer Toolbar Markdown type test and tap strike 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, @@ -8909,6 +9014,9 @@ exports[`MessageComposer Toolbar tap actions 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, @@ -9379,6 +9487,9 @@ exports[`MessageComposer Toolbar tap emoji 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, @@ -11294,6 +11405,9 @@ exports[`MessageComposer Toolbar tap mention 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "maxHeight": 200, diff --git a/app/containers/MessageComposer/components/Attachments/ComposerAttachments.tsx b/app/containers/MessageComposer/components/Attachments/ComposerAttachments.tsx index 9db46a51ab8..0e68adbb128 100644 --- a/app/containers/MessageComposer/components/Attachments/ComposerAttachments.tsx +++ b/app/containers/MessageComposer/components/Attachments/ComposerAttachments.tsx @@ -23,8 +23,6 @@ const getRemoveAccessibilityLabel = () => I18n.t('Remove_attachment'); const getRemoveTestID = (_: IShareAttachment, index: number) => `message-composer-remove-attachment-${index}`; export const ComposerAttachments = () => { - 'use memo'; - const attachments = useComposerAttachments(); const { removeAttachment, updateAttachment } = useMessageComposerApi(); const { showActionSheet } = useActionSheet(); diff --git a/app/containers/MessageComposer/components/Attachments/__snapshots__/AttachmentActionSheet.test.tsx.snap b/app/containers/MessageComposer/components/Attachments/__snapshots__/AttachmentActionSheet.test.tsx.snap index be15360f6ed..d55336309d9 100644 --- a/app/containers/MessageComposer/components/Attachments/__snapshots__/AttachmentActionSheet.test.tsx.snap +++ b/app/containers/MessageComposer/components/Attachments/__snapshots__/AttachmentActionSheet.test.tsx.snap @@ -37,6 +37,9 @@ exports[`Story Snapshots: File should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 24, "marginBottom": 16, @@ -172,6 +175,9 @@ exports[`Story Snapshots: File should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -223,6 +229,9 @@ exports[`Story Snapshots: Image should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 24, "marginBottom": 16, @@ -328,6 +337,9 @@ exports[`Story Snapshots: Image should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -379,6 +391,9 @@ exports[`Story Snapshots: ImageOnLegacyServer should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 24, "marginBottom": 16, @@ -484,6 +499,9 @@ exports[`Story Snapshots: ImageOnLegacyServer should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -535,6 +553,9 @@ exports[`Story Snapshots: ImageWithPrefilledAltText should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 24, "marginBottom": 16, @@ -640,6 +661,9 @@ exports[`Story Snapshots: ImageWithPrefilledAltText should match snapshot 1`] = { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -691,6 +715,9 @@ exports[`Story Snapshots: Video should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 24, "marginBottom": 16, @@ -826,6 +853,9 @@ exports[`Story Snapshots: Video should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, diff --git a/app/containers/MessageComposer/components/Autocomplete/Autocomplete.tsx b/app/containers/MessageComposer/components/Autocomplete/Autocomplete.tsx index 176c8406a39..f8db6d74439 100644 --- a/app/containers/MessageComposer/components/Autocomplete/Autocomplete.tsx +++ b/app/containers/MessageComposer/components/Autocomplete/Autocomplete.tsx @@ -20,8 +20,6 @@ export const Autocomplete = ({ style: AnimatedStyle; accessibilityFocusOnInput: () => void; }): ReactElement | null => { - 'use memo'; - const { rid, updateAutocompleteVisible } = useRoomContext(); const { text, type, params } = useAutocompleteParams(); const items = useAutocomplete({ diff --git a/app/containers/MessageComposer/components/Autocomplete/AutocompleteCannedResponse.tsx b/app/containers/MessageComposer/components/Autocomplete/AutocompleteCannedResponse.tsx index 2fa3619e1ca..3887688cd75 100644 --- a/app/containers/MessageComposer/components/Autocomplete/AutocompleteCannedResponse.tsx +++ b/app/containers/MessageComposer/components/Autocomplete/AutocompleteCannedResponse.tsx @@ -8,8 +8,6 @@ import { NO_CANNED_RESPONSES } from '../../constants'; import { useStyle } from './styles'; export const AutocompleteCannedResponse = ({ item }: { item: IAutocompleteCannedResponse }) => { - 'use memo'; - const [styles] = useStyle(); if (item.id === NO_CANNED_RESPONSES) { return ( diff --git a/app/containers/MessageComposer/components/Autocomplete/AutocompleteEmoji.tsx b/app/containers/MessageComposer/components/Autocomplete/AutocompleteEmoji.tsx index 790db38bd80..5accfa06b88 100644 --- a/app/containers/MessageComposer/components/Autocomplete/AutocompleteEmoji.tsx +++ b/app/containers/MessageComposer/components/Autocomplete/AutocompleteEmoji.tsx @@ -5,8 +5,6 @@ import { Emoji } from '../../../EmojiPicker/Emoji'; import { useStyle } from './styles'; export const AutocompleteEmoji = ({ item }: { item: IAutocompleteEmoji }) => { - 'use memo'; - const [styles] = useStyle(); return ( <> diff --git a/app/containers/MessageComposer/components/Autocomplete/AutocompleteItem.tsx b/app/containers/MessageComposer/components/Autocomplete/AutocompleteItem.tsx index 49a06c61378..0b495a12ba9 100644 --- a/app/containers/MessageComposer/components/Autocomplete/AutocompleteItem.tsx +++ b/app/containers/MessageComposer/components/Autocomplete/AutocompleteItem.tsx @@ -70,8 +70,6 @@ const getAutocompleteAccessibilityLabel = (item: TAutocompleteItem): string => { }; export const AutocompleteItem = ({ item, onPress }: IAutocompleteItemProps) => { - 'use memo'; - const [styles, colors] = useStyle(); const autocompleteAccessibilityLabel = getAutocompleteAccessibilityLabel(item); return ( diff --git a/app/containers/MessageComposer/components/Autocomplete/AutocompleteItemLoading.tsx b/app/containers/MessageComposer/components/Autocomplete/AutocompleteItemLoading.tsx index 1589c29087a..1b8b996af25 100644 --- a/app/containers/MessageComposer/components/Autocomplete/AutocompleteItemLoading.tsx +++ b/app/containers/MessageComposer/components/Autocomplete/AutocompleteItemLoading.tsx @@ -5,8 +5,6 @@ import { View } from 'react-native'; import { useTheme } from '../../../../theme'; export const AutocompleteItemLoading = ({ preview = false }: { preview?: boolean }): ReactElement => { - 'use memo'; - const { colors } = useTheme(); if (preview) { return ( diff --git a/app/containers/MessageComposer/components/Autocomplete/AutocompletePreview.tsx b/app/containers/MessageComposer/components/Autocomplete/AutocompletePreview.tsx index b2dee5fe88a..6a37784f7eb 100644 --- a/app/containers/MessageComposer/components/Autocomplete/AutocompletePreview.tsx +++ b/app/containers/MessageComposer/components/Autocomplete/AutocompletePreview.tsx @@ -7,8 +7,6 @@ import { AutocompleteItemLoading } from './AutocompleteItemLoading'; import { useStyle } from './styles'; export const AutocompletePreview = ({ item, onPress }: IAutocompleteItemProps) => { - 'use memo'; - const [styles, colors] = useStyle(); let content; diff --git a/app/containers/MessageComposer/components/Autocomplete/AutocompleteSlashCommand.tsx b/app/containers/MessageComposer/components/Autocomplete/AutocompleteSlashCommand.tsx index 0001cfe28b1..3098a9326ea 100644 --- a/app/containers/MessageComposer/components/Autocomplete/AutocompleteSlashCommand.tsx +++ b/app/containers/MessageComposer/components/Autocomplete/AutocompleteSlashCommand.tsx @@ -5,8 +5,6 @@ import I18n from '../../../../i18n'; import { useStyle } from './styles'; export const AutocompleteSlashCommand = ({ item }: { item: IAutocompleteSlashCommand }) => { - 'use memo'; - const [styles] = useStyle(); return ( diff --git a/app/containers/MessageComposer/components/Autocomplete/AutocompleteUserRoom.tsx b/app/containers/MessageComposer/components/Autocomplete/AutocompleteUserRoom.tsx index 52e545651ed..bce05003203 100644 --- a/app/containers/MessageComposer/components/Autocomplete/AutocompleteUserRoom.tsx +++ b/app/containers/MessageComposer/components/Autocomplete/AutocompleteUserRoom.tsx @@ -8,8 +8,6 @@ import I18n from '../../../../i18n'; import { useStyle } from './styles'; export const AutocompleteUserRoom = ({ item }: { item: IAutocompleteUserRoom }) => { - 'use memo'; - const [styles] = useStyle(); const isAllOrHere = fetchIsAllOrHere(item); diff --git a/app/containers/MessageComposer/components/Autocomplete/styles.ts b/app/containers/MessageComposer/components/Autocomplete/styles.ts index 51ca6106ea3..bc0a2c94d97 100644 --- a/app/containers/MessageComposer/components/Autocomplete/styles.ts +++ b/app/containers/MessageComposer/components/Autocomplete/styles.ts @@ -4,8 +4,6 @@ import { useTheme } from '../../../../theme'; const MAX_HEIGHT = 216; export const useStyle = () => { - 'use memo'; - const { colors } = useTheme(); const styles = { root: { diff --git a/app/containers/MessageComposer/components/Buttons/ActionsButton.tsx b/app/containers/MessageComposer/components/Buttons/ActionsButton.tsx index d9212d13cd2..3ef381074fd 100644 --- a/app/containers/MessageComposer/components/Buttons/ActionsButton.tsx +++ b/app/containers/MessageComposer/components/Buttons/ActionsButton.tsx @@ -12,8 +12,6 @@ import { useCanUploadFile, useChooseMedia } from '../../hooks'; import { useRoomContext } from '../../../../views/RoomView/context'; export const ActionsButton = () => { - 'use memo'; - const { rid, tmid, t } = useRoomContext(); const { closeEmojiKeyboardAndAction } = useContext(MessageInnerContext); const permissionToUpload = useCanUploadFile(rid); diff --git a/app/containers/MessageComposer/components/Buttons/BaseButton.tsx b/app/containers/MessageComposer/components/Buttons/BaseButton.tsx index 1dc0a1f2a47..eb4f08d72a6 100644 --- a/app/containers/MessageComposer/components/Buttons/BaseButton.tsx +++ b/app/containers/MessageComposer/components/Buttons/BaseButton.tsx @@ -21,8 +21,6 @@ export const hitSlop = { }; export const BaseButton = ({ accessibilityLabel, icon, color, testID, onPress }: IBaseButton) => { - 'use memo'; - const { setFocused } = useMessageComposerApi(); const { fontScale } = useWindowDimensions(); const size = 24 * fontScale; diff --git a/app/containers/MessageComposer/components/Buttons/MicOrSendButton.tsx b/app/containers/MessageComposer/components/Buttons/MicOrSendButton.tsx index c5a06567f94..7dde28e7e34 100644 --- a/app/containers/MessageComposer/components/Buttons/MicOrSendButton.tsx +++ b/app/containers/MessageComposer/components/Buttons/MicOrSendButton.tsx @@ -13,8 +13,6 @@ import { useCanUploadFile } from '../../hooks'; import { BaseButton } from './BaseButton'; export const MicOrSendButton = (): ReactElement | null => { - 'use memo'; - const { rid, sharing } = useRoomContext(); const micOrSend = useMicOrSend(); const attachments = useComposerAttachments(); diff --git a/app/containers/MessageComposer/components/CancelEdit.tsx b/app/containers/MessageComposer/components/CancelEdit.tsx index 4b776a86fc9..86c6fb1679a 100644 --- a/app/containers/MessageComposer/components/CancelEdit.tsx +++ b/app/containers/MessageComposer/components/CancelEdit.tsx @@ -4,8 +4,6 @@ import { useMessageAction } from '../../message/stores/MessageActionStore'; import { Gap } from './Gap'; export const CancelEdit = () => { - 'use memo'; - const { editCancel } = useRoomContext(); const action = useMessageAction(); diff --git a/app/containers/MessageComposer/components/EmojiSearchbar.tsx b/app/containers/MessageComposer/components/EmojiSearchbar.tsx index 114b4e6336b..05fc3d236e9 100644 --- a/app/containers/MessageComposer/components/EmojiSearchbar.tsx +++ b/app/containers/MessageComposer/components/EmojiSearchbar.tsx @@ -19,8 +19,6 @@ import { useEmojiKeyboard } from '../hooks/useEmojiKeyboard'; const BUTTON_HIT_SLOP = { top: 4, right: 4, bottom: 4, left: 4 }; export const EmojiSearchbar = (): ReactElement => { - 'use memo'; - const { colors } = useTheme(); const [searchText, setSearchText] = useState(''); const { closeEmojiSearchbar } = useEmojiKeyboard(); diff --git a/app/containers/MessageComposer/components/MessageComposerContent.tsx b/app/containers/MessageComposer/components/MessageComposerContent.tsx index d7d3498bc3c..9c5782169d2 100644 --- a/app/containers/MessageComposer/components/MessageComposerContent.tsx +++ b/app/containers/MessageComposer/components/MessageComposerContent.tsx @@ -26,8 +26,6 @@ interface MessageComposerContentProps { export const MessageComposerContent = memo( ({ recordingAudio, action, showEmojiSearchbar, composerInputComponentRef, composerInputRef, children, onLayout }) => { - 'use memo'; - const { colors } = useTheme(); const backgroundColor = action === 'edit' ? colors.statusBackgroundWarning2 : colors.surfaceLight; diff --git a/app/containers/MessageComposer/components/Quotes/Quote.tsx b/app/containers/MessageComposer/components/Quotes/Quote.tsx index 4c28dbc27c0..80e20613cb7 100644 --- a/app/containers/MessageComposer/components/Quotes/Quote.tsx +++ b/app/containers/MessageComposer/components/Quotes/Quote.tsx @@ -10,12 +10,10 @@ import { useAppSelector } from '../../../../lib/hooks/useAppSelector'; import { MarkdownPreview } from '../../../markdown'; export const Quote = ({ messageId }: { messageId: string }) => { - 'use memo'; - const [styles, colors] = useStyle(); - const message = useMessage(messageId); + const { tmid, onRemoveQuoteMessage } = useRoomContext(); + const message = useMessage(messageId, tmid); const useRealName = useAppSelector(({ settings }) => settings.UI_Use_Real_Name); - const { onRemoveQuoteMessage } = useRoomContext(); let username = ''; let msg = ''; diff --git a/app/containers/MessageComposer/components/Quotes/Quotes.tsx b/app/containers/MessageComposer/components/Quotes/Quotes.tsx index e8a54af866d..7d648315a36 100644 --- a/app/containers/MessageComposer/components/Quotes/Quotes.tsx +++ b/app/containers/MessageComposer/components/Quotes/Quotes.tsx @@ -5,8 +5,6 @@ import { Quote } from './Quote'; import { useMessageAction } from '../../../message/stores/MessageActionStore'; export const Quotes = (): ReactElement | null => { - 'use memo'; - const action = useMessageAction(); const selectedMessages = action?.kind === 'quote' ? action.messageIds : []; const nQuotesRef = useRef(0); diff --git a/app/containers/MessageComposer/components/RecordAudio/ReviewButton.tsx b/app/containers/MessageComposer/components/RecordAudio/ReviewButton.tsx index 667cde0c4c6..5b105047a4f 100644 --- a/app/containers/MessageComposer/components/RecordAudio/ReviewButton.tsx +++ b/app/containers/MessageComposer/components/RecordAudio/ReviewButton.tsx @@ -8,8 +8,6 @@ import { CustomIcon } from '../../../CustomIcon'; import { hitSlop } from '../Buttons'; export const ReviewButton = ({ onPress }: { onPress: Function }): ReactElement => { - 'use memo'; - const { colors } = useTheme(); return ( { - 'use memo'; - const alsoSendThreadToChannel = useAlsoSendThreadToChannel(); const { setAlsoSendThreadToChannel } = useMessageComposerApi(); const { showEmojiSearchbar } = useEmojiKeyboard(); diff --git a/app/containers/MessageComposer/components/Toolbar/Container.tsx b/app/containers/MessageComposer/components/Toolbar/Container.tsx index b5ec6f8fb0e..5a82943352f 100644 --- a/app/containers/MessageComposer/components/Toolbar/Container.tsx +++ b/app/containers/MessageComposer/components/Toolbar/Container.tsx @@ -2,8 +2,6 @@ import { type ReactElement } from 'react'; import { View } from 'react-native'; export const Container = ({ children }: { children: (ReactElement | null)[] }): ReactElement => { - 'use memo'; - return ( { - 'use memo'; - const { sharing } = useRoomContext(); const { setMarkdownToolbar } = useMessageComposerApi(); const { openEmojiKeyboard } = useEmojiKeyboard(); diff --git a/app/containers/MessageComposer/components/Toolbar/EmojiKeyboard.tsx b/app/containers/MessageComposer/components/Toolbar/EmojiKeyboard.tsx index 1cae3c747ba..8dceae787fb 100644 --- a/app/containers/MessageComposer/components/Toolbar/EmojiKeyboard.tsx +++ b/app/containers/MessageComposer/components/Toolbar/EmojiKeyboard.tsx @@ -8,8 +8,6 @@ import { Gap } from '../Gap'; import { useEmojiKeyboard } from '../../hooks/useEmojiKeyboard'; export const EmojiKeyboard = (): ReactElement => { - 'use memo'; - const { closeEmojiKeyboard } = useEmojiKeyboard(); const close = async () => { diff --git a/app/containers/MessageComposer/components/Toolbar/Markdown.tsx b/app/containers/MessageComposer/components/Toolbar/Markdown.tsx index 3187a4a548f..4a72f06a0a8 100644 --- a/app/containers/MessageComposer/components/Toolbar/Markdown.tsx +++ b/app/containers/MessageComposer/components/Toolbar/Markdown.tsx @@ -7,8 +7,6 @@ import { type TMarkdownStyle } from '../../interfaces'; import { emitter } from '../../../../lib/methods/helpers/emitter'; export const Markdown = (): ReactElement => { - 'use memo'; - const { setMarkdownToolbar } = useMessageComposerApi(); const onPress = (style: TMarkdownStyle) => emitter.emit('addMarkdown', { style }); diff --git a/app/containers/MessageComposer/components/Toolbar/Toolbar.tsx b/app/containers/MessageComposer/components/Toolbar/Toolbar.tsx index 7379657849e..033010a3a59 100644 --- a/app/containers/MessageComposer/components/Toolbar/Toolbar.tsx +++ b/app/containers/MessageComposer/components/Toolbar/Toolbar.tsx @@ -11,8 +11,6 @@ import { CancelEdit } from '../CancelEdit'; import { useEmojiKeyboard } from '../../hooks/useEmojiKeyboard'; export const Toolbar = (): ReactElement | null => { - 'use memo'; - const focused = useFocused(); const { showEmojiKeyboard, showEmojiSearchbar } = useEmojiKeyboard(); const showMarkdownToolbar = useShowMarkdownToolbar(); diff --git a/app/containers/MessageComposer/components/Unfocused/Left.tsx b/app/containers/MessageComposer/components/Unfocused/Left.tsx index 5ad9107b0da..74863711b66 100644 --- a/app/containers/MessageComposer/components/Unfocused/Left.tsx +++ b/app/containers/MessageComposer/components/Unfocused/Left.tsx @@ -8,8 +8,6 @@ import { MIN_HEIGHT } from '../../constants'; import { useRoomContext } from '../../../../views/RoomView/context'; export const Left = (): ReactElement | null => { - 'use memo'; - const { sharing } = useRoomContext(); const focused = useFocused(); const { showEmojiKeyboard, showEmojiSearchbar } = useEmojiKeyboard(); diff --git a/app/containers/MessageComposer/components/Unfocused/Right.tsx b/app/containers/MessageComposer/components/Unfocused/Right.tsx index 2fed6a13b82..cd052449ac3 100644 --- a/app/containers/MessageComposer/components/Unfocused/Right.tsx +++ b/app/containers/MessageComposer/components/Unfocused/Right.tsx @@ -8,8 +8,6 @@ import { MIN_HEIGHT } from '../../constants'; import { CancelEdit } from '../CancelEdit'; export const Right = (): ReactElement | null => { - 'use memo'; - const focused = useFocused(); const { showEmojiKeyboard, showEmojiSearchbar } = useEmojiKeyboard(); diff --git a/app/containers/MessageComposer/context.tsx b/app/containers/MessageComposer/context.tsx index e691e3a8898..b623c7df7a5 100644 --- a/app/containers/MessageComposer/context.tsx +++ b/app/containers/MessageComposer/context.tsx @@ -98,8 +98,6 @@ export const MessageInnerContext = createContext({ }); export const MessageComposerProvider = ({ children }: { children: ReactElement }): ReactElement => { - 'use memo'; - const [store] = useState(createComposerStore); return {children}; diff --git a/app/containers/MessageComposer/helpers/prepareQuoteMessage.test.ts b/app/containers/MessageComposer/helpers/prepareQuoteMessage.test.ts index 96ee9343585..1b5cb00ef26 100644 --- a/app/containers/MessageComposer/helpers/prepareQuoteMessage.test.ts +++ b/app/containers/MessageComposer/helpers/prepareQuoteMessage.test.ts @@ -81,7 +81,7 @@ describe('prepareQuoteMessage', () => { const result = await prepareQuoteMessage(textFromInput, selectedMessages); - expect(mockGetMessageById).toHaveBeenCalledWith('message1'); + expect(mockGetMessageById).toHaveBeenCalledWith('message1', undefined); expect(mockGetPermalinkMessage).toHaveBeenCalledWith(mockMessage); expect(result).toBe(`[ ](${permalink}) \nMy reply`); }); @@ -162,6 +162,47 @@ describe('prepareQuoteMessage', () => { }); }); + describe('inside a thread', () => { + const mockThreadMessage = { + id: 'message1', + msg: 'Test thread message', + u: { username: 'testuser' }, + ts: new Date() + }; + + test('should forward tmid so the thread message can be resolved', async () => { + const permalink = 'https://example.com/message/message1'; + + mockGetMessageById.mockResolvedValue(mockThreadMessage as any); + mockGetPermalinkMessage.mockResolvedValue(permalink); + + const result = await prepareQuoteMessage('My reply', ['message1'], 'thread-id'); + + expect(mockGetMessageById).toHaveBeenCalledWith('message1', 'thread-id'); + expect(mockGetPermalinkMessage).toHaveBeenCalledWith(mockThreadMessage); + expect(result).toBe(`[ ](${permalink}) \nMy reply`); + }); + + test('should forward tmid for every selected message', async () => { + mockGetMessageById.mockResolvedValue(mockThreadMessage as any); + mockGetPermalinkMessage.mockResolvedValue('https://example.com/link'); + + await prepareQuoteMessage('My reply', ['message1', 'message2'], 'thread-id'); + + expect(mockGetMessageById).toHaveBeenNthCalledWith(1, 'message1', 'thread-id'); + expect(mockGetMessageById).toHaveBeenNthCalledWith(2, 'message2', 'thread-id'); + }); + + test('should pass no tmid when the composer is not in a thread', async () => { + mockGetMessageById.mockResolvedValue(mockThreadMessage as any); + mockGetPermalinkMessage.mockResolvedValue('https://example.com/link'); + + await prepareQuoteMessage('My reply', ['message1']); + + expect(mockGetMessageById).toHaveBeenCalledWith('message1', undefined); + }); + }); + describe('server version handling', () => { test('should use newline separator for modern servers', async () => { const textFromInput = 'Reply'; diff --git a/app/containers/MessageComposer/helpers/prepareQuoteMessage.ts b/app/containers/MessageComposer/helpers/prepareQuoteMessage.ts index dccbd0910f1..33a0f279546 100644 --- a/app/containers/MessageComposer/helpers/prepareQuoteMessage.ts +++ b/app/containers/MessageComposer/helpers/prepareQuoteMessage.ts @@ -3,7 +3,7 @@ import { getMessageById } from '../../../lib/database/services/Message'; import { store } from '../../../lib/store/auxStore'; import { compareServerVersion } from '../../../lib/methods/helpers'; -export const prepareQuoteMessage = async (textFromInput: string, selectedMessages: string[]): Promise => { +export const prepareQuoteMessage = async (textFromInput: string, selectedMessages: string[], tmid?: string): Promise => { let quoteText = ''; const { version: serverVersion } = store.getState().server; const connectionString = compareServerVersion(serverVersion, 'lowerThan', '5.0.0') ? ' ' : '\n'; @@ -11,7 +11,7 @@ export const prepareQuoteMessage = async (textFromInput: string, selectedMessage if (selectedMessages.length > 0) { for (let i = 0; i < selectedMessages.length; i += 1) { // eslint-disable-next-line no-await-in-loop - const message = await getMessageById(selectedMessages[i]); + const message = await getMessageById(selectedMessages[i], tmid); if (message) { // eslint-disable-next-line no-await-in-loop const permalink = await getPermalinkMessage(message); diff --git a/app/containers/MessageComposer/hooks/useAutoSaveDraft.ts b/app/containers/MessageComposer/hooks/useAutoSaveDraft.ts index 4c3d538c704..b90850c6438 100644 --- a/app/containers/MessageComposer/hooks/useAutoSaveDraft.ts +++ b/app/containers/MessageComposer/hooks/useAutoSaveDraft.ts @@ -7,8 +7,6 @@ import { useMessageAction } from '../../message/stores/MessageActionStore'; import { useFocused } from '../context'; export const useAutoSaveDraft = (text = '') => { - 'use memo'; - const route = useRoute(); const { rid, tmid } = useRoomContext(); const action = useMessageAction(); diff --git a/app/containers/MessageComposer/hooks/useAutocomplete.ts b/app/containers/MessageComposer/hooks/useAutocomplete.ts index 0208fad5f1b..5096daf0546 100644 --- a/app/containers/MessageComposer/hooks/useAutocomplete.ts +++ b/app/containers/MessageComposer/hooks/useAutocomplete.ts @@ -28,7 +28,9 @@ const getCustomEmojis = async (keyword: string): Promise => { } const db = database.active; const customEmojisCollection = db.get('custom_emojis'); - const customEmojis = await (await customEmojisCollection.query(...whereClause).fetch()) + const customEmojis = await ( + await customEmojisCollection.query(...whereClause).fetch() + ) .slice(0, MENTIONS_COUNT_TO_DISPLAY) .map(emoji => ({ name: emoji.name, diff --git a/app/containers/MessageComposer/hooks/useCanUploadFile.ts b/app/containers/MessageComposer/hooks/useCanUploadFile.ts index 1bda52a537c..6bb403d38f9 100644 --- a/app/containers/MessageComposer/hooks/useCanUploadFile.ts +++ b/app/containers/MessageComposer/hooks/useCanUploadFile.ts @@ -4,8 +4,6 @@ import { usePermissions, getPermissionsSelector } from '../../../lib/hooks/usePe import { useAppSelector } from '../../../lib/hooks/useAppSelector'; export const useCanUploadFile = (rid?: string): boolean => { - 'use memo'; - const [uploadPermissionRedux] = useAppSelector(state => getPermissionsSelector(state, ['mobile-upload-file']), shallowEqual); const [permissionToUpload] = usePermissions(['mobile-upload-file'], rid); diff --git a/app/containers/MessageComposer/hooks/useChooseMedia.ts b/app/containers/MessageComposer/hooks/useChooseMedia.ts index 626737fd53f..6b4078e9c28 100644 --- a/app/containers/MessageComposer/hooks/useChooseMedia.ts +++ b/app/containers/MessageComposer/hooks/useChooseMedia.ts @@ -28,8 +28,6 @@ export const useChooseMedia = ({ tmid?: string; permissionToUpload: boolean; }) => { - 'use memo'; - const { FileUpload_MediaTypeWhiteList, FileUpload_MaxFileSize } = useAppSelector(state => state.settings); const { addAttachments } = useMessageComposerApi(); const { setQuotesAndText, getText } = useRoomContext(); diff --git a/app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx b/app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx index 912940ff075..9ac165a34b7 100644 --- a/app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx +++ b/app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx @@ -21,8 +21,6 @@ const EmojiKeyboardContext = createContext({ }); export const EmojiKeyboardProvider = ({ children }: IEmojiKeyboardProvider) => { - 'use memo'; - const showEmojiPickerSharedValue = useSharedValue(false); const showEmojiSearchbarSharedValue = useSharedValue(false); @@ -37,8 +35,6 @@ const IPAD_TOOLTIP_HEIGHT_OR_HW_KEYBOARD = 70; const EMOJI_KEYBOARD_FIXED_HEIGHT = 250; const useKeyboardAnimation = () => { - 'use memo'; - const height = useSharedValue(0); useKeyboardHandler( @@ -69,8 +65,6 @@ const useKeyboardAnimation = () => { }; export const useEmojiKeyboard = () => { - 'use memo'; - const { showEmojiPickerSharedValue, showEmojiSearchbarSharedValue } = useContext(EmojiKeyboardContext); const { focus } = useContext(MessageInnerContext); const [showEmojiKeyboard, setShowEmojiKeyboard] = useState(false); diff --git a/app/containers/MessageComposer/hooks/useIOSBackSwipeHandler.ts b/app/containers/MessageComposer/hooks/useIOSBackSwipeHandler.ts index 3fba3eef86b..126239a3562 100644 --- a/app/containers/MessageComposer/hooks/useIOSBackSwipeHandler.ts +++ b/app/containers/MessageComposer/hooks/useIOSBackSwipeHandler.ts @@ -5,8 +5,6 @@ import { useNavigation } from '@react-navigation/native'; import { isIOS } from '../../../lib/methods/helpers'; const useIOSBackSwipeHandler = () => { - 'use memo'; - const navigation = useNavigation(); const iOSBackSwipe = useRef(false); diff --git a/app/containers/MessageComposer/hooks/useMessage.ts b/app/containers/MessageComposer/hooks/useMessage.ts index e8bc4a80052..4287f881311 100644 --- a/app/containers/MessageComposer/hooks/useMessage.ts +++ b/app/containers/MessageComposer/hooks/useMessage.ts @@ -4,19 +4,27 @@ import { type IMessage } from '../../../definitions'; import { getMessageById } from '../../../lib/database/services/Message'; // TODO: Not reactive. Should we work on an official version? -export const useMessage = (messageId: string): IMessage | undefined => { - 'use memo'; - +export const useMessage = (messageId: string, tmid?: string): IMessage | undefined => { const [message, setMessage] = useState(); useEffect(() => { + let cancelled = false; const load = async () => { - const result = await getMessageById(messageId); - if (result) { - setMessage(result); + try { + const result = await getMessageById(messageId, tmid); + if (!cancelled) { + setMessage(result || undefined); + } + } catch { + if (!cancelled) { + setMessage(undefined); + } } }; load(); - }, [messageId]); + return () => { + cancelled = true; + }; + }, [messageId, tmid]); return message; }; diff --git a/app/containers/MessageErrorActions.test.tsx b/app/containers/MessageErrorActions.test.tsx new file mode 100644 index 00000000000..70801c3a337 --- /dev/null +++ b/app/containers/MessageErrorActions.test.tsx @@ -0,0 +1,117 @@ +import { createRef } from 'react'; +import { act, render } from '@testing-library/react-native'; + +import MessageErrorActions, { type IMessageErrorActions } from './MessageErrorActions'; +import database from '../lib/database'; +import log from '../lib/methods/helpers/log'; +import { type TMessageModel } from '../definitions'; +import { FakeDatabase, type FakeModel } from '../lib/database/__tests__/mockedWatermelonDB'; + +jest.mock('../lib/database', () => ({ + __esModule: true, + default: { active: null } +})); + +jest.mock('../lib/methods/helpers/log', () => ({ + __esModule: true, + default: jest.fn() +})); + +jest.mock('../lib/methods/sendMessage', () => ({ + resendMessage: jest.fn(() => Promise.resolve()) +})); + +const mockShowActionSheet = jest.fn(); +jest.mock('./ActionSheet', () => ({ + useActionSheet: () => ({ showActionSheet: mockShowActionSheet }) +})); + +const renderComponent = (tmid?: string) => { + const ref = createRef(); + render(); + return ref; +}; + +const pressDelete = (ref: React.RefObject, message: FakeModel) => { + ref.current?.showMessageErrorActions(message as unknown as TMessageModel); + const { options } = mockShowActionSheet.mock.calls[mockShowActionSheet.mock.calls.length - 1][0]; + const deleteOption = options.find((o: { icon: string }) => o.icon === 'delete'); + return deleteOption.onPress() as Promise; +}; + +let db: FakeDatabase; + +beforeEach(() => { + jest.clearAllMocks(); + db = new FakeDatabase(); + (database as unknown as { active: FakeDatabase }).active = db; +}); + +describe('MessageErrorActions handleDelete', () => { + it('deletes a failed thread message while another writer touches the same record', async () => { + const threadMessage = db.add('thread_messages', 'msg-1'); + const message = db.add('messages', 'msg-1'); + db.add('messages', 'tmid-1', { tcount: 1, tlm: new Date() }); + db.add('threads', 'tmid-1'); + + const ref = renderComponent('tmid-1'); + + let concurrentWriter: Promise = Promise.resolve(); + await act(async () => { + const deleting = pressDelete(ref, threadMessage); + // A saga writing to the very same record while the delete is in flight + concurrentWriter = db.write(async () => { + await db.batch([threadMessage.prepareUpdate(m => (m.tcount = 0))]); + }); + await Promise.all([deleting, concurrentWriter]); + }); + + await expect(concurrentWriter).resolves.not.toThrow(); + expect(log).not.toHaveBeenCalled(); + + // no prepare and no find escaped the writer lock + expect(db.prepareLog.every(entry => entry.insideWriter)).toBe(true); + expect(db.findLog.every(entry => entry.insideWriter)).toBe(true); + + // the whole tree was committed in a single batch + expect(db.batches[0]).toEqual([ + 'thread_messages#msg-1:destroyPermanently', + 'messages#msg-1:destroyPermanently', + 'messages#tmid-1:update', + 'threads#tmid-1:destroyPermanently' + ]); + // the thread header lost its thread count and the thread record is gone + expect(db.collections.messages.get('tmid-1')?.tcount).toBeNull(); + expect(db.collections.messages.get('tmid-1')?.tlm).toBeNull(); + expect(message._preparedState).toBeNull(); + }); + + it('decrements the thread count when other messages remain', async () => { + const threadMessage = db.add('thread_messages', 'msg-1'); + db.add('messages', 'tmid-1', { tcount: 3 }); + db.add('threads', 'tmid-1'); + + const ref = renderComponent('tmid-1'); + await act(async () => { + await pressDelete(ref, threadMessage); + }); + + expect(log).not.toHaveBeenCalled(); + expect(db.collections.messages.get('tmid-1')?.tcount).toBe(2); + expect(db.batches[0]).toEqual(['thread_messages#msg-1:destroyPermanently', 'messages#tmid-1:update']); + }); + + it('destroys only the message on the non-thread branch', async () => { + const message = db.add('messages', 'msg-1'); + + const ref = renderComponent(); + await act(async () => { + await pressDelete(ref, message); + }); + + expect(log).not.toHaveBeenCalled(); + expect(db.findLog).toEqual([]); + expect(db.batches).toEqual([['messages#msg-1:destroyPermanently']]); + expect(db.prepareLog).toEqual([{ record: 'messages#msg-1', op: 'destroyPermanently', insideWriter: true }]); + }); +}); diff --git a/app/containers/MessageErrorActions.tsx b/app/containers/MessageErrorActions.tsx index 3164da0d1c2..d3a15963532 100644 --- a/app/containers/MessageErrorActions.tsx +++ b/app/containers/MessageErrorActions.tsx @@ -23,54 +23,55 @@ const MessageErrorActions = forwardRef( const handleDelete = async (message: TMessageModel) => { try { const db = database.active; - const deleteBatch: Model[] = []; const msgCollection = db.get('messages'); const threadCollection = db.get('threads'); - // Delete the object (it can be Message or ThreadMessage instance) - deleteBatch.push(message.prepareDestroyPermanently()); + await db.write(async () => { + const deleteBatch: Model[] = []; - // If it's a thread, we find and delete the whole tree, if necessary - if (tmid) { - try { - const msg = await msgCollection.find(message.id); - deleteBatch.push(msg.prepareDestroyPermanently()); - } catch { - // Do nothing: message not found - } + // Delete the object (it can be Message or ThreadMessage instance) + deleteBatch.push(message.prepareDestroyPermanently()); - try { - // Find the thread header and update it - const msg = await msgCollection.find(tmid); - if (msg?.tcount && msg.tcount <= 1) { - deleteBatch.push( - msg.prepareUpdate(m => { - m.tcount = null; - m.tlm = null; - }) - ); + // If it's a thread, we find and delete the whole tree, if necessary + if (tmid) { + try { + const msg = await msgCollection.find(message.id); + deleteBatch.push(msg.prepareDestroyPermanently()); + } catch { + // Do nothing: message not found + } - try { - // If the whole thread was removed, delete the thread - const thread = await threadCollection.find(tmid); - deleteBatch.push(thread.prepareDestroyPermanently()); - } catch { - // Do nothing: thread not found + try { + // Find the thread header and update it + const msg = await msgCollection.find(tmid); + if (msg?.tcount && msg.tcount <= 1) { + deleteBatch.push( + msg.prepareUpdate(m => { + m.tcount = null; + m.tlm = null; + }) + ); + + try { + // If the whole thread was removed, delete the thread + const thread = await threadCollection.find(tmid); + deleteBatch.push(thread.prepareDestroyPermanently()); + } catch { + // Do nothing: thread not found + } + } else { + deleteBatch.push( + msg.prepareUpdate(m => { + if (m.tcount) { + m.tcount -= 1; + } + }) + ); } - } else { - deleteBatch.push( - msg.prepareUpdate(m => { - if (m.tcount) { - m.tcount -= 1; - } - }) - ); + } catch { + // Do nothing: message not found } - } catch { - // Do nothing: message not found } - } - await db.write(async () => { await db.batch(deleteBatch); }); } catch (e) { diff --git a/app/containers/NewMediaCall/VoipCallLifecycle.integration.test.tsx b/app/containers/NewMediaCall/VoipCallLifecycle.integration.test.tsx index 3d0b22be100..bf538ddaf89 100644 --- a/app/containers/NewMediaCall/VoipCallLifecycle.integration.test.tsx +++ b/app/containers/NewMediaCall/VoipCallLifecycle.integration.test.tsx @@ -226,57 +226,58 @@ jest.mock('@rocket.chat/media-signaling', () => ({ MediaCallWebRTCProcessor: jest.fn().mockImplementation(function MediaCallWebRTCProcessor(this: unknown) { return this; }), - MediaSignalingSession: jest - .fn() - .mockImplementation(function MockMediaSignalingSession(this: MockMediaSignalingSession, config: { userId: string }) { - const handlers: Record void)[]> = {}; - - this.userId = config.userId; - this.endSession = jest.fn(); - - this.on = jest.fn().mockImplementation((event: string, handler: (payload: unknown) => void) => { - if (!handlers[event]) handlers[event] = []; - handlers[event].push(handler); - }); + MediaSignalingSession: jest.fn().mockImplementation(function MockMediaSignalingSession( + this: MockMediaSignalingSession, + config: { userId: string } + ) { + const handlers: Record void)[]> = {}; + + this.userId = config.userId; + this.endSession = jest.fn(); + + this.on = jest.fn().mockImplementation((event: string, handler: (payload: unknown) => void) => { + if (!handlers[event]) handlers[event] = []; + handlers[event].push(handler); + }); - this.emit = (event: string, payload: unknown) => { - handlers[event]?.forEach(h => h(payload)); - }; - - this.processSignal = jest.fn().mockResolvedValue(undefined); - this.setIceGatheringTimeout = jest.fn(); - - // Integration seam: startCall fires 'newCall' with a synthetic outgoing call. - // eslint-disable-next-line @typescript-eslint/no-this-alias - const self = this; - this.startCall = jest.fn().mockImplementation((_actor: string, userId: string) => { - const call: IClientMediaCall = { - callId: `call-${userId}`, - hidden: false, - state: 'ringing', - localParticipant: { - local: true, - role: 'caller', - muted: false, - held: false, - contact: {}, - setMuted: jest.fn(), - setHeld: jest.fn() - }, - remoteParticipants: [{ local: false, role: 'callee', muted: false, held: false, contact: {} }], - reject: jest.fn(), - hangup: jest.fn(), - sendDTMF: jest.fn(), - emitter: mockCallEmitter() as unknown as IClientMediaCall['emitter'] - } as unknown as IClientMediaCall; - self.emit('newCall', { call }); - return Promise.resolve(); - }); + this.emit = (event: string, payload: unknown) => { + handlers[event]?.forEach(h => h(payload)); + }; + + this.processSignal = jest.fn().mockResolvedValue(undefined); + this.setIceGatheringTimeout = jest.fn(); + + // Integration seam: startCall fires 'newCall' with a synthetic outgoing call. + // eslint-disable-next-line @typescript-eslint/no-this-alias + const self = this; + this.startCall = jest.fn().mockImplementation((_actor: string, userId: string) => { + const call: IClientMediaCall = { + callId: `call-${userId}`, + hidden: false, + state: 'ringing', + localParticipant: { + local: true, + role: 'caller', + muted: false, + held: false, + contact: {}, + setMuted: jest.fn(), + setHeld: jest.fn() + }, + remoteParticipants: [{ local: false, role: 'callee', muted: false, held: false, contact: {} }], + reject: jest.fn(), + hangup: jest.fn(), + sendDTMF: jest.fn(), + emitter: mockCallEmitter() as unknown as IClientMediaCall['emitter'] + } as unknown as IClientMediaCall; + self.emit('newCall', { call }); + return Promise.resolve(); + }); - this.getCallData = jest.fn(); - Object.defineProperty(this, 'sessionId', { value: `session-${config.userId}`, writable: false }); - createdSessions.push(this); - }) + this.getCallData = jest.fn(); + Object.defineProperty(this, 'sessionId', { value: `session-${config.userId}`, writable: false }); + createdSessions.push(this); + }) })); // ─── Helpers ────────────────────────────────────────────────────────────────── diff --git a/app/containers/NewMediaCall/__snapshots__/CreateCall.test.tsx.snap b/app/containers/NewMediaCall/__snapshots__/CreateCall.test.tsx.snap index 8d9dce8ecab..c784187f9d8 100644 --- a/app/containers/NewMediaCall/__snapshots__/CreateCall.test.tsx.snap +++ b/app/containers/NewMediaCall/__snapshots__/CreateCall.test.tsx.snap @@ -84,6 +84,9 @@ exports[`Story Snapshots: Disabled should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 24, "textAlign": "left", @@ -183,6 +186,9 @@ exports[`Story Snapshots: Enabled should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 24, "textAlign": "left", diff --git a/app/containers/NewMediaCall/__snapshots__/FilterHeader.test.tsx.snap b/app/containers/NewMediaCall/__snapshots__/FilterHeader.test.tsx.snap index 1007e1ae22d..1b2a83f0383 100644 --- a/app/containers/NewMediaCall/__snapshots__/FilterHeader.test.tsx.snap +++ b/app/containers/NewMediaCall/__snapshots__/FilterHeader.test.tsx.snap @@ -15,6 +15,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 20, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 28, "marginTop": 4, @@ -87,6 +90,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -160,6 +166,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 24, "marginBottom": 16, @@ -191,6 +200,9 @@ exports[`Story Snapshots: WithFilter should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 20, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 28, "marginTop": 4, @@ -263,6 +275,9 @@ exports[`Story Snapshots: WithFilter should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -336,6 +351,9 @@ exports[`Story Snapshots: WithFilter should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 24, "marginBottom": 16, diff --git a/app/containers/NewMediaCall/__snapshots__/PeerItem.test.tsx.snap b/app/containers/NewMediaCall/__snapshots__/PeerItem.test.tsx.snap index 43d9d449fdf..e6a3a7c4cb4 100644 --- a/app/containers/NewMediaCall/__snapshots__/PeerItem.test.tsx.snap +++ b/app/containers/NewMediaCall/__snapshots__/PeerItem.test.tsx.snap @@ -191,6 +191,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", @@ -325,6 +328,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", @@ -521,6 +527,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", diff --git a/app/containers/NewMediaCall/__snapshots__/PeerList.test.tsx.snap b/app/containers/NewMediaCall/__snapshots__/PeerList.test.tsx.snap index edea1b8d2ff..3647f8288b7 100644 --- a/app/containers/NewMediaCall/__snapshots__/PeerList.test.tsx.snap +++ b/app/containers/NewMediaCall/__snapshots__/PeerList.test.tsx.snap @@ -181,6 +181,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", @@ -386,6 +389,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", @@ -591,6 +597,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", @@ -796,6 +805,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", diff --git a/app/containers/NewMediaCall/__snapshots__/SelectedPeer.test.tsx.snap b/app/containers/NewMediaCall/__snapshots__/SelectedPeer.test.tsx.snap index 1ee4385af09..1da0008460a 100644 --- a/app/containers/NewMediaCall/__snapshots__/SelectedPeer.test.tsx.snap +++ b/app/containers/NewMediaCall/__snapshots__/SelectedPeer.test.tsx.snap @@ -172,6 +172,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", @@ -345,6 +348,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", @@ -580,6 +586,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", @@ -828,6 +837,9 @@ exports[`Story Snapshots: LongUsername should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", @@ -1014,6 +1026,9 @@ exports[`Story Snapshots: Sip should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", @@ -1262,6 +1277,9 @@ exports[`Story Snapshots: User should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", diff --git a/app/containers/Passcode/Base/__snapshots__/Base.test.tsx.snap b/app/containers/Passcode/Base/__snapshots__/Base.test.tsx.snap index 7eed6d3465f..a613d7c8ad5 100644 --- a/app/containers/Passcode/Base/__snapshots__/Base.test.tsx.snap +++ b/app/containers/Passcode/Base/__snapshots__/Base.test.tsx.snap @@ -95,6 +95,9 @@ exports[`Story Snapshots: ChooseType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 22, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -386,6 +389,9 @@ exports[`Story Snapshots: ChooseType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -508,6 +514,9 @@ exports[`Story Snapshots: ChooseType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -630,6 +639,9 @@ exports[`Story Snapshots: ChooseType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -764,6 +776,9 @@ exports[`Story Snapshots: ChooseType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -886,6 +901,9 @@ exports[`Story Snapshots: ChooseType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1008,6 +1026,9 @@ exports[`Story Snapshots: ChooseType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1142,6 +1163,9 @@ exports[`Story Snapshots: ChooseType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1264,6 +1288,9 @@ exports[`Story Snapshots: ChooseType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1386,6 +1413,9 @@ exports[`Story Snapshots: ChooseType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1533,6 +1563,9 @@ exports[`Story Snapshots: ChooseType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1779,6 +1812,9 @@ exports[`Story Snapshots: ConfirmType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 22, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2070,6 +2106,9 @@ exports[`Story Snapshots: ConfirmType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2192,6 +2231,9 @@ exports[`Story Snapshots: ConfirmType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2314,6 +2356,9 @@ exports[`Story Snapshots: ConfirmType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2448,6 +2493,9 @@ exports[`Story Snapshots: ConfirmType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2570,6 +2618,9 @@ exports[`Story Snapshots: ConfirmType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2692,6 +2743,9 @@ exports[`Story Snapshots: ConfirmType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2826,6 +2880,9 @@ exports[`Story Snapshots: ConfirmType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2948,6 +3005,9 @@ exports[`Story Snapshots: ConfirmType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3070,6 +3130,9 @@ exports[`Story Snapshots: ConfirmType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3217,6 +3280,9 @@ exports[`Story Snapshots: ConfirmType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3463,6 +3529,9 @@ exports[`Story Snapshots: EnterType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 22, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3754,6 +3823,9 @@ exports[`Story Snapshots: EnterType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3876,6 +3948,9 @@ exports[`Story Snapshots: EnterType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3998,6 +4073,9 @@ exports[`Story Snapshots: EnterType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4132,6 +4210,9 @@ exports[`Story Snapshots: EnterType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4254,6 +4335,9 @@ exports[`Story Snapshots: EnterType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4376,6 +4460,9 @@ exports[`Story Snapshots: EnterType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4510,6 +4597,9 @@ exports[`Story Snapshots: EnterType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4632,6 +4722,9 @@ exports[`Story Snapshots: EnterType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4754,6 +4847,9 @@ exports[`Story Snapshots: EnterType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4901,6 +4997,9 @@ exports[`Story Snapshots: EnterType should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5147,6 +5246,9 @@ exports[`Story Snapshots: EnterWithSubtitleAndBiometry should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 22, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5185,6 +5287,9 @@ exports[`Story Snapshots: EnterWithSubtitleAndBiometry should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -5476,6 +5581,9 @@ exports[`Story Snapshots: EnterWithSubtitleAndBiometry should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5598,6 +5706,9 @@ exports[`Story Snapshots: EnterWithSubtitleAndBiometry should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5720,6 +5831,9 @@ exports[`Story Snapshots: EnterWithSubtitleAndBiometry should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5854,6 +5968,9 @@ exports[`Story Snapshots: EnterWithSubtitleAndBiometry should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5976,6 +6093,9 @@ exports[`Story Snapshots: EnterWithSubtitleAndBiometry should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6098,6 +6218,9 @@ exports[`Story Snapshots: EnterWithSubtitleAndBiometry should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6232,6 +6355,9 @@ exports[`Story Snapshots: EnterWithSubtitleAndBiometry should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6354,6 +6480,9 @@ exports[`Story Snapshots: EnterWithSubtitleAndBiometry should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6476,6 +6605,9 @@ exports[`Story Snapshots: EnterWithSubtitleAndBiometry should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6740,6 +6872,9 @@ exports[`Story Snapshots: EnterWithSubtitleAndBiometry should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6986,6 +7121,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 22, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -7277,6 +7415,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -7399,6 +7540,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -7521,6 +7665,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -7655,6 +7802,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -7777,6 +7927,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -7899,6 +8052,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -8033,6 +8189,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -8155,6 +8314,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -8277,6 +8439,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -8541,6 +8706,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -8787,6 +8955,9 @@ exports[`Story Snapshots: WithSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 22, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -8825,6 +8996,9 @@ exports[`Story Snapshots: WithSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -9116,6 +9290,9 @@ exports[`Story Snapshots: WithSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -9238,6 +9415,9 @@ exports[`Story Snapshots: WithSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -9360,6 +9540,9 @@ exports[`Story Snapshots: WithSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -9494,6 +9677,9 @@ exports[`Story Snapshots: WithSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -9616,6 +9802,9 @@ exports[`Story Snapshots: WithSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -9738,6 +9927,9 @@ exports[`Story Snapshots: WithSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -9872,6 +10064,9 @@ exports[`Story Snapshots: WithSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -9994,6 +10189,9 @@ exports[`Story Snapshots: WithSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -10116,6 +10314,9 @@ exports[`Story Snapshots: WithSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -10263,6 +10464,9 @@ exports[`Story Snapshots: WithSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, diff --git a/app/containers/ReactionsList/__snapshots__/ReactionsList.test.tsx.snap b/app/containers/ReactionsList/__snapshots__/ReactionsList.test.tsx.snap index 46ef94103e7..f6f36990fcc 100644 --- a/app/containers/ReactionsList/__snapshots__/ReactionsList.test.tsx.snap +++ b/app/containers/ReactionsList/__snapshots__/ReactionsList.test.tsx.snap @@ -80,6 +80,9 @@ exports[`Story Snapshots: ReactionsListFullName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -177,6 +180,9 @@ exports[`Story Snapshots: ReactionsListFullName should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 4, "textAlign": "left", @@ -275,6 +281,9 @@ exports[`Story Snapshots: ReactionsListFullName should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 4, "textAlign": "left", @@ -373,6 +382,9 @@ exports[`Story Snapshots: ReactionsListFullName should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 4, "textAlign": "left", @@ -452,6 +464,9 @@ exports[`Story Snapshots: ReactionsListFullName should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 4, "textAlign": "left", @@ -531,6 +546,9 @@ exports[`Story Snapshots: ReactionsListFullName should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 4, "textAlign": "left", @@ -699,6 +717,9 @@ exports[`Story Snapshots: ReactionsListFullName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -717,6 +738,9 @@ exports[`Story Snapshots: ReactionsListFullName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -793,6 +817,9 @@ exports[`Story Snapshots: ReactionsListFullName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -811,6 +838,9 @@ exports[`Story Snapshots: ReactionsListFullName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -887,6 +917,9 @@ exports[`Story Snapshots: ReactionsListFullName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -905,6 +938,9 @@ exports[`Story Snapshots: ReactionsListFullName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -961,6 +997,9 @@ exports[`Story Snapshots: ReactionsListFullName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -979,6 +1018,9 @@ exports[`Story Snapshots: ReactionsListFullName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1035,6 +1077,9 @@ exports[`Story Snapshots: ReactionsListFullName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1053,6 +1098,9 @@ exports[`Story Snapshots: ReactionsListFullName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1155,6 +1203,9 @@ exports[`Story Snapshots: ReactionsListStory should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1252,6 +1303,9 @@ exports[`Story Snapshots: ReactionsListStory should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 4, "textAlign": "left", @@ -1350,6 +1404,9 @@ exports[`Story Snapshots: ReactionsListStory should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 4, "textAlign": "left", @@ -1448,6 +1505,9 @@ exports[`Story Snapshots: ReactionsListStory should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 4, "textAlign": "left", @@ -1527,6 +1587,9 @@ exports[`Story Snapshots: ReactionsListStory should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 4, "textAlign": "left", @@ -1606,6 +1669,9 @@ exports[`Story Snapshots: ReactionsListStory should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 4, "textAlign": "left", @@ -1774,6 +1840,9 @@ exports[`Story Snapshots: ReactionsListStory should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1792,6 +1861,9 @@ exports[`Story Snapshots: ReactionsListStory should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1868,6 +1940,9 @@ exports[`Story Snapshots: ReactionsListStory should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1886,6 +1961,9 @@ exports[`Story Snapshots: ReactionsListStory should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1962,6 +2040,9 @@ exports[`Story Snapshots: ReactionsListStory should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1980,6 +2061,9 @@ exports[`Story Snapshots: ReactionsListStory should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2036,6 +2120,9 @@ exports[`Story Snapshots: ReactionsListStory should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2054,6 +2141,9 @@ exports[`Story Snapshots: ReactionsListStory should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2110,6 +2200,9 @@ exports[`Story Snapshots: ReactionsListStory should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2128,6 +2221,9 @@ exports[`Story Snapshots: ReactionsListStory should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, diff --git a/app/containers/RoomHeader/RoomHeader.tsx b/app/containers/RoomHeader/RoomHeader.tsx index 3ed01410ddf..c8b911bff13 100644 --- a/app/containers/RoomHeader/RoomHeader.tsx +++ b/app/containers/RoomHeader/RoomHeader.tsx @@ -171,8 +171,6 @@ const Header = ({ disabled, abacAttributes }: IRoomHeaderProps) => { - 'use memo'; - const statusAccessibilityLabel = useStatusAccessibilityLabel({ isGroupChat, prid, diff --git a/app/containers/RoomHeader/__snapshots__/RoomHeader.test.tsx.snap b/app/containers/RoomHeader/__snapshots__/RoomHeader.test.tsx.snap index bee1e2c52ab..9941163ce0e 100644 --- a/app/containers/RoomHeader/__snapshots__/RoomHeader.test.tsx.snap +++ b/app/containers/RoomHeader/__snapshots__/RoomHeader.test.tsx.snap @@ -139,6 +139,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -162,6 +165,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -174,6 +180,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -328,6 +337,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -351,6 +363,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -363,6 +378,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -517,6 +535,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -540,6 +561,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -552,6 +576,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -706,6 +733,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -729,6 +759,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -741,6 +774,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -895,6 +931,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -918,6 +957,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -930,6 +972,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1084,6 +1129,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1143,6 +1191,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1155,6 +1206,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1310,6 +1364,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1369,6 +1426,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1381,6 +1441,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1536,6 +1599,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1559,6 +1625,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1571,6 +1640,9 @@ exports[`Story Snapshots: DM_Status should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1722,6 +1794,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1869,6 +1944,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -2017,6 +2095,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2029,6 +2110,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -2176,6 +2260,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -2323,6 +2410,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -2470,6 +2560,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -2617,6 +2710,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -2764,6 +2860,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -2911,6 +3010,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -3058,6 +3160,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -3205,6 +3310,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -3352,6 +3460,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -3499,6 +3610,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -3646,6 +3760,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -3798,6 +3915,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -3820,6 +3940,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3832,6 +3955,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3978,6 +4104,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -4000,6 +4129,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -4012,6 +4144,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4158,6 +4293,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -4180,6 +4318,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -4192,6 +4333,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4313,6 +4457,9 @@ exports[`Story Snapshots: Thread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -4325,6 +4472,9 @@ exports[`Story Snapshots: Thread should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -4386,6 +4536,9 @@ exports[`Story Snapshots: Thread should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4505,6 +4658,9 @@ preview "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -4517,6 +4673,9 @@ preview "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -4582,6 +4741,9 @@ preview "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4732,6 +4894,9 @@ exports[`Story Snapshots: TitleSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -4879,6 +5044,9 @@ exports[`Story Snapshots: TitleSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -5026,6 +5194,9 @@ exports[`Story Snapshots: TitleSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -5048,6 +5219,9 @@ exports[`Story Snapshots: TitleSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5060,6 +5234,9 @@ exports[`Story Snapshots: TitleSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5206,6 +5383,9 @@ exports[`Story Snapshots: TitleSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -5228,6 +5408,9 @@ exports[`Story Snapshots: TitleSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5240,6 +5423,9 @@ exports[`Story Snapshots: TitleSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5386,6 +5572,9 @@ exports[`Story Snapshots: TitleSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -5409,6 +5598,9 @@ exports[`Story Snapshots: TitleSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5421,6 +5613,9 @@ exports[`Story Snapshots: TitleSubtitle should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5572,6 +5767,9 @@ exports[`Story Snapshots: Typing should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -5593,6 +5791,9 @@ exports[`Story Snapshots: Typing should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5608,6 +5809,9 @@ exports[`Story Snapshots: Typing should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", } @@ -5752,6 +5956,9 @@ exports[`Story Snapshots: Typing should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -5773,6 +5980,9 @@ exports[`Story Snapshots: Typing should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5788,6 +5998,9 @@ exports[`Story Snapshots: Typing should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", } @@ -5932,6 +6145,9 @@ exports[`Story Snapshots: Typing should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -5953,6 +6169,9 @@ exports[`Story Snapshots: Typing should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5968,6 +6187,9 @@ exports[`Story Snapshots: Typing should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", } diff --git a/app/containers/RoomItem/RoomItem.tsx b/app/containers/RoomItem/RoomItem.tsx index 1450cd636cf..180b9498e44 100644 --- a/app/containers/RoomItem/RoomItem.tsx +++ b/app/containers/RoomItem/RoomItem.tsx @@ -59,8 +59,6 @@ const RoomItem = ({ abacAttributes, isInvited }: IRoomItemProps) => { - 'use memo'; - const { colors } = useTheme(); const { isLargeFontScale } = useResponsiveLayout(); const memoizedMessage = useMemo( diff --git a/app/containers/RoomItem/__snapshots__/RoomItem.test.tsx.snap b/app/containers/RoomItem/__snapshots__/RoomItem.test.tsx.snap index fecaa188218..9743e9e9ebc 100644 --- a/app/containers/RoomItem/__snapshots__/RoomItem.test.tsx.snap +++ b/app/containers/RoomItem/__snapshots__/RoomItem.test.tsx.snap @@ -579,12 +579,18 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -612,6 +618,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -623,6 +632,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1221,12 +1233,18 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1254,6 +1272,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -1265,6 +1286,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1305,6 +1329,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1904,12 +1931,18 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1937,6 +1970,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -1948,6 +1984,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1988,6 +2027,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -2587,12 +2629,18 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -2620,6 +2668,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -2631,6 +2682,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -2671,6 +2725,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -3270,12 +3327,18 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -3303,6 +3366,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -3314,6 +3380,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -3354,6 +3423,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -3953,12 +4025,18 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -3986,6 +4064,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -3997,6 +4078,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -4037,6 +4121,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -4636,12 +4723,18 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -4669,6 +4762,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -4680,6 +4776,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -4720,6 +4819,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -5319,12 +5421,18 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -5352,6 +5460,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -5363,6 +5474,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -5403,6 +5517,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -6002,12 +6119,18 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -6035,6 +6158,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -6046,6 +6172,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -6086,6 +6215,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -6685,12 +6817,18 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -6718,6 +6856,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -6729,6 +6870,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -6769,6 +6913,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -7368,12 +7515,18 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -7401,6 +7554,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -7412,6 +7568,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -7452,6 +7611,9 @@ exports[`Story Snapshots: Alerts should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -8055,6 +8217,9 @@ exports[`Story Snapshots: Basic should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -8083,6 +8248,9 @@ exports[`Story Snapshots: Basic should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -8686,12 +8854,18 @@ exports[`Story Snapshots: CondensedRoomItem should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -8719,6 +8893,9 @@ exports[`Story Snapshots: CondensedRoomItem should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -8730,6 +8907,9 @@ exports[`Story Snapshots: CondensedRoomItem should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -8770,6 +8950,9 @@ exports[`Story Snapshots: CondensedRoomItem should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -9369,12 +9552,18 @@ exports[`Story Snapshots: CondensedRoomItem should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -9402,6 +9591,9 @@ exports[`Story Snapshots: CondensedRoomItem should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -9413,6 +9605,9 @@ exports[`Story Snapshots: CondensedRoomItem should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -9453,6 +9648,9 @@ exports[`Story Snapshots: CondensedRoomItem should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -10052,6 +10250,9 @@ exports[`Story Snapshots: CondensedRoomItem should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -10087,6 +10288,9 @@ exports[`Story Snapshots: CondensedRoomItem should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "paddingHorizontal": 4, "textAlign": "left", @@ -10116,6 +10320,9 @@ exports[`Story Snapshots: CondensedRoomItem should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -10664,12 +10871,18 @@ exports[`Story Snapshots: CondensedRoomItemWithoutAvatar should match snapshot 1 "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -10697,6 +10910,9 @@ exports[`Story Snapshots: CondensedRoomItemWithoutAvatar should match snapshot 1 "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -10708,6 +10924,9 @@ exports[`Story Snapshots: CondensedRoomItemWithoutAvatar should match snapshot 1 { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -10748,6 +10967,9 @@ exports[`Story Snapshots: CondensedRoomItemWithoutAvatar should match snapshot 1 "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -11291,6 +11513,9 @@ exports[`Story Snapshots: CondensedRoomItemWithoutAvatar should match snapshot 1 "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -11319,6 +11544,9 @@ exports[`Story Snapshots: CondensedRoomItemWithoutAvatar should match snapshot 1 "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -11862,6 +12090,9 @@ exports[`Story Snapshots: CondensedRoomItemWithoutAvatar should match snapshot 1 "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -11897,6 +12128,9 @@ exports[`Story Snapshots: CondensedRoomItemWithoutAvatar should match snapshot 1 "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "paddingHorizontal": 4, "textAlign": "left", @@ -11926,6 +12160,9 @@ exports[`Story Snapshots: CondensedRoomItemWithoutAvatar should match snapshot 1 "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -12482,12 +12719,18 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -12508,6 +12751,9 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -12519,6 +12765,9 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -12551,6 +12800,9 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -12564,6 +12816,9 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` "flex": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -12605,6 +12860,9 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -13155,12 +13413,18 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -13181,6 +13445,9 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -13192,6 +13459,9 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -13224,6 +13494,9 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -13237,6 +13510,9 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` "flex": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -13278,6 +13554,9 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -13828,12 +14107,18 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -13854,6 +14139,9 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -13865,6 +14153,9 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -13897,6 +14188,9 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -13910,6 +14204,9 @@ exports[`Story Snapshots: ExpandedRoomItemWithoutAvatar should match snapshot 1` "flex": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -14513,6 +14810,9 @@ exports[`Story Snapshots: InvitedRoom should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -14569,6 +14869,9 @@ exports[`Story Snapshots: InvitedRoom should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -15168,6 +15471,9 @@ exports[`Story Snapshots: InvitedRoom should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -15224,6 +15530,9 @@ exports[`Story Snapshots: InvitedRoom should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -15821,6 +16130,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -15842,6 +16154,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -15875,6 +16190,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -15888,6 +16206,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -16479,6 +16800,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -16500,6 +16824,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -16533,6 +16860,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -16546,6 +16876,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -17137,6 +17470,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -17158,6 +17494,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -17191,6 +17530,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -17204,6 +17546,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -17795,6 +18140,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -17816,6 +18164,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -17849,6 +18200,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -17862,6 +18216,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -18453,12 +18810,18 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -18479,6 +18842,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -18490,6 +18856,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -18522,6 +18891,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -18535,6 +18907,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -18576,6 +18951,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -19167,12 +19545,18 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -19193,6 +19577,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -19204,6 +19591,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -19236,6 +19626,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -19249,6 +19642,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -19290,6 +19686,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -19881,12 +20280,18 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -19907,6 +20312,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -19918,6 +20326,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -19950,6 +20361,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -19963,6 +20377,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -20004,6 +20421,9 @@ exports[`Story Snapshots: LastMessage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -20607,6 +21027,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -20635,6 +21058,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -21234,6 +21660,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -21262,6 +21691,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -21861,6 +22293,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -21889,6 +22324,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -22488,6 +22926,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -22516,6 +22957,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -23115,6 +23559,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -23143,6 +23590,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -23742,6 +24192,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -23770,6 +24223,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -24369,6 +24825,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -24397,6 +24856,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -24996,6 +25458,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -25024,6 +25489,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -25623,6 +26091,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -25651,6 +26122,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -26250,6 +26724,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -26278,6 +26755,9 @@ exports[`Story Snapshots: OmnichannelIcon should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -26882,6 +27362,9 @@ exports[`Story Snapshots: Tag should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -26917,6 +27400,9 @@ exports[`Story Snapshots: Tag should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "paddingHorizontal": 4, "textAlign": "left", @@ -26946,6 +27432,9 @@ exports[`Story Snapshots: Tag should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -27538,6 +28027,9 @@ exports[`Story Snapshots: Tag should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -27573,6 +28065,9 @@ exports[`Story Snapshots: Tag should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "paddingHorizontal": 4, "textAlign": "left", @@ -27596,6 +28091,9 @@ exports[`Story Snapshots: Tag should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -27629,6 +28127,9 @@ exports[`Story Snapshots: Tag should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -27642,6 +28143,9 @@ exports[`Story Snapshots: Tag should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -28240,6 +28744,9 @@ exports[`Story Snapshots: Tag should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -28275,6 +28782,9 @@ exports[`Story Snapshots: Tag should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "paddingHorizontal": 4, "textAlign": "left", @@ -28304,6 +28814,9 @@ exports[`Story Snapshots: Tag should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -28896,6 +29409,9 @@ exports[`Story Snapshots: Tag should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -28931,6 +29447,9 @@ exports[`Story Snapshots: Tag should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "paddingHorizontal": 4, "textAlign": "left", @@ -28954,6 +29473,9 @@ exports[`Story Snapshots: Tag should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -28987,6 +29509,9 @@ exports[`Story Snapshots: Tag should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -29000,6 +29525,9 @@ exports[`Story Snapshots: Tag should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -29602,6 +30130,9 @@ exports[`Story Snapshots: Touch should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -29630,6 +30161,9 @@ exports[`Story Snapshots: Touch should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -30241,6 +30775,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -30269,6 +30806,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -30868,6 +31408,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -30896,6 +31439,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -31495,6 +32041,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -31523,6 +32072,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -32122,6 +32674,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -32150,6 +32705,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -32749,6 +33307,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -32777,6 +33338,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -33376,6 +33940,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -33404,6 +33971,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -34003,6 +34573,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -34031,6 +34604,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -34630,6 +35206,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -34658,6 +35237,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -35257,6 +35839,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -35285,6 +35870,9 @@ exports[`Story Snapshots: Type should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -35897,6 +36485,9 @@ exports[`Story Snapshots: User should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -35925,6 +36516,9 @@ exports[`Story Snapshots: User should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -36532,6 +37126,9 @@ exports[`Story Snapshots: User should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 17, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -36560,6 +37157,9 @@ exports[`Story Snapshots: User should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", diff --git a/app/containers/SearchBox/__snapshots__/SearchBox.test.tsx.snap b/app/containers/SearchBox/__snapshots__/SearchBox.test.tsx.snap index 522b0f136ff..fbc1de51897 100644 --- a/app/containers/SearchBox/__snapshots__/SearchBox.test.tsx.snap +++ b/app/containers/SearchBox/__snapshots__/SearchBox.test.tsx.snap @@ -65,6 +65,9 @@ exports[`Story Snapshots: Basic should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, diff --git a/app/containers/ServerItem/SwipeableDeleteItem/Actions.tsx b/app/containers/ServerItem/SwipeableDeleteItem/Actions.tsx index 3e300556685..092d13705d3 100644 --- a/app/containers/ServerItem/SwipeableDeleteItem/Actions.tsx +++ b/app/containers/ServerItem/SwipeableDeleteItem/Actions.tsx @@ -19,116 +19,110 @@ import I18n from '../../../i18n'; export interface IDeleteActionProps { transX: SharedValue; width: number; - rowHeight: number; actionWidth: number; longSwipe: number; onDeletePress(): void; testID?: string; } -const SERVER_ITEM_PADDING_VERTICAL = 12; +export const DeleteAction = memo(({ transX, width, actionWidth, longSwipe, onDeletePress, testID }: IDeleteActionProps) => { + const { colors } = useTheme(); -export const DeleteAction = memo( - ({ transX, width, rowHeight, actionWidth, longSwipe, onDeletePress, testID }: IDeleteActionProps) => { - const { colors } = useTheme(); + const translateXDelete = useSharedValue(0); - const translateXDelete = useSharedValue(0); + const triggerDeleteAnimation = (toValue: number) => { + Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light).catch(() => {}); + translateXDelete.value = withSpring(toValue, { overshootClamping: true, mass: 0.7 }); + }; - const triggerDeleteAnimation = (toValue: number) => { - Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light); - translateXDelete.value = withSpring(toValue, { overshootClamping: true, mass: 0.7 }); - }; - - useAnimatedReaction( - () => transX.value, - (currentTransX, previousTransX) => { - if (I18n.isRTL) { - if (previousTransX && currentTransX > longSwipe && previousTransX <= longSwipe) { - scheduleOnRN(triggerDeleteAnimation, actionWidth); - } else if (previousTransX && currentTransX <= longSwipe && previousTransX > longSwipe) { - scheduleOnRN(triggerDeleteAnimation, 0); - } - } else if (previousTransX && currentTransX < -longSwipe && previousTransX >= -longSwipe) { - scheduleOnRN(triggerDeleteAnimation, -actionWidth); - } else if (previousTransX && currentTransX >= -longSwipe && previousTransX < -longSwipe) { + useAnimatedReaction( + () => transX.value, + (currentTransX, previousTransX) => { + if (I18n.isRTL) { + if (previousTransX && currentTransX > longSwipe && previousTransX <= longSwipe) { + scheduleOnRN(triggerDeleteAnimation, actionWidth); + } else if (previousTransX && currentTransX <= longSwipe && previousTransX > longSwipe) { scheduleOnRN(triggerDeleteAnimation, 0); } + } else if (previousTransX && currentTransX < -longSwipe && previousTransX >= -longSwipe) { + scheduleOnRN(triggerDeleteAnimation, -actionWidth); + } else if (previousTransX && currentTransX >= -longSwipe && previousTransX < -longSwipe) { + scheduleOnRN(triggerDeleteAnimation, 0); } - ); + } + ); - const animatedDeleteButtonStyles = useAnimatedStyle(() => { - if (I18n.isRTL) { - // RTL: delete button appears from the left when swiping right - if (transX.value > longSwipe && transX.value >= 2 * actionWidth) { - const parallaxSwipe = interpolate( - transX.value, - [2 * actionWidth, longSwipe], - [-actionWidth, -actionWidth - 0.1 * transX.value] - ); - return { - transform: [{ translateX: parallaxSwipe - translateXDelete.value }], - left: 0, - right: undefined - }; - } - return { - transform: [{ translateX: transX.value - actionWidth - translateXDelete.value }], - left: 0, - right: undefined - }; - } - // LTR: delete button appears from the right when swiping left - if (transX.value < -longSwipe && transX.value <= -2 * actionWidth) { + const animatedDeleteButtonStyles = useAnimatedStyle(() => { + if (I18n.isRTL) { + // RTL: delete button appears from the left when swiping right + if (transX.value > longSwipe && transX.value >= 2 * actionWidth) { const parallaxSwipe = interpolate( transX.value, - [-2 * actionWidth, -longSwipe], - [actionWidth, actionWidth + 0.1 * transX.value] + [2 * actionWidth, longSwipe], + [-actionWidth, -actionWidth - 0.1 * transX.value] ); return { - transform: [{ translateX: parallaxSwipe + translateXDelete.value }], - right: 0, - left: undefined + transform: [{ translateX: parallaxSwipe - translateXDelete.value }], + left: 0, + right: undefined }; } return { - transform: [{ translateX: transX.value + actionWidth + translateXDelete.value }], + transform: [{ translateX: transX.value - actionWidth - translateXDelete.value }], + left: 0, + right: undefined + }; + } + // LTR: delete button appears from the right when swiping left + if (transX.value < -longSwipe && transX.value <= -2 * actionWidth) { + const parallaxSwipe = interpolate( + transX.value, + [-2 * actionWidth, -longSwipe], + [actionWidth, actionWidth + 0.1 * transX.value] + ); + return { + transform: [{ translateX: parallaxSwipe + translateXDelete.value }], right: 0, left: undefined }; - }); - const viewHeight = { height: rowHeight + SERVER_ITEM_PADDING_VERTICAL }; - - return ( - - - - - - - - ); - } -); + } + return { + transform: [{ translateX: transX.value + actionWidth + translateXDelete.value }], + right: 0, + left: undefined + }; + }); + return ( + + + + + + + + ); +}); const styles = StyleSheet.create({ actionsLeftContainer: { flexDirection: 'row', position: 'absolute', + top: 0, + bottom: 0, left: 0, right: 0 }, @@ -136,6 +130,7 @@ const styles = StyleSheet.create({ position: 'absolute', justifyContent: 'center', top: 0, + bottom: 0, alignItems: 'flex-end' }, actionButton: { diff --git a/app/containers/ServerItem/SwipeableDeleteItem/Touchable.tsx b/app/containers/ServerItem/SwipeableDeleteItem/Touchable.tsx index bd386ab9b60..454190c90f1 100644 --- a/app/containers/ServerItem/SwipeableDeleteItem/Touchable.tsx +++ b/app/containers/ServerItem/SwipeableDeleteItem/Touchable.tsx @@ -18,7 +18,6 @@ export interface ISwipeableDeleteTouchableProps { children: ReactElement; testID: string; width: number; - rowHeight: number; actionWidth: number; longSwipe: number; smallSwipe: number; @@ -33,7 +32,6 @@ const SwipeableDeleteTouchable = ({ width, children, testID, - rowHeight, actionWidth, longSwipe, smallSwipe, @@ -188,7 +186,6 @@ const SwipeableDeleteTouchable = ({ { - 'use memo'; - const formattedExpiry = formatStatusExpiry(statusExpiresAt); const presenceLabel = !statusText && status ? STATUS_I18N_KEYS[status] : undefined; diff --git a/app/containers/TextInput/FormTextInput.tsx b/app/containers/TextInput/FormTextInput.tsx index 48968c76dc2..caf8fdb08fd 100644 --- a/app/containers/TextInput/FormTextInput.tsx +++ b/app/containers/TextInput/FormTextInput.tsx @@ -176,7 +176,7 @@ export const FormTextInput = ({ inputError ? { borderColor: colors.buttonBackgroundDangerDefault - } + } : {}, inputStyle ]} diff --git a/app/containers/TextInput/__snapshots__/TextInput.test.tsx.snap b/app/containers/TextInput/__snapshots__/TextInput.test.tsx.snap index 28d74179c3d..f556661b7db 100644 --- a/app/containers/TextInput/__snapshots__/TextInput.test.tsx.snap +++ b/app/containers/TextInput/__snapshots__/TextInput.test.tsx.snap @@ -36,6 +36,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 22, "textAlign": "left", @@ -78,6 +81,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -169,6 +175,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 22, "textAlign": "left", @@ -211,6 +220,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -301,6 +313,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 22, "textAlign": "left", @@ -343,6 +358,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -469,6 +487,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 22, "textAlign": "left", @@ -511,6 +532,9 @@ exports[`Story Snapshots: Icons should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -708,6 +732,9 @@ exports[`Story Snapshots: Loading should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 22, "textAlign": "left", @@ -750,6 +777,9 @@ exports[`Story Snapshots: Loading should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -805,6 +835,9 @@ exports[`Story Snapshots: Loading should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 22, "textAlign": "left", @@ -847,6 +880,9 @@ exports[`Story Snapshots: Loading should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -926,6 +962,9 @@ exports[`Story Snapshots: Multiline should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 22, "textAlign": "left", @@ -972,6 +1011,9 @@ https://open.rocket.chat/images/logo/android-chrome-512x512.png "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -1041,6 +1083,9 @@ exports[`Story Snapshots: SecureTextEntry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 22, "textAlign": "left", @@ -1083,6 +1128,9 @@ exports[`Story Snapshots: SecureTextEntry should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -1138,6 +1186,9 @@ exports[`Story Snapshots: SecureTextEntry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 22, "textAlign": "left", @@ -1181,6 +1232,9 @@ exports[`Story Snapshots: SecureTextEntry should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -1376,6 +1430,9 @@ exports[`Story Snapshots: ShortAndLong should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 22, "textAlign": "left", @@ -1418,6 +1475,9 @@ exports[`Story Snapshots: ShortAndLong should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -1473,6 +1533,9 @@ exports[`Story Snapshots: ShortAndLong should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 22, "textAlign": "left", @@ -1515,6 +1578,9 @@ exports[`Story Snapshots: ShortAndLong should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, diff --git a/app/containers/UIKit/Actions.tsx b/app/containers/UIKit/Actions.tsx index 40f328ce812..aef47b96106 100644 --- a/app/containers/UIKit/Actions.tsx +++ b/app/containers/UIKit/Actions.tsx @@ -14,6 +14,8 @@ const styles = StyleSheet.create({ }); export const Actions = ({ blockId, appId, elements, parser }: IActions) => { + 'use no memo'; + const [showMoreVisible, setShowMoreVisible] = useState(() => elements && elements.length > 5); const shouldShowMore = elements && elements.length > 5; diff --git a/app/containers/UIKit/Button.stories.tsx b/app/containers/UIKit/Button.stories.tsx new file mode 100644 index 00000000000..b4b51d5bb74 --- /dev/null +++ b/app/containers/UIKit/Button.stories.tsx @@ -0,0 +1,20 @@ +import UIKitButton from './Button'; + +const buttonProps = { + title: 'Press me!', + type: 'primary' as const, + onPress: () => {} +}; + +export default { + title: 'UIKit/Button', + component: UIKitButton +}; + +export const PrimaryButton = () => ; + +export const SecondaryButton = () => ; + +export const LoadingButton = () => ; + +export const CustomStyleButton = () => ; diff --git a/app/containers/UIKit/Button.test.tsx b/app/containers/UIKit/Button.test.tsx new file mode 100644 index 00000000000..fcb296234d0 --- /dev/null +++ b/app/containers/UIKit/Button.test.tsx @@ -0,0 +1,59 @@ +import { fireEvent, render } from '@testing-library/react-native'; + +import UIKitButton from './Button'; +import * as stories from './Button.stories'; +import { generateSnapshots } from '../../../.rnstorybook/generateSnapshots'; + +const onPressMock = jest.fn(); + +const testProps = { + title: 'Press me!', + onPress: onPressMock +}; + +describe('UIKitButtonTests', () => { + beforeEach(() => { + onPressMock.mockClear(); + }); + + test('rendered with correct title', async () => { + const { findByText } = render(); + const buttonTitle = await findByText(testProps.title); + expect(buttonTitle).toBeTruthy(); + expect(buttonTitle.props.children).toEqual(testProps.title); + }); + + test('find button using accessibilityLabel', () => { + const { getByLabelText } = render(); + const button = getByLabelText(testProps.title); + expect(button).toBeTruthy(); + }); + + test('renders secondary variant with the same title', async () => { + const { findByText } = render(); + const buttonTitle = await findByText(testProps.title); + expect(buttonTitle).toBeTruthy(); + }); + + test('title not visible while loading', () => { + const { queryByText } = render(); + const buttonTitle = queryByText(testProps.title); + expect(buttonTitle).toBeNull(); + }); + + test('onPress is not triggered while loading', () => { + const { getByLabelText } = render(); + const button = getByLabelText(testProps.title); + fireEvent.press(button); + expect(onPressMock).not.toHaveBeenCalled(); + }); + + test('should trigger onPress function on button press', () => { + const { getByLabelText } = render(); + const button = getByLabelText(testProps.title); + fireEvent.press(button); + expect(onPressMock).toHaveBeenCalled(); + }); +}); + +generateSnapshots(stories); diff --git a/app/containers/UIKit/Button.tsx b/app/containers/UIKit/Button.tsx new file mode 100644 index 00000000000..eb2c570ff2e --- /dev/null +++ b/app/containers/UIKit/Button.tsx @@ -0,0 +1,54 @@ +import { type FC } from 'react'; +import { Pressable, StyleSheet, Text, type StyleProp, type ViewStyle } from 'react-native'; + +import { useTheme } from '../../theme'; +import sharedStyles from '../../views/Styles'; +import ActivityIndicator from '../ActivityIndicator'; + +const styles = StyleSheet.create({ + container: { + borderRadius: 4, + paddingVertical: 14, + paddingHorizontal: 16, + justifyContent: 'center' + }, + text: { + ...sharedStyles.textMedium, + ...sharedStyles.textAlignCenter + }, + pressed: { + opacity: 0.7 + } +}); + +interface IUIKitButtonProps { + title: string; + onPress: () => void; + type?: 'primary' | 'secondary'; + loading?: boolean; + style?: StyleProp; +} + +const UIKitButton: FC = ({ title, onPress, type = 'primary', loading, style }) => { + const { colors } = useTheme(); + const isPrimary = type === 'primary'; + const backgroundColor = isPrimary ? colors.buttonBackgroundPrimaryDefault : colors.buttonBackgroundSecondaryDefault; + const color = isPrimary ? colors.fontWhite : colors.fontDefault; + + return ( + [styles.container, { backgroundColor }, style, pressed && styles.pressed]}> + {loading ? ( + + ) : ( + {title} + )} + + ); +}; + +export default UIKitButton; diff --git a/app/containers/UIKit/MessageBlock.tsx b/app/containers/UIKit/MessageBlock.tsx index e3e9857acfe..89fd16be37e 100644 --- a/app/containers/UIKit/MessageBlock.tsx +++ b/app/containers/UIKit/MessageBlock.tsx @@ -1,12 +1,11 @@ import { UiKitMessage, UiKitModal } from './index'; import { KitContext } from './utils'; -export const messageBlockWithContext = (context: any) => (props: any) => - ( - - - - ); +export const messageBlockWithContext = (context: any) => (props: any) => ( + + + +); const MessageBlock = ({ blocks }: any) => UiKitMessage(blocks); diff --git a/app/containers/UIKit/UiKitMessage.stories.tsx b/app/containers/UIKit/UiKitMessage.stories.tsx index dc386700e54..ef82eeafd75 100644 --- a/app/containers/UIKit/UiKitMessage.stories.tsx +++ b/app/containers/UIKit/UiKitMessage.stories.tsx @@ -2,6 +2,7 @@ import { ScrollView, View } from 'react-native'; import { type ReactElement } from 'react'; import { UiKitMessage } from '.'; +import Markdown from '../markdown'; import { colors } from '../../lib/constants/colors'; import { longText } from '../../../.rnstorybook/utils'; import { @@ -54,6 +55,39 @@ export const SectionMarkdownList = () => ]); SectionMarkdownList.storyName = 'Section + Markdown List'; +// App messages are rendered from blocks, so their mrkdwn goes through +// MessageParser.mrkdwn instead of the regular message Markdown path. Both must +// render at the same font size, otherwise app messages look smaller than the +// user's messages in the same list. +const appMessageText = + 'Updating workspace from 8.7.0-rc.1 to 8.7.0-rc.2\n\t\tchanges: https://github.com/RocketChat/Rocket.Chat/compare/8.7.0-rc.1...8.7.0-rc.2\n\t'; + +export const SectionFontSizeParity = () => ( + + + {UiKitMessage([ + { + type: 'section', + text: { + type: 'mrkdwn', + text: 'Section mrkdwn: must match the message above' + } + } + ])} + + {UiKitMessage([ + { + type: 'section', + text: { + type: 'mrkdwn', + text: appMessageText + } + } + ])} + +); +SectionFontSizeParity.storyName = 'Section + Message font size parity'; + export const SectionOverflow = () => UiKitMessage([ { diff --git a/app/containers/UIKit/__snapshots__/Button.test.tsx.snap b/app/containers/UIKit/__snapshots__/Button.test.tsx.snap new file mode 100644 index 00000000000..30b67aed945 --- /dev/null +++ b/app/containers/UIKit/__snapshots__/Button.test.tsx.snap @@ -0,0 +1,279 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Story Snapshots: CustomStyleButton should match snapshot 1`] = ` + + + Press me! + + +`; + +exports[`Story Snapshots: LoadingButton should match snapshot 1`] = ` + + + +`; + +exports[`Story Snapshots: PrimaryButton should match snapshot 1`] = ` + + + Press me! + + +`; + +exports[`Story Snapshots: SecondaryButton should match snapshot 1`] = ` + + + Press me! + + +`; diff --git a/app/containers/UIKit/__snapshots__/UiKitMessage.test.tsx.snap b/app/containers/UIKit/__snapshots__/UiKitMessage.test.tsx.snap index 0f6da409f65..db9fecd1947 100644 --- a/app/containers/UIKit/__snapshots__/UiKitMessage.test.tsx.snap +++ b/app/containers/UIKit/__snapshots__/UiKitMessage.test.tsx.snap @@ -3,364 +3,369 @@ exports[`Story Snapshots: ActionButton should match snapshot 1`] = ` [ - - Approve - + , - - Deny - + , - - Deny - + , - - Deny - + , - - Deny - + , - - Deny - + , - - - Deny - + , @@ -4824,6 +5197,9 @@ exports[`Story Snapshots: SectionButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -4840,6 +5216,9 @@ exports[`Story Snapshots: SectionButton should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -4857,9 +5236,6 @@ exports[`Story Snapshots: SectionButton should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -4869,76 +5245,77 @@ exports[`Story Snapshots: SectionButton should match snapshot 1`] = ` - - button - + `; @@ -4977,6 +5354,9 @@ exports[`Story Snapshots: SectionDatePicker should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -4993,6 +5373,9 @@ exports[`Story Snapshots: SectionDatePicker should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5010,9 +5393,6 @@ exports[`Story Snapshots: SectionDatePicker should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -5039,59 +5419,613 @@ exports[`Story Snapshots: SectionDatePicker should match snapshot 1`] = ` style={ [ { - "backgroundColor": "#156FF5", - "borderRadius": 4, - "justifyContent": "center", - "marginBottom": 12, - "paddingHorizontal": 16, - "paddingVertical": 14, + "backgroundColor": "#156FF5", + "borderRadius": 4, + "justifyContent": "center", + "marginBottom": 12, + "paddingHorizontal": 16, + "paddingVertical": 14, + }, + { + "cursor": undefined, + }, + ] + } + underlayColor="black" + > + + + Select a date + + + +`; + +exports[`Story Snapshots: SectionFontSizeParity should match snapshot 1`] = ` + + + + + + Regular message: the reference font size + + + + + + + + + + + Section mrkdwn: must match the message above + + + + + + + + + + + Updating workspace from 8.7.0-rc.1 to 8.7.0-rc.2 + + + + + + + changes: + + + https://github.com/RocketChat/Rocket.Chat/compare/8.7.0-rc.1...8.7.0-rc.2 + + + + + + + + + + + + - - Select a date - - + + + + + Updating workspace from 8.7.0-rc.1 to 8.7.0-rc.2 + + + + + + + changes: + + + https://github.com/RocketChat/Rocket.Chat/compare/8.7.0-rc.1...8.7.0-rc.2 + + + + + + + + + + + + + `; @@ -5130,6 +6064,9 @@ exports[`Story Snapshots: SectionMarkdownList should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5146,6 +6083,9 @@ exports[`Story Snapshots: SectionMarkdownList should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5156,6 +6096,9 @@ exports[`Story Snapshots: SectionMarkdownList should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -5174,7 +6117,13 @@ exports[`Story Snapshots: SectionMarkdownList should match snapshot 1`] = ` "color": "#2F343D", }, { - "fontSize": 14, + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", }, ] } @@ -5194,9 +6143,6 @@ exports[`Story Snapshots: SectionMarkdownList should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -5219,6 +6165,9 @@ exports[`Story Snapshots: SectionMarkdownList should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5244,6 +6193,9 @@ exports[`Story Snapshots: SectionMarkdownList should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5252,6 +6204,9 @@ exports[`Story Snapshots: SectionMarkdownList should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5267,6 +6222,9 @@ exports[`Story Snapshots: SectionMarkdownList should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5284,9 +6242,6 @@ exports[`Story Snapshots: SectionMarkdownList should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -5337,6 +6292,9 @@ exports[`Story Snapshots: SectionMultiSelect should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5353,6 +6311,9 @@ exports[`Story Snapshots: SectionMultiSelect should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5370,9 +6331,6 @@ exports[`Story Snapshots: SectionMultiSelect should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -5442,6 +6400,9 @@ exports[`Story Snapshots: SectionMultiSelect should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -5487,6 +6448,9 @@ exports[`Story Snapshots: SectionMultiSelect should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5503,6 +6467,9 @@ exports[`Story Snapshots: SectionMultiSelect should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5520,9 +6487,6 @@ exports[`Story Snapshots: SectionMultiSelect should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -5592,6 +6556,9 @@ exports[`Story Snapshots: SectionMultiSelect should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -5641,6 +6608,9 @@ exports[`Story Snapshots: SectionOverflow should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5657,6 +6627,9 @@ exports[`Story Snapshots: SectionOverflow should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5674,9 +6647,6 @@ exports[`Story Snapshots: SectionOverflow should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -5844,6 +6814,9 @@ exports[`Story Snapshots: SectionSelect should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5860,6 +6833,9 @@ exports[`Story Snapshots: SectionSelect should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5877,9 +6853,6 @@ exports[`Story Snapshots: SectionSelect should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -5954,6 +6927,9 @@ exports[`Story Snapshots: SectionSelect should match snapshot 1`] = ` "color": "#6C727A", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } diff --git a/app/containers/UIKit/__snapshots__/UiKitModal.test.tsx.snap b/app/containers/UIKit/__snapshots__/UiKitModal.test.tsx.snap index a098c73ec9f..9972a5823ea 100644 --- a/app/containers/UIKit/__snapshots__/UiKitModal.test.tsx.snap +++ b/app/containers/UIKit/__snapshots__/UiKitModal.test.tsx.snap @@ -16,6 +16,9 @@ exports[`Story Snapshots: ModalActions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginVertical": 10, "textAlign": "left", @@ -79,6 +82,9 @@ exports[`Story Snapshots: ModalActions should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -140,6 +146,9 @@ exports[`Story Snapshots: ModalActions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -156,6 +165,9 @@ exports[`Story Snapshots: ModalActions should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -173,9 +185,6 @@ exports[`Story Snapshots: ModalActions should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -263,6 +272,9 @@ exports[`Story Snapshots: ModalActions should match snapshot 1`] = ` "color": "#6C727A", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -390,6 +402,9 @@ exports[`Story Snapshots: ModalActions should match snapshot 1`] = ` "color": "#6C727A", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -517,6 +532,9 @@ exports[`Story Snapshots: ModalActions should match snapshot 1`] = ` "color": "#6C727A", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -644,6 +662,9 @@ exports[`Story Snapshots: ModalActions should match snapshot 1`] = ` "color": "#6C727A", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -708,6 +729,9 @@ exports[`Story Snapshots: ModalActions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginVertical": 10, "textAlign": "left", @@ -772,6 +796,9 @@ exports[`Story Snapshots: ModalActions should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -840,6 +867,9 @@ exports[`Story Snapshots: ModalActionsWithShowMore should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -856,6 +886,9 @@ exports[`Story Snapshots: ModalActionsWithShowMore should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -866,6 +899,9 @@ exports[`Story Snapshots: ModalActionsWithShowMore should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -884,7 +920,13 @@ exports[`Story Snapshots: ModalActionsWithShowMore should match snapshot 1`] = ` "color": "#2F343D", }, { - "fontSize": 14, + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", }, ] } @@ -904,9 +946,6 @@ exports[`Story Snapshots: ModalActionsWithShowMore should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -922,6 +961,9 @@ exports[`Story Snapshots: ModalActionsWithShowMore should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -947,6 +989,9 @@ exports[`Story Snapshots: ModalActionsWithShowMore should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -963,6 +1008,9 @@ exports[`Story Snapshots: ModalActionsWithShowMore should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -980,9 +1028,6 @@ exports[`Story Snapshots: ModalActionsWithShowMore should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -1011,364 +1056,369 @@ exports[`Story Snapshots: ModalActionsWithShowMore should match snapshot 1`] = ` } />, - - Primary Action - + , - - Secondary - + , - - Danger Action - + , - - Button 4 - + , - - Button 5 - + , - - Button 6 - Hidden - + , - - Button 7 - Hidden - + , - - Button 8 - Hidden - + , @@ -1808,6 +1873,9 @@ exports[`Story Snapshots: ModalActionsWithShowMore should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -1826,7 +1894,13 @@ exports[`Story Snapshots: ModalActionsWithShowMore should match snapshot 1`] = ` "color": "#2F343D", }, { - "fontSize": 14, + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", }, ] } @@ -1846,9 +1920,6 @@ exports[`Story Snapshots: ModalActionsWithShowMore should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -1882,6 +1953,9 @@ exports[`Story Snapshots: ModalContextsDividers should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1948,6 +2022,9 @@ exports[`Story Snapshots: ModalContextsDividers should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1964,6 +2041,9 @@ exports[`Story Snapshots: ModalContextsDividers should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -1981,9 +2061,6 @@ exports[`Story Snapshots: ModalContextsDividers should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -2148,6 +2225,9 @@ exports[`Story Snapshots: ModalContextsDividers should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2164,6 +2244,9 @@ exports[`Story Snapshots: ModalContextsDividers should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -2181,9 +2264,6 @@ exports[`Story Snapshots: ModalContextsDividers should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -2348,6 +2428,9 @@ exports[`Story Snapshots: ModalContextsDividers should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2364,6 +2447,9 @@ exports[`Story Snapshots: ModalContextsDividers should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -2381,9 +2467,6 @@ exports[`Story Snapshots: ModalContextsDividers should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -2532,6 +2615,9 @@ exports[`Story Snapshots: ModalDatePickerWithError should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginVertical": 10, "textAlign": "left", @@ -2647,6 +2733,9 @@ exports[`Story Snapshots: ModalDatePickerWithError should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2698,6 +2787,9 @@ exports[`Story Snapshots: ModalDatePickerWithError should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginTop": 8, "textAlign": "center", @@ -2773,6 +2865,9 @@ exports[`Story Snapshots: ModalFormInput should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -2814,6 +2909,9 @@ exports[`Story Snapshots: ModalFormInput should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginVertical": 10, "textAlign": "left", @@ -2877,6 +2975,9 @@ exports[`Story Snapshots: ModalFormInput should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -2910,6 +3011,9 @@ exports[`Story Snapshots: ModalFormInput should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2936,6 +3040,9 @@ exports[`Story Snapshots: ModalFormInput should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginVertical": 10, "textAlign": "left", @@ -3051,6 +3158,9 @@ exports[`Story Snapshots: ModalFormInput should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3119,6 +3229,9 @@ exports[`Story Snapshots: ModalFormTextArea should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3168,6 +3281,9 @@ exports[`Story Snapshots: ModalFormTextArea should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3184,6 +3300,9 @@ exports[`Story Snapshots: ModalFormTextArea should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -3201,9 +3320,6 @@ exports[`Story Snapshots: ModalFormTextArea should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -3213,76 +3329,77 @@ exports[`Story Snapshots: ModalFormTextArea should match snapshot 1`] = ` - - Change - + , @@ -3751,6 +3883,9 @@ exports[`Story Snapshots: ModalImages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3800,6 +3935,9 @@ exports[`Story Snapshots: ModalImages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3816,6 +3954,9 @@ exports[`Story Snapshots: ModalImages should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -3826,6 +3967,9 @@ exports[`Story Snapshots: ModalImages should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -3844,7 +3988,13 @@ exports[`Story Snapshots: ModalImages should match snapshot 1`] = ` "color": "#2F343D", }, { - "fontSize": 14, + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", }, ] } @@ -3861,6 +4011,9 @@ exports[`Story Snapshots: ModalImages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3877,6 +4030,9 @@ exports[`Story Snapshots: ModalImages should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -3894,9 +4050,6 @@ exports[`Story Snapshots: ModalImages should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -3926,6 +4079,9 @@ exports[`Story Snapshots: ModalInputWithAddField should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginVertical": 10, "textAlign": "left", @@ -3989,6 +4145,9 @@ exports[`Story Snapshots: ModalInputWithAddField should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -4030,6 +4189,9 @@ exports[`Story Snapshots: ModalInputWithAddField should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginVertical": 10, "textAlign": "left", @@ -4093,6 +4255,9 @@ exports[`Story Snapshots: ModalInputWithAddField should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -4196,6 +4361,9 @@ exports[`Story Snapshots: ModalInputWithError should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginVertical": 10, "textAlign": "left", @@ -4259,6 +4427,9 @@ exports[`Story Snapshots: ModalInputWithError should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -4292,6 +4463,9 @@ exports[`Story Snapshots: ModalInputWithError should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginTop": 8, "textAlign": "center", @@ -4323,6 +4497,9 @@ exports[`Story Snapshots: ModalMultiSelect should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginVertical": 10, "textAlign": "left", @@ -4442,6 +4619,9 @@ exports[`Story Snapshots: ModalMultiSelect should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingLeft": 6, "textAlign": "left", @@ -4494,6 +4674,9 @@ exports[`Story Snapshots: ModalMultiSelect should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4520,6 +4703,9 @@ exports[`Story Snapshots: ModalMultiSelect should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginVertical": 10, "textAlign": "left", @@ -4738,6 +4924,9 @@ exports[`Story Snapshots: ModalMultiSelect should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "paddingHorizontal": 8, "textAlign": "left", @@ -4820,6 +5009,9 @@ exports[`Story Snapshots: ModalMultiSelect should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4850,6 +5042,9 @@ exports[`Story Snapshots: ModalMultilneWithError should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginVertical": 10, "textAlign": "left", @@ -4914,6 +5109,9 @@ exports[`Story Snapshots: ModalMultilneWithError should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -4949,6 +5147,9 @@ exports[`Story Snapshots: ModalMultilneWithError should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginTop": 8, "textAlign": "center", @@ -5000,6 +5201,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5016,6 +5220,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5026,6 +5233,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -5044,7 +5254,13 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "color": "#2F343D", }, { - "fontSize": 14, + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", }, ] } @@ -5064,9 +5280,6 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -5081,6 +5294,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5097,6 +5313,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5114,9 +5333,6 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -5127,6 +5343,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -5145,7 +5364,13 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "color": "#2F343D", }, { - "fontSize": 14, + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", }, ] } @@ -5165,9 +5390,6 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -5182,6 +5404,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5198,6 +5423,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5215,9 +5443,6 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -5228,6 +5453,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -5246,7 +5474,13 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "color": "#2F343D", }, { - "fontSize": 14, + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", }, ] } @@ -5266,9 +5500,6 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -5364,6 +5595,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5380,6 +5614,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5390,6 +5627,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -5408,7 +5648,13 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "color": "#2F343D", }, { - "fontSize": 14, + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", }, ] } @@ -5425,6 +5671,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5441,6 +5690,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5458,9 +5710,6 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -5505,6 +5754,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5521,6 +5773,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5531,6 +5786,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -5549,7 +5807,13 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "color": "#2F343D", }, { - "fontSize": 14, + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", }, ] } @@ -5566,6 +5830,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5582,6 +5849,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5599,9 +5869,6 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -5646,6 +5913,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5662,6 +5932,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5672,6 +5945,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -5690,7 +5966,13 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "color": "#2F343D", }, { - "fontSize": 14, + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", }, ] } @@ -5707,6 +5989,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5723,6 +6008,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5740,9 +6028,6 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -5787,6 +6072,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5803,6 +6091,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5813,6 +6104,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -5831,7 +6125,13 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "color": "#2F343D", }, { - "fontSize": 14, + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", }, ] } @@ -5848,6 +6148,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5864,6 +6167,9 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5881,9 +6187,6 @@ exports[`Story Snapshots: ModalSectionAccessories should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -5933,6 +6236,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5949,6 +6255,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5959,6 +6268,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -5977,7 +6289,13 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "color": "#2F343D", }, { - "fontSize": 14, + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", }, ] } @@ -5997,9 +6315,6 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -6015,6 +6330,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -6033,6 +6351,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -6049,6 +6370,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -6066,9 +6390,6 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -6081,13 +6402,13 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", }, - { - "fontSize": 14, - }, { "color": "#2F343D", }, @@ -6160,6 +6481,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -6176,6 +6500,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -6186,6 +6513,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -6204,7 +6534,13 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "color": "#2F343D", }, { - "fontSize": 14, + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", }, ] } @@ -6221,6 +6557,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -6237,6 +6576,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -6254,9 +6596,6 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -6296,6 +6635,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -6312,6 +6654,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -6322,6 +6667,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -6340,7 +6688,13 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "color": "#2F343D", }, { - "fontSize": 14, + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", }, ] } @@ -6357,6 +6711,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -6373,6 +6730,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -6390,9 +6750,6 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -6445,6 +6802,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -6461,6 +6821,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -6471,6 +6834,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -6489,7 +6855,13 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "color": "#2F343D", }, { - "fontSize": 14, + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", }, ] } @@ -6506,6 +6878,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -6522,6 +6897,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -6539,9 +6917,6 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > @@ -6581,6 +6956,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -6597,6 +6975,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -6607,6 +6988,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -6625,7 +7009,13 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "color": "#2F343D", }, { - "fontSize": 14, + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", }, ] } @@ -6642,6 +7032,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -6658,6 +7051,9 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -6675,9 +7071,6 @@ exports[`Story Snapshots: ModalSectionSelects should match snapshot 1`] = ` { "color": "#2F343D", }, - { - "fontSize": 14, - }, ] } > diff --git a/app/containers/UIKit/index.tsx b/app/containers/UIKit/index.tsx index f7db90fd545..d85cd522a0a 100644 --- a/app/containers/UIKit/index.tsx +++ b/app/containers/UIKit/index.tsx @@ -12,7 +12,7 @@ import { } from '@rocket.chat/ui-kit'; import Markdown, { MarkdownPreview } from '../markdown'; -import Button from '../Button'; +import Button from './Button'; import { FormTextInput } from '../TextInput'; import { textParser, useBlockContext } from './utils'; import { themes } from '../../lib/constants/colors'; @@ -93,7 +93,7 @@ class MessageParser extends UiKitParserMessage { if (isContext) { return ; } - return ; + return ; } button(element: IButton, context: BlockContext): ReactElement { diff --git a/app/containers/UnreadBadge/__snapshots__/UnreadBadge.test.tsx.snap b/app/containers/UnreadBadge/__snapshots__/UnreadBadge.test.tsx.snap index 742fc1b0858..e4708e727c3 100644 --- a/app/containers/UnreadBadge/__snapshots__/UnreadBadge.test.tsx.snap +++ b/app/containers/UnreadBadge/__snapshots__/UnreadBadge.test.tsx.snap @@ -36,6 +36,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -76,6 +79,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -119,6 +125,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -160,6 +169,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -201,6 +213,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -242,6 +257,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -283,6 +301,9 @@ exports[`Story Snapshots: All should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -338,6 +359,9 @@ exports[`Story Snapshots: DifferentMentionTypes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -379,6 +403,9 @@ exports[`Story Snapshots: DifferentMentionTypes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -420,6 +447,9 @@ exports[`Story Snapshots: DifferentMentionTypes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -461,6 +491,9 @@ exports[`Story Snapshots: DifferentMentionTypes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -502,6 +535,9 @@ exports[`Story Snapshots: DifferentMentionTypes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -543,6 +579,9 @@ exports[`Story Snapshots: DifferentMentionTypes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -584,6 +623,9 @@ exports[`Story Snapshots: DifferentMentionTypes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -639,6 +681,9 @@ exports[`Story Snapshots: Normal should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -680,6 +725,9 @@ exports[`Story Snapshots: Normal should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -732,6 +780,9 @@ exports[`Story Snapshots: Small should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -772,6 +823,9 @@ exports[`Story Snapshots: Small should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -830,6 +884,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -871,6 +928,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -912,6 +972,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -953,6 +1016,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1005,6 +1071,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1046,6 +1115,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1087,6 +1159,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1128,6 +1203,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1180,6 +1258,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1221,6 +1302,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1262,6 +1346,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1303,6 +1390,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, diff --git a/app/containers/markdown/Markdown.stories.tsx b/app/containers/markdown/Markdown.stories.tsx index fb9b7fa94c1..cfbd3ac72e7 100644 --- a/app/containers/markdown/Markdown.stories.tsx +++ b/app/containers/markdown/Markdown.stories.tsx @@ -75,6 +75,7 @@ const mentions = [ { _id: 'all', username: 'all', type: 'user' }, { _id: 'team', name: 'team', type: 'team' } ]; +const channels = [{ _id: '123', name: 'test-channel' }]; export const Mentions = () => ( @@ -83,9 +84,44 @@ export const Mentions = () => ( ); +export const MentionsWithFormatting = () => ( + + + + + + + +); + export const Hashtag = () => ( - + ); @@ -131,6 +167,35 @@ export const Headers = () => ( ); +export const HeadersWithFormatting = () => ( + + + + + + +); + export const Code = () => ( @@ -157,13 +222,23 @@ export const Lists = () => ( export const Timestamp = () => ( - - - - - - - + + + + + + + + + + + + + + + + + ); @@ -175,7 +250,7 @@ export const TextStyle = () => ( textStyle={textStyle} /> - + This is block quote this is a normal line`} diff --git a/app/containers/markdown/__snapshots__/Markdown.test.tsx.snap b/app/containers/markdown/__snapshots__/Markdown.test.tsx.snap index 009e5615a36..4197902da24 100644 --- a/app/containers/markdown/__snapshots__/Markdown.test.tsx.snap +++ b/app/containers/markdown/__snapshots__/Markdown.test.tsx.snap @@ -53,6 +53,9 @@ exports[`Story Snapshots: BlockQuote should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -69,6 +72,9 @@ exports[`Story Snapshots: BlockQuote should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -102,6 +108,9 @@ exports[`Story Snapshots: BlockQuote should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -118,6 +127,9 @@ exports[`Story Snapshots: BlockQuote should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -170,6 +182,9 @@ exports[`Story Snapshots: Code should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -186,6 +201,9 @@ exports[`Story Snapshots: Code should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -217,6 +235,9 @@ exports[`Story Snapshots: Code should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Courier New", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "paddingLeft": 2, @@ -252,6 +273,9 @@ exports[`Story Snapshots: Code should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -268,6 +292,9 @@ exports[`Story Snapshots: Code should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -299,6 +326,9 @@ exports[`Story Snapshots: Code should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Courier New", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "paddingLeft": 2, @@ -343,6 +373,9 @@ exports[`Story Snapshots: Code should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Courier New", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "paddingLeft": 2, @@ -402,6 +435,9 @@ exports[`Story Snapshots: Code should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Courier New", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -443,6 +479,9 @@ exports[`Story Snapshots: Emoji should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -459,6 +498,9 @@ exports[`Story Snapshots: Emoji should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -491,6 +533,9 @@ exports[`Story Snapshots: Emoji should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -510,6 +555,9 @@ exports[`Story Snapshots: Emoji should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -529,6 +577,9 @@ exports[`Story Snapshots: Emoji should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -555,6 +606,9 @@ exports[`Story Snapshots: Emoji should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -571,6 +625,9 @@ exports[`Story Snapshots: Emoji should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -603,6 +660,9 @@ exports[`Story Snapshots: Emoji should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -642,6 +702,9 @@ exports[`Story Snapshots: Emoji should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -671,6 +734,9 @@ exports[`Story Snapshots: Emoji should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -687,6 +753,9 @@ exports[`Story Snapshots: Emoji should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -902,6 +971,9 @@ exports[`Story Snapshots: Emoji should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 30, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 43, "textAlign": "left", @@ -921,6 +993,9 @@ exports[`Story Snapshots: Emoji should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 30, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 43, "textAlign": "left", @@ -1005,6 +1080,9 @@ exports[`Story Snapshots: Hashtag should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1021,6 +1099,9 @@ exports[`Story Snapshots: Hashtag should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -1034,6 +1115,9 @@ exports[`Story Snapshots: Hashtag should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1069,6 +1153,9 @@ exports[`Story Snapshots: Hashtag should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1111,7 +1198,11 @@ exports[`Story Snapshots: Headers should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", + "lineHeight": 30, "textAlign": "left", }, { @@ -1120,7 +1211,34 @@ exports[`Story Snapshots: Headers should match snapshot 1`] = ` ] } > - Header 1 + + Header 1 + - Header 2 + + Header 2 + - Header 3 + + Header 3 + - Header 4 - - - -`; - -exports[`Story Snapshots: Image should match snapshot 1`] = ` - - - - + "color": "#2F343D", + }, + { + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "600", + "lineHeight": 24, + "textAlign": "left", + }, + ] + } + > + Header 4 `; -exports[`Story Snapshots: Links should match snapshot 1`] = ` +exports[`Story Snapshots: HeadersWithFormatting should match snapshot 1`] = ` + + H1 + - Markdown link - - - : - - - - [description](url) - + bold - - - - + + + - Formatted Link - - - : - - - - <url|description> - + italic - - - - + + + - Markdown link - - - and the text with default style + strike - - - - + + + + + code + + + + + + + + 🚀 + + + + + + rocket.cat + + + + + + test-channel + + + + + + https://rocket.chat + + + + + - + H2 + + - Markdown link - + } + > - and the text continues on the next line + bold - - - -`; - -exports[`Story Snapshots: Lists should match snapshot 1`] = ` - - - - + + + - • - - - - - Open Source - - + italic - - + + + + - • - - - - - Rocket.Chat - - + strike - - - + - - - nodejs + + + + + code + + + + + + 🚀 + + + + + + rocket.cat + + + + + + test-channel + + + + + + https://rocket.chat + + + + H3 + + - - ReactNative + bold - - - - - + + + - 1 - . - - - - - Open Source - - + italic - - + + + + - 2 - . - - - - - Rocket.Chat - - + strike - - - - - - + - - • - - - - - - bold - - - - - - - - - + + + - - • - - - - - - italic - - - - - - + + code - - + - + + + 🚀 + + + + + + rocket.cat + + + + + + test-channel + + + + + + https://rocket.chat + + + + + + + H4 + + - • - + } + > - - - - strikethrough - - - - - - + bold - - + + + + - • - - - - - - - bold italic - - - - - - - + italic - - + + + + - • - - - - - - - bold strikethrough - - - - - - - - - - - - • - - - - - - - italic strikethrough - - - - - - - + strike - - + - - • - - - - - - - - bold italic strikethrough - - - - - - - - - - -`; - -exports[`Story Snapshots: Mentions should match snapshot 1`] = ` - - - + + - + code + + + - - rocket.cat - - - - - - name1 - - - - - - all - - - - - - here - - - - - - @unknown - - - - - - team - - - - - + > + + - + + + + + rocket.cat + + + + + + test-channel + + + + + + https://rocket.chat + + + + +`; + +exports[`Story Snapshots: Image should match snapshot 1`] = ` + + + + + + + + + +`; + +exports[`Story Snapshots: Links should match snapshot 1`] = ` + + + + + + Markdown link + + + : + + + + [description](url) + + + + + + + + + + Formatted Link + + + : + + + + <url|description> + + + + + + + + + + Markdown link + + + and the text with default style + + + + + + + + + Markdown link + + + and the text continues on the next line + + + + + +`; + +exports[`Story Snapshots: Lists should match snapshot 1`] = ` + + + + + + • + + + + + Open Source + + + + + + + • + + + + + Rocket.Chat + + + + + + + + + - nodejs + + + + + + + - ReactNative + + + + + + + + + 1 + . + + + + + Open Source + + + + + + + 2 + . + + + + + Rocket.Chat + + + + + + + + + + + • + + + + + + bold + + + + + + + + + + + • + + + + + + italic + + + + + + + + + + + • + + + + + + strikethrough + + + + + + + + + + + • + + + + + + + bold italic + + + + + + + + + + + + • + + + + + + + bold strikethrough + + + + + + + + + + + + • + + + + + + + italic strikethrough + + + + + + + + + + + + • + + + + + + + + bold italic strikethrough + + + + + + + + + + +`; + +exports[`Story Snapshots: Mentions should match snapshot 1`] = ` + + + + + + + rocket.cat + + + + + + name1 + + + + + + all + + + + + + here + + + + + + @unknown + + + + + + team + + + + + + + + + Rocket Cat + + + + + + Name + + + + + + all + + + + + + here + + + + + + @unknown + + + + + + team + + + + + + +`; + +exports[`Story Snapshots: MentionsWithFormatting should match snapshot 1`] = ` + + + + + + + Normal: + + + rocket.cat + + + + + + name1 + + + + + + all + + + + + + here + + + + + + test-channel + + + + + + + + + Bold: + + + + rocket.cat + + + + + + + + name1 + + + + + + + + all + + + + + + + + here + + + + + + + + test-channel + + + + + + + + + + Italic: + + + + + + + rocket.cat + + + + + + + + + + + + + + name1 + + + + + + + + + + + + + + all + + + + + + + + + + + + + + here + + + + + + + + + + + + + + test-channel + + + + + + + + + + + - Rocket Cat + Strikethrough: + + + + rocket.cat + + + + + + + + name1 + + + + + + + + all + + + + + + + + here + - Name + + test-channel + + + + + + + - + Italic + Bold + Strikethrough: - all + + + + rocket.cat + + + - here + + + + name1 + + + + + + + all + + + + + - @unknown + + + + + + + here + + + - team + + + + test-channel + + + @@ -3342,6 +7725,9 @@ exports[`Story Snapshots: Preview should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3365,6 +7751,9 @@ exports[`Story Snapshots: Preview should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3388,6 +7777,9 @@ exports[`Story Snapshots: Preview should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3406,84 +7798,593 @@ exports[`Story Snapshots: Preview should match snapshot 1`] = ` accessibilityLabel="@rocket.cat @name1 @all @here @unknown #general #unknown" numberOfLines={1} style={ - [ - { - "backgroundColor": "transparent", - "fontFamily": "Inter", - "fontSize": 16, - "fontWeight": "400", - "lineHeight": 22, - "textAlign": "left", - }, - { - "color": "#2F343D", - "lineHeight": undefined, - }, - ] + [ + { + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "400", + "lineHeight": 22, + "textAlign": "left", + }, + { + "color": "#2F343D", + "lineHeight": undefined, + }, + ] + } + testID="markdown-preview-@rocket.cat @name1 @all @here @unknown #general #unknown" + > + @rocket.cat @name1 @all @here @unknown #general #unknown + + + Testing: 😃 👍 :marioparty: + + + Fallback from new md to old + + +`; + +exports[`Story Snapshots: Text should match snapshot 1`] = ` + + + + + + This is + + + Rocket.Chat + + + + + + + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + + + + + - @rocket.cat @name1 @all @here @unknown #general #unknown - - + + + a + + + + + + + b + + + + + + + c + + + + - Testing: 😃 👍 :marioparty: - - + + + + d + + + + + + + + + e + + + + + - Fallback from new md to old - - -`; - -exports[`Story Snapshots: Text should match snapshot 1`] = ` - + + + + a b c + + + + + } + > + + Emphasis: + + + + bold + + + + + + + + italic + + + + + + + strikethrough + + + - This is + + + + bold with italic + + + + - Rocket.Chat + + + + + + bold with strike + + + + + + + + + + + bold with italic and strike + + + + + + + + + + + italic with strike + + + +`; + +exports[`Story Snapshots: TextStyle should match snapshot 1`] = ` + - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + Emphasis: - - - - - - + > + + bold + + - a + + + + + italic + + + + + + + + strikethrough + + + + + + + + + bold with italic + + - - - - - b + - - - - - c + + + bold with strike + + - - - - - - d + - - - - - - + > + + + + bold with italic and strike + + + + - e + - - - - - - - a b c + + + italic with strike + + @@ -3947,6 +9352,9 @@ exports[`Story Snapshots: Text should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3963,55 +9371,39 @@ exports[`Story Snapshots: Text should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } } > - Emphasis: - - - - bold - + rocket.cat - - italic - - - - - - - - strikethrough - + name1 @@ -4116,39 +9475,28 @@ exports[`Story Snapshots: Text should match snapshot 1`] = ` - - - bold with italic - - + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "600", + "textAlign": "left", + }, + { + "color": "red", + "fontSize": 10, + }, + { + "color": "#974809", + }, + ] + } + > + all @@ -4169,39 +9521,28 @@ exports[`Story Snapshots: Text should match snapshot 1`] = ` - - - bold with strike - - + here @@ -4222,47 +9567,29 @@ exports[`Story Snapshots: Text should match snapshot 1`] = ` - - - - bold with italic and strike - - - + @unknown @@ -4283,53 +9614,32 @@ exports[`Story Snapshots: Text should match snapshot 1`] = ` - - - italic with strike - - + team - -`; - -exports[`Story Snapshots: TextStyle should match snapshot 1`] = ` - - - Emphasis: - - - - bold - - + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "400", + "textAlign": "left", + } + } + > - - - - - italic - + test-channel - - strikethrough - - - - + #unknown + + + + + + + - bold with italic + This is block quote + + + + + + this is a normal line + + + + + + + - + Markdown link - + + + +`; + +exports[`Story Snapshots: Timestamp should match snapshot 1`] = ` + + + + - - - bold with strike - - - + } + > - + Unix timestamp formats - + + + + + - - - - bold with italic and strike - - - - + } + > - + t - Short time: - - - italic with strike - - + [ + { + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "500", + "textAlign": "left", + }, + { + "backgroundColor": "#D7DBE0", + "color": "#2F343D", + }, + ] + } + > + 12:00 AM @@ -4784,6 +10152,9 @@ exports[`Story Snapshots: TextStyle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -4800,36 +10171,16 @@ exports[`Story Snapshots: TextStyle should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } } > - rocket.cat - - - + T - Long time: - name1 - - - + 12:00:00 AM - + + + + + - all - + } + > - + d - Short date: - here - - - + 01/01/2025 - + + + + + - @unknown - + } + > - + D - Long date: - team + Wednesday, Jan 01, 2025 @@ -5062,6 +10401,9 @@ exports[`Story Snapshots: TextStyle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5078,36 +10420,16 @@ exports[`Story Snapshots: TextStyle should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } } > - test-channel - - - + f - Short date/time: - #unknown + Wednesday, Jan 01, 2025 12:00 AM @@ -5160,45 +10477,48 @@ exports[`Story Snapshots: TextStyle should match snapshot 1`] = ` } } > - - - - + - - This is block quote - - + }, + { + "backgroundColor": "#D7DBE0", + "color": "#2F343D", + }, + ] + } + > + Wednesday, Jan 01, 2025 12:00:00 AM - - + + + + + R - Relative time: + + - this is a normal line + a year ago @@ -5308,6 +10650,9 @@ exports[`Story Snapshots: TextStyle should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5324,51 +10669,34 @@ exports[`Story Snapshots: TextStyle should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } } > - Markdown link + ISO timestamp formats - -`; - -exports[`Story Snapshots: Timestamp should match snapshot 1`] = ` - - t: + t - Short time: - 12:00 PM + 12:00 AM @@ -5457,6 +10794,9 @@ exports[`Story Snapshots: Timestamp should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5473,13 +10813,16 @@ exports[`Story Snapshots: Timestamp should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } } > - T: + T - Long time: - 12:00:00 PM + 12:00:00 AM @@ -5531,6 +10877,9 @@ exports[`Story Snapshots: Timestamp should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5547,13 +10896,16 @@ exports[`Story Snapshots: Timestamp should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } } > - d: + d - Short date: - D: + D - Long date: - f: + f - Short date/time: - Wednesday, Jan 01, 2025 12:00 PM + Wednesday, Jan 01, 2025 12:00 AM @@ -5753,6 +11126,9 @@ exports[`Story Snapshots: Timestamp should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5769,13 +11145,16 @@ exports[`Story Snapshots: Timestamp should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } } > - F: + F - Long date/time: - Wednesday, Jan 01, 2025 12:00:00 PM + Wednesday, Jan 01, 2025 12:00:00 AM @@ -5827,6 +11209,9 @@ exports[`Story Snapshots: Timestamp should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5843,13 +11228,16 @@ exports[`Story Snapshots: Timestamp should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } } > - R: + R - Relative time: { +const Heading = ({ value, level }: IHeadingProps): ReactElement => { const { theme } = useTheme(); const textStyle = styles[`heading${level}`]; + const context = useMarkdownContext({ textStyle }); return ( - {value.map(block => { - switch (block.type) { - case 'PLAIN_TEXT': - return block.value; - default: - return null; - } - })} + + {value.map((block, index) => { + switch (block.type) { + case 'IMAGE': + return ; + case 'PLAIN_TEXT': + return ; + case 'BOLD': + return ; + case 'STRIKE': + return ; + case 'ITALIC': + return ; + case 'LINK': + return ; + case 'MENTION_USER': + return ; + case 'EMOJI': + return ; + case 'MENTION_CHANNEL': + return ; + case 'INLINE_CODE': + return ; + case 'TIMESTAMP': + return ; + default: + return null; + } + })} + ); }; diff --git a/app/containers/markdown/components/Inline.tsx b/app/containers/markdown/components/Inline.tsx index 284a8193ef9..98034445d2a 100644 --- a/app/containers/markdown/components/Inline.tsx +++ b/app/containers/markdown/components/Inline.tsx @@ -1,4 +1,4 @@ -import { useContext, type ReactElement } from 'react'; +import { type ReactElement } from 'react'; import { Text } from 'react-native'; import { type Paragraph as ParagraphProps } from '@rocket.chat/message-parser'; @@ -9,7 +9,6 @@ import { Bold, Italic, Link, Strike } from './inline/index'; import Plain from './Plain'; import InlineCode from './InlineCode'; import Image from './Image'; -import MarkdownContext from '../contexts/MarkdownContext'; import Timestamp from './Timestamp'; // import { InlineKaTeX, KaTeX } from './Katex'; @@ -19,7 +18,6 @@ interface IParagraphProps { } const Inline = ({ value, forceTrim }: IParagraphProps): ReactElement | null => { - const { useRealName, username, navToRoomInfo, mentions, channels } = useContext(MarkdownContext); return ( {value.map((block, index) => { @@ -53,19 +51,11 @@ const Inline = ({ value, forceTrim }: IParagraphProps): ReactElement | null => { case 'LINK': return ; case 'MENTION_USER': - return ( - - ); + return ; case 'EMOJI': return ; case 'MENTION_CHANNEL': - return ; + return ; case 'INLINE_CODE': return ; case 'INLINE_KATEX': diff --git a/app/containers/markdown/components/Timestamp.tsx b/app/containers/markdown/components/Timestamp.tsx index 19e55f2162c..eaef3ab6efe 100644 --- a/app/containers/markdown/components/Timestamp.tsx +++ b/app/containers/markdown/components/Timestamp.tsx @@ -14,7 +14,15 @@ interface ITimestampProps { const Timestamp = ({ value }: ITimestampProps): ReactElement => { const { colors } = useTheme(); - const timestampMs = useMemo(() => parseInt(value.timestamp, 10) * 1000, [value.timestamp]); + const timestampMs = useMemo(() => { + const ts = value.timestamp; + + // RC API returns Unix timestamps in seconds; dayjs expects milliseconds + if (/^-?\d{10}$/.test(ts)) return Number(ts) * 1000; + if (/^-?\d{13}$/.test(ts)) return Number(ts); + + return dayjs(ts).valueOf(); + }, [value.timestamp]); const formatDate = useMemo(() => { if (value.format === 't') { diff --git a/app/containers/markdown/components/inline/Bold.tsx b/app/containers/markdown/components/inline/Bold.tsx index f1717ed62fd..be370cb9c45 100644 --- a/app/containers/markdown/components/inline/Bold.tsx +++ b/app/containers/markdown/components/inline/Bold.tsx @@ -3,7 +3,9 @@ import { type Bold as BoldProps } from '@rocket.chat/message-parser'; import { Italic, Link, Strike } from './index'; import Plain from '../Plain'; +import { Hashtag, AtMention } from '../mentions'; import sharedStyles from '../../../../views/Styles'; +import MarkdownContext, { useMarkdownContext } from '../../contexts/MarkdownContext'; interface IBoldProps { value: BoldProps['value']; @@ -15,25 +17,33 @@ const styles = StyleSheet.create({ } }); -const Bold = ({ value }: IBoldProps) => ( - - {value.map(block => { - switch (block.type) { - case 'LINK': - return ; - case 'PLAIN_TEXT': - return ; - case 'STRIKE': - return ; - case 'ITALIC': - return ; - case 'MENTION_CHANNEL': - return ; - default: - return null; - } - })} - -); +const Bold = ({ value }: IBoldProps) => { + const context = useMarkdownContext({ textStyle: sharedStyles.textBold }); + + return ( + + + {value.map(block => { + switch (block.type) { + case 'LINK': + return ; + case 'PLAIN_TEXT': + return ; + case 'STRIKE': + return ; + case 'ITALIC': + return ; + case 'MENTION_CHANNEL': + return ; + case 'MENTION_USER': + return ; + default: + return null; + } + })} + + + ); +}; export default Bold; diff --git a/app/containers/markdown/components/inline/Italic.tsx b/app/containers/markdown/components/inline/Italic.tsx index a65dc96d7f1..4663d854f4f 100644 --- a/app/containers/markdown/components/inline/Italic.tsx +++ b/app/containers/markdown/components/inline/Italic.tsx @@ -3,6 +3,7 @@ import { type Italic as ItalicProps } from '@rocket.chat/message-parser'; import { Bold, Link, Strike } from './index'; import Plain from '../Plain'; +import { AtMention, Hashtag } from '../mentions'; interface IItalicProps { value: ItalicProps['value']; @@ -14,25 +15,29 @@ const styles = StyleSheet.create({ } }); -const Italic = ({ value }: IItalicProps) => ( - - {value.map(block => { - switch (block.type) { - case 'LINK': - return ; - case 'PLAIN_TEXT': - return ; - case 'STRIKE': - return ; - case 'BOLD': - return ; - case 'MENTION_CHANNEL': - return ; - default: - return null; - } - })} - -); +const Italic = ({ value }: IItalicProps) => { + return ( + + {value.map(block => { + switch (block.type) { + case 'LINK': + return ; + case 'PLAIN_TEXT': + return ; + case 'STRIKE': + return ; + case 'BOLD': + return ; + case 'MENTION_CHANNEL': + return ; + case 'MENTION_USER': + return ; + default: + return null; + } + })} + + ); +}; export default Italic; diff --git a/app/containers/markdown/components/inline/Strike.tsx b/app/containers/markdown/components/inline/Strike.tsx index 362d3c1d11f..682226144ab 100644 --- a/app/containers/markdown/components/inline/Strike.tsx +++ b/app/containers/markdown/components/inline/Strike.tsx @@ -3,6 +3,7 @@ import { type Strike as StrikeProps } from '@rocket.chat/message-parser'; import { Bold, Italic, Link } from './index'; import Plain from '../Plain'; +import { AtMention, Hashtag } from '../mentions'; interface IStrikeProps { value: StrikeProps['value']; @@ -14,25 +15,29 @@ const styles = StyleSheet.create({ } }); -const Strike = ({ value }: IStrikeProps) => ( - - {value.map(block => { - switch (block.type) { - case 'LINK': - return ; - case 'PLAIN_TEXT': - return ; - case 'BOLD': - return ; - case 'ITALIC': - return ; - case 'MENTION_CHANNEL': - return ; - default: - return null; - } - })} - -); +const Strike = ({ value }: IStrikeProps) => { + return ( + + {value.map(block => { + switch (block.type) { + case 'LINK': + return ; + case 'PLAIN_TEXT': + return ; + case 'BOLD': + return ; + case 'ITALIC': + return ; + case 'MENTION_CHANNEL': + return ; + case 'MENTION_USER': + return ; + default: + return null; + } + })} + + ); +}; export default Strike; diff --git a/app/containers/markdown/components/mentions/AtMention.tsx b/app/containers/markdown/components/mentions/AtMention.tsx index bb454b7bbd2..27c3b8ccac6 100644 --- a/app/containers/markdown/components/mentions/AtMention.tsx +++ b/app/containers/markdown/components/mentions/AtMention.tsx @@ -6,21 +6,16 @@ import { themes } from '../../../../lib/constants/colors'; import { USER_MENTIONS_PREFERENCES_KEY } from '../../../../lib/constants/keys'; import styles from '../../styles'; import { events, logEvent } from '../../../../lib/methods/helpers/log'; -import { type IUserMention } from '../../interfaces'; import { useUserPreferences } from '../../../../lib/methods/userPreferences'; import MarkdownContext from '../../contexts/MarkdownContext'; interface IAtMention { mention: string; - username?: string; - navToRoomInfo?: Function; - useRealName?: boolean; - mentions?: IUserMention[]; } -const AtMention = memo(({ mention, mentions, username, navToRoomInfo, useRealName }: IAtMention) => { +const AtMention = memo(({ mention }: IAtMention) => { const { theme } = useTheme(); - const { textStyle } = useContext(MarkdownContext); + const { textStyle, username, navToRoomInfo, useRealName, mentions } = useContext(MarkdownContext); const [mentionsWithAtSymbol] = useUserPreferences(USER_MENTIONS_PREFERENCES_KEY, false); const preffix = mentionsWithAtSymbol ? '@' : ''; if (mention === 'all' || mention === 'here') { diff --git a/app/containers/markdown/components/mentions/Hashtag.tsx b/app/containers/markdown/components/mentions/Hashtag.tsx index 3336998369c..44259738c9a 100644 --- a/app/containers/markdown/components/mentions/Hashtag.tsx +++ b/app/containers/markdown/components/mentions/Hashtag.tsx @@ -12,19 +12,16 @@ import { goRoom } from '../../../../lib/methods/helpers/goRoom'; import { getRoomInfo } from '../../../../lib/services/restApi'; import { useTheme } from '../../../../theme'; import { sendLoadingEvent } from '../../../Loading'; -import { type IUserChannel } from '../../interfaces'; import styles from '../../styles'; import MarkdownContext from '../../contexts/MarkdownContext'; interface IHashtag { hashtag: string; - navToRoomInfo?: Function; - channels?: IUserChannel[]; } -const Hashtag = memo(({ hashtag, channels, navToRoomInfo }: IHashtag) => { +const Hashtag = memo(({ hashtag }: IHashtag) => { const { theme } = useTheme(); - const { textStyle } = useContext(MarkdownContext); + const { textStyle, channels, navToRoomInfo } = useContext(MarkdownContext); const [roomsWithHashTagSymbol] = useUserPreferences(ROOM_MENTIONS_PREFERENCES_KEY, false); const isMasterDetail = useMasterDetail(); const preffix = roomsWithHashTagSymbol ? '#' : ''; diff --git a/app/containers/markdown/contexts/MarkdownContext.ts b/app/containers/markdown/contexts/MarkdownContext.ts index ee58ef1c1cd..cbcdcf7ca69 100644 --- a/app/containers/markdown/contexts/MarkdownContext.ts +++ b/app/containers/markdown/contexts/MarkdownContext.ts @@ -1,4 +1,4 @@ -import { createContext } from 'react'; +import { createContext, useContext } from 'react'; import { type StyleProp, type TextStyle } from 'react-native'; import { type IUserMention, type IUserChannel } from '../interfaces'; @@ -23,4 +23,23 @@ const defaultState = { }; const MarkdownContext = createContext(defaultState); + +export const useMarkdownContext = (overrides?: Partial): IMarkdownContext => { + const context = useContext(MarkdownContext); + if (!overrides) return context; + + // Merge the context and overrides + const newContext = { ...context, ...overrides }; + + // Deep merge textStyle if both exist + if (context.textStyle && overrides.textStyle) { + newContext.textStyle = [ + ...(Array.isArray(context.textStyle) ? context.textStyle : [context.textStyle]), + ...(Array.isArray(overrides.textStyle) ? overrides.textStyle : [overrides.textStyle]) + ]; + } + + return newContext; +}; + export default MarkdownContext; diff --git a/app/containers/markdown/index.tsx b/app/containers/markdown/index.tsx index 46d9118d7e3..4f6896e7e6d 100644 --- a/app/containers/markdown/index.tsx +++ b/app/containers/markdown/index.tsx @@ -67,8 +67,6 @@ const resolveTokens = (msg: string, md: Root | undefined, isTranslated?: boolean }; const MarkdownBlockView = ({ block }: { block: MarkdownBlock }) => { - 'use memo'; - switch (block.type) { case 'BIG_EMOJI': return ; @@ -111,8 +109,6 @@ const Markdown: FC = ({ isTranslated, textStyle }: IMarkdownProps) => { - 'use memo'; - let tokens: Root | null = null; if (msg) { diff --git a/app/containers/markdown/styles.ts b/app/containers/markdown/styles.ts index 761d27a505f..c3e85b92a8c 100644 --- a/app/containers/markdown/styles.ts +++ b/app/containers/markdown/styles.ts @@ -97,27 +97,33 @@ export default StyleSheet.create({ }, heading1: { ...sharedStyles.textBold, - fontSize: 24 + fontSize: 24, + lineHeight: 30 }, heading2: { ...sharedStyles.textBold, - fontSize: 22 + fontSize: 22, + lineHeight: 28 }, heading3: { ...sharedStyles.textSemibold, - fontSize: 20 + fontSize: 20, + lineHeight: 26 }, heading4: { ...sharedStyles.textSemibold, - fontSize: 18 + fontSize: 18, + lineHeight: 24 }, heading5: { ...sharedStyles.textMedium, - fontSize: 16 + fontSize: 16, + lineHeight: 22 }, heading6: { ...sharedStyles.textMedium, - fontSize: 14 + fontSize: 14, + lineHeight: 20 }, quote: { height: '100%', diff --git a/app/containers/message/__tests__/index.test.tsx b/app/containers/message/__tests__/index.test.tsx index e46bab4f5be..f7f868f459a 100644 --- a/app/containers/message/__tests__/index.test.tsx +++ b/app/containers/message/__tests__/index.test.tsx @@ -54,7 +54,7 @@ const createMockMessage = (overrides: Record = {}): TAnyMessageMode comment: undefined, experimentalSubscribe: jest.fn(() => jest.fn()), ...overrides - } as unknown as TAnyMessageModel); + }) as unknown as TAnyMessageModel; const baseProps = { rid: 'room-1' diff --git a/app/containers/message/components/Attachments/AttachedActions.tsx b/app/containers/message/components/Attachments/AttachedActions.tsx index 0e6a6a6340b..618ee900eee 100644 --- a/app/containers/message/components/Attachments/AttachedActions.tsx +++ b/app/containers/message/components/Attachments/AttachedActions.tsx @@ -12,8 +12,6 @@ export type TElement = { }; const AttachedActions = ({ attachment }: { attachment: IAttachment }) => { - 'use memo'; - const onAnswerButtonPress = useOnAnswerButtonPress(); if (!attachment.actions) { diff --git a/app/containers/message/components/Attachments/Attachments.tsx b/app/containers/message/components/Attachments/Attachments.tsx index 0eb95137c5d..82ee93aafa1 100644 --- a/app/containers/message/components/Attachments/Attachments.tsx +++ b/app/containers/message/components/Attachments/Attachments.tsx @@ -14,8 +14,6 @@ import { getMessageFromAttachment } from '../../utils'; import { getAttachmentKey, isContentAttachment } from './utils'; const Attachments: FC = ({ attachments }: IMessageAttachments) => { - 'use memo'; - const translateLanguage = useTranslateLanguage(); const showAttachment = useShowAttachment(); const author = useMessageField(item => item.u); diff --git a/app/containers/message/components/Attachments/Audio.tsx b/app/containers/message/components/Attachments/Audio.tsx index c0ed08d29aa..c93f8f0e599 100644 --- a/app/containers/message/components/Attachments/Audio.tsx +++ b/app/containers/message/components/Attachments/Audio.tsx @@ -14,8 +14,6 @@ interface IMessageAudioProps { } const MessageAudio = ({ file, author, msg }: IMessageAudioProps) => { - 'use memo'; - const user = useMessageUser(); const id = useMessageId(); const rid = useRid(); diff --git a/app/containers/message/components/Attachments/CollapsibleQuote.tsx b/app/containers/message/components/Attachments/CollapsibleQuote.tsx index 3bc665222c2..90efa6edabf 100644 --- a/app/containers/message/components/Attachments/CollapsibleQuote.tsx +++ b/app/containers/message/components/Attachments/CollapsibleQuote.tsx @@ -69,8 +69,6 @@ interface IMessageReply { } const AttText = ({ text }: IMessageAttText) => { - 'use memo'; - const user = useMessageUser(); if (!text) { @@ -81,8 +79,6 @@ const AttText = ({ text }: IMessageAttText) => { }; const Fields = ({ attachment }: IMessageFields) => { - 'use memo'; - const { colors } = useTheme(); const user = useMessageUser(); @@ -105,8 +101,6 @@ const Fields = ({ attachment }: IMessageFields) => { }; const CollapsibleQuote = ({ attachment }: IMessageReply) => { - 'use memo'; - const { colors } = useTheme(); const [collapsed, setCollapsed] = useState(attachment?.collapsed); diff --git a/app/containers/message/components/Attachments/Image/Button.tsx b/app/containers/message/components/Attachments/Image/Button.tsx index 9304df94156..156d73e32a4 100644 --- a/app/containers/message/components/Attachments/Image/Button.tsx +++ b/app/containers/message/components/Attachments/Image/Button.tsx @@ -19,8 +19,6 @@ export const Button = ({ accessibilityLabel, accessibilityRole = 'imagebutton' }: IMessageButton) => { - 'use memo'; - return ( { - 'use memo'; - const user = useMessageUser(); const { status, onPress, url, isEncrypted } = useMediaAutoDownload({ file, author, showAttachment }); const isAltTextSupported = useAltTextSupported(); diff --git a/app/containers/message/components/Attachments/Image/Image.tsx b/app/containers/message/components/Attachments/Image/Image.tsx index 906ebe13b4d..381ac09e07a 100644 --- a/app/containers/message/components/Attachments/Image/Image.tsx +++ b/app/containers/message/components/Attachments/Image/Image.tsx @@ -14,8 +14,6 @@ import ImageBadge from './ImageBadge'; import log from '../../../../../lib/methods/helpers/log'; export const MessageImage = ({ uri, status, encrypted = false, imagePreview, imageType }: IMessageImage) => { - 'use memo'; - const { colors } = useTheme(); const [imageDimensions, setImageDimensions] = useState({ width: 0, height: 0 }); const [autoplayGifs] = useUserPreferences(AUTOPLAY_GIFS_PREFERENCES_KEY, true); diff --git a/app/containers/message/components/Attachments/Image/ImageBadge.tsx b/app/containers/message/components/Attachments/Image/ImageBadge.tsx index 655274a181e..f7caae8ae05 100644 --- a/app/containers/message/components/Attachments/Image/ImageBadge.tsx +++ b/app/containers/message/components/Attachments/Image/ImageBadge.tsx @@ -18,8 +18,6 @@ interface IImageBadge { } const ImageBadge = ({ title }: IImageBadge) => { - 'use memo'; - const { colors } = useTheme(); return ( diff --git a/app/containers/message/components/Attachments/Quote.tsx b/app/containers/message/components/Attachments/Quote.tsx index 65e3d2df941..122aa7b6cf1 100644 --- a/app/containers/message/components/Attachments/Quote.tsx +++ b/app/containers/message/components/Attachments/Quote.tsx @@ -9,8 +9,6 @@ import { getAttachmentKey, isQuoteAttachment } from './utils'; import { useTranslateLanguage } from '../../stores/MessageStore'; const Quote: FC = ({ attachments }: IMessageAttachments) => { - 'use memo'; - const translateLanguage = useTranslateLanguage(); const quotes = attachments?.filter(isQuoteAttachment); diff --git a/app/containers/message/components/Attachments/Reply.tsx b/app/containers/message/components/Attachments/Reply.tsx index e35ff7ca980..54f0ab57c81 100644 --- a/app/containers/message/components/Attachments/Reply.tsx +++ b/app/containers/message/components/Attachments/Reply.tsx @@ -87,8 +87,6 @@ interface IMessageReply { } const Title = ({ attachment }: { attachment: IAttachment }) => { - 'use memo'; - const { colors } = useTheme(); const timeFormat = useTimeFormat(); const time = attachment.message_link && attachment.ts ? dayjs(attachment.ts).format(timeFormat) : null; @@ -106,8 +104,6 @@ const Title = ({ attachment }: { attachment: IAttachment }) => { }; const Description = ({ attachment }: { attachment: IAttachment }) => { - 'use memo'; - const user = useMessageUser(); const text = attachment.text || attachment.title; @@ -129,8 +125,6 @@ const Description = ({ attachment }: { attachment: IAttachment }) => { }; const UrlImage = ({ image }: { image?: string }) => { - 'use memo'; - const baseUrl = useBaseUrl(); const user = useMessageUser(); @@ -143,8 +137,6 @@ const UrlImage = ({ image }: { image?: string }) => { }; const Fields = ({ attachment }: { attachment: IAttachment }) => { - 'use memo'; - const { colors } = useTheme(); const user = useMessageUser(); @@ -165,8 +157,6 @@ const Fields = ({ attachment }: { attachment: IAttachment }) => { }; const Reply = ({ attachment, msg }: IMessageReply) => { - 'use memo'; - const [loading, setLoading] = useState(false); const { colors, theme } = useTheme(); const baseUrl = useBaseUrl(); diff --git a/app/containers/message/components/Attachments/Video.tsx b/app/containers/message/components/Attachments/Video.tsx index 4894b758997..ed4c37fdd4f 100644 --- a/app/containers/message/components/Attachments/Video.tsx +++ b/app/containers/message/components/Attachments/Video.tsx @@ -69,8 +69,6 @@ const Thumbnail = ({ status, encrypted = false }: { status: TDownloadState; encr }; const Video = ({ file, showAttachment, author, msg }: IMessageVideo): ReactElement | null => { - 'use memo'; - const user = useMessageUser(); const { status, onPress, url, isEncrypted, currentFile } = useMediaAutoDownload({ file, author, showAttachment }); diff --git a/app/containers/message/components/Blocks.ts b/app/containers/message/components/Blocks.ts index f8897a04a56..2cd4cde05e2 100644 --- a/app/containers/message/components/Blocks.ts +++ b/app/containers/message/components/Blocks.ts @@ -5,8 +5,6 @@ import { useBlockAction, useRid } from '../stores/MessageRoomStore'; import { useBlocks } from '../stores/MessageStore'; const Blocks = () => { - 'use memo'; - const rid = useRid(); const blockAction = useBlockAction(); const { blocks, id: mid } = useBlocks(); diff --git a/app/containers/message/components/Broadcast.tsx b/app/containers/message/components/Broadcast.tsx index 0fc5d9d2e83..a83a35f762f 100644 --- a/app/containers/message/components/Broadcast.tsx +++ b/app/containers/message/components/Broadcast.tsx @@ -10,8 +10,6 @@ import { useIsOwnMessage, useMessageItem } from '../stores/MessageStore'; import { useBroadcast, useReplyBroadcast } from '../stores/MessageRoomStore'; const Broadcast = () => { - 'use memo'; - const item = useMessageItem(); const replyBroadcast = useReplyBroadcast(); const broadcast = useBroadcast(); diff --git a/app/containers/message/components/CallButton.tsx b/app/containers/message/components/CallButton.tsx index 6202c8422ae..0fd1bc93ed1 100644 --- a/app/containers/message/components/CallButton.tsx +++ b/app/containers/message/components/CallButton.tsx @@ -9,8 +9,6 @@ import { useTheme } from '../../../theme'; import { useHandleEnterCall } from '../stores/MessageRoomStore'; const CallButton = () => { - 'use memo'; - const handleEnterCall = useHandleEnterCall(); const { colors } = useTheme(); return ( diff --git a/app/containers/message/components/Content/ContentWrapper.tsx b/app/containers/message/components/Content/ContentWrapper.tsx index 6c749e917ed..562ae3f3ec5 100644 --- a/app/containers/message/components/Content/ContentWrapper.tsx +++ b/app/containers/message/components/Content/ContentWrapper.tsx @@ -5,8 +5,6 @@ import styles from '../../styles'; import { useMessageStatus, useMessageText } from '../../stores/MessageStore'; const ContentWrapper = ({ children }: { children: ReactNode }) => { - 'use memo'; - const { isTemp } = useMessageStatus(); const { messageText } = useMessageText(); diff --git a/app/containers/message/components/Content/EncryptedContent.tsx b/app/containers/message/components/Content/EncryptedContent.tsx index 9233e621daf..0d2b523459f 100644 --- a/app/containers/message/components/Content/EncryptedContent.tsx +++ b/app/containers/message/components/Content/EncryptedContent.tsx @@ -6,8 +6,6 @@ import { useTheme } from '../../../../theme'; import ContentWrapper from './ContentWrapper'; const EncryptedContent = () => { - 'use memo'; - const { colors } = useTheme(); return ( diff --git a/app/containers/message/components/Content/IgnoredContent.tsx b/app/containers/message/components/Content/IgnoredContent.tsx index 2dbd7c3bbb9..1b9ce1e0207 100644 --- a/app/containers/message/components/Content/IgnoredContent.tsx +++ b/app/containers/message/components/Content/IgnoredContent.tsx @@ -7,8 +7,6 @@ import { useMessageText } from '../../stores/MessageStore'; import ContentWrapper from './ContentWrapper'; const IgnoredContent = () => { - 'use memo'; - const { colors } = useTheme(); const { messageText } = useMessageText(); diff --git a/app/containers/message/components/Content/InfoContent.tsx b/app/containers/message/components/Content/InfoContent.tsx index 777bbcc64d6..0cbf3535a2c 100644 --- a/app/containers/message/components/Content/InfoContent.tsx +++ b/app/containers/message/components/Content/InfoContent.tsx @@ -8,8 +8,6 @@ import { useInfoData, useMessageAuthor, useMessageText } from '../../stores/Mess import User from '../User'; const InfoContent = () => { - 'use memo'; - const { colors } = useTheme(); const { t: type, comment } = useInfoData(); const { u: author, role } = useMessageAuthor(); diff --git a/app/containers/message/components/Content/MarkdownContent.tsx b/app/containers/message/components/Content/MarkdownContent.tsx index 4afc0a2b7c8..1114408d104 100644 --- a/app/containers/message/components/Content/MarkdownContent.tsx +++ b/app/containers/message/components/Content/MarkdownContent.tsx @@ -5,8 +5,6 @@ import { useMessageUser, useNavToRoomInfo } from '../../stores/MessageRoomStore' import ContentWrapper from './ContentWrapper'; const MarkdownContent = () => { - 'use memo'; - const useRealName = useSetting('UI_Use_Real_Name') as boolean; const user = useMessageUser(); const onLinkPress = useOnLinkPress(); diff --git a/app/containers/message/components/Content/PreviewContent.tsx b/app/containers/message/components/Content/PreviewContent.tsx index 11fc99fea25..a298820f538 100644 --- a/app/containers/message/components/Content/PreviewContent.tsx +++ b/app/containers/message/components/Content/PreviewContent.tsx @@ -5,8 +5,6 @@ import { useAutoTranslate } from '../../stores/MessageRoomStore'; import ContentWrapper from './ContentWrapper'; const PreviewContent = () => { - 'use memo'; - const { messageText } = useMessageText(); const attachments = useAttachments(); const { autoTranslateLanguage } = useAutoTranslate(); diff --git a/app/containers/message/components/Content/index.tsx b/app/containers/message/components/Content/index.tsx index b38ed94725e..d740be34d2f 100644 --- a/app/containers/message/components/Content/index.tsx +++ b/app/containers/message/components/Content/index.tsx @@ -9,8 +9,6 @@ import { useIsThreadRoom } from '../../stores/MessageRoomStore'; // isInfo forces InfoContent regardless of useIsInfoMessage — jitsi_call_started is deliberately // excluded there (it isn't a compact/non-touchable info row) but still needs the info-style body. const Content = ({ isInfo: isInfoProp }: { isInfo?: boolean } = {}) => { - 'use memo'; - const isInfoMessage = useIsInfoMessage(); const isInfo = isInfoProp ?? isInfoMessage; const isIgnored = useMessageIgnored(); diff --git a/app/containers/message/components/Discussion.tsx b/app/containers/message/components/Discussion.tsx index 13e80c630eb..53d23ef6c58 100644 --- a/app/containers/message/components/Discussion.tsx +++ b/app/containers/message/components/Discussion.tsx @@ -12,8 +12,6 @@ import { useDiscussion, useMessageField, useMessageText } from '../stores/Messag import { useOnDiscussionPress } from '../stores/MessageRoomStore'; const Discussion = () => { - 'use memo'; - const { colors } = useTheme(); const drid = useMessageField(item => item.drid); const { dcount, dlm } = useDiscussion(); diff --git a/app/containers/message/components/Emoji.tsx b/app/containers/message/components/Emoji.tsx index d3e4ed5cb79..53df5d2b762 100644 --- a/app/containers/message/components/Emoji.tsx +++ b/app/containers/message/components/Emoji.tsx @@ -6,8 +6,6 @@ import CustomEmoji from '../../EmojiPicker/CustomEmoji'; import { type IMessageEmoji } from '../interfaces'; const Emoji = ({ content, standardEmojiStyle, customEmojiStyle }: IMessageEmoji) => { - 'use memo'; - const getCustomEmoji = useCustomEmoji(); const parsedContent = content.replace(/^:|:$/g, ''); const emoji = getCustomEmoji(parsedContent); diff --git a/app/containers/message/components/Layout/BlocksLayout.tsx b/app/containers/message/components/Layout/BlocksLayout.tsx index 31d3c0eadfb..a12d0d1218d 100644 --- a/app/containers/message/components/Layout/BlocksLayout.tsx +++ b/app/containers/message/components/Layout/BlocksLayout.tsx @@ -5,8 +5,6 @@ import Reactions from '../Reactions'; import MessageTime from '../Time'; const BlocksLayout = ({ showTimeLarge }: { showTimeLarge: boolean }) => { - 'use memo'; - return ( <> diff --git a/app/containers/message/components/Layout/ContentLayout.tsx b/app/containers/message/components/Layout/ContentLayout.tsx index 0cabe7aad85..1f74c24a8f4 100644 --- a/app/containers/message/components/Layout/ContentLayout.tsx +++ b/app/containers/message/components/Layout/ContentLayout.tsx @@ -5,8 +5,6 @@ import Urls from '../Urls'; import { useAttachments } from '../../stores/MessageStore'; export const ContentLayout = () => { - 'use memo'; - const attachments = useAttachments(); return ( diff --git a/app/containers/message/components/Layout/DiscussionLayout.tsx b/app/containers/message/components/Layout/DiscussionLayout.tsx index 11ea3071be9..18635bb078d 100644 --- a/app/containers/message/components/Layout/DiscussionLayout.tsx +++ b/app/containers/message/components/Layout/DiscussionLayout.tsx @@ -3,8 +3,6 @@ import Discussion from '../Discussion'; import MessageTime from '../Time'; const DiscussionLayout = ({ showTimeLarge }: { showTimeLarge: boolean }) => { - 'use memo'; - return ( <> diff --git a/app/containers/message/components/Layout/JitsiLayout.tsx b/app/containers/message/components/Layout/JitsiLayout.tsx index 314edcc7e46..95091592990 100644 --- a/app/containers/message/components/Layout/JitsiLayout.tsx +++ b/app/containers/message/components/Layout/JitsiLayout.tsx @@ -4,8 +4,6 @@ import CallButton from '../CallButton'; import MessageTime from '../Time'; const JitsiLayout = ({ showTimeLarge }: { showTimeLarge: boolean }) => { - 'use memo'; - return ( <> diff --git a/app/containers/message/components/Layout/PreviewLayout.tsx b/app/containers/message/components/Layout/PreviewLayout.tsx index ad9703af3f6..409cdd53c6a 100644 --- a/app/containers/message/components/Layout/PreviewLayout.tsx +++ b/app/containers/message/components/Layout/PreviewLayout.tsx @@ -3,8 +3,6 @@ import MessageTime from '../Time'; import { ContentLayout } from './ContentLayout'; const PreviewLayout = ({ showTimeLarge }: { showTimeLarge: boolean }) => { - 'use memo'; - return ( <> diff --git a/app/containers/message/components/Layout/StandardLayout.tsx b/app/containers/message/components/Layout/StandardLayout.tsx index 083e388fd7b..2c34fc3c504 100644 --- a/app/containers/message/components/Layout/StandardLayout.tsx +++ b/app/containers/message/components/Layout/StandardLayout.tsx @@ -8,8 +8,6 @@ import MessageTime from '../Time'; import { ContentLayout } from './ContentLayout'; const StandardLayout = ({ showTimeLarge }: { showTimeLarge: boolean }) => { - 'use memo'; - return ( <> diff --git a/app/containers/message/components/Layout/index.tsx b/app/containers/message/components/Layout/index.tsx index aff8b95f069..aa74db56ac7 100644 --- a/app/containers/message/components/Layout/index.tsx +++ b/app/containers/message/components/Layout/index.tsx @@ -8,8 +8,6 @@ import StandardLayout from './StandardLayout'; import { useBlocks, useMessageField } from '../../stores/MessageStore'; export const Layout = ({ isPreview, isHeader }: { isPreview?: boolean; isHeader: boolean }) => { - 'use memo'; - const { isLargeFontScale } = useResponsiveLayout(); const type = useMessageField(item => item.t); const { blocks } = useBlocks(); diff --git a/app/containers/message/components/Message/CompactMessage.tsx b/app/containers/message/components/Message/CompactMessage.tsx index 89b18a83605..e1c144ee848 100644 --- a/app/containers/message/components/Message/CompactMessage.tsx +++ b/app/containers/message/components/Message/CompactMessage.tsx @@ -9,8 +9,6 @@ import Attachments from '../Attachments'; import { useContentData, useIsInfoMessage, useMessageGrouping, useThreadPosition } from '../../stores/MessageStore'; const CompactMessage = () => { - 'use memo'; - const isHeader = useMessageGrouping(); const { isThreadReply } = useThreadPosition(); const isInfo = useIsInfoMessage(); diff --git a/app/containers/message/components/Message/FullMessage.tsx b/app/containers/message/components/Message/FullMessage.tsx index 61fb17837b3..58b34dac983 100644 --- a/app/containers/message/components/Message/FullMessage.tsx +++ b/app/containers/message/components/Message/FullMessage.tsx @@ -8,8 +8,6 @@ import { Layout } from '../Layout'; import { useMessageField, useMessageGrouping } from '../../stores/MessageStore'; const FullMessage = ({ isPreview }: { isPreview?: boolean }) => { - 'use memo'; - const isHeader = useMessageGrouping(); const id = useMessageField(item => item.id); diff --git a/app/containers/message/components/Message/Message.tsx b/app/containers/message/components/Message/Message.tsx index 860d5b2d4c3..8b805f87825 100644 --- a/app/containers/message/components/Message/Message.tsx +++ b/app/containers/message/components/Message/Message.tsx @@ -8,8 +8,6 @@ export type TMessageProps = { }; const Message = (props: TMessageProps) => { - 'use memo'; - const { isThreadReply, isThreadSequential } = useThreadPosition(); const isInfo = useIsInfoMessage(); const isIgnored = useMessageIgnored(); diff --git a/app/containers/message/components/MessageAccessibleIndex.tsx b/app/containers/message/components/MessageAccessibleIndex.tsx index cc1fd812da0..497378683e8 100644 --- a/app/containers/message/components/MessageAccessibleIndex.tsx +++ b/app/containers/message/components/MessageAccessibleIndex.tsx @@ -6,8 +6,6 @@ import { useMessageText } from '../stores/MessageStore'; import { useAutoTranslate } from '../stores/MessageRoomStore'; const MessageAccessibleIndex = ({ style, children }: { style?: StyleProp; children: ReactNode }) => { - 'use memo'; - const { messageText, isTranslated } = useMessageText(); const { autoTranslateLanguage } = useAutoTranslate(); diff --git a/app/containers/message/components/MessageAvatar.tsx b/app/containers/message/components/MessageAvatar.tsx index 0057a0dc512..473d326f41a 100644 --- a/app/containers/message/components/MessageAvatar.tsx +++ b/app/containers/message/components/MessageAvatar.tsx @@ -18,8 +18,6 @@ export const AvatarContainer = ({ children }: { children?: ReactElement | null } }; const MessageAvatar = ({ small }: IMessageAvatar) => { - 'use memo'; - const user = useMessageUser(); const navToRoomInfo = useNavToRoomInfo(); const { fontScaleLimited } = useResponsiveLayout(); diff --git a/app/containers/message/components/OverlayComponent.tsx b/app/containers/message/components/OverlayComponent.tsx index 938bd0ecfca..464637c8b6f 100644 --- a/app/containers/message/components/OverlayComponent.tsx +++ b/app/containers/message/components/OverlayComponent.tsx @@ -16,8 +16,6 @@ const OverlayComponent = ({ iconName: TIconsName; showBackground?: boolean; }) => { - 'use memo'; - const { colors } = useTheme(); return ( diff --git a/app/containers/message/components/Preview.tsx b/app/containers/message/components/Preview.tsx index 7e3c22910be..d1707b488a6 100644 --- a/app/containers/message/components/Preview.tsx +++ b/app/containers/message/components/Preview.tsx @@ -7,8 +7,6 @@ import { getUserSelector } from '../../../selectors/login'; import { type TAnyMessageModel } from '../../../definitions'; const MessagePreview = ({ message }: { message: TAnyMessageModel }) => { - 'use memo'; - const { user, baseUrl } = useAppSelector( state => ({ user: getUserSelector(state), diff --git a/app/containers/message/components/Reactions.tsx b/app/containers/message/components/Reactions.tsx index 9129bc17e17..2e456f261fd 100644 --- a/app/containers/message/components/Reactions.tsx +++ b/app/containers/message/components/Reactions.tsx @@ -21,8 +21,6 @@ interface IMessageReaction { } const AddReaction = () => { - 'use memo'; - const { colors } = useTheme(); const reactionInit = useReactionInit(); const id = useMessageId(); @@ -46,8 +44,6 @@ const AddReaction = () => { }; const Reaction = ({ reaction }: IMessageReaction) => { - 'use memo'; - const { colors } = useTheme(); const item = useMessageItem(); const id = useMessageId(); @@ -79,8 +75,6 @@ const Reaction = ({ reaction }: IMessageReaction) => { }; const Reactions = () => { - 'use memo'; - const reactions = useReactions(); if (!Array.isArray(reactions) || reactions.length === 0) { diff --git a/app/containers/message/components/RepliedThread.tsx b/app/containers/message/components/RepliedThread.tsx index 900a502be18..546b87b97ae 100644 --- a/app/containers/message/components/RepliedThread.tsx +++ b/app/containers/message/components/RepliedThread.tsx @@ -12,8 +12,6 @@ import { useFetchThreadName } from '../stores/MessageRoomStore'; import { useIsEncrypted, useRepliedThreadData } from '../stores/MessageStore'; const RepliedThread = ({ isHeader }: IMessageRepliedThread) => { - 'use memo'; - const { colors } = useTheme(); const fetchThreadName = useFetchThreadName(); const { tmid, tmsg, id } = useRepliedThreadData(); diff --git a/app/containers/message/components/RightIcons/Edited.tsx b/app/containers/message/components/RightIcons/Edited.tsx index 0b865ed17d1..d0a1078b98e 100644 --- a/app/containers/message/components/RightIcons/Edited.tsx +++ b/app/containers/message/components/RightIcons/Edited.tsx @@ -5,8 +5,6 @@ import styles from '../../styles'; import { useIsEdited, useMessageText } from '../../stores/MessageStore'; const Edited = () => { - 'use memo'; - const isEdited = useIsEdited(); const { messageText } = useMessageText(); diff --git a/app/containers/message/components/RightIcons/Encrypted.tsx b/app/containers/message/components/RightIcons/Encrypted.tsx index 65f2ee8412f..1bbcff13eb2 100644 --- a/app/containers/message/components/RightIcons/Encrypted.tsx +++ b/app/containers/message/components/RightIcons/Encrypted.tsx @@ -7,8 +7,6 @@ import { useMessageField } from '../../stores/MessageStore'; import { useOnEncryptedPress } from '../../stores/MessageRoomStore'; const Encrypted = () => { - 'use memo'; - const onEncryptedPress = useOnEncryptedPress(); const type = useMessageField(item => item.t); diff --git a/app/containers/message/components/RightIcons/MessageError.tsx b/app/containers/message/components/RightIcons/MessageError.tsx index ecb71ae6db6..293bcee0437 100644 --- a/app/containers/message/components/RightIcons/MessageError.tsx +++ b/app/containers/message/components/RightIcons/MessageError.tsx @@ -7,8 +7,6 @@ import { useMessageItem, useMessageStatus } from '../../stores/MessageStore'; import { useErrorActionsShow } from '../../stores/MessageRoomStore'; const MessageError = () => { - 'use memo'; - const { colors } = useTheme(); const item = useMessageItem(); const errorActionsShow = useErrorActionsShow(); diff --git a/app/containers/message/components/RightIcons/Pinned.tsx b/app/containers/message/components/RightIcons/Pinned.tsx index 665cf53bfc4..f5f92ac8ea3 100644 --- a/app/containers/message/components/RightIcons/Pinned.tsx +++ b/app/containers/message/components/RightIcons/Pinned.tsx @@ -5,8 +5,6 @@ import styles from '../../styles'; import { useMessageField, useMessageText } from '../../stores/MessageStore'; const Pinned = (): ReactElement | null => { - 'use memo'; - const pinned = useMessageField(item => item.pinned); const { messageText } = useMessageText(); diff --git a/app/containers/message/components/RightIcons/ReadReceipt.tsx b/app/containers/message/components/RightIcons/ReadReceipt.tsx index f96e30c4b1d..8124c5c9f0a 100644 --- a/app/containers/message/components/RightIcons/ReadReceipt.tsx +++ b/app/containers/message/components/RightIcons/ReadReceipt.tsx @@ -5,8 +5,6 @@ import { useMessageField } from '../../stores/MessageStore'; import { useIsReadReceiptEnabled } from '../../stores/MessageRoomStore'; const ReadReceipt = () => { - 'use memo'; - const { colors } = useTheme(); const unread = useMessageField(item => item.unread); const isReadReceiptEnabled = useIsReadReceiptEnabled(); diff --git a/app/containers/message/components/RightIcons/Translated.tsx b/app/containers/message/components/RightIcons/Translated.tsx index a8e3f7a9452..5054ce91c9a 100644 --- a/app/containers/message/components/RightIcons/Translated.tsx +++ b/app/containers/message/components/RightIcons/Translated.tsx @@ -5,8 +5,6 @@ import styles from '../../styles'; import { useMessageText } from '../../stores/MessageStore'; const Translated = () => { - 'use memo'; - const { isTranslated } = useMessageText(); if (!isTranslated) { diff --git a/app/containers/message/components/RightIcons/index.tsx b/app/containers/message/components/RightIcons/index.tsx index a4e6d206357..4cda140d1dd 100644 --- a/app/containers/message/components/RightIcons/index.tsx +++ b/app/containers/message/components/RightIcons/index.tsx @@ -15,8 +15,6 @@ const styles = StyleSheet.create({ }); const RightIcons = (): ReactElement => { - 'use memo'; - return ( diff --git a/app/containers/message/components/Thread.tsx b/app/containers/message/components/Thread.tsx index fdfbd0d8360..5634ec68f13 100644 --- a/app/containers/message/components/Thread.tsx +++ b/app/containers/message/components/Thread.tsx @@ -9,8 +9,6 @@ import { useMessageItem, useMessageText, useReplies, useThreadBadgeColor, useThr import { useIsThreadRoom, useMessageUser, useOnThreadPress, useToggleFollowThread } from '../stores/MessageRoomStore'; const Thread = () => { - 'use memo'; - const { theme, colors } = useTheme(); const item = useMessageItem(); const isThreadRoom = useIsThreadRoom(); diff --git a/app/containers/message/components/Time.tsx b/app/containers/message/components/Time.tsx index b787f1d1ede..5d07355201a 100644 --- a/app/containers/message/components/Time.tsx +++ b/app/containers/message/components/Time.tsx @@ -7,8 +7,6 @@ import { useMessageField } from '../stores/MessageStore'; import { useTimeFormat } from '../stores/MessageRoomStore'; const MessageTime = () => { - 'use memo'; - const { colors } = useTheme(); const ts = useMessageField(item => item.ts); const timeFormat = useTimeFormat(); diff --git a/app/containers/message/components/Touchable/MessageActionTouchable.tsx b/app/containers/message/components/Touchable/MessageActionTouchable.tsx index 3a03fdbf802..26df0910bc5 100644 --- a/app/containers/message/components/Touchable/MessageActionTouchable.tsx +++ b/app/containers/message/components/Touchable/MessageActionTouchable.tsx @@ -9,8 +9,6 @@ interface IProps extends PressableProps { } const MessageActionTouchable: FC = ({ children, ...props }) => { - 'use memo'; - const onLongPress = useMessageLongPress(); return ( diff --git a/app/containers/message/components/Touchable/MessageTouchable.tsx b/app/containers/message/components/Touchable/MessageTouchable.tsx index e4e39c43855..6af0cd90ee1 100644 --- a/app/containers/message/components/Touchable/MessageTouchable.tsx +++ b/app/containers/message/components/Touchable/MessageTouchable.tsx @@ -18,8 +18,6 @@ import { } from '../../stores/MessageStore'; const MessageTouchable = (props: TMessageProps) => { - 'use memo'; - const { colors } = useTheme(); const { ref: touchRef, markAsLastFocused } = useLastFocusedMessageRef(); const isInfo = useIsInfoMessage(); diff --git a/app/containers/message/components/Touchable/Touch.tsx b/app/containers/message/components/Touchable/Touch.tsx index e405384a8f0..acdcb21917c 100644 --- a/app/containers/message/components/Touchable/Touch.tsx +++ b/app/containers/message/components/Touchable/Touch.tsx @@ -51,8 +51,6 @@ const Touch = forwardRef( }, ref ) => { - 'use memo'; - const { colors } = useTheme(); // The background color must be applied to the RectButton, not the View. // If set on the View, the touch opacity animation won't work properly. diff --git a/app/containers/message/components/Urls.tsx b/app/containers/message/components/Urls.tsx index ec42868cfa7..92c97886711 100644 --- a/app/containers/message/components/Urls.tsx +++ b/app/containers/message/components/Urls.tsx @@ -45,8 +45,6 @@ const styles = StyleSheet.create({ }); const UrlContent = ({ title, description }: { title: string; description: string }) => { - 'use memo'; - const { colors } = useTheme(); return ( @@ -118,8 +116,6 @@ const UrlImage = ({ image, hasContent }: { image: string; hasContent: boolean }) }; const Url = ({ url }: { url: IUrl }) => { - 'use memo'; - const { colors, theme } = useTheme(); const baseUrl = useBaseUrl(); const user = useMessageUser(); @@ -183,8 +179,6 @@ const Url = ({ url }: { url: IUrl }) => { ); }; const Urls = (): ReactElement[] | null => { - 'use memo'; - const urls = useUrls(); if (!urls || urls.length === 0) { diff --git a/app/containers/message/components/User.tsx b/app/containers/message/components/User.tsx index ad6b214b02a..693e7eab143 100644 --- a/app/containers/message/components/User.tsx +++ b/app/containers/message/components/User.tsx @@ -41,8 +41,6 @@ const styles = StyleSheet.create({ }); const User = () => { - 'use memo'; - const useRealName = useSetting('UI_Use_Real_Name') as boolean; const navToRoomInfo = useNavToRoomInfo(); const { colors } = useTheme(); diff --git a/app/containers/message/components/WidthAwareView.tsx b/app/containers/message/components/WidthAwareView.tsx index 4cb4428ea7e..814344b8771 100644 --- a/app/containers/message/components/WidthAwareView.tsx +++ b/app/containers/message/components/WidthAwareView.tsx @@ -10,8 +10,6 @@ const styles = StyleSheet.create({ }); export const WidthAwareView = ({ children }: { children: ReactElement }) => { - 'use memo'; - const [width, setWidth] = useState(0); return ( diff --git a/app/containers/message/components/__tests__/Blocks.test.tsx b/app/containers/message/components/__tests__/Blocks.test.tsx index 4c1b7595635..d4d82da3338 100644 --- a/app/containers/message/components/__tests__/Blocks.test.tsx +++ b/app/containers/message/components/__tests__/Blocks.test.tsx @@ -14,7 +14,7 @@ jest.mock('../../../UIKit/MessageBlock', () => ({ // eslint-disable-next-line @typescript-eslint/no-var-requires const { messageBlockWithContext } = jest.requireMock('../../../UIKit/MessageBlock'); -const buildItem = (blocks: TAnyMessageModel['blocks']) => ({ id: 'msg-1', blocks } as unknown as TAnyMessageModel); +const buildItem = (blocks: TAnyMessageModel['blocks']) => ({ id: 'msg-1', blocks }) as unknown as TAnyMessageModel; const renderBlocks = (blocks: TAnyMessageModel['blocks'], config: Partial = {}) => render( diff --git a/app/containers/message/components/__tests__/Content.test.tsx b/app/containers/message/components/__tests__/Content.test.tsx index 6289edc307c..44f7f01f8b7 100644 --- a/app/containers/message/components/__tests__/Content.test.tsx +++ b/app/containers/message/components/__tests__/Content.test.tsx @@ -48,7 +48,7 @@ const buildItem = ( t: isEncrypted ? E2E_MESSAGE_TYPE : undefined, e2e: isEncrypted ? E2E_STATUS.PENDING : undefined, tmid - } as unknown as TAnyMessageModel); + }) as unknown as TAnyMessageModel; const tree = (overrides: TOverrides) => { const { msg, attachments, isEncrypted, autoTranslateLanguage, tmid, isIgnored } = overrides; diff --git a/app/containers/message/components/__tests__/Quote.test.tsx b/app/containers/message/components/__tests__/Quote.test.tsx index d565fcfc5d6..35b61f9c351 100644 --- a/app/containers/message/components/__tests__/Quote.test.tsx +++ b/app/containers/message/components/__tests__/Quote.test.tsx @@ -41,7 +41,7 @@ jest.mock('expo-image', () => { const mockFileDownloadAndPreview = fileDownloadAndPreview as jest.Mock; -const buildItem = () => ({ id: 'msg-1' } as unknown as TAnyMessageModel); +const buildItem = () => ({ id: 'msg-1' }) as unknown as TAnyMessageModel; const renderQuote = (attachments: IAttachment[], ctx: Partial = {}) => { const contextValue: Partial = { diff --git a/app/containers/message/components/__tests__/RepliedThread.test.tsx b/app/containers/message/components/__tests__/RepliedThread.test.tsx index ec30e1cbb1d..eb98f724ab4 100644 --- a/app/containers/message/components/__tests__/RepliedThread.test.tsx +++ b/app/containers/message/components/__tests__/RepliedThread.test.tsx @@ -9,7 +9,7 @@ import { mockedStore } from '../../../../reducers/mockedStore'; import { E2E_MESSAGE_TYPE, E2E_STATUS } from '../../../../lib/constants/keys'; const buildItem = (overrides: Partial = {}): TAnyMessageModel => - ({ id: 'msg1', tmid: 'thread1', tmsg: 'original reply', ...overrides } as unknown as TAnyMessageModel); + ({ id: 'msg1', tmid: 'thread1', tmsg: 'original reply', ...overrides }) as unknown as TAnyMessageModel; const renderRepliedThread = (item: TAnyMessageModel, roomState: Partial = {}) => render( diff --git a/app/containers/message/components/__tests__/Reply.test.tsx b/app/containers/message/components/__tests__/Reply.test.tsx index 28ab3b8ff79..898539b1c17 100644 --- a/app/containers/message/components/__tests__/Reply.test.tsx +++ b/app/containers/message/components/__tests__/Reply.test.tsx @@ -50,7 +50,7 @@ const buildItem = (isEncrypted?: boolean) => id: 'msg-1', t: isEncrypted ? E2E_MESSAGE_TYPE : undefined, e2e: isEncrypted ? E2E_STATUS.PENDING : undefined - } as unknown as TAnyMessageModel); + }) as unknown as TAnyMessageModel; const renderReply = ({ attachment, diff --git a/app/containers/message/components/__tests__/Thread.test.tsx b/app/containers/message/components/__tests__/Thread.test.tsx index 806b86f3e02..21160e3b49a 100644 --- a/app/containers/message/components/__tests__/Thread.test.tsx +++ b/app/containers/message/components/__tests__/Thread.test.tsx @@ -14,7 +14,7 @@ const baseContextValue: Partial = { }; const buildItem = (overrides: Partial = {}): TAnyMessageModel => - ({ id: 'msg1', msg: 'hello', tcount: 3, tlm: undefined, tmid: undefined, ...overrides } as unknown as TAnyMessageModel); + ({ id: 'msg1', msg: 'hello', tcount: 3, tlm: undefined, tmid: undefined, ...overrides }) as unknown as TAnyMessageModel; const renderThread = (item: TAnyMessageModel) => render( diff --git a/app/containers/message/components/__tests__/__snapshots__/Message.test.tsx.snap b/app/containers/message/components/__tests__/__snapshots__/Message.test.tsx.snap index 4b0bda15861..efabe76847a 100644 --- a/app/containers/message/components/__tests__/__snapshots__/Message.test.tsx.snap +++ b/app/containers/message/components/__tests__/__snapshots__/Message.test.tsx.snap @@ -341,6 +341,9 @@ exports[`Story Snapshots: Archived should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -360,6 +363,9 @@ exports[`Story Snapshots: Archived should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -406,6 +412,9 @@ exports[`Story Snapshots: Archived should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -422,6 +431,9 @@ exports[`Story Snapshots: Archived should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -804,6 +816,9 @@ exports[`Story Snapshots: ArchivedLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -832,6 +847,9 @@ exports[`Story Snapshots: ArchivedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -869,6 +887,9 @@ exports[`Story Snapshots: ArchivedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -885,6 +906,9 @@ exports[`Story Snapshots: ArchivedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -1275,6 +1299,9 @@ exports[`Story Snapshots: AttachmentWithTextAndLink should match snapshot 1`] = "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -1294,6 +1321,9 @@ exports[`Story Snapshots: AttachmentWithTextAndLink should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -1421,6 +1451,9 @@ exports[`Story Snapshots: AttachmentWithTextAndLink should match snapshot 1`] = "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1447,6 +1480,9 @@ exports[`Story Snapshots: AttachmentWithTextAndLink should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1463,6 +1499,9 @@ exports[`Story Snapshots: AttachmentWithTextAndLink should match snapshot 1`] = "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -1477,6 +1516,9 @@ exports[`Story Snapshots: AttachmentWithTextAndLink should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2046,6 +2088,9 @@ exports[`Story Snapshots: AttachmentWithTextAndLinkLargeFont should match snapsh "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -2074,6 +2119,9 @@ exports[`Story Snapshots: AttachmentWithTextAndLinkLargeFont should match snapsh "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -2192,6 +2240,9 @@ exports[`Story Snapshots: AttachmentWithTextAndLinkLargeFont should match snapsh "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2218,6 +2269,9 @@ exports[`Story Snapshots: AttachmentWithTextAndLinkLargeFont should match snapsh "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2234,6 +2288,9 @@ exports[`Story Snapshots: AttachmentWithTextAndLinkLargeFont should match snapsh "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -2248,6 +2305,9 @@ exports[`Story Snapshots: AttachmentWithTextAndLinkLargeFont should match snapsh "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2817,6 +2877,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -2836,6 +2899,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -2882,6 +2948,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2898,6 +2967,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -3275,6 +3347,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -3294,6 +3369,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -3340,6 +3418,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3356,6 +3437,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -3625,6 +3709,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3725,6 +3812,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -3744,6 +3834,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -3790,6 +3883,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3806,6 +3902,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -4191,6 +4290,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -4210,6 +4312,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -4256,6 +4361,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -4272,6 +4380,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -4657,6 +4768,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -4676,6 +4790,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -4722,6 +4839,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -4738,6 +4858,9 @@ exports[`Story Snapshots: Avatar should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5128,6 +5251,9 @@ exports[`Story Snapshots: Basic should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -5147,6 +5273,9 @@ exports[`Story Snapshots: Basic should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -5193,6 +5322,9 @@ exports[`Story Snapshots: Basic should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5209,6 +5341,9 @@ exports[`Story Snapshots: Basic should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5586,6 +5721,9 @@ exports[`Story Snapshots: Basic should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -5605,6 +5743,9 @@ exports[`Story Snapshots: Basic should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -5651,6 +5792,9 @@ exports[`Story Snapshots: Basic should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5667,6 +5811,9 @@ exports[`Story Snapshots: Basic should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -6057,6 +6204,9 @@ exports[`Story Snapshots: BasicLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -6085,6 +6235,9 @@ exports[`Story Snapshots: BasicLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -6122,6 +6275,9 @@ exports[`Story Snapshots: BasicLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -6138,6 +6294,9 @@ exports[`Story Snapshots: BasicLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -6515,6 +6674,9 @@ exports[`Story Snapshots: BasicLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -6543,6 +6705,9 @@ exports[`Story Snapshots: BasicLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -6580,6 +6745,9 @@ exports[`Story Snapshots: BasicLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -6596,6 +6764,9 @@ exports[`Story Snapshots: BasicLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -6986,6 +7157,9 @@ exports[`Story Snapshots: BlockQuote should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -7005,6 +7179,9 @@ exports[`Story Snapshots: BlockQuote should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -7080,6 +7257,9 @@ exports[`Story Snapshots: BlockQuote should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -7096,6 +7276,9 @@ exports[`Story Snapshots: BlockQuote should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -7477,6 +7660,9 @@ Testing block quote" "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -7496,6 +7682,9 @@ Testing block quote" "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -7572,6 +7761,9 @@ Testing block quote" "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -7588,6 +7780,9 @@ Testing block quote" "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -7621,6 +7816,9 @@ Testing block quote" "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -7637,6 +7835,9 @@ Testing block quote" "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -8027,6 +8228,9 @@ exports[`Story Snapshots: BlockQuoteLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -8055,6 +8259,9 @@ exports[`Story Snapshots: BlockQuoteLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -8121,6 +8328,9 @@ exports[`Story Snapshots: BlockQuoteLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -8137,6 +8347,9 @@ exports[`Story Snapshots: BlockQuoteLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -8518,6 +8731,9 @@ Testing block quote" "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -8546,6 +8762,9 @@ Testing block quote" "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -8613,6 +8832,9 @@ Testing block quote" "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -8629,6 +8851,9 @@ Testing block quote" "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -8662,6 +8887,9 @@ Testing block quote" "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -8678,6 +8906,9 @@ Testing block quote" "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -9068,6 +9299,9 @@ exports[`Story Snapshots: Broadcast should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -9087,6 +9321,9 @@ exports[`Story Snapshots: Broadcast should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -9133,6 +9370,9 @@ exports[`Story Snapshots: Broadcast should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -9149,6 +9389,9 @@ exports[`Story Snapshots: Broadcast should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -9280,6 +9523,9 @@ exports[`Story Snapshots: Broadcast should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -9659,6 +9905,9 @@ exports[`Story Snapshots: BroadcastLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -9687,6 +9936,9 @@ exports[`Story Snapshots: BroadcastLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -9724,6 +9976,9 @@ exports[`Story Snapshots: BroadcastLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -9740,6 +9995,9 @@ exports[`Story Snapshots: BroadcastLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -9871,6 +10129,9 @@ exports[`Story Snapshots: BroadcastLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -10250,6 +10511,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -10269,6 +10533,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -10315,6 +10582,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -10331,6 +10601,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -10454,6 +10727,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -10860,6 +11136,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -10879,6 +11158,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -11006,6 +11288,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -11032,6 +11317,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -11048,6 +11336,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -11102,6 +11393,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -11127,6 +11421,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -11143,6 +11440,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -11188,6 +11488,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -11213,6 +11516,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -11229,6 +11535,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -11279,6 +11588,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -11295,6 +11607,9 @@ exports[`Story Snapshots: CollapsedAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -11685,6 +12000,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -11713,6 +12031,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -11750,6 +12071,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -11766,6 +12090,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -11889,6 +12216,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -12295,6 +12625,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -12323,6 +12656,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -12441,6 +12777,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -12467,6 +12806,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -12483,6 +12825,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -12537,6 +12882,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -12562,6 +12910,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -12578,6 +12929,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -12623,6 +12977,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -12648,6 +13005,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -12664,6 +13024,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -12714,6 +13077,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -12730,6 +13096,9 @@ exports[`Story Snapshots: CollapsedAttachmentsLargeFont should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -13120,6 +13489,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -13139,6 +13511,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -13185,6 +13560,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -13201,6 +13579,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -13326,6 +13707,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -13732,6 +14116,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -13751,6 +14138,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -13878,6 +14268,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -13904,6 +14297,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -13920,6 +14316,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -13974,6 +14373,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -13999,6 +14401,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -14015,6 +14420,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -14060,6 +14468,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -14085,6 +14496,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -14101,6 +14515,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -14146,6 +14563,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -14171,6 +14591,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -14187,6 +14610,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -14231,6 +14657,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -14247,6 +14676,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -14292,6 +14724,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -14308,6 +14743,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithText should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -14698,6 +15136,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -14726,6 +15167,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -14763,6 +15207,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -14779,6 +15226,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -14904,6 +15354,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -15310,6 +15763,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -15338,6 +15794,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -15456,6 +15915,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -15482,6 +15944,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -15498,6 +15963,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -15552,6 +16020,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -15577,6 +16048,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -15593,6 +16067,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -15638,6 +16115,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -15663,6 +16143,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -15679,6 +16162,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -15724,6 +16210,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -15749,6 +16238,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -15765,6 +16257,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -15809,6 +16304,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -15825,6 +16323,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -15870,6 +16371,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -15886,6 +16390,9 @@ exports[`Story Snapshots: CollapsibleAttachmentWithTextLargeFont should match sn "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -16276,6 +16783,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -16295,6 +16805,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -16443,6 +16956,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -16468,6 +16984,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -16484,6 +17003,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -16529,6 +17051,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -16554,6 +17079,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -16570,6 +17098,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -16714,6 +17245,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -16739,6 +17273,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -16755,6 +17292,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -16800,6 +17340,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -16825,6 +17368,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -16841,6 +17387,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -16985,6 +17534,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -17010,6 +17562,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -17026,6 +17581,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -17071,6 +17629,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -17096,6 +17657,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -17112,6 +17676,9 @@ exports[`Story Snapshots: ColoredAttachments should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -17508,6 +18075,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -17536,6 +18106,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -17675,6 +18248,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -17700,6 +18276,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -17716,6 +18295,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -17761,6 +18343,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -17786,6 +18371,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -17802,6 +18390,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -17946,6 +18537,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -17971,6 +18565,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -17987,6 +18584,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -18032,6 +18632,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -18057,6 +18660,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -18073,6 +18679,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -18217,6 +18826,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -18242,6 +18854,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -18258,6 +18873,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -18303,6 +18921,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -18328,6 +18949,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -18344,6 +18968,9 @@ exports[`Story Snapshots: ColoredAttachmentsLargeFont should match snapshot 1`] "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -18740,6 +19367,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -18759,6 +19389,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -18887,6 +19520,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -18913,6 +19549,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -18929,6 +19568,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -18983,6 +19625,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -19008,6 +19653,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -19024,6 +19672,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -19069,6 +19720,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -19094,6 +19748,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -19110,6 +19767,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -19160,6 +19820,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -19176,6 +19839,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -19553,6 +20219,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -19572,6 +20241,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -19700,6 +20372,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -19726,6 +20401,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -19742,6 +20420,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -19796,6 +20477,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -19821,6 +20505,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -19837,6 +20524,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -19882,6 +20572,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -19907,6 +20600,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -19923,6 +20619,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -19968,6 +20667,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -19993,6 +20695,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -20009,6 +20714,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -20054,6 +20762,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -20079,6 +20790,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -20095,6 +20809,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -20140,6 +20857,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -20165,6 +20885,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -20181,6 +20904,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -20231,6 +20957,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -20247,6 +20976,9 @@ exports[`Story Snapshots: CustomFields should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -20637,6 +21369,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -20665,6 +21400,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -20784,6 +21522,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -20810,6 +21551,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -20826,6 +21570,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -20880,6 +21627,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -20905,6 +21655,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -20921,6 +21674,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -20966,6 +21722,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -20991,6 +21750,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -21007,6 +21769,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -21057,6 +21822,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -21073,6 +21841,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -21450,6 +22221,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -21478,6 +22252,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -21597,6 +22374,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -21623,6 +22403,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -21639,6 +22422,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -21693,6 +22479,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -21718,6 +22507,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -21734,6 +22526,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -21779,6 +22574,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -21804,6 +22602,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -21820,6 +22621,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -21865,6 +22669,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -21890,6 +22697,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -21906,6 +22716,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -21951,6 +22764,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -21976,6 +22792,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -21992,6 +22811,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -22037,6 +22859,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -22062,6 +22887,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -22078,6 +22906,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -22128,6 +22959,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -22144,6 +22978,9 @@ exports[`Story Snapshots: CustomFieldsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -22534,6 +23371,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -22553,6 +23393,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -22599,6 +23442,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -22615,6 +23461,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -22668,6 +23517,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -22702,6 +23554,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -23054,6 +23909,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -23073,6 +23931,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -23119,6 +23980,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -23135,6 +23999,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -23188,6 +24055,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -23382,6 +24252,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -23398,6 +24271,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -23782,6 +24658,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -23801,6 +24680,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -23847,6 +24729,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -23863,6 +24748,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -23929,6 +24817,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -24297,6 +25188,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -24316,6 +25210,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -24362,6 +25259,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -24378,6 +25278,9 @@ exports[`Story Snapshots: DateAndUnreadSeparators should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -24768,6 +25671,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -24796,6 +25702,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -24833,6 +25742,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -24849,6 +25761,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -24902,6 +25817,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -24936,6 +25854,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -25288,6 +26209,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -25316,6 +26240,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -25353,6 +26280,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -25369,6 +26299,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -25422,6 +26355,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -25616,6 +26552,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -25632,6 +26571,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -26016,6 +26958,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -26044,6 +26989,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -26081,6 +27029,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -26097,6 +27048,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -26163,6 +27117,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -26531,6 +27488,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -26559,6 +27519,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -26596,6 +27559,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -26612,6 +27578,9 @@ exports[`Story Snapshots: DateAndUnreadSeparatorsLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -27002,6 +27971,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -27021,6 +27993,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -27057,6 +28032,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "fontFamily": "Inter", "fontSize": 16, "fontStyle": "italic", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -27076,6 +28054,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -27197,6 +28178,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -27218,6 +28202,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -27580,6 +28567,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -27599,6 +28589,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -27635,6 +28628,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "fontFamily": "Inter", "fontSize": 16, "fontStyle": "italic", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -27654,6 +28650,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -27775,6 +28774,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -27796,6 +28798,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -28160,6 +29165,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -28179,6 +29187,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -28215,6 +29226,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "fontFamily": "Inter", "fontSize": 16, "fontStyle": "italic", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -28234,6 +29248,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -28355,6 +29372,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -28376,6 +29396,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -28740,6 +29763,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -28759,6 +29785,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -28795,6 +29824,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "fontFamily": "Inter", "fontSize": 16, "fontStyle": "italic", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -28814,6 +29846,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -28935,6 +29970,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -28956,6 +29994,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -29333,6 +30374,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -29361,6 +30405,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -29388,6 +30435,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "fontFamily": "Inter", "fontSize": 16, "fontStyle": "italic", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -29407,6 +30457,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -29528,6 +30581,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -29549,6 +30605,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -29911,6 +30970,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -29939,6 +31001,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -29966,6 +31031,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "fontFamily": "Inter", "fontSize": 16, "fontStyle": "italic", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -29985,6 +31053,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -30106,6 +31177,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -30127,6 +31201,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -30491,6 +31568,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -30519,6 +31599,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -30546,6 +31629,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "fontFamily": "Inter", "fontSize": 16, "fontStyle": "italic", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -30565,6 +31651,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -30686,6 +31775,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -30707,6 +31799,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -31071,6 +32166,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -31099,6 +32197,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -31126,6 +32227,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "fontFamily": "Inter", "fontSize": 16, "fontStyle": "italic", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -31145,6 +32249,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -31266,6 +32373,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -31287,6 +32397,9 @@ exports[`Story Snapshots: DiscussionLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -31664,6 +32777,9 @@ exports[`Story Snapshots: Edited should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -31683,6 +32799,9 @@ exports[`Story Snapshots: Edited should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -31765,6 +32884,9 @@ exports[`Story Snapshots: Edited should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -31781,6 +32903,9 @@ exports[`Story Snapshots: Edited should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -31984,6 +33109,9 @@ exports[`Story Snapshots: Edited should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -32000,6 +33128,9 @@ exports[`Story Snapshots: Edited should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -32433,6 +33564,9 @@ exports[`Story Snapshots: EditedLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -32497,6 +33631,9 @@ exports[`Story Snapshots: EditedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -32534,6 +33671,9 @@ exports[`Story Snapshots: EditedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -32550,6 +33690,9 @@ exports[`Story Snapshots: EditedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -32753,6 +33896,9 @@ exports[`Story Snapshots: EditedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -32769,6 +33915,9 @@ exports[`Story Snapshots: EditedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -33203,6 +34352,9 @@ exports[`Story Snapshots: Editing should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -33222,6 +34374,9 @@ exports[`Story Snapshots: Editing should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -33268,6 +34423,9 @@ exports[`Story Snapshots: Editing should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -33284,6 +34442,9 @@ exports[`Story Snapshots: Editing should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -33675,6 +34836,9 @@ exports[`Story Snapshots: EditingLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -33703,6 +34867,9 @@ exports[`Story Snapshots: EditingLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -33740,6 +34907,9 @@ exports[`Story Snapshots: EditingLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -33756,6 +34926,9 @@ exports[`Story Snapshots: EditingLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -34146,6 +35319,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -34165,6 +35341,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -34221,6 +35400,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 30, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 43, "textAlign": "left", @@ -34240,6 +35422,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 30, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 43, "textAlign": "left", @@ -34603,6 +35788,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -34622,6 +35810,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -34678,6 +35869,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 30, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 43, "textAlign": "left", @@ -35041,6 +36235,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -35060,6 +36257,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -35592,6 +36792,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -35611,6 +36814,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -36055,6 +37261,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -36074,6 +37283,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -36130,6 +37342,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 30, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 43, "textAlign": "left", @@ -36537,6 +37752,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -36556,6 +37774,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -36602,6 +37823,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -36618,6 +37842,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -36633,6 +37860,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -36669,6 +37899,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -36688,6 +37921,9 @@ exports[`Story Snapshots: Emojis should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -37065,6 +38301,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -37093,6 +38332,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -37140,6 +38382,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 30, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 43, "textAlign": "left", @@ -37159,6 +38404,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 30, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 43, "textAlign": "left", @@ -37522,6 +38770,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -37550,6 +38801,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -37597,6 +38851,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 30, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 43, "textAlign": "left", @@ -37960,6 +39217,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -37988,6 +39248,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -38511,6 +39774,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -38539,6 +39805,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -38974,6 +40243,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -39002,6 +40274,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -39049,6 +40324,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 30, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 43, "textAlign": "left", @@ -39456,6 +40734,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -39484,6 +40765,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -39521,6 +40805,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -39537,6 +40824,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -39552,6 +40842,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -39588,6 +40881,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -39607,6 +40903,9 @@ exports[`Story Snapshots: EmojisLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -39984,6 +41283,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -40003,6 +41305,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -40115,6 +41420,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -40299,6 +41607,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -40742,6 +42053,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -40761,6 +42075,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -40873,6 +42190,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -40984,6 +42304,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -41109,6 +42432,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -41212,6 +42538,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -41498,6 +42827,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -41511,6 +42843,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -41750,6 +43085,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -42104,6 +43442,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -42123,6 +43464,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -42239,6 +43583,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -42603,6 +43950,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -42622,6 +43972,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -42734,6 +44087,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -43011,6 +44367,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -43030,6 +44389,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -43217,6 +44579,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -43577,6 +44942,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -43596,6 +44964,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -43738,6 +45109,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -43922,6 +45296,9 @@ exports[`Story Snapshots: Encrypted should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -44408,6 +45785,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -44508,6 +45888,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -44539,6 +45922,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -44723,6 +46109,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -45166,6 +46555,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -45266,6 +46658,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -45297,6 +46692,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -45408,6 +46806,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -45533,6 +46934,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -45636,6 +47040,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -45922,6 +47329,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -45935,6 +47345,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -46174,6 +47587,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -46528,6 +47944,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -46628,6 +48047,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -46663,6 +48085,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -47027,6 +48452,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -47127,6 +48555,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -47158,6 +48589,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -47435,6 +48869,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -47606,6 +49043,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -47641,6 +49081,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -48001,6 +49444,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -48131,6 +49577,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -48162,6 +49611,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -48346,6 +49798,9 @@ exports[`Story Snapshots: EncryptedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -48745,6 +50200,9 @@ exports[`Story Snapshots: Error should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -48764,6 +50222,9 @@ exports[`Story Snapshots: Error should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -48886,6 +50347,9 @@ exports[`Story Snapshots: Error should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -48902,6 +50366,9 @@ exports[`Story Snapshots: Error should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -49188,6 +50655,9 @@ exports[`Story Snapshots: Error should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -49207,6 +50677,9 @@ exports[`Story Snapshots: Error should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -49329,6 +50802,9 @@ exports[`Story Snapshots: Error should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -49345,6 +50821,9 @@ exports[`Story Snapshots: Error should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -49644,6 +51123,9 @@ exports[`Story Snapshots: ErrorLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -49744,6 +51226,9 @@ exports[`Story Snapshots: ErrorLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -49785,6 +51270,9 @@ exports[`Story Snapshots: ErrorLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -49801,6 +51289,9 @@ exports[`Story Snapshots: ErrorLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -50087,6 +51578,9 @@ exports[`Story Snapshots: ErrorLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -50187,6 +51681,9 @@ exports[`Story Snapshots: ErrorLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -50228,6 +51725,9 @@ exports[`Story Snapshots: ErrorLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -50244,6 +51744,9 @@ exports[`Story Snapshots: ErrorLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -50630,6 +52133,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -50649,6 +52155,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -50776,6 +52285,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -50797,6 +52309,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -50834,6 +52349,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -50850,6 +52368,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -51227,6 +52748,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -51246,6 +52770,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -51373,6 +52900,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -51394,6 +52924,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -51431,6 +52964,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -51447,6 +52983,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -51824,6 +53363,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -51843,6 +53385,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -51970,6 +53515,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -51991,6 +53539,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -52028,6 +53579,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -52044,6 +53598,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -52421,6 +53978,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -52440,6 +54000,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -52567,6 +54130,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -52593,6 +54159,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -52609,6 +54178,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -52636,6 +54208,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -52653,6 +54228,15 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] { "color": "#2F343D", }, + { + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", + }, ] } > @@ -52702,6 +54286,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -52718,6 +54305,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -53002,6 +54592,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -53023,6 +54616,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -53133,6 +54729,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -53154,6 +54753,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenames should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -53544,6 +55146,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -53572,6 +55177,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -53690,6 +55298,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -53711,6 +55322,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -53748,6 +55362,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -53764,6 +55381,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -54141,6 +55761,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -54169,6 +55792,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -54287,6 +55913,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -54308,6 +55937,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -54345,6 +55977,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -54361,6 +55996,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -54738,6 +56376,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -54766,6 +56407,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -54884,6 +56528,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -54905,6 +56552,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -54942,6 +56592,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -54958,6 +56611,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -55335,6 +56991,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -55363,6 +57022,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -55481,6 +57143,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -55507,6 +57172,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -55523,6 +57191,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -55550,6 +57221,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -55567,6 +57241,15 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna { "color": "#2F343D", }, + { + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", + }, ] } > @@ -55616,6 +57299,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -55632,6 +57318,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -55916,6 +57605,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -55937,6 +57629,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -56047,6 +57742,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -56068,6 +57766,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -56445,6 +58146,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -56473,6 +58177,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -56597,6 +58304,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -56613,6 +58323,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -56740,6 +58453,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -56756,6 +58472,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -56804,6 +58523,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -56820,6 +58542,9 @@ exports[`Story Snapshots: FileAttachmentsWithFilenamesLargeFont should match sna "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -57210,6 +58935,9 @@ exports[`Story Snapshots: FullName should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -57229,6 +58957,9 @@ exports[`Story Snapshots: FullName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -57275,6 +59006,9 @@ exports[`Story Snapshots: FullName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -57291,6 +59025,9 @@ exports[`Story Snapshots: FullName should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -57681,6 +59418,9 @@ exports[`Story Snapshots: FullNameLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -57709,6 +59449,9 @@ exports[`Story Snapshots: FullNameLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -57746,6 +59489,9 @@ exports[`Story Snapshots: FullNameLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -57762,6 +59508,9 @@ exports[`Story Snapshots: FullNameLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -58152,6 +59901,9 @@ exports[`Story Snapshots: GroupedMessages should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -58171,6 +59923,9 @@ exports[`Story Snapshots: GroupedMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -58217,6 +59972,9 @@ exports[`Story Snapshots: GroupedMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -58233,6 +59991,9 @@ exports[`Story Snapshots: GroupedMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -58610,6 +60371,9 @@ exports[`Story Snapshots: GroupedMessages should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -58629,6 +60393,9 @@ exports[`Story Snapshots: GroupedMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -58675,6 +60442,9 @@ exports[`Story Snapshots: GroupedMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -58691,6 +60461,9 @@ exports[`Story Snapshots: GroupedMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -58894,6 +60667,9 @@ exports[`Story Snapshots: GroupedMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -58910,6 +60686,9 @@ exports[`Story Snapshots: GroupedMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -59120,6 +60899,9 @@ exports[`Story Snapshots: GroupedMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -59136,6 +60918,9 @@ exports[`Story Snapshots: GroupedMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -59520,6 +61305,9 @@ exports[`Story Snapshots: GroupedMessages should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -59539,6 +61327,9 @@ exports[`Story Snapshots: GroupedMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -59585,6 +61376,9 @@ exports[`Story Snapshots: GroupedMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -59601,6 +61395,9 @@ exports[`Story Snapshots: GroupedMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -59991,6 +61788,9 @@ exports[`Story Snapshots: GroupedMessagesLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -60019,6 +61819,9 @@ exports[`Story Snapshots: GroupedMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -60056,6 +61859,9 @@ exports[`Story Snapshots: GroupedMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -60072,6 +61878,9 @@ exports[`Story Snapshots: GroupedMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -60449,6 +62258,9 @@ exports[`Story Snapshots: GroupedMessagesLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -60477,6 +62289,9 @@ exports[`Story Snapshots: GroupedMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -60514,6 +62329,9 @@ exports[`Story Snapshots: GroupedMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -60530,6 +62348,9 @@ exports[`Story Snapshots: GroupedMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -60733,6 +62554,9 @@ exports[`Story Snapshots: GroupedMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -60749,6 +62573,9 @@ exports[`Story Snapshots: GroupedMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -60959,6 +62786,9 @@ exports[`Story Snapshots: GroupedMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -60975,6 +62805,9 @@ exports[`Story Snapshots: GroupedMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -61359,6 +63192,9 @@ exports[`Story Snapshots: GroupedMessagesLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -61387,6 +63223,9 @@ exports[`Story Snapshots: GroupedMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -61424,6 +63263,9 @@ exports[`Story Snapshots: GroupedMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -61440,6 +63282,9 @@ exports[`Story Snapshots: GroupedMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -61784,6 +63629,9 @@ exports[`Story Snapshots: Ignored should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -62113,6 +63961,9 @@ exports[`Story Snapshots: IgnoredLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -62488,6 +64339,9 @@ exports[`Story Snapshots: InlineKatex should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -62507,6 +64361,9 @@ exports[`Story Snapshots: InlineKatex should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -62553,6 +64410,9 @@ exports[`Story Snapshots: InlineKatex should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -62569,6 +64429,9 @@ exports[`Story Snapshots: InlineKatex should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -62945,6 +64808,9 @@ exports[`Story Snapshots: InlineKatexLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -62973,6 +64839,9 @@ exports[`Story Snapshots: InlineKatexLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -63010,6 +64879,9 @@ exports[`Story Snapshots: InlineKatexLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -63026,6 +64898,9 @@ exports[`Story Snapshots: InlineKatexLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -63394,6 +65269,9 @@ exports[`Story Snapshots: JitsiCall should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -63413,6 +65291,9 @@ exports[`Story Snapshots: JitsiCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -63442,6 +65323,9 @@ exports[`Story Snapshots: JitsiCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -63557,6 +65441,9 @@ exports[`Story Snapshots: JitsiCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -63927,6 +65814,9 @@ exports[`Story Snapshots: JitsiCallLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -63956,6 +65846,9 @@ exports[`Story Snapshots: JitsiCallLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -64071,6 +65964,9 @@ exports[`Story Snapshots: JitsiCallLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -64093,6 +65989,9 @@ exports[`Story Snapshots: JitsiCallLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -64468,6 +66367,9 @@ exports[`Story Snapshots: Katex should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -64487,6 +66389,9 @@ exports[`Story Snapshots: Katex should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -64893,6 +66798,9 @@ exports[`Story Snapshots: KatexArray should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -64912,6 +66820,9 @@ exports[`Story Snapshots: KatexArray should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -65318,6 +67229,9 @@ exports[`Story Snapshots: KatexArrayLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -65346,6 +67260,9 @@ exports[`Story Snapshots: KatexArrayLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -65743,6 +67660,9 @@ exports[`Story Snapshots: KatexLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -65771,6 +67691,9 @@ exports[`Story Snapshots: KatexLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -66172,6 +68095,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -66191,6 +68117,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -66247,6 +68176,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -66266,6 +68198,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -66281,6 +68216,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -66320,6 +68258,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -66339,6 +68280,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -66354,6 +68298,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -66395,6 +68342,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -66414,6 +68364,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -66429,6 +68382,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -66810,6 +68766,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -66829,6 +68788,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -66884,6 +68846,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -66909,6 +68874,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -66917,6 +68885,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -66932,6 +68903,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -66971,6 +68945,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -66996,6 +68973,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -67004,6 +68984,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -67019,6 +69002,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -67398,6 +69384,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -67417,6 +69406,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -67471,6 +69463,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -67496,6 +69491,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -67504,6 +69502,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -67519,6 +69520,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -67732,6 +69736,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -67757,6 +69764,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -67765,6 +69775,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -67780,6 +69793,9 @@ exports[`Story Snapshots: Lists should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -68183,6 +70199,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -68211,6 +70230,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -68258,6 +70280,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -68277,6 +70302,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -68292,6 +70320,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -68331,6 +70362,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -68350,6 +70384,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -68365,6 +70402,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -68406,6 +70446,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -68425,6 +70468,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -68440,6 +70486,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -68821,6 +70870,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -68849,6 +70901,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -68895,6 +70950,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -68920,6 +70978,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -68928,6 +70989,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -68943,6 +71007,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -68982,6 +71049,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -69007,6 +71077,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -69015,6 +71088,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -69030,6 +71106,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -69409,6 +71488,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -69437,6 +71519,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -69482,6 +71567,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -69507,6 +71595,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -69515,6 +71606,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -69530,6 +71624,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -69743,6 +71840,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -69768,6 +71868,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -69776,6 +71879,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -69791,6 +71897,9 @@ exports[`Story Snapshots: ListsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -70190,6 +72299,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -70209,6 +72321,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -70255,6 +72370,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -70271,6 +72389,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -70648,6 +72769,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -70667,6 +72791,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -70749,6 +72876,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -70765,6 +72895,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -71143,6 +73276,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -71162,6 +73298,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -71243,6 +73382,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -71259,6 +73401,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -71636,6 +73781,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -71655,6 +73803,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -71767,6 +73918,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -72044,6 +74198,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -72063,6 +74220,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -72185,6 +74345,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -72201,6 +74364,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -72574,6 +74740,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -72593,6 +74762,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -72670,6 +74842,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -72686,6 +74861,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -73063,6 +75241,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -73082,6 +75263,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -73224,6 +75408,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -73502,6 +75689,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -73521,6 +75711,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -73807,6 +76000,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -74081,6 +76277,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -74100,6 +76299,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -74386,6 +76588,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -74660,6 +76865,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -74679,6 +76887,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -74965,6 +77176,9 @@ exports[`Story Snapshots: LongNameUser should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -75338,6 +77552,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -75366,6 +77583,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -75403,6 +77623,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -75419,6 +77642,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -75796,6 +78022,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -75860,6 +78089,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -75897,6 +78129,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -75913,6 +78148,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -76291,6 +78529,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -76354,6 +78595,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -76391,6 +78635,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -76407,6 +78654,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -76784,6 +79034,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -76884,6 +79137,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -76915,6 +79171,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -77192,6 +79451,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -77292,6 +79554,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -77333,6 +79598,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -77349,6 +79617,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -77722,6 +79993,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -77781,6 +80055,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -77818,6 +80095,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -77834,6 +80114,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -78211,6 +80494,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -78341,6 +80627,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -78372,6 +80661,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -78650,6 +80942,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -78920,6 +81215,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -78955,6 +81253,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -79229,6 +81530,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -79499,6 +81803,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -79534,6 +81841,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -79808,6 +82118,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -80078,6 +82391,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -80113,6 +82429,9 @@ exports[`Story Snapshots: LongNameUserLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -80486,6 +82805,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -80505,6 +82827,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -80551,6 +82876,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -80567,6 +82895,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -80580,6 +82911,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -80616,6 +82950,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -80651,6 +82988,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -80686,6 +83026,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -80722,6 +83065,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -80757,6 +83103,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -81123,6 +83472,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -81142,6 +83494,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -81188,6 +83543,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -81204,6 +83562,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -81217,6 +83578,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -81253,6 +83617,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -81288,6 +83655,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -81323,6 +83693,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -81359,6 +83732,9 @@ exports[`Story Snapshots: Mentions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -81755,6 +84131,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -81783,6 +84162,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -81820,6 +84202,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -81836,6 +84221,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -81849,6 +84237,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -81885,6 +84276,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -81920,6 +84314,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -81955,6 +84352,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -81991,6 +84391,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -82026,6 +84429,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -82392,6 +84798,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -82420,6 +84829,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -82457,6 +84869,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -82473,6 +84888,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -82486,6 +84904,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -82522,6 +84943,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -82557,6 +84981,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -82592,6 +85019,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -82628,6 +85058,9 @@ exports[`Story Snapshots: MentionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -83024,6 +85457,9 @@ exports[`Story Snapshots: Message should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -83043,6 +85479,9 @@ exports[`Story Snapshots: Message should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -83434,6 +85873,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -83453,6 +85895,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -83499,6 +85944,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -83515,6 +85963,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -83641,6 +86092,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -83659,6 +86113,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -83772,6 +86229,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -83791,6 +86251,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -83812,6 +86275,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -84187,6 +86653,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -84206,6 +86675,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -84252,6 +86724,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -84268,6 +86743,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -84394,6 +86872,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -84434,6 +86915,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -84450,6 +86934,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -84994,6 +87481,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -85013,6 +87503,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -85059,6 +87552,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -85075,6 +87571,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -85201,6 +87700,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -85813,6 +88315,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -85832,6 +88337,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -85878,6 +88386,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -85894,6 +88405,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -86020,6 +88534,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -86523,6 +89040,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -86542,6 +89062,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -86588,6 +89111,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -86604,6 +89130,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -86730,6 +89259,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -86748,6 +89280,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -86861,6 +89396,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -86879,6 +89417,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -86992,6 +89533,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -87011,6 +89555,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -87032,6 +89579,9 @@ exports[`Story Snapshots: MessageWithNestedReplyAndFile should match snapshot 1` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -87425,6 +89975,9 @@ exports[`Story Snapshots: MessageWithReadReceipt should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -87444,6 +89997,9 @@ exports[`Story Snapshots: MessageWithReadReceipt should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -87521,6 +90077,9 @@ exports[`Story Snapshots: MessageWithReadReceipt should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -87537,6 +90096,9 @@ exports[`Story Snapshots: MessageWithReadReceipt should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -87740,6 +90302,9 @@ exports[`Story Snapshots: MessageWithReadReceipt should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -87756,6 +90321,9 @@ exports[`Story Snapshots: MessageWithReadReceipt should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -88171,6 +90739,9 @@ exports[`Story Snapshots: MessageWithReadReceipt should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -88190,6 +90761,9 @@ exports[`Story Snapshots: MessageWithReadReceipt should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -88267,6 +90841,9 @@ exports[`Story Snapshots: MessageWithReadReceipt should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -88283,6 +90860,9 @@ exports[`Story Snapshots: MessageWithReadReceipt should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -88486,6 +91066,9 @@ exports[`Story Snapshots: MessageWithReadReceipt should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -88502,6 +91085,9 @@ exports[`Story Snapshots: MessageWithReadReceipt should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -88930,6 +91516,9 @@ exports[`Story Snapshots: MessageWithReadReceiptLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -88989,6 +91578,9 @@ exports[`Story Snapshots: MessageWithReadReceiptLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -89026,6 +91618,9 @@ exports[`Story Snapshots: MessageWithReadReceiptLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -89042,6 +91637,9 @@ exports[`Story Snapshots: MessageWithReadReceiptLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -89245,6 +91843,9 @@ exports[`Story Snapshots: MessageWithReadReceiptLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -89261,6 +91862,9 @@ exports[`Story Snapshots: MessageWithReadReceiptLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -89676,6 +92280,9 @@ exports[`Story Snapshots: MessageWithReadReceiptLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -89735,6 +92342,9 @@ exports[`Story Snapshots: MessageWithReadReceiptLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -89772,6 +92382,9 @@ exports[`Story Snapshots: MessageWithReadReceiptLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -89788,6 +92401,9 @@ exports[`Story Snapshots: MessageWithReadReceiptLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -89991,6 +92607,9 @@ exports[`Story Snapshots: MessageWithReadReceiptLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -90007,6 +92626,9 @@ exports[`Story Snapshots: MessageWithReadReceiptLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -90435,6 +93057,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -90454,6 +93079,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -90582,6 +93210,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -90608,6 +93239,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -90624,6 +93258,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -90672,6 +93309,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -90688,6 +93328,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -91065,6 +93708,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -91084,6 +93730,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -91212,6 +93861,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -91238,6 +93890,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -91254,6 +93909,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -91420,6 +94078,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -91446,6 +94107,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -91462,6 +94126,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -91548,6 +94215,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -91564,6 +94234,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -91609,6 +94282,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -91625,6 +94301,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -92002,6 +94681,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -92021,6 +94703,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -92067,6 +94752,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -92083,6 +94771,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -92209,6 +94900,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -92249,6 +94943,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -92265,6 +94962,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -92809,6 +95509,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -92828,6 +95531,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -92874,6 +95580,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -92890,6 +95599,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -93016,6 +95728,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -93056,6 +95771,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -93072,6 +95790,9 @@ exports[`Story Snapshots: MessageWithReply should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -93690,6 +96411,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -93709,6 +96433,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -93837,6 +96564,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -93856,6 +96586,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -93877,6 +96610,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -93914,6 +96650,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -93930,6 +96669,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -94307,6 +97049,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -94326,6 +97071,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -94454,6 +97202,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -94473,6 +97224,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -94499,6 +97253,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -94515,6 +97272,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -94542,6 +97302,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -94559,6 +97322,15 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` { "color": "#2F343D", }, + { + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", + }, ] } > @@ -94608,6 +97380,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -94624,6 +97399,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -95001,6 +97779,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -95020,6 +97801,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -95148,6 +97932,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -95167,6 +97954,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -95188,6 +97978,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -95299,6 +98092,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -95318,6 +98114,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -95339,6 +98138,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -95376,6 +98178,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -95392,6 +98197,9 @@ exports[`Story Snapshots: MessageWithReplyAndFile should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -95782,6 +98590,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -95810,6 +98621,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -95929,6 +98743,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -95948,6 +98765,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -95969,6 +98789,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -96006,6 +98829,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -96022,6 +98848,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -96399,6 +99228,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -96427,6 +99259,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -96546,6 +99381,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -96565,6 +99403,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -96591,6 +99432,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -96607,6 +99451,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -96634,6 +99481,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -96651,6 +99501,15 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot { "color": "#2F343D", }, + { + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", + }, ] } > @@ -96700,6 +99559,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -96716,6 +99578,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -97093,6 +99958,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -97121,6 +99989,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -97240,6 +100111,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -97259,6 +100133,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -97280,6 +100157,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -97391,6 +100271,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -97410,6 +100293,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -97431,6 +100317,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -97468,6 +100357,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -97484,6 +100376,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -97861,6 +100756,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -97889,6 +100787,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -97926,6 +100827,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -97942,6 +100846,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -98068,6 +100975,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -98680,6 +101590,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -98708,6 +101621,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -98745,6 +101661,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -98761,6 +101680,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -98887,6 +101809,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -99390,6 +102315,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -99418,6 +102346,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -99455,6 +102386,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -99471,6 +102405,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -99597,6 +102534,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -99615,6 +102555,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -99728,6 +102671,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -99746,6 +102692,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -99859,6 +102808,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -99878,6 +102830,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -99899,6 +102854,9 @@ exports[`Story Snapshots: MessageWithReplyAndFileLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -100292,6 +103250,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -100320,6 +103281,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -100439,6 +103403,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -100465,6 +103432,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -100481,6 +103451,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -100529,6 +103502,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -100545,6 +103521,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -100922,6 +103901,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -100950,6 +103932,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -101069,6 +104054,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -101095,6 +104083,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -101111,6 +104102,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -101203,6 +104197,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -101219,6 +104216,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -101596,6 +104596,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -101624,6 +104627,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -101661,6 +104667,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -101677,6 +104686,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -101803,6 +104815,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -101843,6 +104858,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -101859,6 +104877,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -102403,6 +105424,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -102431,6 +105455,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -102468,6 +105495,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -102484,6 +105514,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -102610,6 +105643,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -102650,6 +105686,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -102666,6 +105705,9 @@ exports[`Story Snapshots: MessageWithReplyLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -103285,6 +106327,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -103304,6 +106349,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -103350,6 +106398,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -103366,6 +106417,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -103456,6 +106510,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -103535,6 +106592,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -103592,6 +106652,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -103912,6 +106975,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -103925,6 +106991,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -104165,6 +107234,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -104349,6 +107421,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -104362,6 +107437,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -104602,6 +107680,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -104786,6 +107867,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -104799,6 +107883,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -105039,6 +108126,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -105223,6 +108313,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -105236,6 +108329,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -105476,6 +108572,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -105660,6 +108759,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -105673,6 +108775,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -105913,6 +109018,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -106097,6 +109205,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -106110,6 +109221,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -106350,6 +109464,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -106534,6 +109651,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -106547,6 +109667,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -106787,6 +109910,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -106971,6 +110097,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -106984,6 +110113,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -107224,6 +110356,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -107408,6 +110543,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -107421,6 +110559,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -107661,6 +110802,9 @@ exports[`Story Snapshots: MessageWithThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -108039,6 +111183,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -108067,6 +111214,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -108104,6 +111254,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -108120,6 +111273,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -108210,6 +111366,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -108289,6 +111448,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -108346,6 +111508,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -108666,6 +111831,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -108679,6 +111847,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -108919,6 +112090,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -109103,6 +112277,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -109116,6 +112293,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -109356,6 +112536,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -109540,6 +112723,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -109553,6 +112739,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -109793,6 +112982,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -109977,6 +113169,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -109990,6 +113185,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -110230,6 +113428,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -110414,6 +113615,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -110427,6 +113631,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -110667,6 +113874,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -110851,6 +114061,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -110864,6 +114077,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -111104,6 +114320,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -111288,6 +114507,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -111301,6 +114523,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -111541,6 +114766,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -111725,6 +114953,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -111738,6 +114969,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -111978,6 +115212,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -112162,6 +115399,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -112175,6 +115415,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -112415,6 +115658,9 @@ exports[`Story Snapshots: MessageWithThreadLargeFont should match snapshot 1`] = "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -112792,6 +116038,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -112811,6 +116060,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -112857,6 +116109,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -112873,6 +116128,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -113164,6 +116422,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -113183,6 +116444,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -113498,6 +116762,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -113858,6 +117125,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -113877,6 +117147,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -113923,6 +117196,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -113939,6 +117215,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -114230,6 +117509,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -114249,6 +117531,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -114564,6 +117849,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -114924,6 +118212,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -114943,6 +118234,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -114989,6 +118283,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -115005,6 +118302,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -115296,6 +118596,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -115315,6 +118618,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -115630,6 +118936,9 @@ exports[`Story Snapshots: Names should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -116003,6 +119312,9 @@ exports[`Story Snapshots: Pinned should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -116022,6 +119334,9 @@ exports[`Story Snapshots: Pinned should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -116098,6 +119413,9 @@ exports[`Story Snapshots: Pinned should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -116114,6 +119432,9 @@ exports[`Story Snapshots: Pinned should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -116317,6 +119638,9 @@ exports[`Story Snapshots: Pinned should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -116333,6 +119657,9 @@ exports[`Story Snapshots: Pinned should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -116760,6 +120087,9 @@ exports[`Story Snapshots: PinnedLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -116818,6 +120148,9 @@ exports[`Story Snapshots: PinnedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -116855,6 +120188,9 @@ exports[`Story Snapshots: PinnedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -116871,6 +120207,9 @@ exports[`Story Snapshots: PinnedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -117074,6 +120413,9 @@ exports[`Story Snapshots: PinnedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -117090,6 +120432,9 @@ exports[`Story Snapshots: PinnedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -117517,6 +120862,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -117536,6 +120884,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -117582,6 +120933,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -117598,6 +120952,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -117722,6 +121079,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -117847,6 +121207,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -117950,6 +121313,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -118053,6 +121419,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -118519,6 +121888,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -118538,6 +121910,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -118584,6 +121959,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -118600,6 +121978,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -118746,6 +122127,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -118871,6 +122255,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -118996,6 +122383,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -119099,6 +122489,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -119202,6 +122595,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -119305,6 +122701,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -119408,6 +122807,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -119511,6 +122913,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -119990,6 +123395,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -120018,6 +123426,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -120055,6 +123466,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -120071,6 +123485,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -120195,6 +123612,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -120320,6 +123740,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -120423,6 +123846,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -120526,6 +123952,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -120992,6 +124421,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -121020,6 +124452,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -121057,6 +124492,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -121073,6 +124511,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -121219,6 +124660,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -121344,6 +124788,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -121469,6 +124916,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -121572,6 +125022,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -121675,6 +125128,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -121778,6 +125234,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -121881,6 +125340,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -121984,6 +125446,9 @@ exports[`Story Snapshots: ReactionsLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -122464,6 +125929,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButton should m "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -122483,6 +125951,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButton should m "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -122529,6 +126000,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButton should m "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -122545,6 +126019,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButton should m "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -122635,6 +126112,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButton should m "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -122714,6 +126194,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButton should m "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -122771,6 +126254,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButton should m "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -123227,6 +126713,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButton should m "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -123547,6 +127036,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButton should m "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -123867,6 +127359,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButton should m "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -124245,6 +127740,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButtonLargeFont "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -124273,6 +127771,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButtonLargeFont "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -124310,6 +127811,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButtonLargeFont "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -124326,6 +127830,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButtonLargeFont "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -124416,6 +127923,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButtonLargeFont "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -124495,6 +128005,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButtonLargeFont "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -124552,6 +128065,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButtonLargeFont "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -125008,6 +128524,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButtonLargeFont "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -125328,6 +128847,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButtonLargeFont "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -125648,6 +129170,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadButtonLargeFont "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -125845,6 +129370,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadReply should ma "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -125858,6 +129386,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadReply should ma "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -126098,6 +129629,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadReply should ma "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -126418,6 +129952,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadReply should ma "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -126738,6 +130275,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadReply should ma "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -127058,6 +130598,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadReply should ma "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -127255,6 +130798,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadReplyLargeFont "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -127268,6 +130814,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadReplyLargeFont "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -127508,6 +131057,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadReplyLargeFont "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -127828,6 +131380,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadReplyLargeFont "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -128148,6 +131703,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadReplyLargeFont "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -128468,6 +132026,9 @@ exports[`Story Snapshots: SequentialThreadMessagesFollowingThreadReplyLargeFont "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -128845,6 +132406,9 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -128864,6 +132428,9 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -128913,6 +132480,9 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -128929,6 +132499,9 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -129014,6 +132587,9 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -129376,6 +132952,9 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -129395,6 +132974,9 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -129444,6 +133026,9 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -129460,6 +133045,9 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -129475,6 +133063,9 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -129508,6 +133099,9 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -129525,6 +133119,15 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` { "color": "#2F343D", }, + { + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", + }, ] } > @@ -129547,6 +133150,9 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -129563,6 +133169,9 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -129609,6 +133218,9 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -129625,6 +133237,9 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -129710,6 +133325,9 @@ exports[`Story Snapshots: ShowButtonAsAttachment should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -130085,6 +133703,9 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -130113,6 +133734,9 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -130153,6 +133777,9 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -130169,6 +133796,9 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -130254,6 +133884,9 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -130616,6 +134249,9 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -130644,6 +134280,9 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -130684,6 +134323,9 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -130700,6 +134342,9 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -130715,6 +134360,9 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -130748,6 +134396,9 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -130765,6 +134416,15 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot { "color": "#2F343D", }, + { + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", + }, ] } > @@ -130787,6 +134447,9 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -130803,6 +134466,9 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -130849,6 +134515,9 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -130865,6 +134534,9 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -130950,6 +134622,9 @@ exports[`Story Snapshots: ShowButtonAsAttachmentLargeFont should match snapshot { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -131325,6 +135000,9 @@ exports[`Story Snapshots: StaticAvatar should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -131344,6 +135022,9 @@ exports[`Story Snapshots: StaticAvatar should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -131390,6 +135071,9 @@ exports[`Story Snapshots: StaticAvatar should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -131406,6 +135090,9 @@ exports[`Story Snapshots: StaticAvatar should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -131796,6 +135483,9 @@ exports[`Story Snapshots: StaticAvatarLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -131824,6 +135514,9 @@ exports[`Story Snapshots: StaticAvatarLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -131861,6 +135554,9 @@ exports[`Story Snapshots: StaticAvatarLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -131877,6 +135573,9 @@ exports[`Story Snapshots: StaticAvatarLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -132134,6 +135833,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -132154,6 +135856,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -132378,6 +136083,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -132398,6 +136106,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -132622,6 +136333,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -132642,6 +136356,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -132869,6 +136586,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -132889,6 +136609,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -133113,6 +136836,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -133133,6 +136859,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -133357,6 +137086,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -133377,6 +137109,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -133601,6 +137336,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -133621,6 +137359,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -133845,6 +137586,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -133865,6 +137609,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -134089,6 +137836,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -134109,6 +137859,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -134333,6 +138086,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -134353,6 +138109,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -134577,6 +138336,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -134597,6 +138359,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -134821,6 +138586,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -134841,6 +138609,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -135065,6 +138836,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -135085,6 +138859,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -135309,6 +139086,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -135329,6 +139109,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -135553,6 +139336,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -135573,6 +139359,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -135797,6 +139586,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -135817,6 +139609,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -136041,6 +139836,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -136061,6 +139859,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -136285,6 +140086,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -136305,6 +140109,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -136529,6 +140336,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -136549,6 +140359,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -136773,6 +140586,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -136793,6 +140609,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -137017,6 +140836,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -137037,6 +140859,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -137261,6 +141086,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -137281,6 +141109,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -137505,6 +141336,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -137525,6 +141359,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -137749,6 +141586,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -137769,6 +141609,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -137993,6 +141836,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -138013,6 +141859,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -138236,6 +142085,9 @@ exports[`Story Snapshots: SystemMessages should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -138472,6 +142324,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -138492,6 +142347,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -138716,6 +142574,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -138736,6 +142597,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -138960,6 +142824,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -138980,6 +142847,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -139207,6 +143077,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -139227,6 +143100,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -139451,6 +143327,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -139471,6 +143350,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -139695,6 +143577,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -139715,6 +143600,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -139939,6 +143827,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -139959,6 +143850,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -140183,6 +144077,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -140203,6 +144100,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -140427,6 +144327,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -140447,6 +144350,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -140671,6 +144577,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -140691,6 +144600,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -140915,6 +144827,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -140935,6 +144850,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -141159,6 +145077,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -141179,6 +145100,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -141403,6 +145327,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -141423,6 +145350,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -141647,6 +145577,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -141667,6 +145600,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -141891,6 +145827,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -141911,6 +145850,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -142135,6 +146077,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -142155,6 +146100,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -142379,6 +146327,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -142399,6 +146350,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -142623,6 +146577,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -142643,6 +146600,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -142867,6 +146827,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -142887,6 +146850,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -143111,6 +147077,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -143131,6 +147100,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -143355,6 +147327,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -143375,6 +147350,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -143599,6 +147577,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -143619,6 +147600,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -143843,6 +147827,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -143863,6 +147850,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -144087,6 +148077,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -144107,6 +148100,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -144331,6 +148327,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -144351,6 +148350,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -144574,6 +148576,9 @@ exports[`Story Snapshots: SystemMessagesLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -144935,6 +148940,9 @@ exports[`Story Snapshots: Temp should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -144954,6 +148962,9 @@ exports[`Story Snapshots: Temp should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -145004,6 +149015,9 @@ exports[`Story Snapshots: Temp should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -145020,6 +149034,9 @@ exports[`Story Snapshots: Temp should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -145402,6 +149419,9 @@ exports[`Story Snapshots: TempLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -145430,6 +149450,9 @@ exports[`Story Snapshots: TempLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -145471,6 +149494,9 @@ exports[`Story Snapshots: TempLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -145487,6 +149513,9 @@ exports[`Story Snapshots: TempLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -145877,6 +149906,9 @@ exports[`Story Snapshots: ThumbnailFromServer should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -145896,6 +149928,9 @@ exports[`Story Snapshots: ThumbnailFromServer should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -146023,6 +150058,9 @@ exports[`Story Snapshots: ThumbnailFromServer should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -146049,6 +150087,9 @@ exports[`Story Snapshots: ThumbnailFromServer should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -146065,6 +150106,9 @@ exports[`Story Snapshots: ThumbnailFromServer should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -146153,6 +150197,9 @@ exports[`Story Snapshots: ThumbnailFromServer should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -146169,6 +150216,9 @@ exports[`Story Snapshots: ThumbnailFromServer should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -146559,6 +150609,9 @@ exports[`Story Snapshots: ThumbnailFromServerLargeFont should match snapshot 1`] "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -146587,6 +150640,9 @@ exports[`Story Snapshots: ThumbnailFromServerLargeFont should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -146705,6 +150761,9 @@ exports[`Story Snapshots: ThumbnailFromServerLargeFont should match snapshot 1`] "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -146731,6 +150790,9 @@ exports[`Story Snapshots: ThumbnailFromServerLargeFont should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -146747,6 +150809,9 @@ exports[`Story Snapshots: ThumbnailFromServerLargeFont should match snapshot 1`] "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -146835,6 +150900,9 @@ exports[`Story Snapshots: ThumbnailFromServerLargeFont should match snapshot 1`] "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -146851,6 +150919,9 @@ exports[`Story Snapshots: ThumbnailFromServerLargeFont should match snapshot 1`] "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -147241,6 +151312,9 @@ exports[`Story Snapshots: TimeFormat should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -147260,6 +151334,9 @@ exports[`Story Snapshots: TimeFormat should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -147306,6 +151383,9 @@ exports[`Story Snapshots: TimeFormat should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -147322,6 +151402,9 @@ exports[`Story Snapshots: TimeFormat should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -147712,6 +151795,9 @@ exports[`Story Snapshots: TimeFormatLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -147740,6 +151826,9 @@ exports[`Story Snapshots: TimeFormatLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -147777,6 +151866,9 @@ exports[`Story Snapshots: TimeFormatLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -147793,6 +151885,9 @@ exports[`Story Snapshots: TimeFormatLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -148184,6 +152279,9 @@ exports[`Story Snapshots: Translated should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -148203,6 +152301,9 @@ exports[`Story Snapshots: Translated should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -148284,6 +152385,9 @@ exports[`Story Snapshots: Translated should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -148300,6 +152404,9 @@ exports[`Story Snapshots: Translated should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -148691,6 +152798,9 @@ exports[`Story Snapshots: TranslatedLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -148754,6 +152864,9 @@ exports[`Story Snapshots: TranslatedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -148791,6 +152904,9 @@ exports[`Story Snapshots: TranslatedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -148807,6 +152923,9 @@ exports[`Story Snapshots: TranslatedLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -149197,6 +153316,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -149216,6 +153338,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -149344,6 +153469,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -149370,6 +153498,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -149386,6 +153517,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -149440,6 +153574,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -149465,6 +153602,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -149481,6 +153621,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -149526,6 +153669,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -149551,6 +153697,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -149567,6 +153716,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -149581,6 +153733,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -149694,6 +153849,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -149720,6 +153878,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -149736,6 +153897,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -149790,6 +153954,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -149815,6 +153982,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -149831,6 +154001,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -149876,6 +154049,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -149901,6 +154077,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -149917,6 +154096,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -149927,6 +154109,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -149944,6 +154129,15 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot { "color": "#2F343D", }, + { + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", + }, ] } > @@ -149978,6 +154172,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -149994,6 +154191,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdown should match snapshot "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -150384,6 +154584,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -150412,6 +154615,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -150531,6 +154737,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -150557,6 +154766,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -150573,6 +154785,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -150627,6 +154842,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -150652,6 +154870,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -150668,6 +154889,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -150713,6 +154937,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -150738,6 +154965,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -150754,6 +154984,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -150768,6 +155001,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -150881,6 +155117,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -150907,6 +155146,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -150923,6 +155165,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -150977,6 +155222,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -151002,6 +155250,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -151018,6 +155269,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -151063,6 +155317,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -151088,6 +155345,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -151104,6 +155364,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -151114,6 +155377,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", } @@ -151131,6 +155397,15 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match { "color": "#2F343D", }, + { + "backgroundColor": "transparent", + "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], + "fontWeight": "700", + "textAlign": "left", + }, ] } > @@ -151165,6 +155440,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -151181,6 +155459,9 @@ exports[`Story Snapshots: TwoShortCustomFieldsWithMarkdownLargeFont should match "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -151571,6 +155852,9 @@ exports[`Story Snapshots: URL should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -151590,6 +155874,9 @@ exports[`Story Snapshots: URL should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -151684,6 +155971,9 @@ exports[`Story Snapshots: URL should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -151703,6 +155993,9 @@ exports[`Story Snapshots: URL should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -151782,6 +156075,9 @@ exports[`Story Snapshots: URL should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -151801,6 +156097,9 @@ exports[`Story Snapshots: URL should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -152165,6 +156464,9 @@ exports[`Story Snapshots: URL should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -152184,6 +156486,9 @@ exports[`Story Snapshots: URL should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -152230,6 +156535,9 @@ exports[`Story Snapshots: URL should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -152246,6 +156554,9 @@ exports[`Story Snapshots: URL should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -152382,6 +156693,9 @@ exports[`Story Snapshots: URL should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -152401,6 +156715,9 @@ exports[`Story Snapshots: URL should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -152639,6 +156956,9 @@ exports[`Story Snapshots: URL should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -152658,6 +156978,9 @@ exports[`Story Snapshots: URL should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -153042,6 +157365,9 @@ exports[`Story Snapshots: URLImagePreview should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -153061,6 +157387,9 @@ exports[`Story Snapshots: URLImagePreview should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -153155,6 +157484,9 @@ exports[`Story Snapshots: URLImagePreview should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -153174,6 +157506,9 @@ exports[`Story Snapshots: URLImagePreview should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -153538,6 +157873,9 @@ exports[`Story Snapshots: URLImagePreview should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -153557,6 +157895,9 @@ exports[`Story Snapshots: URLImagePreview should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -153990,6 +158331,9 @@ exports[`Story Snapshots: URLImagePreviewLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -154018,6 +158362,9 @@ exports[`Story Snapshots: URLImagePreviewLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -154103,6 +158450,9 @@ exports[`Story Snapshots: URLImagePreviewLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -154122,6 +158472,9 @@ exports[`Story Snapshots: URLImagePreviewLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -154486,6 +158839,9 @@ exports[`Story Snapshots: URLImagePreviewLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -154514,6 +158870,9 @@ exports[`Story Snapshots: URLImagePreviewLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -154938,6 +159297,9 @@ exports[`Story Snapshots: URLLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -154966,6 +159328,9 @@ exports[`Story Snapshots: URLLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -155051,6 +159416,9 @@ exports[`Story Snapshots: URLLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -155070,6 +159438,9 @@ exports[`Story Snapshots: URLLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -155149,6 +159520,9 @@ exports[`Story Snapshots: URLLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -155168,6 +159542,9 @@ exports[`Story Snapshots: URLLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -155532,6 +159909,9 @@ exports[`Story Snapshots: URLLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -155560,6 +159940,9 @@ exports[`Story Snapshots: URLLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -155597,6 +159980,9 @@ exports[`Story Snapshots: URLLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -155613,6 +159999,9 @@ exports[`Story Snapshots: URLLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -155749,6 +160138,9 @@ exports[`Story Snapshots: URLLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -155768,6 +160160,9 @@ exports[`Story Snapshots: URLLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -156006,6 +160401,9 @@ exports[`Story Snapshots: URLLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -156025,6 +160423,9 @@ exports[`Story Snapshots: URLLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -156409,6 +160810,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -156428,6 +160832,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -156474,6 +160881,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -156490,6 +160900,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -156781,6 +161194,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -156800,6 +161216,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -157115,6 +161534,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -157475,6 +161897,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -157494,6 +161919,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -157540,6 +161968,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -157556,6 +161987,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -157847,6 +162281,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -157866,6 +162303,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -158181,6 +162621,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -158541,6 +162984,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -158560,6 +163006,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -158606,6 +163055,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -158622,6 +163074,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -158913,6 +163368,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -158932,6 +163390,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -159247,6 +163708,9 @@ exports[`Story Snapshots: Usernames should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -159620,6 +164084,9 @@ exports[`Story Snapshots: WithAlias should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -159638,6 +164105,9 @@ exports[`Story Snapshots: WithAlias should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -159658,6 +164128,9 @@ exports[`Story Snapshots: WithAlias should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -159704,6 +164177,9 @@ exports[`Story Snapshots: WithAlias should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -159720,6 +164196,9 @@ exports[`Story Snapshots: WithAlias should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -160097,6 +164576,9 @@ exports[`Story Snapshots: WithAlias should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -160115,6 +164597,9 @@ exports[`Story Snapshots: WithAlias should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -160135,6 +164620,9 @@ exports[`Story Snapshots: WithAlias should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -160181,6 +164669,9 @@ exports[`Story Snapshots: WithAlias should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -160197,6 +164688,9 @@ exports[`Story Snapshots: WithAlias should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -160587,6 +165081,9 @@ exports[`Story Snapshots: WithAliasLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -160605,6 +165102,9 @@ exports[`Story Snapshots: WithAliasLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -160634,6 +165134,9 @@ exports[`Story Snapshots: WithAliasLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -160671,6 +165174,9 @@ exports[`Story Snapshots: WithAliasLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -160687,6 +165193,9 @@ exports[`Story Snapshots: WithAliasLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -161064,6 +165573,9 @@ exports[`Story Snapshots: WithAliasLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -161082,6 +165594,9 @@ exports[`Story Snapshots: WithAliasLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -161111,6 +165626,9 @@ exports[`Story Snapshots: WithAliasLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -161148,6 +165666,9 @@ exports[`Story Snapshots: WithAliasLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -161164,6 +165685,9 @@ exports[`Story Snapshots: WithAliasLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -161554,6 +166078,9 @@ exports[`Story Snapshots: WithAudio should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -161573,6 +166100,9 @@ exports[`Story Snapshots: WithAudio should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -161629,6 +166159,9 @@ exports[`Story Snapshots: WithAudio should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -161645,6 +166178,9 @@ exports[`Story Snapshots: WithAudio should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -162131,6 +166667,9 @@ exports[`Story Snapshots: WithAudio should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -162147,6 +166686,9 @@ exports[`Story Snapshots: WithAudio should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -162586,6 +167128,9 @@ exports[`Story Snapshots: WithAudio should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -162602,6 +167147,9 @@ exports[`Story Snapshots: WithAudio should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -163538,6 +168086,9 @@ exports[`Story Snapshots: WithAudio should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -163554,6 +168105,9 @@ exports[`Story Snapshots: WithAudio should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -164460,6 +169014,9 @@ exports[`Story Snapshots: WithAudioLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -164488,6 +169045,9 @@ exports[`Story Snapshots: WithAudioLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -164535,6 +169095,9 @@ exports[`Story Snapshots: WithAudioLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -164551,6 +169114,9 @@ exports[`Story Snapshots: WithAudioLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -165027,6 +169593,9 @@ exports[`Story Snapshots: WithAudioLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -165043,6 +169612,9 @@ exports[`Story Snapshots: WithAudioLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -165263,6 +169835,9 @@ exports[`Story Snapshots: WithAudioLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -165279,6 +169854,9 @@ exports[`Story Snapshots: WithAudioLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -166128,6 +170706,9 @@ exports[`Story Snapshots: WithAudioLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -166144,6 +170725,9 @@ exports[`Story Snapshots: WithAudioLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -166434,6 +171018,9 @@ exports[`Story Snapshots: WithAudioLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -166450,6 +171037,9 @@ exports[`Story Snapshots: WithAudioLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -167356,6 +171946,9 @@ exports[`Story Snapshots: WithFile should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -167375,6 +171968,9 @@ exports[`Story Snapshots: WithFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -167508,6 +172104,9 @@ exports[`Story Snapshots: WithFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -167524,6 +172123,9 @@ exports[`Story Snapshots: WithFile should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -167566,6 +172168,9 @@ exports[`Story Snapshots: WithFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -167582,6 +172187,9 @@ exports[`Story Snapshots: WithFile should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -167917,6 +172525,9 @@ exports[`Story Snapshots: WithFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -167933,6 +172544,9 @@ exports[`Story Snapshots: WithFile should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -167975,6 +172589,9 @@ exports[`Story Snapshots: WithFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -167991,6 +172608,9 @@ exports[`Story Snapshots: WithFile should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -168159,6 +172779,9 @@ exports[`Story Snapshots: WithFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -168175,6 +172798,9 @@ exports[`Story Snapshots: WithFile should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -168217,6 +172843,9 @@ exports[`Story Snapshots: WithFile should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -168233,6 +172862,9 @@ exports[`Story Snapshots: WithFile should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -168675,6 +173307,9 @@ exports[`Story Snapshots: WithFileLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -168703,6 +173338,9 @@ exports[`Story Snapshots: WithFileLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -168827,6 +173465,9 @@ exports[`Story Snapshots: WithFileLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -168843,6 +173484,9 @@ exports[`Story Snapshots: WithFileLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -168885,6 +173529,9 @@ exports[`Story Snapshots: WithFileLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -168901,6 +173548,9 @@ exports[`Story Snapshots: WithFileLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -169236,6 +173886,9 @@ exports[`Story Snapshots: WithFileLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -169252,6 +173905,9 @@ exports[`Story Snapshots: WithFileLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -169294,6 +173950,9 @@ exports[`Story Snapshots: WithFileLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -169310,6 +173969,9 @@ exports[`Story Snapshots: WithFileLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -169752,6 +174414,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -169771,6 +174436,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -169827,6 +174495,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -169843,6 +174514,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -170426,6 +175100,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -170445,6 +175122,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -170491,6 +175171,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -170507,6 +175190,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -170561,6 +175247,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -170577,6 +175266,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -170829,6 +175521,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -170845,6 +175540,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -171589,6 +176287,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -171608,6 +176309,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -171654,6 +176358,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -171670,6 +176377,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -172377,6 +177087,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -172396,6 +177109,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -172452,6 +177168,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -172468,6 +177187,9 @@ exports[`Story Snapshots: WithImage should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -173051,6 +177773,9 @@ exports[`Story Snapshots: WithImageLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -173079,6 +177804,9 @@ exports[`Story Snapshots: WithImageLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -173126,6 +177854,9 @@ exports[`Story Snapshots: WithImageLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -173142,6 +177873,9 @@ exports[`Story Snapshots: WithImageLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -173517,6 +178251,9 @@ exports[`Story Snapshots: WithImageLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -173533,6 +178270,9 @@ exports[`Story Snapshots: WithImageLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -174079,6 +178819,9 @@ exports[`Story Snapshots: WithImageLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -174098,6 +178841,9 @@ exports[`Story Snapshots: WithImageLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -174144,6 +178890,9 @@ exports[`Story Snapshots: WithImageLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -174160,6 +178909,9 @@ exports[`Story Snapshots: WithImageLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -174867,6 +179619,9 @@ exports[`Story Snapshots: WithImageLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -174895,6 +179650,9 @@ exports[`Story Snapshots: WithImageLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -174942,6 +179700,9 @@ exports[`Story Snapshots: WithImageLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -174958,6 +179719,9 @@ exports[`Story Snapshots: WithImageLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -175541,6 +180305,9 @@ exports[`Story Snapshots: WithVideo should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -175560,6 +180327,9 @@ exports[`Story Snapshots: WithVideo should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -175616,6 +180386,9 @@ exports[`Story Snapshots: WithVideo should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -175632,6 +180405,9 @@ exports[`Story Snapshots: WithVideo should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -176009,6 +180785,9 @@ exports[`Story Snapshots: WithVideo should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -176025,6 +180804,9 @@ exports[`Story Snapshots: WithVideo should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -176529,6 +181311,9 @@ exports[`Story Snapshots: WithVideo should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -176548,6 +181333,9 @@ exports[`Story Snapshots: WithVideo should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -176594,6 +181382,9 @@ exports[`Story Snapshots: WithVideo should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -176610,6 +181401,9 @@ exports[`Story Snapshots: WithVideo should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -177262,6 +182056,9 @@ exports[`Story Snapshots: WithVideoLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -177290,6 +182087,9 @@ exports[`Story Snapshots: WithVideoLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -177337,6 +182137,9 @@ exports[`Story Snapshots: WithVideoLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -177353,6 +182156,9 @@ exports[`Story Snapshots: WithVideoLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -177894,6 +182700,9 @@ exports[`Story Snapshots: WithVideoLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -177922,6 +182731,9 @@ exports[`Story Snapshots: WithVideoLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -178427,6 +183239,9 @@ exports[`Story Snapshots: WithVideoLargeFont should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -178455,6 +183270,9 @@ exports[`Story Snapshots: WithVideoLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -178492,6 +183310,9 @@ exports[`Story Snapshots: WithVideoLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -178508,6 +183329,9 @@ exports[`Story Snapshots: WithVideoLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -178986,6 +183810,9 @@ exports[`Story Snapshots: WithoutHeader should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -179002,6 +183829,9 @@ exports[`Story Snapshots: WithoutHeader should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -179225,6 +184055,9 @@ exports[`Story Snapshots: WithoutHeaderLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -179241,6 +184074,9 @@ exports[`Story Snapshots: WithoutHeaderLargeFont should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } diff --git a/app/containers/message/components/stories/__tests__/__snapshots__/leaves.test.tsx.snap b/app/containers/message/components/stories/__tests__/__snapshots__/leaves.test.tsx.snap index d56ec17f9da..4dbc206d95b 100644 --- a/app/containers/message/components/stories/__tests__/__snapshots__/leaves.test.tsx.snap +++ b/app/containers/message/components/stories/__tests__/__snapshots__/leaves.test.tsx.snap @@ -106,6 +106,9 @@ exports[`Story Snapshots: Broadcast should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -230,6 +233,9 @@ exports[`Story Snapshots: CallButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -266,6 +272,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -282,6 +291,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -436,6 +448,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "fontFamily": "Inter", "fontSize": 16, "fontStyle": "italic", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -455,6 +470,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -576,6 +594,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -597,6 +618,9 @@ exports[`Story Snapshots: Discussion should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -902,6 +926,9 @@ exports[`Story Snapshots: GIF should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "textAlign": "left", }, @@ -1016,6 +1043,9 @@ exports[`Story Snapshots: Item should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1651,6 +1681,9 @@ exports[`Story Snapshots: MultipleImagesNewServer should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 20, "textAlign": "left", @@ -1890,6 +1923,9 @@ exports[`Story Snapshots: MultipleImagesNewServer should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 20, "textAlign": "left", @@ -2129,6 +2165,9 @@ exports[`Story Snapshots: MultipleImagesNewServer should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 20, "textAlign": "left", @@ -2368,6 +2407,9 @@ exports[`Story Snapshots: MultipleImagesNewServer should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 20, "textAlign": "left", @@ -2607,6 +2649,9 @@ exports[`Story Snapshots: MultipleImagesNewServer should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 20, "textAlign": "left", @@ -2662,6 +2707,9 @@ exports[`Story Snapshots: MultipleImagesOldServer should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2678,6 +2726,9 @@ exports[`Story Snapshots: MultipleImagesOldServer should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -2886,6 +2937,9 @@ exports[`Story Snapshots: MultipleImagesOldServer should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2902,6 +2956,9 @@ exports[`Story Snapshots: MultipleImagesOldServer should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -3110,6 +3167,9 @@ exports[`Story Snapshots: MultipleImagesOldServer should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3126,6 +3186,9 @@ exports[`Story Snapshots: MultipleImagesOldServer should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -3334,6 +3397,9 @@ exports[`Story Snapshots: MultipleImagesOldServer should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3350,6 +3416,9 @@ exports[`Story Snapshots: MultipleImagesOldServer should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -3674,6 +3743,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -3777,6 +3849,9 @@ exports[`Story Snapshots: Reactions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 18, "textAlign": "left", @@ -4017,6 +4092,9 @@ exports[`Story Snapshots: RepliedThread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -4030,6 +4108,9 @@ exports[`Story Snapshots: RepliedThread should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4323,6 +4404,9 @@ exports[`Story Snapshots: SingleImageNewServer should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 20, "textAlign": "left", @@ -4559,6 +4643,9 @@ exports[`Story Snapshots: SingleImageOldServer should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -4575,6 +4662,9 @@ exports[`Story Snapshots: SingleImageOldServer should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -4831,6 +4921,9 @@ exports[`Story Snapshots: Thread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 16, "textAlign": "left", @@ -4910,6 +5003,9 @@ exports[`Story Snapshots: Thread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -4967,6 +5063,9 @@ exports[`Story Snapshots: Thread should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -5111,6 +5210,9 @@ exports[`Story Snapshots: Time should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -5231,6 +5333,9 @@ exports[`Story Snapshots: Urls should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -5250,6 +5355,9 @@ exports[`Story Snapshots: Urls should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5325,6 +5433,9 @@ exports[`Story Snapshots: User should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -5344,6 +5455,9 @@ exports[`Story Snapshots: User should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", diff --git a/app/containers/message/docs/ARCHITECTURE.md b/app/containers/message/docs/ARCHITECTURE.md index c6dfac99acd..e99c2413dda 100644 --- a/app/containers/message/docs/ARCHITECTURE.md +++ b/app/containers/message/docs/ARCHITECTURE.md @@ -37,9 +37,9 @@ Each store changes at a different frequency and has a different audience, and co - **MessageRoomStore** is mostly static for the life of a Room: navigation callbacks, `rid`, `baseUrl`, and the logged user are captured once (see `FROZEN_KEYS`) and never resynced, because they're expected to be referentially stable for the Room's lifetime. A second, explicitly reactive tail (`timeFormat`, `autoTranslateRoom`, `autoTranslateLanguage`, `archived`, `broadcast`, `isReadReceiptEnabled`, `Message_GroupingPeriod`) is pushed on every render via a dependency-gated `useEffect`, because those _can_ change mid-session (e.g. a Room gets archived). - **MessageActionStore** is shared Room-wide state that both the Message list (to highlight the row being edited) and `MessageComposer` (to know what's being quoted/edited) read — it has to live above both, not per-row. -### Granular selectors + `useShallow` + `'use memo'` +### Granular selectors + `useShallow` + React Compiler -Every store exposes narrow, single-purpose hooks (`useReactions`, `useBlocks`, `useMessageAuthor`, `useIsEncrypted`, …) instead of one broad "give me the message" hook — each leaf component subscribes to only the fields it renders, so a field it doesn't use changing elsewhere on the record never re-renders it. Hooks returning more than one field use Zustand's `useShallow` so a same-value re-tick doesn't produce a new object reference (`useBlocks`, `useThreadData`, `useMessageAuthor`, `useContentData`, etc.). Components use the `'use memo'` directive (React Compiler, `babel-plugin-react-compiler`) rather than hand-written `useMemo`/`useCallback` for their own memoization. +Every store exposes narrow, single-purpose hooks (`useReactions`, `useBlocks`, `useMessageAuthor`, `useIsEncrypted`, …) instead of one broad "give me the message" hook — each leaf component subscribes to only the fields it renders, so a field it doesn't use changing elsewhere on the record never re-renders it. Hooks returning more than one field use Zustand's `useShallow` so a same-value re-tick doesn't produce a new object reference (`useBlocks`, `useThreadData`, `useMessageAuthor`, `useContentData`, etc.). Memoization comes from React Compiler (`babel-plugin-react-compiler`, `compilationMode: 'infer'`) rather than hand-written `useMemo`/`useCallback`. Two dev-only guards protect this pattern from silent regressions (both no-op in production builds): diff --git a/app/containers/message/hooks/__tests__/useMessageAccessibilityHint.test.tsx b/app/containers/message/hooks/__tests__/useMessageAccessibilityHint.test.tsx index 16ae3bcc066..2acc27bb28d 100644 --- a/app/containers/message/hooks/__tests__/useMessageAccessibilityHint.test.tsx +++ b/app/containers/message/hooks/__tests__/useMessageAccessibilityHint.test.tsx @@ -8,7 +8,7 @@ import { type TAnyMessageModel } from '../../../../definitions'; import { mockedStore } from '../../../../reducers/mockedStore'; const buildItem = (overrides: Partial = {}): TAnyMessageModel => - ({ id: 'msg-1', ...overrides } as TAnyMessageModel); + ({ id: 'msg-1', ...overrides }) as TAnyMessageModel; const renderHint = (item: TAnyMessageModel, config: Partial = {}) => { const spy = jest.fn(); diff --git a/app/containers/message/hooks/__tests__/useMessageAccessibilityLabel.test.tsx b/app/containers/message/hooks/__tests__/useMessageAccessibilityLabel.test.tsx index f4352341876..3b78be202a2 100644 --- a/app/containers/message/hooks/__tests__/useMessageAccessibilityLabel.test.tsx +++ b/app/containers/message/hooks/__tests__/useMessageAccessibilityLabel.test.tsx @@ -24,7 +24,7 @@ const buildItem = (overrides: Partial = {}): TAnyMessageModel u: { _id: 'u1', username: 'alice', name: 'Alice' }, unread: false, ...overrides - } as TAnyMessageModel); + }) as TAnyMessageModel; const renderLabel = (item: TAnyMessageModel, config: Partial = {}, previousItem?: TAnyMessageModel) => { const spy = jest.fn(); diff --git a/app/containers/message/hooks/useFile.tsx b/app/containers/message/hooks/useFile.tsx index 6506d5b8e7c..e21898e4b45 100644 --- a/app/containers/message/hooks/useFile.tsx +++ b/app/containers/message/hooks/useFile.tsx @@ -5,8 +5,6 @@ import { getMessageById } from '../../../lib/database/services/Message'; import { getThreadMessageById } from '../../../lib/database/services/ThreadMessage'; export const useFile = (file: IAttachment, messageId: string) => { - 'use memo'; - const [localFile, setLocalFile] = useState(file); const [isMessagePersisted, setIsMessagePersisted] = useState(!!messageId); useEffect(() => { diff --git a/app/containers/message/hooks/useMediaAutoDownload.tsx b/app/containers/message/hooks/useMediaAutoDownload.tsx index c3deec8da0f..ac17bf25001 100644 --- a/app/containers/message/hooks/useMediaAutoDownload.tsx +++ b/app/containers/message/hooks/useMediaAutoDownload.tsx @@ -75,8 +75,6 @@ export const useMediaAutoDownload = ({ author?: IUserMessage; showAttachment?: (file: IAttachment) => void; }) => { - 'use memo'; - const fileType = getFileType(file) ?? 'image'; const id = useMessageId(); const baseUrl = useBaseUrl(); diff --git a/app/containers/message/hooks/useMessageAccessibilityActions.ts b/app/containers/message/hooks/useMessageAccessibilityActions.ts index bfc02ae4e1d..5c84cc55074 100644 --- a/app/containers/message/hooks/useMessageAccessibilityActions.ts +++ b/app/containers/message/hooks/useMessageAccessibilityActions.ts @@ -3,8 +3,6 @@ import { type AccessibilityActionInfo } from 'react-native'; import i18n from '../../../i18n'; export const useMessageAccessibilityActions = (isDisabled: boolean): AccessibilityActionInfo[] | undefined => { - 'use memo'; - if (isDisabled) { return undefined; } diff --git a/app/containers/message/hooks/useMessageAccessibilityHint.ts b/app/containers/message/hooks/useMessageAccessibilityHint.ts index 7d567c94038..c033e71e7a0 100644 --- a/app/containers/message/hooks/useMessageAccessibilityHint.ts +++ b/app/containers/message/hooks/useMessageAccessibilityHint.ts @@ -3,8 +3,6 @@ import { useIsThreadRoom } from '../stores/MessageRoomStore'; import { useThreadData } from '../stores/MessageStore'; export const useMessageAccessibilityHint = (): string | undefined => { - 'use memo'; - const { tlm, tcount } = useThreadData(); const isThreadRoom = useIsThreadRoom(); diff --git a/app/containers/message/index.tsx b/app/containers/message/index.tsx index 37fff0f8caf..06a2c3a0a44 100644 --- a/app/containers/message/index.tsx +++ b/app/containers/message/index.tsx @@ -19,8 +19,6 @@ interface IMessageContainerProps { } const MessageContainer = (props: IMessageContainerProps) => { - 'use memo'; - const { item, previousItem, dateSeparator, showUnreadSeparator } = props; return ( { - 'use memo'; - const [store] = useState(() => externalStore ?? createMessageActionStore(initialAction)); return {children}; }; diff --git a/app/containers/message/stores/MessageRoomStore.tsx b/app/containers/message/stores/MessageRoomStore.tsx index d397c438ed4..8f6914c6c07 100644 --- a/app/containers/message/stores/MessageRoomStore.tsx +++ b/app/containers/message/stores/MessageRoomStore.tsx @@ -105,8 +105,6 @@ const useFrozenHandlersGuard: (state: MessageRoomState) => void = __DEV__ : useFrozenHandlersGuardProd; const MessageRoomStoreProvider = ({ children, ...state }: { children: ReactNode } & MessageRoomState): ReactElement => { - 'use memo'; - const [store] = useState(() => createMessageRoomStore(state)); useFrozenHandlersGuard(state); @@ -137,8 +135,6 @@ const MessageRoomStoreProvider = ({ children, ...state }: { children: ReactNode }; const MessageRoomProviderWithSetting = ({ children, ...state }: { children: ReactNode } & MessageRoomState): ReactElement => { - 'use memo'; - const Message_TimeFormat = useSetting('Message_TimeFormat') as string; return ( @@ -149,8 +145,6 @@ const MessageRoomProviderWithSetting = ({ children, ...state }: { children: Reac }; export const MessageRoomProvider = ({ children, ...state }: { children: ReactNode } & MessageRoomState): ReactElement => { - 'use memo'; - return state.timeFormat != null ? ( {children} ) : ( diff --git a/app/containers/message/stores/MessageStore.tsx b/app/containers/message/stores/MessageStore.tsx index e12f6a368fd..09d6f0b81ea 100644 --- a/app/containers/message/stores/MessageStore.tsx +++ b/app/containers/message/stores/MessageStore.tsx @@ -133,8 +133,6 @@ export const MessageProvider = ({ isIgnored?: boolean; children: ReactNode; }): ReactElement => { - 'use memo'; - const [store] = useState(() => createMessageStore({ item, previousItem, isIgnored: isIgnored ?? false, onPress, onLongPress, threadBadgeColor }) ); @@ -331,8 +329,6 @@ export const useRevealIgnored = (): (() => void) => useMessageStore(s => s.revea // press guard. longPressable drops encrypted messages (tap can still open a thread; the action // sheet is suppressed); revealsIgnored is tappable ∧ isIgnored (a tap reveals instead of pressing). export const useMessageTouchable = (): { tappable: boolean; longPressable: boolean; revealsIgnored: boolean } => { - 'use memo'; - const isInfo = useIsInfoMessage(); const { hasError, isTemp } = useMessageStatus(); const isEncrypted = useIsEncrypted(); @@ -348,8 +344,6 @@ export const useMessageTouchable = (): { tappable: boolean; longPressable: boole }; export const useMessageLongPress = (): (() => void) => { - 'use memo'; - const item = useMessageItem(); const { longPressable } = useMessageTouchable(); const onLongPress = useMessageStore(s => s.onLongPress); @@ -362,8 +356,6 @@ export const useMessageLongPress = (): (() => void) => { }; export const useOnLinkPress = (): ((link: string) => void) => { - 'use memo'; - const item = useMessageItem(); const jumpToMessage = useJumpToMessage(); const { theme } = useTheme(); @@ -377,8 +369,6 @@ export const useOnLinkPress = (): ((link: string) => void) => { }; export const useMessagePress = (): (() => void) => { - 'use memo'; - const item = useMessageItem(); const isThreadRoom = useIsThreadRoom(); const onPress = useMessageStore(s => s.onPress); diff --git a/app/containers/message/stores/__tests__/MessageStore.test.tsx b/app/containers/message/stores/__tests__/MessageStore.test.tsx index fd8a8a08dee..e867a51f41b 100644 --- a/app/containers/message/stores/__tests__/MessageStore.test.tsx +++ b/app/containers/message/stores/__tests__/MessageStore.test.tsx @@ -163,14 +163,13 @@ const renderDerived = ( const wrapWithProviders = (item: TAnyMessageModel, config?: Partial) => - ({ children }: { children: ReactNode }) => - ( - - - {children} - - - ); + ({ children }: { children: ReactNode }) => ( + + + {children} + + + ); // Like wrapWithProviders, but also forwards the row-level MessageProvider props (onPress, // onLongPress, isIgnored) needed by the touch/press/long-press hooks. diff --git a/app/definitions/ILoggedUser.ts b/app/definitions/ILoggedUser.ts index 12f7c362af9..ecd78aa5fd1 100644 --- a/app/definitions/ILoggedUser.ts +++ b/app/definitions/ILoggedUser.ts @@ -30,8 +30,10 @@ export interface ILoggedUser { requirePasswordChange?: boolean; } -export interface ILoggedUserResultFromServer - extends Omit { +export interface ILoggedUserResultFromServer extends Omit< + ILoggedUser, + 'enableMessageParserEarlyAdoption' | 'showMessageInMainThread' +> { settings: IUserSettings; } diff --git a/app/definitions/ITeam.ts b/app/definitions/ITeam.ts index 17db2a883c7..d66d2f72b78 100644 --- a/app/definitions/ITeam.ts +++ b/app/definitions/ITeam.ts @@ -48,11 +48,10 @@ export interface ITeamStats { teamStats: Array; } -export interface IServerTeamUpdateRoom - extends Omit< - IServerRoom, - 'topic' | 'joinCodeRequired' | 'description' | 'jitsiTimeout' | 'usersCount' | 'e2eKeyId' | 'avatarETag' - > { +export interface IServerTeamUpdateRoom extends Omit< + IServerRoom, + 'topic' | 'joinCodeRequired' | 'description' | 'jitsiTimeout' | 'usersCount' | 'e2eKeyId' | 'avatarETag' +> { teamId: string; teamDefault: boolean; } diff --git a/app/definitions/rest/helpers/index.ts b/app/definitions/rest/helpers/index.ts index 285b25c0907..78202235310 100644 --- a/app/definitions/rest/helpers/index.ts +++ b/app/definitions/rest/helpers/index.ts @@ -4,10 +4,10 @@ import { type Endpoints } from '../v1'; type ReplacePlaceholders = string extends TPath ? TPath : TPath extends `${infer Start}:${infer _Param}/${infer Rest}` - ? `${Start}${string}/${ReplacePlaceholders}` - : TPath extends `${infer Start}:${infer _Param}` - ? `${Start}${string}` - : TPath; + ? `${Start}${string}/${ReplacePlaceholders}` + : TPath extends `${infer Start}:${infer _Param}` + ? `${Start}${string}` + : TPath; type KeyOfEach = T extends any ? keyof T : never; @@ -29,7 +29,7 @@ type OperationsByPathPatternAndMethod< path: ReplacePlaceholders; params: GetParams; result: GetResult; - } + } : never; type OperationsByPathPattern = TPathPattern extends any @@ -49,12 +49,12 @@ type Path = Operations['path']; export type Serialized = T extends Date ? Exclude | string : T extends boolean | number | string | null | undefined - ? T - : T extends {} - ? { - [K in keyof T]: Serialized; - } - : null; + ? T + : T extends {} + ? { + [K in keyof T]: Serialized; + } + : null; export type MatchPathPattern = TPath extends any ? Extract['pathPattern'] diff --git a/app/definitions/rest/v1/groups.ts b/app/definitions/rest/v1/groups.ts index 93ac8c9f43f..6e246305d35 100644 --- a/app/definitions/rest/v1/groups.ts +++ b/app/definitions/rest/v1/groups.ts @@ -90,4 +90,9 @@ export type GroupsEndpoints = { messages: IMessageFromServer[]; }; }; + 'groups.open': { + POST: (params: { roomId: IServerRoom['_id'] }) => { + success: boolean; + }; + }; }; diff --git a/app/definitions/utils.ts b/app/definitions/utils.ts index 2f4eb398132..097934df806 100644 --- a/app/definitions/utils.ts +++ b/app/definitions/utils.ts @@ -15,10 +15,10 @@ export type KeyOfEach = T extends any ? keyof T : never; export type Jsonify = T extends Date ? string : T extends object - ? { - [k in keyof T]: Jsonify; - } - : T; + ? { + [k in keyof T]: Jsonify; + } + : T; export type AtLeast = Partial & Pick; diff --git a/app/lib/database/__tests__/mockedWatermelonDB.tsx b/app/lib/database/__tests__/mockedWatermelonDB.tsx new file mode 100644 index 00000000000..49152aba1bc --- /dev/null +++ b/app/lib/database/__tests__/mockedWatermelonDB.tsx @@ -0,0 +1,168 @@ +// WatermelonDB stand-ins: pending changes, batch inside a writer, and the serialized writer lock. + +export const tick = () => Promise.resolve(); + +// Let every already-queued microtask/promise chain settle. +export const flush = () => new Promise(resolve => setImmediate(resolve)); + +export const deferred = () => { + let resolve: () => void = () => undefined; + const promise = new Promise(r => { + resolve = r; + }); + return { promise, resolve }; +}; + +export interface IFakeRecord { + _preparedState: string | null; + prepareUpdate: (updater?: (record: any) => void) => any; + prepareDestroyPermanently: () => any; + [key: string]: any; +} + +export interface ILogEntry { + record: string; + op: string; + insideWriter: boolean; +} + +interface IFakeModelHost { + insideWriter: boolean; + prepareLog: ILogEntry[]; +} + +export class FakeModel { + id: string; + table: string; + _preparedState: string | null = null; + _db?: IFakeModelHost; + [key: string]: any; + + constructor(table: string, id: string, props: Record = {}, db?: IFakeModelHost) { + this._db = db; + this.table = table; + this.id = id; + Object.assign(this, props); + } + + get _debugName() { + return `${this.table}#${this.id}`; + } + + _log(op: string) { + this._db?.prepareLog.push({ record: this._debugName, op, insideWriter: this._db.insideWriter }); + } + + prepareDestroyPermanently() { + this._log('destroyPermanently'); + if (this._preparedState) { + throw new Error(`Cannot destroy permanently record with pending changes (${this._debugName})`); + } + this._preparedState = 'destroyPermanently'; + return this; + } + + prepareUpdate(updater: (m: any) => void = () => {}) { + this._log('update'); + if (this._preparedState) { + throw new Error(`Cannot update a record with pending changes (${this._debugName})`); + } + updater(this); + this._preparedState = 'update'; + return this; + } +} + +// A record identified by a `table#id` debug name, for tests that don't need a whole FakeDatabase. +export const makeFakeRecord = (debugName: string, fields: Record = {}): IFakeRecord => { + const [table, id] = debugName.split('#'); + return new FakeModel(table, id, fields) as unknown as IFakeRecord; +}; + +// Serialized writer lock, like WatermelonDB's. +export const createWriterLock = () => { + let queue: Promise = Promise.resolve(); + return (work: () => Promise): Promise => { + const run = queue.then(() => work()); + queue = run.catch(() => undefined); + return run; + }; +}; + +// db.batch commits prepared records, clearing their pending state (like the real writer). +export const commitPreparedRecords = (...args: any[]) => { + args.flat().forEach((item: any) => { + if (item && typeof item === 'object' && '_preparedState' in item) { + item._preparedState = null; + } + }); + return Promise.resolve(undefined); +}; + +export const createBatchMock = () => jest.fn(commitPreparedRecords); + +// Whether the mocked `log` received a WatermelonDB "pending changes" error. +export const loggedPendingChanges = (log: unknown) => + (log as jest.Mock).mock.calls.some(([error]) => /pending changes/.test(error?.message ?? '')); + +// An instrumented `database.active` that records what each writer prepared, found and batched. +export class FakeDatabase { + insideWriter = false; + prepareLog: ILogEntry[] = []; + findLog: { record: string; insideWriter: boolean }[] = []; + batches: string[][] = []; + collections: Record> = { + messages: new Map(), + threads: new Map(), + thread_messages: new Map() + }; + _queue = createWriterLock(); + + add(table: string, id: string, props: Record = {}) { + const record = new FakeModel(table, id, props, this); + if (!this.collections[table]) { + this.collections[table] = new Map(); + } + this.collections[table].set(id, record); + return record; + } + + get(table: string) { + return { + find: async (id: string) => { + this.findLog.push({ record: `${table}#${id}`, insideWriter: this.insideWriter }); + await tick(); + const record = this.collections[table]?.get(id); + if (!record) { + throw new Error(`Record ${table}#${id} not found`); + } + return record; + } + }; + } + + write(work: () => Promise): Promise { + return this._queue(async () => { + this.insideWriter = true; + try { + return await work(); + } finally { + this.insideWriter = false; + } + }); + } + + async batch(records: FakeModel[]) { + if (!this.insideWriter) { + throw new Error('Database.batch() can only be called from inside of a Writer'); + } + await tick(); + this.batches.push(records.map(r => `${r._debugName}:${r._preparedState}`)); + records.forEach(record => { + if (!record._preparedState) { + throw new Error("Cannot batch a record that doesn't have a prepared create/update/delete"); + } + record._preparedState = null; + }); + } +} diff --git a/app/lib/database/interfaces.ts b/app/lib/database/interfaces.ts index 3308a0bb9ca..aba13be4c94 100644 --- a/app/lib/database/interfaces.ts +++ b/app/lib/database/interfaces.ts @@ -24,30 +24,30 @@ export type TAppDatabaseNames = type ObjectType = T extends typeof models.SUBSCRIPTIONS_TABLE ? definitions.TSubscriptionModel : T extends typeof models.ROOMS_TABLE - ? definitions.TRoomModel - : T extends typeof models.MESSAGES_TABLE - ? definitions.TMessageModel - : T extends typeof models.THREADS_TABLE - ? definitions.TThreadModel - : T extends typeof models.THREAD_MESSAGES_TABLE - ? definitions.TThreadMessageModel - : T extends typeof models.CUSTOM_EMOJIS_TABLE - ? definitions.TCustomEmojiModel - : T extends typeof models.FREQUENTLY_USED_EMOJIS_TABLE - ? definitions.TFrequentlyUsedEmojiModel - : T extends typeof models.UPLOADS_TABLE - ? definitions.TUploadModel - : T extends typeof models.SETTINGS_TABLE - ? definitions.TSettingsModel - : T extends typeof models.ROLES_TABLE - ? definitions.TRoleModel - : T extends typeof models.PERMISSIONS_TABLE - ? definitions.TPermissionModel - : T extends typeof models.SLASH_COMMANDS_TABLE - ? definitions.TSlashCommandModel - : T extends typeof models.USERS_TABLE - ? definitions.TUserModel - : never; + ? definitions.TRoomModel + : T extends typeof models.MESSAGES_TABLE + ? definitions.TMessageModel + : T extends typeof models.THREADS_TABLE + ? definitions.TThreadModel + : T extends typeof models.THREAD_MESSAGES_TABLE + ? definitions.TThreadMessageModel + : T extends typeof models.CUSTOM_EMOJIS_TABLE + ? definitions.TCustomEmojiModel + : T extends typeof models.FREQUENTLY_USED_EMOJIS_TABLE + ? definitions.TFrequentlyUsedEmojiModel + : T extends typeof models.UPLOADS_TABLE + ? definitions.TUploadModel + : T extends typeof models.SETTINGS_TABLE + ? definitions.TSettingsModel + : T extends typeof models.ROLES_TABLE + ? definitions.TRoleModel + : T extends typeof models.PERMISSIONS_TABLE + ? definitions.TPermissionModel + : T extends typeof models.SLASH_COMMANDS_TABLE + ? definitions.TSlashCommandModel + : T extends typeof models.USERS_TABLE + ? definitions.TUserModel + : never; export type TAppDatabase = { get: (db: T) => Collection>; @@ -62,10 +62,10 @@ export type TServerDatabaseNames = type ObjectServerType = T extends typeof models.SERVERS_TABLE ? definitions.TServerModel : T extends typeof models.LOGGED_USERS_TABLE - ? definitions.TLoggedUserModel - : T extends typeof models.SERVERS_HISTORY_TABLE - ? definitions.TServerHistoryModel - : never; + ? definitions.TLoggedUserModel + : T extends typeof models.SERVERS_HISTORY_TABLE + ? definitions.TServerHistoryModel + : never; export type TServerDatabase = { get: (db: T) => Collection>; diff --git a/app/lib/database/services/Message.test.ts b/app/lib/database/services/Message.test.ts new file mode 100644 index 00000000000..80d87300d73 --- /dev/null +++ b/app/lib/database/services/Message.test.ts @@ -0,0 +1,102 @@ +import database from '../index'; +import { MESSAGES_TABLE } from '../model/Message'; +import { type TMessageModel, type TThreadMessageModel } from '../../../definitions'; +import { getMessageById } from './Message'; +import { getThreadMessageById } from './ThreadMessage'; + +jest.mock('../index', () => ({ + __esModule: true, + default: { + active: { + get: jest.fn() + } + } +})); + +jest.mock('./ThreadMessage', () => ({ + getThreadMessageById: jest.fn() +})); + +const mockGet = database.active.get as jest.Mock; +const mockGetThreadMessageById = getThreadMessageById as jest.MockedFunction; + +describe('getMessageById', () => { + let mockFind: jest.Mock; + + beforeEach(() => { + jest.clearAllMocks(); + mockFind = jest.fn(); + mockGet.mockReturnValue({ find: mockFind }); + }); + + it('returns null when messageId is empty and does not query the database', async () => { + const result = await getMessageById(''); + + expect(result).toBeNull(); + expect(mockGet).not.toHaveBeenCalled(); + expect(mockGetThreadMessageById).not.toHaveBeenCalled(); + }); + + describe('without tmid', () => { + it('resolves the message from the messages table', async () => { + const message = { id: 'message1', msg: 'Test' } as unknown as TMessageModel; + mockFind.mockResolvedValue(message); + + const result = await getMessageById('message1'); + + expect(result).toBe(message); + expect(mockGet).toHaveBeenCalledWith(MESSAGES_TABLE); + expect(mockFind).toHaveBeenCalledWith('message1'); + }); + + it('does not look in the thread messages table', async () => { + mockFind.mockResolvedValue({ id: 'message1' }); + + await getMessageById('message1'); + + expect(mockGetThreadMessageById).not.toHaveBeenCalled(); + }); + + it('returns null when the message does not exist', async () => { + mockFind.mockRejectedValue(new Error('not found')); + + const result = await getMessageById('nonexistent'); + + expect(result).toBeNull(); + }); + }); + + describe('with tmid', () => { + it('prefers the thread messages table', async () => { + const threadMessage = { id: 'message1', msg: 'Thread reply' } as unknown as TThreadMessageModel; + mockGetThreadMessageById.mockResolvedValue(threadMessage as any); + + const result = await getMessageById('message1', 'thread-id'); + + expect(result).toBe(threadMessage); + expect(mockGetThreadMessageById).toHaveBeenCalledWith('message1'); + expect(mockFind).not.toHaveBeenCalled(); + }); + + it('falls back to the messages table when not a thread message', async () => { + const parent = { id: 'parent', msg: 'Thread parent' } as unknown as TMessageModel; + mockGetThreadMessageById.mockResolvedValue(null); + mockFind.mockResolvedValue(parent); + + const result = await getMessageById('parent', 'thread-id'); + + expect(result).toBe(parent); + expect(mockGetThreadMessageById).toHaveBeenCalledWith('parent'); + expect(mockFind).toHaveBeenCalledWith('parent'); + }); + + it('returns null when the message is in neither table', async () => { + mockGetThreadMessageById.mockResolvedValue(null); + mockFind.mockRejectedValue(new Error('not found')); + + const result = await getMessageById('nonexistent', 'thread-id'); + + expect(result).toBeNull(); + }); + }); +}); diff --git a/app/lib/database/services/Message.ts b/app/lib/database/services/Message.ts index 184ea29a0e9..b6328339224 100644 --- a/app/lib/database/services/Message.ts +++ b/app/lib/database/services/Message.ts @@ -1,13 +1,22 @@ import database from '..'; import { type TAppDatabase } from '../interfaces'; import { MESSAGES_TABLE } from '../model/Message'; +import { getThreadMessageById } from './ThreadMessage'; const getCollection = (db: TAppDatabase) => db.get(MESSAGES_TABLE); -export const getMessageById = async (messageId: string | null) => { +export const getMessageById = async (messageId: string | null, tmid?: string | null) => { if (!messageId) { return null; } + + if (tmid) { + const threadMessage = await getThreadMessageById(messageId); + if (threadMessage) { + return threadMessage; + } + } + const db = database.active; const messageCollection = getCollection(db); try { diff --git a/app/lib/encryption/encryption.test.ts b/app/lib/encryption/encryption.test.ts index 18a9d9f0a01..bfc2c312c71 100644 --- a/app/lib/encryption/encryption.test.ts +++ b/app/lib/encryption/encryption.test.ts @@ -1,6 +1,7 @@ // Bypass the global mock of `app/lib/encryption` declared in jest.setup.js by // importing directly from the file. We exercise the real `encryptMessage` here. import encryption from './encryption'; +import database from '../database'; jest.unmock('./encryption'); @@ -48,14 +49,38 @@ jest.mock('../store/auxStore', () => ({ })); const mockSubFind = jest.fn(); -jest.mock('../database', () => ({ - __esModule: true, - default: { - active: { - get: () => ({ find: (rid: string) => mockSubFind(rid) }) +// Rows returned by `collection.query(...).fetch()`, keyed by collection name. +const mockQueryRows: Record = {}; +const mockDbBatch = jest.fn((...args: any[]) => { + // db.batch commits prepared records, clearing their pending state (like the real writer). + args.flat().forEach((item: any) => { + if (item && typeof item === 'object' && '_preparedState' in item) { + item._preparedState = null; } - } -})); + }); + return Promise.resolve(undefined); +}); +jest.mock('../database', () => { + let writerQueue: Promise = Promise.resolve(); + return { + __esModule: true, + default: { + active: { + get: (name: string) => ({ + find: (rid: string) => mockSubFind(rid), + query: () => ({ fetch: () => Promise.resolve(mockQueryRows[name] ?? []) }) + }), + // Serialized writer lock, like WatermelonDB's. + write: (callback: () => Promise) => { + const run = writerQueue.then(() => callback()); + writerQueue = run.catch(() => undefined); + return run; + }, + batch: (...args: unknown[]) => mockDbBatch(...args) + } + } + }; +}); const mockRoomEncrypt = jest.fn(); const mockHasSessionKey = jest.fn(); @@ -141,3 +166,100 @@ describe('Encryption.encryptMessage', () => { expect(mockRoomEncrypt).not.toHaveBeenCalled(); }); }); + +describe('Encryption.decryptPendingMessages', () => { + const rid = 'r1'; + + // Mimics a WatermelonDB Model: prepareUpdate throws while a previous prepared + // update has not been committed yet. + const makeMessageRecord = (id: string) => { + const record: any = { + id, + t: 'e2e', + msg: 'cipher', + subscription: { id: rid }, + _preparedState: null as string | null, + prepareUpdate(recordUpdater: (m: any) => void) { + if (record._preparedState) { + throw new Error(`Cannot update a record with pending changes (messages#${id})`); + } + recordUpdater(record); + record._preparedState = 'update'; + return record; + } + }; + return record; + }; + + const deferred = () => { + let resolve: () => void = () => undefined; + const promise = new Promise(r => { + resolve = r; + }); + return { promise, resolve }; + }; + + beforeEach(() => { + jest.clearAllMocks(); + mockQueryRows.messages = []; + mockQueryRows.threads = []; + mockQueryRows.thread_messages = []; + }); + + afterEach(() => { + jest.restoreAllMocks(); + }); + + it('does not throw "pending changes" when a concurrent writer touches the same message mid-decrypt', async () => { + const record = makeMessageRecord('m1'); + mockQueryRows.messages = [record]; + jest.spyOn(encryption, 'decryptMessage').mockResolvedValue({ msg: 'plain', e2e: 'done' } as any); + + const db = (database as any).active; + + // Hold the writer lock — as a new incoming message being saved would — and then update + // the very record decryptPendingMessages is about to prepare. + const concurrentGate = deferred(); + const concurrentWrite = db.write(async () => { + await concurrentGate.promise; + await db.batch([ + record.prepareUpdate((m: any) => { + m.msg = 'written by another writer'; + }) + ]); + }); + + const decrypting = encryption.decryptPendingMessages(rid); + + // Give an unlocked implementation the chance to prepare now — before the concurrent + // writer runs — and hold the record pending until its own batch. + await new Promise(resolve => setImmediate(resolve)); + concurrentGate.resolve(); + + await expect(Promise.all([concurrentWrite, decrypting])).resolves.toBeDefined(); + + // The decrypted update reached db.batch and nothing was left prepared-but-uncommitted. + const committed = mockDbBatch.mock.calls.map(call => call.flat()).some(items => items.includes(record)); + expect(committed).toBe(true); + expect(record.msg).toBe('plain'); + expect(record.e2e).toBe('done'); + expect(record._preparedState).toBeNull(); + }); + + it('skips a record whose prepareUpdate throws and still commits the others', async () => { + const failing = makeMessageRecord('m1'); + // Already prepared by someone else, so prepareUpdate throws for this one. + failing._preparedState = 'update'; + const healthy = makeMessageRecord('m2'); + mockQueryRows.messages = [failing, healthy]; + jest.spyOn(encryption, 'decryptMessage').mockResolvedValue({ msg: 'plain', e2e: 'done' } as any); + + await encryption.decryptPendingMessages(rid); + + const batched = mockDbBatch.mock.calls.flatMap(call => call.flat()); + expect(batched).toContain(healthy); + expect(batched).not.toContain(failing); + expect(healthy.msg).toBe('plain'); + expect(failing.msg).toBe('cipher'); + }); +}); diff --git a/app/lib/encryption/encryption.ts b/app/lib/encryption/encryption.ts index ffe13c69655..d87708656db 100644 --- a/app/lib/encryption/encryption.ts +++ b/app/lib/encryption/encryption.ts @@ -335,17 +335,18 @@ class Encryption { const threadMessagesToDecrypt = await threadMessagesCollection.query(...whereClause).fetch(); // Concat messages/threads/threadMessages - let toDecrypt: (TThreadModel | TThreadMessageModel | TMessageModel)[] = [ + const toDecrypt: (TThreadModel | TThreadMessageModel | TMessageModel)[] = [ ...messagesToDecrypt, ...threadsToDecrypt, ...threadMessagesToDecrypt ]; - toDecrypt = (await Promise.all( + + const decrypted = await Promise.all( toDecrypt.map(async message => { const { t, msg, tmsg, attachments, content } = message; let newMessage: Partial = {}; - if (message.subscription) { - const { id: rid } = message.subscription; + const rid = message.subscription?.id; + if (rid) { // WM Object -> Plain Object newMessage = await this.decryptMessage({ t, @@ -357,20 +358,28 @@ class Encryption { } as IMessage); } + return { message, newMessage }; + }) + ); + + if (!decrypted.length) { + return; + } + + await db.write(async () => { + const prepared = decrypted.map(({ message, newMessage }) => { try { return message.prepareUpdate( protectedFunction((m: TMessageModel) => { Object.assign(m, newMessage); }) ); - } catch { + } catch (e) { + log(e); return null; } - }) - )) as (TThreadModel | TThreadMessageModel)[]; - - await db.write(async () => { - await db.batch(toDecrypt); + }); + await db.batch(...prepared); }); } catch (e) { log(e); diff --git a/app/lib/encryption/helpers/toggleRoomE2EE.test.ts b/app/lib/encryption/helpers/toggleRoomE2EE.test.ts new file mode 100644 index 00000000000..095d7dc84b8 --- /dev/null +++ b/app/lib/encryption/helpers/toggleRoomE2EE.test.ts @@ -0,0 +1,184 @@ +import { Alert, type AlertButton, type AlertOptions } from 'react-native'; + +import database from '../../database'; +import { saveRoomSettings } from '../../services/restApi'; +import { toggleRoomE2EE } from './toggleRoomE2EE'; + +jest.mock('../../database', () => ({ + __esModule: true, + default: { + active: { + get: jest.fn(), + write: jest.fn((callback: () => Promise) => callback()) + } + } +})); + +jest.mock('../../services/restApi', () => ({ + saveRoomSettings: jest.fn() +})); + +jest.mock('../../../i18n', () => ({ + __esModule: true, + default: { t: (key: string) => key } +})); + +jest.mock('../../methods/helpers/log', () => ({ + __esModule: true, + default: jest.fn() +})); + +const mockGet = database.active.get as jest.Mock; +const mockSaveRoomSettings = saveRoomSettings as jest.Mock; + +interface IFakeRow { + encrypted: boolean; + version: number; +} + +interface IFakeRecord { + readonly encrypted: boolean; + update: (recipe: (record: { encrypted: boolean }) => void) => void; +} + +interface IFakeStore { + store: IFakeRow; + updateErrors: Error[]; + /** Simulates a stream event updating the row while the user stares at the alert */ + concurrentWrite: () => void; +} + +/** + * Minimal stand-in for a WatermelonDB row plus the staleness check the real one performs: + * a record handle remembers the version it was fetched at, and updating it after another + * writer touched the row throws, the same way WatermelonDB rejects diverged records. + */ +const createStore = (encrypted: boolean): IFakeStore => { + const store: IFakeRow = { encrypted, version: 0 }; + const updateErrors: Error[] = []; + + const find = jest.fn((): IFakeRecord => { + const fetchedAtVersion = store.version; + return { + get encrypted(): boolean { + return store.encrypted; + }, + update: (recipe: (record: { encrypted: boolean }) => void): void => { + if (store.version !== fetchedAtVersion) { + const error = new Error('record has pending changes'); + updateErrors.push(error); + throw error; + } + const draft = { encrypted: store.encrypted }; + recipe(draft); + store.encrypted = draft.encrypted; + store.version += 1; + } + }; + }); + + mockGet.mockReturnValue({ find }); + + const concurrentWrite = (): void => { + store.version += 1; + }; + + return { store, updateErrors, concurrentWrite }; +}; + +const pressAlertButton = async (text: string): Promise => { + const buttons = (Alert.alert as jest.Mock).mock.calls[0][2] as AlertButton[]; + const button = buttons.find(b => b.text === text); + if (!button) { + throw new Error(`Alert button "${text}" not found`); + } + await (button.onPress as (() => Promise) | undefined)?.(); +}; + +/** Android: tapping outside the alert only fires the options' onDismiss */ +const dismissAlert = async (): Promise => { + const options = (Alert.alert as jest.Mock).mock.calls[0][3] as AlertOptions | undefined; + if (!options?.onDismiss) { + throw new Error('Alert has no onDismiss handler'); + } + await (options.onDismiss as () => Promise)(); +}; + +describe('toggleRoomE2EE', () => { + beforeEach(() => { + jest.clearAllMocks(); + jest.spyOn(Alert, 'alert').mockImplementation(() => {}); + }); + + afterEach(() => { + jest.restoreAllMocks(); + }); + + it('reverts on cancel even when a concurrent writer updated the record while the alert was open', async () => { + const { store, updateErrors, concurrentWrite } = createStore(false); + + await toggleRoomE2EE('rid-1'); + expect(store.encrypted).toBe(true); + + concurrentWrite(); + + await pressAlertButton('Cancel'); + + expect(store.encrypted).toBe(false); + expect(updateErrors).toHaveLength(0); + }); + + it('reverts when the alert is dismissed by tapping outside it', async () => { + const { store, updateErrors } = createStore(false); + + await toggleRoomE2EE('rid-1'); + expect(store.encrypted).toBe(true); + + await dismissAlert(); + + expect(store.encrypted).toBe(false); + expect(updateErrors).toHaveLength(0); + expect(mockSaveRoomSettings).not.toHaveBeenCalled(); + }); + + it('reverts on an outside dismissal even when a concurrent writer updated the record', async () => { + const { store, updateErrors, concurrentWrite } = createStore(false); + + await toggleRoomE2EE('rid-1'); + expect(store.encrypted).toBe(true); + + concurrentWrite(); + + await dismissAlert(); + + expect(store.encrypted).toBe(false); + expect(updateErrors).toHaveLength(0); + }); + + it('reverts on a failed save even when a concurrent writer updated the record during the request', async () => { + const { store, updateErrors, concurrentWrite } = createStore(false); + mockSaveRoomSettings.mockImplementation(() => { + concurrentWrite(); + return Promise.reject(new Error('network error')); + }); + + await toggleRoomE2EE('rid-1'); + expect(store.encrypted).toBe(true); + + await pressAlertButton('Enable'); + + expect(store.encrypted).toBe(false); + expect(updateErrors).toHaveLength(0); + }); + + it('keeps the new value when the save succeeds', async () => { + const { store } = createStore(false); + mockSaveRoomSettings.mockResolvedValue({ result: true }); + + await toggleRoomE2EE('rid-1'); + await pressAlertButton('Enable'); + + expect(store.encrypted).toBe(true); + expect(mockSaveRoomSettings).toHaveBeenCalledWith('rid-1', { encrypted: true }); + }); +}); diff --git a/app/lib/encryption/helpers/toggleRoomE2EE.ts b/app/lib/encryption/helpers/toggleRoomE2EE.ts index c0d5eae6800..0b2e11edb01 100644 --- a/app/lib/encryption/helpers/toggleRoomE2EE.ts +++ b/app/lib/encryption/helpers/toggleRoomE2EE.ts @@ -7,12 +7,16 @@ import log from '../../methods/helpers/log'; import I18n from '../../../i18n'; import { type TSubscriptionModel } from '../../../definitions'; -const optimisticUpdate = async (room: TSubscriptionModel, value: TSubscriptionModel['encrypted']) => { +const optimisticUpdate = async (rid: string, value: TSubscriptionModel['encrypted']): Promise => { try { const db = database.active; // Instantly feedback to the user await db.write(async () => { + const room = await getSubscriptionByRoomId(rid); + if (!room) { + return; + } await room.update(r => { r.encrypted = value; }); @@ -37,7 +41,7 @@ export const toggleRoomE2EE = async (rid: string): Promise => { const newValue = !room.encrypted; // Instantly feedback to the user - await optimisticUpdate(room, newValue); + await optimisticUpdate(rid, newValue); Alert.alert( title, @@ -48,7 +52,7 @@ export const toggleRoomE2EE = async (rid: string): Promise => { style: 'cancel', onPress: async () => { // Revert to original value - await optimisticUpdate(room, !newValue); + await optimisticUpdate(rid, !newValue); } }, { @@ -68,13 +72,20 @@ export const toggleRoomE2EE = async (rid: string): Promise => { } // If something goes wrong we go back to the previous value - await optimisticUpdate(room, !newValue); + await optimisticUpdate(rid, !newValue); } catch (e) { log(e); } } } ], - { cancelable: true } + { + cancelable: true, + // Android only: tapping outside the alert dismisses it without calling any button's onPress + onDismiss: async () => { + // Revert to original value + await optimisticUpdate(rid, !newValue); + } + } ); }; diff --git a/app/lib/hooks/useCustomEmoji.ts b/app/lib/hooks/useCustomEmoji.ts index 6cc19cdd81f..6d50c9b5391 100644 --- a/app/lib/hooks/useCustomEmoji.ts +++ b/app/lib/hooks/useCustomEmoji.ts @@ -2,8 +2,6 @@ import { type TGetCustomEmoji, resolveCustomEmoji } from '../../definitions'; import { useAppSelector } from './useAppSelector'; export const useCustomEmoji = (): TGetCustomEmoji => { - 'use memo'; - const customEmojis = useAppSelector(state => state.customEmojis); return name => resolveCustomEmoji(customEmojis, name); }; diff --git a/app/lib/hooks/useNewMediaCall/useNewMediaCall.test.tsx b/app/lib/hooks/useNewMediaCall/useNewMediaCall.test.tsx index 0de7c80f6b9..7ce49809af6 100644 --- a/app/lib/hooks/useNewMediaCall/useNewMediaCall.test.tsx +++ b/app/lib/hooks/useNewMediaCall/useNewMediaCall.test.tsx @@ -47,8 +47,12 @@ jest.mock('../../../containers/NewMediaCall', () => ({ NewMediaCall: jest.fn(() => null) })); +let mockIsAndroid = false; + jest.mock('../../methods/helpers/deviceInfo', () => ({ - isAndroid: false + get isAndroid() { + return mockIsAndroid; + } })); jest.mock('../../services/voip/MediaSessionInstance', () => ({ @@ -75,6 +79,7 @@ jest.mock('../../../i18n', () => ({ describe('useNewMediaCall', () => { beforeEach(() => { jest.clearAllMocks(); + mockIsAndroid = false; mockUseIsInActiveVoipCall.mockReturnValue(false); mockIsSelfUserId.mockReturnValue(false); mockStartCall.mockReset(); @@ -273,24 +278,16 @@ describe('useNewMediaCall', () => { }); it('should pass hugContent: true to the action sheet when isAndroid is true', () => { - jest.resetModules(); - jest.doMock('../../methods/helpers/deviceInfo', () => ({ - isAndroid: true - })); - // Must load hook after doMock so `hugContent: isAndroid` uses Android. - // eslint-disable-next-line @typescript-eslint/no-var-requires - const { useNewMediaCall: useNewMediaCallAndroid } = require('./useNewMediaCall'); - + mockIsAndroid = true; mockUseSubscription.mockReturnValue(undefined); mockUseMediaCallPermission.mockReturnValue(false); - const { result } = renderHook(() => useNewMediaCallAndroid('room-id')); + const { result } = renderHook(() => useNewMediaCall('room-id')); act(() => { result.current.openNewMediaCall(); }); - // Re-required hook uses a fresh NewMediaCall mock ref; only assert hugContent and element shape. expect(mockShowActionSheetRef).toHaveBeenCalledTimes(1); const [actionSheetArgs] = mockShowActionSheetRef.mock.calls[0]; expect(isValidElement(actionSheetArgs.children)).toBe(true); diff --git a/app/lib/hooks/usePreviewFormatText/usePreviewFormatText.test.ts b/app/lib/hooks/usePreviewFormatText/usePreviewFormatText.test.ts index 741b9616b16..788ff00be67 100644 --- a/app/lib/hooks/usePreviewFormatText/usePreviewFormatText.test.ts +++ b/app/lib/hooks/usePreviewFormatText/usePreviewFormatText.test.ts @@ -1,3 +1,5 @@ +import { renderHook } from '@testing-library/react-native'; + import { mockedStore } from '../../../reducers/mockedStore'; import { setUser } from '../../../actions/login'; import usePreviewFormatText from './index'; @@ -20,61 +22,68 @@ const initialMockedStoreState = () => { initialMockedStoreState(); +const renderPreviewFormatText = (msg: string) => { + const { result } = renderHook(() => usePreviewFormatText(msg)); + return result.current; +}; + describe('Format preview message', () => { test('empty to be empty', () => { - const formattedText = usePreviewFormatText(''); + const formattedText = renderPreviewFormatText(''); expect(formattedText).toBe(''); }); test('A123 to be A123', () => { - const formattedText = usePreviewFormatText('A123'); + const formattedText = renderPreviewFormatText('A123'); expect(formattedText).toBe('A123'); }); test('Format to be Text', () => { - const formattedText = usePreviewFormatText(''); + const formattedText = renderPreviewFormatText(''); expect(formattedText).toBe('Text'); }); test('Format "[ ](https://open.rocket.chat/) Test" to be Test', () => { - const formattedText = usePreviewFormatText('[ ](https://open.rocket.chat/) Test'); + const formattedText = renderPreviewFormatText('[ ](https://open.rocket.chat/) Test'); expect(formattedText).toEqual('Test'); }); test('Format "[Open](https://open.rocket.chat/) Test" to be Test', () => { - const formattedText = usePreviewFormatText('[Open](https://open.rocket.chat/) Test'); + const formattedText = renderPreviewFormatText('[Open](https://open.rocket.chat/) Test'); expect(formattedText).toBe('Open Test'); }); test('render test (arabic)', () => { - const formattedText = usePreviewFormatText('[ ](https://open.rocket.chat/) اختبا'); + const formattedText = renderPreviewFormatText('[ ](https://open.rocket.chat/) اختبا'); expect(formattedText).toBe('اختبا'); }); test('render test (russian)', () => { - const formattedText = usePreviewFormatText('[ ](https://open.rocket.chat/) тест123'); + const formattedText = renderPreviewFormatText('[ ](https://open.rocket.chat/) тест123'); expect(formattedText).toBe('тест123'); }); test('Format a quote message as last message "You: [ ](https://open.rocket.chat/group/channel?msg=nrTDSw96IhtF3iN4K) \nTest"', () => { - const formattedText = usePreviewFormatText('You: [ ](https://open.rocket.chat/group/channel?msg=nrTDSw96IhtF3iN4K) \nTest'); + const formattedText = renderPreviewFormatText( + 'You: [ ](https://open.rocket.chat/group/channel?msg=nrTDSw96IhtF3iN4K) \nTest' + ); expect(formattedText).toBe('You: Test'); }); test('Format a bold message as last message "You: **Test**" to be "You: Test"', () => { - const formattedText = usePreviewFormatText('You: **Test**'); + const formattedText = renderPreviewFormatText('You: **Test**'); expect(formattedText).toBe('You: Test'); }); test('Format a italic message as last message "You: _Test_" to be "You: Test"', () => { - const formattedText = usePreviewFormatText('You: _Test_'); + const formattedText = renderPreviewFormatText('You: _Test_'); expect(formattedText).toBe('You: Test'); }); test('Format a strike message as last message "You: ~Test~" to be "You: Test"', () => { - const formattedText = usePreviewFormatText('You: ~Test~'); + const formattedText = renderPreviewFormatText('You: ~Test~'); expect(formattedText).toBe('You: Test'); }); test('Format a quote message as last message "You: > Test" to be "You: Test"', () => { - const formattedText = usePreviewFormatText('You: > Test'); + const formattedText = renderPreviewFormatText('You: > Test'); expect(formattedText).toBe('You: Test'); }); test('Format a bold italic message as last message "You: *_Test_*" to be "You: Test"', () => { - const formattedText = usePreviewFormatText('You: *_Test_*'); + const formattedText = renderPreviewFormatText('You: *_Test_*'); expect(formattedText).toBe('You: Test'); }); test('Format a bold strike message as last message "You: *~Test~*" to be "You: Test"', () => { - const formattedText = usePreviewFormatText('You: *~Test~*'); + const formattedText = renderPreviewFormatText('You: *~Test~*'); expect(formattedText).toBe('You: Test'); }); }); @@ -93,12 +102,12 @@ describe('convertAsciiEmoji = true', () => { }); test('Format unicode :)', () => { - const formattedText = usePreviewFormatText(':)'); + const formattedText = renderPreviewFormatText(':)'); expect(formattedText).toBe('🙂'); }); test('Format unicode :) with text', () => { - const formattedText = usePreviewFormatText('Hello World :)'); + const formattedText = renderPreviewFormatText('Hello World :)'); expect(formattedText).toBe('Hello World 🙂'); }); }); @@ -117,12 +126,12 @@ describe('convertAsciiEmoji = false', () => { }); test('Keep unicode :)', () => { - const formattedText = usePreviewFormatText(':)'); + const formattedText = renderPreviewFormatText(':)'); expect(formattedText).toBe(':)'); }); test('Keep unicode :) with text', () => { - const formattedText = usePreviewFormatText('Hello World :)'); + const formattedText = renderPreviewFormatText('Hello World :)'); expect(formattedText).toBe('Hello World :)'); }); }); diff --git a/app/lib/hooks/useShortnameToUnicode/useShortnameToUnicode.test.ts b/app/lib/hooks/useShortnameToUnicode/useShortnameToUnicode.test.ts index be927d0fb28..a1492a2eaa4 100644 --- a/app/lib/hooks/useShortnameToUnicode/useShortnameToUnicode.test.ts +++ b/app/lib/hooks/useShortnameToUnicode/useShortnameToUnicode.test.ts @@ -1,3 +1,5 @@ +import { renderHook } from '@testing-library/react-native'; + import useShortnameToUnicode from './index'; import { setUser } from '../../../actions/login'; import { mockedStore } from '../../../reducers/mockedStore'; @@ -20,63 +22,58 @@ const initialMockedStoreState = () => { initialMockedStoreState(); +const renderShortnameToUnicode = (str: string, isEmojiPicker?: boolean) => { + const { result } = renderHook(() => useShortnameToUnicode(isEmojiPicker)); + return result.current.formatShortnameToUnicode(str); +}; + test('render joy', () => { - const { formatShortnameToUnicode } = useShortnameToUnicode(); - const unicodeEmoji = formatShortnameToUnicode(':joy:'); + const unicodeEmoji = renderShortnameToUnicode(':joy:'); expect(unicodeEmoji).toBe('😂'); }); test('render several emojis', () => { - const { formatShortnameToUnicode } = useShortnameToUnicode(); - const unicodeEmoji = formatShortnameToUnicode(':dog::cat::hamburger::icecream::rocket:'); + const unicodeEmoji = renderShortnameToUnicode(':dog::cat::hamburger::icecream::rocket:'); expect(unicodeEmoji).toBe('🐶🐱🍔🍦🚀'); }); test('render unknown emoji', () => { - const { formatShortnameToUnicode } = useShortnameToUnicode(); - const unicodeEmoji = formatShortnameToUnicode(':unknown:'); + const unicodeEmoji = renderShortnameToUnicode(':unknown:'); expect(unicodeEmoji).toBe(':unknown:'); }); test('render empty', () => { - const { formatShortnameToUnicode } = useShortnameToUnicode(); - const unicodeEmoji = formatShortnameToUnicode(''); + const unicodeEmoji = renderShortnameToUnicode(''); expect(unicodeEmoji).toBe(''); }); test('render text with emoji', () => { - const { formatShortnameToUnicode } = useShortnameToUnicode(); - const unicodeEmoji = formatShortnameToUnicode('Hello there! :hugging:'); + const unicodeEmoji = renderShortnameToUnicode('Hello there! :hugging:'); expect(unicodeEmoji).toBe('Hello there! 🤗'); }); test('render ascii smile', () => { - const { formatShortnameToUnicode } = useShortnameToUnicode(); - const unicodeEmoji = formatShortnameToUnicode(':)'); + const unicodeEmoji = renderShortnameToUnicode(':)'); expect(unicodeEmoji).toBe('🙂'); }); test('render several ascii emojis', () => { - const { formatShortnameToUnicode } = useShortnameToUnicode(); - const unicodeEmoji = formatShortnameToUnicode(":) :( -_- ':-D"); + const unicodeEmoji = renderShortnameToUnicode(":) :( -_- ':-D"); expect(unicodeEmoji).toBe('🙂 😞 😑 😅'); }); test('render text with ascii emoji', () => { - const { formatShortnameToUnicode } = useShortnameToUnicode(); - const unicodeEmoji = formatShortnameToUnicode('Hello there! :)'); + const unicodeEmoji = renderShortnameToUnicode('Hello there! :)'); expect(unicodeEmoji).toBe('Hello there! 🙂'); }); test('render emoji and ascii emoji', () => { - const { formatShortnameToUnicode } = useShortnameToUnicode(); - const unicodeEmoji = formatShortnameToUnicode("':-D :joy:"); + const unicodeEmoji = renderShortnameToUnicode("':-D :joy:"); expect(unicodeEmoji).toBe('😅 😂'); }); test('convert ascii when convertAsciiEmoji = true', () => { - const { formatShortnameToUnicode } = useShortnameToUnicode(); - const unicodeEmoji = formatShortnameToUnicode(':('); + const unicodeEmoji = renderShortnameToUnicode(':('); expect(unicodeEmoji).toBe('😞'); }); @@ -90,14 +87,12 @@ test('do NOT convert ascii when convertAsciiEmoji = false', () => { } }) ); - const { formatShortnameToUnicode } = useShortnameToUnicode(); - const unicodeEmoji = formatShortnameToUnicode(':('); + const unicodeEmoji = renderShortnameToUnicode(':('); expect(unicodeEmoji).toBe(':('); }); test('convert ascii when convertAsciiEmoji = false and isEmojiPicker = true', () => { - const { formatShortnameToUnicode } = useShortnameToUnicode(true); - const unicodeEmoji = formatShortnameToUnicode(':('); + const unicodeEmoji = renderShortnameToUnicode(':(', true); expect(unicodeEmoji).toBe('😞'); }); @@ -111,7 +106,6 @@ test('convert ascii when convertAsciiEmoji = true and isEmojiPicker = true', () } }) ); - const { formatShortnameToUnicode } = useShortnameToUnicode(true); - const unicodeEmoji = formatShortnameToUnicode(':('); + const unicodeEmoji = renderShortnameToUnicode(':(', true); expect(unicodeEmoji).toBe('😞'); }); diff --git a/app/lib/hooks/useSubscription.ts b/app/lib/hooks/useSubscription.ts index c48683eee31..aa1452f79db 100644 --- a/app/lib/hooks/useSubscription.ts +++ b/app/lib/hooks/useSubscription.ts @@ -4,8 +4,6 @@ import { type TSubscriptionModel } from '../../definitions'; import { getSubscriptionByRoomId } from '../database/services/Subscription'; export const useSubscription = (rid?: string): TSubscriptionModel | undefined => { - 'use memo'; - const [subscription, setSubscription] = useState(); useEffect(() => { let isActive = true; diff --git a/app/lib/methods/canOpenRoom.test.ts b/app/lib/methods/canOpenRoom.test.ts new file mode 100644 index 00000000000..555212c844d --- /dev/null +++ b/app/lib/methods/canOpenRoom.test.ts @@ -0,0 +1,152 @@ +import { canOpenRoom } from './canOpenRoom'; +import sdk from '../services/sdk'; +import { getRoomByTypeAndName } from '../services/restApi'; + +jest.mock('../services/sdk', () => ({ + __esModule: true, + default: { + post: jest.fn() + } +})); + +jest.mock('../services/restApi', () => ({ + getRoomByTypeAndName: jest.fn() +})); + +const mockedSdkPost = sdk.post as jest.Mock; +const mockedGetRoomByTypeAndName = getRoomByTypeAndName as jest.Mock; + +beforeEach(() => { + jest.clearAllMocks(); +}); + +describe('canOpenRoom — GROUP deeplink', () => { + const roomFixture = { _id: 'group-id-1', name: 'test-group', t: 'p' }; + + it('returns room when getRoomByTypeAndName succeeds and groups.open succeeds', async () => { + mockedGetRoomByTypeAndName.mockResolvedValue(roomFixture); + mockedSdkPost.mockResolvedValue({ success: true }); + + const result = await canOpenRoom({ rid: '', path: 'group/test-group' }); + + expect(mockedGetRoomByTypeAndName).toHaveBeenCalledWith('p', 'test-group'); + expect(mockedSdkPost).toHaveBeenCalledWith('groups.open', { roomId: 'group-id-1' }); + expect(result).toEqual({ ...roomFixture, rid: 'group-id-1' }); + }); + + it('returns room when the path holds a room id instead of a room name', async () => { + mockedGetRoomByTypeAndName.mockResolvedValue(roomFixture); + mockedSdkPost.mockResolvedValue({ success: true }); + + const result = await canOpenRoom({ rid: '', path: 'group/6997e23f362b278aeb3d369b' }); + + expect(mockedGetRoomByTypeAndName).toHaveBeenCalledWith('p', '6997e23f362b278aeb3d369b'); + expect(mockedSdkPost).toHaveBeenCalledWith('groups.open', { roomId: 'group-id-1' }); + expect(result).toEqual({ ...roomFixture, rid: 'group-id-1' }); + }); + + it('returns room when groups.open reports the group is already open', async () => { + mockedGetRoomByTypeAndName.mockResolvedValue(roomFixture); + mockedSdkPost.mockRejectedValue({ data: { error: 'The private group, test-group, is already open for the sender' } }); + + const result = await canOpenRoom({ rid: '', path: 'group/test-group' }); + + expect(result).toEqual({ ...roomFixture, rid: 'group-id-1' }); + }); + + it('opens the group by rid without resolving the path segment', async () => { + mockedSdkPost.mockResolvedValue({ success: true }); + + const result = await canOpenRoom({ rid: 'group-id-1', path: 'group/test-group' }); + + expect(mockedGetRoomByTypeAndName).not.toHaveBeenCalled(); + expect(mockedSdkPost).toHaveBeenCalledWith('groups.open', { roomId: 'group-id-1' }); + expect(result).toEqual({ rid: 'group-id-1' }); + }); + + it('returns false when getRoomByTypeAndName returns null', async () => { + mockedGetRoomByTypeAndName.mockResolvedValue(null); + + const result = await canOpenRoom({ rid: '', path: 'group/test-group' }); + + expect(mockedSdkPost).not.toHaveBeenCalled(); + expect(result).toBe(false); + }); + + it('returns false when getRoomByTypeAndName returns object without _id', async () => { + mockedGetRoomByTypeAndName.mockResolvedValue({}); + + const result = await canOpenRoom({ rid: '', path: 'group/test-group' }); + + expect(result).toBe(false); + }); + + it('returns false when getRoomByTypeAndName throws', async () => { + mockedGetRoomByTypeAndName.mockRejectedValue(new Error('not found')); + + const result = await canOpenRoom({ rid: '', path: 'group/test-group' }); + + expect(result).toBe(false); + }); + + it('returns false when groups.open throws a non-already-open error', async () => { + mockedGetRoomByTypeAndName.mockResolvedValue(roomFixture); + mockedSdkPost.mockRejectedValue({ data: { error: 'forbidden' } }); + + const result = await canOpenRoom({ rid: '', path: 'group/test-group' }); + + expect(result).toBe(false); + }); +}); + +describe('canOpenRoom — CHANNEL deeplink', () => { + const roomFixture = { _id: 'channel-id-1', name: 'test-channel', t: 'c' }; + + it('returns room when the path holds a room name', async () => { + mockedGetRoomByTypeAndName.mockResolvedValue(roomFixture); + + const result = await canOpenRoom({ rid: '', path: 'channel/test-channel' }); + + expect(mockedGetRoomByTypeAndName).toHaveBeenCalledWith('c', 'test-channel'); + expect(mockedSdkPost).not.toHaveBeenCalled(); + expect(result).toEqual({ ...roomFixture, rid: 'channel-id-1' }); + }); + + it('returns room when the path holds a room id instead of a room name', async () => { + mockedGetRoomByTypeAndName.mockResolvedValue(roomFixture); + + const result = await canOpenRoom({ rid: '', path: 'channel/6997e23f362b278aeb3d369b' }); + + expect(mockedGetRoomByTypeAndName).toHaveBeenCalledWith('c', '6997e23f362b278aeb3d369b'); + expect(result).toEqual({ ...roomFixture, rid: 'channel-id-1' }); + }); + + it('returns the rid without resolving the path segment when rid is provided', async () => { + const result = await canOpenRoom({ rid: 'channel-id-1', path: 'channel/test-channel' }); + + expect(mockedGetRoomByTypeAndName).not.toHaveBeenCalled(); + expect(mockedSdkPost).not.toHaveBeenCalled(); + expect(result).toEqual({ rid: 'channel-id-1' }); + }); + + it('returns false when getRoomByTypeAndName throws', async () => { + mockedGetRoomByTypeAndName.mockRejectedValue(new Error('not found')); + + const result = await canOpenRoom({ rid: '', path: 'channel/test-channel' }); + + expect(result).toBe(false); + }); +}); + +describe('canOpenRoom — other paths', () => { + it('returns false when no path and no rid', async () => { + const result = await canOpenRoom({ rid: '', path: '' }); + expect(result).toBe(false); + }); + + it('returns false when path does not match any type', async () => { + const result = await canOpenRoom({ rid: '', path: 'unknown/foo' }); + expect(mockedGetRoomByTypeAndName).not.toHaveBeenCalled(); + expect(result).toBe(false); + }); +}); diff --git a/app/lib/methods/canOpenRoom.ts b/app/lib/methods/canOpenRoom.ts index a3a964a3a91..b0bb0f9871f 100644 --- a/app/lib/methods/canOpenRoom.ts +++ b/app/lib/methods/canOpenRoom.ts @@ -2,17 +2,10 @@ import { ERoomTypes } from '../../definitions'; import database from '../database'; import sdk from '../services/sdk'; import { createDirectMessage } from './createDirectMessage'; - -const restTypes = { - channel: 'channels', - direct: 'im', - group: 'groups' -}; +import { getRoomByTypeAndName } from '../services/restApi'; async function open({ type, rid, name }: { type: ERoomTypes; rid: string; name: string }) { try { - const params = rid ? { roomId: rid } : { roomName: name }; - // if it's a direct link without rid we'll create a new dm // if the dm already exists it'll return the existent if (type === ERoomTypes.DIRECT && !rid) { @@ -26,29 +19,40 @@ async function open({ type, rid, name }: { type: ERoomTypes; rid: string; name: } } - // if it's a group we need to check if you can open - if (type === ERoomTypes.GROUP) { - try { - // RC 0.61.0 - // @ts-ignore - await sdk.post(`${restTypes[type]}.open`, params); - } catch (e: any) { - if (!(e.data && /is already open/.test(e.data.error))) { - return false; + if (type === ERoomTypes.CHANNEL || type === ERoomTypes.GROUP) { + let roomId = rid; + let room = null; + + // The path segment of a deep link may hold either a room name or a room id. + // getRoomByTypeAndName resolves both, unlike the REST endpoints, which match + // roomName exactly and return "not found" when handed an id. + if (!roomId) { + const roomType = type === ERoomTypes.GROUP ? 'p' : 'c'; + room = await getRoomByTypeAndName(roomType, name); + roomId = room?._id; + } + + if (!roomId) { + return false; + } + + // a group has to be open before it can be read + if (type === ERoomTypes.GROUP) { + try { + // RC 0.61.0 + await sdk.post('groups.open', { roomId }); + } catch (e: any) { + if (!(e.data && /is already open/.test(e.data.error))) { + return false; + } } } - } - // if it's a channel or group and the link don't have rid - // we'll get info from the room - if ((type === ERoomTypes.CHANNEL || type === ERoomTypes.GROUP) && !rid) { - // RC 0.72.0 - // @ts-ignore - const result: any = await sdk.get(`${restTypes[type]}.info`, params); - if (result.success) { - const room = result[type]; - room.rid = room._id; - return room; + if (room) { + return { + ...room, + rid: roomId + }; } } diff --git a/app/lib/methods/getPermalinks.ts b/app/lib/methods/getPermalinks.ts index 0aae8a1e2ac..a66b1345899 100644 --- a/app/lib/methods/getPermalinks.ts +++ b/app/lib/methods/getPermalinks.ts @@ -1,5 +1,5 @@ import log from './helpers/log'; -import { type TMessageModel, type TSubscriptionModel, type SubscriptionType } from '../../definitions'; +import { type TAnyMessageModel, type TSubscriptionModel, type SubscriptionType } from '../../definitions'; import { store } from '../store/auxStore'; import { isGroupChat } from './helpers'; import { getRoom } from './getRoom'; @@ -18,7 +18,7 @@ const roomTypes = { d: 'direct' }; -export async function getPermalinkMessage(message: TMessageModel): Promise { +export async function getPermalinkMessage(message: TAnyMessageModel): Promise { if (!message.subscription) return null; let room: TSubscriptionModel; try { diff --git a/app/lib/methods/getThreadName.test.ts b/app/lib/methods/getThreadName.test.ts new file mode 100644 index 00000000000..c21ad05529b --- /dev/null +++ b/app/lib/methods/getThreadName.test.ts @@ -0,0 +1,180 @@ +import getThreadName from './getThreadName'; +import database from '../database'; +import { getMessageById } from '../database/services/Message'; +import { getThreadById } from '../database/services/Thread'; +import getSingleMessage from './getSingleMessage'; +import { Encryption } from '../encryption'; +import log from './helpers/log'; + +jest.mock('../database', () => ({ + __esModule: true, + default: { active: {} } +})); + +jest.mock('../database/services/Message', () => ({ + getMessageById: jest.fn() +})); + +jest.mock('../database/services/Thread', () => ({ + getThreadById: jest.fn() +})); + +jest.mock('./getSingleMessage', () => ({ + __esModule: true, + default: jest.fn() +})); + +jest.mock('../encryption', () => ({ + Encryption: { decryptMessage: jest.fn() } +})); + +jest.mock('./helpers/log', () => ({ + __esModule: true, + default: jest.fn() +})); + +jest.mock('@nozbe/watermelondb/RawRecord', () => ({ + sanitizedRaw: jest.fn((raw: any) => raw) +})); + +const mockedGetMessageById = getMessageById as jest.MockedFunction; +const mockedGetThreadById = getThreadById as jest.MockedFunction; +const mockedGetSingleMessage = getSingleMessage as jest.MockedFunction; +const mockedDecryptMessage = Encryption.decryptMessage as jest.MockedFunction; +const mockedLog = log as jest.MockedFunction; + +// mimics watermelon rejecting an update prepared on a record another writer already touched +const buildMessageRecord = (id: string) => { + const record: { + id: string; + tmsg: string | undefined; + stale: boolean; + prepareUpdate: jest.Mock; + update: jest.Mock; + } = { + id, + tmsg: undefined, + stale: false, + update: jest.fn((updater: (m: any) => void) => { + updater(record); + return record; + }), + prepareUpdate: jest.fn((updater: (m: any) => void) => { + if (record.stale) { + throw new Error('Cannot update a record with pending changes'); + } + updater(record); + return record; + }) + }; + return record; +}; + +describe('getThreadName', () => { + const batch = jest.fn(); + const threadCollection = { schema: {}, prepareCreate: jest.fn((cb: (t: any) => void) => cb({}) ?? { type: 'thread' }) }; + + beforeEach(() => { + jest.clearAllMocks(); + batch.mockResolvedValue(undefined); + (database as any).active = { + get: jest.fn(() => threadCollection), + write: jest.fn((fn: () => Promise) => fn()), + batch + }; + }); + + it('re-fetches the message inside the write so a concurrent writer during the network gap does not break the update', async () => { + const staleRecord = buildMessageRecord('MESSAGE_ID'); + const freshRecord = buildMessageRecord('MESSAGE_ID'); + mockedGetMessageById.mockResolvedValue(staleRecord as any); + + mockedGetThreadById.mockResolvedValue(null as any); + + mockedGetSingleMessage.mockImplementation(() => { + // a sync write lands while we are off the lock: the old record is superseded + staleRecord.stale = true; + mockedGetMessageById.mockResolvedValue(freshRecord as any); + return Promise.resolve({ _id: 'THREAD_ID', msg: 'thread name' } as any); + }); + mockedDecryptMessage.mockImplementation((message: any) => Promise.resolve(message)); + + const tmsg = await getThreadName('ROOM_ID', 'THREAD_ID', 'MESSAGE_ID'); + + expect(tmsg).toBe('thread name'); + expect(mockedLog).not.toHaveBeenCalled(); + expect(staleRecord.prepareUpdate).not.toHaveBeenCalled(); + expect(freshRecord.prepareUpdate).toHaveBeenCalledTimes(1); + expect(freshRecord.tmsg).toBe('thread name'); + expect(batch).toHaveBeenCalledTimes(1); + // the message is read again only after the network and decryption work + expect(mockedGetMessageById).toHaveBeenCalledTimes(2); + }); + + it('updates the message when the local thread name differs from the cached tmsg', async () => { + const record = buildMessageRecord('MESSAGE_ID'); + record.tmsg = 'old name'; + mockedGetMessageById.mockResolvedValue(record as any); + mockedGetThreadById.mockResolvedValue({ msg: 'new name' } as any); + + const tmsg = await getThreadName('ROOM_ID', 'THREAD_ID', 'MESSAGE_ID'); + + expect(tmsg).toBe('new name'); + expect(record.update).toHaveBeenCalledTimes(1); + expect(record.tmsg).toBe('new name'); + expect(mockedGetSingleMessage).not.toHaveBeenCalled(); + expect(batch).not.toHaveBeenCalled(); + }); + + it('does not write when the cached tmsg already matches the local thread', async () => { + const record = buildMessageRecord('MESSAGE_ID'); + record.tmsg = 'same name'; + mockedGetMessageById.mockResolvedValue(record as any); + mockedGetThreadById.mockResolvedValue({ msg: 'same name' } as any); + + const tmsg = await getThreadName('ROOM_ID', 'THREAD_ID', 'MESSAGE_ID'); + + expect(tmsg).toBe('same name'); + expect((database.active as any).write).not.toHaveBeenCalled(); + expect(record.update).not.toHaveBeenCalled(); + }); + + it('falls back to the first attachment title when the local thread has no msg', async () => { + const record = buildMessageRecord('MESSAGE_ID'); + mockedGetMessageById.mockResolvedValue(record as any); + mockedGetThreadById.mockResolvedValue({ msg: undefined, attachments: [{ title: 'attachment title' }] } as any); + + const tmsg = await getThreadName('ROOM_ID', 'THREAD_ID', 'MESSAGE_ID'); + + expect(tmsg).toBe('attachment title'); + expect(record.tmsg).toBe('attachment title'); + }); + + it('skips creating the thread when another writer created it during the network gap', async () => { + const record = buildMessageRecord('MESSAGE_ID'); + mockedGetMessageById.mockResolvedValue(record as any); + mockedGetThreadById.mockResolvedValueOnce(null as any).mockResolvedValueOnce({ msg: 'thread name' } as any); + mockedGetSingleMessage.mockResolvedValue({ _id: 'THREAD_ID', msg: 'thread name' } as any); + mockedDecryptMessage.mockImplementation((message: any) => Promise.resolve(message)); + + const tmsg = await getThreadName('ROOM_ID', 'THREAD_ID', 'MESSAGE_ID'); + + expect(tmsg).toBe('thread name'); + expect((database.active as any).write).not.toHaveBeenCalled(); + expect(batch).not.toHaveBeenCalled(); + expect(threadCollection.prepareCreate).not.toHaveBeenCalled(); + }); + + it('logs and resolves undefined when fetching the remote thread fails', async () => { + const error = new Error('network down'); + mockedGetMessageById.mockResolvedValue(buildMessageRecord('MESSAGE_ID') as any); + mockedGetThreadById.mockResolvedValue(null as any); + mockedGetSingleMessage.mockRejectedValue(error); + + const tmsg = await getThreadName('ROOM_ID', 'THREAD_ID', 'MESSAGE_ID'); + + expect(tmsg).toBeUndefined(); + expect(mockedLog).toHaveBeenCalledWith(error); + expect(batch).not.toHaveBeenCalled(); + }); +}); diff --git a/app/lib/methods/getThreadName.ts b/app/lib/methods/getThreadName.ts index 04ed4ac4f24..5cfe4851c29 100644 --- a/app/lib/methods/getThreadName.ts +++ b/app/lib/methods/getThreadName.ts @@ -15,7 +15,7 @@ const getThreadName = async (rid: string, tmid: string, messageId: string): Prom try { const db = database.active; const threadCollection = db.get('threads'); - const messageRecord = await getMessageById(messageId); + let messageRecord = await getMessageById(messageId); let threadRecord = await getThreadById(tmid); if (threadRecord) { tmsg = buildThreadName(threadRecord); @@ -34,6 +34,7 @@ const getThreadName = async (rid: string, tmid: string, messageId: string): Prom threadRecord = await getThreadById(tmid); if (!threadRecord) { await db.write(async () => { + messageRecord = await getMessageById(messageId); await db.batch( threadCollection?.prepareCreate((t: TThreadModel) => { t._raw = sanitizedRaw({ id: thread._id }, threadCollection.schema); diff --git a/app/lib/methods/handleMediaDownload.test.ts b/app/lib/methods/handleMediaDownload.test.ts index bfab148f84f..29fafaa4f01 100644 --- a/app/lib/methods/handleMediaDownload.test.ts +++ b/app/lib/methods/handleMediaDownload.test.ts @@ -1,4 +1,37 @@ -import { getFilename, matchDownloadUrl } from './handleMediaDownload'; +import { getFilename, matchDownloadUrl, persistMessage } from './handleMediaDownload'; +import database from '../database'; +import { getMessageById } from '../database/services/Message'; +import { getThreadById } from '../database/services/Thread'; +import { getThreadMessageById } from '../database/services/ThreadMessage'; +import { createBatchMock, deferred, flush, makeFakeRecord } from '../database/__tests__/mockedWatermelonDB'; + +const mockDbBatch = createBatchMock(); +jest.mock('../database', () => { + const { createWriterLock } = require('../database/__tests__/mockedWatermelonDB'); + const write = createWriterLock(); + return { + __esModule: true, + default: { + active: { + get: jest.fn(), + write, + batch: (...args: unknown[]) => mockDbBatch(...args) + } + } + }; +}); + +jest.mock('../database/services/Message', () => ({ + getMessageById: jest.fn() +})); + +jest.mock('../database/services/Thread', () => ({ + getThreadById: jest.fn() +})); + +jest.mock('../database/services/ThreadMessage', () => ({ + getThreadMessageById: jest.fn() +})); describe('matchDownloadUrl', () => { it('matches when downloadUrl contains image_url', () => { @@ -103,3 +136,66 @@ describe('Test the getFilename', () => { expect(filename).toBe('giphy.gif'); }); }); + +describe('persistMessage', () => { + const messageId = 'KXse45i7gGYE8j4Xb'; + const downloadUrl = 'https://server.com/file-upload/abc/photo.jpg'; + const uri = 'file:///local/photo.jpg'; + + const makeRecord = (debugName: string) => + makeFakeRecord(debugName, { attachments: [{ image_url: '/file-upload/abc/photo.jpg' }] }); + + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('does not throw "pending changes" when a concurrent writer touches the message mid-persist', async () => { + const messageRecord = makeRecord(`messages#${messageId}`); + const threadRecord = makeRecord(`threads#${messageId}`); + const threadMessageRecord = makeRecord(`thread_messages#${messageId}`); + (getMessageById as jest.Mock).mockResolvedValue(messageRecord); + (getThreadById as jest.Mock).mockResolvedValue(threadRecord); + (getThreadMessageById as jest.Mock).mockResolvedValue(threadMessageRecord); + + const db = (database as any).active; + + // Hold the writer lock — as an incoming message update in a busy room would — and then + // touch the very record persistMessage is about to prepare. + const concurrentGate = deferred(); + const concurrentWrite = db.write(async () => { + await concurrentGate.promise; + await db.batch([ + messageRecord.prepareUpdate((m: any) => { + m.msg = 'written by another writer'; + }) + ]); + }); + + const persisting = persistMessage(messageId, uri, false, downloadUrl); + + // Give an unlocked implementation the chance to prepare now — before the concurrent + // writer runs — and hold the records pending until its own batch. + await flush(); + concurrentGate.resolve(); + + await expect(Promise.all([concurrentWrite, persisting])).resolves.toBeDefined(); + + // All three records committed in one batch, with the downloaded file attached. + const batched = mockDbBatch.mock.calls.map(call => call.flat()).find(items => items.includes(threadRecord)); + expect(batched).toEqual([messageRecord, threadRecord, threadMessageRecord]); + [messageRecord, threadRecord, threadMessageRecord].forEach(record => { + expect(record.attachments[0].title_link).toBe(uri); + expect(record._preparedState).toBeNull(); + }); + }); + + it('does not batch when the message is not found locally', async () => { + (getMessageById as jest.Mock).mockResolvedValue(null); + (getThreadById as jest.Mock).mockResolvedValue(null); + (getThreadMessageById as jest.Mock).mockResolvedValue(null); + + await persistMessage(messageId, uri, false, downloadUrl); + + expect(mockDbBatch).not.toHaveBeenCalled(); + }); +}); diff --git a/app/lib/methods/handleMediaDownload.ts b/app/lib/methods/handleMediaDownload.ts index 8f42fe26224..33b0dcbd2d6 100644 --- a/app/lib/methods/handleMediaDownload.ts +++ b/app/lib/methods/handleMediaDownload.ts @@ -222,38 +222,39 @@ const mapAttachments = ({ e2e: encryption ? 'done' : undefined })); -const persistMessage = async (messageId: string, uri: string, encryption: boolean, downloadUrl: string) => { +export const persistMessage = async (messageId: string, uri: string, encryption: boolean, downloadUrl: string) => { const db = database.active; - const batch: Model[] = []; - const messageRecord = await getMessageById(messageId); - if (messageRecord) { - batch.push( - messageRecord.prepareUpdate(m => { - m.attachments = mapAttachments({ attachments: m.attachments, uri, encryption, downloadUrl }); - }) - ); - } - const threadRecord = await getThreadById(messageId); - if (threadRecord) { - batch.push( - threadRecord.prepareUpdate(m => { - m.attachments = mapAttachments({ attachments: m.attachments, uri, encryption, downloadUrl }); - }) - ); - } - const threadMessageRecord = await getThreadMessageById(messageId); - if (threadMessageRecord) { - batch.push( - threadMessageRecord.prepareUpdate(m => { - m.attachments = mapAttachments({ attachments: m.attachments, uri, encryption, downloadUrl }); - }) - ); - } - if (batch.length) { - await db.write(async () => { + + await db.write(async () => { + const batch: Model[] = []; + const messageRecord = await getMessageById(messageId); + if (messageRecord) { + batch.push( + messageRecord.prepareUpdate(m => { + m.attachments = mapAttachments({ attachments: m.attachments, uri, encryption, downloadUrl }); + }) + ); + } + const threadRecord = await getThreadById(messageId); + if (threadRecord) { + batch.push( + threadRecord.prepareUpdate(m => { + m.attachments = mapAttachments({ attachments: m.attachments, uri, encryption, downloadUrl }); + }) + ); + } + const threadMessageRecord = await getThreadMessageById(messageId); + if (threadMessageRecord) { + batch.push( + threadMessageRecord.prepareUpdate(m => { + m.attachments = mapAttachments({ attachments: m.attachments, uri, encryption, downloadUrl }); + }) + ); + } + if (batch.length) { await db.batch(batch); - }); - } + } + }); }; export function downloadMediaFile({ diff --git a/app/lib/methods/helpers/mergeSubscriptionsRooms.ts b/app/lib/methods/helpers/mergeSubscriptionsRooms.ts index 669c76b91ea..f24289a943d 100644 --- a/app/lib/methods/helpers/mergeSubscriptionsRooms.ts +++ b/app/lib/methods/helpers/mergeSubscriptionsRooms.ts @@ -51,7 +51,7 @@ export const merge = ( // @ts-ignore Same as above scenario mergedSubscription.roomUpdatedAt = mergedSubscription.lr ? // @ts-ignore Same as above scenario - Math.max(new Date(mergedSubscription.lr), new Date(lastRoomUpdate)) + Math.max(new Date(mergedSubscription.lr), new Date(lastRoomUpdate)) : lastRoomUpdate; } mergedSubscription.ro = room?.ro ?? false; diff --git a/app/lib/methods/loadMessagesForRoom.test.ts b/app/lib/methods/loadMessagesForRoom.test.ts index 5442776fe3a..8cd7006a8a7 100644 --- a/app/lib/methods/loadMessagesForRoom.test.ts +++ b/app/lib/methods/loadMessagesForRoom.test.ts @@ -49,7 +49,7 @@ const buildMessage = ({ id, ts, t }: { id: string; ts: string; t?: string }) => rid: 'ROOM_ID', ts, ...(t ? { t } : {}) - } as any); + }) as any; describe('loadMessagesForRoom', () => { beforeEach(() => { @@ -251,7 +251,7 @@ describe('loadMessagesForRoom', () => { ts: new Date(Date.UTC(2024, 0, 1, hour, 0, length - index)).toISOString(), _updatedAt: new Date(Date.UTC(2024, 0, 1, hour, 0, length - index)).toISOString(), t: 'uj' - } as any) + }) as any ); it('writes the Last Open from every fetched batch on the initial tail load', async () => { diff --git a/app/lib/methods/roomTypeToApiType.ts b/app/lib/methods/roomTypeToApiType.ts index b3fd9754c75..b84eb7242c5 100644 --- a/app/lib/methods/roomTypeToApiType.ts +++ b/app/lib/methods/roomTypeToApiType.ts @@ -9,12 +9,12 @@ export type RoomTypes = 'c' | 'd' | 'p' | 'l'; type ApiTypes = T extends 'c' ? ETypes.Channels : T extends 'd' - ? ETypes.Im - : T extends 'p' - ? ETypes.Groups - : T extends 'l' - ? ETypes.Channels - : never; + ? ETypes.Im + : T extends 'p' + ? ETypes.Groups + : T extends 'l' + ? ETypes.Channels + : never; export const types: { [K in RoomTypes]: ApiTypes } = { c: ETypes.Channels, diff --git a/app/lib/methods/search.test.ts b/app/lib/methods/search.test.ts index 19667d45357..72e6d055a27 100644 --- a/app/lib/methods/search.test.ts +++ b/app/lib/methods/search.test.ts @@ -74,7 +74,7 @@ const buildLocalSubscription = (over: Partial = {}): TSearch => t: 'd', encrypted: false, ...over - } as ISearchLocal); + }) as ISearchLocal; describe('searchRemote', () => { beforeEach(() => { diff --git a/app/lib/methods/sendMessage.test.ts b/app/lib/methods/sendMessage.test.ts new file mode 100644 index 00000000000..05c69ab8c78 --- /dev/null +++ b/app/lib/methods/sendMessage.test.ts @@ -0,0 +1,226 @@ +import database from '../database'; +import log from './helpers/log'; +import { messagesStatus } from '../constants/messagesStatus'; +import { sendMessage } from './sendMessage'; +import { + createBatchMock, + createWriterLock, + deferred, + flush, + loggedPendingChanges, + makeFakeRecord +} from '../database/__tests__/mockedWatermelonDB'; + +type FakeRecord = Record; + +interface FakeCollection { + schema: Record; + records: Map; + find: (id: string) => Promise; + prepareCreate: (updater: (m: FakeRecord) => void) => FakeRecord; +} + +const makeRecord = (debugName: string, fields: FakeRecord = {}): FakeRecord => makeFakeRecord(debugName, fields); + +const makeCollection = (name: string): FakeCollection => { + const collection: FakeCollection = { + schema: {}, + records: new Map(), + find: (id: string) => { + const existing = collection.records.get(id); + if (!existing) { + return Promise.reject(new Error(`Record ${name}#${id} not found`)); + } + return Promise.resolve(existing); + }, + prepareCreate: (updater: (m: FakeRecord) => void) => { + const record = makeRecord(`${name}#created`); + updater(record); + record._preparedState = 'create'; + // sanitizedRaw is mocked to identity below, so `_raw.id` is the client-generated id. + const id = record._raw?.id; + if (id) { + record.id = id; + collection.records.set(id, record); + } + return record; + } + }; + return collection; +}; + +let collections: Record = {}; +const mockGetCollection = (name: string): FakeCollection => { + if (!collections[name]) { + collections[name] = makeCollection(name); + } + return collections[name]; +}; + +const mockDbBatch = createBatchMock(); +const mockDbWrite = createWriterLock(); + +jest.mock('../database', () => ({ + __esModule: true, + default: { + active: { + get: (name: string) => mockGetCollection(name), + write: (callback: () => Promise) => mockDbWrite(callback), + batch: (...args: unknown[]) => mockDbBatch(...args) + } + } +})); + +jest.mock('@nozbe/watermelondb/RawRecord', () => ({ + sanitizedRaw: (raw: unknown) => raw +})); + +const mockEncryptionGate: { promise: Promise | null } = { promise: null }; +jest.mock('../encryption', () => ({ + Encryption: { + encryptMessage: jest.fn(async (message: unknown) => { + if (mockEncryptionGate.promise) { + await mockEncryptionGate.promise; + } + return message; + }) + } +})); + +const mockPost = jest.fn, unknown[]>(() => Promise.resolve({ success: true, message: {} })); +jest.mock('../services/sdk', () => ({ + __esModule: true, + default: { + post: (...args: unknown[]) => mockPost(...args) + } +})); + +jest.mock('./helpers/log', () => ({ + __esModule: true, + default: jest.fn() +})); + +const db = (database as any).active; + +describe('sendMessage', () => { + const rid = 'GENERAL'; + const user = { id: 'userId', username: 'rocket.cat', name: 'Rocket Cat' }; + + beforeEach(() => { + jest.clearAllMocks(); + collections = {}; + mockEncryptionGate.promise = null; + mockPost.mockImplementation(() => Promise.resolve({ success: true, message: {} })); + }); + + describe('sendMessage', () => { + it('does not throw "pending changes" when a concurrent writer touches the subscription mid-send', async () => { + const subscriptions = mockGetCollection('subscriptions'); + const room = makeRecord(`subscriptions#${rid}`, { draftMessage: 'a draft' }); + subscriptions.records.set(rid, room); + + // Hold the writer lock while sendMessage is still encrypting, then update the very record + // sendMessage is about to prepare (the subscription whose draft gets cleared). + const concurrentGate = deferred(); + const concurrentWrite = db.write(async () => { + await concurrentGate.promise; + const record = await subscriptions.find(rid); + await db.batch([ + record.prepareUpdate((r: FakeRecord) => { + r.draftMessage = 'edited by another writer'; + }) + ]); + }); + + const encryption = deferred(); + mockEncryptionGate.promise = encryption.promise; + + const send = sendMessage(rid, 'hello', undefined, user); + + // Release encryption first so an unlocked implementation prepares its records now — before + // the concurrent writer runs — and holds them pending until its own batch. + encryption.resolve(); + await flush(); + concurrentGate.resolve(); + + await expect(Promise.all([concurrentWrite, send])).resolves.toBeDefined(); + + expect(loggedPendingChanges(log)).toBe(false); + const created = mockDbBatch.mock.calls + .flat(2) + .find((item: FakeRecord) => item?.status === messagesStatus.TEMP || item?.status === messagesStatus.SENT); + expect(created).toBeDefined(); + expect(created.msg).toBe('hello'); + expect(room.draftMessage).toBeFalsy(); + // Nothing was left prepared-but-uncommitted. + expect(created._preparedState).toBeNull(); + expect(room._preparedState).toBeNull(); + }); + }); + + describe('changeMessageStatus', () => { + it('does not throw "pending changes" when a concurrent writer touches the message mid-status-update', async () => { + const tmid = 'threadHeaderId'; + const messages = mockGetCollection('messages'); + messages.records.set( + tmid, + makeRecord(`messages#${tmid}`, { + msg: 'thread header', + ts: new Date(0), + tcount: 1, + u: { _id: 'other' }, + attachments: [] + }) + ); + mockGetCollection('threads'); + mockGetCollection('thread_messages'); + mockGetCollection('subscriptions'); + + // Block the server response so we can set up the race before changeMessageStatus runs. + const post = deferred(); + mockPost.mockImplementation(async () => { + await post.promise; + return { success: true, message: { mentions: [], channels: [] } }; + }); + + const send = sendMessage(rid, 'hi', tmid, user); + await flush(); + + // The message record created by the send — the one changeMessageStatus will update. + const messageId = [...messages.records.keys()].find(id => id !== tmid) as string; + expect(messageId).toBeDefined(); + const messageRecord = messages.records.get(messageId) as FakeRecord; + + const concurrentGate = deferred(); + const concurrentWrite = db.write(async () => { + await concurrentGate.promise; + await db.batch([ + messageRecord.prepareUpdate((m: FakeRecord) => { + m.msg = 'edited by another writer'; + }) + ]); + }); + + post.resolve(); + await flush(); + concurrentGate.resolve(); + + await expect(Promise.all([concurrentWrite, send])).resolves.toBeDefined(); + + expect(loggedPendingChanges(log)).toBe(false); + + const threadMessageRecord = mockGetCollection('thread_messages').records.get(messageId) as FakeRecord; + expect(messageRecord.status).toBe(messagesStatus.SENT); + expect(threadMessageRecord.status).toBe(messagesStatus.SENT); + + // The status update reached db.batch as one commit — it is the only batch holding both + // records — and neither was left prepared-but-uncommitted. + const statusBatch = mockDbBatch.mock.calls + .map(call => call.flat()) + .find(items => items.includes(messageRecord) && items.includes(threadMessageRecord)); + expect(statusBatch).toBeDefined(); + expect(messageRecord._preparedState).toBeNull(); + expect(threadMessageRecord._preparedState).toBeNull(); + }); + }); +}); diff --git a/app/lib/methods/sendMessage.ts b/app/lib/methods/sendMessage.ts index c7f4942f0db..f1015089ca0 100644 --- a/app/lib/methods/sendMessage.ts +++ b/app/lib/methods/sendMessage.ts @@ -14,33 +14,34 @@ const changeMessageStatus = async (id: string, status: number, tmid?: string, me const db = database.active; const msgCollection = db.get('messages'); const threadMessagesCollection = db.get('thread_messages'); - const successBatch: Model[] = []; - const messageRecord = await msgCollection.find(id); - successBatch.push( - messageRecord.prepareUpdate(m => { - m.status = status; - if (message) { - m.mentions = message.mentions; - m.channels = message.channels; - } - }) - ); - - if (tmid) { - const threadMessageRecord = await threadMessagesCollection.find(id); - successBatch.push( - threadMessageRecord.prepareUpdate(tm => { - tm.status = status; - if (message) { - tm.mentions = message.mentions; - tm.channels = message.channels; - } - }) - ); - } try { await db.write(async () => { + const successBatch: Model[] = []; + const messageRecord = await msgCollection.find(id); + successBatch.push( + messageRecord.prepareUpdate(m => { + m.status = status; + if (message) { + m.mentions = message.mentions; + m.channels = message.channels; + } + }) + ); + + if (tmid) { + const threadMessageRecord = await threadMessagesCollection.find(id); + successBatch.push( + threadMessageRecord.prepareUpdate(tm => { + tm.status = status; + if (message) { + tm.mentions = message.mentions; + tm.channels = message.channels; + } + }) + ); + } + await db.batch(successBatch); }); } catch (error) { @@ -99,7 +100,6 @@ export async function sendMessage( const threadCollection = db.get('threads'); const threadMessagesCollection = db.get('thread_messages'); const messageId = random(17); - const batch: Model[] = []; const message = await Encryption.encryptMessage({ _id: messageId, @@ -110,120 +110,122 @@ export async function sendMessage( } as IMessage); const messageDate = new Date(); - let tMessageRecord: TMessageModel; - // If it's replying to a thread - if (tmid) { - try { - // Find thread message header in Messages collection - tMessageRecord = await msgCollection.find(tmid); - batch.push( - tMessageRecord.prepareUpdate(m => { - m.tlm = messageDate; - if (m.tcount) { - m.tcount += 1; + try { + await db.write(async () => { + const batch: Model[] = []; + let tMessageRecord: TMessageModel; + + // If it's replying to a thread + if (tmid) { + try { + // Find thread message header in Messages collection + tMessageRecord = await msgCollection.find(tmid); + batch.push( + tMessageRecord.prepareUpdate(m => { + m.tlm = messageDate; + if (m.tcount) { + m.tcount += 1; + } + }) + ); + + try { + // Find thread message header in Threads collection + await threadCollection.find(tmid); + } catch (error) { + // If there's no record, create one + batch.push( + threadCollection.prepareCreate(tm => { + tm._raw = sanitizedRaw({ id: tmid }, threadCollection.schema); + if (tm.subscription) { + tm.subscription.id = rid; + } + tm.tmid = tmid; + tm.msg = tMessageRecord.msg; + tm.ts = tMessageRecord.ts; + tm._updatedAt = messageDate; + tm.status = messagesStatus.SENT; // Original message was sent already + tm.u = tMessageRecord.u; + tm.t = message?.t as MessageType; + tm.attachments = tMessageRecord.attachments; + if (message?.t === E2E_MESSAGE_TYPE) { + tm.e2e = E2E_STATUS.DONE as E2EType; + } + }) + ); } - }) - ); - try { - // Find thread message header in Threads collection - await threadCollection.find(tmid); - } catch (error) { - // If there's no record, create one - batch.push( - threadCollection.prepareCreate(tm => { - tm._raw = sanitizedRaw({ id: tmid }, threadCollection.schema); - if (tm.subscription) { - tm.subscription.id = rid; - } - tm.tmid = tmid; - tm.msg = tMessageRecord.msg; - tm.ts = tMessageRecord.ts; - tm._updatedAt = messageDate; - tm.status = messagesStatus.SENT; // Original message was sent already - tm.u = tMessageRecord.u; - tm.t = message?.t as MessageType; - tm.attachments = tMessageRecord.attachments; - if (message?.t === E2E_MESSAGE_TYPE) { - tm.e2e = E2E_STATUS.DONE as E2EType; - } - }) - ); + // Create the message sent in ThreadMessages collection + batch.push( + threadMessagesCollection.prepareCreate(tm => { + tm._raw = sanitizedRaw({ id: messageId }, threadMessagesCollection.schema); + if (tm.subscription) { + tm.subscription.id = rid; + } + tm.rid = tmid; + tm.msg = msg; + tm.ts = messageDate; + tm._updatedAt = messageDate; + tm.status = messagesStatus.TEMP; + tm.u = { + _id: user.id || '1', + username: user.username, + name: user.name + }; + tm.t = message?.t as MessageType; + if (message?.t === E2E_MESSAGE_TYPE) { + tm.e2e = E2E_STATUS.DONE as E2EType; + } + }) + ); + } catch (e) { + log(e); + } } - // Create the message sent in ThreadMessages collection + // Create the message sent in Messages collection batch.push( - threadMessagesCollection.prepareCreate(tm => { - tm._raw = sanitizedRaw({ id: messageId }, threadMessagesCollection.schema); - if (tm.subscription) { - tm.subscription.id = rid; + msgCollection.prepareCreate(m => { + m._raw = sanitizedRaw({ id: messageId }, msgCollection.schema); + if (m.subscription) { + m.subscription.id = rid; } - tm.rid = tmid; - tm.msg = msg; - tm.ts = messageDate; - tm._updatedAt = messageDate; - tm.status = messagesStatus.TEMP; - tm.u = { + m.msg = msg; + m.ts = messageDate; + m._updatedAt = messageDate; + m.status = messagesStatus.TEMP; + m.u = { _id: user.id || '1', username: user.username, name: user.name }; - tm.t = message?.t as MessageType; + if (tmid && tMessageRecord) { + m.tmid = tmid; + // m.tlm = messageDate; // I don't think this is necessary... leaving it commented just in case... + m.tmsg = tMessageRecord.msg; + m.tshow = tshow; + } + m.t = message?.t as MessageType; if (message?.t === E2E_MESSAGE_TYPE) { - tm.e2e = E2E_STATUS.DONE as E2EType; + m.e2e = E2E_STATUS.DONE as E2EType; } }) ); - } catch (e) { - log(e); - } - } - // Create the message sent in Messages collection - batch.push( - msgCollection.prepareCreate(m => { - m._raw = sanitizedRaw({ id: messageId }, msgCollection.schema); - if (m.subscription) { - m.subscription.id = rid; - } - m.msg = msg; - m.ts = messageDate; - m._updatedAt = messageDate; - m.status = messagesStatus.TEMP; - m.u = { - _id: user.id || '1', - username: user.username, - name: user.name - }; - if (tmid && tMessageRecord) { - m.tmid = tmid; - // m.tlm = messageDate; // I don't think this is necessary... leaving it commented just in case... - m.tmsg = tMessageRecord.msg; - m.tshow = tshow; - } - m.t = message?.t as MessageType; - if (message?.t === E2E_MESSAGE_TYPE) { - m.e2e = E2E_STATUS.DONE as E2EType; + try { + const room = await subsCollection.find(rid); + if (room.draftMessage) { + batch.push( + room.prepareUpdate(r => { + r.draftMessage = null; + }) + ); + } + } catch (e) { + // Do nothing } - }) - ); - try { - const room = await subsCollection.find(rid); - if (room.draftMessage) { - batch.push( - room.prepareUpdate(r => { - r.draftMessage = null; - }) - ); - } - } catch (e) { - // Do nothing - } - - try { - await db.write(async () => { await db.batch(batch); }); } catch (e) { diff --git a/app/lib/methods/subscriptions/room.test.ts b/app/lib/methods/subscriptions/room.test.ts index bf0b0e9576d..7156e1da294 100644 --- a/app/lib/methods/subscriptions/room.test.ts +++ b/app/lib/methods/subscriptions/room.test.ts @@ -1,7 +1,17 @@ +import { InteractionManager } from 'react-native'; + import RoomSubscription from './room'; import { getMessageById } from '../../database/services/Message'; import { getThreadById } from '../../database/services/Thread'; +import database from '../../database'; import log from '../helpers/log'; +import { + commitPreparedRecords, + deferred, + flush, + loggedPendingChanges, + makeFakeRecord +} from '../../database/__tests__/mockedWatermelonDB'; const mockSubscribeRoom = jest.fn, [string]>(() => Promise.resolve([])); const mockOnStreamData = jest.fn, [string, (...args: unknown[]) => void]>(() => @@ -79,7 +89,8 @@ jest.mock('../../encryption', () => ({ const mockDbBatch = jest.fn().mockResolvedValue(undefined); const mockDbGet = jest.fn(); jest.mock('../../database', () => { - let writerQueue: Promise = Promise.resolve(); + const { createWriterLock } = require('../../database/__tests__/mockedWatermelonDB'); + const write = createWriterLock(); const mockModel = { prepareCreate: jest.fn(() => ({})), prepareUpdate: jest.fn(() => ({})), @@ -91,11 +102,7 @@ jest.mock('../../database', () => { default: { active: { get: (...args: unknown[]) => mockDbGet(...args) ?? mockModel, - write: jest.fn((callback: () => Promise) => { - const run = writerQueue.then(() => callback()); - writerQueue = run.catch(() => undefined); - return run; - }), + write: jest.fn(write), batch: (...args: unknown[]) => mockDbBatch(...args) } } @@ -138,40 +145,86 @@ describe('RoomSubscription', () => { }); describe('updateMessage concurrency', () => { - const makeRecord = (debugName: string) => ({ - _preparedState: null as string | null, - prepareUpdate(recordUpdater: (m: any) => void) { - if (this._preparedState) { - throw new Error(`Cannot update a record with pending changes (${debugName})`); - } - recordUpdater(this); - this._preparedState = 'update'; - return this; - } - }); - it('does not throw "pending changes" when two stream events for the same message id arrive concurrently', async () => { const _id = 'KXse45i7gGYE8j4Xb'; - const messageRecord = makeRecord(`messages#${_id}`); - const threadRecord = makeRecord(`threads#${_id}`); + const messageRecord = makeFakeRecord(`messages#${_id}`); + const threadRecord = makeFakeRecord(`threads#${_id}`); (getMessageById as jest.Mock).mockResolvedValue(messageRecord); (getThreadById as jest.Mock).mockResolvedValue(threadRecord); - // db.batch commits prepared records, clearing their pending state (like the real writer). - mockDbBatch.mockImplementation((...items: any[]) => { - items.forEach(item => { - if (item && typeof item === 'object' && '_preparedState' in item) { - item._preparedState = null; - } - }); - return Promise.resolve(undefined); - }); + mockDbBatch.mockImplementation(commitPreparedRecords); const message = { _id, rid, tlm: { $date: 1 } } as any; await Promise.all([sub.updateMessage({ ...message }), sub.updateMessage({ ...message })]); - const loggedPendingChanges = (log as jest.Mock).mock.calls.some(([err]) => /pending changes/.test(err?.message)); - expect(loggedPendingChanges).toBe(false); + expect(loggedPendingChanges(log)).toBe(false); + }); + }); + + describe('deleteMessage concurrency', () => { + let interactionTask: Promise | null = null; + + beforeEach(() => { + interactionTask = null; + // Run the deferred work inline so the test can await it. + jest.spyOn(InteractionManager, 'runAfterInteractions').mockImplementation((task: any) => { + interactionTask = task(); + return { then: () => undefined, done: () => undefined, cancel: () => undefined } as any; + }); + mockDbBatch.mockImplementation(commitPreparedRecords); + }); + + afterEach(() => { + jest.restoreAllMocks(); + }); + + it('does not throw "pending changes" when a concurrent writer touches a message being deleted', async () => { + const _id = 'KXse45i7gGYE8j4Xb'; + const messageRecord = makeFakeRecord(`messages#${_id}`); + const threadRecord = makeFakeRecord(`threads#${_id}`); + const threadMessageRecord = makeFakeRecord(`thread_messages#${_id}`); + const collections: Record = { + messages: { find: () => Promise.resolve(messageRecord) }, + threads: { find: () => Promise.resolve(threadRecord) }, + thread_messages: { find: () => Promise.resolve(threadMessageRecord) } + }; + mockDbGet.mockImplementation((name: string) => collections[name]); + + const db = (database as any).active; + + // Hold the writer lock — as an incoming message update would — and then touch the very + // record the delete branch is about to prepare for destruction. + const concurrentGate = deferred(); + const concurrentWrite = db.write(async () => { + await concurrentGate.promise; + await db.batch([ + messageRecord.prepareUpdate((m: any) => { + m.msg = 'written by another writer'; + }) + ]); + }); + + await sub.handleNotifyRoomReceived({ + fields: { eventName: `${rid}/deleteMessage`, args: [{ _id }] } + } as any); + + // Give an unlocked implementation the chance to prepare now — before the concurrent + // writer runs — and hold the records pending until its own batch. + await flush(); + concurrentGate.resolve(); + + await expect(Promise.all([concurrentWrite, interactionTask])).resolves.toBeDefined(); + + expect(loggedPendingChanges(log)).toBe(false); + + // The whole delete batch committed together and nothing was left prepared. + const deleteBatch = mockDbBatch.mock.calls + .map(call => call.flat()) + .find(items => items.includes(threadRecord) && items.includes(threadMessageRecord)); + expect(deleteBatch).toContain(messageRecord); + expect(messageRecord._preparedState).toBeNull(); + expect(threadRecord._preparedState).toBeNull(); + expect(threadMessageRecord._preparedState).toBeNull(); }); }); }); diff --git a/app/lib/methods/subscriptions/room.ts b/app/lib/methods/subscriptions/room.ts index acfe1c74029..33dd6b46047 100644 --- a/app/lib/methods/subscriptions/room.ts +++ b/app/lib/methods/subscriptions/room.ts @@ -148,34 +148,34 @@ export default class RoomSubscription { const msgCollection = db.get('messages'); const threadsCollection = db.get('threads'); const threadMessagesCollection = db.get('thread_messages'); - let deleteMessage: TMessageModel; - let deleteThread: TThreadModel; - let deleteThreadMessage: TThreadMessageModel; - - // Delete message - try { - const m = await msgCollection.find(_id); - deleteMessage = m.prepareDestroyPermanently(); - } catch (e) { - // Do nothing - } - - // Delete thread - try { - const m = await threadsCollection.find(_id); - deleteThread = m.prepareDestroyPermanently(); - } catch (e) { - // Do nothing - } - - // Delete thread message - try { - const m = await threadMessagesCollection.find(_id); - deleteThreadMessage = m.prepareDestroyPermanently(); - } catch (e) { - // Do nothing - } await db.write(async () => { + let deleteMessage: TMessageModel | undefined; + let deleteThread: TThreadModel | undefined; + let deleteThreadMessage: TThreadMessageModel | undefined; + + // Delete message + try { + const m = await msgCollection.find(_id); + deleteMessage = m.prepareDestroyPermanently(); + } catch (e) { + // Do nothing + } + + // Delete thread + try { + const m = await threadsCollection.find(_id); + deleteThread = m.prepareDestroyPermanently(); + } catch (e) { + // Do nothing + } + + // Delete thread message + try { + const m = await threadMessagesCollection.find(_id); + deleteThreadMessage = m.prepareDestroyPermanently(); + } catch (e) { + // Do nothing + } await db.batch(deleteMessage, deleteThread, deleteThreadMessage); }); } catch (e) { diff --git a/app/lib/services/restApi.ts b/app/lib/services/restApi.ts index 0103b150a64..c6f087b8209 100644 --- a/app/lib/services/restApi.ts +++ b/app/lib/services/restApi.ts @@ -264,7 +264,7 @@ export const convertChannelToTeam = ({ rid, name, type }: { rid: string; name: s : { channelId: rid, channelName: name - }; + }; } else { params = { roomId: rid, diff --git a/app/lib/services/voip/MediaSessionInstance.test.ts b/app/lib/services/voip/MediaSessionInstance.test.ts index d4bba0d1c60..564bddb47d3 100644 --- a/app/lib/services/voip/MediaSessionInstance.test.ts +++ b/app/lib/services/voip/MediaSessionInstance.test.ts @@ -188,20 +188,21 @@ jest.mock('@rocket.chat/media-signaling', () => ({ MediaCallWebRTCProcessor: jest.fn().mockImplementation(function MediaCallWebRTCProcessor(this: unknown) { return this; }), - MediaSignalingSession: jest - .fn() - .mockImplementation(function MockMediaSignalingSession(this: MockMediaSignalingSession, config: { userId: string }) { - const endSession = jest.fn(); - this.userId = config.userId; - this.endSession = endSession; - this.on = jest.fn(); - this.processSignal = jest.fn().mockResolvedValue(undefined); - this.setIceGatheringTimeout = jest.fn(); - this.startCall = jest.fn().mockResolvedValue(undefined); - this.getCallData = jest.fn(); - Object.defineProperty(this, 'sessionId', { value: `session-${config.userId}`, writable: false }); - createdSessions.push(this); - }) + MediaSignalingSession: jest.fn().mockImplementation(function MockMediaSignalingSession( + this: MockMediaSignalingSession, + config: { userId: string } + ) { + const endSession = jest.fn(); + this.userId = config.userId; + this.endSession = endSession; + this.on = jest.fn(); + this.processSignal = jest.fn().mockResolvedValue(undefined); + this.setIceGatheringTimeout = jest.fn(); + this.startCall = jest.fn().mockResolvedValue(undefined); + this.getCallData = jest.fn(); + Object.defineProperty(this, 'sessionId', { value: `session-${config.userId}`, writable: false }); + createdSessions.push(this); + }) })); const STREAM_NOTIFY_USER = 'stream-notify-user'; diff --git a/app/lib/services/voip/getPeerAutocompleteOptions.ts b/app/lib/services/voip/getPeerAutocompleteOptions.ts index 98fb7599ae1..189ccb048a1 100644 --- a/app/lib/services/voip/getPeerAutocompleteOptions.ts +++ b/app/lib/services/voip/getPeerAutocompleteOptions.ts @@ -45,7 +45,7 @@ export const getPeerAutocompleteOptions = async ({ sipEnabled ? { freeSwitchExtension: { $exists: true } } : null, peerExtension ? { freeSwitchExtension: { $ne: peerExtension } } : null ].filter(Boolean) - } + } : undefined; const exceptions = [username, peerUsername].filter(Boolean); diff --git a/app/reducers/login.ts b/app/reducers/login.ts index f9ef9b267ea..05254c2ffc9 100644 --- a/app/reducers/login.ts +++ b/app/reducers/login.ts @@ -103,7 +103,7 @@ export default function login(state = initialState, action: TActionsLogin): ILog preferences: state.user?.settings?.preferences ? { ...state.user.settings.preferences, ...action.preference } : { ...action.preference } - } + } : { profile: {}, preferences: {} } } }; diff --git a/app/sagas/__tests__/deepLinking.test.ts b/app/sagas/__tests__/deepLinking.test.ts index e6ceccde958..1e0dd9c424b 100644 --- a/app/sagas/__tests__/deepLinking.test.ts +++ b/app/sagas/__tests__/deepLinking.test.ts @@ -585,3 +585,61 @@ describe('deepLinking saga — handleOAuth dedup guard', () => { }); }); }); + +describe('deepLinking saga — handleSaml', () => { + beforeEach(() => { + jest.mocked(loginOAuthOrSso).mockReset(); + jest.mocked(loginOAuthOrSso).mockResolvedValue(undefined as any); + }); + + it('redeems the SAML credential token through the regular saml login', async () => { + const store = setupStore(); + + store.dispatch(deepLinkingOpen({ type: 'saml', host: HOST, credentialToken: 'saml-fresh-A' } as any)); + await flushSagaMicrotasks(); + await flushSagaMicrotasks(); + + expect(jest.mocked(loginOAuthOrSso)).toHaveBeenCalledTimes(1); + expect(jest.mocked(loginOAuthOrSso)).toHaveBeenCalledWith({ saml: true, credentialToken: 'saml-fresh-A' }); + }); + + it('does not call loginOAuthOrSso when the credentialToken is missing', async () => { + const store = setupStore(); + + store.dispatch(deepLinkingOpen({ type: 'saml', host: HOST } as any)); + await flushSagaMicrotasks(); + await flushSagaMicrotasks(); + + expect(jest.mocked(loginOAuthOrSso)).not.toHaveBeenCalled(); + }); + + it('does not redeem the same SAML credentialToken twice', async () => { + const store = setupStore(); + + store.dispatch(deepLinkingOpen({ type: 'saml', host: HOST, credentialToken: 'saml-dup-B' } as any)); + await flushSagaMicrotasks(); + await flushSagaMicrotasks(); + + // The credential token is single use on the server, so a replayed deep link must be suppressed. + store.dispatch(deepLinkingOpen({ type: 'saml', host: HOST, credentialToken: 'saml-dup-B' } as any)); + await flushSagaMicrotasks(); + await flushSagaMicrotasks(); + + expect(jest.mocked(loginOAuthOrSso)).toHaveBeenCalledTimes(1); + }); + + it('redeems a different SAML credentialToken after a previous one was consumed', async () => { + const store = setupStore(); + + store.dispatch(deepLinkingOpen({ type: 'saml', host: HOST, credentialToken: 'saml-first-C' } as any)); + await flushSagaMicrotasks(); + await flushSagaMicrotasks(); + + store.dispatch(deepLinkingOpen({ type: 'saml', host: HOST, credentialToken: 'saml-second-C' } as any)); + await flushSagaMicrotasks(); + await flushSagaMicrotasks(); + + expect(jest.mocked(loginOAuthOrSso)).toHaveBeenCalledTimes(2); + expect(jest.mocked(loginOAuthOrSso)).toHaveBeenNthCalledWith(2, { saml: true, credentialToken: 'saml-second-C' }); + }); +}); diff --git a/app/sagas/deepLinking.js b/app/sagas/deepLinking.js index fac9e3292db..6da1e0bdcb0 100644 --- a/app/sagas/deepLinking.js +++ b/app/sagas/deepLinking.js @@ -143,6 +143,21 @@ const handleOAuth = function* handleOAuth({ params }) { } }; +let consumedSamlToken; + +const handleSaml = function* handleSaml({ params }) { + const { credentialToken } = params; + if (!credentialToken || credentialToken === consumedSamlToken) { + return; + } + consumedSamlToken = credentialToken; + try { + yield loginOAuthOrSso({ saml: true, credentialToken }); + } catch (e) { + log(e); + } +}; + const handleShareExtension = function* handleOpen({ params }) { const server = UserPreferences.getString(CURRENT_SERVER); const user = UserPreferences.getString(`${TOKEN_KEY}-${server}`); @@ -175,6 +190,10 @@ const handleOpen = function* handleOpen({ params }) { yield handleOAuth({ params }); return; } + if (params.type === 'saml') { + yield handleSaml({ params }); + return; + } // If there's no host on the deep link params and the app is opened, just call appInit() let { host } = params; diff --git a/app/stacks/InsideStack.tsx b/app/stacks/InsideStack.tsx index 664190e602c..d497134dfb3 100644 --- a/app/stacks/InsideStack.tsx +++ b/app/stacks/InsideStack.tsx @@ -203,8 +203,6 @@ const ChatsStack = createNativeStackNavigator({ }) } }).with(({ Navigator }) => { - 'use memo'; - const { theme } = useContext(ThemeContext); return ; }); @@ -221,8 +219,6 @@ const ProfileStack = createNativeStackNavigator({ PickerView: PickerViewScreen } }).with(({ Navigator }) => { - 'use memo'; - const { theme } = useContext(ThemeContext); return ; }); @@ -245,8 +241,6 @@ const SettingsStack = createNativeStackNavigator({ }) } }).with(({ Navigator }) => { - 'use memo'; - const { theme } = useContext(ThemeContext); return ; }); @@ -257,8 +251,6 @@ const AdminPanelStack = createNativeStackNavigator({ AdminPanelView: AdminPanelViewScreen } }).with(({ Navigator }) => { - 'use memo'; - const { theme } = useContext(ThemeContext); return ; }); @@ -271,8 +263,6 @@ const AccessibilityStack = createNativeStackNavigator({ ThemeView: ThemeViewScreen } }).with(({ Navigator }) => { - 'use memo'; - const { theme } = useContext(ThemeContext); return ; }); @@ -293,8 +283,6 @@ const DrawerStack = createDrawerNavigator({ AccessibilityStackNavigator: AccessibilityStack } }).with(({ Navigator }) => { - 'use memo'; - const { colors } = useContext(ThemeContext); return ( { - 'use memo'; - const { theme } = useContext(ThemeContext); return ; }); @@ -327,8 +313,6 @@ const E2ESaveYourPasswordStack = createNativeStackNavigator({ E2EHowItWorksView: E2EHowItWorksViewScreen } }).with(({ Navigator }) => { - 'use memo'; - const { theme } = useContext(ThemeContext); return ; }); @@ -340,8 +324,6 @@ const E2EEnterYourPasswordStack = createNativeStackNavigator({ E2EEncryptionSecurityView: E2EEncryptionSecurityViewScreen } }).with(({ Navigator }) => { - 'use memo'; - const { theme } = useContext(ThemeContext); return ; }); @@ -378,8 +360,6 @@ const InsideStack = createNativeStackNavigator({ }) } }).with(({ Navigator }) => { - 'use memo'; - const { theme } = useContext(ThemeContext); return ; }); diff --git a/app/stacks/MasterDetailStack/ModalContainer.tsx b/app/stacks/MasterDetailStack/ModalContainer.tsx index e8c6ad19760..b2c85a4d93a 100644 --- a/app/stacks/MasterDetailStack/ModalContainer.tsx +++ b/app/stacks/MasterDetailStack/ModalContainer.tsx @@ -30,8 +30,6 @@ const styles = StyleSheet.create({ }); export const ModalContainer = ({ navigation, children, theme }: IModalContainer) => { - 'use memo'; - const { keyboardHeight, keyboardShown } = useKeyboard(); const { height } = useWindowDimensions(); const modalHeight = sharedStyles.modalFormSheet.height; diff --git a/app/stacks/MasterDetailStack/index.tsx b/app/stacks/MasterDetailStack/index.tsx index a4e517d2048..af30e5f8df2 100644 --- a/app/stacks/MasterDetailStack/index.tsx +++ b/app/stacks/MasterDetailStack/index.tsx @@ -164,8 +164,6 @@ const ChatsStack = createNativeStackNavigator({ }) } }).with(({ Navigator }) => { - 'use memo'; - const { theme } = useContext(ThemeContext); return ; }); @@ -250,8 +248,6 @@ const ModalStack = createNativeStackNavigator({ AccessibilityAndAppearanceView } }).with(({ Navigator }) => { - 'use memo'; - const { theme } = useContext(ThemeContext); const navigation = useNavigation>(); return ( @@ -294,8 +290,6 @@ const InsideStack = createNativeStackNavigator({ }) } }).with(({ Navigator }) => { - 'use memo'; - const { theme } = useContext(ThemeContext); return ; }); diff --git a/app/stacks/OutsideStack.tsx b/app/stacks/OutsideStack.tsx index 3891cd037a3..7a4844081d9 100644 --- a/app/stacks/OutsideStack.tsx +++ b/app/stacks/OutsideStack.tsx @@ -24,8 +24,6 @@ const Outside = createNativeStackNavigator({ LegalView: createNativeStackScreen({ screen: LegalView, options: defaultHeader }) } }).with(({ Navigator }) => { - 'use memo'; - const { theme } = useContext(ThemeContext); return ; }); @@ -42,8 +40,6 @@ const OutsideModal = createNativeStackNavigator({ AuthenticationWebView: createNativeStackScreen({ screen: AuthenticationWebView, options: defaultHeader }) } }).with(({ Navigator }) => { - 'use memo'; - const { theme } = useContext(ThemeContext); return ; }); diff --git a/app/stacks/ShareExtensionStack.tsx b/app/stacks/ShareExtensionStack.tsx index 12eaa2f48e3..2e5eef99886 100644 --- a/app/stacks/ShareExtensionStack.tsx +++ b/app/stacks/ShareExtensionStack.tsx @@ -25,8 +25,6 @@ const ShareExtension = createNativeStackNavigator({ SelectServerView } }).with(({ Navigator }) => { - 'use memo'; - const { theme } = useContext(ThemeContext); return ; }); diff --git a/app/views/AddChannelTeamView.tsx b/app/views/AddChannelTeamView.tsx index cfa88726130..0e327aaa4d6 100644 --- a/app/views/AddChannelTeamView.tsx +++ b/app/views/AddChannelTeamView.tsx @@ -71,11 +71,11 @@ const AddChannelTeamView = () => { isMasterDetail ? navigation.navigate('SelectedUsersView', { nextAction: () => navigation.navigate('CreateChannelView', { teamId }) - }) + }) : navigation.navigate('SelectedUsersView', { nextAction: () => navigation.navigate('ChatsStackNavigator', { screen: 'CreateChannelView', params: { teamId } }) - }) + }) } testID='add-channel-team-view-create-channel' left={() => } diff --git a/app/views/AdminPanelView/index.tsx b/app/views/AdminPanelView/index.tsx index c03c25d7f2e..614004118bf 100644 --- a/app/views/AdminPanelView/index.tsx +++ b/app/views/AdminPanelView/index.tsx @@ -2,6 +2,7 @@ import { useEffect } from 'react'; import { useNavigation } from '@react-navigation/native'; import { WebView } from 'react-native-webview'; import { useSelector } from 'react-redux'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { type NativeStackNavigationProp } from '@react-navigation/native-stack'; import I18n from '../../i18n'; @@ -17,6 +18,7 @@ const AdminPanelView = () => { const baseUrl = useSelector((state: IApplicationState) => state.server.server); const token = useSelector((state: IApplicationState) => getUserSelector(state).token); const isMasterDetail = useMasterDetail(); + const insets = useSafeAreaInsets(); useEffect(() => { navigation.setOptions({ @@ -38,6 +40,7 @@ const AdminPanelView = () => { onMessage={() => {}} source={{ uri: `${baseUrl}/admin/info?layout=embedded` }} injectedJavaScript={str} + containerStyle={{ paddingBottom: insets.bottom }} /> ); diff --git a/app/views/CallView/__snapshots__/index.test.tsx.snap b/app/views/CallView/__snapshots__/index.test.tsx.snap index 0b830f93ff6..a29f9ff832c 100644 --- a/app/views/CallView/__snapshots__/index.test.tsx.snap +++ b/app/views/CallView/__snapshots__/index.test.tsx.snap @@ -164,6 +164,9 @@ exports[`Story Snapshots: ConnectedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 32, "marginBottom": 4, @@ -309,6 +312,9 @@ exports[`Story Snapshots: ConnectedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -416,6 +422,9 @@ exports[`Story Snapshots: ConnectedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -523,6 +532,9 @@ exports[`Story Snapshots: ConnectedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -641,6 +653,9 @@ exports[`Story Snapshots: ConnectedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -748,6 +763,9 @@ exports[`Story Snapshots: ConnectedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -855,6 +873,9 @@ exports[`Story Snapshots: ConnectedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1038,6 +1059,9 @@ exports[`Story Snapshots: ConnectingCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 32, "marginBottom": 4, @@ -1183,6 +1207,9 @@ exports[`Story Snapshots: ConnectingCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1292,6 +1319,9 @@ exports[`Story Snapshots: ConnectingCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1401,6 +1431,9 @@ exports[`Story Snapshots: ConnectingCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1519,6 +1552,9 @@ exports[`Story Snapshots: ConnectingCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1626,6 +1662,9 @@ exports[`Story Snapshots: ConnectingCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1735,6 +1774,9 @@ exports[`Story Snapshots: ConnectingCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1918,6 +1960,9 @@ exports[`Story Snapshots: MutedAndOnHold should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 32, "marginBottom": 4, @@ -2063,6 +2108,9 @@ exports[`Story Snapshots: MutedAndOnHold should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -2170,6 +2218,9 @@ exports[`Story Snapshots: MutedAndOnHold should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -2277,6 +2328,9 @@ exports[`Story Snapshots: MutedAndOnHold should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -2395,6 +2449,9 @@ exports[`Story Snapshots: MutedAndOnHold should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -2502,6 +2559,9 @@ exports[`Story Snapshots: MutedAndOnHold should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -2609,6 +2669,9 @@ exports[`Story Snapshots: MutedAndOnHold should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -2792,6 +2855,9 @@ exports[`Story Snapshots: MutedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 32, "marginBottom": 4, @@ -2937,6 +3003,9 @@ exports[`Story Snapshots: MutedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -3044,6 +3113,9 @@ exports[`Story Snapshots: MutedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -3151,6 +3223,9 @@ exports[`Story Snapshots: MutedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -3269,6 +3344,9 @@ exports[`Story Snapshots: MutedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -3376,6 +3454,9 @@ exports[`Story Snapshots: MutedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -3483,6 +3564,9 @@ exports[`Story Snapshots: MutedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -3666,6 +3750,9 @@ exports[`Story Snapshots: OnHoldCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 32, "marginBottom": 4, @@ -3811,6 +3898,9 @@ exports[`Story Snapshots: OnHoldCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -3918,6 +4008,9 @@ exports[`Story Snapshots: OnHoldCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -4025,6 +4118,9 @@ exports[`Story Snapshots: OnHoldCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -4143,6 +4239,9 @@ exports[`Story Snapshots: OnHoldCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -4250,6 +4349,9 @@ exports[`Story Snapshots: OnHoldCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -4357,6 +4459,9 @@ exports[`Story Snapshots: OnHoldCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -4540,6 +4645,9 @@ exports[`Story Snapshots: SpeakerOn should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 32, "marginBottom": 4, @@ -4685,6 +4793,9 @@ exports[`Story Snapshots: SpeakerOn should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -4792,6 +4903,9 @@ exports[`Story Snapshots: SpeakerOn should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -4899,6 +5013,9 @@ exports[`Story Snapshots: SpeakerOn should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -5017,6 +5134,9 @@ exports[`Story Snapshots: SpeakerOn should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -5124,6 +5244,9 @@ exports[`Story Snapshots: SpeakerOn should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -5231,6 +5354,9 @@ exports[`Story Snapshots: SpeakerOn should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -5397,6 +5523,9 @@ exports[`Story Snapshots: TabletConnectedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 32, "marginBottom": 4, @@ -5542,6 +5671,9 @@ exports[`Story Snapshots: TabletConnectedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -5649,6 +5781,9 @@ exports[`Story Snapshots: TabletConnectedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -5756,6 +5891,9 @@ exports[`Story Snapshots: TabletConnectedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -5863,6 +6001,9 @@ exports[`Story Snapshots: TabletConnectedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -5970,6 +6111,9 @@ exports[`Story Snapshots: TabletConnectedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -6077,6 +6221,9 @@ exports[`Story Snapshots: TabletConnectedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -6243,6 +6390,9 @@ exports[`Story Snapshots: TabletConnectingCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 32, "marginBottom": 4, @@ -6388,6 +6538,9 @@ exports[`Story Snapshots: TabletConnectingCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -6497,6 +6650,9 @@ exports[`Story Snapshots: TabletConnectingCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -6606,6 +6762,9 @@ exports[`Story Snapshots: TabletConnectingCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -6713,6 +6872,9 @@ exports[`Story Snapshots: TabletConnectingCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -6820,6 +6982,9 @@ exports[`Story Snapshots: TabletConnectingCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -6929,6 +7094,9 @@ exports[`Story Snapshots: TabletConnectingCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -7095,6 +7263,9 @@ exports[`Story Snapshots: TabletMutedAndOnHold should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 32, "marginBottom": 4, @@ -7240,6 +7411,9 @@ exports[`Story Snapshots: TabletMutedAndOnHold should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -7347,6 +7521,9 @@ exports[`Story Snapshots: TabletMutedAndOnHold should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -7454,6 +7631,9 @@ exports[`Story Snapshots: TabletMutedAndOnHold should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -7561,6 +7741,9 @@ exports[`Story Snapshots: TabletMutedAndOnHold should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -7668,6 +7851,9 @@ exports[`Story Snapshots: TabletMutedAndOnHold should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -7775,6 +7961,9 @@ exports[`Story Snapshots: TabletMutedAndOnHold should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -7941,6 +8130,9 @@ exports[`Story Snapshots: TabletMutedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 32, "marginBottom": 4, @@ -8086,6 +8278,9 @@ exports[`Story Snapshots: TabletMutedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -8193,6 +8388,9 @@ exports[`Story Snapshots: TabletMutedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -8300,6 +8498,9 @@ exports[`Story Snapshots: TabletMutedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -8407,6 +8608,9 @@ exports[`Story Snapshots: TabletMutedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -8514,6 +8718,9 @@ exports[`Story Snapshots: TabletMutedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -8621,6 +8828,9 @@ exports[`Story Snapshots: TabletMutedCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -8787,6 +8997,9 @@ exports[`Story Snapshots: TabletOnHoldCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 32, "marginBottom": 4, @@ -8932,6 +9145,9 @@ exports[`Story Snapshots: TabletOnHoldCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -9039,6 +9255,9 @@ exports[`Story Snapshots: TabletOnHoldCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -9146,6 +9365,9 @@ exports[`Story Snapshots: TabletOnHoldCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -9253,6 +9475,9 @@ exports[`Story Snapshots: TabletOnHoldCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -9360,6 +9585,9 @@ exports[`Story Snapshots: TabletOnHoldCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -9467,6 +9695,9 @@ exports[`Story Snapshots: TabletOnHoldCall should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -9633,6 +9864,9 @@ exports[`Story Snapshots: TabletSpeakerOn should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 32, "marginBottom": 4, @@ -9778,6 +10012,9 @@ exports[`Story Snapshots: TabletSpeakerOn should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -9885,6 +10122,9 @@ exports[`Story Snapshots: TabletSpeakerOn should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -9992,6 +10232,9 @@ exports[`Story Snapshots: TabletSpeakerOn should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -10099,6 +10342,9 @@ exports[`Story Snapshots: TabletSpeakerOn should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -10206,6 +10452,9 @@ exports[`Story Snapshots: TabletSpeakerOn should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -10313,6 +10562,9 @@ exports[`Story Snapshots: TabletSpeakerOn should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -10479,6 +10731,9 @@ exports[`Story Snapshots: TabletWithDialpad should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 32, "marginBottom": 4, @@ -10624,6 +10879,9 @@ exports[`Story Snapshots: TabletWithDialpad should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -10731,6 +10989,9 @@ exports[`Story Snapshots: TabletWithDialpad should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -10838,6 +11099,9 @@ exports[`Story Snapshots: TabletWithDialpad should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -10945,6 +11209,9 @@ exports[`Story Snapshots: TabletWithDialpad should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -11052,6 +11319,9 @@ exports[`Story Snapshots: TabletWithDialpad should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -11159,6 +11429,9 @@ exports[`Story Snapshots: TabletWithDialpad should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -11342,6 +11615,9 @@ exports[`Story Snapshots: WithDialpad should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 32, "marginBottom": 4, @@ -11487,6 +11763,9 @@ exports[`Story Snapshots: WithDialpad should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -11594,6 +11873,9 @@ exports[`Story Snapshots: WithDialpad should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -11701,6 +11983,9 @@ exports[`Story Snapshots: WithDialpad should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -11819,6 +12104,9 @@ exports[`Story Snapshots: WithDialpad should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -11926,6 +12214,9 @@ exports[`Story Snapshots: WithDialpad should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -12033,6 +12324,9 @@ exports[`Story Snapshots: WithDialpad should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", diff --git a/app/views/CallView/components/CallButtons.tsx b/app/views/CallView/components/CallButtons.tsx index 8b1d2855d6d..6d9708b911d 100644 --- a/app/views/CallView/components/CallButtons.tsx +++ b/app/views/CallView/components/CallButtons.tsx @@ -24,8 +24,6 @@ interface ICallButtonConfig { } export const CallButtons = () => { - 'use memo'; - const { colors } = useTheme(); const isMasterDetail = useMasterDetail(); const { layoutMode } = useCallLayoutMode(); diff --git a/app/views/CallView/components/Dialpad/DialpadButton.tsx b/app/views/CallView/components/Dialpad/DialpadButton.tsx index 6360876579d..754f3d5ea1c 100644 --- a/app/views/CallView/components/Dialpad/DialpadButton.tsx +++ b/app/views/CallView/components/Dialpad/DialpadButton.tsx @@ -14,8 +14,6 @@ interface IDialpadButton { } const DialpadButton = ({ digit, letters, testID }: IDialpadButton): ReactElement => { - 'use memo'; - const { colors } = useTheme(); const setDialpadValue = useCallStore(state => state.setDialpadValue); const { playTone } = useDialpadAudio(); diff --git a/app/views/CallView/components/Dialpad/__snapshots__/Dialpad.test.tsx.snap b/app/views/CallView/components/Dialpad/__snapshots__/Dialpad.test.tsx.snap index fe33c0776b9..25a50d663a9 100644 --- a/app/views/CallView/components/Dialpad/__snapshots__/Dialpad.test.tsx.snap +++ b/app/views/CallView/components/Dialpad/__snapshots__/Dialpad.test.tsx.snap @@ -79,6 +79,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -187,6 +190,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -207,6 +213,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -283,6 +292,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -303,6 +315,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -381,6 +396,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -401,6 +419,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -489,6 +510,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -509,6 +533,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -587,6 +614,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -607,6 +637,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -685,6 +718,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -705,6 +741,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -793,6 +832,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -813,6 +855,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -891,6 +936,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -911,6 +959,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -989,6 +1040,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -1009,6 +1063,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -1097,6 +1154,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -1180,6 +1240,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -1200,6 +1263,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -1278,6 +1344,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -1390,6 +1459,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -1498,6 +1570,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -1518,6 +1593,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -1594,6 +1672,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -1614,6 +1695,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -1692,6 +1776,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -1712,6 +1799,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -1800,6 +1890,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -1820,6 +1913,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -1898,6 +1994,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -1918,6 +2017,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -1996,6 +2098,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -2016,6 +2121,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -2104,6 +2212,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -2124,6 +2235,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -2202,6 +2316,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -2222,6 +2339,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -2300,6 +2420,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -2320,6 +2443,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -2408,6 +2534,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -2491,6 +2620,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -2511,6 +2643,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -2589,6 +2724,9 @@ exports[`Story Snapshots: TabletLandscape should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -2702,6 +2840,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -2810,6 +2951,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -2830,6 +2974,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -2906,6 +3053,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -2926,6 +3076,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -3004,6 +3157,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -3024,6 +3180,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -3112,6 +3271,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -3132,6 +3294,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -3210,6 +3375,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -3230,6 +3398,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -3308,6 +3479,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -3328,6 +3502,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -3416,6 +3593,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -3436,6 +3616,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -3514,6 +3697,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -3534,6 +3720,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -3612,6 +3801,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -3632,6 +3824,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -3720,6 +3915,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -3803,6 +4001,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -3823,6 +4024,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -3901,6 +4105,9 @@ exports[`Story Snapshots: TabletLandscapeWithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -4007,6 +4214,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "borderWidth": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingHorizontal": 16, "paddingVertical": 14, @@ -4115,6 +4325,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -4135,6 +4348,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -4211,6 +4427,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -4231,6 +4450,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -4309,6 +4531,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -4329,6 +4554,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -4417,6 +4645,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -4437,6 +4668,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -4515,6 +4749,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -4535,6 +4772,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -4613,6 +4853,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -4633,6 +4876,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -4721,6 +4967,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -4741,6 +4990,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -4819,6 +5071,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -4839,6 +5094,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -4917,6 +5175,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -4937,6 +5198,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -5025,6 +5289,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -5108,6 +5375,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", @@ -5128,6 +5398,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "letterSpacing": 0, "lineHeight": 18, @@ -5206,6 +5479,9 @@ exports[`Story Snapshots: WithValue should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 32, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 36, "textAlign": "center", diff --git a/app/views/CallView/components/__snapshots__/CallActionButton.test.tsx.snap b/app/views/CallView/components/__snapshots__/CallActionButton.test.tsx.snap index 41522494385..854a921f66c 100644 --- a/app/views/CallView/components/__snapshots__/CallActionButton.test.tsx.snap +++ b/app/views/CallView/components/__snapshots__/CallActionButton.test.tsx.snap @@ -111,6 +111,9 @@ exports[`Story Snapshots: ActiveButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -247,6 +250,9 @@ exports[`Story Snapshots: AllVariants should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -354,6 +360,9 @@ exports[`Story Snapshots: AllVariants should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -461,6 +470,9 @@ exports[`Story Snapshots: AllVariants should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -582,6 +594,9 @@ exports[`Story Snapshots: AllVariants should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -689,6 +704,9 @@ exports[`Story Snapshots: AllVariants should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -796,6 +814,9 @@ exports[`Story Snapshots: AllVariants should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -925,6 +946,9 @@ exports[`Story Snapshots: DangerButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1053,6 +1077,9 @@ exports[`Story Snapshots: DefaultButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1183,6 +1210,9 @@ exports[`Story Snapshots: DisabledButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1320,6 +1350,9 @@ exports[`Story Snapshots: TabletAllVariants should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1427,6 +1460,9 @@ exports[`Story Snapshots: TabletAllVariants should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1534,6 +1570,9 @@ exports[`Story Snapshots: TabletAllVariants should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1641,6 +1680,9 @@ exports[`Story Snapshots: TabletAllVariants should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1748,6 +1790,9 @@ exports[`Story Snapshots: TabletAllVariants should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", @@ -1855,6 +1900,9 @@ exports[`Story Snapshots: TabletAllVariants should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", diff --git a/app/views/CallView/components/__snapshots__/CallerInfo.test.tsx.snap b/app/views/CallView/components/__snapshots__/CallerInfo.test.tsx.snap index 37430109eed..33618ff1d53 100644 --- a/app/views/CallView/components/__snapshots__/CallerInfo.test.tsx.snap +++ b/app/views/CallView/components/__snapshots__/CallerInfo.test.tsx.snap @@ -136,6 +136,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 32, "marginBottom": 4, @@ -291,6 +294,9 @@ exports[`Story Snapshots: UsernameOnly should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 24, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 32, "marginBottom": 4, diff --git a/app/views/CallView/index.tsx b/app/views/CallView/index.tsx index 3254ee32705..508d3723715 100644 --- a/app/views/CallView/index.tsx +++ b/app/views/CallView/index.tsx @@ -12,8 +12,6 @@ import { isIOS } from '../../lib/methods/helpers'; import NativeVoipModule from '../../lib/native/NativeVoip'; const CallView = (): ReactElement | null => { - 'use memo'; - const { colors } = useTheme(); const call = useCallStore(state => state.call); const callState = useCallStore(state => state.callState); diff --git a/app/views/CannedResponsesListView/CannedResponseItem.tsx b/app/views/CannedResponsesListView/CannedResponseItem.tsx index efc94b3f1a2..a86d4fbd77f 100644 --- a/app/views/CannedResponsesListView/CannedResponseItem.tsx +++ b/app/views/CannedResponsesListView/CannedResponseItem.tsx @@ -52,7 +52,7 @@ const CannedResponseItem = ({ {t} - )) + )) : null} diff --git a/app/views/CannedResponsesListView/__snapshots__/CannedResponseItem.test.tsx.snap b/app/views/CannedResponsesListView/__snapshots__/CannedResponseItem.test.tsx.snap index 2ee2f702c24..b347ea76688 100644 --- a/app/views/CannedResponsesListView/__snapshots__/CannedResponseItem.test.tsx.snap +++ b/app/views/CannedResponsesListView/__snapshots__/CannedResponseItem.test.tsx.snap @@ -110,6 +110,9 @@ exports[`Story Snapshots: Itens should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "paddingBottom": 0, "paddingTop": 0, @@ -132,6 +135,9 @@ exports[`Story Snapshots: Itens should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingBottom": 0, "paddingTop": 0, @@ -209,6 +215,9 @@ exports[`Story Snapshots: Itens should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -229,6 +238,9 @@ exports[`Story Snapshots: Itens should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginTop": 8, "paddingBottom": 0, @@ -364,6 +376,9 @@ exports[`Story Snapshots: Itens should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "paddingBottom": 0, "paddingTop": 0, @@ -386,6 +401,9 @@ exports[`Story Snapshots: Itens should match snapshot 1`] = ` "flex": 1, "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingBottom": 0, "paddingTop": 0, @@ -463,6 +481,9 @@ exports[`Story Snapshots: Itens should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -483,6 +504,9 @@ exports[`Story Snapshots: Itens should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginTop": 8, "paddingBottom": 0, @@ -529,6 +553,9 @@ exports[`Story Snapshots: Itens should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingBottom": 0, "paddingHorizontal": 4, @@ -566,6 +593,9 @@ exports[`Story Snapshots: Itens should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingBottom": 0, "paddingHorizontal": 4, @@ -603,6 +633,9 @@ exports[`Story Snapshots: Itens should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingBottom": 0, "paddingHorizontal": 4, @@ -640,6 +673,9 @@ exports[`Story Snapshots: Itens should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingBottom": 0, "paddingHorizontal": 4, @@ -677,6 +713,9 @@ exports[`Story Snapshots: Itens should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingBottom": 0, "paddingHorizontal": 4, @@ -714,6 +753,9 @@ exports[`Story Snapshots: Itens should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingBottom": 0, "paddingHorizontal": 4, @@ -751,6 +793,9 @@ exports[`Story Snapshots: Itens should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "paddingBottom": 0, "paddingHorizontal": 4, diff --git a/app/views/CreateChannelView/RoomSettings/__snapshots__/SwitchItem.test.tsx.snap b/app/views/CreateChannelView/RoomSettings/__snapshots__/SwitchItem.test.tsx.snap index 118803f9dc4..a472c91709a 100644 --- a/app/views/CreateChannelView/RoomSettings/__snapshots__/SwitchItem.test.tsx.snap +++ b/app/views/CreateChannelView/RoomSettings/__snapshots__/SwitchItem.test.tsx.snap @@ -42,6 +42,9 @@ exports[`Story Snapshots: Switch should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 24, "textAlign": "left", @@ -61,6 +64,9 @@ exports[`Story Snapshots: Switch should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 20, "textAlign": "left", diff --git a/app/views/DirectoryView/hooks/useDirectorySearch.ts b/app/views/DirectoryView/hooks/useDirectorySearch.ts index 1eff11ed0de..9d1612e0444 100644 --- a/app/views/DirectoryView/hooks/useDirectorySearch.ts +++ b/app/views/DirectoryView/hooks/useDirectorySearch.ts @@ -7,8 +7,6 @@ import log, { events, logEvent } from '../../../lib/methods/helpers/log'; import { getDirectory } from '../../../lib/services/restApi'; export const useDirectorySearch = (directoryDefaultView: string) => { - 'use memo'; - const [data, setData] = useState([]); const [loading, setLoading] = useState(false); const [text, setText] = useState(''); diff --git a/app/views/DiscussionsView/__snapshots__/Item.test.tsx.snap b/app/views/DiscussionsView/__snapshots__/Item.test.tsx.snap index 792d2047ad4..1dedcc55ec4 100644 --- a/app/views/DiscussionsView/__snapshots__/Item.test.tsx.snap +++ b/app/views/DiscussionsView/__snapshots__/Item.test.tsx.snap @@ -186,6 +186,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -204,6 +207,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -233,6 +239,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -312,6 +321,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -366,6 +378,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -569,6 +584,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -587,6 +605,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -616,6 +637,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -695,6 +719,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -749,6 +776,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -952,6 +982,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -970,6 +1003,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -999,6 +1035,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1078,6 +1117,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -1134,6 +1176,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -1337,6 +1382,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1355,6 +1403,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -1384,6 +1435,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1463,6 +1517,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -1517,6 +1574,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -1720,6 +1780,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1738,6 +1801,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -1767,6 +1833,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1846,6 +1915,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -1900,6 +1972,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -2123,6 +2198,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2141,6 +2219,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -2170,6 +2251,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2249,6 +2333,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -2303,6 +2390,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -2493,6 +2583,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2511,6 +2604,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -2540,6 +2636,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2619,6 +2718,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -2673,6 +2775,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -2863,6 +2968,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2881,6 +2989,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -2910,6 +3021,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2989,6 +3103,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -3043,6 +3160,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", diff --git a/app/views/LanguageView/index.tsx b/app/views/LanguageView/index.tsx index 96c46d04431..316f8d3b38d 100644 --- a/app/views/LanguageView/index.tsx +++ b/app/views/LanguageView/index.tsx @@ -22,8 +22,6 @@ import log, { events, logEvent } from '../../lib/methods/helpers/log'; import { saveUserPreferences } from '../../lib/services/restApi'; const LanguageView = () => { - 'use memo'; - const { languageDefault, id } = useAppSelector(state => ({ languageDefault: getUserSelector(state).language, id: getUserSelector(state).id diff --git a/app/views/ModalBlockView.tsx b/app/views/ModalBlockView.tsx index ae39435bf46..d9eb9802d67 100644 --- a/app/views/ModalBlockView.tsx +++ b/app/views/ModalBlockView.tsx @@ -160,14 +160,14 @@ class ModalBlockView extends Component - ) + ) : undefined, headerRight: submit ? () => ( - ) + ) : undefined }); }; diff --git a/app/views/NewMessageView/__snapshots__/Item.test.tsx.snap b/app/views/NewMessageView/__snapshots__/Item.test.tsx.snap index 7f6dd412fe7..530b9e1be5f 100644 --- a/app/views/NewMessageView/__snapshots__/Item.test.tsx.snap +++ b/app/views/NewMessageView/__snapshots__/Item.test.tsx.snap @@ -134,6 +134,9 @@ exports[`NewMessageView Item should match snapshot when hasMediaCallPermission i "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", @@ -295,6 +298,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", @@ -518,6 +524,9 @@ exports[`Story Snapshots: LongName should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", @@ -741,6 +750,9 @@ exports[`Story Snapshots: NoVoiceCallPermission should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "lineHeight": 26, "textAlign": "left", diff --git a/app/views/NewServerView/components/ServersHistoryItem/__snapshots__/ServersHistoryItem.test.tsx.snap b/app/views/NewServerView/components/ServersHistoryItem/__snapshots__/ServersHistoryItem.test.tsx.snap index 6093d21cbdf..de1d3b1e0a2 100644 --- a/app/views/NewServerView/components/ServersHistoryItem/__snapshots__/ServersHistoryItem.test.tsx.snap +++ b/app/views/NewServerView/components/ServersHistoryItem/__snapshots__/ServersHistoryItem.test.tsx.snap @@ -10,13 +10,12 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` style={ [ { + "bottom": 0, "flexDirection": "row", "left": 0, "position": "absolute", "right": 0, - }, - { - "height": 80, + "top": 0, }, { "backgroundColor": "#EC0D2A", @@ -29,6 +28,7 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` [ { "alignItems": "flex-end", + "bottom": 0, "justifyContent": "center", "position": "absolute", "top": 0, @@ -36,9 +36,6 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` { "width": 350, }, - { - "height": 80, - }, [Function], ] } @@ -283,6 +280,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -302,6 +302,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -328,13 +331,12 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` style={ [ { + "bottom": 0, "flexDirection": "row", "left": 0, "position": "absolute", "right": 0, - }, - { - "height": 80, + "top": 0, }, { "backgroundColor": "#EC0D2A", @@ -347,6 +349,7 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` [ { "alignItems": "flex-end", + "bottom": 0, "justifyContent": "center", "position": "absolute", "top": 0, @@ -354,9 +357,6 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` { "width": 350, }, - { - "height": 80, - }, [Function], ] } @@ -601,6 +601,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -620,6 +623,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -646,13 +652,12 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` style={ [ { + "bottom": 0, "flexDirection": "row", "left": 0, "position": "absolute", "right": 0, - }, - { - "height": 80, + "top": 0, }, { "backgroundColor": "#EC0D2A", @@ -665,6 +670,7 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` [ { "alignItems": "flex-end", + "bottom": 0, "justifyContent": "center", "position": "absolute", "top": 0, @@ -672,9 +678,6 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` { "width": 350, }, - { - "height": 80, - }, [Function], ] } @@ -919,6 +922,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -938,6 +944,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -969,13 +978,12 @@ exports[`Story Snapshots: SwipeActions should match snapshot 1`] = ` style={ [ { + "bottom": 0, "flexDirection": "row", "left": 0, "position": "absolute", "right": 0, - }, - { - "height": 80, + "top": 0, }, { "backgroundColor": "#EC0D2A", @@ -988,6 +996,7 @@ exports[`Story Snapshots: SwipeActions should match snapshot 1`] = ` [ { "alignItems": "flex-end", + "bottom": 0, "justifyContent": "center", "position": "absolute", "top": 0, @@ -995,9 +1004,6 @@ exports[`Story Snapshots: SwipeActions should match snapshot 1`] = ` { "width": 350, }, - { - "height": 80, - }, [Function], ] } @@ -1242,6 +1248,9 @@ exports[`Story Snapshots: SwipeActions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1261,6 +1270,9 @@ exports[`Story Snapshots: SwipeActions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1287,13 +1299,12 @@ exports[`Story Snapshots: SwipeActions should match snapshot 1`] = ` style={ [ { + "bottom": 0, "flexDirection": "row", "left": 0, "position": "absolute", "right": 0, - }, - { - "height": 80, + "top": 0, }, { "backgroundColor": "#EC0D2A", @@ -1306,6 +1317,7 @@ exports[`Story Snapshots: SwipeActions should match snapshot 1`] = ` [ { "alignItems": "flex-end", + "bottom": 0, "justifyContent": "center", "position": "absolute", "top": 0, @@ -1313,9 +1325,6 @@ exports[`Story Snapshots: SwipeActions should match snapshot 1`] = ` { "width": 350, }, - { - "height": 80, - }, [Function], ] } @@ -1560,6 +1569,9 @@ exports[`Story Snapshots: SwipeActions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1579,6 +1591,9 @@ exports[`Story Snapshots: SwipeActions should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1610,13 +1625,12 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` style={ [ { + "bottom": 0, "flexDirection": "row", "left": 0, "position": "absolute", "right": 0, - }, - { - "height": 80, + "top": 0, }, { "backgroundColor": "#EC0D2A", @@ -1629,6 +1643,7 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` [ { "alignItems": "flex-end", + "bottom": 0, "justifyContent": "center", "position": "absolute", "top": 0, @@ -1636,9 +1651,6 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` { "width": 350, }, - { - "height": 80, - }, [Function], ] } @@ -1883,6 +1895,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -1902,6 +1917,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1928,13 +1946,12 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` style={ [ { + "bottom": 0, "flexDirection": "row", "left": 0, "position": "absolute", "right": 0, - }, - { - "height": 80, + "top": 0, }, { "backgroundColor": "#BB3E4E", @@ -1947,6 +1964,7 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` [ { "alignItems": "flex-end", + "bottom": 0, "justifyContent": "center", "position": "absolute", "top": 0, @@ -1954,9 +1972,6 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` { "width": 350, }, - { - "height": 80, - }, [Function], ] } @@ -2201,6 +2216,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -2220,6 +2238,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2246,13 +2267,12 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` style={ [ { + "bottom": 0, "flexDirection": "row", "left": 0, "position": "absolute", "right": 0, - }, - { - "height": 80, + "top": 0, }, { "backgroundColor": "#BB3E4E", @@ -2265,6 +2285,7 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` [ { "alignItems": "flex-end", + "bottom": 0, "justifyContent": "center", "position": "absolute", "top": 0, @@ -2272,9 +2293,6 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` { "width": 350, }, - { - "height": 80, - }, [Function], ] } @@ -2519,6 +2537,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, @@ -2538,6 +2559,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, diff --git a/app/views/RoomActionsView/components/CallSection.stories.tsx b/app/views/RoomActionsView/components/CallSection.stories.tsx index fb53fea4b99..1922a33fa6c 100644 --- a/app/views/RoomActionsView/components/CallSection.stories.tsx +++ b/app/views/RoomActionsView/components/CallSection.stories.tsx @@ -43,7 +43,7 @@ const createMockRoom = (overrides: Partial = {}): TSubscriptionMo roomUpdatedAt: new Date(), ro: false, ...overrides - } as TSubscriptionModel); + }) as TSubscriptionModel; const withVoiceAndVideoCallEnabled = (Story: ComponentType) => { mockedStore.dispatch(setEnterpriseModules(['teams-voip'])); diff --git a/app/views/RoomActionsView/components/CallSection.test.tsx b/app/views/RoomActionsView/components/CallSection.test.tsx index da31b5cca7f..fa0ca46e06f 100644 --- a/app/views/RoomActionsView/components/CallSection.test.tsx +++ b/app/views/RoomActionsView/components/CallSection.test.tsx @@ -76,7 +76,7 @@ const createMockRoom = (overrides: Partial = {}): TSubscriptionMo roomUpdatedAt: new Date(), ro: false, ...overrides - } as TSubscriptionModel); + }) as TSubscriptionModel; describe('CallSection', () => { beforeEach(() => { diff --git a/app/views/RoomActionsView/components/__snapshots__/CallSection.test.tsx.snap b/app/views/RoomActionsView/components/__snapshots__/CallSection.test.tsx.snap index d3cb79e3ba8..240cacd0add 100644 --- a/app/views/RoomActionsView/components/__snapshots__/CallSection.test.tsx.snap +++ b/app/views/RoomActionsView/components/__snapshots__/CallSection.test.tsx.snap @@ -199,6 +199,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -484,6 +487,9 @@ exports[`Story Snapshots: Disabled should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -767,6 +773,9 @@ exports[`Story Snapshots: NoVoiceCall should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, diff --git a/app/views/RoomInfoEditView/index.tsx b/app/views/RoomInfoEditView/index.tsx index b09642bab89..40dfb958d47 100644 --- a/app/views/RoomInfoEditView/index.tsx +++ b/app/views/RoomInfoEditView/index.tsx @@ -454,7 +454,7 @@ const RoomInfoEditView = ({ navigation, route }: IRoomInfoEditViewProps) => { ? [ {I18n.t('Broadcast')}, - ] + ] : null} {serverVersion && !compareServerVersion(serverVersion, 'lowerThan', '3.0.0') ? ( = {}): ISubscription = roomUpdatedAt: new Date(), ro: false, ...overrides - } as ISubscription); + }) as ISubscription; const defaultHandlers = { handleCreateDirectMessage: () => {}, diff --git a/app/views/RoomInfoView/components/RoomInfoButtons.test.tsx b/app/views/RoomInfoView/components/RoomInfoButtons.test.tsx index 878b1c93884..4679e9d9fb3 100644 --- a/app/views/RoomInfoView/components/RoomInfoButtons.test.tsx +++ b/app/views/RoomInfoView/components/RoomInfoButtons.test.tsx @@ -60,7 +60,7 @@ const createMockRoom = (overrides: Partial = {}): ISubscription = roomUpdatedAt: new Date(), ro: false, ...overrides - } as ISubscription); + }) as ISubscription; const defaultProps = { rid: 'room1', diff --git a/app/views/RoomInfoView/components/RoomInfoButtons.tsx b/app/views/RoomInfoView/components/RoomInfoButtons.tsx index 43b2546aa96..cd365ecfd80 100644 --- a/app/views/RoomInfoView/components/RoomInfoButtons.tsx +++ b/app/views/RoomInfoView/components/RoomInfoButtons.tsx @@ -52,8 +52,6 @@ export const RoomInfoButtons = ({ serverVersion, itsMe }: IRoomInfoButtons): ReactElement => { - 'use memo'; - const room = roomFromRid || roomFromProps; const { showActionSheet } = useActionSheet(); const { callEnabled, disabledTooltip, showInitCallActionSheet } = useVideoConf(rid); diff --git a/app/views/RoomInfoView/components/__snapshots__/RoomInfoABAC.test.tsx.snap b/app/views/RoomInfoView/components/__snapshots__/RoomInfoABAC.test.tsx.snap index d6ddfd9eef4..c627c22d996 100644 --- a/app/views/RoomInfoView/components/__snapshots__/RoomInfoABAC.test.tsx.snap +++ b/app/views/RoomInfoView/components/__snapshots__/RoomInfoABAC.test.tsx.snap @@ -100,6 +100,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -121,6 +124,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -141,6 +147,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -166,6 +175,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -210,6 +222,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -246,6 +261,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -353,6 +371,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -374,6 +395,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -394,6 +418,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -419,6 +446,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -463,6 +493,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -499,6 +532,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -535,6 +571,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -571,6 +610,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -607,6 +649,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -643,6 +688,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -679,6 +727,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -715,6 +766,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -751,6 +805,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -787,6 +844,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -816,6 +876,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -860,6 +923,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -896,6 +962,9 @@ exports[`Story Snapshots: Black should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1018,6 +1087,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1039,6 +1111,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1059,6 +1134,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1084,6 +1162,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1128,6 +1209,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1164,6 +1248,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1271,6 +1358,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1292,6 +1382,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1312,6 +1405,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1337,6 +1433,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1381,6 +1480,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1417,6 +1519,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1453,6 +1558,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1489,6 +1597,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1525,6 +1636,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1561,6 +1675,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1597,6 +1714,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1633,6 +1753,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1669,6 +1792,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1705,6 +1831,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1734,6 +1863,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1778,6 +1910,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1814,6 +1949,9 @@ exports[`Story Snapshots: Dark should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1936,6 +2074,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -1957,6 +2098,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1977,6 +2121,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2002,6 +2149,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2046,6 +2196,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -2082,6 +2235,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -2189,6 +2345,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -2210,6 +2369,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2230,6 +2392,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2255,6 +2420,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2299,6 +2467,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -2335,6 +2506,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -2371,6 +2545,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -2407,6 +2584,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -2443,6 +2623,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -2479,6 +2662,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -2515,6 +2701,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -2551,6 +2740,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -2587,6 +2779,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -2623,6 +2818,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -2652,6 +2850,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2696,6 +2897,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", @@ -2732,6 +2936,9 @@ exports[`Story Snapshots: Light should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "700", "lineHeight": 16, "textAlign": "left", diff --git a/app/views/RoomInfoView/components/__snapshots__/RoomInfoViewAvatar.test.tsx.snap b/app/views/RoomInfoView/components/__snapshots__/RoomInfoViewAvatar.test.tsx.snap index 1baf0606fea..627df366aa4 100644 --- a/app/views/RoomInfoView/components/__snapshots__/RoomInfoViewAvatar.test.tsx.snap +++ b/app/views/RoomInfoView/components/__snapshots__/RoomInfoViewAvatar.test.tsx.snap @@ -204,6 +204,9 @@ exports[`Story Snapshots: WithEdit should match snapshot 1`] = ` { "backgroundColor": "transparent", "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "center", }, @@ -211,6 +214,9 @@ exports[`Story Snapshots: WithEdit should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 12, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "textAlign": "left", }, diff --git a/app/views/RoomView/List/hooks/useMessages.test.tsx b/app/views/RoomView/List/hooks/useMessages.test.tsx index b4c4c8da81d..badc1457d12 100644 --- a/app/views/RoomView/List/hooks/useMessages.test.tsx +++ b/app/views/RoomView/List/hooks/useMessages.test.tsx @@ -60,7 +60,7 @@ const msg = (overrides: Partial & { id: string }): TAnyMessage ({ ts: new Date('2024-01-01'), ...overrides - } as TAnyMessageModel); + }) as TAnyMessageModel; describe('useMessages', () => { let emittedRows: TAnyMessageModel[]; diff --git a/app/views/RoomView/List/hooks/useScroll.ts b/app/views/RoomView/List/hooks/useScroll.ts index 3f634c1e927..98413e82082 100644 --- a/app/views/RoomView/List/hooks/useScroll.ts +++ b/app/views/RoomView/List/hooks/useScroll.ts @@ -151,7 +151,7 @@ export const useScroll = ({ // Re-scroll once the target's row has settled into the measured window. No-op until it has. const reScrollWhenSettled = useCallback( (targetId: string | null | undefined) => { - const settled = targetId ? messagesIds.current?.findIndex(id => id === targetId) ?? -1 : -1; + const settled = targetId ? (messagesIds.current?.findIndex(id => id === targetId) ?? -1) : -1; if (settled !== -1) { listRef.current?.scrollToIndex({ index: settled, ...JUMP_SCROLL_POSITION }); } @@ -226,7 +226,7 @@ export const useScroll = ({ setTimeout(() => { // Re-read at fire time so a retry queued by a previous jump can't scroll to a stale index. const targetId = pendingJump.current?.messageId ?? lastJumpTargetId.current; - const targetIndex = targetId ? messagesIds.current?.findIndex(id => id === targetId) ?? -1 : -1; + const targetIndex = targetId ? (messagesIds.current?.findIndex(id => id === targetId) ?? -1) : -1; if (targetIndex === -1) { return; } diff --git a/app/views/RoomView/List/index.tsx b/app/views/RoomView/List/index.tsx index 3ee10011b8c..442d7dbd198 100644 --- a/app/views/RoomView/List/index.tsx +++ b/app/views/RoomView/List/index.tsx @@ -8,8 +8,6 @@ import { useMessages, useScroll } from './hooks'; const ListContainer = forwardRef( ({ rid, tmid, t, renderRow, showMessageInMainThread, hideSystemMessages, listRef, serverVersion }, ref) => { - 'use memo'; - const [messages, messagesIds, fetchMessages, { highTs, setHighTs }] = useMessages({ rid, tmid, @@ -57,7 +55,7 @@ const ListContainer = forwardRef( : { minIndexForVisible: 0, autoscrollToTopThreshold: 0 - } + } } /> diff --git a/app/views/RoomView/LoadMore/__snapshots__/LoadMore.test.tsx.snap b/app/views/RoomView/LoadMore/__snapshots__/LoadMore.test.tsx.snap index 0bc989b37bd..0a4ea6a6111 100644 --- a/app/views/RoomView/LoadMore/__snapshots__/LoadMore.test.tsx.snap +++ b/app/views/RoomView/LoadMore/__snapshots__/LoadMore.test.tsx.snap @@ -94,6 +94,9 @@ exports[`Story Snapshots: Basic should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -291,6 +294,9 @@ exports[`Story Snapshots: Basic should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -397,6 +403,9 @@ exports[`Story Snapshots: Basic should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -515,6 +524,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -869,6 +881,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -888,6 +903,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -934,6 +952,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -950,6 +971,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -1153,6 +1177,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1169,6 +1196,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -1379,6 +1409,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1395,6 +1428,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -1531,6 +1567,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1637,6 +1676,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1991,6 +2033,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -2010,6 +2055,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -2056,6 +2104,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2072,6 +2123,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -2275,6 +2329,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2291,6 +2348,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -2501,6 +2561,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2517,6 +2580,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -2901,6 +2967,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -2920,6 +2989,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -2966,6 +3038,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2982,6 +3057,9 @@ exports[`Story Snapshots: BlackTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -3124,6 +3202,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -3478,6 +3559,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -3497,6 +3581,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -3543,6 +3630,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3559,6 +3649,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -3762,6 +3855,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3778,6 +3874,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -3988,6 +4087,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -4004,6 +4106,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -4140,6 +4245,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -4246,6 +4354,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -4600,6 +4711,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -4619,6 +4733,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -4665,6 +4782,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -4681,6 +4801,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -4884,6 +5007,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -4900,6 +5026,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5110,6 +5239,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5126,6 +5258,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5510,6 +5645,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -5529,6 +5667,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -5575,6 +5716,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5591,6 +5735,9 @@ exports[`Story Snapshots: DarkTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -5733,6 +5880,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -6087,6 +6237,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -6106,6 +6259,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -6152,6 +6308,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -6168,6 +6327,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -6371,6 +6533,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -6387,6 +6552,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -6597,6 +6765,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -6613,6 +6784,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -6749,6 +6923,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -6855,6 +7032,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -7209,6 +7389,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -7228,6 +7411,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -7274,6 +7460,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -7290,6 +7479,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -7493,6 +7685,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -7509,6 +7704,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -7719,6 +7917,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -7735,6 +7936,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } @@ -8119,6 +8323,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "lineHeight": 22, "textAlign": "left", @@ -8138,6 +8345,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 13, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 18, "textAlign": "left", @@ -8184,6 +8394,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -8200,6 +8413,9 @@ exports[`Story Snapshots: LightTheme should match snapshot 1`] = ` "backgroundColor": "transparent", "flexShrink": 1, "fontFamily": "Inter", + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", } diff --git a/app/views/RoomView/RoomProviders.tsx b/app/views/RoomView/RoomProviders.tsx index a9e66a994c1..0d8039a6814 100644 --- a/app/views/RoomView/RoomProviders.tsx +++ b/app/views/RoomView/RoomProviders.tsx @@ -25,8 +25,6 @@ export const RoomProviders = ({ getText, updateAutocompleteVisible }: IRoomProvidersProps): ReactElement => { - 'use memo'; - return ( { - 'use memo'; - const { showInitCallActionSheet, callEnabled, disabledTooltip } = useVideoConf(rid); const { openNewMediaCall, startCallImmediate, hasMediaCallPermission, isInActiveCall } = useNewMediaCall(rid); diff --git a/app/views/RoomView/index.test.tsx b/app/views/RoomView/index.test.tsx index 8715887d297..14eb5d2bdf6 100644 --- a/app/views/RoomView/index.test.tsx +++ b/app/views/RoomView/index.test.tsx @@ -103,7 +103,7 @@ const buildProps = (params: Record): IRoomViewProps => showActionSheet: jest.fn(), hideActionSheet: jest.fn(), fontScale: 1 - } as unknown as IRoomViewProps); + }) as unknown as IRoomViewProps; // A WatermelonDB subscription row observes itself; only the fields RoomView reads matter here. const buildRow = (overrides: Record = {}) => { diff --git a/app/views/RoomView/index.tsx b/app/views/RoomView/index.tsx index df2bcfb29d3..aea43ebad46 100644 --- a/app/views/RoomView/index.tsx +++ b/app/views/RoomView/index.tsx @@ -9,7 +9,7 @@ import { type Subscription } from 'rxjs'; import * as Haptics from 'expo-haptics'; import { type NavigatorScreenParams } from '@react-navigation/native'; -import { type TNavigation } from 'stacks/stackType'; +import { type TNavigation } from '../../stacks/stackType'; import dayjs from '../../lib/dayjs'; import { @@ -1234,7 +1234,7 @@ export class RoomView extends Component { let name = ''; let jumpToMessageId = ''; if ('id' in item) { - name = 'tmsg' in item ? item.tmsg ?? '' : ''; + name = 'tmsg' in item ? (item.tmsg ?? '') : ''; jumpToMessageId = item.id; } sendLoadingEvent({ visible: true, onCancel: this.cancelJumpToMessage }); diff --git a/app/views/RoomsListView/components/Container.tsx b/app/views/RoomsListView/components/Container.tsx index bb6a1509a60..c78ae2e7f6b 100644 --- a/app/views/RoomsListView/components/Container.tsx +++ b/app/views/RoomsListView/components/Container.tsx @@ -5,8 +5,6 @@ import { useTheme } from '../../../theme'; import TabletHeader from './TabletHeader'; const Container = ({ children }: { children: ReactElement }) => { - 'use memo'; - const { colors } = useTheme(); return ( diff --git a/app/views/RoomsListView/components/Header.tsx b/app/views/RoomsListView/components/Header.tsx index ed277af1816..fd8f8ffdf21 100644 --- a/app/views/RoomsListView/components/Header.tsx +++ b/app/views/RoomsListView/components/Header.tsx @@ -32,8 +32,6 @@ const styles = StyleSheet.create({ // search and searchEnabled need to be props because Header is used on react-navigation, which does not support context const RoomsListHeaderView = ({ search, searchEnabled }: { search: (text: string) => void; searchEnabled: boolean }) => { - 'use memo'; - const connecting = useAppSelector(state => state.meteor.connecting || state.server.loading); const connected = useAppSelector(state => state.meteor.connected); const isLoggingIn = useAppSelector(state => state.login.isFetching); diff --git a/app/views/RoomsListView/components/ListHeader.tsx b/app/views/RoomsListView/components/ListHeader.tsx index 54574af1fd3..6d04fe1d817 100644 --- a/app/views/RoomsListView/components/ListHeader.tsx +++ b/app/views/RoomsListView/components/ListHeader.tsx @@ -14,8 +14,6 @@ import { RoomsSearchContext } from '../contexts/RoomsSearchProvider'; export type TEncryptionBanner = 'REQUEST_PASSWORD' | 'SAVE_PASSWORD'; const ListHeader = () => { - 'use memo'; - const { theme } = useTheme(); const { searchEnabled } = useContext(RoomsSearchContext); const encryptionBanner = useAppSelector(state => state.encryption.banner); diff --git a/app/views/RoomsListView/components/SectionHeader.tsx b/app/views/RoomsListView/components/SectionHeader.tsx index 2bee1437f8f..bb5da3f4727 100644 --- a/app/views/RoomsListView/components/SectionHeader.tsx +++ b/app/views/RoomsListView/components/SectionHeader.tsx @@ -6,8 +6,6 @@ import { useTheme } from '../../../theme'; import styles from '../styles'; const SectionHeader = ({ header }: { header: string }) => { - 'use memo'; - const { colors } = useTheme(); return ( diff --git a/app/views/RoomsListView/components/ServersList.tsx b/app/views/RoomsListView/components/ServersList.tsx index 1eecc635086..29616a6ad8c 100644 --- a/app/views/RoomsListView/components/ServersList.tsx +++ b/app/views/RoomsListView/components/ServersList.tsx @@ -29,8 +29,6 @@ const ROW_HEIGHT = 68; const MAX_ROWS = 4.5; const ServersList = () => { - 'use memo'; - const subscription = useRef(null); const [servers, setServers] = useState([]); const dispatch = useDispatch(); diff --git a/app/views/RoomsListView/components/TabletHeader.tsx b/app/views/RoomsListView/components/TabletHeader.tsx index 843278e6389..9539f424c0d 100644 --- a/app/views/RoomsListView/components/TabletHeader.tsx +++ b/app/views/RoomsListView/components/TabletHeader.tsx @@ -6,8 +6,6 @@ import { useMasterDetail } from '../../../lib/hooks/useMasterDetail'; import { useHeader } from '../hooks/useHeader'; const TabletHeader = () => { - 'use memo'; - const navigation = useNavigation(); const route = useRoute(); const isMasterDetail = useMasterDetail(); diff --git a/app/views/RoomsListView/contexts/RoomsSearchProvider.tsx b/app/views/RoomsListView/contexts/RoomsSearchProvider.tsx index 919b2d4f00e..271422f8b5f 100644 --- a/app/views/RoomsListView/contexts/RoomsSearchProvider.tsx +++ b/app/views/RoomsListView/contexts/RoomsSearchProvider.tsx @@ -24,8 +24,6 @@ interface RoomsSearchProviderProps { } const RoomsSearchProvider = ({ children }: RoomsSearchProviderProps) => { - 'use memo'; - const { searching, searchEnabled, searchResults, startSearch, stopSearch, search } = useSearch(); return ( diff --git a/app/views/RoomsListView/hooks/useGetItemLayout.ts b/app/views/RoomsListView/hooks/useGetItemLayout.ts index 41625032035..4fd197042c8 100644 --- a/app/views/RoomsListView/hooks/useGetItemLayout.ts +++ b/app/views/RoomsListView/hooks/useGetItemLayout.ts @@ -6,8 +6,6 @@ import { useAppSelector } from '../../../lib/hooks/useAppSelector'; import { useResponsiveLayout } from '../../../lib/hooks/useResponsiveLayout/useResponsiveLayout'; export const useGetItemLayout = () => { - 'use memo'; - const { rowHeight, rowHeightCondensed } = useResponsiveLayout(); const { displayMode } = useAppSelector(state => state.sortPreferences, shallowEqual); const height = displayMode === DisplayMode.Condensed ? rowHeightCondensed : rowHeight; diff --git a/app/views/RoomsListView/hooks/useHeader.tsx b/app/views/RoomsListView/hooks/useHeader.tsx index bb1512d29f9..312317a9286 100644 --- a/app/views/RoomsListView/hooks/useHeader.tsx +++ b/app/views/RoomsListView/hooks/useHeader.tsx @@ -17,8 +17,6 @@ import RoomsListHeaderView from '../components/Header'; import { RoomsSearchContext } from '../contexts/RoomsSearchProvider'; export const useHeader = () => { - 'use memo'; - const { searchEnabled, search, startSearch, stopSearch } = useContext(RoomsSearchContext); const [options, setOptions] = useState(null); const isAccessibilityNavigationEnabled = useIsAccessibilityNavigationEnabled(); diff --git a/app/views/RoomsListView/hooks/useRefresh.ts b/app/views/RoomsListView/hooks/useRefresh.ts index 20c96c4d6bb..593c9b07bbc 100644 --- a/app/views/RoomsListView/hooks/useRefresh.ts +++ b/app/views/RoomsListView/hooks/useRefresh.ts @@ -5,8 +5,6 @@ import { roomsRequest } from '../../../actions/rooms'; import { useAppSelector } from '../../../lib/hooks/useAppSelector'; export const useRefresh = ({ searching }: { searching: boolean }) => { - 'use memo'; - const refreshing = useAppSelector(state => state.rooms.refreshing); const dispatch = useDispatch(); diff --git a/app/views/RoomsListView/hooks/useSearch.ts b/app/views/RoomsListView/hooks/useSearch.ts index e3f645fc603..baba3976e5a 100644 --- a/app/views/RoomsListView/hooks/useSearch.ts +++ b/app/views/RoomsListView/hooks/useSearch.ts @@ -69,8 +69,6 @@ const searchReducer = (state: SearchState, action: SearchAction): SearchState => }; export const useSearch = () => { - 'use memo'; - const [state, dispatch] = useReducer(searchReducer, initialState); // Guards against an older (slower) search overwriting the results of a newer one const searchId = useRef(0); diff --git a/app/views/RoomsListView/hooks/useSubscriptions.ts b/app/views/RoomsListView/hooks/useSubscriptions.ts index 485649f35c4..50c761bfe14 100644 --- a/app/views/RoomsListView/hooks/useSubscriptions.ts +++ b/app/views/RoomsListView/hooks/useSubscriptions.ts @@ -36,8 +36,6 @@ const addRoomsGroup = (data: TSubscriptionModel[], header: string, allData: TSub }; export const useSubscriptions = () => { - 'use memo'; - const useRealName = useAppSelector(state => state.settings.UI_Use_Real_Name); const server = useAppSelector(state => state.server); const subscriptionRef = useRef(null); diff --git a/app/views/RoomsListView/index.tsx b/app/views/RoomsListView/index.tsx index 1873759c72b..d6dc157c49e 100644 --- a/app/views/RoomsListView/index.tsx +++ b/app/views/RoomsListView/index.tsx @@ -32,8 +32,6 @@ import styles from './styles'; const INITIAL_NUM_TO_RENDER = isTablet ? 20 : 12; const RoomsListView = memo(function RoomsListView() { - 'use memo'; - useHeader(); const { searching, searchEnabled, searchResults, stopSearch } = useContext(RoomsSearchContext); const { colors } = useTheme(); @@ -138,7 +136,6 @@ const RoomsListView = memo(function RoomsListView() { ListHeaderComponent={ListHeader} ListFooterComponent={searching ? () => : undefined} getItemLayout={getItemLayout} - removeClippedSubviews={isIOS} keyboardShouldPersistTaps='always' initialNumToRender={INITIAL_NUM_TO_RENDER} refreshControl={} diff --git a/app/views/SelectServerView.tsx b/app/views/SelectServerView.tsx index 6c8c7791b75..934c1a1462e 100644 --- a/app/views/SelectServerView.tsx +++ b/app/views/SelectServerView.tsx @@ -20,8 +20,6 @@ import { useResponsiveLayout } from '../lib/hooks/useResponsiveLayout/useRespons const keyExtractor = (item: TServerModel) => item.id; const SelectServerView = () => { - 'use memo'; - const [servers, setServers] = useState([]); const dispatch = useDispatch(); const { bottom } = useSafeAreaInsets(); diff --git a/app/views/SettingsView/index.tsx b/app/views/SettingsView/index.tsx index 89151afb5f6..699c66c7844 100644 --- a/app/views/SettingsView/index.tsx +++ b/app/views/SettingsView/index.tsx @@ -35,8 +35,6 @@ import SidebarView from '../SidebarView'; type TLogScreenName = 'SE_GO_LANGUAGE' | 'SE_GO_DEFAULTBROWSER' | 'SE_GO_THEME' | 'SE_GO_PROFILE' | 'SE_GO_SECURITYPRIVACY'; const SettingsView = (): ReactElement => { - 'use memo'; - const { colors, theme } = useTheme(); const navigation = useNavigation>(); const dispatch = useDispatch(); diff --git a/app/views/SidebarView/components/Admin.tsx b/app/views/SidebarView/components/Admin.tsx index 18893042c04..361f3f4e03a 100644 --- a/app/views/SidebarView/components/Admin.tsx +++ b/app/views/SidebarView/components/Admin.tsx @@ -7,8 +7,6 @@ import { useTheme } from '../../../theme'; import { sidebarNavigate } from '../methods/sidebarNavigate'; const Admin = ({ currentScreen }: { currentScreen: string | null }) => { - 'use memo'; - const isMasterDetail = useMasterDetail(); const { colors } = useTheme(); const [ diff --git a/app/views/SidebarView/components/CustomStatus.tsx b/app/views/SidebarView/components/CustomStatus.tsx index fdb8be81ecc..e683a01aa1c 100644 --- a/app/views/SidebarView/components/CustomStatus.tsx +++ b/app/views/SidebarView/components/CustomStatus.tsx @@ -16,8 +16,6 @@ import { NOTIFICATION_PRESENCE_CAP } from '../../../lib/constants/notifications' import { sidebarNavigate } from '../methods/sidebarNavigate'; const CustomStatus = () => { - 'use memo'; - const { colors } = useTheme(); const { status: userStatus, statusText } = useAppSelector(getUserSelector, shallowEqual); const presenceBroadcastDisabled = useAppSelector(state => state.settings.Presence_broadcast_disabled) as boolean; diff --git a/app/views/SidebarView/components/Profile.tsx b/app/views/SidebarView/components/Profile.tsx index 720fc058a09..6f07c0da0af 100644 --- a/app/views/SidebarView/components/Profile.tsx +++ b/app/views/SidebarView/components/Profile.tsx @@ -13,8 +13,6 @@ import { useAppSelector } from '../../../lib/hooks/useAppSelector'; import { useMasterDetail } from '../../../lib/hooks/useMasterDetail'; const Profile = ({ navigation }: { navigation: DrawerNavigationProp }) => { - 'use memo'; - const { colors } = useTheme(); const isMasterDetail = useMasterDetail(); const { username, name } = useAppSelector(getUserSelector, shallowEqual); diff --git a/app/views/SidebarView/components/Stacks.tsx b/app/views/SidebarView/components/Stacks.tsx index da9d757a00e..630aeb2dca6 100644 --- a/app/views/SidebarView/components/Stacks.tsx +++ b/app/views/SidebarView/components/Stacks.tsx @@ -5,8 +5,6 @@ import { useMasterDetail } from '../../../lib/hooks/useMasterDetail'; import { useNewMediaCall } from '../../../lib/hooks/useNewMediaCall'; const Stacks = ({ currentScreen }: { currentScreen: string | null }) => { - 'use memo'; - const { colors } = useTheme(); const isMasterDetail = useMasterDetail(); const { openNewMediaCall, hasMediaCallPermission, isInActiveCall } = useNewMediaCall(); diff --git a/app/views/SidebarView/components/SupportedVersionsWarnItem.tsx b/app/views/SidebarView/components/SupportedVersionsWarnItem.tsx index ec8cb61bce0..447cedc0994 100644 --- a/app/views/SidebarView/components/SupportedVersionsWarnItem.tsx +++ b/app/views/SidebarView/components/SupportedVersionsWarnItem.tsx @@ -10,8 +10,6 @@ import Navigation from '../../../lib/navigation/appNavigation'; import { SupportedVersionsWarning } from '../../../containers/SupportedVersions'; const SupportedVersionsWarnItem = () => { - 'use memo'; - const { colors } = useTheme(); const supportedVersionsStatus = useAppSelector(state => state.supportedVersions.status); const isMasterDetail = useMasterDetail(); diff --git a/app/views/SidebarView/index.tsx b/app/views/SidebarView/index.tsx index d027cfd47b5..5764e1a91f8 100644 --- a/app/views/SidebarView/index.tsx +++ b/app/views/SidebarView/index.tsx @@ -12,8 +12,6 @@ import Admin from './components/Admin'; import Profile from './components/Profile'; const SidebarView = ({ navigation }: { navigation: DrawerNavigationProp }) => { - 'use memo'; - const [currentScreen, setCurrentScreen] = useState(null); useEffect(() => { diff --git a/app/views/StatusView/ClearAfterPicker/ClearAfterSheetContent.tsx b/app/views/StatusView/ClearAfterPicker/ClearAfterSheetContent.tsx index d3a95c57c8b..74457583f9f 100644 --- a/app/views/StatusView/ClearAfterPicker/ClearAfterSheetContent.tsx +++ b/app/views/StatusView/ClearAfterPicker/ClearAfterSheetContent.tsx @@ -17,8 +17,6 @@ interface IClearAfterSheetContentProps { } const ClearAfterSheetContent = ({ initialValue, initialDate, onConfirm }: IClearAfterSheetContentProps): ReactElement => { - 'use memo'; - const [pendingValue, setPendingValue] = useState(initialValue); const { colors } = useTheme(); const { showActionSheet, hideActionSheet } = useActionSheet(); diff --git a/app/views/StatusView/ClearAfterPicker/DatePickerSheetContent.tsx b/app/views/StatusView/ClearAfterPicker/DatePickerSheetContent.tsx index 9651e8681ff..320276b32e3 100644 --- a/app/views/StatusView/ClearAfterPicker/DatePickerSheetContent.tsx +++ b/app/views/StatusView/ClearAfterPicker/DatePickerSheetContent.tsx @@ -14,8 +14,6 @@ interface IDatePickerSheetContentProps { } const DatePickerSheetContent = ({ initialDate, onConfirm }: IDatePickerSheetContentProps): ReactElement => { - 'use memo'; - const [pendingDate, setPendingDate] = useState(initialDate); const { colors } = useTheme(); const { hideActionSheet } = useActionSheet(); diff --git a/app/views/StatusView/ClearAfterPicker/index.tsx b/app/views/StatusView/ClearAfterPicker/index.tsx index c14a3e7a182..a6b03e3a801 100644 --- a/app/views/StatusView/ClearAfterPicker/index.tsx +++ b/app/views/StatusView/ClearAfterPicker/index.tsx @@ -20,8 +20,6 @@ interface IClearAfterPickerProps { } const ClearAfterPicker = ({ value, customDate, onChange }: IClearAfterPickerProps): ReactElement => { - 'use memo'; - const { showActionSheet } = useActionSheet(); const { colors } = useTheme(); diff --git a/app/views/StatusView/FooterComponent.tsx b/app/views/StatusView/FooterComponent.tsx index b88a09b0ca7..46d70615140 100644 --- a/app/views/StatusView/FooterComponent.tsx +++ b/app/views/StatusView/FooterComponent.tsx @@ -32,8 +32,6 @@ const FooterComponent = ({ disabled, onSubmit }: IFooterComponentProps): ReactElement => { - 'use memo'; - return ( {supportsStatusExpiry && } diff --git a/app/views/StatusView/index.tsx b/app/views/StatusView/index.tsx index 0b1c12f6bda..29ab6349715 100644 --- a/app/views/StatusView/index.tsx +++ b/app/views/StatusView/index.tsx @@ -80,8 +80,6 @@ const Status = ({ status: TUserStatus; setStatus: (status: TUserStatus) => void; }) => { - 'use memo'; - const { id, name } = statusType; return ( <> @@ -106,8 +104,6 @@ const Status = ({ }; const StatusView = (): ReactElement => { - 'use memo'; - const user = useSelector((state: IApplicationState) => getUserSelector(state)); const isMasterDetail = useMasterDetail(); const Accounts_AllowInvisibleStatusOption = useSelector( diff --git a/app/views/Styles.ts b/app/views/Styles.ts index 8fb85f9d7e8..36135b930e8 100644 --- a/app/views/Styles.ts +++ b/app/views/Styles.ts @@ -5,6 +5,7 @@ import { MAX_SCREEN_CONTENT_WIDTH } from '../lib/constants/tablet'; const defaultTextStyle: TextStyle = { textAlign: 'left', backgroundColor: 'transparent', + fontVariant: ['tabular-nums'], ...Platform.select({ android: { includeFontPadding: false diff --git a/app/views/ThreadMessagesView/__snapshots__/Item.test.tsx.snap b/app/views/ThreadMessagesView/__snapshots__/Item.test.tsx.snap index 389f9a62f8d..367af2db8e6 100644 --- a/app/views/ThreadMessagesView/__snapshots__/Item.test.tsx.snap +++ b/app/views/ThreadMessagesView/__snapshots__/Item.test.tsx.snap @@ -186,6 +186,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -204,6 +207,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -233,6 +239,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -332,6 +341,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -389,6 +401,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -710,6 +725,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -728,6 +746,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -757,6 +778,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -856,6 +880,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -913,6 +940,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -1234,6 +1264,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1252,6 +1285,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -1281,6 +1317,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1380,6 +1419,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -1437,6 +1479,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -1745,6 +1790,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -1763,6 +1811,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -1792,6 +1843,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -1891,6 +1945,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -1948,6 +2005,9 @@ exports[`Story Snapshots: Badge should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -2289,6 +2349,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2307,6 +2370,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -2336,6 +2402,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2419,6 +2488,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -2476,6 +2548,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -2797,6 +2872,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2815,6 +2893,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -2844,6 +2925,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -2927,6 +3011,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -2984,6 +3071,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -3305,6 +3395,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -3323,6 +3416,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -3352,6 +3448,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3435,6 +3534,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -3492,6 +3594,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -3813,6 +3918,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -3831,6 +3939,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -3860,6 +3971,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -3943,6 +4057,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -4000,6 +4117,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -4321,6 +4441,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -4339,6 +4462,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -4368,6 +4494,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -4451,6 +4580,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -4508,6 +4640,9 @@ exports[`Story Snapshots: Content should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -4849,6 +4984,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -4867,6 +5005,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -4896,6 +5037,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -4995,6 +5139,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -5052,6 +5199,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -5360,6 +5510,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -5378,6 +5531,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -5407,6 +5563,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -5506,6 +5665,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -5563,6 +5725,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -5871,6 +6036,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "flexShrink": 1, "fontFamily": "Inter", "fontSize": 18, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -5889,6 +6057,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 14, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "marginLeft": 4, "textAlign": "left", @@ -5918,6 +6089,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "lineHeight": 22, "textAlign": "left", @@ -6017,6 +6191,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", @@ -6074,6 +6251,9 @@ exports[`Story Snapshots: Themes should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 10, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "600", "marginLeft": 2, "textAlign": "left", diff --git a/app/views/__snapshots__/ChangePasscodeView.test.tsx.snap b/app/views/__snapshots__/ChangePasscodeView.test.tsx.snap index 19f088a5e7f..d66895cb34e 100644 --- a/app/views/__snapshots__/ChangePasscodeView.test.tsx.snap +++ b/app/views/__snapshots__/ChangePasscodeView.test.tsx.snap @@ -198,6 +198,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 22, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -489,6 +492,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -611,6 +617,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -733,6 +742,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -867,6 +879,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -989,6 +1004,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1111,6 +1129,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1245,6 +1266,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1367,6 +1391,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1489,6 +1516,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1636,6 +1666,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2102,6 +2135,9 @@ exports[`Story Snapshots: Forced should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 22, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2140,6 +2176,9 @@ exports[`Story Snapshots: Forced should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 16, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "500", "textAlign": "left", }, @@ -2431,6 +2470,9 @@ exports[`Story Snapshots: Forced should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2553,6 +2595,9 @@ exports[`Story Snapshots: Forced should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2675,6 +2720,9 @@ exports[`Story Snapshots: Forced should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2809,6 +2857,9 @@ exports[`Story Snapshots: Forced should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2931,6 +2982,9 @@ exports[`Story Snapshots: Forced should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3053,6 +3107,9 @@ exports[`Story Snapshots: Forced should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3187,6 +3244,9 @@ exports[`Story Snapshots: Forced should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3309,6 +3369,9 @@ exports[`Story Snapshots: Forced should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3431,6 +3494,9 @@ exports[`Story Snapshots: Forced should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3578,6 +3644,9 @@ exports[`Story Snapshots: Forced should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, diff --git a/app/views/__snapshots__/ScreenLockedView.test.tsx.snap b/app/views/__snapshots__/ScreenLockedView.test.tsx.snap index b571835966e..8b9d71ede32 100644 --- a/app/views/__snapshots__/ScreenLockedView.test.tsx.snap +++ b/app/views/__snapshots__/ScreenLockedView.test.tsx.snap @@ -199,6 +199,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 22, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -490,6 +493,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -612,6 +618,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -734,6 +743,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -868,6 +880,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -990,6 +1005,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1112,6 +1130,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1246,6 +1267,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1368,6 +1392,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1490,6 +1517,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1637,6 +1667,9 @@ exports[`Story Snapshots: Default should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -1990,6 +2023,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 22, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2281,6 +2317,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2403,6 +2442,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2525,6 +2567,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2659,6 +2704,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2781,6 +2829,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -2903,6 +2954,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3037,6 +3091,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3159,6 +3216,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3281,6 +3341,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3545,6 +3608,9 @@ exports[`Story Snapshots: WithBiometry should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -3898,6 +3964,9 @@ exports[`Story Snapshots: WithBiometryAndClose should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 22, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4189,6 +4258,9 @@ exports[`Story Snapshots: WithBiometryAndClose should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4311,6 +4383,9 @@ exports[`Story Snapshots: WithBiometryAndClose should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4433,6 +4508,9 @@ exports[`Story Snapshots: WithBiometryAndClose should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4567,6 +4645,9 @@ exports[`Story Snapshots: WithBiometryAndClose should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4689,6 +4770,9 @@ exports[`Story Snapshots: WithBiometryAndClose should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4811,6 +4895,9 @@ exports[`Story Snapshots: WithBiometryAndClose should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -4945,6 +5032,9 @@ exports[`Story Snapshots: WithBiometryAndClose should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5067,6 +5157,9 @@ exports[`Story Snapshots: WithBiometryAndClose should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5189,6 +5282,9 @@ exports[`Story Snapshots: WithBiometryAndClose should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5453,6 +5549,9 @@ exports[`Story Snapshots: WithBiometryAndClose should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -5920,6 +6019,9 @@ exports[`Story Snapshots: WithCloseButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 22, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6211,6 +6313,9 @@ exports[`Story Snapshots: WithCloseButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6333,6 +6438,9 @@ exports[`Story Snapshots: WithCloseButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6455,6 +6563,9 @@ exports[`Story Snapshots: WithCloseButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6589,6 +6700,9 @@ exports[`Story Snapshots: WithCloseButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6711,6 +6825,9 @@ exports[`Story Snapshots: WithCloseButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6833,6 +6950,9 @@ exports[`Story Snapshots: WithCloseButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -6967,6 +7087,9 @@ exports[`Story Snapshots: WithCloseButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -7089,6 +7212,9 @@ exports[`Story Snapshots: WithCloseButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -7211,6 +7337,9 @@ exports[`Story Snapshots: WithCloseButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, @@ -7358,6 +7487,9 @@ exports[`Story Snapshots: WithCloseButton should match snapshot 1`] = ` "backgroundColor": "transparent", "fontFamily": "Inter", "fontSize": 28, + "fontVariant": [ + "tabular-nums", + ], "fontWeight": "400", "textAlign": "left", }, diff --git a/babel.config.js b/babel.config.js index b00c79cb300..57933130d6b 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,17 +1,26 @@ module.exports = { presets: ['babel-preset-expo'], plugins: [ - [ - 'babel-plugin-react-compiler', - { - compilationMode: 'annotation' - } - ], ['@babel/plugin-proposal-decorators', { legacy: true }], '@babel/plugin-transform-named-capturing-groups-regex', ['module:react-native-dotenv'], 'react-native-worklets/plugin' ], + overrides: [ + { + // Babel merges an override's plugins with the root list instead of replacing them, + // so the compiler must live here with `exclude` to stay out of jest setup and tests. + exclude: /(jest\.setup\.js|\.(test|spec)\.(js|jsx|ts|tsx))$/, + plugins: [ + [ + 'babel-plugin-react-compiler', + { + compilationMode: 'infer' + } + ] + ] + } + ], env: { production: { plugins: ['transform-remove-console'] diff --git a/ios/Inter.ttf b/ios/Inter.ttf index 969a990fbd6..3973df45cd5 100644 Binary files a/ios/Inter.ttf and b/ios/Inter.ttf differ diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 5b12425dead..e3964b3b425 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -3130,7 +3130,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - RNImageCropPicker (0.51.0): + - RNImageCropPicker (0.51.1): - boost - DoubleConversion - fast_float @@ -3157,11 +3157,11 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNImageCropPicker/QBImagePickerController (= 0.51.0) + - RNImageCropPicker/QBImagePickerController (= 0.51.1) - SocketRocket - - TOCropViewController (~> 2.7.4) + - TOCropViewController (~> 2.8.0) - Yoga - - RNImageCropPicker/QBImagePickerController (0.51.0): + - RNImageCropPicker/QBImagePickerController (0.51.1): - boost - DoubleConversion - fast_float @@ -3189,7 +3189,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - SocketRocket - - TOCropViewController (~> 2.7.4) + - TOCropViewController (~> 2.8.0) - Yoga - RNLocalize (2.1.1): - React-Core @@ -3531,7 +3531,7 @@ PODS: - SDWebImage/Core (~> 5.17) - simdjson (3.9.4) - SocketRocket (0.7.1) - - TOCropViewController (2.7.4) + - TOCropViewController (2.8.0) - WatermelonDB (0.28.1-0): - React - simdjson @@ -4118,7 +4118,7 @@ SPEC CHECKSUMS: RNFBCrashlytics: c3bb5533f9957eddc88f3ea383583309a4ce9f89 RNFileViewer: f9424017fa643c115c1444e11292e84fb16ddd68 RNGestureHandler: b8d2e75c2e88fc2a1f6be3b3beeeed80b88fa37d - RNImageCropPicker: 0a63af4b79e514c1edd6c3152f19300c5ed85312 + RNImageCropPicker: 5432d75a3bc7209dc8b6ab189fcfe19bd6339fb9 RNLocalize: ca86348d88b9a89da0e700af58d428ab3f343c4e RNReanimated: e1690cdd7f215cfb96a3b7986b81889867dfdb4f RNScreens: ccfcc2f7d9c0d458b7fc41b3f4f0bea054602b3a @@ -4131,7 +4131,7 @@ SPEC CHECKSUMS: SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380 simdjson: 7bb9e33d87737cec966e7b427773c67baa4458fe SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 - TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654 + TOCropViewController: 797deaf39c90e6e9ddd848d88817f6b9a8a09888 WatermelonDB: 4c846c8cb94eef3cba90fa034d15310163226703 Yoga: 1e91d83a5286cfd3b725eade59274c92270540d4 ZXingObjC: 8898711ab495761b2dbbdec76d90164a6d7e14c5 diff --git a/ios/RocketChat.xcodeproj/project.pbxproj b/ios/RocketChat.xcodeproj/project.pbxproj index dcfa30a0c26..d1ed48070a2 100644 --- a/ios/RocketChat.xcodeproj/project.pbxproj +++ b/ios/RocketChat.xcodeproj/project.pbxproj @@ -2089,7 +2089,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 4.75.0; + MARKETING_VERSION = 4.76.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; @@ -2142,7 +2142,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 4.75.0; + MARKETING_VERSION = 4.76.0; MTL_FAST_MATH = YES; OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.ios.NotificationService; diff --git a/ios/RocketChatRN/Info.plist b/ios/RocketChatRN/Info.plist index aad52218cc3..335e132544a 100644 --- a/ios/RocketChatRN/Info.plist +++ b/ios/RocketChatRN/Info.plist @@ -26,7 +26,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 4.75.0 + 4.76.0 CFBundleSignature ???? CFBundleURLTypes diff --git a/ios/ShareRocketChatRN/Info.plist b/ios/ShareRocketChatRN/Info.plist index 3fb15aec90a..ee6646e54d8 100644 --- a/ios/ShareRocketChatRN/Info.plist +++ b/ios/ShareRocketChatRN/Info.plist @@ -19,7 +19,7 @@ CFBundlePackageType XPC! CFBundleShortVersionString - 4.75.0 + 4.76.0 CFBundleVersion 1 KeychainGroup diff --git a/jest.config.js b/jest.config.js index aa5e3a720c6..defea788104 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,8 +1,14 @@ module.exports = { modulePathIgnorePatterns: ['/.*worktrees/'], - testPathIgnorePatterns: ['e2e', 'node_modules', '/.*worktrees/', '/__tests__/testHelpers\\.tsx$'], + testPathIgnorePatterns: [ + 'e2e', + 'node_modules', + '/.*worktrees/', + '/__tests__/testHelpers\\.tsx$', + '/__tests__/mockedWatermelonDB\\.tsx$' + ], transformIgnorePatterns: [ - 'node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg|@rocket.chat/ui-kit|@rocket.chat/sdk|tiny-events)' + 'node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg|@rocket.chat/ui-kit|@rocket.chat/sdk|@rocket.chat/message-parser|tiny-events)' ], preset: './jest.preset.js', cacheDirectory: '/.jest-cache', diff --git a/package.json b/package.json index cb488c56114..ce176ad8ba8 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,14 @@ { "name": "rocket-chat-reactnative", - "version": "4.75.0", + "version": "4.76.0", "private": true, "packageManager": "pnpm@10.33.4", "scripts": { "start": "react-native start", "test": "TZ=UTC jest", "test-update": "TZ=UTC jest --updateSnapshot", - "lint": "eslint . && tsc", - "prettier-lint": "prettier --write . && pnpm lint", + "lint": "oxlint && tsc", + "format-lint": "oxfmt && pnpm lint", "ios": "react-native run-ios", "pod-install": "bundle exec pod install --project-directory=ios", "android": "react-native run-android --appId=chat.rocket.android", @@ -19,6 +19,7 @@ "build-icon-set": "node scripts/build-icon-set.js", "organize-translations": "node scripts/organize-translations.js", "e2e:start": "RUNNING_E2E_TESTS=true react-native start", + "e2e:changed": "bash .github/scripts/e2e-changed.sh", "storybook:start": "USE_STORYBOOK=true react-native start --reset-cache", "storybook-generate": "sb-rn-get-stories", "bugsnag:upload-android": "bugsnag-cli upload react-native-android" @@ -48,9 +49,9 @@ "@react-navigation/native": "^7.3.3", "@react-navigation/native-stack": "^7.17.5", "@rocket.chat/media-signaling": "1.0.0-rc.1", - "@rocket.chat/message-parser": "0.31.31", + "@rocket.chat/message-parser": "0.31.36", "@rocket.chat/mobile-crypto": "RocketChat/rocket.chat-mobile-crypto#main", - "@rocket.chat/sdk": "RocketChat/Rocket.Chat.js.SDK#mobile", + "@rocket.chat/sdk": "RocketChat/Rocket.Chat.js.SDK#b6d2b3f25b0ff8283dd71faf6dae720c47fecd8f", "@rocket.chat/ui-kit": "^0.39.0", "@zoontek/react-native-navigation-bar": "^1.1.1", "axios": "0.30.3", @@ -99,7 +100,7 @@ "react-native-external-keyboard": "^0.9.0", "react-native-file-viewer": "2.1.4", "react-native-gesture-handler": "~2.28.0", - "react-native-image-crop-picker": "RocketChat/react-native-image-crop-picker#f028aac24373d05166747ef6d9e59bb037fe3224", + "react-native-image-crop-picker": "RocketChat/react-native-image-crop-picker#47092e8c90550a54d45fe307f7cb2a24c9535ed5", "react-native-incall-manager": "^4.2.1", "react-native-katex": "git+https://github.com/RocketChat/react-native-katex.git", "react-native-keyboard-controller": "1.18.5", @@ -159,8 +160,6 @@ }, "devDependencies": { "@babel/core": "~7.25.9", - "@babel/eslint-parser": "~7.25.9", - "@babel/eslint-plugin": "~7.25.9", "@babel/plugin-proposal-decorators": "~7.25.9", "@babel/plugin-transform-named-capturing-groups-regex": "~7.25.9", "@babel/preset-env": "~7.25.9", @@ -172,10 +171,8 @@ "@react-native-community/cli-platform-android": "20.0.0", "@react-native-community/cli-platform-ios": "20.0.0", "@react-native/babel-preset": "0.81.5", - "@react-native/eslint-config": "0.81.5", "@react-native/metro-config": "0.81.5", "@react-native/typescript-config": "0.81.5", - "@rocket.chat/eslint-config": "^0.4.0", "@storybook/react": "~9.0.9", "@storybook/react-native": "~9.0.9", "@testing-library/react-native": "^13.2.0", @@ -186,37 +183,31 @@ "@types/jest": "29.5.14", "@types/jsrsasign": "^10.5.8", "@types/lodash": "^4.14.188", + "@types/node": "25.0.3", "@types/react": "~19.1.0", "@types/react-native-background-timer": "^2.0.2", "@types/semver": "7.3.13", "@types/ua-parser-js": "^0.7.36", "@types/url-parse": "^1.4.8", - "@typescript-eslint/eslint-plugin": "~7.18.0", - "@typescript-eslint/parser": "~7.18.0", "babel-jest": "~29.7.0", "babel-loader": "~9.1.3", - "babel-plugin-react-compiler": "19.1.0-rc.3", + "babel-plugin-react-compiler": "1.0.0", "babel-plugin-transform-remove-console": "^6.9.4", "babel-preset-expo": "~54.0.9", - "eslint": "^8.57.0", - "eslint-config-prettier": "10.1.8", - "eslint-import-resolver-typescript": "~4.4.4", - "eslint-plugin-import": "~2.32.0", - "eslint-plugin-jest": "~29.14.0", - "eslint-plugin-prettier": "~5.5.5", - "eslint-plugin-react": "~7.37.5", - "eslint-plugin-react-hooks": "~7.0.1", "eslint-plugin-react-native": "~5.0.0", + "fast-glob": "3.3.3", "identity-obj-proxy": "^3.0.0", "jest": "^29.7.0", "jest-cli": "^29.7.0", "jest-expo": "~54.0.16", + "oxfmt": "^0.60.0", + "oxlint": "^1.75.0", "patch-package": "~8.0.1", - "prettier": "2.8.8", "react-dom": "19.1.0", "react-native-dotenv": "3.4.8", + "sniffler": "0.4.0", "storybook": "~9.0.9", - "typescript": "~5.9.3" + "typescript": "7.0.2" }, "snyk": true, "engines": { diff --git a/patches/@hookform+resolvers+2.9.11.patch b/patches/@hookform+resolvers+2.9.11.patch new file mode 100644 index 00000000000..6d473c44e38 --- /dev/null +++ b/patches/@hookform+resolvers+2.9.11.patch @@ -0,0 +1,20 @@ +diff --git a/node_modules/@hookform/resolvers/package.json b/node_modules/@hookform/resolvers/package.json +index a33e0e4..b109c88 100644 +--- a/node_modules/@hookform/resolvers/package.json ++++ b/node_modules/@hookform/resolvers/package.json +@@ -10,6 +10,7 @@ + "types": "dist/index.d.ts", + "exports": { + ".": { ++ "types": "./dist/index.d.ts", + "umd": "./dist/resolvers.umd.js", + "import": "./dist/resolvers.mjs", + "require": "./dist/resolvers.js" +@@ -20,6 +21,7 @@ + "require": "./zod/dist/zod.js" + }, + "./yup": { ++ "types": "./yup/dist/index.d.ts", + "umd": "./yup/dist/yup.umd.js", + "import": "./yup/dist/yup.mjs", + "require": "./yup/dist/yup.js" diff --git a/patches/@react-navigation+core+7.21.1.patch b/patches/@react-navigation+core+7.21.1.patch new file mode 100644 index 00000000000..ffd6c778ec5 --- /dev/null +++ b/patches/@react-navigation+core+7.21.1.patch @@ -0,0 +1,13 @@ +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts +index 1111111..2222222 100644 +--- a/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts ++++ b/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts +@@ -57,7 +57,7 @@ + /** + * Infer the param list from the static navigation config. + */ +-export type StaticParamList = FlatType & ParamListForGroups>; ++export type StaticParamList = ParamListForScreens & ParamListForGroups; + type ParamListForStaticNavigator = T extends StaticNavigationConfig ? StaticParamList : {}; + type ParamListForTypedNavigator = T extends { + Screen: any; diff --git a/patches/@rocket.chat+message-parser+0.31.31.patch b/patches/@rocket.chat+message-parser+0.31.31.patch deleted file mode 100644 index d255d0edc49..00000000000 --- a/patches/@rocket.chat+message-parser+0.31.31.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --git a/node_modules/@rocket.chat/message-parser/messageParser.js b/node_modules/@rocket.chat/message-parser/messageParser.js -index c1dc1bd..d25c5ed 100644 ---- a/node_modules/@rocket.chat/message-parser/messageParser.js -+++ b/node_modules/@rocket.chat/message-parser/messageParser.js -@@ -3,5 +3,5 @@ - if (process.env.NODE_ENV === 'production') { - module.exports = require('./dist/messageParser.production.js'); - } else { -- module.exports = require('./dist/messageParser.development.js'); -+ module.exports = require('./dist/messageParser.production.js'); - } diff --git a/patches/js-base64+3.6.1.patch b/patches/js-base64+3.6.1.patch new file mode 100644 index 00000000000..9f36455a190 --- /dev/null +++ b/patches/js-base64+3.6.1.patch @@ -0,0 +1,12 @@ +diff --git a/node_modules/js-base64/package.json b/node_modules/js-base64/package.json +index d3b3c37..86a6925 100644 +--- a/node_modules/js-base64/package.json ++++ b/node_modules/js-base64/package.json +@@ -12,6 +12,7 @@ + ], + "exports": { + ".": { ++ "types": "./base64.d.ts", + "import": "./base64.mjs", + "require": "./base64.js" + }, diff --git a/patches/react-native-notifier+1.6.1.patch b/patches/react-native-notifier+1.6.1.patch index 830b4c947e9..ead8ec8d590 100644 --- a/patches/react-native-notifier+1.6.1.patch +++ b/patches/react-native-notifier+1.6.1.patch @@ -1,24 +1,25 @@ diff --git a/node_modules/react-native-notifier/src/Notifier.tsx b/node_modules/react-native-notifier/src/Notifier.tsx -index 56c5819..4f31e78 100644 --- a/node_modules/react-native-notifier/src/Notifier.tsx +++ b/node_modules/react-native-notifier/src/Notifier.tsx -@@ -44,6 +44,7 @@ export class NotifierRoot extends React.PureComponent - - +- +- - ++ {/* The RN Touchable wrapper is only mounted when the notification actually needs a ++ wrapper-level press. An RN Pressability ancestor claims the RN responder as soon as the ++ touch stream contains any movement, which cancels the native touch on any ++ react-native-gesture-handler button rendered inside the notification: the button's ++ Android pressed flag is cleared, so NativeViewGestureHandler.canActivate() is false at ++ ACTION_UP and onPress never fires. See Rocket.Chat.ReactNative#115357. */} ++ {pressable ? ( ++ ++ ++ {this.state.visible? : null} ++ ++ ++ ) : ( ++ + {this.state.visible? : null} - +- ++ )} + + ); diff --git a/node_modules/react-native-notifier/src/types.ts b/node_modules/react-native-notifier/src/types.ts -index 229e19c..e16a943 100644 --- a/node_modules/react-native-notifier/src/types.ts +++ b/node_modules/react-native-notifier/src/types.ts -@@ -95,6 +95,7 @@ export interface StateInterface { +@@ -95,6 +95,8 @@ swipeEnabled: boolean; Component: ElementType; componentProps: Record; + visible: boolean; ++ pressable: boolean; } export interface NotifierInterface { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eafb0f810ca..6d411acadbb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,88 +17,88 @@ importers: version: 8.4.0 '@expo/vector-icons': specifier: ^15.0.3 - version: 15.0.3(expo-font@14.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 15.0.3(expo-font@14.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@hookform/resolvers': specifier: ^2.9.10 version: 2.9.11(react-hook-form@7.34.2(react@19.1.0)) '@lodev09/react-native-true-sheet': specifier: ~3.7.0 - version: 3.7.3(a578dac207b76a7afc564466315015e0) + version: 3.7.3(261280a80c394a7dcf8d9609d62c37ca) '@nozbe/watermelondb': specifier: ^0.28.1-0 version: 0.28.1-0 '@react-native-async-storage/async-storage': specifier: 2.2.0 - version: 2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) '@react-native-camera-roll/camera-roll': specifier: ^7.10.0 - version: 7.10.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 7.10.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) '@react-native-clipboard/clipboard': specifier: ^1.13.2 - version: 1.16.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 1.16.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@react-native-community/datetimepicker': specifier: 8.4.4 - version: 8.4.4(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 8.4.4(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@react-native-community/hooks': specifier: ^100.1.0 - version: 100.1.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 100.1.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@react-native-community/netinfo': specifier: ^11.3.1 - version: 11.4.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 11.4.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) '@react-native-community/slider': specifier: 5.0.1 version: 5.0.1 '@react-native-cookies/cookies': specifier: 6.2.1 - version: 6.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 6.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) '@react-native-firebase/analytics': specifier: ^21.12.2 - version: 21.14.0(@react-native-firebase/app@21.14.0(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)))(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) + version: 21.14.0(@react-native-firebase/app@21.14.0(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)))(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) '@react-native-firebase/app': specifier: ^21.12.2 - version: 21.14.0(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)))(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 21.14.0(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)))(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@react-native-firebase/crashlytics': specifier: ^21.12.2 - version: 21.14.0(46eb1fa07f9d3f545302c187c1781447) + version: 21.14.0(7f31d425d6e3bb1976dd842bb1e41e49) '@react-native-masked-view/masked-view': specifier: ^0.3.1 - version: 0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@react-native-picker/picker': specifier: 2.11.4 - version: 2.11.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 2.11.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@react-native/codegen': specifier: ^0.80.0 version: 0.80.2(@babel/core@7.25.9) '@react-navigation/drawer': specifier: ^7.12.2 - version: 7.12.2(3c53d7e50d30fd67c64b1316df1aa4a0) + version: 7.12.2(1791ab06baac4955f4dd8054e3baaac6) '@react-navigation/elements': specifier: ^2.9.25 - version: 2.9.25(@react-native-masked-view/masked-view@0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(@react-navigation/native@7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 2.9.25(@react-native-masked-view/masked-view@0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(@react-navigation/native@7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@react-navigation/native': specifier: ^7.3.3 - version: 7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@react-navigation/native-stack': specifier: ^7.17.5 - version: 7.17.5(20e22ec03db44899c27c93ee7866e802) + version: 7.17.5(5d5d774b9c7e992721e68b3dbd486565) '@rocket.chat/media-signaling': specifier: 1.0.0-rc.1 version: 1.0.0-rc.1 '@rocket.chat/message-parser': - specifier: 0.31.31 - version: 0.31.31 + specifier: 0.31.36 + version: 0.31.36 '@rocket.chat/mobile-crypto': specifier: RocketChat/rocket.chat-mobile-crypto#main - version: https://codeload.github.com/RocketChat/rocket.chat-mobile-crypto/tar.gz/69a0a250dd7c6ff0808eb659d7202be1cae7fa1c(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: https://codeload.github.com/RocketChat/rocket.chat-mobile-crypto/tar.gz/69a0a250dd7c6ff0808eb659d7202be1cae7fa1c(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@rocket.chat/sdk': - specifier: RocketChat/Rocket.Chat.js.SDK#mobile + specifier: RocketChat/Rocket.Chat.js.SDK#b6d2b3f25b0ff8283dd71faf6dae720c47fecd8f version: https://codeload.github.com/RocketChat/Rocket.Chat.js.SDK/tar.gz/b6d2b3f25b0ff8283dd71faf6dae720c47fecd8f '@rocket.chat/ui-kit': specifier: ^0.39.0 - version: 0.39.0(@rocket.chat/icons@0.47.0)(@types/node@25.0.3)(typescript@5.9.3) + version: 0.39.0(@rocket.chat/icons@0.47.0)(@types/node@25.0.3)(typescript@7.0.2) '@zoontek/react-native-navigation-bar': specifier: ^1.1.1 - version: 1.1.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 1.1.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) axios: specifier: 0.30.3 version: 0.30.3 @@ -122,52 +122,52 @@ importers: version: 4.4.4(eslint-plugin-import@2.32.0)(eslint@8.57.1) expo: specifier: ^54.0.0 - version: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) expo-apple-authentication: specifier: ~8.0.8 - version: 8.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 8.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) expo-av: specifier: ~16.0.8 - version: 16.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 16.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) expo-camera: specifier: ~17.0.10 - version: 17.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 17.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) expo-device: specifier: ^8.0.10 - version: 8.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) + version: 8.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) expo-document-picker: specifier: ~14.0.8 - version: 14.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) + version: 14.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) expo-file-system: specifier: ~19.0.21 - version: 19.0.21(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 19.0.21(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) expo-haptics: specifier: ~15.0.8 - version: 15.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) + version: 15.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) expo-image: specifier: ~3.0.11 - version: 3.0.11(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 3.0.11(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) expo-keep-awake: specifier: ~15.0.8 - version: 15.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react@19.1.0) + version: 15.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react@19.1.0) expo-local-authentication: specifier: ~17.0.8 - version: 17.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) + version: 17.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) expo-notifications: specifier: ~0.32.15 - version: 0.32.15(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 0.32.15(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) expo-status-bar: specifier: ~3.0.9 - version: 3.0.9(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 3.0.9(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) expo-system-ui: specifier: ~6.0.9 - version: 6.0.9(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 6.0.9(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) expo-video-thumbnails: specifier: ~10.0.8 - version: 10.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) + version: 10.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) expo-web-browser: specifier: ~15.0.10 - version: 15.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 15.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) hoist-non-react-statics: specifier: 3.3.2 version: 3.3.2 @@ -200,121 +200,121 @@ importers: version: 7.34.2(react@19.1.0) react-native: specifier: 0.81.5 - version: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + version: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) react-native-a11y-order: specifier: ^0.4.0 - version: 0.4.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 0.4.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-animatable: specifier: 1.3.3 version: 1.3.3 react-native-background-timer: specifier: 2.4.1 - version: 2.4.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 2.4.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) react-native-bootsplash: specifier: ^6.3.8 - version: 6.3.11(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 6.3.11(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-callkeep: specifier: 4.3.16 - version: 4.3.16(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 4.3.16(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) react-native-console-time-polyfill: specifier: 1.2.3 - version: 1.2.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 1.2.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-device-info: specifier: 11.1.0 - version: 11.1.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 11.1.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) react-native-easy-grid: specifier: 0.2.2 version: 0.2.2 react-native-easy-toast: specifier: 2.3.0 - version: 2.3.0(prop-types@15.8.1)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 2.3.0(prop-types@15.8.1)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) react-native-external-keyboard: specifier: ^0.9.0 - version: 0.9.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 0.9.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-file-viewer: specifier: 2.1.4 - version: 2.1.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 2.1.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) react-native-gesture-handler: specifier: ~2.28.0 - version: 2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-image-crop-picker: - specifier: RocketChat/react-native-image-crop-picker#f028aac24373d05166747ef6d9e59bb037fe3224 - version: https://codeload.github.com/RocketChat/react-native-image-crop-picker/tar.gz/f028aac24373d05166747ef6d9e59bb037fe3224(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + specifier: RocketChat/react-native-image-crop-picker#47092e8c90550a54d45fe307f7cb2a24c9535ed5 + version: https://codeload.github.com/RocketChat/react-native-image-crop-picker/tar.gz/47092e8c90550a54d45fe307f7cb2a24c9535ed5(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-incall-manager: specifier: ^4.2.1 - version: 4.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 4.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) react-native-katex: specifier: git+https://github.com/RocketChat/react-native-katex.git - version: https://codeload.github.com/RocketChat/react-native-katex/tar.gz/37e579804fe238732d8a4b06dec073610ab062b1(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: https://codeload.github.com/RocketChat/react-native-katex/tar.gz/37e579804fe238732d8a4b06dec073610ab062b1(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-keyboard-controller: specifier: 1.18.5 - version: 1.18.5(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 1.18.5(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-linear-gradient: specifier: 2.6.2 - version: 2.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 2.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-localize: specifier: 2.1.1 - version: 2.1.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 2.1.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) react-native-math-view: specifier: 3.9.5 - version: 3.9.5(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 3.9.5(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) react-native-mime-types: specifier: 2.3.0 version: 2.3.0 react-native-mmkv: specifier: ^4.1.2 - version: 4.1.2(react-native-nitro-modules@0.33.9(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 4.1.2(react-native-nitro-modules@0.33.9(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-modal: specifier: 13.0.1 - version: 13.0.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 13.0.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-nitro-modules: specifier: ^0.33.9 - version: 0.33.9(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 0.33.9(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-notifier: specifier: 1.6.1 - version: 1.6.1(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 1.6.1(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-picker-select: specifier: 9.0.1 - version: 9.0.1(@react-native-picker/picker@2.11.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) + version: 9.0.1(@react-native-picker/picker@2.11.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) react-native-popover-view: specifier: 5.1.7 version: 5.1.7 react-native-reanimated: specifier: 4.1.3 - version: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-restart: specifier: 0.0.22 - version: 0.0.22(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 0.0.22(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-safe-area-context: specifier: ^5.5.2 - version: 5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-screens: specifier: ~4.17.1 - version: 4.17.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 4.17.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-skeleton-placeholder: specifier: 5.2.4 - version: 5.2.4(@react-native-masked-view/masked-view@0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-linear-gradient@2.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 5.2.4(@react-native-masked-view/masked-view@0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-linear-gradient@2.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-svg: specifier: ^15.12.1 - version: 15.12.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 15.12.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-url-polyfill: specifier: 2.0.0 - version: 2.0.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 2.0.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) react-native-webrtc: specifier: 124.0.7 - version: 124.0.7(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + version: 124.0.7(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) react-native-webview: specifier: 13.16.1 - version: 13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-native-worklets: specifier: ^0.6.1 - version: 0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react-redux: specifier: 8.0.5 - version: 8.0.5(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(redux@4.2.0) + version: 8.0.5(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(redux@4.2.0) reanimated-tab-view: specifier: ^0.3.0 - version: 0.3.0(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 0.3.0(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) redux: specifier: 4.2.0 version: 4.2.0 @@ -367,12 +367,6 @@ importers: '@babel/core': specifier: ~7.25.9 version: 7.25.9 - '@babel/eslint-parser': - specifier: ~7.25.9 - version: 7.25.9(@babel/core@7.25.9)(eslint@8.57.1) - '@babel/eslint-plugin': - specifier: ~7.25.9 - version: 7.25.9(@babel/eslint-parser@7.25.9(@babel/core@7.25.9)(eslint@8.57.1))(eslint@8.57.1) '@babel/plugin-proposal-decorators': specifier: ~7.25.9 version: 7.25.9(@babel/core@7.25.9) @@ -393,10 +387,10 @@ importers: version: 2.3.3 '@gorhom/bottom-sheet': specifier: ^5 - version: 5.2.8(@types/react@19.1.17)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 5.2.8(@types/react@19.1.17)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@react-native-community/cli': specifier: 20.0.0 - version: 20.0.0(typescript@5.9.3) + version: 20.0.0(typescript@7.0.2) '@react-native-community/cli-platform-android': specifier: 20.0.0 version: 20.0.0 @@ -406,27 +400,21 @@ importers: '@react-native/babel-preset': specifier: 0.81.5 version: 0.81.5(@babel/core@7.25.9) - '@react-native/eslint-config': - specifier: 0.81.5 - version: 0.81.5(eslint@8.57.1)(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0))(prettier@2.8.8)(typescript@5.9.3) '@react-native/metro-config': specifier: 0.81.5 version: 0.81.5(@babel/core@7.25.9) '@react-native/typescript-config': specifier: 0.81.5 version: 0.81.5 - '@rocket.chat/eslint-config': - specifier: ^0.4.0 - version: 0.4.0(eslint-plugin-import@2.32.0)(eslint@8.57.1) '@storybook/react': specifier: ~9.0.9 - version: 9.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8))(typescript@5.9.3) + version: 9.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4))(typescript@7.0.2) '@storybook/react-native': specifier: ~9.0.9 - version: 9.0.18(bf48b964e90ee5918ede11abb4d835b9) + version: 9.0.18(b3c380f041753120db9b4b839e8df819) '@testing-library/react-native': specifier: ^13.2.0 - version: 13.3.3(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react-test-renderer@19.1.0(react@19.1.0))(react@19.1.0) + version: 13.3.3(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react-test-renderer@19.1.0(react@19.1.0))(react@19.1.0) '@types/bytebuffer': specifier: ~5.0.49 version: 5.0.49 @@ -448,6 +436,9 @@ importers: '@types/lodash': specifier: ^4.14.188 version: 4.17.21 + '@types/node': + specifier: 25.0.3 + version: 25.0.3 '@types/react': specifier: ~19.1.0 version: 19.1.17 @@ -463,12 +454,6 @@ importers: '@types/url-parse': specifier: ^1.4.8 version: 1.4.11 - '@typescript-eslint/eslint-plugin': - specifier: ~7.18.0 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ~7.18.0 - version: 7.18.0(eslint@8.57.1)(typescript@5.9.3) babel-jest: specifier: ~29.7.0 version: 29.7.0(@babel/core@7.25.9) @@ -476,38 +461,20 @@ importers: specifier: ~9.1.3 version: 9.1.3(@babel/core@7.25.9)(webpack@5.106.2(esbuild@0.25.12)) babel-plugin-react-compiler: - specifier: 19.1.0-rc.3 - version: 19.1.0-rc.3 + specifier: 1.0.0 + version: 1.0.0 babel-plugin-transform-remove-console: specifier: ^6.9.4 version: 6.9.4 babel-preset-expo: specifier: ~54.0.9 - version: 54.0.9(@babel/core@7.25.9)(@babel/runtime@7.25.9)(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-refresh@0.14.2) - eslint: - specifier: ^8.57.0 - version: 8.57.1 - eslint-config-prettier: - specifier: 10.1.8 - version: 10.1.8(eslint@8.57.1) - eslint-plugin-import: - specifier: ~2.32.0 - version: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@8.57.1) - eslint-plugin-jest: - specifier: ~29.14.0 - version: 29.14.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0))(typescript@5.9.3) - eslint-plugin-prettier: - specifier: ~5.5.5 - version: 5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@8.57.1))(eslint@8.57.1)(prettier@2.8.8) - eslint-plugin-react: - specifier: ~7.37.5 - version: 7.37.5(eslint@8.57.1) - eslint-plugin-react-hooks: - specifier: ~7.0.1 - version: 7.0.1(eslint@8.57.1) + version: 54.0.9(@babel/core@7.25.9)(@babel/runtime@7.25.9)(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-refresh@0.14.2) eslint-plugin-react-native: specifier: ~5.0.0 version: 5.0.0(eslint@8.57.1) + fast-glob: + specifier: 3.3.3 + version: 3.3.3 identity-obj-proxy: specifier: ^3.0.0 version: 3.0.0 @@ -519,25 +486,31 @@ importers: version: 29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0) jest-expo: specifier: ~54.0.16 - version: 54.0.16(@babel/core@7.25.9)(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + version: 54.0.16(@babel/core@7.25.9)(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + oxfmt: + specifier: ^0.60.0 + version: 0.60.0 + oxlint: + specifier: ^1.75.0 + version: 1.75.0 patch-package: specifier: ~8.0.1 version: 8.0.1 - prettier: - specifier: 2.8.8 - version: 2.8.8 react-dom: specifier: 19.1.0 version: 19.1.0(react@19.1.0) react-native-dotenv: specifier: 3.4.8 version: 3.4.8(@babel/runtime@7.25.9) + sniffler: + specifier: 0.4.0 + version: 0.4.0 storybook: specifier: ~9.0.9 - version: 9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8) + version: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4) typescript: - specifier: ~5.9.3 - version: 5.9.3 + specifier: 7.0.2 + version: 7.0.2 packages: @@ -571,20 +544,6 @@ packages: resolution: {integrity: sha512-WYvQviPw+Qyib0v92AwNIrdLISTp7RfDkM7bPqBvpbnhY4wq8HvHBZREVdYDXk98C8BkOIVnHAY3yvj7AVISxQ==} engines: {node: '>=6.9.0'} - '@babel/eslint-parser@7.25.9': - resolution: {integrity: sha512-5UXfgpK0j0Xr/xIdgdLEhOFxaDZ0bRPWJJchRpqOSur/3rZoPbqqki5mm0p4NE2cs28krBEiSM2MB7//afRSQQ==} - engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} - peerDependencies: - '@babel/core': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - - '@babel/eslint-plugin@7.25.9': - resolution: {integrity: sha512-MWg1lz+JiP9l1fXkE0qCUVo+1XwgNRPs6GTc88hmw6qN3AdgmfTSkyHt0e1xOTsKdXW5xlh2Lsk3wrFZbW5rzQ==} - engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} - peerDependencies: - '@babel/eslint-parser': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - '@babel/generator@7.29.1': resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} engines: {node: '>=6.9.0'} @@ -2063,9 +2022,6 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} - '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2091,14 +2047,254 @@ packages: resolution: {integrity: sha512-PYlc3EO/EDh1yQdPiqmU73jANhyx1p10aw/cLUmM+F6Bdk5IVT++54SfP4W3ER1QIJ8ZhepyWliSFjCCBsyKtw==} engines: {node: '>=18'} + '@oxfmt/binding-android-arm-eabi@0.60.0': + resolution: {integrity: sha512-1q4q4Jc8FlOMVojEisyFAVyl8h1yawNv6phjgmhGVEDeyeOdsSnSr9x0+D4mOnEKvpO5L4mxKZ/DP9X6U3A/Mw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxfmt/binding-android-arm64@0.60.0': + resolution: {integrity: sha512-tD41I6nCt9k8SQXft0CSjjU9jg6SwG7uMu7PxodSEHXl+GDW0868oy6tTtoJkyUze8YKFgTpz/k5LuPUnFiGLw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxfmt/binding-darwin-arm64@0.60.0': + resolution: {integrity: sha512-TTpzPug96Zxdyb46KvTyIUQDdsqbumXh2TKG9C23PCT0kF7JkW56Z/quPuG9rqOFKQIi1gpRNZ7DX18LwxXPnw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxfmt/binding-darwin-x64@0.60.0': + resolution: {integrity: sha512-CnOoWgQ7L+JL/YQaRJ+NyATciSfcftncm7y3kqyte1cGtFEGnStaCd1TAyrinkfQ7nRBfHrTs1/vTwUJr3WF2Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxfmt/binding-freebsd-x64@0.60.0': + resolution: {integrity: sha512-ychJo7S3hZxdO6eDZ9zM6F2lM9fpJS3EKS5CAUSWyprdLYxTu4gbaUKV/VBPTcMJwQa2Bpo+643y3OJ537pihA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxfmt/binding-linux-arm-gnueabihf@0.60.0': + resolution: {integrity: sha512-36IH5o55T2Fx7E0feDttt+mifxN6yk9pWv4KfhAIsP0dFnUq27331OwbpOsZdoXF9soOLWm7mQUz5+UUmyec4g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxfmt/binding-linux-arm-musleabihf@0.60.0': + resolution: {integrity: sha512-G1Ve7lAa6sFBolVI2LWHfEAqy0YKh4vnioH8uYO9kAEdgM7mR40IksIx9/Zk4+vbYew/sGa4J9Q4tZ3n9gXDHA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxfmt/binding-linux-arm64-gnu@0.60.0': + resolution: {integrity: sha512-LTQdRBf6uzj/h7Xk6lKzbGD2hrF/fK4YI9LIN1c0509tPUn8wRa3mCmrFQpEWJPLYGFrLFFMTYW1Ljj6VqW2Hw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-arm64-musl@0.60.0': + resolution: {integrity: sha512-2JMo3XPxMPx3hiqddSZYyaH+fKJm6cz0u8n1naYjP/CdOQOZW34i8lKBUfmbWiuFvd6KoYXLmhAyBuvojsYS7Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxfmt/binding-linux-ppc64-gnu@0.60.0': + resolution: {integrity: sha512-L3C+nBD13lr306tr/PjM3RMll+BVqgFrIgUyoeHuai5oueJrRLgO3j+GO5/Cbhtkf5PSlHYTI1JY7iqBd1qa6A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-riscv64-gnu@0.60.0': + resolution: {integrity: sha512-M4MsmvqlxFiPtSRGyBYQSZxchEf463AOyd+Dh4/9xDpjWBsRtDUTDMFN5EdHinjVK1/eDJQ8MLpcYjpYayaCnA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-riscv64-musl@0.60.0': + resolution: {integrity: sha512-OH+9UskYuxRB+GxqdGkVN8f5UpwhqG8YscNo1wl8+KJ62cd7wZdGga6iGLJIf8kibF1WBwvlfDUx3cez/VXwFg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxfmt/binding-linux-s390x-gnu@0.60.0': + resolution: {integrity: sha512-y7AAFutt9wFWBFOAn6+BHaV39usZmcr3YYH2385f+NHgPNpIF9HpqKp0jgUxPaUOCyG3oaX5VhJduL1Nw164rw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-x64-gnu@0.60.0': + resolution: {integrity: sha512-yKZ9+CXAI+1RO5nH/4Z/9M6DAsfOzd5bw/gtWk81KB4mpalMaRRSXfouc5/tHxazDmBek55HNPepNYBgaCew0Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-x64-musl@0.60.0': + resolution: {integrity: sha512-bCUGaF6hJOYnQzLJdHLZbvGsOd5oSvGAyJhPAKum2uyLYUuXmP8vqg690DWi2hqcnIoYpqSqCrjzE5aiUAgwQg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxfmt/binding-openharmony-arm64@0.60.0': + resolution: {integrity: sha512-GrUeZOvzP30ExxfCuQiyofuUGI+OmvAgFwOO5w5p9mGPlxcyuqI+6Sy9fAKFFfLQrqKYWFgc5sYA2Unj/29nPg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxfmt/binding-win32-arm64-msvc@0.60.0': + resolution: {integrity: sha512-WD4Q954kUl2TDJV/6q7UnE2rlKk047kXLJsr4bJ2mXRaAqNXcmV3nwKUsGCc3mz/jYDBnXtJEaBErJEybK8iQQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxfmt/binding-win32-ia32-msvc@0.60.0': + resolution: {integrity: sha512-HqDekjr8JXzVDUP1YthDZ1Y3CBEcuZT4WX3B+1kaxj8CvZA8Y2YhcEsXqoSop3tVsgjACxjnFQFDkBo0r/jq1Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxfmt/binding-win32-x64-msvc@0.60.0': + resolution: {integrity: sha512-tz78yhmGPKboTMHCHSaUqXK8JrmoSejgDcWeqAtg2s07ZGKQ3rH5Jn8NuXPGNG33CDbY2e9NoQWXIVEmKO21Rw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@oxlint/binding-android-arm-eabi@1.75.0': + resolution: {integrity: sha512-lutovtFzJqlRaqpZrCqSSGaHZzl9nIxxpjLzhSRLunN6dCLylj0uzlCyQGaQDIys7rrv8kVXiFO+R4Zpn0bX7g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxlint/binding-android-arm64@1.75.0': + resolution: {integrity: sha512-hXI0hDgHkw4w5nfru72aG7y+2iQJmC4waH/KV6H/hbgA6yAP5jYNx0P9yug15Hs0tWl/+mda3Jjn/2gmDT48tw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxlint/binding-darwin-arm64@1.75.0': + resolution: {integrity: sha512-D91BWbK/dMYfCcrghspPIuKs2D9LF4Z/OabVSQjw1AO6PWxArD7teDA48bm0ySFqWDaPVqmQRl5GMWNglTXyrQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxlint/binding-darwin-x64@1.75.0': + resolution: {integrity: sha512-02mpwzf12BonZ6PT0TuQoomvEh2kVl2WGBIKWezCyToIS+rYkQZ6GXnARBAl9A4Ovm2V+Xe7M4KretyqmmcnJQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxlint/binding-freebsd-x64@1.75.0': + resolution: {integrity: sha512-qZJgLnDaBsiL5YESx2t/TZ8eXkL9fEkKoXEdzegROhlz9A0lgyGnZ0dAzJrh7LJAHQl2K9RdRueN2s/9N7+odg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxlint/binding-linux-arm-gnueabihf@1.75.0': + resolution: {integrity: sha512-7XlaWA5BJD3XpCfrEqjEe6Zseeb14S7QGa304XfwKignRaKQ+eIj775BQ7nIslggWickl4IsPUFqJ+/gAyNHVg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm-musleabihf@1.75.0': + resolution: {integrity: sha512-av6Tpv8yrcMMMOadOqENBhlsLRcGFXXwoQ0hzHhsmS9FJ4Wioy8we427GbcMe2XTxmL2e60T67H1Dyr3up+tAA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm64-gnu@1.75.0': + resolution: {integrity: sha512-WcUhd8fHT5plrA14lANevl+hOl815mVI5t2hU21oFWrZKFXIVV/Sr4rWQV0NzSvzBupbMLNc5ErEA6Ehxh5jMg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-arm64-musl@1.75.0': + resolution: {integrity: sha512-UWzp5wRHFe/ESO3+eEaxXsTkYTGLYjnTsi/I5neEacXSItQ6WNleapfOAeA4x2b8nyhJ4uQxqvtv9pHv8kWJtQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxlint/binding-linux-ppc64-gnu@1.75.0': + resolution: {integrity: sha512-XEVRwGMLKCUKrvhLAz4F6AIh8MJrQVdSZtAmPpRZt9tGPsUnamPOcl3dS/ZQzJnar/Ymgc//+xho0L60Emzuxg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-riscv64-gnu@1.75.0': + resolution: {integrity: sha512-mAG4DUXqfLC8cTjMD2kt3jDmVzFREYtDyeLNdLdsCcBc4Zbl2EMuiFektGBilQwkNjYnMvCqJs55U+Hyb+b+jw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-riscv64-musl@1.75.0': + resolution: {integrity: sha512-95hrAvriAlI+pekSomTFIn0+bawMDlDwTNVmdjsFusTHyL2JWh7TWvRNG/Lkim72uN8OiCcO9wcaC6omLP5E3w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxlint/binding-linux-s390x-gnu@1.75.0': + resolution: {integrity: sha512-4b6f2+FrtruAESrCqIKcrarzfrSx+wk2QNcp+RT91/Prc+pMQMAfyZ1rG1c3tFQNl8Bc616tx40uNXyxNBRPbQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-x64-gnu@1.75.0': + resolution: {integrity: sha512-nshAhrUvXFUWOvqQ2soIw7HFNWvpvEV4o0cYSqPtzLiPF5gKyYTDOOTJ6Rn8g8K/iGvPIrbDA4v8+5MvnjJrrg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-x64-musl@1.75.0': + resolution: {integrity: sha512-e4jNxLKnxLC6sYBQRxrI2pgIIxnmMtF8U/VwNYcjTT/CLS+spH624cYVnj07bTKwaEWT37/e025isOs6j/0xqA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxlint/binding-openharmony-arm64@1.75.0': + resolution: {integrity: sha512-hZ2lH+1qLf/DiEP9UWuQTK2JWj/BgvMB4jhIV4SmNU1wfEiYYX4TynQyAZXx0j9X4qRYizAL042SKaV+8ynh4w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxlint/binding-win32-arm64-msvc@1.75.0': + resolution: {integrity: sha512-Ilj6PNzGDS3bCU0MSJH7Msh0NhH+T/mRp2shwg+q+GHeVlPwP5LEboW96aW+3kVKFk6zYZy1Xi5pZkqZh6X8KQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxlint/binding-win32-ia32-msvc@1.75.0': + resolution: {integrity: sha512-QVit2nOEOiPhkmsrksPSkoGCdnZRNkspt8fwoYyP09te1VEbnSj4LAxua4rc8FKTmWkySVe05j8iz9GXYfF1AQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxlint/binding-win32-x64-msvc@1.75.0': + resolution: {integrity: sha512-DSxnNkBUAYARPwJtR12Ig3deWr8w0H997xP6jy33i+e0SyYJw8FKuz4+cZtpmPEhQmvlPJE3X/2vNxDmLkd/rA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pkgr/core@0.2.9': - resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@protobufjs/aspromise@1.1.2': resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} @@ -2315,17 +2511,6 @@ packages: resolution: {integrity: sha512-WfPfZzboYgo/TUtysuD5xyANzzfka8Ebni6RIb2wDxhb56ERi7qDrE4xGhtPsjCL4pQBXSVxyIlCy0d8I6EgGA==} engines: {node: '>= 20.19.4'} - '@react-native/eslint-config@0.81.5': - resolution: {integrity: sha512-6MAn0ZjWQrWMqW09pEWTQAhLZ3WWB+zDRAZ/D1xj1Wyaz2qQH5KYfZMgnanhYIYuX7sxTS50ACMr/IOptMS1Og==} - engines: {node: '>= 20.19.4'} - peerDependencies: - eslint: '>=8' - prettier: '>=2' - - '@react-native/eslint-plugin@0.81.5': - resolution: {integrity: sha512-PyI+Xal1gBGKmcM595nxxXdCK12nXpEMwkg67POurC2t1J3jT9v8Dq3wiNsoBLXnRo8VdOME+BLwQQBeGedoTA==} - engines: {node: '>= 20.19.4'} - '@react-native/gradle-plugin@0.81.5': resolution: {integrity: sha512-hORRlNBj+ReNMLo9jme3yQ6JQf4GZpVEBLxmTXGGlIL78MAezDZr5/uq9dwElSbcGmLEgeiax6e174Fie6qPLg==} engines: {node: '>= 20.19.4'} @@ -2431,24 +2616,18 @@ packages: '@rocket.chat/emitter@0.32.0': resolution: {integrity: sha512-QCXNGDm5xjJPePMeP9GknMAZne5xhNmLLD/ZVVqNgOyeWdfQKddwBUqtMiWDaFCRq1bC22kNf3WQLqt89CO6fg==} - '@rocket.chat/eslint-config@0.4.0': - resolution: {integrity: sha512-uVxoH3/TtusmXp73JtmDKlKK3EQTk+F/tnvVxfSAeyDCAS1/8HeZS+r81md3EOtRvmu1dselXg8+R1eO55QZfg==} - engines: {node: '>= 8'} - peerDependencies: - eslint: ^4.19.1 || ^5.16.0 - eslint-plugin-import: ^2.17.2 - '@rocket.chat/icons@0.47.0': resolution: {integrity: sha512-s0ePkY17dGAa8R+xrk1wWfHqaOh0AQvHvdSB8Qteq4TfFrTmzzl6KcV4eulcZPWi+udRI1it8Q+yfr05s6k2ow==} '@rocket.chat/media-signaling@1.0.0-rc.1': resolution: {integrity: sha512-yUMFOyhJfN1XH4IssQF17zAeaamNiSw3riaeuc+pby4XYDd405aN8jh//Lz2nn9c8DeGCCzUbRStlMlmPsbr6g==} - '@rocket.chat/message-parser@0.31.31': - resolution: {integrity: sha512-YWHdin2ejndwgQJXlHIzAmQB+xvZLeEOqOkPq8RxdyTjAaGo1DbBCrc0aU7u0LOUnGN+jm3H4grnYdI9SPwitA==} + '@rocket.chat/message-parser@0.31.36': + resolution: {integrity: sha512-Z8kmWHKswEYH9dnr6iU61DJG2BAmCTkvhXhZ4dtFHe8/UThgr8cJcFSpSJi/y8Fh7LakzQIsgq+xMZ1OcwZU+g==} + engines: {node: 22.16.0} '@rocket.chat/mobile-crypto@https://codeload.github.com/RocketChat/rocket.chat-mobile-crypto/tar.gz/69a0a250dd7c6ff0808eb659d7202be1cae7fa1c': - resolution: {gitHosted: true, integrity: sha512-v3uaVCYlj9gGZkAZe3JWQkhlGaRyahmnagbMSKtSnl+6WuLNxaPOf0GjJKVuxBdqkXPPhr23JIihVlch3FVeCQ==, tarball: https://codeload.github.com/RocketChat/rocket.chat-mobile-crypto/tar.gz/69a0a250dd7c6ff0808eb659d7202be1cae7fa1c} + resolution: {gitHosted: true, tarball: https://codeload.github.com/RocketChat/rocket.chat-mobile-crypto/tar.gz/69a0a250dd7c6ff0808eb659d7202be1cae7fa1c} version: 0.4.0 peerDependencies: react: '*' @@ -2754,127 +2933,125 @@ packages: '@types/yargs@17.0.35': resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} - '@typescript-eslint/eslint-plugin@7.18.0': - resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript/typescript-aix-ppc64@7.0.2': + resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [aix] - '@typescript-eslint/parser@7.18.0': - resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript/typescript-darwin-arm64@7.0.2': + resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] - '@typescript-eslint/project-service@8.55.0': - resolution: {integrity: sha512-zRcVVPFUYWa3kNnjaZGXSu3xkKV1zXy8M4nO/pElzQhFweb7PPtluDLQtKArEOGmjXoRjnUZ29NjOiF0eCDkcQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' + '@typescript/typescript-darwin-x64@7.0.2': + resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] - '@typescript-eslint/scope-manager@5.62.0': - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript/typescript-freebsd-arm64@7.0.2': + resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [freebsd] - '@typescript-eslint/scope-manager@7.18.0': - resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript/typescript-freebsd-x64@7.0.2': + resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [freebsd] - '@typescript-eslint/scope-manager@8.55.0': - resolution: {integrity: sha512-fVu5Omrd3jeqeQLiB9f1YsuK/iHFOwb04bCtY4BSCLgjNbOD33ZdV6KyEqplHr+IlpgT0QTZ/iJ+wT7hvTx49Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/typescript-linux-arm64@7.0.2': + resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] - '@typescript-eslint/tsconfig-utils@8.55.0': - resolution: {integrity: sha512-1R9cXqY7RQd7WuqSN47PK9EDpgFUK3VqdmbYrvWJZYDd0cavROGn+74ktWBlmJ13NXUQKlZ/iAEQHI/V0kKe0Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' + '@typescript/typescript-linux-arm@7.0.2': + resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] - '@typescript-eslint/type-utils@7.18.0': - resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript/typescript-linux-loong64@7.0.2': + resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} + engines: {node: '>=16.20.0'} + cpu: [loong64] + os: [linux] - '@typescript-eslint/types@5.62.0': - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript/typescript-linux-mips64el@7.0.2': + resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} + engines: {node: '>=16.20.0'} + cpu: [mips64el] + os: [linux] - '@typescript-eslint/types@7.18.0': - resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript/typescript-linux-ppc64@7.0.2': + resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [linux] - '@typescript-eslint/types@8.55.0': - resolution: {integrity: sha512-ujT0Je8GI5BJWi+/mMoR0wxwVEQaxM+pi30xuMiJETlX80OPovb2p9E8ss87gnSVtYXtJoU9U1Cowcr6w2FE0w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/typescript-linux-riscv64@7.0.2': + resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} + engines: {node: '>=16.20.0'} + cpu: [riscv64] + os: [linux] - '@typescript-eslint/typescript-estree@5.62.0': - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript/typescript-linux-s390x@7.0.2': + resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} + engines: {node: '>=16.20.0'} + cpu: [s390x] + os: [linux] - '@typescript-eslint/typescript-estree@7.18.0': - resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript/typescript-linux-x64@7.0.2': + resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] - '@typescript-eslint/typescript-estree@8.55.0': - resolution: {integrity: sha512-EwrH67bSWdx/3aRQhCoxDaHM+CrZjotc2UCCpEDVqfCE+7OjKAGWNY2HsCSTEVvWH2clYQK8pdeLp42EVs+xQw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' + '@typescript/typescript-netbsd-arm64@7.0.2': + resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [netbsd] - '@typescript-eslint/utils@5.62.0': - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript/typescript-netbsd-x64@7.0.2': + resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [netbsd] - '@typescript-eslint/utils@7.18.0': - resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 + '@typescript/typescript-openbsd-arm64@7.0.2': + resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [openbsd] - '@typescript-eslint/utils@8.55.0': - resolution: {integrity: sha512-BqZEsnPGdYpgyEIkDC1BadNY8oMwckftxBT+C8W0g1iKPdeqKZBtTfnvcq0nf60u7MkjFO8RBvpRGZBPw4L2ow==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' + '@typescript/typescript-openbsd-x64@7.0.2': + resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [openbsd] - '@typescript-eslint/visitor-keys@5.62.0': - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript/typescript-sunos-x64@7.0.2': + resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [sunos] - '@typescript-eslint/visitor-keys@7.18.0': - resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript/typescript-win32-arm64@7.0.2': + resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] - '@typescript-eslint/visitor-keys@8.55.0': - resolution: {integrity: sha512-AxNRwEie8Nn4eFS1FzDMJWIISMGoXMb037sgCBJ3UR6o0fQTzr2tqN9WT+DkWJPhIdQCfV7T6D387566VtnCJA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/typescript-win32-x64@7.0.2': + resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} @@ -3225,14 +3402,6 @@ packages: array-timsort@1.0.3: resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} - array.prototype.findlastindex@1.2.6: resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} engines: {node: '>= 0.4'} @@ -3245,10 +3414,6 @@ packages: resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} engines: {node: '>= 0.4'} - array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.4: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} @@ -3344,9 +3509,6 @@ packages: babel-plugin-react-compiler@1.0.0: resolution: {integrity: sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==} - babel-plugin-react-compiler@19.1.0-rc.3: - resolution: {integrity: sha512-mjRn69WuTz4adL0bXGx8Rsyk1086zFJeKmes6aK0xPuK3aaXmDJdLHqwKKMrpm6KAI1MCoUK72d2VeqQbu8YIA==} - babel-plugin-react-native-web@0.21.2: resolution: {integrity: sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA==} @@ -3494,6 +3656,10 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} + cac@7.0.0: + resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==} + engines: {node: '>=20.19.0'} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -3929,10 +4095,6 @@ packages: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -4065,10 +4227,6 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.2.2: - resolution: {integrity: sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==} - engines: {node: '>= 0.4'} - es-module-lexer@2.1.0: resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} @@ -4125,18 +4283,6 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-prettier@10.1.8: - resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-config-prettier@8.10.2: - resolution: {integrity: sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - eslint-import-context@0.1.9: resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -4183,19 +4329,6 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-eslint-comments@3.2.0: - resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} - engines: {node: '>=6.5.0'} - peerDependencies: - eslint: '>=4.19.1' - - eslint-plugin-ft-flow@2.0.3: - resolution: {integrity: sha512-Vbsd/b+LYA99jUbsL6viEUWShFaYQt2YQs3QN3f+aeszOhh2sgdcU0mjzDyD4yyBvMc8qy2uwvBBWfMzEX06tg==} - engines: {node: '>=12.22.0'} - peerDependencies: - '@babel/eslint-parser': ^7.12.0 - eslint: ^8.1.0 - eslint-plugin-import@2.32.0: resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} engines: {node: '>=4'} @@ -4206,84 +4339,14 @@ packages: '@typescript-eslint/parser': optional: true - eslint-plugin-jest@27.9.0: - resolution: {integrity: sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 || ^7.0.0 - eslint: ^7.0.0 || ^8.0.0 - jest: '*' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - jest: - optional: true - - eslint-plugin-jest@29.14.0: - resolution: {integrity: sha512-njP4UAcCmcE9uYMQcZdi4unNkiVKzMJ6yOdKcw5YqvNayV2hbopTBb+VaDU7mUmteDfRtjbmCZkK/psxbUvdUg==} - engines: {node: ^20.12.0 || ^22.0.0 || >=24.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^8.0.0 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - jest: '*' - typescript: '>=4.8.4 <6.0.0' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - jest: - optional: true - typescript: - optional: true - - eslint-plugin-prettier@5.5.5: - resolution: {integrity: sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true - - eslint-plugin-react-hooks@5.2.0: - resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - - eslint-plugin-react-hooks@7.0.1: - resolution: {integrity: sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==} - engines: {node: '>=18'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react-native-globals@0.1.2: resolution: {integrity: sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==} - eslint-plugin-react-native@4.1.0: - resolution: {integrity: sha512-QLo7rzTBOl43FvVqDdq5Ql9IoElIuTdjrz9SKAXCvULvBoRZ44JGSkx9z4999ZusCsb4rK3gjS8gOGyeYqZv2Q==} - peerDependencies: - eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8 - eslint-plugin-react-native@5.0.0: resolution: {integrity: sha512-VyWlyCC/7FC/aONibOwLkzmyKg4j9oI8fzrk9WYNs4I8/m436JuOTAFwLvEn1CVvc7La4cPfbCyspP4OYpP52Q==} peerDependencies: eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-react@7.37.5: - resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - - eslint-rule-composer@0.3.0: - resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} - engines: {node: '>=4.0.0'} - eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -4292,18 +4355,10 @@ packages: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@8.57.1: resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4548,9 +4603,6 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} @@ -4797,10 +4849,6 @@ packages: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -4858,9 +4906,6 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - hermes-estree@0.25.1: - resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} - hermes-estree@0.28.1: resolution: {integrity: sha512-w3nxl/RGM7LBae0v8LH2o36+8VqwOZGv9rX1wyoWT6YaKZLqpJZ0YQ5P0LVr3tuRpf7vCx0iIG4i/VmBJejxTQ==} @@ -4870,9 +4915,6 @@ packages: hermes-estree@0.32.0: resolution: {integrity: sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==} - hermes-parser@0.25.1: - resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} - hermes-parser@0.28.1: resolution: {integrity: sha512-nf8o+hE8g7UJWParnccljHumE9Vlq8F7MqIdeahl+4x0tvCUJYRrT0L7h0MMg/X9YJmkNwsfbaNNrzPtFXOscg==} @@ -5192,10 +5234,6 @@ packages: resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} - iterator.prototype@1.1.5: - resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} - engines: {node: '>= 0.4'} - jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -5452,10 +5490,6 @@ packages: jsrsasign@11.0.0: resolution: {integrity: sha512-BtRwVKS+5dsgPpAtzJcpo5OoWjSs1/zllSBG0+8o8/aV0Ki76m6iZwHnwnsqoTdhfFZDN1XIdcaZr5ZkP+H2gg==} - jsx-ast-utils@3.3.0: - resolution: {integrity: sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==} - engines: {node: '>=4.0'} - keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -5963,11 +5997,7 @@ packages: engines: {node: '>= 0.4'} object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - - object.entries@1.1.9: - resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} object.fromentries@2.0.8: @@ -6033,6 +6063,32 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} + oxfmt@0.60.0: + resolution: {integrity: sha512-fViX6i+gJuZWY+jI/fnR6WRbRj70GZ9RlCd30MygJrHTUNc4DxvKHWw8vBjMjffv3PgU5qWDR0AzmojQByqaZA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + svelte: ^5.0.0 + vite-plus: '*' + peerDependenciesMeta: + svelte: + optional: true + vite-plus: + optional: true + + oxlint@1.75.0: + resolution: {integrity: sha512-m9WzjRcRYA/uqIZDa9tclrieoPJ/ln1QYTKdFx6NUOs8uY5DiHlIwRQoCrHT6OM6O3ww3l2skY5gO7G7ZphE7g==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + oxlint-tsgolint: '>=7.0.2001' + vite-plus: '*' + peerDependenciesMeta: + oxlint-tsgolint: + optional: true + vite-plus: + optional: true + p-defer@1.0.0: resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} engines: {node: '>=4'} @@ -6149,6 +6205,10 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} + engines: {node: '>=12'} + pirates@4.0.7: resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} @@ -6191,15 +6251,6 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-linter-helpers@1.0.1: - resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} - engines: {node: '>=6.0.0'} - - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - prettier@3.7.4: resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} engines: {node: '>=14'} @@ -6417,9 +6468,9 @@ packages: react: '*' react-native: '*' - react-native-image-crop-picker@https://codeload.github.com/RocketChat/react-native-image-crop-picker/tar.gz/f028aac24373d05166747ef6d9e59bb037fe3224: - resolution: {gitHosted: true, tarball: https://codeload.github.com/RocketChat/react-native-image-crop-picker/tar.gz/f028aac24373d05166747ef6d9e59bb037fe3224} - version: 0.51.0 + react-native-image-crop-picker@https://codeload.github.com/RocketChat/react-native-image-crop-picker/tar.gz/47092e8c90550a54d45fe307f7cb2a24c9535ed5: + resolution: {gitHosted: true, tarball: https://codeload.github.com/RocketChat/react-native-image-crop-picker/tar.gz/47092e8c90550a54d45fe307f7cb2a24c9535ed5} + version: 0.51.1 peerDependencies: react: '*' react-native: '*' @@ -6745,10 +6796,6 @@ packages: resolve@1.7.1: resolution: {integrity: sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==} - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - restore-cursor@2.0.0: resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} engines: {node: '>=4'} @@ -6949,6 +6996,10 @@ packages: resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} engines: {node: '>=8.0.0'} + sniffler@0.4.0: + resolution: {integrity: sha512-IpD773keVcO308nTJtSOodKNXJWWqUCWtR/fGbF6UeRn+7mHtlsgvw3P6r8QRabkP4eX/AkjlX6FOI0Q6YC8sA==} + hasBin: true + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -7070,9 +7121,6 @@ packages: resolution: {integrity: sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==} engines: {node: '>=12.20'} - string-natural-compare@3.0.1: - resolution: {integrity: sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -7081,13 +7129,6 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string.prototype.matchall@4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} - engines: {node: '>= 0.4'} - - string.prototype.repeat@1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - string.prototype.trim@1.2.10: resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} @@ -7177,10 +7218,6 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - synckit@0.11.12: - resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} - engines: {node: ^14.18.0 || >=16.0.0} - table-layout@1.0.2: resolution: {integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==} engines: {node: '>=8.0.0'} @@ -7269,6 +7306,10 @@ packages: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} + tinypool@2.1.0: + resolution: {integrity: sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==} + engines: {node: ^20.0.0 || >=22.0.0} + tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} @@ -7277,11 +7318,11 @@ packages: resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} engines: {node: '>=14.0.0'} - tldts-core@5.7.112: - resolution: {integrity: sha512-mutrEUgG2sp0e/MIAnv9TbSLR0IPbvmAImpzqul5O/HJ2XM1/I1sajchQ/fbj0fPdA31IiuWde8EUhfwyldY1Q==} + tldts-core@6.1.86: + resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} - tldts@5.7.112: - resolution: {integrity: sha512-6VSJ/C0uBtc2PQlLsp4IT8MIk2UUh6qVeXB1HZtK+0HiXlAPzNcfF3p2WM9RqCO/2X1PIa4danlBLPoC2/Tc7A==} + tldts@6.1.86: + resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} hasBin: true tmp@0.2.5: @@ -7318,18 +7359,6 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - ts-api-utils@1.4.3: - resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - - ts-api-utils@2.4.0: - resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} @@ -7340,18 +7369,9 @@ packages: tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -7425,9 +7445,9 @@ packages: typescript-tuple@2.2.1: resolution: {integrity: sha512-Zcr0lbt8z5ZdEzERHAMAniTiIKerFCMgd7yjq1fPnDJ43et/k9twIFQMUYff9k5oXcsQ0WpvFcgzK2ZKASoW6Q==} - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} + typescript@7.0.2: + resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} + engines: {node: '>=16.20.0'} hasBin: true typia@9.7.2: @@ -7821,15 +7841,6 @@ packages: resolution: {integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==} engines: {node: '>=10'} - zod-validation-error@4.0.2: - resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} - engines: {node: '>=18.0.0'} - peerDependencies: - zod: ^3.25.0 || ^4.0.0 - - zod@4.3.6: - resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} - zustand@5.0.12: resolution: {integrity: sha512-i77ae3aZq4dhMlRhJVCYgMLKuSiZAaUPAct2AksxQ+gOtimhGMdXljRT21P5BNpeT4kXlLIckvkPM029OljD7g==} engines: {node: '>=12.20.0'} @@ -7891,20 +7902,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.25.9(@babel/core@7.25.9)(eslint@8.57.1)': - dependencies: - '@babel/core': 7.25.9 - '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.57.1 - eslint-visitor-keys: 2.1.0 - semver: 6.3.1 - - '@babel/eslint-plugin@7.25.9(@babel/eslint-parser@7.25.9(@babel/core@7.25.9)(eslint@8.57.1))(eslint@8.57.1)': - dependencies: - '@babel/eslint-parser': 7.25.9(@babel/core@7.25.9)(eslint@8.57.1) - eslint: 8.57.1 - eslint-rule-composer: 0.3.0 - '@babel/generator@7.29.1': dependencies: '@babel/parser': 7.29.2 @@ -8943,7 +8940,7 @@ snapshots: '@eslint/js@8.57.1': {} - '@expo/cli@54.0.20(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))': + '@expo/cli@54.0.20(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))': dependencies: '@0no-co/graphql.web': 1.2.0 '@expo/code-signing-certificates': 0.0.5 @@ -8954,11 +8951,11 @@ snapshots: '@expo/image-utils': 0.8.8 '@expo/json-file': 10.0.8 '@expo/metro': 54.2.0 - '@expo/metro-config': 54.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) + '@expo/metro-config': 54.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) '@expo/osascript': 2.3.8 '@expo/package-manager': 1.9.9 '@expo/plist': 0.4.8 - '@expo/prebuild-config': 54.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) + '@expo/prebuild-config': 54.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) '@expo/schema-utils': 0.1.8 '@expo/spawn-async': 1.7.2 '@expo/ws-tunnel': 1.0.6 @@ -8977,7 +8974,7 @@ snapshots: connect: 3.7.0 debug: 4.4.3 env-editor: 0.4.2 - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) expo-server: 1.0.5 freeport-async: 2.0.0 getenv: 2.0.0 @@ -9010,7 +9007,7 @@ snapshots: wrap-ansi: 7.0.0 ws: 8.18.3 optionalDependencies: - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) transitivePeerDependencies: - bufferutil - graphql @@ -9089,12 +9086,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/devtools@0.1.8(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@expo/devtools@0.1.8(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: chalk: 4.1.2 optionalDependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) '@expo/env@2.0.8': dependencies: @@ -9145,7 +9142,7 @@ snapshots: '@babel/code-frame': 7.10.4 json5: 2.2.3 - '@expo/metro-config@54.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))': + '@expo/metro-config@54.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))': dependencies: '@babel/code-frame': 7.29.0 '@babel/core': 7.25.9 @@ -9169,7 +9166,7 @@ snapshots: postcss: 8.4.49 resolve-from: 5.0.0 optionalDependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - bufferutil - supports-color @@ -9222,7 +9219,7 @@ snapshots: base64-js: 1.5.1 xmlbuilder: 15.1.1 - '@expo/prebuild-config@54.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))': + '@expo/prebuild-config@54.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))': dependencies: '@expo/config': 12.0.13 '@expo/config-plugins': 54.0.4 @@ -9231,7 +9228,7 @@ snapshots: '@expo/json-file': 10.0.8 '@react-native/normalize-colors': 0.81.5 debug: 4.4.3 - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) resolve-from: 5.0.0 semver: 7.7.4 xml2js: 0.6.0 @@ -9248,11 +9245,11 @@ snapshots: '@expo/sudo-prompt@9.3.2': {} - '@expo/vector-icons@15.0.3(expo-font@14.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@expo/vector-icons@15.0.3(expo-font@14.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: - expo-font: 14.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-font: 14.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) '@expo/ws-tunnel@1.0.6': {} @@ -9327,10 +9324,10 @@ snapshots: idb: 7.1.1 tslib: 2.8.1 - '@firebase/auth-compat@0.5.18(@firebase/app-compat@0.2.50)(@firebase/app-types@0.9.3)(@firebase/app@0.11.1)(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)))': + '@firebase/auth-compat@0.5.18(@firebase/app-compat@0.2.50)(@firebase/app-types@0.9.3)(@firebase/app@0.11.1)(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)))': dependencies: '@firebase/app-compat': 0.2.50 - '@firebase/auth': 1.9.0(@firebase/app@0.11.1)(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))) + '@firebase/auth': 1.9.0(@firebase/app@0.11.1)(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))) '@firebase/auth-types': 0.13.0(@firebase/app-types@0.9.3)(@firebase/util@1.10.3) '@firebase/component': 0.6.12 '@firebase/util': 1.10.3 @@ -9347,7 +9344,7 @@ snapshots: '@firebase/app-types': 0.9.3 '@firebase/util': 1.10.3 - '@firebase/auth@1.9.0(@firebase/app@0.11.1)(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)))': + '@firebase/auth@1.9.0(@firebase/app@0.11.1)(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)))': dependencies: '@firebase/app': 0.11.1 '@firebase/component': 0.6.12 @@ -9355,7 +9352,7 @@ snapshots: '@firebase/util': 1.10.3 tslib: 2.8.1 optionalDependencies: - '@react-native-async-storage/async-storage': 2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + '@react-native-async-storage/async-storage': 2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) '@firebase/component@0.6.12': dependencies: @@ -9583,22 +9580,22 @@ snapshots: '@firebase/webchannel-wrapper@1.0.3': {} - '@gorhom/bottom-sheet@5.2.8(@types/react@19.1.17)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@gorhom/bottom-sheet@5.2.8(@types/react@19.1.17)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: - '@gorhom/portal': 1.0.14(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@gorhom/portal': 1.0.14(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-reanimated: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) optionalDependencies: '@types/react': 19.1.17 - '@gorhom/portal@1.0.14(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@gorhom/portal@1.0.14(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: nanoid: 3.3.11 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) '@grpc/grpc-js@1.9.15': dependencies: @@ -9867,15 +9864,15 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@lodev09/react-native-true-sheet@3.7.3(a578dac207b76a7afc564466315015e0)': + '@lodev09/react-native-true-sheet@3.7.3(261280a80c394a7dcf8d9609d62c37ca)': dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) optionalDependencies: - '@gorhom/bottom-sheet': 5.2.8(@types/react@19.1.17)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - '@react-navigation/native': 7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-reanimated: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-worklets: 0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@gorhom/bottom-sheet': 5.2.8(@types/react@19.1.17)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-worklets: 0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@napi-rs/wasm-runtime@0.2.12': dependencies: @@ -9884,10 +9881,6 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - dependencies: - eslint-scope: 5.1.1 - '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -9916,10 +9909,122 @@ snapshots: rxjs: 7.8.2 sql-escape-string: 1.1.0 - '@pkgjs/parseargs@0.11.0': + '@oxfmt/binding-android-arm-eabi@0.60.0': + optional: true + + '@oxfmt/binding-android-arm64@0.60.0': + optional: true + + '@oxfmt/binding-darwin-arm64@0.60.0': + optional: true + + '@oxfmt/binding-darwin-x64@0.60.0': + optional: true + + '@oxfmt/binding-freebsd-x64@0.60.0': + optional: true + + '@oxfmt/binding-linux-arm-gnueabihf@0.60.0': + optional: true + + '@oxfmt/binding-linux-arm-musleabihf@0.60.0': + optional: true + + '@oxfmt/binding-linux-arm64-gnu@0.60.0': + optional: true + + '@oxfmt/binding-linux-arm64-musl@0.60.0': + optional: true + + '@oxfmt/binding-linux-ppc64-gnu@0.60.0': + optional: true + + '@oxfmt/binding-linux-riscv64-gnu@0.60.0': + optional: true + + '@oxfmt/binding-linux-riscv64-musl@0.60.0': + optional: true + + '@oxfmt/binding-linux-s390x-gnu@0.60.0': + optional: true + + '@oxfmt/binding-linux-x64-gnu@0.60.0': + optional: true + + '@oxfmt/binding-linux-x64-musl@0.60.0': + optional: true + + '@oxfmt/binding-openharmony-arm64@0.60.0': + optional: true + + '@oxfmt/binding-win32-arm64-msvc@0.60.0': + optional: true + + '@oxfmt/binding-win32-ia32-msvc@0.60.0': + optional: true + + '@oxfmt/binding-win32-x64-msvc@0.60.0': + optional: true + + '@oxlint/binding-android-arm-eabi@1.75.0': + optional: true + + '@oxlint/binding-android-arm64@1.75.0': + optional: true + + '@oxlint/binding-darwin-arm64@1.75.0': + optional: true + + '@oxlint/binding-darwin-x64@1.75.0': + optional: true + + '@oxlint/binding-freebsd-x64@1.75.0': + optional: true + + '@oxlint/binding-linux-arm-gnueabihf@1.75.0': + optional: true + + '@oxlint/binding-linux-arm-musleabihf@1.75.0': + optional: true + + '@oxlint/binding-linux-arm64-gnu@1.75.0': + optional: true + + '@oxlint/binding-linux-arm64-musl@1.75.0': + optional: true + + '@oxlint/binding-linux-ppc64-gnu@1.75.0': + optional: true + + '@oxlint/binding-linux-riscv64-gnu@1.75.0': + optional: true + + '@oxlint/binding-linux-riscv64-musl@1.75.0': + optional: true + + '@oxlint/binding-linux-s390x-gnu@1.75.0': + optional: true + + '@oxlint/binding-linux-x64-gnu@1.75.0': + optional: true + + '@oxlint/binding-linux-x64-musl@1.75.0': + optional: true + + '@oxlint/binding-openharmony-arm64@1.75.0': + optional: true + + '@oxlint/binding-win32-arm64-msvc@1.75.0': + optional: true + + '@oxlint/binding-win32-ia32-msvc@1.75.0': + optional: true + + '@oxlint/binding-win32-x64-msvc@1.75.0': optional: true - '@pkgr/core@0.2.9': {} + '@pkgjs/parseargs@0.11.0': + optional: true '@protobufjs/aspromise@1.1.2': {} @@ -9944,19 +10049,19 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))': + '@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))': dependencies: merge-options: 3.0.4 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - '@react-native-camera-roll/camera-roll@7.10.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))': + '@react-native-camera-roll/camera-roll@7.10.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))': dependencies: - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - '@react-native-clipboard/clipboard@1.16.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@react-native-clipboard/clipboard@1.16.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) '@react-native-community/cli-clean@20.0.0': dependencies: @@ -9993,20 +10098,20 @@ snapshots: execa: 5.1.1 fast-glob: 3.3.3 - '@react-native-community/cli-config@20.0.0(typescript@5.9.3)': + '@react-native-community/cli-config@20.0.0(typescript@7.0.2)': dependencies: '@react-native-community/cli-tools': 20.0.0 chalk: 4.1.2 - cosmiconfig: 9.0.0(typescript@5.9.3) + cosmiconfig: 9.0.0(typescript@7.0.2) deepmerge: 4.3.1 fast-glob: 3.3.3 joi: 17.13.3 transitivePeerDependencies: - typescript - '@react-native-community/cli-doctor@20.0.0(typescript@5.9.3)': + '@react-native-community/cli-doctor@20.0.0(typescript@7.0.2)': dependencies: - '@react-native-community/cli-config': 20.0.0(typescript@5.9.3) + '@react-native-community/cli-config': 20.0.0(typescript@7.0.2) '@react-native-community/cli-platform-android': 20.0.0 '@react-native-community/cli-platform-apple': 20.0.0 '@react-native-community/cli-platform-ios': 20.0.0 @@ -10091,11 +10196,11 @@ snapshots: dependencies: joi: 17.13.3 - '@react-native-community/cli@20.0.0(typescript@5.9.3)': + '@react-native-community/cli@20.0.0(typescript@7.0.2)': dependencies: '@react-native-community/cli-clean': 20.0.0 - '@react-native-community/cli-config': 20.0.0(typescript@5.9.3) - '@react-native-community/cli-doctor': 20.0.0(typescript@5.9.3) + '@react-native-community/cli-config': 20.0.0(typescript@7.0.2) + '@react-native-community/cli-doctor': 20.0.0(typescript@7.0.2) '@react-native-community/cli-server-api': 20.0.0 '@react-native-community/cli-tools': 20.0.0 '@react-native-community/cli-types': 20.0.0 @@ -10114,61 +10219,61 @@ snapshots: - typescript - utf-8-validate - '@react-native-community/datetimepicker@8.4.4(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@react-native-community/datetimepicker@8.4.4(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) optionalDependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - '@react-native-community/hooks@100.1.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@react-native-community/hooks@100.1.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - '@react-native-community/netinfo@11.4.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))': + '@react-native-community/netinfo@11.4.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))': dependencies: - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) '@react-native-community/slider@5.0.1': {} - '@react-native-cookies/cookies@6.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))': + '@react-native-cookies/cookies@6.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))': dependencies: invariant: 2.2.4 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - '@react-native-firebase/analytics@21.14.0(@react-native-firebase/app@21.14.0(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)))(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))': + '@react-native-firebase/analytics@21.14.0(@react-native-firebase/app@21.14.0(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)))(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))': dependencies: - '@react-native-firebase/app': 21.14.0(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)))(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-native-firebase/app': 21.14.0(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)))(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) superstruct: 2.0.2 - '@react-native-firebase/app@21.14.0(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)))(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@react-native-firebase/app@21.14.0(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)))(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: - firebase: 11.3.1(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))) + firebase: 11.3.1(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) optionalDependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@react-native-async-storage/async-storage' - '@react-native-firebase/crashlytics@21.14.0(46eb1fa07f9d3f545302c187c1781447)': + '@react-native-firebase/crashlytics@21.14.0(7f31d425d6e3bb1976dd842bb1e41e49)': dependencies: - '@react-native-firebase/app': 21.14.0(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)))(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-native-firebase/app': 21.14.0(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)))(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) stacktrace-js: 2.0.2 optionalDependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - '@react-native-masked-view/masked-view@0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@react-native-masked-view/masked-view@0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - '@react-native-picker/picker@2.11.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@react-native-picker/picker@2.11.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) '@react-native/assets-registry@0.81.5': {} @@ -10249,7 +10354,7 @@ snapshots: nullthrows: 1.1.1 yargs: 17.7.2 - '@react-native/community-cli-plugin@0.81.5(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))': + '@react-native/community-cli-plugin@0.81.5(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))': dependencies: '@react-native/dev-middleware': 0.81.5 debug: 4.4.3 @@ -10259,7 +10364,7 @@ snapshots: metro-core: 0.83.3 semver: 7.5.2 optionalDependencies: - '@react-native-community/cli': 20.0.0(typescript@5.9.3) + '@react-native-community/cli': 20.0.0(typescript@7.0.2) '@react-native/metro-config': 0.81.5(@babel/core@7.25.9) transitivePeerDependencies: - bufferutil @@ -10286,29 +10391,6 @@ snapshots: - supports-color - utf-8-validate - '@react-native/eslint-config@0.81.5(eslint@8.57.1)(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0))(prettier@2.8.8)(typescript@5.9.3)': - dependencies: - '@babel/core': 7.25.9 - '@babel/eslint-parser': 7.25.9(@babel/core@7.25.9)(eslint@8.57.1) - '@react-native/eslint-plugin': 0.81.5 - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.3) - eslint: 8.57.1 - eslint-config-prettier: 8.10.2(eslint@8.57.1) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.1) - eslint-plugin-ft-flow: 2.0.3(@babel/eslint-parser@7.25.9(@babel/core@7.25.9)(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0))(typescript@5.9.3) - eslint-plugin-react: 7.37.5(eslint@8.57.1) - eslint-plugin-react-hooks: 5.2.0(eslint@8.57.1) - eslint-plugin-react-native: 4.1.0(eslint@8.57.1) - prettier: 2.8.8 - transitivePeerDependencies: - - jest - - supports-color - - typescript - - '@react-native/eslint-plugin@0.81.5': {} - '@react-native/gradle-plugin@0.81.5': {} '@react-native/js-polyfills@0.81.5': {} @@ -10340,12 +10422,12 @@ snapshots: '@react-native/typescript-config@0.81.5': {} - '@react-native/virtualized-lists@0.81.5(@types/react@19.1.17)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@react-native/virtualized-lists@0.81.5(@types/react@19.1.17)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) optionalDependencies: '@types/react': 19.1.17 @@ -10361,56 +10443,56 @@ snapshots: use-latest-callback: 0.2.6(react@19.1.0) use-sync-external-store: 1.6.0(react@19.1.0) - '@react-navigation/drawer@7.12.2(3c53d7e50d30fd67c64b1316df1aa4a0)': + '@react-navigation/drawer@7.12.2(1791ab06baac4955f4dd8054e3baaac6)': dependencies: - '@react-navigation/elements': 2.9.25(@react-native-masked-view/masked-view@0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(@react-navigation/native@7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - '@react-navigation/native': 7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/elements': 2.9.25(@react-native-masked-view/masked-view@0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(@react-navigation/native@7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) color: 4.2.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-drawer-layout: 4.2.5(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-reanimated: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-screens: 4.17.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-drawer-layout: 4.2.5(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.17.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) use-latest-callback: 0.2.6(react@19.1.0) transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@react-navigation/elements@2.9.25(@react-native-masked-view/masked-view@0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(@react-navigation/native@7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@react-navigation/elements@2.9.25(@react-native-masked-view/masked-view@0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(@react-navigation/native@7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: - '@react-navigation/native': 7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) color: 4.2.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) use-latest-callback: 0.2.6(react@19.1.0) use-sync-external-store: 1.6.0(react@19.1.0) optionalDependencies: - '@react-native-masked-view/masked-view': 0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-native-masked-view/masked-view': 0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - '@react-navigation/native-stack@7.17.5(20e22ec03db44899c27c93ee7866e802)': + '@react-navigation/native-stack@7.17.5(5d5d774b9c7e992721e68b3dbd486565)': dependencies: - '@react-navigation/elements': 2.9.25(@react-native-masked-view/masked-view@0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(@react-navigation/native@7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - '@react-navigation/native': 7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/elements': 2.9.25(@react-native-masked-view/masked-view@0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(@react-navigation/native@7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) color: 4.2.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-screens: 4.17.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.17.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) sf-symbols-typescript: 2.2.0 warn-once: 0.1.1 transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@react-navigation/native@7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@react-navigation/native@7.3.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: '@react-navigation/core': 7.21.1(react@19.1.0) escape-string-regexp: 4.0.0 fast-deep-equal: 3.1.3 nanoid: 3.3.11 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) standard-navigation: 0.0.7 use-latest-callback: 0.2.6(react@19.1.0) @@ -10445,11 +10527,6 @@ snapshots: '@rocket.chat/emitter@0.32.0': {} - '@rocket.chat/eslint-config@0.4.0(eslint-plugin-import@2.32.0)(eslint@8.57.1)': - dependencies: - eslint: 8.57.1 - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@8.57.1) - '@rocket.chat/icons@0.47.0': {} '@rocket.chat/media-signaling@1.0.0-rc.1': @@ -10457,14 +10534,14 @@ snapshots: '@rocket.chat/emitter': 0.32.0 ajv: 8.18.0 - '@rocket.chat/message-parser@0.31.31': + '@rocket.chat/message-parser@0.31.36': dependencies: - tldts: 5.7.112 + tldts: 6.1.86 - '@rocket.chat/mobile-crypto@https://codeload.github.com/RocketChat/rocket.chat-mobile-crypto/tar.gz/69a0a250dd7c6ff0808eb659d7202be1cae7fa1c(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@rocket.chat/mobile-crypto@https://codeload.github.com/RocketChat/rocket.chat-mobile-crypto/tar.gz/69a0a250dd7c6ff0808eb659d7202be1cae7fa1c(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) '@rocket.chat/sdk@https://codeload.github.com/RocketChat/Rocket.Chat.js.SDK/tar.gz/b6d2b3f25b0ff8283dd71faf6dae720c47fecd8f': dependencies: @@ -10477,15 +10554,16 @@ snapshots: - bufferutil - utf-8-validate - '@rocket.chat/ui-kit@0.39.0(@rocket.chat/icons@0.47.0)(@types/node@25.0.3)(typescript@5.9.3)': + '@rocket.chat/ui-kit@0.39.0(@rocket.chat/icons@0.47.0)(@types/node@25.0.3)(typescript@7.0.2)': dependencies: '@rocket.chat/icons': 0.47.0 - typia: 9.7.2(@types/node@25.0.3)(typescript@5.9.3) + typia: 9.7.2(@types/node@25.0.3)(typescript@7.0.2) transitivePeerDependencies: - '@types/node' - typescript - '@rtsao/scc@1.1.0': {} + '@rtsao/scc@1.1.0': + optional: true '@samchon/openapi@4.7.2': {} @@ -10513,86 +10591,86 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/react-dom-shim@9.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8))': + '@storybook/react-dom-shim@9.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4))': dependencies: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8) + storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4) - '@storybook/react-dom-shim@9.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8))': + '@storybook/react-dom-shim@9.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4))': dependencies: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8) + storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4) - '@storybook/react-native-theming@9.1.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@storybook/react-native-theming@9.1.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: polished: 4.3.1 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - '@storybook/react-native-ui-common@9.1.4(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8))(typescript@5.9.3)': + '@storybook/react-native-ui-common@9.1.4(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4))(typescript@7.0.2)': dependencies: - '@storybook/react': 9.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8))(typescript@5.9.3) - '@storybook/react-native-theming': 9.1.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@storybook/react': 9.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4))(typescript@7.0.2) + '@storybook/react-native-theming': 9.1.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) es-toolkit: 1.43.0 fuse.js: 7.1.0 memoizerific: 1.11.3 polished: 4.3.1 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) store2: 2.14.4 - storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8) + storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4) ts-dedent: 2.2.0 transitivePeerDependencies: - react-dom - typescript - '@storybook/react-native-ui@9.1.4(9f3eadeca3a833faa2b576b89d8f29c6)': + '@storybook/react-native-ui@9.1.4(ebecaf8f8fcf1df6c542e15e1e29e0ad)': dependencies: - '@gorhom/bottom-sheet': 5.2.8(@types/react@19.1.17)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - '@storybook/react': 9.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8))(typescript@5.9.3) - '@storybook/react-native-theming': 9.1.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - '@storybook/react-native-ui-common': 9.1.4(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8))(typescript@5.9.3) + '@gorhom/bottom-sheet': 5.2.8(@types/react@19.1.17)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@storybook/react': 9.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4))(typescript@7.0.2) + '@storybook/react-native-theming': 9.1.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@storybook/react-native-ui-common': 9.1.4(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4))(typescript@7.0.2) es-toolkit: 1.43.0 fuse.js: 7.1.0 memoizerific: 1.11.3 polished: 4.3.1 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-reanimated: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-svg: 15.12.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-svg: 15.12.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) store2: 2.14.4 - storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8) + storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4) transitivePeerDependencies: - react-dom - typescript - '@storybook/react-native@9.0.18(bf48b964e90ee5918ede11abb4d835b9)': + '@storybook/react-native@9.0.18(b3c380f041753120db9b4b839e8df819)': dependencies: '@storybook/global': 5.0.0 - '@storybook/react': 9.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8))(typescript@5.9.3) - '@storybook/react-native-theming': 9.1.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - '@storybook/react-native-ui': 9.1.4(9f3eadeca3a833faa2b576b89d8f29c6) - '@storybook/react-native-ui-common': 9.1.4(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8))(typescript@5.9.3) + '@storybook/react': 9.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4))(typescript@7.0.2) + '@storybook/react-native-theming': 9.1.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@storybook/react-native-ui': 9.1.4(ebecaf8f8fcf1df6c542e15e1e29e0ad) + '@storybook/react-native-ui-common': 9.1.4(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4))(typescript@7.0.2) commander: 8.3.0 dedent: 1.6.0(babel-plugin-macros@3.1.0) deepmerge: 4.3.1 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-url-polyfill: 2.0.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-url-polyfill: 2.0.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) setimmediate: 1.0.5 - storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8) + storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4) type-fest: 2.19.0 util: 0.12.5 ws: 8.18.3 optionalDependencies: - '@gorhom/bottom-sheet': 5.2.8(@types/react@19.1.17)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-reanimated: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@gorhom/bottom-sheet': 5.2.8(@types/react@19.1.17)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - babel-plugin-macros - bufferutil @@ -10601,25 +10679,25 @@ snapshots: - typescript - utf-8-validate - '@storybook/react@9.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8))(typescript@5.9.3)': + '@storybook/react@9.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4))(typescript@7.0.2)': dependencies: '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 9.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8)) + '@storybook/react-dom-shim': 9.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4)) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8) + storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4) optionalDependencies: - typescript: 5.9.3 + typescript: 7.0.2 - '@storybook/react@9.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8))(typescript@5.9.3)': + '@storybook/react@9.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4))(typescript@7.0.2)': dependencies: '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 9.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8)) + '@storybook/react-dom-shim': 9.1.17(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4)) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8) + storybook: 9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4) optionalDependencies: - typescript: 5.9.3 + typescript: 7.0.2 '@testing-library/dom@10.4.1': dependencies: @@ -10641,13 +10719,13 @@ snapshots: picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/react-native@13.3.3(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react-test-renderer@19.1.0(react@19.1.0))(react@19.1.0)': + '@testing-library/react-native@13.3.3(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react-test-renderer@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: jest-matcher-utils: 30.2.0 picocolors: 1.1.1 pretty-format: 30.2.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) react-test-renderer: 19.1.0(react@19.1.0) redent: 3.0.0 optionalDependencies: @@ -10755,7 +10833,8 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/json5@0.0.29': {} + '@types/json5@0.0.29': + optional: true '@types/jsrsasign@10.5.15': {} @@ -10808,178 +10887,65 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 8.57.1 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + '@typescript/typescript-aix-ppc64@7.0.2': + optional: true - '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.3 - eslint: 8.57.1 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + '@typescript/typescript-darwin-arm64@7.0.2': + optional: true - '@typescript-eslint/project-service@8.55.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.55.0(typescript@5.9.3) - '@typescript-eslint/types': 8.55.0 - debug: 4.4.3 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + '@typescript/typescript-darwin-x64@7.0.2': + optional: true - '@typescript-eslint/scope-manager@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 + '@typescript/typescript-freebsd-arm64@7.0.2': + optional: true - '@typescript-eslint/scope-manager@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript/typescript-freebsd-x64@7.0.2': + optional: true - '@typescript-eslint/scope-manager@8.55.0': - dependencies: - '@typescript-eslint/types': 8.55.0 - '@typescript-eslint/visitor-keys': 8.55.0 + '@typescript/typescript-linux-arm64@7.0.2': + optional: true - '@typescript-eslint/tsconfig-utils@8.55.0(typescript@5.9.3)': - dependencies: - typescript: 5.9.3 + '@typescript/typescript-linux-arm@7.0.2': + optional: true - '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.9.3) - debug: 4.4.3 - eslint: 8.57.1 - ts-api-utils: 1.4.3(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + '@typescript/typescript-linux-loong64@7.0.2': + optional: true - '@typescript-eslint/types@5.62.0': {} + '@typescript/typescript-linux-mips64el@7.0.2': + optional: true - '@typescript-eslint/types@7.18.0': {} + '@typescript/typescript-linux-ppc64@7.0.2': + optional: true - '@typescript-eslint/types@8.55.0': {} + '@typescript/typescript-linux-riscv64@7.0.2': + optional: true - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.4.3 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.2 - tsutils: 3.21.0(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + '@typescript/typescript-linux-s390x@7.0.2': + optional: true - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.3 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.4 - ts-api-utils: 1.4.3(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + '@typescript/typescript-linux-x64@7.0.2': + optional: true - '@typescript-eslint/typescript-estree@8.55.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/project-service': 8.55.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.55.0(typescript@5.9.3) - '@typescript-eslint/types': 8.55.0 - '@typescript-eslint/visitor-keys': 8.55.0 - debug: 4.4.3 - minimatch: 9.0.5 - semver: 7.7.4 - tinyglobby: 0.2.15 - ts-api-utils: 2.4.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + '@typescript/typescript-netbsd-arm64@7.0.2': + optional: true - '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) - '@types/json-schema': 7.0.15 - '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) - eslint: 8.57.1 - eslint-scope: 5.1.1 - semver: 7.5.2 - transitivePeerDependencies: - - supports-color - - typescript + '@typescript/typescript-netbsd-x64@7.0.2': + optional: true - '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) - eslint: 8.57.1 - transitivePeerDependencies: - - supports-color - - typescript + '@typescript/typescript-openbsd-arm64@7.0.2': + optional: true - '@typescript-eslint/utils@8.55.0(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.55.0 - '@typescript-eslint/types': 8.55.0 - '@typescript-eslint/typescript-estree': 8.55.0(typescript@5.9.3) - eslint: 8.57.1 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + '@typescript/typescript-openbsd-x64@7.0.2': + optional: true - '@typescript-eslint/visitor-keys@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 + '@typescript/typescript-sunos-x64@7.0.2': + optional: true - '@typescript-eslint/visitor-keys@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - eslint-visitor-keys: 3.4.3 + '@typescript/typescript-win32-arm64@7.0.2': + optional: true - '@typescript-eslint/visitor-keys@8.55.0': - dependencies: - '@typescript-eslint/types': 8.55.0 - eslint-visitor-keys: 4.2.1 + '@typescript/typescript-win32-x64@7.0.2': + optional: true '@ungap/structured-clone@1.3.0': {} @@ -11164,10 +11130,10 @@ snapshots: '@yarnpkg/lockfile@1.1.0': {} - '@zoontek/react-native-navigation-bar@1.1.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': + '@zoontek/react-native-navigation-bar@1.1.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)': dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) abab@2.0.6: {} @@ -11293,6 +11259,7 @@ snapshots: dependencies: call-bound: 1.0.4 is-array-buffer: 3.0.5 + optional: true array-includes@3.1.9: dependencies: @@ -11302,21 +11269,11 @@ snapshots: es-abstract: 1.24.1 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 - is-string: 1.1.1 - math-intrinsics: 1.1.0 - - array-timsort@1.0.3: {} - - array-union@2.1.0: {} - - array.prototype.findlast@1.2.5: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 + is-string: 1.1.1 + math-intrinsics: 1.1.0 + optional: true + + array-timsort@1.0.3: {} array.prototype.findlastindex@1.2.6: dependencies: @@ -11327,6 +11284,7 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 + optional: true array.prototype.flat@1.3.3: dependencies: @@ -11334,6 +11292,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.24.1 es-shim-unscopables: 1.1.0 + optional: true array.prototype.flatmap@1.3.3: dependencies: @@ -11341,14 +11300,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.24.1 es-shim-unscopables: 1.1.0 - - array.prototype.tosorted@1.1.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - es-shim-unscopables: 1.1.0 + optional: true arraybuffer.prototype.slice@1.0.4: dependencies: @@ -11359,6 +11311,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 + optional: true asap@2.0.6: {} @@ -11378,7 +11331,8 @@ snapshots: astral-regex@1.0.0: {} - async-function@1.0.0: {} + async-function@1.0.0: + optional: true async-limiter@1.0.1: {} @@ -11478,10 +11432,6 @@ snapshots: dependencies: '@babel/types': 7.29.0 - babel-plugin-react-compiler@19.1.0-rc.3: - dependencies: - '@babel/types': 7.29.0 - babel-plugin-react-native-web@0.21.2: {} babel-plugin-syntax-hermes-parser@0.29.1: @@ -11515,7 +11465,7 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.9) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.9) - babel-preset-expo@54.0.9(@babel/core@7.25.9)(@babel/runtime@7.25.9)(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-refresh@0.14.2): + babel-preset-expo@54.0.9(@babel/core@7.25.9)(@babel/runtime@7.25.9)(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-refresh@0.14.2): dependencies: '@babel/helper-module-imports': 7.28.6 '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.25.9) @@ -11542,7 +11492,7 @@ snapshots: resolve-from: 5.0.0 optionalDependencies: '@babel/runtime': 7.25.9 - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@babel/core' - supports-color @@ -11679,6 +11629,8 @@ snapshots: bytes@3.1.2: {} + cac@7.0.0: {} + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -11924,14 +11876,14 @@ snapshots: yaml: 1.10.2 optional: true - cosmiconfig@9.0.0(typescript@5.9.3): + cosmiconfig@9.0.0(typescript@7.0.2): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 js-yaml: 4.1.1 parse-json: 5.2.0 optionalDependencies: - typescript: 5.9.3 + typescript: 7.0.2 create-jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0): dependencies: @@ -11996,18 +11948,21 @@ snapshots: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 + optional: true data-view-byte-length@1.0.2: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 + optional: true data-view-byte-offset@1.0.1: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 + optional: true dayjs@1.11.18: {} @@ -12089,13 +12044,10 @@ snapshots: diff-sequences@29.6.3: {} - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - doctrine@2.1.0: dependencies: esutils: 2.0.3 + optional: true doctrine@3.0.0: dependencies: @@ -12249,30 +12201,12 @@ snapshots: typed-array-length: 1.0.7 unbox-primitive: 1.1.0 which-typed-array: 1.1.20 + optional: true es-define-property@1.0.1: {} es-errors@1.3.0: {} - es-iterator-helpers@1.2.2: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - es-set-tostringtag: 2.1.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - iterator.prototype: 1.1.5 - safe-array-concat: 1.1.3 - es-module-lexer@2.1.0: {} es-object-atoms@1.1.1: @@ -12289,12 +12223,14 @@ snapshots: es-shim-unscopables@1.1.0: dependencies: hasown: 2.0.2 + optional: true es-to-primitive@1.3.0: dependencies: is-callable: 1.2.7 is-date-object: 1.1.0 is-symbol: 1.1.1 + optional: true es-toolkit@1.43.0: {} @@ -12352,14 +12288,6 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-prettier@10.1.8(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - - eslint-config-prettier@8.10.2(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-import-context@0.1.9(unrs-resolver@1.11.1): dependencies: get-tsconfig: 4.13.0 @@ -12374,6 +12302,7 @@ snapshots: resolve: 1.22.11 transitivePeerDependencies: - supports-color + optional: true eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@8.57.1): dependencies: @@ -12386,35 +12315,22 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@8.57.1) + eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@4.4.4)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@8.57.1): + eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color + optional: true - eslint-plugin-eslint-comments@3.2.0(eslint@8.57.1): - dependencies: - escape-string-regexp: 1.0.5 - eslint: 8.57.1 - ignore: 5.3.2 - - eslint-plugin-ft-flow@2.0.3(@babel/eslint-parser@7.25.9(@babel/core@7.25.9)(eslint@8.57.1))(eslint@8.57.1): - dependencies: - '@babel/eslint-parser': 7.25.9(@babel/core@7.25.9)(eslint@8.57.1) - eslint: 8.57.1 - lodash: 4.17.21 - string-natural-compare: 3.0.1 - - eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@8.57.1): + eslint-plugin-import@2.32.0(eslint-import-resolver-typescript@4.4.4)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -12425,7 +12341,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@8.57.1) + eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -12436,96 +12352,19 @@ snapshots: semver: 6.3.1 string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - - eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0))(typescript@5.9.3): - dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.9.3) - eslint: 8.57.1 - optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - jest: 29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0) - transitivePeerDependencies: - - supports-color - - typescript - - eslint-plugin-jest@29.14.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0))(typescript@5.9.3): - dependencies: - '@typescript-eslint/utils': 8.55.0(eslint@8.57.1)(typescript@5.9.3) - eslint: 8.57.1 - optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - jest: 29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - eslint-plugin-prettier@5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@8.57.1))(eslint@8.57.1)(prettier@2.8.8): - dependencies: - eslint: 8.57.1 - prettier: 2.8.8 - prettier-linter-helpers: 1.0.1 - synckit: 0.11.12 - optionalDependencies: - '@types/eslint': 9.6.1 - eslint-config-prettier: 10.1.8(eslint@8.57.1) - - eslint-plugin-react-hooks@5.2.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - - eslint-plugin-react-hooks@7.0.1(eslint@8.57.1): - dependencies: - '@babel/core': 7.25.9 - '@babel/parser': 7.29.2 - eslint: 8.57.1 - hermes-parser: 0.25.1 - zod: 4.3.6 - zod-validation-error: 4.0.2(zod@4.3.6) - transitivePeerDependencies: - - supports-color + optional: true eslint-plugin-react-native-globals@0.1.2: {} - eslint-plugin-react-native@4.1.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-plugin-react-native-globals: 0.1.2 - eslint-plugin-react-native@5.0.0(eslint@8.57.1): dependencies: eslint: 8.57.1 eslint-plugin-react-native-globals: 0.1.2 - eslint-plugin-react@7.37.5(eslint@8.57.1): - dependencies: - array-includes: 3.1.9 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.3 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.2.2 - eslint: 8.57.1 - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.0 - minimatch: 3.1.2 - object.entries: 1.1.9 - object.fromentries: 2.0.8 - object.values: 1.2.1 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.12 - string.prototype.repeat: 1.0.0 - - eslint-rule-composer@0.3.0: {} - eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 @@ -12536,12 +12375,8 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-visitor-keys@2.1.0: {} - eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.1: {} - eslint@8.57.1: dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) @@ -12649,86 +12484,86 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 - expo-apple-authentication@8.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): + expo-apple-authentication@8.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): dependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - expo-application@7.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)): + expo-application@7.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - expo-asset@12.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + expo-asset@12.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: '@expo/image-utils': 0.8.8 - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - expo-constants: 18.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-constants: 18.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) transitivePeerDependencies: - supports-color - expo-av@16.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + expo-av@16.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - expo-camera@17.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + expo-camera@17.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - expo-constants@18.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): + expo-constants@18.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): dependencies: '@expo/config': 12.0.13 '@expo/env': 2.0.8 - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) transitivePeerDependencies: - supports-color - expo-device@8.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)): + expo-device@8.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) ua-parser-js: 1.0.2 - expo-document-picker@14.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)): + expo-document-picker@14.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - expo-file-system@19.0.21(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): + expo-file-system@19.0.21(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): dependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - expo-font@14.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + expo-font@14.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) fontfaceobserver: 2.3.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - expo-haptics@15.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)): + expo-haptics@15.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - expo-image@3.0.11(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + expo-image@3.0.11(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - expo-keep-awake@15.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react@19.1.0): + expo-keep-awake@15.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react: 19.1.0 - expo-local-authentication@17.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)): + expo-local-authentication@17.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) invariant: 2.2.4 expo-modules-autolinking@3.0.23: @@ -12739,80 +12574,80 @@ snapshots: require-from-string: 2.0.2 resolve-from: 5.0.0 - expo-modules-core@3.0.29(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + expo-modules-core@3.0.29(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - expo-notifications@0.32.15(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + expo-notifications@0.32.15(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: '@expo/image-utils': 0.8.8 '@ide/backoff': 1.0.0 abort-controller: 3.0.0 assert: 2.1.0 badgin: 1.2.3 - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - expo-application: 7.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) - expo-constants: 18.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-application: 7.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) + expo-constants: 18.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) transitivePeerDependencies: - supports-color expo-server@1.0.5: {} - expo-status-bar@3.0.9(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + expo-status-bar@3.0.9(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - expo-system-ui@6.0.9(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): + expo-system-ui@6.0.9(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): dependencies: '@react-native/normalize-colors': 0.81.5 debug: 4.4.3 - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) transitivePeerDependencies: - supports-color - expo-video-thumbnails@10.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)): + expo-video-thumbnails@10.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)): dependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - expo-web-browser@15.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): + expo-web-browser@15.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): dependencies: - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: '@babel/runtime': 7.25.9 - '@expo/cli': 54.0.20(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + '@expo/cli': 54.0.20(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) '@expo/config': 12.0.13 '@expo/config-plugins': 54.0.4 - '@expo/devtools': 0.1.8(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@expo/devtools': 0.1.8(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@expo/fingerprint': 0.15.4 '@expo/metro': 54.2.0 - '@expo/metro-config': 54.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) - '@expo/vector-icons': 15.0.3(expo-font@14.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@expo/metro-config': 54.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)) + '@expo/vector-icons': 15.0.3(expo-font@14.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) '@ungap/structured-clone': 1.3.0 - babel-preset-expo: 54.0.9(@babel/core@7.25.9)(@babel/runtime@7.25.9)(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-refresh@0.14.2) - expo-asset: 12.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - expo-constants: 18.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) - expo-file-system: 19.0.21(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) - expo-font: 14.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - expo-keep-awake: 15.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react@19.1.0) + babel-preset-expo: 54.0.9(@babel/core@7.25.9)(@babel/runtime@7.25.9)(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-refresh@0.14.2) + expo-asset: 12.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-constants: 18.0.12(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + expo-file-system: 19.0.21(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)) + expo-font: 14.0.10(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-keep-awake: 15.0.8(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react@19.1.0) expo-modules-autolinking: 3.0.23 - expo-modules-core: 3.0.29(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo-modules-core: 3.0.29(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) pretty-format: 29.7.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) react-refresh: 0.14.2 whatwg-url-without-unicode: 8.0.0-3 optionalDependencies: - react-native-webview: 13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-webview: 13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@babel/core' - bufferutil @@ -12825,8 +12660,6 @@ snapshots: fast-deep-equal@3.1.3: {} - fast-diff@1.3.0: {} - fast-fifo@1.3.2: {} fast-glob@3.3.3: @@ -12917,7 +12750,7 @@ snapshots: dependencies: micromatch: 4.0.8 - firebase@11.3.1(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))): + firebase@11.3.1(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))): dependencies: '@firebase/analytics': 0.10.11(@firebase/app@0.11.1) '@firebase/analytics-compat': 0.2.17(@firebase/app-compat@0.2.50)(@firebase/app@0.11.1) @@ -12926,8 +12759,8 @@ snapshots: '@firebase/app-check-compat': 0.3.18(@firebase/app-compat@0.2.50)(@firebase/app@0.11.1) '@firebase/app-compat': 0.2.50 '@firebase/app-types': 0.9.3 - '@firebase/auth': 1.9.0(@firebase/app@0.11.1)(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))) - '@firebase/auth-compat': 0.5.18(@firebase/app-compat@0.2.50)(@firebase/app-types@0.9.3)(@firebase/app@0.11.1)(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))) + '@firebase/auth': 1.9.0(@firebase/app@0.11.1)(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))) + '@firebase/auth-compat': 0.5.18(@firebase/app-compat@0.2.50)(@firebase/app-types@0.9.3)(@firebase/app@0.11.1)(@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))) '@firebase/data-connect': 0.3.0(@firebase/app@0.11.1) '@firebase/database': 1.0.12 '@firebase/database-compat': 2.0.3 @@ -13028,8 +12861,10 @@ snapshots: functions-have-names: 1.2.3 hasown: 2.0.2 is-callable: 1.2.7 + optional: true - functions-have-names@1.2.3: {} + functions-have-names@1.2.3: + optional: true fuse.js@7.1.0: {} @@ -13066,6 +12901,7 @@ snapshots: call-bound: 1.0.4 es-errors: 1.3.0 get-intrinsic: 1.3.0 + optional: true get-tsconfig@4.13.0: dependencies: @@ -13121,15 +12957,7 @@ snapshots: dependencies: define-properties: 1.2.1 gopd: 1.2.0 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 + optional: true gopd@1.2.0: {} @@ -13139,7 +12967,8 @@ snapshots: harmony-reflect@1.6.2: {} - has-bigints@1.1.0: {} + has-bigints@1.1.0: + optional: true has-flag@3.0.0: {} @@ -13152,6 +12981,7 @@ snapshots: has-proto@1.2.0: dependencies: dunder-proto: 1.0.1 + optional: true has-symbols@1.1.0: {} @@ -13183,18 +13013,12 @@ snapshots: he@1.2.0: {} - hermes-estree@0.25.1: {} - hermes-estree@0.28.1: {} hermes-estree@0.29.1: {} hermes-estree@0.32.0: {} - hermes-parser@0.25.1: - dependencies: - hermes-estree: 0.25.1 - hermes-parser@0.28.1: dependencies: hermes-estree: 0.28.1 @@ -13333,6 +13157,7 @@ snapshots: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.1.0 + optional: true invariant@2.2.4: dependencies: @@ -13348,6 +13173,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 get-intrinsic: 1.3.0 + optional: true is-arrayish@0.2.1: {} @@ -13360,15 +13186,18 @@ snapshots: get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 + optional: true is-bigint@1.1.0: dependencies: has-bigints: 1.1.0 + optional: true is-boolean-object@1.2.2: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 + optional: true is-bun-module@2.0.0: dependencies: @@ -13385,11 +13214,13 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 is-typed-array: 1.1.15 + optional: true is-date-object@1.1.0: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 + optional: true is-docker@2.2.1: {} @@ -13398,6 +13229,7 @@ snapshots: is-finalizationregistry@1.1.1: dependencies: call-bound: 1.0.4 + optional: true is-fullwidth-code-point@2.0.0: {} @@ -13419,19 +13251,22 @@ snapshots: is-interactive@1.0.0: {} - is-map@2.0.3: {} + is-map@2.0.3: + optional: true is-nan@1.3.2: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - is-negative-zero@2.0.3: {} + is-negative-zero@2.0.3: + optional: true is-number-object@1.1.1: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 + optional: true is-number@7.0.0: {} @@ -13448,11 +13283,13 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - is-set@2.0.3: {} + is-set@2.0.3: + optional: true is-shared-array-buffer@1.0.4: dependencies: call-bound: 1.0.4 + optional: true is-stream@2.0.1: {} @@ -13460,12 +13297,14 @@ snapshots: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 + optional: true is-symbol@1.1.1: dependencies: call-bound: 1.0.4 has-symbols: 1.1.0 safe-regex-test: 1.1.0 + optional: true is-typed-array@1.1.15: dependencies: @@ -13473,16 +13312,19 @@ snapshots: is-unicode-supported@0.1.0: {} - is-weakmap@2.0.2: {} + is-weakmap@2.0.2: + optional: true is-weakref@1.1.1: dependencies: call-bound: 1.0.4 + optional: true is-weakset@2.0.4: dependencies: call-bound: 1.0.4 get-intrinsic: 1.3.0 + optional: true is-wsl@1.1.0: {} @@ -13537,15 +13379,6 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - iterator.prototype@1.1.5: - dependencies: - define-data-property: 1.1.4 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - has-symbols: 1.1.0 - set-function-name: 2.0.2 - jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -13683,21 +13516,21 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 - jest-expo@54.0.16(@babel/core@7.25.9)(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + jest-expo@54.0.16(@babel/core@7.25.9)(expo@54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: '@expo/config': 12.0.13 '@expo/json-file': 10.0.8 '@jest/create-cache-key-function': 29.7.0 '@jest/globals': 29.7.0 babel-jest: 29.7.0(@babel/core@7.25.9) - expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + expo: 54.0.30(@babel/core@7.25.9)(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) jest-environment-jsdom: 29.7.0 jest-snapshot: 29.7.0 jest-watch-select-projects: 2.0.0 jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@25.0.3)(babel-plugin-macros@3.1.0)) json5: 2.2.3 lodash: 4.17.21 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) react-test-renderer: 19.1.0(react@19.1.0) server-only: 0.0.1 stacktrace-js: 2.0.2 @@ -14024,6 +13857,7 @@ snapshots: json5@1.0.2: dependencies: minimist: 1.2.8 + optional: true json5@2.2.3: {} @@ -14041,11 +13875,6 @@ snapshots: jsrsasign@11.0.0: {} - jsx-ast-utils@3.3.0: - dependencies: - array-includes: 3.1.9 - object.assign: 4.1.7 - keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -14586,25 +14415,20 @@ snapshots: has-symbols: 1.1.0 object-keys: 1.1.1 - object.entries@1.1.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - object.fromentries@2.0.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.24.1 es-object-atoms: 1.1.1 + optional: true object.groupby@1.0.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.24.1 + optional: true object.values@1.2.1: dependencies: @@ -14612,6 +14436,7 @@ snapshots: call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 + optional: true on-finished@2.3.0: dependencies: @@ -14685,6 +14510,53 @@ snapshots: get-intrinsic: 1.3.0 object-keys: 1.1.1 safe-push-apply: 1.0.0 + optional: true + + oxfmt@0.60.0: + dependencies: + tinypool: 2.1.0 + optionalDependencies: + '@oxfmt/binding-android-arm-eabi': 0.60.0 + '@oxfmt/binding-android-arm64': 0.60.0 + '@oxfmt/binding-darwin-arm64': 0.60.0 + '@oxfmt/binding-darwin-x64': 0.60.0 + '@oxfmt/binding-freebsd-x64': 0.60.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.60.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.60.0 + '@oxfmt/binding-linux-arm64-gnu': 0.60.0 + '@oxfmt/binding-linux-arm64-musl': 0.60.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.60.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.60.0 + '@oxfmt/binding-linux-riscv64-musl': 0.60.0 + '@oxfmt/binding-linux-s390x-gnu': 0.60.0 + '@oxfmt/binding-linux-x64-gnu': 0.60.0 + '@oxfmt/binding-linux-x64-musl': 0.60.0 + '@oxfmt/binding-openharmony-arm64': 0.60.0 + '@oxfmt/binding-win32-arm64-msvc': 0.60.0 + '@oxfmt/binding-win32-ia32-msvc': 0.60.0 + '@oxfmt/binding-win32-x64-msvc': 0.60.0 + + oxlint@1.75.0: + optionalDependencies: + '@oxlint/binding-android-arm-eabi': 1.75.0 + '@oxlint/binding-android-arm64': 1.75.0 + '@oxlint/binding-darwin-arm64': 1.75.0 + '@oxlint/binding-darwin-x64': 1.75.0 + '@oxlint/binding-freebsd-x64': 1.75.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.75.0 + '@oxlint/binding-linux-arm-musleabihf': 1.75.0 + '@oxlint/binding-linux-arm64-gnu': 1.75.0 + '@oxlint/binding-linux-arm64-musl': 1.75.0 + '@oxlint/binding-linux-ppc64-gnu': 1.75.0 + '@oxlint/binding-linux-riscv64-gnu': 1.75.0 + '@oxlint/binding-linux-riscv64-musl': 1.75.0 + '@oxlint/binding-linux-s390x-gnu': 1.75.0 + '@oxlint/binding-linux-x64-gnu': 1.75.0 + '@oxlint/binding-linux-x64-musl': 1.75.0 + '@oxlint/binding-openharmony-arm64': 1.75.0 + '@oxlint/binding-win32-arm64-msvc': 1.75.0 + '@oxlint/binding-win32-ia32-msvc': 1.75.0 + '@oxlint/binding-win32-x64-msvc': 1.75.0 p-defer@1.0.0: {} @@ -14780,7 +14652,8 @@ snapshots: lru-cache: 11.2.4 minipass: 7.1.2 - path-type@4.0.0: {} + path-type@4.0.0: + optional: true pathval@2.0.1: {} @@ -14792,6 +14665,8 @@ snapshots: picomatch@4.0.3: {} + picomatch@4.0.5: {} + pirates@4.0.7: {} pkg-dir@4.2.0: @@ -14839,12 +14714,6 @@ snapshots: prelude-ls@1.2.1: {} - prettier-linter-helpers@1.0.1: - dependencies: - fast-diff: 1.3.0 - - prettier@2.8.8: {} - prettier@3.7.4: {} pretty-bytes@5.6.0: {} @@ -14995,20 +14864,20 @@ snapshots: react-is@19.1.0: {} - react-native-a11y-order@0.4.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-a11y-order@0.4.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) react-native-animatable@1.3.3: dependencies: prop-types: 15.8.1 - react-native-background-timer@2.4.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): + react-native-background-timer@2.4.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): dependencies: - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-bootsplash@6.3.11(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-bootsplash@6.3.11(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: '@expo/config-plugins': 10.1.2 '@react-native-community/cli-config-android': 18.0.1 @@ -15021,8 +14890,8 @@ snapshots: picocolors: 1.1.1 prettier: 3.7.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) sharp: 0.32.6 ts-dedent: 2.2.0 xml-formatter: 3.6.7 @@ -15032,136 +14901,136 @@ snapshots: - react-native-b4a - supports-color - react-native-callkeep@4.3.16(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): + react-native-callkeep@4.3.16(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): dependencies: - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-console-time-polyfill@1.2.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-console-time-polyfill@1.2.3(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-device-info@11.1.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): + react-native-device-info@11.1.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): dependencies: - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) react-native-dotenv@3.4.8(@babel/runtime@7.25.9): dependencies: '@babel/runtime': 7.25.9 dotenv: 16.6.1 - react-native-drawer-layout@4.2.5(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-drawer-layout@4.2.5(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: color: 4.2.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-reanimated: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) use-latest-callback: 0.2.6(react@19.1.0) react-native-easy-grid@0.2.2: dependencies: lodash: 4.17.21 - react-native-easy-toast@2.3.0(prop-types@15.8.1)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): + react-native-easy-toast@2.3.0(prop-types@15.8.1)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): dependencies: deprecated-react-native-prop-types: 2.3.0 prop-types: 15.8.1 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-external-keyboard@0.9.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-external-keyboard@0.9.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-file-viewer@2.1.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): + react-native-file-viewer@2.1.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): dependencies: - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: '@egjs/hammerjs': 2.0.17 hoist-non-react-statics: 3.3.2 invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-image-crop-picker@https://codeload.github.com/RocketChat/react-native-image-crop-picker/tar.gz/f028aac24373d05166747ef6d9e59bb037fe3224(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-image-crop-picker@https://codeload.github.com/RocketChat/react-native-image-crop-picker/tar.gz/47092e8c90550a54d45fe307f7cb2a24c9535ed5(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-incall-manager@4.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): + react-native-incall-manager@4.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): dependencies: - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-is-edge-to-edge@1.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-is-edge-to-edge@1.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-katex@https://codeload.github.com/RocketChat/react-native-katex/tar.gz/37e579804fe238732d8a4b06dec073610ab062b1(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-katex@https://codeload.github.com/RocketChat/react-native-katex/tar.gz/37e579804fe238732d8a4b06dec073610ab062b1(react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-webview: 13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-webview: 13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-keyboard-controller@1.18.5(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-keyboard-controller@1.18.5(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-reanimated: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-linear-gradient@2.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-linear-gradient@2.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-localize@2.1.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): + react-native-localize@2.1.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): dependencies: - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-math-view@3.9.5(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): + react-native-math-view@3.9.5(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): dependencies: hast-util-from-selector: 2.0.1 lodash: 4.17.21 mathjax-full: 3.2.2 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-svg: 15.12.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-svg: 15.12.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) transformation-matrix: 2.16.1 react-native-mime-types@2.3.0: dependencies: mime-db: 1.37.0 - react-native-mmkv@4.1.2(react-native-nitro-modules@0.33.9(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-mmkv@4.1.2(react-native-nitro-modules@0.33.9(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-nitro-modules: 0.33.9(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-nitro-modules: 0.33.9(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-modal@13.0.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-modal@13.0.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: prop-types: 15.8.1 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) react-native-animatable: 1.3.3 - react-native-nitro-modules@0.33.9(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-nitro-modules@0.33.9(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-notifier@1.6.1(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-notifier@1.6.1(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-picker-select@9.0.1(@react-native-picker/picker@2.11.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)): + react-native-picker-select@9.0.1(@react-native-picker/picker@2.11.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)): dependencies: - '@react-native-picker/picker': 2.11.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-native-picker/picker': 2.11.4(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) lodash.isequal: 4.5.0 react-native-popover-view@5.1.7: @@ -15169,69 +15038,69 @@ snapshots: deprecated-react-native-prop-types: 2.3.0 prop-types: 15.8.1 - react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: '@babel/core': 7.25.9 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-worklets: 0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-worklets: 0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) semver: 7.7.2 - react-native-restart@0.0.22(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-restart@0.0.22(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-screens@4.17.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-screens@4.17.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 react-freeze: 1.0.4(react@19.1.0) - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) warn-once: 0.1.1 - react-native-skeleton-placeholder@5.2.4(@react-native-masked-view/masked-view@0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-linear-gradient@2.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-skeleton-placeholder@5.2.4(@react-native-masked-view/masked-view@0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-linear-gradient@2.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: - '@react-native-masked-view/masked-view': 0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-native-masked-view/masked-view': 0.3.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-linear-gradient: 2.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-linear-gradient: 2.6.2(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: css-select: 5.2.2 css-tree: 1.1.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) warn-once: 0.1.1 - react-native-url-polyfill@2.0.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): + react-native-url-polyfill@2.0.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): dependencies: - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) whatwg-url-without-unicode: 8.0.0-3 - react-native-webrtc@124.0.7(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): + react-native-webrtc@124.0.7(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0)): dependencies: base64-js: 1.5.1 debug: 4.3.4 event-target-shim: 6.0.2 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) transitivePeerDependencies: - supports-color - react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-webview@13.16.1(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: escape-string-regexp: 4.0.0 invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: '@babel/core': 7.25.9 '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.25.9) @@ -15245,21 +15114,21 @@ snapshots: '@babel/preset-typescript': 7.28.5(@babel/core@7.25.9) convert-source-map: 2.0.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) semver: 7.7.2 transitivePeerDependencies: - supports-color - react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0): + react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native/assets-registry': 0.81.5 '@react-native/codegen': 0.81.5(@babel/core@7.25.9) - '@react-native/community-cli-plugin': 0.81.5(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9)) + '@react-native/community-cli-plugin': 0.81.5(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9)) '@react-native/gradle-plugin': 0.81.5 '@react-native/js-polyfills': 0.81.5 '@react-native/normalize-colors': 0.81.5 - '@react-native/virtualized-lists': 0.81.5(@types/react@19.1.17)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + '@react-native/virtualized-lists': 0.81.5(@types/react@19.1.17)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -15297,7 +15166,7 @@ snapshots: - supports-color - utf-8-validate - react-redux@8.0.5(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(redux@4.2.0): + react-redux@8.0.5(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)(redux@4.2.0): dependencies: '@babel/runtime': 7.25.9 '@types/hoist-non-react-statics': 3.3.7(@types/react@19.1.17) @@ -15309,7 +15178,7 @@ snapshots: optionalDependencies: '@types/react': 19.1.17 react-dom: 19.1.0(react@19.1.0) - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) redux: 4.2.0 react-refresh@0.14.2: {} @@ -15341,12 +15210,12 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 - reanimated-tab-view@0.3.0(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): + reanimated-tab-view@0.3.0(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) - react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) - react-native-reanimated: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 4.1.3(@babel/core@7.25.9)(react-native-worklets@0.6.1(@babel/core@7.25.9)(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.25.9)(@react-native-community/cli@20.0.0(typescript@7.0.2))(@react-native/metro-config@0.81.5(@babel/core@7.25.9))(@types/react@19.1.17)(react@19.1.0))(react@19.1.0) recast@0.23.11: dependencies: @@ -15386,6 +15255,7 @@ snapshots: get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 + optional: true regenerate-unicode-properties@10.2.2: dependencies: @@ -15405,6 +15275,7 @@ snapshots: get-proto: 1.0.1 gopd: 1.2.0 set-function-name: 2.0.2 + optional: true regexpu-core@6.4.0: dependencies: @@ -15467,12 +15338,6 @@ snapshots: dependencies: path-parse: 1.0.7 - resolve@2.0.0-next.5: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@2.0.0: dependencies: onetime: 2.0.1 @@ -15508,6 +15373,7 @@ snapshots: get-intrinsic: 1.3.0 has-symbols: 1.1.0 isarray: 2.0.5 + optional: true safe-buffer@5.2.1: {} @@ -15515,6 +15381,7 @@ snapshots: dependencies: es-errors: 1.3.0 isarray: 2.0.5 + optional: true safe-regex-test@1.1.0: dependencies: @@ -15599,12 +15466,14 @@ snapshots: es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + optional: true set-proto@1.0.0: dependencies: dunder-proto: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 + optional: true setimmediate@1.0.5: {} @@ -15701,6 +15570,12 @@ snapshots: slugify@1.6.6: {} + sniffler@0.4.0: + dependencies: + cac: 7.0.0 + fast-glob: 3.3.3 + picomatch: 4.0.5 + source-map-js@1.2.1: {} source-map-support@0.5.13: @@ -15784,10 +15659,11 @@ snapshots: dependencies: es-errors: 1.3.0 internal-slot: 1.1.0 + optional: true store2@2.14.4: {} - storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@2.8.8): + storybook@9.0.18(@testing-library/dom@10.4.1)(prettier@3.7.4): dependencies: '@storybook/global': 5.0.0 '@testing-library/jest-dom': 6.9.1 @@ -15801,7 +15677,7 @@ snapshots: semver: 7.7.4 ws: 8.18.3 optionalDependencies: - prettier: 2.8.8 + prettier: 3.7.4 transitivePeerDependencies: - '@testing-library/dom' - bufferutil @@ -15831,8 +15707,6 @@ snapshots: char-regex: 2.0.2 strip-ansi: 7.1.2 - string-natural-compare@3.0.1: {} - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -15845,27 +15719,6 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.2 - string.prototype.matchall@4.0.12: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - regexp.prototype.flags: 1.5.4 - set-function-name: 2.0.2 - side-channel: 1.1.0 - - string.prototype.repeat@1.0.0: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.24.1 - string.prototype.trim@1.2.10: dependencies: call-bind: 1.0.8 @@ -15875,6 +15728,7 @@ snapshots: es-abstract: 1.24.1 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 + optional: true string.prototype.trimend@1.0.9: dependencies: @@ -15882,12 +15736,14 @@ snapshots: call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 + optional: true string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-object-atoms: 1.1.1 + optional: true string_decoder@1.3.0: dependencies: @@ -15905,7 +15761,8 @@ snapshots: dependencies: ansi-regex: 6.2.2 - strip-bom@3.0.0: {} + strip-bom@3.0.0: + optional: true strip-bom@4.0.0: {} @@ -15956,10 +15813,6 @@ snapshots: symbol-tree@3.2.4: {} - synckit@0.11.12: - dependencies: - '@pkgr/core': 0.2.9 - table-layout@1.0.2: dependencies: array-back: 4.0.2 @@ -16072,15 +15925,17 @@ snapshots: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 + tinypool@2.1.0: {} + tinyrainbow@2.0.0: {} tinyspy@4.0.4: {} - tldts-core@5.7.112: {} + tldts-core@6.1.86: {} - tldts@5.7.112: + tldts@6.1.86: dependencies: - tldts-core: 5.7.112 + tldts-core: 6.1.86 tmp@0.2.5: {} @@ -16111,14 +15966,6 @@ snapshots: dependencies: yargs: 17.7.2 - ts-api-utils@1.4.3(typescript@5.9.3): - dependencies: - typescript: 5.9.3 - - ts-api-utils@2.4.0(typescript@5.9.3): - dependencies: - typescript: 5.9.3 - ts-dedent@2.2.0: {} ts-interface-checker@0.1.13: {} @@ -16129,16 +15976,10 @@ snapshots: json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 - - tslib@1.14.1: {} + optional: true tslib@2.8.1: {} - tsutils@3.21.0(typescript@5.9.3): - dependencies: - tslib: 1.14.1 - typescript: 5.9.3 - tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 @@ -16171,6 +16012,7 @@ snapshots: call-bound: 1.0.4 es-errors: 1.3.0 is-typed-array: 1.1.15 + optional: true typed-array-byte-length@1.0.3: dependencies: @@ -16179,6 +16021,7 @@ snapshots: gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 + optional: true typed-array-byte-offset@1.0.4: dependencies: @@ -16189,6 +16032,7 @@ snapshots: has-proto: 1.2.0 is-typed-array: 1.1.15 reflect.getprototypeof: 1.0.10 + optional: true typed-array-length@1.0.7: dependencies: @@ -16198,6 +16042,7 @@ snapshots: is-typed-array: 1.1.15 possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 + optional: true typed-redux-saga@1.5.0(redux-saga@1.1.3): dependencies: @@ -16220,9 +16065,30 @@ snapshots: dependencies: typescript-compare: 0.0.2 - typescript@5.9.3: {} - - typia@9.7.2(@types/node@25.0.3)(typescript@5.9.3): + typescript@7.0.2: + optionalDependencies: + '@typescript/typescript-aix-ppc64': 7.0.2 + '@typescript/typescript-darwin-arm64': 7.0.2 + '@typescript/typescript-darwin-x64': 7.0.2 + '@typescript/typescript-freebsd-arm64': 7.0.2 + '@typescript/typescript-freebsd-x64': 7.0.2 + '@typescript/typescript-linux-arm': 7.0.2 + '@typescript/typescript-linux-arm64': 7.0.2 + '@typescript/typescript-linux-loong64': 7.0.2 + '@typescript/typescript-linux-mips64el': 7.0.2 + '@typescript/typescript-linux-ppc64': 7.0.2 + '@typescript/typescript-linux-riscv64': 7.0.2 + '@typescript/typescript-linux-s390x': 7.0.2 + '@typescript/typescript-linux-x64': 7.0.2 + '@typescript/typescript-netbsd-arm64': 7.0.2 + '@typescript/typescript-netbsd-x64': 7.0.2 + '@typescript/typescript-openbsd-arm64': 7.0.2 + '@typescript/typescript-openbsd-x64': 7.0.2 + '@typescript/typescript-sunos-x64': 7.0.2 + '@typescript/typescript-win32-arm64': 7.0.2 + '@typescript/typescript-win32-x64': 7.0.2 + + typia@9.7.2(@types/node@25.0.3)(typescript@7.0.2): dependencies: '@samchon/openapi': 4.7.2 '@standard-schema/spec': 1.1.0 @@ -16231,7 +16097,7 @@ snapshots: inquirer: 8.2.7(@types/node@25.0.3) package-manager-detector: 0.2.11 randexp: 0.5.3 - typescript: 5.9.3 + typescript: 7.0.2 transitivePeerDependencies: - '@types/node' @@ -16247,6 +16113,7 @@ snapshots: has-bigints: 1.1.0 has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 + optional: true undici-types@7.16.0: {} @@ -16463,6 +16330,7 @@ snapshots: is-number-object: 1.1.1 is-string: 1.1.1 is-symbol: 1.1.1 + optional: true which-builtin-type@1.2.1: dependencies: @@ -16479,6 +16347,7 @@ snapshots: which-boxed-primitive: 1.1.1 which-collection: 1.0.2 which-typed-array: 1.1.20 + optional: true which-collection@1.0.2: dependencies: @@ -16486,6 +16355,7 @@ snapshots: is-set: 2.0.3 is-weakmap: 2.0.2 is-weakset: 2.0.4 + optional: true which-module@2.0.1: {} @@ -16637,12 +16507,6 @@ snapshots: property-expr: 2.0.6 toposort: 2.0.2 - zod-validation-error@4.0.2(zod@4.3.6): - dependencies: - zod: 4.3.6 - - zod@4.3.6: {} - zustand@5.0.12(@types/react@19.1.17)(react@19.1.0)(use-sync-external-store@1.6.0(react@19.1.0)): optionalDependencies: '@types/react': 19.1.17 diff --git a/tsconfig.json b/tsconfig.json index 8617c52e7af..136cf41a3e1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,73 +1,20 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - - /* Basic Options */ - // "incremental": true, /* Enable incremental compilation */ - "target": "esnext" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', 'ES2021', or 'ESNEXT'. */, - "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, - // "lib": [], /* Specify library files to be included in the compilation. */ - "allowJs": true /* Allow javascript files to be compiled. */, - // "checkJs": true, /* Report errors in .js files. */ - "jsx": "react-native" /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */, - // "declaration": true, /* Generates corresponding '.d.ts' file. */ - // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ - // "sourceMap": true, /* Generates corresponding '.map' file. */ - // "outFile": "./", /* Concatenate and emit output to single file. */ - // "outDir": "./", /* Redirect output structure to the directory. */ - // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ - // "composite": true, /* Enable project compilation */ - // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ - // "removeComments": true, /* Do not emit comments to output. */ - "noEmit": true /* Do not emit outputs. */, - // "importHelpers": true, /* Import emit helpers from 'tslib'. */ - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - - /* Strict Type-Checking Options */ - "strict": true /* Enable all strict type-checking options. */, - // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* Enable strict null checks. */ - // "strictFunctionTypes": true, /* Enable strict checking of function types. */ - // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ - // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ - // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ - - /* Additional Checks */ - "noUnusedLocals": true /* Report errors on unused locals. */, - "noUnusedParameters": true /* Report errors on unused parameters. */, - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an 'override' modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */ - - /* Module Resolution Options */ - "moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */, - "baseUrl": "app" /* Base directory to resolve non-absolute module names. */, - // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - // "types": [], /* Type declaration files to be included in compilation. */ - "allowSyntheticDefaultImports": true /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */, - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - - /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ - // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - - /* Experimental Options */ - "experimentalDecorators": true /* Enables experimental support for ES7 decorators. */, - // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - - /* Advanced Options */ - "skipLibCheck": true /* Skip type checking of declaration files. */, - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */, + "target": "esnext", + "module": "esnext", + "moduleResolution": "bundler", + "jsx": "react-native", + "allowJs": true, + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "types": ["jest", "node", "react"], + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, "resolveJsonModule": true }, "exclude": ["node_modules", "__mocks__", "**/.worktrees/**"]