From 922d971f49787f5827de960158708e78cb153a9d Mon Sep 17 00:00:00 2001 From: Kudo Chien Date: Wed, 25 Feb 2026 18:04:09 +0800 Subject: [PATCH 01/14] [docs] update expo-ui jetpack-compose docs (#43401) # Why update docs for jetpack-compose for sdk 55 # How try to align the doc style as swift-ui # Test Plan preview from upstack pr # Checklist - [x] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [x] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [x] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) --- .../sdk/ui/jetpack-compose/alertdialog.mdx | 58 +++ .../ui/jetpack-compose/basicalertdialog.mdx | 55 +++ .../sdk/ui/jetpack-compose/bottomsheet.mdx | 87 ++-- .../sdk/ui/jetpack-compose/box.mdx | 43 ++ .../sdk/ui/jetpack-compose/button.mdx | 76 +-- .../sdk/ui/jetpack-compose/card.mdx | 70 +++ .../sdk/ui/jetpack-compose/carousel.mdx | 131 +++++ .../sdk/ui/jetpack-compose/chip.mdx | 125 +++-- .../ui/jetpack-compose/circularprogress.mdx | 67 ++- .../sdk/ui/jetpack-compose/column.mdx | 48 ++ .../sdk/ui/jetpack-compose/contextmenu.mdx | 76 +-- .../sdk/ui/jetpack-compose/datetimepicker.mdx | 136 +++--- .../sdk/ui/jetpack-compose/divider.mdx | 67 +++ .../ui/jetpack-compose/dockedsearchbar.mdx | 69 +++ .../sdk/ui/jetpack-compose/filterchip.mdx | 87 ++++ .../sdk/ui/jetpack-compose/flowrow.mdx | 50 ++ .../horizontalfloatingtoolbar.mdx | 55 +++ .../sdk/ui/jetpack-compose/host.mdx | 58 +++ .../sdk/ui/jetpack-compose/icon.mdx | 78 +++ .../sdk/ui/jetpack-compose/iconbutton.mdx | 84 ++++ .../sdk/ui/jetpack-compose/index.mdx | 16 + .../sdk/ui/jetpack-compose/lazycolumn.mdx | 86 ++++ .../sdk/ui/jetpack-compose/linearprogress.mdx | 67 ++- .../sdk/ui/jetpack-compose/listitem.mdx | 83 ++++ .../sdk/ui/jetpack-compose/modifiers.mdx | 460 ++++++++++++++++++ .../sdk/ui/jetpack-compose/picker.mdx | 141 +++--- .../ui/jetpack-compose/pulltorefreshbox.mdx | 58 +++ .../sdk/ui/jetpack-compose/radiobutton.mdx | 87 ++++ .../sdk/ui/jetpack-compose/row.mdx | 48 ++ .../sdk/ui/jetpack-compose/searchbar.mdx | 64 +++ .../sdk/ui/jetpack-compose/shape.mdx | 114 +++++ .../sdk/ui/jetpack-compose/slider.mdx | 83 ++-- .../sdk/ui/jetpack-compose/spacer.mdx | 68 +++ .../sdk/ui/jetpack-compose/surface.mdx | 90 ++++ .../sdk/ui/jetpack-compose/switch.mdx | 143 +++--- .../sdk/ui/jetpack-compose/text.mdx | 107 ++++ .../sdk/ui/jetpack-compose/textbutton.mdx | 81 +++ .../sdk/ui/jetpack-compose/textinput.mdx | 73 ++- .../sdk/ui/jetpack-compose/togglebutton.mdx | 131 +++++ .../expo-ui/jetpack-compose/alertdialog.json | 1 + .../jetpack-compose/basicalertdialog.json | 1 + .../expo-ui/jetpack-compose/bottomsheet.json | 2 +- .../expo-ui/jetpack-compose/box.json | 1 + .../expo-ui/jetpack-compose/button.json | 2 +- .../expo-ui/jetpack-compose/card.json | 1 + .../expo-ui/jetpack-compose/carousel.json | 1 + .../expo-ui/jetpack-compose/column.json | 1 + .../expo-ui/jetpack-compose/contextmenu.json | 2 +- .../jetpack-compose/datetimepicker.json | 2 +- .../expo-ui/jetpack-compose/divider.json | 1 + .../jetpack-compose/dockedsearchbar.json | 1 + .../expo-ui/jetpack-compose/filterchip.json | 1 + .../expo-ui/jetpack-compose/flowrow.json | 1 + .../horizontalfloatingtoolbar.json | 1 + .../expo-ui/jetpack-compose/host.json | 2 +- .../expo-ui/jetpack-compose/icon.json | 1 + .../expo-ui/jetpack-compose/iconbutton.json | 1 + .../expo-ui/jetpack-compose/lazycolumn.json | 1 + .../expo-ui/jetpack-compose/listitem.json | 1 + .../expo-ui/jetpack-compose/modifiers.json | 1 + .../expo-ui/jetpack-compose/picker.json | 2 +- .../jetpack-compose/pulltorefreshbox.json | 1 + .../expo-ui/jetpack-compose/radiobutton.json | 1 + .../expo-ui/jetpack-compose/rnhostview.json | 1 + .../expo-ui/jetpack-compose/row.json | 1 + .../expo-ui/jetpack-compose/searchbar.json | 1 + .../expo-ui/jetpack-compose/shape.json | 1 + .../expo-ui/jetpack-compose/slider.json | 2 +- .../expo-ui/jetpack-compose/spacer.json | 1 + .../expo-ui/jetpack-compose/surface.json | 1 + .../expo-ui/jetpack-compose/switch.json | 2 +- .../expo-ui/jetpack-compose/text.json | 1 + .../expo-ui/jetpack-compose/textbutton.json | 1 + .../expo-ui/jetpack-compose/togglebutton.json | 1 + .../expo-ui/swift-ui/circularprogress.json | 1 + .../expo-ui/swift-ui/linearprogress.json | 1 + .../build/jetpack-compose/Box/index.d.ts | 14 + .../build/jetpack-compose/Box/index.d.ts.map | 1 + .../build/jetpack-compose/Column/index.d.ts | 22 + .../jetpack-compose/Column/index.d.ts.map | 1 + .../build/jetpack-compose/FlowRow/index.d.ts | 14 + .../jetpack-compose/FlowRow/index.d.ts.map | 1 + .../jetpack-compose/LazyColumn/index.d.ts | 3 - .../jetpack-compose/LazyColumn/index.d.ts.map | 2 +- .../build/jetpack-compose/Row/index.d.ts | 22 + .../build/jetpack-compose/Row/index.d.ts.map | 1 + .../expo-ui/build/jetpack-compose/index.d.ts | 5 +- .../build/jetpack-compose/index.d.ts.map | 2 +- .../build/jetpack-compose/layout-types.d.ts | 26 + .../jetpack-compose/layout-types.d.ts.map | 1 + .../expo-ui/build/jetpack-compose/layout.d.ts | 41 +- .../build/jetpack-compose/layout.d.ts.map | 2 +- .../expo-ui/src/jetpack-compose/Box/index.tsx | 26 + .../src/jetpack-compose/Column/index.tsx | 39 ++ .../src/jetpack-compose/FlowRow/index.tsx | 29 ++ .../src/jetpack-compose/LazyColumn/index.tsx | 3 - .../expo-ui/src/jetpack-compose/Row/index.tsx | 36 ++ packages/expo-ui/src/jetpack-compose/index.ts | 5 +- .../src/jetpack-compose/layout-types.ts | 48 ++ .../expo-ui/src/jetpack-compose/layout.tsx | 111 +---- tools/src/commands/GenerateDocsAPIData.ts | 104 ++-- 101 files changed, 3490 insertions(+), 634 deletions(-) create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/alertdialog.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/basicalertdialog.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/box.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/card.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/carousel.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/column.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/divider.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/dockedsearchbar.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/filterchip.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/flowrow.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/horizontalfloatingtoolbar.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/host.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/icon.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/iconbutton.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/lazycolumn.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/listitem.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/modifiers.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/pulltorefreshbox.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/radiobutton.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/row.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/searchbar.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/shape.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/spacer.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/surface.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/text.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/textbutton.mdx create mode 100644 docs/pages/versions/unversioned/sdk/ui/jetpack-compose/togglebutton.mdx create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/alertdialog.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/basicalertdialog.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/box.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/card.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/carousel.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/column.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/divider.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/dockedsearchbar.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/filterchip.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/flowrow.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/horizontalfloatingtoolbar.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/icon.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/iconbutton.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/lazycolumn.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/listitem.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/modifiers.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/pulltorefreshbox.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/radiobutton.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/rnhostview.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/row.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/searchbar.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/shape.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/spacer.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/surface.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/text.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/textbutton.json create mode 100644 docs/public/static/data/unversioned/expo-ui/jetpack-compose/togglebutton.json create mode 100644 docs/public/static/data/unversioned/expo-ui/swift-ui/circularprogress.json create mode 100644 docs/public/static/data/unversioned/expo-ui/swift-ui/linearprogress.json create mode 100644 packages/expo-ui/build/jetpack-compose/Box/index.d.ts create mode 100644 packages/expo-ui/build/jetpack-compose/Box/index.d.ts.map create mode 100644 packages/expo-ui/build/jetpack-compose/Column/index.d.ts create mode 100644 packages/expo-ui/build/jetpack-compose/Column/index.d.ts.map create mode 100644 packages/expo-ui/build/jetpack-compose/FlowRow/index.d.ts create mode 100644 packages/expo-ui/build/jetpack-compose/FlowRow/index.d.ts.map create mode 100644 packages/expo-ui/build/jetpack-compose/Row/index.d.ts create mode 100644 packages/expo-ui/build/jetpack-compose/Row/index.d.ts.map create mode 100644 packages/expo-ui/build/jetpack-compose/layout-types.d.ts create mode 100644 packages/expo-ui/build/jetpack-compose/layout-types.d.ts.map create mode 100644 packages/expo-ui/src/jetpack-compose/Box/index.tsx create mode 100644 packages/expo-ui/src/jetpack-compose/Column/index.tsx create mode 100644 packages/expo-ui/src/jetpack-compose/FlowRow/index.tsx create mode 100644 packages/expo-ui/src/jetpack-compose/Row/index.tsx create mode 100644 packages/expo-ui/src/jetpack-compose/layout-types.ts diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/alertdialog.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/alertdialog.mdx new file mode 100644 index 00000000000000..24377eaa735170 --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/alertdialog.mdx @@ -0,0 +1,58 @@ +--- +title: AlertDialog +description: A Jetpack Compose AlertDialog component for displaying native alert dialogs. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI AlertDialog matches the official Jetpack Compose [AlertDialog API](https://developer.android.com/develop/ui/compose/components/dialog) and displays a modal dialog with a title, message text, and confirm/dismiss buttons. + +## Installation + + + +## Usage + +### Basic alert dialog + +```tsx BasicAlertDialogExample.tsx +import { useState } from 'react'; +import { Host, AlertDialog, Button } from '@expo/ui/jetpack-compose'; + +export default function BasicAlertDialogExample() { + const [visible, setVisible] = useState(false); + + return ( + + + { + console.log('Confirmed'); + setVisible(false); + }} + onDismissPressed={() => { + console.log('Dismissed'); + setVisible(false); + }} + /> + + ); +} +``` + +## API + +```tsx +import { AlertDialog } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/basicalertdialog.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/basicalertdialog.mdx new file mode 100644 index 00000000000000..10a980d49eff6e --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/basicalertdialog.mdx @@ -0,0 +1,55 @@ +--- +title: BasicAlertDialog +description: A Jetpack Compose BasicAlertDialog component for displaying dialogs with custom content. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI BasicAlertDialog matches the official Jetpack Compose [BasicAlertDialog API](https://developer.android.com/develop/ui/compose/components/dialog) and displays a minimal dialog that accepts custom children as its content, giving you full control over the dialog layout. + +## Installation + + + +## Usage + +### Basic dialog with custom content + +```tsx BasicAlertDialogExample.tsx +import { useState } from 'react'; +import { Host, BasicAlertDialog, Button, Text, Surface, Column } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function BasicAlertDialogExample() { + const [visible, setVisible] = useState(false); + + return ( + + + {visible && ( + setVisible(false)}> + + + Custom Dialog + This dialog contains fully custom content defined as children. + + + + + )} + + ); +} +``` + +## API + +```tsx +import { BasicAlertDialog } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/bottomsheet.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/bottomsheet.mdx index 6001ffbce042be..a1474fa3f74c06 100644 --- a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/bottomsheet.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/bottomsheet.mdx @@ -1,6 +1,6 @@ --- -title: BottomSheet -description: A Jetpack Compose BottomSheet component that presents content from the bottom of the screen. +title: ModalBottomSheet +description: A Jetpack Compose ModalBottomSheet component that presents content from the bottom of the screen. sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' packageName: '@expo/ui' platforms: ['android'] @@ -8,10 +8,8 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A bottom sheet component that slides up from the bottom of the screen to present content using native Android bottom sheet behavior. +Expo UI ModalBottomSheet matches the official Jetpack Compose [Bottom Sheet API](https://developer.android.com/develop/ui/compose/components/bottom-sheets) and displays content in a modal sheet that slides up from the bottom. ## Installation @@ -19,35 +17,64 @@ A bottom sheet component that slides up from the bottom of the screen to present ## Usage - - - - - - ```tsx - import { BottomSheet } from '@expo/ui/jetpack-compose'; - - - Hello from bottom sheet! - - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/bottom-sheets) for more information. +### Basic bottom sheet + +```tsx BasicBottomSheetExample.tsx +import { useState } from 'react'; +import { Host, ModalBottomSheet, Button, Column, Text } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function BasicBottomSheetExample() { + const [visible, setVisible] = useState(false); + + return ( + + + {visible && ( + setVisible(false)}> + + Hello from bottom sheet! + You can add more content here. + + + + )} + + ); +} +``` + +### Full-screen bottom sheet + +```tsx FullScreenBottomSheetExample.tsx +import { useState } from 'react'; +import { Host, ModalBottomSheet, Button, Column, Text } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function FullScreenBottomSheetExample() { + const [visible, setVisible] = useState(false); + + return ( + + + {visible && ( + setVisible(false)}> + + This sheet expands to full screen. + Add as much content as you need. + + + + )} + + ); +} +``` ## API ```tsx -import { BottomSheet } from '@expo/ui/jetpack-compose'; +import { ModalBottomSheet } from '@expo/ui/jetpack-compose'; ``` diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/box.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/box.mdx new file mode 100644 index 00000000000000..c7c038f34a1c41 --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/box.mdx @@ -0,0 +1,43 @@ +--- +title: Box +description: A Jetpack Compose Box component for stacking child elements. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Box matches the official Jetpack Compose [Box](https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/package-summary#Box) API and stacks children on top of each other with configurable content alignment. + +## Installation + + + +## Usage + +`Box` stacks children on top of each other. Use `contentAlignment` to position them within the box. + +```tsx BoxExample.tsx +import { Host, Box, Text } from '@expo/ui/jetpack-compose'; +import { size, background } from '@expo/ui/jetpack-compose/modifiers'; + +export default function BoxExample() { + return ( + + + Centered in Box + + + ); +} +``` + +## API + +```tsx +import { Box } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/button.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/button.mdx index 742dc7eb11f155..97c3c98fa127e7 100644 --- a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/button.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/button.mdx @@ -8,10 +8,8 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A button component for displaying native buttons. +Expo UI Button matches the official Jetpack Compose [Button API](https://developer.android.com/develop/ui/compose/components/button) and supports variants, icons, custom colors, and shapes. ## Installation @@ -19,41 +17,51 @@ A button component for displaying native buttons. ## Usage - - - - - - ```tsx - import { Button } from '@expo/ui/jetpack-compose'; +### Basic button - +```tsx BasicButtonExample.tsx +import { Host, Button } from '@expo/ui/jetpack-compose'; - {/* Button with both leading and trailing icons */} - - ``` +export default function BasicButtonExample() { + return ( + + + + ); +} +``` + +### Button variants - - +Use the `variant` prop to change the button's appearance. Available variants are: `default`, `bordered`, `borderless`, `outlined`, and `elevated`. -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/button) for more information. +```tsx ButtonVariantsExample.tsx +import { Host, Button, Column } from '@expo/ui/jetpack-compose'; + +export default function ButtonVariantsExample() { + return ( + + + + + + + + + + ); +} +``` ## API diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/card.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/card.mdx new file mode 100644 index 00000000000000..0f8a35587db5f5 --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/card.mdx @@ -0,0 +1,70 @@ +--- +title: Card +description: A Jetpack Compose Card component for displaying content in a styled container. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Card matches the official Jetpack Compose [Card API](https://developer.android.com/develop/ui/compose/components/card) and displays content inside a styled surface container with optional elevation and outline. + +## Installation + + + +## Usage + +### Basic card + +```tsx BasicCardExample.tsx +import { Host, Card, Text } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function BasicCardExample() { + return ( + + + This is a basic card with default styling. + + + ); +} +``` + +### Card variants + +Use the `variant` prop to switch between `'default'`, `'elevated'`, and `'outlined'` styles. + +```tsx CardVariantsExample.tsx +import { Host, Card, Text, Column } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function CardVariantsExample() { + return ( + + + + Default card + + + Elevated card + + + Outlined card + + + + ); +} +``` + +## API + +```tsx +import { Card } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/carousel.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/carousel.mdx new file mode 100644 index 00000000000000..96c7e23798882e --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/carousel.mdx @@ -0,0 +1,131 @@ +--- +title: Carousel +description: A Jetpack Compose Carousel component for displaying scrollable collections of items. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Carousel matches the official Jetpack Compose [Carousel API](https://developer.android.com/develop/ui/compose/layouts/pager) and displays a horizontally scrollable collection of items with configurable sizing and fling behavior. + +## Installation + + + +## Usage + +### Basic carousel + +```tsx BasicCarouselExample.tsx +import { Host, Carousel, Box, Text } from '@expo/ui/jetpack-compose'; +import { size, background } from '@expo/ui/jetpack-compose/modifiers'; + +export default function BasicCarouselExample() { + const items = [ + { label: 'Item 1', color: '#6200EE' }, + { label: 'Item 2', color: '#03DAC5' }, + { label: 'Item 3', color: '#FF5722' }, + { label: 'Item 4', color: '#4CAF50' }, + { label: 'Item 5', color: '#2196F3' }, + ]; + + return ( + + + {items.map(item => ( + + + {item.label} + + + ))} + + + ); +} +``` + +### MultiBrowse variant + +The `multiBrowse` variant shows a large item alongside smaller peek items, letting users see what comes next. + +```tsx MultiBrowseCarouselExample.tsx +import { Host, Carousel, Box, Text } from '@expo/ui/jetpack-compose'; +import { size, background } from '@expo/ui/jetpack-compose/modifiers'; + +export default function MultiBrowseCarouselExample() { + const colors = ['#6200EE', '#03DAC5', '#FF5722', '#4CAF50', '#2196F3']; + + return ( + + + {colors.map((color, index) => ( + + + Card {index + 1} + + + ))} + + + ); +} +``` + +### Unconstrained variant + +The `unconstrained` variant gives each item a fixed width without snapping behavior, allowing free-form scrolling. + +```tsx UnconstrainedCarouselExample.tsx +import { Host, Carousel, Box, Text } from '@expo/ui/jetpack-compose'; +import { size, background } from '@expo/ui/jetpack-compose/modifiers'; + +export default function UnconstrainedCarouselExample() { + const items = ['Photo 1', 'Photo 2', 'Photo 3', 'Photo 4', 'Photo 5']; + + return ( + + + {items.map(item => ( + + + {item} + + + ))} + + + ); +} +``` + +## API + +```tsx +import { Carousel } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/chip.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/chip.mdx index 188197e98a2eec..b1bdee5383b272 100644 --- a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/chip.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/chip.mdx @@ -8,10 +8,8 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A chip component for displaying compact elements that represent inputs, attributes, or actions. +Expo UI Chip matches the official Jetpack Compose [Chip API](https://developer.android.com/develop/ui/compose/components/chip) and supports assist, filter, input, and suggestion chip variants. ## Installation @@ -19,56 +17,77 @@ A chip component for displaying compact elements that represent inputs, attribut ## Usage - - - - - - ```tsx - import { Chip } from '@expo/ui/jetpack-compose'; - - // Assist chip with icon - console.log('Opening flight booking...')} - /> - - // Filter chip with selection - handleFilterToggle('Images')} - /> - - // Input chip with dismiss - handleInputDismiss('Work')} - /> - - // Suggestion chip - console.log('Searching nearby...')} - /> - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/chip) for more information. +### Assist chip + +```tsx AssistChipExample.tsx +import { Host, Chip } from '@expo/ui/jetpack-compose'; + +export default function AssistChipExample() { + return ( + + console.log('Opening flight booking...')} + /> + + ); +} +``` + +### Filter chip + +```tsx FilterChipExample.tsx +import { useState } from 'react'; +import { Host, Chip } from '@expo/ui/jetpack-compose'; + +export default function FilterChipExample() { + const [selected, setSelected] = useState(false); + + return ( + + setSelected(!selected)} + /> + + ); +} +``` + +### Input chip + +```tsx InputChipExample.tsx +import { Host, Chip } from '@expo/ui/jetpack-compose'; + +export default function InputChipExample() { + return ( + + console.log('Dismissed Work chip')} /> + + ); +} +``` + +### Suggestion chip + +```tsx SuggestionChipExample.tsx +import { Host, Chip } from '@expo/ui/jetpack-compose'; + +export default function SuggestionChipExample() { + return ( + + console.log('Searching nearby...')} + /> + + ); +} +``` ## API diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/circularprogress.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/circularprogress.mdx index dd1a9c53358e67..05468e2d700790 100644 --- a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/circularprogress.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/circularprogress.mdx @@ -8,10 +8,8 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A circular progress indicator component for displaying progress in a circular format. +Expo UI CircularProgress matches the official Jetpack Compose [Progress Indicator API](https://developer.android.com/develop/ui/compose/components/progress) and displays progress in a circular format. ## Installation @@ -19,30 +17,59 @@ A circular progress indicator component for displaying progress in a circular fo ## Usage - - - - - - ```tsx - import { CircularProgress } from '@expo/ui/jetpack-compose'; +### Indeterminate progress - - ``` +When no `progress` is provided, the progress indicator displays an indeterminate spinning animation. - - +```tsx IndeterminateCircularExample.tsx +import { Host, CircularProgress } from '@expo/ui/jetpack-compose'; -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/progress) for more information. +export default function IndeterminateCircularExample() { + return ( + + + + ); +} +``` + +### Determinate progress + +Provide a `progress` value between `0` and `1` to show determinate progress. + +```tsx DeterminateCircularExample.tsx +import { Host, CircularProgress } from '@expo/ui/jetpack-compose'; + +export default function DeterminateCircularExample() { + return ( + + + + ); +} +``` + +### Wavy progress + +`CircularWavyProgress` renders a circular progress indicator with a wavy animation style. + +```tsx CircularWavyExample.tsx +import { Host, CircularWavyProgress } from '@expo/ui/jetpack-compose'; + +export default function CircularWavyExample() { + return ( + + + + ); +} +``` ## API ```tsx -import { CircularProgress } from '@expo/ui/jetpack-compose'; +import { CircularProgress, CircularWavyProgress } from '@expo/ui/jetpack-compose'; ``` + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/column.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/column.mdx new file mode 100644 index 00000000000000..4298e18e359670 --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/column.mdx @@ -0,0 +1,48 @@ +--- +title: Column +description: A Jetpack Compose Column component for placing children vertically. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Column matches the official Jetpack Compose [Column](https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/package-summary#Column) API and places children vertically with configurable arrangement and alignment. + +## Installation + + + +## Usage + +`Column` places children vertically. Use `verticalArrangement` and `horizontalAlignment` to control spacing and alignment. + +```tsx ColumnExample.tsx +import { Host, Column, Text } from '@expo/ui/jetpack-compose'; +import { fillMaxWidth, paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function ColumnExample() { + return ( + + + First + Second + Third + + + ); +} +``` + +## API + +```tsx +import { Column } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/contextmenu.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/contextmenu.mdx index bf19d2738a1906..d26e4577bdb3b7 100644 --- a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/contextmenu.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/contextmenu.mdx @@ -8,12 +8,10 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -> **Note:** Also known as **DropdownMenu**. +Expo UI ContextMenu matches the official Jetpack Compose [Menu API](https://developer.android.com/develop/ui/compose/components/menu) and displays a context menu when a trigger element is long-pressed or clicked. -A context menu component that displays a menu when triggered, commonly used for actions and options. +> **Note:** Also known as **DropdownMenu**. ## Installation @@ -21,51 +19,31 @@ A context menu component that displays a menu when triggered, commonly used for ## Usage - - - - - - ```tsx - import { ContextMenu } from '@expo/ui/jetpack-compose'; - - - - - - setSelectedIndex(index)} - /> - - - - - - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/menu) for more information. +### Basic context menu + +```tsx BasicContextMenuExample.tsx +import { Host, ContextMenu, Button } from '@expo/ui/jetpack-compose'; + +export default function BasicContextMenuExample() { + return ( + + + + + + + + + + + + ); +} +``` ## API diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/datetimepicker.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/datetimepicker.mdx index 08bca9c41b623a..74b33e53ca7332 100644 --- a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/datetimepicker.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/datetimepicker.mdx @@ -8,72 +8,88 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A date and time picker component that allows users to select dates, times, or both using native Android dialogs. +Expo UI DateTimePicker matches the official Jetpack Compose [Date Picker](https://developer.android.com/develop/ui/compose/components/datepickers) and [Time Picker](https://developer.android.com/develop/ui/compose/components/time-pickers) APIs and supports date, time, and combined selection. ## Installation -## Date time picker - - - - - - - ```tsx - import { DateTimePicker } from '@expo/ui/jetpack-compose'; - - { - setSelectedDate(date); - }} - displayedComponents='date' - initialDate={selectedDate.toISOString()} - variant='picker' - /> - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/datepickers) for more information. - -## Time picker - - - - - - - ```tsx - import { DateTimePicker } from '@expo/ui/jetpack-compose'; - - { - setSelectedDate(date); - }} - displayedComponents='hourAndMinute' - initialDate={selectedDate.toISOString()} - variant='picker' - /> - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/time-pickers) for more information. +## Usage + +### Date picker + +```tsx DatePickerExample.tsx +import { useState } from 'react'; +import { Host, DateTimePicker } from '@expo/ui/jetpack-compose'; + +export default function DatePickerExample() { + const [selectedDate, setSelectedDate] = useState(new Date()); + + return ( + + { + setSelectedDate(date); + }} + displayedComponents="date" + initialDate={selectedDate.toISOString()} + variant="picker" + /> + + ); +} +``` + +### Time picker + +```tsx TimePickerExample.tsx +import { useState } from 'react'; +import { Host, DateTimePicker } from '@expo/ui/jetpack-compose'; + +export default function TimePickerExample() { + const [selectedDate, setSelectedDate] = useState(new Date()); + + return ( + + { + setSelectedDate(date); + }} + displayedComponents="hourAndMinute" + initialDate={selectedDate.toISOString()} + variant="picker" + /> + + ); +} +``` + +### Input variant + +Use `variant="input"` to display the picker as a text input field instead of the default picker UI. + +```tsx InputVariantExample.tsx +import { useState } from 'react'; +import { Host, DateTimePicker } from '@expo/ui/jetpack-compose'; + +export default function InputVariantExample() { + const [selectedDate, setSelectedDate] = useState(new Date()); + + return ( + + { + setSelectedDate(date); + }} + displayedComponents="date" + initialDate={selectedDate.toISOString()} + variant="input" + /> + + ); +} +``` ## API diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/divider.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/divider.mdx new file mode 100644 index 00000000000000..9fd32de4bb9a88 --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/divider.mdx @@ -0,0 +1,67 @@ +--- +title: Divider +description: A Jetpack Compose Divider component for creating visual separators. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Divider matches the official Jetpack Compose [HorizontalDivider API](https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary#HorizontalDivider) and creates a thin horizontal line to visually separate content. + +## Installation + + + +## Usage + +### Basic divider + +```tsx BasicDividerExample.tsx +import { Host, Divider, Column, Text } from '@expo/ui/jetpack-compose'; + +export default function BasicDividerExample() { + return ( + + + First section + + Second section + + + ); +} +``` + +### Divider with padding modifier + +Use the `modifiers` prop to add padding around the divider. + +```tsx DividerWithPaddingExample.tsx +import { Host, Divider, Column, Text } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function DividerWithPaddingExample() { + return ( + + + Section A + + Section B + + Section C + + + ); +} +``` + +## API + +```tsx +import { Divider } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/dockedsearchbar.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/dockedsearchbar.mdx new file mode 100644 index 00000000000000..78de7aafad86fb --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/dockedsearchbar.mdx @@ -0,0 +1,69 @@ +--- +title: DockedSearchBar +description: A Jetpack Compose DockedSearchBar component for displaying an inline search input. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI DockedSearchBar matches the official Jetpack Compose [SearchBar API](https://developer.android.com/develop/ui/compose/components/search) and displays a search input that remains anchored in its parent layout rather than expanding to full screen. + +## Installation + + + +## Usage + +### Basic docked search bar + +```tsx BasicDockedSearchBarExample.tsx +import { useState } from 'react'; +import { Host, DockedSearchBar } from '@expo/ui/jetpack-compose'; + +export default function BasicDockedSearchBarExample() { + const [query, setQuery] = useState(''); + + return ( + + + + ); +} +``` + +### With placeholder and leading icon + +Use the `DockedSearchBar.Placeholder` and `DockedSearchBar.LeadingIcon` slot components to customize the search bar appearance. + +```tsx DockedSearchBarWithSlotsExample.tsx +import { useState } from 'react'; +import { Host, DockedSearchBar, Text } from '@expo/ui/jetpack-compose'; + +export default function DockedSearchBarWithSlotsExample() { + const [query, setQuery] = useState(''); + + return ( + + + + Search items... + + + 🔍 + + + + ); +} +``` + +## API + +```tsx +import { DockedSearchBar } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/filterchip.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/filterchip.mdx new file mode 100644 index 00000000000000..cbe6322bc55465 --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/filterchip.mdx @@ -0,0 +1,87 @@ +--- +title: FilterChip +description: A Jetpack Compose FilterChip component for displaying toggleable filter options. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI FilterChip matches the official Jetpack Compose [FilterChip API](https://developer.android.com/develop/ui/compose/components/chip) and displays a compact, toggleable element used to filter content. + +## Installation + + + +## Usage + +### Basic filter chip + +```tsx BasicFilterChipExample.tsx +import { useState } from 'react'; +import { Host, FilterChip } from '@expo/ui/jetpack-compose'; + +export default function BasicFilterChipExample() { + const [selected, setSelected] = useState(false); + + return ( + + setSelected(!selected)} /> + + ); +} +``` + +### With leading icon + +Use the `FilterChip.LeadingIcon` slot component to display an icon before the label. + +```tsx FilterChipWithLeadingIconExample.tsx +import { useState } from 'react'; +import { Host, FilterChip, Text } from '@expo/ui/jetpack-compose'; + +export default function FilterChipWithLeadingIconExample() { + const [selected, setSelected] = useState(false); + + return ( + + setSelected(!selected)}> + + 📷 + + + + ); +} +``` + +### Disabled chip + +Set the `enabled` prop to `false` to prevent user interaction. + +```tsx DisabledFilterChipExample.tsx +import { Host, FilterChip } from '@expo/ui/jetpack-compose'; + +export default function DisabledFilterChipExample() { + return ( + + console.log('This will not fire')} + /> + + ); +} +``` + +## API + +```tsx +import { FilterChip } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/flowrow.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/flowrow.mdx new file mode 100644 index 00000000000000..4f91972f6fca11 --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/flowrow.mdx @@ -0,0 +1,50 @@ +--- +title: FlowRow +description: A Jetpack Compose FlowRow component for wrapping children horizontally. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI FlowRow matches the official Jetpack Compose [FlowRow](https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/package-summary#FlowRow) API and arranges children in a horizontal flow that wraps to the next line when it runs out of space. + +## Installation + + + +## Usage + +`FlowRow` arranges children in a horizontal flow that wraps to the next line when it runs out of space. + +```tsx FlowRowExample.tsx +import { Host, FlowRow, Text } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function FlowRowExample() { + const tags = ['React Native', 'Expo', 'Android', 'Jetpack Compose', 'Material 3', 'Kotlin']; + + return ( + + + {tags.map(tag => ( + {tag} + ))} + + + ); +} +``` + +## API + +```tsx +import { FlowRow } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/horizontalfloatingtoolbar.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/horizontalfloatingtoolbar.mdx new file mode 100644 index 00000000000000..9aca4fd622bf06 --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/horizontalfloatingtoolbar.mdx @@ -0,0 +1,55 @@ +--- +title: HorizontalFloatingToolbar +description: A Jetpack Compose HorizontalFloatingToolbar component for displaying a floating action bar. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI HorizontalFloatingToolbar matches the official Jetpack Compose [FloatingActionButton API](https://developer.android.com/develop/ui/compose/components/floating-action-button) and displays a horizontal toolbar that floats above content, containing action buttons. + +## Installation + + + +## Usage + +### Toolbar with FloatingActionButton + +Use `IconButton` as direct children for toolbar items, and `HorizontalFloatingToolbar.FloatingActionButton` for the primary action. + +```tsx ToolbarWithFABExample.tsx +import { Host, HorizontalFloatingToolbar, IconButton, Icon } from '@expo/ui/jetpack-compose'; + +export default function ToolbarWithFABExample() { + return ( + + + console.log('Edit pressed')}> + + + console.log('Share pressed')}> + + + console.log('Add pressed')}> + + + + + ); +} +``` + +## API + +```tsx +import { HorizontalFloatingToolbar } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/host.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/host.mdx new file mode 100644 index 00000000000000..293a92ab4e0525 --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/host.mdx @@ -0,0 +1,58 @@ +--- +title: Host +description: A Jetpack Compose Host component for bridging React Native and Jetpack Compose. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +The `Host` component is the bridge between React Native and Jetpack Compose. Every Jetpack Compose component from `@expo/ui/jetpack-compose` must be wrapped in a `Host` to render correctly. + +## Installation + + + +## Usage + +### Match contents + +Use the `matchContents` prop to make the `Host` size itself to fit the content. You can pass a boolean or an object to control vertical and horizontal sizing independently. + +```tsx MatchContents.tsx +import { Host, Button } from '@expo/ui/jetpack-compose'; + +export default function MatchContents() { + return ( + + + + ); +} +``` + +### With style + +Apply standard React Native styles to the `Host` wrapper. + +```tsx HostWithStyle.tsx +import { Host, Button } from '@expo/ui/jetpack-compose'; + +export default function HostWithStyle() { + return ( + + + + ); +} +``` + +## API + +```tsx +import { Host } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/icon.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/icon.mdx new file mode 100644 index 00000000000000..c3a964e8599150 --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/icon.mdx @@ -0,0 +1,78 @@ +--- +title: Icon +description: A Jetpack Compose Icon component for displaying icons. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +An icon component for rendering icons in Jetpack Compose. We recommend downloading icons as XML vector drawables from [Material Symbols](https://fonts.google.com/icons), which is the standard approach for Android development. + +## Installation + + + +## Usage + +### Basic icon + +Use `require()` to load an XML vector drawable downloaded from [Material Symbols](https://fonts.google.com/icons). + +```tsx BasicIcon.tsx +import { Host, Icon } from '@expo/ui/jetpack-compose'; + +export default function BasicIcon() { + return ( + + + + ); +} +``` + +### Icon with tint color + +Use the `tintColor` prop to apply a color overlay to the icon. + +```tsx TintedIcon.tsx +import { Host, Icon } from '@expo/ui/jetpack-compose'; + +export default function TintedIcon() { + return ( + + + + ); +} +``` + +### Icon with size + +Specify a custom size in dp using the `size` prop. + +```tsx SizedIcon.tsx +import { Host, Icon } from '@expo/ui/jetpack-compose'; + +export default function SizedIcon() { + return ( + + + + ); +} +``` + +## API + +```tsx +import { Icon } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/iconbutton.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/iconbutton.mdx new file mode 100644 index 00000000000000..50ee9aea57f5d7 --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/iconbutton.mdx @@ -0,0 +1,84 @@ +--- +title: IconButton +description: A Jetpack Compose IconButton component for displaying tappable icon buttons. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +An icon button component that wraps an icon in a tappable container with different visual variants. See the [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/button#icon) for more information. + +## Installation + + + +## Usage + +### Basic icon button + +```tsx BasicIconButton.tsx +import { Host, IconButton, Icon } from '@expo/ui/jetpack-compose'; + +export default function BasicIconButton() { + return ( + + console.log('Pressed')}> + + + + ); +} +``` + +### Variants + +Use the `variant` prop to change the visual style of the button. Available variants are `'default'`, `'bordered'`, and `'outlined'`. + +```tsx IconButtonVariants.tsx +import { Host, IconButton, Icon } from '@expo/ui/jetpack-compose'; + +export default function IconButtonVariants() { + return ( + + console.log('Default')}> + + + console.log('Bordered')}> + + + console.log('Outlined')}> + + + + ); +} +``` + +### Disabled + +Set the `disabled` prop to prevent interaction. + +```tsx DisabledIconButton.tsx +import { Host, IconButton, Icon } from '@expo/ui/jetpack-compose'; + +export default function DisabledIconButton() { + return ( + + console.log('Pressed')}> + + + + ); +} +``` + +## API + +```tsx +import { IconButton } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/index.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/index.mdx index fc8c8cd05cccee..c8c6dfdd4e949a 100644 --- a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/index.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/index.mdx @@ -18,3 +18,19 @@ The Jetpack Compose components in `@expo/ui/jetpack-compose` allow you to build ## Installation + +## Usage + +Using a component from `@expo/ui/jetpack-compose` requires wrapping it in a [`Host`](./host) component. The `Host` is a container for Jetpack Compose views. + +```tsx +import { Host, Button } from '@expo/ui/jetpack-compose'; + +export function SaveButton() { + return ( + + + + ); +} +``` diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/lazycolumn.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/lazycolumn.mdx new file mode 100644 index 00000000000000..1747e04460086c --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/lazycolumn.mdx @@ -0,0 +1,86 @@ +--- +title: LazyColumn +description: A Jetpack Compose LazyColumn component for displaying scrollable lists. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +A lazily-loaded vertical list component that only renders visible items for efficient scrolling. See the [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/lists) for more information. + +## Installation + + + +## Usage + +### Basic lazy column + +```tsx BasicLazyColumn.tsx +import { Host, LazyColumn, ListItem } from '@expo/ui/jetpack-compose'; + +const items = Array.from({ length: 100 }, (_, i) => `Item ${i + 1}`); + +export default function BasicLazyColumn() { + return ( + + + {items.map(item => ( + + ))} + + + ); +} +``` + +### With arrangement + +Use the `verticalArrangement` prop to control how items are spaced within the list. Pass a string value like `'spaceBetween'` or an object like `{ spacedBy: 8 }` for fixed spacing in dp. + +```tsx LazyColumnArrangement.tsx +import { Host, LazyColumn, ListItem } from '@expo/ui/jetpack-compose'; + +export default function LazyColumnArrangement() { + return ( + + + + + + + + ); +} +``` + +### With content padding + +Use the `contentPadding` prop to add padding around the list content in dp. + +```tsx LazyColumnPadding.tsx +import { Host, LazyColumn, ListItem } from '@expo/ui/jetpack-compose'; + +export default function LazyColumnPadding() { + return ( + + + + + + + + ); +} +``` + +## API + +```tsx +import { LazyColumn } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/linearprogress.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/linearprogress.mdx index ed161da49ce77c..7a837c77f9d341 100644 --- a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/linearprogress.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/linearprogress.mdx @@ -8,10 +8,8 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A linear progress indicator component for displaying progress in a horizontal bar format. +Expo UI LinearProgress matches the official Jetpack Compose [Progress Indicator API](https://developer.android.com/develop/ui/compose/components/progress) and displays progress in a horizontal bar format. ## Installation @@ -19,30 +17,59 @@ A linear progress indicator component for displaying progress in a horizontal ba ## Usage - - - - - - ```tsx - import { LinearProgress } from '@expo/ui/jetpack-compose'; +### Indeterminate progress - - ``` +When no `progress` is provided, the progress indicator displays an indeterminate animating bar. - - +```tsx IndeterminateLinearExample.tsx +import { Host, LinearProgress } from '@expo/ui/jetpack-compose'; -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/progress) for more information. +export default function IndeterminateLinearExample() { + return ( + + + + ); +} +``` + +### Determinate progress + +Provide a `progress` value between `0` and `1` to show determinate progress. + +```tsx DeterminateLinearExample.tsx +import { Host, LinearProgress } from '@expo/ui/jetpack-compose'; + +export default function DeterminateLinearExample() { + return ( + + + + ); +} +``` + +### Wavy progress + +`LinearWavyProgress` renders a linear progress indicator with a wavy animation style. + +```tsx LinearWavyExample.tsx +import { Host, LinearWavyProgress } from '@expo/ui/jetpack-compose'; + +export default function LinearWavyExample() { + return ( + + + + ); +} +``` ## API ```tsx -import { LinearProgress } from '@expo/ui/jetpack-compose'; +import { LinearProgress, LinearWavyProgress } from '@expo/ui/jetpack-compose'; ``` + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/listitem.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/listitem.mdx new file mode 100644 index 00000000000000..bdc4307573cd13 --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/listitem.mdx @@ -0,0 +1,83 @@ +--- +title: ListItem +description: A Jetpack Compose ListItem component for displaying structured list entries. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +A list item component that follows Material Design 3 guidelines for structured list entries with headline, supporting text, and leading/trailing slots. See the [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/lists) for more information. + +## Installation + + + +## Usage + +### Basic list item + +```tsx BasicListItem.tsx +import { Host, ListItem } from '@expo/ui/jetpack-compose'; + +export default function BasicListItem() { + return ( + + + + ); +} +``` + +### With supporting text and overline + +Use the `supportingText` prop to add a secondary line and `overlineText` for a category label above the headline. + +```tsx ListItemWithText.tsx +import { Host, ListItem } from '@expo/ui/jetpack-compose'; + +export default function ListItemWithText() { + return ( + + + + ); +} +``` + +### With leading and trailing slots + +Use `ListItem.Leading` and `ListItem.Trailing` sub-components to add content to the start and end of the list item. + +```tsx ListItemWithSlots.tsx +import { Host, ListItem, Icon } from '@expo/ui/jetpack-compose'; + +export default function ListItemWithSlots() { + return ( + + + + + + + + + + + ); +} +``` + +## API + +```tsx +import { ListItem } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/modifiers.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/modifiers.mdx new file mode 100644 index 00000000000000..d3b9d1b0d32498 --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/modifiers.mdx @@ -0,0 +1,460 @@ +--- +title: Modifiers +description: Jetpack Compose layout modifiers for @expo/ui components. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Jetpack Compose modifiers allow you to customize the layout, appearance, and behavior of UI components. Modifiers are the Compose equivalent of style properties — they control sizing, padding, backgrounds, interactions, and more. + +## Installation + + + +## Usage + +Modifiers are applied to components using the `modifiers` prop with an array syntax. You can combine multiple modifiers to create complex styling and behavior. Modifiers are applied in the order they appear in the array, which can affect the final result (for example, applying `padding` before `background` produces different results than the reverse). + +```tsx +import { Button, Host } from '@expo/ui/jetpack-compose'; +import { + paddingAll, + fillMaxWidth, + background, + border, + shadow, + clickable, +} from '@expo/ui/jetpack-compose/modifiers'; + +function ModifiersExample() { + return ( + + {/* Basic styling modifiers */} + + + {/* Complex combination with border and shadow */} + + + ); +} +``` + +## Padding + +Control the spacing around a component's content. + +### `paddingAll(all)` + +Applies equal padding on all four sides. + +| Parameter | Type | Description | +| --------- | -------- | -------------------- | +| `all` | `number` | Padding value in dp. | + +```tsx +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `padding(start, top, end, bottom)` + +Applies individual padding to each side. + +| Parameter | Type | Description | +| --------- | -------- | ------------------------- | +| `start` | `number` | Left/start padding in dp. | +| `top` | `number` | Top padding in dp. | +| `end` | `number` | Right/end padding in dp. | +| `bottom` | `number` | Bottom padding in dp. | + +```tsx +import { padding } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +## Size + +Control the dimensions of a component. + +### `size(width, height)` + +Sets exact dimensions for the component. + +| Parameter | Type | Description | +| --------- | -------- | ------------- | +| `width` | `number` | Width in dp. | +| `height` | `number` | Height in dp. | + +```tsx +import { size } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `fillMaxSize(fraction?)` + +Fills all available space in both dimensions. + +| Parameter | Type | Description | +| ---------- | -------- | ----------------------------------------------------- | +| `fraction` | `number` | Fraction of available space (0.0–1.0). Default `1.0`. | + +```tsx +import { fillMaxSize } from '@expo/ui/jetpack-compose/modifiers'; + + + +``` + +### `fillMaxWidth(fraction?)` + +Fills available width. + +| Parameter | Type | Description | +| ---------- | -------- | ----------------------------------------------------- | +| `fraction` | `number` | Fraction of available width (0.0–1.0). Default `1.0`. | + +```tsx +import { fillMaxWidth } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `fillMaxHeight(fraction?)` + +Fills available height. + +| Parameter | Type | Description | +| ---------- | -------- | ------------------------------------------------------ | +| `fraction` | `number` | Fraction of available height (0.0–1.0). Default `1.0`. | + +### `width(value)` + +Sets an exact width. + +| Parameter | Type | Description | +| --------- | -------- | ------------ | +| `value` | `number` | Width in dp. | + +### `height(value)` + +Sets an exact height. + +| Parameter | Type | Description | +| --------- | -------- | ------------- | +| `value` | `number` | Height in dp. | + +### `wrapContentWidth(alignment?)` + +Sizes the component to wrap its content width. + +| Parameter | Type | Description | +| ----------- | -------- | ------------------------------------ | +| `alignment` | `string` | Horizontal alignment of the content. | + +### `wrapContentHeight(alignment?)` + +Sizes the component to wrap its content height. + +| Parameter | Type | Description | +| ----------- | -------- | ---------------------------------- | +| `alignment` | `string` | Vertical alignment of the content. | + +## Position + +Control the position of a component relative to its natural placement. + +### `offset(x, y)` + +Offsets the component from its natural position without affecting the layout of surrounding components. + +| Parameter | Type | Description | +| --------- | -------- | ------------------------ | +| `x` | `number` | Horizontal offset in dp. | +| `y` | `number` | Vertical offset in dp. | + +```tsx +import { offset } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +## Appearance + +Control the visual appearance of a component. + +### `background(color)` + +Sets the background color. + +| Parameter | Type | Description | +| --------- | -------- | ------------------------------ | +| `color` | `string` | Background color (hex string). | + +```tsx +import { background } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `border(borderWidth, borderColor)` + +Adds a border around the component. + +| Parameter | Type | Description | +| ------------- | -------- | -------------------------- | +| `borderWidth` | `number` | Border width in dp. | +| `borderColor` | `string` | Border color (hex string). | + +```tsx +import { border } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `shadow(elevation)` + +Adds an elevation shadow beneath the component. + +| Parameter | Type | Description | +| ----------- | -------- | ----------------------- | +| `elevation` | `number` | Shadow elevation in dp. | + +```tsx +import { shadow } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `alpha(alpha)` + +Controls the opacity of the component. + +| Parameter | Type | Description | +| --------- | -------- | ------------------------ | +| `alpha` | `number` | Opacity value (0.0–1.0). | + +```tsx +import { alpha } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `blur(radius)` + +Applies a blur effect to the component. + +| Parameter | Type | Description | +| --------- | -------- | ------------------ | +| `radius` | `number` | Blur radius in dp. | + +```tsx +import { blur } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +## Transform + +Apply visual transformations to a component. + +### `rotate(degrees)` + +Rotates the component. + +| Parameter | Type | Description | +| --------- | -------- | -------------------------- | +| `degrees` | `number` | Rotation angle in degrees. | + +```tsx +import { rotate } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `zIndex(index)` + +Controls the drawing order of overlapping components. + +| Parameter | Type | Description | +| --------- | -------- | ------------ | +| `index` | `number` | Layer index. | + +```tsx +import { zIndex } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +## Animation + +Animate layout changes within a component. + +### `animateContentSize(dampingRatio?, stiffness?)` + +Animates size changes of the component's content using a spring animation. + +| Parameter | Type | Description | +| -------------- | -------- | ------------------------------------------- | +| `dampingRatio` | `number` | Spring damping ratio. Controls bounciness. | +| `stiffness` | `number` | Spring stiffness. Controls animation speed. | + +```tsx +import { animateContentSize } from '@expo/ui/jetpack-compose/modifiers'; + + + +``` + +## Layout + +Control how a component is sized and positioned within its parent container. + +### `weight(weight)` + +Assigns a flexible weight to a component inside a `Row` or `Column`, distributing available space proportionally among weighted children. + +| Parameter | Type | Description | +| --------- | -------- | -------------- | +| `weight` | `number` | Weight factor. | + +```tsx +import { weight } from '@expo/ui/jetpack-compose/modifiers'; + +// In a Row, the first button takes 2/3 and the second takes 1/3 + + +``` + +### `align(alignment)` + +Sets the alignment of the component within its parent container. + +| Parameter | Type | Description | +| ----------- | -------- | ------------------------------- | +| `alignment` | `string` | Alignment within the container. | + +### `matchParentSize()` + +Sizes the component to match the size of its parent `Box`. Unlike `fillMaxSize`, this does not affect the parent's measurement. + +```tsx +import { matchParentSize } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +## Interaction + +Add user interaction handlers to a component. + +### `clickable(handler)` + +Makes the component respond to click events. + +| Parameter | Type | Description | +| --------- | ------------ | -------------------------- | +| `handler` | `() => void` | Callback invoked on click. | + +```tsx +import { clickable } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `selectable(selected, handler)` + +Makes the component selectable, similar to a radio button. + +| Parameter | Type | Description | +| ---------- | ------------ | ---------------------------------------------- | +| `selected` | `boolean` | Whether the component is currently selected. | +| `handler` | `() => void` | Callback invoked when selection state changes. | + +```tsx +import { selectable } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +## Clipping + +Clip a component's content to a specific shape. + +### `clip(shape)` + +Clips the component to the given shape. Content outside the shape boundary is not drawn. + +| Parameter | Type | Description | +| --------- | ------- | --------------------- | +| `shape` | `Shape` | The shape to clip to. | + +#### Available shapes + +| Shape | Description | +| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Shapes.Rectangle` | A rectangle with no rounded corners. | +| `Shapes.Circle` | A perfect circle. | +| `Shapes.RoundedCorner(radius)` | A rectangle with uniform rounded corners. Pass a `number` for equal radius or an object `{ topStart, topEnd, bottomStart, bottomEnd }` for individual corner radii. | +| `Shapes.CutCorner(radius)` | A rectangle with cut (chamfered) corners. Accepts the same radius options as `RoundedCorner`. | +| `Shapes.Material.Cookie4Sided` | Material Design cookie shape with 4 sides. | +| `Shapes.Material.Cookie6Sided` | Material Design cookie shape with 6 sides. | + +```tsx +import { clip } from '@expo/ui/jetpack-compose/modifiers'; +import { Shapes } from '@expo/ui/jetpack-compose/modifiers'; + +// Circular clipping + + +// Rounded corners with uniform radius + + +// Rounded corners with individual radii + + +// Cut corners + +``` + +## Utility + +### `testID(tag)` + +Assigns a test identifier to the component for use in UI testing. + +| Parameter | Type | Description | +| --------- | -------- | ------------ | +| `tag` | `string` | The test ID. | + +```tsx +import { testID } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +## API + +{/* prettier-ignore */} +```tsx +import { paddingAll, padding, size, fillMaxWidth, background, clickable, clip, Shapes } from '@expo/ui/jetpack-compose/modifiers'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/picker.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/picker.mdx index 521663377c4d33..bdeef8ee236c80 100644 --- a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/picker.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/picker.mdx @@ -8,72 +8,93 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A picker component that allows users to select from a list of options with different display styles. +Expo UI Picker matches the official Jetpack Compose [Segmented Button](https://developer.android.com/develop/ui/compose/components/segmented-button) and [Radio Button](https://developer.android.com/develop/ui/compose/components/radio-button) APIs and supports segmented and radio picker variants. ## Installation -## Radio picker - - - - - - - ```tsx - import { Picker } from '@expo/ui/jetpack-compose'; - - { - setSelectedIndex(index); - }} - variant="radio" - /> - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/radio-button) for more information. - -## Segmented picker - - - - - - - ```tsx - import { Picker } from '@expo/ui/jetpack-compose'; - - { - setSelectedIndex(index); - }} - variant="segmented" - /> - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/segmented-button) for more information. +## Usage + +### Segmented picker + +Use the `variant="segmented"` prop to display a segmented button group. + +```tsx SegmentedPickerExample.tsx +import { useState } from 'react'; +import { Host, Picker } from '@expo/ui/jetpack-compose'; + +export default function SegmentedPickerExample() { + const [selectedIndex, setSelectedIndex] = useState(0); + + return ( + + { + setSelectedIndex(index); + }} + variant="segmented" + /> + + ); +} +``` + +### Radio picker + +Use the `variant="radio"` prop to display a list of radio buttons. + +```tsx RadioPickerExample.tsx +import { useState } from 'react'; +import { Host, Picker } from '@expo/ui/jetpack-compose'; + +export default function RadioPickerExample() { + const [selectedIndex, setSelectedIndex] = useState(0); + + return ( + + { + setSelectedIndex(index); + }} + variant="radio" + /> + + ); +} +``` + +### Picker with custom color + +Use the `color` prop to customize the picker's accent color. + +```tsx CustomColorPickerExample.tsx +import { useState } from 'react'; +import { Host, Picker } from '@expo/ui/jetpack-compose'; + +export default function CustomColorPickerExample() { + const [selectedIndex, setSelectedIndex] = useState(0); + + return ( + + { + setSelectedIndex(index); + }} + variant="segmented" + color="#6200EE" + /> + + ); +} +``` ## API diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/pulltorefreshbox.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/pulltorefreshbox.mdx new file mode 100644 index 00000000000000..559598a5a9f44c --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/pulltorefreshbox.mdx @@ -0,0 +1,58 @@ +--- +title: PullToRefreshBox +description: A Jetpack Compose PullToRefreshBox component for pull-to-refresh interactions. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +A pull-to-refresh container that wraps scrollable content and provides a standard refresh indicator when pulled. See the [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/layouts/adaptive/support-different-screen-sizes) for more information. + +## Installation + + + +## Usage + +### Basic pull to refresh + +```tsx BasicPullToRefresh.tsx +import { useState, useCallback } from 'react'; +import { Host, PullToRefreshBox, LazyColumn, ListItem } from '@expo/ui/jetpack-compose'; + +export default function BasicPullToRefresh() { + const [refreshing, setRefreshing] = useState(false); + + const onRefresh = useCallback(() => { + setRefreshing(true); + setTimeout(() => { + setRefreshing(false); + }, 2000); + }, []); + + return ( + + + + + + + + + + + + ); +} +``` + +## API + +```tsx +import { PullToRefreshBox } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/radiobutton.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/radiobutton.mdx new file mode 100644 index 00000000000000..1254fb258a49ce --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/radiobutton.mdx @@ -0,0 +1,87 @@ +--- +title: RadioButton +description: A Jetpack Compose RadioButton component for single-selection controls. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +A radio button component for selecting a single option from a set. See the [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/radio-button) for more information. + +## Installation + + + +## Usage + +### Basic radio button + +```tsx BasicRadioButton.tsx +import { useState } from 'react'; +import { Host, RadioButton } from '@expo/ui/jetpack-compose'; + +export default function BasicRadioButton() { + const [selected, setSelected] = useState(false); + + return ( + + setSelected(!selected)} /> + + ); +} +``` + +### Radio button group + +Combine multiple `RadioButton` components to create a single-selection group. + +```tsx RadioButtonGroup.tsx +import { useState } from 'react'; +import { Host, Column, RadioButton, ListItem } from '@expo/ui/jetpack-compose'; + +export default function RadioButtonGroup() { + const [selectedOption, setSelectedOption] = useState('option1'); + + return ( + + + setSelectedOption('option1')}> + + setSelectedOption('option1')} + /> + + + setSelectedOption('option2')}> + + setSelectedOption('option2')} + /> + + + setSelectedOption('option3')}> + + setSelectedOption('option3')} + /> + + + + + ); +} +``` + +## API + +```tsx +import { RadioButton } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/row.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/row.mdx new file mode 100644 index 00000000000000..45e03635187a5c --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/row.mdx @@ -0,0 +1,48 @@ +--- +title: Row +description: A Jetpack Compose Row component for placing children horizontally. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Row matches the official Jetpack Compose [Row](https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/package-summary#Row) API and places children horizontally with configurable arrangement and alignment. + +## Installation + + + +## Usage + +`Row` places children horizontally. Use `horizontalArrangement` and `verticalAlignment` to control spacing and alignment. + +```tsx RowExample.tsx +import { Host, Row, Text } from '@expo/ui/jetpack-compose'; +import { fillMaxWidth, height } from '@expo/ui/jetpack-compose/modifiers'; + +export default function RowExample() { + return ( + + + Item 1 + Item 2 + Item 3 + + + ); +} +``` + +## API + +```tsx +import { Row } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/searchbar.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/searchbar.mdx new file mode 100644 index 00000000000000..e62c2248d751dc --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/searchbar.mdx @@ -0,0 +1,64 @@ +--- +title: SearchBar +description: A Jetpack Compose SearchBar component for search input functionality. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI SearchBar matches the official Jetpack Compose [Search](https://developer.android.com/develop/ui/compose/components/search) API and provides a search input with support for placeholder text and expanded full-screen search. + +## Installation + + + +## Usage + +### Basic search bar + +```tsx BasicSearchBarExample.tsx +import { useState } from 'react'; +import { Host, SearchBar } from '@expo/ui/jetpack-compose'; + +export default function BasicSearchBarExample() { + const [query, setQuery] = useState(''); + + return ( + + setQuery(searchText)} /> + + ); +} +``` + +### Search bar with placeholder + +Use the `SearchBar.Placeholder` sub-component to display hint text when the search field is empty. + +```tsx SearchBarPlaceholderExample.tsx +import { useState } from 'react'; +import { Host, SearchBar } from '@expo/ui/jetpack-compose'; + +export default function SearchBarPlaceholderExample() { + const [query, setQuery] = useState(''); + + return ( + + setQuery(searchText)}> + Search items... + + + ); +} +``` + +## API + +```tsx +import { SearchBar } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/shape.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/shape.mdx new file mode 100644 index 00000000000000..3ddb0f9664fcb3 --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/shape.mdx @@ -0,0 +1,114 @@ +--- +title: Shape +description: A Jetpack Compose Shape component for drawing geometric shapes. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Shape matches the official Jetpack Compose [Shapes](https://developer.android.com/develop/ui/compose/graphics/draw/shapes) API and provides a set of sub-components for drawing geometric shapes such as stars, circles, rectangles, pills, and polygons. + +## Installation + + + +## Usage + +### Basic shapes + +Render common shapes using the `Shape` sub-components. + +```tsx BasicShapesExample.tsx +import { Host, Shape, Row } from '@expo/ui/jetpack-compose'; +import { size } from '@expo/ui/jetpack-compose/modifiers'; + +export default function BasicShapesExample() { + return ( + + + + + + + + + ); +} +``` + +### Shapes with rounded corners + +Use `cornerRounding` and `smoothing` to customize the appearance of shapes. + +```tsx RoundedShapesExample.tsx +import { Host, Shape, Row } from '@expo/ui/jetpack-compose'; +import { size } from '@expo/ui/jetpack-compose/modifiers'; + +export default function RoundedShapesExample() { + return ( + + + + + + + ); +} +``` + +### Polygon and star variants + +Use `verticesCount` and `innerRadius` to control the shape geometry. + +```tsx PolygonShapesExample.tsx +import { Host, Shape, Row } from '@expo/ui/jetpack-compose'; +import { size } from '@expo/ui/jetpack-compose/modifiers'; + +export default function PolygonShapesExample() { + return ( + + + + + + + + ); +} +``` + +## API + +```tsx +import { Shape } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/slider.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/slider.mdx index ccbf3bf914aff9..eada5c39d07aba 100644 --- a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/slider.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/slider.mdx @@ -8,10 +8,8 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A slider component that allows users to select a value from a continuous range by dragging a thumb along a track. +Expo UI Slider matches the official Jetpack Compose [Slider API](https://developer.android.com/develop/ui/compose/components/slider) and allows selecting values from a bounded range. ## Installation @@ -19,31 +17,60 @@ A slider component that allows users to select a value from a continuous range b ## Usage - - - - - - ```tsx - import { Slider } from '@expo/ui/jetpack-compose'; - - { - setValue(value); - }} - /> - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/slider) for more information. +### Basic slider + +```tsx BasicSliderExample.tsx +import { useState } from 'react'; +import { Host, Slider } from '@expo/ui/jetpack-compose'; + +export default function BasicSliderExample() { + const [value, setValue] = useState(0.5); + + return ( + + + + ); +} +``` + +### Slider with custom range + +Use the `min` and `max` props to define the slider's value range. + +```tsx CustomRangeSliderExample.tsx +import { useState } from 'react'; +import { Host, Slider } from '@expo/ui/jetpack-compose'; + +export default function CustomRangeSliderExample() { + const [value, setValue] = useState(50); + + return ( + + + + ); +} +``` + +### Slider with steps + +Use the `steps` prop to define discrete increments. Set `steps` to `0` for continuous values. + +```tsx SteppedSliderExample.tsx +import { useState } from 'react'; +import { Host, Slider } from '@expo/ui/jetpack-compose'; + +export default function SteppedSliderExample() { + const [value, setValue] = useState(0); + + return ( + + + + ); +} +``` ## API diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/spacer.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/spacer.mdx new file mode 100644 index 00000000000000..46abec5551ce85 --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/spacer.mdx @@ -0,0 +1,68 @@ +--- +title: Spacer +description: A Jetpack Compose Spacer component for adding flexible space between elements. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Spacer matches the official Jetpack Compose [Spacer](https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/package-summary#Spacer) API and is used to add flexible or fixed-size space between elements in a layout. + +## Installation + + + +## Usage + +### Spacer with weight + +Use the `weight()` modifier to make the spacer fill available space proportionally within a `Row` or `Column`. + +```tsx SpacerWeightExample.tsx +import { Host, Row, Spacer, Text } from '@expo/ui/jetpack-compose'; +import { fillMaxWidth, weight } from '@expo/ui/jetpack-compose/modifiers'; + +export default function SpacerWeightExample() { + return ( + + + Left + + Right + + + ); +} +``` + +### Spacer with fixed size + +Use a `height` or `width` modifier to create a spacer with a fixed dimension. + +```tsx SpacerFixedSizeExample.tsx +import { Host, Column, Spacer, Text } from '@expo/ui/jetpack-compose'; +import { height } from '@expo/ui/jetpack-compose/modifiers'; + +export default function SpacerFixedSizeExample() { + return ( + + + Above + + Below (24dp gap) + + + ); +} +``` + +## API + +```tsx +import { Spacer } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/surface.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/surface.mdx new file mode 100644 index 00000000000000..baafb447d46aec --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/surface.mdx @@ -0,0 +1,90 @@ +--- +title: Surface +description: A Jetpack Compose Surface component for styled content containers. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Surface matches the official Jetpack Compose [Surface](https://developer.android.com/develop/ui/compose/components/surfaces) API and provides a container that applies Material Design surface styling including color, elevation, and content color. + +## Installation + + + +## Usage + +### Basic surface + +```tsx BasicSurfaceExample.tsx +import { Host, Surface, Text } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function BasicSurfaceExample() { + return ( + + + Content on a surface + + + ); +} +``` + +### Surface with elevation + +Use `tonalElevation` and `shadowElevation` to control the visual depth of the surface. + +```tsx SurfaceElevationExample.tsx +import { Host, Surface, Column, Text } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function SurfaceElevationExample() { + return ( + + + + Low elevation + + + High elevation + + + + ); +} +``` + +### Surface with custom colors + +Use the `color` and `contentColor` props to override the default Material theme colors. + +```tsx SurfaceCustomColorsExample.tsx +import { Host, Surface, Text } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function SurfaceCustomColorsExample() { + return ( + + + Custom colored surface + + + ); +} +``` + +## API + +```tsx +import { Surface } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/switch.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/switch.mdx index 0a7795c5c78aba..29353f9ccc0d6b 100644 --- a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/switch.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/switch.mdx @@ -8,78 +8,89 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A switch component that provides toggle functionality with different visual styles. +Expo UI Switch matches the official Jetpack Compose [Switch](https://developer.android.com/develop/ui/compose/components/switch) and [Checkbox](https://developer.android.com/develop/ui/compose/components/checkbox) APIs and supports switch, checkbox, and button variants. ## Installation -## Toggle switch - -> **Note:** also known as **Toggle**. - - - - - - - - ```tsx - import { Switch } from '@expo/ui/jetpack-compose'; - - { - setChecked(checked); - }} - color="#ff0000" - label="Play music" - variant="switch" - /> - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/switch) for more information. - -## Checkbox - - - - - - - - ```tsx - import { Switch } from '@expo/ui/jetpack-compose'; - - { - setChecked(checked); - }} - label="Play music" - color="#ff0000" - variant="checkbox" - /> - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/checkbox) for more information. +## Usage + +### Toggle switch + +Use the `variant="switch"` prop to display a standard toggle switch. + +```tsx ToggleSwitchExample.tsx +import { useState } from 'react'; +import { Host, Switch } from '@expo/ui/jetpack-compose'; + +export default function ToggleSwitchExample() { + const [checked, setChecked] = useState(false); + + return ( + + + + ); +} +``` + +### Checkbox + +Use the `variant="checkbox"` prop to display a checkbox control. + +```tsx CheckboxExample.tsx +import { useState } from 'react'; +import { Host, Switch } from '@expo/ui/jetpack-compose'; + +export default function CheckboxExample() { + const [checked, setChecked] = useState(false); + + return ( + + + + ); +} +``` + +### Button variant + +Use the `variant="button"` prop to display a toggle button. + +```tsx ButtonVariantExample.tsx +import { useState } from 'react'; +import { Host, Switch } from '@expo/ui/jetpack-compose'; + +export default function ButtonVariantExample() { + const [checked, setChecked] = useState(false); + + return ( + + + + ); +} +``` ## API diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/text.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/text.mdx new file mode 100644 index 00000000000000..fbbabc9b231819 --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/text.mdx @@ -0,0 +1,107 @@ +--- +title: Text +description: A Jetpack Compose Text component for displaying styled text. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Text matches the official Jetpack Compose [Text styling](https://developer.android.com/develop/ui/compose/text/style-text) API and displays text with Material 3 typography styles, custom fonts, and text formatting options. + +## Installation + + + +## Usage + +### Basic text + +```tsx BasicTextExample.tsx +import { Host, Text } from '@expo/ui/jetpack-compose'; + +export default function BasicTextExample() { + return ( + + Hello, world! + + ); +} +``` + +### Typography styles + +Use the `style` prop with `typography` to apply Material 3 typography presets. + +```tsx TypographyExample.tsx +import { Host, Text, Column } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function TypographyExample() { + return ( + + + Display Large + Headline Medium + Body Small + Label Large + + + ); +} +``` + +### Text with maxLines and overflow + +Control text truncation with `maxLines` and `overflow`. + +```tsx TextOverflowExample.tsx +import { Host, Text } from '@expo/ui/jetpack-compose'; +import { width } from '@expo/ui/jetpack-compose/modifiers'; + +export default function TextOverflowExample() { + return ( + + + This is a long paragraph of text that will be truncated after two lines with an ellipsis at + the end to indicate there is more content. + + + ); +} +``` + +### Styled text + +Apply custom text styles including font weight, style, size, and decoration. + +```tsx StyledTextExample.tsx +import { Host, Text, Column } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function StyledTextExample() { + return ( + + + Bold text + Italic text + Underlined text + Spaced out text + + Colored and centered + + + + ); +} +``` + +## API + +```tsx +import { Text } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/textbutton.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/textbutton.mdx new file mode 100644 index 00000000000000..4e3d83388d854a --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/textbutton.mdx @@ -0,0 +1,81 @@ +--- +title: TextButton +description: A Jetpack Compose TextButton component for text-styled buttons. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI TextButton matches the official Jetpack Compose [Text Button](https://developer.android.com/develop/ui/compose/components/button#text) API and displays a button without a background container, using only text as the visual element. + +## Installation + + + +## Usage + +### Basic text button + +```tsx BasicTextButtonExample.tsx +import { Host, TextButton } from '@expo/ui/jetpack-compose'; + +export default function BasicTextButtonExample() { + return ( + + console.log('Pressed')}>Click me + + ); +} +``` + +### Disabled text button + +Set the `disabled` prop to prevent user interaction. + +```tsx DisabledTextButtonExample.tsx +import { Host, TextButton } from '@expo/ui/jetpack-compose'; + +export default function DisabledTextButtonExample() { + return ( + + console.log('Pressed')}> + Disabled + + + ); +} +``` + +### Text button with custom color + +Use the `color` prop to change the button text color. + +```tsx CustomColorTextButtonExample.tsx +import { Host, TextButton, Column } from '@expo/ui/jetpack-compose'; + +export default function CustomColorTextButtonExample() { + return ( + + + console.log('Pink')}> + Pink button + + console.log('Green')}> + Green button + + + + ); +} +``` + +## API + +```tsx +import { TextButton } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/textinput.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/textinput.mdx index 00f25ee0607568..2bff0268bc3339 100644 --- a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/textinput.mdx +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/textinput.mdx @@ -8,10 +8,8 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A text input component that allows users to enter and edit text using native Android text fields. +Expo UI TextInput matches the official Jetpack Compose [TextField API](https://developer.android.com/develop/ui/compose/text/user-input) and supports single-line and multiline text input with various keyboard types. ## Installation @@ -19,25 +17,56 @@ A text input component that allows users to enter and edit text using native And ## Usage - - - - - - ```tsx - import { TextInput } from '@expo/ui/jetpack-compose'; - - - ``` - - - - -> See [Official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/text/user-input) for more information. +### Basic text input + +```tsx BasicTextInputExample.tsx +import { useState } from 'react'; +import { Host, TextInput } from '@expo/ui/jetpack-compose'; + +export default function BasicTextInputExample() { + const [value, setValue] = useState('Hello, world!'); + + return ( + + + + ); +} +``` + +### Multiline text input + +```tsx MultilineTextInputExample.tsx +import { useState } from 'react'; +import { Host, TextInput } from '@expo/ui/jetpack-compose'; + +export default function MultilineTextInputExample() { + const [value, setValue] = useState(''); + + return ( + + + + ); +} +``` + +### Numeric keyboard + +```tsx NumericTextInputExample.tsx +import { useState } from 'react'; +import { Host, TextInput } from '@expo/ui/jetpack-compose'; + +export default function NumericTextInputExample() { + const [value, setValue] = useState(''); + + return ( + + + + ); +} +``` ## API diff --git a/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/togglebutton.mdx b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/togglebutton.mdx new file mode 100644 index 00000000000000..533dbb658d86fc --- /dev/null +++ b/docs/pages/versions/unversioned/sdk/ui/jetpack-compose/togglebutton.mdx @@ -0,0 +1,131 @@ +--- +title: ToggleButton +description: A Jetpack Compose ToggleButton component for togglable buttons. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI ToggleButton matches the official Jetpack Compose [Toggle Button](https://developer.android.com/develop/ui/compose/components/button#toggle) API and provides a button that switches between checked and unchecked states with multiple visual variants. + +## Installation + + + +## Usage + +### Basic toggle button + +```tsx BasicToggleButtonExample.tsx +import { useState } from 'react'; +import { Host, ToggleButton } from '@expo/ui/jetpack-compose'; + +export default function BasicToggleButtonExample() { + const [checked, setChecked] = useState(false); + + return ( + + setChecked(value)} + /> + + ); +} +``` + +### Toggle button variants + +Use the `variant` prop to switch between `'default'`, `'icon'`, `'filledIcon'`, and `'outlinedIcon'` styles. + +```tsx ToggleButtonVariantsExample.tsx +import { useState } from 'react'; +import { Host, ToggleButton, Column } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function ToggleButtonVariantsExample() { + const [checked1, setChecked1] = useState(false); + const [checked2, setChecked2] = useState(true); + const [checked3, setChecked3] = useState(false); + const [checked4, setChecked4] = useState(true); + + return ( + + + setChecked1(value)} + /> + setChecked2(value)} + /> + setChecked3(value)} + /> + setChecked4(value)} + /> + + + ); +} +``` + +### Toggle button with custom color + +```tsx CustomColorToggleButtonExample.tsx +import { useState } from 'react'; +import { Host, ToggleButton } from '@expo/ui/jetpack-compose'; + +export default function CustomColorToggleButtonExample() { + const [checked, setChecked] = useState(true); + + return ( + + setChecked(value)} + /> + + ); +} +``` + +### Disabled toggle button + +```tsx DisabledToggleButtonExample.tsx +import { Host, ToggleButton } from '@expo/ui/jetpack-compose'; + +export default function DisabledToggleButtonExample() { + return ( + + + + ); +} +``` + +## API + +```tsx +import { ToggleButton } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/alertdialog.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/alertdialog.json new file mode 100644 index 00000000000000..3b196592f2d7e7 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/alertdialog.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/alertdialog","variant":"project","kind":1,"children":[{"name":"AlertDialogButtonColors","variant":"declaration","kind":2097152,"children":[{"name":"containerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The background color of the button."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"contentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text color of the button."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AlertDialogProps","variant":"declaration","kind":2097152,"children":[{"name":"confirmButtonColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The colors for the confirm button."}]},"type":{"type":"reference","name":"AlertDialogButtonColors","package":"@expo/ui"}},{"name":"confirmButtonText","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text of the confirm button of the alert dialog."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"dismissButtonColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The colors for the dismiss button."}]},"type":{"type":"reference","name":"AlertDialogButtonColors","package":"@expo/ui"}},{"name":"dismissButtonText","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text of the dismiss button of the alert dialog."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onConfirmPressed","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback that is called when the user tries to confirm the dialog."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"onDismissPressed","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback that is called when the user tries to dismiss the dialog."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"text","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text of the alert dialog."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"title","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The title of the alert dialog."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"visible","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the alert dialog is visible."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"NativeAlertDialogProps","variant":"declaration","kind":2097152,"type":{"type":"reference","name":"AlertDialogProps","package":"@expo/ui"}},{"name":"AlertDialog","variant":"declaration","kind":64,"signatures":[{"name":"AlertDialog","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders an "},{"kind":"code","text":"`AlertDialog`"},{"kind":"text","text":" component."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"AlertDialogProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/basicalertdialog.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/basicalertdialog.json new file mode 100644 index 00000000000000..9e429561732ca8 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/basicalertdialog.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/basicalertdialog","variant":"project","kind":1,"children":[{"name":"BasicAlertDialogProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The content to display inside the dialog."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onDismissRequest","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback that is called when the user tries to dismiss the dialog\n(e.g. by tapping outside of it or pressing the back button)."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}}]},{"name":"BasicAlertDialog","variant":"declaration","kind":64,"signatures":[{"name":"BasicAlertDialog","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A basic alert dialog that provides a blank container for custom content.\nUnlike "},{"kind":"code","text":"`AlertDialog`"},{"kind":"text","text":", this component does not have structured title/text/buttons slots."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"BasicAlertDialogProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/bottomsheet.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/bottomsheet.json index 7bc06de2e2647b..70bd3b3b8a1f54 100644 --- a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/bottomsheet.json +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/bottomsheet.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/bottomsheet","variant":"project","kind":1,"children":[{"name":"BottomSheetProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The children of the "},{"kind":"code","text":"`BottomSheet`"},{"kind":"text","text":" component."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"isOpened","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Whether the "},{"kind":"code","text":"`BottomSheet`"},{"kind":"text","text":" is opened."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"onIsOpenedChange","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Callback function that is called when the "},{"kind":"code","text":"`BottomSheet`"},{"kind":"text","text":" is opened."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"isOpened","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"boolean"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"skipPartiallyExpanded","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Immediately opens the bottom sheet in full screen."}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"BottomSheet","variant":"declaration","kind":64,"signatures":[{"name":"BottomSheet","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"BottomSheetProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/bottomsheet","variant":"project","kind":1,"children":[{"name":"BottomSheetProps","variant":"declaration","kind":2097152,"comment":{"summary":[],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use "},{"kind":"code","text":"`ModalBottomSheetProps`"},{"kind":"text","text":" instead."}]}]},"type":{"type":"reference","name":"ModalBottomSheetProps","package":"@expo/ui"}},{"name":"ModalBottomSheetProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The children of the "},{"kind":"code","text":"`ModalBottomSheet`"},{"kind":"text","text":" component."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onDismissRequest","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Callback function that is called when the bottom sheet is dismissed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"skipPartiallyExpanded","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Immediately opens the bottom sheet in full screen."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"BottomSheet","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use "},{"kind":"code","text":"`ModalBottomSheet`"},{"kind":"text","text":" instead."}]}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A Material Design modal bottom sheet."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ModalBottomSheetProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}},"defaultValue":"ModalBottomSheet"},{"name":"ModalBottomSheet","variant":"declaration","kind":64,"signatures":[{"name":"ModalBottomSheet","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A Material Design modal bottom sheet."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ModalBottomSheetProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/box.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/box.json new file mode 100644 index 00000000000000..840840c443f428 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/box.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/box","variant":"project","kind":1,"children":[{"name":"BoxProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"contentAlignment","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Alignment of children within the box."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"ContentAlignment"},"name":"ContentAlignment","package":"@expo/ui"}},{"name":"floatingToolbarExitAlwaysScrollBehavior","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Scroll behavior for the floating toolbar exit."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"FloatingToolbarExitAlwaysScrollBehavior"},"name":"FloatingToolbarExitAlwaysScrollBehavior","package":"@expo/ui"}}]}},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"PrimitiveBaseProps"},"name":"PrimitiveBaseProps","package":"@expo/ui"}]}},{"name":"Box","variant":"declaration","kind":64,"signatures":[{"name":"Box","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"BoxProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/button.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/button.json index 056bb677992788..9fe096c0dfdc70 100644 --- a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/button.json +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/button.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/button","variant":"project","kind":1,"children":[{"name":"ButtonElementColors","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Colors for button's core elements."}]},"children":[{"name":"containerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"contentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"disabledContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"disabledContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}}]},{"name":"ButtonProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text to display inside the button."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}},{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"React.JSX.Element","package":"@types/react"}]}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Button color."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Disabled state of the button."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for button's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","name":"ButtonElementColors","package":"@expo/ui"}},{"name":"leadingIcon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A string describing the leading icon to display in the button.\nUses Material Icons on Android."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Button/types.ts","qualifiedName":"MaterialIcon"},"name":"MaterialIcon","package":"@expo/ui"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A callback that is called when the button is pressed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"shape","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Shape/index.tsx","qualifiedName":"ShapeJSXElement"},"name":"ShapeJSXElement","package":"@expo/ui"}},{"name":"systemImage","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A string describing the system image to display in the button.\nUses Material Icons on Android."}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use "},{"kind":"code","text":"`leadingIcon`"},{"kind":"text","text":" instead."}]}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Button/types.ts","qualifiedName":"MaterialIcon"},"name":"MaterialIcon","package":"@expo/ui"}},{"name":"trailingIcon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A string describing the trailing icon to display in the button.\nUses Material Icons on Android."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Button/types.ts","qualifiedName":"MaterialIcon"},"name":"MaterialIcon","package":"@expo/ui"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The button variant."}]},"type":{"type":"reference","name":"ButtonVariant","package":"@expo/ui"}}]},{"name":"ButtonVariant","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"The built-in button styles available on Android.\n- "},{"kind":"code","text":"`outlined`"},{"kind":"text","text":" - A button with an outline.\n- "},{"kind":"code","text":"`elevated`"},{"kind":"text","text":" - A filled button with a shadow."}]},"type":{"type":"union","types":[{"type":"literal","value":"default"},{"type":"literal","value":"bordered"},{"type":"literal","value":"borderless"},{"type":"literal","value":"outlined"},{"type":"literal","value":"elevated"}]}},{"name":"Button","variant":"declaration","kind":64,"signatures":[{"name":"Button","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Displays a native button component."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ButtonProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/button","variant":"project","kind":1,"children":[{"name":"ButtonElementColors","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Colors for button's core elements."}]},"children":[{"name":"containerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"contentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabledContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabledContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"ButtonProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text to display inside the button."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}},{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"React.JSX.Element","package":"@types/react"}]}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Button color."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Disabled state of the button."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for button's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","name":"ButtonElementColors","package":"@expo/ui"}},{"name":"leadingIcon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A string describing the leading icon to display in the button.\nUses Material Icons on Android."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Button/types.ts","qualifiedName":"MaterialIcon"},"name":"MaterialIcon","package":"@expo/ui"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A callback that is called when the button is pressed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"shape","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Shape/index.tsx","qualifiedName":"ShapeJSXElement"},"name":"ShapeJSXElement","package":"@expo/ui"}},{"name":"systemImage","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A string describing the system image to display in the button.\nUses Material Icons on Android."}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use "},{"kind":"code","text":"`leadingIcon`"},{"kind":"text","text":" instead."}]}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Button/types.ts","qualifiedName":"MaterialIcon"},"name":"MaterialIcon","package":"@expo/ui"}},{"name":"trailingIcon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A string describing the trailing icon to display in the button.\nUses Material Icons on Android."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Button/types.ts","qualifiedName":"MaterialIcon"},"name":"MaterialIcon","package":"@expo/ui"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The button variant."}]},"type":{"type":"reference","name":"ButtonVariant","package":"@expo/ui"}}]},{"name":"ButtonVariant","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"The built-in button styles available on Android.\n- "},{"kind":"code","text":"`outlined`"},{"kind":"text","text":" - A button with an outline.\n- "},{"kind":"code","text":"`elevated`"},{"kind":"text","text":" - A filled button with a shadow."}]},"type":{"type":"union","types":[{"type":"literal","value":"default"},{"type":"literal","value":"bordered"},{"type":"literal","value":"borderless"},{"type":"literal","value":"outlined"},{"type":"literal","value":"elevated"}]}},{"name":"Button","variant":"declaration","kind":64,"signatures":[{"name":"Button","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Displays a native button component."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ButtonProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/card.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/card.json new file mode 100644 index 00000000000000..ce22c1ee42b412 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/card.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/card","variant":"project","kind":1,"children":[{"name":"CardElementColors","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Colors for card's core elements."}]},"children":[{"name":"containerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"contentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"CardProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The content to display inside the card."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The background color of the card."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for card's core elements."}]},"type":{"type":"reference","name":"CardElementColors","package":"@expo/ui"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The variant of the card.\n- 'default' - A filled card with no outline.\n- 'elevated' - A filled card with elevation/shadow.\n- 'outlined' - A card with an outline border."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'default'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"default"},{"type":"literal","value":"elevated"},{"type":"literal","value":"outlined"}]}}]},{"name":"Card","variant":"declaration","kind":64,"signatures":[{"name":"Card","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A card component that provides a surface for content."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"CardProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/carousel.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/carousel.json new file mode 100644 index 00000000000000..1ac2fa44cf3067 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/carousel.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/carousel","variant":"project","kind":1,"children":[{"name":"CarouselProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Children to render"}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"contentPadding","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Padding for carousel content (dp or object)"}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"reference","name":"PaddingValuesRecord","package":"@expo/ui"}]}},{"name":"flingBehavior","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Fling behavior type"}]},"type":{"type":"reference","name":"FlingBehaviorType","package":"@expo/ui"}},{"name":"itemSpacing","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Spacing between items (dp)"}]},"type":{"type":"intrinsic","name":"number"}},{"name":"itemWidth","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Item width (dp) for unconstrained variant"}]},"type":{"type":"intrinsic","name":"number"}},{"name":"maxSmallItemWidth","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Maximum small item width (dp)"}]},"type":{"type":"intrinsic","name":"number"}},{"name":"minSmallItemWidth","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Minimum small item width (dp)"}]},"type":{"type":"intrinsic","name":"number"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"preferredItemWidth","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Preferred item width (dp) for multiBrowse variant"}]},"type":{"type":"intrinsic","name":"number"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Carousel variant"}]},"type":{"type":"reference","name":"CarouselVariant","package":"@expo/ui"}}]},{"name":"CarouselVariant","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"multiBrowse"},{"type":"literal","value":"unconstrained"}]}},{"name":"FlingBehaviorType","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"singleAdvance"},{"type":"literal","value":"noSnap"}]}},{"name":"PaddingValuesRecord","variant":"declaration","kind":2097152,"children":[{"name":"bottom","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"end","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"start","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"top","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}}]},{"name":"Carousel","variant":"declaration","kind":64,"signatures":[{"name":"Carousel","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"CarouselProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"transformCarouselProps","variant":"declaration","kind":64,"signatures":[{"name":"transformCarouselProps","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"CarouselProps","package":"@expo/ui"}}],"type":{"type":"reference","name":"CarouselProps","package":"@expo/ui"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/column.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/column.json new file mode 100644 index 00000000000000..3313d9bdbffdd6 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/column.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/column","variant":"project","kind":1,"children":[{"name":"ColumnProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"horizontalAlignment","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Horizontal alignment of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"HorizontalAlignment"},"name":"HorizontalAlignment","package":"@expo/ui"}},{"name":"horizontalArrangement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Horizontal arrangement of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"HorizontalArrangement"},"name":"HorizontalArrangement","package":"@expo/ui"}},{"name":"verticalAlignment","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Vertical alignment of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"VerticalAlignment"},"name":"VerticalAlignment","package":"@expo/ui"}},{"name":"verticalArrangement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Vertical arrangement of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"VerticalArrangement"},"name":"VerticalArrangement","package":"@expo/ui"}}]}},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"PrimitiveBaseProps"},"name":"PrimitiveBaseProps","package":"@expo/ui"}]}},{"name":"Column","variant":"declaration","kind":64,"signatures":[{"name":"Column","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ColumnProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/contextmenu.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/contextmenu.json index 7b8104fbce683c..3bf7a02324bdd0 100644 --- a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/contextmenu.json +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/contextmenu.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/contextmenu","variant":"project","kind":1,"children":[{"name":"ContextMenuContentProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ContextMenu/index.tsx","qualifiedName":"SubmenuElement"},"name":"SubmenuElement","package":"@expo/ui"},{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ContextMenu/index.tsx","qualifiedName":"SubmenuElement"},"name":"SubmenuElement","package":"@expo/ui"}}]}}]},{"name":"ContextMenuProps","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Props of the "},{"kind":"code","text":"`ContextMenu`"},{"kind":"text","text":" component."}]},"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The contents of the submenu are used as an anchor for the context menu.\nThe children will be wrapped in a pressable element, which triggers opening of the context menu."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The color of the container holding the context menu items."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional styles to apply to the "},{"kind":"code","text":"`ContextMenu`"},{"kind":"text","text":"."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"ViewStyle"},"name":"ViewStyle","package":"react-native"}],"name":"StyleProp","package":"react-native"}}]},{"name":"ContextMenu","variant":"declaration","kind":64,"children":[{"name":"Items","variant":"declaration","kind":1024,"type":{"type":"query","queryType":{"type":"reference","name":"Items","package":"@expo/ui"}}},{"name":"Preview","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]}}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}},{"name":"Trigger","variant":"declaration","kind":1024,"type":{"type":"query","queryType":{"type":"reference","name":"Trigger","package":"@expo/ui"}}}],"signatures":[{"name":"ContextMenu","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ContextMenuProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Items","variant":"declaration","kind":64,"children":[{"name":"tag","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}],"signatures":[{"name":"Items","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ContextMenuContentProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Preview","variant":"declaration","kind":64,"signatures":[{"name":"Preview","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]}}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Submenu","variant":"declaration","kind":64,"signatures":[{"name":"Submenu","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ContextMenu/Submenu.tsx","qualifiedName":"SubmenuProps"},"name":"SubmenuProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Trigger","variant":"declaration","kind":64,"children":[{"name":"tag","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}],"signatures":[{"name":"Trigger","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]}}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/contextmenu","variant":"project","kind":1,"children":[{"name":"ContextMenuContentProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ContextMenu/index.tsx","qualifiedName":"SubmenuElement"},"name":"SubmenuElement","package":"@expo/ui"},{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ContextMenu/index.tsx","qualifiedName":"SubmenuElement"},"name":"SubmenuElement","package":"@expo/ui"}}]}}]},{"name":"ContextMenuProps","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Props of the "},{"kind":"code","text":"`ContextMenu`"},{"kind":"text","text":" component."}]},"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The contents of the submenu are used as an anchor for the context menu.\nThe children will be wrapped in a pressable element, which triggers opening of the context menu."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The color of the container holding the context menu items."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional styles to apply to the "},{"kind":"code","text":"`ContextMenu`"},{"kind":"text","text":"."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"ViewStyle"},"name":"ViewStyle","package":"react-native"}],"name":"StyleProp","package":"react-native"}}]},{"name":"ContextMenu","variant":"declaration","kind":64,"children":[{"name":"Items","variant":"declaration","kind":1024,"type":{"type":"query","queryType":{"type":"reference","name":"Items","package":"@expo/ui"}}},{"name":"Preview","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]}}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}},{"name":"Trigger","variant":"declaration","kind":1024,"type":{"type":"query","queryType":{"type":"reference","name":"Trigger","package":"@expo/ui"}}}],"signatures":[{"name":"ContextMenu","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ContextMenuProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Items","variant":"declaration","kind":64,"children":[{"name":"tag","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}],"signatures":[{"name":"Items","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ContextMenuContentProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Preview","variant":"declaration","kind":64,"signatures":[{"name":"Preview","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]}}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Submenu","variant":"declaration","kind":64,"signatures":[{"name":"Submenu","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ContextMenu/Submenu.tsx","qualifiedName":"SubmenuProps"},"name":"SubmenuProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Trigger","variant":"declaration","kind":64,"children":[{"name":"tag","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}],"signatures":[{"name":"Trigger","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]}}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/datetimepicker.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/datetimepicker.json index 5fc41fd7147571..bc37658f4d5097 100644 --- a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/datetimepicker.json +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/datetimepicker.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/datetimepicker","variant":"project","kind":1,"children":[{"name":"AndroidVariant","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"picker"},{"type":"literal","value":"input"}]}},{"name":"DateTimePickerProps","variant":"declaration","kind":2097152,"children":[{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The tint color to use on the picker elements."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"displayedComponents","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The components that the picker should display.\nOn Android, you can have a picker that selects just the date or just the time.\n"},{"kind":"code","text":"`dateAndTime`"},{"kind":"text","text":" is only available on iOS and will result in a date picker on Android.\nOn iOS, you can have a picker that selects both date and time."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'date'"}]}]},"type":{"type":"reference","name":"DisplayedComponents","package":"@expo/ui"}},{"name":"initialDate","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The initial date to display on the picker."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"literal","value":null}]}},{"name":"is24Hour","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Determines what format the clock should be displayed in on Android."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onDateSelected","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is called when a date is selected."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"date","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Date"},"name":"Date","package":"typescript"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"showVariantToggle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Show to button to toggle between variants on Android."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The variant of the picker, which determines its appearance and behavior."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'picker'"}]}]},"type":{"type":"reference","name":"AndroidVariant","package":"@expo/ui"}}]},{"name":"DisplayedComponents","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"date"},{"type":"literal","value":"hourAndMinute"},{"type":"literal","value":"dateAndTime"}]}},{"name":"DateTimePicker","variant":"declaration","kind":64,"signatures":[{"name":"DateTimePicker","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders a "},{"kind":"code","text":"`DateTimePicker`"},{"kind":"text","text":" component."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"DateTimePickerProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/datetimepicker","variant":"project","kind":1,"children":[{"name":"AndroidVariant","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"picker"},{"type":"literal","value":"input"}]}},{"name":"DateTimePickerProps","variant":"declaration","kind":2097152,"children":[{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The tint color to use on the picker elements."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"displayedComponents","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The components that the picker should display.\nOn Android, you can have a picker that selects just the date or just the time.\n"},{"kind":"code","text":"`dateAndTime`"},{"kind":"text","text":" is only available on iOS and will result in a date picker on Android.\nOn iOS, you can have a picker that selects both date and time."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'date'"}]}]},"type":{"type":"reference","name":"DisplayedComponents","package":"@expo/ui"}},{"name":"initialDate","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The initial date to display on the picker."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"literal","value":null}]}},{"name":"is24Hour","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Determines what format the clock should be displayed in on Android."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onDateSelected","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is called when a date is selected."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"date","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Date"},"name":"Date","package":"typescript"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"showVariantToggle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Show to button to toggle between variants on Android."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The variant of the picker, which determines its appearance and behavior."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'picker'"}]}]},"type":{"type":"reference","name":"AndroidVariant","package":"@expo/ui"}}]},{"name":"DisplayedComponents","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"date"},{"type":"literal","value":"hourAndMinute"},{"type":"literal","value":"dateAndTime"}]}},{"name":"DateTimePicker","variant":"declaration","kind":64,"signatures":[{"name":"DateTimePicker","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders a "},{"kind":"code","text":"`DateTimePicker`"},{"kind":"text","text":" component."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"DateTimePickerProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/divider.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/divider.json new file mode 100644 index 00000000000000..dcf884d442bb23 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/divider.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/divider","variant":"project","kind":1,"children":[{"name":"DividerProps","variant":"declaration","kind":2097152,"children":[{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}}]},{"name":"Divider","variant":"declaration","kind":64,"signatures":[{"name":"Divider","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A visual element that can be used to separate other content."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"DividerProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/dockedsearchbar.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/dockedsearchbar.json new file mode 100644 index 00000000000000..13d8a3587ec36e --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/dockedsearchbar.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/dockedsearchbar","variant":"project","kind":1,"children":[{"name":"DockedSearchBarProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The children of the component."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onQueryChange","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is called when the search query changes."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"query","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"void"}}]}}}]},{"name":"DockedSearchBar","variant":"declaration","kind":64,"children":[{"name":"LeadingIcon","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/DockedSearchBar/index.tsx","qualifiedName":"LeadingIconProps"},"name":"LeadingIconProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}},{"name":"Placeholder","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/DockedSearchBar/index.tsx","qualifiedName":"PlaceholderProps"},"name":"PlaceholderProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}}],"signatures":[{"name":"DockedSearchBar","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"DockedSearchBarProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"DockedSearchBarLeadingIcon","variant":"declaration","kind":64,"signatures":[{"name":"DockedSearchBarLeadingIcon","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/DockedSearchBar/index.tsx","qualifiedName":"LeadingIconProps"},"name":"LeadingIconProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"DockedSearchBarPlaceholder","variant":"declaration","kind":64,"signatures":[{"name":"DockedSearchBarPlaceholder","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/DockedSearchBar/index.tsx","qualifiedName":"PlaceholderProps"},"name":"PlaceholderProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/filterchip.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/filterchip.json new file mode 100644 index 00000000000000..1f6e5d8aa785af --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/filterchip.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/filterchip","variant":"project","kind":1,"children":[{"name":"FilterChipProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Children containing LeadingIcon and TrailingIcon slots."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"enabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the chip is enabled and can be interacted with."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"label","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The text label to display on the chip."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback fired when the chip is clicked."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"selected","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Whether the chip is currently selected."}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"FilterChip","variant":"declaration","kind":64,"children":[{"name":"LeadingIcon","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Leading icon slot for FilterChip."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/FilterChip/index.tsx","qualifiedName":"SlotChildProps"},"name":"SlotChildProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}},{"name":"TrailingIcon","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Trailing icon slot for FilterChip."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/FilterChip/index.tsx","qualifiedName":"SlotChildProps"},"name":"SlotChildProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}}],"signatures":[{"name":"FilterChip","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A filter chip component following Material 3 design guidelines.\nSupports slot-based "},{"kind":"code","text":"`LeadingIcon`"},{"kind":"text","text":" and "},{"kind":"code","text":"`TrailingIcon`"},{"kind":"text","text":" children."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"FilterChipProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/flowrow.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/flowrow.json new file mode 100644 index 00000000000000..e0e29e85982f00 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/flowrow.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/flowrow","variant":"project","kind":1,"children":[{"name":"FlowRowProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"horizontalArrangement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Horizontal arrangement of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"HorizontalArrangement"},"name":"HorizontalArrangement","package":"@expo/ui"}},{"name":"verticalArrangement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Vertical arrangement of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"VerticalArrangement"},"name":"VerticalArrangement","package":"@expo/ui"}}]}},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"PrimitiveBaseProps"},"name":"PrimitiveBaseProps","package":"@expo/ui"}]}},{"name":"FlowRow","variant":"declaration","kind":64,"signatures":[{"name":"FlowRow","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"FlowRowProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/horizontalfloatingtoolbar.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/horizontalfloatingtoolbar.json new file mode 100644 index 00000000000000..4334a33b016461 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/horizontalfloatingtoolbar.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/horizontalfloatingtoolbar","variant":"project","kind":1,"children":[{"name":"FloatingActionButtonProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The children of the component."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A callback that is called when the button is pressed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}}]},{"name":"HorizontalFloatingToolbarProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The children of the component."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The variant of the horizontal floating toolbar."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'standard'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"standard"},{"type":"literal","value":"vibrant"}]}}]},{"name":"HorizontalFloatingToolbar","variant":"declaration","kind":64,"children":[{"name":"FloatingActionButton","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"FloatingActionButton component for HorizontalFloatingToolbar.\nThis component marks its children to be rendered in the FAB slot."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"FloatingActionButtonProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}}],"signatures":[{"name":"HorizontalFloatingToolbar","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders a "},{"kind":"code","text":"`HorizontalFloatingToolbar`"},{"kind":"text","text":" component.\nA horizontal toolbar that floats above content, typically used for action buttons."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"HorizontalFloatingToolbarProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"HorizontalFloatingToolbarFloatingActionButton","variant":"declaration","kind":64,"signatures":[{"name":"HorizontalFloatingToolbarFloatingActionButton","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"FloatingActionButton component for HorizontalFloatingToolbar.\nThis component marks its children to be rendered in the FAB slot."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"FloatingActionButtonProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/host.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/host.json index 0d89ace06809bb..95fb36ef0c1662 100644 --- a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/host.json +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/host.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/host","variant":"project","kind":1,"children":[{"name":"HostProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"colorScheme","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The color scheme of the host view."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Utilities/Appearance.d.ts","qualifiedName":"ColorSchemeName"},"name":"ColorSchemeName","package":"react-native"}},{"name":"ignoreSafeAreaKeyboardInsets","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the Compose content will not perform keyboard avoidance behaviour when keyboard is shown.\nCan be only set once on mount."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"layoutDirection","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The layout direction for the content.\nDefaults to the current locale direction from I18nManager."}]},"type":{"type":"union","types":[{"type":"literal","value":"leftToRight"},{"type":"literal","value":"rightToLeft"}]}},{"name":"matchContents","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When true, the host view will update its size in the React Native view tree to match the content's layout from Jetpack Compose.\nCan be only set once on mount."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"boolean"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"horizontal","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"vertical","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}}]}}]}},{"name":"onLayoutContent","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is triggered when the Jetpack Compose content completes its layout.\nProvides the current dimensions of the content, which may change as the content updates."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"event","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"nativeEvent","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"height","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}},{"name":"width","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}}]}}}]}}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"ViewStyle"},"name":"ViewStyle","package":"react-native"}],"name":"StyleProp","package":"react-native"}},{"name":"useViewportSizeMeasurement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When true and no explicit size is provided, the host will use the viewport size as the proposed size for Compose layout.\nThis is particularly useful for views that need to fill their available space."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]}},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout.tsx","qualifiedName":"PrimitiveBaseProps"},"name":"PrimitiveBaseProps","package":"@expo/ui"}]}},{"name":"Host","variant":"declaration","kind":64,"signatures":[{"name":"Host","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"HostProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/host","variant":"project","kind":1,"children":[{"name":"HostProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"colorScheme","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The color scheme of the host view."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Utilities/Appearance.d.ts","qualifiedName":"ColorSchemeName"},"name":"ColorSchemeName","package":"react-native"}},{"name":"ignoreSafeAreaKeyboardInsets","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the Compose content will not perform keyboard avoidance behaviour when keyboard is shown.\nCan be only set once on mount."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"layoutDirection","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The layout direction for the content.\nDefaults to the current locale direction from I18nManager."}]},"type":{"type":"union","types":[{"type":"literal","value":"leftToRight"},{"type":"literal","value":"rightToLeft"}]}},{"name":"matchContents","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When true, the host view will update its size in the React Native view tree to match the content's layout from Jetpack Compose.\nCan be only set once on mount."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"boolean"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"horizontal","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"vertical","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}}]}}]}},{"name":"onLayoutContent","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is triggered when the Jetpack Compose content completes its layout.\nProvides the current dimensions of the content, which may change as the content updates."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"event","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"nativeEvent","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"height","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}},{"name":"width","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}}]}}}]}}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"ViewStyle"},"name":"ViewStyle","package":"react-native"}],"name":"StyleProp","package":"react-native"}},{"name":"useViewportSizeMeasurement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When true and no explicit size is provided, the host will use the viewport size as the proposed size for Compose layout.\nThis is particularly useful for views that need to fill their available space."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]}},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"PrimitiveBaseProps"},"name":"PrimitiveBaseProps","package":"@expo/ui"}]}},{"name":"Host","variant":"declaration","kind":64,"signatures":[{"name":"Host","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"HostProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/icon.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/icon.json new file mode 100644 index 00000000000000..6da3ec7c1b4ab4 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/icon.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/icon","variant":"project","kind":1,"children":[{"name":"IconProps","variant":"declaration","kind":2097152,"children":[{"name":"contentDescription","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Accessibility label for the icon.\nUsed by screen readers to describe the icon to users."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component.\nAllows you to apply layout and styling modifiers to the icon."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n```"}]}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"size","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The size of the icon in density-independent pixels (dp).\nIf not specified, the icon will use its intrinsic size."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n```"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"source","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The source of the icon. Can be a URI string or the result of "},{"kind":"code","text":"`require()`"},{"kind":"text","text":".\nOn Android, supports XML vector drawables loaded via Metro bundler."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n\n```"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Image/Image.d.ts","qualifiedName":"ImageSourcePropType"},"name":"ImageSourcePropType","package":"react-native"}},{"name":"tintColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The tint color to apply to the icon.\nAccepts hex strings, named colors, or RGB arrays."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n\n```"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"Icon","variant":"declaration","kind":64,"signatures":[{"name":"Icon","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Displays an icon from an XML vector drawable or other image source.\n\nThe Icon component renders vector graphics and images with support for\ntinting, sizing, and accessibility features. On Android, it natively\nsupports XML vector drawables loaded via Metro bundler using "},{"kind":"code","text":"`require()`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"text","text":"Basic usage:\n"},{"kind":"code","text":"```tsx\nimport { Icon } from 'expo-ui';\n\n\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"With styling:\n"},{"kind":"code","text":"```tsx\n\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"With modifiers:\n"},{"kind":"code","text":"```tsx\n\n```"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"IconProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/iconbutton.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/iconbutton.json new file mode 100644 index 00000000000000..6fc644174d5639 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/iconbutton.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/iconbutton","variant":"project","kind":1,"children":[{"name":"IconButtonProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text to display inside the button."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"React.JSX.Element","package":"@types/react"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Button color."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Disabled state of the button."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for button's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Button/index.tsx","qualifiedName":"ButtonElementColors"},"name":"ButtonElementColors","package":"@expo/ui"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A callback that is called when the button is pressed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"shape","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Shape/index.tsx","qualifiedName":"ShapeJSXElement"},"name":"ShapeJSXElement","package":"@expo/ui"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The button variant."}]},"type":{"type":"reference","name":"IconButtonVariant","package":"@expo/ui"}}]},{"name":"IconButtonVariant","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"The built-in button styles available on Android.\n- "},{"kind":"code","text":"`outlined`"},{"kind":"text","text":" - A button with an outline.\n- "},{"kind":"code","text":"`elevated`"},{"kind":"text","text":" - A filled button with a shadow."}]},"type":{"type":"union","types":[{"type":"literal","value":"default"},{"type":"literal","value":"bordered"},{"type":"literal","value":"outlined"}]}},{"name":"IconButton","variant":"declaration","kind":64,"signatures":[{"name":"IconButton","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Displays a native button component."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"IconButtonProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/lazycolumn.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/lazycolumn.json new file mode 100644 index 00000000000000..de2b7f868412e2 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/lazycolumn.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/lazycolumn","variant":"project","kind":1,"children":[{"name":"ContentPadding","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Content padding values for LazyColumn."}]},"children":[{"name":"bottom","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Bottom padding in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"end","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"End padding in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"start","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Start padding in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"top","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Top padding in dp."}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"LazyColumnProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The content to display inside the lazy column."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"contentPadding","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Content padding in dp."}]},"type":{"type":"reference","name":"ContentPadding","package":"@expo/ui"}},{"name":"horizontalAlignment","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The horizontal alignment of items."}]},"type":{"type":"union","types":[{"type":"literal","value":"start"},{"type":"literal","value":"end"},{"type":"literal","value":"center"}]}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"verticalArrangement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The vertical arrangement of items.\nCan be a preset string or an object with "},{"kind":"code","text":"`spacedBy`"},{"kind":"text","text":" to specify spacing in dp."}]},"type":{"type":"union","types":[{"type":"literal","value":"top"},{"type":"literal","value":"bottom"},{"type":"literal","value":"center"},{"type":"literal","value":"spaceBetween"},{"type":"literal","value":"spaceAround"},{"type":"literal","value":"spaceEvenly"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"spacedBy","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}}]}}]}}]},{"name":"LazyColumn","variant":"declaration","kind":64,"signatures":[{"name":"LazyColumn","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A lazy column component that efficiently displays a vertically scrolling list."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"LazyColumnProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/listitem.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/listitem.json new file mode 100644 index 00000000000000..0ffdffba87a6f9 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/listitem.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/listitem","variant":"project","kind":1,"children":[{"name":"ListItemColors","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Colors for list item's core elements."}]},"children":[{"name":"containerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"headlineColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"leadingIconColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"overlineColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"supportingColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"trailingIconColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"ListItemProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Children containing Leading and Trailing slots."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The background color of the list item."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for list item's core elements."}]},"type":{"type":"reference","name":"ListItemColors","package":"@expo/ui"}},{"name":"headline","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The main text content of the list item."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback that is called when the list item is pressed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"overlineText","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional overline text displayed above the headline."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"supportingText","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional supporting text displayed below the headline."}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"ListItem","variant":"declaration","kind":64,"children":[{"name":"Leading","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Leading content slot for ListItem."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ListItem/index.tsx","qualifiedName":"LeadingProps"},"name":"LeadingProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}},{"name":"SupportingContent","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Custom supporting content slot for ListItem.\nWhen provided, this takes precedence over the "},{"kind":"code","text":"`supportingText`"},{"kind":"text","text":" prop."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ListItem/index.tsx","qualifiedName":"SupportingContentProps"},"name":"SupportingContentProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}},{"name":"Trailing","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Trailing content slot for ListItem."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ListItem/index.tsx","qualifiedName":"TrailingProps"},"name":"TrailingProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}}],"signatures":[{"name":"ListItem","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A list item component following Material 3 design guidelines."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ListItemProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"ListItemLeading","variant":"declaration","kind":64,"signatures":[{"name":"ListItemLeading","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Leading content slot for ListItem."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ListItem/index.tsx","qualifiedName":"LeadingProps"},"name":"LeadingProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"ListItemSupportingContent","variant":"declaration","kind":64,"signatures":[{"name":"ListItemSupportingContent","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Custom supporting content slot for ListItem.\nWhen provided, this takes precedence over the "},{"kind":"code","text":"`supportingText`"},{"kind":"text","text":" prop."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ListItem/index.tsx","qualifiedName":"SupportingContentProps"},"name":"SupportingContentProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"ListItemTrailing","variant":"declaration","kind":64,"signatures":[{"name":"ListItemTrailing","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Trailing content slot for ListItem."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ListItem/index.tsx","qualifiedName":"TrailingProps"},"name":"TrailingProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/modifiers.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/modifiers.json new file mode 100644 index 00000000000000..0cbe57b4e29204 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/modifiers.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/modifiers","variant":"project","kind":1,"children":[{"name":"Alignment","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"topStart"},{"type":"literal","value":"topCenter"},{"type":"literal","value":"topEnd"},{"type":"literal","value":"centerStart"},{"type":"literal","value":"center"},{"type":"literal","value":"centerEnd"},{"type":"literal","value":"bottomStart"},{"type":"literal","value":"bottomCenter"},{"type":"literal","value":"bottomEnd"},{"type":"literal","value":"top"},{"type":"literal","value":"centerVertically"},{"type":"literal","value":"bottom"},{"type":"literal","value":"start"},{"type":"literal","value":"centerHorizontally"},{"type":"literal","value":"end"}]}},{"name":"BuiltinShape","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Built-in Jetpack Compose shape for the clip modifier."}]},"type":{"type":"union","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"rectangle"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"circle"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"bottomEnd","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"bottomStart","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"radius","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"topEnd","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"topStart","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"roundedCorner"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"bottomEnd","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"bottomStart","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"radius","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"topEnd","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"topStart","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"cutCorner"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"name","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/index.ts","qualifiedName":"MaterialShapeName"},"name":"MaterialShapeName","package":"@expo/ui"}},{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"material"}}]}}]}},{"name":"ExpoModifier","variant":"declaration","kind":2097152,"comment":{"summary":[],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use ModifierConfig instead. ExpoModifier (SharedRef pattern) has been replaced\nwith JSON Config pattern for better DX and platform consistency."}]}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}},{"name":"Shapes","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"Predefined shapes for use with the "},{"kind":"code","text":"`clip`"},{"kind":"text","text":" modifier."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nclip(Shapes.Circle)\nclip(Shapes.RoundedCorner(16))\nclip(Shapes.RoundedCorner({ topStart: 8, bottomEnd: 16 }))\nclip(Shapes.Material.Heart)\n```"}]}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"Circle","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"CutCorner","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"params","variant":"param","kind":32768,"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/index.ts","qualifiedName":"CornerRadii"},"name":"CornerRadii","package":"@expo/ui"}]}}],"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"}}]}},"defaultValue":"..."},{"name":"Material","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"Arch","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Boom","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Bun","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Clover4Leaf","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Clover8Leaf","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Cookie12Sided","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Cookie4Sided","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Cookie6Sided","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Cookie7Sided","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Cookie9Sided","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Diamond","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Fan","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Ghostish","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Heart","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Oval","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Pentagon","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Pill","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"PixelCircle","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"PixelTriangle","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Puffy","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"PuffyDiamond","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Slanted","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"SoftBurst","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Sunny","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Triangle","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"VerySunny","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."}]}},"defaultValue":"..."},{"name":"Rectangle","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"RoundedCorner","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"params","variant":"param","kind":32768,"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/index.ts","qualifiedName":"CornerRadii"},"name":"CornerRadii","package":"@expo/ui"}]}}],"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"}}]}},"defaultValue":"..."}]}},"defaultValue":"..."},{"name":"align","variant":"declaration","kind":64,"signatures":[{"name":"align","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Aligns the view within its container."}]},"parameters":[{"name":"alignment","variant":"param","kind":32768,"type":{"type":"reference","name":"Alignment","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"alpha","variant":"declaration","kind":64,"signatures":[{"name":"alpha","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the opacity/alpha of the view."}]},"parameters":[{"name":"alpha","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Opacity value (0.0 to 1.0)."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"animateContentSize","variant":"declaration","kind":64,"signatures":[{"name":"animateContentSize","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Animates size changes with spring animation."}]},"parameters":[{"name":"dampingRatio","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Spring damping ratio. Default is DampingRatioNoBouncy."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"stiffness","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Spring stiffness. Default is StiffnessMedium."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"background","variant":"declaration","kind":64,"signatures":[{"name":"background","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the background color."}]},"parameters":[{"name":"color","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Color string (hex, e.g., '#FF0000')."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"blur","variant":"declaration","kind":64,"signatures":[{"name":"blur","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Applies a blur effect."}]},"parameters":[{"name":"radius","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Blur radius in dp."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"border","variant":"declaration","kind":64,"signatures":[{"name":"border","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Adds a border around the view."}]},"parameters":[{"name":"borderWidth","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Border width in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"borderColor","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Border color string (hex)."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"clickable","variant":"declaration","kind":64,"signatures":[{"name":"clickable","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Makes the view clickable."}]},"parameters":[{"name":"handler","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Function to call when clicked."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"clip","variant":"declaration","kind":64,"signatures":[{"name":"clip","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Clips the view to a built-in Jetpack Compose shape."}]},"parameters":[{"name":"shape","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"A shape from "},{"kind":"code","text":"`Shapes`"},{"kind":"text","text":", e.g. "},{"kind":"code","text":"`Shapes.Circle`"},{"kind":"text","text":" or "},{"kind":"code","text":"`Shapes.Material.Heart`"},{"kind":"text","text":"."}]},"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"fillMaxHeight","variant":"declaration","kind":64,"signatures":[{"name":"fillMaxHeight","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Fills the maximum available height."}]},"parameters":[{"name":"fraction","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Fraction of max height (0.0 to 1.0). Default is 1.0."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"fillMaxSize","variant":"declaration","kind":64,"signatures":[{"name":"fillMaxSize","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Fills the maximum available size."}]},"parameters":[{"name":"fraction","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Fraction of max size (0.0 to 1.0). Default is 1.0."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"fillMaxWidth","variant":"declaration","kind":64,"signatures":[{"name":"fillMaxWidth","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Fills the maximum available width."}]},"parameters":[{"name":"fraction","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Fraction of max width (0.0 to 1.0). Default is 1.0."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"height","variant":"declaration","kind":64,"signatures":[{"name":"height","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the exact height of the view."}]},"parameters":[{"name":"value","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Height in dp."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"matchParentSize","variant":"declaration","kind":64,"signatures":[{"name":"matchParentSize","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Makes the view match the parent Box size.\nOnly works when used inside Box."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"offset","variant":"declaration","kind":64,"signatures":[{"name":"offset","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Offsets the view from its natural position."}]},"parameters":[{"name":"x","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Horizontal offset in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"y","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Vertical offset in dp."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"padding","variant":"declaration","kind":64,"signatures":[{"name":"padding","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Applies padding with individual values for each side."}]},"parameters":[{"name":"start","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Left padding in dp (or right in RTL)."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"top","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Top padding in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"end","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Right padding in dp (or left in RTL)."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"bottom","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Bottom padding in dp."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"paddingAll","variant":"declaration","kind":64,"signatures":[{"name":"paddingAll","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Applies equal padding on all sides."}]},"parameters":[{"name":"all","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Padding value in dp."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"rotate","variant":"declaration","kind":64,"signatures":[{"name":"rotate","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Rotates the view."}]},"parameters":[{"name":"degrees","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Rotation angle in degrees."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"selectable","variant":"declaration","kind":64,"signatures":[{"name":"selectable","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Makes the view selectable, like a radio button row."}]},"parameters":[{"name":"selected","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Whether the item is currently selected."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"handler","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Function to call when the item is clicked."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"shadow","variant":"declaration","kind":64,"signatures":[{"name":"shadow","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Adds a shadow/elevation effect."}]},"parameters":[{"name":"elevation","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Shadow elevation in dp."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"size","variant":"declaration","kind":64,"signatures":[{"name":"size","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets exact width and height."}]},"parameters":[{"name":"width","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Width in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"height","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Height in dp."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"testID","variant":"declaration","kind":64,"signatures":[{"name":"testID","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the test ID for testing frameworks."}]},"parameters":[{"name":"tag","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Test ID string."}]},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"weight","variant":"declaration","kind":64,"signatures":[{"name":"weight","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the weight for flexible sizing in Row or Column.\nOnly works when used inside Row or Column."}]},"parameters":[{"name":"weight","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Weight value (relative to siblings)."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"width","variant":"declaration","kind":64,"signatures":[{"name":"width","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the exact width of the view."}]},"parameters":[{"name":"value","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Width in dp."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"wrapContentHeight","variant":"declaration","kind":64,"signatures":[{"name":"wrapContentHeight","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Wraps the height to the content size."}]},"parameters":[{"name":"alignment","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional vertical alignment ('top', 'centerVertically', 'bottom')."}]},"type":{"type":"union","types":[{"type":"literal","value":"top"},{"type":"literal","value":"bottom"},{"type":"literal","value":"centerVertically"}]}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"wrapContentWidth","variant":"declaration","kind":64,"signatures":[{"name":"wrapContentWidth","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Wraps the width to the content size."}]},"parameters":[{"name":"alignment","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional horizontal alignment ('start', 'centerHorizontally', 'end')."}]},"type":{"type":"union","types":[{"type":"literal","value":"start"},{"type":"literal","value":"end"},{"type":"literal","value":"centerHorizontally"}]}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"zIndex","variant":"declaration","kind":64,"signatures":[{"name":"zIndex","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the z-index for layering."}]},"parameters":[{"name":"index","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Z-index value."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/picker.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/picker.json index 08493207e5efb7..d51c2971881e70 100644 --- a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/picker.json +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/picker.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/picker","variant":"project","kind":1,"children":[{"name":"PickerElementColors","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Colors for picker's core elements."}]},"children":[{"name":"activeBorderColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"activeContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"activeContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"disabledActiveBorderColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"disabledActiveContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"disabledActiveContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"disabledInactiveBorderColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"disabledInactiveContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"disabledInactiveContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"inactiveBorderColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"inactiveContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"inactiveContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}}]},{"name":"PickerProps","variant":"declaration","kind":2097152,"children":[{"name":"buttonModifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the individual buttons"}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Picker color."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for picker's core elements."}]},"type":{"type":"reference","name":"PickerElementColors","package":"@expo/ui"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onOptionSelected","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is called when an option is selected."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"event","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"nativeEvent","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"index","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}},{"name":"label","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}]}}}]}}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"options","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"An array of options to be displayed in the picker."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"selectedIndex","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The index of the currently selected option."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"literal","value":null}]}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The variant of the picker, which determines its appearance and behavior."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'segmented'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"segmented"},{"type":"literal","value":"radio"}]}}]},{"name":"Picker","variant":"declaration","kind":64,"signatures":[{"name":"Picker","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Displays a native picker component. Depending on the variant it can be a segmented button, an inline picker, a list of choices or a radio button."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"PickerProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/picker","variant":"project","kind":1,"children":[{"name":"PickerElementColors","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Colors for picker's core elements."}]},"children":[{"name":"activeBorderColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"activeContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"activeContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabledActiveBorderColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabledActiveContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabledActiveContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabledInactiveBorderColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabledInactiveContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabledInactiveContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"inactiveBorderColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"inactiveContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"inactiveContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"PickerProps","variant":"declaration","kind":2097152,"children":[{"name":"buttonModifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the individual buttons"}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Picker color."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for picker's core elements."}]},"type":{"type":"reference","name":"PickerElementColors","package":"@expo/ui"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onOptionSelected","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is called when an option is selected."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"event","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"nativeEvent","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"index","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}},{"name":"label","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}]}}}]}}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"options","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"An array of options to be displayed in the picker."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"selectedIndex","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The index of the currently selected option."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"literal","value":null}]}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The variant of the picker, which determines its appearance and behavior."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'segmented'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"segmented"},{"type":"literal","value":"radio"}]}}]},{"name":"Picker","variant":"declaration","kind":64,"signatures":[{"name":"Picker","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Displays a native picker component. Depending on the variant it can be a segmented button, an inline picker, a list of choices or a radio button."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"PickerProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/pulltorefreshbox.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/pulltorefreshbox.json new file mode 100644 index 00000000000000..33d3dd08d418ba --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/pulltorefreshbox.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/pulltorefreshbox","variant":"project","kind":1,"children":[{"name":"PullToRefreshBoxProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The content to refresh."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"isRefreshing","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the content is refreshing."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"loadingIndicatorModifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the loading indicator."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"[align('topCenter'), padding(0, 10, 0, 0)]"}]}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onRefresh","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback to call when the content is refreshed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}}]},{"name":"PullToRefreshBox","variant":"declaration","kind":64,"signatures":[{"name":"PullToRefreshBox","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders a "},{"kind":"code","text":"`PullToRefreshBox`"},{"kind":"text","text":" component.\nA box that allows the user to pull down to refresh the content."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"PullToRefreshBoxProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/radiobutton.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/radiobutton.json new file mode 100644 index 00000000000000..fddd85bf0c75df --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/radiobutton.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/radiobutton","variant":"project","kind":1,"children":[{"name":"RadioButtonProps","variant":"declaration","kind":2097152,"children":[{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onClick","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback that is called when the radio button is clicked."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"selected","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Whether the radio button is selected."}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"RadioButton","variant":"declaration","kind":64,"signatures":[{"name":"RadioButton","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A Material Design radio button."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"RadioButtonProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/rnhostview.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/rnhostview.json new file mode 100644 index 00000000000000..9c2e95fee1ced5 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/rnhostview.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/rnhostview","variant":"project","kind":1,"children":[{"name":"RNHostView","variant":"declaration","kind":64,"signatures":[{"name":"RNHostView","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/RNHostView/index.tsx","qualifiedName":"RNHostProps"},"name":"RNHostProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/row.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/row.json new file mode 100644 index 00000000000000..5677e37f195317 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/row.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/row","variant":"project","kind":1,"children":[{"name":"RowProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"horizontalAlignment","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Horizontal alignment of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"HorizontalAlignment"},"name":"HorizontalAlignment","package":"@expo/ui"}},{"name":"horizontalArrangement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Horizontal arrangement of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"HorizontalArrangement"},"name":"HorizontalArrangement","package":"@expo/ui"}},{"name":"verticalAlignment","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Vertical alignment of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"VerticalAlignment"},"name":"VerticalAlignment","package":"@expo/ui"}},{"name":"verticalArrangement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Vertical arrangement of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"VerticalArrangement"},"name":"VerticalArrangement","package":"@expo/ui"}}]}},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"PrimitiveBaseProps"},"name":"PrimitiveBaseProps","package":"@expo/ui"}]}},{"name":"Row","variant":"declaration","kind":64,"signatures":[{"name":"Row","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"RowProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/searchbar.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/searchbar.json new file mode 100644 index 00000000000000..8c2c9bdb436d2d --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/searchbar.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/searchbar","variant":"project","kind":1,"children":[{"name":"SearchBarProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The children of the component."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onSearch","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is called when the search text is submitted."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"searchText","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"void"}}]}}}]},{"name":"ExpandedFullScreenSearchBar","variant":"declaration","kind":64,"signatures":[{"name":"ExpandedFullScreenSearchBar","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"ExpandedFullScreenSearchBar component for SearchBar.\nThis component marks its children to be rendered in the expanded full-screen search bar."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/SearchBar/index.tsx","qualifiedName":"ExpandedFullScreenSearchBarProps"},"name":"ExpandedFullScreenSearchBarProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"SearchBar","variant":"declaration","kind":64,"children":[{"name":"ExpandedFullScreenSearchBar","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"ExpandedFullScreenSearchBar component for SearchBar.\nThis component marks its children to be rendered in the expanded full-screen search bar."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/SearchBar/index.tsx","qualifiedName":"ExpandedFullScreenSearchBarProps"},"name":"ExpandedFullScreenSearchBarProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}},{"name":"Placeholder","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Placeholder component for SearchBar.\nThis component marks its children to be rendered in the placeholder slot."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/SearchBar/index.tsx","qualifiedName":"PlaceholderProps"},"name":"PlaceholderProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}}],"signatures":[{"name":"SearchBar","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders a "},{"kind":"code","text":"`SearchBar`"},{"kind":"text","text":" component."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"SearchBarProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"SearchBarPlaceholder","variant":"declaration","kind":64,"signatures":[{"name":"SearchBarPlaceholder","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Placeholder component for SearchBar.\nThis component marks its children to be rendered in the placeholder slot."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/SearchBar/index.tsx","qualifiedName":"PlaceholderProps"},"name":"PlaceholderProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/shape.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/shape.json new file mode 100644 index 00000000000000..bad67ff9cca2a1 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/shape.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/shape","variant":"project","kind":1,"children":[{"name":"CornerRadii","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Corner radii for RoundedCorner shape."}]},"children":[{"name":"bottomEnd","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Bottom-end corner radius in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"bottomStart","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Bottom-start corner radius in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"topEnd","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Top-end corner radius in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"topStart","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Top-start corner radius in dp."}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"ShapeJSXElement","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactElement"},"typeArguments":[{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Shape/index.tsx","qualifiedName":"NativeShapeProps"},"name":"NativeShapeProps","package":"@expo/ui"}],"name":"React.ReactElement","package":"@types/react"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"__expo_shape_jsx_element_marker","variant":"declaration","kind":1024,"type":{"type":"literal","value":true}}]}}]}},{"name":"ShapeProps","variant":"declaration","kind":2097152,"children":[{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Color of the shape"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"cornerRadii","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Corner radii for RoundedCorner shape. Values are in dp."}]},"type":{"type":"reference","name":"CornerRadii","package":"@expo/ui"}},{"name":"cornerRounding","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Corner rounding percentage. Multiplied by the shorter dimension of the view to produce pixel values."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0.0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"innerRadius","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Inner radius of star-related shapes ("},{"kind":"code","text":"`'STAR'`"},{"kind":"text","text":" and "},{"kind":"code","text":"`'PILL_STAR'`"},{"kind":"text","text":"). Multiplied by the shorter dimension of the view to produce pixel values."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"1.0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"radius","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Radius of the circular shape. Multiplied by the shorter dimension of the view to produce pixel values."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"1.0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"smoothing","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Number between "},{"kind":"code","text":"`0.0`"},{"kind":"text","text":" and "},{"kind":"code","text":"`1.0`"},{"kind":"text","text":" that determines how much each line between vertices is \"smoothed\"."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0.0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"verticesCount","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Number of vertices. For "},{"kind":"code","text":"`'POLYGON'`"},{"kind":"text","text":" it must be at least "},{"kind":"code","text":"`3.0`"},{"kind":"text","text":". For "},{"kind":"code","text":"`'STAR'`"},{"kind":"text","text":" and "},{"kind":"code","text":"`'PILL_STAR'`"},{"kind":"text","text":" it is a number of vertices for each of two radii (A 5-pointed star has 10 vertices.)"}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"6.0"}]}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"ShapeRecordProps","variant":"declaration","kind":2097152,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Pick"},"typeArguments":[{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Shape/index.tsx","qualifiedName":"NativeShapeProps"},"name":"NativeShapeProps","package":"@expo/ui"},{"type":"union","types":[{"type":"literal","value":"cornerRounding"},{"type":"literal","value":"smoothing"},{"type":"literal","value":"verticesCount"},{"type":"literal","value":"innerRadius"},{"type":"literal","value":"radius"},{"type":"literal","value":"cornerRadii"},{"type":"literal","value":"type"}]}],"name":"Pick","package":"typescript"}},{"name":"Shape","variant":"declaration","kind":32,"flags":{"isConst":true},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"Circle","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Pick"},"typeArguments":[{"type":"reference","name":"ShapeProps","package":"@expo/ui"},{"type":"union","types":[{"type":"literal","value":"radius"},{"type":"literal","value":"verticesCount"},{"type":"literal","value":"color"},{"type":"literal","value":"modifiers"}]}],"name":"Pick","package":"typescript"}}],"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}]}}},{"name":"Pill","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Pick"},"typeArguments":[{"type":"reference","name":"ShapeProps","package":"@expo/ui"},{"type":"union","types":[{"type":"literal","value":"smoothing"},{"type":"literal","value":"color"},{"type":"literal","value":"modifiers"}]}],"name":"Pick","package":"typescript"}}],"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}]}}},{"name":"PillStar","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ShapeProps","package":"@expo/ui"}}],"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}]}}},{"name":"Polygon","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Pick"},"typeArguments":[{"type":"reference","name":"ShapeProps","package":"@expo/ui"},{"type":"union","types":[{"type":"literal","value":"smoothing"},{"type":"literal","value":"cornerRounding"},{"type":"literal","value":"verticesCount"},{"type":"literal","value":"color"},{"type":"literal","value":"modifiers"}]}],"name":"Pick","package":"typescript"}}],"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}]}}},{"name":"Rectangle","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Pick"},"typeArguments":[{"type":"reference","name":"ShapeProps","package":"@expo/ui"},{"type":"union","types":[{"type":"literal","value":"smoothing"},{"type":"literal","value":"cornerRounding"},{"type":"literal","value":"color"},{"type":"literal","value":"modifiers"}]}],"name":"Pick","package":"typescript"}}],"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}]}}},{"name":"RoundedCorner","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Pick"},"typeArguments":[{"type":"reference","name":"ShapeProps","package":"@expo/ui"},{"type":"union","types":[{"type":"literal","value":"cornerRadii"},{"type":"literal","value":"color"},{"type":"literal","value":"modifiers"}]}],"name":"Pick","package":"typescript"}}],"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}]}}},{"name":"Star","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ShapeProps","package":"@expo/ui"}}],"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}]}}}]}},"defaultValue":"..."},{"name":"parseJSXShape","variant":"declaration","kind":64,"signatures":[{"name":"parseJSXShape","variant":"signature","kind":4096,"parameters":[{"name":"shape","variant":"param","kind":32768,"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}],"type":{"type":"reference","name":"ShapeRecordProps","package":"@expo/ui"}},{"name":"parseJSXShape","variant":"signature","kind":4096,"parameters":[{"name":"shape","variant":"param","kind":32768,"flags":{"isOptional":true},"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}],"type":{"type":"union","types":[{"type":"reference","name":"ShapeRecordProps","package":"@expo/ui"},{"type":"intrinsic","name":"undefined"}]}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/slider.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/slider.json index 056e7c4c7aac03..4dc4d2d4ab6998 100644 --- a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/slider.json +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/slider.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/slider","variant":"project","kind":1,"children":[{"name":"SliderElementColors","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Colors for slider's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"children":[{"name":"activeTickColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"activeTrackColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"inactiveTickColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"inactiveTrackColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"thumbColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}}]},{"name":"SliderProps","variant":"declaration","kind":2097152,"children":[{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Slider color."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for slider's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","name":"SliderElementColors","package":"@expo/ui"}},{"name":"max","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The maximum value of the slider. Updating this value does not trigger callbacks if the current value is above "},{"kind":"code","text":"`max`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"1"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"min","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The minimum value of the slider. Updating this value does not trigger callbacks if the current value is below "},{"kind":"code","text":"`min`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onValueChange","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback triggered on dragging along the slider."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"value","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"steps","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The number of steps between the minimum and maximum values, "},{"kind":"code","text":"`0`"},{"kind":"text","text":" signifies infinite steps."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"value","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The current value of the slider."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"Slider","variant":"declaration","kind":64,"signatures":[{"name":"Slider","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"SliderProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/slider","variant":"project","kind":1,"children":[{"name":"SliderElementColors","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Colors for slider's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"children":[{"name":"activeTickColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"activeTrackColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"inactiveTickColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"inactiveTrackColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"thumbColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"SliderProps","variant":"declaration","kind":2097152,"children":[{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Slider color."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for slider's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","name":"SliderElementColors","package":"@expo/ui"}},{"name":"max","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The maximum value of the slider. Updating this value does not trigger callbacks if the current value is above "},{"kind":"code","text":"`max`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"1"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"min","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The minimum value of the slider. Updating this value does not trigger callbacks if the current value is below "},{"kind":"code","text":"`min`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onValueChange","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback triggered on dragging along the slider."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"value","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"steps","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The number of steps between the minimum and maximum values, "},{"kind":"code","text":"`0`"},{"kind":"text","text":" signifies infinite steps."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"value","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The current value of the slider."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"Slider","variant":"declaration","kind":64,"signatures":[{"name":"Slider","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"SliderProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/spacer.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/spacer.json new file mode 100644 index 00000000000000..6fe94160ef03f1 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/spacer.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/spacer","variant":"project","kind":1,"children":[{"name":"SpacerProps","variant":"declaration","kind":2097152,"children":[{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component. Use weight() modifier to make the spacer flexible."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}}]},{"name":"Spacer","variant":"declaration","kind":64,"signatures":[{"name":"Spacer","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A spacer component that fills available space.\nUse with the weight() modifier to create flexible spacing in Row or Column layouts."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n Left\n \n Right\n\n```"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"SpacerProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/surface.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/surface.json new file mode 100644 index 00000000000000..5f051ef17f4f00 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/surface.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/surface","variant":"project","kind":1,"children":[{"name":"SurfaceProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The content to display inside the surface."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The background color of the surface.\nDefaults to "},{"kind":"code","text":"`MaterialTheme.colorScheme.surface`"},{"kind":"text","text":"."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"contentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The color of the content inside the surface.\nDefaults to "},{"kind":"code","text":"`contentColorFor(color)`"},{"kind":"text","text":"."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"shadowElevation","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The shadow elevation of the surface. Value in dp."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"tonalElevation","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The tonal elevation of the surface, which affects its background color\nbased on the color scheme. Value in dp."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"Surface","variant":"declaration","kind":64,"signatures":[{"name":"Surface","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A Material Design surface container. Surface is responsible for:\n- Clipping content to the shape\n- Applying background color based on tonal elevation\n- Providing content color to its children"}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"SurfaceProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/switch.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/switch.json index b084bc77c804ee..9cfa852e9429bd 100644 --- a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/switch.json +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/switch.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/switch","variant":"project","kind":1,"children":[{"name":"SwitchButtonVariantProps","variant":"declaration","kind":2097152,"children":[{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"undefined"}},{"name":"variant","variant":"declaration","kind":1024,"type":{"type":"literal","value":"button"}}]},{"name":"SwitchCheckboxVariantProps","variant":"declaration","kind":2097152,"children":[{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for checkbox core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Switch/index.tsx","qualifiedName":"CheckboxElementColors"},"name":"CheckboxElementColors","package":"@expo/ui"}},{"name":"variant","variant":"declaration","kind":1024,"type":{"type":"literal","value":"checkbox"}}]},{"name":"SwitchProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Picker color."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"label","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Label for the switch.\n\n> On Android, the label has an effect only when the "},{"kind":"code","text":"`Switch`"},{"kind":"text","text":" is used inside a "},{"kind":"code","text":"`ContextMenu`"},{"kind":"text","text":"."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onValueChange","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is called when the checked state changes."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"value","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"boolean"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"value","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Indicates whether the switch is checked."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Type of the switch component. Can be "},{"kind":"code","text":"`'checkbox'`"},{"kind":"text","text":", "},{"kind":"code","text":"`'switch'`"},{"kind":"text","text":", or "},{"kind":"code","text":"`'button'`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'switch'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"checkbox"},{"type":"literal","value":"switch"},{"type":"literal","value":"button"}]}}]}},{"type":"union","types":[{"type":"reference","name":"SwitchSwitchVariantProps","package":"@expo/ui"},{"type":"reference","name":"SwitchCheckboxVariantProps","package":"@expo/ui"},{"type":"reference","name":"SwitchButtonVariantProps","package":"@expo/ui"}]}]}},{"name":"SwitchSwitchVariantProps","variant":"declaration","kind":2097152,"children":[{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for switch's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Switch/index.tsx","qualifiedName":"SwitchElementColors"},"name":"SwitchElementColors","package":"@expo/ui"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"literal","value":"switch"}}]},{"name":"Switch","variant":"declaration","kind":64,"signatures":[{"name":"Switch","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"SwitchProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/switch","variant":"project","kind":1,"children":[{"name":"SwitchButtonVariantProps","variant":"declaration","kind":2097152,"children":[{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"undefined"}},{"name":"variant","variant":"declaration","kind":1024,"type":{"type":"literal","value":"button"}}]},{"name":"SwitchCheckboxVariantProps","variant":"declaration","kind":2097152,"children":[{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for checkbox core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Switch/index.tsx","qualifiedName":"CheckboxElementColors"},"name":"CheckboxElementColors","package":"@expo/ui"}},{"name":"variant","variant":"declaration","kind":1024,"type":{"type":"literal","value":"checkbox"}}]},{"name":"SwitchProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Children containing ThumbContent slot."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Picker color."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"label","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Label for the switch.\n\n> On Android, the label has an effect only when the "},{"kind":"code","text":"`Switch`"},{"kind":"text","text":" is used inside a "},{"kind":"code","text":"`ContextMenu`"},{"kind":"text","text":"."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onValueChange","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is called when the checked state changes."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"value","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"boolean"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"value","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Indicates whether the switch is checked."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Type of the switch component. Can be "},{"kind":"code","text":"`'checkbox'`"},{"kind":"text","text":", "},{"kind":"code","text":"`'switch'`"},{"kind":"text","text":", or "},{"kind":"code","text":"`'button'`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'switch'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"checkbox"},{"type":"literal","value":"switch"},{"type":"literal","value":"button"}]}}]}},{"type":"union","types":[{"type":"reference","name":"SwitchSwitchVariantProps","package":"@expo/ui"},{"type":"reference","name":"SwitchCheckboxVariantProps","package":"@expo/ui"},{"type":"reference","name":"SwitchButtonVariantProps","package":"@expo/ui"}]}]}},{"name":"SwitchSwitchVariantProps","variant":"declaration","kind":2097152,"children":[{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for switch's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Switch/index.tsx","qualifiedName":"SwitchElementColors"},"name":"SwitchElementColors","package":"@expo/ui"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"literal","value":"switch"}}]},{"name":"Switch","variant":"declaration","kind":64,"children":[{"name":"DefaultIconSize","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"any"}},{"name":"ThumbContent","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Custom content to be displayed inside the switch thumb."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Switch/index.tsx","qualifiedName":"ThumbContentProps"},"name":"ThumbContentProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}}],"signatures":[{"name":"Switch","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"SwitchProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"SwitchThumbContent","variant":"declaration","kind":64,"signatures":[{"name":"SwitchThumbContent","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Custom content to be displayed inside the switch thumb."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Switch/index.tsx","qualifiedName":"ThumbContentProps"},"name":"ThumbContentProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/text.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/text.json new file mode 100644 index 00000000000000..f49239b4a77b2d --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/text.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/text","variant":"project","kind":1,"children":[{"name":"TextAlign","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Text alignment options."}]},"type":{"type":"union","types":[{"type":"literal","value":"left"},{"type":"literal","value":"right"},{"type":"literal","value":"center"},{"type":"literal","value":"justify"},{"type":"literal","value":"start"},{"type":"literal","value":"end"}]}},{"name":"TextDecoration","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Text decoration options."}]},"type":{"type":"union","types":[{"type":"literal","value":"none"},{"type":"literal","value":"underline"},{"type":"literal","value":"lineThrough"}]}},{"name":"TextFontStyle","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Font style options for text styling."}]},"type":{"type":"union","types":[{"type":"literal","value":"normal"},{"type":"literal","value":"italic"}]}},{"name":"TextFontWeight","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Font weight options for text styling."}]},"type":{"type":"union","types":[{"type":"literal","value":"normal"},{"type":"literal","value":"bold"},{"type":"literal","value":"100"},{"type":"literal","value":"200"},{"type":"literal","value":"300"},{"type":"literal","value":"400"},{"type":"literal","value":"500"},{"type":"literal","value":"600"},{"type":"literal","value":"700"},{"type":"literal","value":"800"},{"type":"literal","value":"900"}]}},{"name":"TextOverflow","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Text overflow behavior options."}]},"type":{"type":"union","types":[{"type":"literal","value":"clip"},{"type":"literal","value":"ellipsis"},{"type":"literal","value":"visible"}]}},{"name":"TextProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text content to display."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The color of the text."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"maxLines","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"An optional maximum number of lines for the text to span, wrapping if necessary.\nIf the text exceeds the given number of lines, it will be truncated according to overflow."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"minLines","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The minimum height in terms of minimum number of visible lines."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"overflow","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"How visual overflow should be handled.\n- 'clip': Clips the overflowing text to fix its container\n- 'ellipsis': Uses an ellipsis to indicate that the text has overflowed\n- 'visible': Renders overflow text outside its container"}]},"type":{"type":"reference","name":"TextOverflow","package":"@expo/ui"}},{"name":"softWrap","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the text should break at soft line breaks.\nIf false, the glyphs in the text will be positioned as if there was unlimited horizontal space."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Style configuration for the text.\nCorresponds to Jetpack Compose's TextStyle parameter."}]},"type":{"type":"reference","name":"TextStyle","package":"@expo/ui"}}]},{"name":"TextStyle","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Text style properties that can be applied to text.\nCorresponds to Jetpack Compose's TextStyle."}]},"children":[{"name":"fontSize","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The font size in sp (scale-independent pixels)."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"fontStyle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The font style of the text."}]},"type":{"type":"reference","name":"TextFontStyle","package":"@expo/ui"}},{"name":"fontWeight","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The font weight of the text."}]},"type":{"type":"reference","name":"TextFontWeight","package":"@expo/ui"}},{"name":"letterSpacing","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The letter spacing in sp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"lineHeight","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The line height in sp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"textAlign","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text alignment."}]},"type":{"type":"reference","name":"TextAlign","package":"@expo/ui"}},{"name":"textDecoration","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text decoration."}]},"type":{"type":"reference","name":"TextDecoration","package":"@expo/ui"}},{"name":"typography","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Material 3 Typography style to use as the base style.\nWhen specified, applies the predefined Material 3 typography style.\nOther properties in this style object will override specific values from the typography."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nstyle={{ typography: \"bodyLarge\" }}\nstyle={{ typography: \"headlineMedium\", fontWeight: \"bold\" }}\n```"}]}]},"type":{"type":"reference","name":"TypographyStyle","package":"@expo/ui"}}]},{"name":"TypographyStyle","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Material 3 Typography scale styles.\nCorresponds to MaterialTheme.typography in Jetpack Compose."}]},"type":{"type":"union","types":[{"type":"literal","value":"displayLarge"},{"type":"literal","value":"displayMedium"},{"type":"literal","value":"displaySmall"},{"type":"literal","value":"headlineLarge"},{"type":"literal","value":"headlineMedium"},{"type":"literal","value":"headlineSmall"},{"type":"literal","value":"titleLarge"},{"type":"literal","value":"titleMedium"},{"type":"literal","value":"titleSmall"},{"type":"literal","value":"bodyLarge"},{"type":"literal","value":"bodyMedium"},{"type":"literal","value":"bodySmall"},{"type":"literal","value":"labelLarge"},{"type":"literal","value":"labelMedium"},{"type":"literal","value":"labelSmall"}]}},{"name":"Text","variant":"declaration","kind":64,"signatures":[{"name":"Text","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders a Text component using Jetpack Compose.\n\nThe Text component provides comprehensive text styling capabilities.\nThe API is aligned with Jetpack Compose's Text composable, where:\n- Top-level props (color, maxLines, etc.) match Compose's Text parameters\n- "},{"kind":"code","text":"`style`"},{"kind":"text","text":" object corresponds to TextStyle, including typography, fontSize, fontWeight, textAlign, etc.\n- "},{"kind":"code","text":"`style.typography`"},{"kind":"text","text":" applies Material 3 typography styles (like MaterialTheme.typography)"}],"blockTags":[{"tag":"@example","content":[{"kind":"text","text":"Basic usage:\n"},{"kind":"code","text":"```tsx\nimport { Text } from 'expo-ui';\n\nHello World\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"Using Material 3 Typography (matches Jetpack Compose MaterialTheme.typography):\n"},{"kind":"code","text":"```tsx\nBody text\nHeadline\nSmall title\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"Typography with style overrides:\n"},{"kind":"code","text":"```tsx\n\n Custom styled body text\n\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"With custom style object (matches Jetpack Compose TextStyle):\n"},{"kind":"code","text":"```tsx\n\n Styled text\n\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"Text truncation with ellipsis:\n"},{"kind":"code","text":"```tsx\n\n This is a very long text that will be truncated after two lines\n with an ellipsis at the end to indicate there's more content...\n\n```"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"TextProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/textbutton.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/textbutton.json new file mode 100644 index 00000000000000..758b7959d86b4a --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/textbutton.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/textbutton","variant":"project","kind":1,"children":[{"name":"TextButtonProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text content to display in the button."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}},{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"React.JSX.Element","package":"@types/react"}]}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The color of the button text."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the button is disabled."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback that is called when the button is pressed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}}]},{"name":"TextButton","variant":"declaration","kind":64,"signatures":[{"name":"TextButton","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A text button component that displays a clickable text label."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"TextButtonProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/jetpack-compose/togglebutton.json b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/togglebutton.json new file mode 100644 index 00000000000000..e3cea8fa81d18f --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/jetpack-compose/togglebutton.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/togglebutton","variant":"project","kind":1,"children":[{"name":"ToggleButtonProps","variant":"declaration","kind":2097152,"children":[{"name":"checked","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Whether the toggle button is checked."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The content to display inside the toggle button."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The color of the toggle button when checked."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the button is disabled."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onCheckedChange","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback that is called when the checked state changes."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"checked","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"boolean"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"text","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Text to display in the button."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The variant of the toggle button.\n- "},{"kind":"code","text":"`'default'`"},{"kind":"text","text":" - Material 3 ToggleButton\n- "},{"kind":"code","text":"`'icon'`"},{"kind":"text","text":" - Icon toggle button\n- "},{"kind":"code","text":"`'filledIcon'`"},{"kind":"text","text":" - Filled icon toggle button\n- "},{"kind":"code","text":"`'outlinedIcon'`"},{"kind":"text","text":" - Outlined icon toggle button"}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'default'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"default"},{"type":"literal","value":"icon"},{"type":"literal","value":"filledIcon"},{"type":"literal","value":"outlinedIcon"}]}}]},{"name":"ToggleButton","variant":"declaration","kind":64,"children":[{"name":"DefaultIconSize","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"any"}},{"name":"DefaultIconSpacing","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"any"}}],"signatures":[{"name":"ToggleButton","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A toggle button component that can be toggled on and off.\n\nWhen "},{"kind":"code","text":"`text`"},{"kind":"text","text":" prop is provided, it displays the text.\nOtherwise, custom children can be passed to render custom content."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ToggleButtonProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/swift-ui/circularprogress.json b/docs/public/static/data/unversioned/expo-ui/swift-ui/circularprogress.json new file mode 100644 index 00000000000000..4647ccf7fd8566 --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/swift-ui/circularprogress.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/swift-ui/circularprogress","variant":"project","kind":1,"children":[{"name":"ClosedRangeDate","variant":"declaration","kind":2097152,"children":[{"name":"lower","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Date"},"name":"Date","package":"typescript"}},{"name":"upper","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Date"},"name":"Date","package":"typescript"}}]},{"name":"ProgressViewProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A label describing the progress view's purpose."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"countsDown","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A Boolean value that determines whether the view empties or fills as time passes. If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", which is the default, the view empties."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios 16.0+"}]},{"tag":"@platform","content":[{"kind":"text","text":"tvos 16.0+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"timerInterval","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The lower and upper bounds for automatic timer progress."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios 16.0+"}]},{"tag":"@platform","content":[{"kind":"text","text":"tvos 16.0+"}]}]},"type":{"type":"reference","name":"ClosedRangeDate","package":"@expo/ui"}},{"name":"value","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The current progress value. A value between "},{"kind":"code","text":"`0`"},{"kind":"text","text":" and "},{"kind":"code","text":"`1`"},{"kind":"text","text":".\nWhen "},{"kind":"code","text":"`undefined`"},{"kind":"text","text":", the progress view displays an indeterminate indicator."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"literal","value":null}]}}]}},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/swift-ui/types.ts","qualifiedName":"CommonViewModifierProps"},"name":"CommonViewModifierProps","package":"@expo/ui"}]}},{"name":"ProgressView","variant":"declaration","kind":64,"signatures":[{"name":"ProgressView","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders a SwiftUI "},{"kind":"code","text":"`ProgressView`"},{"kind":"text","text":" component."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ProgressViewProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/unversioned/expo-ui/swift-ui/linearprogress.json b/docs/public/static/data/unversioned/expo-ui/swift-ui/linearprogress.json new file mode 100644 index 00000000000000..9dbbfeb407c78e --- /dev/null +++ b/docs/public/static/data/unversioned/expo-ui/swift-ui/linearprogress.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/swift-ui/linearprogress","variant":"project","kind":1,"children":[{"name":"ClosedRangeDate","variant":"declaration","kind":2097152,"children":[{"name":"lower","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Date"},"name":"Date","package":"typescript"}},{"name":"upper","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Date"},"name":"Date","package":"typescript"}}]},{"name":"ProgressViewProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A label describing the progress view's purpose."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"countsDown","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A Boolean value that determines whether the view empties or fills as time passes. If "},{"kind":"code","text":"`true`"},{"kind":"text","text":", which is the default, the view empties."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios 16.0+"}]},{"tag":"@platform","content":[{"kind":"text","text":"tvos 16.0+"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"timerInterval","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The lower and upper bounds for automatic timer progress."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios 16.0+"}]},{"tag":"@platform","content":[{"kind":"text","text":"tvos 16.0+"}]}]},"type":{"type":"reference","name":"ClosedRangeDate","package":"@expo/ui"}},{"name":"value","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The current progress value. A value between "},{"kind":"code","text":"`0`"},{"kind":"text","text":" and "},{"kind":"code","text":"`1`"},{"kind":"text","text":".\nWhen "},{"kind":"code","text":"`undefined`"},{"kind":"text","text":", the progress view displays an indeterminate indicator."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"literal","value":null}]}}]}},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/swift-ui/types.ts","qualifiedName":"CommonViewModifierProps"},"name":"CommonViewModifierProps","package":"@expo/ui"}]}},{"name":"ProgressView","variant":"declaration","kind":64,"signatures":[{"name":"ProgressView","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders a SwiftUI "},{"kind":"code","text":"`ProgressView`"},{"kind":"text","text":" component."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ProgressViewProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/packages/expo-ui/build/jetpack-compose/Box/index.d.ts b/packages/expo-ui/build/jetpack-compose/Box/index.d.ts new file mode 100644 index 00000000000000..22fb802c7c5a01 --- /dev/null +++ b/packages/expo-ui/build/jetpack-compose/Box/index.d.ts @@ -0,0 +1,14 @@ +import { ContentAlignment, FloatingToolbarExitAlwaysScrollBehavior, PrimitiveBaseProps } from '../layout-types'; +export type BoxProps = { + children?: React.ReactNode; + /** + * Alignment of children within the box. + */ + contentAlignment?: ContentAlignment; + /** + * Scroll behavior for the floating toolbar exit. + */ + floatingToolbarExitAlwaysScrollBehavior?: FloatingToolbarExitAlwaysScrollBehavior; +} & PrimitiveBaseProps; +export declare function Box(props: BoxProps): import("react").JSX.Element; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/expo-ui/build/jetpack-compose/Box/index.d.ts.map b/packages/expo-ui/build/jetpack-compose/Box/index.d.ts.map new file mode 100644 index 00000000000000..fa9afa9378c25a --- /dev/null +++ b/packages/expo-ui/build/jetpack-compose/Box/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/Box/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,uCAAuC,EACvC,kBAAkB,EAEnB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;OAEG;IACH,uCAAuC,CAAC,EAAE,uCAAuC,CAAC;CACnF,GAAG,kBAAkB,CAAC;AAIvB,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,+BAElC"} \ No newline at end of file diff --git a/packages/expo-ui/build/jetpack-compose/Column/index.d.ts b/packages/expo-ui/build/jetpack-compose/Column/index.d.ts new file mode 100644 index 00000000000000..7d125af03504e7 --- /dev/null +++ b/packages/expo-ui/build/jetpack-compose/Column/index.d.ts @@ -0,0 +1,22 @@ +import { HorizontalAlignment, HorizontalArrangement, PrimitiveBaseProps, VerticalAlignment, VerticalArrangement } from '../layout-types'; +export type ColumnProps = { + children?: React.ReactNode; + /** + * Horizontal arrangement of children. + */ + horizontalArrangement?: HorizontalArrangement; + /** + * Vertical arrangement of children. + */ + verticalArrangement?: VerticalArrangement; + /** + * Horizontal alignment of children. + */ + horizontalAlignment?: HorizontalAlignment; + /** + * Vertical alignment of children. + */ + verticalAlignment?: VerticalAlignment; +} & PrimitiveBaseProps; +export declare function Column(props: ColumnProps): import("react").JSX.Element; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/expo-ui/build/jetpack-compose/Column/index.d.ts.map b/packages/expo-ui/build/jetpack-compose/Column/index.d.ts.map new file mode 100644 index 00000000000000..63b682fbd185ad --- /dev/null +++ b/packages/expo-ui/build/jetpack-compose/Column/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/Column/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EAEpB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C;;OAEG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C;;OAEG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,GAAG,kBAAkB,CAAC;AAOvB,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,+BAExC"} \ No newline at end of file diff --git a/packages/expo-ui/build/jetpack-compose/FlowRow/index.d.ts b/packages/expo-ui/build/jetpack-compose/FlowRow/index.d.ts new file mode 100644 index 00000000000000..f951bbe4701a43 --- /dev/null +++ b/packages/expo-ui/build/jetpack-compose/FlowRow/index.d.ts @@ -0,0 +1,14 @@ +import { HorizontalArrangement, PrimitiveBaseProps, VerticalArrangement } from '../layout-types'; +export type FlowRowProps = { + children?: React.ReactNode; + /** + * Horizontal arrangement of children. + */ + horizontalArrangement?: HorizontalArrangement; + /** + * Vertical arrangement of children. + */ + verticalArrangement?: VerticalArrangement; +} & PrimitiveBaseProps; +export declare function FlowRow(props: FlowRowProps): import("react").JSX.Element; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/expo-ui/build/jetpack-compose/FlowRow/index.d.ts.map b/packages/expo-ui/build/jetpack-compose/FlowRow/index.d.ts.map new file mode 100644 index 00000000000000..f9989f1339d88c --- /dev/null +++ b/packages/expo-ui/build/jetpack-compose/FlowRow/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/FlowRow/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EAEpB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C;;OAEG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C,GAAG,kBAAkB,CAAC;AAOvB,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,+BAE1C"} \ No newline at end of file diff --git a/packages/expo-ui/build/jetpack-compose/LazyColumn/index.d.ts b/packages/expo-ui/build/jetpack-compose/LazyColumn/index.d.ts index 851e99a8a89e2f..66e725d6533dda 100644 --- a/packages/expo-ui/build/jetpack-compose/LazyColumn/index.d.ts +++ b/packages/expo-ui/build/jetpack-compose/LazyColumn/index.d.ts @@ -28,9 +28,6 @@ export type LazyColumnProps = { /** * The vertical arrangement of items. * Can be a preset string or an object with `spacedBy` to specify spacing in dp. - * @example - * verticalArrangement="center" - * verticalArrangement={{ spacedBy: 8 }} */ verticalArrangement?: 'top' | 'bottom' | 'center' | 'spaceBetween' | 'spaceAround' | 'spaceEvenly' | { spacedBy: number; diff --git a/packages/expo-ui/build/jetpack-compose/LazyColumn/index.d.ts.map b/packages/expo-ui/build/jetpack-compose/LazyColumn/index.d.ts.map index f619dda34b4dbe..d2fb3693266cfc 100644 --- a/packages/expo-ui/build/jetpack-compose/LazyColumn/index.d.ts.map +++ b/packages/expo-ui/build/jetpack-compose/LazyColumn/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/LazyColumn/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;;;;OAMG;IACH,mBAAmB,CAAC,EAChB,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,aAAa,GACb,aAAa,GACb;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACjD;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;OAEG;IACH,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B,CAAC;AAiBF;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,+BAEhD"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/LazyColumn/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,mBAAmB,CAAC,EAChB,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,aAAa,GACb,aAAa,GACb;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACjD;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;OAEG;IACH,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B,CAAC;AAiBF;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,+BAEhD"} \ No newline at end of file diff --git a/packages/expo-ui/build/jetpack-compose/Row/index.d.ts b/packages/expo-ui/build/jetpack-compose/Row/index.d.ts new file mode 100644 index 00000000000000..ce1ffee9d8f1ac --- /dev/null +++ b/packages/expo-ui/build/jetpack-compose/Row/index.d.ts @@ -0,0 +1,22 @@ +import { HorizontalAlignment, HorizontalArrangement, PrimitiveBaseProps, VerticalAlignment, VerticalArrangement } from '../layout-types'; +export type RowProps = { + children?: React.ReactNode; + /** + * Horizontal arrangement of children. + */ + horizontalArrangement?: HorizontalArrangement; + /** + * Vertical arrangement of children. + */ + verticalArrangement?: VerticalArrangement; + /** + * Horizontal alignment of children. + */ + horizontalAlignment?: HorizontalAlignment; + /** + * Vertical alignment of children. + */ + verticalAlignment?: VerticalAlignment; +} & PrimitiveBaseProps; +export declare function Row(props: RowProps): import("react").JSX.Element; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/expo-ui/build/jetpack-compose/Row/index.d.ts.map b/packages/expo-ui/build/jetpack-compose/Row/index.d.ts.map new file mode 100644 index 00000000000000..d5e3a8811276b6 --- /dev/null +++ b/packages/expo-ui/build/jetpack-compose/Row/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jetpack-compose/Row/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EAEpB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C;;OAEG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C;;OAEG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,GAAG,kBAAkB,CAAC;AAIvB,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,+BAElC"} \ No newline at end of file diff --git a/packages/expo-ui/build/jetpack-compose/index.d.ts b/packages/expo-ui/build/jetpack-compose/index.d.ts index dbdfe1a71979e7..bf50df6d8f0ec6 100644 --- a/packages/expo-ui/build/jetpack-compose/index.d.ts +++ b/packages/expo-ui/build/jetpack-compose/index.d.ts @@ -32,6 +32,9 @@ export * from './PullToRefreshBox'; export * from './RadioButton'; export * from './Surface'; export * from './Text'; -export * from './layout'; +export * from './Box'; +export * from './Row'; +export * from './Column'; +export * from './FlowRow'; export { ViewEvent } from '../types'; //# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/packages/expo-ui/build/jetpack-compose/index.d.ts.map b/packages/expo-ui/build/jetpack-compose/index.d.ts.map index cb6dc181f13d5b..451b462e25c1c4 100644 --- a/packages/expo-ui/build/jetpack-compose/index.d.ts.map +++ b/packages/expo-ui/build/jetpack-compose/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jetpack-compose/index.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAE/C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AAEvB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jetpack-compose/index.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAC;AAE/C,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AAEvB,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC"} \ No newline at end of file diff --git a/packages/expo-ui/build/jetpack-compose/layout-types.d.ts b/packages/expo-ui/build/jetpack-compose/layout-types.d.ts new file mode 100644 index 00000000000000..a87d655e5938da --- /dev/null +++ b/packages/expo-ui/build/jetpack-compose/layout-types.d.ts @@ -0,0 +1,26 @@ +import { ExpoModifier } from '../types'; +export type PrimitiveBaseProps = { + /** + * Modifiers for the component. + */ + modifiers?: ExpoModifier[]; +}; +export type HorizontalArrangement = 'start' | 'end' | 'center' | 'spaceBetween' | 'spaceAround' | 'spaceEvenly' | { + spacedBy: number; +}; +export type VerticalArrangement = 'top' | 'bottom' | 'center' | 'spaceBetween' | 'spaceAround' | 'spaceEvenly' | { + spacedBy: number; +}; +export type HorizontalAlignment = 'start' | 'end' | 'center'; +export type VerticalAlignment = 'top' | 'bottom' | 'center'; +export type ContentAlignment = 'topStart' | 'topCenter' | 'topEnd' | 'centerStart' | 'center' | 'centerEnd' | 'bottomStart' | 'bottomCenter' | 'bottomEnd'; +export type FloatingToolbarExitAlwaysScrollBehavior = 'top' | 'bottom' | 'start' | 'end'; +export declare function transformProps(props: T): { + onGlobalEvent?: ((event: { + nativeEvent: { + payload: [eventName: string, params: Record]; + }; + }) => void) | undefined; + modifiers: import("../types").ModifierConfig[] | undefined; +} & Omit; +//# sourceMappingURL=layout-types.d.ts.map \ No newline at end of file diff --git a/packages/expo-ui/build/jetpack-compose/layout-types.d.ts.map b/packages/expo-ui/build/jetpack-compose/layout-types.d.ts.map new file mode 100644 index 00000000000000..21b3dc7366d461 --- /dev/null +++ b/packages/expo-ui/build/jetpack-compose/layout-types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"layout-types.d.ts","sourceRoot":"","sources":["../../src/jetpack-compose/layout-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;OAEG;IACH,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B,OAAO,GACP,KAAK,GACL,QAAQ,GACR,cAAc,GACd,aAAa,GACb,aAAa,GACb;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AACzB,MAAM,MAAM,mBAAmB,GAC3B,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,aAAa,GACb,aAAa,GACb;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AACzB,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC5D,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,WAAW,GACX,QAAQ,GACR,aAAa,GACb,QAAQ,GACR,WAAW,GACX,aAAa,GACb,cAAc,GACd,WAAW,CAAC;AAChB,MAAM,MAAM,uCAAuC,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AAEzF,wBAAgB,cAAc,CAAC,CAAC,SAAS,kBAAkB,EAAE,KAAK,EAAE,CAAC;;;;;;;yBAOpE"} \ No newline at end of file diff --git a/packages/expo-ui/build/jetpack-compose/layout.d.ts b/packages/expo-ui/build/jetpack-compose/layout.d.ts index efac9e33e845e9..f745ac86da9ec3 100644 --- a/packages/expo-ui/build/jetpack-compose/layout.d.ts +++ b/packages/expo-ui/build/jetpack-compose/layout.d.ts @@ -1,37 +1,6 @@ -import { ExpoModifier } from '../types'; -export type PrimitiveBaseProps = { - /** - * Modifiers for the component. - */ - modifiers?: ExpoModifier[]; -}; -export type HorizontalArrangement = 'start' | 'end' | 'center' | 'spaceBetween' | 'spaceAround' | 'spaceEvenly' | { - spacedBy: number; -}; -export type VerticalArrangement = 'top' | 'bottom' | 'center' | 'spaceBetween' | 'spaceAround' | 'spaceEvenly' | { - spacedBy: number; -}; -export type HorizontalAlignment = 'start' | 'end' | 'center'; -export type VerticalAlignment = 'top' | 'bottom' | 'center'; -export type ContentAlignment = 'topStart' | 'topCenter' | 'topEnd' | 'centerStart' | 'center' | 'centerEnd' | 'bottomStart' | 'bottomCenter' | 'bottomEnd'; -export type FloatingToolbarExitAlwaysScrollBehavior = 'top' | 'bottom' | 'start' | 'end'; -type LayoutBaseProps = { - children?: React.ReactNode; - horizontalArrangement?: HorizontalArrangement; - verticalArrangement?: VerticalArrangement; - horizontalAlignment?: HorizontalAlignment; - verticalAlignment?: VerticalAlignment; - contentAlignment?: ContentAlignment; - floatingToolbarExitAlwaysScrollBehavior?: FloatingToolbarExitAlwaysScrollBehavior; - modifiers?: ExpoModifier[]; -} & PrimitiveBaseProps; -export type BoxProps = Pick; -export declare function Box(props: BoxProps): import("react").JSX.Element; -export type RowProps = LayoutBaseProps; -export declare function Row(props: RowProps): import("react").JSX.Element; -export type FlowRowProps = Pick; -export declare function FlowRow(props: FlowRowProps): import("react").JSX.Element; -export type ColumnProps = LayoutBaseProps; -export declare function Column(props: ColumnProps): import("react").JSX.Element; -export {}; +export * from './layout-types'; +export * from './Box'; +export * from './Row'; +export * from './Column'; +export * from './FlowRow'; //# sourceMappingURL=layout.d.ts.map \ No newline at end of file diff --git a/packages/expo-ui/build/jetpack-compose/layout.d.ts.map b/packages/expo-ui/build/jetpack-compose/layout.d.ts.map index 39b1e1f8394ac1..38ce006a702a39 100644 --- a/packages/expo-ui/build/jetpack-compose/layout.d.ts.map +++ b/packages/expo-ui/build/jetpack-compose/layout.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/jetpack-compose/layout.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;OAEG;IACH,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B,OAAO,GACP,KAAK,GACL,QAAQ,GACR,cAAc,GACd,aAAa,GACb,aAAa,GACb;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AACzB,MAAM,MAAM,mBAAmB,GAC3B,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,aAAa,GACb,aAAa,GACb;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AACzB,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC5D,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,WAAW,GACX,QAAQ,GACR,aAAa,GACb,QAAQ,GACR,WAAW,GACX,aAAa,GACb,cAAc,GACd,WAAW,CAAC;AAChB,MAAM,MAAM,uCAAuC,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AAEzF,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,uCAAuC,CAAC,EAAE,uCAAuC,CAAC;IAClF,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B,GAAG,kBAAkB,CAAC;AAYvB,MAAM,MAAM,QAAQ,GAAG,IAAI,CACzB,eAAe,EACf,UAAU,GAAG,WAAW,GAAG,kBAAkB,GAAG,yCAAyC,CAC1F,CAAC;AAGF,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,+BAElC;AAID,MAAM,MAAM,QAAQ,GAAG,eAAe,CAAC;AAEvC,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,+BAElC;AAID,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,eAAe,EACf,UAAU,GAAG,WAAW,GAAG,uBAAuB,GAAG,qBAAqB,CAC3E,CAAC;AAKF,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,+BAE1C;AAID,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC;AAK1C,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,+BAExC"} \ No newline at end of file +{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/jetpack-compose/layout.tsx"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"} \ No newline at end of file diff --git a/packages/expo-ui/src/jetpack-compose/Box/index.tsx b/packages/expo-ui/src/jetpack-compose/Box/index.tsx new file mode 100644 index 00000000000000..0723434083b15b --- /dev/null +++ b/packages/expo-ui/src/jetpack-compose/Box/index.tsx @@ -0,0 +1,26 @@ +import { requireNativeView } from 'expo'; + +import { + ContentAlignment, + FloatingToolbarExitAlwaysScrollBehavior, + PrimitiveBaseProps, + transformProps, +} from '../layout-types'; + +export type BoxProps = { + children?: React.ReactNode; + /** + * Alignment of children within the box. + */ + contentAlignment?: ContentAlignment; + /** + * Scroll behavior for the floating toolbar exit. + */ + floatingToolbarExitAlwaysScrollBehavior?: FloatingToolbarExitAlwaysScrollBehavior; +} & PrimitiveBaseProps; + +const BoxNativeView: React.ComponentType = requireNativeView('ExpoUI', 'BoxView'); + +export function Box(props: BoxProps) { + return ; +} diff --git a/packages/expo-ui/src/jetpack-compose/Column/index.tsx b/packages/expo-ui/src/jetpack-compose/Column/index.tsx new file mode 100644 index 00000000000000..bd49b2764350c6 --- /dev/null +++ b/packages/expo-ui/src/jetpack-compose/Column/index.tsx @@ -0,0 +1,39 @@ +import { requireNativeView } from 'expo'; + +import { + HorizontalAlignment, + HorizontalArrangement, + PrimitiveBaseProps, + VerticalAlignment, + VerticalArrangement, + transformProps, +} from '../layout-types'; + +export type ColumnProps = { + children?: React.ReactNode; + /** + * Horizontal arrangement of children. + */ + horizontalArrangement?: HorizontalArrangement; + /** + * Vertical arrangement of children. + */ + verticalArrangement?: VerticalArrangement; + /** + * Horizontal alignment of children. + */ + horizontalAlignment?: HorizontalAlignment; + /** + * Vertical alignment of children. + */ + verticalAlignment?: VerticalAlignment; +} & PrimitiveBaseProps; + +const ColumnNativeView: React.ComponentType = requireNativeView( + 'ExpoUI', + 'ColumnView' +); + +export function Column(props: ColumnProps) { + return ; +} diff --git a/packages/expo-ui/src/jetpack-compose/FlowRow/index.tsx b/packages/expo-ui/src/jetpack-compose/FlowRow/index.tsx new file mode 100644 index 00000000000000..b7f7609cea736b --- /dev/null +++ b/packages/expo-ui/src/jetpack-compose/FlowRow/index.tsx @@ -0,0 +1,29 @@ +import { requireNativeView } from 'expo'; + +import { + HorizontalArrangement, + PrimitiveBaseProps, + VerticalArrangement, + transformProps, +} from '../layout-types'; + +export type FlowRowProps = { + children?: React.ReactNode; + /** + * Horizontal arrangement of children. + */ + horizontalArrangement?: HorizontalArrangement; + /** + * Vertical arrangement of children. + */ + verticalArrangement?: VerticalArrangement; +} & PrimitiveBaseProps; + +const FlowRowNativeView: React.ComponentType = requireNativeView( + 'ExpoUI', + 'FlowRowView' +); + +export function FlowRow(props: FlowRowProps) { + return ; +} diff --git a/packages/expo-ui/src/jetpack-compose/LazyColumn/index.tsx b/packages/expo-ui/src/jetpack-compose/LazyColumn/index.tsx index 86526c6d993628..7e51e619a0cca9 100644 --- a/packages/expo-ui/src/jetpack-compose/LazyColumn/index.tsx +++ b/packages/expo-ui/src/jetpack-compose/LazyColumn/index.tsx @@ -33,9 +33,6 @@ export type LazyColumnProps = { /** * The vertical arrangement of items. * Can be a preset string or an object with `spacedBy` to specify spacing in dp. - * @example - * verticalArrangement="center" - * verticalArrangement={{ spacedBy: 8 }} */ verticalArrangement?: | 'top' diff --git a/packages/expo-ui/src/jetpack-compose/Row/index.tsx b/packages/expo-ui/src/jetpack-compose/Row/index.tsx new file mode 100644 index 00000000000000..c8003b23c98f39 --- /dev/null +++ b/packages/expo-ui/src/jetpack-compose/Row/index.tsx @@ -0,0 +1,36 @@ +import { requireNativeView } from 'expo'; + +import { + HorizontalAlignment, + HorizontalArrangement, + PrimitiveBaseProps, + VerticalAlignment, + VerticalArrangement, + transformProps, +} from '../layout-types'; + +export type RowProps = { + children?: React.ReactNode; + /** + * Horizontal arrangement of children. + */ + horizontalArrangement?: HorizontalArrangement; + /** + * Vertical arrangement of children. + */ + verticalArrangement?: VerticalArrangement; + /** + * Horizontal alignment of children. + */ + horizontalAlignment?: HorizontalAlignment; + /** + * Vertical alignment of children. + */ + verticalAlignment?: VerticalAlignment; +} & PrimitiveBaseProps; + +const RowNativeView: React.ComponentType = requireNativeView('ExpoUI', 'RowView'); + +export function Row(props: RowProps) { + return ; +} diff --git a/packages/expo-ui/src/jetpack-compose/index.ts b/packages/expo-ui/src/jetpack-compose/index.ts index 65aba5f742afde..5b7847655a4738 100644 --- a/packages/expo-ui/src/jetpack-compose/index.ts +++ b/packages/expo-ui/src/jetpack-compose/index.ts @@ -34,5 +34,8 @@ export * from './RadioButton'; export * from './Surface'; export * from './Text'; -export * from './layout'; +export * from './Box'; +export * from './Row'; +export * from './Column'; +export * from './FlowRow'; export { ViewEvent } from '../types'; diff --git a/packages/expo-ui/src/jetpack-compose/layout-types.ts b/packages/expo-ui/src/jetpack-compose/layout-types.ts new file mode 100644 index 00000000000000..8ea29e573aabe6 --- /dev/null +++ b/packages/expo-ui/src/jetpack-compose/layout-types.ts @@ -0,0 +1,48 @@ +import { ExpoModifier } from '../types'; +import { createViewModifierEventListener } from './modifiers/utils'; + +export type PrimitiveBaseProps = { + /** + * Modifiers for the component. + */ + modifiers?: ExpoModifier[]; +}; + +export type HorizontalArrangement = + | 'start' + | 'end' + | 'center' + | 'spaceBetween' + | 'spaceAround' + | 'spaceEvenly' + | { spacedBy: number }; +export type VerticalArrangement = + | 'top' + | 'bottom' + | 'center' + | 'spaceBetween' + | 'spaceAround' + | 'spaceEvenly' + | { spacedBy: number }; +export type HorizontalAlignment = 'start' | 'end' | 'center'; +export type VerticalAlignment = 'top' | 'bottom' | 'center'; +export type ContentAlignment = + | 'topStart' + | 'topCenter' + | 'topEnd' + | 'centerStart' + | 'center' + | 'centerEnd' + | 'bottomStart' + | 'bottomCenter' + | 'bottomEnd'; +export type FloatingToolbarExitAlwaysScrollBehavior = 'top' | 'bottom' | 'start' | 'end'; + +export function transformProps(props: T) { + const { modifiers, ...restProps } = props; + return { + modifiers, + ...(modifiers ? createViewModifierEventListener(modifiers) : undefined), + ...restProps, + }; +} diff --git a/packages/expo-ui/src/jetpack-compose/layout.tsx b/packages/expo-ui/src/jetpack-compose/layout.tsx index 8e1ec355d99ad5..be461e527a8b9b 100644 --- a/packages/expo-ui/src/jetpack-compose/layout.tsx +++ b/packages/expo-ui/src/jetpack-compose/layout.tsx @@ -1,106 +1,5 @@ -import { requireNativeView } from 'expo'; - -import { ExpoModifier } from '../types'; -import { createViewModifierEventListener } from './modifiers/utils'; - -export type PrimitiveBaseProps = { - /** - * Modifiers for the component. - */ - modifiers?: ExpoModifier[]; -}; - -export type HorizontalArrangement = - | 'start' - | 'end' - | 'center' - | 'spaceBetween' - | 'spaceAround' - | 'spaceEvenly' - | { spacedBy: number }; -export type VerticalArrangement = - | 'top' - | 'bottom' - | 'center' - | 'spaceBetween' - | 'spaceAround' - | 'spaceEvenly' - | { spacedBy: number }; -export type HorizontalAlignment = 'start' | 'end' | 'center'; -export type VerticalAlignment = 'top' | 'bottom' | 'center'; -export type ContentAlignment = - | 'topStart' - | 'topCenter' - | 'topEnd' - | 'centerStart' - | 'center' - | 'centerEnd' - | 'bottomStart' - | 'bottomCenter' - | 'bottomEnd'; -export type FloatingToolbarExitAlwaysScrollBehavior = 'top' | 'bottom' | 'start' | 'end'; - -type LayoutBaseProps = { - children?: React.ReactNode; - horizontalArrangement?: HorizontalArrangement; - verticalArrangement?: VerticalArrangement; - horizontalAlignment?: HorizontalAlignment; - verticalAlignment?: VerticalAlignment; - contentAlignment?: ContentAlignment; - floatingToolbarExitAlwaysScrollBehavior?: FloatingToolbarExitAlwaysScrollBehavior; - modifiers?: ExpoModifier[]; -} & PrimitiveBaseProps; - -function transformProps(props: LayoutBaseProps) { - const { modifiers, ...restProps } = props; - return { - modifiers, - ...(modifiers ? createViewModifierEventListener(modifiers) : undefined), - ...restProps, - }; -} - -//#region Box Component -export type BoxProps = Pick< - LayoutBaseProps, - 'children' | 'modifiers' | 'contentAlignment' | 'floatingToolbarExitAlwaysScrollBehavior' ->; -const BoxNativeView: React.ComponentType = requireNativeView('ExpoUI', 'BoxView'); - -export function Box(props: BoxProps) { - return ; -} -//#endregion - -//#region Row Component -export type RowProps = LayoutBaseProps; -const RowNativeView: React.ComponentType = requireNativeView('ExpoUI', 'RowView'); -export function Row(props: RowProps) { - return ; -} -//#endregion - -//#region FlowRow Component -export type FlowRowProps = Pick< - LayoutBaseProps, - 'children' | 'modifiers' | 'horizontalArrangement' | 'verticalArrangement' ->; -const FlowRowNativeView: React.ComponentType = requireNativeView( - 'ExpoUI', - 'FlowRowView' -); -export function FlowRow(props: FlowRowProps) { - return ; -} -//#endregion - -//#region Column Component -export type ColumnProps = LayoutBaseProps; -const ColumnNativeView: React.ComponentType = requireNativeView( - 'ExpoUI', - 'ColumnView' -); -export function Column(props: ColumnProps) { - return ; -} -//#endregion +export * from './layout-types'; +export * from './Box'; +export * from './Row'; +export * from './Column'; +export * from './FlowRow'; diff --git a/tools/src/commands/GenerateDocsAPIData.ts b/tools/src/commands/GenerateDocsAPIData.ts index 931454a72e690f..07e7b6a5f9572f 100644 --- a/tools/src/commands/GenerateDocsAPIData.ts +++ b/tools/src/commands/GenerateDocsAPIData.ts @@ -22,53 +22,95 @@ type CommandAdditionalParams = [entryPoint: EntryPoint, packageName?: string]; const MINIFY_JSON = true; const uiPackagesMapping: Record = { + // Swift UI 'expo-ui/swift-ui/bottomsheet': ['swift-ui/BottomSheet/index.tsx', 'expo-ui'], - 'expo-ui/jetpack-compose/bottomsheet': ['jetpack-compose/BottomSheet/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/popover': ['swift-ui/Popover/index.tsx', 'expo-ui'], 'expo-ui/swift-ui/button': ['swift-ui/Button/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/text': ['swift-ui/Text/index.tsx', 'expo-ui'], - 'expo-ui/jetpack-compose/button': ['jetpack-compose/Button/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/circularprogress': ['swift-ui/Progress/index.tsx', 'expo-ui'], - 'expo-ui/jetpack-compose/circularprogress': ['jetpack-compose/Progress/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/circularprogress': ['swift-ui/ProgressView/index.tsx', 'expo-ui'], 'expo-ui/swift-ui/colorpicker': ['swift-ui/ColorPicker/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/form': ['swift-ui/Form/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/confirmationdialog': ['swift-ui/ConfirmationDialog/index.tsx', 'expo-ui'], 'expo-ui/swift-ui/contextmenu': ['swift-ui/ContextMenu/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/disclosuregroup': ['swift-ui/DisclosureGroup/index.tsx', 'expo-ui'], - 'expo-ui/jetpack-compose/contextmenu': ['jetpack-compose/ContextMenu/index.tsx', 'expo-ui'], 'expo-ui/swift-ui/datepicker': ['swift-ui/DatePicker/index.tsx', 'expo-ui'], - 'expo-ui/jetpack-compose/datetimepicker': ['jetpack-compose/DatePicker/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/disclosuregroup': ['swift-ui/DisclosureGroup/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/divider': ['swift-ui/Divider/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/foreach': ['swift-ui/ForEach/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/form': ['swift-ui/Form/index.tsx', 'expo-ui'], 'expo-ui/swift-ui/gauge': ['swift-ui/Gauge/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/group': ['swift-ui/Group/index.tsx', 'expo-ui'], 'expo-ui/swift-ui/host': ['swift-ui/Host/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/confirmationdialog': ['swift-ui/ConfirmationDialog/index.tsx', 'expo-ui'], - 'expo-ui/jetpack-compose/host': ['jetpack-compose/Host/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/linearprogress': ['swift-ui/Progress/index.tsx', 'expo-ui'], - 'expo-ui/jetpack-compose/linearprogress': ['jetpack-compose/Progress/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/hstack': ['swift-ui/HStack/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/image': ['swift-ui/Image/index.tsx', 'expo-ui'], 'expo-ui/swift-ui/label': ['swift-ui/Label/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/linearprogress': ['swift-ui/ProgressView/index.tsx', 'expo-ui'], 'expo-ui/swift-ui/list': ['swift-ui/List/index.tsx', 'expo-ui'], 'expo-ui/swift-ui/menu': ['swift-ui/Menu/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/picker': ['swift-ui/Picker/index.tsx', 'expo-ui'], - 'expo-ui/jetpack-compose/picker': ['jetpack-compose/Picker/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/slider': ['swift-ui/Slider/index.tsx', 'expo-ui'], - 'expo-ui/jetpack-compose/slider': ['jetpack-compose/Slider/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/toggle': ['swift-ui/Toggle/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/namespace': ['swift-ui/Namespace.tsx', 'expo-ui'], - 'expo-ui/swift-ui/section': ['swift-ui/Section/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/divider': ['swift-ui/Divider/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/rnhostview': ['swift-ui/RNHostView.tsx', 'expo-ui'], 'expo-ui/swift-ui/modifiers': ['swift-ui/modifiers/index.ts', 'expo-ui'], + 'expo-ui/swift-ui/namespace': ['swift-ui/Namespace.tsx', 'expo-ui'], + 'expo-ui/swift-ui/picker': ['swift-ui/Picker/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/popover': ['swift-ui/Popover/index.tsx', 'expo-ui'], 'expo-ui/swift-ui/progressview': ['swift-ui/ProgressView/index.tsx', 'expo-ui'], - 'expo-ui/jetpack-compose/switch': ['jetpack-compose/Switch/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/rnhostview': ['swift-ui/RNHostView.tsx', 'expo-ui'], + 'expo-ui/swift-ui/scrollview': ['swift-ui/ScrollView/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/section': ['swift-ui/Section/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/slider': ['swift-ui/Slider/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/spacer': ['swift-ui/Spacer/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/text': ['swift-ui/Text/index.tsx', 'expo-ui'], 'expo-ui/swift-ui/textfield': ['swift-ui/TextField/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/group': ['swift-ui/Group/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/hstack': ['swift-ui/HStack/index.tsx', 'expo-ui'], + 'expo-ui/swift-ui/toggle': ['swift-ui/Toggle/index.tsx', 'expo-ui'], 'expo-ui/swift-ui/vstack': ['swift-ui/VStack/index.tsx', 'expo-ui'], 'expo-ui/swift-ui/zstack': ['swift-ui/ZStack/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/spacer': ['swift-ui/Spacer/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/image': ['swift-ui/Image/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/scrollview': ['swift-ui/ScrollView/index.tsx', 'expo-ui'], - 'expo-ui/swift-ui/foreach': ['swift-ui/ForEach/index.tsx', 'expo-ui'], - 'expo-ui/jetpack-compose/textinput': ['jetpack-compose/TextInput/index.tsx', 'expo-ui'], + + // Jetpack Compose + 'expo-ui/jetpack-compose/alertdialog': ['jetpack-compose/AlertDialog/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/basicalertdialog': [ + 'jetpack-compose/BasicAlertDialog/index.tsx', + 'expo-ui', + ], + 'expo-ui/jetpack-compose/bottomsheet': ['jetpack-compose/ModalBottomSheet/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/button': ['jetpack-compose/Button/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/card': ['jetpack-compose/Card/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/carousel': ['jetpack-compose/Carousel/index.tsx', 'expo-ui'], 'expo-ui/jetpack-compose/chip': ['jetpack-compose/Chip/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/circularprogress': ['jetpack-compose/Progress/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/contextmenu': ['jetpack-compose/ContextMenu/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/datetimepicker': ['jetpack-compose/DatePicker/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/divider': ['jetpack-compose/Divider/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/dockedsearchbar': [ + 'jetpack-compose/DockedSearchBar/index.tsx', + 'expo-ui', + ], + 'expo-ui/jetpack-compose/filterchip': ['jetpack-compose/FilterChip/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/horizontalfloatingtoolbar': [ + 'jetpack-compose/HorizontalFloatingToolbar/index.tsx', + 'expo-ui', + ], + 'expo-ui/jetpack-compose/host': ['jetpack-compose/Host/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/icon': ['jetpack-compose/Icon/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/iconbutton': ['jetpack-compose/IconButton/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/box': ['jetpack-compose/Box/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/row': ['jetpack-compose/Row/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/column': ['jetpack-compose/Column/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/flowrow': ['jetpack-compose/FlowRow/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/lazycolumn': ['jetpack-compose/LazyColumn/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/linearprogress': ['jetpack-compose/Progress/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/listitem': ['jetpack-compose/ListItem/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/modifiers': ['jetpack-compose/modifiers/index.ts', 'expo-ui'], + 'expo-ui/jetpack-compose/picker': ['jetpack-compose/Picker/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/pulltorefreshbox': [ + 'jetpack-compose/PullToRefreshBox/index.tsx', + 'expo-ui', + ], + 'expo-ui/jetpack-compose/radiobutton': ['jetpack-compose/RadioButton/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/rnhostview': ['jetpack-compose/RNHostView/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/searchbar': ['jetpack-compose/SearchBar/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/shape': ['jetpack-compose/Shape/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/slider': ['jetpack-compose/Slider/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/spacer': ['jetpack-compose/Spacer/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/surface': ['jetpack-compose/Surface/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/switch': ['jetpack-compose/Switch/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/text': ['jetpack-compose/Text/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/textbutton': ['jetpack-compose/TextButton/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/textinput': ['jetpack-compose/TextInput/index.tsx', 'expo-ui'], + 'expo-ui/jetpack-compose/togglebutton': ['jetpack-compose/ToggleButton/index.tsx', 'expo-ui'], }; const PACKAGES_MAPPING: Record = { From edfbd3573caa2113a8c2bd61e10d67807cebd53c Mon Sep 17 00:00:00 2001 From: Kudo Chien Date: Wed, 25 Feb 2026 18:06:42 +0800 Subject: [PATCH 02/14] [docs] backport changes to sdk 55 (#43402) # Why backport changes from #43401 to sdk 55 docs # How backport changes # Test Plan previews: - https://pr-43402.expo-docs.pages.dev/versions/unversioned/sdk/ui/jetpack-compose/ - https://pr-43402.expo-docs.pages.dev/versions/v55.0.0/sdk/ui/jetpack-compose/ # Checklist - [x] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [x] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [x] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) --- .../sdk/ui/jetpack-compose/alertdialog.mdx | 58 +++ .../ui/jetpack-compose/basicalertdialog.mdx | 55 +++ .../sdk/ui/jetpack-compose/bottomsheet.mdx | 87 ++-- .../v55.0.0/sdk/ui/jetpack-compose/box.mdx | 43 ++ .../v55.0.0/sdk/ui/jetpack-compose/button.mdx | 76 +-- .../v55.0.0/sdk/ui/jetpack-compose/card.mdx | 70 +++ .../sdk/ui/jetpack-compose/carousel.mdx | 131 +++++ .../v55.0.0/sdk/ui/jetpack-compose/chip.mdx | 125 +++-- .../ui/jetpack-compose/circularprogress.mdx | 67 ++- .../v55.0.0/sdk/ui/jetpack-compose/column.mdx | 48 ++ .../sdk/ui/jetpack-compose/contextmenu.mdx | 76 +-- .../sdk/ui/jetpack-compose/datetimepicker.mdx | 136 +++--- .../sdk/ui/jetpack-compose/divider.mdx | 67 +++ .../ui/jetpack-compose/dockedsearchbar.mdx | 69 +++ .../sdk/ui/jetpack-compose/filterchip.mdx | 87 ++++ .../sdk/ui/jetpack-compose/flowrow.mdx | 50 ++ .../horizontalfloatingtoolbar.mdx | 55 +++ .../v55.0.0/sdk/ui/jetpack-compose/host.mdx | 58 +++ .../v55.0.0/sdk/ui/jetpack-compose/icon.mdx | 78 +++ .../sdk/ui/jetpack-compose/iconbutton.mdx | 84 ++++ .../v55.0.0/sdk/ui/jetpack-compose/index.mdx | 16 + .../sdk/ui/jetpack-compose/lazycolumn.mdx | 86 ++++ .../sdk/ui/jetpack-compose/linearprogress.mdx | 67 ++- .../sdk/ui/jetpack-compose/listitem.mdx | 83 ++++ .../sdk/ui/jetpack-compose/modifiers.mdx | 460 ++++++++++++++++++ .../v55.0.0/sdk/ui/jetpack-compose/picker.mdx | 141 +++--- .../ui/jetpack-compose/pulltorefreshbox.mdx | 58 +++ .../sdk/ui/jetpack-compose/radiobutton.mdx | 87 ++++ .../v55.0.0/sdk/ui/jetpack-compose/row.mdx | 48 ++ .../sdk/ui/jetpack-compose/searchbar.mdx | 64 +++ .../v55.0.0/sdk/ui/jetpack-compose/shape.mdx | 114 +++++ .../v55.0.0/sdk/ui/jetpack-compose/slider.mdx | 83 ++-- .../v55.0.0/sdk/ui/jetpack-compose/spacer.mdx | 68 +++ .../sdk/ui/jetpack-compose/surface.mdx | 90 ++++ .../v55.0.0/sdk/ui/jetpack-compose/switch.mdx | 143 +++--- .../v55.0.0/sdk/ui/jetpack-compose/text.mdx | 107 ++++ .../sdk/ui/jetpack-compose/textbutton.mdx | 81 +++ .../sdk/ui/jetpack-compose/textinput.mdx | 73 ++- .../sdk/ui/jetpack-compose/togglebutton.mdx | 131 +++++ .../expo-ui/jetpack-compose/alertdialog.json | 1 + .../jetpack-compose/basicalertdialog.json | 1 + .../expo-ui/jetpack-compose/bottomsheet.json | 2 +- .../v55.0.0/expo-ui/jetpack-compose/box.json | 1 + .../expo-ui/jetpack-compose/button.json | 2 +- .../v55.0.0/expo-ui/jetpack-compose/card.json | 1 + .../expo-ui/jetpack-compose/carousel.json | 1 + .../expo-ui/jetpack-compose/column.json | 1 + .../expo-ui/jetpack-compose/contextmenu.json | 2 +- .../jetpack-compose/datetimepicker.json | 2 +- .../expo-ui/jetpack-compose/divider.json | 1 + .../jetpack-compose/dockedsearchbar.json | 1 + .../expo-ui/jetpack-compose/filterchip.json | 1 + .../expo-ui/jetpack-compose/flowrow.json | 1 + .../horizontalfloatingtoolbar.json | 1 + .../v55.0.0/expo-ui/jetpack-compose/host.json | 2 +- .../v55.0.0/expo-ui/jetpack-compose/icon.json | 1 + .../expo-ui/jetpack-compose/iconbutton.json | 1 + .../expo-ui/jetpack-compose/lazycolumn.json | 1 + .../expo-ui/jetpack-compose/listitem.json | 1 + .../expo-ui/jetpack-compose/modifiers.json | 1 + .../expo-ui/jetpack-compose/picker.json | 2 +- .../jetpack-compose/pulltorefreshbox.json | 1 + .../expo-ui/jetpack-compose/radiobutton.json | 1 + .../expo-ui/jetpack-compose/rnhostview.json | 1 + .../v55.0.0/expo-ui/jetpack-compose/row.json | 1 + .../expo-ui/jetpack-compose/searchbar.json | 1 + .../expo-ui/jetpack-compose/shape.json | 1 + .../expo-ui/jetpack-compose/slider.json | 2 +- .../expo-ui/jetpack-compose/spacer.json | 1 + .../expo-ui/jetpack-compose/surface.json | 1 + .../expo-ui/jetpack-compose/switch.json | 2 +- .../v55.0.0/expo-ui/jetpack-compose/text.json | 1 + .../expo-ui/jetpack-compose/textbutton.json | 1 + .../expo-ui/jetpack-compose/togglebutton.json | 1 + 74 files changed, 3113 insertions(+), 450 deletions(-) create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/alertdialog.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/basicalertdialog.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/box.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/card.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/carousel.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/column.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/divider.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/dockedsearchbar.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/filterchip.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/flowrow.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/horizontalfloatingtoolbar.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/host.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/icon.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/iconbutton.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/lazycolumn.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/listitem.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/modifiers.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/pulltorefreshbox.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/radiobutton.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/row.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/searchbar.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/shape.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/spacer.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/surface.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/text.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/textbutton.mdx create mode 100644 docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/togglebutton.mdx create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/alertdialog.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/basicalertdialog.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/box.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/card.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/carousel.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/column.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/divider.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/dockedsearchbar.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/filterchip.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/flowrow.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/horizontalfloatingtoolbar.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/icon.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/iconbutton.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/lazycolumn.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/listitem.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/modifiers.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/pulltorefreshbox.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/radiobutton.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/rnhostview.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/row.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/searchbar.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/shape.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/spacer.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/surface.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/text.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/textbutton.json create mode 100644 docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/togglebutton.json diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/alertdialog.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/alertdialog.mdx new file mode 100644 index 00000000000000..24377eaa735170 --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/alertdialog.mdx @@ -0,0 +1,58 @@ +--- +title: AlertDialog +description: A Jetpack Compose AlertDialog component for displaying native alert dialogs. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI AlertDialog matches the official Jetpack Compose [AlertDialog API](https://developer.android.com/develop/ui/compose/components/dialog) and displays a modal dialog with a title, message text, and confirm/dismiss buttons. + +## Installation + + + +## Usage + +### Basic alert dialog + +```tsx BasicAlertDialogExample.tsx +import { useState } from 'react'; +import { Host, AlertDialog, Button } from '@expo/ui/jetpack-compose'; + +export default function BasicAlertDialogExample() { + const [visible, setVisible] = useState(false); + + return ( + + + { + console.log('Confirmed'); + setVisible(false); + }} + onDismissPressed={() => { + console.log('Dismissed'); + setVisible(false); + }} + /> + + ); +} +``` + +## API + +```tsx +import { AlertDialog } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/basicalertdialog.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/basicalertdialog.mdx new file mode 100644 index 00000000000000..10a980d49eff6e --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/basicalertdialog.mdx @@ -0,0 +1,55 @@ +--- +title: BasicAlertDialog +description: A Jetpack Compose BasicAlertDialog component for displaying dialogs with custom content. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI BasicAlertDialog matches the official Jetpack Compose [BasicAlertDialog API](https://developer.android.com/develop/ui/compose/components/dialog) and displays a minimal dialog that accepts custom children as its content, giving you full control over the dialog layout. + +## Installation + + + +## Usage + +### Basic dialog with custom content + +```tsx BasicAlertDialogExample.tsx +import { useState } from 'react'; +import { Host, BasicAlertDialog, Button, Text, Surface, Column } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function BasicAlertDialogExample() { + const [visible, setVisible] = useState(false); + + return ( + + + {visible && ( + setVisible(false)}> + + + Custom Dialog + This dialog contains fully custom content defined as children. + + + + + )} + + ); +} +``` + +## API + +```tsx +import { BasicAlertDialog } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/bottomsheet.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/bottomsheet.mdx index 6001ffbce042be..a1474fa3f74c06 100644 --- a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/bottomsheet.mdx +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/bottomsheet.mdx @@ -1,6 +1,6 @@ --- -title: BottomSheet -description: A Jetpack Compose BottomSheet component that presents content from the bottom of the screen. +title: ModalBottomSheet +description: A Jetpack Compose ModalBottomSheet component that presents content from the bottom of the screen. sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' packageName: '@expo/ui' platforms: ['android'] @@ -8,10 +8,8 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A bottom sheet component that slides up from the bottom of the screen to present content using native Android bottom sheet behavior. +Expo UI ModalBottomSheet matches the official Jetpack Compose [Bottom Sheet API](https://developer.android.com/develop/ui/compose/components/bottom-sheets) and displays content in a modal sheet that slides up from the bottom. ## Installation @@ -19,35 +17,64 @@ A bottom sheet component that slides up from the bottom of the screen to present ## Usage - - - - - - ```tsx - import { BottomSheet } from '@expo/ui/jetpack-compose'; - - - Hello from bottom sheet! - - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/bottom-sheets) for more information. +### Basic bottom sheet + +```tsx BasicBottomSheetExample.tsx +import { useState } from 'react'; +import { Host, ModalBottomSheet, Button, Column, Text } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function BasicBottomSheetExample() { + const [visible, setVisible] = useState(false); + + return ( + + + {visible && ( + setVisible(false)}> + + Hello from bottom sheet! + You can add more content here. + + + + )} + + ); +} +``` + +### Full-screen bottom sheet + +```tsx FullScreenBottomSheetExample.tsx +import { useState } from 'react'; +import { Host, ModalBottomSheet, Button, Column, Text } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function FullScreenBottomSheetExample() { + const [visible, setVisible] = useState(false); + + return ( + + + {visible && ( + setVisible(false)}> + + This sheet expands to full screen. + Add as much content as you need. + + + + )} + + ); +} +``` ## API ```tsx -import { BottomSheet } from '@expo/ui/jetpack-compose'; +import { ModalBottomSheet } from '@expo/ui/jetpack-compose'; ``` diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/box.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/box.mdx new file mode 100644 index 00000000000000..c7c038f34a1c41 --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/box.mdx @@ -0,0 +1,43 @@ +--- +title: Box +description: A Jetpack Compose Box component for stacking child elements. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Box matches the official Jetpack Compose [Box](https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/package-summary#Box) API and stacks children on top of each other with configurable content alignment. + +## Installation + + + +## Usage + +`Box` stacks children on top of each other. Use `contentAlignment` to position them within the box. + +```tsx BoxExample.tsx +import { Host, Box, Text } from '@expo/ui/jetpack-compose'; +import { size, background } from '@expo/ui/jetpack-compose/modifiers'; + +export default function BoxExample() { + return ( + + + Centered in Box + + + ); +} +``` + +## API + +```tsx +import { Box } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/button.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/button.mdx index 742dc7eb11f155..97c3c98fa127e7 100644 --- a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/button.mdx +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/button.mdx @@ -8,10 +8,8 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A button component for displaying native buttons. +Expo UI Button matches the official Jetpack Compose [Button API](https://developer.android.com/develop/ui/compose/components/button) and supports variants, icons, custom colors, and shapes. ## Installation @@ -19,41 +17,51 @@ A button component for displaying native buttons. ## Usage - - - - - - ```tsx - import { Button } from '@expo/ui/jetpack-compose'; +### Basic button - +```tsx BasicButtonExample.tsx +import { Host, Button } from '@expo/ui/jetpack-compose'; - {/* Button with both leading and trailing icons */} - - ``` +export default function BasicButtonExample() { + return ( + + + + ); +} +``` + +### Button variants - - +Use the `variant` prop to change the button's appearance. Available variants are: `default`, `bordered`, `borderless`, `outlined`, and `elevated`. -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/button) for more information. +```tsx ButtonVariantsExample.tsx +import { Host, Button, Column } from '@expo/ui/jetpack-compose'; + +export default function ButtonVariantsExample() { + return ( + + + + + + + + + + ); +} +``` ## API diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/card.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/card.mdx new file mode 100644 index 00000000000000..0f8a35587db5f5 --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/card.mdx @@ -0,0 +1,70 @@ +--- +title: Card +description: A Jetpack Compose Card component for displaying content in a styled container. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Card matches the official Jetpack Compose [Card API](https://developer.android.com/develop/ui/compose/components/card) and displays content inside a styled surface container with optional elevation and outline. + +## Installation + + + +## Usage + +### Basic card + +```tsx BasicCardExample.tsx +import { Host, Card, Text } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function BasicCardExample() { + return ( + + + This is a basic card with default styling. + + + ); +} +``` + +### Card variants + +Use the `variant` prop to switch between `'default'`, `'elevated'`, and `'outlined'` styles. + +```tsx CardVariantsExample.tsx +import { Host, Card, Text, Column } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function CardVariantsExample() { + return ( + + + + Default card + + + Elevated card + + + Outlined card + + + + ); +} +``` + +## API + +```tsx +import { Card } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/carousel.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/carousel.mdx new file mode 100644 index 00000000000000..96c7e23798882e --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/carousel.mdx @@ -0,0 +1,131 @@ +--- +title: Carousel +description: A Jetpack Compose Carousel component for displaying scrollable collections of items. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Carousel matches the official Jetpack Compose [Carousel API](https://developer.android.com/develop/ui/compose/layouts/pager) and displays a horizontally scrollable collection of items with configurable sizing and fling behavior. + +## Installation + + + +## Usage + +### Basic carousel + +```tsx BasicCarouselExample.tsx +import { Host, Carousel, Box, Text } from '@expo/ui/jetpack-compose'; +import { size, background } from '@expo/ui/jetpack-compose/modifiers'; + +export default function BasicCarouselExample() { + const items = [ + { label: 'Item 1', color: '#6200EE' }, + { label: 'Item 2', color: '#03DAC5' }, + { label: 'Item 3', color: '#FF5722' }, + { label: 'Item 4', color: '#4CAF50' }, + { label: 'Item 5', color: '#2196F3' }, + ]; + + return ( + + + {items.map(item => ( + + + {item.label} + + + ))} + + + ); +} +``` + +### MultiBrowse variant + +The `multiBrowse` variant shows a large item alongside smaller peek items, letting users see what comes next. + +```tsx MultiBrowseCarouselExample.tsx +import { Host, Carousel, Box, Text } from '@expo/ui/jetpack-compose'; +import { size, background } from '@expo/ui/jetpack-compose/modifiers'; + +export default function MultiBrowseCarouselExample() { + const colors = ['#6200EE', '#03DAC5', '#FF5722', '#4CAF50', '#2196F3']; + + return ( + + + {colors.map((color, index) => ( + + + Card {index + 1} + + + ))} + + + ); +} +``` + +### Unconstrained variant + +The `unconstrained` variant gives each item a fixed width without snapping behavior, allowing free-form scrolling. + +```tsx UnconstrainedCarouselExample.tsx +import { Host, Carousel, Box, Text } from '@expo/ui/jetpack-compose'; +import { size, background } from '@expo/ui/jetpack-compose/modifiers'; + +export default function UnconstrainedCarouselExample() { + const items = ['Photo 1', 'Photo 2', 'Photo 3', 'Photo 4', 'Photo 5']; + + return ( + + + {items.map(item => ( + + + {item} + + + ))} + + + ); +} +``` + +## API + +```tsx +import { Carousel } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/chip.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/chip.mdx index 188197e98a2eec..b1bdee5383b272 100644 --- a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/chip.mdx +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/chip.mdx @@ -8,10 +8,8 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A chip component for displaying compact elements that represent inputs, attributes, or actions. +Expo UI Chip matches the official Jetpack Compose [Chip API](https://developer.android.com/develop/ui/compose/components/chip) and supports assist, filter, input, and suggestion chip variants. ## Installation @@ -19,56 +17,77 @@ A chip component for displaying compact elements that represent inputs, attribut ## Usage - - - - - - ```tsx - import { Chip } from '@expo/ui/jetpack-compose'; - - // Assist chip with icon - console.log('Opening flight booking...')} - /> - - // Filter chip with selection - handleFilterToggle('Images')} - /> - - // Input chip with dismiss - handleInputDismiss('Work')} - /> - - // Suggestion chip - console.log('Searching nearby...')} - /> - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/chip) for more information. +### Assist chip + +```tsx AssistChipExample.tsx +import { Host, Chip } from '@expo/ui/jetpack-compose'; + +export default function AssistChipExample() { + return ( + + console.log('Opening flight booking...')} + /> + + ); +} +``` + +### Filter chip + +```tsx FilterChipExample.tsx +import { useState } from 'react'; +import { Host, Chip } from '@expo/ui/jetpack-compose'; + +export default function FilterChipExample() { + const [selected, setSelected] = useState(false); + + return ( + + setSelected(!selected)} + /> + + ); +} +``` + +### Input chip + +```tsx InputChipExample.tsx +import { Host, Chip } from '@expo/ui/jetpack-compose'; + +export default function InputChipExample() { + return ( + + console.log('Dismissed Work chip')} /> + + ); +} +``` + +### Suggestion chip + +```tsx SuggestionChipExample.tsx +import { Host, Chip } from '@expo/ui/jetpack-compose'; + +export default function SuggestionChipExample() { + return ( + + console.log('Searching nearby...')} + /> + + ); +} +``` ## API diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/circularprogress.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/circularprogress.mdx index dd1a9c53358e67..05468e2d700790 100644 --- a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/circularprogress.mdx +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/circularprogress.mdx @@ -8,10 +8,8 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A circular progress indicator component for displaying progress in a circular format. +Expo UI CircularProgress matches the official Jetpack Compose [Progress Indicator API](https://developer.android.com/develop/ui/compose/components/progress) and displays progress in a circular format. ## Installation @@ -19,30 +17,59 @@ A circular progress indicator component for displaying progress in a circular fo ## Usage - - - - - - ```tsx - import { CircularProgress } from '@expo/ui/jetpack-compose'; +### Indeterminate progress - - ``` +When no `progress` is provided, the progress indicator displays an indeterminate spinning animation. - - +```tsx IndeterminateCircularExample.tsx +import { Host, CircularProgress } from '@expo/ui/jetpack-compose'; -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/progress) for more information. +export default function IndeterminateCircularExample() { + return ( + + + + ); +} +``` + +### Determinate progress + +Provide a `progress` value between `0` and `1` to show determinate progress. + +```tsx DeterminateCircularExample.tsx +import { Host, CircularProgress } from '@expo/ui/jetpack-compose'; + +export default function DeterminateCircularExample() { + return ( + + + + ); +} +``` + +### Wavy progress + +`CircularWavyProgress` renders a circular progress indicator with a wavy animation style. + +```tsx CircularWavyExample.tsx +import { Host, CircularWavyProgress } from '@expo/ui/jetpack-compose'; + +export default function CircularWavyExample() { + return ( + + + + ); +} +``` ## API ```tsx -import { CircularProgress } from '@expo/ui/jetpack-compose'; +import { CircularProgress, CircularWavyProgress } from '@expo/ui/jetpack-compose'; ``` + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/column.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/column.mdx new file mode 100644 index 00000000000000..4298e18e359670 --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/column.mdx @@ -0,0 +1,48 @@ +--- +title: Column +description: A Jetpack Compose Column component for placing children vertically. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Column matches the official Jetpack Compose [Column](https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/package-summary#Column) API and places children vertically with configurable arrangement and alignment. + +## Installation + + + +## Usage + +`Column` places children vertically. Use `verticalArrangement` and `horizontalAlignment` to control spacing and alignment. + +```tsx ColumnExample.tsx +import { Host, Column, Text } from '@expo/ui/jetpack-compose'; +import { fillMaxWidth, paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function ColumnExample() { + return ( + + + First + Second + Third + + + ); +} +``` + +## API + +```tsx +import { Column } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/contextmenu.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/contextmenu.mdx index bf19d2738a1906..d26e4577bdb3b7 100644 --- a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/contextmenu.mdx +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/contextmenu.mdx @@ -8,12 +8,10 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -> **Note:** Also known as **DropdownMenu**. +Expo UI ContextMenu matches the official Jetpack Compose [Menu API](https://developer.android.com/develop/ui/compose/components/menu) and displays a context menu when a trigger element is long-pressed or clicked. -A context menu component that displays a menu when triggered, commonly used for actions and options. +> **Note:** Also known as **DropdownMenu**. ## Installation @@ -21,51 +19,31 @@ A context menu component that displays a menu when triggered, commonly used for ## Usage - - - - - - ```tsx - import { ContextMenu } from '@expo/ui/jetpack-compose'; - - - - - - setSelectedIndex(index)} - /> - - - - - - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/menu) for more information. +### Basic context menu + +```tsx BasicContextMenuExample.tsx +import { Host, ContextMenu, Button } from '@expo/ui/jetpack-compose'; + +export default function BasicContextMenuExample() { + return ( + + + + + + + + + + + + ); +} +``` ## API diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/datetimepicker.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/datetimepicker.mdx index 08bca9c41b623a..74b33e53ca7332 100644 --- a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/datetimepicker.mdx +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/datetimepicker.mdx @@ -8,72 +8,88 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A date and time picker component that allows users to select dates, times, or both using native Android dialogs. +Expo UI DateTimePicker matches the official Jetpack Compose [Date Picker](https://developer.android.com/develop/ui/compose/components/datepickers) and [Time Picker](https://developer.android.com/develop/ui/compose/components/time-pickers) APIs and supports date, time, and combined selection. ## Installation -## Date time picker - - - - - - - ```tsx - import { DateTimePicker } from '@expo/ui/jetpack-compose'; - - { - setSelectedDate(date); - }} - displayedComponents='date' - initialDate={selectedDate.toISOString()} - variant='picker' - /> - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/datepickers) for more information. - -## Time picker - - - - - - - ```tsx - import { DateTimePicker } from '@expo/ui/jetpack-compose'; - - { - setSelectedDate(date); - }} - displayedComponents='hourAndMinute' - initialDate={selectedDate.toISOString()} - variant='picker' - /> - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/time-pickers) for more information. +## Usage + +### Date picker + +```tsx DatePickerExample.tsx +import { useState } from 'react'; +import { Host, DateTimePicker } from '@expo/ui/jetpack-compose'; + +export default function DatePickerExample() { + const [selectedDate, setSelectedDate] = useState(new Date()); + + return ( + + { + setSelectedDate(date); + }} + displayedComponents="date" + initialDate={selectedDate.toISOString()} + variant="picker" + /> + + ); +} +``` + +### Time picker + +```tsx TimePickerExample.tsx +import { useState } from 'react'; +import { Host, DateTimePicker } from '@expo/ui/jetpack-compose'; + +export default function TimePickerExample() { + const [selectedDate, setSelectedDate] = useState(new Date()); + + return ( + + { + setSelectedDate(date); + }} + displayedComponents="hourAndMinute" + initialDate={selectedDate.toISOString()} + variant="picker" + /> + + ); +} +``` + +### Input variant + +Use `variant="input"` to display the picker as a text input field instead of the default picker UI. + +```tsx InputVariantExample.tsx +import { useState } from 'react'; +import { Host, DateTimePicker } from '@expo/ui/jetpack-compose'; + +export default function InputVariantExample() { + const [selectedDate, setSelectedDate] = useState(new Date()); + + return ( + + { + setSelectedDate(date); + }} + displayedComponents="date" + initialDate={selectedDate.toISOString()} + variant="input" + /> + + ); +} +``` ## API diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/divider.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/divider.mdx new file mode 100644 index 00000000000000..9fd32de4bb9a88 --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/divider.mdx @@ -0,0 +1,67 @@ +--- +title: Divider +description: A Jetpack Compose Divider component for creating visual separators. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Divider matches the official Jetpack Compose [HorizontalDivider API](https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary#HorizontalDivider) and creates a thin horizontal line to visually separate content. + +## Installation + + + +## Usage + +### Basic divider + +```tsx BasicDividerExample.tsx +import { Host, Divider, Column, Text } from '@expo/ui/jetpack-compose'; + +export default function BasicDividerExample() { + return ( + + + First section + + Second section + + + ); +} +``` + +### Divider with padding modifier + +Use the `modifiers` prop to add padding around the divider. + +```tsx DividerWithPaddingExample.tsx +import { Host, Divider, Column, Text } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function DividerWithPaddingExample() { + return ( + + + Section A + + Section B + + Section C + + + ); +} +``` + +## API + +```tsx +import { Divider } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/dockedsearchbar.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/dockedsearchbar.mdx new file mode 100644 index 00000000000000..78de7aafad86fb --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/dockedsearchbar.mdx @@ -0,0 +1,69 @@ +--- +title: DockedSearchBar +description: A Jetpack Compose DockedSearchBar component for displaying an inline search input. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI DockedSearchBar matches the official Jetpack Compose [SearchBar API](https://developer.android.com/develop/ui/compose/components/search) and displays a search input that remains anchored in its parent layout rather than expanding to full screen. + +## Installation + + + +## Usage + +### Basic docked search bar + +```tsx BasicDockedSearchBarExample.tsx +import { useState } from 'react'; +import { Host, DockedSearchBar } from '@expo/ui/jetpack-compose'; + +export default function BasicDockedSearchBarExample() { + const [query, setQuery] = useState(''); + + return ( + + + + ); +} +``` + +### With placeholder and leading icon + +Use the `DockedSearchBar.Placeholder` and `DockedSearchBar.LeadingIcon` slot components to customize the search bar appearance. + +```tsx DockedSearchBarWithSlotsExample.tsx +import { useState } from 'react'; +import { Host, DockedSearchBar, Text } from '@expo/ui/jetpack-compose'; + +export default function DockedSearchBarWithSlotsExample() { + const [query, setQuery] = useState(''); + + return ( + + + + Search items... + + + 🔍 + + + + ); +} +``` + +## API + +```tsx +import { DockedSearchBar } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/filterchip.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/filterchip.mdx new file mode 100644 index 00000000000000..cbe6322bc55465 --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/filterchip.mdx @@ -0,0 +1,87 @@ +--- +title: FilterChip +description: A Jetpack Compose FilterChip component for displaying toggleable filter options. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI FilterChip matches the official Jetpack Compose [FilterChip API](https://developer.android.com/develop/ui/compose/components/chip) and displays a compact, toggleable element used to filter content. + +## Installation + + + +## Usage + +### Basic filter chip + +```tsx BasicFilterChipExample.tsx +import { useState } from 'react'; +import { Host, FilterChip } from '@expo/ui/jetpack-compose'; + +export default function BasicFilterChipExample() { + const [selected, setSelected] = useState(false); + + return ( + + setSelected(!selected)} /> + + ); +} +``` + +### With leading icon + +Use the `FilterChip.LeadingIcon` slot component to display an icon before the label. + +```tsx FilterChipWithLeadingIconExample.tsx +import { useState } from 'react'; +import { Host, FilterChip, Text } from '@expo/ui/jetpack-compose'; + +export default function FilterChipWithLeadingIconExample() { + const [selected, setSelected] = useState(false); + + return ( + + setSelected(!selected)}> + + 📷 + + + + ); +} +``` + +### Disabled chip + +Set the `enabled` prop to `false` to prevent user interaction. + +```tsx DisabledFilterChipExample.tsx +import { Host, FilterChip } from '@expo/ui/jetpack-compose'; + +export default function DisabledFilterChipExample() { + return ( + + console.log('This will not fire')} + /> + + ); +} +``` + +## API + +```tsx +import { FilterChip } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/flowrow.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/flowrow.mdx new file mode 100644 index 00000000000000..4f91972f6fca11 --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/flowrow.mdx @@ -0,0 +1,50 @@ +--- +title: FlowRow +description: A Jetpack Compose FlowRow component for wrapping children horizontally. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI FlowRow matches the official Jetpack Compose [FlowRow](https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/package-summary#FlowRow) API and arranges children in a horizontal flow that wraps to the next line when it runs out of space. + +## Installation + + + +## Usage + +`FlowRow` arranges children in a horizontal flow that wraps to the next line when it runs out of space. + +```tsx FlowRowExample.tsx +import { Host, FlowRow, Text } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function FlowRowExample() { + const tags = ['React Native', 'Expo', 'Android', 'Jetpack Compose', 'Material 3', 'Kotlin']; + + return ( + + + {tags.map(tag => ( + {tag} + ))} + + + ); +} +``` + +## API + +```tsx +import { FlowRow } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/horizontalfloatingtoolbar.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/horizontalfloatingtoolbar.mdx new file mode 100644 index 00000000000000..9aca4fd622bf06 --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/horizontalfloatingtoolbar.mdx @@ -0,0 +1,55 @@ +--- +title: HorizontalFloatingToolbar +description: A Jetpack Compose HorizontalFloatingToolbar component for displaying a floating action bar. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI HorizontalFloatingToolbar matches the official Jetpack Compose [FloatingActionButton API](https://developer.android.com/develop/ui/compose/components/floating-action-button) and displays a horizontal toolbar that floats above content, containing action buttons. + +## Installation + + + +## Usage + +### Toolbar with FloatingActionButton + +Use `IconButton` as direct children for toolbar items, and `HorizontalFloatingToolbar.FloatingActionButton` for the primary action. + +```tsx ToolbarWithFABExample.tsx +import { Host, HorizontalFloatingToolbar, IconButton, Icon } from '@expo/ui/jetpack-compose'; + +export default function ToolbarWithFABExample() { + return ( + + + console.log('Edit pressed')}> + + + console.log('Share pressed')}> + + + console.log('Add pressed')}> + + + + + ); +} +``` + +## API + +```tsx +import { HorizontalFloatingToolbar } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/host.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/host.mdx new file mode 100644 index 00000000000000..293a92ab4e0525 --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/host.mdx @@ -0,0 +1,58 @@ +--- +title: Host +description: A Jetpack Compose Host component for bridging React Native and Jetpack Compose. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +The `Host` component is the bridge between React Native and Jetpack Compose. Every Jetpack Compose component from `@expo/ui/jetpack-compose` must be wrapped in a `Host` to render correctly. + +## Installation + + + +## Usage + +### Match contents + +Use the `matchContents` prop to make the `Host` size itself to fit the content. You can pass a boolean or an object to control vertical and horizontal sizing independently. + +```tsx MatchContents.tsx +import { Host, Button } from '@expo/ui/jetpack-compose'; + +export default function MatchContents() { + return ( + + + + ); +} +``` + +### With style + +Apply standard React Native styles to the `Host` wrapper. + +```tsx HostWithStyle.tsx +import { Host, Button } from '@expo/ui/jetpack-compose'; + +export default function HostWithStyle() { + return ( + + + + ); +} +``` + +## API + +```tsx +import { Host } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/icon.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/icon.mdx new file mode 100644 index 00000000000000..c3a964e8599150 --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/icon.mdx @@ -0,0 +1,78 @@ +--- +title: Icon +description: A Jetpack Compose Icon component for displaying icons. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +An icon component for rendering icons in Jetpack Compose. We recommend downloading icons as XML vector drawables from [Material Symbols](https://fonts.google.com/icons), which is the standard approach for Android development. + +## Installation + + + +## Usage + +### Basic icon + +Use `require()` to load an XML vector drawable downloaded from [Material Symbols](https://fonts.google.com/icons). + +```tsx BasicIcon.tsx +import { Host, Icon } from '@expo/ui/jetpack-compose'; + +export default function BasicIcon() { + return ( + + + + ); +} +``` + +### Icon with tint color + +Use the `tintColor` prop to apply a color overlay to the icon. + +```tsx TintedIcon.tsx +import { Host, Icon } from '@expo/ui/jetpack-compose'; + +export default function TintedIcon() { + return ( + + + + ); +} +``` + +### Icon with size + +Specify a custom size in dp using the `size` prop. + +```tsx SizedIcon.tsx +import { Host, Icon } from '@expo/ui/jetpack-compose'; + +export default function SizedIcon() { + return ( + + + + ); +} +``` + +## API + +```tsx +import { Icon } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/iconbutton.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/iconbutton.mdx new file mode 100644 index 00000000000000..50ee9aea57f5d7 --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/iconbutton.mdx @@ -0,0 +1,84 @@ +--- +title: IconButton +description: A Jetpack Compose IconButton component for displaying tappable icon buttons. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +An icon button component that wraps an icon in a tappable container with different visual variants. See the [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/button#icon) for more information. + +## Installation + + + +## Usage + +### Basic icon button + +```tsx BasicIconButton.tsx +import { Host, IconButton, Icon } from '@expo/ui/jetpack-compose'; + +export default function BasicIconButton() { + return ( + + console.log('Pressed')}> + + + + ); +} +``` + +### Variants + +Use the `variant` prop to change the visual style of the button. Available variants are `'default'`, `'bordered'`, and `'outlined'`. + +```tsx IconButtonVariants.tsx +import { Host, IconButton, Icon } from '@expo/ui/jetpack-compose'; + +export default function IconButtonVariants() { + return ( + + console.log('Default')}> + + + console.log('Bordered')}> + + + console.log('Outlined')}> + + + + ); +} +``` + +### Disabled + +Set the `disabled` prop to prevent interaction. + +```tsx DisabledIconButton.tsx +import { Host, IconButton, Icon } from '@expo/ui/jetpack-compose'; + +export default function DisabledIconButton() { + return ( + + console.log('Pressed')}> + + + + ); +} +``` + +## API + +```tsx +import { IconButton } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/index.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/index.mdx index fc8c8cd05cccee..c8c6dfdd4e949a 100644 --- a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/index.mdx +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/index.mdx @@ -18,3 +18,19 @@ The Jetpack Compose components in `@expo/ui/jetpack-compose` allow you to build ## Installation + +## Usage + +Using a component from `@expo/ui/jetpack-compose` requires wrapping it in a [`Host`](./host) component. The `Host` is a container for Jetpack Compose views. + +```tsx +import { Host, Button } from '@expo/ui/jetpack-compose'; + +export function SaveButton() { + return ( + + + + ); +} +``` diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/lazycolumn.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/lazycolumn.mdx new file mode 100644 index 00000000000000..1747e04460086c --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/lazycolumn.mdx @@ -0,0 +1,86 @@ +--- +title: LazyColumn +description: A Jetpack Compose LazyColumn component for displaying scrollable lists. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +A lazily-loaded vertical list component that only renders visible items for efficient scrolling. See the [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/lists) for more information. + +## Installation + + + +## Usage + +### Basic lazy column + +```tsx BasicLazyColumn.tsx +import { Host, LazyColumn, ListItem } from '@expo/ui/jetpack-compose'; + +const items = Array.from({ length: 100 }, (_, i) => `Item ${i + 1}`); + +export default function BasicLazyColumn() { + return ( + + + {items.map(item => ( + + ))} + + + ); +} +``` + +### With arrangement + +Use the `verticalArrangement` prop to control how items are spaced within the list. Pass a string value like `'spaceBetween'` or an object like `{ spacedBy: 8 }` for fixed spacing in dp. + +```tsx LazyColumnArrangement.tsx +import { Host, LazyColumn, ListItem } from '@expo/ui/jetpack-compose'; + +export default function LazyColumnArrangement() { + return ( + + + + + + + + ); +} +``` + +### With content padding + +Use the `contentPadding` prop to add padding around the list content in dp. + +```tsx LazyColumnPadding.tsx +import { Host, LazyColumn, ListItem } from '@expo/ui/jetpack-compose'; + +export default function LazyColumnPadding() { + return ( + + + + + + + + ); +} +``` + +## API + +```tsx +import { LazyColumn } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/linearprogress.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/linearprogress.mdx index ed161da49ce77c..7a837c77f9d341 100644 --- a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/linearprogress.mdx +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/linearprogress.mdx @@ -8,10 +8,8 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A linear progress indicator component for displaying progress in a horizontal bar format. +Expo UI LinearProgress matches the official Jetpack Compose [Progress Indicator API](https://developer.android.com/develop/ui/compose/components/progress) and displays progress in a horizontal bar format. ## Installation @@ -19,30 +17,59 @@ A linear progress indicator component for displaying progress in a horizontal ba ## Usage - - - - - - ```tsx - import { LinearProgress } from '@expo/ui/jetpack-compose'; +### Indeterminate progress - - ``` +When no `progress` is provided, the progress indicator displays an indeterminate animating bar. - - +```tsx IndeterminateLinearExample.tsx +import { Host, LinearProgress } from '@expo/ui/jetpack-compose'; -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/progress) for more information. +export default function IndeterminateLinearExample() { + return ( + + + + ); +} +``` + +### Determinate progress + +Provide a `progress` value between `0` and `1` to show determinate progress. + +```tsx DeterminateLinearExample.tsx +import { Host, LinearProgress } from '@expo/ui/jetpack-compose'; + +export default function DeterminateLinearExample() { + return ( + + + + ); +} +``` + +### Wavy progress + +`LinearWavyProgress` renders a linear progress indicator with a wavy animation style. + +```tsx LinearWavyExample.tsx +import { Host, LinearWavyProgress } from '@expo/ui/jetpack-compose'; + +export default function LinearWavyExample() { + return ( + + + + ); +} +``` ## API ```tsx -import { LinearProgress } from '@expo/ui/jetpack-compose'; +import { LinearProgress, LinearWavyProgress } from '@expo/ui/jetpack-compose'; ``` + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/listitem.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/listitem.mdx new file mode 100644 index 00000000000000..bdc4307573cd13 --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/listitem.mdx @@ -0,0 +1,83 @@ +--- +title: ListItem +description: A Jetpack Compose ListItem component for displaying structured list entries. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +A list item component that follows Material Design 3 guidelines for structured list entries with headline, supporting text, and leading/trailing slots. See the [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/lists) for more information. + +## Installation + + + +## Usage + +### Basic list item + +```tsx BasicListItem.tsx +import { Host, ListItem } from '@expo/ui/jetpack-compose'; + +export default function BasicListItem() { + return ( + + + + ); +} +``` + +### With supporting text and overline + +Use the `supportingText` prop to add a secondary line and `overlineText` for a category label above the headline. + +```tsx ListItemWithText.tsx +import { Host, ListItem } from '@expo/ui/jetpack-compose'; + +export default function ListItemWithText() { + return ( + + + + ); +} +``` + +### With leading and trailing slots + +Use `ListItem.Leading` and `ListItem.Trailing` sub-components to add content to the start and end of the list item. + +```tsx ListItemWithSlots.tsx +import { Host, ListItem, Icon } from '@expo/ui/jetpack-compose'; + +export default function ListItemWithSlots() { + return ( + + + + + + + + + + + ); +} +``` + +## API + +```tsx +import { ListItem } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/modifiers.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/modifiers.mdx new file mode 100644 index 00000000000000..d3b9d1b0d32498 --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/modifiers.mdx @@ -0,0 +1,460 @@ +--- +title: Modifiers +description: Jetpack Compose layout modifiers for @expo/ui components. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Jetpack Compose modifiers allow you to customize the layout, appearance, and behavior of UI components. Modifiers are the Compose equivalent of style properties — they control sizing, padding, backgrounds, interactions, and more. + +## Installation + + + +## Usage + +Modifiers are applied to components using the `modifiers` prop with an array syntax. You can combine multiple modifiers to create complex styling and behavior. Modifiers are applied in the order they appear in the array, which can affect the final result (for example, applying `padding` before `background` produces different results than the reverse). + +```tsx +import { Button, Host } from '@expo/ui/jetpack-compose'; +import { + paddingAll, + fillMaxWidth, + background, + border, + shadow, + clickable, +} from '@expo/ui/jetpack-compose/modifiers'; + +function ModifiersExample() { + return ( + + {/* Basic styling modifiers */} + + + {/* Complex combination with border and shadow */} + + + ); +} +``` + +## Padding + +Control the spacing around a component's content. + +### `paddingAll(all)` + +Applies equal padding on all four sides. + +| Parameter | Type | Description | +| --------- | -------- | -------------------- | +| `all` | `number` | Padding value in dp. | + +```tsx +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `padding(start, top, end, bottom)` + +Applies individual padding to each side. + +| Parameter | Type | Description | +| --------- | -------- | ------------------------- | +| `start` | `number` | Left/start padding in dp. | +| `top` | `number` | Top padding in dp. | +| `end` | `number` | Right/end padding in dp. | +| `bottom` | `number` | Bottom padding in dp. | + +```tsx +import { padding } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +## Size + +Control the dimensions of a component. + +### `size(width, height)` + +Sets exact dimensions for the component. + +| Parameter | Type | Description | +| --------- | -------- | ------------- | +| `width` | `number` | Width in dp. | +| `height` | `number` | Height in dp. | + +```tsx +import { size } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `fillMaxSize(fraction?)` + +Fills all available space in both dimensions. + +| Parameter | Type | Description | +| ---------- | -------- | ----------------------------------------------------- | +| `fraction` | `number` | Fraction of available space (0.0–1.0). Default `1.0`. | + +```tsx +import { fillMaxSize } from '@expo/ui/jetpack-compose/modifiers'; + + + +``` + +### `fillMaxWidth(fraction?)` + +Fills available width. + +| Parameter | Type | Description | +| ---------- | -------- | ----------------------------------------------------- | +| `fraction` | `number` | Fraction of available width (0.0–1.0). Default `1.0`. | + +```tsx +import { fillMaxWidth } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `fillMaxHeight(fraction?)` + +Fills available height. + +| Parameter | Type | Description | +| ---------- | -------- | ------------------------------------------------------ | +| `fraction` | `number` | Fraction of available height (0.0–1.0). Default `1.0`. | + +### `width(value)` + +Sets an exact width. + +| Parameter | Type | Description | +| --------- | -------- | ------------ | +| `value` | `number` | Width in dp. | + +### `height(value)` + +Sets an exact height. + +| Parameter | Type | Description | +| --------- | -------- | ------------- | +| `value` | `number` | Height in dp. | + +### `wrapContentWidth(alignment?)` + +Sizes the component to wrap its content width. + +| Parameter | Type | Description | +| ----------- | -------- | ------------------------------------ | +| `alignment` | `string` | Horizontal alignment of the content. | + +### `wrapContentHeight(alignment?)` + +Sizes the component to wrap its content height. + +| Parameter | Type | Description | +| ----------- | -------- | ---------------------------------- | +| `alignment` | `string` | Vertical alignment of the content. | + +## Position + +Control the position of a component relative to its natural placement. + +### `offset(x, y)` + +Offsets the component from its natural position without affecting the layout of surrounding components. + +| Parameter | Type | Description | +| --------- | -------- | ------------------------ | +| `x` | `number` | Horizontal offset in dp. | +| `y` | `number` | Vertical offset in dp. | + +```tsx +import { offset } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +## Appearance + +Control the visual appearance of a component. + +### `background(color)` + +Sets the background color. + +| Parameter | Type | Description | +| --------- | -------- | ------------------------------ | +| `color` | `string` | Background color (hex string). | + +```tsx +import { background } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `border(borderWidth, borderColor)` + +Adds a border around the component. + +| Parameter | Type | Description | +| ------------- | -------- | -------------------------- | +| `borderWidth` | `number` | Border width in dp. | +| `borderColor` | `string` | Border color (hex string). | + +```tsx +import { border } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `shadow(elevation)` + +Adds an elevation shadow beneath the component. + +| Parameter | Type | Description | +| ----------- | -------- | ----------------------- | +| `elevation` | `number` | Shadow elevation in dp. | + +```tsx +import { shadow } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `alpha(alpha)` + +Controls the opacity of the component. + +| Parameter | Type | Description | +| --------- | -------- | ------------------------ | +| `alpha` | `number` | Opacity value (0.0–1.0). | + +```tsx +import { alpha } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `blur(radius)` + +Applies a blur effect to the component. + +| Parameter | Type | Description | +| --------- | -------- | ------------------ | +| `radius` | `number` | Blur radius in dp. | + +```tsx +import { blur } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +## Transform + +Apply visual transformations to a component. + +### `rotate(degrees)` + +Rotates the component. + +| Parameter | Type | Description | +| --------- | -------- | -------------------------- | +| `degrees` | `number` | Rotation angle in degrees. | + +```tsx +import { rotate } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `zIndex(index)` + +Controls the drawing order of overlapping components. + +| Parameter | Type | Description | +| --------- | -------- | ------------ | +| `index` | `number` | Layer index. | + +```tsx +import { zIndex } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +## Animation + +Animate layout changes within a component. + +### `animateContentSize(dampingRatio?, stiffness?)` + +Animates size changes of the component's content using a spring animation. + +| Parameter | Type | Description | +| -------------- | -------- | ------------------------------------------- | +| `dampingRatio` | `number` | Spring damping ratio. Controls bounciness. | +| `stiffness` | `number` | Spring stiffness. Controls animation speed. | + +```tsx +import { animateContentSize } from '@expo/ui/jetpack-compose/modifiers'; + + + +``` + +## Layout + +Control how a component is sized and positioned within its parent container. + +### `weight(weight)` + +Assigns a flexible weight to a component inside a `Row` or `Column`, distributing available space proportionally among weighted children. + +| Parameter | Type | Description | +| --------- | -------- | -------------- | +| `weight` | `number` | Weight factor. | + +```tsx +import { weight } from '@expo/ui/jetpack-compose/modifiers'; + +// In a Row, the first button takes 2/3 and the second takes 1/3 + + +``` + +### `align(alignment)` + +Sets the alignment of the component within its parent container. + +| Parameter | Type | Description | +| ----------- | -------- | ------------------------------- | +| `alignment` | `string` | Alignment within the container. | + +### `matchParentSize()` + +Sizes the component to match the size of its parent `Box`. Unlike `fillMaxSize`, this does not affect the parent's measurement. + +```tsx +import { matchParentSize } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +## Interaction + +Add user interaction handlers to a component. + +### `clickable(handler)` + +Makes the component respond to click events. + +| Parameter | Type | Description | +| --------- | ------------ | -------------------------- | +| `handler` | `() => void` | Callback invoked on click. | + +```tsx +import { clickable } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +### `selectable(selected, handler)` + +Makes the component selectable, similar to a radio button. + +| Parameter | Type | Description | +| ---------- | ------------ | ---------------------------------------------- | +| `selected` | `boolean` | Whether the component is currently selected. | +| `handler` | `() => void` | Callback invoked when selection state changes. | + +```tsx +import { selectable } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +## Clipping + +Clip a component's content to a specific shape. + +### `clip(shape)` + +Clips the component to the given shape. Content outside the shape boundary is not drawn. + +| Parameter | Type | Description | +| --------- | ------- | --------------------- | +| `shape` | `Shape` | The shape to clip to. | + +#### Available shapes + +| Shape | Description | +| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Shapes.Rectangle` | A rectangle with no rounded corners. | +| `Shapes.Circle` | A perfect circle. | +| `Shapes.RoundedCorner(radius)` | A rectangle with uniform rounded corners. Pass a `number` for equal radius or an object `{ topStart, topEnd, bottomStart, bottomEnd }` for individual corner radii. | +| `Shapes.CutCorner(radius)` | A rectangle with cut (chamfered) corners. Accepts the same radius options as `RoundedCorner`. | +| `Shapes.Material.Cookie4Sided` | Material Design cookie shape with 4 sides. | +| `Shapes.Material.Cookie6Sided` | Material Design cookie shape with 6 sides. | + +```tsx +import { clip } from '@expo/ui/jetpack-compose/modifiers'; +import { Shapes } from '@expo/ui/jetpack-compose/modifiers'; + +// Circular clipping + + +// Rounded corners with uniform radius + + +// Rounded corners with individual radii + + +// Cut corners + +``` + +## Utility + +### `testID(tag)` + +Assigns a test identifier to the component for use in UI testing. + +| Parameter | Type | Description | +| --------- | -------- | ------------ | +| `tag` | `string` | The test ID. | + +```tsx +import { testID } from '@expo/ui/jetpack-compose/modifiers'; + +; +``` + +## API + +{/* prettier-ignore */} +```tsx +import { paddingAll, padding, size, fillMaxWidth, background, clickable, clip, Shapes } from '@expo/ui/jetpack-compose/modifiers'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/picker.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/picker.mdx index 521663377c4d33..bdeef8ee236c80 100644 --- a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/picker.mdx +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/picker.mdx @@ -8,72 +8,93 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A picker component that allows users to select from a list of options with different display styles. +Expo UI Picker matches the official Jetpack Compose [Segmented Button](https://developer.android.com/develop/ui/compose/components/segmented-button) and [Radio Button](https://developer.android.com/develop/ui/compose/components/radio-button) APIs and supports segmented and radio picker variants. ## Installation -## Radio picker - - - - - - - ```tsx - import { Picker } from '@expo/ui/jetpack-compose'; - - { - setSelectedIndex(index); - }} - variant="radio" - /> - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/radio-button) for more information. - -## Segmented picker - - - - - - - ```tsx - import { Picker } from '@expo/ui/jetpack-compose'; - - { - setSelectedIndex(index); - }} - variant="segmented" - /> - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/segmented-button) for more information. +## Usage + +### Segmented picker + +Use the `variant="segmented"` prop to display a segmented button group. + +```tsx SegmentedPickerExample.tsx +import { useState } from 'react'; +import { Host, Picker } from '@expo/ui/jetpack-compose'; + +export default function SegmentedPickerExample() { + const [selectedIndex, setSelectedIndex] = useState(0); + + return ( + + { + setSelectedIndex(index); + }} + variant="segmented" + /> + + ); +} +``` + +### Radio picker + +Use the `variant="radio"` prop to display a list of radio buttons. + +```tsx RadioPickerExample.tsx +import { useState } from 'react'; +import { Host, Picker } from '@expo/ui/jetpack-compose'; + +export default function RadioPickerExample() { + const [selectedIndex, setSelectedIndex] = useState(0); + + return ( + + { + setSelectedIndex(index); + }} + variant="radio" + /> + + ); +} +``` + +### Picker with custom color + +Use the `color` prop to customize the picker's accent color. + +```tsx CustomColorPickerExample.tsx +import { useState } from 'react'; +import { Host, Picker } from '@expo/ui/jetpack-compose'; + +export default function CustomColorPickerExample() { + const [selectedIndex, setSelectedIndex] = useState(0); + + return ( + + { + setSelectedIndex(index); + }} + variant="segmented" + color="#6200EE" + /> + + ); +} +``` ## API diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/pulltorefreshbox.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/pulltorefreshbox.mdx new file mode 100644 index 00000000000000..559598a5a9f44c --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/pulltorefreshbox.mdx @@ -0,0 +1,58 @@ +--- +title: PullToRefreshBox +description: A Jetpack Compose PullToRefreshBox component for pull-to-refresh interactions. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +A pull-to-refresh container that wraps scrollable content and provides a standard refresh indicator when pulled. See the [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/layouts/adaptive/support-different-screen-sizes) for more information. + +## Installation + + + +## Usage + +### Basic pull to refresh + +```tsx BasicPullToRefresh.tsx +import { useState, useCallback } from 'react'; +import { Host, PullToRefreshBox, LazyColumn, ListItem } from '@expo/ui/jetpack-compose'; + +export default function BasicPullToRefresh() { + const [refreshing, setRefreshing] = useState(false); + + const onRefresh = useCallback(() => { + setRefreshing(true); + setTimeout(() => { + setRefreshing(false); + }, 2000); + }, []); + + return ( + + + + + + + + + + + + ); +} +``` + +## API + +```tsx +import { PullToRefreshBox } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/radiobutton.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/radiobutton.mdx new file mode 100644 index 00000000000000..1254fb258a49ce --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/radiobutton.mdx @@ -0,0 +1,87 @@ +--- +title: RadioButton +description: A Jetpack Compose RadioButton component for single-selection controls. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +A radio button component for selecting a single option from a set. See the [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/radio-button) for more information. + +## Installation + + + +## Usage + +### Basic radio button + +```tsx BasicRadioButton.tsx +import { useState } from 'react'; +import { Host, RadioButton } from '@expo/ui/jetpack-compose'; + +export default function BasicRadioButton() { + const [selected, setSelected] = useState(false); + + return ( + + setSelected(!selected)} /> + + ); +} +``` + +### Radio button group + +Combine multiple `RadioButton` components to create a single-selection group. + +```tsx RadioButtonGroup.tsx +import { useState } from 'react'; +import { Host, Column, RadioButton, ListItem } from '@expo/ui/jetpack-compose'; + +export default function RadioButtonGroup() { + const [selectedOption, setSelectedOption] = useState('option1'); + + return ( + + + setSelectedOption('option1')}> + + setSelectedOption('option1')} + /> + + + setSelectedOption('option2')}> + + setSelectedOption('option2')} + /> + + + setSelectedOption('option3')}> + + setSelectedOption('option3')} + /> + + + + + ); +} +``` + +## API + +```tsx +import { RadioButton } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/row.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/row.mdx new file mode 100644 index 00000000000000..45e03635187a5c --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/row.mdx @@ -0,0 +1,48 @@ +--- +title: Row +description: A Jetpack Compose Row component for placing children horizontally. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Row matches the official Jetpack Compose [Row](https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/package-summary#Row) API and places children horizontally with configurable arrangement and alignment. + +## Installation + + + +## Usage + +`Row` places children horizontally. Use `horizontalArrangement` and `verticalAlignment` to control spacing and alignment. + +```tsx RowExample.tsx +import { Host, Row, Text } from '@expo/ui/jetpack-compose'; +import { fillMaxWidth, height } from '@expo/ui/jetpack-compose/modifiers'; + +export default function RowExample() { + return ( + + + Item 1 + Item 2 + Item 3 + + + ); +} +``` + +## API + +```tsx +import { Row } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/searchbar.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/searchbar.mdx new file mode 100644 index 00000000000000..e62c2248d751dc --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/searchbar.mdx @@ -0,0 +1,64 @@ +--- +title: SearchBar +description: A Jetpack Compose SearchBar component for search input functionality. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI SearchBar matches the official Jetpack Compose [Search](https://developer.android.com/develop/ui/compose/components/search) API and provides a search input with support for placeholder text and expanded full-screen search. + +## Installation + + + +## Usage + +### Basic search bar + +```tsx BasicSearchBarExample.tsx +import { useState } from 'react'; +import { Host, SearchBar } from '@expo/ui/jetpack-compose'; + +export default function BasicSearchBarExample() { + const [query, setQuery] = useState(''); + + return ( + + setQuery(searchText)} /> + + ); +} +``` + +### Search bar with placeholder + +Use the `SearchBar.Placeholder` sub-component to display hint text when the search field is empty. + +```tsx SearchBarPlaceholderExample.tsx +import { useState } from 'react'; +import { Host, SearchBar } from '@expo/ui/jetpack-compose'; + +export default function SearchBarPlaceholderExample() { + const [query, setQuery] = useState(''); + + return ( + + setQuery(searchText)}> + Search items... + + + ); +} +``` + +## API + +```tsx +import { SearchBar } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/shape.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/shape.mdx new file mode 100644 index 00000000000000..3ddb0f9664fcb3 --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/shape.mdx @@ -0,0 +1,114 @@ +--- +title: Shape +description: A Jetpack Compose Shape component for drawing geometric shapes. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Shape matches the official Jetpack Compose [Shapes](https://developer.android.com/develop/ui/compose/graphics/draw/shapes) API and provides a set of sub-components for drawing geometric shapes such as stars, circles, rectangles, pills, and polygons. + +## Installation + + + +## Usage + +### Basic shapes + +Render common shapes using the `Shape` sub-components. + +```tsx BasicShapesExample.tsx +import { Host, Shape, Row } from '@expo/ui/jetpack-compose'; +import { size } from '@expo/ui/jetpack-compose/modifiers'; + +export default function BasicShapesExample() { + return ( + + + + + + + + + ); +} +``` + +### Shapes with rounded corners + +Use `cornerRounding` and `smoothing` to customize the appearance of shapes. + +```tsx RoundedShapesExample.tsx +import { Host, Shape, Row } from '@expo/ui/jetpack-compose'; +import { size } from '@expo/ui/jetpack-compose/modifiers'; + +export default function RoundedShapesExample() { + return ( + + + + + + + ); +} +``` + +### Polygon and star variants + +Use `verticesCount` and `innerRadius` to control the shape geometry. + +```tsx PolygonShapesExample.tsx +import { Host, Shape, Row } from '@expo/ui/jetpack-compose'; +import { size } from '@expo/ui/jetpack-compose/modifiers'; + +export default function PolygonShapesExample() { + return ( + + + + + + + + ); +} +``` + +## API + +```tsx +import { Shape } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/slider.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/slider.mdx index ccbf3bf914aff9..eada5c39d07aba 100644 --- a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/slider.mdx +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/slider.mdx @@ -8,10 +8,8 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A slider component that allows users to select a value from a continuous range by dragging a thumb along a track. +Expo UI Slider matches the official Jetpack Compose [Slider API](https://developer.android.com/develop/ui/compose/components/slider) and allows selecting values from a bounded range. ## Installation @@ -19,31 +17,60 @@ A slider component that allows users to select a value from a continuous range b ## Usage - - - - - - ```tsx - import { Slider } from '@expo/ui/jetpack-compose'; - - { - setValue(value); - }} - /> - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/slider) for more information. +### Basic slider + +```tsx BasicSliderExample.tsx +import { useState } from 'react'; +import { Host, Slider } from '@expo/ui/jetpack-compose'; + +export default function BasicSliderExample() { + const [value, setValue] = useState(0.5); + + return ( + + + + ); +} +``` + +### Slider with custom range + +Use the `min` and `max` props to define the slider's value range. + +```tsx CustomRangeSliderExample.tsx +import { useState } from 'react'; +import { Host, Slider } from '@expo/ui/jetpack-compose'; + +export default function CustomRangeSliderExample() { + const [value, setValue] = useState(50); + + return ( + + + + ); +} +``` + +### Slider with steps + +Use the `steps` prop to define discrete increments. Set `steps` to `0` for continuous values. + +```tsx SteppedSliderExample.tsx +import { useState } from 'react'; +import { Host, Slider } from '@expo/ui/jetpack-compose'; + +export default function SteppedSliderExample() { + const [value, setValue] = useState(0); + + return ( + + + + ); +} +``` ## API diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/spacer.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/spacer.mdx new file mode 100644 index 00000000000000..46abec5551ce85 --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/spacer.mdx @@ -0,0 +1,68 @@ +--- +title: Spacer +description: A Jetpack Compose Spacer component for adding flexible space between elements. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Spacer matches the official Jetpack Compose [Spacer](https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/package-summary#Spacer) API and is used to add flexible or fixed-size space between elements in a layout. + +## Installation + + + +## Usage + +### Spacer with weight + +Use the `weight()` modifier to make the spacer fill available space proportionally within a `Row` or `Column`. + +```tsx SpacerWeightExample.tsx +import { Host, Row, Spacer, Text } from '@expo/ui/jetpack-compose'; +import { fillMaxWidth, weight } from '@expo/ui/jetpack-compose/modifiers'; + +export default function SpacerWeightExample() { + return ( + + + Left + + Right + + + ); +} +``` + +### Spacer with fixed size + +Use a `height` or `width` modifier to create a spacer with a fixed dimension. + +```tsx SpacerFixedSizeExample.tsx +import { Host, Column, Spacer, Text } from '@expo/ui/jetpack-compose'; +import { height } from '@expo/ui/jetpack-compose/modifiers'; + +export default function SpacerFixedSizeExample() { + return ( + + + Above + + Below (24dp gap) + + + ); +} +``` + +## API + +```tsx +import { Spacer } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/surface.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/surface.mdx new file mode 100644 index 00000000000000..baafb447d46aec --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/surface.mdx @@ -0,0 +1,90 @@ +--- +title: Surface +description: A Jetpack Compose Surface component for styled content containers. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Surface matches the official Jetpack Compose [Surface](https://developer.android.com/develop/ui/compose/components/surfaces) API and provides a container that applies Material Design surface styling including color, elevation, and content color. + +## Installation + + + +## Usage + +### Basic surface + +```tsx BasicSurfaceExample.tsx +import { Host, Surface, Text } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function BasicSurfaceExample() { + return ( + + + Content on a surface + + + ); +} +``` + +### Surface with elevation + +Use `tonalElevation` and `shadowElevation` to control the visual depth of the surface. + +```tsx SurfaceElevationExample.tsx +import { Host, Surface, Column, Text } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function SurfaceElevationExample() { + return ( + + + + Low elevation + + + High elevation + + + + ); +} +``` + +### Surface with custom colors + +Use the `color` and `contentColor` props to override the default Material theme colors. + +```tsx SurfaceCustomColorsExample.tsx +import { Host, Surface, Text } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function SurfaceCustomColorsExample() { + return ( + + + Custom colored surface + + + ); +} +``` + +## API + +```tsx +import { Surface } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/switch.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/switch.mdx index 0a7795c5c78aba..29353f9ccc0d6b 100644 --- a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/switch.mdx +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/switch.mdx @@ -8,78 +8,89 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A switch component that provides toggle functionality with different visual styles. +Expo UI Switch matches the official Jetpack Compose [Switch](https://developer.android.com/develop/ui/compose/components/switch) and [Checkbox](https://developer.android.com/develop/ui/compose/components/checkbox) APIs and supports switch, checkbox, and button variants. ## Installation -## Toggle switch - -> **Note:** also known as **Toggle**. - - - - - - - - ```tsx - import { Switch } from '@expo/ui/jetpack-compose'; - - { - setChecked(checked); - }} - color="#ff0000" - label="Play music" - variant="switch" - /> - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/switch) for more information. - -## Checkbox - - - - - - - - ```tsx - import { Switch } from '@expo/ui/jetpack-compose'; - - { - setChecked(checked); - }} - label="Play music" - color="#ff0000" - variant="checkbox" - /> - ``` - - - - -> See [official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/components/checkbox) for more information. +## Usage + +### Toggle switch + +Use the `variant="switch"` prop to display a standard toggle switch. + +```tsx ToggleSwitchExample.tsx +import { useState } from 'react'; +import { Host, Switch } from '@expo/ui/jetpack-compose'; + +export default function ToggleSwitchExample() { + const [checked, setChecked] = useState(false); + + return ( + + + + ); +} +``` + +### Checkbox + +Use the `variant="checkbox"` prop to display a checkbox control. + +```tsx CheckboxExample.tsx +import { useState } from 'react'; +import { Host, Switch } from '@expo/ui/jetpack-compose'; + +export default function CheckboxExample() { + const [checked, setChecked] = useState(false); + + return ( + + + + ); +} +``` + +### Button variant + +Use the `variant="button"` prop to display a toggle button. + +```tsx ButtonVariantExample.tsx +import { useState } from 'react'; +import { Host, Switch } from '@expo/ui/jetpack-compose'; + +export default function ButtonVariantExample() { + const [checked, setChecked] = useState(false); + + return ( + + + + ); +} +``` ## API diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/text.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/text.mdx new file mode 100644 index 00000000000000..fbbabc9b231819 --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/text.mdx @@ -0,0 +1,107 @@ +--- +title: Text +description: A Jetpack Compose Text component for displaying styled text. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI Text matches the official Jetpack Compose [Text styling](https://developer.android.com/develop/ui/compose/text/style-text) API and displays text with Material 3 typography styles, custom fonts, and text formatting options. + +## Installation + + + +## Usage + +### Basic text + +```tsx BasicTextExample.tsx +import { Host, Text } from '@expo/ui/jetpack-compose'; + +export default function BasicTextExample() { + return ( + + Hello, world! + + ); +} +``` + +### Typography styles + +Use the `style` prop with `typography` to apply Material 3 typography presets. + +```tsx TypographyExample.tsx +import { Host, Text, Column } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function TypographyExample() { + return ( + + + Display Large + Headline Medium + Body Small + Label Large + + + ); +} +``` + +### Text with maxLines and overflow + +Control text truncation with `maxLines` and `overflow`. + +```tsx TextOverflowExample.tsx +import { Host, Text } from '@expo/ui/jetpack-compose'; +import { width } from '@expo/ui/jetpack-compose/modifiers'; + +export default function TextOverflowExample() { + return ( + + + This is a long paragraph of text that will be truncated after two lines with an ellipsis at + the end to indicate there is more content. + + + ); +} +``` + +### Styled text + +Apply custom text styles including font weight, style, size, and decoration. + +```tsx StyledTextExample.tsx +import { Host, Text, Column } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function StyledTextExample() { + return ( + + + Bold text + Italic text + Underlined text + Spaced out text + + Colored and centered + + + + ); +} +``` + +## API + +```tsx +import { Text } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/textbutton.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/textbutton.mdx new file mode 100644 index 00000000000000..4e3d83388d854a --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/textbutton.mdx @@ -0,0 +1,81 @@ +--- +title: TextButton +description: A Jetpack Compose TextButton component for text-styled buttons. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI TextButton matches the official Jetpack Compose [Text Button](https://developer.android.com/develop/ui/compose/components/button#text) API and displays a button without a background container, using only text as the visual element. + +## Installation + + + +## Usage + +### Basic text button + +```tsx BasicTextButtonExample.tsx +import { Host, TextButton } from '@expo/ui/jetpack-compose'; + +export default function BasicTextButtonExample() { + return ( + + console.log('Pressed')}>Click me + + ); +} +``` + +### Disabled text button + +Set the `disabled` prop to prevent user interaction. + +```tsx DisabledTextButtonExample.tsx +import { Host, TextButton } from '@expo/ui/jetpack-compose'; + +export default function DisabledTextButtonExample() { + return ( + + console.log('Pressed')}> + Disabled + + + ); +} +``` + +### Text button with custom color + +Use the `color` prop to change the button text color. + +```tsx CustomColorTextButtonExample.tsx +import { Host, TextButton, Column } from '@expo/ui/jetpack-compose'; + +export default function CustomColorTextButtonExample() { + return ( + + + console.log('Pink')}> + Pink button + + console.log('Green')}> + Green button + + + + ); +} +``` + +## API + +```tsx +import { TextButton } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/textinput.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/textinput.mdx index 00f25ee0607568..2bff0268bc3339 100644 --- a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/textinput.mdx +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/textinput.mdx @@ -8,10 +8,8 @@ platforms: ['android'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; -import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; -import { Tabs, Tab } from '~/ui/components/Tabs'; -A text input component that allows users to enter and edit text using native Android text fields. +Expo UI TextInput matches the official Jetpack Compose [TextField API](https://developer.android.com/develop/ui/compose/text/user-input) and supports single-line and multiline text input with various keyboard types. ## Installation @@ -19,25 +17,56 @@ A text input component that allows users to enter and edit text using native And ## Usage - - - - - - ```tsx - import { TextInput } from '@expo/ui/jetpack-compose'; - - - ``` - - - - -> See [Official Jetpack Compose documentation](https://developer.android.com/develop/ui/compose/text/user-input) for more information. +### Basic text input + +```tsx BasicTextInputExample.tsx +import { useState } from 'react'; +import { Host, TextInput } from '@expo/ui/jetpack-compose'; + +export default function BasicTextInputExample() { + const [value, setValue] = useState('Hello, world!'); + + return ( + + + + ); +} +``` + +### Multiline text input + +```tsx MultilineTextInputExample.tsx +import { useState } from 'react'; +import { Host, TextInput } from '@expo/ui/jetpack-compose'; + +export default function MultilineTextInputExample() { + const [value, setValue] = useState(''); + + return ( + + + + ); +} +``` + +### Numeric keyboard + +```tsx NumericTextInputExample.tsx +import { useState } from 'react'; +import { Host, TextInput } from '@expo/ui/jetpack-compose'; + +export default function NumericTextInputExample() { + const [value, setValue] = useState(''); + + return ( + + + + ); +} +``` ## API diff --git a/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/togglebutton.mdx b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/togglebutton.mdx new file mode 100644 index 00000000000000..533dbb658d86fc --- /dev/null +++ b/docs/pages/versions/v55.0.0/sdk/ui/jetpack-compose/togglebutton.mdx @@ -0,0 +1,131 @@ +--- +title: ToggleButton +description: A Jetpack Compose ToggleButton component for togglable buttons. +sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo-ui' +packageName: '@expo/ui' +platforms: ['android'] +--- + +import APISection from '~/components/plugins/APISection'; +import { APIInstallSection } from '~/components/plugins/InstallSection'; + +Expo UI ToggleButton matches the official Jetpack Compose [Toggle Button](https://developer.android.com/develop/ui/compose/components/button#toggle) API and provides a button that switches between checked and unchecked states with multiple visual variants. + +## Installation + + + +## Usage + +### Basic toggle button + +```tsx BasicToggleButtonExample.tsx +import { useState } from 'react'; +import { Host, ToggleButton } from '@expo/ui/jetpack-compose'; + +export default function BasicToggleButtonExample() { + const [checked, setChecked] = useState(false); + + return ( + + setChecked(value)} + /> + + ); +} +``` + +### Toggle button variants + +Use the `variant` prop to switch between `'default'`, `'icon'`, `'filledIcon'`, and `'outlinedIcon'` styles. + +```tsx ToggleButtonVariantsExample.tsx +import { useState } from 'react'; +import { Host, ToggleButton, Column } from '@expo/ui/jetpack-compose'; +import { paddingAll } from '@expo/ui/jetpack-compose/modifiers'; + +export default function ToggleButtonVariantsExample() { + const [checked1, setChecked1] = useState(false); + const [checked2, setChecked2] = useState(true); + const [checked3, setChecked3] = useState(false); + const [checked4, setChecked4] = useState(true); + + return ( + + + setChecked1(value)} + /> + setChecked2(value)} + /> + setChecked3(value)} + /> + setChecked4(value)} + /> + + + ); +} +``` + +### Toggle button with custom color + +```tsx CustomColorToggleButtonExample.tsx +import { useState } from 'react'; +import { Host, ToggleButton } from '@expo/ui/jetpack-compose'; + +export default function CustomColorToggleButtonExample() { + const [checked, setChecked] = useState(true); + + return ( + + setChecked(value)} + /> + + ); +} +``` + +### Disabled toggle button + +```tsx DisabledToggleButtonExample.tsx +import { Host, ToggleButton } from '@expo/ui/jetpack-compose'; + +export default function DisabledToggleButtonExample() { + return ( + + + + ); +} +``` + +## API + +```tsx +import { ToggleButton } from '@expo/ui/jetpack-compose'; +``` + + diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/alertdialog.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/alertdialog.json new file mode 100644 index 00000000000000..3b196592f2d7e7 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/alertdialog.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/alertdialog","variant":"project","kind":1,"children":[{"name":"AlertDialogButtonColors","variant":"declaration","kind":2097152,"children":[{"name":"containerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The background color of the button."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"contentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text color of the button."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"AlertDialogProps","variant":"declaration","kind":2097152,"children":[{"name":"confirmButtonColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The colors for the confirm button."}]},"type":{"type":"reference","name":"AlertDialogButtonColors","package":"@expo/ui"}},{"name":"confirmButtonText","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text of the confirm button of the alert dialog."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"dismissButtonColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The colors for the dismiss button."}]},"type":{"type":"reference","name":"AlertDialogButtonColors","package":"@expo/ui"}},{"name":"dismissButtonText","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text of the dismiss button of the alert dialog."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onConfirmPressed","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback that is called when the user tries to confirm the dialog."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"onDismissPressed","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback that is called when the user tries to dismiss the dialog."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"text","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text of the alert dialog."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"title","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The title of the alert dialog."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"visible","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the alert dialog is visible."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"NativeAlertDialogProps","variant":"declaration","kind":2097152,"type":{"type":"reference","name":"AlertDialogProps","package":"@expo/ui"}},{"name":"AlertDialog","variant":"declaration","kind":64,"signatures":[{"name":"AlertDialog","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders an "},{"kind":"code","text":"`AlertDialog`"},{"kind":"text","text":" component."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"AlertDialogProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/basicalertdialog.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/basicalertdialog.json new file mode 100644 index 00000000000000..9e429561732ca8 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/basicalertdialog.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/basicalertdialog","variant":"project","kind":1,"children":[{"name":"BasicAlertDialogProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The content to display inside the dialog."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onDismissRequest","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback that is called when the user tries to dismiss the dialog\n(e.g. by tapping outside of it or pressing the back button)."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}}]},{"name":"BasicAlertDialog","variant":"declaration","kind":64,"signatures":[{"name":"BasicAlertDialog","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A basic alert dialog that provides a blank container for custom content.\nUnlike "},{"kind":"code","text":"`AlertDialog`"},{"kind":"text","text":", this component does not have structured title/text/buttons slots."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"BasicAlertDialogProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/bottomsheet.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/bottomsheet.json index 7bc06de2e2647b..70bd3b3b8a1f54 100644 --- a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/bottomsheet.json +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/bottomsheet.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/bottomsheet","variant":"project","kind":1,"children":[{"name":"BottomSheetProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The children of the "},{"kind":"code","text":"`BottomSheet`"},{"kind":"text","text":" component."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"isOpened","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Whether the "},{"kind":"code","text":"`BottomSheet`"},{"kind":"text","text":" is opened."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"onIsOpenedChange","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Callback function that is called when the "},{"kind":"code","text":"`BottomSheet`"},{"kind":"text","text":" is opened."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"isOpened","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"boolean"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"skipPartiallyExpanded","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Immediately opens the bottom sheet in full screen."}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"BottomSheet","variant":"declaration","kind":64,"signatures":[{"name":"BottomSheet","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"BottomSheetProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/bottomsheet","variant":"project","kind":1,"children":[{"name":"BottomSheetProps","variant":"declaration","kind":2097152,"comment":{"summary":[],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use "},{"kind":"code","text":"`ModalBottomSheetProps`"},{"kind":"text","text":" instead."}]}]},"type":{"type":"reference","name":"ModalBottomSheetProps","package":"@expo/ui"}},{"name":"ModalBottomSheetProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The children of the "},{"kind":"code","text":"`ModalBottomSheet`"},{"kind":"text","text":" component."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onDismissRequest","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Callback function that is called when the bottom sheet is dismissed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"skipPartiallyExpanded","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Immediately opens the bottom sheet in full screen."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"BottomSheet","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use "},{"kind":"code","text":"`ModalBottomSheet`"},{"kind":"text","text":" instead."}]}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A Material Design modal bottom sheet."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ModalBottomSheetProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}},"defaultValue":"ModalBottomSheet"},{"name":"ModalBottomSheet","variant":"declaration","kind":64,"signatures":[{"name":"ModalBottomSheet","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A Material Design modal bottom sheet."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ModalBottomSheetProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/box.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/box.json new file mode 100644 index 00000000000000..840840c443f428 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/box.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/box","variant":"project","kind":1,"children":[{"name":"BoxProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"contentAlignment","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Alignment of children within the box."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"ContentAlignment"},"name":"ContentAlignment","package":"@expo/ui"}},{"name":"floatingToolbarExitAlwaysScrollBehavior","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Scroll behavior for the floating toolbar exit."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"FloatingToolbarExitAlwaysScrollBehavior"},"name":"FloatingToolbarExitAlwaysScrollBehavior","package":"@expo/ui"}}]}},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"PrimitiveBaseProps"},"name":"PrimitiveBaseProps","package":"@expo/ui"}]}},{"name":"Box","variant":"declaration","kind":64,"signatures":[{"name":"Box","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"BoxProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/button.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/button.json index 056bb677992788..9fe096c0dfdc70 100644 --- a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/button.json +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/button.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/button","variant":"project","kind":1,"children":[{"name":"ButtonElementColors","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Colors for button's core elements."}]},"children":[{"name":"containerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"contentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"disabledContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"disabledContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}}]},{"name":"ButtonProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text to display inside the button."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}},{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"React.JSX.Element","package":"@types/react"}]}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Button color."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Disabled state of the button."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for button's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","name":"ButtonElementColors","package":"@expo/ui"}},{"name":"leadingIcon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A string describing the leading icon to display in the button.\nUses Material Icons on Android."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Button/types.ts","qualifiedName":"MaterialIcon"},"name":"MaterialIcon","package":"@expo/ui"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A callback that is called when the button is pressed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"shape","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Shape/index.tsx","qualifiedName":"ShapeJSXElement"},"name":"ShapeJSXElement","package":"@expo/ui"}},{"name":"systemImage","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A string describing the system image to display in the button.\nUses Material Icons on Android."}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use "},{"kind":"code","text":"`leadingIcon`"},{"kind":"text","text":" instead."}]}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Button/types.ts","qualifiedName":"MaterialIcon"},"name":"MaterialIcon","package":"@expo/ui"}},{"name":"trailingIcon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A string describing the trailing icon to display in the button.\nUses Material Icons on Android."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Button/types.ts","qualifiedName":"MaterialIcon"},"name":"MaterialIcon","package":"@expo/ui"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The button variant."}]},"type":{"type":"reference","name":"ButtonVariant","package":"@expo/ui"}}]},{"name":"ButtonVariant","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"The built-in button styles available on Android.\n- "},{"kind":"code","text":"`outlined`"},{"kind":"text","text":" - A button with an outline.\n- "},{"kind":"code","text":"`elevated`"},{"kind":"text","text":" - A filled button with a shadow."}]},"type":{"type":"union","types":[{"type":"literal","value":"default"},{"type":"literal","value":"bordered"},{"type":"literal","value":"borderless"},{"type":"literal","value":"outlined"},{"type":"literal","value":"elevated"}]}},{"name":"Button","variant":"declaration","kind":64,"signatures":[{"name":"Button","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Displays a native button component."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ButtonProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/button","variant":"project","kind":1,"children":[{"name":"ButtonElementColors","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Colors for button's core elements."}]},"children":[{"name":"containerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"contentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabledContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabledContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"ButtonProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text to display inside the button."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}},{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"React.JSX.Element","package":"@types/react"}]}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Button color."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Disabled state of the button."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for button's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","name":"ButtonElementColors","package":"@expo/ui"}},{"name":"leadingIcon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A string describing the leading icon to display in the button.\nUses Material Icons on Android."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Button/types.ts","qualifiedName":"MaterialIcon"},"name":"MaterialIcon","package":"@expo/ui"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A callback that is called when the button is pressed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"shape","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Shape/index.tsx","qualifiedName":"ShapeJSXElement"},"name":"ShapeJSXElement","package":"@expo/ui"}},{"name":"systemImage","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A string describing the system image to display in the button.\nUses Material Icons on Android."}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use "},{"kind":"code","text":"`leadingIcon`"},{"kind":"text","text":" instead."}]}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Button/types.ts","qualifiedName":"MaterialIcon"},"name":"MaterialIcon","package":"@expo/ui"}},{"name":"trailingIcon","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A string describing the trailing icon to display in the button.\nUses Material Icons on Android."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Button/types.ts","qualifiedName":"MaterialIcon"},"name":"MaterialIcon","package":"@expo/ui"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The button variant."}]},"type":{"type":"reference","name":"ButtonVariant","package":"@expo/ui"}}]},{"name":"ButtonVariant","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"The built-in button styles available on Android.\n- "},{"kind":"code","text":"`outlined`"},{"kind":"text","text":" - A button with an outline.\n- "},{"kind":"code","text":"`elevated`"},{"kind":"text","text":" - A filled button with a shadow."}]},"type":{"type":"union","types":[{"type":"literal","value":"default"},{"type":"literal","value":"bordered"},{"type":"literal","value":"borderless"},{"type":"literal","value":"outlined"},{"type":"literal","value":"elevated"}]}},{"name":"Button","variant":"declaration","kind":64,"signatures":[{"name":"Button","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Displays a native button component."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ButtonProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/card.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/card.json new file mode 100644 index 00000000000000..ce22c1ee42b412 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/card.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/card","variant":"project","kind":1,"children":[{"name":"CardElementColors","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Colors for card's core elements."}]},"children":[{"name":"containerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"contentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"CardProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The content to display inside the card."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The background color of the card."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for card's core elements."}]},"type":{"type":"reference","name":"CardElementColors","package":"@expo/ui"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The variant of the card.\n- 'default' - A filled card with no outline.\n- 'elevated' - A filled card with elevation/shadow.\n- 'outlined' - A card with an outline border."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'default'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"default"},{"type":"literal","value":"elevated"},{"type":"literal","value":"outlined"}]}}]},{"name":"Card","variant":"declaration","kind":64,"signatures":[{"name":"Card","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A card component that provides a surface for content."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"CardProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/carousel.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/carousel.json new file mode 100644 index 00000000000000..1ac2fa44cf3067 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/carousel.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/carousel","variant":"project","kind":1,"children":[{"name":"CarouselProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Children to render"}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"contentPadding","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Padding for carousel content (dp or object)"}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"reference","name":"PaddingValuesRecord","package":"@expo/ui"}]}},{"name":"flingBehavior","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Fling behavior type"}]},"type":{"type":"reference","name":"FlingBehaviorType","package":"@expo/ui"}},{"name":"itemSpacing","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Spacing between items (dp)"}]},"type":{"type":"intrinsic","name":"number"}},{"name":"itemWidth","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Item width (dp) for unconstrained variant"}]},"type":{"type":"intrinsic","name":"number"}},{"name":"maxSmallItemWidth","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Maximum small item width (dp)"}]},"type":{"type":"intrinsic","name":"number"}},{"name":"minSmallItemWidth","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Minimum small item width (dp)"}]},"type":{"type":"intrinsic","name":"number"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"preferredItemWidth","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Preferred item width (dp) for multiBrowse variant"}]},"type":{"type":"intrinsic","name":"number"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Carousel variant"}]},"type":{"type":"reference","name":"CarouselVariant","package":"@expo/ui"}}]},{"name":"CarouselVariant","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"multiBrowse"},{"type":"literal","value":"unconstrained"}]}},{"name":"FlingBehaviorType","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"singleAdvance"},{"type":"literal","value":"noSnap"}]}},{"name":"PaddingValuesRecord","variant":"declaration","kind":2097152,"children":[{"name":"bottom","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"end","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"start","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"top","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}}]},{"name":"Carousel","variant":"declaration","kind":64,"signatures":[{"name":"Carousel","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"CarouselProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"transformCarouselProps","variant":"declaration","kind":64,"signatures":[{"name":"transformCarouselProps","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"CarouselProps","package":"@expo/ui"}}],"type":{"type":"reference","name":"CarouselProps","package":"@expo/ui"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/column.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/column.json new file mode 100644 index 00000000000000..3313d9bdbffdd6 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/column.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/column","variant":"project","kind":1,"children":[{"name":"ColumnProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"horizontalAlignment","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Horizontal alignment of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"HorizontalAlignment"},"name":"HorizontalAlignment","package":"@expo/ui"}},{"name":"horizontalArrangement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Horizontal arrangement of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"HorizontalArrangement"},"name":"HorizontalArrangement","package":"@expo/ui"}},{"name":"verticalAlignment","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Vertical alignment of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"VerticalAlignment"},"name":"VerticalAlignment","package":"@expo/ui"}},{"name":"verticalArrangement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Vertical arrangement of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"VerticalArrangement"},"name":"VerticalArrangement","package":"@expo/ui"}}]}},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"PrimitiveBaseProps"},"name":"PrimitiveBaseProps","package":"@expo/ui"}]}},{"name":"Column","variant":"declaration","kind":64,"signatures":[{"name":"Column","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ColumnProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/contextmenu.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/contextmenu.json index 7b8104fbce683c..3bf7a02324bdd0 100644 --- a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/contextmenu.json +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/contextmenu.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/contextmenu","variant":"project","kind":1,"children":[{"name":"ContextMenuContentProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ContextMenu/index.tsx","qualifiedName":"SubmenuElement"},"name":"SubmenuElement","package":"@expo/ui"},{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ContextMenu/index.tsx","qualifiedName":"SubmenuElement"},"name":"SubmenuElement","package":"@expo/ui"}}]}}]},{"name":"ContextMenuProps","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Props of the "},{"kind":"code","text":"`ContextMenu`"},{"kind":"text","text":" component."}]},"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The contents of the submenu are used as an anchor for the context menu.\nThe children will be wrapped in a pressable element, which triggers opening of the context menu."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The color of the container holding the context menu items."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional styles to apply to the "},{"kind":"code","text":"`ContextMenu`"},{"kind":"text","text":"."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"ViewStyle"},"name":"ViewStyle","package":"react-native"}],"name":"StyleProp","package":"react-native"}}]},{"name":"ContextMenu","variant":"declaration","kind":64,"children":[{"name":"Items","variant":"declaration","kind":1024,"type":{"type":"query","queryType":{"type":"reference","name":"Items","package":"@expo/ui"}}},{"name":"Preview","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]}}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}},{"name":"Trigger","variant":"declaration","kind":1024,"type":{"type":"query","queryType":{"type":"reference","name":"Trigger","package":"@expo/ui"}}}],"signatures":[{"name":"ContextMenu","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ContextMenuProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Items","variant":"declaration","kind":64,"children":[{"name":"tag","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}],"signatures":[{"name":"Items","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ContextMenuContentProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Preview","variant":"declaration","kind":64,"signatures":[{"name":"Preview","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]}}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Submenu","variant":"declaration","kind":64,"signatures":[{"name":"Submenu","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ContextMenu/Submenu.tsx","qualifiedName":"SubmenuProps"},"name":"SubmenuProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Trigger","variant":"declaration","kind":64,"children":[{"name":"tag","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}],"signatures":[{"name":"Trigger","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]}}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/contextmenu","variant":"project","kind":1,"children":[{"name":"ContextMenuContentProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ContextMenu/index.tsx","qualifiedName":"SubmenuElement"},"name":"SubmenuElement","package":"@expo/ui"},{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ContextMenu/index.tsx","qualifiedName":"SubmenuElement"},"name":"SubmenuElement","package":"@expo/ui"}}]}}]},{"name":"ContextMenuProps","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Props of the "},{"kind":"code","text":"`ContextMenu`"},{"kind":"text","text":" component."}]},"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The contents of the submenu are used as an anchor for the context menu.\nThe children will be wrapped in a pressable element, which triggers opening of the context menu."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The color of the container holding the context menu items."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional styles to apply to the "},{"kind":"code","text":"`ContextMenu`"},{"kind":"text","text":"."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"ViewStyle"},"name":"ViewStyle","package":"react-native"}],"name":"StyleProp","package":"react-native"}}]},{"name":"ContextMenu","variant":"declaration","kind":64,"children":[{"name":"Items","variant":"declaration","kind":1024,"type":{"type":"query","queryType":{"type":"reference","name":"Items","package":"@expo/ui"}}},{"name":"Preview","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]}}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}},{"name":"Trigger","variant":"declaration","kind":1024,"type":{"type":"query","queryType":{"type":"reference","name":"Trigger","package":"@expo/ui"}}}],"signatures":[{"name":"ContextMenu","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ContextMenuProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Items","variant":"declaration","kind":64,"children":[{"name":"tag","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}],"signatures":[{"name":"Items","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ContextMenuContentProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Preview","variant":"declaration","kind":64,"signatures":[{"name":"Preview","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]}}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Submenu","variant":"declaration","kind":64,"signatures":[{"name":"Submenu","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ContextMenu/Submenu.tsx","qualifiedName":"SubmenuProps"},"name":"SubmenuProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"Trigger","variant":"declaration","kind":64,"children":[{"name":"tag","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}],"signatures":[{"name":"Trigger","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"ReactNode","package":"@types/react","qualifiedName":"React.ReactNode"}}]}}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/datetimepicker.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/datetimepicker.json index 5fc41fd7147571..bc37658f4d5097 100644 --- a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/datetimepicker.json +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/datetimepicker.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/datetimepicker","variant":"project","kind":1,"children":[{"name":"AndroidVariant","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"picker"},{"type":"literal","value":"input"}]}},{"name":"DateTimePickerProps","variant":"declaration","kind":2097152,"children":[{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The tint color to use on the picker elements."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"displayedComponents","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The components that the picker should display.\nOn Android, you can have a picker that selects just the date or just the time.\n"},{"kind":"code","text":"`dateAndTime`"},{"kind":"text","text":" is only available on iOS and will result in a date picker on Android.\nOn iOS, you can have a picker that selects both date and time."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'date'"}]}]},"type":{"type":"reference","name":"DisplayedComponents","package":"@expo/ui"}},{"name":"initialDate","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The initial date to display on the picker."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"literal","value":null}]}},{"name":"is24Hour","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Determines what format the clock should be displayed in on Android."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onDateSelected","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is called when a date is selected."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"date","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Date"},"name":"Date","package":"typescript"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"showVariantToggle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Show to button to toggle between variants on Android."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The variant of the picker, which determines its appearance and behavior."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'picker'"}]}]},"type":{"type":"reference","name":"AndroidVariant","package":"@expo/ui"}}]},{"name":"DisplayedComponents","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"date"},{"type":"literal","value":"hourAndMinute"},{"type":"literal","value":"dateAndTime"}]}},{"name":"DateTimePicker","variant":"declaration","kind":64,"signatures":[{"name":"DateTimePicker","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders a "},{"kind":"code","text":"`DateTimePicker`"},{"kind":"text","text":" component."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"DateTimePickerProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/datetimepicker","variant":"project","kind":1,"children":[{"name":"AndroidVariant","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"picker"},{"type":"literal","value":"input"}]}},{"name":"DateTimePickerProps","variant":"declaration","kind":2097152,"children":[{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The tint color to use on the picker elements."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"displayedComponents","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The components that the picker should display.\nOn Android, you can have a picker that selects just the date or just the time.\n"},{"kind":"code","text":"`dateAndTime`"},{"kind":"text","text":" is only available on iOS and will result in a date picker on Android.\nOn iOS, you can have a picker that selects both date and time."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'date'"}]}]},"type":{"type":"reference","name":"DisplayedComponents","package":"@expo/ui"}},{"name":"initialDate","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The initial date to display on the picker."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"literal","value":null}]}},{"name":"is24Hour","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Determines what format the clock should be displayed in on Android."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onDateSelected","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is called when a date is selected."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"date","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Date"},"name":"Date","package":"typescript"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"showVariantToggle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Show to button to toggle between variants on Android."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The variant of the picker, which determines its appearance and behavior."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'picker'"}]}]},"type":{"type":"reference","name":"AndroidVariant","package":"@expo/ui"}}]},{"name":"DisplayedComponents","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"date"},{"type":"literal","value":"hourAndMinute"},{"type":"literal","value":"dateAndTime"}]}},{"name":"DateTimePicker","variant":"declaration","kind":64,"signatures":[{"name":"DateTimePicker","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders a "},{"kind":"code","text":"`DateTimePicker`"},{"kind":"text","text":" component."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"DateTimePickerProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/divider.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/divider.json new file mode 100644 index 00000000000000..dcf884d442bb23 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/divider.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/divider","variant":"project","kind":1,"children":[{"name":"DividerProps","variant":"declaration","kind":2097152,"children":[{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}}]},{"name":"Divider","variant":"declaration","kind":64,"signatures":[{"name":"Divider","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A visual element that can be used to separate other content."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"DividerProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/dockedsearchbar.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/dockedsearchbar.json new file mode 100644 index 00000000000000..13d8a3587ec36e --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/dockedsearchbar.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/dockedsearchbar","variant":"project","kind":1,"children":[{"name":"DockedSearchBarProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The children of the component."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onQueryChange","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is called when the search query changes."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"query","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"void"}}]}}}]},{"name":"DockedSearchBar","variant":"declaration","kind":64,"children":[{"name":"LeadingIcon","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/DockedSearchBar/index.tsx","qualifiedName":"LeadingIconProps"},"name":"LeadingIconProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}},{"name":"Placeholder","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/DockedSearchBar/index.tsx","qualifiedName":"PlaceholderProps"},"name":"PlaceholderProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}}],"signatures":[{"name":"DockedSearchBar","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"DockedSearchBarProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"DockedSearchBarLeadingIcon","variant":"declaration","kind":64,"signatures":[{"name":"DockedSearchBarLeadingIcon","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/DockedSearchBar/index.tsx","qualifiedName":"LeadingIconProps"},"name":"LeadingIconProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"DockedSearchBarPlaceholder","variant":"declaration","kind":64,"signatures":[{"name":"DockedSearchBarPlaceholder","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/DockedSearchBar/index.tsx","qualifiedName":"PlaceholderProps"},"name":"PlaceholderProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/filterchip.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/filterchip.json new file mode 100644 index 00000000000000..1f6e5d8aa785af --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/filterchip.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/filterchip","variant":"project","kind":1,"children":[{"name":"FilterChipProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Children containing LeadingIcon and TrailingIcon slots."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"enabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the chip is enabled and can be interacted with."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"label","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The text label to display on the chip."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback fired when the chip is clicked."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"selected","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Whether the chip is currently selected."}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"FilterChip","variant":"declaration","kind":64,"children":[{"name":"LeadingIcon","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Leading icon slot for FilterChip."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/FilterChip/index.tsx","qualifiedName":"SlotChildProps"},"name":"SlotChildProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}},{"name":"TrailingIcon","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Trailing icon slot for FilterChip."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/FilterChip/index.tsx","qualifiedName":"SlotChildProps"},"name":"SlotChildProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}}],"signatures":[{"name":"FilterChip","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A filter chip component following Material 3 design guidelines.\nSupports slot-based "},{"kind":"code","text":"`LeadingIcon`"},{"kind":"text","text":" and "},{"kind":"code","text":"`TrailingIcon`"},{"kind":"text","text":" children."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"FilterChipProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/flowrow.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/flowrow.json new file mode 100644 index 00000000000000..e0e29e85982f00 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/flowrow.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/flowrow","variant":"project","kind":1,"children":[{"name":"FlowRowProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"horizontalArrangement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Horizontal arrangement of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"HorizontalArrangement"},"name":"HorizontalArrangement","package":"@expo/ui"}},{"name":"verticalArrangement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Vertical arrangement of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"VerticalArrangement"},"name":"VerticalArrangement","package":"@expo/ui"}}]}},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"PrimitiveBaseProps"},"name":"PrimitiveBaseProps","package":"@expo/ui"}]}},{"name":"FlowRow","variant":"declaration","kind":64,"signatures":[{"name":"FlowRow","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"FlowRowProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/horizontalfloatingtoolbar.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/horizontalfloatingtoolbar.json new file mode 100644 index 00000000000000..4334a33b016461 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/horizontalfloatingtoolbar.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/horizontalfloatingtoolbar","variant":"project","kind":1,"children":[{"name":"FloatingActionButtonProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The children of the component."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A callback that is called when the button is pressed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}}]},{"name":"HorizontalFloatingToolbarProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The children of the component."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The variant of the horizontal floating toolbar."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'standard'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"standard"},{"type":"literal","value":"vibrant"}]}}]},{"name":"HorizontalFloatingToolbar","variant":"declaration","kind":64,"children":[{"name":"FloatingActionButton","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"FloatingActionButton component for HorizontalFloatingToolbar.\nThis component marks its children to be rendered in the FAB slot."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"FloatingActionButtonProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}}],"signatures":[{"name":"HorizontalFloatingToolbar","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders a "},{"kind":"code","text":"`HorizontalFloatingToolbar`"},{"kind":"text","text":" component.\nA horizontal toolbar that floats above content, typically used for action buttons."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"HorizontalFloatingToolbarProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"HorizontalFloatingToolbarFloatingActionButton","variant":"declaration","kind":64,"signatures":[{"name":"HorizontalFloatingToolbarFloatingActionButton","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"FloatingActionButton component for HorizontalFloatingToolbar.\nThis component marks its children to be rendered in the FAB slot."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"FloatingActionButtonProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/host.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/host.json index 0d89ace06809bb..95fb36ef0c1662 100644 --- a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/host.json +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/host.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/host","variant":"project","kind":1,"children":[{"name":"HostProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"colorScheme","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The color scheme of the host view."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Utilities/Appearance.d.ts","qualifiedName":"ColorSchemeName"},"name":"ColorSchemeName","package":"react-native"}},{"name":"ignoreSafeAreaKeyboardInsets","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the Compose content will not perform keyboard avoidance behaviour when keyboard is shown.\nCan be only set once on mount."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"layoutDirection","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The layout direction for the content.\nDefaults to the current locale direction from I18nManager."}]},"type":{"type":"union","types":[{"type":"literal","value":"leftToRight"},{"type":"literal","value":"rightToLeft"}]}},{"name":"matchContents","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When true, the host view will update its size in the React Native view tree to match the content's layout from Jetpack Compose.\nCan be only set once on mount."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"boolean"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"horizontal","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"vertical","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}}]}}]}},{"name":"onLayoutContent","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is triggered when the Jetpack Compose content completes its layout.\nProvides the current dimensions of the content, which may change as the content updates."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"event","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"nativeEvent","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"height","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}},{"name":"width","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}}]}}}]}}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"ViewStyle"},"name":"ViewStyle","package":"react-native"}],"name":"StyleProp","package":"react-native"}},{"name":"useViewportSizeMeasurement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When true and no explicit size is provided, the host will use the viewport size as the proposed size for Compose layout.\nThis is particularly useful for views that need to fill their available space."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]}},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout.tsx","qualifiedName":"PrimitiveBaseProps"},"name":"PrimitiveBaseProps","package":"@expo/ui"}]}},{"name":"Host","variant":"declaration","kind":64,"signatures":[{"name":"Host","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"HostProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/host","variant":"project","kind":1,"children":[{"name":"HostProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"colorScheme","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The color scheme of the host view."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Utilities/Appearance.d.ts","qualifiedName":"ColorSchemeName"},"name":"ColorSchemeName","package":"react-native"}},{"name":"ignoreSafeAreaKeyboardInsets","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When "},{"kind":"code","text":"`true`"},{"kind":"text","text":", the Compose content will not perform keyboard avoidance behaviour when keyboard is shown.\nCan be only set once on mount."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"layoutDirection","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The layout direction for the content.\nDefaults to the current locale direction from I18nManager."}]},"type":{"type":"union","types":[{"type":"literal","value":"leftToRight"},{"type":"literal","value":"rightToLeft"}]}},{"name":"matchContents","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When true, the host view will update its size in the React Native view tree to match the content's layout from Jetpack Compose.\nCan be only set once on mount."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"boolean"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"horizontal","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"vertical","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}}]}}]}},{"name":"onLayoutContent","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is triggered when the Jetpack Compose content completes its layout.\nProvides the current dimensions of the content, which may change as the content updates."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"event","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"nativeEvent","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"height","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}},{"name":"width","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}}]}}}]}}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"StyleProp"},"typeArguments":[{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheetTypes.d.ts","qualifiedName":"ViewStyle"},"name":"ViewStyle","package":"react-native"}],"name":"StyleProp","package":"react-native"}},{"name":"useViewportSizeMeasurement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"When true and no explicit size is provided, the host will use the viewport size as the proposed size for Compose layout.\nThis is particularly useful for views that need to fill their available space."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}}]}},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"PrimitiveBaseProps"},"name":"PrimitiveBaseProps","package":"@expo/ui"}]}},{"name":"Host","variant":"declaration","kind":64,"signatures":[{"name":"Host","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"HostProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/icon.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/icon.json new file mode 100644 index 00000000000000..6da3ec7c1b4ab4 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/icon.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/icon","variant":"project","kind":1,"children":[{"name":"IconProps","variant":"declaration","kind":2097152,"children":[{"name":"contentDescription","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Accessibility label for the icon.\nUsed by screen readers to describe the icon to users."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n```"}]}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component.\nAllows you to apply layout and styling modifiers to the icon."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n```"}]}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"size","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The size of the icon in density-independent pixels (dp).\nIf not specified, the icon will use its intrinsic size."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n```"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"source","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The source of the icon. Can be a URI string or the result of "},{"kind":"code","text":"`require()`"},{"kind":"text","text":".\nOn Android, supports XML vector drawables loaded via Metro bundler."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n\n```"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/Image/Image.d.ts","qualifiedName":"ImageSourcePropType"},"name":"ImageSourcePropType","package":"react-native"}},{"name":"tintColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The tint color to apply to the icon.\nAccepts hex strings, named colors, or RGB arrays."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n\n```"}]}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"Icon","variant":"declaration","kind":64,"signatures":[{"name":"Icon","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Displays an icon from an XML vector drawable or other image source.\n\nThe Icon component renders vector graphics and images with support for\ntinting, sizing, and accessibility features. On Android, it natively\nsupports XML vector drawables loaded via Metro bundler using "},{"kind":"code","text":"`require()`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"text","text":"Basic usage:\n"},{"kind":"code","text":"```tsx\nimport { Icon } from 'expo-ui';\n\n\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"With styling:\n"},{"kind":"code","text":"```tsx\n\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"With modifiers:\n"},{"kind":"code","text":"```tsx\n\n```"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"IconProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/iconbutton.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/iconbutton.json new file mode 100644 index 00000000000000..6fc644174d5639 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/iconbutton.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/iconbutton","variant":"project","kind":1,"children":[{"name":"IconButtonProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text to display inside the button."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"React.JSX.Element","package":"@types/react"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Button color."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Disabled state of the button."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for button's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Button/index.tsx","qualifiedName":"ButtonElementColors"},"name":"ButtonElementColors","package":"@expo/ui"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"A callback that is called when the button is pressed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"shape","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Shape/index.tsx","qualifiedName":"ShapeJSXElement"},"name":"ShapeJSXElement","package":"@expo/ui"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The button variant."}]},"type":{"type":"reference","name":"IconButtonVariant","package":"@expo/ui"}}]},{"name":"IconButtonVariant","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"The built-in button styles available on Android.\n- "},{"kind":"code","text":"`outlined`"},{"kind":"text","text":" - A button with an outline.\n- "},{"kind":"code","text":"`elevated`"},{"kind":"text","text":" - A filled button with a shadow."}]},"type":{"type":"union","types":[{"type":"literal","value":"default"},{"type":"literal","value":"bordered"},{"type":"literal","value":"outlined"}]}},{"name":"IconButton","variant":"declaration","kind":64,"signatures":[{"name":"IconButton","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Displays a native button component."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"IconButtonProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/lazycolumn.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/lazycolumn.json new file mode 100644 index 00000000000000..de2b7f868412e2 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/lazycolumn.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/lazycolumn","variant":"project","kind":1,"children":[{"name":"ContentPadding","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Content padding values for LazyColumn."}]},"children":[{"name":"bottom","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Bottom padding in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"end","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"End padding in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"start","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Start padding in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"top","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Top padding in dp."}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"LazyColumnProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The content to display inside the lazy column."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"contentPadding","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Content padding in dp."}]},"type":{"type":"reference","name":"ContentPadding","package":"@expo/ui"}},{"name":"horizontalAlignment","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The horizontal alignment of items."}]},"type":{"type":"union","types":[{"type":"literal","value":"start"},{"type":"literal","value":"end"},{"type":"literal","value":"center"}]}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"verticalArrangement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The vertical arrangement of items.\nCan be a preset string or an object with "},{"kind":"code","text":"`spacedBy`"},{"kind":"text","text":" to specify spacing in dp."}]},"type":{"type":"union","types":[{"type":"literal","value":"top"},{"type":"literal","value":"bottom"},{"type":"literal","value":"center"},{"type":"literal","value":"spaceBetween"},{"type":"literal","value":"spaceAround"},{"type":"literal","value":"spaceEvenly"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"spacedBy","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}}]}}]}}]},{"name":"LazyColumn","variant":"declaration","kind":64,"signatures":[{"name":"LazyColumn","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A lazy column component that efficiently displays a vertically scrolling list."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"LazyColumnProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/listitem.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/listitem.json new file mode 100644 index 00000000000000..0ffdffba87a6f9 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/listitem.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/listitem","variant":"project","kind":1,"children":[{"name":"ListItemColors","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Colors for list item's core elements."}]},"children":[{"name":"containerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"headlineColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"leadingIconColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"overlineColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"supportingColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"trailingIconColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"ListItemProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Children containing Leading and Trailing slots."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The background color of the list item."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"colors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for list item's core elements."}]},"type":{"type":"reference","name":"ListItemColors","package":"@expo/ui"}},{"name":"headline","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The main text content of the list item."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback that is called when the list item is pressed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"overlineText","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional overline text displayed above the headline."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"supportingText","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional supporting text displayed below the headline."}]},"type":{"type":"intrinsic","name":"string"}}]},{"name":"ListItem","variant":"declaration","kind":64,"children":[{"name":"Leading","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Leading content slot for ListItem."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ListItem/index.tsx","qualifiedName":"LeadingProps"},"name":"LeadingProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}},{"name":"SupportingContent","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Custom supporting content slot for ListItem.\nWhen provided, this takes precedence over the "},{"kind":"code","text":"`supportingText`"},{"kind":"text","text":" prop."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ListItem/index.tsx","qualifiedName":"SupportingContentProps"},"name":"SupportingContentProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}},{"name":"Trailing","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Trailing content slot for ListItem."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ListItem/index.tsx","qualifiedName":"TrailingProps"},"name":"TrailingProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}}],"signatures":[{"name":"ListItem","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A list item component following Material 3 design guidelines."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ListItemProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"ListItemLeading","variant":"declaration","kind":64,"signatures":[{"name":"ListItemLeading","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Leading content slot for ListItem."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ListItem/index.tsx","qualifiedName":"LeadingProps"},"name":"LeadingProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"ListItemSupportingContent","variant":"declaration","kind":64,"signatures":[{"name":"ListItemSupportingContent","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Custom supporting content slot for ListItem.\nWhen provided, this takes precedence over the "},{"kind":"code","text":"`supportingText`"},{"kind":"text","text":" prop."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ListItem/index.tsx","qualifiedName":"SupportingContentProps"},"name":"SupportingContentProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"ListItemTrailing","variant":"declaration","kind":64,"signatures":[{"name":"ListItemTrailing","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Trailing content slot for ListItem."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/ListItem/index.tsx","qualifiedName":"TrailingProps"},"name":"TrailingProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/modifiers.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/modifiers.json new file mode 100644 index 00000000000000..0cbe57b4e29204 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/modifiers.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/modifiers","variant":"project","kind":1,"children":[{"name":"Alignment","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"topStart"},{"type":"literal","value":"topCenter"},{"type":"literal","value":"topEnd"},{"type":"literal","value":"centerStart"},{"type":"literal","value":"center"},{"type":"literal","value":"centerEnd"},{"type":"literal","value":"bottomStart"},{"type":"literal","value":"bottomCenter"},{"type":"literal","value":"bottomEnd"},{"type":"literal","value":"top"},{"type":"literal","value":"centerVertically"},{"type":"literal","value":"bottom"},{"type":"literal","value":"start"},{"type":"literal","value":"centerHorizontally"},{"type":"literal","value":"end"}]}},{"name":"BuiltinShape","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Built-in Jetpack Compose shape for the clip modifier."}]},"type":{"type":"union","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"rectangle"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"circle"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"bottomEnd","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"bottomStart","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"radius","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"topEnd","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"topStart","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"roundedCorner"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"bottomEnd","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"bottomStart","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"radius","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"topEnd","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"topStart","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"cutCorner"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"name","variant":"declaration","kind":1024,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/index.ts","qualifiedName":"MaterialShapeName"},"name":"MaterialShapeName","package":"@expo/ui"}},{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"material"}}]}}]}},{"name":"ExpoModifier","variant":"declaration","kind":2097152,"comment":{"summary":[],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use ModifierConfig instead. ExpoModifier (SharedRef pattern) has been replaced\nwith JSON Config pattern for better DX and platform consistency."}]}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}},{"name":"Shapes","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"Predefined shapes for use with the "},{"kind":"code","text":"`clip`"},{"kind":"text","text":" modifier."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nclip(Shapes.Circle)\nclip(Shapes.RoundedCorner(16))\nclip(Shapes.RoundedCorner({ topStart: 8, bottomEnd: 16 }))\nclip(Shapes.Material.Heart)\n```"}]}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"Circle","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"CutCorner","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"params","variant":"param","kind":32768,"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/index.ts","qualifiedName":"CornerRadii"},"name":"CornerRadii","package":"@expo/ui"}]}}],"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"}}]}},"defaultValue":"..."},{"name":"Material","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"Arch","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Boom","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Bun","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Clover4Leaf","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Clover8Leaf","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Cookie12Sided","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Cookie4Sided","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Cookie6Sided","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Cookie7Sided","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Cookie9Sided","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Diamond","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Fan","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Ghostish","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Heart","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Oval","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Pentagon","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Pill","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"PixelCircle","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"PixelTriangle","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Puffy","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"PuffyDiamond","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Slanted","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"SoftBurst","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Sunny","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"Triangle","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"VerySunny","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."}]}},"defaultValue":"..."},{"name":"Rectangle","variant":"declaration","kind":1024,"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"},"defaultValue":"..."},{"name":"RoundedCorner","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"params","variant":"param","kind":32768,"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/index.ts","qualifiedName":"CornerRadii"},"name":"CornerRadii","package":"@expo/ui"}]}}],"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"}}]}},"defaultValue":"..."}]}},"defaultValue":"..."},{"name":"align","variant":"declaration","kind":64,"signatures":[{"name":"align","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Aligns the view within its container."}]},"parameters":[{"name":"alignment","variant":"param","kind":32768,"type":{"type":"reference","name":"Alignment","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"alpha","variant":"declaration","kind":64,"signatures":[{"name":"alpha","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the opacity/alpha of the view."}]},"parameters":[{"name":"alpha","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Opacity value (0.0 to 1.0)."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"animateContentSize","variant":"declaration","kind":64,"signatures":[{"name":"animateContentSize","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Animates size changes with spring animation."}]},"parameters":[{"name":"dampingRatio","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Spring damping ratio. Default is DampingRatioNoBouncy."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"stiffness","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Spring stiffness. Default is StiffnessMedium."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"background","variant":"declaration","kind":64,"signatures":[{"name":"background","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the background color."}]},"parameters":[{"name":"color","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Color string (hex, e.g., '#FF0000')."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"blur","variant":"declaration","kind":64,"signatures":[{"name":"blur","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Applies a blur effect."}]},"parameters":[{"name":"radius","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Blur radius in dp."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"border","variant":"declaration","kind":64,"signatures":[{"name":"border","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Adds a border around the view."}]},"parameters":[{"name":"borderWidth","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Border width in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"borderColor","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Border color string (hex)."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"clickable","variant":"declaration","kind":64,"signatures":[{"name":"clickable","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Makes the view clickable."}]},"parameters":[{"name":"handler","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Function to call when clicked."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"clip","variant":"declaration","kind":64,"signatures":[{"name":"clip","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Clips the view to a built-in Jetpack Compose shape."}]},"parameters":[{"name":"shape","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"A shape from "},{"kind":"code","text":"`Shapes`"},{"kind":"text","text":", e.g. "},{"kind":"code","text":"`Shapes.Circle`"},{"kind":"text","text":" or "},{"kind":"code","text":"`Shapes.Material.Heart`"},{"kind":"text","text":"."}]},"type":{"type":"reference","name":"BuiltinShape","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"fillMaxHeight","variant":"declaration","kind":64,"signatures":[{"name":"fillMaxHeight","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Fills the maximum available height."}]},"parameters":[{"name":"fraction","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Fraction of max height (0.0 to 1.0). Default is 1.0."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"fillMaxSize","variant":"declaration","kind":64,"signatures":[{"name":"fillMaxSize","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Fills the maximum available size."}]},"parameters":[{"name":"fraction","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Fraction of max size (0.0 to 1.0). Default is 1.0."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"fillMaxWidth","variant":"declaration","kind":64,"signatures":[{"name":"fillMaxWidth","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Fills the maximum available width."}]},"parameters":[{"name":"fraction","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Fraction of max width (0.0 to 1.0). Default is 1.0."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"height","variant":"declaration","kind":64,"signatures":[{"name":"height","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the exact height of the view."}]},"parameters":[{"name":"value","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Height in dp."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"matchParentSize","variant":"declaration","kind":64,"signatures":[{"name":"matchParentSize","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Makes the view match the parent Box size.\nOnly works when used inside Box."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"offset","variant":"declaration","kind":64,"signatures":[{"name":"offset","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Offsets the view from its natural position."}]},"parameters":[{"name":"x","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Horizontal offset in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"y","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Vertical offset in dp."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"padding","variant":"declaration","kind":64,"signatures":[{"name":"padding","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Applies padding with individual values for each side."}]},"parameters":[{"name":"start","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Left padding in dp (or right in RTL)."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"top","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Top padding in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"end","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Right padding in dp (or left in RTL)."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"bottom","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Bottom padding in dp."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"paddingAll","variant":"declaration","kind":64,"signatures":[{"name":"paddingAll","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Applies equal padding on all sides."}]},"parameters":[{"name":"all","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Padding value in dp."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"rotate","variant":"declaration","kind":64,"signatures":[{"name":"rotate","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Rotates the view."}]},"parameters":[{"name":"degrees","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Rotation angle in degrees."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"selectable","variant":"declaration","kind":64,"signatures":[{"name":"selectable","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Makes the view selectable, like a radio button row."}]},"parameters":[{"name":"selected","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Whether the item is currently selected."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"handler","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Function to call when the item is clicked."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"shadow","variant":"declaration","kind":64,"signatures":[{"name":"shadow","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Adds a shadow/elevation effect."}]},"parameters":[{"name":"elevation","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Shadow elevation in dp."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"size","variant":"declaration","kind":64,"signatures":[{"name":"size","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets exact width and height."}]},"parameters":[{"name":"width","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Width in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"height","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Height in dp."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"testID","variant":"declaration","kind":64,"signatures":[{"name":"testID","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the test ID for testing frameworks."}]},"parameters":[{"name":"tag","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Test ID string."}]},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"weight","variant":"declaration","kind":64,"signatures":[{"name":"weight","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the weight for flexible sizing in Row or Column.\nOnly works when used inside Row or Column."}]},"parameters":[{"name":"weight","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Weight value (relative to siblings)."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"width","variant":"declaration","kind":64,"signatures":[{"name":"width","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the exact width of the view."}]},"parameters":[{"name":"value","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Width in dp."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"wrapContentHeight","variant":"declaration","kind":64,"signatures":[{"name":"wrapContentHeight","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Wraps the height to the content size."}]},"parameters":[{"name":"alignment","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional vertical alignment ('top', 'centerVertically', 'bottom')."}]},"type":{"type":"union","types":[{"type":"literal","value":"top"},{"type":"literal","value":"bottom"},{"type":"literal","value":"centerVertically"}]}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"wrapContentWidth","variant":"declaration","kind":64,"signatures":[{"name":"wrapContentWidth","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Wraps the width to the content size."}]},"parameters":[{"name":"alignment","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional horizontal alignment ('start', 'centerHorizontally', 'end')."}]},"type":{"type":"union","types":[{"type":"literal","value":"start"},{"type":"literal","value":"end"},{"type":"literal","value":"centerHorizontally"}]}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"zIndex","variant":"declaration","kind":64,"signatures":[{"name":"zIndex","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the z-index for layering."}]},"parameters":[{"name":"index","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Z-index value."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/modifiers/createModifier.ts","qualifiedName":"ModifierConfig"},"name":"ModifierConfig","package":"@expo/ui"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/picker.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/picker.json index 08493207e5efb7..d51c2971881e70 100644 --- a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/picker.json +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/picker.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/picker","variant":"project","kind":1,"children":[{"name":"PickerElementColors","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Colors for picker's core elements."}]},"children":[{"name":"activeBorderColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"activeContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"activeContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"disabledActiveBorderColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"disabledActiveContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"disabledActiveContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"disabledInactiveBorderColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"disabledInactiveContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"disabledInactiveContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"inactiveBorderColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"inactiveContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"inactiveContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}}]},{"name":"PickerProps","variant":"declaration","kind":2097152,"children":[{"name":"buttonModifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the individual buttons"}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Picker color."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for picker's core elements."}]},"type":{"type":"reference","name":"PickerElementColors","package":"@expo/ui"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onOptionSelected","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is called when an option is selected."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"event","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"nativeEvent","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"index","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}},{"name":"label","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}]}}}]}}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"options","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"An array of options to be displayed in the picker."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"selectedIndex","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The index of the currently selected option."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"literal","value":null}]}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The variant of the picker, which determines its appearance and behavior."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'segmented'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"segmented"},{"type":"literal","value":"radio"}]}}]},{"name":"Picker","variant":"declaration","kind":64,"signatures":[{"name":"Picker","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Displays a native picker component. Depending on the variant it can be a segmented button, an inline picker, a list of choices or a radio button."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"PickerProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/picker","variant":"project","kind":1,"children":[{"name":"PickerElementColors","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Colors for picker's core elements."}]},"children":[{"name":"activeBorderColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"activeContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"activeContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabledActiveBorderColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabledActiveContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabledActiveContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabledInactiveBorderColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabledInactiveContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabledInactiveContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"inactiveBorderColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"inactiveContainerColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"inactiveContentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"PickerProps","variant":"declaration","kind":2097152,"children":[{"name":"buttonModifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the individual buttons"}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Picker color."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for picker's core elements."}]},"type":{"type":"reference","name":"PickerElementColors","package":"@expo/ui"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onOptionSelected","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is called when an option is selected."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"event","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"nativeEvent","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"index","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}},{"name":"label","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}]}}}]}}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"options","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"An array of options to be displayed in the picker."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}},{"name":"selectedIndex","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The index of the currently selected option."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"literal","value":null}]}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The variant of the picker, which determines its appearance and behavior."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'segmented'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"segmented"},{"type":"literal","value":"radio"}]}}]},{"name":"Picker","variant":"declaration","kind":64,"signatures":[{"name":"Picker","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Displays a native picker component. Depending on the variant it can be a segmented button, an inline picker, a list of choices or a radio button."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"PickerProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/pulltorefreshbox.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/pulltorefreshbox.json new file mode 100644 index 00000000000000..33d3dd08d418ba --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/pulltorefreshbox.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/pulltorefreshbox","variant":"project","kind":1,"children":[{"name":"PullToRefreshBoxProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The content to refresh."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"isRefreshing","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the content is refreshing."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"false"}]}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"loadingIndicatorModifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the loading indicator."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"[align('topCenter'), padding(0, 10, 0, 0)]"}]}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onRefresh","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback to call when the content is refreshed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}}]},{"name":"PullToRefreshBox","variant":"declaration","kind":64,"signatures":[{"name":"PullToRefreshBox","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders a "},{"kind":"code","text":"`PullToRefreshBox`"},{"kind":"text","text":" component.\nA box that allows the user to pull down to refresh the content."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"PullToRefreshBoxProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/radiobutton.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/radiobutton.json new file mode 100644 index 00000000000000..fddd85bf0c75df --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/radiobutton.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/radiobutton","variant":"project","kind":1,"children":[{"name":"RadioButtonProps","variant":"declaration","kind":2097152,"children":[{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onClick","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback that is called when the radio button is clicked."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"selected","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Whether the radio button is selected."}]},"type":{"type":"intrinsic","name":"boolean"}}]},{"name":"RadioButton","variant":"declaration","kind":64,"signatures":[{"name":"RadioButton","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A Material Design radio button."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"RadioButtonProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/rnhostview.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/rnhostview.json new file mode 100644 index 00000000000000..9c2e95fee1ced5 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/rnhostview.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/rnhostview","variant":"project","kind":1,"children":[{"name":"RNHostView","variant":"declaration","kind":64,"signatures":[{"name":"RNHostView","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/RNHostView/index.tsx","qualifiedName":"RNHostProps"},"name":"RNHostProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/row.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/row.json new file mode 100644 index 00000000000000..5677e37f195317 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/row.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/row","variant":"project","kind":1,"children":[{"name":"RowProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"horizontalAlignment","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Horizontal alignment of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"HorizontalAlignment"},"name":"HorizontalAlignment","package":"@expo/ui"}},{"name":"horizontalArrangement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Horizontal arrangement of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"HorizontalArrangement"},"name":"HorizontalArrangement","package":"@expo/ui"}},{"name":"verticalAlignment","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Vertical alignment of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"VerticalAlignment"},"name":"VerticalAlignment","package":"@expo/ui"}},{"name":"verticalArrangement","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Vertical arrangement of children."}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"VerticalArrangement"},"name":"VerticalArrangement","package":"@expo/ui"}}]}},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/layout-types.ts","qualifiedName":"PrimitiveBaseProps"},"name":"PrimitiveBaseProps","package":"@expo/ui"}]}},{"name":"Row","variant":"declaration","kind":64,"signatures":[{"name":"Row","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"RowProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/searchbar.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/searchbar.json new file mode 100644 index 00000000000000..8c2c9bdb436d2d --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/searchbar.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/searchbar","variant":"project","kind":1,"children":[{"name":"SearchBarProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The children of the component."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onSearch","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is called when the search text is submitted."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"searchText","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"void"}}]}}}]},{"name":"ExpandedFullScreenSearchBar","variant":"declaration","kind":64,"signatures":[{"name":"ExpandedFullScreenSearchBar","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"ExpandedFullScreenSearchBar component for SearchBar.\nThis component marks its children to be rendered in the expanded full-screen search bar."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/SearchBar/index.tsx","qualifiedName":"ExpandedFullScreenSearchBarProps"},"name":"ExpandedFullScreenSearchBarProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"SearchBar","variant":"declaration","kind":64,"children":[{"name":"ExpandedFullScreenSearchBar","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"ExpandedFullScreenSearchBar component for SearchBar.\nThis component marks its children to be rendered in the expanded full-screen search bar."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/SearchBar/index.tsx","qualifiedName":"ExpandedFullScreenSearchBarProps"},"name":"ExpandedFullScreenSearchBarProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}},{"name":"Placeholder","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Placeholder component for SearchBar.\nThis component marks its children to be rendered in the placeholder slot."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/SearchBar/index.tsx","qualifiedName":"PlaceholderProps"},"name":"PlaceholderProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}}],"signatures":[{"name":"SearchBar","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders a "},{"kind":"code","text":"`SearchBar`"},{"kind":"text","text":" component."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"SearchBarProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"SearchBarPlaceholder","variant":"declaration","kind":64,"signatures":[{"name":"SearchBarPlaceholder","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Placeholder component for SearchBar.\nThis component marks its children to be rendered in the placeholder slot."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/SearchBar/index.tsx","qualifiedName":"PlaceholderProps"},"name":"PlaceholderProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/shape.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/shape.json new file mode 100644 index 00000000000000..bad67ff9cca2a1 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/shape.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/shape","variant":"project","kind":1,"children":[{"name":"CornerRadii","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Corner radii for RoundedCorner shape."}]},"children":[{"name":"bottomEnd","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Bottom-end corner radius in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"bottomStart","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Bottom-start corner radius in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"topEnd","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Top-end corner radius in dp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"topStart","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Top-start corner radius in dp."}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"ShapeJSXElement","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactElement"},"typeArguments":[{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Shape/index.tsx","qualifiedName":"NativeShapeProps"},"name":"NativeShapeProps","package":"@expo/ui"}],"name":"React.ReactElement","package":"@types/react"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"__expo_shape_jsx_element_marker","variant":"declaration","kind":1024,"type":{"type":"literal","value":true}}]}}]}},{"name":"ShapeProps","variant":"declaration","kind":2097152,"children":[{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Color of the shape"}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"cornerRadii","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Corner radii for RoundedCorner shape. Values are in dp."}]},"type":{"type":"reference","name":"CornerRadii","package":"@expo/ui"}},{"name":"cornerRounding","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Corner rounding percentage. Multiplied by the shorter dimension of the view to produce pixel values."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0.0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"innerRadius","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Inner radius of star-related shapes ("},{"kind":"code","text":"`'STAR'`"},{"kind":"text","text":" and "},{"kind":"code","text":"`'PILL_STAR'`"},{"kind":"text","text":"). Multiplied by the shorter dimension of the view to produce pixel values."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"1.0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"radius","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Radius of the circular shape. Multiplied by the shorter dimension of the view to produce pixel values."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"1.0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"smoothing","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Number between "},{"kind":"code","text":"`0.0`"},{"kind":"text","text":" and "},{"kind":"code","text":"`1.0`"},{"kind":"text","text":" that determines how much each line between vertices is \"smoothed\"."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0.0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"verticesCount","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Number of vertices. For "},{"kind":"code","text":"`'POLYGON'`"},{"kind":"text","text":" it must be at least "},{"kind":"code","text":"`3.0`"},{"kind":"text","text":". For "},{"kind":"code","text":"`'STAR'`"},{"kind":"text","text":" and "},{"kind":"code","text":"`'PILL_STAR'`"},{"kind":"text","text":" it is a number of vertices for each of two radii (A 5-pointed star has 10 vertices.)"}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"6.0"}]}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"ShapeRecordProps","variant":"declaration","kind":2097152,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Pick"},"typeArguments":[{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Shape/index.tsx","qualifiedName":"NativeShapeProps"},"name":"NativeShapeProps","package":"@expo/ui"},{"type":"union","types":[{"type":"literal","value":"cornerRounding"},{"type":"literal","value":"smoothing"},{"type":"literal","value":"verticesCount"},{"type":"literal","value":"innerRadius"},{"type":"literal","value":"radius"},{"type":"literal","value":"cornerRadii"},{"type":"literal","value":"type"}]}],"name":"Pick","package":"typescript"}},{"name":"Shape","variant":"declaration","kind":32,"flags":{"isConst":true},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"Circle","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Pick"},"typeArguments":[{"type":"reference","name":"ShapeProps","package":"@expo/ui"},{"type":"union","types":[{"type":"literal","value":"radius"},{"type":"literal","value":"verticesCount"},{"type":"literal","value":"color"},{"type":"literal","value":"modifiers"}]}],"name":"Pick","package":"typescript"}}],"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}]}}},{"name":"Pill","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Pick"},"typeArguments":[{"type":"reference","name":"ShapeProps","package":"@expo/ui"},{"type":"union","types":[{"type":"literal","value":"smoothing"},{"type":"literal","value":"color"},{"type":"literal","value":"modifiers"}]}],"name":"Pick","package":"typescript"}}],"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}]}}},{"name":"PillStar","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ShapeProps","package":"@expo/ui"}}],"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}]}}},{"name":"Polygon","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Pick"},"typeArguments":[{"type":"reference","name":"ShapeProps","package":"@expo/ui"},{"type":"union","types":[{"type":"literal","value":"smoothing"},{"type":"literal","value":"cornerRounding"},{"type":"literal","value":"verticesCount"},{"type":"literal","value":"color"},{"type":"literal","value":"modifiers"}]}],"name":"Pick","package":"typescript"}}],"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}]}}},{"name":"Rectangle","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Pick"},"typeArguments":[{"type":"reference","name":"ShapeProps","package":"@expo/ui"},{"type":"union","types":[{"type":"literal","value":"smoothing"},{"type":"literal","value":"cornerRounding"},{"type":"literal","value":"color"},{"type":"literal","value":"modifiers"}]}],"name":"Pick","package":"typescript"}}],"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}]}}},{"name":"RoundedCorner","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Pick"},"typeArguments":[{"type":"reference","name":"ShapeProps","package":"@expo/ui"},{"type":"union","types":[{"type":"literal","value":"cornerRadii"},{"type":"literal","value":"color"},{"type":"literal","value":"modifiers"}]}],"name":"Pick","package":"typescript"}}],"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}]}}},{"name":"Star","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ShapeProps","package":"@expo/ui"}}],"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}]}}}]}},"defaultValue":"..."},{"name":"parseJSXShape","variant":"declaration","kind":64,"signatures":[{"name":"parseJSXShape","variant":"signature","kind":4096,"parameters":[{"name":"shape","variant":"param","kind":32768,"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}],"type":{"type":"reference","name":"ShapeRecordProps","package":"@expo/ui"}},{"name":"parseJSXShape","variant":"signature","kind":4096,"parameters":[{"name":"shape","variant":"param","kind":32768,"flags":{"isOptional":true},"type":{"type":"reference","name":"ShapeJSXElement","package":"@expo/ui"}}],"type":{"type":"union","types":[{"type":"reference","name":"ShapeRecordProps","package":"@expo/ui"},{"type":"intrinsic","name":"undefined"}]}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/slider.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/slider.json index 056e7c4c7aac03..4dc4d2d4ab6998 100644 --- a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/slider.json +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/slider.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/slider","variant":"project","kind":1,"children":[{"name":"SliderElementColors","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Colors for slider's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"children":[{"name":"activeTickColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"activeTrackColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"inactiveTickColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"inactiveTrackColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}},{"name":"thumbColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"string"}}]},{"name":"SliderProps","variant":"declaration","kind":2097152,"children":[{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Slider color."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for slider's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","name":"SliderElementColors","package":"@expo/ui"}},{"name":"max","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The maximum value of the slider. Updating this value does not trigger callbacks if the current value is above "},{"kind":"code","text":"`max`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"1"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"min","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The minimum value of the slider. Updating this value does not trigger callbacks if the current value is below "},{"kind":"code","text":"`min`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onValueChange","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback triggered on dragging along the slider."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"value","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"steps","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The number of steps between the minimum and maximum values, "},{"kind":"code","text":"`0`"},{"kind":"text","text":" signifies infinite steps."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"value","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The current value of the slider."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"Slider","variant":"declaration","kind":64,"signatures":[{"name":"Slider","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"SliderProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/slider","variant":"project","kind":1,"children":[{"name":"SliderElementColors","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Colors for slider's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"children":[{"name":"activeTickColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"activeTrackColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"inactiveTickColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"inactiveTrackColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"thumbColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}}]},{"name":"SliderProps","variant":"declaration","kind":2097152,"children":[{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Slider color."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for slider's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","name":"SliderElementColors","package":"@expo/ui"}},{"name":"max","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The maximum value of the slider. Updating this value does not trigger callbacks if the current value is above "},{"kind":"code","text":"`max`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"1"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"min","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The minimum value of the slider. Updating this value does not trigger callbacks if the current value is below "},{"kind":"code","text":"`min`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onValueChange","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback triggered on dragging along the slider."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"value","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"steps","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The number of steps between the minimum and maximum values, "},{"kind":"code","text":"`0`"},{"kind":"text","text":" signifies infinite steps."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"value","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The current value of the slider."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"Slider","variant":"declaration","kind":64,"signatures":[{"name":"Slider","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"SliderProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/spacer.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/spacer.json new file mode 100644 index 00000000000000..6fe94160ef03f1 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/spacer.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/spacer","variant":"project","kind":1,"children":[{"name":"SpacerProps","variant":"declaration","kind":2097152,"children":[{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component. Use weight() modifier to make the spacer flexible."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}}]},{"name":"Spacer","variant":"declaration","kind":64,"signatures":[{"name":"Spacer","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A spacer component that fills available space.\nUse with the weight() modifier to create flexible spacing in Row or Column layouts."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n Left\n \n Right\n\n```"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"SpacerProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/surface.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/surface.json new file mode 100644 index 00000000000000..5f051ef17f4f00 --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/surface.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/surface","variant":"project","kind":1,"children":[{"name":"SurfaceProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The content to display inside the surface."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The background color of the surface.\nDefaults to "},{"kind":"code","text":"`MaterialTheme.colorScheme.surface`"},{"kind":"text","text":"."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"contentColor","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The color of the content inside the surface.\nDefaults to "},{"kind":"code","text":"`contentColorFor(color)`"},{"kind":"text","text":"."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"shadowElevation","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The shadow elevation of the surface. Value in dp."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"tonalElevation","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The tonal elevation of the surface, which affects its background color\nbased on the color scheme. Value in dp."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"Surface","variant":"declaration","kind":64,"signatures":[{"name":"Surface","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A Material Design surface container. Surface is responsible for:\n- Clipping content to the shape\n- Applying background color based on tonal elevation\n- Providing content color to its children"}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"SurfaceProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/switch.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/switch.json index b084bc77c804ee..9cfa852e9429bd 100644 --- a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/switch.json +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/switch.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/switch","variant":"project","kind":1,"children":[{"name":"SwitchButtonVariantProps","variant":"declaration","kind":2097152,"children":[{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"undefined"}},{"name":"variant","variant":"declaration","kind":1024,"type":{"type":"literal","value":"button"}}]},{"name":"SwitchCheckboxVariantProps","variant":"declaration","kind":2097152,"children":[{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for checkbox core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Switch/index.tsx","qualifiedName":"CheckboxElementColors"},"name":"CheckboxElementColors","package":"@expo/ui"}},{"name":"variant","variant":"declaration","kind":1024,"type":{"type":"literal","value":"checkbox"}}]},{"name":"SwitchProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Picker color."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"label","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Label for the switch.\n\n> On Android, the label has an effect only when the "},{"kind":"code","text":"`Switch`"},{"kind":"text","text":" is used inside a "},{"kind":"code","text":"`ContextMenu`"},{"kind":"text","text":"."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onValueChange","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is called when the checked state changes."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"value","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"boolean"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"value","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Indicates whether the switch is checked."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Type of the switch component. Can be "},{"kind":"code","text":"`'checkbox'`"},{"kind":"text","text":", "},{"kind":"code","text":"`'switch'`"},{"kind":"text","text":", or "},{"kind":"code","text":"`'button'`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'switch'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"checkbox"},{"type":"literal","value":"switch"},{"type":"literal","value":"button"}]}}]}},{"type":"union","types":[{"type":"reference","name":"SwitchSwitchVariantProps","package":"@expo/ui"},{"type":"reference","name":"SwitchCheckboxVariantProps","package":"@expo/ui"},{"type":"reference","name":"SwitchButtonVariantProps","package":"@expo/ui"}]}]}},{"name":"SwitchSwitchVariantProps","variant":"declaration","kind":2097152,"children":[{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for switch's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Switch/index.tsx","qualifiedName":"SwitchElementColors"},"name":"SwitchElementColors","package":"@expo/ui"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"literal","value":"switch"}}]},{"name":"Switch","variant":"declaration","kind":64,"signatures":[{"name":"Switch","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"SwitchProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/switch","variant":"project","kind":1,"children":[{"name":"SwitchButtonVariantProps","variant":"declaration","kind":2097152,"children":[{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"undefined"}},{"name":"variant","variant":"declaration","kind":1024,"type":{"type":"literal","value":"button"}}]},{"name":"SwitchCheckboxVariantProps","variant":"declaration","kind":2097152,"children":[{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for checkbox core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Switch/index.tsx","qualifiedName":"CheckboxElementColors"},"name":"CheckboxElementColors","package":"@expo/ui"}},{"name":"variant","variant":"declaration","kind":1024,"type":{"type":"literal","value":"checkbox"}}]},{"name":"SwitchProps","variant":"declaration","kind":2097152,"type":{"type":"intersection","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Children containing ThumbContent slot."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Picker color."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"label","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Label for the switch.\n\n> On Android, the label has an effect only when the "},{"kind":"code","text":"`Switch`"},{"kind":"text","text":" is used inside a "},{"kind":"code","text":"`ContextMenu`"},{"kind":"text","text":"."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onValueChange","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback function that is called when the checked state changes."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"value","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"boolean"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"value","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Indicates whether the switch is checked."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Type of the switch component. Can be "},{"kind":"code","text":"`'checkbox'`"},{"kind":"text","text":", "},{"kind":"code","text":"`'switch'`"},{"kind":"text","text":", or "},{"kind":"code","text":"`'button'`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'switch'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"checkbox"},{"type":"literal","value":"switch"},{"type":"literal","value":"button"}]}}]}},{"type":"union","types":[{"type":"reference","name":"SwitchSwitchVariantProps","package":"@expo/ui"},{"type":"reference","name":"SwitchCheckboxVariantProps","package":"@expo/ui"},{"type":"reference","name":"SwitchButtonVariantProps","package":"@expo/ui"}]}]}},{"name":"SwitchSwitchVariantProps","variant":"declaration","kind":2097152,"children":[{"name":"elementColors","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Colors for switch's core elements."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Switch/index.tsx","qualifiedName":"SwitchElementColors"},"name":"SwitchElementColors","package":"@expo/ui"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"literal","value":"switch"}}]},{"name":"Switch","variant":"declaration","kind":64,"children":[{"name":"DefaultIconSize","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"any"}},{"name":"ThumbContent","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Custom content to be displayed inside the switch thumb."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Switch/index.tsx","qualifiedName":"ThumbContentProps"},"name":"ThumbContentProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}}}],"signatures":[{"name":"Switch","variant":"signature","kind":4096,"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"SwitchProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]},{"name":"SwitchThumbContent","variant":"declaration","kind":64,"signatures":[{"name":"SwitchThumbContent","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Custom content to be displayed inside the switch thumb."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"android"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/jetpack-compose/Switch/index.tsx","qualifiedName":"ThumbContentProps"},"name":"ThumbContentProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/text.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/text.json new file mode 100644 index 00000000000000..f49239b4a77b2d --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/text.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/text","variant":"project","kind":1,"children":[{"name":"TextAlign","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Text alignment options."}]},"type":{"type":"union","types":[{"type":"literal","value":"left"},{"type":"literal","value":"right"},{"type":"literal","value":"center"},{"type":"literal","value":"justify"},{"type":"literal","value":"start"},{"type":"literal","value":"end"}]}},{"name":"TextDecoration","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Text decoration options."}]},"type":{"type":"union","types":[{"type":"literal","value":"none"},{"type":"literal","value":"underline"},{"type":"literal","value":"lineThrough"}]}},{"name":"TextFontStyle","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Font style options for text styling."}]},"type":{"type":"union","types":[{"type":"literal","value":"normal"},{"type":"literal","value":"italic"}]}},{"name":"TextFontWeight","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Font weight options for text styling."}]},"type":{"type":"union","types":[{"type":"literal","value":"normal"},{"type":"literal","value":"bold"},{"type":"literal","value":"100"},{"type":"literal","value":"200"},{"type":"literal","value":"300"},{"type":"literal","value":"400"},{"type":"literal","value":"500"},{"type":"literal","value":"600"},{"type":"literal","value":"700"},{"type":"literal","value":"800"},{"type":"literal","value":"900"}]}},{"name":"TextOverflow","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Text overflow behavior options."}]},"type":{"type":"union","types":[{"type":"literal","value":"clip"},{"type":"literal","value":"ellipsis"},{"type":"literal","value":"visible"}]}},{"name":"TextProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text content to display."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The color of the text."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"maxLines","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"An optional maximum number of lines for the text to span, wrapping if necessary.\nIf the text exceeds the given number of lines, it will be truncated according to overflow."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"minLines","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The minimum height in terms of minimum number of visible lines."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"overflow","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"How visual overflow should be handled.\n- 'clip': Clips the overflowing text to fix its container\n- 'ellipsis': Uses an ellipsis to indicate that the text has overflowed\n- 'visible': Renders overflow text outside its container"}]},"type":{"type":"reference","name":"TextOverflow","package":"@expo/ui"}},{"name":"softWrap","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the text should break at soft line breaks.\nIf false, the glyphs in the text will be positioned as if there was unlimited horizontal space."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"style","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Style configuration for the text.\nCorresponds to Jetpack Compose's TextStyle parameter."}]},"type":{"type":"reference","name":"TextStyle","package":"@expo/ui"}}]},{"name":"TextStyle","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Text style properties that can be applied to text.\nCorresponds to Jetpack Compose's TextStyle."}]},"children":[{"name":"fontSize","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The font size in sp (scale-independent pixels)."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"fontStyle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The font style of the text."}]},"type":{"type":"reference","name":"TextFontStyle","package":"@expo/ui"}},{"name":"fontWeight","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The font weight of the text."}]},"type":{"type":"reference","name":"TextFontWeight","package":"@expo/ui"}},{"name":"letterSpacing","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The letter spacing in sp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"lineHeight","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The line height in sp."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"textAlign","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text alignment."}]},"type":{"type":"reference","name":"TextAlign","package":"@expo/ui"}},{"name":"textDecoration","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text decoration."}]},"type":{"type":"reference","name":"TextDecoration","package":"@expo/ui"}},{"name":"typography","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Material 3 Typography style to use as the base style.\nWhen specified, applies the predefined Material 3 typography style.\nOther properties in this style object will override specific values from the typography."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nstyle={{ typography: \"bodyLarge\" }}\nstyle={{ typography: \"headlineMedium\", fontWeight: \"bold\" }}\n```"}]}]},"type":{"type":"reference","name":"TypographyStyle","package":"@expo/ui"}}]},{"name":"TypographyStyle","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Material 3 Typography scale styles.\nCorresponds to MaterialTheme.typography in Jetpack Compose."}]},"type":{"type":"union","types":[{"type":"literal","value":"displayLarge"},{"type":"literal","value":"displayMedium"},{"type":"literal","value":"displaySmall"},{"type":"literal","value":"headlineLarge"},{"type":"literal","value":"headlineMedium"},{"type":"literal","value":"headlineSmall"},{"type":"literal","value":"titleLarge"},{"type":"literal","value":"titleMedium"},{"type":"literal","value":"titleSmall"},{"type":"literal","value":"bodyLarge"},{"type":"literal","value":"bodyMedium"},{"type":"literal","value":"bodySmall"},{"type":"literal","value":"labelLarge"},{"type":"literal","value":"labelMedium"},{"type":"literal","value":"labelSmall"}]}},{"name":"Text","variant":"declaration","kind":64,"signatures":[{"name":"Text","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Renders a Text component using Jetpack Compose.\n\nThe Text component provides comprehensive text styling capabilities.\nThe API is aligned with Jetpack Compose's Text composable, where:\n- Top-level props (color, maxLines, etc.) match Compose's Text parameters\n- "},{"kind":"code","text":"`style`"},{"kind":"text","text":" object corresponds to TextStyle, including typography, fontSize, fontWeight, textAlign, etc.\n- "},{"kind":"code","text":"`style.typography`"},{"kind":"text","text":" applies Material 3 typography styles (like MaterialTheme.typography)"}],"blockTags":[{"tag":"@example","content":[{"kind":"text","text":"Basic usage:\n"},{"kind":"code","text":"```tsx\nimport { Text } from 'expo-ui';\n\nHello World\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"Using Material 3 Typography (matches Jetpack Compose MaterialTheme.typography):\n"},{"kind":"code","text":"```tsx\nBody text\nHeadline\nSmall title\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"Typography with style overrides:\n"},{"kind":"code","text":"```tsx\n\n Custom styled body text\n\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"With custom style object (matches Jetpack Compose TextStyle):\n"},{"kind":"code","text":"```tsx\n\n Styled text\n\n```"}]},{"tag":"@example","content":[{"kind":"text","text":"Text truncation with ellipsis:\n"},{"kind":"code","text":"```tsx\n\n This is a very long text that will be truncated after two lines\n with an ellipsis at the end to indicate there's more content...\n\n```"}]}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"TextProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/textbutton.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/textbutton.json new file mode 100644 index 00000000000000..758b7959d86b4a --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/textbutton.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/textbutton","variant":"project","kind":1,"children":[{"name":"TextButtonProps","variant":"declaration","kind":2097152,"children":[{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The text content to display in the button."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}},{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"React.JSX.Element","package":"@types/react"}]}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The color of the button text."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the button is disabled."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onPress","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback that is called when the button is pressed."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"intrinsic","name":"void"}}]}}}]},{"name":"TextButton","variant":"declaration","kind":64,"signatures":[{"name":"TextButton","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A text button component that displays a clickable text label."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"TextButtonProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file diff --git a/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/togglebutton.json b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/togglebutton.json new file mode 100644 index 00000000000000..e3cea8fa81d18f --- /dev/null +++ b/docs/public/static/data/v55.0.0/expo-ui/jetpack-compose/togglebutton.json @@ -0,0 +1 @@ +{"schemaVersion":"2.0","name":"expo-ui/jetpack-compose/togglebutton","variant":"project","kind":1,"children":[{"name":"ToggleButtonProps","variant":"declaration","kind":2097152,"children":[{"name":"checked","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Whether the toggle button is checked."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"children","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The content to display inside the toggle button."}]},"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.ReactNode"},"name":"React.ReactNode","package":"@types/react"}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The color of the toggle button when checked."}]},"type":{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"}},{"name":"disabled","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the button is disabled."}]},"type":{"type":"intrinsic","name":"boolean"}},{"name":"modifiers","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Modifiers for the component."}]},"type":{"type":"array","elementType":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/types.ts","qualifiedName":"ExpoModifier"},"name":"ExpoModifier","package":"@expo/ui"}}},{"name":"onCheckedChange","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Callback that is called when the checked state changes."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"checked","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"boolean"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"text","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Text to display in the button."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"variant","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The variant of the toggle button.\n- "},{"kind":"code","text":"`'default'`"},{"kind":"text","text":" - Material 3 ToggleButton\n- "},{"kind":"code","text":"`'icon'`"},{"kind":"text","text":" - Icon toggle button\n- "},{"kind":"code","text":"`'filledIcon'`"},{"kind":"text","text":" - Filled icon toggle button\n- "},{"kind":"code","text":"`'outlinedIcon'`"},{"kind":"text","text":" - Outlined icon toggle button"}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'default'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"default"},{"type":"literal","value":"icon"},{"type":"literal","value":"filledIcon"},{"type":"literal","value":"outlinedIcon"}]}}]},{"name":"ToggleButton","variant":"declaration","kind":64,"children":[{"name":"DefaultIconSize","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"any"}},{"name":"DefaultIconSpacing","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"any"}}],"signatures":[{"name":"ToggleButton","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"A toggle button component that can be toggled on and off.\n\nWhen "},{"kind":"code","text":"`text`"},{"kind":"text","text":" prop is provided, it displays the text.\nOtherwise, custom children can be passed to render custom content."}]},"parameters":[{"name":"props","variant":"param","kind":32768,"type":{"type":"reference","name":"ToggleButtonProps","package":"@expo/ui"}}],"type":{"type":"reference","target":{"packageName":"@types/react","packagePath":"index.d.ts","qualifiedName":"React.JSX.Element"},"name":"Element","package":"@types/react","qualifiedName":"React.JSX.Element"}}]}],"packageName":"@expo/ui"} \ No newline at end of file From 314fb209e778256932b7f514fb2fd7fa516b6b02 Mon Sep 17 00:00:00 2001 From: Alan Hughes <30924086+alanjhughes@users.noreply.github.com> Date: Wed, 25 Feb 2026 10:08:34 +0000 Subject: [PATCH 03/14] [camera][web] Support more barcode types and cleanup (#43403) --- .../src/screens/Camera/CameraScreenFull.tsx | 89 ++++++---- packages/expo-camera/CHANGELOG.md | 2 + .../expo/modules/camera/CameraViewHelper.kt | 10 -- .../expo/modules/camera/ExpoCameraView.kt | 21 ++- .../camera/analyzers/BarcodeAnalyzer.kt | 18 ++- packages/expo-camera/build/Camera.types.d.ts | 2 +- .../expo-camera/build/Camera.types.js.map | 2 +- .../expo-camera/build/ExpoCamera.web.d.ts.map | 2 +- packages/expo-camera/build/ExpoCamera.web.js | 24 ++- .../expo-camera/build/ExpoCamera.web.js.map | 2 +- .../build/ExpoCameraManager.web.d.ts | 8 +- .../build/ExpoCameraManager.web.d.ts.map | 2 +- .../build/ExpoCameraManager.web.js | 40 ++--- .../build/ExpoCameraManager.web.js.map | 2 +- .../build/web/WebBarcodeScanner.d.ts | 4 + .../build/web/WebBarcodeScanner.d.ts.map | 1 + .../build/web/WebBarcodeScanner.js | 67 ++++++++ .../build/web/WebBarcodeScanner.js.map | 1 + .../expo-camera/build/web/WebCameraUtils.d.ts | 3 +- .../build/web/WebCameraUtils.d.ts.map | 2 +- .../expo-camera/build/web/WebCameraUtils.js | 48 +----- .../build/web/WebCameraUtils.js.map | 2 +- .../build/web/WebUserMediaManager.d.ts | 3 - .../build/web/WebUserMediaManager.d.ts.map | 2 +- .../build/web/WebUserMediaManager.js | 85 +--------- .../build/web/WebUserMediaManager.js.map | 2 +- .../build/web/useWebBarcodeScanner.d.ts | 13 ++ .../build/web/useWebBarcodeScanner.d.ts.map | 1 + .../build/web/useWebBarcodeScanner.js | 84 ++++++++++ .../build/web/useWebBarcodeScanner.js.map | 1 + .../build/web/useWebCameraStream.js | 2 +- .../build/web/useWebCameraStream.js.map | 2 +- .../build/web/useWebQRScanner.d.ts | 12 -- .../build/web/useWebQRScanner.d.ts.map | 1 - .../expo-camera/build/web/useWebQRScanner.js | 119 -------------- .../build/web/useWebQRScanner.js.map | 1 - packages/expo-camera/package.json | 2 +- packages/expo-camera/src/Camera.types.ts | 2 +- packages/expo-camera/src/ExpoCamera.web.tsx | 28 ++-- .../expo-camera/src/ExpoCameraManager.web.ts | 48 +++--- .../src/ts-declarations/lib.dom.d.ts | 17 +- .../expo-camera/src/web/WebBarcodeScanner.ts | 94 +++++++++++ .../expo-camera/src/web/WebCameraUtils.ts | 68 +------- .../src/web/WebUserMediaManager.ts | 103 +----------- .../src/web/useWebBarcodeScanner.ts | 128 +++++++++++++++ .../expo-camera/src/web/useWebCameraStream.ts | 2 +- .../expo-camera/src/web/useWebQRScanner.ts | 152 ------------------ yarn.lock | 32 ++++ 48 files changed, 616 insertions(+), 740 deletions(-) create mode 100644 packages/expo-camera/build/web/WebBarcodeScanner.d.ts create mode 100644 packages/expo-camera/build/web/WebBarcodeScanner.d.ts.map create mode 100644 packages/expo-camera/build/web/WebBarcodeScanner.js create mode 100644 packages/expo-camera/build/web/WebBarcodeScanner.js.map create mode 100644 packages/expo-camera/build/web/useWebBarcodeScanner.d.ts create mode 100644 packages/expo-camera/build/web/useWebBarcodeScanner.d.ts.map create mode 100644 packages/expo-camera/build/web/useWebBarcodeScanner.js create mode 100644 packages/expo-camera/build/web/useWebBarcodeScanner.js.map delete mode 100644 packages/expo-camera/build/web/useWebQRScanner.d.ts delete mode 100644 packages/expo-camera/build/web/useWebQRScanner.d.ts.map delete mode 100644 packages/expo-camera/build/web/useWebQRScanner.js delete mode 100644 packages/expo-camera/build/web/useWebQRScanner.js.map create mode 100644 packages/expo-camera/src/web/WebBarcodeScanner.ts create mode 100644 packages/expo-camera/src/web/useWebBarcodeScanner.ts delete mode 100644 packages/expo-camera/src/web/useWebQRScanner.ts diff --git a/apps/native-component-list/src/screens/Camera/CameraScreenFull.tsx b/apps/native-component-list/src/screens/Camera/CameraScreenFull.tsx index 9d842791570838..10f26aa6f7589e 100644 --- a/apps/native-component-list/src/screens/Camera/CameraScreenFull.tsx +++ b/apps/native-component-list/src/screens/Camera/CameraScreenFull.tsx @@ -3,7 +3,6 @@ import Ionicons from '@expo/vector-icons/Ionicons'; import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons'; import Slider from '@react-native-community/slider'; import { - BarcodePoint, BarcodeScanningResult, CameraView, CameraCapturedPicture, @@ -16,10 +15,10 @@ import { VideoStabilization, } from 'expo-camera'; import * as FileSystem from 'expo-file-system/legacy'; -import React, { useEffect, useMemo, useRef, useState } from 'react'; +import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { Dimensions, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native'; import { Gesture, GestureDetector } from 'react-native-gesture-handler'; -import * as Svg from 'react-native-svg'; +import Animated, { useSharedValue, useAnimatedStyle, withSpring } from 'react-native-reanimated'; import GalleryScreen from './GalleryScreen'; @@ -60,10 +59,8 @@ interface State { barcodeScanning: boolean; mute: boolean; torchEnabled: boolean; - cornerPoints?: BarcodePoint[]; mirror?: boolean; autoFocus: FocusMode; - barcodeData: string; newPhotos: boolean; previewPaused: boolean; permissionsGranted: boolean; @@ -121,10 +118,8 @@ export default function CameraScreen() { facing: 'back', barcodeScanning: false, torchEnabled: false, - cornerPoints: undefined, mute: false, mirror: false, - barcodeData: '', autoFocus: 'off', newPhotos: false, previewPaused: false, @@ -139,6 +134,22 @@ export default function CameraScreen() { videoStabilizationMode: 'auto', }); + const barcodeBounds = useSharedValue({ x: 0, y: 0, w: 0, h: 0 }); + const barcodeOpacity = useSharedValue(0); + const [barcodeData, setBarcodeData] = useState(''); + + const barcodeOverlayStyle = useAnimatedStyle(() => ({ + position: 'absolute' as const, + left: barcodeBounds.value.x, + top: barcodeBounds.value.y, + width: barcodeBounds.value.w, + height: barcodeBounds.value.h, + borderWidth: 2, + borderColor: 'red', + backgroundColor: 'black', + opacity: barcodeOpacity.value, + })); + useEffect(() => { if (Platform.OS !== 'web') { ensureDirectoryExistsAsync(); @@ -302,14 +313,19 @@ export default function CameraScreen() { setState((state) => ({ ...state, newPhotos: true })); }; - const onBarcodeScanned = (code: BarcodeScanningResult) => { - console.log('Found: ', code); - setState((state) => ({ - ...state, - barcodeData: code.data, - cornerPoints: code.cornerPoints, - })); - }; + const onBarcodeScanned = useCallback( + (code: BarcodeScanningResult) => { + const { origin, size } = code.bounds; + const spring = { damping: 30, stiffness: 90 }; + barcodeBounds.value = withSpring( + { x: origin.x, y: origin.y, w: size.width, h: size.height }, + spring + ); + barcodeOpacity.value = size.width > 0 && size.height > 0 ? 1 : 0; + setBarcodeData(code.data); + }, + [barcodeBounds, barcodeOpacity] + ); const renderGallery = () => { return ; @@ -454,24 +470,25 @@ export default function CameraScreen() { ); - const renderBarcode = () => { - const origin: BarcodePoint | undefined = state.cornerPoints ? state.cornerPoints[0] : undefined; - return ( - - {origin && ( - - {state.barcodeData} - - )} - - `${coord.x},${coord.y}`).join(' ')} - stroke="red" - strokeWidth={5} - /> - - ); - }; + const renderBarcode = () => ( + + + + {barcodeData} + + + + ); const renderCamera = () => ( @@ -626,7 +643,9 @@ const styles = StyleSheet.create({ }, barcode: { position: 'absolute', - borderWidth: 1, - borderColor: 'red', + top: 0, + left: 0, + right: 0, + bottom: 0, }, }); diff --git a/packages/expo-camera/CHANGELOG.md b/packages/expo-camera/CHANGELOG.md index 4ba1146c628ace..509ed9e0093f98 100644 --- a/packages/expo-camera/CHANGELOG.md +++ b/packages/expo-camera/CHANGELOG.md @@ -6,6 +6,8 @@ ### 🎉 New features +- [Web] Expands support for barcode types that can be scanned. ([#43403](https://github.com/expo/expo/pull/43403) by [@alanjhughes](https://github.com/alanjhughes)) + ### 🐛 Bug fixes ### 💡 Others diff --git a/packages/expo-camera/android/src/main/java/expo/modules/camera/CameraViewHelper.kt b/packages/expo-camera/android/src/main/java/expo/modules/camera/CameraViewHelper.kt index 48cf1b0c52bb4e..56e5eec4cd2db1 100644 --- a/packages/expo-camera/android/src/main/java/expo/modules/camera/CameraViewHelper.kt +++ b/packages/expo-camera/android/src/main/java/expo/modules/camera/CameraViewHelper.kt @@ -4,22 +4,12 @@ import android.graphics.Bitmap import android.graphics.Canvas import android.graphics.Color import android.graphics.Paint -import expo.modules.camera.records.CameraType import java.io.ByteArrayOutputStream import java.text.SimpleDateFormat import java.util.Calendar import java.util.Locale object CameraViewHelper { - // Utilities - @JvmStatic - fun getCorrectCameraRotation(rotation: Int, facing: CameraType) = - if (facing == CameraType.FRONT) { - (rotation - 90 + 360) % 360 - } else { - (-rotation + 90 + 360) % 360 - } - fun generateSimulatorPhoto(width: Int, height: Int): ByteArray { val fakePhotoBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888) val canvas = Canvas(fakePhotoBitmap) diff --git a/packages/expo-camera/android/src/main/java/expo/modules/camera/ExpoCameraView.kt b/packages/expo-camera/android/src/main/java/expo/modules/camera/ExpoCameraView.kt index bb6cd813194742..1ff8116fb7c756 100644 --- a/packages/expo-camera/android/src/main/java/expo/modules/camera/ExpoCameraView.kt +++ b/packages/expo-camera/android/src/main/java/expo/modules/camera/ExpoCameraView.kt @@ -542,7 +542,7 @@ class ExpoCameraView( try { analyzer.setAnalyzer( ContextCompat.getMainExecutor(context), - BarcodeAnalyzer(lensFacing, barcodeFormats) { + BarcodeAnalyzer(barcodeFormats) { onBarcodeScanned(it) } ) @@ -696,6 +696,8 @@ class ExpoCameraView( val scaleX: Float val scaleY: Float + var offsetX = 0f + var offsetY = 0f when (previewView.scaleType) { PreviewView.ScaleType.FIT_CENTER -> { @@ -705,10 +707,11 @@ class ExpoCameraView( if (previewAspectRatio > imageAspectRatio) { scaleY = previewHeight / imageHeight scaleX = scaleY + offsetX = (previewWidth - imageWidth * scaleX) / 2f } else { - // Preview is taller - letterbox on top/bottom scaleX = previewWidth / imageWidth scaleY = scaleX + offsetY = (previewHeight - imageHeight * scaleY) / 2f } } PreviewView.ScaleType.FILL_CENTER -> { @@ -716,13 +719,13 @@ class ExpoCameraView( val imageAspectRatio = imageWidth / imageHeight if (previewAspectRatio > imageAspectRatio) { - // Preview is wider - scale to fill width, crop top/bottom scaleX = previewWidth / imageWidth scaleY = scaleX + offsetY = (previewHeight - imageHeight * scaleY) / 2f } else { - // Preview is taller - scale to fill height, crop left/right scaleY = previewHeight / imageHeight scaleX = scaleY + offsetX = (previewWidth - imageWidth * scaleX) / 2f } } else -> { @@ -733,12 +736,12 @@ class ExpoCameraView( cornerPoints.mapX { index -> val originalX = cornerPoints[index] - (originalX * scaleX).roundToInt() + (originalX * scaleX + offsetX).roundToInt() } cornerPoints.mapY { index -> val originalY = cornerPoints[index] - (originalY * scaleY).roundToInt() + (originalY * scaleY + offsetY).roundToInt() } barcode.cornerPoints = cornerPoints @@ -753,8 +756,8 @@ class ExpoCameraView( val density = previewView.resources.displayMetrics.density val convertedCornerPoints = ArrayList() for (i in cornerPoints.indices step 2) { - val y = cornerPoints[i].toFloat() / density - val x = cornerPoints[i + 1].toFloat() / density + val x = cornerPoints[i].toFloat() / density + val y = cornerPoints[i + 1].toFloat() / density convertedCornerPoints.add( Bundle().apply { putFloat("x", x) @@ -784,10 +787,12 @@ class ExpoCameraView( private fun onBarcodeScanned(barcode: BarCodeScannerResult) { if (shouldScanBarcodes) { transformBarcodeScannerResultToViewCoordinates(barcode) + val (cornerPoints, boundingBox) = getCornerPointsAndBoundingBox( barcode.cornerPoints, barcode.boundingBox ) + onBarcodeScanned( BarcodeScannedEvent( target = id, diff --git a/packages/expo-camera/android/src/main/java/expo/modules/camera/analyzers/BarcodeAnalyzer.kt b/packages/expo-camera/android/src/main/java/expo/modules/camera/analyzers/BarcodeAnalyzer.kt index 5167a59fc3985b..00a70f6558042f 100644 --- a/packages/expo-camera/android/src/main/java/expo/modules/camera/analyzers/BarcodeAnalyzer.kt +++ b/packages/expo-camera/android/src/main/java/expo/modules/camera/analyzers/BarcodeAnalyzer.kt @@ -8,13 +8,11 @@ import androidx.camera.core.ImageProxy import com.google.mlkit.vision.barcode.BarcodeScannerOptions import com.google.mlkit.vision.barcode.BarcodeScanning import com.google.mlkit.vision.common.InputImage -import expo.modules.camera.CameraViewHelper import expo.modules.camera.records.BarcodeType -import expo.modules.camera.records.CameraType import expo.modules.camera.utils.BarCodeScannerResult @OptIn(ExperimentalGetImage::class) -class BarcodeAnalyzer(private val lensFacing: CameraType, formats: List, val onComplete: (BarCodeScannerResult) -> Unit) : ImageAnalysis.Analyzer { +class BarcodeAnalyzer(formats: List, val onComplete: (BarCodeScannerResult) -> Unit) : ImageAnalysis.Analyzer { private val barcodeFormats = if (formats.isEmpty()) { 0 } else { @@ -32,8 +30,14 @@ class BarcodeAnalyzer(private val lensFacing: CameraType, formats: List @@ -61,8 +65,8 @@ class BarcodeAnalyzer(private val lensFacing: CameraType, formats: List | any;\n};\n\n// @needsAudit\nexport type CameraPictureOptions = {\n /**\n * Specify the compression quality from `0` to `1`. `0` means compress for small size, and `1` means compress for maximum quality.\n * @default 1\n */\n quality?: number;\n /**\n * Whether to also include the image data in Base64 format.\n */\n base64?: boolean;\n /**\n * Whether to also include the EXIF data for the image.\n */\n exif?: boolean;\n /**\n * Additional EXIF data to be included for the image. Only useful when `exif` option is set to `true`.\n * @platform android\n * @platform ios\n */\n additionalExif?: Record;\n /**\n * A callback invoked when picture is saved. If set, the promise of this method will resolve immediately with no data after picture is captured.\n * The data that it should contain will be passed to this callback. If displaying or processing a captured photo right after taking it\n * is not your case, this callback lets you skip waiting for it to be saved.\n * @param picture\n */\n onPictureSaved?: (picture: CameraCapturedPicture) => void;\n // TODO(Bacon): Is it possible to implement this in the browser?\n /**\n * If set to `true`, camera skips orientation adjustment and returns an image straight from the device's camera.\n * If enabled, `quality` option is discarded (processing pipeline is skipped as a whole).\n * Although enabling this option reduces image delivery time significantly, it may cause the image to appear in a wrong orientation\n * in the `Image` component (at the time of writing, it does not respect EXIF orientation of the images).\n * > **Note**: Enabling `skipProcessing` would cause orientation uncertainty. `Image` component does not respect EXIF\n * > stored orientation information, that means obtained image would be displayed wrongly (rotated by 90°, 180° or 270°).\n * > Different devices provide different orientations. For example some Sony Xperia or Samsung devices don't provide\n * > correctly oriented images by default. To always obtain correctly oriented image disable `skipProcessing` option.\n */\n skipProcessing?: boolean;\n /**\n * @platform web\n */\n scale?: number;\n /**\n * @platform web\n */\n imageType?: ImageType;\n /**\n * @platform web\n */\n isImageMirror?: boolean;\n /**\n * When set to `true`, the output image will be flipped along the vertical axis when using the front camera.\n * @default false\n * @platform ios\n * @platform android\n * @deprecated Use `mirror` prop on `CameraView` instead.\n */\n mirror?: boolean;\n /**\n * @hidden\n */\n id?: number;\n /**\n * @hidden\n */\n fastMode?: boolean;\n /**\n * @hidden\n */\n maxDownsampling?: number;\n /**\n * To programmatically disable the camera shutter sound\n * @default true\n */\n shutterSound?: boolean;\n /**\n * Whether the camera should return an image ref that can be used directly in the `Image` component.\n */\n pictureRef?: boolean;\n};\n\n// @needsAudit\nexport type CameraRecordingOptions = {\n /**\n * Maximum video duration in seconds.\n */\n maxDuration?: number;\n /**\n * Maximum video file size in bytes.\n */\n maxFileSize?: number;\n /**\n * If `true`, the recorded video will be flipped along the vertical axis. iOS flips videos recorded with the front camera by default,\n * but you can reverse that back by setting this to `true`. On Android, this is handled in the user's device settings.\n * @deprecated Use `mirror` prop on `CameraView` instead.\n */\n mirror?: boolean;\n /**\n * This option specifies what codec to use when recording the video. See [`VideoCodec`](#videocodec) for the possible values.\n * @platform ios\n */\n codec?: VideoCodec;\n};\n\n/**\n * @hidden\n */\nexport type PictureSavedListener = (event: {\n nativeEvent: { data: CameraCapturedPicture; id: number };\n}) => void;\n\n/**\n * @hidden\n */\nexport type AvailableLensesChangedListener = (event: { nativeEvent: AvailableLenses }) => void;\n\n// @docsMissing\nexport type AvailableLenses = { lenses: string[] };\n\n/**\n * @hidden\n */\nexport type CameraReadyListener = () => void;\n\n/**\n * @hidden\n */\nexport type ResponsiveOrientationChangedListener = (event: {\n nativeEvent: ResponsiveOrientationChanged;\n}) => void;\n\nexport type ResponsiveOrientationChanged = { orientation: CameraOrientation };\n\n/**\n * @hidden\n */\nexport type MountErrorListener = (event: { nativeEvent: CameraMountError }) => void;\n\n// @docsMissing\nexport type CameraMountError = { message: string };\n\n// @docsMissing\nexport type Point = {\n x: number;\n y: number;\n};\n\nexport type BarcodeSize = {\n /**\n * The height value.\n */\n height: number;\n /**\n * The width value.\n */\n width: number;\n};\n\n/**\n * These coordinates are represented in the coordinate space of the camera source (e.g. when you\n * are using the camera view, these values are adjusted to the dimensions of the view).\n */\nexport type BarcodePoint = Point;\n\nexport type BarcodeBounds = {\n /**\n * The origin point of the bounding box.\n */\n origin: BarcodePoint;\n /**\n * The size of the bounding box.\n */\n size: BarcodeSize;\n};\n\n// @needsAudit\nexport type BarcodeScanningResult = {\n /**\n * The barcode type.\n */\n type: string;\n /**\n * The parsed information encoded in the barcode.\n */\n data: string;\n /**\n * The raw information encoded in the barcode.\n * May be different from `data` depending on the barcode type.\n * @platform android\n * @hidden\n */\n raw?: string;\n /**\n * Corner points of the bounding box.\n * `cornerPoints` is not always available and may be empty. On iOS, for `code39` and `pdf417`\n * you don't get this value.\n *\n * **Note:** Corner points order is currently different across platforms. On Android,\n * [Google MLKit's native order](https://developers.google.com/android/reference/com/google/mlkit/vision/barcode/common/Barcode#getCornerPoints())\n * is used, which is `topLeft`, `topRight`, `bottomRight`, `bottomLeft`.\n * On iOS, the order is `bottomLeft`, `bottomRight`, `topLeft`, `topRight`. On Web, the order is\n * `topLeft`, `bottomLeft`, `topRight`, `bottomRight`.\n *\n */\n cornerPoints: BarcodePoint[];\n /**\n * The [`BarcodeBounds`](#barcodebounds) object.\n * `bounds` in some case will be representing an empty rectangle.\n * Moreover, `bounds` doesn't have to bound the whole barcode.\n * For some types, they will represent the area used by the scanner.\n */\n bounds: BarcodeBounds;\n\n /**\n * Extra information returned by the specific type of barcode.\n * @platform android\n */\n extra?: AndroidBarcode;\n};\n\nexport type ScanningResult = Omit;\n\n// @needsAudit\nexport type CameraViewProps = ViewProps & {\n /**\n * Camera facing. Use one of `CameraType`. When `front`, use the front-facing camera.\n * When `back`, use the back-facing camera.\n * @default 'back'\n */\n facing?: CameraType;\n /**\n * Camera flash mode. Use one of `FlashMode` values. When `on`, the flash on your device will\n * turn on when taking a picture. When `off`, it won't. Setting it to `auto` will fire flash if required.\n * @default 'off'\n */\n flash?: FlashMode;\n /**\n * A value between `0` and `1` being a percentage of device's max zoom, where `0` means not zoomed and `1` means maximum zoom.\n * @default 0\n */\n zoom?: number;\n /**\n * Used to select image or video output.\n * @default 'picture'\n */\n mode?: CameraMode;\n /**\n * If present, video will be recorded with no sound.\n * @default false\n */\n mute?: boolean;\n /**\n * A boolean that determines whether the camera should mirror the image when using the front camera.\n * @default false\n */\n mirror?: boolean;\n /**\n * Indicates the focus mode to use.\n * @default off\n * @platform ios\n */\n autofocus?: FocusMode;\n /**\n * A boolean that determines whether the camera should be active.\n * Useful in situations where the camera may not have unmounted but you still want to stop the camera session.\n * @default true\n * @platform ios\n */\n active?: boolean;\n /**\n * Specify the quality of the recorded video. Use one of `VideoQuality` possible values:\n * for 16:9 resolution `2160p`, `1080p`, `720p`, `480p` : `Android only` and for 4:3 `4:3` (the size is 640x480).\n * If the chosen quality is not available for a device, the highest available is chosen.\n */\n videoQuality?: VideoQuality;\n /**\n * The bitrate of the video recording in bits per second.\n * Note: On iOS, you must specify the video codec when calling `recordAsync` to use this option.\n * @example 10_000_000\n */\n videoBitrate?: number;\n /**\n * A boolean that determines whether the camera shutter animation should be enabled.\n * @default true\n */\n animateShutter?: boolean;\n /**\n * A string representing the size of pictures [`takePictureAsync`](#takepictureasyncoptions) will take.\n * Available sizes can be fetched with [`getAvailablePictureSizesAsync`](#getavailablepicturesizesasync).\n * Setting this prop will cause the `ratio` prop to be ignored as the aspect ratio is determined by the selected size.\n */\n pictureSize?: string;\n /**\n * Available lenses are emitted to the `onAvailableLensesChanged` callback whenever the currently selected camera changes or by calling [`getAvailableLensesAsync`](#getavailablelensesasync).\n * You can read more about the available lenses in the [Apple documentation](https://developer.apple.com/documentation/avfoundation/avcapturedevice/devicetype-swift.struct).\n * @platform ios\n * @default 'builtInWideAngleCamera'\n */\n selectedLens?: string;\n /**\n * A boolean to enable or disable the torch.\n * @default false\n */\n enableTorch?: boolean;\n /**\n * The video stabilization mode used for a video recording. Use one of [`VideoStabilization.`](#videostabilization).\n * You can read more about each stabilization type in [Apple Documentation](https://developer.apple.com/documentation/avfoundation/avcapturevideostabilizationmode).\n * @default 'auto'\n */\n videoStabilizationMode?: VideoStabilization;\n /**\n * @example\n * ```tsx\n * \n * ```\n */\n barcodeScannerSettings?: BarcodeSettings;\n /**\n * A URL for an image to be shown while the camera is loading.\n * @platform web\n */\n poster?: string;\n /**\n * Whether to allow responsive orientation of the camera when the screen orientation is locked (that is, when set to `true`,\n * landscape photos will be taken if the device is turned that way, even if the app or device orientation is locked to portrait).\n * @platform ios\n */\n responsiveOrientationWhenOrientationLocked?: boolean;\n /**\n * A string representing the aspect ratio of the preview. For example, `4:3` and `16:9`.\n * Note: Setting the aspect ratio here will change the scaleType of the camera preview from `FILL` to `FIT`.\n * Also, when using 1:1, devices only support certain sizes. If you specify an unsupported size, the closest supported ratio will be used.\n * @platform android\n */\n ratio?: CameraRatio;\n /**\n * Callback invoked when camera preview has been set.\n */\n onCameraReady?: () => void;\n /**\n * Callback invoked when camera preview could not start.\n * @param event Error object that contains a `message`.\n */\n onMountError?: (event: CameraMountError) => void;\n /**\n * Callback that is invoked when a barcode has been successfully scanned. The callback is provided with\n * an object of the [`BarcodeScanningResult`](#barcodescanningresult) shape, where the `type`\n * refers to the barcode type that was scanned, and the `data` is the information encoded in the barcode\n * (in this case of QR codes, this is often a URL). See [`BarcodeType`](#barcodetype) for supported values.\n * @param scanningResult\n */\n onBarcodeScanned?: (scanningResult: BarcodeScanningResult) => void;\n /**\n * Callback invoked when responsive orientation changes. Only applicable if `responsiveOrientationWhenOrientationLocked` is `true`.\n * @param event result object that contains updated orientation of camera\n * @platform ios\n */\n onResponsiveOrientationChanged?: (event: ResponsiveOrientationChanged) => void;\n /**\n * Callback invoked when the cameras available lenses change.\n * @param event result object that contains a `lenses` property containing an array of available lenses.\n * @platform ios\n */\n onAvailableLensesChanged?: (event: AvailableLenses) => void;\n};\n\n/**\n * @hidden\n */\nexport interface CameraViewRef {\n readonly takePicture: (options: CameraPictureOptions) => Promise;\n readonly takePictureRef?: (options: CameraPictureOptions) => Promise;\n readonly getAvailablePictureSizes: () => Promise;\n readonly getAvailableLenses: () => Promise;\n readonly record: (options?: CameraRecordingOptions) => Promise<{ uri: string }>;\n readonly toggleRecording: () => Promise;\n readonly stopRecording: () => Promise;\n readonly launchModernScanner: () => Promise;\n readonly resumePreview: () => Promise;\n readonly pausePreview: () => Promise;\n}\n\n/**\n * @hidden\n */\nexport type CameraNativeProps = {\n pointerEvents?: any;\n style?: any;\n ref?: Ref;\n onCameraReady?: CameraReadyListener;\n onMountError?: MountErrorListener;\n onBarcodeScanned?: (event: { nativeEvent: BarcodeScanningResult }) => void;\n onPictureSaved?: PictureSavedListener;\n onResponsiveOrientationChanged?: ResponsiveOrientationChangedListener;\n onAvailableLensesChanged?: AvailableLensesChangedListener;\n facing?: string;\n flashMode?: string;\n enableTorch?: boolean;\n animateShutter?: boolean;\n autoFocus?: FocusMode;\n mute?: boolean;\n zoom?: number;\n ratio?: CameraRatio;\n barcodeScannerSettings?: BarcodeSettings;\n barcodeScannerEnabled?: boolean;\n poster?: string;\n responsiveOrientationWhenOrientationLocked?: boolean;\n};\n\n// @docsMissing\nexport type BarcodeSettings = {\n barcodeTypes: BarcodeType[];\n};\n\n/**\n * @platform ios\n */\nexport type ScanningOptions = {\n /**\n * The type of codes to scan for.\n */\n barcodeTypes: BarcodeType[];\n /**\n * Indicates whether people can use a two-finger pinch-to-zoom gesture.\n * @platform ios\n * @default true\n */\n isPinchToZoomEnabled?: boolean;\n /**\n * Guidance text, such as “Slow Down,” appears over the live video.\n * @platform ios\n * @default true\n */\n isGuidanceEnabled?: boolean;\n /**\n * Indicates whether the scanner displays highlights around recognized items.\n * @platform ios\n * @default false\n */\n isHighlightingEnabled?: boolean;\n};\n\n/**\n * The available barcode types that can be scanned.\n */\nexport type BarcodeType =\n | 'aztec'\n | 'ean13'\n | 'ean8'\n | 'qr'\n | 'pdf417'\n | 'upc_e'\n | 'datamatrix'\n | 'code39'\n | 'code93'\n | 'itf14'\n | 'codabar'\n | 'code128'\n | 'upc_a';\n\nexport {\n PermissionResponse,\n PermissionStatus,\n PermissionExpiration,\n PermissionHookOptions,\n EventSubscription as Subscription,\n};\n\nexport type PhotoResult = {\n /**\n * A URI to the modified image (usable as the source for an `Image` or `Video` element).\n */\n uri: string;\n /**\n * Width of the image.\n */\n width: number;\n /**\n * Height of the image.\n */\n height: number;\n /**\n * A Base64 representation of the image.\n */\n base64?: string;\n};\n\n// @needsAudit\n/**\n * A map defining how modified image should be saved.\n */\nexport type SavePictureOptions = {\n /**\n * Specify the compression quality from `0` to `1`. `0` means compress for small size, and `1` means compress for maximum quality.\n */\n quality?: number;\n /**\n * Additional metadata to be included for the image.\n */\n metadata?: Record;\n /**\n * Whether to also include the image data in Base64 format.\n */\n base64?: boolean;\n};\n\nexport type CameraEvents = {\n onModernBarcodeScanned: (event: ScanningResult) => void;\n};\nexport declare class CameraNativeModule extends NativeModule {\n /**\n * @hidden\n */\n Picture: typeof PictureRef;\n\n readonly isModernBarcodeScannerAvailable: boolean;\n readonly toggleRecordingAsyncAvailable: boolean;\n readonly isAvailableAsync: () => Promise;\n readonly launchScanner: (options?: ScanningOptions) => Promise;\n readonly dismissScanner: () => Promise;\n readonly scanFromURLAsync: (\n url: string,\n barcodeTypes?: BarcodeType[]\n ) => Promise;\n readonly getCameraPermissionsAsync: () => Promise;\n readonly requestCameraPermissionsAsync: () => Promise;\n readonly getMicrophonePermissionsAsync: () => Promise;\n readonly requestMicrophonePermissionsAsync: () => Promise;\n readonly getAvailableVideoCodecsAsync: () => Promise;\n\n readonly Type: Record;\n readonly FlashMode: Record;\n}\n"]} \ No newline at end of file +{"version":3,"file":"Camera.types.js","sourceRoot":"","sources":["../src/Camera.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,GAKjB,MAAM,mBAAmB,CAAC;AA0kB3B,OAAO,EAEL,gBAAgB,GAIjB,CAAC","sourcesContent":["import {\n PermissionResponse,\n PermissionStatus,\n PermissionExpiration,\n PermissionHookOptions,\n EventSubscription,\n NativeModule,\n} from 'expo-modules-core';\nimport type { Ref } from 'react';\nimport type { ViewProps } from 'react-native';\n\nimport { AndroidBarcode } from './AndroidBarcode.types';\nimport { PictureRef } from './PictureRef';\n\nexport type CameraType = 'front' | 'back';\n\n/**\n * Flash mode for the camera.\n * - `off` - Flash is disabled.\n * - `on` - Flash will fire for every capture.\n * - `auto` - Flash will fire automatically when required.\n * - `screen` - Uses the device screen as a flash for front camera selfies.\n * On Android, this uses CameraX's dedicated screen flash mode.\n * On iOS, this maps to 'on' which triggers Retina Flash automatically.\n */\nexport type FlashMode = 'off' | 'on' | 'auto' | 'screen';\n\nexport type ImageType = 'png' | 'jpg';\n\nexport type CameraMode = 'picture' | 'video';\n\nexport type CameraRatio = '4:3' | '16:9' | '1:1';\n\n/**\n * This option specifies the mode of focus on the device.\n * - `on` - Indicates that the device should autofocus once and then lock the focus.\n * - `off` - Indicates that the device should automatically focus when needed.\n * @default off\n */\nexport type FocusMode = 'on' | 'off';\n\n/**\n * This option specifies what codec to use when recording a video.\n * @platform ios\n */\nexport type VideoCodec = 'avc1' | 'hvc1' | 'jpeg' | 'apcn' | 'ap4h';\n\n/**\n * This option specifies the stabilization mode to use when recording a video.\n * - `off` - No stabilization.\n * - `standard` - Standard stabilization.\n * - `cinematic` - Cinematic stabilization (provides more aggressive stabilization).\n * - `auto` - The system automatically chooses the best stabilization mode.\n *\n * On Android, `standard`, `cinematic`, and `auto` all enable video stabilization,\n * while `off` disables it. The specific stabilization method is determined by the device.\n */\nexport type VideoStabilization = 'off' | 'standard' | 'cinematic' | 'auto';\n\n// @docsMissing\nexport type VideoQuality = '2160p' | '1080p' | '720p' | '480p' | '4:3';\n\nexport type CameraOrientation =\n | 'portrait'\n | 'portraitUpsideDown'\n | 'landscapeLeft'\n | 'landscapeRight';\n\n// @docsMissing\n/**\n * @hidden We do not expose related web methods in docs.\n * @platform web\n */\nexport type ImageSize = {\n width: number;\n height: number;\n};\n\n// @docsMissing\n/**\n * @hidden We do not expose related web methods in docs.\n * @platform web\n */\nexport type WebCameraSettings = {\n autoFocus?: string;\n flashMode?: string;\n whiteBalance?: string;\n exposureCompensation?: number;\n colorTemperature?: number;\n iso?: number;\n brightness?: number;\n contrast?: number;\n saturation?: number;\n sharpness?: number;\n focusDistance?: number;\n zoom?: number;\n};\n\n// @needsAudit\nexport type CameraCapturedPicture = {\n /**\n * Captured image width.\n */\n width: number;\n /**\n * Captured image height.\n */\n height: number;\n /**\n * The format of the captured image.\n */\n format: 'jpg' | 'png';\n /**\n * On web, the value of `uri` is the same as `base64` because file system URLs are not supported in the browser.\n */\n uri: string;\n /**\n * A Base64 representation of the image.\n */\n base64?: string;\n /**\n * On Android and iOS this object may include various fields based on the device and operating system.\n * On web, it is a partial representation of the [`MediaTrackSettings`](https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackSettings) dictionary.\n */\n exif?: Partial | any;\n};\n\n// @needsAudit\nexport type CameraPictureOptions = {\n /**\n * Specify the compression quality from `0` to `1`. `0` means compress for small size, and `1` means compress for maximum quality.\n * @default 1\n */\n quality?: number;\n /**\n * Whether to also include the image data in Base64 format.\n */\n base64?: boolean;\n /**\n * Whether to also include the EXIF data for the image.\n */\n exif?: boolean;\n /**\n * Additional EXIF data to be included for the image. Only useful when `exif` option is set to `true`.\n * @platform android\n * @platform ios\n */\n additionalExif?: Record;\n /**\n * A callback invoked when picture is saved. If set, the promise of this method will resolve immediately with no data after picture is captured.\n * The data that it should contain will be passed to this callback. If displaying or processing a captured photo right after taking it\n * is not your case, this callback lets you skip waiting for it to be saved.\n * @param picture\n */\n onPictureSaved?: (picture: CameraCapturedPicture) => void;\n // TODO(Bacon): Is it possible to implement this in the browser?\n /**\n * If set to `true`, camera skips orientation adjustment and returns an image straight from the device's camera.\n * If enabled, `quality` option is discarded (processing pipeline is skipped as a whole).\n * Although enabling this option reduces image delivery time significantly, it may cause the image to appear in a wrong orientation\n * in the `Image` component (at the time of writing, it does not respect EXIF orientation of the images).\n * > **Note**: Enabling `skipProcessing` would cause orientation uncertainty. `Image` component does not respect EXIF\n * > stored orientation information, that means obtained image would be displayed wrongly (rotated by 90°, 180° or 270°).\n * > Different devices provide different orientations. For example some Sony Xperia or Samsung devices don't provide\n * > correctly oriented images by default. To always obtain correctly oriented image disable `skipProcessing` option.\n */\n skipProcessing?: boolean;\n /**\n * @platform web\n */\n scale?: number;\n /**\n * @platform web\n */\n imageType?: ImageType;\n /**\n * @platform web\n */\n isImageMirror?: boolean;\n /**\n * When set to `true`, the output image will be flipped along the vertical axis when using the front camera.\n * @default false\n * @platform ios\n * @platform android\n * @deprecated Use `mirror` prop on `CameraView` instead.\n */\n mirror?: boolean;\n /**\n * @hidden\n */\n id?: number;\n /**\n * @hidden\n */\n fastMode?: boolean;\n /**\n * @hidden\n */\n maxDownsampling?: number;\n /**\n * To programmatically disable the camera shutter sound\n * @default true\n */\n shutterSound?: boolean;\n /**\n * Whether the camera should return an image ref that can be used directly in the `Image` component.\n */\n pictureRef?: boolean;\n};\n\n// @needsAudit\nexport type CameraRecordingOptions = {\n /**\n * Maximum video duration in seconds.\n */\n maxDuration?: number;\n /**\n * Maximum video file size in bytes.\n */\n maxFileSize?: number;\n /**\n * If `true`, the recorded video will be flipped along the vertical axis. iOS flips videos recorded with the front camera by default,\n * but you can reverse that back by setting this to `true`. On Android, this is handled in the user's device settings.\n * @deprecated Use `mirror` prop on `CameraView` instead.\n */\n mirror?: boolean;\n /**\n * This option specifies what codec to use when recording the video. See [`VideoCodec`](#videocodec) for the possible values.\n * @platform ios\n */\n codec?: VideoCodec;\n};\n\n/**\n * @hidden\n */\nexport type PictureSavedListener = (event: {\n nativeEvent: { data: CameraCapturedPicture; id: number };\n}) => void;\n\n/**\n * @hidden\n */\nexport type AvailableLensesChangedListener = (event: { nativeEvent: AvailableLenses }) => void;\n\n// @docsMissing\nexport type AvailableLenses = { lenses: string[] };\n\n/**\n * @hidden\n */\nexport type CameraReadyListener = () => void;\n\n/**\n * @hidden\n */\nexport type ResponsiveOrientationChangedListener = (event: {\n nativeEvent: ResponsiveOrientationChanged;\n}) => void;\n\nexport type ResponsiveOrientationChanged = { orientation: CameraOrientation };\n\n/**\n * @hidden\n */\nexport type MountErrorListener = (event: { nativeEvent: CameraMountError }) => void;\n\n// @docsMissing\nexport type CameraMountError = { message: string };\n\n// @docsMissing\nexport type Point = {\n x: number;\n y: number;\n};\n\nexport type BarcodeSize = {\n /**\n * The height value.\n */\n height: number;\n /**\n * The width value.\n */\n width: number;\n};\n\n/**\n * These coordinates are represented in the coordinate space of the camera source (e.g. when you\n * are using the camera view, these values are adjusted to the dimensions of the view).\n */\nexport type BarcodePoint = Point;\n\nexport type BarcodeBounds = {\n /**\n * The origin point of the bounding box.\n */\n origin: BarcodePoint;\n /**\n * The size of the bounding box.\n */\n size: BarcodeSize;\n};\n\n// @needsAudit\nexport type BarcodeScanningResult = {\n /**\n * The barcode type.\n */\n type: string;\n /**\n * The parsed information encoded in the barcode.\n */\n data: string;\n /**\n * The raw information encoded in the barcode.\n * May be different from `data` depending on the barcode type.\n * @platform android\n * @hidden\n */\n raw?: string;\n /**\n * Corner points of the bounding box.\n * `cornerPoints` is not always available and may be empty. On iOS, for `code39` and `pdf417`\n * you don't get this value.\n *\n * **Note:** Corner points order is currently different across platforms. On Android,\n * [Google MLKit's native order](https://developers.google.com/android/reference/com/google/mlkit/vision/barcode/common/Barcode#getCornerPoints())\n * is used, which is `topLeft`, `topRight`, `bottomRight`, `bottomLeft`.\n * On iOS, the order is `bottomLeft`, `bottomRight`, `topLeft`, `topRight`. On Web, the order is\n * `topLeft`, `topRight`, `bottomRight`, `bottomLeft` (matching Android/BarcodeDetector order).\n *\n */\n cornerPoints: BarcodePoint[];\n /**\n * The [`BarcodeBounds`](#barcodebounds) object.\n * `bounds` in some case will be representing an empty rectangle.\n * Moreover, `bounds` doesn't have to bound the whole barcode.\n * For some types, they will represent the area used by the scanner.\n */\n bounds: BarcodeBounds;\n\n /**\n * Extra information returned by the specific type of barcode.\n * @platform android\n */\n extra?: AndroidBarcode;\n};\n\nexport type ScanningResult = Omit;\n\n// @needsAudit\nexport type CameraViewProps = ViewProps & {\n /**\n * Camera facing. Use one of `CameraType`. When `front`, use the front-facing camera.\n * When `back`, use the back-facing camera.\n * @default 'back'\n */\n facing?: CameraType;\n /**\n * Camera flash mode. Use one of `FlashMode` values. When `on`, the flash on your device will\n * turn on when taking a picture. When `off`, it won't. Setting it to `auto` will fire flash if required.\n * @default 'off'\n */\n flash?: FlashMode;\n /**\n * A value between `0` and `1` being a percentage of device's max zoom, where `0` means not zoomed and `1` means maximum zoom.\n * @default 0\n */\n zoom?: number;\n /**\n * Used to select image or video output.\n * @default 'picture'\n */\n mode?: CameraMode;\n /**\n * If present, video will be recorded with no sound.\n * @default false\n */\n mute?: boolean;\n /**\n * A boolean that determines whether the camera should mirror the image when using the front camera.\n * @default false\n */\n mirror?: boolean;\n /**\n * Indicates the focus mode to use.\n * @default off\n * @platform ios\n */\n autofocus?: FocusMode;\n /**\n * A boolean that determines whether the camera should be active.\n * Useful in situations where the camera may not have unmounted but you still want to stop the camera session.\n * @default true\n * @platform ios\n */\n active?: boolean;\n /**\n * Specify the quality of the recorded video. Use one of `VideoQuality` possible values:\n * for 16:9 resolution `2160p`, `1080p`, `720p`, `480p` : `Android only` and for 4:3 `4:3` (the size is 640x480).\n * If the chosen quality is not available for a device, the highest available is chosen.\n */\n videoQuality?: VideoQuality;\n /**\n * The bitrate of the video recording in bits per second.\n * Note: On iOS, you must specify the video codec when calling `recordAsync` to use this option.\n * @example 10_000_000\n */\n videoBitrate?: number;\n /**\n * A boolean that determines whether the camera shutter animation should be enabled.\n * @default true\n */\n animateShutter?: boolean;\n /**\n * A string representing the size of pictures [`takePictureAsync`](#takepictureasyncoptions) will take.\n * Available sizes can be fetched with [`getAvailablePictureSizesAsync`](#getavailablepicturesizesasync).\n * Setting this prop will cause the `ratio` prop to be ignored as the aspect ratio is determined by the selected size.\n */\n pictureSize?: string;\n /**\n * Available lenses are emitted to the `onAvailableLensesChanged` callback whenever the currently selected camera changes or by calling [`getAvailableLensesAsync`](#getavailablelensesasync).\n * You can read more about the available lenses in the [Apple documentation](https://developer.apple.com/documentation/avfoundation/avcapturedevice/devicetype-swift.struct).\n * @platform ios\n * @default 'builtInWideAngleCamera'\n */\n selectedLens?: string;\n /**\n * A boolean to enable or disable the torch.\n * @default false\n */\n enableTorch?: boolean;\n /**\n * The video stabilization mode used for a video recording. Use one of [`VideoStabilization.`](#videostabilization).\n * You can read more about each stabilization type in [Apple Documentation](https://developer.apple.com/documentation/avfoundation/avcapturevideostabilizationmode).\n * @default 'auto'\n */\n videoStabilizationMode?: VideoStabilization;\n /**\n * @example\n * ```tsx\n * \n * ```\n */\n barcodeScannerSettings?: BarcodeSettings;\n /**\n * A URL for an image to be shown while the camera is loading.\n * @platform web\n */\n poster?: string;\n /**\n * Whether to allow responsive orientation of the camera when the screen orientation is locked (that is, when set to `true`,\n * landscape photos will be taken if the device is turned that way, even if the app or device orientation is locked to portrait).\n * @platform ios\n */\n responsiveOrientationWhenOrientationLocked?: boolean;\n /**\n * A string representing the aspect ratio of the preview. For example, `4:3` and `16:9`.\n * Note: Setting the aspect ratio here will change the scaleType of the camera preview from `FILL` to `FIT`.\n * Also, when using 1:1, devices only support certain sizes. If you specify an unsupported size, the closest supported ratio will be used.\n * @platform android\n */\n ratio?: CameraRatio;\n /**\n * Callback invoked when camera preview has been set.\n */\n onCameraReady?: () => void;\n /**\n * Callback invoked when camera preview could not start.\n * @param event Error object that contains a `message`.\n */\n onMountError?: (event: CameraMountError) => void;\n /**\n * Callback that is invoked when a barcode has been successfully scanned. The callback is provided with\n * an object of the [`BarcodeScanningResult`](#barcodescanningresult) shape, where the `type`\n * refers to the barcode type that was scanned, and the `data` is the information encoded in the barcode\n * (in this case of QR codes, this is often a URL). See [`BarcodeType`](#barcodetype) for supported values.\n * @param scanningResult\n */\n onBarcodeScanned?: (scanningResult: BarcodeScanningResult) => void;\n /**\n * Callback invoked when responsive orientation changes. Only applicable if `responsiveOrientationWhenOrientationLocked` is `true`.\n * @param event result object that contains updated orientation of camera\n * @platform ios\n */\n onResponsiveOrientationChanged?: (event: ResponsiveOrientationChanged) => void;\n /**\n * Callback invoked when the cameras available lenses change.\n * @param event result object that contains a `lenses` property containing an array of available lenses.\n * @platform ios\n */\n onAvailableLensesChanged?: (event: AvailableLenses) => void;\n};\n\n/**\n * @hidden\n */\nexport interface CameraViewRef {\n readonly takePicture: (options: CameraPictureOptions) => Promise;\n readonly takePictureRef?: (options: CameraPictureOptions) => Promise;\n readonly getAvailablePictureSizes: () => Promise;\n readonly getAvailableLenses: () => Promise;\n readonly record: (options?: CameraRecordingOptions) => Promise<{ uri: string }>;\n readonly toggleRecording: () => Promise;\n readonly stopRecording: () => Promise;\n readonly launchModernScanner: () => Promise;\n readonly resumePreview: () => Promise;\n readonly pausePreview: () => Promise;\n}\n\n/**\n * @hidden\n */\nexport type CameraNativeProps = {\n pointerEvents?: any;\n style?: any;\n ref?: Ref;\n onCameraReady?: CameraReadyListener;\n onMountError?: MountErrorListener;\n onBarcodeScanned?: (event: { nativeEvent: BarcodeScanningResult }) => void;\n onPictureSaved?: PictureSavedListener;\n onResponsiveOrientationChanged?: ResponsiveOrientationChangedListener;\n onAvailableLensesChanged?: AvailableLensesChangedListener;\n facing?: string;\n flashMode?: string;\n enableTorch?: boolean;\n animateShutter?: boolean;\n autoFocus?: FocusMode;\n mute?: boolean;\n zoom?: number;\n ratio?: CameraRatio;\n barcodeScannerSettings?: BarcodeSettings;\n barcodeScannerEnabled?: boolean;\n poster?: string;\n responsiveOrientationWhenOrientationLocked?: boolean;\n};\n\n// @docsMissing\nexport type BarcodeSettings = {\n barcodeTypes: BarcodeType[];\n};\n\n/**\n * @platform ios\n */\nexport type ScanningOptions = {\n /**\n * The type of codes to scan for.\n */\n barcodeTypes: BarcodeType[];\n /**\n * Indicates whether people can use a two-finger pinch-to-zoom gesture.\n * @platform ios\n * @default true\n */\n isPinchToZoomEnabled?: boolean;\n /**\n * Guidance text, such as “Slow Down,” appears over the live video.\n * @platform ios\n * @default true\n */\n isGuidanceEnabled?: boolean;\n /**\n * Indicates whether the scanner displays highlights around recognized items.\n * @platform ios\n * @default false\n */\n isHighlightingEnabled?: boolean;\n};\n\n/**\n * The available barcode types that can be scanned.\n */\nexport type BarcodeType =\n | 'aztec'\n | 'ean13'\n | 'ean8'\n | 'qr'\n | 'pdf417'\n | 'upc_e'\n | 'datamatrix'\n | 'code39'\n | 'code93'\n | 'itf14'\n | 'codabar'\n | 'code128'\n | 'upc_a';\n\nexport {\n PermissionResponse,\n PermissionStatus,\n PermissionExpiration,\n PermissionHookOptions,\n EventSubscription as Subscription,\n};\n\nexport type PhotoResult = {\n /**\n * A URI to the modified image (usable as the source for an `Image` or `Video` element).\n */\n uri: string;\n /**\n * Width of the image.\n */\n width: number;\n /**\n * Height of the image.\n */\n height: number;\n /**\n * A Base64 representation of the image.\n */\n base64?: string;\n};\n\n// @needsAudit\n/**\n * A map defining how modified image should be saved.\n */\nexport type SavePictureOptions = {\n /**\n * Specify the compression quality from `0` to `1`. `0` means compress for small size, and `1` means compress for maximum quality.\n */\n quality?: number;\n /**\n * Additional metadata to be included for the image.\n */\n metadata?: Record;\n /**\n * Whether to also include the image data in Base64 format.\n */\n base64?: boolean;\n};\n\nexport type CameraEvents = {\n onModernBarcodeScanned: (event: ScanningResult) => void;\n};\nexport declare class CameraNativeModule extends NativeModule {\n /**\n * @hidden\n */\n Picture: typeof PictureRef;\n\n readonly isModernBarcodeScannerAvailable: boolean;\n readonly toggleRecordingAsyncAvailable: boolean;\n readonly isAvailableAsync: () => Promise;\n readonly launchScanner: (options?: ScanningOptions) => Promise;\n readonly dismissScanner: () => Promise;\n readonly scanFromURLAsync: (\n url: string,\n barcodeTypes?: BarcodeType[]\n ) => Promise;\n readonly getCameraPermissionsAsync: () => Promise;\n readonly requestCameraPermissionsAsync: () => Promise;\n readonly getMicrophonePermissionsAsync: () => Promise;\n readonly requestMicrophonePermissionsAsync: () => Promise;\n readonly getAvailableVideoCodecsAsync: () => Promise;\n\n readonly Type: Record;\n readonly FlashMode: Record;\n}\n"]} \ No newline at end of file diff --git a/packages/expo-camera/build/ExpoCamera.web.d.ts.map b/packages/expo-camera/build/ExpoCamera.web.d.ts.map index 82e28bf43e9340..58adb52805d294 100644 --- a/packages/expo-camera/build/ExpoCamera.web.d.ts.map +++ b/packages/expo-camera/build/ExpoCamera.web.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ExpoCamera.web.d.ts","sourceRoot":"","sources":["../src/ExpoCamera.web.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,iBAAiB,EAMvB,MAAM,OAAO,CAAC;AAIf,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EAErB,MAAM,gBAAgB,CAAC;AAOxB,MAAM,WAAW,iBAAiB;IAChC,wBAAwB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,WAAW,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC/E,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED,QAAA,MAAM,cAAc,GAAI,mCAKrB,iBAAiB,CAAC,iBAAiB,CAAC,gCAkHtC,CAAC;AAEF,eAAe,cAAc,CAAC"} \ No newline at end of file +{"version":3,"file":"ExpoCamera.web.d.ts","sourceRoot":"","sources":["../src/ExpoCamera.web.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,iBAAiB,EAMvB,MAAM,OAAO,CAAC;AAIf,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EAErB,MAAM,gBAAgB,CAAC;AAOxB,MAAM,WAAW,iBAAiB;IAChC,wBAAwB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,WAAW,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC/E,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED,QAAA,MAAM,cAAc,GAAI,mCAKrB,iBAAiB,CAAC,iBAAiB,CAAC,gCA0HtC,CAAC;AAEF,eAAe,cAAc,CAAC"} \ No newline at end of file diff --git a/packages/expo-camera/build/ExpoCamera.web.js b/packages/expo-camera/build/ExpoCamera.web.js index 415c5aee8a8be3..8b87a101f4670e 100644 --- a/packages/expo-camera/build/ExpoCamera.web.js +++ b/packages/expo-camera/build/ExpoCamera.web.js @@ -5,11 +5,17 @@ import createElement from 'react-native-web/dist/exports/createElement'; import CameraManager from './ExpoCameraManager.web'; import { capture } from './web/WebCameraUtils'; import { PictureSizes } from './web/WebConstants'; +import { useWebBarcodeScanner } from './web/useWebBarcodeScanner'; import { useWebCameraStream } from './web/useWebCameraStream'; -import { useWebQRScanner } from './web/useWebQRScanner'; const ExponentCamera = ({ facing, poster, ref, ...props }) => { const video = useRef(null); - const native = useWebCameraStream(video, facing, props, { + const cameraSettings = useMemo(() => { + return { + ...props, + flashMode: props.enableTorch ? 'torch' : props.flashMode, + }; + }, [props.enableTorch, props.flashMode, props.zoom, props.autoFocus]); + const native = useWebCameraStream(video, facing, cameraSettings, { onCameraReady() { if (props.onCameraReady) { props.onCameraReady(); @@ -17,13 +23,15 @@ const ExponentCamera = ({ facing, poster, ref, ...props }) => { }, onMountError: props.onMountError, }); - const isQRScannerEnabled = useMemo(() => { - return Boolean(props.barcodeScannerSettings?.barcodeTypes?.includes('qr') && !!props.onBarcodeScanned); - }, [props.barcodeScannerSettings?.barcodeTypes, props.onBarcodeScanned]); - useWebQRScanner(video, { + const barcodeTypes = props.barcodeScannerSettings?.barcodeTypes; + const isScannerEnabled = useMemo(() => { + return Boolean(barcodeTypes?.length && !!props.onBarcodeScanned); + }, [barcodeTypes, props.onBarcodeScanned]); + useWebBarcodeScanner(video, { interval: 300, - isEnabled: isQRScannerEnabled, - captureOptions: { scale: 1, isImageMirror: native.type === 'front' }, + isEnabled: isScannerEnabled, + barcodeTypes: barcodeTypes ?? [], + isMirrored: native.type === 'front', onScanned(event) { if (props.onBarcodeScanned) { props.onBarcodeScanned(event); diff --git a/packages/expo-camera/build/ExpoCamera.web.js.map b/packages/expo-camera/build/ExpoCamera.web.js.map index 37167fa8e243b7..fa14176d3f5f9e 100644 --- a/packages/expo-camera/build/ExpoCamera.web.js.map +++ b/packages/expo-camera/build/ExpoCamera.web.js.map @@ -1 +1 @@ -{"version":3,"file":"ExpoCamera.web.js","sourceRoot":"","sources":["../src/ExpoCamera.web.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CodedError } from 'expo-modules-core';\nimport {\n type PropsWithChildren,\n useRef,\n useMemo,\n useImperativeHandle,\n type ComponentProps,\n type Ref,\n} from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\nimport createElement from 'react-native-web/dist/exports/createElement';\n\nimport {\n CameraNativeProps,\n CameraCapturedPicture,\n CameraPictureOptions,\n CameraType,\n} from './Camera.types';\nimport CameraManager from './ExpoCameraManager.web';\nimport { capture } from './web/WebCameraUtils';\nimport { PictureSizes } from './web/WebConstants';\nimport { useWebCameraStream } from './web/useWebCameraStream';\nimport { useWebQRScanner } from './web/useWebQRScanner';\n\nexport interface ExponentCameraRef {\n getAvailablePictureSizes: (ratio: string) => Promise;\n takePicture: (options: CameraPictureOptions) => Promise;\n resumePreview: () => Promise;\n pausePreview: () => Promise;\n}\n\nconst ExponentCamera = ({\n facing,\n poster,\n ref,\n ...props\n}: PropsWithChildren) => {\n const video = useRef(null);\n\n const native = useWebCameraStream(video, facing as CameraType, props, {\n onCameraReady() {\n if (props.onCameraReady) {\n props.onCameraReady();\n }\n },\n onMountError: props.onMountError,\n });\n\n const isQRScannerEnabled = useMemo(() => {\n return Boolean(\n props.barcodeScannerSettings?.barcodeTypes?.includes('qr') && !!props.onBarcodeScanned\n );\n }, [props.barcodeScannerSettings?.barcodeTypes, props.onBarcodeScanned]);\n\n useWebQRScanner(video, {\n interval: 300,\n isEnabled: isQRScannerEnabled,\n captureOptions: { scale: 1, isImageMirror: native.type === 'front' },\n onScanned(event) {\n if (props.onBarcodeScanned) {\n props.onBarcodeScanned(event);\n }\n },\n });\n\n useImperativeHandle(\n ref,\n () => ({\n async getAvailablePictureSizes(): Promise {\n return PictureSizes;\n },\n async takePicture(options: CameraPictureOptions): Promise {\n if (!video.current || video.current?.readyState !== video.current?.HAVE_ENOUGH_DATA) {\n throw new CodedError(\n 'ERR_CAMERA_NOT_READY',\n 'HTMLVideoElement does not have enough camera data to construct an image yet.'\n );\n }\n const settings = native.mediaTrackSettings;\n if (!settings) {\n throw new CodedError('ERR_CAMERA_NOT_READY', 'MediaStream is not ready yet.');\n }\n\n return capture(video.current, settings, {\n ...options,\n // This will always be defined, the option gets added to a queue in the upper-level. We should replace the original so it isn't called twice.\n onPictureSaved(picture) {\n if (options.onPictureSaved) {\n options.onPictureSaved(picture);\n }\n if (props.onPictureSaved) {\n props.onPictureSaved({ nativeEvent: { data: picture, id: -1 } });\n }\n },\n });\n },\n async resumePreview(): Promise {\n if (video.current) {\n video.current.play();\n }\n },\n async pausePreview(): Promise {\n if (video.current) {\n video.current.pause();\n }\n },\n async stopRecording(): Promise {\n console.warn('stopRecording is not supported on web.');\n },\n async record(): Promise<{ uri: string }> {\n console.warn('record is not supported on web.');\n return { uri: '' };\n },\n async toggleRecording() {\n console.warn('toggleRecording is not supported on web.');\n },\n async launchModernScanner() {\n console.warn('launchModernScanner is not supported on web.');\n },\n async getAvailableLenses() {\n console.warn('getAvailableLenses is not supported on web.');\n return [];\n },\n }),\n [native.mediaTrackSettings, props.onPictureSaved]\n );\n\n // TODO(Bacon): Create a universal prop, on native the microphone is only used when recording videos.\n // Because we don't support recording video in the browser we don't need the user to give microphone permissions.\n const isMuted = true;\n\n const style = useMemo>(() => {\n const isFrontFacingCamera = native.type === CameraManager.Type.front;\n return [\n StyleSheet.absoluteFill,\n styles.video,\n {\n pointerEvents: props.pointerEvents,\n // Flip the camera\n transform: isFrontFacingCamera ? [{ scaleX: -1 }] : undefined,\n },\n ];\n }, [props.pointerEvents, native.type]);\n\n return (\n \n \n );\n};\n\nexport default ExponentCamera;\n\nconst Video = (\n props: ComponentProps & {\n autoPlay?: boolean;\n playsInline?: boolean;\n muted?: boolean;\n poster?: string;\n ref: Ref;\n }\n) => createElement('video', { ...props });\n\nconst styles = StyleSheet.create({\n videoWrapper: {\n flex: 1,\n alignItems: 'stretch',\n pointerEvents: 'box-none',\n },\n video: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n});\n"]} \ No newline at end of file +{"version":3,"file":"ExpoCamera.web.js","sourceRoot":"","sources":["../src/ExpoCamera.web.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CodedError } from 'expo-modules-core';\nimport {\n type PropsWithChildren,\n useRef,\n useMemo,\n useImperativeHandle,\n type ComponentProps,\n type Ref,\n} from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\nimport createElement from 'react-native-web/dist/exports/createElement';\n\nimport {\n CameraNativeProps,\n CameraCapturedPicture,\n CameraPictureOptions,\n CameraType,\n} from './Camera.types';\nimport CameraManager from './ExpoCameraManager.web';\nimport { capture } from './web/WebCameraUtils';\nimport { PictureSizes } from './web/WebConstants';\nimport { useWebBarcodeScanner } from './web/useWebBarcodeScanner';\nimport { useWebCameraStream } from './web/useWebCameraStream';\n\nexport interface ExponentCameraRef {\n getAvailablePictureSizes: (ratio: string) => Promise;\n takePicture: (options: CameraPictureOptions) => Promise;\n resumePreview: () => Promise;\n pausePreview: () => Promise;\n}\n\nconst ExponentCamera = ({\n facing,\n poster,\n ref,\n ...props\n}: PropsWithChildren) => {\n const video = useRef(null);\n\n const cameraSettings = useMemo(() => {\n return {\n ...props,\n flashMode: props.enableTorch ? 'torch' : props.flashMode,\n };\n }, [props.enableTorch, props.flashMode, props.zoom, props.autoFocus]);\n\n const native = useWebCameraStream(video, facing as CameraType, cameraSettings, {\n onCameraReady() {\n if (props.onCameraReady) {\n props.onCameraReady();\n }\n },\n onMountError: props.onMountError,\n });\n\n const barcodeTypes = props.barcodeScannerSettings?.barcodeTypes;\n\n const isScannerEnabled = useMemo(() => {\n return Boolean(barcodeTypes?.length && !!props.onBarcodeScanned);\n }, [barcodeTypes, props.onBarcodeScanned]);\n\n useWebBarcodeScanner(video, {\n interval: 300,\n isEnabled: isScannerEnabled,\n barcodeTypes: barcodeTypes ?? [],\n isMirrored: native.type === 'front',\n onScanned(event) {\n if (props.onBarcodeScanned) {\n props.onBarcodeScanned(event);\n }\n },\n });\n\n useImperativeHandle(\n ref,\n () => ({\n async getAvailablePictureSizes(): Promise {\n return PictureSizes;\n },\n async takePicture(options: CameraPictureOptions): Promise {\n if (!video.current || video.current?.readyState !== video.current?.HAVE_ENOUGH_DATA) {\n throw new CodedError(\n 'ERR_CAMERA_NOT_READY',\n 'HTMLVideoElement does not have enough camera data to construct an image yet.'\n );\n }\n const settings = native.mediaTrackSettings;\n if (!settings) {\n throw new CodedError('ERR_CAMERA_NOT_READY', 'MediaStream is not ready yet.');\n }\n\n return capture(video.current, settings, {\n ...options,\n // This will always be defined, the option gets added to a queue in the upper-level. We should replace the original so it isn't called twice.\n onPictureSaved(picture) {\n if (options.onPictureSaved) {\n options.onPictureSaved(picture);\n }\n if (props.onPictureSaved) {\n props.onPictureSaved({ nativeEvent: { data: picture, id: -1 } });\n }\n },\n });\n },\n async resumePreview(): Promise {\n if (video.current) {\n video.current.play();\n }\n },\n async pausePreview(): Promise {\n if (video.current) {\n video.current.pause();\n }\n },\n async stopRecording(): Promise {\n console.warn('stopRecording is not supported on web.');\n },\n async record(): Promise<{ uri: string }> {\n console.warn('record is not supported on web.');\n return { uri: '' };\n },\n async toggleRecording() {\n console.warn('toggleRecording is not supported on web.');\n },\n async launchModernScanner() {\n console.warn('launchModernScanner is not supported on web.');\n },\n async getAvailableLenses() {\n console.warn('getAvailableLenses is not supported on web.');\n return [];\n },\n }),\n [native.mediaTrackSettings, props.onPictureSaved]\n );\n\n // TODO(Bacon): Create a universal prop, on native the microphone is only used when recording videos.\n // Because we don't support recording video in the browser we don't need the user to give microphone permissions.\n const isMuted = true;\n\n const style = useMemo>(() => {\n const isFrontFacingCamera = native.type === CameraManager.Type.front;\n return [\n StyleSheet.absoluteFill,\n styles.video,\n {\n pointerEvents: props.pointerEvents,\n // Flip the camera\n transform: isFrontFacingCamera ? [{ scaleX: -1 }] : undefined,\n },\n ];\n }, [props.pointerEvents, native.type]);\n\n return (\n \n \n );\n};\n\nexport default ExponentCamera;\n\nconst Video = (\n props: ComponentProps & {\n autoPlay?: boolean;\n playsInline?: boolean;\n muted?: boolean;\n poster?: string;\n ref: Ref;\n }\n) => createElement('video', { ...props });\n\nconst styles = StyleSheet.create({\n videoWrapper: {\n flex: 1,\n alignItems: 'stretch',\n pointerEvents: 'box-none',\n },\n video: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n});\n"]} \ No newline at end of file diff --git a/packages/expo-camera/build/ExpoCameraManager.web.d.ts b/packages/expo-camera/build/ExpoCameraManager.web.d.ts index 89e6681ce8055a..5b078cd5e148e8 100644 --- a/packages/expo-camera/build/ExpoCameraManager.web.d.ts +++ b/packages/expo-camera/build/ExpoCameraManager.web.d.ts @@ -1,6 +1,11 @@ -import { CameraCapturedPicture, CameraPictureOptions, PermissionResponse } from './Camera.types'; +import { BarcodeType, BarcodeScanningResult, CameraCapturedPicture, CameraPictureOptions, PermissionResponse } from './Camera.types'; import { ExponentCameraRef } from './ExpoCamera.web'; declare const _default: { + isModernBarcodeScannerAvailable: boolean; + toggleRecordingAsyncAvailable: boolean; + addListener(_eventName: string, _listener: (...args: any[]) => any): { + remove: () => void; + }; readonly Type: { back: string; front: string; @@ -37,6 +42,7 @@ declare const _default: { requestCameraPermissionsAsync(): Promise; getMicrophonePermissionsAsync(): Promise; requestMicrophonePermissionsAsync(): Promise; + scanFromURLAsync(url: string, barcodeTypes?: BarcodeType[]): Promise; }; export default _default; //# sourceMappingURL=ExpoCameraManager.web.d.ts.map \ No newline at end of file diff --git a/packages/expo-camera/build/ExpoCameraManager.web.d.ts.map b/packages/expo-camera/build/ExpoCameraManager.web.d.ts.map index 0cc98a0288cf5b..4e7604d727df3a 100644 --- a/packages/expo-camera/build/ExpoCameraManager.web.d.ts.map +++ b/packages/expo-camera/build/ExpoCameraManager.web.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ExpoCameraManager.web.d.ts","sourceRoot":"","sources":["../src/ExpoCameraManager.web.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAEnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;wBAoKzB,OAAO,CAAC,OAAO,CAAC;yBAI/B,oBAAoB,UACrB,iBAAiB,GACxB,OAAO,CAAC,qBAAqB,CAAC;yBAGN,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;0BAGhC,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;oCAGvB,OAAO,CAAC,MAAM,EAAE,CAAC;oCAYjB,MAAM,UAAU,iBAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;2BAa9D,OAAO,CAAC,kBAAkB,CAAC;+BAGvB,OAAO,CAAC,kBAAkB,CAAC;iCAGzB,OAAO,CAAC,kBAAkB,CAAC;qCAGvB,OAAO,CAAC,kBAAkB,CAAC;qCAG3B,OAAO,CAAC,kBAAkB,CAAC;yCAGvB,OAAO,CAAC,kBAAkB,CAAC;;AA5FxE,wBA2GE"} \ No newline at end of file +{"version":3,"file":"ExpoCameraManager.web.d.ts","sourceRoot":"","sources":["../src/ExpoCameraManager.web.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAEnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;;;;4BA0G3B,MAAM,aAAa,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAuCxC,OAAO,CAAC,OAAO,CAAC;yBAI/B,oBAAoB,UACrB,iBAAiB,GACxB,OAAO,CAAC,qBAAqB,CAAC;yBAGN,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;0BAGhC,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;oCAGvB,OAAO,CAAC,MAAM,EAAE,CAAC;oCAYjB,MAAM,UAAU,iBAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;2BAa9D,OAAO,CAAC,kBAAkB,CAAC;+BAGvB,OAAO,CAAC,kBAAkB,CAAC;iCAGzB,OAAO,CAAC,kBAAkB,CAAC;qCAGvB,OAAO,CAAC,kBAAkB,CAAC;qCAG3B,OAAO,CAAC,kBAAkB,CAAC;yCAGvB,OAAO,CAAC,kBAAkB,CAAC;0BAgB/D,MAAM,iBACI,WAAW,EAAE,GAC3B,OAAO,CAAC,qBAAqB,EAAE,CAAC;;AAnHrC,wBA6HE"} \ No newline at end of file diff --git a/packages/expo-camera/build/ExpoCameraManager.web.js b/packages/expo-camera/build/ExpoCameraManager.web.js index b200fb29f70f06..3f7c8ba89fc116 100644 --- a/packages/expo-camera/build/ExpoCameraManager.web.js +++ b/packages/expo-camera/build/ExpoCameraManager.web.js @@ -1,31 +1,9 @@ import { UnavailabilityError } from 'expo-modules-core'; import { PermissionStatus, } from './Camera.types'; +import * as WebBarcodeScanner from './web/WebBarcodeScanner'; import { canGetUserMedia, isBackCameraAvailableAsync, isFrontCameraAvailableAsync, } from './web/WebUserMediaManager'; function getUserMedia(constraints) { - if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { - return navigator.mediaDevices.getUserMedia(constraints); - } - // Some browsers partially implement mediaDevices. We can't just assign an object - // with getUserMedia as it would overwrite existing properties. - // Here, we will just add the getUserMedia property if it's missing. - // First get ahold of the legacy getUserMedia, if present - const getUserMedia = - // TODO: this method is deprecated, migrate to https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia - navigator.getUserMedia || - navigator.webkitGetUserMedia || - navigator.mozGetUserMedia || - function () { - const error = new Error('Permission unimplemented'); - error.code = 0; - error.name = 'NotAllowedError'; - throw error; - }; - return new Promise((resolve, reject) => { - // TODO(@kitten): The types indicates that this is incorrect. - // Please check whether this is correct! - // @ts-expect-error: The `successCallback` doesn't match a `resolve` function - getUserMedia.call(navigator, constraints, resolve, reject); - }); + return navigator.mediaDevices.getUserMedia(constraints); } function handleGetUserMediaError({ message }) { // name: NotAllowedError @@ -116,6 +94,11 @@ async function handlePermissionsQueryAsync(query) { } } export default { + isModernBarcodeScannerAvailable: false, + toggleRecordingAsyncAvailable: false, + addListener(_eventName, _listener) { + return { remove: () => { } }; + }, get Type() { return { back: 'back', @@ -218,5 +201,14 @@ export default { return handleGetUserMediaError(error.message); } }, + async scanFromURLAsync(url, barcodeTypes) { + const response = await fetch(url); + const blob = await response.blob(); + const bitmap = await createImageBitmap(blob); + const types = barcodeTypes && barcodeTypes.length > 0 ? barcodeTypes : WebBarcodeScanner.ALL_BARCODE_TYPES; + const results = await WebBarcodeScanner.detect(bitmap, types); + bitmap.close(); + return results; + }, }; //# sourceMappingURL=ExpoCameraManager.web.js.map \ No newline at end of file diff --git a/packages/expo-camera/build/ExpoCameraManager.web.js.map b/packages/expo-camera/build/ExpoCameraManager.web.js.map index 7d29e915ad2d63..fd5dfc0b025bac 100644 --- a/packages/expo-camera/build/ExpoCameraManager.web.js.map +++ b/packages/expo-camera/build/ExpoCameraManager.web.js.map @@ -1 +1 @@ -{"version":3,"file":"ExpoCameraManager.web.js","sourceRoot":"","sources":["../src/ExpoCameraManager.web.ts"],"names":[],"mappings":"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","sourcesContent":["import { UnavailabilityError } from 'expo-modules-core';\n\nimport {\n CameraCapturedPicture,\n CameraPictureOptions,\n PermissionResponse,\n PermissionStatus,\n} from './Camera.types';\nimport { ExponentCameraRef } from './ExpoCamera.web';\nimport {\n canGetUserMedia,\n isBackCameraAvailableAsync,\n isFrontCameraAvailableAsync,\n} from './web/WebUserMediaManager';\n\nfunction getUserMedia(constraints: MediaStreamConstraints): Promise {\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n return navigator.mediaDevices.getUserMedia(constraints);\n }\n\n // Some browsers partially implement mediaDevices. We can't just assign an object\n // with getUserMedia as it would overwrite existing properties.\n // Here, we will just add the getUserMedia property if it's missing.\n\n // First get ahold of the legacy getUserMedia, if present\n const getUserMedia =\n // TODO: this method is deprecated, migrate to https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia\n navigator.getUserMedia ||\n navigator.webkitGetUserMedia ||\n navigator.mozGetUserMedia ||\n function () {\n const error: any = new Error('Permission unimplemented');\n error.code = 0;\n error.name = 'NotAllowedError';\n throw error;\n };\n return new Promise((resolve, reject) => {\n // TODO(@kitten): The types indicates that this is incorrect.\n // Please check whether this is correct!\n // @ts-expect-error: The `successCallback` doesn't match a `resolve` function\n getUserMedia.call(navigator, constraints, resolve, reject);\n });\n}\n\nfunction handleGetUserMediaError({ message }: { message: string }): PermissionResponse {\n // name: NotAllowedError\n // code: 0\n if (message === 'Permission dismissed') {\n return {\n status: PermissionStatus.UNDETERMINED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n } else {\n // TODO: Bacon: [OSX] The system could deny access to chrome.\n // TODO: Bacon: add: { status: 'unimplemented' }\n return {\n status: PermissionStatus.DENIED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n }\n}\n\nasync function handleRequestPermissionsAsync(): Promise {\n try {\n const streams = await getUserMedia({\n video: true,\n });\n // We need to close the media stream returned by getUserMedia\n // to avoid using the camera since we won't use these streams now\n // https://developer.mozilla.org/fr/docs/Web/API/MediaDevices/getUserMedia\n streams.getTracks().forEach((track) => {\n track.stop();\n streams.removeTrack(track);\n });\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: true,\n granted: true,\n };\n } catch (error: any) {\n return handleGetUserMediaError(error.message);\n }\n}\n\nasync function handlePermissionsQueryAsync(\n query: 'camera' | 'microphone'\n): Promise {\n if (!navigator?.permissions?.query) {\n throw new UnavailabilityError('expo-camera', 'navigator.permissions API is not available');\n }\n\n try {\n const { state } = await navigator.permissions.query({ name: query });\n switch (state) {\n case 'prompt':\n return {\n status: PermissionStatus.UNDETERMINED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n case 'granted':\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: true,\n granted: true,\n };\n case 'denied':\n return {\n status: PermissionStatus.DENIED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n }\n } catch (e) {\n // Firefox doesn't support querying for the camera permission, so return undetermined status\n if (e instanceof TypeError) {\n return {\n status: PermissionStatus.UNDETERMINED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n }\n throw e;\n }\n}\n\nexport default {\n get Type() {\n return {\n back: 'back',\n front: 'front',\n };\n },\n get FlashMode() {\n return {\n on: 'on',\n off: 'off',\n auto: 'auto',\n torch: 'torch',\n screen: 'on',\n };\n },\n get AutoFocus() {\n return {\n on: 'on',\n off: 'off',\n auto: 'auto',\n singleShot: 'singleShot',\n };\n },\n get WhiteBalance() {\n return {\n auto: 'auto',\n continuous: 'continuous',\n manual: 'manual',\n };\n },\n get VideoQuality() {\n return {};\n },\n get VideoStabilization() {\n return {};\n },\n async isAvailableAsync(): Promise {\n return canGetUserMedia();\n },\n async takePicture(\n options: CameraPictureOptions,\n camera: ExponentCameraRef\n ): Promise {\n return await camera.takePicture(options);\n },\n async pausePreview(camera: ExponentCameraRef): Promise {\n await camera.pausePreview();\n },\n async resumePreview(camera: ExponentCameraRef): Promise {\n return await camera.resumePreview();\n },\n async getAvailableCameraTypesAsync(): Promise {\n if (!canGetUserMedia() || !navigator.mediaDevices.enumerateDevices) return [];\n\n const devices = await navigator.mediaDevices.enumerateDevices();\n\n const types: (string | null)[] = await Promise.all([\n (await isFrontCameraAvailableAsync(devices)) && 'front',\n (await isBackCameraAvailableAsync()) && 'back',\n ]);\n\n return types.filter(Boolean) as string[];\n },\n async getAvailablePictureSizes(ratio: string, camera: ExponentCameraRef): Promise {\n return await camera.getAvailablePictureSizes(ratio);\n },\n /*\n async record(\n options?: CameraRecordingOptions,\n camera: ExponentCameraRef\n ): Promise<{ uri: string }> {\n // TODO: Support on web\n },\n async stopRecording(camera: ExponentCameraRef): Promise {\n // TODO: Support on web\n }, */\n async getPermissionsAsync(): Promise {\n return handlePermissionsQueryAsync('camera');\n },\n async requestPermissionsAsync(): Promise {\n return handleRequestPermissionsAsync();\n },\n async getCameraPermissionsAsync(): Promise {\n return handlePermissionsQueryAsync('camera');\n },\n async requestCameraPermissionsAsync(): Promise {\n return handleRequestPermissionsAsync();\n },\n async getMicrophonePermissionsAsync(): Promise {\n return handlePermissionsQueryAsync('microphone');\n },\n async requestMicrophonePermissionsAsync(): Promise {\n try {\n await getUserMedia({\n audio: true,\n });\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: true,\n granted: true,\n };\n } catch (error: any) {\n return handleGetUserMediaError(error.message);\n }\n },\n};\n"]} \ No newline at end of file +{"version":3,"file":"ExpoCameraManager.web.js","sourceRoot":"","sources":["../src/ExpoCameraManager.web.ts"],"names":[],"mappings":"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","sourcesContent":["import { UnavailabilityError } from 'expo-modules-core';\n\nimport {\n BarcodeType,\n BarcodeScanningResult,\n CameraCapturedPicture,\n CameraPictureOptions,\n PermissionResponse,\n PermissionStatus,\n} from './Camera.types';\nimport { ExponentCameraRef } from './ExpoCamera.web';\nimport * as WebBarcodeScanner from './web/WebBarcodeScanner';\nimport {\n canGetUserMedia,\n isBackCameraAvailableAsync,\n isFrontCameraAvailableAsync,\n} from './web/WebUserMediaManager';\n\nfunction getUserMedia(constraints: MediaStreamConstraints): Promise {\n return navigator.mediaDevices.getUserMedia(constraints);\n}\n\nfunction handleGetUserMediaError({ message }: { message: string }): PermissionResponse {\n // name: NotAllowedError\n // code: 0\n if (message === 'Permission dismissed') {\n return {\n status: PermissionStatus.UNDETERMINED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n } else {\n // TODO: Bacon: [OSX] The system could deny access to chrome.\n // TODO: Bacon: add: { status: 'unimplemented' }\n return {\n status: PermissionStatus.DENIED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n }\n}\n\nasync function handleRequestPermissionsAsync(): Promise {\n try {\n const streams = await getUserMedia({\n video: true,\n });\n // We need to close the media stream returned by getUserMedia\n // to avoid using the camera since we won't use these streams now\n // https://developer.mozilla.org/fr/docs/Web/API/MediaDevices/getUserMedia\n streams.getTracks().forEach((track) => {\n track.stop();\n streams.removeTrack(track);\n });\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: true,\n granted: true,\n };\n } catch (error: any) {\n return handleGetUserMediaError(error.message);\n }\n}\n\nasync function handlePermissionsQueryAsync(\n query: 'camera' | 'microphone'\n): Promise {\n if (!navigator?.permissions?.query) {\n throw new UnavailabilityError('expo-camera', 'navigator.permissions API is not available');\n }\n\n try {\n const { state } = await navigator.permissions.query({ name: query });\n switch (state) {\n case 'prompt':\n return {\n status: PermissionStatus.UNDETERMINED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n case 'granted':\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: true,\n granted: true,\n };\n case 'denied':\n return {\n status: PermissionStatus.DENIED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n }\n } catch (e) {\n // Firefox doesn't support querying for the camera permission, so return undetermined status\n if (e instanceof TypeError) {\n return {\n status: PermissionStatus.UNDETERMINED,\n expires: 'never',\n canAskAgain: true,\n granted: false,\n };\n }\n throw e;\n }\n}\n\nexport default {\n isModernBarcodeScannerAvailable: false,\n toggleRecordingAsyncAvailable: false,\n addListener(_eventName: string, _listener: (...args: any[]) => any) {\n return { remove: () => {} };\n },\n get Type() {\n return {\n back: 'back',\n front: 'front',\n };\n },\n get FlashMode() {\n return {\n on: 'on',\n off: 'off',\n auto: 'auto',\n torch: 'torch',\n screen: 'on',\n };\n },\n get AutoFocus() {\n return {\n on: 'on',\n off: 'off',\n auto: 'auto',\n singleShot: 'singleShot',\n };\n },\n get WhiteBalance() {\n return {\n auto: 'auto',\n continuous: 'continuous',\n manual: 'manual',\n };\n },\n get VideoQuality() {\n return {};\n },\n get VideoStabilization() {\n return {};\n },\n async isAvailableAsync(): Promise {\n return canGetUserMedia();\n },\n async takePicture(\n options: CameraPictureOptions,\n camera: ExponentCameraRef\n ): Promise {\n return await camera.takePicture(options);\n },\n async pausePreview(camera: ExponentCameraRef): Promise {\n await camera.pausePreview();\n },\n async resumePreview(camera: ExponentCameraRef): Promise {\n return await camera.resumePreview();\n },\n async getAvailableCameraTypesAsync(): Promise {\n if (!canGetUserMedia() || !navigator.mediaDevices.enumerateDevices) return [];\n\n const devices = await navigator.mediaDevices.enumerateDevices();\n\n const types: (string | null)[] = await Promise.all([\n (await isFrontCameraAvailableAsync(devices)) && 'front',\n (await isBackCameraAvailableAsync()) && 'back',\n ]);\n\n return types.filter(Boolean) as string[];\n },\n async getAvailablePictureSizes(ratio: string, camera: ExponentCameraRef): Promise {\n return await camera.getAvailablePictureSizes(ratio);\n },\n /*\n async record(\n options?: CameraRecordingOptions,\n camera: ExponentCameraRef\n ): Promise<{ uri: string }> {\n // TODO: Support on web\n },\n async stopRecording(camera: ExponentCameraRef): Promise {\n // TODO: Support on web\n }, */\n async getPermissionsAsync(): Promise {\n return handlePermissionsQueryAsync('camera');\n },\n async requestPermissionsAsync(): Promise {\n return handleRequestPermissionsAsync();\n },\n async getCameraPermissionsAsync(): Promise {\n return handlePermissionsQueryAsync('camera');\n },\n async requestCameraPermissionsAsync(): Promise {\n return handleRequestPermissionsAsync();\n },\n async getMicrophonePermissionsAsync(): Promise {\n return handlePermissionsQueryAsync('microphone');\n },\n async requestMicrophonePermissionsAsync(): Promise {\n try {\n await getUserMedia({\n audio: true,\n });\n return {\n status: PermissionStatus.GRANTED,\n expires: 'never',\n canAskAgain: true,\n granted: true,\n };\n } catch (error: any) {\n return handleGetUserMediaError(error.message);\n }\n },\n async scanFromURLAsync(\n url: string,\n barcodeTypes?: BarcodeType[]\n ): Promise {\n const response = await fetch(url);\n const blob = await response.blob();\n const bitmap = await createImageBitmap(blob);\n const types: BarcodeType[] =\n barcodeTypes && barcodeTypes.length > 0 ? barcodeTypes : WebBarcodeScanner.ALL_BARCODE_TYPES;\n const results = await WebBarcodeScanner.detect(bitmap, types);\n bitmap.close();\n return results;\n },\n};\n"]} \ No newline at end of file diff --git a/packages/expo-camera/build/web/WebBarcodeScanner.d.ts b/packages/expo-camera/build/web/WebBarcodeScanner.d.ts new file mode 100644 index 00000000000000..2cc17a8d78b34b --- /dev/null +++ b/packages/expo-camera/build/web/WebBarcodeScanner.d.ts @@ -0,0 +1,4 @@ +import type { BarcodeType, BarcodeScanningResult } from '../Camera.types'; +export declare const ALL_BARCODE_TYPES: BarcodeType[]; +export declare function detect(source: ImageBitmapSource, barcodeTypes: BarcodeType[]): Promise; +//# sourceMappingURL=WebBarcodeScanner.d.ts.map \ No newline at end of file diff --git a/packages/expo-camera/build/web/WebBarcodeScanner.d.ts.map b/packages/expo-camera/build/web/WebBarcodeScanner.d.ts.map new file mode 100644 index 00000000000000..ccd35a14bd9351 --- /dev/null +++ b/packages/expo-camera/build/web/WebBarcodeScanner.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"WebBarcodeScanner.d.ts","sourceRoot":"","sources":["../../src/web/WebBarcodeScanner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AA0B1E,eAAO,MAAM,iBAAiB,EAAsC,WAAW,EAAE,CAAC;AAgDlF,wBAAsB,MAAM,CAC1B,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,WAAW,EAAE,GAC1B,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAgBlC"} \ No newline at end of file diff --git a/packages/expo-camera/build/web/WebBarcodeScanner.js b/packages/expo-camera/build/web/WebBarcodeScanner.js new file mode 100644 index 00000000000000..43a7dd6cae1fbe --- /dev/null +++ b/packages/expo-camera/build/web/WebBarcodeScanner.js @@ -0,0 +1,67 @@ +/** + * Mapping from expo BarcodeType to BarcodeDetector format string. + * @see https://developer.mozilla.org/en-US/docs/Web/API/Barcode_Detection_API#supported_barcode_formats + */ +const EXPO_TO_WEB_FORMAT = { + aztec: 'aztec', + codabar: 'codabar', + code39: 'code_39', + code93: 'code_93', + code128: 'code_128', + datamatrix: 'data_matrix', + ean8: 'ean_8', + ean13: 'ean_13', + itf14: 'itf', + pdf417: 'pdf417', + qr: 'qr_code', + upc_a: 'upc_a', + upc_e: 'upc_e', +}; +const WEB_TO_EXPO_FORMAT = Object.fromEntries(Object.entries(EXPO_TO_WEB_FORMAT).map(([expo, web]) => [web, expo])); +export const ALL_BARCODE_TYPES = Object.keys(EXPO_TO_WEB_FORMAT); +let cachedDetector = null; +let cachedFormats = null; +function formatsChanged(barcodeTypes) { + const webFormats = barcodeTypes.map((t) => EXPO_TO_WEB_FORMAT[t]).sort(); + if (!cachedFormats) { + return true; + } + if (cachedFormats.length !== webFormats.length) { + return true; + } + return webFormats.some((f, i) => f !== cachedFormats[i]); +} +async function getDetector(barcodeTypes) { + if (cachedDetector && !formatsChanged(barcodeTypes)) { + return cachedDetector; + } + const webFormats = barcodeTypes.map((t) => EXPO_TO_WEB_FORMAT[t]); + cachedFormats = [...webFormats].sort(); + const NativeBarcodeDetector = globalThis.BarcodeDetector; + if (typeof NativeBarcodeDetector !== 'undefined') { + const detector = new NativeBarcodeDetector({ formats: webFormats }); + cachedDetector = detector; + return detector; + } + const { BarcodeDetector } = await import('barcode-detector'); + const detector = new BarcodeDetector({ formats: webFormats }); + cachedDetector = detector; + return detector; +} +export async function detect(source, barcodeTypes) { + const detector = await getDetector(barcodeTypes); + const barcodes = await detector.detect(source); + return barcodes.map((barcode) => { + const { x, y, width, height } = barcode.boundingBox; + return { + type: WEB_TO_EXPO_FORMAT[barcode.format] ?? barcode.format, + data: barcode.rawValue, + bounds: { + origin: { x, y }, + size: { width, height }, + }, + cornerPoints: barcode.cornerPoints?.map((p) => ({ x: p.x, y: p.y })) ?? [], + }; + }); +} +//# sourceMappingURL=WebBarcodeScanner.js.map \ No newline at end of file diff --git a/packages/expo-camera/build/web/WebBarcodeScanner.js.map b/packages/expo-camera/build/web/WebBarcodeScanner.js.map new file mode 100644 index 00000000000000..d6d5454e35040a --- /dev/null +++ b/packages/expo-camera/build/web/WebBarcodeScanner.js.map @@ -0,0 +1 @@ +{"version":3,"file":"WebBarcodeScanner.js","sourceRoot":"","sources":["../../src/web/WebBarcodeScanner.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BarcodeType, BarcodeScanningResult } from '../Camera.types';\n\n/**\n * Mapping from expo BarcodeType to BarcodeDetector format string.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Barcode_Detection_API#supported_barcode_formats\n */\nconst EXPO_TO_WEB_FORMAT: Record = {\n aztec: 'aztec',\n codabar: 'codabar',\n code39: 'code_39',\n code93: 'code_93',\n code128: 'code_128',\n datamatrix: 'data_matrix',\n ean8: 'ean_8',\n ean13: 'ean_13',\n itf14: 'itf',\n pdf417: 'pdf417',\n qr: 'qr_code',\n upc_a: 'upc_a',\n upc_e: 'upc_e',\n};\n\nconst WEB_TO_EXPO_FORMAT: Record = Object.fromEntries(\n Object.entries(EXPO_TO_WEB_FORMAT).map(([expo, web]) => [web, expo as BarcodeType])\n);\n\nexport const ALL_BARCODE_TYPES = Object.keys(EXPO_TO_WEB_FORMAT) as BarcodeType[];\n\ntype BarcodeDetectorLike = {\n detect(source: ImageBitmapSource): Promise;\n};\n\ntype DetectedBarcodeLike = {\n format: string;\n rawValue: string;\n boundingBox: DOMRectReadOnly;\n cornerPoints: { x: number; y: number }[];\n};\n\nlet cachedDetector: BarcodeDetectorLike | null = null;\nlet cachedFormats: string[] | null = null;\n\nfunction formatsChanged(barcodeTypes: BarcodeType[]): boolean {\n const webFormats = barcodeTypes.map((t) => EXPO_TO_WEB_FORMAT[t]).sort();\n if (!cachedFormats) {\n return true;\n }\n if (cachedFormats.length !== webFormats.length) {\n return true;\n }\n return webFormats.some((f, i) => f !== cachedFormats![i]);\n}\n\nasync function getDetector(barcodeTypes: BarcodeType[]): Promise {\n if (cachedDetector && !formatsChanged(barcodeTypes)) {\n return cachedDetector;\n }\n\n const webFormats = barcodeTypes.map((t) => EXPO_TO_WEB_FORMAT[t]);\n cachedFormats = [...webFormats].sort();\n\n const NativeBarcodeDetector = (globalThis as any).BarcodeDetector;\n if (typeof NativeBarcodeDetector !== 'undefined') {\n const detector: BarcodeDetectorLike = new NativeBarcodeDetector({ formats: webFormats });\n cachedDetector = detector;\n return detector;\n }\n\n const { BarcodeDetector } = await import('barcode-detector');\n const detector: BarcodeDetectorLike = new BarcodeDetector({ formats: webFormats as any });\n cachedDetector = detector;\n return detector;\n}\n\nexport async function detect(\n source: ImageBitmapSource,\n barcodeTypes: BarcodeType[]\n): Promise {\n const detector = await getDetector(barcodeTypes);\n const barcodes = await detector.detect(source);\n\n return barcodes.map((barcode) => {\n const { x, y, width, height } = barcode.boundingBox;\n return {\n type: WEB_TO_EXPO_FORMAT[barcode.format] ?? barcode.format,\n data: barcode.rawValue,\n bounds: {\n origin: { x, y },\n size: { width, height },\n },\n cornerPoints: barcode.cornerPoints?.map((p) => ({ x: p.x, y: p.y })) ?? [],\n };\n });\n}\n"]} \ No newline at end of file diff --git a/packages/expo-camera/build/web/WebCameraUtils.d.ts b/packages/expo-camera/build/web/WebCameraUtils.d.ts index 04032d4aea0d76..72fe34ce2f2926 100644 --- a/packages/expo-camera/build/web/WebCameraUtils.d.ts +++ b/packages/expo-camera/build/web/WebCameraUtils.d.ts @@ -8,7 +8,6 @@ interface ConstrainLongRange { export declare function getImageSize(videoWidth: number, videoHeight: number, scale: number): ImageSize; export declare function toDataURL(canvas: HTMLCanvasElement, imageType: ImageType, quality: number): string; export declare function hasValidConstraints(preferredCameraType?: CameraType, width?: number | ConstrainLongRange, height?: number | ConstrainLongRange): boolean; -export declare function captureImageData(video: HTMLVideoElement | null, pictureOptions?: Pick): ImageData | null; export declare function captureImageContext(video: HTMLVideoElement, { scale, isImageMirror }: Pick): HTMLCanvasElement; export declare function captureImage(video: HTMLVideoElement, pictureOptions: CameraPictureOptions): string; export declare function getIdealConstraints(preferredCameraType: CameraType, width?: number | ConstrainLongRange, height?: number | ConstrainLongRange): MediaStreamConstraints; @@ -26,7 +25,7 @@ export declare function compareStreams(a: MediaStream | null, b: MediaStream | n export declare function capture(video: HTMLVideoElement, settings: MediaTrackSettings, config: CameraPictureOptions): CameraCapturedPicture; export declare function syncTrackCapabilities(cameraType: CameraType, stream: MediaStream | null, settings?: WebCameraSettings): Promise; export declare function stopMediaStream(stream: MediaStream | null): void; -export declare function setVideoSource(video: HTMLVideoElement, stream: MediaStream | MediaSource | Blob | null): void; +export declare function setVideoSource(video: HTMLVideoElement, stream: MediaStream | null): void; export declare function isCapabilityAvailable(video: HTMLVideoElement, keyName: keyof MediaTrackCapabilities): boolean; export {}; //# sourceMappingURL=WebCameraUtils.d.ts.map \ No newline at end of file diff --git a/packages/expo-camera/build/web/WebCameraUtils.d.ts.map b/packages/expo-camera/build/web/WebCameraUtils.d.ts.map index c26abe11e8e08d..fc42b175f9cdb4 100644 --- a/packages/expo-camera/build/web/WebCameraUtils.d.ts.map +++ b/packages/expo-camera/build/web/WebCameraUtils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"WebCameraUtils.d.ts","sourceRoot":"","sources":["../../src/web/WebCameraUtils.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,UAAU,kBAAkB;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAS9F;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,GACd,MAAM,CAiBR;AAED,wBAAgB,mBAAmB,CACjC,mBAAmB,CAAC,EAAE,UAAU,EAChC,KAAK,CAAC,EAAE,MAAM,GAAG,kBAAkB,EACnC,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB,GACnC,OAAO,CAET;AAmBD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAC9B,cAAc,GAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,eAAe,CAAM,GACzE,SAAS,GAAG,IAAI,CAalB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,gBAAgB,EACvB,EAAE,KAAS,EAAE,aAAqB,EAAE,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,eAAe,CAAC,GAC1F,iBAAiB,CAyBnB;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,gBAAgB,EACvB,cAAc,EAAE,oBAAoB,GACnC,MAAM,CAKR;AASD,wBAAgB,mBAAmB,CACjC,mBAAmB,EAAE,UAAU,EAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,kBAAkB,EACnC,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB,GACnC,sBAAsB,CAoCxB;AAMD;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,mBAAmB,EAAE,UAAU,EAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,kBAAkB,EAC5C,eAAe,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAC5C,OAAO,CAAC,WAAW,CAAC,CAYtB;AAED,wBAAsB,eAAe,CACnC,mBAAmB,EAAE,UAAU,EAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,kBAAkB,EAC5C,eAAe,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAC5C,OAAO,CAAC,WAAW,CAAC,CAQtB;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,EAAE,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAOpF;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,kBAAkB,EAC5B,MAAM,EAAE,oBAAoB,GAC3B,qBAAqB,CAsBvB;AAED,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,QAAQ,GAAE,iBAAsB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAMf;AAiFD,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,QAazD;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,GAC9C,IAAI,CAkBN;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,MAAM,sBAAsB,GACpC,OAAO,CAST"} \ No newline at end of file +{"version":3,"file":"WebCameraUtils.d.ts","sourceRoot":"","sources":["../../src/web/WebCameraUtils.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,UAAU,kBAAkB;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAS9F;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,GACd,MAAM,CAOR;AAED,wBAAgB,mBAAmB,CACjC,mBAAmB,CAAC,EAAE,UAAU,EAChC,KAAK,CAAC,EAAE,MAAM,GAAG,kBAAkB,EACnC,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB,GACnC,OAAO,CAET;AAmBD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,gBAAgB,EACvB,EAAE,KAAS,EAAE,aAAqB,EAAE,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,eAAe,CAAC,GAC1F,iBAAiB,CAyBnB;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,gBAAgB,EACvB,cAAc,EAAE,oBAAoB,GACnC,MAAM,CAKR;AASD,wBAAgB,mBAAmB,CACjC,mBAAmB,EAAE,UAAU,EAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,kBAAkB,EACnC,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB,GACnC,sBAAsB,CAoCxB;AAMD;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,mBAAmB,EAAE,UAAU,EAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,kBAAkB,EAC5C,eAAe,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAC5C,OAAO,CAAC,WAAW,CAAC,CAYtB;AAED,wBAAsB,eAAe,CACnC,mBAAmB,EAAE,UAAU,EAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,kBAAkB,EAC5C,eAAe,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAC5C,OAAO,CAAC,WAAW,CAAC,CAQtB;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,EAAE,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAOpF;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,kBAAkB,EAC5B,MAAM,EAAE,oBAAoB,GAC3B,qBAAqB,CAsBvB;AAED,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,QAAQ,GAAE,iBAAsB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAMf;AAiFD,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,QAMzD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAExF;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,MAAM,sBAAsB,GACpC,OAAO,CAST"} \ No newline at end of file diff --git a/packages/expo-camera/build/web/WebCameraUtils.js b/packages/expo-camera/build/web/WebCameraUtils.js index 9701b69b5df268..a6a7ac48a855b2 100644 --- a/packages/expo-camera/build/web/WebCameraUtils.js +++ b/packages/expo-camera/build/web/WebCameraUtils.js @@ -1,5 +1,4 @@ /* eslint-env browser */ -import invariant from 'invariant'; import * as CapabilityUtils from './WebCapabilityUtils'; import { CameraTypeToFacingMode, ImageTypeFormat, MinimumConstraints } from './WebConstants'; import { requestUserMediaAsync } from './WebUserMediaManager'; @@ -13,11 +12,8 @@ export function getImageSize(videoWidth, videoHeight, scale) { }; } export function toDataURL(canvas, imageType, quality) { - const types = ['png', 'jpg']; - invariant(types.includes(imageType), `expo-camera: ${imageType} is not a valid ImageType. Expected a string from: ${types.join(', ')}`); const format = ImageTypeFormat[imageType]; if (imageType === 'jpg') { - invariant(quality <= 1 && quality >= 0, `expo-camera: ${quality} is not a valid image quality. Expected a number from 0...1`); return canvas.toDataURL(format, quality); } else { @@ -42,18 +38,6 @@ function ensureCameraPictureOptions(config) { return captureOptions; } const DEFAULT_QUALITY = 0.92; -export function captureImageData(video, pictureOptions = {}) { - if (!video || video.readyState !== video.HAVE_ENOUGH_DATA) { - return null; - } - const canvas = captureImageContext(video, pictureOptions); - const context = canvas.getContext('2d', { alpha: false }); - if (!context || !canvas.width || !canvas.height) { - return null; - } - const imageData = context.getImageData(0, 0, canvas.width, canvas.height); - return imageData; -} export function captureImageContext(video, { scale = 1, isImageMirror = false }) { const { videoWidth, videoHeight } = video; const { width, height } = getImageSize(videoWidth, videoHeight, scale); @@ -243,34 +227,11 @@ export function stopMediaStream(stream) { if (!stream) { return; } - if (stream.getAudioTracks) { - stream.getAudioTracks().forEach((track) => track.stop()); - } - if (stream.getVideoTracks) { - stream.getVideoTracks().forEach((track) => track.stop()); - } - if (isMediaStreamTrack(stream)) { - stream.stop(); - } + stream.getAudioTracks().forEach((track) => track.stop()); + stream.getVideoTracks().forEach((track) => track.stop()); } export function setVideoSource(video, stream) { - const createObjectURL = window.URL.createObjectURL ?? window.webkitURL.createObjectURL; - if (typeof video.srcObject !== 'undefined') { - video.srcObject = stream; - } - else if (typeof video.mozSrcObject !== 'undefined') { - video.mozSrcObject = stream; - } - else if (stream && createObjectURL) { - video.src = createObjectURL(stream); - } - if (!stream) { - const revokeObjectURL = window.URL.revokeObjectURL ?? window.webkitURL.revokeObjectURL; - const source = video.src ?? video.srcObject ?? video.mozSrcObject; - if (revokeObjectURL && typeof source === 'string') { - revokeObjectURL(source); - } - } + video.srcObject = stream; } export function isCapabilityAvailable(video, keyName) { const stream = video.srcObject; @@ -280,9 +241,6 @@ export function isCapabilityAvailable(video, keyName) { } return false; } -function isMediaStreamTrack(input) { - return typeof input.stop === 'function'; -} function convertNormalizedSetting(range, value) { if (!value) { return; diff --git a/packages/expo-camera/build/web/WebCameraUtils.js.map b/packages/expo-camera/build/web/WebCameraUtils.js.map index 2f5cbe102e7f5c..0e39c1d2863db8 100644 --- a/packages/expo-camera/build/web/WebCameraUtils.js.map +++ b/packages/expo-camera/build/web/WebCameraUtils.js.map @@ -1 +1 @@ -{"version":3,"file":"WebCameraUtils.js","sourceRoot":"","sources":["../../src/web/WebCameraUtils.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-env browser */\nimport invariant from 'invariant';\n\nimport * as CapabilityUtils from './WebCapabilityUtils';\nimport { CameraTypeToFacingMode, ImageTypeFormat, MinimumConstraints } from './WebConstants';\nimport { requestUserMediaAsync } from './WebUserMediaManager';\nimport {\n CameraType,\n CameraCapturedPicture,\n ImageSize,\n ImageType,\n WebCameraSettings,\n CameraPictureOptions,\n} from '../Camera.types';\n\ninterface ConstrainLongRange {\n max?: number;\n min?: number;\n exact?: number;\n ideal?: number;\n}\n\nexport function getImageSize(videoWidth: number, videoHeight: number, scale: number): ImageSize {\n const width = videoWidth * scale;\n const ratio = videoWidth / width;\n const height = videoHeight / ratio;\n\n return {\n width,\n height,\n };\n}\n\nexport function toDataURL(\n canvas: HTMLCanvasElement,\n imageType: ImageType,\n quality: number\n): string {\n const types = ['png', 'jpg'];\n invariant(\n types.includes(imageType),\n `expo-camera: ${imageType} is not a valid ImageType. Expected a string from: ${types.join(', ')}`\n );\n\n const format = ImageTypeFormat[imageType];\n if (imageType === 'jpg') {\n invariant(\n quality <= 1 && quality >= 0,\n `expo-camera: ${quality} is not a valid image quality. Expected a number from 0...1`\n );\n return canvas.toDataURL(format, quality);\n } else {\n return canvas.toDataURL(format);\n }\n}\n\nexport function hasValidConstraints(\n preferredCameraType?: CameraType,\n width?: number | ConstrainLongRange,\n height?: number | ConstrainLongRange\n): boolean {\n return preferredCameraType !== undefined && width !== undefined && height !== undefined;\n}\n\nfunction ensureCameraPictureOptions(config: CameraPictureOptions): CameraPictureOptions {\n const captureOptions: CameraPictureOptions = {\n scale: 1,\n imageType: 'png' as ImageType,\n isImageMirror: false,\n };\n for (const key in config) {\n const prop = key as keyof CameraPictureOptions;\n if (prop in config && config[prop] !== undefined && prop in captureOptions) {\n captureOptions[prop] = config[prop] as any;\n }\n }\n return captureOptions;\n}\n\nconst DEFAULT_QUALITY = 0.92;\n\nexport function captureImageData(\n video: HTMLVideoElement | null,\n pictureOptions: Pick = {}\n): ImageData | null {\n if (!video || video.readyState !== video.HAVE_ENOUGH_DATA) {\n return null;\n }\n const canvas = captureImageContext(video, pictureOptions);\n\n const context = canvas.getContext('2d', { alpha: false });\n if (!context || !canvas.width || !canvas.height) {\n return null;\n }\n\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\n return imageData;\n}\n\nexport function captureImageContext(\n video: HTMLVideoElement,\n { scale = 1, isImageMirror = false }: Pick\n): HTMLCanvasElement {\n const { videoWidth, videoHeight } = video;\n const { width, height } = getImageSize(videoWidth, videoHeight, scale!);\n\n // Build the canvas size and draw the camera image to the context from video\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const context = canvas.getContext('2d', { alpha: false });\n\n if (!context) {\n // Should never be called\n throw new Error('Context is not defined');\n }\n // sharp image details\n // context.imageSmoothingEnabled = false;\n\n // Flip horizontally (as css transform: rotateY(180deg))\n if (isImageMirror) {\n context.setTransform(-1, 0, 0, 1, canvas.width, 0);\n }\n\n context.drawImage(video, 0, 0, width, height);\n\n return canvas;\n}\n\nexport function captureImage(\n video: HTMLVideoElement,\n pictureOptions: CameraPictureOptions\n): string {\n const config = ensureCameraPictureOptions(pictureOptions);\n const canvas = captureImageContext(video, config);\n const { imageType, quality = DEFAULT_QUALITY } = config;\n return toDataURL(canvas, imageType!, quality);\n}\n\nfunction getSupportedConstraints(): MediaTrackSupportedConstraints | null {\n if (navigator.mediaDevices && navigator.mediaDevices.getSupportedConstraints) {\n return navigator.mediaDevices.getSupportedConstraints();\n }\n return null;\n}\n\nexport function getIdealConstraints(\n preferredCameraType: CameraType,\n width?: number | ConstrainLongRange,\n height?: number | ConstrainLongRange\n): MediaStreamConstraints {\n const preferredConstraints: MediaStreamConstraints = {\n audio: false,\n video: {},\n };\n\n if (hasValidConstraints(preferredCameraType, width, height)) {\n return MinimumConstraints;\n }\n\n const supports = getSupportedConstraints();\n // TODO(Bacon): Test this\n if (!supports || !supports.facingMode || !supports.width || !supports.height) {\n return MinimumConstraints;\n }\n const types = ['front', 'back'];\n if (preferredCameraType && types.includes(preferredCameraType)) {\n const facingMode = CameraTypeToFacingMode[preferredCameraType];\n if (isWebKit()) {\n const key = facingMode === 'user' ? 'exact' : 'ideal';\n (preferredConstraints.video as MediaTrackConstraints).facingMode = {\n [key]: facingMode,\n };\n } else {\n (preferredConstraints.video as MediaTrackConstraints).facingMode = {\n ideal: CameraTypeToFacingMode[preferredCameraType],\n };\n }\n }\n\n if (isMediaTrackConstraints(preferredConstraints.video)) {\n preferredConstraints.video.width = width;\n preferredConstraints.video.height = height;\n }\n\n return preferredConstraints;\n}\n\nfunction isMediaTrackConstraints(input: any): input is MediaTrackConstraints {\n return input && typeof input.video !== 'boolean';\n}\n\n/**\n * Invoke getStreamDevice a second time with the opposing camera type if the preferred type cannot be retrieved.\n *\n * @param preferredCameraType\n * @param preferredWidth\n * @param preferredHeight\n */\nexport async function getPreferredStreamDevice(\n preferredCameraType: CameraType,\n preferredWidth?: number | ConstrainLongRange,\n preferredHeight?: number | ConstrainLongRange\n): Promise {\n try {\n return await getStreamDevice(preferredCameraType, preferredWidth, preferredHeight);\n } catch (error) {\n // A hack on desktop browsers to ensure any camera is used.\n // eslint-disable-next-line no-undef\n if (error instanceof OverconstrainedError && error.constraint === 'facingMode') {\n const nextCameraType = preferredCameraType === 'back' ? 'front' : 'back';\n return await getStreamDevice(nextCameraType, preferredWidth, preferredHeight);\n }\n throw error;\n }\n}\n\nexport async function getStreamDevice(\n preferredCameraType: CameraType,\n preferredWidth?: number | ConstrainLongRange,\n preferredHeight?: number | ConstrainLongRange\n): Promise {\n const constraints: MediaStreamConstraints = getIdealConstraints(\n preferredCameraType,\n preferredWidth,\n preferredHeight\n );\n const stream: MediaStream = await requestUserMediaAsync(constraints);\n return stream;\n}\n\nexport function isWebKit(): boolean {\n return /WebKit/.test(navigator.userAgent) && !/Edg/.test(navigator.userAgent);\n}\n\nexport function compareStreams(a: MediaStream | null, b: MediaStream | null): boolean {\n if (!a || !b) {\n return false;\n }\n const settingsA = a.getTracks()[0].getSettings();\n const settingsB = b.getTracks()[0].getSettings();\n return settingsA.deviceId === settingsB.deviceId;\n}\n\nexport function capture(\n video: HTMLVideoElement,\n settings: MediaTrackSettings,\n config: CameraPictureOptions\n): CameraCapturedPicture {\n const base64 = captureImage(video, config);\n\n const capturedPicture: CameraCapturedPicture = {\n uri: base64,\n base64,\n width: 0,\n height: 0,\n format: config.imageType ?? 'jpg',\n };\n\n if (settings) {\n const { width = 0, height = 0 } = settings;\n capturedPicture.width = width;\n capturedPicture.height = height;\n capturedPicture.exif = settings;\n }\n\n if (config.onPictureSaved) {\n config.onPictureSaved(capturedPicture);\n }\n return capturedPicture;\n}\n\nexport async function syncTrackCapabilities(\n cameraType: CameraType,\n stream: MediaStream | null,\n settings: WebCameraSettings = {}\n): Promise {\n if (stream?.getVideoTracks) {\n await Promise.all(\n stream.getVideoTracks().map((track) => onCapabilitiesReady(cameraType, track, settings))\n );\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints\nasync function onCapabilitiesReady(\n cameraType: CameraType,\n track: MediaStreamTrack,\n settings: WebCameraSettings = {}\n): Promise {\n if (typeof track.getCapabilities !== 'function') {\n return;\n }\n\n const capabilities = track.getCapabilities();\n\n // Create an empty object because if you set a constraint that isn't available an error will be thrown.\n const constraints: MediaTrackConstraintSet = {};\n\n // TODO(Bacon): Add `pointsOfInterest` support\n const clampedValues = [\n 'exposureCompensation',\n 'colorTemperature',\n 'iso',\n 'brightness',\n 'contrast',\n 'saturation',\n 'sharpness',\n 'focusDistance',\n 'zoom',\n ] as const;\n\n for (const property of clampedValues) {\n if (capabilities[property]) {\n constraints[property] = convertNormalizedSetting(capabilities[property], settings[property]);\n }\n }\n\n function validatedInternalConstrainedValue(\n constraintKey: keyof MediaTrackCapabilities,\n settingsKey: keyof WebCameraSettings,\n converter: (settingValue: any) => IConvertedType\n ) {\n const convertedSetting = converter(settings[settingsKey]);\n return validatedConstrainedValue({\n constraintKey,\n settingsKey,\n convertedSetting,\n capabilities,\n settings,\n cameraType,\n });\n }\n\n if (capabilities.focusMode && settings.autoFocus !== undefined) {\n constraints.focusMode = validatedInternalConstrainedValue(\n 'focusMode',\n 'autoFocus',\n CapabilityUtils.convertAutoFocusJSONToNative\n );\n }\n\n if (capabilities.torch && settings.flashMode !== undefined) {\n constraints.torch = validatedInternalConstrainedValue(\n 'torch',\n 'flashMode',\n CapabilityUtils.convertFlashModeJSONToNative\n );\n }\n\n if (capabilities.whiteBalanceMode && settings.whiteBalance !== undefined) {\n constraints.whiteBalanceMode = validatedInternalConstrainedValue<\n MediaTrackConstraintSet['whiteBalanceMode']\n >('whiteBalanceMode', 'whiteBalance', CapabilityUtils.convertWhiteBalanceJSONToNative);\n }\n\n try {\n await track.applyConstraints({ advanced: [constraints] });\n } catch (error) {\n if (__DEV__) console.warn('Failed to apply constraints', error);\n }\n}\n\nexport function stopMediaStream(stream: MediaStream | null) {\n if (!stream) {\n return;\n }\n if (stream.getAudioTracks) {\n stream.getAudioTracks().forEach((track) => track.stop());\n }\n if (stream.getVideoTracks) {\n stream.getVideoTracks().forEach((track) => track.stop());\n }\n if (isMediaStreamTrack(stream)) {\n stream.stop();\n }\n}\n\nexport function setVideoSource(\n video: HTMLVideoElement,\n stream: MediaStream | MediaSource | Blob | null\n): void {\n const createObjectURL = window.URL.createObjectURL ?? window.webkitURL.createObjectURL;\n\n if (typeof video.srcObject !== 'undefined') {\n video.srcObject = stream;\n } else if (typeof (video as any).mozSrcObject !== 'undefined') {\n (video as any).mozSrcObject = stream;\n } else if (stream && createObjectURL) {\n video.src = createObjectURL(stream as MediaSource | Blob);\n }\n\n if (!stream) {\n const revokeObjectURL = window.URL.revokeObjectURL ?? window.webkitURL.revokeObjectURL;\n const source = video.src ?? video.srcObject ?? (video as any).mozSrcObject;\n if (revokeObjectURL && typeof source === 'string') {\n revokeObjectURL(source);\n }\n }\n}\n\nexport function isCapabilityAvailable(\n video: HTMLVideoElement,\n keyName: keyof MediaTrackCapabilities\n): boolean {\n const stream = video.srcObject;\n\n if (stream instanceof MediaStream) {\n const videoTrack = stream.getVideoTracks()[0];\n return !!videoTrack.getCapabilities?.()?.[keyName];\n }\n\n return false;\n}\n\nfunction isMediaStreamTrack(input: any): input is MediaStreamTrack {\n return typeof input.stop === 'function';\n}\n\nfunction convertNormalizedSetting(range: MediaSettingsRange, value?: number): number | undefined {\n if (!value) {\n return;\n }\n // TODO(@kitten): Handle undefined values / normalize explicitly\n // convert the normalized incoming setting to the native camera zoom range\n const converted = convertRange(value, [range.min!, range.max!]);\n // clamp value so we don't get an error\n return Math.min(range.max!, Math.max(range.min!, converted));\n}\n\nfunction convertRange(value: number, r2: [number, number], r1: [number, number] = [0, 1]): number {\n return ((value - r1[0]) * (r2[1] - r2[0])) / (r1[1] - r1[0]) + r2[0];\n}\n\nfunction validatedConstrainedValue(props: {\n constraintKey: keyof MediaTrackCapabilities;\n settingsKey: keyof WebCameraSettings;\n convertedSetting: T;\n capabilities: MediaTrackCapabilities;\n settings: WebCameraSettings;\n cameraType: string;\n}): T | undefined {\n const { constraintKey, settingsKey, convertedSetting, capabilities, settings, cameraType } =\n props;\n const setting = settings[settingsKey];\n if (\n Array.isArray(capabilities[constraintKey]) &&\n convertedSetting &&\n !capabilities[constraintKey].includes(convertedSetting)\n ) {\n if (__DEV__) {\n // Only warn in dev mode.\n console.warn(\n ` { ${settingsKey}: \"${setting}\" } (converted to \"${convertedSetting}\" in the browser) is not supported for camera type \"${cameraType}\" in your browser. Using the default value instead.`\n );\n }\n return undefined;\n }\n return convertedSetting;\n}\n"]} \ No newline at end of file +{"version":3,"file":"WebCameraUtils.js","sourceRoot":"","sources":["../../src/web/WebCameraUtils.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-env browser */\nimport * as CapabilityUtils from './WebCapabilityUtils';\nimport { CameraTypeToFacingMode, ImageTypeFormat, MinimumConstraints } from './WebConstants';\nimport { requestUserMediaAsync } from './WebUserMediaManager';\nimport {\n CameraType,\n CameraCapturedPicture,\n ImageSize,\n ImageType,\n WebCameraSettings,\n CameraPictureOptions,\n} from '../Camera.types';\n\ninterface ConstrainLongRange {\n max?: number;\n min?: number;\n exact?: number;\n ideal?: number;\n}\n\nexport function getImageSize(videoWidth: number, videoHeight: number, scale: number): ImageSize {\n const width = videoWidth * scale;\n const ratio = videoWidth / width;\n const height = videoHeight / ratio;\n\n return {\n width,\n height,\n };\n}\n\nexport function toDataURL(\n canvas: HTMLCanvasElement,\n imageType: ImageType,\n quality: number\n): string {\n const format = ImageTypeFormat[imageType];\n if (imageType === 'jpg') {\n return canvas.toDataURL(format, quality);\n } else {\n return canvas.toDataURL(format);\n }\n}\n\nexport function hasValidConstraints(\n preferredCameraType?: CameraType,\n width?: number | ConstrainLongRange,\n height?: number | ConstrainLongRange\n): boolean {\n return preferredCameraType !== undefined && width !== undefined && height !== undefined;\n}\n\nfunction ensureCameraPictureOptions(config: CameraPictureOptions): CameraPictureOptions {\n const captureOptions: CameraPictureOptions = {\n scale: 1,\n imageType: 'png' as ImageType,\n isImageMirror: false,\n };\n for (const key in config) {\n const prop = key as keyof CameraPictureOptions;\n if (prop in config && config[prop] !== undefined && prop in captureOptions) {\n captureOptions[prop] = config[prop] as any;\n }\n }\n return captureOptions;\n}\n\nconst DEFAULT_QUALITY = 0.92;\n\nexport function captureImageContext(\n video: HTMLVideoElement,\n { scale = 1, isImageMirror = false }: Pick\n): HTMLCanvasElement {\n const { videoWidth, videoHeight } = video;\n const { width, height } = getImageSize(videoWidth, videoHeight, scale!);\n\n // Build the canvas size and draw the camera image to the context from video\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const context = canvas.getContext('2d', { alpha: false });\n\n if (!context) {\n // Should never be called\n throw new Error('Context is not defined');\n }\n // sharp image details\n // context.imageSmoothingEnabled = false;\n\n // Flip horizontally (as css transform: rotateY(180deg))\n if (isImageMirror) {\n context.setTransform(-1, 0, 0, 1, canvas.width, 0);\n }\n\n context.drawImage(video, 0, 0, width, height);\n\n return canvas;\n}\n\nexport function captureImage(\n video: HTMLVideoElement,\n pictureOptions: CameraPictureOptions\n): string {\n const config = ensureCameraPictureOptions(pictureOptions);\n const canvas = captureImageContext(video, config);\n const { imageType, quality = DEFAULT_QUALITY } = config;\n return toDataURL(canvas, imageType!, quality);\n}\n\nfunction getSupportedConstraints(): MediaTrackSupportedConstraints | null {\n if (navigator.mediaDevices && navigator.mediaDevices.getSupportedConstraints) {\n return navigator.mediaDevices.getSupportedConstraints();\n }\n return null;\n}\n\nexport function getIdealConstraints(\n preferredCameraType: CameraType,\n width?: number | ConstrainLongRange,\n height?: number | ConstrainLongRange\n): MediaStreamConstraints {\n const preferredConstraints: MediaStreamConstraints = {\n audio: false,\n video: {},\n };\n\n if (hasValidConstraints(preferredCameraType, width, height)) {\n return MinimumConstraints;\n }\n\n const supports = getSupportedConstraints();\n // TODO(Bacon): Test this\n if (!supports || !supports.facingMode || !supports.width || !supports.height) {\n return MinimumConstraints;\n }\n const types = ['front', 'back'];\n if (preferredCameraType && types.includes(preferredCameraType)) {\n const facingMode = CameraTypeToFacingMode[preferredCameraType];\n if (isWebKit()) {\n const key = facingMode === 'user' ? 'exact' : 'ideal';\n (preferredConstraints.video as MediaTrackConstraints).facingMode = {\n [key]: facingMode,\n };\n } else {\n (preferredConstraints.video as MediaTrackConstraints).facingMode = {\n ideal: CameraTypeToFacingMode[preferredCameraType],\n };\n }\n }\n\n if (isMediaTrackConstraints(preferredConstraints.video)) {\n preferredConstraints.video.width = width;\n preferredConstraints.video.height = height;\n }\n\n return preferredConstraints;\n}\n\nfunction isMediaTrackConstraints(input: any): input is MediaTrackConstraints {\n return input && typeof input.video !== 'boolean';\n}\n\n/**\n * Invoke getStreamDevice a second time with the opposing camera type if the preferred type cannot be retrieved.\n *\n * @param preferredCameraType\n * @param preferredWidth\n * @param preferredHeight\n */\nexport async function getPreferredStreamDevice(\n preferredCameraType: CameraType,\n preferredWidth?: number | ConstrainLongRange,\n preferredHeight?: number | ConstrainLongRange\n): Promise {\n try {\n return await getStreamDevice(preferredCameraType, preferredWidth, preferredHeight);\n } catch (error) {\n // A hack on desktop browsers to ensure any camera is used.\n // eslint-disable-next-line no-undef\n if (error instanceof OverconstrainedError && error.constraint === 'facingMode') {\n const nextCameraType = preferredCameraType === 'back' ? 'front' : 'back';\n return await getStreamDevice(nextCameraType, preferredWidth, preferredHeight);\n }\n throw error;\n }\n}\n\nexport async function getStreamDevice(\n preferredCameraType: CameraType,\n preferredWidth?: number | ConstrainLongRange,\n preferredHeight?: number | ConstrainLongRange\n): Promise {\n const constraints: MediaStreamConstraints = getIdealConstraints(\n preferredCameraType,\n preferredWidth,\n preferredHeight\n );\n const stream: MediaStream = await requestUserMediaAsync(constraints);\n return stream;\n}\n\nexport function isWebKit(): boolean {\n return /WebKit/.test(navigator.userAgent) && !/Edg/.test(navigator.userAgent);\n}\n\nexport function compareStreams(a: MediaStream | null, b: MediaStream | null): boolean {\n if (!a || !b) {\n return false;\n }\n const settingsA = a.getTracks()[0].getSettings();\n const settingsB = b.getTracks()[0].getSettings();\n return settingsA.deviceId === settingsB.deviceId;\n}\n\nexport function capture(\n video: HTMLVideoElement,\n settings: MediaTrackSettings,\n config: CameraPictureOptions\n): CameraCapturedPicture {\n const base64 = captureImage(video, config);\n\n const capturedPicture: CameraCapturedPicture = {\n uri: base64,\n base64,\n width: 0,\n height: 0,\n format: config.imageType ?? 'jpg',\n };\n\n if (settings) {\n const { width = 0, height = 0 } = settings;\n capturedPicture.width = width;\n capturedPicture.height = height;\n capturedPicture.exif = settings;\n }\n\n if (config.onPictureSaved) {\n config.onPictureSaved(capturedPicture);\n }\n return capturedPicture;\n}\n\nexport async function syncTrackCapabilities(\n cameraType: CameraType,\n stream: MediaStream | null,\n settings: WebCameraSettings = {}\n): Promise {\n if (stream?.getVideoTracks) {\n await Promise.all(\n stream.getVideoTracks().map((track) => onCapabilitiesReady(cameraType, track, settings))\n );\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints\nasync function onCapabilitiesReady(\n cameraType: CameraType,\n track: MediaStreamTrack,\n settings: WebCameraSettings = {}\n): Promise {\n if (typeof track.getCapabilities !== 'function') {\n return;\n }\n\n const capabilities = track.getCapabilities();\n\n // Create an empty object because if you set a constraint that isn't available an error will be thrown.\n const constraints: MediaTrackConstraintSet = {};\n\n // TODO(Bacon): Add `pointsOfInterest` support\n const clampedValues = [\n 'exposureCompensation',\n 'colorTemperature',\n 'iso',\n 'brightness',\n 'contrast',\n 'saturation',\n 'sharpness',\n 'focusDistance',\n 'zoom',\n ] as const;\n\n for (const property of clampedValues) {\n if (capabilities[property]) {\n constraints[property] = convertNormalizedSetting(capabilities[property], settings[property]);\n }\n }\n\n function validatedInternalConstrainedValue(\n constraintKey: keyof MediaTrackCapabilities,\n settingsKey: keyof WebCameraSettings,\n converter: (settingValue: any) => IConvertedType\n ) {\n const convertedSetting = converter(settings[settingsKey]);\n return validatedConstrainedValue({\n constraintKey,\n settingsKey,\n convertedSetting,\n capabilities,\n settings,\n cameraType,\n });\n }\n\n if (capabilities.focusMode && settings.autoFocus !== undefined) {\n constraints.focusMode = validatedInternalConstrainedValue(\n 'focusMode',\n 'autoFocus',\n CapabilityUtils.convertAutoFocusJSONToNative\n );\n }\n\n if (capabilities.torch && settings.flashMode !== undefined) {\n constraints.torch = validatedInternalConstrainedValue(\n 'torch',\n 'flashMode',\n CapabilityUtils.convertFlashModeJSONToNative\n );\n }\n\n if (capabilities.whiteBalanceMode && settings.whiteBalance !== undefined) {\n constraints.whiteBalanceMode = validatedInternalConstrainedValue<\n MediaTrackConstraintSet['whiteBalanceMode']\n >('whiteBalanceMode', 'whiteBalance', CapabilityUtils.convertWhiteBalanceJSONToNative);\n }\n\n try {\n await track.applyConstraints({ advanced: [constraints] });\n } catch (error) {\n if (__DEV__) console.warn('Failed to apply constraints', error);\n }\n}\n\nexport function stopMediaStream(stream: MediaStream | null) {\n if (!stream) {\n return;\n }\n stream.getAudioTracks().forEach((track) => track.stop());\n stream.getVideoTracks().forEach((track) => track.stop());\n}\n\nexport function setVideoSource(video: HTMLVideoElement, stream: MediaStream | null): void {\n video.srcObject = stream;\n}\n\nexport function isCapabilityAvailable(\n video: HTMLVideoElement,\n keyName: keyof MediaTrackCapabilities\n): boolean {\n const stream = video.srcObject;\n\n if (stream instanceof MediaStream) {\n const videoTrack = stream.getVideoTracks()[0];\n return !!videoTrack.getCapabilities?.()?.[keyName];\n }\n\n return false;\n}\n\nfunction convertNormalizedSetting(range: MediaSettingsRange, value?: number): number | undefined {\n if (!value) {\n return;\n }\n // TODO(@kitten): Handle undefined values / normalize explicitly\n // convert the normalized incoming setting to the native camera zoom range\n const converted = convertRange(value, [range.min!, range.max!]);\n // clamp value so we don't get an error\n return Math.min(range.max!, Math.max(range.min!, converted));\n}\n\nfunction convertRange(value: number, r2: [number, number], r1: [number, number] = [0, 1]): number {\n return ((value - r1[0]) * (r2[1] - r2[0])) / (r1[1] - r1[0]) + r2[0];\n}\n\nfunction validatedConstrainedValue(props: {\n constraintKey: keyof MediaTrackCapabilities;\n settingsKey: keyof WebCameraSettings;\n convertedSetting: T;\n capabilities: MediaTrackCapabilities;\n settings: WebCameraSettings;\n cameraType: string;\n}): T | undefined {\n const { constraintKey, settingsKey, convertedSetting, capabilities, settings, cameraType } =\n props;\n const setting = settings[settingsKey];\n if (\n Array.isArray(capabilities[constraintKey]) &&\n convertedSetting &&\n !capabilities[constraintKey].includes(convertedSetting)\n ) {\n if (__DEV__) {\n // Only warn in dev mode.\n console.warn(\n ` { ${settingsKey}: \"${setting}\" } (converted to \"${convertedSetting}\" in the browser) is not supported for camera type \"${cameraType}\" in your browser. Using the default value instead.`\n );\n }\n return undefined;\n }\n return convertedSetting;\n}\n"]} \ No newline at end of file diff --git a/packages/expo-camera/build/web/WebUserMediaManager.d.ts b/packages/expo-camera/build/web/WebUserMediaManager.d.ts index 068d78d35436e4..c9923d29259418 100644 --- a/packages/expo-camera/build/web/WebUserMediaManager.d.ts +++ b/packages/expo-camera/build/web/WebUserMediaManager.d.ts @@ -1,11 +1,8 @@ -export declare const userMediaRequested: boolean; -export declare const mountedInstances: any[]; export declare function requestUserMediaAsync(props: { audio?: any; video?: any; }, isMuted?: boolean): Promise; export declare function getAnyUserMediaAsync(constraints: MediaStreamConstraints, ignoreConstraints?: boolean): Promise; -export declare function getUserMediaAsync(constraints: MediaStreamConstraints): Promise; export declare function canGetUserMedia(): boolean; export declare function isFrontCameraAvailableAsync(devices?: MediaDeviceInfo[]): Promise; export declare function isBackCameraAvailableAsync(devices?: MediaDeviceInfo[]): Promise; diff --git a/packages/expo-camera/build/web/WebUserMediaManager.d.ts.map b/packages/expo-camera/build/web/WebUserMediaManager.d.ts.map index 18a42b187acbbc..d94f7c4f158203 100644 --- a/packages/expo-camera/build/web/WebUserMediaManager.d.ts.map +++ b/packages/expo-camera/build/web/WebUserMediaManager.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"WebUserMediaManager.d.ts","sourceRoot":"","sources":["../../src/web/WebUserMediaManager.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,EAAE,OAAe,CAAC;AAEjD,eAAO,MAAM,gBAAgB,EAAE,GAAG,EAAO,CAAC;AA0E1C,wBAAsB,qBAAqB,CAEzC,KAAK,EAAE;IAAE,KAAK,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,EACnC,OAAO,GAAE,OAAc,GACtB,OAAO,CAAC,WAAW,CAAC,CAQtB;AAED,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,sBAAsB,EACnC,iBAAiB,GAAE,OAAe,GACjC,OAAO,CAAC,WAAW,CAAC,CAgBtB;AAED,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAajG;AAED,wBAAgB,eAAe,IAAI,OAAO,CAczC;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,CAAC,EAAE,eAAe,EAAE,GAC1B,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAExB;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,CAAC,EAAE,eAAe,EAAE,GAC1B,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAExB"} \ No newline at end of file +{"version":3,"file":"WebUserMediaManager.d.ts","sourceRoot":"","sources":["../../src/web/WebUserMediaManager.ts"],"names":[],"mappings":"AAmBA,wBAAsB,qBAAqB,CACzC,KAAK,EAAE;IAAE,KAAK,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,EACnC,OAAO,GAAE,OAAc,GACtB,OAAO,CAAC,WAAW,CAAC,CAEtB;AAED,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,sBAAsB,EACnC,iBAAiB,GAAE,OAAe,GACjC,OAAO,CAAC,WAAW,CAAC,CAgBtB;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,CAAC,EAAE,eAAe,EAAE,GAC1B,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAExB;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,CAAC,EAAE,eAAe,EAAE,GAC1B,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAExB"} \ No newline at end of file diff --git a/packages/expo-camera/build/web/WebUserMediaManager.js b/packages/expo-camera/build/web/WebUserMediaManager.js index 8c84f2c09a28b7..e4ad4fbf6f6812 100644 --- a/packages/expo-camera/build/web/WebUserMediaManager.js +++ b/packages/expo-camera/build/web/WebUserMediaManager.js @@ -1,55 +1,5 @@ /* eslint-env browser */ -/** - * A web-only module for ponyfilling the UserMedia API. - */ import { Platform } from 'expo-modules-core'; -export const userMediaRequested = false; -export const mountedInstances = []; -async function requestLegacyUserMediaAsync( -// TODO(@kitten): Type this properly -props) { - // TODO(@kitten): This is never type checked against DOM types - const optionalSource = (id) => ({ optional: [{ sourceId: id }] }); - const constraintToSourceId = (constraint) => { - const { deviceId } = constraint; - if (typeof deviceId === 'string') { - return deviceId; - } - if (Array.isArray(deviceId)) { - return deviceId[0] ?? null; - } - else if (typeof deviceId === 'object' && deviceId.ideal) { - return deviceId.ideal; - } - return null; - }; - const sources = await new Promise((resolve) => - // @ts-ignore: https://caniuse.com/#search=getSources Chrome for Android (78) & Samsung Internet (10.1) use this - MediaStreamTrack.getSources((sources) => resolve(sources))); - let audioSource = null; - let videoSource = null; - sources.forEach((source) => { - if (source.kind === 'audio') { - audioSource = source.id; - } - else if (source.kind === 'video') { - videoSource = source.id; - } - }); - // NOTE(@kitten): This doesn't seem right. The types that should be used here don't contain `audioConstraints` - // If this is legacy, the type shouldn't have been dropped but marked as `@deprecated`. Alternatively, remove this code path - const audioSourceId = constraintToSourceId(props.audioConstraints); - if (audioSourceId) { - audioSource = audioSourceId; - } - // NOTE(@kitten): This doesn't seem right. The types that should be used here don't contain `videoConstraints` - // If this is legacy, the type shouldn't have been dropped but marked as `@deprecated`. Alternatively, remove this code path - const videoSourceId = constraintToSourceId(props.videoConstraints); - if (videoSourceId) { - videoSource = videoSourceId; - } - return [optionalSource(audioSource), optionalSource(videoSource)]; -} async function sourceSelectedAsync(isMuted, audioConstraints, videoConstraints) { const constraints = { video: typeof videoConstraints !== 'undefined' ? videoConstraints : true, @@ -59,20 +9,12 @@ async function sourceSelectedAsync(isMuted, audioConstraints, videoConstraints) } return await getAnyUserMediaAsync(constraints); } -export async function requestUserMediaAsync( -// TODO(@kitten): Type this properly -props, isMuted = true) { - if (canGetUserMedia()) { - return await sourceSelectedAsync(isMuted, props.audio, props.video); - } - // NOTE(@kitten): This doesn't seem right. The types that should be used here don't contain `videoConstraints` - // If this is legacy, the type shouldn't have been dropped but marked as `@deprecated`. Alternatively, remove this code path - const [audio, video] = await requestLegacyUserMediaAsync(props); - return await sourceSelectedAsync(isMuted, audio, video); +export async function requestUserMediaAsync(props, isMuted = true) { + return await sourceSelectedAsync(isMuted, props.audio, props.video); } export async function getAnyUserMediaAsync(constraints, ignoreConstraints = false) { try { - return await getUserMediaAsync({ + return await navigator.mediaDevices.getUserMedia({ ...constraints, video: ignoreConstraints || constraints.video, }); @@ -86,27 +28,8 @@ export async function getAnyUserMediaAsync(constraints, ignoreConstraints = fals throw error; } } -export async function getUserMediaAsync(constraints) { - if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { - return navigator.mediaDevices.getUserMedia(constraints); - } - const _getUserMedia = navigator['mozGetUserMedia'] || - navigator['webkitGetUserMedia'] || - // @ts-expect-error: TODO(@kitten): Remove / Drop IE support - navigator['msGetUserMedia']; - return new Promise((resolve, reject) => _getUserMedia.call(navigator, constraints, resolve, reject)); -} export function canGetUserMedia() { - // TODO(@kitten): This is misaligned with the implementations in `expo-audio/src/AudioModule.web.ts` and `expo-av` - return ( - // SSR - Platform.isDOMAvailable && - // Has any form of media API - !!((navigator.mediaDevices && navigator.mediaDevices.getUserMedia) || - navigator['mozGetUserMedia'] || - navigator['webkitGetUserMedia'] || - // @ts-expect-error: TODO(@kitten): Remove / Drop IE support - navigator['msGetUserMedia'])); + return Platform.isDOMAvailable && !!navigator.mediaDevices?.getUserMedia; } export async function isFrontCameraAvailableAsync(devices) { return await supportsCameraType(['front', 'user', 'facetime'], 'user', devices); diff --git a/packages/expo-camera/build/web/WebUserMediaManager.js.map b/packages/expo-camera/build/web/WebUserMediaManager.js.map index 6be390396356ba..2df23ec42c1f58 100644 --- a/packages/expo-camera/build/web/WebUserMediaManager.js.map +++ b/packages/expo-camera/build/web/WebUserMediaManager.js.map @@ -1 +1 @@ -{"version":3,"file":"WebUserMediaManager.js","sourceRoot":"","sources":["../../src/web/WebUserMediaManager.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-env browser */\n/**\n * A web-only module for ponyfilling the UserMedia API.\n */\nimport { Platform } from 'expo-modules-core';\n\nexport const userMediaRequested: boolean = false;\n\nexport const mountedInstances: any[] = [];\n\nasync function requestLegacyUserMediaAsync(\n // TODO(@kitten): Type this properly\n props: { audioConstraints?: any; videoConstraints?: any }\n): Promise {\n // TODO(@kitten): This is never type checked against DOM types\n const optionalSource = (id: string | string[] | null) => ({ optional: [{ sourceId: id }] });\n\n const constraintToSourceId = (constraint: MediaTrackConstraintSet) => {\n const { deviceId } = constraint;\n\n if (typeof deviceId === 'string') {\n return deviceId;\n }\n\n if (Array.isArray(deviceId)) {\n return deviceId[0] ?? null;\n } else if (typeof deviceId === 'object' && deviceId.ideal) {\n return deviceId.ideal;\n }\n\n return null;\n };\n\n const sources: any[] = await new Promise((resolve) =>\n // @ts-ignore: https://caniuse.com/#search=getSources Chrome for Android (78) & Samsung Internet (10.1) use this\n MediaStreamTrack.getSources((sources) => resolve(sources))\n );\n\n let audioSource = null;\n let videoSource = null;\n\n sources.forEach((source) => {\n if (source.kind === 'audio') {\n audioSource = source.id;\n } else if (source.kind === 'video') {\n videoSource = source.id;\n }\n });\n\n // NOTE(@kitten): This doesn't seem right. The types that should be used here don't contain `audioConstraints`\n // If this is legacy, the type shouldn't have been dropped but marked as `@deprecated`. Alternatively, remove this code path\n const audioSourceId = constraintToSourceId(props.audioConstraints);\n if (audioSourceId) {\n audioSource = audioSourceId;\n }\n\n // NOTE(@kitten): This doesn't seem right. The types that should be used here don't contain `videoConstraints`\n // If this is legacy, the type shouldn't have been dropped but marked as `@deprecated`. Alternatively, remove this code path\n const videoSourceId = constraintToSourceId(props.videoConstraints);\n if (videoSourceId) {\n videoSource = videoSourceId;\n }\n\n return [optionalSource(audioSource), optionalSource(videoSource)];\n}\n\nasync function sourceSelectedAsync(\n isMuted: boolean,\n audioConstraints?: MediaTrackConstraints | boolean,\n videoConstraints?: MediaTrackConstraints | boolean\n): Promise {\n const constraints: MediaStreamConstraints = {\n video: typeof videoConstraints !== 'undefined' ? videoConstraints : true,\n };\n\n if (!isMuted) {\n constraints.audio = typeof audioConstraints !== 'undefined' ? audioConstraints : true;\n }\n\n return await getAnyUserMediaAsync(constraints);\n}\n\nexport async function requestUserMediaAsync(\n // TODO(@kitten): Type this properly\n props: { audio?: any; video?: any },\n isMuted: boolean = true\n): Promise {\n if (canGetUserMedia()) {\n return await sourceSelectedAsync(isMuted, props.audio, props.video);\n }\n // NOTE(@kitten): This doesn't seem right. The types that should be used here don't contain `videoConstraints`\n // If this is legacy, the type shouldn't have been dropped but marked as `@deprecated`. Alternatively, remove this code path\n const [audio, video] = await requestLegacyUserMediaAsync(props as any);\n return await sourceSelectedAsync(isMuted, audio, video);\n}\n\nexport async function getAnyUserMediaAsync(\n constraints: MediaStreamConstraints,\n ignoreConstraints: boolean = false\n): Promise {\n try {\n return await getUserMediaAsync({\n ...constraints,\n video: ignoreConstraints || constraints.video,\n });\n } catch (error: any) {\n if (\n !ignoreConstraints &&\n typeof error === 'object' &&\n error?.name === 'ConstraintNotSatisfiedError'\n ) {\n return await getAnyUserMediaAsync(constraints, true);\n }\n throw error;\n }\n}\n\nexport async function getUserMediaAsync(constraints: MediaStreamConstraints): Promise {\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n return navigator.mediaDevices.getUserMedia(constraints);\n }\n\n const _getUserMedia =\n navigator['mozGetUserMedia'] ||\n navigator['webkitGetUserMedia'] ||\n // @ts-expect-error: TODO(@kitten): Remove / Drop IE support\n navigator['msGetUserMedia'];\n return new Promise((resolve, reject) =>\n _getUserMedia.call(navigator, constraints, resolve, reject)\n );\n}\n\nexport function canGetUserMedia(): boolean {\n // TODO(@kitten): This is misaligned with the implementations in `expo-audio/src/AudioModule.web.ts` and `expo-av`\n return (\n // SSR\n Platform.isDOMAvailable &&\n // Has any form of media API\n !!(\n (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) ||\n navigator['mozGetUserMedia'] ||\n navigator['webkitGetUserMedia'] ||\n // @ts-expect-error: TODO(@kitten): Remove / Drop IE support\n navigator['msGetUserMedia']\n )\n );\n}\n\nexport async function isFrontCameraAvailableAsync(\n devices?: MediaDeviceInfo[]\n): Promise {\n return await supportsCameraType(['front', 'user', 'facetime'], 'user', devices);\n}\n\nexport async function isBackCameraAvailableAsync(\n devices?: MediaDeviceInfo[]\n): Promise {\n return await supportsCameraType(['back', 'rear'], 'environment', devices);\n}\n\nasync function supportsCameraType(\n labels: string[],\n type: string,\n devices?: MediaDeviceInfo[]\n): Promise {\n if (!devices) {\n if (!navigator.mediaDevices.enumerateDevices) {\n return null;\n }\n devices = await navigator.mediaDevices.enumerateDevices();\n }\n const cameras = devices.filter((t) => t.kind === 'videoinput');\n const [hasCamera] = cameras.filter((camera) =>\n labels.some((label) => camera.label.toLowerCase().includes(label))\n );\n const [isCapable] = cameras.filter((camera) => {\n if (!('getCapabilities' in camera)) {\n return null;\n }\n\n const capabilities = (camera as any).getCapabilities();\n if (!capabilities.facingMode) {\n return null;\n }\n\n return capabilities.facingMode.find((_: string) => type);\n });\n\n return isCapable?.deviceId || hasCamera?.deviceId || null;\n}\n"]} \ No newline at end of file +{"version":3,"file":"WebUserMediaManager.js","sourceRoot":"","sources":["../../src/web/WebUserMediaManager.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-env browser */\nimport { Platform } from 'expo-modules-core';\n\nasync function sourceSelectedAsync(\n isMuted: boolean,\n audioConstraints?: MediaTrackConstraints | boolean,\n videoConstraints?: MediaTrackConstraints | boolean\n): Promise {\n const constraints: MediaStreamConstraints = {\n video: typeof videoConstraints !== 'undefined' ? videoConstraints : true,\n };\n\n if (!isMuted) {\n constraints.audio = typeof audioConstraints !== 'undefined' ? audioConstraints : true;\n }\n\n return await getAnyUserMediaAsync(constraints);\n}\n\nexport async function requestUserMediaAsync(\n props: { audio?: any; video?: any },\n isMuted: boolean = true\n): Promise {\n return await sourceSelectedAsync(isMuted, props.audio, props.video);\n}\n\nexport async function getAnyUserMediaAsync(\n constraints: MediaStreamConstraints,\n ignoreConstraints: boolean = false\n): Promise {\n try {\n return await navigator.mediaDevices.getUserMedia({\n ...constraints,\n video: ignoreConstraints || constraints.video,\n });\n } catch (error: any) {\n if (\n !ignoreConstraints &&\n typeof error === 'object' &&\n error?.name === 'ConstraintNotSatisfiedError'\n ) {\n return await getAnyUserMediaAsync(constraints, true);\n }\n throw error;\n }\n}\n\nexport function canGetUserMedia(): boolean {\n return Platform.isDOMAvailable && !!navigator.mediaDevices?.getUserMedia;\n}\n\nexport async function isFrontCameraAvailableAsync(\n devices?: MediaDeviceInfo[]\n): Promise {\n return await supportsCameraType(['front', 'user', 'facetime'], 'user', devices);\n}\n\nexport async function isBackCameraAvailableAsync(\n devices?: MediaDeviceInfo[]\n): Promise {\n return await supportsCameraType(['back', 'rear'], 'environment', devices);\n}\n\nasync function supportsCameraType(\n labels: string[],\n type: string,\n devices?: MediaDeviceInfo[]\n): Promise {\n if (!devices) {\n if (!navigator.mediaDevices.enumerateDevices) {\n return null;\n }\n devices = await navigator.mediaDevices.enumerateDevices();\n }\n const cameras = devices.filter((t) => t.kind === 'videoinput');\n const [hasCamera] = cameras.filter((camera) =>\n labels.some((label) => camera.label.toLowerCase().includes(label))\n );\n const [isCapable] = cameras.filter((camera) => {\n if (!('getCapabilities' in camera)) {\n return null;\n }\n\n const capabilities = (camera as any).getCapabilities();\n if (!capabilities.facingMode) {\n return null;\n }\n\n return capabilities.facingMode.find((_: string) => type);\n });\n\n return isCapable?.deviceId || hasCamera?.deviceId || null;\n}\n"]} \ No newline at end of file diff --git a/packages/expo-camera/build/web/useWebBarcodeScanner.d.ts b/packages/expo-camera/build/web/useWebBarcodeScanner.d.ts new file mode 100644 index 00000000000000..bfeec0b72bde78 --- /dev/null +++ b/packages/expo-camera/build/web/useWebBarcodeScanner.d.ts @@ -0,0 +1,13 @@ +import * as React from 'react'; +import { BarcodeType, BarcodeScanningResult, MountErrorListener } from '../Camera.types'; +export declare function useWebBarcodeScanner(video: React.RefObject, { isEnabled, barcodeTypes, interval, isMirrored, onScanned, onError, }: { + isEnabled: boolean; + barcodeTypes: BarcodeType[]; + interval?: number; + isMirrored?: boolean; + onScanned?: (scanningResult: { + nativeEvent: BarcodeScanningResult; + }) => void; + onError?: MountErrorListener; +}): void; +//# sourceMappingURL=useWebBarcodeScanner.d.ts.map \ No newline at end of file diff --git a/packages/expo-camera/build/web/useWebBarcodeScanner.d.ts.map b/packages/expo-camera/build/web/useWebBarcodeScanner.d.ts.map new file mode 100644 index 00000000000000..468cbcd1c9b397 --- /dev/null +++ b/packages/expo-camera/build/web/useWebBarcodeScanner.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useWebBarcodeScanner.d.ts","sourceRoot":"","sources":["../../src/web/useWebBarcodeScanner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAoCzF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAC/C,EACE,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,UAAkB,EAClB,SAAS,EACT,OAAO,GACR,EAAE;IACD,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,cAAc,EAAE;QAAE,WAAW,EAAE,qBAAqB,CAAA;KAAE,KAAK,IAAI,CAAC;IAC7E,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,QAwEF"} \ No newline at end of file diff --git a/packages/expo-camera/build/web/useWebBarcodeScanner.js b/packages/expo-camera/build/web/useWebBarcodeScanner.js new file mode 100644 index 00000000000000..75bb232cad6bc8 --- /dev/null +++ b/packages/expo-camera/build/web/useWebBarcodeScanner.js @@ -0,0 +1,84 @@ +import * as React from 'react'; +import * as WebBarcodeScanner from './WebBarcodeScanner'; +function mapToViewCoordinates(result, videoWidth, viewHeight, height, width, isMirrored) { + const scaleX = width / videoWidth; + const scaleY = viewHeight / height; + const mapPoint = (p) => { + const x = isMirrored ? width - p.x * scaleX : p.x * scaleX; + const y = p.y * scaleY; + return { x, y }; + }; + const origin = mapPoint(result.bounds.origin); + const size = { + width: result.bounds.size.width * scaleX, + height: result.bounds.size.height * scaleY, + }; + if (isMirrored) { + origin.x -= size.width; + } + return { + ...result, + bounds: { origin, size }, + cornerPoints: result.cornerPoints.map(mapPoint), + }; +} +export function useWebBarcodeScanner(video, { isEnabled, barcodeTypes, interval, isMirrored = false, onScanned, onError, }) { + const isRunning = React.useRef(false); + const timeout = React.useRef(undefined); + async function scanAsync() { + if (!isRunning.current || !onScanned) { + stop(); + return; + } + try { + const videoEl = video.current; + if (!videoEl || videoEl.readyState !== videoEl.HAVE_ENOUGH_DATA) { + return; + } + const { videoWidth, videoHeight } = videoEl; + if (!videoWidth || !videoHeight) { + return; + } + const bitmap = await createImageBitmap(videoEl); + const results = await WebBarcodeScanner.detect(bitmap, barcodeTypes); + bitmap.close(); + const viewWidth = videoEl.clientWidth || videoWidth; + const viewHeight = videoEl.clientHeight || videoHeight; + for (const raw of results) { + const nativeEvent = mapToViewCoordinates(raw, videoWidth, videoHeight, viewWidth, viewHeight, isMirrored); + onScanned({ nativeEvent }); + } + } + catch (error) { + if (onError) { + onError({ nativeEvent: error }); + } + } + finally { + if (interval === 0) { + stop(); + return; + } + const intervalToUse = !interval || interval < 0 ? 16 : interval; + timeout.current = setTimeout(() => { + scanAsync(); + }, intervalToUse); + } + } + function stop() { + isRunning.current = false; + clearTimeout(timeout.current); + } + React.useEffect(() => { + if (isEnabled) { + isRunning.current = true; + scanAsync(); + } + return () => { + if (isEnabled) { + stop(); + } + }; + }, [isEnabled]); +} +//# sourceMappingURL=useWebBarcodeScanner.js.map \ No newline at end of file diff --git a/packages/expo-camera/build/web/useWebBarcodeScanner.js.map b/packages/expo-camera/build/web/useWebBarcodeScanner.js.map new file mode 100644 index 00000000000000..302722810762a0 --- /dev/null +++ b/packages/expo-camera/build/web/useWebBarcodeScanner.js.map @@ -0,0 +1 @@ +{"version":3,"file":"useWebBarcodeScanner.js","sourceRoot":"","sources":["../../src/web/useWebBarcodeScanner.ts"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport * as WebBarcodeScanner from './WebBarcodeScanner';\nimport { BarcodeType, BarcodeScanningResult, MountErrorListener } from '../Camera.types';\n\nfunction mapToViewCoordinates(\n result: BarcodeScanningResult,\n videoWidth: number,\n viewHeight: number,\n height: number,\n width: number,\n isMirrored: boolean\n): BarcodeScanningResult {\n const scaleX = width / videoWidth;\n const scaleY = viewHeight / height;\n\n const mapPoint = (p: { x: number; y: number }) => {\n const x = isMirrored ? width - p.x * scaleX : p.x * scaleX;\n const y = p.y * scaleY;\n return { x, y };\n };\n\n const origin = mapPoint(result.bounds.origin);\n const size = {\n width: result.bounds.size.width * scaleX,\n height: result.bounds.size.height * scaleY,\n };\n\n if (isMirrored) {\n origin.x -= size.width;\n }\n\n return {\n ...result,\n bounds: { origin, size },\n cornerPoints: result.cornerPoints.map(mapPoint),\n };\n}\n\nexport function useWebBarcodeScanner(\n video: React.RefObject,\n {\n isEnabled,\n barcodeTypes,\n interval,\n isMirrored = false,\n onScanned,\n onError,\n }: {\n isEnabled: boolean;\n barcodeTypes: BarcodeType[];\n interval?: number;\n isMirrored?: boolean;\n onScanned?: (scanningResult: { nativeEvent: BarcodeScanningResult }) => void;\n onError?: MountErrorListener;\n }\n) {\n const isRunning = React.useRef(false);\n const timeout = React.useRef | undefined>(undefined);\n\n async function scanAsync() {\n if (!isRunning.current || !onScanned) {\n stop();\n return;\n }\n try {\n const videoEl = video.current;\n if (!videoEl || videoEl.readyState !== videoEl.HAVE_ENOUGH_DATA) {\n return;\n }\n\n const { videoWidth, videoHeight } = videoEl;\n if (!videoWidth || !videoHeight) {\n return;\n }\n\n const bitmap = await createImageBitmap(videoEl);\n const results = await WebBarcodeScanner.detect(bitmap, barcodeTypes);\n bitmap.close();\n\n const viewWidth = videoEl.clientWidth || videoWidth;\n const viewHeight = videoEl.clientHeight || videoHeight;\n\n for (const raw of results) {\n const nativeEvent = mapToViewCoordinates(\n raw,\n videoWidth,\n videoHeight,\n viewWidth,\n viewHeight,\n isMirrored\n );\n onScanned({ nativeEvent });\n }\n } catch (error: any) {\n if (onError) {\n onError({ nativeEvent: error });\n }\n } finally {\n if (interval === 0) {\n stop();\n return;\n }\n const intervalToUse = !interval || interval < 0 ? 16 : interval;\n timeout.current = setTimeout(() => {\n scanAsync();\n }, intervalToUse);\n }\n }\n\n function stop() {\n isRunning.current = false;\n clearTimeout(timeout.current);\n }\n\n React.useEffect(() => {\n if (isEnabled) {\n isRunning.current = true;\n scanAsync();\n }\n\n return () => {\n if (isEnabled) {\n stop();\n }\n };\n }, [isEnabled]);\n}\n"]} \ No newline at end of file diff --git a/packages/expo-camera/build/web/useWebCameraStream.js b/packages/expo-camera/build/web/useWebCameraStream.js index e32f1177439105..7927fc3a783a6f 100644 --- a/packages/expo-camera/build/web/useWebCameraStream.js +++ b/packages/expo-camera/build/web/useWebCameraStream.js @@ -37,7 +37,7 @@ export function useWebCameraStream(video, preferredType, settings, { onCameraRea autoFocus: 'continuous', flashMode: 'off', whiteBalance: 'continuous', - zoom: 1, + zoom: 0, }); const [stream, setStream] = React.useState(null); const mediaTrackSettings = React.useMemo(() => { diff --git a/packages/expo-camera/build/web/useWebCameraStream.js.map b/packages/expo-camera/build/web/useWebCameraStream.js.map index d2d2f4a4f36f6c..bda14955790f65 100644 --- a/packages/expo-camera/build/web/useWebCameraStream.js.map +++ b/packages/expo-camera/build/web/useWebCameraStream.js.map @@ -1 +1 @@ -{"version":3,"file":"useWebCameraStream.js","sourceRoot":"","sources":["../../src/web/useWebCameraStream.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-env browser */\nimport * as React from 'react';\n\nimport * as Utils from './WebCameraUtils';\nimport { FacingModeToCameraType } from './WebConstants';\nimport {\n CameraReadyListener,\n CameraType,\n MountErrorListener,\n WebCameraSettings,\n} from '../Camera.types';\n\nconst VALID_SETTINGS_KEYS = [\n 'autoFocus',\n 'flashMode',\n 'exposureCompensation',\n 'colorTemperature',\n 'iso',\n 'brightness',\n 'contrast',\n 'saturation',\n 'sharpness',\n 'focusDistance',\n 'whiteBalance',\n 'zoom',\n] as const;\n\nfunction useLoadedVideo(video: HTMLVideoElement | null, onLoaded: () => void) {\n React.useEffect(() => {\n if (video) {\n video.addEventListener('loadedmetadata', () => {\n // without this async block the constraints aren't properly applied to the camera,\n // this means that if you were to turn on the torch and swap to the front camera,\n // then swap back to the rear camera the torch setting wouldn't be applied.\n requestAnimationFrame(() => {\n onLoaded();\n });\n });\n }\n }, [video]);\n}\n\nexport function useWebCameraStream(\n video: React.MutableRefObject,\n preferredType: CameraType,\n settings: Record,\n {\n onCameraReady,\n onMountError,\n }: { onCameraReady?: CameraReadyListener; onMountError?: MountErrorListener }\n): {\n type: CameraType | null;\n mediaTrackSettings: MediaTrackSettings | null;\n} {\n const isStartingCamera = React.useRef(false);\n const activeStreams = React.useRef([]);\n const capabilities = React.useRef({\n autoFocus: 'continuous',\n flashMode: 'off',\n whiteBalance: 'continuous',\n zoom: 1,\n });\n const [stream, setStream] = React.useState(null);\n\n const mediaTrackSettings = React.useMemo(() => {\n return stream ? stream.getTracks()[0].getSettings() : null;\n }, [stream]);\n\n // The actual camera type - this can be different from the incoming camera type.\n const type = React.useMemo(() => {\n if (!mediaTrackSettings) {\n return null;\n }\n // On desktop no value will be returned, in this case we should assume the cameraType is 'front'\n const { facingMode = 'user' } = mediaTrackSettings;\n return FacingModeToCameraType[facingMode];\n }, [mediaTrackSettings]);\n\n const getStreamDeviceAsync = React.useCallback(async (): Promise => {\n try {\n return await Utils.getPreferredStreamDevice(preferredType);\n } catch (nativeEvent: any) {\n if (__DEV__) {\n console.warn(`Error requesting UserMedia for type \"${preferredType}\":`, nativeEvent);\n }\n if (onMountError) {\n onMountError({ nativeEvent });\n }\n return null;\n }\n }, [preferredType, onMountError]);\n\n const resumeAsync = React.useCallback(async (): Promise => {\n const nextStream = await getStreamDeviceAsync();\n if (Utils.compareStreams(nextStream, stream)) {\n // Do nothing if the streams are the same.\n // This happens when the device only supports one camera (i.e. desktop) and the mode was toggled between front/back while already active.\n // Without this check there is a screen flash while the video switches.\n return false;\n }\n\n // Save a history of all active streams (usually 2+) so we can close them later.\n // Keeping them open makes swapping camera types much faster.\n if (!activeStreams.current.some((value) => value.id === nextStream?.id)) {\n activeStreams.current.push(nextStream!);\n }\n\n // Set the new stream -> update the video, settings, and actual camera type.\n setStream(nextStream);\n if (onCameraReady) {\n onCameraReady();\n }\n return false;\n }, [getStreamDeviceAsync, setStream, onCameraReady, stream, activeStreams.current]);\n\n React.useEffect(() => {\n // Restart the camera and guard concurrent actions.\n if (isStartingCamera.current) {\n return;\n }\n isStartingCamera.current = true;\n\n resumeAsync()\n .then((isStarting) => {\n isStartingCamera.current = isStarting;\n })\n .catch(() => {\n // ensure the camera can be started again.\n isStartingCamera.current = false;\n });\n }, [preferredType]);\n\n // Update the native camera with any custom capabilities.\n React.useEffect(() => {\n const changes: WebCameraSettings = {};\n\n for (const key of VALID_SETTINGS_KEYS) {\n if (key in settings) {\n const nextValue = settings[key];\n if (nextValue !== capabilities.current[key]) {\n changes[key] = nextValue;\n }\n }\n }\n\n // Only update the native camera if changes were found\n const hasChanges = !!Object.keys(changes).length;\n\n const nextWebCameraSettings = { ...capabilities.current, ...changes };\n if (hasChanges) {\n Utils.syncTrackCapabilities(preferredType, stream, changes);\n }\n\n capabilities.current = nextWebCameraSettings;\n }, [\n settings.autoFocus,\n settings.flashMode,\n settings.exposureCompensation,\n settings.colorTemperature,\n settings.iso,\n settings.brightness,\n settings.contrast,\n settings.saturation,\n settings.sharpness,\n settings.focusDistance,\n settings.whiteBalance,\n settings.zoom,\n ]);\n\n React.useEffect(() => {\n // set or unset the video source.\n if (!video.current) {\n return;\n }\n Utils.setVideoSource(video.current, stream);\n }, [video.current, stream]);\n\n React.useEffect(() => {\n return () => {\n // Clean up on dismount, this is important for making sure the camera light goes off when the component is removed.\n for (const stream of activeStreams.current) {\n // Close all open streams.\n Utils.stopMediaStream(stream);\n }\n if (video.current) {\n // Invalidate the video source.\n Utils.setVideoSource(video.current, stream);\n }\n };\n }, []);\n\n // Update props when the video loads.\n useLoadedVideo(video.current, () => {\n Utils.syncTrackCapabilities(preferredType, stream, capabilities.current);\n });\n\n return {\n type,\n mediaTrackSettings,\n };\n}\n"]} \ No newline at end of file +{"version":3,"file":"useWebCameraStream.js","sourceRoot":"","sources":["../../src/web/useWebCameraStream.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-env browser */\nimport * as React from 'react';\n\nimport * as Utils from './WebCameraUtils';\nimport { FacingModeToCameraType } from './WebConstants';\nimport {\n CameraReadyListener,\n CameraType,\n MountErrorListener,\n WebCameraSettings,\n} from '../Camera.types';\n\nconst VALID_SETTINGS_KEYS = [\n 'autoFocus',\n 'flashMode',\n 'exposureCompensation',\n 'colorTemperature',\n 'iso',\n 'brightness',\n 'contrast',\n 'saturation',\n 'sharpness',\n 'focusDistance',\n 'whiteBalance',\n 'zoom',\n] as const;\n\nfunction useLoadedVideo(video: HTMLVideoElement | null, onLoaded: () => void) {\n React.useEffect(() => {\n if (video) {\n video.addEventListener('loadedmetadata', () => {\n // without this async block the constraints aren't properly applied to the camera,\n // this means that if you were to turn on the torch and swap to the front camera,\n // then swap back to the rear camera the torch setting wouldn't be applied.\n requestAnimationFrame(() => {\n onLoaded();\n });\n });\n }\n }, [video]);\n}\n\nexport function useWebCameraStream(\n video: React.MutableRefObject,\n preferredType: CameraType,\n settings: Record,\n {\n onCameraReady,\n onMountError,\n }: { onCameraReady?: CameraReadyListener; onMountError?: MountErrorListener }\n): {\n type: CameraType | null;\n mediaTrackSettings: MediaTrackSettings | null;\n} {\n const isStartingCamera = React.useRef(false);\n const activeStreams = React.useRef([]);\n const capabilities = React.useRef({\n autoFocus: 'continuous',\n flashMode: 'off',\n whiteBalance: 'continuous',\n zoom: 0,\n });\n const [stream, setStream] = React.useState(null);\n\n const mediaTrackSettings = React.useMemo(() => {\n return stream ? stream.getTracks()[0].getSettings() : null;\n }, [stream]);\n\n // The actual camera type - this can be different from the incoming camera type.\n const type = React.useMemo(() => {\n if (!mediaTrackSettings) {\n return null;\n }\n // On desktop no value will be returned, in this case we should assume the cameraType is 'front'\n const { facingMode = 'user' } = mediaTrackSettings;\n return FacingModeToCameraType[facingMode];\n }, [mediaTrackSettings]);\n\n const getStreamDeviceAsync = React.useCallback(async (): Promise => {\n try {\n return await Utils.getPreferredStreamDevice(preferredType);\n } catch (nativeEvent: any) {\n if (__DEV__) {\n console.warn(`Error requesting UserMedia for type \"${preferredType}\":`, nativeEvent);\n }\n if (onMountError) {\n onMountError({ nativeEvent });\n }\n return null;\n }\n }, [preferredType, onMountError]);\n\n const resumeAsync = React.useCallback(async (): Promise => {\n const nextStream = await getStreamDeviceAsync();\n if (Utils.compareStreams(nextStream, stream)) {\n // Do nothing if the streams are the same.\n // This happens when the device only supports one camera (i.e. desktop) and the mode was toggled between front/back while already active.\n // Without this check there is a screen flash while the video switches.\n return false;\n }\n\n // Save a history of all active streams (usually 2+) so we can close them later.\n // Keeping them open makes swapping camera types much faster.\n if (!activeStreams.current.some((value) => value.id === nextStream?.id)) {\n activeStreams.current.push(nextStream!);\n }\n\n // Set the new stream -> update the video, settings, and actual camera type.\n setStream(nextStream);\n if (onCameraReady) {\n onCameraReady();\n }\n return false;\n }, [getStreamDeviceAsync, setStream, onCameraReady, stream, activeStreams.current]);\n\n React.useEffect(() => {\n // Restart the camera and guard concurrent actions.\n if (isStartingCamera.current) {\n return;\n }\n isStartingCamera.current = true;\n\n resumeAsync()\n .then((isStarting) => {\n isStartingCamera.current = isStarting;\n })\n .catch(() => {\n // ensure the camera can be started again.\n isStartingCamera.current = false;\n });\n }, [preferredType]);\n\n // Update the native camera with any custom capabilities.\n React.useEffect(() => {\n const changes: WebCameraSettings = {};\n\n for (const key of VALID_SETTINGS_KEYS) {\n if (key in settings) {\n const nextValue = settings[key];\n if (nextValue !== capabilities.current[key]) {\n changes[key] = nextValue;\n }\n }\n }\n\n // Only update the native camera if changes were found\n const hasChanges = !!Object.keys(changes).length;\n\n const nextWebCameraSettings = { ...capabilities.current, ...changes };\n if (hasChanges) {\n Utils.syncTrackCapabilities(preferredType, stream, changes);\n }\n\n capabilities.current = nextWebCameraSettings;\n }, [\n settings.autoFocus,\n settings.flashMode,\n settings.exposureCompensation,\n settings.colorTemperature,\n settings.iso,\n settings.brightness,\n settings.contrast,\n settings.saturation,\n settings.sharpness,\n settings.focusDistance,\n settings.whiteBalance,\n settings.zoom,\n ]);\n\n React.useEffect(() => {\n // set or unset the video source.\n if (!video.current) {\n return;\n }\n Utils.setVideoSource(video.current, stream);\n }, [video.current, stream]);\n\n React.useEffect(() => {\n return () => {\n // Clean up on dismount, this is important for making sure the camera light goes off when the component is removed.\n for (const stream of activeStreams.current) {\n // Close all open streams.\n Utils.stopMediaStream(stream);\n }\n if (video.current) {\n // Invalidate the video source.\n Utils.setVideoSource(video.current, stream);\n }\n };\n }, []);\n\n // Update props when the video loads.\n useLoadedVideo(video.current, () => {\n Utils.syncTrackCapabilities(preferredType, stream, capabilities.current);\n });\n\n return {\n type,\n mediaTrackSettings,\n };\n}\n"]} \ No newline at end of file diff --git a/packages/expo-camera/build/web/useWebQRScanner.d.ts b/packages/expo-camera/build/web/useWebQRScanner.d.ts deleted file mode 100644 index 18a948801c31b9..00000000000000 --- a/packages/expo-camera/build/web/useWebQRScanner.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import * as React from 'react'; -import { BarcodeScanningResult, CameraPictureOptions, MountErrorListener } from '../Camera.types'; -export declare function useWebQRScanner(video: React.MutableRefObject, { isEnabled, captureOptions, interval, onScanned, onError, }: { - isEnabled: boolean; - captureOptions: Pick; - interval?: number; - onScanned?: (scanningResult: { - nativeEvent: BarcodeScanningResult; - }) => void; - onError?: MountErrorListener; -}): void; -//# sourceMappingURL=useWebQRScanner.d.ts.map \ No newline at end of file diff --git a/packages/expo-camera/build/web/useWebQRScanner.d.ts.map b/packages/expo-camera/build/web/useWebQRScanner.d.ts.map deleted file mode 100644 index 603e649e893102..00000000000000 --- a/packages/expo-camera/build/web/useWebQRScanner.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"useWebQRScanner.d.ts","sourceRoot":"","sources":["../../src/web/useWebQRScanner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AA6ElG,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,IAAI,CAAC,EACtD,EACE,SAAS,EACT,cAAc,EACd,QAAQ,EACR,SAAS,EACT,OAAO,GACR,EAAE;IACD,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,eAAe,CAAC,CAAC;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,CAAC,cAAc,EAAE;QAAE,WAAW,EAAE,qBAAqB,CAAA;KAAE,KAAK,IAAI,CAAC;IAC7E,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,QAyDF"} \ No newline at end of file diff --git a/packages/expo-camera/build/web/useWebQRScanner.js b/packages/expo-camera/build/web/useWebQRScanner.js deleted file mode 100644 index ae13c400a850c9..00000000000000 --- a/packages/expo-camera/build/web/useWebQRScanner.js +++ /dev/null @@ -1,119 +0,0 @@ -import * as React from 'react'; -import { captureImageData } from './WebCameraUtils'; -const qrWorkerMethod = ({ data, width, height }) => { - // eslint-disable-next-line no-undef - const decoded = self.jsQR(data, width, height, { - inversionAttempts: 'attemptBoth', - }); - let parsed; - try { - parsed = JSON.parse(decoded); - } - catch { - parsed = decoded; - } - if (parsed?.data) { - const nativeEvent = { - type: 'qr', - data: parsed.data, - cornerPoints: [], - bounds: { origin: { x: 0, y: 0 }, size: { width: 0, height: 0 } }, - }; - if (parsed.location) { - nativeEvent.cornerPoints = [ - parsed.location.topLeftCorner, - parsed.location.bottomLeftCorner, - parsed.location.topRightCorner, - parsed.location.bottomRightCorner, - ]; - } - return nativeEvent; - } - return parsed; -}; -const createWorkerAsyncFunction = (fn, deps) => { - if (typeof window === 'undefined') { - return async () => { - throw new Error('Cannot use createWorkerAsyncFunction in a non-browser environment'); - }; - } - const stringifiedFn = [ - `self.func = ${fn.toString()};`, - 'self.onmessage = (e) => {', - ' const result = self.func(e.data);', - ' self.postMessage(result);', - '};', - ]; - if (deps.length > 0) { - stringifiedFn.unshift(`importScripts(${deps.map((dep) => `'${dep}'`).join(', ')});`); - } - const blob = new Blob(stringifiedFn, { type: 'text/javascript' }); - const worker = new Worker(URL.createObjectURL(blob)); - // First-In First-Out queue of promises - const promises = []; - worker.onmessage = (e) => promises.shift()?.resolve(e.data); - return (data) => { - return new Promise((resolve, reject) => { - promises.push({ resolve, reject }); - worker.postMessage(data); - }); - }; -}; -const decode = createWorkerAsyncFunction(qrWorkerMethod, [ - 'https://cdn.jsdelivr.net/npm/jsqr@1.2.0/dist/jsQR.min.js', -]); -export function useWebQRScanner(video, { isEnabled, captureOptions, interval, onScanned, onError, }) { - const isRunning = React.useRef(false); - const timeout = React.useRef(undefined); - async function scanAsync() { - // If interval is 0 then only scan once. - if (!isRunning.current || !onScanned) { - stop(); - return; - } - try { - const data = captureImageData(video.current, captureOptions); - if (data) { - const nativeEvent = await decode(data); - if (nativeEvent?.data) { - onScanned({ - nativeEvent, - }); - } - } - } - catch (error) { - if (onError) { - onError({ nativeEvent: error }); - } - } - finally { - // If interval is 0 then only scan once. - if (interval === 0) { - stop(); - return; - } - const intervalToUse = !interval || interval < 0 ? 16 : interval; - // @ts-ignore: Type 'Timeout' is not assignable to type 'number' - timeout.current = setTimeout(() => { - scanAsync(); - }, intervalToUse); - } - } - function stop() { - isRunning.current = false; - clearTimeout(timeout.current); - } - React.useEffect(() => { - if (isEnabled) { - isRunning.current = true; - scanAsync(); - } - return () => { - if (isEnabled) { - stop(); - } - }; - }, [isEnabled]); -} -//# sourceMappingURL=useWebQRScanner.js.map \ No newline at end of file diff --git a/packages/expo-camera/build/web/useWebQRScanner.js.map b/packages/expo-camera/build/web/useWebQRScanner.js.map deleted file mode 100644 index f04c532eefa8ec..00000000000000 --- a/packages/expo-camera/build/web/useWebQRScanner.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"useWebQRScanner.js","sourceRoot":"","sources":["../../src/web/useWebQRScanner.ts"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport { captureImageData } from './WebCameraUtils';\nimport { BarcodeScanningResult, CameraPictureOptions, MountErrorListener } from '../Camera.types';\n\nconst qrWorkerMethod = ({ data, width, height }: ImageData): any => {\n // eslint-disable-next-line no-undef\n const decoded = (self as any).jsQR(data, width, height, {\n inversionAttempts: 'attemptBoth',\n });\n\n let parsed;\n try {\n parsed = JSON.parse(decoded);\n } catch {\n parsed = decoded;\n }\n\n if (parsed?.data) {\n const nativeEvent: BarcodeScanningResult = {\n type: 'qr',\n data: parsed.data,\n cornerPoints: [],\n bounds: { origin: { x: 0, y: 0 }, size: { width: 0, height: 0 } },\n };\n if (parsed.location) {\n nativeEvent.cornerPoints = [\n parsed.location.topLeftCorner,\n parsed.location.bottomLeftCorner,\n parsed.location.topRightCorner,\n parsed.location.bottomRightCorner,\n ];\n }\n return nativeEvent;\n }\n return parsed;\n};\n\nconst createWorkerAsyncFunction = any>(fn: T, deps: string[]) => {\n if (typeof window === 'undefined') {\n return async () => {\n throw new Error('Cannot use createWorkerAsyncFunction in a non-browser environment');\n };\n }\n\n const stringifiedFn = [\n `self.func = ${fn.toString()};`,\n 'self.onmessage = (e) => {',\n ' const result = self.func(e.data);',\n ' self.postMessage(result);',\n '};',\n ];\n\n if (deps.length > 0) {\n stringifiedFn.unshift(`importScripts(${deps.map((dep) => `'${dep}'`).join(', ')});`);\n }\n\n const blob = new Blob(stringifiedFn, { type: 'text/javascript' });\n const worker = new Worker(URL.createObjectURL(blob));\n\n // First-In First-Out queue of promises\n const promises: {\n resolve: (value: ReturnType) => void;\n reject: (reason?: any) => void;\n }[] = [];\n\n worker.onmessage = (e) => promises.shift()?.resolve(e.data);\n\n return (data: Parameters[0]) => {\n return new Promise>((resolve, reject) => {\n promises.push({ resolve, reject });\n worker.postMessage(data);\n });\n };\n};\n\nconst decode = createWorkerAsyncFunction(qrWorkerMethod, [\n 'https://cdn.jsdelivr.net/npm/jsqr@1.2.0/dist/jsQR.min.js',\n]);\n\nexport function useWebQRScanner(\n video: React.MutableRefObject,\n {\n isEnabled,\n captureOptions,\n interval,\n onScanned,\n onError,\n }: {\n isEnabled: boolean;\n captureOptions: Pick;\n interval?: number;\n onScanned?: (scanningResult: { nativeEvent: BarcodeScanningResult }) => void;\n onError?: MountErrorListener;\n }\n) {\n const isRunning = React.useRef(false);\n const timeout = React.useRef(undefined);\n\n async function scanAsync() {\n // If interval is 0 then only scan once.\n if (!isRunning.current || !onScanned) {\n stop();\n return;\n }\n try {\n const data = captureImageData(video.current, captureOptions);\n\n if (data) {\n const nativeEvent: BarcodeScanningResult | any = await decode(data);\n if (nativeEvent?.data) {\n onScanned({\n nativeEvent,\n });\n }\n }\n } catch (error: any) {\n if (onError) {\n onError({ nativeEvent: error });\n }\n } finally {\n // If interval is 0 then only scan once.\n if (interval === 0) {\n stop();\n return;\n }\n const intervalToUse = !interval || interval < 0 ? 16 : interval;\n // @ts-ignore: Type 'Timeout' is not assignable to type 'number'\n timeout.current = setTimeout(() => {\n scanAsync();\n }, intervalToUse);\n }\n }\n\n function stop() {\n isRunning.current = false;\n clearTimeout(timeout.current);\n }\n\n React.useEffect(() => {\n if (isEnabled) {\n isRunning.current = true;\n scanAsync();\n }\n\n return () => {\n if (isEnabled) {\n stop();\n }\n };\n }, [isEnabled]);\n}\n"]} \ No newline at end of file diff --git a/packages/expo-camera/package.json b/packages/expo-camera/package.json index 942366eb40826e..34cf736c0529df 100644 --- a/packages/expo-camera/package.json +++ b/packages/expo-camera/package.json @@ -34,7 +34,7 @@ "preset": "expo-module-scripts" }, "dependencies": { - "invariant": "^2.2.4" + "barcode-detector": "^3.0.0" }, "devDependencies": { "expo-module-scripts": "^55.0.2" diff --git a/packages/expo-camera/src/Camera.types.ts b/packages/expo-camera/src/Camera.types.ts index 803294b6e7d8e5..a02d21baaa93af 100644 --- a/packages/expo-camera/src/Camera.types.ts +++ b/packages/expo-camera/src/Camera.types.ts @@ -328,7 +328,7 @@ export type BarcodeScanningResult = { * [Google MLKit's native order](https://developers.google.com/android/reference/com/google/mlkit/vision/barcode/common/Barcode#getCornerPoints()) * is used, which is `topLeft`, `topRight`, `bottomRight`, `bottomLeft`. * On iOS, the order is `bottomLeft`, `bottomRight`, `topLeft`, `topRight`. On Web, the order is - * `topLeft`, `bottomLeft`, `topRight`, `bottomRight`. + * `topLeft`, `topRight`, `bottomRight`, `bottomLeft` (matching Android/BarcodeDetector order). * */ cornerPoints: BarcodePoint[]; diff --git a/packages/expo-camera/src/ExpoCamera.web.tsx b/packages/expo-camera/src/ExpoCamera.web.tsx index ed6aadfa444aba..c61c18a992ff4e 100644 --- a/packages/expo-camera/src/ExpoCamera.web.tsx +++ b/packages/expo-camera/src/ExpoCamera.web.tsx @@ -19,8 +19,8 @@ import { import CameraManager from './ExpoCameraManager.web'; import { capture } from './web/WebCameraUtils'; import { PictureSizes } from './web/WebConstants'; +import { useWebBarcodeScanner } from './web/useWebBarcodeScanner'; import { useWebCameraStream } from './web/useWebCameraStream'; -import { useWebQRScanner } from './web/useWebQRScanner'; export interface ExponentCameraRef { getAvailablePictureSizes: (ratio: string) => Promise; @@ -37,7 +37,14 @@ const ExponentCamera = ({ }: PropsWithChildren) => { const video = useRef(null); - const native = useWebCameraStream(video, facing as CameraType, props, { + const cameraSettings = useMemo(() => { + return { + ...props, + flashMode: props.enableTorch ? 'torch' : props.flashMode, + }; + }, [props.enableTorch, props.flashMode, props.zoom, props.autoFocus]); + + const native = useWebCameraStream(video, facing as CameraType, cameraSettings, { onCameraReady() { if (props.onCameraReady) { props.onCameraReady(); @@ -46,16 +53,17 @@ const ExponentCamera = ({ onMountError: props.onMountError, }); - const isQRScannerEnabled = useMemo(() => { - return Boolean( - props.barcodeScannerSettings?.barcodeTypes?.includes('qr') && !!props.onBarcodeScanned - ); - }, [props.barcodeScannerSettings?.barcodeTypes, props.onBarcodeScanned]); + const barcodeTypes = props.barcodeScannerSettings?.barcodeTypes; + + const isScannerEnabled = useMemo(() => { + return Boolean(barcodeTypes?.length && !!props.onBarcodeScanned); + }, [barcodeTypes, props.onBarcodeScanned]); - useWebQRScanner(video, { + useWebBarcodeScanner(video, { interval: 300, - isEnabled: isQRScannerEnabled, - captureOptions: { scale: 1, isImageMirror: native.type === 'front' }, + isEnabled: isScannerEnabled, + barcodeTypes: barcodeTypes ?? [], + isMirrored: native.type === 'front', onScanned(event) { if (props.onBarcodeScanned) { props.onBarcodeScanned(event); diff --git a/packages/expo-camera/src/ExpoCameraManager.web.ts b/packages/expo-camera/src/ExpoCameraManager.web.ts index 84808acb461cc5..8ee1f6bfd307aa 100644 --- a/packages/expo-camera/src/ExpoCameraManager.web.ts +++ b/packages/expo-camera/src/ExpoCameraManager.web.ts @@ -1,12 +1,15 @@ import { UnavailabilityError } from 'expo-modules-core'; import { + BarcodeType, + BarcodeScanningResult, CameraCapturedPicture, CameraPictureOptions, PermissionResponse, PermissionStatus, } from './Camera.types'; import { ExponentCameraRef } from './ExpoCamera.web'; +import * as WebBarcodeScanner from './web/WebBarcodeScanner'; import { canGetUserMedia, isBackCameraAvailableAsync, @@ -14,32 +17,7 @@ import { } from './web/WebUserMediaManager'; function getUserMedia(constraints: MediaStreamConstraints): Promise { - if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { - return navigator.mediaDevices.getUserMedia(constraints); - } - - // Some browsers partially implement mediaDevices. We can't just assign an object - // with getUserMedia as it would overwrite existing properties. - // Here, we will just add the getUserMedia property if it's missing. - - // First get ahold of the legacy getUserMedia, if present - const getUserMedia = - // TODO: this method is deprecated, migrate to https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia - navigator.getUserMedia || - navigator.webkitGetUserMedia || - navigator.mozGetUserMedia || - function () { - const error: any = new Error('Permission unimplemented'); - error.code = 0; - error.name = 'NotAllowedError'; - throw error; - }; - return new Promise((resolve, reject) => { - // TODO(@kitten): The types indicates that this is incorrect. - // Please check whether this is correct! - // @ts-expect-error: The `successCallback` doesn't match a `resolve` function - getUserMedia.call(navigator, constraints, resolve, reject); - }); + return navigator.mediaDevices.getUserMedia(constraints); } function handleGetUserMediaError({ message }: { message: string }): PermissionResponse { @@ -134,6 +112,11 @@ async function handlePermissionsQueryAsync( } export default { + isModernBarcodeScannerAvailable: false, + toggleRecordingAsyncAvailable: false, + addListener(_eventName: string, _listener: (...args: any[]) => any) { + return { remove: () => {} }; + }, get Type() { return { back: 'back', @@ -240,4 +223,17 @@ export default { return handleGetUserMediaError(error.message); } }, + async scanFromURLAsync( + url: string, + barcodeTypes?: BarcodeType[] + ): Promise { + const response = await fetch(url); + const blob = await response.blob(); + const bitmap = await createImageBitmap(blob); + const types: BarcodeType[] = + barcodeTypes && barcodeTypes.length > 0 ? barcodeTypes : WebBarcodeScanner.ALL_BARCODE_TYPES; + const results = await WebBarcodeScanner.detect(bitmap, types); + bitmap.close(); + return results; + }, }; diff --git a/packages/expo-camera/src/ts-declarations/lib.dom.d.ts b/packages/expo-camera/src/ts-declarations/lib.dom.d.ts index b8a5418529102d..597d259f5bba2a 100644 --- a/packages/expo-camera/src/ts-declarations/lib.dom.d.ts +++ b/packages/expo-camera/src/ts-declarations/lib.dom.d.ts @@ -2,24 +2,9 @@ export {}; /** - * Handle deprecations and missing typings that not available in the main lib.dom.d.ts file. + * Handle missing typings that are not available in the main lib.dom.d.ts file. */ declare global { - type GetUserMediaFunctionType = ( - constraints: MediaStreamConstraints, - successCallback: () => MediaStream, - failureCallback: () => DOMException - ) => undefined; - interface Navigator { - /** - * This method has been deprecated: https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getUserMedia - * TODO: migrate to https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia - */ - getUserMedia?: GetUserMediaFunctionType; - webkitGetUserMedia?: GetUserMediaFunctionType; - mozGetUserMedia?: GetUserMediaFunctionType; - } - type PermissionNameWithAdditionalValues = PermissionName | 'camera' | 'microphone'; // TODO: remove once "microphone" name is added to the PermissionName union type exposed by the main lib.dom.d.ts file. diff --git a/packages/expo-camera/src/web/WebBarcodeScanner.ts b/packages/expo-camera/src/web/WebBarcodeScanner.ts new file mode 100644 index 00000000000000..c334b8749af891 --- /dev/null +++ b/packages/expo-camera/src/web/WebBarcodeScanner.ts @@ -0,0 +1,94 @@ +import type { BarcodeType, BarcodeScanningResult } from '../Camera.types'; + +/** + * Mapping from expo BarcodeType to BarcodeDetector format string. + * @see https://developer.mozilla.org/en-US/docs/Web/API/Barcode_Detection_API#supported_barcode_formats + */ +const EXPO_TO_WEB_FORMAT: Record = { + aztec: 'aztec', + codabar: 'codabar', + code39: 'code_39', + code93: 'code_93', + code128: 'code_128', + datamatrix: 'data_matrix', + ean8: 'ean_8', + ean13: 'ean_13', + itf14: 'itf', + pdf417: 'pdf417', + qr: 'qr_code', + upc_a: 'upc_a', + upc_e: 'upc_e', +}; + +const WEB_TO_EXPO_FORMAT: Record = Object.fromEntries( + Object.entries(EXPO_TO_WEB_FORMAT).map(([expo, web]) => [web, expo as BarcodeType]) +); + +export const ALL_BARCODE_TYPES = Object.keys(EXPO_TO_WEB_FORMAT) as BarcodeType[]; + +type BarcodeDetectorLike = { + detect(source: ImageBitmapSource): Promise; +}; + +type DetectedBarcodeLike = { + format: string; + rawValue: string; + boundingBox: DOMRectReadOnly; + cornerPoints: { x: number; y: number }[]; +}; + +let cachedDetector: BarcodeDetectorLike | null = null; +let cachedFormats: string[] | null = null; + +function formatsChanged(barcodeTypes: BarcodeType[]): boolean { + const webFormats = barcodeTypes.map((t) => EXPO_TO_WEB_FORMAT[t]).sort(); + if (!cachedFormats) { + return true; + } + if (cachedFormats.length !== webFormats.length) { + return true; + } + return webFormats.some((f, i) => f !== cachedFormats![i]); +} + +async function getDetector(barcodeTypes: BarcodeType[]): Promise { + if (cachedDetector && !formatsChanged(barcodeTypes)) { + return cachedDetector; + } + + const webFormats = barcodeTypes.map((t) => EXPO_TO_WEB_FORMAT[t]); + cachedFormats = [...webFormats].sort(); + + const NativeBarcodeDetector = (globalThis as any).BarcodeDetector; + if (typeof NativeBarcodeDetector !== 'undefined') { + const detector: BarcodeDetectorLike = new NativeBarcodeDetector({ formats: webFormats }); + cachedDetector = detector; + return detector; + } + + const { BarcodeDetector } = await import('barcode-detector'); + const detector: BarcodeDetectorLike = new BarcodeDetector({ formats: webFormats as any }); + cachedDetector = detector; + return detector; +} + +export async function detect( + source: ImageBitmapSource, + barcodeTypes: BarcodeType[] +): Promise { + const detector = await getDetector(barcodeTypes); + const barcodes = await detector.detect(source); + + return barcodes.map((barcode) => { + const { x, y, width, height } = barcode.boundingBox; + return { + type: WEB_TO_EXPO_FORMAT[barcode.format] ?? barcode.format, + data: barcode.rawValue, + bounds: { + origin: { x, y }, + size: { width, height }, + }, + cornerPoints: barcode.cornerPoints?.map((p) => ({ x: p.x, y: p.y })) ?? [], + }; + }); +} diff --git a/packages/expo-camera/src/web/WebCameraUtils.ts b/packages/expo-camera/src/web/WebCameraUtils.ts index 685e54c4dc1a2a..3132b33f4faf9c 100644 --- a/packages/expo-camera/src/web/WebCameraUtils.ts +++ b/packages/expo-camera/src/web/WebCameraUtils.ts @@ -1,6 +1,4 @@ /* eslint-env browser */ -import invariant from 'invariant'; - import * as CapabilityUtils from './WebCapabilityUtils'; import { CameraTypeToFacingMode, ImageTypeFormat, MinimumConstraints } from './WebConstants'; import { requestUserMediaAsync } from './WebUserMediaManager'; @@ -36,18 +34,8 @@ export function toDataURL( imageType: ImageType, quality: number ): string { - const types = ['png', 'jpg']; - invariant( - types.includes(imageType), - `expo-camera: ${imageType} is not a valid ImageType. Expected a string from: ${types.join(', ')}` - ); - const format = ImageTypeFormat[imageType]; if (imageType === 'jpg') { - invariant( - quality <= 1 && quality >= 0, - `expo-camera: ${quality} is not a valid image quality. Expected a number from 0...1` - ); return canvas.toDataURL(format, quality); } else { return canvas.toDataURL(format); @@ -79,24 +67,6 @@ function ensureCameraPictureOptions(config: CameraPictureOptions): CameraPicture const DEFAULT_QUALITY = 0.92; -export function captureImageData( - video: HTMLVideoElement | null, - pictureOptions: Pick = {} -): ImageData | null { - if (!video || video.readyState !== video.HAVE_ENOUGH_DATA) { - return null; - } - const canvas = captureImageContext(video, pictureOptions); - - const context = canvas.getContext('2d', { alpha: false }); - if (!context || !canvas.width || !canvas.height) { - return null; - } - - const imageData = context.getImageData(0, 0, canvas.width, canvas.height); - return imageData; -} - export function captureImageContext( video: HTMLVideoElement, { scale = 1, isImageMirror = false }: Pick @@ -365,38 +335,12 @@ export function stopMediaStream(stream: MediaStream | null) { if (!stream) { return; } - if (stream.getAudioTracks) { - stream.getAudioTracks().forEach((track) => track.stop()); - } - if (stream.getVideoTracks) { - stream.getVideoTracks().forEach((track) => track.stop()); - } - if (isMediaStreamTrack(stream)) { - stream.stop(); - } + stream.getAudioTracks().forEach((track) => track.stop()); + stream.getVideoTracks().forEach((track) => track.stop()); } -export function setVideoSource( - video: HTMLVideoElement, - stream: MediaStream | MediaSource | Blob | null -): void { - const createObjectURL = window.URL.createObjectURL ?? window.webkitURL.createObjectURL; - - if (typeof video.srcObject !== 'undefined') { - video.srcObject = stream; - } else if (typeof (video as any).mozSrcObject !== 'undefined') { - (video as any).mozSrcObject = stream; - } else if (stream && createObjectURL) { - video.src = createObjectURL(stream as MediaSource | Blob); - } - - if (!stream) { - const revokeObjectURL = window.URL.revokeObjectURL ?? window.webkitURL.revokeObjectURL; - const source = video.src ?? video.srcObject ?? (video as any).mozSrcObject; - if (revokeObjectURL && typeof source === 'string') { - revokeObjectURL(source); - } - } +export function setVideoSource(video: HTMLVideoElement, stream: MediaStream | null): void { + video.srcObject = stream; } export function isCapabilityAvailable( @@ -413,10 +357,6 @@ export function isCapabilityAvailable( return false; } -function isMediaStreamTrack(input: any): input is MediaStreamTrack { - return typeof input.stop === 'function'; -} - function convertNormalizedSetting(range: MediaSettingsRange, value?: number): number | undefined { if (!value) { return; diff --git a/packages/expo-camera/src/web/WebUserMediaManager.ts b/packages/expo-camera/src/web/WebUserMediaManager.ts index 2e1e80b53ff2c6..9dfbb1fde2ac6b 100644 --- a/packages/expo-camera/src/web/WebUserMediaManager.ts +++ b/packages/expo-camera/src/web/WebUserMediaManager.ts @@ -1,69 +1,6 @@ /* eslint-env browser */ -/** - * A web-only module for ponyfilling the UserMedia API. - */ import { Platform } from 'expo-modules-core'; -export const userMediaRequested: boolean = false; - -export const mountedInstances: any[] = []; - -async function requestLegacyUserMediaAsync( - // TODO(@kitten): Type this properly - props: { audioConstraints?: any; videoConstraints?: any } -): Promise { - // TODO(@kitten): This is never type checked against DOM types - const optionalSource = (id: string | string[] | null) => ({ optional: [{ sourceId: id }] }); - - const constraintToSourceId = (constraint: MediaTrackConstraintSet) => { - const { deviceId } = constraint; - - if (typeof deviceId === 'string') { - return deviceId; - } - - if (Array.isArray(deviceId)) { - return deviceId[0] ?? null; - } else if (typeof deviceId === 'object' && deviceId.ideal) { - return deviceId.ideal; - } - - return null; - }; - - const sources: any[] = await new Promise((resolve) => - // @ts-ignore: https://caniuse.com/#search=getSources Chrome for Android (78) & Samsung Internet (10.1) use this - MediaStreamTrack.getSources((sources) => resolve(sources)) - ); - - let audioSource = null; - let videoSource = null; - - sources.forEach((source) => { - if (source.kind === 'audio') { - audioSource = source.id; - } else if (source.kind === 'video') { - videoSource = source.id; - } - }); - - // NOTE(@kitten): This doesn't seem right. The types that should be used here don't contain `audioConstraints` - // If this is legacy, the type shouldn't have been dropped but marked as `@deprecated`. Alternatively, remove this code path - const audioSourceId = constraintToSourceId(props.audioConstraints); - if (audioSourceId) { - audioSource = audioSourceId; - } - - // NOTE(@kitten): This doesn't seem right. The types that should be used here don't contain `videoConstraints` - // If this is legacy, the type shouldn't have been dropped but marked as `@deprecated`. Alternatively, remove this code path - const videoSourceId = constraintToSourceId(props.videoConstraints); - if (videoSourceId) { - videoSource = videoSourceId; - } - - return [optionalSource(audioSource), optionalSource(videoSource)]; -} - async function sourceSelectedAsync( isMuted: boolean, audioConstraints?: MediaTrackConstraints | boolean, @@ -81,17 +18,10 @@ async function sourceSelectedAsync( } export async function requestUserMediaAsync( - // TODO(@kitten): Type this properly props: { audio?: any; video?: any }, isMuted: boolean = true ): Promise { - if (canGetUserMedia()) { - return await sourceSelectedAsync(isMuted, props.audio, props.video); - } - // NOTE(@kitten): This doesn't seem right. The types that should be used here don't contain `videoConstraints` - // If this is legacy, the type shouldn't have been dropped but marked as `@deprecated`. Alternatively, remove this code path - const [audio, video] = await requestLegacyUserMediaAsync(props as any); - return await sourceSelectedAsync(isMuted, audio, video); + return await sourceSelectedAsync(isMuted, props.audio, props.video); } export async function getAnyUserMediaAsync( @@ -99,7 +29,7 @@ export async function getAnyUserMediaAsync( ignoreConstraints: boolean = false ): Promise { try { - return await getUserMediaAsync({ + return await navigator.mediaDevices.getUserMedia({ ...constraints, video: ignoreConstraints || constraints.video, }); @@ -115,35 +45,8 @@ export async function getAnyUserMediaAsync( } } -export async function getUserMediaAsync(constraints: MediaStreamConstraints): Promise { - if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { - return navigator.mediaDevices.getUserMedia(constraints); - } - - const _getUserMedia = - navigator['mozGetUserMedia'] || - navigator['webkitGetUserMedia'] || - // @ts-expect-error: TODO(@kitten): Remove / Drop IE support - navigator['msGetUserMedia']; - return new Promise((resolve, reject) => - _getUserMedia.call(navigator, constraints, resolve, reject) - ); -} - export function canGetUserMedia(): boolean { - // TODO(@kitten): This is misaligned with the implementations in `expo-audio/src/AudioModule.web.ts` and `expo-av` - return ( - // SSR - Platform.isDOMAvailable && - // Has any form of media API - !!( - (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) || - navigator['mozGetUserMedia'] || - navigator['webkitGetUserMedia'] || - // @ts-expect-error: TODO(@kitten): Remove / Drop IE support - navigator['msGetUserMedia'] - ) - ); + return Platform.isDOMAvailable && !!navigator.mediaDevices?.getUserMedia; } export async function isFrontCameraAvailableAsync( diff --git a/packages/expo-camera/src/web/useWebBarcodeScanner.ts b/packages/expo-camera/src/web/useWebBarcodeScanner.ts new file mode 100644 index 00000000000000..5d011e02e1ac54 --- /dev/null +++ b/packages/expo-camera/src/web/useWebBarcodeScanner.ts @@ -0,0 +1,128 @@ +import * as React from 'react'; + +import * as WebBarcodeScanner from './WebBarcodeScanner'; +import { BarcodeType, BarcodeScanningResult, MountErrorListener } from '../Camera.types'; + +function mapToViewCoordinates( + result: BarcodeScanningResult, + videoWidth: number, + viewHeight: number, + height: number, + width: number, + isMirrored: boolean +): BarcodeScanningResult { + const scaleX = width / videoWidth; + const scaleY = viewHeight / height; + + const mapPoint = (p: { x: number; y: number }) => { + const x = isMirrored ? width - p.x * scaleX : p.x * scaleX; + const y = p.y * scaleY; + return { x, y }; + }; + + const origin = mapPoint(result.bounds.origin); + const size = { + width: result.bounds.size.width * scaleX, + height: result.bounds.size.height * scaleY, + }; + + if (isMirrored) { + origin.x -= size.width; + } + + return { + ...result, + bounds: { origin, size }, + cornerPoints: result.cornerPoints.map(mapPoint), + }; +} + +export function useWebBarcodeScanner( + video: React.RefObject, + { + isEnabled, + barcodeTypes, + interval, + isMirrored = false, + onScanned, + onError, + }: { + isEnabled: boolean; + barcodeTypes: BarcodeType[]; + interval?: number; + isMirrored?: boolean; + onScanned?: (scanningResult: { nativeEvent: BarcodeScanningResult }) => void; + onError?: MountErrorListener; + } +) { + const isRunning = React.useRef(false); + const timeout = React.useRef | undefined>(undefined); + + async function scanAsync() { + if (!isRunning.current || !onScanned) { + stop(); + return; + } + try { + const videoEl = video.current; + if (!videoEl || videoEl.readyState !== videoEl.HAVE_ENOUGH_DATA) { + return; + } + + const { videoWidth, videoHeight } = videoEl; + if (!videoWidth || !videoHeight) { + return; + } + + const bitmap = await createImageBitmap(videoEl); + const results = await WebBarcodeScanner.detect(bitmap, barcodeTypes); + bitmap.close(); + + const viewWidth = videoEl.clientWidth || videoWidth; + const viewHeight = videoEl.clientHeight || videoHeight; + + for (const raw of results) { + const nativeEvent = mapToViewCoordinates( + raw, + videoWidth, + videoHeight, + viewWidth, + viewHeight, + isMirrored + ); + onScanned({ nativeEvent }); + } + } catch (error: any) { + if (onError) { + onError({ nativeEvent: error }); + } + } finally { + if (interval === 0) { + stop(); + return; + } + const intervalToUse = !interval || interval < 0 ? 16 : interval; + timeout.current = setTimeout(() => { + scanAsync(); + }, intervalToUse); + } + } + + function stop() { + isRunning.current = false; + clearTimeout(timeout.current); + } + + React.useEffect(() => { + if (isEnabled) { + isRunning.current = true; + scanAsync(); + } + + return () => { + if (isEnabled) { + stop(); + } + }; + }, [isEnabled]); +} diff --git a/packages/expo-camera/src/web/useWebCameraStream.ts b/packages/expo-camera/src/web/useWebCameraStream.ts index 29cc6b1af393e6..ae405849c4e2bf 100644 --- a/packages/expo-camera/src/web/useWebCameraStream.ts +++ b/packages/expo-camera/src/web/useWebCameraStream.ts @@ -58,7 +58,7 @@ export function useWebCameraStream( autoFocus: 'continuous', flashMode: 'off', whiteBalance: 'continuous', - zoom: 1, + zoom: 0, }); const [stream, setStream] = React.useState(null); diff --git a/packages/expo-camera/src/web/useWebQRScanner.ts b/packages/expo-camera/src/web/useWebQRScanner.ts deleted file mode 100644 index cf65a621efcf72..00000000000000 --- a/packages/expo-camera/src/web/useWebQRScanner.ts +++ /dev/null @@ -1,152 +0,0 @@ -import * as React from 'react'; - -import { captureImageData } from './WebCameraUtils'; -import { BarcodeScanningResult, CameraPictureOptions, MountErrorListener } from '../Camera.types'; - -const qrWorkerMethod = ({ data, width, height }: ImageData): any => { - // eslint-disable-next-line no-undef - const decoded = (self as any).jsQR(data, width, height, { - inversionAttempts: 'attemptBoth', - }); - - let parsed; - try { - parsed = JSON.parse(decoded); - } catch { - parsed = decoded; - } - - if (parsed?.data) { - const nativeEvent: BarcodeScanningResult = { - type: 'qr', - data: parsed.data, - cornerPoints: [], - bounds: { origin: { x: 0, y: 0 }, size: { width: 0, height: 0 } }, - }; - if (parsed.location) { - nativeEvent.cornerPoints = [ - parsed.location.topLeftCorner, - parsed.location.bottomLeftCorner, - parsed.location.topRightCorner, - parsed.location.bottomRightCorner, - ]; - } - return nativeEvent; - } - return parsed; -}; - -const createWorkerAsyncFunction = any>(fn: T, deps: string[]) => { - if (typeof window === 'undefined') { - return async () => { - throw new Error('Cannot use createWorkerAsyncFunction in a non-browser environment'); - }; - } - - const stringifiedFn = [ - `self.func = ${fn.toString()};`, - 'self.onmessage = (e) => {', - ' const result = self.func(e.data);', - ' self.postMessage(result);', - '};', - ]; - - if (deps.length > 0) { - stringifiedFn.unshift(`importScripts(${deps.map((dep) => `'${dep}'`).join(', ')});`); - } - - const blob = new Blob(stringifiedFn, { type: 'text/javascript' }); - const worker = new Worker(URL.createObjectURL(blob)); - - // First-In First-Out queue of promises - const promises: { - resolve: (value: ReturnType) => void; - reject: (reason?: any) => void; - }[] = []; - - worker.onmessage = (e) => promises.shift()?.resolve(e.data); - - return (data: Parameters[0]) => { - return new Promise>((resolve, reject) => { - promises.push({ resolve, reject }); - worker.postMessage(data); - }); - }; -}; - -const decode = createWorkerAsyncFunction(qrWorkerMethod, [ - 'https://cdn.jsdelivr.net/npm/jsqr@1.2.0/dist/jsQR.min.js', -]); - -export function useWebQRScanner( - video: React.MutableRefObject, - { - isEnabled, - captureOptions, - interval, - onScanned, - onError, - }: { - isEnabled: boolean; - captureOptions: Pick; - interval?: number; - onScanned?: (scanningResult: { nativeEvent: BarcodeScanningResult }) => void; - onError?: MountErrorListener; - } -) { - const isRunning = React.useRef(false); - const timeout = React.useRef(undefined); - - async function scanAsync() { - // If interval is 0 then only scan once. - if (!isRunning.current || !onScanned) { - stop(); - return; - } - try { - const data = captureImageData(video.current, captureOptions); - - if (data) { - const nativeEvent: BarcodeScanningResult | any = await decode(data); - if (nativeEvent?.data) { - onScanned({ - nativeEvent, - }); - } - } - } catch (error: any) { - if (onError) { - onError({ nativeEvent: error }); - } - } finally { - // If interval is 0 then only scan once. - if (interval === 0) { - stop(); - return; - } - const intervalToUse = !interval || interval < 0 ? 16 : interval; - // @ts-ignore: Type 'Timeout' is not assignable to type 'number' - timeout.current = setTimeout(() => { - scanAsync(); - }, intervalToUse); - } - } - - function stop() { - isRunning.current = false; - clearTimeout(timeout.current); - } - - React.useEffect(() => { - if (isEnabled) { - isRunning.current = true; - scanAsync(); - } - - return () => { - if (isEnabled) { - stop(); - } - }; - }, [isEnabled]); -} diff --git a/yarn.lock b/yarn.lock index 487ad729272ccc..5537ce50d880e9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4328,6 +4328,11 @@ resolved "https://registry.yarnpkg.com/@types/ejs/-/ejs-3.1.5.tgz#49d738257cc73bafe45c13cb8ff240683b4d5117" integrity sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg== +"@types/emscripten@^1.41.5": + version "1.41.5" + resolved "https://registry.yarnpkg.com/@types/emscripten/-/emscripten-1.41.5.tgz#5670e4b52b098691cb844b84ee48c9176699b68d" + integrity sha512-cMQm7pxu6BxtHyqJ7mQZ2kXWV5SLmugybFdHCBbJ5eHzOo6VhBckEgAT3//rP5FwPHNPeEiq4SmQ5ucBwsOo4Q== + "@types/envinfo@^7.8.1": version "7.8.3" resolved "https://registry.yarnpkg.com/@types/envinfo/-/envinfo-7.8.3.tgz#6fccc3425e300ee377aad15423e555dc6fc12fa1" @@ -5792,6 +5797,13 @@ balanced-match@^4.0.2: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.3.tgz#6337a2f23e0604a30481423432f99eac603599f9" integrity sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g== +barcode-detector@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/barcode-detector/-/barcode-detector-3.1.0.tgz#ce340cead9f267951f4c53887ac24b64c21a79c4" + integrity sha512-aQjGxrgsb/WTlw6pHZwFRO6NhFMhwHGEkd0pzV25fBn8dnRA1PA1G7bLeAzvSea646S/96nW5W3jD8wezQZ1vQ== + dependencies: + zxing-wasm "3.0.0" + base64-arraybuffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc" @@ -15107,6 +15119,11 @@ synckit@^0.11.0: "@pkgr/core" "^0.2.1" tslib "^2.8.1" +tagged-tag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/tagged-tag/-/tagged-tag-1.0.0.tgz#a0b5917c2864cba54841495abfa3f6b13edcf4d6" + integrity sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng== + tailwindcss@^3.3.5: version "3.3.5" resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.5.tgz#22a59e2fbe0ecb6660809d9cc5f3976b077be3b8" @@ -15560,6 +15577,13 @@ type-fest@^3.0.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.5.1.tgz#9555ae435f560c1b4447b70bdd195bb2c86c6c92" integrity sha512-70T99cpILFk2fzwuljwWxmazSphFrdOe3gRHbp6bqs71pxFBbJwFqnmkLO2lQL6aLHxHmYAnP/sL+AJWpT70jA== +type-fest@^5.4.4: + version "5.4.4" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-5.4.4.tgz#577f165b5ecb44cfc686559cc54ca77f62aa374d" + integrity sha512-JnTrzGu+zPV3aXIUhnyWJj4z/wigMsdYajGLIYakqyOW1nPllzXEJee0QQbHj+CTIQtXGlAjuK0UY+2xTyjVAw== + dependencies: + tagged-tag "^1.0.0" + type-is@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/type-is/-/type-is-2.0.1.tgz#64f6cf03f92fce4015c2b224793f6bdd4b068c97" @@ -16797,3 +16821,11 @@ zx@^8.8.5: version "8.8.5" resolved "https://registry.yarnpkg.com/zx/-/zx-8.8.5.tgz#d092d8c0017aa7c5a276fda88ff19e4b1d91cc64" integrity sha512-SNgDF5L0gfN7FwVOdEFguY3orU5AkfFZm9B5YSHog/UDHv+lvmd82ZAsOenOkQixigwH2+yyH198AwNdKhj+RA== + +zxing-wasm@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/zxing-wasm/-/zxing-wasm-3.0.0.tgz#184feade580ef7763cac4f1231eae1aa6fe28a39" + integrity sha512-s7ASCPKX+QnH7Y83f4Byxmq/vDzYW7B9m6jMP5S30JGfN2A6WAUn6P3vcBmNguDhPLE6ny2fjTooQVyKBXI1qA== + dependencies: + "@types/emscripten" "^1.41.5" + type-fest "^5.4.4" From ac87a9cefbbf95194031bb2a92b1b5c0f90268e3 Mon Sep 17 00:00:00 2001 From: Kudo Chien Date: Wed, 25 Feb 2026 18:59:36 +0800 Subject: [PATCH 04/14] [sqlite] bump sdk version for dev-plugin-webui (#43412) # Why fix prebuilt dev-plugin-webui doesn't work when fetching the wa-sqlite wasm # How - bump the plugin to sdk 55 and run `yarn bundle:webui` to bundle the dev-plugin-dist - publish all files under dev-plugin-dist --- packages/expo-sqlite/.npmignore | 3 + packages/expo-sqlite/CHANGELOG.md | 2 + .../dev-plugin-dist/+not-found.html | 2 +- ...entry-6b462075328bf796a095088ecb34b129.js} | 4991 +++++++++-------- ...orker-aaddcc908d9758af99bee8e068c81a7f.js} | 36 +- .../expo-sqlite/dev-plugin-dist/_sitemap.html | 2 +- .../expo-sqlite/dev-plugin-dist/index.html | 2 +- .../expo-sqlite/dev-plugin-webui/bun.lock | 2697 +++++---- .../expo-sqlite/dev-plugin-webui/package.json | 23 +- 9 files changed, 3825 insertions(+), 3933 deletions(-) rename packages/expo-sqlite/dev-plugin-dist/_expo/static/js/web/{entry-7d3bdcbe3d24f34acef3975b0a1c90b8.js => entry-6b462075328bf796a095088ecb34b129.js} (85%) rename packages/expo-sqlite/dev-plugin-dist/_expo/static/js/web/{worker-c5107d559366387fe3e229cdc1f04e35.js => worker-aaddcc908d9758af99bee8e068c81a7f.js} (50%) diff --git a/packages/expo-sqlite/.npmignore b/packages/expo-sqlite/.npmignore index 7447fdbdc0ef07..6e4b59cfe3995a 100644 --- a/packages/expo-sqlite/.npmignore +++ b/packages/expo-sqlite/.npmignore @@ -21,3 +21,6 @@ __rsc_tests__ # Exclude source of dev-plugin-webui to reduce package size /dev-plugin-webui/ + +# Include all files in the bundled dev-plugin-dist +!/dev-plugin-dist/**/* diff --git a/packages/expo-sqlite/CHANGELOG.md b/packages/expo-sqlite/CHANGELOG.md index bb1e65e06eef10..5cb9e6dee15371 100644 --- a/packages/expo-sqlite/CHANGELOG.md +++ b/packages/expo-sqlite/CHANGELOG.md @@ -10,6 +10,8 @@ ### 💡 Others +- Bumped dev-plugin-webui to SDK 55. ([#43412](https://github.com/expo/expo/pull/43412) by [@kudo](https://github.com/kudo)) + ## 55.0.9 — 2026-02-25 _This version does not introduce any user-facing changes._ diff --git a/packages/expo-sqlite/dev-plugin-dist/+not-found.html b/packages/expo-sqlite/dev-plugin-dist/+not-found.html index bc8abdae2d25ee..3c1bb5e0441114 100644 --- a/packages/expo-sqlite/dev-plugin-dist/+not-found.html +++ b/packages/expo-sqlite/dev-plugin-dist/+not-found.html @@ -313,5 +313,5 @@ @keyframes r-1pzkwqh{0%{transform:translateY(100%);}100%{transform:translateY(0%);}} @keyframes r-imtty0{0%{opacity:0;}100%{opacity:1;}} @keyframes r-q67da2{0%{transform:translateX(-100%);}100%{transform:translateX(400%);}} -@keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}
+@keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}
\ No newline at end of file diff --git a/packages/expo-sqlite/dev-plugin-dist/_expo/static/js/web/entry-7d3bdcbe3d24f34acef3975b0a1c90b8.js b/packages/expo-sqlite/dev-plugin-dist/_expo/static/js/web/entry-6b462075328bf796a095088ecb34b129.js similarity index 85% rename from packages/expo-sqlite/dev-plugin-dist/_expo/static/js/web/entry-7d3bdcbe3d24f34acef3975b0a1c90b8.js rename to packages/expo-sqlite/dev-plugin-dist/_expo/static/js/web/entry-6b462075328bf796a095088ecb34b129.js index 56b1accfca5de0..8371cdc52df6c0 100644 --- a/packages/expo-sqlite/dev-plugin-dist/_expo/static/js/web/entry-7d3bdcbe3d24f34acef3975b0a1c90b8.js +++ b/packages/expo-sqlite/dev-plugin-dist/_expo/static/js/web/entry-6b462075328bf796a095088ecb34b129.js @@ -1,6 +1,6 @@ var __BUNDLE_START_TIME__=globalThis.nativePerformanceNow?nativePerformanceNow():Date.now(),__DEV__=false,process=globalThis.process||{},__METRO_GLOBAL_PREFIX__='';process.env=process.env||{};process.env.NODE_ENV=process.env.NODE_ENV||"production"; !(function(e){'use strict';e[`${__METRO_GLOBAL_PREFIX__}__d`]||(e.__r=i,e[`${__METRO_GLOBAL_PREFIX__}__d`]=function(e,n,o){if(t.has(n))return;const i={dependencyMap:o,factory:e,hasError:!1,importedAll:r,importedDefault:r,isInitialized:!1,publicModule:{exports:{}}};t.set(n,i)},e.__c=o,e.__registerSegment=function(e,r,n){c[e]=r,n&&n.forEach(r=>{t.has(r)||s.has(r)||s.set(r,e)})});var t=o();const r={},{hasOwnProperty:n}={};function o(){return t=new Map}function i(e,r){if(null===e)throw new Error('Cannot find module');const n=t.get(e);return n&&n.isInitialized?n.publicModule.exports:a(e,n,r)}function l(e){var n;if(t.has(e)&&(null==(n=t.get(e))?void 0:n.importedDefault)!==r)return t.get(e).importedDefault;const o=i(e),l=o&&o.__esModule?o.default:o;return t.get(e).importedDefault=l}function u(e){var o;if(t.has(e)&&(null==(o=t.get(e))?void 0:o.importedAll)!==r)return t.get(e).importedAll;const l=i(e);let u;if(l&&l.__esModule)u=l;else{if(u={},l)for(const e in l)n.call(l,e)&&(u[e]=l[e]);u.default=l}return t.get(e).importedAll=u}i.importDefault=l,i[Symbol.for('expo.require')]=!0,i.importAll=u,i.context=function(){throw new Error('The experimental Metro feature `require.context` is not enabled in your project.')},i.resolveWeak=function(){throw new Error('require.resolveWeak cannot be called dynamically.')},i.unguarded=function(e,r){const n=t.get(e);return n&&n.isInitialized?n.publicModule.exports:f(e,n,r)};let d=!1;function a(t,r,n){if(!d&&e.ErrorUtils){let o;d=!0;try{o=f(t,r,n)}catch(t){e.ErrorUtils.reportFatalError(t)}return d=!1,o}return f(t,r,n)}i.unpackModuleId=function(e){if('number'!=typeof e)throw new Error('Module ID must be a number in unpackModuleId.');return{segmentId:e>>>16,localId:65535&e}},i.packModuleId=function(e){return(e.segmentId<<16)+e.localId};const c=[],s=new Map;function f(r,n,o){if(!n&&c.length>0){const e=s.get(r)??0,o=c[e];null!=o&&(o(r),n=t.get(r),s.delete(r))}if(!n)throw p(r,o);if(n.hasError)throw n.error;n.isInitialized=!0;const{factory:d,dependencyMap:a}=n;try{const t=n.publicModule;return t.id=r,null==d||d(e,i,l,u,t,t.exports,a),n.factory=void 0,n.dependencyMap=void 0,t.exports}catch(e){throw n.hasError=!0,n.error=e,n.isInitialized=!1,n.publicModule.exports=void 0,e}}function p(e,t){return Error('Requiring unknown module "'+(e??t??"[unknown optional import]")+'".')}})('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof global?global:'undefined'!=typeof window?window:this); -!(function(e){e.$$require_external="undefined"!=typeof require?require:()=>null})('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof global?global:'undefined'!=typeof window?window:this); +!(function(e){e.$$require_external="undefined"!=typeof require?e=>require(e):()=>null})('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof global?global:'undefined'!=typeof window?window:this); 'undefined'!=typeof globalThis?globalThis:'undefined'!=typeof global?global:'undefined'!=typeof window&&window; !(function(r){let l=0,n=!0===r.RN$useAlwaysAvailableJSErrorHandling?r.RN$handleException:(r,l)=>{throw r};const t={setGlobalHandler(r){n=r},getGlobalHandler:()=>n,reportError(r){n&&n(r,!1)},reportFatalError(r){n&&n(r,!0)},applyWithGuard(r,n,e,a,o){try{return l++,r.apply(n,e)}catch(r){t.reportError(r)}finally{l--}return null},applyWithGuardIfNeeded:(r,l,n)=>t.inGuard()?r.apply(l,n):(t.applyWithGuard(r,l,n),null),inGuard:()=>!!l,guard(r,l,n){if('function'!=typeof r)return console.warn('A function must be passed to ErrorUtils.guard, got ',r),null;const e=l??r.name??'';return function(...l){return t.applyWithGuard(r,n??this,l,null,e)}}};r.ErrorUtils=t})('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof global?global:'undefined'!=typeof window?window:this); __d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},2,[3]); @@ -15,21 +15,38 @@ __d(function(g,r,i,a,m,e,d){ * LICENSE file in the root directory of this source tree. */ "use strict";var n=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function o(t,o,f){var l=null;if(void 0!==f&&(l=""+f),void 0!==o.key&&(l=""+o.key),"key"in o)for(var y in f={},o)"key"!==y&&(f[y]=o[y]);else f=o;return o=f.ref,{$$typeof:n,type:t,key:l,ref:void 0!==o?o:null,props:f}}e.Fragment=t,e.jsx=o,e.jsxs=o},3,[]); -__d(function(g,r,i,a,m,e,d){"use strict";r(d[0]),r(d[1])},4,[5,6]); -__d(function(g,r,i,a,m,e,d){},5,[]); -__d(function(g,r,i,a,m,e,d){const _='undefined'==typeof window;globalThis.__webpack_chunk_load__=_=>g[`${__METRO_GLOBAL_PREFIX__}__loadBundleAsync`](_),globalThis.__webpack_require__=o=>{const t=ErrorUtils.reportFatalError;_&&(ErrorUtils.reportFatalError=_=>{throw _});try{return g[`${__METRO_GLOBAL_PREFIX__}__r`](o)}finally{_&&(ErrorUtils.reportFatalError=t)}}},6,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"createStaticNavigation",{enumerable:!0,get:function(){return t.createStaticNavigation}}),Object.defineProperty(e,"Link",{enumerable:!0,get:function(){return n.Link}}),Object.defineProperty(e,"LinkingContext",{enumerable:!0,get:function(){return o.LinkingContext}}),Object.defineProperty(e,"LocaleDirContext",{enumerable:!0,get:function(){return u.LocaleDirContext}}),Object.defineProperty(e,"NavigationContainer",{enumerable:!0,get:function(){return c.NavigationContainer}}),Object.defineProperty(e,"ServerContainer",{enumerable:!0,get:function(){return f.ServerContainer}}),Object.defineProperty(e,"DarkTheme",{enumerable:!0,get:function(){return b.DarkTheme}}),Object.defineProperty(e,"DefaultTheme",{enumerable:!0,get:function(){return l.DefaultTheme}}),Object.defineProperty(e,"UNSTABLE_UnhandledLinkingContext",{enumerable:!0,get:function(){return y.UnhandledLinkingContext}}),Object.defineProperty(e,"useLinkBuilder",{enumerable:!0,get:function(){return O.useLinkBuilder}}),Object.defineProperty(e,"useLinkProps",{enumerable:!0,get:function(){return P.useLinkProps}}),Object.defineProperty(e,"useLinkTo",{enumerable:!0,get:function(){return j.useLinkTo}}),Object.defineProperty(e,"useLocale",{enumerable:!0,get:function(){return s.useLocale}}),Object.defineProperty(e,"useRoutePath",{enumerable:!0,get:function(){return L.useRoutePath}}),Object.defineProperty(e,"useScrollToTop",{enumerable:!0,get:function(){return k.useScrollToTop}});var t=r(d[0]),n=r(d[1]),o=r(d[2]),u=r(d[3]),c=r(d[4]),f=r(d[5]),b=r(d[6]),l=r(d[7]),p=r(d[8]);Object.keys(p).forEach(function(t){'default'===t||Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return p[t]}})});var y=r(d[9]),O=r(d[10]),P=r(d[11]),j=r(d[12]),s=r(d[13]),L=r(d[14]),k=r(d[15]),h=r(d[16]);Object.keys(h).forEach(function(t){'default'===t||Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return h[t]}})})},7,[8,119,107,108,105,212,213,109,214,112,215,211,216,217,218,219,9]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.createStaticNavigation=function(c){const u=(0,e.createComponentForStaticNavigation)(c,'RootNavigator');function l({linking:l,...s},f){const d=n.useMemo(()=>{const n=(0,e.createPathConfigForStaticNavigation)(c,{initialRouteName:l?.config?.initialRouteName},'auto'===l?.enabled);if(n)return{path:l?.config?.path,initialRouteName:l?.config?.initialRouteName,screens:n}},[l?.enabled,l?.config?.path,l?.config?.initialRouteName]),b=n.useMemo(()=>{if(!l)return;const e='boolean'==typeof l.enabled?l.enabled:null!=d?.screens;return{...l,enabled:e,config:d}},[l,d]);if(!0===l?.enabled&&null==d?.screens)throw new Error("Linking is enabled but no linking configuration was found for the screens.\n\nTo solve this:\n- Specify a 'linking' property for the screens you want to link to.\n- Or set 'linking.enabled' to 'auto' to generate paths automatically.\n\nSee usage guide: https://reactnavigation.org/docs/static-configuration#linking");return(0,o.jsx)(t.NavigationContainer,{...s,ref:f,linking:b,children:(0,o.jsx)(u,{})})}return n.forwardRef(l)};var e=r(_d[0]),n=(function(e){if(e&&e.__esModule)return e;var n={};return e&&Object.keys(e).forEach(function(t){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}),n.default=e,n})(r(_d[1])),t=r(_d[2]),o=r(_d[3])},8,[9,19,105,2]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"BaseNavigationContainer",{enumerable:!0,get:function(){return t.BaseNavigationContainer}}),Object.defineProperty(e,"createNavigationContainerRef",{enumerable:!0,get:function(){return n.createNavigationContainerRef}}),Object.defineProperty(e,"createNavigatorFactory",{enumerable:!0,get:function(){return o.createNavigatorFactory}}),Object.defineProperty(e,"CurrentRenderContext",{enumerable:!0,get:function(){return u.CurrentRenderContext}}),Object.defineProperty(e,"findFocusedRoute",{enumerable:!0,get:function(){return c.findFocusedRoute}}),Object.defineProperty(e,"getActionFromState",{enumerable:!0,get:function(){return f.getActionFromState}}),Object.defineProperty(e,"getFocusedRouteNameFromRoute",{enumerable:!0,get:function(){return b.getFocusedRouteNameFromRoute}}),Object.defineProperty(e,"getPathFromState",{enumerable:!0,get:function(){return P.getPathFromState}}),Object.defineProperty(e,"getStateFromPath",{enumerable:!0,get:function(){return v.getStateFromPath}}),Object.defineProperty(e,"NavigationContainerRefContext",{enumerable:!0,get:function(){return p.NavigationContainerRefContext}}),Object.defineProperty(e,"NavigationContext",{enumerable:!0,get:function(){return l.NavigationContext}}),Object.defineProperty(e,"NavigationHelpersContext",{enumerable:!0,get:function(){return s.NavigationHelpersContext}}),Object.defineProperty(e,"NavigationIndependentTree",{enumerable:!0,get:function(){return y.NavigationIndependentTree}}),Object.defineProperty(e,"NavigationRouteContext",{enumerable:!0,get:function(){return O.NavigationRouteContext}}),Object.defineProperty(e,"PreventRemoveContext",{enumerable:!0,get:function(){return j.PreventRemoveContext}}),Object.defineProperty(e,"PreventRemoveProvider",{enumerable:!0,get:function(){return C.PreventRemoveProvider}}),Object.defineProperty(e,"createComponentForStaticNavigation",{enumerable:!0,get:function(){return N.createComponentForStaticNavigation}}),Object.defineProperty(e,"createPathConfigForStaticNavigation",{enumerable:!0,get:function(){return N.createPathConfigForStaticNavigation}}),Object.defineProperty(e,"ThemeContext",{enumerable:!0,get:function(){return R.ThemeContext}}),Object.defineProperty(e,"ThemeProvider",{enumerable:!0,get:function(){return F.ThemeProvider}}),Object.defineProperty(e,"useTheme",{enumerable:!0,get:function(){return h.useTheme}}),Object.defineProperty(e,"useFocusEffect",{enumerable:!0,get:function(){return S.useFocusEffect}}),Object.defineProperty(e,"useIsFocused",{enumerable:!0,get:function(){return T.useIsFocused}}),Object.defineProperty(e,"useNavigation",{enumerable:!0,get:function(){return I.useNavigation}}),Object.defineProperty(e,"useNavigationBuilder",{enumerable:!0,get:function(){return B.useNavigationBuilder}}),Object.defineProperty(e,"useNavigationContainerRef",{enumerable:!0,get:function(){return E.useNavigationContainerRef}}),Object.defineProperty(e,"useNavigationIndependentTree",{enumerable:!0,get:function(){return _.useNavigationIndependentTree}}),Object.defineProperty(e,"useNavigationState",{enumerable:!0,get:function(){return k.useNavigationState}}),Object.defineProperty(e,"usePreventRemove",{enumerable:!0,get:function(){return w.usePreventRemove}}),Object.defineProperty(e,"usePreventRemoveContext",{enumerable:!0,get:function(){return A.usePreventRemoveContext}}),Object.defineProperty(e,"useRoute",{enumerable:!0,get:function(){return H.useRoute}}),Object.defineProperty(e,"useStateForPath",{enumerable:!0,get:function(){return M.useStateForPath}}),Object.defineProperty(e,"validatePathConfig",{enumerable:!0,get:function(){return q.validatePathConfig}});var t=r(d[0]),n=r(d[1]),o=r(d[2]),u=r(d[3]),c=r(d[4]),f=r(d[5]),b=r(d[6]),P=r(d[7]),v=r(d[8]),p=r(d[9]),l=r(d[10]),s=r(d[11]),y=r(d[12]),O=r(d[13]),j=r(d[14]),C=r(d[15]),N=r(d[16]),R=r(d[17]),F=r(d[18]),h=r(d[19]),x=r(d[20]);Object.keys(x).forEach(function(t){'default'===t||Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return x[t]}})});var S=r(d[21]),T=r(d[22]),I=r(d[23]),B=r(d[24]),E=r(d[25]),_=r(d[26]),k=r(d[27]),w=r(d[28]),A=r(d[29]),H=r(d[30]),M=r(d[31]),q=r(d[32]),z=r(d[33]);Object.keys(z).forEach(function(t){'default'===t||Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return z[t]}})})},9,[10,25,43,46,28,47,48,51,59,30,63,64,65,66,67,68,69,34,33,73,74,75,77,76,78,101,39,92,102,103,72,104,58,11]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"BaseNavigationContainer",{enumerable:!0,get:function(){return S}});var e,t=r(_d[0]),n=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),o=r(_d[2]),s=(e=o)&&e.__esModule?e:{default:e},u=(r(_d[3]),r(_d[4]),r(_d[5])),d=r(_d[6]),c=r(_d[7]),l=r(_d[8]),f=r(_d[9]),h=r(_d[10]),v=r(_d[11]),p=r(_d[12]),y=r(_d[13]),C=r(_d[14]),R=r(_d[15]),O=r(_d[16]),N=r(_d[17]),b=r(_d[18]),x=r(_d[19]),I=r(_d[20]),_=r(_d[21]);const k=e=>{if(void 0===e)return;const{key:t,routeNames:n,...o}=e;return{...o,stale:!0,routes:e.routes.map(e=>void 0===e.state?e:{...e,state:k(e.state)})}},S=n.forwardRef(function({initialState:e,onStateChange:o,onReady:S,onUnhandledAction:j,navigationInChildEnabled:E=!1,theme:w,children:P},L){const A=n.useContext(p.NavigationStateContext),T=(0,b.useNavigationIndependentTree)();if(!A.isDefault&&!T)throw new Error("Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, wrap the container in 'NavigationIndependentTree' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them.");const{state:D,getState:M,setState:U,scheduleUpdate:G,flushUpdates:K}=(0,I.useSyncState)(()=>k(null==e?void 0:e)),B=n.useRef(!0),F=n.useRef(void 0),Z=n.useCallback(()=>F.current,[]),H=n.useCallback(e=>{F.current=e},[]),{listeners:q,addListener:z}=(0,R.useChildListeners)(),{keyedListeners:J,addKeyedListener:Q}=(0,N.useKeyedChildListeners)(),V=(0,s.default)(e=>{null==q.focus[0]?console.error(u.NOT_INITIALIZED_ERROR):q.focus[0](t=>t.dispatch(e))}),W=(0,s.default)(()=>{if(null==q.focus[0])return!1;const{result:e,handled:t}=q.focus[0](e=>e.canGoBack());return!!t&&e}),X=(0,s.default)(e=>{const n=e?.key??J.getState.root?.().key;null==n?console.error(u.NOT_INITIALIZED_ERROR):q.focus[0](o=>o.dispatch({...t.CommonActions.reset(e),target:n}))}),Y=(0,s.default)(()=>J.getState.root?.()),$=(0,s.default)(()=>{const e=Y();if(null==e)return;return(0,l.findFocusedRoute)(e)}),ee=(0,s.default)(()=>null!=q.focus[0]),te=(0,O.useEventEmitter)(),{addOptionsGetter:ne,getCurrentOptions:re}=(0,x.useOptionsGetters)({}),oe=n.useMemo(()=>({...Object.keys(t.CommonActions).reduce((e,n)=>(e[n]=(...e)=>V(t.CommonActions[n](...e)),e),{}),...te.create('root'),dispatch:V,resetRoot:X,isFocused:()=>!0,canGoBack:W,getParent:()=>{},getState:M,getRootState:Y,getCurrentRoute:$,getCurrentOptions:re,isReady:ee,setOptions:()=>{throw new Error('Cannot call setOptions outside a screen')}}),[W,V,te,re,$,Y,M,ee,X]);n.useImperativeHandle(L,()=>oe,[oe]);const ae=(0,s.default)((e,t)=>{te.emit({type:'__unsafe_action__',data:{action:e,noop:t,stack:ue.current}})}),se=n.useRef(void 0),ie=(0,s.default)(e=>{se.current!==e&&(se.current=e,te.emit({type:'options',data:{options:e}}))}),ue=n.useRef(void 0),de=n.useMemo(()=>({addListener:z,addKeyedListener:Q,onDispatchAction:ae,onOptionsChange:ie,scheduleUpdate:G,flushUpdates:K,stackRef:ue}),[z,Q,ae,ie,G,K]),ce=n.useRef(!0),le=n.useCallback(()=>ce.current,[]),fe=n.useMemo(()=>({state:D,getState:M,setState:U,getKey:Z,setKey:H,getIsInitial:le,addOptionsGetter:ne}),[D,M,U,Z,H,le,ne]),he=n.useRef(S),ve=n.useRef(o);n.useEffect(()=>{ce.current=!1,ve.current=o,he.current=S});const pe=n.useRef(!1);n.useEffect(()=>{!pe.current&&ee()&&(pe.current=!0,he.current?.(),te.emit({type:'ready'}))},[D,ee,te]),n.useEffect(()=>{const e=Y();te.emit({type:'state',data:{state:D}}),!B.current&&ve.current&&ve.current(e),B.current=!1},[Y,te,D]);const ge=(0,s.default)(e=>{});return(0,_.jsx)(v.NavigationIndependentTreeContext.Provider,{value:!1,children:(0,_.jsx)(h.NavigationContainerRefContext.Provider,{value:oe,children:(0,_.jsx)(f.NavigationBuilderContext.Provider,{value:de,children:(0,_.jsx)(p.NavigationStateContext.Provider,{value:fe,children:(0,_.jsx)(C.UnhandledActionContext.Provider,{value:j??ge,children:(0,_.jsx)(d.DeprecatedNavigationInChildContext.Provider,{value:E,children:(0,_.jsx)(c.EnsureSingleNavigator,{children:(0,_.jsx)(y.ThemeProvider,{value:w,children:P})})})})})})})})})},10,[11,19,21,23,24,25,26,27,28,29,30,31,32,33,35,36,37,38,39,40,41,2]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"BaseRouter",{enumerable:!0,get:function(){return t.BaseRouter}}),Object.defineProperty(_e,"DrawerActions",{enumerable:!0,get:function(){return n.DrawerActions}}),Object.defineProperty(_e,"DrawerRouter",{enumerable:!0,get:function(){return n.DrawerRouter}}),Object.defineProperty(_e,"StackActions",{enumerable:!0,get:function(){return o.StackActions}}),Object.defineProperty(_e,"StackRouter",{enumerable:!0,get:function(){return o.StackRouter}}),Object.defineProperty(_e,"TabActions",{enumerable:!0,get:function(){return u.TabActions}}),Object.defineProperty(_e,"TabRouter",{enumerable:!0,get:function(){return u.TabRouter}}),Object.defineProperty(_e,"CommonActions",{enumerable:!0,get:function(){return e}});var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2]),o=r(_d[3]),u=r(_d[4]),c=r(_d[5]);Object.keys(c).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return c[e]}})})},11,[12,13,15,17,16,18]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.goBack=function(){return{type:'GO_BACK'}},e.navigate=function(...t){if('string'==typeof t[0]){const[n,o,p]=t;return'boolean'==typeof p&&console.warn("Passing a boolean as the third argument to 'navigate' is deprecated. Pass '{ merge: true }' instead."),{type:'NAVIGATE',payload:{name:n,params:o,merge:'boolean'==typeof p?p:p?.merge,pop:p?.pop}}}{const n=t[0]||{};if(!('name'in n))throw new Error('You need to specify a name when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.');return{type:'NAVIGATE',payload:n}}},e.navigateDeprecated=function(...t){if('string'==typeof t[0])return{type:'NAVIGATE_DEPRECATED',payload:{name:t[0],params:t[1]}};{const n=t[0]||{};if(!('name'in n))throw new Error('You need to specify a name when calling navigateDeprecated with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigatelegacy for usage.');return{type:'NAVIGATE_DEPRECATED',payload:n}}},e.reset=function(t){return{type:'RESET',payload:t}},e.setParams=function(t){return{type:'SET_PARAMS',payload:{params:t}}},e.replaceParams=function(t){return{type:'REPLACE_PARAMS',payload:{params:t}}},e.preload=function(t,n){return{type:'PRELOAD',payload:{name:t,params:n}}}},12,[]); -__d(function(g,_r,_i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"BaseRouter",{enumerable:!0,get:function(){return s}});var t=_r(d[0]);const s={getStateForAction(s,r){switch(r.type){case'SET_PARAMS':case'REPLACE_PARAMS':{const t=r.source?s.routes.findIndex(t=>t.key===r.source):s.index;return-1===t?null:{...s,routes:s.routes.map((s,o)=>o===t?{...s,params:'REPLACE_PARAMS'===r.type?r.payload.params:{...s.params,...r.payload.params}}:s)}}case'RESET':{const o=r.payload;return 0===o.routes.length||o.routes.some(t=>!s.routeNames.includes(t.name))?null:!1===o.stale?s.routeNames.length!==o.routeNames.length||o.routeNames.some(t=>!s.routeNames.includes(t))?null:{...o,routes:o.routes.map(s=>s.key?s:{...s,key:`${s.name}-${(0,t.nanoid)()}`})}:o}default:return null}},shouldActionChangeFocus:t=>'NAVIGATE'===t.type||'NAVIGATE_DEPRECATED'===t.type}},13,[826]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"DrawerActions",{enumerable:!0,get:function(){return n}}),e.DrawerRouter=function({defaultStatus:s="closed",...u}){const c=(0,o.TabRouter)(u),y=t=>Boolean(t.history?.some(t=>'drawer'===t.type)),l=t=>y(t)?t:{...t,history:[...t.history,{type:'drawer',status:'open'===s?'closed':'open'}]},R=t=>y(t)?{...t,history:t.history.filter(t=>'drawer'!==t.type)}:t,A=t=>'open'===s?R(t):l(t),p=t=>'open'===s?l(t):R(t);return{...c,type:'drawer',getInitialState:({routeNames:o,routeParamList:n,routeGetIdList:u})=>({...c.getInitialState({routeNames:o,routeParamList:n,routeGetIdList:u}),default:s,stale:!1,type:'drawer',key:`drawer-${(0,t.nanoid)()}`}),getRehydratedState(o,{routeNames:n,routeParamList:u,routeGetIdList:A}){if(!1===o.stale)return o;let p=c.getRehydratedState(o,{routeNames:n,routeParamList:u,routeGetIdList:A});return y(o)&&(p=R(p),p=l(p)),{...p,default:s,type:'drawer',key:`drawer-${(0,t.nanoid)()}`}},getStateForRouteFocus(t,o){const n=c.getStateForRouteFocus(t,o);return p(n)},getStateForAction(t,o,n){switch(o.type){case'OPEN_DRAWER':return A(t);case'CLOSE_DRAWER':return p(t);case'TOGGLE_DRAWER':return y(t)?R(t):l(t);case'JUMP_TO':case'NAVIGATE':case'NAVIGATE_DEPRECATED':{const s=c.getStateForAction(t,o,n);return null!=s&&s.index!==t.index?p(s):s}case'GO_BACK':return y(t)?R(t):c.getStateForAction(t,o,n);default:return c.getStateForAction(t,o,n)}},actionCreators:n}};var t=r(d[0]),o=r(d[1]);const n={...o.TabActions,openDrawer:()=>({type:'OPEN_DRAWER'}),closeDrawer:()=>({type:'CLOSE_DRAWER'}),toggleDrawer:()=>({type:'TOGGLE_DRAWER'})}},15,[826,16]); -__d(function(g,_r,_i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"TabActions",{enumerable:!0,get:function(){return s}}),e.TabRouter=function({initialRouteName:o,backBehavior:y="firstRoute"}){return{...r.BaseRouter,type:'tab',getInitialState({routeNames:r,routeParamList:s}){const i=void 0!==o&&r.includes(o)?r.indexOf(o):0,u=r.map(r=>({name:r,key:`${r}-${(0,t.nanoid)()}`,params:s[r]})),p=n(u,i,y,o);return{stale:!1,type:'tab',key:`tab-${(0,t.nanoid)()}`,index:i,routeNames:r,history:p,routes:u,preloadedRouteKeys:[]}},getRehydratedState(r,{routeNames:s,routeParamList:n}){const u=r;if(!1===u.stale)return u;const p=s.map(r=>{const o=u.routes.find(t=>t.name===r);return{...o,name:r,key:o&&o.name===r&&o.key?o.key:`${r}-${(0,t.nanoid)()}`,params:void 0!==n[r]?{...n[r],...o?o.params:void 0}:o?o.params:void 0}}),l=Math.min(Math.max(s.indexOf(u.routes[u?.index??0]?.name),0),p.length-1),c=p.map(t=>t.key),f=u.history?.filter(t=>c.includes(t.key))??[];return i({stale:!1,type:'tab',key:`tab-${(0,t.nanoid)()}`,index:l,routeNames:s,history:f,routes:p,preloadedRouteKeys:u.preloadedRouteKeys?.filter(t=>c.includes(t))??[]},l,y,o)},getStateForRouteNamesChange(r,{routeNames:s,routeParamList:i,routeKeyChanges:u}){const p=s.map(o=>r.routes.find(t=>t.name===o&&!u.includes(t.name))||{name:o,key:`${o}-${(0,t.nanoid)()}`,params:i[o]}),l=Math.max(0,s.indexOf(r.routes[r.index].name));let c=r.history.filter(t=>'route'!==t.type||p.find(r=>r.key===t.key));return c.length||(c=n(p,l,y,o)),{...r,history:c,routeNames:s,routes:p,index:l}},getStateForRouteFocus(t,r){const s=t.routes.findIndex(t=>t.key===r);return-1===s||s===t.index?t:i(t,s,y,o)},getStateForAction(s,n,{routeParamList:u,routeGetIdList:p}){switch(n.type){case'JUMP_TO':case'NAVIGATE':case'NAVIGATE_DEPRECATED':{const r=s.routes.findIndex(t=>t.name===n.payload.name);if(-1===r)return null;const l=i({...s,routes:s.routes.map(r=>{if(r.name!==n.payload.name)return r;const o=p[r.name],s=o?.({params:r.params}),i=o?.({params:n.payload.params}),y=s===i?r.key:`${r.name}-${(0,t.nanoid)()}`;let l;l='NAVIGATE'!==n.type&&'NAVIGATE_DEPRECATED'!==n.type||!n.payload.merge||s!==i?void 0!==u[r.name]?{...u[r.name],...n.payload.params}:n.payload.params:void 0!==n.payload.params||void 0!==u[r.name]?{...u[r.name],...r.params,...n.payload.params}:r.params;const c='NAVIGATE'===n.type&&null!=n.payload.path?n.payload.path:r.path;return l!==r.params||c!==r.path?{...r,key:y,path:c,params:l}:r})},r,y,o);return{...l,preloadedRouteKeys:l.preloadedRouteKeys.filter(t=>t!==s.routes[l.index].key)}}case'SET_PARAMS':case'REPLACE_PARAMS':{const t=r.BaseRouter.getStateForAction(s,n);if(null!==t){const r=t.index;if(null!=r){const o=t.routes[r],n=s.history.findLastIndex(t=>t.key===o.key);let i=s.history;return-1!==n&&(i=[...s.history],i[n]={...i[n],params:o.params}),{...t,history:i}}}return t}case'GO_BACK':{if(1===s.history.length)return null;const t=s.history[s.history.length-2],r=t?.key,o=s.routes.findLastIndex(t=>t.key===r);if(-1===o)return null;let n=s.routes;return'fullHistory'===y&&n[o].params!==t.params&&(n=[...s.routes],n[o]={...n[o],params:t.params}),{...s,routes:n,preloadedRouteKeys:s.preloadedRouteKeys.filter(t=>t!==s.routes[o].key),history:s.history.slice(0,-1),index:o}}case'PRELOAD':{const r=s.routes.findIndex(t=>t.name===n.payload.name);if(-1===r)return null;const o=s.routes[r],i=p[o.name],y=i?.({params:o.params}),l=i?.({params:n.payload.params}),c=y===l?o.key:`${o.name}-${(0,t.nanoid)()}`,f=void 0!==n.payload.params||void 0!==u[o.name]?{...u[o.name],...n.payload.params}:void 0,k=f!==o.params?{...o,key:c,params:f}:o;return{...s,preloadedRouteKeys:s.preloadedRouteKeys.filter(t=>t!==o.key).concat(k.key),routes:s.routes.map((t,o)=>o===r?k:t),history:c===o.key?s.history:s.history.filter(t=>t.key!==o.key)}}default:return r.BaseRouter.getStateForAction(s,n)}},actionCreators:s}};var t=_r(d[0]),r=_r(d[1]);const o='route',s={jumpTo:(t,r)=>({type:'JUMP_TO',payload:{name:t,params:r}})},n=(t,r,s,n)=>{const i=[{type:o,key:t[r].key}];let y;switch(s){case'order':for(let s=r;s>0;s--)i.unshift({type:o,key:t[s-1].key});break;case'firstRoute':0!==r&&i.unshift({type:o,key:t[0].key});break;case'initialRoute':y=t.findIndex(t=>t.name===n),y=-1===y?0:y,r!==y&&i.unshift({type:o,key:t[y].key})}return i},i=(t,r,s,i)=>{let y=t.history;if('history'===s||'fullHistory'===s){const n=t.routes[r];if('history'===s)y=y.filter(t=>'route'===t.type&&t.key!==n.key);else if('fullHistory'===s){const t=y.findLastIndex(t=>'route'===t.type);n.key===y[t]?.key&&(y=[...y.slice(0,t),...y.slice(t+1)])}y=y.concat({type:o,key:n.key,params:'fullHistory'===s?n.params:void 0})}else y=n(t.routes,r,s,i);return{...t,index:r,history:y}}},16,[826,13]); -__d(function(g,_r,_i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"StackActions",{enumerable:!0,get:function(){return n}}),e.StackRouter=function(r){const s={...t.BaseRouter,type:'stack',getInitialState({routeNames:t,routeParamList:n}){const s=void 0!==r.initialRouteName&&t.includes(r.initialRouteName)?r.initialRouteName:t[0];return{stale:!1,type:'stack',key:`stack-${(0,o.nanoid)()}`,index:0,routeNames:t,preloadedRoutes:[],routes:[{key:`${s}-${(0,o.nanoid)()}`,name:s,params:n[s]}]}},getRehydratedState(t,{routeNames:n,routeParamList:s}){const p=t;if(!1===p.stale)return p;const l=p.routes.filter(o=>n.includes(o.name)).map(t=>({...t,key:t.key||`${t.name}-${(0,o.nanoid)()}`,params:void 0!==s[t.name]?{...s[t.name],...t.params}:t.params})),i=p.preloadedRoutes?.filter(o=>n.includes(o.name)).map(t=>({...t,key:t.key||`${t.name}-${(0,o.nanoid)()}`,params:void 0!==s[t.name]?{...s[t.name],...t.params}:t.params}))??[];if(0===l.length){const t=void 0!==r.initialRouteName?r.initialRouteName:n[0];l.push({key:`${t}-${(0,o.nanoid)()}`,name:t,params:s[t]})}return{stale:!1,type:'stack',key:`stack-${(0,o.nanoid)()}`,index:l.length-1,routeNames:n,routes:l,preloadedRoutes:i}},getStateForRouteNamesChange(t,{routeNames:n,routeParamList:s,routeKeyChanges:p}){const l=t.routes.filter(o=>n.includes(o.name)&&!p.includes(o.name));if(0===l.length){const t=void 0!==r.initialRouteName&&n.includes(r.initialRouteName)?r.initialRouteName:n[0];l.push({key:`${t}-${(0,o.nanoid)()}`,name:t,params:s[t]})}return{...t,routeNames:n,routes:l,index:Math.min(t.index,l.length-1)}},getStateForRouteFocus(o,t){const n=o.routes.findIndex(o=>o.key===t);return-1===n||n===o.index?o:{...o,index:n,routes:o.routes.slice(0,n+1)}},getStateForAction(n,r,p){const{routeParamList:l}=p;switch(r.type){case'REPLACE':{const t=r.target===n.key&&r.source?n.routes.findIndex(o=>o.key===r.source):n.index;if(-1===t)return null;const{name:s,params:p}=r.payload;return n.routeNames.includes(s)?{...n,routes:n.routes.map((n,r)=>r===t?{key:`${s}-${(0,o.nanoid)()}`,name:s,params:void 0!==l[s]?{...l[s],...p}:p}:n)}:null}case'PUSH':case'NAVIGATE':{if(!n.routeNames.includes(r.payload.name))return null;const t=p.routeGetIdList[r.payload.name],s=t?.({params:r.payload.params});let i,u,y;if(void 0!==s)i=n.routes.findLast(o=>o.name===r.payload.name&&s===t?.({params:o.params}));else if('NAVIGATE'===r.type){const o=n.routes[n.index];r.payload.name===o.name?i=o:r.payload.pop&&(i=n.routes.findLast(o=>o.name===r.payload.name))}if(i||(i=n.preloadedRoutes.find(o=>o.name===r.payload.name&&s===t?.({params:o.params}))),u='NAVIGATE'===r.type&&r.payload.merge&&i?void 0!==r.payload.params||void 0!==l[r.payload.name]?{...l[r.payload.name],...i.params,...r.payload.params}:i.params:void 0!==l[r.payload.name]?{...l[r.payload.name],...r.payload.params}:r.payload.params,i)if('NAVIGATE'===r.type&&r.payload.pop){y=[];for(const o of n.routes){if(o.key===i.key){y.push({...i,path:void 0!==r.payload.path?r.payload.path:i.path,params:u});break}y.push(o)}}else y=n.routes.filter(o=>o.key!==i.key),y.push({...i,path:'NAVIGATE'===r.type&&void 0!==r.payload.path?r.payload.path:i.path,params:u});else y=[...n.routes,{key:`${r.payload.name}-${(0,o.nanoid)()}`,name:r.payload.name,path:'NAVIGATE'===r.type?r.payload.path:void 0,params:u}];return{...n,index:y.length-1,preloadedRoutes:n.preloadedRoutes.filter(o=>y[y.length-1].key!==o.key),routes:y}}case'NAVIGATE_DEPRECATED':{if(n.preloadedRoutes.find(o=>o.name===r.payload.name&&i===s?.({params:o.params})))return null;if(!n.routeNames.includes(r.payload.name))return null;let t=-1;const s=p.routeGetIdList[r.payload.name],i=s?.({params:r.payload.params});if(i)t=n.routes.findIndex(o=>o.name===r.payload.name&&i===s?.({params:o.params}));else if(n.routes[n.index].name===r.payload.name)t=n.index;else for(let o=n.routes.length-1;o>=0;o--)if(n.routes[o].name===r.payload.name){t=o;break}if(-1===t){const t=[...n.routes,{key:`${r.payload.name}-${(0,o.nanoid)()}`,name:r.payload.name,params:void 0!==l[r.payload.name]?{...l[r.payload.name],...r.payload.params}:r.payload.params}];return{...n,routes:t,index:t.length-1}}const u=n.routes[t];let y;return y=r.payload.merge?void 0!==r.payload.params||void 0!==l[u.name]?{...l[u.name],...u.params,...r.payload.params}:u.params:void 0!==l[u.name]?{...l[u.name],...r.payload.params}:r.payload.params,{...n,index:t,routes:[...n.routes.slice(0,t),y!==u.params?{...u,params:y}:n.routes[t]]}}case'POP':{const o=r.target===n.key&&r.source?n.routes.findIndex(o=>o.key===r.source):n.index;if(o>0){const t=Math.max(o-r.payload.count+1,1),s=n.routes.slice(0,t).concat(n.routes.slice(o+1));return{...n,index:s.length-1,routes:s}}return null}case'POP_TO_TOP':return s.getStateForAction(n,{type:'POP',payload:{count:n.routes.length-1}},p);case'POP_TO':{if(!n.routeNames.includes(r.payload.name))return null;let t=-1;const s=p.routeGetIdList[r.payload.name],i=s?.({params:r.payload.params});if(i)t=n.routes.findIndex(o=>o.name===r.payload.name&&i===s?.({params:o.params}));else if(n.routes[n.index].name===r.payload.name)t=n.index;else for(let o=n.routes.length-1;o>=0;o--)if(n.routes[o].name===r.payload.name){t=o;break}if(-1===t){const t=[...n.routes.slice(0,-1),{key:`${r.payload.name}-${(0,o.nanoid)()}`,name:r.payload.name,params:void 0!==l[r.payload.name]?{...l[r.payload.name],...r.payload.params}:r.payload.params}];return{...n,routes:t,index:t.length-1}}const u=n.routes[t];let y;return y=r.payload.merge?void 0!==r.payload.params||void 0!==l[u.name]?{...l[u.name],...u.params,...r.payload.params}:u.params:void 0!==l[u.name]?{...l[u.name],...r.payload.params}:r.payload.params,{...n,index:t,routes:[...n.routes.slice(0,t),y!==u.params?{...u,params:y}:n.routes[t]]}}case'GO_BACK':return n.index>0?s.getStateForAction(n,{type:'POP',payload:{count:1},target:r.target,source:r.source},p):null;case'PRELOAD':{const t=p.routeGetIdList[r.payload.name],s=t?.({params:r.payload.params});let i;return void 0!==s&&(i=n.routes.find(o=>o.name===r.payload.name&&s===t?.({params:o.params}))),i?{...n,routes:n.routes.map(o=>o.key!==i?.key?o:{...o,params:void 0!==l[r.payload.name]?{...l[r.payload.name],...r.payload.params}:r.payload.params})}:{...n,preloadedRoutes:n.preloadedRoutes.filter(o=>o.name!==r.payload.name||s!==t?.({params:o.params})).concat({key:`${r.payload.name}-${(0,o.nanoid)()}`,name:r.payload.name,params:void 0!==l[r.payload.name]?{...l[r.payload.name],...r.payload.params}:r.payload.params})}}default:return t.BaseRouter.getStateForAction(n,r)}},actionCreators:n};return s};var o=_r(d[0]),t=_r(d[1]);const n={replace:(o,t)=>({type:'REPLACE',payload:{name:o,params:t}}),push:(o,t)=>({type:'PUSH',payload:{name:o,params:t}}),pop:(o=1)=>({type:'POP',payload:{count:o}}),popToTop:()=>({type:'POP_TO_TOP'}),popTo:(o,t,n)=>('boolean'==typeof n&&console.warn("Passing a boolean as the third argument to 'popTo' is deprecated. Pass '{ merge: true }' instead."),{type:'POP_TO',payload:{name:o,params:t,merge:'boolean'==typeof n?n:n?.merge}})}},17,[826,13]); -__d(function(g,r,i,a,m,e,d){},18,[]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},19,[20]); +__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"EventEmitter",{enumerable:!0,get:function(){return t.EventEmitter}}),Object.defineProperty(_e,"NativeModule",{enumerable:!0,get:function(){return n.NativeModule}}),Object.defineProperty(_e,"SharedObject",{enumerable:!0,get:function(){return o.SharedObject}}),Object.defineProperty(_e,"SharedRef",{enumerable:!0,get:function(){return u.SharedRef}}),Object.defineProperty(_e,"Platform",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(_e,"uuid",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(_e,"requireNativeViewManager",{enumerable:!0,get:function(){return l.requireNativeViewManager}}),Object.defineProperty(_e,"CodedError",{enumerable:!0,get:function(){return h.CodedError}}),Object.defineProperty(_e,"UnavailabilityError",{enumerable:!0,get:function(){return E.UnavailabilityError}}),Object.defineProperty(_e,"LegacyEventEmitter",{enumerable:!0,get:function(){return w.LegacyEventEmitter}}),Object.defineProperty(_e,"NativeModulesProxy",{enumerable:!0,get:function(){return k.default}}),Object.defineProperty(_e,"installOnUIRuntime",{enumerable:!0,get:function(){return M.installOnUIRuntime}}),r(d[0]),r(d[1]);var t=r(d[2]),n=r(d[3]),o=r(d[4]),u=r(d[5]),c=e(r(d[6])),f=e(r(d[7])),l=r(d[8]),b=r(d[9]);Object.keys(b).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return b[e]}})});var y=r(d[10]);Object.keys(y).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return y[e]}})});var O=r(d[11]);Object.keys(O).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return O[e]}})});var p=r(d[12]);Object.keys(p).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return p[e]}})});var j=r(d[13]);Object.keys(j).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return j[e]}})});var P=r(d[14]);Object.keys(P).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return P[e]}})});var s=r(d[15]);Object.keys(s).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return s[e]}})});var v=r(d[16]);Object.keys(v).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return v[e]}})});var h=r(d[17]),E=r(d[18]),w=r(d[19]),k=e(r(d[20])),M=r(d[21])},8,[9,10,23,25,26,27,28,13,31,34,35,36,37,38,41,42,43,33,32,44,51,52]); +__d(function(g,r,i,a,m,e,d){},9,[]); +__d(function(g,r,i,a,m,e,d){"use strict";(0,r(d[0]).installExpoGlobalPolyfill)()},10,[11]); +__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.installExpoGlobalPolyfill=function(){if(globalThis.expo)return;globalThis.expo={EventEmitter:o.EventEmitter,NativeModule:o.NativeModule,SharedObject:o.SharedObject,SharedRef:o.SharedRef,modules:globalThis.ExpoDomWebView?.expoModulesProxy??{},uuidv4:l.default.v4,uuidv5:l.default.v5,getViewConfig:()=>{throw new Error('Method not implemented.')},reloadAppAsync:async()=>{window.location.reload()},expoModulesCoreVersion:void 0,cacheDir:void 0,documentsDir:void 0,installOnUIRuntime:()=>{throw new Error('Method not implemented.')}}};var e,o=r(d[0]),t=r(d[1]),l=(e=t)&&e.__esModule?e:{default:e},n=r(d[2]);Object.keys(n).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return n[e]}})})},11,[12,13,18]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"EventEmitter",{enumerable:!0,get:function(){return t}}),Object.defineProperty(e,"NativeModule",{enumerable:!0,get:function(){return s}}),Object.defineProperty(e,"SharedObject",{enumerable:!0,get:function(){return n}}),Object.defineProperty(e,"SharedRef",{enumerable:!0,get:function(){return o}});class t{addListener(t,s){this.listeners||(this.listeners=new Map),this.listeners?.has(t)||this.listeners?.set(t,new Set);const n=this.listenerCount(t);return this.listeners?.get(t)?.add(s),0===n&&1===this.listenerCount(t)&&this.startObserving(t),{remove:()=>{this.removeListener(t,s)}}}removeListener(t,s){const n=this.listeners?.get(t)?.delete(s);0===this.listenerCount(t)&&n&&this.stopObserving(t)}removeAllListeners(t){const s=this.listenerCount(t);this.listeners?.get(t)?.clear(),s>0&&this.stopObserving(t)}emit(t,...s){new Set(this.listeners?.get(t)).forEach(t=>{try{t(...s)}catch(t){console.error(t)}})}listenerCount(t){return this.listeners?.get(t)?.size??0}startObserving(t){}stopObserving(t){}}class s extends t{}class n extends t{release(){}}class o extends n{nativeRefType='unknown'}},12,[]); +__d(function(g,r,i,a,m,_e,d){"use strict";function _interopDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return _default}});var _libSha=r(d[0]),sha1=_interopDefault(_libSha),_libV=r(d[1]),v35=_interopDefault(_libV),_uuidTypes=r(d[2]);function uuidv4(){return'undefined'==typeof crypto&&'undefined'==typeof window?eval('require')('node:crypto').randomUUID():crypto.randomUUID()}const uuid={v4:uuidv4,v5:(0,v35.default)('v5',80,sha1.default),namespace:_uuidTypes.Uuidv5Namespace};var _default=uuid},13,[14,15,17]); +__d(function(g,r,_i,_a,m,_e,_d){'use strict';function e(e,t,n,o){switch(e){case 0:return t&n^~t&o;case 1:case 3:return t^n^o;case 2:return t&n^t&o^n&o;default:return 0}}function t(e,t){return e<>>32-t}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var n=function(n){const o=[1518500249,1859775393,2400959708,3395469782],c=[1732584193,4023233417,2562383102,271733878,3285377520];if('string'==typeof n){const e=unescape(encodeURIComponent(n));n=new Array(e.length);for(let t=0;t>>0;i=h,h=s,s=t(a,30)>>>0,a=f,f=u}c[0]=c[0]+f>>>0,c[1]=c[1]+a>>>0,c[2]=c[2]+s>>>0,c[3]=c[3]+h>>>0,c[4]=c[4]+i>>>0}return[c[0]>>24&255,c[0]>>16&255,c[0]>>8&255,255&c[0],c[1]>>24&255,c[1]>>16&255,c[1]>>8&255,255&c[1],c[2]>>24&255,c[2]>>16&255,c[2]>>8&255,255&c[2],c[3]>>24&255,c[3]>>16&255,c[3]>>8&255,255&c[3],c[4]>>24&255,c[4]>>16&255,c[4]>>8&255,255&c[4]]}},14,[]); +__d(function(g,r,_i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return u}});var e,t=r(d[0]),n=(e=t)&&e.__esModule?e:{default:e};function o(e){const t=[];return e.replace(/[a-fA-F0-9]{2}/g,e=>(t.push(parseInt(e,16)),'')),t}function c(e){e=unescape(encodeURIComponent(e));const t=new Array(e.length);for(let n=0;n'web'in t?t.web:t.default,get isTesting(){return!1},get Version(){return'0.0.0'}}},29,[]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"isDOMAvailable",{enumerable:!0,get:function(){return n}}),Object.defineProperty(e,"canUseEventListeners",{enumerable:!0,get:function(){return t}}),Object.defineProperty(e,"canUseViewport",{enumerable:!0,get:function(){return o}}),Object.defineProperty(e,"isAsyncDebugging",{enumerable:!0,get:function(){return c}});const n='undefined'!=typeof window&&!!window.document?.createElement,t=n&&!(!window.addEventListener&&!window.attachEvent),o=n&&!!window.screen,c=!1},30,[]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.requireNativeViewManager=function(n,o){throw new t.UnavailabilityError('expo-modules-core','requireNativeViewManager')};var t=r(d[0])},31,[32]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"UnavailabilityError",{enumerable:!0,get:function(){return o}});var t=r(d[0]);r(d[1]);class o extends t.CodedError{constructor(t,o){super('ERR_UNAVAILABLE',`The method or property ${t}.${o} is not available on web, are you sure you've linked all the native dependencies properly?`)}}},32,[33,28]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"CodedError",{enumerable:!0,get:function(){return t}});class t extends Error{constructor(t,o){super(o),this.code=t}}},33,[]); +__d(function(g,r,i,a,m,e,d){"use strict";function o(o){return'object'==typeof globalThis.ExpoDomWebView&&null!=globalThis?.expo?.modules?globalThis.expo?.modules?.[o]??null:null}Object.defineProperty(e,'__esModule',{value:!0}),e.requireNativeModule=function(n){const l=o(n);if(null!=l)return l;if('undefined'==typeof window)return{};throw new Error(`Cannot find native module '${n}'`)},e.requireOptionalNativeModule=o},34,[]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.registerWebModule=function(s,l){if((0,o.ensureNativeModulesAreInstalled)(),!(l=l??s.name))throw new Error('Web module implementation is missing a name - it is either not a class or has been minified. Pass the name as a second argument to the `registerWebModule` function.');globalThis?.expo?.modules||(globalThis.expo.modules={});if(globalThis.expo.modules[l])return globalThis.expo.modules[l];return globalThis.expo.modules[l]=new s,globalThis.expo.modules[l]};var o=r(d[0])},35,[24]); +__d(function(g,r,i,a,m,e,d){},36,[]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"PermissionStatus",{enumerable:!0,get:function(){return t}});let t=(function(t){return t.GRANTED="granted",t.UNDETERMINED="undetermined",t.DENIED="denied",t})({})},37,[]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.createPermissionHook=function(t){return n=>u(t,n)};var t=r(d[0]);function u(u,n){const c=(0,t.useRef)(!0),[s,o]=(0,t.useState)(null),{get:l=!0,request:f=!1,...h}=n||{},M=(0,t.useCallback)(async()=>{let t;return t=Object.keys(h).length>0?await u.getMethod(h):await u.getMethod(),c.current&&o(t),t},[u.getMethod]),b=(0,t.useCallback)(async()=>{let t;return t=Object.keys(h).length>0?await u.requestMethod(h):await u.requestMethod(),c.current&&o(t),t},[u.requestMethod]);return(0,t.useEffect)(function(){f&&b(),!f&&l&&M()},[l,f,b,M]),(0,t.useEffect)(function(){return c.current=!0,()=>{c.current=!1}},[]),[s,b,M]}},38,[39]); +__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},39,[40]); __d(function(g,r,_i,a,m,e,d){ /** * @license React @@ -40,57 +57,108 @@ __d(function(g,r,_i,a,m,e,d){ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -"use strict";var t=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),u=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),s=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),h=Symbol.iterator;var _={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,b={};function S(t,n,o){this.props=t,this.context=n,this.refs=b,this.updater=o||_}function E(){}function w(t,n,o){this.props=t,this.context=n,this.refs=b,this.updater=o||_}S.prototype.isReactComponent={},S.prototype.setState=function(t,n){if("object"!=typeof t&&"function"!=typeof t&&null!=t)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,n,"setState")},S.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")},E.prototype=S.prototype;var R=w.prototype=new E;R.constructor=w,v(R,S.prototype),R.isPureReactComponent=!0;var j=Array.isArray,H={H:null,A:null,T:null,S:null,V:null},k=Object.prototype.hasOwnProperty;function C(n,o,u,i,c,s){return u=s.ref,{$$typeof:t,type:n,key:o,ref:void 0!==u?u:null,props:s}}function $(n){return"object"==typeof n&&null!==n&&n.$$typeof===t}var T=/\/+/g;function O(t,n){return"object"==typeof t&&null!==t&&null!=t.key?(o=""+t.key,u={"=":"=0",":":"=2"},"$"+o.replace(/[=:]/g,function(t){return u[t]})):n.toString(36);var o,u}function x(){}function A(t){switch(t.status){case"fulfilled":return t.value;case"rejected":throw t.reason;default:switch("string"==typeof t.status?t.then(x,x):(t.status="pending",t.then(function(n){"pending"===t.status&&(t.status="fulfilled",t.value=n)},function(n){"pending"===t.status&&(t.status="rejected",t.reason=n)})),t.status){case"fulfilled":return t.value;case"rejected":throw t.reason}}throw t}function I(o,u,i,c,s){var f=typeof o;"undefined"!==f&&"boolean"!==f||(o=null);var l,p,_=!1;if(null===o)_=!0;else switch(f){case"bigint":case"string":case"number":_=!0;break;case"object":switch(o.$$typeof){case t:case n:_=!0;break;case y:return I((_=o._init)(o._payload),u,i,c,s)}}if(_)return s=s(o),_=""===c?"."+O(o,0):c,j(s)?(i="",null!=_&&(i=_.replace(T,"$&/")+"/"),I(s,u,i,"",function(t){return t})):null!=s&&($(s)&&(l=s,p=i+(null==s.key||o&&o.key===s.key?"":(""+s.key).replace(T,"$&/")+"/")+_,s=C(l.type,p,void 0,0,0,l.props)),u.push(s)),1;_=0;var v,b=""===c?".":c+":";if(j(o))for(var S=0;S{c.routes.forEach(c=>{const o=t?`${t} > ${c.name}`:c.name;c.state?.routeNames?.forEach(t=>{t===c.name&&n.push([o,`${o} > ${c.name}`])}),c.state&&s(o,c.state)})};return s('',t),n}},23,[]); -__d(function(g,r,_i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.checkSerializable=function(n){return t(n,new Set,[])};const t=(n,i,o)=>{if(null==n||'boolean'==typeof n||'number'==typeof n||'string'==typeof n)return{serializable:!0};if('[object Object]'!==Object.prototype.toString.call(n)&&!Array.isArray(n))return{serializable:!1,location:o,reason:'function'==typeof n?'Function':String(n)};if(i.has(n))return{serializable:!1,reason:'Circular reference',location:o};if(i.add(n),Array.isArray(n))for(let l=0;l{s[t]&&(s[t]=s[t].filter(t=>t!==n))};let u=null;return{get current(){return u},set current(t){u=t,null!=t&&Object.entries(s).forEach(([n,o])=>{o.forEach(o=>{t.addListener(n,o)})})},isReady:()=>null!=u&&u.isReady(),...o.reduce((t,o)=>(t[o]=(...t)=>{if(null!=u)return u[o](...t);switch(o){case'addListener':{const[n,o]=t;return s[n]=s[n]||[],s[n].push(o),()=>c(n,o)}case'removeListener':{const[n,o]=t;c(n,o);break}default:console.error(n)}},t),{})}};var t=r(d[0]);const n="The 'navigation' object hasn't been initialized yet. This might happen if you don't have a navigator mounted, or if the navigator hasn't finished mounting. See https://reactnavigation.org/docs/navigating-without-navigation-prop#handling-initialization for more details."},25,[11]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"DeprecatedNavigationInChildContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(!1)},26,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"SingleNavigatorContext",{enumerable:!0,get:function(){return o}}),_e.EnsureSingleNavigator=function({children:u}){const c=e.useRef(void 0),s=e.useMemo(()=>({register(e){const t=c.current;if(void 0!==t&&e!==t)throw new Error(n);c.current=e},unregister(e){e===c.current&&(c.current=void 0)}}),[]);return(0,t.jsx)(o.Provider,{value:s,children:u})};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]);const n="Another navigator is already registered for this container. You likely have multiple navigators under a single \"NavigationContainer\" or \"Screen\". Make sure each navigator is under a separate \"Screen\" container. See https://reactnavigation.org/docs/nesting-navigators for a guide on nesting.",o=e.createContext(void 0)},27,[19,2]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.findFocusedRoute=function(t){let n=t;for(;null!=n?.routes[n.index??0].state;)n=n.routes[n.index??0].state;const u=n?.routes[n?.index??0];return u}},28,[]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationBuilderContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext({onDispatchAction:()=>{},onOptionsChange:()=>{},scheduleUpdate:()=>{throw new Error("Couldn't find a context for scheduling updates.")},flushUpdates:()=>{throw new Error("Couldn't find a context for flushing updates.")}})},29,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationContainerRefContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},30,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationIndependentTreeContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(!1)},31,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationStateContext",{enumerable:!0,get:function(){return n}});var t=(function(t){if(t&&t.__esModule)return t;var e={};return t&&Object.keys(t).forEach(function(n){var o=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,o.get?o:{enumerable:!0,get:function(){return t[n]}})}),e.default=t,e})(r(_d[0]));const e="Couldn't find a navigation context. Have you wrapped your app with 'NavigationContainer'? See https://reactnavigation.org/docs/getting-started for setup instructions.",n=t.createContext({isDefault:!0,get getKey(){throw new Error(e)},get setKey(){throw new Error(e)},get getState(){throw new Error(e)},get setState(){throw new Error(e)},get getIsInitial(){throw new Error(e)}})},32,[19]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.ThemeProvider=function({value:u,children:o}){return(0,t.jsx)(n.ThemeContext.Provider,{value:u,children:o})},r(d[0]);var n=r(d[1]),t=r(d[2])},33,[19,34,2]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"ThemeContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0);e.displayName='ThemeContext'},34,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"UnhandledActionContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},35,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useChildListeners=function(){const{current:t}=e.useRef({action:[],focus:[]}),n=e.useCallback((e,n)=>{t[e].push(n);let u=!1;return()=>{const c=t[e].indexOf(n);!u&&c>-1&&(u=!0,t[e].splice(c,1))}},[t]);return{listeners:t,addListener:n}};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0]))},36,[19]); -__d(function(g,r,_i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useEventEmitter=function(t){const n=e.useRef(t);e.useEffect(()=>{n.current=t});const u=e.useRef(Object.create(null)),c=e.useCallback(e=>{const t=(t,n)=>{const c=u.current[t]?u.current[t][e]:void 0;if(!c)return;const o=c.indexOf(n);o>-1&&c.splice(o,1)};return{addListener:(n,c)=>{u.current[n]=u.current[n]||{},u.current[n][e]=u.current[n][e]||[],u.current[n][e].push(c);let o=!1;return()=>{o||(o=!0,t(n,c))}},removeListener:t}},[]),o=e.useCallback(({type:e,data:t,target:c,canPreventDefault:o})=>{const i=u.current[e]||{},s=void 0!==c?i[c]?.slice():[].concat(...Object.keys(i).map(e=>i[e])).filter((e,t,n)=>n.lastIndexOf(e)===t),f={get type(){return e}};if(void 0!==c&&Object.defineProperty(f,'target',{enumerable:!0,get:()=>c}),void 0!==t&&Object.defineProperty(f,'data',{enumerable:!0,get:()=>t}),o){let e=!1;Object.defineProperties(f,{defaultPrevented:{enumerable:!0,get:()=>e},preventDefault:{enumerable:!0,value(){e=!0}}})}return n.current?.(f),s?.forEach(e=>e(f)),f},[]);return e.useMemo(()=>({create:c,emit:o}),[c,o])};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0]))},37,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useKeyedChildListeners=function(){const{current:t}=e.useRef(Object.assign(Object.create(null),{getState:{},beforeRemove:{}})),n=e.useCallback((e,n,u)=>(t[e][n]=u,()=>{t[e][n]=void 0}),[t]);return{keyedListeners:t,addKeyedListener:n}};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0]))},38,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useNavigationIndependentTree=function(){return e.useContext(t.NavigationIndependentTreeContext)};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},39,[19,31]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useOptionsGetters=function({key:u,options:c,navigation:o}){const s=e.useRef(c),l=e.useRef({}),{onOptionsChange:f}=e.useContext(t.NavigationBuilderContext),{addOptionsGetter:d}=e.useContext(n.NavigationStateContext),O=e.useCallback(()=>{const e=o?.isFocused()??!0,t=Object.keys(l.current).length;e&&!t&&f(s.current??{})},[o,f]);e.useEffect(()=>(s.current=c,O(),o?.addListener('focus',O)),[o,c,O]);const b=e.useCallback(()=>{for(const e in l.current)if(e in l.current){const t=l.current[e]?.();if(null!==t)return t}return null},[]),p=e.useCallback(()=>{if(!(o?.isFocused()??!0))return null;const e=b();return null!==e?e:s.current},[o,b]);e.useEffect(()=>d?.(u,p),[p,d,u]);return{addOptionsGetter:e.useCallback((e,t)=>(l.current[e]=t,O(),()=>{delete l.current[e],O()}),[O]),getCurrentOptions:p}};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2])},40,[19,29,32]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useSyncState=function(e){const u=t.useRef(c(e)).current,s=t.useSyncExternalStore(u.subscribe,u.getState,u.getState);t.useDebugValue(s);const o=t.useRef([]),f=(0,n.default)(e=>{o.current.push(e)}),d=(0,n.default)(()=>{const e=o.current;o.current=[],0!==e.length&&u.batchUpdates(()=>{for(const t of e)t()})});return{state:s,getState:u.getState,setState:u.setState,scheduleUpdate:f,flushUpdates:d}};var e,t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(u){var n=Object.getOwnPropertyDescriptor(e,u);Object.defineProperty(t,u,n.get?n:{enumerable:!0,get:function(){return e[u]}})}),t.default=e,t})(r(_d[0])),u=r(_d[1]),n=(e=u)&&e.__esModule?e:{default:e},s=r(_d[2]);const c=e=>{const t=[];let u,n=!1;let c=!1,o=!1;return{getState:()=>(n||(n=!0,u=(0,s.deepFreeze)(e())),u),setState:e=>{u=(0,s.deepFreeze)(e),o=!0,c||t.forEach(e=>e())},batchUpdates:e=>{c=!0,e(),c=!1,o&&(o=!1,t.forEach(e=>e()))},subscribe:e=>(t.push(e),()=>{const u=t.indexOf(e);u>-1&&t.splice(u,1)})}}},41,[19,21,42]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"isPlainObject",{enumerable:!0,get:function(){return t}}),Object.defineProperty(e,"deepFreeze",{enumerable:!0,get:function(){return n}});const t=t=>'object'==typeof t&&null!==t&&Object.getPrototypeOf(t)===Object.prototype,n=t=>t},42,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.createNavigatorFactory=function(t){return function(u){return null!=u?{Navigator:t,Screen:o.Screen,Group:n.Group,config:u}:{Navigator:t,Screen:o.Screen,Group:n.Group}}};var n=r(d[0]),o=r(d[1])},43,[44,45]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.Group=function(u){return null}},44,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.Screen=function(n){return null}},45,[]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"CurrentRenderContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},46,[19]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.getActionFromState=function(n,s){const o=s?t(s):{},l=null!=n.index?n.routes.slice(0,n.index+1):n.routes;if(0===l.length)return;if(!(1===l.length&&void 0===l[0].key||2===l.length&&void 0===l[0].key&&l[0].name===o?.initialRouteName&&void 0===l[1].key))return{type:'RESET',payload:n};const c=n.routes[n.index??n.routes.length-1];let p=c?.state,u=o?.screens?.[c?.name],h={...c.params};const y=c?{name:c.name,path:c.path,params:h}:void 0;y&&u?.screens&&Object.keys(u.screens).length&&(y.pop=!0);for(;p;){if(0===p.routes.length)return;const t=null!=p.index?p.routes.slice(0,p.index+1):p.routes,n=t[t.length-1];if(Object.assign(h,{initial:void 0,screen:void 0,params:void 0,state:void 0}),1===t.length&&void 0===t[0].key)h.initial=!0,h.screen=n.name;else{if(2!==t.length||void 0!==t[0].key||t[0].name!==u?.initialRouteName||void 0!==t[1].key){h.state=p;break}h.initial=!1,h.screen=n.name}n.state?(h.params={...n.params},h.pop=!0,h=h.params):(h.path=n.path,h.params=n.params),p=n.state,u=u?.screens?.[n.name],u?.screens&&Object.keys(u.screens).length&&(h.pop=!0)}(y?.params.screen||y?.params.state)&&(y.pop=!0);if(!y)return;return{type:'NAVIGATE',payload:y}};const t=t=>'object'==typeof t&&null!=t?{initialRouteName:t.initialRouteName,screens:null!=t.screens?n(t.screens):void 0}:{},n=n=>Object.entries(n).reduce((n,[s,o])=>(n[s]=t(o),n),{})},47,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.getFocusedRouteNameFromRoute=function(n){const o=n[t.CHILD_STATE]??n.state,s=n.params;return o?o.routes[o.index??('string'==typeof o.type&&'stack'!==o.type?0:o.routes.length-1)].name:'string'==typeof s?.screen?s.screen:void 0};var t=r(d[0])},48,[49]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"CHILD_STATE",{enumerable:!0,get:function(){return n}}),_e.useRouteCache=function(u){const c=e.useMemo(()=>({current:new Map}),[]);return c.current=u.reduce((e,u)=>{const o=c.current.get(u.key),{state:f,...s}=u;let l;return l=o&&(0,t.isRecordEqual)(o,s)?o:s,Object.defineProperty(l,n,{enumerable:!1,configurable:!0,value:f}),e.set(u.key,l),e},new Map),Array.from(c.current.values())};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]);const n=Symbol('CHILD_STATE')},49,[19,50]); -__d(function(g,r,i,_a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.isRecordEqual=function(t,n){if(t===n)return!0;const c=Object.keys(t),u=Object.keys(n);if(c.length!==u.length)return!1;return c.every(c=>Object.is(t[c],n[c]))}},50,[]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.getPathFromState=function(t,o){if(null==t)throw Error(`Got '${String(t)}' for the navigation state. You must pass a valid state object.`);o&&(0,n.validatePathConfig)(o);const f=c(o);let p='/',u=t;const d={};for(;u;){let n,o,c='number'==typeof u.index?u.index:0,l=u.routes[c],h=f;const b=s(t),y=[];let j=!0;for(;l.name in h&&j;){if(n=h[l.name].parts,y.push(l.name),l.params){const e=h[l.name],t=Object.fromEntries(Object.entries(l.params).map(([t,n])=>{if(void 0===n){if(!e)return null;{const n=e.parts?.find(e=>e.param===t)?.optional;if(n)return null}}return[t,(e?.stringify?.[t]??String)(n)]}).filter(e=>null!=e));n?.length&&Object.assign(d,t),b===l&&(o={...t},n?.forEach(({param:e})=>{e&&o&&delete o[e]}))}if(h[l.name].screens&&void 0!==l.state){c='number'==typeof l.state.index?l.state.index:l.state.routes.length-1;const e=l.state.routes[c],t=h[l.name].screens;t&&e.name in t?(l=e,h=t):j=!1}else j=!1}if(void 0!==h[l.name]?p+=n?.map(({segment:e,param:t,optional:n})=>{if('*'===e)return l.name;if(t){const e=d[t];return void 0===e&&n?'':Array.from(String(e)).map(e=>/[^A-Za-z0-9\-._~!$&'()*+,;=:@]/g.test(e)?encodeURIComponent(e):e).join('')}return encodeURIComponent(e)}).join('/'):p+=encodeURIComponent(l.name),!o&&b.params&&(o=Object.fromEntries(Object.entries(b.params).map(([e,t])=>[e,String(t)]))),l.state)p+='/';else if(o){for(const e in o)'undefined'===o[e]&&delete o[e];const t=e.stringify(o,{sort:!1});t&&(p+=`?${t}`)}u=l.state}o?.path&&(p=`${o.path}/${p}`);p=p.replace(/\/+/g,'/'),p=p.length>1?p.replace(/\/$/,''):p,p.startsWith('/')||(p=`/${p}`);return p};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2]);const s=e=>{const t='number'==typeof e.index?e.routes[e.index]:e.routes[e.routes.length-1];return t.state?s(t.state):t},o=new WeakMap,c=e=>{if(!e?.screens)return{};const t=o.get(e?.screens);if(t)return t;const n=p(e.screens);return o.set(e.screens,n),n};const f=(e,n)=>{if('string'==typeof e){const s=(0,t.getPatternParts)(e);return n?{parts:[...n,...s]}:{parts:s}}if(e.exact&&void 0===e.path)throw new Error("A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.");const s=!0!==e.exact?[...n||[],...e.path?(0,t.getPatternParts)(e.path):[]]:e.path?(0,t.getPatternParts)(e.path):void 0,o=e.screens?p(e.screens,s):void 0;return{parts:s,stringify:e.stringify,screens:o}},p=(e,t)=>Object.fromEntries(Object.entries(e).map(([e,n])=>[e,f(n,t)]))},51,[52,57,58]); -__d(function(g,r,i,_a,m,e,d){'use strict';const t=r(d[0]),n=r(d[1]),a=r(d[2]),o=r(d[3]),s=Symbol('encodeFragmentIdentifier');function c(t){switch(t.arrayFormat){case'index':return n=>(a,o)=>{const s=a.length;return void 0===o||t.skipNull&&null===o||t.skipEmptyString&&''===o?a:null===o?[...a,[p(n,t),'[',s,']'].join('')]:[...a,[p(n,t),'[',p(s,t),']=',p(o,t)].join('')]};case'bracket':return n=>(a,o)=>void 0===o||t.skipNull&&null===o||t.skipEmptyString&&''===o?a:null===o?[...a,[p(n,t),'[]'].join('')]:[...a,[p(n,t),'[]=',p(o,t)].join('')];case'colon-list-separator':return n=>(a,o)=>void 0===o||t.skipNull&&null===o||t.skipEmptyString&&''===o?a:null===o?[...a,[p(n,t),':list='].join('')]:[...a,[p(n,t),':list=',p(o,t)].join('')];case'comma':case'separator':case'bracket-separator':{const n='bracket-separator'===t.arrayFormat?'[]=':'=';return a=>(o,s)=>void 0===s||t.skipNull&&null===s||t.skipEmptyString&&''===s?o:(s=null===s?'':s,0===o.length?[[p(a,t),n,p(s,t)].join('')]:[[o,p(s,t)].join(t.arrayFormatSeparator)])}default:return n=>(a,o)=>void 0===o||t.skipNull&&null===o||t.skipEmptyString&&''===o?a:null===o?[...a,p(n,t)]:[...a,[p(n,t),'=',p(o,t)].join('')]}}function l(t){let n;switch(t.arrayFormat){case'index':return(t,a,o)=>{n=/\[(\d*)\]$/.exec(t),t=t.replace(/\[\d*\]$/,''),n?(void 0===o[t]&&(o[t]={}),o[t][n[1]]=a):o[t]=a};case'bracket':return(t,a,o)=>{n=/(\[\])$/.exec(t),t=t.replace(/\[\]$/,''),n?void 0!==o[t]?o[t]=[].concat(o[t],a):o[t]=[a]:o[t]=a};case'colon-list-separator':return(t,a,o)=>{n=/(:list)$/.exec(t),t=t.replace(/:list$/,''),n?void 0!==o[t]?o[t]=[].concat(o[t],a):o[t]=[a]:o[t]=a};case'comma':case'separator':return(n,a,o)=>{const s='string'==typeof a&&a.includes(t.arrayFormatSeparator),c='string'==typeof a&&!s&&f(a,t).includes(t.arrayFormatSeparator);a=c?f(a,t):a;const l=s||c?a.split(t.arrayFormatSeparator).map(n=>f(n,t)):null===a?a:f(a,t);o[n]=l};case'bracket-separator':return(n,a,o)=>{const s=/(\[\])$/.test(n);if(n=n.replace(/\[\]$/,''),!s)return void(o[n]=a?f(a,t):a);const c=null===a?[]:a.split(t.arrayFormatSeparator).map(n=>f(n,t));void 0!==o[n]?o[n]=[].concat(o[n],c):o[n]=c};default:return(t,n,a)=>{void 0!==a[t]?a[t]=[].concat(a[t],n):a[t]=n}}}function u(t){if('string'!=typeof t||1!==t.length)throw new TypeError('arrayFormatSeparator must be single character string')}function p(n,a){return a.encode?a.strict?t(n):encodeURIComponent(n):n}function f(t,a){return a.decode?n(t):t}function y(t){return Array.isArray(t)?t.sort():'object'==typeof t?y(Object.keys(t)).sort((t,n)=>Number(t)-Number(n)).map(n=>t[n]):t}function b(t){const n=t.indexOf('#');return-1!==n&&(t=t.slice(0,n)),t}function j(t){let n='';const a=t.indexOf('#');return-1!==a&&(n=t.slice(a)),n}function k(t){const n=(t=b(t)).indexOf('?');return-1===n?'':t.slice(n+1)}function F(t,n){return n.parseNumbers&&!Number.isNaN(Number(t))&&'string'==typeof t&&''!==t.trim()?t=Number(t):!n.parseBooleans||null===t||'true'!==t.toLowerCase()&&'false'!==t.toLowerCase()||(t='true'===t.toLowerCase()),t}function O(t,n){u((n=Object.assign({decode:!0,sort:!0,arrayFormat:'none',arrayFormatSeparator:',',parseNumbers:!1,parseBooleans:!1},n)).arrayFormatSeparator);const o=l(n),s=Object.create(null);if('string'!=typeof t)return s;if(!(t=t.trim().replace(/^[?#&]/,'')))return s;for(const c of t.split('&')){if(''===c)continue;let[t,l]=a(n.decode?c.replace(/\+/g,' '):c,'=');l=void 0===l?null:['comma','separator','bracket-separator'].includes(n.arrayFormat)?l:f(l,n),o(f(t,n),l,s)}for(const t of Object.keys(s)){const a=s[t];if('object'==typeof a&&null!==a)for(const t of Object.keys(a))a[t]=F(a[t],n);else s[t]=F(a,n)}return!1===n.sort?s:(!0===n.sort?Object.keys(s).sort():Object.keys(s).sort(n.sort)).reduce((t,n)=>{const a=s[n];return Boolean(a)&&'object'==typeof a&&!Array.isArray(a)?t[n]=y(a):t[n]=a,t},Object.create(null))}e.extract=k,e.parse=O,e.stringify=(t,n)=>{if(!t)return'';u((n=Object.assign({encode:!0,strict:!0,arrayFormat:'none',arrayFormatSeparator:','},n)).arrayFormatSeparator);const a=a=>n.skipNull&&null==t[a]||n.skipEmptyString&&''===t[a],o=c(n),s={};for(const n of Object.keys(t))a(n)||(s[n]=t[n]);const l=Object.keys(s);return!1!==n.sort&&l.sort(n.sort),l.map(a=>{const s=t[a];return void 0===s?'':null===s?p(a,n):Array.isArray(s)?0===s.length&&'bracket-separator'===n.arrayFormat?p(a,n)+'[]':s.reduce(o(a),[]).join('&'):p(a,n)+'='+p(s,n)}).filter(t=>t.length>0).join('&')},e.parseUrl=(t,n)=>{n=Object.assign({decode:!0},n);const[o,s]=a(t,'#');return Object.assign({url:o.split('?')[0]||'',query:O(k(t),n)},n&&n.parseFragmentIdentifier&&s?{fragmentIdentifier:f(s,n)}:{})},e.stringifyUrl=(t,n)=>{n=Object.assign({encode:!0,strict:!0,[s]:!0},n);const a=b(t.url).split('?')[0]||'',o=e.extract(t.url),c=e.parse(o,{sort:!1}),l=Object.assign(c,t.query);let u=e.stringify(l,n);u&&(u=`?${u}`);let f=j(t.url);return t.fragmentIdentifier&&(f=`#${n[s]?p(t.fragmentIdentifier,n):t.fragmentIdentifier}`),`${a}${u}${f}`},e.pick=(t,n,a)=>{a=Object.assign({parseFragmentIdentifier:!0,[s]:!1},a);const{url:c,query:l,fragmentIdentifier:u}=e.parseUrl(t,a);return e.stringifyUrl({url:c,query:o(l,n),fragmentIdentifier:u},a)},e.exclude=(t,n,a)=>{const o=Array.isArray(n)?t=>!n.includes(t):(t,a)=>!n(t,a);return e.pick(t,o,a)}},52,[53,54,55,56]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports=t=>encodeURIComponent(t).replace(/[!'()*]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase()}`)},53,[]); -__d(function(g,r,_i,a,m,e,d){'use strict';var t=new RegExp("(%[a-f0-9]{2})|([^%]+?)",'gi'),n=new RegExp("(%[a-f0-9]{2})+",'gi');function o(t,n){try{return[decodeURIComponent(t.join(''))]}catch(t){}if(1===t.length)return t;n=n||1;var c=t.slice(0,n),p=t.slice(n);return Array.prototype.concat.call([],o(c),o(p))}function c(n){try{return decodeURIComponent(n)}catch(i){for(var c=n.match(t)||[],p=1;p{if('string'!=typeof t||'string'!=typeof n)throw new TypeError('Expected the arguments to be of type `string`');if(''===n)return[t];const s=t.indexOf(n);return-1===s?[t]:[t.slice(0,s),t.slice(s+n.length)]}},55,[]); -__d(function(g,r,_i,a,m,e,d){'use strict';m.exports=function(t,n){for(var i={},s=Object.keys(t),c=Array.isArray(n),f=0;fn.param).filter(Boolean);for(const[t,i]of f.entries())if(f.indexOf(i)!==t)throw new Error(`Duplicate param name '${i}' found in path: ${n}`);return t}},57,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.validatePathConfig=function n(o,s=!0){const c={path:'string',initialRouteName:'string',screens:'object',...s?null:{alias:'array',exact:'boolean',stringify:'object',parse:'object'}};if('object'!=typeof o||null===o)throw new Error(`Expected the configuration to be an object, but got ${JSON.stringify(o)}.`);const f=Object.fromEntries(Object.keys(o).map(t=>{if(!(t in c))return[t,'extraneous'];{const n=c[t],s=o[t];if(void 0!==s)if('array'===n){if(!Array.isArray(s))return[t,`expected 'Array', got '${typeof s}'`]}else if(typeof s!==n)return[t,`expected '${n}', got '${typeof s}'`]}return null}).filter(Boolean));if(Object.keys(f).length)throw new Error(`Found invalid properties in the configuration:\n${t(f)}\n\nYou can only specify the following properties:\n${t(c)}\n\nIf you want to specify configuration for screens, you need to specify them under a 'screens' property.\n\nSee https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.`);if(s&&'path'in o&&'string'==typeof o.path&&o.path.includes(':'))throw new Error(`Found invalid path '${o.path}'. The 'path' in the top-level configuration cannot contain patterns for params.`);'screens'in o&&o.screens&&Object.entries(o.screens).forEach(([t,o])=>{'string'!=typeof o&&n(o,!1)})};const t=t=>Object.entries(t).map(([t,n])=>`- ${t} (${n})`).join('\n')},58,[]); -__d(function(g,r,_i,_a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.getStateFromPath=function(e,t){const{initialRoutes:n,configs:s}=l(t),a=t?.screens;let o=e.replace(/\/+/g,'/').replace(/^\//,'').replace(/\?.*$/,'');o=o.endsWith('/')?o:`${o}/`;const i=t?.path?.replace(/^\//,'');if(i){const e=i.endsWith('/')?i:`${i}/`;if(!o.startsWith(e))return;o=o.replace(e,'')}if(void 0===a){const t=o.split('/').filter(Boolean).map(e=>({name:decodeURIComponent(e)}));return t.length?O(e,t,n):void 0}if('/'===o){const t=s.find(e=>''===e.segments.join('/'));return t?O(e,t.routeNames.map(e=>({name:e})),n,s):void 0}let u,c;const{routes:p,remainingPath:f}=j(o,s);void 0!==p&&(c=O(e,p,n,s),o=f,u=c);if(null==c||null==u)return;return u};var e,t=r(_d[0]),n=(e=t)&&e.__esModule?e:{default:e},s=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),a=r(_d[2]),o=r(_d[3]),i=r(_d[4]),u=r(_d[5]),c=r(_d[6]);const p=new WeakMap;function l(e){if(!e)return f();const t=p.get(e);if(t)return t;const n=f(e);return p.set(e,n),n}function f(e){e&&(0,c.validatePathConfig)(e);const t=h(e),n=d(t,e?.screens);y(n);return{initialRoutes:t,configs:n,configWithRegexes:b(n)}}function h(e){const t=[];return e?.initialRouteName&&t.push({initialRouteName:e.initialRouteName,parentScreens:[]}),t}function d(e,t={}){return[].concat(...Object.keys(t).map(n=>v(n,t,e,[],[],[]))).sort((e,t)=>{if((0,u.isArrayEqual)(e.segments,t.segments))return t.routeNames.join('>').localeCompare(e.routeNames.join('>'));if((0,a.arrayStartsWith)(e.segments,t.segments))return-1;if((0,a.arrayStartsWith)(t.segments,e.segments))return 1;for(let n=0;n{const n=t.segments.join('/');if(e[n]){const s=e[n].routeNames,a=t.routeNames;if(!(s.length>a.length?a.every((e,t)=>s[t]===e):s.every((e,t)=>a[t]===e)))throw new Error(`Found conflicting screens with the same pattern. The pattern '${n}' resolves to both '${s.join(' > ')}' and '${a.join(' > ')}'. Patterns must be unique and cannot resolve to more than one screen.`)}return Object.assign(e,{[n]:t})},{})}function b(e){return e.map(e=>({...e,regex:e.regex?new RegExp(e.regex.source+'$'):void 0}))}const j=(e,t)=>{let n,s=e;for(const e of t){if(!e.regex)continue;const o=s.match(e.regex);if(o){n=e.routeNames.map(n=>{const s=t.find(t=>t.screen===n&&(0,a.arrayStartsWith)(e.segments,t.segments)),i=s&&o.groups?Object.fromEntries(Object.entries(o.groups).map(([e,t])=>{const a=Number(e.replace('param_','')),o=s.params.find(e=>e.index===a);return o?.screen===n&&o?.name?[o.name,t]:null}).filter(e=>null!=e).map(([e,t])=>{if(null==t)return[e,void 0];const n=decodeURIComponent(t);return[e,s.parse?.[e]?s.parse[e](n):n]})):void 0;return i&&Object.keys(i).length?{name:n,params:i}:{name:n}}),s=s.replace(o[0],'');break}}return{routes:n,remainingPath:s}},v=(e,t,n,s,a,o)=>{const i=[];o.push(e),a.push(e);const u=t[e];if('string'==typeof u)s.push({screen:e,path:u}),i.push(x(e,[...o],[...s]));else if('object'==typeof u){if('string'==typeof u.path){if(u.exact&&null==u.path)throw new Error(`Screen '${e}' doesn't specify a 'path'. A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. \`path: ''\`.`);const t=[];if(u.alias)for(const n of u.alias)'string'==typeof n?t.push(x(e,[...o],[...s,{screen:e,path:n}],u.parse)):'object'==typeof n&&t.push(x(e,[...o],n.exact?[{screen:e,path:n.path}]:[...s,{screen:e,path:n.path}],n.parse));u.exact&&(s.length=0),s.push({screen:e,path:u.path}),i.push(x(e,[...o],[...s],u.parse)),i.push(...t)}if('string'!=typeof u&&'string'!=typeof u.path&&u.alias?.length)throw new Error(`Screen '${e}' doesn't specify a 'path'. A 'path' needs to be specified in order to use 'alias'.`);u.screens&&(u.initialRouteName&&n.push({initialRouteName:u.initialRouteName,parentScreens:a}),Object.keys(u.screens).forEach(e=>{const t=v(e,u.screens,n,[...s],[...a],o);i.push(...t)}))}return o.pop(),i},x=(e,t,s,a)=>{const o=[];for(const{screen:e,path:t}of s)o.push(...(0,i.getPatternParts)(t).map(t=>({...t,screen:e})));return{screen:e,regex:o.length?new RegExp(`^(${o.map((e,t)=>{if(e.param){return`(((?${e.regex||'[^/]+'})\\/)${e.optional?'?':''})`}return`${'*'===e.segment?'.*':(0,n.default)(e.segment)}\\/`}).join('')})$`):void 0,segments:o.map(e=>e.segment),params:o.map((e,t)=>e.param?{index:t,screen:e.screen,name:e.param}:null).filter(e=>null!=e),routeNames:t,parse:a}},N=(e,t)=>{for(const n of t)if(e===n.routeNames[n.routeNames.length-1])return n.parse},R=(e,t,n)=>{for(const s of n)if(t.length===s.parentScreens.length){let n=!0;for(let e=0;en?e?{index:1,routes:[{name:e},t]}:{routes:[t]}:e?{index:1,routes:[{name:e},{...t,state:{routes:[]}}]}:{routes:[{...t,state:{routes:[]}}]},O=(e,t,n,s)=>{let a=t.shift();const i=[];let u=R(a.name,i,n);i.push(a.name);const c=$(u,a,0===t.length);if(t.length>0){let e=c;for(;a=t.shift();){u=R(a.name,i,n);const s=e.index||e.routes.length-1;e.routes[s].state=$(u,a,0===t.length),t.length>0&&(e=e.routes[s].state),i.push(a.name)}}a=(0,o.findFocusedRoute)(c),a.path=e.replace(/\/$/,'');const p=w(e,s?N(a.name,s):void 0);return p&&(a.params={...a.params,...p}),c},w=(e,t)=>{const n=e.split('?')[1],a=s.parse(n);return t&&Object.keys(a).forEach(e=>{Object.hasOwnProperty.call(t,e)&&'string'==typeof a[e]&&(a[e]=t[e](a[e]))}),Object.keys(a).length?a:void 0}},59,[60,52,61,28,57,62,58]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports=t=>{if('string'!=typeof t)throw new TypeError('Expected a string');return t.replace(/[|\\{}()[\]^$+*?.]/g,'\\$&').replace(/-/g,'\\x2d')}},60,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.arrayStartsWith=function(t,n){if(n.length>t.length)return!1;return n.every((n,u)=>n===t[u])}},61,[]); -__d(function(g,r,i,_a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.isArrayEqual=function(t,n){if(t===n)return!0;if(t.length!==n.length)return!1;return t.every((t,u)=>Object.is(t,n[u]))}},62,[]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},63,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationHelpersContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},64,[19]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.NavigationIndependentTree=function({children:u}){return(0,v.jsx)(o.NavigationRouteContext.Provider,{value:void 0,children:(0,v.jsx)(n.NavigationContext.Provider,{value:void 0,children:(0,v.jsx)(t.NavigationIndependentTreeContext.Provider,{value:!0,children:u})})})},r(d[0]);var n=r(d[1]),t=r(d[2]),o=r(d[3]),v=r(d[4])},65,[19,63,31,66,2]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationRouteContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},66,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"PreventRemoveContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},67,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.PreventRemoveProvider=function({children:e}){const[o]=n.useState(()=>(0,t.nanoid)()),[l,p]=n.useState(()=>new Map),y=n.useContext(v.NavigationHelpersContext),R=n.useContext(s.NavigationRouteContext),P=n.useContext(d.PreventRemoveContext),C=P?.setPreventRemove,x=(0,u.default)((e,t,n)=>{if(n&&(null==y||y?.getState().routes.every(e=>e.key!==t)))throw new Error(`Couldn't find a route with the key ${t}. Is your component inside NavigationContent?`);p(o=>{if(t===o.get(e)?.routeKey&&n===o.get(e)?.preventRemove)return o;const u=new Map(o);return n?u.set(e,{routeKey:t,preventRemove:n}):u.delete(e),u})}),_=[...l.values()].some(({preventRemove:e})=>e);n.useEffect(()=>{if(void 0!==R?.key&&void 0!==C)return C(o,R.key,_),()=>{C(o,R.key,!1)}},[o,_,R?.key,C]);const k=n.useMemo(()=>({setPreventRemove:x,preventedRoutes:f(l)}),[x,l]);return(0,c.jsx)(d.PreventRemoveContext.Provider,{value:k,children:e})};var e,t=r(_d[0]),n=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),o=r(_d[2]),u=(e=o)&&e.__esModule?e:{default:e},v=r(_d[3]),s=r(_d[4]),d=r(_d[5]),c=r(_d[6]);const f=e=>[...e.values()].reduce((e,{routeKey:t,preventRemove:n})=>(e[t]={preventRemove:e[t]?.preventRemove||n},e),{})},68,[826,19,21,64,66,67,2]); -__d(function(g,r,i,_a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.createComponentForStaticNavigation=a,_e.createPathConfigForStaticNavigation=function(e,n,t){let o,s=!1;const c=(e,n,a)=>{const l=(e,n)=>Object.fromEntries(Object.entries(e).sort(([e],[t])=>e===n?-1:t===n?1:0).map(([e,l])=>{const u={};let p;'linking'in l&&('string'==typeof l.linking?u.path=l.linking:Object.assign(u,l.linking),'string'==typeof u.path&&(u.path=u.path.replace(/^\//,'').replace(/\/$/,'')));const f=a||null!=u.path&&''!==u.path;return'config'in l?p=c(l,void 0,f):'screen'in l&&'config'in l.screen&&(l.screen.config.screens||l.screen.config.groups)&&(p=c(l.screen,void 0,f)),p&&(u.screens=p),!t||u.screens||'linking'in l&&null==l.linking||(null!=u.path?a||(e===n&&null!=u.path?s=!0:''===u.path&&(o=void 0)):(a||null!=o||(o=u),u.path=e.replace(/([A-Z]+)/g,'-$1').replace(/^-/,'').toLowerCase())),[e,u]}).filter(([,e])=>Object.keys(e).length>0)),u={};for(const t in e.config)'screens'===t&&e.config.screens&&Object.assign(u,l(e.config.screens,n?.initialRouteName??e.config.initialRouteName)),'groups'===t&&e.config.groups&&Object.entries(e.config.groups).forEach(([,t])=>{Object.assign(u,l(t.screens,n?.initialRouteName??e.config.initialRouteName))});if(0!==Object.keys(u).length)return u},a=c(e,n,!1);t&&o&&!s&&(o.path='');return a};var e=(function(e){if(e&&e.__esModule)return e;var n={};return e&&Object.keys(e).forEach(function(t){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}),n.default=e,n})(r(_d[0])),n=r(_d[1]),t=r(_d[2]),o=r(_d[3]);const s=e.memo(({component:n})=>{const o=(0,t.useRoute)();return e.createElement(n,{route:o})});s.displayName='Memo(Screen)';const c=(t,c)=>Object.entries(c).map(([c,l])=>{let u,p,f={},d=!1;if('screen'in l){const{screen:e,if:t,...o}=l;p=t,f=o,(0,n.isValidElementType)(e)?u=e:'config'in e&&(d=!0,u=a(e,`${c}Navigator`))}else(0,n.isValidElementType)(l)?u=l:'config'in l&&(d=!0,u=a(l,`${c}Navigator`));if(null==u)throw new Error(`Couldn't find a 'screen' property for the screen '${c}'. This can happen if you passed 'undefined'. You likely forgot to export your component from the file it's defined in, or mixed up default import and named import when importing.`);const h=d?e.createElement(u,{}):(0,o.jsx)(s,{component:u});return()=>null==p||p()?(0,o.jsx)(t,{name:c,...f,children:()=>h},c):null});function a(e,n){const{Navigator:t,Group:s,Screen:a,config:l}=e,{screens:u,groups:p,...f}=l;if(null==u&&null==p)throw new Error("Couldn't find a 'screens' or 'groups' property. Make sure to define your screens under a 'screens' property in the configuration.");const d=[];for(const e in l)'screens'===e&&u&&d.push(...c(a,u)),'groups'===e&&p&&d.push(...Object.entries(p).map(([e,{if:n,...t}])=>{const l=c(a,t.screens);return()=>{const c=l.map(e=>e());return null==n||n()?(0,o.jsx)(s,{navigationKey:e,...t,children:c},e):null}}));const h=()=>{const e=d.map(e=>e());return(0,o.jsx)(t,{...f,children:e})};return h.displayName=n,h}},69,[19,70,72,2]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},70,[71]); +"use strict";var t=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),u=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),i=Symbol.for("react.consumer"),s=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),h=Symbol.for("react.activity"),_=Symbol.iterator;var v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,S={};function E(t,n,o){this.props=t,this.context=n,this.refs=S,this.updater=o||v}function w(){}function H(t,n,o){this.props=t,this.context=n,this.refs=S,this.updater=o||v}E.prototype.isReactComponent={},E.prototype.setState=function(t,n){if("object"!=typeof t&&"function"!=typeof t&&null!=t)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,n,"setState")},E.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")},w.prototype=E.prototype;var j=H.prototype=new w;j.constructor=H,b(j,E.prototype),j.isPureReactComponent=!0;var R=Array.isArray;function k(){}var C={H:null,A:null,T:null,S:null},$=Object.prototype.hasOwnProperty;function T(n,o,u){var c=u.ref;return{$$typeof:t,type:n,key:o,ref:void 0!==c?c:null,props:u}}function A(n){return"object"==typeof n&&null!==n&&n.$$typeof===t}var O=/\/+/g;function x(t,n){return"object"==typeof t&&null!==t&&null!=t.key?(o=""+t.key,u={"=":"=0",":":"=2"},"$"+o.replace(/[=:]/g,function(t){return u[t]})):n.toString(36);var o,u}function I(t){switch(t.status){case"fulfilled":return t.value;case"rejected":throw t.reason;default:switch("string"==typeof t.status?t.then(k,k):(t.status="pending",t.then(function(n){"pending"===t.status&&(t.status="fulfilled",t.value=n)},function(n){"pending"===t.status&&(t.status="rejected",t.reason=n)})),t.status){case"fulfilled":return t.value;case"rejected":throw t.reason}}throw t}function P(o,u,c,i,s){var f=typeof o;"undefined"!==f&&"boolean"!==f||(o=null);var l,p,h=!1;if(null===o)h=!0;else switch(f){case"bigint":case"string":case"number":h=!0;break;case"object":switch(o.$$typeof){case t:case n:h=!0;break;case y:return P((h=o._init)(o._payload),u,c,i,s)}}if(h)return s=s(o),h=""===i?"."+x(o,0):i,R(s)?(c="",null!=h&&(c=h.replace(O,"$&/")+"/"),P(s,u,c,"",function(t){return t})):null!=s&&(A(s)&&(l=s,p=c+(null==s.key||o&&o.key===s.key?"":(""+s.key).replace(O,"$&/")+"/")+h,s=T(l.type,p,l.props)),u.push(s)),1;h=0;var v,b=""===i?".":i+":";if(R(o))for(var S=0;S{let u=c.current;const l=f.current?.length===t.length&&t.every((u,n)=>u===f.current[n]);return u&&l||(s.current=c.current,u=n(),c.current=u,f.current=t),u},t);return(0,u.useEffect)(()=>{s.current&&(s.current.release(),s.current=null)},[o]),(0,u.useMemo)(()=>{l.current=!0},[]),(0,u.useEffect)(()=>(l.current=!1,()=>{!l.current&&c.current&&c.current.release()}),[]),o};var u=r(d[0])},42,[39]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.reloadAppAsync=async function(o="Reloaded from JS call"){await(globalThis.expo?.reloadAppAsync(o))}},43,[]); +__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"LegacyEventEmitter",{enumerable:!0,get:function(){return o}});var t=e(r(d[0])),n=e(r(d[1]));r(d[2]);const s='@@nativeEmitterSubscription@@';class o{_listenerCount=0;constructor(e){if(e.__expo_module_name__)return e;this._nativeModule=e,this._eventEmitter=new n.default(e)}addListener(e,t){!this._listenerCount&&this._nativeModule.startObserving&&this._nativeModule.startObserving(),this._listenerCount++;const n=this._eventEmitter.addListener(e,t),o={[s]:n,remove:()=>{this.removeSubscription(o)}};return o}removeAllListeners(e){const n=this._eventEmitter.listenerCount?this._eventEmitter.listenerCount(e):this._eventEmitter.listeners(e).length;this._eventEmitter.removeAllListeners(e),this._listenerCount-=n,(0,t.default)(this._listenerCount>=0,"EventEmitter must have a non-negative number of listeners"),!this._listenerCount&&this._nativeModule.stopObserving&&this._nativeModule.stopObserving()}removeSubscription(e){const t=e,n=t[s];n&&('remove'in n&&n.remove?.(),this._listenerCount--,delete t[s],e.remove=()=>{},!this._listenerCount&&this._nativeModule.stopObserving&&this._nativeModule.stopObserving())}emit(e,...t){this._eventEmitter.emit(e,...t)}}},44,[925,46,29]); +__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return u}});var e,t=r(d[0]),u=((e=t)&&e.__esModule?e:{default:e}).default},46,[47]); +__d(function(g,r,i,a,m,_e,d){'use strict';function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return l}}),r(d[0]);var t=e(r(d[1])),n=e(r(d[2]));class l{constructor(e){}addListener(e,n,l){var u;null==(u=this._nativeModule)||u.addListener(e);var s=t.default.addListener(e,n,l);return{remove:()=>{var e;null!=s&&(null==(e=this._nativeModule)||e.removeListeners(1),s.remove(),s=null)}}}removeListener(e,n){var l;null==(l=this._nativeModule)||l.removeListeners(1),t.default.removeListener(e,n)}emit(e){for(var n=arguments.length,l=new Array(n>1?n-1:0),u=1;u1?s-1:0),u=1;u2?t-2:0),s=2;sw.fromModule(t).downloadAsync()))}static fromModule(t){if('string'==typeof t)return w.fromURI(t);if('object'==typeof t&&'uri'in t&&'string'==typeof t.uri){const e=h.getFileExtension(t.uri);return new w({name:'',type:e.startsWith('.')?e.substring(1):e,hash:null,uri:t.uri,width:t.width,height:t.height})}const s=(0,e.getAssetByID)(t);if(!s)throw new Error(`Module "${t}" is missing from the asset registry`);if(!d.IS_ENV_WITH_LOCAL_ASSETS){const{uri:e}=(0,f.default)(t),n=new w({name:s.name,type:s.type,hash:s.hash,uri:e,width:s.width,height:s.height});return w.byHash[s.hash]=n,n}return w.fromMetadata(s)}static fromMetadata(t){const e=t.hash,s=w.byHash[e];if(s)return s;const{uri:h,hash:o}=(0,n.selectAssetSource)(t),l=new w({name:t.name,type:t.type,hash:o,uri:h,width:t.width,height:t.height});return w.byHash[e]=l,l}static fromURI(t){if(w.byUri[t])return w.byUri[t];let e='';if(t.indexOf(';base64')>-1)e=t.split(';')[0].split('/')[1];else{const s=h.getFileExtension(t);e=s.startsWith('.')?s.substring(1):s}const s=new w({name:'',type:e,hash:null,uri:t});return w.byUri[t]=s,s}async downloadAsync(){if(this.downloaded)return this;if(this.downloading)return await new Promise((t,e)=>{this._downloadCallbacks.push({resolve:t,reject:e})}),this;this.downloading=!0;try{if(l.isImageType(this.type)){const{width:t,height:e,name:s}=await l.getImageInfoAsync(this.uri);this.width=t,this.height=e,this.name=s}else this.name=h.getFilename(this.uri);this.localUri=await(0,o.downloadAsync)(this.uri,this.hash,this.type),this.downloaded=!0,this._downloadCallbacks.forEach(({resolve:t})=>t())}catch(t){throw this._downloadCallbacks.forEach(({reject:e})=>e(t)),t}finally{this.downloading=!1,this._downloadCallbacks=[]}return this}}},59,[60,8,61,73,74,75,76,72,77]); +__d(function(g,r,i,a,m,e,d){const s=[];m.exports={registerAsset:t=>s.push(t),getAssetByID:t=>s[t-1]}},60,[]); +__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.selectAssetSource=function(e){const c=n.default.pickScale(e.scales,t.default.get()),f=e.scales.findIndex(e=>e===c),l=e.fileHashes?e.fileHashes[f]??e.fileHashes[0]:e.hash,u=e.fileUris?e.fileUris[f]??e.fileUris[0]:e.uri;if(u)return{uri:o(u),hash:l};const p=1===c?'':`@${c}x`,U=e.type?`.${encodeURIComponent(e.type)}`:'',v=`/${encodeURIComponent(e.name)}${p}${U}`,x=new URLSearchParams({platform:"web",hash:e.hash});if(/^https?:\/\//.test(e.httpServerLocation)){return{uri:e.httpServerLocation+v+'?'+x,hash:l}}const L=(0,h.getManifest2)(),R=h.manifestBaseUrl?.startsWith('https://')?'https://':'http://',S=L?.extra?.expoGo?.developer?R+L.extra.expoGo.debuggerHost:null;if(S){const t=new URL(e.httpServerLocation+v,S);return t.searchParams.set('platform',"web"),t.searchParams.set('hash',e.hash),{uri:t.href,hash:l}}if(s.default.ExponentKernel)return{uri:`https://classic-assets.eascdn.net/~assets/${encodeURIComponent(l)}`,hash:l};return{uri:'',hash:l}},_e.resolveUri=o,r(d[0]);var t=e(r(d[1])),s=e(r(d[2])),n=e(r(d[3])),h=r(d[4]);function o(e){return h.manifestBaseUrl?new URL(e,h.manifestBaseUrl).href:e}},61,[8,62,65,71,72]); +__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var e,t=r(d[0]),u=(e=t)&&e.__esModule?e:{default:e};class n{static get(){return u.default.get('window').scale}static getFontScale(){return u.default.get('window').fontScale||n.get()}static getPixelSizeForLayoutSize(e){return Math.round(e*n.get())}static roundToNearestPixel(e){var t=n.get();return Math.round(e*t)/t}}},62,[63]); +__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return w}});var t=e(r(d[0])),n=e(r(d[1])),s={window:{fontScale:1,height:0,scale:1,width:0},screen:{fontScale:1,height:0,scale:1,width:0}},o={},c=n.default;function l(){if(n.default){var e,t,o=window;if(o.visualViewport){var c=o.visualViewport;e=Math.round(c.height*c.scale),t=Math.round(c.width*c.scale)}else{var l=o.document.documentElement;e=l.clientHeight,t=l.clientWidth}s.window={fontScale:1,height:e,scale:o.devicePixelRatio||1,width:t},s.screen={fontScale:1,height:o.screen.height,scale:o.devicePixelRatio||1,width:o.screen.width}}}function u(){l(),Array.isArray(o.change)&&o.change.forEach(e=>e(s))}class w{static get(e){return c&&(c=!1,l()),(0,t.default)(s[e],"No dimension set for key "+e),s[e]}static set(e){e&&(n.default?(0,t.default)(!1,'Dimensions cannot be set in the browser'):(null!=e.screen&&(s.screen=e.screen),null!=e.window&&(s.window=e.window)))}static addEventListener(e,t){return o[e]=o[e]||[],o[e].push(t),{remove:()=>{this.removeEventListener(e,t)}}}static removeEventListener(e,t){Array.isArray(o[e])&&(o[e]=o[e].filter(e=>e!==t))}}n.default&&(window.visualViewport?window.visualViewport.addEventListener('resize',u,!1):window.addEventListener('resize',u,!1))},63,[50,64]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return n}});var n=!('undefined'==typeof window||!window.document||!window.document.createElement)},64,[]); +__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return u}});var e,t=r(d[0]),u={UIManager:((e=t)&&e.__esModule?e:{default:e}).default}},65,[66]); +__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return f}});var t=e(r(d[0])),o=e(r(d[1])),s=e=>{var t=e.offsetHeight,o=e.offsetWidth,s=e.offsetLeft,n=e.offsetTop;for(e=e.offsetParent;e&&1===e.nodeType;)s+=e.offsetLeft+e.clientLeft-e.scrollLeft,n+=e.offsetTop+e.clientTop-e.scrollTop,e=e.offsetParent;return{width:o,height:t,top:n-=window.scrollY,left:s-=window.scrollX}},n=(e,t,o)=>{var n=t||e&&e.parentNode;e&&n&&setTimeout(()=>{if(e.isConnected&&n.isConnected){var t=s(n),l=s(e),f=l.height,u=l.left,c=l.top,b=l.width,p=u-t.left,h=c-t.top;o(p,h,b,f,u,c)}},0)},l={A:!0,BODY:!0,INPUT:!0,SELECT:!0,TEXTAREA:!0},f={blur(e){try{e.blur()}catch(e){}},focus(e){try{var t=e.nodeName;null==e.getAttribute('tabIndex')&&!0!==e.isContentEditable&&null==l[t]&&e.setAttribute('tabIndex','-1'),e.focus()}catch(e){}},measure(e,t){n(e,null,t)},measureInWindow(e,o){e&&setTimeout(()=>{var s=(0,t.default)(e),n=s.height,l=s.left,f=s.top,u=s.width;o(l,f,u,n)},0)},measureLayout(e,t,o,s){n(e,t,s)},updateView(e,t){for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s)){var n=t[s];switch(s){case'style':(0,o.default)(e,n);break;case'class':case'className':e.setAttribute('class',n);break;case'text':case'value':e.value=n;break;default:e.setAttribute(s,n)}}},configureNextLayoutAnimation(e,t){t()},setLayoutAnimationEnabledExperimental(){}}},66,[67,68]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t}});var t=t=>{if(null!=t&&(1===t.nodeType&&'function'==typeof t.getBoundingClientRect))return t.getBoundingClientRect()}},67,[]); +__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return f}});var e,t=r(d[0]),n=(e=t)&&e.__esModule?e:{default:e};var f=function(e,t){var f=e.style;for(var o in t)if(t.hasOwnProperty(o)){var u=0===o.indexOf('--'),l=(0,n.default)(o,t[o],u);'float'===o&&(o='cssFloat'),u?f.setProperty(o,l):f[o]=l}}},68,[69]); +__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var e,t=r(d[0]),u=(e=t)&&e.__esModule?e:{default:e};var n=function(e,t,n){return null==t||'boolean'==typeof t||''===t?'':n||'number'!=typeof t||0===t||u.default.hasOwnProperty(e)&&u.default[e]?(''+t).trim():t+'px'}},69,[70]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return n}});var t={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexOrder:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,gridRow:!0,gridRowEnd:!0,gridRowGap:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnGap:!0,gridColumnStart:!0,lineClamp:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0,scale:!0,scaleX:!0,scaleY:!0,scaleZ:!0,shadowOpacity:!0},o=['ms','Moz','O','Webkit'],l=(t,o)=>t+o.charAt(0).toUpperCase()+o.substring(1);Object.keys(t).forEach(n=>{o.forEach(o=>{t[l(o,n)]=t[n]})});var n=t},70,[]); +__d(function(g,r,_i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}}),r(d[0]);var e,t=r(d[1]),s=(e=t)&&e.__esModule?e:{default:e};function i(e){const t=n.pickScale(e.scales,s.default.get()),i=1===t?'':'@'+t+'x',c=e.type?`.${e.type}`:'';return e.httpServerLocation.replace(/\.\.\//g,'_')+'/'+e.name+i+c}class n{constructor(e,t,s){this.serverUrl=e||'https://expo.dev',this.jsbundleUrl=null,this.asset=s}isLoadedFromServer(){return!0}isLoadedFromFileSystem(){return!1}defaultAsset(){return this.assetServerURL()}assetServerURL(){const e=new URL(i(this.asset),this.serverUrl);return e.searchParams.set('platform',"web"),e.searchParams.set('hash',this.asset.hash),this.fromSource(e.toString().replace(e.origin,''))}fromSource(e){return{__packager_asset:!0,width:this.asset.width??void 0,height:this.asset.height??void 0,uri:e,scale:n.pickScale(this.asset.scales,s.default.get())}}static pickScale(e,t){for(let s=0;s=t)return e[s];return e[e.length-1]||1}}},71,[8,62]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"IS_ENV_WITH_LOCAL_ASSETS",{enumerable:!0,get:function(){return t}}),e.getLocalAssets=function(){return{}},e.getManifest2=function(){return{}},Object.defineProperty(e,"manifestBaseUrl",{enumerable:!0,get:function(){return n}});const t=!1;const n=null},72,[]); +__d(function(g,r,i,a,m,e,d){"use strict";function t(t){const{pathname:s,searchParams:o}=new URL(t,'https://e');return n(s)}function n(t){return t.substring(t.lastIndexOf('/')+1)}Object.defineProperty(e,'__esModule',{value:!0}),e.getFilename=t,e.getFileExtension=function(n){const s=t(n),o=s.lastIndexOf('.');return o>0?s.substring(o):''},e.getManifestBaseUrl=function(t){const n=new URL(t);let s=n.protocol;'exp:'===s?s='http:':'exps:'===s&&(s='https:');n.protocol=s;const o=n.pathname.substring(0,n.pathname.lastIndexOf('/')+1);return n.pathname=o,n.search='',n.hash='',n.protocol!==s?n.href.replace(n.protocol,s):n.href}},73,[]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.downloadAsync=async function(n,t,c){return n}},74,[]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.isImageType=function(n){return/^(jpeg|jpg|gif|png|bmp|webp|heic)$/i.test(n)},e.getImageInfoAsync=function(t){if('undefined'==typeof window)return Promise.resolve({name:(0,n.getFilename)(t),width:0,height:0});return new Promise((o,u)=>{const s=new Image;s.onerror=u,s.onload=()=>{o({name:(0,n.getFilename)(t),width:s.naturalWidth,height:s.naturalHeight})},s.src=t})};var n=r(d[0])},75,[73]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.getLocalAssetUri=function(t,n){return null}},76,[]); +__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return s}}),_e.setCustomSourceTransformer=c,Object.defineProperty(_e,"pickScale",{enumerable:!0,get:function(){return l}});var e,t=r(d[0]),n=r(d[1]),u=(e=n)&&e.__esModule?e:{default:e};let o;function c(e){o=e}function f(e){if('object'==typeof e)return e;const n=(0,t.getAssetByID)(e);if(!n)return null;const c=new u.default('https://expo.dev',null,n);return o?o(c):c.defaultAsset()}Object.defineProperty(f,'setCustomSourceTransformer',{get:()=>c});var s=f;const{pickScale:l}=u.default},77,[60,71]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.useAssets=function(u){const[c,n]=(0,t.useState)(),[o,f]=(0,t.useState)();return(0,t.useEffect)(()=>{s.Asset.loadAsync(u).then(n).catch(f)},[]),[c,o]};var t=r(d[0]),s=r(d[1])},78,[39,59]); +__d(function(g,r,i,a,_m,e,d){"use strict";var t=this&&this.__createBinding||(Object.create?function(t,n,o,c){void 0===c&&(c=o);var u=Object.getOwnPropertyDescriptor(n,o);u&&!("get"in u?!n.__esModule:u.writable||u.configurable)||(u={enumerable:!0,get:function(){return n[o]}}),Object.defineProperty(t,c,u)}:function(t,n,o,c){void 0===c&&(c=o),t[c]=n[o]}),n=this&&this.__exportStar||function(n,o){for(var c in n)"default"===c||Object.prototype.hasOwnProperty.call(o,c)||t(o,n,c)};Object.defineProperty(e,"__esModule",{value:!0}),r(d[0]),n(r(d[1]),e)},79,[80,81]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0})},80,[]); +__d(function(g,r,_i,a,_m,e,d){"use strict";var t,n=this&&this.__createBinding||(Object.create?function(t,n,o,u){void 0===u&&(u=o);var i=Object.getOwnPropertyDescriptor(n,o);i&&!("get"in i?!n.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return n[o]}}),Object.defineProperty(t,u,i)}:function(t,n,o,u){void 0===u&&(u=o),t[u]=n[o]}),o=this&&this.__setModuleDefault||(Object.create?function(t,n){Object.defineProperty(t,"default",{enumerable:!0,value:n})}:function(t,n){t.default=n}),u=this&&this.__exportStar||function(t,o){for(var u in t)"default"===u||Object.prototype.hasOwnProperty.call(o,u)||n(o,t,u)},i=this&&this.__importStar||(t=function(n){return t=Object.getOwnPropertyNames||function(t){var n=[];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(n[n.length]=o);return n},t(n)},function(u){if(u&&u.__esModule)return u;var i={};if(null!=u)for(var c=t(u),s=0;s');return t}function S(t){const o=(0,v.useContextKey)(),{screens:i,protectedScreens:u}=(0,h.useFilterScreenChildren)([],{contextKey:o}),{state:c,descriptors:l,NavigationContent:f}=(0,s.useNavigationBuilder)(x.StackRouter,{...t,id:o,children:(0,N.useSortedScreens)(i??[],u)});return n.jsx(f,{children:l[c.routes[c.index].key].render()})}function C(){const t=y(),{state:n,descriptors:o}=t;return o[n.routes[n.index].key]?.render()??null}e.NavigatorContext=c.createContext(null),p.Slot=C,p.useContext=y,p.Screen=f.Screen},82,[2,83,39,918,919,448,458,461,462,504]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"createStaticNavigation",{enumerable:!0,get:function(){return t.createStaticNavigation}}),Object.defineProperty(e,"Link",{enumerable:!0,get:function(){return n.Link}}),Object.defineProperty(e,"LinkingContext",{enumerable:!0,get:function(){return o.LinkingContext}}),Object.defineProperty(e,"LocaleDirContext",{enumerable:!0,get:function(){return u.LocaleDirContext}}),Object.defineProperty(e,"NavigationContainer",{enumerable:!0,get:function(){return c.NavigationContainer}}),Object.defineProperty(e,"ServerContainer",{enumerable:!0,get:function(){return f.ServerContainer}}),Object.defineProperty(e,"DarkTheme",{enumerable:!0,get:function(){return b.DarkTheme}}),Object.defineProperty(e,"DefaultTheme",{enumerable:!0,get:function(){return l.DefaultTheme}}),Object.defineProperty(e,"UNSTABLE_UnhandledLinkingContext",{enumerable:!0,get:function(){return y.UnhandledLinkingContext}}),Object.defineProperty(e,"useLinkBuilder",{enumerable:!0,get:function(){return O.useLinkBuilder}}),Object.defineProperty(e,"useLinkProps",{enumerable:!0,get:function(){return P.useLinkProps}}),Object.defineProperty(e,"useLinkTo",{enumerable:!0,get:function(){return j.useLinkTo}}),Object.defineProperty(e,"useLocale",{enumerable:!0,get:function(){return s.useLocale}}),Object.defineProperty(e,"useRoutePath",{enumerable:!0,get:function(){return L.useRoutePath}}),Object.defineProperty(e,"useScrollToTop",{enumerable:!0,get:function(){return k.useScrollToTop}});var t=r(d[0]),n=r(d[1]),o=r(d[2]),u=r(d[3]),c=r(d[4]),f=r(d[5]),b=r(d[6]),l=r(d[7]),p=r(d[8]);Object.keys(p).forEach(function(t){'default'===t||Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return p[t]}})});var y=r(d[9]),O=r(d[10]),P=r(d[11]),j=r(d[12]),s=r(d[13]),L=r(d[14]),k=r(d[15]),h=r(d[16]);Object.keys(h).forEach(function(t){'default'===t||Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return h[t]}})})},83,[84,195,184,185,182,282,283,186,284,188,285,281,286,287,288,289,85]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.createStaticNavigation=function(c){const u=(0,e.createComponentForStaticNavigation)(c,'RootNavigator');function l({linking:l,...s},f){const d=n.useMemo(()=>{const n=(0,e.createPathConfigForStaticNavigation)(c,{initialRouteName:l?.config?.initialRouteName},'auto'===l?.enabled);if(n)return{path:l?.config?.path,initialRouteName:l?.config?.initialRouteName,screens:n}},[l?.enabled,l?.config?.path,l?.config?.initialRouteName]),b=n.useMemo(()=>{if(!l)return;const e='boolean'==typeof l.enabled?l.enabled:null!=d?.screens;return{...l,enabled:e,config:d}},[l,d]);if(!0===l?.enabled&&null==d?.screens)throw new Error("Linking is enabled but no linking configuration was found for the screens.\n\nTo solve this:\n- Specify a 'linking' property for the screens you want to link to.\n- Or set 'linking.enabled' to 'auto' to generate paths automatically.\n\nSee usage guide: https://reactnavigation.org/docs/static-configuration#linking");return(0,o.jsx)(t.NavigationContainer,{...s,ref:f,linking:b,children:(0,o.jsx)(u,{})})}return n.forwardRef(l)};var e=r(_d[0]),n=(function(e){if(e&&e.__esModule)return e;var n={};return e&&Object.keys(e).forEach(function(t){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}),n.default=e,n})(r(_d[1])),t=r(_d[2]),o=r(_d[3])},84,[85,39,182,2]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"BaseNavigationContainer",{enumerable:!0,get:function(){return t.BaseNavigationContainer}}),Object.defineProperty(e,"createNavigationContainerRef",{enumerable:!0,get:function(){return n.createNavigationContainerRef}}),Object.defineProperty(e,"createNavigatorFactory",{enumerable:!0,get:function(){return o.createNavigatorFactory}}),Object.defineProperty(e,"CurrentRenderContext",{enumerable:!0,get:function(){return u.CurrentRenderContext}}),Object.defineProperty(e,"findFocusedRoute",{enumerable:!0,get:function(){return c.findFocusedRoute}}),Object.defineProperty(e,"getActionFromState",{enumerable:!0,get:function(){return f.getActionFromState}}),Object.defineProperty(e,"getFocusedRouteNameFromRoute",{enumerable:!0,get:function(){return b.getFocusedRouteNameFromRoute}}),Object.defineProperty(e,"getPathFromState",{enumerable:!0,get:function(){return P.getPathFromState}}),Object.defineProperty(e,"getStateFromPath",{enumerable:!0,get:function(){return v.getStateFromPath}}),Object.defineProperty(e,"NavigationContainerRefContext",{enumerable:!0,get:function(){return p.NavigationContainerRefContext}}),Object.defineProperty(e,"NavigationContext",{enumerable:!0,get:function(){return l.NavigationContext}}),Object.defineProperty(e,"NavigationHelpersContext",{enumerable:!0,get:function(){return s.NavigationHelpersContext}}),Object.defineProperty(e,"NavigationIndependentTree",{enumerable:!0,get:function(){return y.NavigationIndependentTree}}),Object.defineProperty(e,"NavigationMetaContext",{enumerable:!0,get:function(){return O.NavigationMetaContext}}),Object.defineProperty(e,"NavigationRouteContext",{enumerable:!0,get:function(){return j.NavigationRouteContext}}),Object.defineProperty(e,"PreventRemoveContext",{enumerable:!0,get:function(){return C.PreventRemoveContext}}),Object.defineProperty(e,"PreventRemoveProvider",{enumerable:!0,get:function(){return N.PreventRemoveProvider}}),Object.defineProperty(e,"createComponentForStaticNavigation",{enumerable:!0,get:function(){return R.createComponentForStaticNavigation}}),Object.defineProperty(e,"createPathConfigForStaticNavigation",{enumerable:!0,get:function(){return R.createPathConfigForStaticNavigation}}),Object.defineProperty(e,"ThemeContext",{enumerable:!0,get:function(){return F.ThemeContext}}),Object.defineProperty(e,"ThemeProvider",{enumerable:!0,get:function(){return h.ThemeProvider}}),Object.defineProperty(e,"useTheme",{enumerable:!0,get:function(){return x.useTheme}}),Object.defineProperty(e,"useFocusEffect",{enumerable:!0,get:function(){return T.useFocusEffect}}),Object.defineProperty(e,"useIsFocused",{enumerable:!0,get:function(){return I.useIsFocused}}),Object.defineProperty(e,"useNavigation",{enumerable:!0,get:function(){return B.useNavigation}}),Object.defineProperty(e,"useNavigationBuilder",{enumerable:!0,get:function(){return E.useNavigationBuilder}}),Object.defineProperty(e,"useNavigationContainerRef",{enumerable:!0,get:function(){return _.useNavigationContainerRef}}),Object.defineProperty(e,"useNavigationIndependentTree",{enumerable:!0,get:function(){return M.useNavigationIndependentTree}}),Object.defineProperty(e,"useNavigationState",{enumerable:!0,get:function(){return k.useNavigationState}}),Object.defineProperty(e,"usePreventRemove",{enumerable:!0,get:function(){return w.usePreventRemove}}),Object.defineProperty(e,"usePreventRemoveContext",{enumerable:!0,get:function(){return A.usePreventRemoveContext}}),Object.defineProperty(e,"useRoute",{enumerable:!0,get:function(){return H.useRoute}}),Object.defineProperty(e,"useStateForPath",{enumerable:!0,get:function(){return q.useStateForPath}}),Object.defineProperty(e,"validatePathConfig",{enumerable:!0,get:function(){return z.validatePathConfig}});var t=r(d[0]),n=r(d[1]),o=r(d[2]),u=r(d[3]),c=r(d[4]),f=r(d[5]),b=r(d[6]),P=r(d[7]),v=r(d[8]),p=r(d[9]),l=r(d[10]),s=r(d[11]),y=r(d[12]),O=r(d[13]),j=r(d[14]),C=r(d[15]),N=r(d[16]),R=r(d[17]),F=r(d[18]),h=r(d[19]),x=r(d[20]),S=r(d[21]);Object.keys(S).forEach(function(t){'default'===t||Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return S[t]}})});var T=r(d[22]),I=r(d[23]),B=r(d[24]),E=r(d[25]),_=r(d[26]),M=r(d[27]),k=r(d[28]),w=r(d[29]),A=r(d[30]),H=r(d[31]),q=r(d[32]),z=r(d[33]),D=r(d[34]);Object.keys(D).forEach(function(t){'default'===t||Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return D[t]}})})},85,[86,101,119,122,104,123,124,127,135,106,139,140,141,143,142,144,145,146,110,109,150,151,152,154,153,155,178,115,169,179,180,149,181,134,87]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"BaseNavigationContainer",{enumerable:!0,get:function(){return S}});var e,t=r(_d[0]),n=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),o=r(_d[2]),s=(e=o)&&e.__esModule?e:{default:e};r(_d[3]),r(_d[4]);var u=r(_d[5]),d=r(_d[6]),c=r(_d[7]),l=r(_d[8]),f=r(_d[9]),h=r(_d[10]),v=r(_d[11]),p=r(_d[12]),y=r(_d[13]),C=r(_d[14]),R=r(_d[15]),O=r(_d[16]),N=r(_d[17]),b=r(_d[18]),x=r(_d[19]),I=r(_d[20]),_=r(_d[21]);const k=e=>{if(void 0===e)return;const{key:t,routeNames:n,...o}=e;return{...o,stale:!0,routes:e.routes.map(e=>void 0===e.state?e:{...e,state:k(e.state)})}},S=n.forwardRef(function({initialState:e,onStateChange:o,onReady:S,onUnhandledAction:j,navigationInChildEnabled:E=!1,theme:w,children:P},L){const A=n.useContext(p.NavigationStateContext),T=(0,b.useNavigationIndependentTree)();if(!A.isDefault&&!T)throw new Error("Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, wrap the container in 'NavigationIndependentTree' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them.");const{state:D,getState:M,setState:U,scheduleUpdate:G,flushUpdates:K}=(0,I.useSyncState)(()=>k(null==e?void 0:e)),B=n.useRef(!0),F=n.useRef(void 0),Z=n.useCallback(()=>F.current,[]),H=n.useCallback(e=>{F.current=e},[]),{listeners:q,addListener:z}=(0,R.useChildListeners)(),{keyedListeners:J,addKeyedListener:Q}=(0,N.useKeyedChildListeners)(),V=(0,s.default)(e=>{null==q.focus[0]?console.error(u.NOT_INITIALIZED_ERROR):q.focus[0](t=>t.dispatch(e))}),W=(0,s.default)(()=>{if(null==q.focus[0])return!1;const{result:e,handled:t}=q.focus[0](e=>e.canGoBack());return!!t&&e}),X=(0,s.default)(e=>{const n=e?.key??J.getState.root?.().key;null==n?console.error(u.NOT_INITIALIZED_ERROR):q.focus[0](o=>o.dispatch({...t.CommonActions.reset(e),target:n}))}),Y=(0,s.default)(()=>J.getState.root?.()),$=(0,s.default)(()=>{const e=Y();if(null==e)return;return(0,l.findFocusedRoute)(e)}),ee=(0,s.default)(()=>null!=q.focus[0]),te=(0,O.useEventEmitter)(),{addOptionsGetter:ne,getCurrentOptions:re}=(0,x.useOptionsGetters)({}),oe=n.useMemo(()=>({...Object.keys(t.CommonActions).reduce((e,n)=>(e[n]=(...e)=>V(t.CommonActions[n](...e)),e),{}),...te.create('root'),dispatch:V,resetRoot:X,isFocused:()=>!0,canGoBack:W,getParent:()=>{},getState:M,getRootState:Y,getCurrentRoute:$,getCurrentOptions:re,isReady:ee,setOptions:()=>{throw new Error('Cannot call setOptions outside a screen')}}),[W,V,te,re,$,Y,M,ee,X]);n.useImperativeHandle(L,()=>oe,[oe]);const ae=(0,s.default)((e,t)=>{te.emit({type:'__unsafe_action__',data:{action:e,noop:t,stack:ue.current}})}),se=n.useRef(void 0),ie=(0,s.default)(e=>{se.current!==e&&(se.current=e,te.emit({type:'options',data:{options:e}}))}),ue=n.useRef(void 0),de=n.useMemo(()=>({addListener:z,addKeyedListener:Q,onDispatchAction:ae,onOptionsChange:ie,scheduleUpdate:G,flushUpdates:K,stackRef:ue}),[z,Q,ae,ie,G,K]),ce=n.useRef(!0),le=n.useCallback(()=>ce.current,[]),fe=n.useMemo(()=>({state:D,getState:M,setState:U,getKey:Z,setKey:H,getIsInitial:le,addOptionsGetter:ne}),[D,M,U,Z,H,le,ne]),he=n.useRef(S),ve=n.useRef(o);n.useEffect(()=>{ce.current=!1,ve.current=o,he.current=S});const pe=n.useRef(!1);n.useEffect(()=>{!pe.current&&ee()&&(pe.current=!0,he.current?.(),te.emit({type:'ready'}))},[D,ee,te]),n.useEffect(()=>{const e=Y();te.emit({type:'state',data:{state:D}}),!B.current&&ve.current&&ve.current(e),B.current=!1},[Y,te,D]);const ge=(0,s.default)(e=>{});return(0,_.jsx)(v.NavigationIndependentTreeContext.Provider,{value:!1,children:(0,_.jsx)(h.NavigationContainerRefContext.Provider,{value:oe,children:(0,_.jsx)(f.NavigationBuilderContext.Provider,{value:de,children:(0,_.jsx)(p.NavigationStateContext.Provider,{value:fe,children:(0,_.jsx)(C.UnhandledActionContext.Provider,{value:j??ge,children:(0,_.jsx)(d.DeprecatedNavigationInChildContext.Provider,{value:E,children:(0,_.jsx)(c.EnsureSingleNavigator,{children:(0,_.jsx)(y.ThemeProvider,{value:w,children:P})})})})})})})})})},86,[87,39,97,99,100,101,102,103,104,105,106,107,108,109,111,112,113,114,115,116,117,2]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"BaseRouter",{enumerable:!0,get:function(){return t.BaseRouter}}),Object.defineProperty(_e,"DrawerActions",{enumerable:!0,get:function(){return n.DrawerActions}}),Object.defineProperty(_e,"DrawerRouter",{enumerable:!0,get:function(){return n.DrawerRouter}}),Object.defineProperty(_e,"StackActions",{enumerable:!0,get:function(){return o.StackActions}}),Object.defineProperty(_e,"StackRouter",{enumerable:!0,get:function(){return o.StackRouter}}),Object.defineProperty(_e,"TabActions",{enumerable:!0,get:function(){return u.TabActions}}),Object.defineProperty(_e,"TabRouter",{enumerable:!0,get:function(){return u.TabRouter}}),Object.defineProperty(_e,"CommonActions",{enumerable:!0,get:function(){return e}});var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2]),o=r(_d[3]),u=r(_d[4]),c=r(_d[5]);Object.keys(c).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return c[e]}})})},87,[88,89,91,94,92,96]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.goBack=function(){return{type:'GO_BACK'}},e.navigate=function(...t){if('string'==typeof t[0]){const[n,o,p]=t;return'boolean'==typeof p&&console.warn("Passing a boolean as the third argument to 'navigate' is deprecated. Pass '{ merge: true }' instead."),{type:'NAVIGATE',payload:{name:n,params:o,merge:'boolean'==typeof p?p:p?.merge,pop:p?.pop}}}{const n=t[0]||{};if(!('name'in n))throw new Error('You need to specify a name when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.');return{type:'NAVIGATE',payload:n}}},e.navigateDeprecated=function(...t){if('string'==typeof t[0])return{type:'NAVIGATE_DEPRECATED',payload:{name:t[0],params:t[1]}};{const n=t[0]||{};if(!('name'in n))throw new Error('You need to specify a name when calling navigateDeprecated with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigatelegacy for usage.');return{type:'NAVIGATE_DEPRECATED',payload:n}}},e.reset=function(t){return{type:'RESET',payload:t}},e.setParams=function(t){return{type:'SET_PARAMS',payload:{params:t}}},e.replaceParams=function(t){return{type:'REPLACE_PARAMS',payload:{params:t}}},e.preload=function(t,n){return{type:'PRELOAD',payload:{name:t,params:n}}}},88,[]); +__d(function(g,_r,_i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"BaseRouter",{enumerable:!0,get:function(){return s}});var t=_r(d[0]);const s={getStateForAction(s,r){switch(r.type){case'SET_PARAMS':case'REPLACE_PARAMS':{const t=r.source?s.routes.findIndex(t=>t.key===r.source):s.index;return-1===t?null:{...s,routes:s.routes.map((s,o)=>o===t?{...s,params:'REPLACE_PARAMS'===r.type?r.payload.params:{...s.params,...r.payload.params}}:s)}}case'RESET':{const o=r.payload;return 0===o.routes.length||o.routes.some(t=>!s.routeNames.includes(t.name))?null:!1===o.stale?s.routeNames.length!==o.routeNames.length||o.routeNames.some(t=>!s.routeNames.includes(t))?null:{...o,routes:o.routes.map(s=>s.key?s:{...s,key:`${s.name}-${(0,t.nanoid)()}`})}:o}default:return null}},shouldActionChangeFocus:t=>'NAVIGATE'===t.type||'NAVIGATE_DEPRECATED'===t.type}},89,[897]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"DrawerActions",{enumerable:!0,get:function(){return n}}),e.DrawerRouter=function({defaultStatus:s="closed",...u}){const c=(0,o.TabRouter)(u),y=t=>Boolean(t.history?.some(t=>'drawer'===t.type)),l=t=>y(t)?t:{...t,history:[...t.history,{type:'drawer',status:'open'===s?'closed':'open'}]},R=t=>y(t)?{...t,history:t.history.filter(t=>'drawer'!==t.type)}:t,A=t=>'open'===s?R(t):l(t),p=t=>'open'===s?l(t):R(t);return{...c,type:'drawer',getInitialState:({routeNames:o,routeParamList:n,routeGetIdList:u})=>({...c.getInitialState({routeNames:o,routeParamList:n,routeGetIdList:u}),default:s,stale:!1,type:'drawer',key:`drawer-${(0,t.nanoid)()}`}),getRehydratedState(o,{routeNames:n,routeParamList:u,routeGetIdList:A}){if(!1===o.stale)return o;let p=c.getRehydratedState(o,{routeNames:n,routeParamList:u,routeGetIdList:A});return y(o)&&(p=R(p),p=l(p)),{...p,default:s,type:'drawer',key:`drawer-${(0,t.nanoid)()}`}},getStateForRouteFocus(t,o){const n=c.getStateForRouteFocus(t,o);return p(n)},getStateForAction(t,o,n){switch(o.type){case'OPEN_DRAWER':return A(t);case'CLOSE_DRAWER':return p(t);case'TOGGLE_DRAWER':return y(t)?R(t):l(t);case'JUMP_TO':case'NAVIGATE':case'NAVIGATE_DEPRECATED':{const s=c.getStateForAction(t,o,n);return null!=s&&s.index!==t.index?p(s):s}case'GO_BACK':return y(t)?R(t):c.getStateForAction(t,o,n);default:return c.getStateForAction(t,o,n)}},actionCreators:n}};var t=r(d[0]),o=r(d[1]);const n={...o.TabActions,openDrawer:()=>({type:'OPEN_DRAWER'}),closeDrawer:()=>({type:'CLOSE_DRAWER'}),toggleDrawer:()=>({type:'TOGGLE_DRAWER'})}},91,[897,92]); +__d(function(g,_r,_i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"TabActions",{enumerable:!0,get:function(){return n}}),e.TabRouter=function({initialRouteName:s,backBehavior:y="firstRoute"}){return{...r.BaseRouter,type:'tab',getInitialState({routeNames:r,routeParamList:o}){const n=void 0!==s&&r.includes(s)?r.indexOf(s):0,u=r.map(r=>({name:r,key:`${r}-${(0,t.nanoid)()}`,params:o[r]})),l=i(u,n,y,s);return{stale:!1,type:'tab',key:`tab-${(0,t.nanoid)()}`,index:n,routeNames:r,history:l,routes:u,preloadedRouteKeys:[]}},getRehydratedState(r,{routeNames:o,routeParamList:n}){const i=r;if(!1===i.stale)return i;const l=o.map(r=>{const o=i.routes.find(t=>t.name===r);return{...o,name:r,key:o&&o.name===r&&o.key?o.key:`${r}-${(0,t.nanoid)()}`,params:void 0!==n[r]?{...n[r],...o?o.params:void 0}:o?o.params:void 0}}),p=Math.min(Math.max(o.indexOf(i.routes[i?.index??0]?.name),0),l.length-1),c=l.map(t=>t.key),f=i.history?.filter(t=>c.includes(t.key))??[];return u({stale:!1,type:'tab',key:`tab-${(0,t.nanoid)()}`,index:p,routeNames:o,history:f,routes:l,preloadedRouteKeys:i.preloadedRouteKeys?.filter(t=>c.includes(t))??[]},p,y,s)},getStateForRouteNamesChange(r,{routeNames:o,routeParamList:n,routeKeyChanges:u}){const l=o.map(o=>r.routes.find(t=>t.name===o&&!u.includes(t.name))||{name:o,key:`${o}-${(0,t.nanoid)()}`,params:n[o]}),p=Math.max(0,o.indexOf(r.routes[r.index].name));let c=r.history.filter(t=>'route'!==t.type||l.find(r=>r.key===t.key));return c.length||(c=i(l,p,y,s)),{...r,history:c,routeNames:o,routes:l,index:p}},getStateForRouteFocus(t,r){const o=t.routes.findIndex(t=>t.key===r);return-1===o||o===t.index?t:u(t,o,y,s)},getStateForAction(n,i,{routeParamList:l,routeGetIdList:p}){switch(i.type){case'JUMP_TO':case'NAVIGATE':case'NAVIGATE_DEPRECATED':{const r=n.routes.findIndex(t=>t.name===i.payload.name);if(-1===r)return null;const c=u({...n,routes:n.routes.map(r=>{if(r.name!==i.payload.name)return r;const s=p[r.name],n=s?.({params:r.params}),u=s?.({params:i.payload.params}),y=n===u?r.key:`${r.name}-${(0,t.nanoid)()}`;let c;c='NAVIGATE'!==i.type&&'NAVIGATE_DEPRECATED'!==i.type||!i.payload.merge||n!==u?(0,o.createParamsFromAction)({action:i,routeParamList:l}):void 0!==i.payload.params||void 0!==l[r.name]?{...l[r.name],...r.params,...i.payload.params}:r.params;const f='NAVIGATE'===i.type&&null!=i.payload.path?i.payload.path:r.path;return c!==r.params||f!==r.path?{...r,key:y,path:f,params:c}:r})},r,y,s);return{...c,preloadedRouteKeys:c.preloadedRouteKeys.filter(t=>t!==n.routes[c.index].key)}}case'SET_PARAMS':case'REPLACE_PARAMS':{const t=r.BaseRouter.getStateForAction(n,i);if(null!==t){const r=t.index;if(null!=r){const o=t.routes[r],s=n.history.findLastIndex(t=>t.key===o.key);let i=n.history;return-1!==s&&(i=[...n.history],i[s]={...i[s],params:o.params}),{...t,history:i}}}return t}case'GO_BACK':{if(1===n.history.length)return null;const t=n.history[n.history.length-2],r=t?.key,o=n.routes.findLastIndex(t=>t.key===r);if(-1===o)return null;let s=n.routes;return'fullHistory'===y&&s[o].params!==t.params&&(s=[...n.routes],s[o]={...s[o],params:t.params}),{...n,routes:s,preloadedRouteKeys:n.preloadedRouteKeys.filter(t=>t!==n.routes[o].key),history:n.history.slice(0,-1),index:o}}case'PRELOAD':{const r=n.routes.findIndex(t=>t.name===i.payload.name);if(-1===r)return null;const s=n.routes[r],u=p[s.name],y=u?.({params:s.params}),c=u?.({params:i.payload.params}),f=y===c?s.key:`${s.name}-${(0,t.nanoid)()}`,k=(0,o.createParamsFromAction)({action:i,routeParamList:l}),h=k!==s.params?{...s,key:f,params:k}:s;return{...n,preloadedRouteKeys:n.preloadedRouteKeys.filter(t=>t!==s.key).concat(h.key),routes:n.routes.map((t,o)=>o===r?h:t),history:f===s.key?n.history:n.history.filter(t=>t.key!==s.key)}}default:return r.BaseRouter.getStateForAction(n,i)}},actionCreators:n}};var t=_r(d[0]),r=_r(d[1]),o=_r(d[2]);const s='route',n={jumpTo:(t,r)=>({type:'JUMP_TO',payload:{name:t,params:r}})},i=(t,r,o,n)=>{const i=[{type:s,key:t[r].key}];let u;switch(o){case'order':for(let o=r;o>0;o--)i.unshift({type:s,key:t[o-1].key});break;case'firstRoute':0!==r&&i.unshift({type:s,key:t[0].key});break;case'initialRoute':u=t.findIndex(t=>t.name===n),u=-1===u?0:u,r!==u&&i.unshift({type:s,key:t[u].key})}return i},u=(t,r,o,n)=>{let u=t.history;if('history'===o||'fullHistory'===o){const n=t.routes[r];if('history'===o)u=u.filter(t=>'route'===t.type&&t.key!==n.key);else if('fullHistory'===o){const t=u.findLastIndex(t=>'route'===t.type);n.key===u[t]?.key&&(u=[...u.slice(0,t),...u.slice(t+1)])}u=u.concat({type:s,key:n.key,params:'fullHistory'===o?n.params:void 0})}else u=i(t.routes,r,o,n);return{...t,index:r,history:u}}},92,[897,89,93]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.createParamsFromAction=function({action:t,routeParamList:o}){const{name:n,params:c}=t.payload;return void 0!==o[n]?{...o[n],...c}:c}},93,[]); +__d(function(g,_r,_i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"StackActions",{enumerable:!0,get:function(){return s}}),e.StackRouter=function(p){const i={...o.BaseRouter,type:'stack',getInitialState({routeNames:o,routeParamList:r}){const n=void 0!==p.initialRouteName&&o.includes(p.initialRouteName)?p.initialRouteName:o[0];return{stale:!1,type:'stack',key:`stack-${(0,t.nanoid)()}`,index:0,routeNames:o,preloadedRoutes:[],routes:[{key:`${n}-${(0,t.nanoid)()}`,name:n,params:r[n]}]}},getRehydratedState(o,{routeNames:r,routeParamList:n}){const s=o;if(!1===s.stale)return s;const i=s.routes.filter(t=>r.includes(t.name)).map(o=>({...o,key:o.key||`${o.name}-${(0,t.nanoid)()}`,params:void 0!==n[o.name]?{...n[o.name],...o.params}:o.params})),u=s.preloadedRoutes?.filter(t=>r.includes(t.name)).map(o=>({...o,key:o.key||`${o.name}-${(0,t.nanoid)()}`,params:void 0!==n[o.name]?{...n[o.name],...o.params}:o.params}))??[];if(0===i.length){const o=void 0!==p.initialRouteName?p.initialRouteName:r[0];i.push({key:`${o}-${(0,t.nanoid)()}`,name:o,params:n[o]})}return{stale:!1,type:'stack',key:`stack-${(0,t.nanoid)()}`,index:i.length-1,routeNames:r,routes:i,preloadedRoutes:u}},getStateForRouteNamesChange(o,{routeNames:r,routeParamList:n,routeKeyChanges:s}){const i=o.routes.filter(t=>r.includes(t.name)&&!s.includes(t.name));if(0===i.length){const o=void 0!==p.initialRouteName&&r.includes(p.initialRouteName)?p.initialRouteName:r[0];i.push({key:`${o}-${(0,t.nanoid)()}`,name:o,params:n[o]})}return{...o,routeNames:r,routes:i,index:Math.min(o.index,i.length-1)}},getStateForRouteFocus(t,o){const r=t.routes.findIndex(t=>t.key===o);return-1===r||r===t.index?t:{...t,index:r,routes:t.routes.slice(0,r+1)}},getStateForAction(s,p,u){const{routeParamList:l}=u;switch(p.type){case'REPLACE':{const t=p.target===s.key&&p.source?s.routes.findIndex(t=>t.key===p.source):s.index;if(-1===t)return null;if(!s.routeNames.includes(p.payload.name))return null;const o=u.routeGetIdList[p.payload.name],r=o?.({params:p.payload.params});let i=s.preloadedRoutes.find(t=>t.name===p.payload.name&&r===o?.({params:t.params}));return i||(i=(0,n.createRouteFromAction)({action:p,routeParamList:l})),{...s,routes:s.routes.map((o,r)=>r===t?i:o),preloadedRoutes:s.preloadedRoutes.filter(t=>t.key!==i.key)}}case'PUSH':case'NAVIGATE':{if(!s.routeNames.includes(p.payload.name))return null;const o=u.routeGetIdList[p.payload.name],n=o?.({params:p.payload.params});let i,c,y;if(void 0!==n)i=s.routes.findLast(t=>t.name===p.payload.name&&n===o?.({params:t.params}));else if('NAVIGATE'===p.type){const t=s.routes[s.index];p.payload.name===t.name?i=t:p.payload.pop&&(i=s.routes.findLast(t=>t.name===p.payload.name))}if(i||(i=s.preloadedRoutes.find(t=>t.name===p.payload.name&&n===o?.({params:t.params}))),c='NAVIGATE'===p.type&&p.payload.merge&&i?void 0!==p.payload.params||void 0!==l[p.payload.name]?{...l[p.payload.name],...i.params,...p.payload.params}:i.params:(0,r.createParamsFromAction)({action:p,routeParamList:l}),i)if('NAVIGATE'===p.type&&p.payload.pop){y=[];for(const t of s.routes){if(t.key===i.key){y.push({...i,path:void 0!==p.payload.path?p.payload.path:i.path,params:c});break}y.push(t)}}else y=s.routes.filter(t=>t.key!==i.key),y.push({...i,path:'NAVIGATE'===p.type&&void 0!==p.payload.path?p.payload.path:i.path,params:c});else y=[...s.routes,{key:`${p.payload.name}-${(0,t.nanoid)()}`,name:p.payload.name,path:'NAVIGATE'===p.type?p.payload.path:void 0,params:c}];return{...s,index:y.length-1,preloadedRoutes:s.preloadedRoutes.filter(t=>y[y.length-1].key!==t.key),routes:y}}case'NAVIGATE_DEPRECATED':{if(!s.routeNames.includes(p.payload.name))return null;if(s.preloadedRoutes.find(t=>t.name===p.payload.name&&i===o?.({params:t.params})))return null;let t=-1;const o=u.routeGetIdList[p.payload.name],i=o?.({params:p.payload.params});if(t=void 0!==i?s.routes.findIndex(t=>t.name===p.payload.name&&i===o?.({params:t.params})):s.routes[s.index].name===p.payload.name?s.index:s.routes.findLastIndex(t=>t.name===p.payload.name),-1===t){const t=[...s.routes,(0,n.createRouteFromAction)({action:p,routeParamList:l})];return{...s,routes:t,index:t.length-1}}const c=s.routes[t];let y;return y=p.payload.merge?void 0!==p.payload.params||void 0!==l[c.name]?{...l[c.name],...c.params,...p.payload.params}:c.params:(0,r.createParamsFromAction)({action:p,routeParamList:l}),{...s,index:t,routes:[...s.routes.slice(0,t),y!==c.params?{...c,params:y}:s.routes[t]]}}case'POP':{const t=p.target===s.key&&p.source?s.routes.findIndex(t=>t.key===p.source):s.index;if(t>0){const o=Math.max(t-p.payload.count+1,1),r=s.routes.slice(0,o).concat(s.routes.slice(t+1));return{...s,index:r.length-1,routes:r}}return null}case'POP_TO_TOP':return i.getStateForAction(s,{type:'POP',payload:{count:s.routes.length-1}},u);case'POP_TO':{const t=p.target===s.key&&p.source?s.routes.findLastIndex(t=>t.key===p.source):s.index;if(-1===t)return null;if(!s.routeNames.includes(p.payload.name))return null;let o=-1;const i=u.routeGetIdList[p.payload.name],c=i?.({params:p.payload.params});if(void 0!==c)o=s.routes.findIndex(t=>t.name===p.payload.name&&c===i?.({params:t.params}));else if(s.routes[t].name===p.payload.name)o=t;else for(let r=t;r>=0;r--)if(s.routes[r].name===p.payload.name){o=r;break}if(-1===o){let o=s.preloadedRoutes.find(t=>t.name===p.payload.name&&c===i?.({params:t.params}));o||(o=(0,n.createRouteFromAction)({action:p,routeParamList:l}));const r=s.routes.slice(0,t).concat(o);return{...s,index:r.length-1,routes:r,preloadedRoutes:s.preloadedRoutes.filter(t=>t.key!==o.key)}}const y=s.routes[o];let f;return f=p.payload.merge?void 0!==p.payload.params||void 0!==l[y.name]?{...l[y.name],...y.params,...p.payload.params}:y.params:(0,r.createParamsFromAction)({action:p,routeParamList:l}),{...s,index:o,routes:[...s.routes.slice(0,o),f!==y.params?{...y,params:f}:s.routes[o]]}}case'GO_BACK':return s.index>0?i.getStateForAction(s,{type:'POP',payload:{count:1},target:p.target,source:p.source},u):null;case'PRELOAD':{const t=u.routeGetIdList[p.payload.name],o=t?.({params:p.payload.params});let i;return void 0!==o&&(i=s.routes.find(r=>r.name===p.payload.name&&o===t?.({params:r.params}))),i?{...s,routes:s.routes.map(t=>t.key!==i?.key?t:{...t,params:(0,r.createParamsFromAction)({action:p,routeParamList:l})})}:{...s,preloadedRoutes:s.preloadedRoutes.filter(r=>r.name!==p.payload.name||o!==t?.({params:r.params})).concat((0,n.createRouteFromAction)({action:p,routeParamList:l}))}}default:return o.BaseRouter.getStateForAction(s,p)}},actionCreators:s};return i};var t=_r(d[0]),o=_r(d[1]),r=_r(d[2]),n=_r(d[3]);const s={replace:(t,o)=>({type:'REPLACE',payload:{name:t,params:o}}),push:(t,o)=>({type:'PUSH',payload:{name:t,params:o}}),pop:(t=1)=>({type:'POP',payload:{count:t}}),popToTop:()=>({type:'POP_TO_TOP'}),popTo:(t,o,r)=>('boolean'==typeof r&&console.warn("Passing a boolean as the third argument to 'popTo' is deprecated. Pass '{ merge: true }' instead."),{type:'POP_TO',payload:{name:t,params:o,merge:'boolean'==typeof r?r:r?.merge}})}},94,[897,89,93,95]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.createRouteFromAction=function({action:n,routeParamList:c}){const{name:u}=n.payload;return{key:`${u}-${(0,t.nanoid)()}`,name:u,params:(0,o.createParamsFromAction)({action:n,routeParamList:c})}};var t=r(d[0]),o=r(d[1])},95,[897,93]); +__d(function(g,r,i,a,m,e,d){},96,[]); +__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return u}});var e,t=r(d[0]),u=((e=t)&&e.__esModule?e:{default:e}).default},97,[98]); +__d(function(g,r,i,a,m,e,d){"use strict";var t=r(d[0]),n='undefined'!=typeof document||'undefined'!=typeof navigator&&'ReactNative'===navigator.product?t.useLayoutEffect:t.useEffect;m.exports=function(u){var f=t.useRef(u),c=t.useRef(function(){for(var t=[],n=0;n{c.routes.forEach(c=>{const o=t?`${t} > ${c.name}`:c.name;c.state?.routeNames?.forEach(t=>{t===c.name&&n.push([o,`${o} > ${c.name}`])}),c.state&&s(o,c.state)})};return s('',t),n}},99,[]); +__d(function(g,r,_i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.checkSerializable=function(n){return t(n,new Set,[])};const t=(n,i,o)=>{if(null==n||'boolean'==typeof n||'number'==typeof n||'string'==typeof n)return{serializable:!0};if('[object Object]'!==Object.prototype.toString.call(n)&&!Array.isArray(n))return{serializable:!1,location:o,reason:'function'==typeof n?'Function':String(n)};if(i.has(n))return{serializable:!1,reason:'Circular reference',location:o};if(i.add(n),Array.isArray(n))for(let l=0;l{s[t]&&(s[t]=s[t].filter(t=>t!==n))};let u=null;return{get current(){return u},set current(t){u=t,null!=t&&Object.entries(s).forEach(([n,o])=>{o.forEach(o=>{t.addListener(n,o)})})},isReady:()=>null!=u&&u.isReady(),...o.reduce((t,o)=>(t[o]=(...t)=>{if(null!=u)return u[o](...t);switch(o){case'addListener':{const[n,o]=t;return s[n]=s[n]||[],s[n].push(o),()=>c(n,o)}case'removeListener':{const[n,o]=t;c(n,o);break}default:console.error(n)}},t),{})}};var t=r(d[0]);const n="The 'navigation' object hasn't been initialized yet. This might happen if you don't have a navigator mounted, or if the navigator hasn't finished mounting. See https://reactnavigation.org/docs/navigating-without-navigation-prop#handling-initialization for more details."},101,[87]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"DeprecatedNavigationInChildContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(!1)},102,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"SingleNavigatorContext",{enumerable:!0,get:function(){return o}}),_e.EnsureSingleNavigator=function({children:u}){const c=e.useRef(void 0),s=e.useMemo(()=>({register(e){const t=c.current;if(void 0!==t&&e!==t)throw new Error(n);c.current=e},unregister(e){e===c.current&&(c.current=void 0)}}),[]);return(0,t.jsx)(o.Provider,{value:s,children:u})};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]);const n="Another navigator is already registered for this container. You likely have multiple navigators under a single \"NavigationContainer\" or \"Screen\". Make sure each navigator is under a separate \"Screen\" container. See https://reactnavigation.org/docs/nesting-navigators for a guide on nesting.",o=e.createContext(void 0)},103,[39,2]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.findFocusedRoute=function(t){let n=t;for(;null!=n?.routes[n.index??0].state;)n=n.routes[n.index??0].state;const u=n?.routes[n?.index??0];return u}},104,[]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationBuilderContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext({onDispatchAction:()=>{},onOptionsChange:()=>{},scheduleUpdate:()=>{throw new Error("Couldn't find a context for scheduling updates.")},flushUpdates:()=>{throw new Error("Couldn't find a context for flushing updates.")}})},105,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationContainerRefContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},106,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationIndependentTreeContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(!1)},107,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationStateContext",{enumerable:!0,get:function(){return n}});var t=(function(t){if(t&&t.__esModule)return t;var e={};return t&&Object.keys(t).forEach(function(n){var o=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,o.get?o:{enumerable:!0,get:function(){return t[n]}})}),e.default=t,e})(r(_d[0]));const e="Couldn't find a navigation context. Have you wrapped your app with 'NavigationContainer'? See https://reactnavigation.org/docs/getting-started for setup instructions.",n=t.createContext({isDefault:!0,get getKey(){throw new Error(e)},get setKey(){throw new Error(e)},get getState(){throw new Error(e)},get setState(){throw new Error(e)},get getIsInitial(){throw new Error(e)}})},108,[39]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.ThemeProvider=function({value:u,children:o}){return(0,t.jsx)(n.ThemeContext.Provider,{value:u,children:o})},r(d[0]);var n=r(d[1]),t=r(d[2])},109,[39,110,2]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"ThemeContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0);e.displayName='ThemeContext'},110,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"UnhandledActionContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},111,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useChildListeners=function(){const{current:t}=e.useRef({action:[],focus:[]}),n=e.useCallback((e,n)=>{t[e].push(n);let u=!1;return()=>{const c=t[e].indexOf(n);!u&&c>-1&&(u=!0,t[e].splice(c,1))}},[t]);return{listeners:t,addListener:n}};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0]))},112,[39]); +__d(function(g,r,_i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useEventEmitter=function(t){const n=e.useRef(t);e.useEffect(()=>{n.current=t});const u=e.useRef(Object.create(null)),c=e.useCallback(e=>{const t=(t,n)=>{const c=u.current[t]?u.current[t][e]:void 0;if(!c)return;const o=c.indexOf(n);o>-1&&c.splice(o,1)};return{addListener:(n,c)=>{u.current[n]=u.current[n]||{},u.current[n][e]=u.current[n][e]||[],u.current[n][e].push(c);let o=!1;return()=>{o||(o=!0,t(n,c))}},removeListener:t}},[]),o=e.useCallback(({type:e,data:t,target:c,canPreventDefault:o})=>{const i=u.current[e]||{},s=void 0!==c?i[c]?.slice():[].concat(...Object.keys(i).map(e=>i[e])).filter((e,t,n)=>n.lastIndexOf(e)===t),f={get type(){return e}};if(void 0!==c&&Object.defineProperty(f,'target',{enumerable:!0,get:()=>c}),void 0!==t&&Object.defineProperty(f,'data',{enumerable:!0,get:()=>t}),o){let e=!1;Object.defineProperties(f,{defaultPrevented:{enumerable:!0,get:()=>e},preventDefault:{enumerable:!0,value(){e=!0}}})}return n.current?.(f),s?.forEach(e=>e(f)),f},[]);return e.useMemo(()=>({create:c,emit:o}),[c,o])};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0]))},113,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useKeyedChildListeners=function(){const{current:t}=e.useRef(Object.assign(Object.create(null),{getState:{},beforeRemove:{}})),n=e.useCallback((e,n,u)=>(t[e][n]=u,()=>{t[e][n]=void 0}),[t]);return{keyedListeners:t,addKeyedListener:n}};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0]))},114,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useNavigationIndependentTree=function(){return e.useContext(t.NavigationIndependentTreeContext)};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},115,[39,107]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useOptionsGetters=function({key:u,options:c,navigation:o}){const s=e.useRef(c),l=e.useRef({}),{onOptionsChange:f}=e.useContext(t.NavigationBuilderContext),{addOptionsGetter:d}=e.useContext(n.NavigationStateContext),O=e.useCallback(()=>{const e=o?.isFocused()??!0,t=Object.keys(l.current).length;e&&!t&&f(s.current??{})},[o,f]);e.useEffect(()=>(s.current=c,O(),o?.addListener('focus',O)),[o,c,O]);const b=e.useCallback(()=>{for(const e in l.current)if(e in l.current){const t=l.current[e]?.();if(null!==t)return t}return null},[]),p=e.useCallback(()=>{if(!(o?.isFocused()??!0))return null;const e=b();return null!==e?e:s.current},[o,b]);e.useEffect(()=>d?.(u,p),[p,d,u]);return{addOptionsGetter:e.useCallback((e,t)=>(l.current[e]=t,O(),()=>{delete l.current[e],O()}),[O]),getCurrentOptions:p}};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2])},116,[39,105,108]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useSyncState=function(e){const u=t.useRef(c(e)).current,s=t.useSyncExternalStore(u.subscribe,u.getState,u.getState);t.useDebugValue(s);const o=t.useRef([]),f=(0,n.default)(e=>{o.current.push(e)}),d=(0,n.default)(()=>{const e=o.current;o.current=[],0!==e.length&&u.batchUpdates(()=>{for(const t of e)t()})});return{state:s,getState:u.getState,setState:u.setState,scheduleUpdate:f,flushUpdates:d}};var e,t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(u){var n=Object.getOwnPropertyDescriptor(e,u);Object.defineProperty(t,u,n.get?n:{enumerable:!0,get:function(){return e[u]}})}),t.default=e,t})(r(_d[0])),u=r(_d[1]),n=(e=u)&&e.__esModule?e:{default:e},s=r(_d[2]);const c=e=>{const t=[];let u,n=!1;let c=!1,o=!1;return{getState:()=>(n||(n=!0,u=(0,s.deepFreeze)(e())),u),setState:e=>{u=(0,s.deepFreeze)(e),o=!0,c||t.forEach(e=>e())},batchUpdates:e=>{c=!0,e(),c=!1,o&&(o=!1,t.forEach(e=>e()))},subscribe:e=>(t.push(e),()=>{const u=t.indexOf(e);u>-1&&t.splice(u,1)})}}},117,[39,97,118]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"isPlainObject",{enumerable:!0,get:function(){return t}}),Object.defineProperty(e,"deepFreeze",{enumerable:!0,get:function(){return n}});const t=t=>'object'==typeof t&&null!==t&&Object.getPrototypeOf(t)===Object.prototype,n=t=>t},118,[]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.createNavigatorFactory=function(t){return function(u){return null!=u?{Navigator:t,Screen:o.Screen,Group:n.Group,config:u}:{Navigator:t,Screen:o.Screen,Group:n.Group}}};var n=r(d[0]),o=r(d[1])},119,[120,121]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.Group=function(u){return null}},120,[]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.Screen=function(n){return null}},121,[]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"CurrentRenderContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},122,[39]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.getActionFromState=function(n,s){const o=s?t(s):{},l=null!=n.index?n.routes.slice(0,n.index+1):n.routes;if(0===l.length)return;if(!(1===l.length&&void 0===l[0].key||2===l.length&&void 0===l[0].key&&l[0].name===o?.initialRouteName&&void 0===l[1].key))return{type:'RESET',payload:n};const c=n.routes[n.index??n.routes.length-1];let p=c?.state,u=o?.screens?.[c?.name],h={...c.params};const y=c?{name:c.name,path:c.path,params:h}:void 0;y&&u?.screens&&Object.keys(u.screens).length&&(y.pop=!0);for(;p;){if(0===p.routes.length)return;const t=null!=p.index?p.routes.slice(0,p.index+1):p.routes,n=t[t.length-1];if(Object.assign(h,{initial:void 0,screen:void 0,params:void 0,state:void 0}),1===t.length&&void 0===t[0].key)h.initial=!0,h.screen=n.name;else{if(2!==t.length||void 0!==t[0].key||t[0].name!==u?.initialRouteName||void 0!==t[1].key){h.state=p;break}h.initial=!1,h.screen=n.name}n.state?(h.params={...n.params},h.pop=!0,h=h.params):(h.path=n.path,h.params=n.params),p=n.state,u=u?.screens?.[n.name],u?.screens&&Object.keys(u.screens).length&&(h.pop=!0)}(y?.params.screen||y?.params.state)&&(y.pop=!0);if(!y)return;return{type:'NAVIGATE',payload:y}};const t=t=>'object'==typeof t&&null!=t?{initialRouteName:t.initialRouteName,screens:null!=t.screens?n(t.screens):void 0}:{},n=n=>Object.entries(n).reduce((n,[s,o])=>(n[s]=t(o),n),{})},123,[]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.getFocusedRouteNameFromRoute=function(n){const o=n[t.CHILD_STATE]??n.state,s=n.params;return o?o.routes[o.index??('string'==typeof o.type&&'stack'!==o.type?0:o.routes.length-1)].name:'string'==typeof s?.screen?s.screen:void 0};var t=r(d[0])},124,[125]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"CHILD_STATE",{enumerable:!0,get:function(){return n}}),_e.useRouteCache=function(u){const c=e.useMemo(()=>({current:new Map}),[]);return c.current=u.reduce((e,u)=>{const o=c.current.get(u.key),{state:f,...s}=u;let l;return l=o&&(0,t.isRecordEqual)(o,s)?o:s,Object.defineProperty(l,n,{enumerable:!1,configurable:!0,value:f}),e.set(u.key,l),e},new Map),Array.from(c.current.values())};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]);const n=Symbol('CHILD_STATE')},125,[39,126]); +__d(function(g,r,i,_a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.isRecordEqual=function(t,n){if(t===n)return!0;const c=Object.keys(t),u=Object.keys(n);if(c.length!==u.length)return!1;return c.every(c=>Object.is(t[c],n[c]))}},126,[]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.getPathFromState=function(t,o){if(null==t)throw Error(`Got '${String(t)}' for the navigation state. You must pass a valid state object.`);o&&(0,n.validatePathConfig)(o);const f=c(o);let p='/',u=t;const d={};for(;u;){let n,o,c='number'==typeof u.index?u.index:0,l=u.routes[c],h=f;const b=s(t),y=[];let j=!0;for(;l.name in h&&j;){if(n=h[l.name].parts,y.push(l.name),l.params){const e=h[l.name],t=Object.fromEntries(Object.entries(l.params).map(([t,n])=>{if(void 0===n){if(!e)return null;{const n=e.parts?.find(e=>e.param===t)?.optional;if(n)return null}}return[t,(e?.stringify?.[t]??String)(n)]}).filter(e=>null!=e));n?.length&&Object.assign(d,t),b===l&&(o={...t},n?.forEach(({param:e})=>{e&&o&&delete o[e]}))}if(h[l.name].screens&&void 0!==l.state){c='number'==typeof l.state.index?l.state.index:l.state.routes.length-1;const e=l.state.routes[c],t=h[l.name].screens;t&&e.name in t?(l=e,h=t):j=!1}else j=!1}if(void 0!==h[l.name]?p+=n?.map(({segment:e,param:t,optional:n})=>{if('*'===e)return l.name;if(t){const e=d[t];return void 0===e&&n?'':Array.from(String(e)).map(e=>/[^A-Za-z0-9\-._~!$&'()*+,;=:@]/g.test(e)?encodeURIComponent(e):e).join('')}return encodeURIComponent(e)}).join('/'):p+=encodeURIComponent(l.name),!o&&b.params&&(o=Object.fromEntries(Object.entries(b.params).map(([e,t])=>[e,String(t)]))),l.state)p+='/';else if(o){for(const e in o)'undefined'===o[e]&&delete o[e];const t=e.stringify(o,{sort:!1});t&&(p+=`?${t}`)}u=l.state}o?.path&&(p=`${o.path}/${p}`);p=p.replace(/\/+/g,'/'),p=p.length>1?p.replace(/\/$/,''):p,p.startsWith('/')||(p=`/${p}`);return p};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2]);const s=e=>{const t='number'==typeof e.index?e.routes[e.index]:e.routes[e.routes.length-1];return t.state?s(t.state):t},o=new WeakMap,c=e=>{if(!e?.screens)return{};const t=o.get(e?.screens);if(t)return t;const n=p(e.screens);return o.set(e.screens,n),n};const f=(e,n)=>{if('string'==typeof e){const s=(0,t.getPatternParts)(e);return n?{parts:[...n,...s]}:{parts:s}}if(e.exact&&void 0===e.path)throw new Error("A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.");const s=!0!==e.exact?[...n||[],...e.path?(0,t.getPatternParts)(e.path):[]]:e.path?(0,t.getPatternParts)(e.path):void 0,o=e.screens?p(e.screens,s):void 0;return{parts:s,stringify:e.stringify,screens:o}},p=(e,t)=>Object.fromEntries(Object.entries(e).map(([e,n])=>[e,f(n,t)]))},127,[128,133,134]); +__d(function(g,r,i,_a,m,e,d){'use strict';const t=r(d[0]),n=r(d[1]),a=r(d[2]),o=r(d[3]),s=Symbol('encodeFragmentIdentifier');function c(t){switch(t.arrayFormat){case'index':return n=>(a,o)=>{const s=a.length;return void 0===o||t.skipNull&&null===o||t.skipEmptyString&&''===o?a:null===o?[...a,[p(n,t),'[',s,']'].join('')]:[...a,[p(n,t),'[',p(s,t),']=',p(o,t)].join('')]};case'bracket':return n=>(a,o)=>void 0===o||t.skipNull&&null===o||t.skipEmptyString&&''===o?a:null===o?[...a,[p(n,t),'[]'].join('')]:[...a,[p(n,t),'[]=',p(o,t)].join('')];case'colon-list-separator':return n=>(a,o)=>void 0===o||t.skipNull&&null===o||t.skipEmptyString&&''===o?a:null===o?[...a,[p(n,t),':list='].join('')]:[...a,[p(n,t),':list=',p(o,t)].join('')];case'comma':case'separator':case'bracket-separator':{const n='bracket-separator'===t.arrayFormat?'[]=':'=';return a=>(o,s)=>void 0===s||t.skipNull&&null===s||t.skipEmptyString&&''===s?o:(s=null===s?'':s,0===o.length?[[p(a,t),n,p(s,t)].join('')]:[[o,p(s,t)].join(t.arrayFormatSeparator)])}default:return n=>(a,o)=>void 0===o||t.skipNull&&null===o||t.skipEmptyString&&''===o?a:null===o?[...a,p(n,t)]:[...a,[p(n,t),'=',p(o,t)].join('')]}}function l(t){let n;switch(t.arrayFormat){case'index':return(t,a,o)=>{n=/\[(\d*)\]$/.exec(t),t=t.replace(/\[\d*\]$/,''),n?(void 0===o[t]&&(o[t]={}),o[t][n[1]]=a):o[t]=a};case'bracket':return(t,a,o)=>{n=/(\[\])$/.exec(t),t=t.replace(/\[\]$/,''),n?void 0!==o[t]?o[t]=[].concat(o[t],a):o[t]=[a]:o[t]=a};case'colon-list-separator':return(t,a,o)=>{n=/(:list)$/.exec(t),t=t.replace(/:list$/,''),n?void 0!==o[t]?o[t]=[].concat(o[t],a):o[t]=[a]:o[t]=a};case'comma':case'separator':return(n,a,o)=>{const s='string'==typeof a&&a.includes(t.arrayFormatSeparator),c='string'==typeof a&&!s&&f(a,t).includes(t.arrayFormatSeparator);a=c?f(a,t):a;const l=s||c?a.split(t.arrayFormatSeparator).map(n=>f(n,t)):null===a?a:f(a,t);o[n]=l};case'bracket-separator':return(n,a,o)=>{const s=/(\[\])$/.test(n);if(n=n.replace(/\[\]$/,''),!s)return void(o[n]=a?f(a,t):a);const c=null===a?[]:a.split(t.arrayFormatSeparator).map(n=>f(n,t));void 0!==o[n]?o[n]=[].concat(o[n],c):o[n]=c};default:return(t,n,a)=>{void 0!==a[t]?a[t]=[].concat(a[t],n):a[t]=n}}}function u(t){if('string'!=typeof t||1!==t.length)throw new TypeError('arrayFormatSeparator must be single character string')}function p(n,a){return a.encode?a.strict?t(n):encodeURIComponent(n):n}function f(t,a){return a.decode?n(t):t}function y(t){return Array.isArray(t)?t.sort():'object'==typeof t?y(Object.keys(t)).sort((t,n)=>Number(t)-Number(n)).map(n=>t[n]):t}function b(t){const n=t.indexOf('#');return-1!==n&&(t=t.slice(0,n)),t}function j(t){let n='';const a=t.indexOf('#');return-1!==a&&(n=t.slice(a)),n}function k(t){const n=(t=b(t)).indexOf('?');return-1===n?'':t.slice(n+1)}function F(t,n){return n.parseNumbers&&!Number.isNaN(Number(t))&&'string'==typeof t&&''!==t.trim()?t=Number(t):!n.parseBooleans||null===t||'true'!==t.toLowerCase()&&'false'!==t.toLowerCase()||(t='true'===t.toLowerCase()),t}function O(t,n){u((n=Object.assign({decode:!0,sort:!0,arrayFormat:'none',arrayFormatSeparator:',',parseNumbers:!1,parseBooleans:!1},n)).arrayFormatSeparator);const o=l(n),s=Object.create(null);if('string'!=typeof t)return s;if(!(t=t.trim().replace(/^[?#&]/,'')))return s;for(const c of t.split('&')){if(''===c)continue;let[t,l]=a(n.decode?c.replace(/\+/g,' '):c,'=');l=void 0===l?null:['comma','separator','bracket-separator'].includes(n.arrayFormat)?l:f(l,n),o(f(t,n),l,s)}for(const t of Object.keys(s)){const a=s[t];if('object'==typeof a&&null!==a)for(const t of Object.keys(a))a[t]=F(a[t],n);else s[t]=F(a,n)}return!1===n.sort?s:(!0===n.sort?Object.keys(s).sort():Object.keys(s).sort(n.sort)).reduce((t,n)=>{const a=s[n];return Boolean(a)&&'object'==typeof a&&!Array.isArray(a)?t[n]=y(a):t[n]=a,t},Object.create(null))}e.extract=k,e.parse=O,e.stringify=(t,n)=>{if(!t)return'';u((n=Object.assign({encode:!0,strict:!0,arrayFormat:'none',arrayFormatSeparator:','},n)).arrayFormatSeparator);const a=a=>n.skipNull&&null==t[a]||n.skipEmptyString&&''===t[a],o=c(n),s={};for(const n of Object.keys(t))a(n)||(s[n]=t[n]);const l=Object.keys(s);return!1!==n.sort&&l.sort(n.sort),l.map(a=>{const s=t[a];return void 0===s?'':null===s?p(a,n):Array.isArray(s)?0===s.length&&'bracket-separator'===n.arrayFormat?p(a,n)+'[]':s.reduce(o(a),[]).join('&'):p(a,n)+'='+p(s,n)}).filter(t=>t.length>0).join('&')},e.parseUrl=(t,n)=>{n=Object.assign({decode:!0},n);const[o,s]=a(t,'#');return Object.assign({url:o.split('?')[0]||'',query:O(k(t),n)},n&&n.parseFragmentIdentifier&&s?{fragmentIdentifier:f(s,n)}:{})},e.stringifyUrl=(t,n)=>{n=Object.assign({encode:!0,strict:!0,[s]:!0},n);const a=b(t.url).split('?')[0]||'',o=e.extract(t.url),c=e.parse(o,{sort:!1}),l=Object.assign(c,t.query);let u=e.stringify(l,n);u&&(u=`?${u}`);let f=j(t.url);return t.fragmentIdentifier&&(f=`#${n[s]?p(t.fragmentIdentifier,n):t.fragmentIdentifier}`),`${a}${u}${f}`},e.pick=(t,n,a)=>{a=Object.assign({parseFragmentIdentifier:!0,[s]:!1},a);const{url:c,query:l,fragmentIdentifier:u}=e.parseUrl(t,a);return e.stringifyUrl({url:c,query:o(l,n),fragmentIdentifier:u},a)},e.exclude=(t,n,a)=>{const o=Array.isArray(n)?t=>!n.includes(t):(t,a)=>!n(t,a);return e.pick(t,o,a)}},128,[129,130,131,132]); +__d(function(g,r,i,a,m,e,d){'use strict';m.exports=t=>encodeURIComponent(t).replace(/[!'()*]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase()}`)},129,[]); +__d(function(g,r,_i,a,m,e,d){'use strict';var t=new RegExp("(%[a-f0-9]{2})|([^%]+?)",'gi'),n=new RegExp("(%[a-f0-9]{2})+",'gi');function o(t,n){try{return[decodeURIComponent(t.join(''))]}catch(t){}if(1===t.length)return t;n=n||1;var c=t.slice(0,n),p=t.slice(n);return Array.prototype.concat.call([],o(c),o(p))}function c(n){try{return decodeURIComponent(n)}catch(i){for(var c=n.match(t)||[],p=1;p{if('string'!=typeof t||'string'!=typeof n)throw new TypeError('Expected the arguments to be of type `string`');if(''===n)return[t];const s=t.indexOf(n);return-1===s?[t]:[t.slice(0,s),t.slice(s+n.length)]}},131,[]); +__d(function(g,r,_i,a,m,e,d){'use strict';m.exports=function(t,n){for(var i={},s=Object.keys(t),c=Array.isArray(n),f=0;fn.param).filter(Boolean);for(const[t,i]of f.entries())if(f.indexOf(i)!==t)throw new Error(`Duplicate param name '${i}' found in path: ${n}`);return t}},133,[]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.validatePathConfig=function n(o,s=!0){const c={path:'string',initialRouteName:'string',screens:'object',...s?null:{alias:'array',exact:'boolean',stringify:'object',parse:'object'}};if('object'!=typeof o||null===o)throw new Error(`Expected the configuration to be an object, but got ${JSON.stringify(o)}.`);const f=Object.fromEntries(Object.keys(o).map(t=>{if(!(t in c))return[t,'extraneous'];{const n=c[t],s=o[t];if(void 0!==s)if('array'===n){if(!Array.isArray(s))return[t,`expected 'Array', got '${typeof s}'`]}else if(typeof s!==n)return[t,`expected '${n}', got '${typeof s}'`]}return null}).filter(Boolean));if(Object.keys(f).length)throw new Error(`Found invalid properties in the configuration:\n${t(f)}\n\nYou can only specify the following properties:\n${t(c)}\n\nIf you want to specify configuration for screens, you need to specify them under a 'screens' property.\n\nSee https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.`);if(s&&'path'in o&&'string'==typeof o.path&&o.path.includes(':'))throw new Error(`Found invalid path '${o.path}'. The 'path' in the top-level configuration cannot contain patterns for params.`);'screens'in o&&o.screens&&Object.entries(o.screens).forEach(([t,o])=>{'string'!=typeof o&&n(o,!1)})};const t=t=>Object.entries(t).map(([t,n])=>`- ${t} (${n})`).join('\n')},134,[]); +__d(function(g,r,_i,_a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.getStateFromPath=function(e,t){const{initialRoutes:n,configs:s}=l(t),a=t?.screens;let o=e.replace(/\/+/g,'/').replace(/^\//,'').replace(/\?.*$/,'');o=o.endsWith('/')?o:`${o}/`;const i=t?.path?.replace(/^\//,'');if(i){const e=i.endsWith('/')?i:`${i}/`;if(!o.startsWith(e))return;o=o.replace(e,'')}if(void 0===a){const t=o.split('/').filter(Boolean).map(e=>({name:decodeURIComponent(e)}));return t.length?O(e,t,n):void 0}if('/'===o){const t=s.find(e=>''===e.segments.join('/'));return t?O(e,t.routeNames.map(e=>({name:e})),n,s):void 0}let u,c;const{routes:p,remainingPath:f}=j(o,s);void 0!==p&&(c=O(e,p,n,s),o=f,u=c);if(null==c||null==u)return;return u};var e,t=r(_d[0]),n=(e=t)&&e.__esModule?e:{default:e},s=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),a=r(_d[2]),o=r(_d[3]),i=r(_d[4]),u=r(_d[5]),c=r(_d[6]);const p=new WeakMap;function l(e){if(!e)return f();const t=p.get(e);if(t)return t;const n=f(e);return p.set(e,n),n}function f(e){e&&(0,c.validatePathConfig)(e);const t=h(e),n=d(t,e?.screens);y(n);return{initialRoutes:t,configs:n,configWithRegexes:b(n)}}function h(e){const t=[];return e?.initialRouteName&&t.push({initialRouteName:e.initialRouteName,parentScreens:[]}),t}function d(e,t={}){return[].concat(...Object.keys(t).map(n=>v(n,t,e,[],[],[]))).sort((e,t)=>{if((0,u.isArrayEqual)(e.segments,t.segments))return t.routeNames.join('>').localeCompare(e.routeNames.join('>'));if((0,a.arrayStartsWith)(e.segments,t.segments))return-1;if((0,a.arrayStartsWith)(t.segments,e.segments))return 1;for(let n=0;n{const n=t.segments.join('/');if(e[n]){const s=e[n].routeNames,a=t.routeNames;if(!(s.length>a.length?a.every((e,t)=>s[t]===e):s.every((e,t)=>a[t]===e)))throw new Error(`Found conflicting screens with the same pattern. The pattern '${n}' resolves to both '${s.join(' > ')}' and '${a.join(' > ')}'. Patterns must be unique and cannot resolve to more than one screen.`)}return Object.assign(e,{[n]:t})},{})}function b(e){return e.map(e=>({...e,regex:e.regex?new RegExp(e.regex.source+'$'):void 0}))}const j=(e,t)=>{let n,s=e;for(const e of t){if(!e.regex)continue;const o=s.match(e.regex);if(o){n=e.routeNames.map(n=>{const s=t.find(t=>t.screen===n&&(0,a.arrayStartsWith)(e.segments,t.segments)),i=s&&o.groups?Object.fromEntries(Object.entries(o.groups).map(([e,t])=>{const a=Number(e.replace('param_','')),o=s.params.find(e=>e.index===a);return o?.screen===n&&o?.name?[o.name,t]:null}).filter(e=>null!=e).map(([e,t])=>{if(null==t)return[e,void 0];const n=decodeURIComponent(t);return[e,s.parse?.[e]?s.parse[e](n):n]})):void 0;return i&&Object.keys(i).length?{name:n,params:i}:{name:n}}),s=s.replace(o[0],'');break}}return{routes:n,remainingPath:s}},v=(e,t,n,s,a,o)=>{const i=[];o.push(e),a.push(e);const u=t[e];if('string'==typeof u)s.push({screen:e,path:u}),i.push(x(e,[...o],[...s]));else if('object'==typeof u){if('string'==typeof u.path){if(u.exact&&null==u.path)throw new Error(`Screen '${e}' doesn't specify a 'path'. A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. \`path: ''\`.`);const t=[];if(u.alias)for(const n of u.alias)'string'==typeof n?t.push(x(e,[...o],[...s,{screen:e,path:n}],u.parse)):'object'==typeof n&&t.push(x(e,[...o],n.exact?[{screen:e,path:n.path}]:[...s,{screen:e,path:n.path}],n.parse));u.exact&&(s.length=0),s.push({screen:e,path:u.path}),i.push(x(e,[...o],[...s],u.parse)),i.push(...t)}if('string'!=typeof u&&'string'!=typeof u.path&&u.alias?.length)throw new Error(`Screen '${e}' doesn't specify a 'path'. A 'path' needs to be specified in order to use 'alias'.`);u.screens&&(u.initialRouteName&&n.push({initialRouteName:u.initialRouteName,parentScreens:a}),Object.keys(u.screens).forEach(e=>{const t=v(e,u.screens,n,[...s],[...a],o);i.push(...t)}))}return o.pop(),i},x=(e,t,s,a)=>{const o=[];for(const{screen:e,path:t}of s)o.push(...(0,i.getPatternParts)(t).map(t=>({...t,screen:e})));return{screen:e,regex:o.length?new RegExp(`^(${o.map((e,t)=>{if(e.param){return`(((?${e.regex||'[^/]+'})\\/)${e.optional?'?':''})`}return`${'*'===e.segment?'.*':(0,n.default)(e.segment)}\\/`}).join('')})$`):void 0,segments:o.map(e=>e.segment),params:o.map((e,t)=>e.param?{index:t,screen:e.screen,name:e.param}:null).filter(e=>null!=e),routeNames:t,parse:a}},N=(e,t)=>{for(const n of t)if(e===n.routeNames[n.routeNames.length-1])return n.parse},R=(e,t,n)=>{for(const s of n)if(t.length===s.parentScreens.length){let n=!0;for(let e=0;en?e?{index:1,routes:[{name:e},t]}:{routes:[t]}:e?{index:1,routes:[{name:e},{...t,state:{routes:[]}}]}:{routes:[{...t,state:{routes:[]}}]},O=(e,t,n,s)=>{let a=t.shift();const i=[];let u=R(a.name,i,n);i.push(a.name);const c=$(u,a,0===t.length);if(t.length>0){let e=c;for(;a=t.shift();){u=R(a.name,i,n);const s=e.index||e.routes.length-1;e.routes[s].state=$(u,a,0===t.length),t.length>0&&(e=e.routes[s].state),i.push(a.name)}}a=(0,o.findFocusedRoute)(c),a.path=e.replace(/\/$/,'');const p=w(e,s?N(a.name,s):void 0);return p&&(a.params={...a.params,...p}),c},w=(e,t)=>{const n=e.split('?')[1],a=s.parse(n);return t&&Object.keys(a).forEach(e=>{Object.hasOwnProperty.call(t,e)&&'string'==typeof a[e]&&(a[e]=t[e](a[e]))}),Object.keys(a).length?a:void 0}},135,[136,128,137,104,133,138,134]); +__d(function(g,r,i,a,m,e,d){'use strict';m.exports=t=>{if('string'!=typeof t)throw new TypeError('Expected a string');return t.replace(/[|\\{}()[\]^$+*?.]/g,'\\$&').replace(/-/g,'\\x2d')}},136,[]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.arrayStartsWith=function(t,n){if(n.length>t.length)return!1;return n.every((n,u)=>n===t[u])}},137,[]); +__d(function(g,r,i,_a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.isArrayEqual=function(t,n){if(t===n)return!0;if(t.length!==n.length)return!1;return t.every((t,u)=>Object.is(t,n[u]))}},138,[]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},139,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationHelpersContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},140,[39]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.NavigationIndependentTree=function({children:u}){return(0,v.jsx)(o.NavigationRouteContext.Provider,{value:void 0,children:(0,v.jsx)(n.NavigationContext.Provider,{value:void 0,children:(0,v.jsx)(t.NavigationIndependentTreeContext.Provider,{value:!0,children:u})})})},r(d[0]);var n=r(d[1]),t=r(d[2]),o=r(d[3]),v=r(d[4])},141,[39,139,107,142,2]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationRouteContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},142,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationMetaContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},143,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"PreventRemoveContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},144,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.PreventRemoveProvider=function({children:e}){const[o]=n.useState(()=>(0,t.nanoid)()),[l,p]=n.useState(()=>new Map),y=n.useContext(v.NavigationHelpersContext),R=n.useContext(s.NavigationRouteContext),P=n.useContext(d.PreventRemoveContext),C=P?.setPreventRemove,x=(0,u.default)((e,t,n)=>{if(n&&(null==y||y?.getState().routes.every(e=>e.key!==t)))throw new Error(`Couldn't find a route with the key ${t}. Is your component inside NavigationContent?`);p(o=>{if(t===o.get(e)?.routeKey&&n===o.get(e)?.preventRemove)return o;const u=new Map(o);return n?u.set(e,{routeKey:t,preventRemove:n}):u.delete(e),u})}),_=[...l.values()].some(({preventRemove:e})=>e);n.useEffect(()=>{if(void 0!==R?.key&&void 0!==C)return C(o,R.key,_),()=>{C(o,R.key,!1)}},[o,_,R?.key,C]);const k=n.useMemo(()=>({setPreventRemove:x,preventedRoutes:f(l)}),[x,l]);return(0,c.jsx)(d.PreventRemoveContext.Provider,{value:k,children:e})};var e,t=r(_d[0]),n=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),o=r(_d[2]),u=(e=o)&&e.__esModule?e:{default:e},v=r(_d[3]),s=r(_d[4]),d=r(_d[5]),c=r(_d[6]);const f=e=>[...e.values()].reduce((e,{routeKey:t,preventRemove:n})=>(e[t]={preventRemove:e[t]?.preventRemove||n},e),{})},145,[897,39,97,140,142,144,2]); +__d(function(g,r,i,_a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.createComponentForStaticNavigation=a,_e.createPathConfigForStaticNavigation=function(e,n,t){let o,s=!1;const c=(e,n,a)=>{const l=(e,n)=>Object.fromEntries(Object.entries(e).sort(([e],[t])=>e===n?-1:t===n?1:0).map(([e,l])=>{const u={};let p;'linking'in l&&('string'==typeof l.linking?u.path=l.linking:Object.assign(u,l.linking),'string'==typeof u.path&&(u.path=u.path.replace(/^\//,'').replace(/\/$/,'')));const f=a||null!=u.path&&''!==u.path;return'config'in l?p=c(l,void 0,f):'screen'in l&&'config'in l.screen&&(l.screen.config.screens||l.screen.config.groups)&&(p=c(l.screen,void 0,f)),p&&(u.screens=p),!t||u.screens||'linking'in l&&null==l.linking||(null!=u.path?a||(e===n&&null!=u.path?s=!0:''===u.path&&(o=void 0)):(a||null!=o||(o=u),u.path=e.replace(/([A-Z]+)/g,'-$1').replace(/^-/,'').toLowerCase())),[e,u]}).filter(([,e])=>Object.keys(e).length>0)),u={};for(const t in e.config)'screens'===t&&e.config.screens&&Object.assign(u,l(e.config.screens,n?.initialRouteName??e.config.initialRouteName)),'groups'===t&&e.config.groups&&Object.entries(e.config.groups).forEach(([,t])=>{Object.assign(u,l(t.screens,n?.initialRouteName??e.config.initialRouteName))});if(0!==Object.keys(u).length)return u},a=c(e,n,!1);t&&o&&!s&&(o.path='');return a};var e=(function(e){if(e&&e.__esModule)return e;var n={};return e&&Object.keys(e).forEach(function(t){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}),n.default=e,n})(r(_d[0])),n=r(_d[1]),t=r(_d[2]),o=r(_d[3]);const s=e.memo(({component:n})=>{const o=(0,t.useRoute)();return e.createElement(n,{route:o})});s.displayName='Memo(Screen)';const c=(t,c)=>Object.entries(c).map(([c,l])=>{let u,p,f={},d=!1;if('screen'in l){const{screen:e,if:t,...o}=l;p=t,f=o,(0,n.isValidElementType)(e)?u=e:'config'in e&&(d=!0,u=a(e,`${c}Navigator`))}else(0,n.isValidElementType)(l)?u=l:'config'in l&&(d=!0,u=a(l,`${c}Navigator`));if(null==u)throw new Error(`Couldn't find a 'screen' property for the screen '${c}'. This can happen if you passed 'undefined'. You likely forgot to export your component from the file it's defined in, or mixed up default import and named import when importing.`);const h=d?e.createElement(u,{}):(0,o.jsx)(s,{component:u});return()=>null==p||p()?(0,o.jsx)(t,{name:c,...f,children:()=>h},c):null});function a(e,n){const{Navigator:t,Group:s,Screen:a,config:l}=e,{screens:u,groups:p,...f}=l;if(null==u&&null==p)throw new Error("Couldn't find a 'screens' or 'groups' property. Make sure to define your screens under a 'screens' property in the configuration.");const d=[];for(const e in l)'screens'===e&&u&&d.push(...c(a,u)),'groups'===e&&p&&d.push(...Object.entries(p).map(([e,{if:n,...t}])=>{const l=c(a,t.screens);return()=>{const c=l.map(e=>e());return null==n||n()?(0,o.jsx)(s,{navigationKey:e,...t,children:c},e):null}}));const h=()=>{const e=d.map(e=>e());return(0,o.jsx)(t,{...f,children:e})};return h.displayName=n,h}},146,[39,147,149,2]); +__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},147,[148]); __d(function(g,r,i,a,m,e,d){ /** * @license React @@ -101,29 +169,29 @@ __d(function(g,r,i,a,m,e,d){ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -"use strict";var t=Symbol.for("react.transitional.element"),o=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),c=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),u=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),y=Symbol.for("react.suspense"),p=Symbol.for("react.suspense_list"),S=Symbol.for("react.memo"),$=Symbol.for("react.lazy"),b=Symbol.for("react.view_transition"),w=Symbol.for("react.client.reference");function v(w){if("object"==typeof w&&null!==w){var v=w.$$typeof;switch(v){case t:switch(w=w.type){case n:case f:case c:case y:case p:case b:return w;default:switch(w=w&&w.$$typeof){case u:case l:case $:case S:case s:return w;default:return v}}case o:return v}}}e.ContextConsumer=s,e.ContextProvider=u,e.Element=t,e.ForwardRef=l,e.Fragment=n,e.Lazy=$,e.Memo=S,e.Portal=o,e.Profiler=f,e.StrictMode=c,e.Suspense=y,e.SuspenseList=p,e.isContextConsumer=function(t){return v(t)===s},e.isContextProvider=function(t){return v(t)===u},e.isElement=function(o){return"object"==typeof o&&null!==o&&o.$$typeof===t},e.isForwardRef=function(t){return v(t)===l},e.isFragment=function(t){return v(t)===n},e.isLazy=function(t){return v(t)===$},e.isMemo=function(t){return v(t)===S},e.isPortal=function(t){return v(t)===o},e.isProfiler=function(t){return v(t)===f},e.isStrictMode=function(t){return v(t)===c},e.isSuspense=function(t){return v(t)===y},e.isSuspenseList=function(t){return v(t)===p},e.isValidElementType=function(t){return"string"==typeof t||"function"==typeof t||t===n||t===f||t===c||t===y||t===p||"object"==typeof t&&null!==t&&(t.$$typeof===$||t.$$typeof===S||t.$$typeof===u||t.$$typeof===s||t.$$typeof===l||t.$$typeof===w||void 0!==t.getModuleId)},e.typeOf=v},71,[]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useRoute=function(){const n=e.useContext(t.NavigationRouteContext);if(void 0===n)throw new Error("Couldn't find a route object. Is your component inside a screen in a navigator?");return n};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},72,[19,66]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useTheme=function(){const n=e.useContext(t.ThemeContext);if(null==n)throw new Error("Couldn't find a theme. Is your component inside NavigationContainer or does it have a theme?");return n};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},73,[19,34]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"PrivateValueStore",{enumerable:!0,get:function(){return t}});class t{}},74,[]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useFocusEffect=function(n){const o=(0,t.useNavigation)();if(void 0!==arguments[1]){const e="You passed a second argument to 'useFocusEffect', but it only accepts one argument. If you want to pass a dependency array, you can use 'React.useCallback':\n\nuseFocusEffect(\n React.useCallback(() => {\n // Your code here\n }, [depA, depB])\n);\n\nSee usage guide: https://reactnavigation.org/docs/use-focus-effect";console.error(e)}e.useEffect(()=>{let e,t=!1;const c=()=>{const e=n();if(void 0===e||'function'==typeof e)return e};o.isFocused()&&(e=c(),t=!0);const u=o.addListener('focus',()=>{t||(void 0!==e&&e(),e=c(),t=!0)}),s=o.addListener('blur',()=>{void 0!==e&&e(),e=void 0,t=!1});return()=>{void 0!==e&&e(),u(),s()}},[n,o])};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},75,[19,76]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useNavigation=function(){const o=e.useContext(t.NavigationContainerRefContext),u=e.useContext(n.NavigationContext);if(void 0===u&&void 0===o)throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");return u??o};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2])},76,[19,30,63]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useIsFocused=function(){const n=(0,t.useNavigation)(),u=e.useCallback(e=>{const t=n.addListener('focus',e),u=n.addListener('blur',e);return()=>{t(),u()}},[n]);return e.useSyncExternalStore(u,n.isFocused,n.isFocused)};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},77,[19,76]); -__d(function(g,_r,_i,a,m,_e,_d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.useNavigationBuilder=function(e,i){const f=(0,K.useRegisterNavigator)(),v=n.useContext(d.NavigationRouteContext),{children:x,layout:B,screenOptions:T,screenLayout:V,screenListeners:J,UNSTABLE_router:M,...H}=i,q=$(x),z=(0,w.useLazyValue)(()=>{if(null!=H.initialRouteName&&q.every(e=>e.props.name!==H.initialRouteName))throw new Error(`Couldn't find a screen named '${H.initialRouteName}' to use as 'initialRouteName'.`);const t=e(H);if(null!=M){const e=M(t);return{...t,...e}}return t}),D=q.reduce((e,t)=>{if(t.props.name in e)throw new Error(`A navigator cannot contain multiple 'Screen' components with the same name (found duplicate screen named '${t.props.name}')`);return e[t.props.name]=t,e},{}),Q=q.map(e=>e.props.name),W=Q.reduce((e,t)=>(e[t]=D[t].keys.map(e=>e??'').join(':'),e),{}),X=Q.reduce((e,t)=>{const{initialParams:r}=D[t].props;return e[t]=r,e},{}),Y=Q.reduce((e,t)=>Object.assign(e,{[t]:D[t].props.getId}),{});if(!Q.length)throw new Error("Couldn't find any screens for the navigator. Have you defined any screens as its children?");const Z=n.useCallback(e=>void 0===e.type||e.type===z.type,[z.type]),ee=n.useCallback(e=>void 0!==e&&!1===e.stale&&Z(e),[Z]),te=n.useCallback(e=>e.routes.every(e=>!Q.includes(e.name)),[Q]),{state:ae,getState:re,setState:ne,setKey:se,getKey:oe,getIsInitial:ie}=n.useContext(l.NavigationStateContext),pe=n.useRef(!1),ue=(0,s.default)(e=>{pe.current||ne(e)}),[ce,de,le]=n.useMemo(()=>{const e=Q.reduce((e,t)=>{const{initialParams:r}=D[t].props,n=null==v?.params?.state&&!1!==v?.params?.initial&&v?.params?.screen===t?v.params.params:void 0;return e[t]=void 0!==r||void 0!==n?{...r,...n}:void 0,e},{});if(void 0!==ae&&Z(ae)||null!=v?.params?.state||'string'==typeof v?.params?.screen&&!1!==v?.params?.initial){const t=F(v?.params)??ae,r=z.getRehydratedState(t,{routeNames:Q,routeParamList:e,routeGetIdList:Y});return'lastUnhandled'===i.UNSTABLE_routeNamesChangeBehavior&&te(t)?[t,r,!0]:[void 0,r,!1]}return[void 0,z.getInitialState({routeNames:Q,routeParamList:e,routeGetIdList:Y}),!0]},[ae,z,Z]),me=n.useRef(W);n.useEffect(()=>{me.current=W});const ye=me.current,[fe,ge]=n.useState(ce);'lastUnhandled'===i.UNSTABLE_routeNamesChangeBehavior&&ce&&fe!==ce&&ge(ce);let ve=ee(ae)?ae:de,he=ve,Le=!1;fe?.routes.every(e=>Q.includes(e.name))&&ve?.routes.every(e=>!Q.includes(e.name))?(Le=!0,he=z.getRehydratedState(fe,{routeNames:Q,routeParamList:X,routeGetIdList:Y})):(0,p.isArrayEqual)(ve.routeNames,Q)&&(0,u.isRecordEqual)(W,ye)||(he=z.getStateForRouteNamesChange(ve,{routeNames:Q,routeParamList:X,routeGetIdList:Y,routeKeyChanges:Object.keys(W).filter(e=>e in ye&&W[e]!==ye[e])}));const Se=n.useRef(v?.params);if(n.useEffect(()=>{Se.current=v?.params},[v?.params]),v?.params){const e=Se.current;let n;if('object'==typeof v.params.state&&null!=v.params.state&&v.params!==e)'lastUnhandled'===i.UNSTABLE_routeNamesChangeBehavior&&te(v.params.state)?v.params.state!==fe&&ge(v.params.state):n=t.CommonActions.reset(v.params.state);else if('string'==typeof v.params.screen&&(!1===v.params.initial&&le||v.params!==e))if('lastUnhandled'!==i.UNSTABLE_routeNamesChangeBehavior||Q.includes(v.params.screen))n=t.CommonActions.navigate({name:v.params.screen,params:v.params.params,path:v.params.path,merge:v.params.merge,pop:v.params.pop});else{const e=F(v.params);null==e||(0,r.default)(e,fe)||ge(e)}const s=n?z.getStateForAction(he,n,{routeNames:Q,routeParamList:X,routeGetIdList:Y}):null;he=null!==s?z.getRehydratedState(s,{routeNames:Q,routeParamList:X,routeGetIdList:Y}):he}const Ne=ve!==he;(0,U.useScheduleUpdate)(()=>{Ne&&(ue(he),Le&&ge(void 0))}),ve=he,n.useEffect(()=>(pe.current=!1,se(f),ie()||ue(he),()=>{void 0!==re()&&oe()===f&&(ne(void 0),pe.current=!0)}),[]);const Ce=n.useRef(ve);Ce.current=ve,(0,S.useClientLayoutEffect)(()=>{Ce.current=null});const Ee=(0,s.default)(()=>{const e=re();return(0,o.deepFreeze)(ee(e)?e:de)}),be=(0,b.useEventEmitter)(e=>{const t=[];let r;if(e.target?(r=ve.routes.find(t=>t.key===e.target),r?.name&&t.push(r.name)):(r=ve.routes[ve.index],t.push(...Object.keys(D).filter(e=>r?.name===e))),null==r)return;const n=Ue[r.key].navigation;[].concat(...[J,...t.map(e=>{const{listeners:t}=D[e].props;return t})].map(t=>{const s='function'==typeof t?t({route:r,navigation:n}):t;return s?Object.keys(s).filter(t=>t===e.type).map(e=>s?.[e]):void 0})).filter((e,t,r)=>e&&r.lastIndexOf(e)===t).forEach(t=>t?.(e))});(0,O.useFocusEvents)({state:ve,emitter:be}),n.useEffect(()=>{be.emit({type:'state',data:{state:ve}})},[be,ve]);const{listeners:Re,addListener:Oe}=(0,L.useChildListeners)(),{keyedListeners:Ae,addKeyedListener:we}=(0,A.useKeyedChildListeners)(),je=(0,k.useOnAction)({router:z,getState:Ee,setState:ue,key:v?.key,actionListeners:Re.action,beforeRemoveListeners:Ae.beforeRemove,routerConfigOptions:{routeNames:Q,routeParamList:X,routeGetIdList:Y},emitter:be}),Pe=(0,I.useOnRouteFocus)({router:z,key:v?.key,getState:Ee,setState:ue}),ke=n.useContext(h.UnhandledActionContext),Ge=(0,s.default)(e=>{if('lastUnhandled'===i.UNSTABLE_routeNamesChangeBehavior&&'NAVIGATE'===e.type&&null!=e.payload&&'name'in e.payload&&'string'==typeof e.payload.name&&!Q.includes(e.payload.name)){const t={routes:[{name:e.payload.name,params:'params'in e.payload&&'object'==typeof e.payload.params&&null!==e.payload.params?e.payload.params:void 0,path:'path'in e.payload&&'string'==typeof e.payload.path?e.payload.path:void 0}]};ge(t)}ke?.(e)}),Ie=(0,j.useNavigationHelpers)({id:i.id,onAction:je,onUnhandledAction:Ge,getState:Ee,emitter:be,router:z,stateRef:Ce});(0,R.useFocusedListenersChildrenAdapter)({navigation:Ie,focusedListeners:Re.focus}),(0,G.useOnGetState)({getState:Ee,getStateListeners:Ae.getState});const{describe:Ke,descriptors:Ue}=(0,E.useDescriptors)({state:ve,screens:D,navigation:Ie,screenOptions:T,screenLayout:V,onAction:je,getState:Ee,setState:ue,onRouteFocus:Pe,addListener:Oe,addKeyedListener:we,router:z,emitter:be});(0,C.useCurrentRender)({state:ve,navigation:Ie,descriptors:Ue});const xe=(0,N.useComponent)(e=>{const t=null!=B?B({state:ve,descriptors:Ue,navigation:Ie,children:e}):e;return(0,_.jsx)(c.NavigationHelpersContext.Provider,{value:Ie,children:(0,_.jsx)(P.NavigationStateListenerProvider,{state:ve,children:(0,_.jsx)(y.PreventRemoveProvider,{children:t})})})});return{state:ve,navigation:Ie,describe:Ke,descriptors:Ue,NavigationContent:xe}};var t=_r(_d[0]),r=e(_r(_d[1])),n=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}),t.default=e,t})(_r(_d[2])),s=(_r(_d[3]),e(_r(_d[4]))),o=_r(_d[5]),i=_r(_d[6]),p=_r(_d[7]),u=_r(_d[8]),c=_r(_d[9]),d=_r(_d[10]),l=_r(_d[11]),y=_r(_d[12]),f=_r(_d[13]),v=_r(_d[14]),h=_r(_d[15]),L=_r(_d[16]),S=_r(_d[17]),N=_r(_d[18]),C=_r(_d[19]),E=_r(_d[20]),b=_r(_d[21]),R=_r(_d[22]),O=_r(_d[23]),A=_r(_d[24]),w=_r(_d[25]),j=_r(_d[26]),P=_r(_d[27]),k=_r(_d[28]),G=_r(_d[29]),I=_r(_d[30]),K=_r(_d[31]),U=_r(_d[32]),_=_r(_d[33]);v.PrivateValueStore;const x=e=>e.type===f.Screen,B=e=>e.type===n.Fragment||e.type===i.Group,$=(e,t,r,s)=>n.Children.toArray(e).reduce((e,o)=>{if(n.isValidElement(o)){if(x(o)){if('object'!=typeof o.props||null===o.props)throw new Error("Got an invalid element for screen.");if('string'!=typeof o.props.name||''===o.props.name)throw new Error(`Got an invalid name (${JSON.stringify(o.props.name)}) for the screen. It must be a non-empty string.`);if(void 0!==o.props.navigationKey&&('string'!=typeof o.props.navigationKey||''===o.props.navigationKey))throw new Error(`Got an invalid 'navigationKey' prop (${JSON.stringify(o.props.navigationKey)}) for the screen '${o.props.name}'. It must be a non-empty string or 'undefined'.`);return e.push({keys:[t,o.props.navigationKey],options:r,layout:s,props:o.props}),e}if(B(o)){if(void 0!==(p=o.props.navigationKey)&&('string'!=typeof p||''===p))throw new Error(`Got an invalid 'navigationKey' prop (${JSON.stringify(o.props.navigationKey)}) for the group. It must be a non-empty string or 'undefined'.`);return e.push(...$(o.props.children,o.props.navigationKey,o.type!==i.Group?r:null!=r?[...r,o.props.screenOptions]:[o.props.screenOptions],'function'==typeof o.props.screenLayout?o.props.screenLayout:s)),e}}var p;throw new Error(`A navigator can only contain 'Screen', 'Group' or 'React.Fragment' as its direct children (found ${n.isValidElement(o)?`'${'string'==typeof o.type?o.type:o.type?.name}'${null!=o.props&&'object'==typeof o.props&&'name'in o.props&&o.props?.name?` for the screen '${o.props.name}'`:''}`:'object'==typeof o?JSON.stringify(o):`'${String(o)}'`}). To render this component in the navigator, pass it in the 'component' prop to 'Screen'.`)},[]),F=e=>null!=e?.state?e.state:'string'==typeof e?.screen&&!1!==e?.initial?{routes:[{name:e.screen,params:e.params,path:e.path}]}:void 0},78,[11,79,19,70,21,42,44,62,50,64,66,32,68,45,74,35,36,80,81,82,83,37,88,89,38,90,91,92,95,97,98,99,100,2]); -__d(function(g,r,_i,_a,m,e,d){'use strict';m.exports=function t(n,o){if(n===o)return!0;if(n&&o&&'object'==typeof n&&'object'==typeof o){if(n.constructor!==o.constructor)return!1;var f,u,i;if(Array.isArray(n)){if((f=n.length)!=o.length)return!1;for(u=f;0!==u--;)if(!t(n[u],o[u]))return!1;return!0}if(n.constructor===RegExp)return n.source===o.source&&n.flags===o.flags;if(n.valueOf!==Object.prototype.valueOf)return n.valueOf()===o.valueOf();if(n.toString!==Object.prototype.toString)return n.toString()===o.toString();if((f=(i=Object.keys(n)).length)!==Object.keys(o).length)return!1;for(u=f;0!==u--;)if(!Object.prototype.hasOwnProperty.call(o,i[u]))return!1;for(u=f;0!==u--;){var c=i[u];if(!t(n[c],o[c]))return!1}return!0}return n!=n&&o!=o}},79,[]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"useClientLayoutEffect",{enumerable:!0,get:function(){return t}});var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0]));const t='undefined'!=typeof document||'undefined'!=typeof navigator&&'ReactNative'===navigator.product?e.useLayoutEffect:e.useEffect},80,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useComponent=function(u){const c=e.useRef(u);return c.current=u,e.useEffect(()=>{c.current=null}),e.useRef(({children:e})=>{const u=c.current;if(null===u)throw new Error('The returned component must be rendered in the same render phase as the hook.');return(0,n.jsx)(t,{render:u,children:e})}).current};var e=(function(e){if(e&&e.__esModule)return e;var n={};return e&&Object.keys(e).forEach(function(t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}),n.default=e,n})(r(_d[0])),n=r(_d[1]);const t=({render:e,children:n})=>e(n)},81,[19,2]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useCurrentRender=function({state:n,navigation:o,descriptors:u}){const s=e.useContext(t.CurrentRenderContext);s&&o.isFocused()&&(s.options=u[n.routes[n.index].key].options)};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},82,[19,46]); -__d(function(g,r,_i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useDescriptors=function({state:p,screens:l,navigation:v,screenOptions:f,screenLayout:h,onAction:y,getState:k,setState:C,addListener:x,addKeyedListener:O,onRouteFocus:j,router:b,emitter:S}){const P=e.useContext(s.ThemeContext),[R,_]=e.useState({}),{onDispatchAction:w,onOptionsChange:L,scheduleUpdate:N,flushUpdates:A,stackRef:D}=e.useContext(t.NavigationBuilderContext),U=e.useMemo(()=>({navigation:v,onAction:y,addListener:x,addKeyedListener:O,onRouteFocus:j,onDispatchAction:w,onOptionsChange:L,scheduleUpdate:N,flushUpdates:A,stackRef:D}),[v,y,x,O,j,w,L,N,A,D]),{base:B,navigations:M}=(0,u.useNavigationCache)({state:p,getState:k,navigation:v,setOptions:_,router:b,emitter:S}),E=(0,c.useRouteCache)(p.routes),F=(e,t,n)=>{const o=l[e.name],i=o.props;return[f,...o.options?o.options.filter(Boolean):[],i.options,n].reduce((n,o)=>Object.assign(n,'function'!=typeof o?o:o({route:e,navigation:t,theme:P})),{})},K=(e,s,u,c)=>{const p=l[e.name],v=p.props,f=v.layout??p.layout??h;let y=(0,d.jsx)(i.SceneView,{navigation:s,route:e,screen:v,routeState:c,getState:k,setState:C,options:u,clearOptions:()=>_(t=>{if(e.key in t){const{[e.key]:n,...o}=t;return o}return t})});return null!=f&&(y=f({route:e,navigation:s,options:u,theme:P,children:y})),(0,d.jsx)(t.NavigationBuilderContext.Provider,{value:U,children:(0,d.jsx)(n.NavigationContext.Provider,{value:s,children:(0,d.jsx)(o.NavigationRouteContext.Provider,{value:e,children:y})})},e.key)},T=E.reduce((e,t,n)=>{const o=M[t.key],i=F(t,o,R[t.key]),s=K(t,o,i,p.routes[n].state);return e[t.key]={route:t,navigation:o,render:()=>s,options:i},e},{});return{describe:(e,t)=>{if(!t){if(!(e.key in T))throw new Error(`Couldn't find a route with the key ${e.key}.`);return T[e.key]}const n=B,o=F(e,n,{}),i=K(e,n,o,void 0);return{route:e,navigation:n,render:()=>i,options:o}},descriptors:T}};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2]),o=r(_d[3]),i=r(_d[4]),s=r(_d[5]),u=r(_d[6]),c=r(_d[7]),d=r(_d[8])},83,[19,29,63,66,84,34,87,49,2]); -__d(function(g,_r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.SceneView=function({screen:c,route:l,navigation:p,routeState:d,getState:f,setState:v,options:y,clearOptions:k}){const b=e.useRef(void 0),h=e.useCallback(()=>b.current,[]),{addOptionsGetter:C}=(0,o.useOptionsGetters)({key:l.key,options:y,navigation:p}),j=e.useCallback(e=>{b.current=e},[]),S=e.useCallback(()=>{const e=f().routes.find(e=>e.key===l.key);return e?e.state:void 0},[f,l.key]),O=e.useCallback(e=>{const t=f();v({...t,routes:t.routes.map(t=>{if(t.key!==l.key)return t;const n={...t,state:e};if(n.params&&('state'in n.params&&'object'==typeof n.params.state&&null!==n.params.state||'screen'in n.params&&'string'==typeof n.params.screen)){const{state:e,screen:t,params:r,initial:s,...o}=n.params;Object.keys(o).length?n.params=o:delete n.params}return n})})},[f,l.key,v]),x=e.useRef(!0);e.useEffect(()=>{x.current=!1}),e.useEffect(()=>k,[]);const _=e.useCallback(()=>x.current,[]),P=e.useContext(n.NavigationFocusedRouteStateContext),E=e.useMemo(()=>{const e={routes:[{key:l.key,name:l.name,params:l.params,path:l.path}]},t=n=>{const r=n?.routes[0];return r?{routes:[{...r,state:t(r.state)}]}:e};return t(P)},[P,l.key,l.name,l.params,l.path]),M=e.useMemo(()=>({state:d,getState:S,setState:O,getKey:h,setKey:j,getIsInitial:_,addOptionsGetter:C}),[d,S,O,h,j,_,C]),N=c.getComponent?c.getComponent():c.component;return(0,u.jsx)(r.NavigationStateContext.Provider,{value:M,children:(0,u.jsx)(n.NavigationFocusedRouteStateContext.Provider,{value:E,children:(0,u.jsx)(t.EnsureSingleNavigator,{children:(0,u.jsx)(s.StaticContainer,{name:c.name,render:N||c.children,navigation:p,route:l,children:void 0!==N?(0,u.jsx)(N,{navigation:p,route:l}):void 0!==c.children?c.children({navigation:p,route:l}):null})})})})};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(_r(_d[0])),t=_r(_d[1]),n=_r(_d[2]),r=_r(_d[3]),s=_r(_d[4]),o=_r(_d[5]),u=_r(_d[6])},84,[19,27,85,32,86,40,2]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationFocusedRouteStateContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},85,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"StaticContainer",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var c=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,c.get?c:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).memo(function(e){return e.children},(e,t)=>{const n=Object.keys(e),c=Object.keys(t);if(n.length!==c.length)return!1;for(const c of n)if('children'!==c&&e[c]!==t[c])return!1;return!0})},86,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useNavigationCache=function({state:o,getState:s,navigation:c,setOptions:u,router:d,emitter:y}){const{stackRef:f}=t.useContext(n.NavigationBuilderContext),l=t.useMemo(()=>{const{emit:t,...n}=c,o={...d.actionCreators,...e.CommonActions},s=()=>{throw new Error('Actions cannot be dispatched from a placeholder screen.')},u=Object.keys(o).reduce((e,t)=>(e[t]=s,e),{});return{...n,...u,addListener:()=>()=>{},removeListener:()=>{},dispatch:s,getParent:e=>void 0!==e&&e===n.getId()?l:n.getParent(e),setOptions:()=>{throw new Error('Options cannot be set from a placeholder screen.')},isFocused:()=>!1}},[c,d.actionCreators]),p=t.useMemo(()=>({current:{}}),[l,s,c,u,y]);return p.current=o.routes.reduce((t,n)=>{const o=p.current[n.key];if(o)t[n.key]=o;else{const o=e=>{const t='function'==typeof e?e(s()):e;null!=t&&c.dispatch({source:n.key,...t})},f=e=>{try{e()}finally{}},p={...d.actionCreators,...e.CommonActions},k=Object.keys(p).reduce((e,t)=>(e[t]=(...e)=>f(()=>o(p[t](...e))),e),{});t[n.key]={...l,...k,...y.create(n.key),dispatch:e=>f(()=>o(e)),getParent:e=>void 0!==e&&e===l.getId()?t[n.key]:l.getParent(e),setOptions:e=>{u(t=>({...t,[n.key]:{...t[n.key],...e}}))},isFocused:()=>{const e=l.getState();return e.routes[e.index].key===n.key&&(!c||c.isFocused())}}}return t},{}),{base:l,navigations:p.current}};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),n=r(_d[2])},87,[11,19,29]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useFocusedListenersChildrenAdapter=function({navigation:n,focusedListeners:u}){const{addListener:s}=e.useContext(t.NavigationBuilderContext),o=e.useCallback(e=>{if(n.isFocused()){for(const t of u){const{handled:n,result:u}=t(e);if(n)return{handled:n,result:u}}return{handled:!0,result:e(n)}}return{handled:!1,result:null}},[u,n]);e.useEffect(()=>s?.('focus',o),[s,o])};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},88,[19,29]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useFocusEvents=function({state:u,emitter:n}){const o=e.useContext(t.NavigationContext),c=e.useRef(void 0),s=u.routes[u.index].key;e.useEffect(()=>o?.addListener('focus',()=>{c.current=s,n.emit({type:'focus',target:s})}),[s,n,o]),e.useEffect(()=>o?.addListener('blur',()=>{c.current=void 0,n.emit({type:'blur',target:s})}),[s,n,o]),e.useEffect(()=>{const e=c.current;c.current=s,void 0!==e||o||n.emit({type:'focus',target:s}),e===s||o&&!o.isFocused()||void 0!==e&&(n.emit({type:'blur',target:e}),n.emit({type:'focus',target:s}))},[s,n,o])};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(u){var n=Object.getOwnPropertyDescriptor(e,u);Object.defineProperty(t,u,n.get?n:{enumerable:!0,get:function(){return e[u]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},89,[19,63]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useLazyValue=function(t){const n=e.useRef(void 0);void 0===n.current&&(n.current=t());return n.current};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0]))},90,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useNavigationHelpers=function({id:o,onAction:u,onUnhandledAction:c,getState:s,emitter:d,router:f,stateRef:l}){const v=t.useContext(n.NavigationContext);return t.useMemo(()=>{const t=e=>{const t='function'==typeof e?e(s()):e;u(t)||c?.(t)},n={...f.actionCreators,...e.CommonActions},p=Object.keys(n).reduce((e,o)=>(e[o]=(...e)=>t(n[o](...e)),e),{}),P={...v,...p,dispatch:t,emit:d.emit,isFocused:v?v.isFocused:()=>!0,canGoBack:()=>{const t=s();return null!==f.getStateForAction(t,e.CommonActions.goBack(),{routeNames:t.routeNames,routeParamList:{},routeGetIdList:{}})||v?.canGoBack()||!1},getId:()=>o,getParent:e=>{if(void 0!==e){let t=P;for(;t&&e!==t.getId();)t=t.getParent();return t}return v},getState:()=>null!=l.current?l.current:s()};return P},[f,v,d.emit,s,u,c,o,l])};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),n=r(_d[2]);r(_d[3]).PrivateValueStore},91,[11,19,63,74]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useNavigationState=function(e){const n=t.useContext(s);if(null==n)throw new Error("Couldn't get the navigation state. Is your component inside a navigator?");return(0,o.useSyncExternalStoreWithSelector)(n.subscribe,n.getState,n.getState,e)},_e.NavigationStateListenerProvider=function({state:e,children:n}){const o=t.useRef([]),f=(0,u.default)(()=>e),l=(0,u.default)(e=>(o.current.push(e),()=>{o.current=o.current.filter(t=>t!==e)}));t.useEffect(()=>{o.current.forEach(e=>e())},[e]);const d=t.useMemo(()=>({getState:f,subscribe:l}),[f,l]);return(0,c.jsx)(s.Provider,{value:d,children:n})};var e,t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),n=r(_d[1]),u=(e=n)&&e.__esModule?e:{default:e},o=r(_d[2]),c=r(_d[3]);const s=t.createContext(void 0)},92,[19,21,93,2]); -__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},93,[94]); +"use strict";var t=Symbol.for("react.transitional.element"),o=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),c=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),u=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),y=Symbol.for("react.suspense"),p=Symbol.for("react.suspense_list"),S=Symbol.for("react.memo"),$=Symbol.for("react.lazy"),b=Symbol.for("react.view_transition"),w=Symbol.for("react.client.reference");function v(w){if("object"==typeof w&&null!==w){var v=w.$$typeof;switch(v){case t:switch(w=w.type){case n:case f:case c:case y:case p:case b:return w;default:switch(w=w&&w.$$typeof){case u:case l:case $:case S:case s:return w;default:return v}}case o:return v}}}e.ContextConsumer=s,e.ContextProvider=u,e.Element=t,e.ForwardRef=l,e.Fragment=n,e.Lazy=$,e.Memo=S,e.Portal=o,e.Profiler=f,e.StrictMode=c,e.Suspense=y,e.SuspenseList=p,e.isContextConsumer=function(t){return v(t)===s},e.isContextProvider=function(t){return v(t)===u},e.isElement=function(o){return"object"==typeof o&&null!==o&&o.$$typeof===t},e.isForwardRef=function(t){return v(t)===l},e.isFragment=function(t){return v(t)===n},e.isLazy=function(t){return v(t)===$},e.isMemo=function(t){return v(t)===S},e.isPortal=function(t){return v(t)===o},e.isProfiler=function(t){return v(t)===f},e.isStrictMode=function(t){return v(t)===c},e.isSuspense=function(t){return v(t)===y},e.isSuspenseList=function(t){return v(t)===p},e.isValidElementType=function(t){return"string"==typeof t||"function"==typeof t||t===n||t===f||t===c||t===y||t===p||"object"==typeof t&&null!==t&&(t.$$typeof===$||t.$$typeof===S||t.$$typeof===u||t.$$typeof===s||t.$$typeof===l||t.$$typeof===w||void 0!==t.getModuleId)},e.typeOf=v},148,[]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useRoute=function(){const n=e.useContext(t.NavigationRouteContext);if(void 0===n)throw new Error("Couldn't find a route object. Is your component inside a screen in a navigator?");return n};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},149,[39,142]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useTheme=function(){const n=e.useContext(t.ThemeContext);if(null==n)throw new Error("Couldn't find a theme. Is your component inside NavigationContainer or does it have a theme?");return n};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},150,[39,110]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"PrivateValueStore",{enumerable:!0,get:function(){return t}});class t{}},151,[]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useFocusEffect=function(n){const o=(0,t.useNavigation)();if(void 0!==arguments[1]){const e="You passed a second argument to 'useFocusEffect', but it only accepts one argument. If you want to pass a dependency array, you can use 'React.useCallback':\n\nuseFocusEffect(\n React.useCallback(() => {\n // Your code here\n }, [depA, depB])\n);\n\nSee usage guide: https://reactnavigation.org/docs/use-focus-effect";console.error(e)}e.useEffect(()=>{let e,t=!1;const c=()=>{const e=n();if(void 0===e||'function'==typeof e)return e};o.isFocused()&&(e=c(),t=!0);const u=o.addListener('focus',()=>{t||(void 0!==e&&e(),e=c(),t=!0)}),s=o.addListener('blur',()=>{void 0!==e&&e(),e=void 0,t=!1});return()=>{void 0!==e&&e(),u(),s()}},[n,o])};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},152,[39,153]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useNavigation=function(){const o=e.useContext(t.NavigationContainerRefContext),u=e.useContext(n.NavigationContext);if(void 0===u&&void 0===o)throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");return u??o};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2])},153,[39,106,139]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useIsFocused=function(){const n=(0,t.useNavigation)(),u=e.useCallback(e=>{const t=n.addListener('focus',e),u=n.addListener('blur',e);return()=>{t(),u()}},[n]);return e.useSyncExternalStore(u,n.isFocused,n.isFocused)};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},154,[39,153]); +__d(function(g,_r,_i,a,m,_e,_d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.useNavigationBuilder=function(e,i){const v=(0,x.useRegisterNavigator)(),h=n.useContext(l.NavigationRouteContext),{children:B,layout:$,screenOptions:M,screenLayout:V,screenListeners:J,UNSTABLE_router:H,...q}=i,z=F(B),D=(0,w.useLazyValue)(()=>{if(null!=q.initialRouteName&&z.every(e=>e.props.name!==q.initialRouteName))throw new Error(`Couldn't find a screen named '${q.initialRouteName}' to use as 'initialRouteName'.`);const t=e(q);if(null!=H){const e=H(t);return{...t,...e}}return t}),Q=z.reduce((e,t)=>{if(t.props.name in e)throw new Error(`A navigator cannot contain multiple 'Screen' components with the same name (found duplicate screen named '${t.props.name}')`);return e[t.props.name]=t,e},{}),W=z.map(e=>e.props.name),X=W.reduce((e,t)=>(e[t]=Q[t].keys.map(e=>e??'').join(':'),e),{}),Y=W.reduce((e,t)=>{const{initialParams:r}=Q[t].props;return e[t]=r,e},{}),Z=W.reduce((e,t)=>Object.assign(e,{[t]:Q[t].props.getId}),{});if(!W.length)throw new Error("Couldn't find any screens for the navigator. Have you defined any screens as its children?");const ee=n.useCallback(e=>void 0===e.type||e.type===D.type,[D.type]),te=n.useCallback(e=>void 0!==e&&!1===e.stale&&ee(e),[ee]),ae=n.useCallback(e=>e.routes.every(e=>!W.includes(e.name)),[W]),{state:re,getState:ne,setState:se,setKey:oe,getKey:ie,getIsInitial:pe}=n.useContext(y.NavigationStateContext),ue=n.useRef(!1),ce=(0,s.default)(e=>{ue.current||se(e)}),[de,le,me]=n.useMemo(()=>{const e=W.reduce((e,t)=>{const{initialParams:r}=Q[t].props,n=null==h?.params?.state&&!1!==h?.params?.initial&&h?.params?.screen===t?h.params.params:void 0;return e[t]=void 0!==r||void 0!==n?{...r,...n}:void 0,e},{});if(void 0!==re&&ee(re)||null!=h?.params?.state||'string'==typeof h?.params?.screen&&!1!==h?.params?.initial){const t=T(h?.params)??re,r=D.getRehydratedState(t,{routeNames:W,routeParamList:e,routeGetIdList:Z});return'lastUnhandled'===i.UNSTABLE_routeNamesChangeBehavior&&ae(t)?[t,r,!0]:[void 0,r,!1]}return[void 0,D.getInitialState({routeNames:W,routeParamList:e,routeGetIdList:Z}),!0]},[re,D,ee]),ye=n.useRef(X);n.useEffect(()=>{ye.current=X});const fe=ye.current,[ge,ve]=n.useState(de);'lastUnhandled'===i.UNSTABLE_routeNamesChangeBehavior&&de&&ge!==de&&ve(de);let he=te(re)?re:le,Le=he,Se=!1;ge?.routes.every(e=>W.includes(e.name))&&he?.routes.every(e=>!W.includes(e.name))?(Se=!0,Le=D.getRehydratedState(ge,{routeNames:W,routeParamList:Y,routeGetIdList:Z})):(0,p.isArrayEqual)(he.routeNames,W)&&(0,u.isRecordEqual)(X,fe)||(Le=D.getStateForRouteNamesChange(he,{routeNames:W,routeParamList:Y,routeGetIdList:Z,routeKeyChanges:Object.keys(X).filter(e=>e in fe&&X[e]!==fe[e])}));const Ne=n.useRef(h?.params);if(n.useEffect(()=>{Ne.current=h?.params},[h?.params]),h?.params){const e=Ne.current;let n;if('object'==typeof h.params.state&&null!=h.params.state&&h.params!==e)'lastUnhandled'===i.UNSTABLE_routeNamesChangeBehavior&&ae(h.params.state)?h.params.state!==ge&&ve(h.params.state):n=t.CommonActions.reset(h.params.state);else if('string'==typeof h.params.screen&&(!1===h.params.initial&&me||h.params!==e))if('lastUnhandled'!==i.UNSTABLE_routeNamesChangeBehavior||W.includes(h.params.screen))n=t.CommonActions.navigate({name:h.params.screen,params:h.params.params,path:h.params.path,merge:h.params.merge,pop:h.params.pop});else{const e=T(h.params);null==e||(0,r.default)(e,ge)||ve(e)}const s=n?D.getStateForAction(Le,n,{routeNames:W,routeParamList:Y,routeGetIdList:Z}):null;Le=null!==s?D.getRehydratedState(s,{routeNames:W,routeParamList:Y,routeGetIdList:Z}):Le}const Ce=he!==Le||'object'==typeof h?.params?.state||'string'==typeof h?.params?.screen;(0,U.useScheduleUpdate)(()=>{Ce&&(ce(Le),Se&&ve(void 0))}),he=Le,n.useEffect(()=>(ue.current=!1,oe(v),pe()||ce(Le),()=>{void 0!==ne()&&ie()===v&&(se(void 0),ue.current=!0)}),[]);const Ee=n.useRef(he);Ee.current=he,(0,N.useClientLayoutEffect)(()=>{Ee.current=null});const be=(0,s.default)(()=>{const e=ne();return(0,o.deepFreeze)(te(e)?e:le)}),Re=(0,R.useEventEmitter)(e=>{const t=[];let r;if(e.target?(r=he.routes.find(t=>t.key===e.target),r?.name&&t.push(r.name)):(r=he.routes[he.index],t.push(...Object.keys(Q).filter(e=>r?.name===e))),null==r)return;const n=Ue[r.key].navigation;[].concat(...[J,...t.map(e=>{const{listeners:t}=Q[e].props;return t})].map(t=>{const s='function'==typeof t?t({route:r,navigation:n}):t;return s?Object.keys(s).filter(t=>t===e.type).map(e=>s?.[e]):void 0})).filter((e,t,r)=>e&&r.lastIndexOf(e)===t).forEach(t=>t?.(e))});(0,A.useFocusEvents)({state:he,emitter:Re}),n.useEffect(()=>{Re.emit({type:'state',data:{state:he}})},[Re,he]);const{listeners:Oe,addListener:Ae}=(0,S.useChildListeners)(),{keyedListeners:je,addKeyedListener:we}=(0,j.useKeyedChildListeners)(),Pe=(0,G.useOnAction)({router:D,getState:be,setState:ce,key:h?.key,actionListeners:Oe.action,beforeRemoveListeners:je.beforeRemove,routerConfigOptions:{routeNames:W,routeParamList:Y,routeGetIdList:Z},emitter:Re}),ke=(0,K.useOnRouteFocus)({router:D,key:h?.key,getState:be,setState:ce}),Ge=n.useContext(L.UnhandledActionContext),Ie=(0,s.default)(e=>{if('lastUnhandled'===i.UNSTABLE_routeNamesChangeBehavior&&'NAVIGATE'===e.type&&null!=e.payload&&'name'in e.payload&&'string'==typeof e.payload.name&&!W.includes(e.payload.name)){const t={routes:[{name:e.payload.name,params:'params'in e.payload&&'object'==typeof e.payload.params&&null!==e.payload.params?e.payload.params:void 0,path:'path'in e.payload&&'string'==typeof e.payload.path?e.payload.path:void 0}]};ve(t)}Ge?.(e)}),Ke=(0,P.useNavigationHelpers)({id:i.id,onAction:Pe,onUnhandledAction:Ie,getState:be,emitter:Re,router:D,stateRef:Ee});(0,O.useFocusedListenersChildrenAdapter)({navigation:Ke,focusedListeners:Oe.focus}),(0,I.useOnGetState)({getState:be,getStateListeners:je.getState});const{describe:xe,descriptors:Ue}=(0,b.useDescriptors)({state:he,screens:Q,navigation:Ke,screenOptions:M,screenLayout:V,onAction:Pe,getState:be,setState:ce,onRouteFocus:ke,addListener:Ae,addKeyedListener:we,router:D,emitter:Re});(0,E.useCurrentRender)({state:he,navigation:Ke,descriptors:Ue});const Be=(0,C.useComponent)(e=>{const t=null!=$?$({state:he,descriptors:Ue,navigation:Ke,children:e}):e;return(0,_.jsx)(d.NavigationMetaContext.Provider,{value:void 0,children:(0,_.jsx)(c.NavigationHelpersContext.Provider,{value:Ke,children:(0,_.jsx)(k.NavigationStateListenerProvider,{state:he,children:(0,_.jsx)(f.PreventRemoveProvider,{children:t})})})})});return{state:he,navigation:Ke,describe:xe,descriptors:Ue,NavigationContent:Be}};var t=_r(_d[0]),r=e(_r(_d[1])),n=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}),t.default=e,t})(_r(_d[2]));_r(_d[3]);var s=e(_r(_d[4])),o=_r(_d[5]),i=_r(_d[6]),p=_r(_d[7]),u=_r(_d[8]),c=_r(_d[9]),d=_r(_d[10]),l=_r(_d[11]),y=_r(_d[12]),f=_r(_d[13]),v=_r(_d[14]),h=_r(_d[15]),L=_r(_d[16]),S=_r(_d[17]),N=_r(_d[18]),C=_r(_d[19]),E=_r(_d[20]),b=_r(_d[21]),R=_r(_d[22]),O=_r(_d[23]),A=_r(_d[24]),j=_r(_d[25]),w=_r(_d[26]),P=_r(_d[27]),k=_r(_d[28]),G=_r(_d[29]),I=_r(_d[30]),K=_r(_d[31]),x=_r(_d[32]),U=_r(_d[33]),_=_r(_d[34]);h.PrivateValueStore;const B=e=>e.type===v.Screen,$=e=>e.type===n.Fragment||e.type===i.Group,F=(e,t,r,s)=>n.Children.toArray(e).reduce((e,o)=>{if(n.isValidElement(o)){if(B(o)){if('object'!=typeof o.props||null===o.props)throw new Error("Got an invalid element for screen.");if('string'!=typeof o.props.name||''===o.props.name)throw new Error(`Got an invalid name (${JSON.stringify(o.props.name)}) for the screen. It must be a non-empty string.`);if(void 0!==o.props.navigationKey&&('string'!=typeof o.props.navigationKey||''===o.props.navigationKey))throw new Error(`Got an invalid 'navigationKey' prop (${JSON.stringify(o.props.navigationKey)}) for the screen '${o.props.name}'. It must be a non-empty string or 'undefined'.`);return e.push({keys:[t,o.props.navigationKey],options:r,layout:s,props:o.props}),e}if($(o)){if(void 0!==(p=o.props.navigationKey)&&('string'!=typeof p||''===p))throw new Error(`Got an invalid 'navigationKey' prop (${JSON.stringify(o.props.navigationKey)}) for the group. It must be a non-empty string or 'undefined'.`);return e.push(...F(o.props.children,o.props.navigationKey,o.type!==i.Group?r:null!=r?[...r,o.props.screenOptions]:[o.props.screenOptions],'function'==typeof o.props.screenLayout?o.props.screenLayout:s)),e}}var p;throw new Error(`A navigator can only contain 'Screen', 'Group' or 'React.Fragment' as its direct children (found ${n.isValidElement(o)?`'${'string'==typeof o.type?o.type:o.type?.name}'${null!=o.props&&'object'==typeof o.props&&'name'in o.props&&o.props?.name?` for the screen '${o.props.name}'`:''}`:'object'==typeof o?JSON.stringify(o):`'${String(o)}'`}). To render this component in the navigator, pass it in the 'component' prop to 'Screen'.`)},[]),T=e=>null!=e?.state?e.state:'string'==typeof e?.screen&&!1!==e?.initial?{routes:[{name:e.screen,params:e.params,path:e.path}]}:void 0},155,[87,156,39,147,97,118,120,138,126,140,143,142,108,145,121,151,111,112,157,158,159,160,113,165,166,114,167,168,169,172,174,175,176,177,2]); +__d(function(g,r,_i,_a,m,e,d){'use strict';m.exports=function t(n,o){if(n===o)return!0;if(n&&o&&'object'==typeof n&&'object'==typeof o){if(n.constructor!==o.constructor)return!1;var f,u,i;if(Array.isArray(n)){if((f=n.length)!=o.length)return!1;for(u=f;0!==u--;)if(!t(n[u],o[u]))return!1;return!0}if(n.constructor===RegExp)return n.source===o.source&&n.flags===o.flags;if(n.valueOf!==Object.prototype.valueOf)return n.valueOf()===o.valueOf();if(n.toString!==Object.prototype.toString)return n.toString()===o.toString();if((f=(i=Object.keys(n)).length)!==Object.keys(o).length)return!1;for(u=f;0!==u--;)if(!Object.prototype.hasOwnProperty.call(o,i[u]))return!1;for(u=f;0!==u--;){var c=i[u];if(!t(n[c],o[c]))return!1}return!0}return n!=n&&o!=o}},156,[]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"useClientLayoutEffect",{enumerable:!0,get:function(){return t}});var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0]));const t='undefined'!=typeof document||'undefined'!=typeof navigator&&'ReactNative'===navigator.product?e.useLayoutEffect:e.useEffect},157,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useComponent=function(u){const c=e.useRef(u);return c.current=u,e.useEffect(()=>{c.current=null}),e.useRef(({children:e})=>{const u=c.current;if(null===u)throw new Error('The returned component must be rendered in the same render phase as the hook.');return(0,n.jsx)(t,{render:u,children:e})}).current};var e=(function(e){if(e&&e.__esModule)return e;var n={};return e&&Object.keys(e).forEach(function(t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}),n.default=e,n})(r(_d[0])),n=r(_d[1]);const t=({render:e,children:n})=>e(n)},158,[39,2]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useCurrentRender=function({state:n,navigation:o,descriptors:u}){const s=e.useContext(t.CurrentRenderContext);s&&o.isFocused()&&(s.options=u[n.routes[n.index].key].options)};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},159,[39,122]); +__d(function(g,r,_i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useDescriptors=function({state:p,screens:l,navigation:v,screenOptions:f,screenLayout:h,onAction:y,getState:k,setState:C,addListener:x,addKeyedListener:O,onRouteFocus:j,router:b,emitter:S}){const P=e.useContext(s.ThemeContext),[R,_]=e.useState({}),{onDispatchAction:w,onOptionsChange:L,scheduleUpdate:N,flushUpdates:A,stackRef:D}=e.useContext(t.NavigationBuilderContext),U=e.useMemo(()=>({navigation:v,onAction:y,addListener:x,addKeyedListener:O,onRouteFocus:j,onDispatchAction:w,onOptionsChange:L,scheduleUpdate:N,flushUpdates:A,stackRef:D}),[v,y,x,O,j,w,L,N,A,D]),{base:B,navigations:M}=(0,u.useNavigationCache)({state:p,getState:k,navigation:v,setOptions:_,router:b,emitter:S}),E=(0,c.useRouteCache)(p.routes),F=(e,t,n)=>{const o=l[e.name],i=o.props;return[f,...o.options?o.options.filter(Boolean):[],i.options,n].reduce((n,o)=>Object.assign(n,'function'!=typeof o?o:o({route:e,navigation:t,theme:P})),{})},K=(e,s,u,c)=>{const p=l[e.name],v=p.props,f=v.layout??p.layout??h;let y=(0,d.jsx)(i.SceneView,{navigation:s,route:e,screen:v,routeState:c,getState:k,setState:C,options:u,clearOptions:()=>_(t=>{if(e.key in t){const{[e.key]:n,...o}=t;return o}return t})});return null!=f&&(y=f({route:e,navigation:s,options:u,theme:P,children:y})),(0,d.jsx)(t.NavigationBuilderContext.Provider,{value:U,children:(0,d.jsx)(n.NavigationContext.Provider,{value:s,children:(0,d.jsx)(o.NavigationRouteContext.Provider,{value:e,children:y})})},e.key)},T=E.reduce((e,t,n)=>{const o=M[t.key],i=F(t,o,R[t.key]),s=K(t,o,i,p.routes[n].state);return e[t.key]={route:t,navigation:o,render:()=>s,options:i},e},{});return{describe:(e,t)=>{if(!t){if(!(e.key in T))throw new Error(`Couldn't find a route with the key ${e.key}.`);return T[e.key]}const n=B,o=F(e,n,{}),i=K(e,n,o,void 0);return{route:e,navigation:n,render:()=>i,options:o}},descriptors:T}};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2]),o=r(_d[3]),i=r(_d[4]),s=r(_d[5]),u=r(_d[6]),c=r(_d[7]),d=r(_d[8])},160,[39,105,139,142,161,110,164,125,2]); +__d(function(g,_r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.SceneView=function({screen:l,route:p,navigation:d,routeState:f,getState:v,setState:y,options:k,clearOptions:b}){const h=e.useRef(void 0),C=e.useCallback(()=>h.current,[]),{addOptionsGetter:j}=(0,u.useOptionsGetters)({key:p.key,options:k,navigation:d}),S=e.useCallback(e=>{h.current=e},[]),O=e.useCallback(()=>{const e=v().routes.find(e=>e.key===p.key);return e?e.state:void 0},[v,p.key]),x=e.useCallback(e=>{const t=v(),r=t.routes.map(t=>{if(t.key!==p.key)return t;const n=t.state!==e?{...t,state:e}:t;if(n.params&&('state'in n.params&&'object'==typeof n.params.state&&null!==n.params.state||'screen'in n.params&&'string'==typeof n.params.screen)){const{state:e,screen:t,params:r,initial:s,...o}=n.params;if(Object.keys(o).length)return{...n,params:o};{const{params:e,...t}=n;return t}}return n});(0,n.isArrayEqual)(t.routes,r)||y({...t,routes:r})},[v,p.key,y]),_=e.useRef(!0);e.useEffect(()=>{_.current=!1}),e.useEffect(()=>b,[]);const E=e.useCallback(()=>_.current,[]),P=e.useContext(r.NavigationFocusedRouteStateContext),M=e.useMemo(()=>{const e={routes:[{key:p.key,name:p.name,params:p.params,path:p.path}]},t=n=>{const r=n?.routes[0];return r?{routes:[{...r,state:t(r.state)}]}:e};return t(P)},[P,p.key,p.name,p.params,p.path]),N=e.useMemo(()=>({state:f,getState:O,setState:x,getKey:C,setKey:S,getIsInitial:E,addOptionsGetter:j}),[f,O,x,C,S,E,j]),R=l.getComponent?l.getComponent():l.component;return(0,c.jsx)(s.NavigationStateContext.Provider,{value:N,children:(0,c.jsx)(r.NavigationFocusedRouteStateContext.Provider,{value:M,children:(0,c.jsx)(t.EnsureSingleNavigator,{children:(0,c.jsx)(o.StaticContainer,{name:l.name,render:R||l.children,navigation:d,route:p,children:void 0!==R?(0,c.jsx)(R,{navigation:d,route:p}):void 0!==l.children?l.children({navigation:d,route:p}):null})})})})};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(_r(_d[0])),t=_r(_d[1]),n=_r(_d[2]),r=_r(_d[3]),s=_r(_d[4]),o=_r(_d[5]),u=_r(_d[6]),c=_r(_d[7])},161,[39,103,138,162,108,163,116,2]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationFocusedRouteStateContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},162,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"StaticContainer",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var c=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,c.get?c:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).memo(function(e){return e.children},(e,t)=>{const n=Object.keys(e),c=Object.keys(t);if(n.length!==c.length)return!1;for(const c of n)if('children'!==c&&e[c]!==t[c])return!1;return!0})},163,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useNavigationCache=function({state:o,getState:s,navigation:c,setOptions:u,router:d,emitter:y}){const{stackRef:f}=t.useContext(n.NavigationBuilderContext),l=t.useMemo(()=>{const{emit:t,...n}=c,o={...d.actionCreators,...e.CommonActions},s=()=>{throw new Error('Actions cannot be dispatched from a placeholder screen.')},u=Object.keys(o).reduce((e,t)=>(e[t]=s,e),{});return{...n,...u,addListener:()=>()=>{},removeListener:()=>{},dispatch:s,getParent:e=>void 0!==e&&e===n.getId()?l:n.getParent(e),setOptions:()=>{throw new Error('Options cannot be set from a placeholder screen.')},isFocused:()=>!1}},[c,d.actionCreators]),p=t.useMemo(()=>({current:{}}),[l,s,c,u,y]);return p.current=o.routes.reduce((t,n)=>{const o=p.current[n.key];if(o)t[n.key]=o;else{const o=e=>{const t='function'==typeof e?e(s()):e;null!=t&&c.dispatch({source:n.key,...t})},f=e=>{try{e()}finally{}},p={...d.actionCreators,...e.CommonActions},k=Object.keys(p).reduce((e,t)=>(e[t]=(...e)=>f(()=>o(p[t](...e))),e),{});t[n.key]={...l,...k,...y.create(n.key),dispatch:e=>f(()=>o(e)),getParent:e=>void 0!==e&&e===l.getId()?t[n.key]:l.getParent(e),setOptions:e=>{u(t=>({...t,[n.key]:{...t[n.key],...e}}))},isFocused:()=>{const e=l.getState();return e.routes[e.index].key===n.key&&(!c||c.isFocused())}}}return t},{}),{base:l,navigations:p.current}};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),n=r(_d[2])},164,[87,39,105]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useFocusedListenersChildrenAdapter=function({navigation:n,focusedListeners:u}){const{addListener:s}=e.useContext(t.NavigationBuilderContext),o=e.useCallback(e=>{if(n.isFocused()){for(const t of u){const{handled:n,result:u}=t(e);if(n)return{handled:n,result:u}}return{handled:!0,result:e(n)}}return{handled:!1,result:null}},[u,n]);e.useEffect(()=>s?.('focus',o),[s,o])};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},165,[39,105]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useFocusEvents=function({state:u,emitter:n}){const o=e.useContext(t.NavigationContext),c=e.useRef(void 0),s=u.routes[u.index].key;e.useEffect(()=>o?.addListener('focus',()=>{c.current=s,n.emit({type:'focus',target:s})}),[s,n,o]),e.useEffect(()=>o?.addListener('blur',()=>{c.current=void 0,n.emit({type:'blur',target:s})}),[s,n,o]),e.useEffect(()=>{const e=c.current;c.current=s,void 0!==e||o||n.emit({type:'focus',target:s}),e===s||o&&!o.isFocused()||void 0!==e&&(n.emit({type:'blur',target:e}),n.emit({type:'focus',target:s}))},[s,n,o])};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(u){var n=Object.getOwnPropertyDescriptor(e,u);Object.defineProperty(t,u,n.get?n:{enumerable:!0,get:function(){return e[u]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},166,[39,139]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useLazyValue=function(t){const n=e.useRef(void 0);void 0===n.current&&(n.current=t());return n.current};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0]))},167,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useNavigationHelpers=function({id:o,onAction:u,onUnhandledAction:c,getState:s,emitter:d,router:f,stateRef:l}){const v=t.useContext(n.NavigationContext);return t.useMemo(()=>{const t=e=>{const t='function'==typeof e?e(s()):e;u(t)||c?.(t)},n={...f.actionCreators,...e.CommonActions},p=Object.keys(n).reduce((e,o)=>(e[o]=(...e)=>t(n[o](...e)),e),{}),P={...v,...p,dispatch:t,emit:d.emit,isFocused:v?v.isFocused:()=>!0,canGoBack:()=>{const t=s();return null!==f.getStateForAction(t,e.CommonActions.goBack(),{routeNames:t.routeNames,routeParamList:{},routeGetIdList:{}})||v?.canGoBack()||!1},getId:()=>o,getParent:e=>{if(void 0!==e){let t=P;for(;t&&e!==t.getId();)t=t.getParent();return t}return v},getState:()=>null!=l.current?l.current:s()};return P},[f,v,d.emit,s,u,c,o,l])};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),n=r(_d[2]);r(_d[3]).PrivateValueStore},168,[87,39,139,151]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useNavigationState=function(e){const n=t.useContext(s);if(null==n)throw new Error("Couldn't get the navigation state. Is your component inside a navigator?");return(0,o.useSyncExternalStoreWithSelector)(n.subscribe,n.getState,n.getState,e)},_e.NavigationStateListenerProvider=function({state:e,children:n}){const o=t.useRef([]),f=(0,u.default)(()=>e),l=(0,u.default)(e=>(o.current.push(e),()=>{o.current=o.current.filter(t=>t!==e)}));t.useEffect(()=>{o.current.forEach(e=>e())},[e]);const d=t.useMemo(()=>({getState:f,subscribe:l}),[f,l]);return(0,c.jsx)(s.Provider,{value:d,children:n})};var e,t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),n=r(_d[1]),u=(e=n)&&e.__esModule?e:{default:e},o=r(_d[2]),c=r(_d[3]);const s=t.createContext(void 0)},169,[39,97,170,2]); +__d(function(g,r,i,a,m,e,d){'use strict';m.exports=r(d[0])},170,[171]); __d(function(g,r,i,a,m,e,d){ /** * @license React @@ -134,399 +202,378 @@ __d(function(g,r,i,a,m,e,d){ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -"use strict";var u=r(d[0]);var n="function"==typeof Object.is?Object.is:function(u,n){return u===n&&(0!==u||1/u==1/n)||u!=u&&n!=n},t=u.useSyncExternalStore,l=u.useRef,c=u.useEffect,f=u.useMemo,o=u.useDebugValue;e.useSyncExternalStoreWithSelector=function(u,v,s,S,h){var V=l(null);if(null===V.current){var b={hasValue:!1,value:null};V.current=b}else b=V.current;V=f(function(){function u(u){if(!c){if(c=!0,t=u,u=S(u),void 0!==h&&b.hasValue){var f=b.value;if(h(f,u))return l=f}return l=u}if(f=l,n(t,u))return f;var o=S(u);return void 0!==h&&h(f,o)?(t=u,f):(t=u,l=o)}var t,l,c=!1,f=void 0===s?null:s;return[function(){return u(v())},null===f?void 0:function(){return u(f())}]},[v,s,S,h]);var y=t(u,V[0],V[1]);return c(function(){b.hasValue=!0,b.value=y},[y]),o(y),y}},94,[19]); -__d(function(g,r,_i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useOnAction=function({router:i,getState:u,setState:s,key:c,actionListeners:f,beforeRemoveListeners:d,routerConfigOptions:l,emitter:v}){const{onAction:y,onRouteFocus:p,addListener:C,onDispatchAction:b}=e.useContext(n.NavigationBuilderContext),h=e.useContext(t.DeprecatedNavigationInChildContext),A=e.useRef(l);e.useEffect(()=>{A.current=l});const O=e.useCallback((e,t=new Set)=>{const n=u();if(t.has(n.key))return!1;if(t.add(n.key),'string'!=typeof e.target||e.target===n.key){let t=i.getStateForAction(n,e,A.current);if(t=null===t&&e.target===n.key?n:t,null!==t){if(b(e,n===t),n!==t){if((0,o.shouldPreventRemove)(v,d,n.routes,t.routes,e))return!0;s(t)}if(void 0!==p){i.shouldActionChangeFocus(e)&&void 0!==c&&p(c)}return!0}}if(void 0!==y&&y(e,t))return!0;if('string'==typeof e.target||'NAVIGATE_DEPRECATED'===e.type||h)for(let n=f.length-1;n>=0;n--){if((0,f[n])(e,t))return!0}return!1},[f,d,v,u,h,c,y,b,p,i,s]);return(0,o.useOnPreventRemove)({getState:u,emitter:v,beforeRemoveListeners:d}),e.useEffect(()=>C?.('action',O),[C,O]),O};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2]),o=r(_d[3])},95,[19,26,29,96]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"shouldPreventRemove",{enumerable:!0,get:function(){return u}}),_e.useOnPreventRemove=function({getState:o,emitter:f,beforeRemoveListeners:c}){const{addKeyedListener:s}=e.useContext(t.NavigationBuilderContext),d=e.useContext(n.NavigationRouteContext),v=d?.key;e.useEffect(()=>{if(v)return s?.('beforeRemove',v,e=>{const t=o();return u(f,c,t.routes,[],e)})},[s,c,f,o,v])};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2]);const o=Symbol('VISITED_ROUTE_KEYS'),u=(e,t,n,u,f)=>{const c=u.map(e=>e.key),s=n.filter(e=>!c.includes(e.key)).reverse(),d=f[o]??new Set,v={...f,[o]:d};for(const n of s){if(d.has(n.key))continue;const o=t[n.key]?.(v);if(o)return!0;d.add(n.key);if(e.emit({type:'beforeRemove',target:n.key,data:{action:v},canPreventDefault:!0}).defaultPrevented)return!0}return!1}},96,[19,29,66]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useOnGetState=function({getState:u,getStateListeners:s}){const{addKeyedListener:c}=e.useContext(n.NavigationBuilderContext),f=e.useContext(o.NavigationRouteContext),d=f?f.key:'root',l=e.useCallback(()=>{const e=u(),n=e.routes.map(e=>{const t=s[e.key]?.();return e.state===t?e:{...e,state:t}});return(0,t.isArrayEqual)(e.routes,n)?e:{...e,routes:n}},[u,s]);e.useEffect(()=>c?.('getState',d,l),[c,l,d])};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2]),o=r(_d[3])},97,[19,62,29,66]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useOnRouteFocus=function({router:o,getState:u,key:n,setState:c}){const{onRouteFocus:s}=e.useContext(t.NavigationBuilderContext);return e.useCallback(e=>{const t=u(),f=o.getStateForRouteFocus(t,e);f!==t&&c(f),void 0!==s&&void 0!==n&&s(n)},[u,s,o,c,n])};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(o){var u=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,u.get?u:{enumerable:!0,get:function(){return e[o]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},98,[19,29]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useRegisterNavigator=function(){const[o]=t.useState(()=>(0,e.nanoid)()),u=t.useContext(n.SingleNavigatorContext);if(void 0===u)throw new Error("Couldn't register the navigator. Have you wrapped your app with 'NavigationContainer'?\n\nThis can also happen if there are multiple copies of '@react-navigation' packages installed.");return t.useEffect(()=>{const{register:e,unregister:t}=u;return e(o),()=>t(o)},[u,o]),o};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),n=r(_d[2])},99,[826,19,27]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useScheduleUpdate=function(u){const{scheduleUpdate:o,flushUpdates:c}=e.useContext(t.NavigationBuilderContext);o(u),(0,n.useClientLayoutEffect)(c)};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2])},100,[19,29,80]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useNavigationContainerRef=function(){const n=e.useRef(null);null==n.current&&(n.current=(0,t.createNavigationContainerRef)());return n.current};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},101,[19,25]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.usePreventRemove=function(e,u){const[d]=n.useState(()=>(0,t.nanoid)()),v=(0,f.useNavigation)(),{key:l}=(0,c.useRoute)(),{setPreventRemove:_}=(0,s.usePreventRemoveContext)();n.useEffect(()=>(_(d,l,e),()=>{_(d,l,!1)}),[_,d,l,e]);const b=(0,o.default)(t=>{e&&(t.preventDefault(),u({data:t.data}))});n.useEffect(()=>v?.addListener('beforeRemove',b),[v,b])};var e,t=r(_d[0]),n=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),u=r(_d[2]),o=(e=u)&&e.__esModule?e:{default:e},f=r(_d[3]),s=r(_d[4]),c=r(_d[5])},102,[826,19,21,76,103,72]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.usePreventRemoveContext=function(){const n=e.useContext(t.PreventRemoveContext);if(null==n)throw new Error("Couldn't find the prevent remove context. Is your component inside NavigationContent?");return n};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},103,[19,67]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useStateForPath=function(){return e.useContext(t.NavigationFocusedRouteStateContext)};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},104,[19,85]); -__d(function(g,r,i,a,m,_e,_d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationContainer",{enumerable:!0,get:function(){return b}});var t=r(_d[0]),n=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),o=e(r(_d[2])),u=e(r(_d[3])),l=r(_d[4]),c=r(_d[5]),s=r(_d[6]),d=r(_d[7]),f=r(_d[8]),h=r(_d[9]),S=r(_d[10]),v=r(_d[11]),P=r(_d[12]);function C({direction:e=(o.default.getConstants().isRTL?'rtl':'ltr'),theme:C=s.DefaultTheme,linking:b,fallback:p=null,documentTitle:x,onReady:T,onStateChange:O,..._},j){const k=!!b&&!1!==b.enabled;b?.config&&(0,t.validatePathConfig)(b.config);const L=n.useRef(null);(0,f.useBackButton)(L),(0,h.useDocumentTitle)(L,x);const[A,F]=n.useState(),{getInitialState:R}=(0,S.useLinking)(L,{enabled:k,prefixes:[],...b},F),y=n.useMemo(()=>({options:b}),[b]),D=n.useMemo(()=>({lastUnhandledLink:A,setLastUnhandledLink:F}),[A,F]),E=(0,u.default)(()=>{const e=L.current?.getCurrentRoute()?.path;F(t=>{if(t!==e)return t}),T?.()}),I=(0,u.default)(e=>{const t=L.current?.getCurrentRoute()?.path;F(e=>{if(e!==t)return e}),O?.(e)});n.useEffect(()=>{L.current&&REACT_NAVIGATION_DEVTOOLS.set(L.current,{get linking(){return{...b,enabled:k,prefixes:b?.prefixes??[],getStateFromPath:b?.getStateFromPath??t.getStateFromPath,getPathFromState:b?.getPathFromState??t.getPathFromState,getActionFromState:b?.getActionFromState??t.getActionFromState}}})});const[M,N]=(0,v.useThenable)(R);n.useImperativeHandle(j,()=>L.current);return null!=_.initialState||!k||M?(0,P.jsx)(c.LocaleDirContext.Provider,{value:e,children:(0,P.jsx)(d.UnhandledLinkingContext.Provider,{value:D,children:(0,P.jsx)(l.LinkingContext.Provider,{value:y,children:(0,P.jsx)(t.BaseNavigationContainer,{..._,theme:C,onReady:E,onStateChange:I,initialState:null==_.initialState?N:_.initialState,ref:L})})})}):(0,P.jsx)(c.LocaleDirContext.Provider,{value:e,children:(0,P.jsx)(t.ThemeProvider,{value:C,children:p})})}globalThis.REACT_NAVIGATION_DEVTOOLS=new WeakMap;const b=n.forwardRef(C)},105,[9,19,106,21,107,108,109,112,113,114,115,118,2]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t}});var t={allowRTL(){},forceRTL(){},getConstants:()=>({isRTL:!1})}},106,[]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"LinkingContext",{enumerable:!0,get:function(){return t}});var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0]));const t=e.createContext({get options(){throw new Error("Couldn't find a LinkingContext context.")}});t.displayName='LinkingContext'},107,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"LocaleDirContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext('ltr');e.displayName='LocaleDirContext'},108,[19]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"DefaultTheme",{enumerable:!0,get:function(){return t}});const t={dark:!1,colors:{primary:'rgb(0, 122, 255)',background:'rgb(242, 242, 242)',card:'rgb(255, 255, 255)',text:'rgb(28, 28, 30)',border:'rgb(216, 216, 216)',notification:'rgb(255, 59, 48)'},fonts:r(d[0]).fonts}},109,[110]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"fonts",{enumerable:!0,get:function(){return t}}),r(d[0]);const o='system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',t={regular:{fontFamily:o,fontWeight:'400'},medium:{fontFamily:o,fontWeight:'500'},bold:{fontFamily:o,fontWeight:'600'},heavy:{fontFamily:o,fontWeight:'700'}}},110,[111]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t}});var t={OS:'web',select:t=>'web'in t?t.web:t.default,get isTesting(){return!1},get Version(){return'0.0.0'}}},111,[]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"UnhandledLinkingContext",{enumerable:!0,get:function(){return t}});var e=(function(e){if(e&&e.__esModule)return e;var n={};return e&&Object.keys(e).forEach(function(t){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}),n.default=e,n})(r(_d[0]));const n="Couldn't find an UnhandledLinkingContext context.",t=e.createContext({get lastUnhandledLink(){throw new Error(n)},get setLastUnhandledLink(){throw new Error(n)}});t.displayName='UnhandledLinkingContext'},112,[19]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.useBackButton=function(t){}},113,[]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useDocumentTitle=function(t,{enabled:n=!0,formatter:u=(e,t)=>e?.title??t?.name}={}){e.useEffect(()=>{if(!n)return;const e=t.current;if(e){const t=u(e.getCurrentOptions(),e.getCurrentRoute());document.title=t}return e?.addListener('options',t=>{const n=u(t.data.options,e?.getCurrentRoute());document.title=n})})};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0]))},114,[19]); -__d(function(g,_r,i,_a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"series",{enumerable:!0,get:function(){return a}}),_e.useLinking=function(e,{enabled:r=!0,config:f,getStateFromPath:d=t.getStateFromPath,getPathFromState:l=t.getPathFromState,getActionFromState:h=t.getActionFromState},y){const p=(0,t.useNavigationIndependentTree)();o.useEffect(()=>{},[r,p]);const[v]=o.useState(s.createMemoryHistory),R=o.useRef(r),k=o.useRef(f),b=o.useRef(d),S=o.useRef(l),w=o.useRef(h);o.useEffect(()=>{R.current=r,k.current=f,b.current=d,S.current=l,w.current=h});const F=o.useCallback(t=>{const r=e.current,n=r?.getRootState();return t?.routes.some(e=>!n?.routeNames.includes(e.name))},[e]),P=o.useContext(c.ServerContext),x=o.useCallback(()=>{let e;if(R.current){const t=P?.location??('undefined'!=typeof window?window.location:void 0),r=t?t.pathname+t.search:void 0;r&&(e=b.current(r,k.current)),y(r)}const t={then:t=>Promise.resolve(t?t(e):e),catch:()=>t};return t},[]),_=o.useRef(void 0),j=o.useRef(void 0),O=o.useRef(void 0);return o.useEffect(()=>(_.current=v.index,v.listen(()=>{const t=e.current;if(!t||!r)return;const{location:n}=window,o=n.pathname+n.search,s=v.index,c=_.current??0;_.current=s,O.current=o;const u=v.get(s);if(u?.path===o&&u?.state)return void t.resetRoot(u.state);const a=b.current(o,k.current);if(a){if(y(o),F(a))return;if(s>c){const e=w.current(a,k.current);if(void 0!==e)try{t.dispatch(e)}catch(e){console.warn(`An error occurred when trying to handle the link '${o}': ${'object'==typeof e&&null!=e&&'message'in e?e.message:e}`)}else t.resetRoot(a)}else t.resetRoot(a)}else t.resetRoot(a)})),[r,v,y,e,F]),o.useEffect(()=>{if(!r)return;const o=(e,r)=>{let o;if(e?.path){const r=b.current(e.path,k.current);if(r){const s=(0,t.findFocusedRoute)(r);s&&s.name===e.name&&(0,n.default)(s.params,e.params)&&(o=e.path)}}null==o&&(o=S.current(r,k.current));const s=j.current?(0,t.findFocusedRoute)(j.current):void 0;return s&&e&&'key'in s&&'key'in e&&s.key===e.key&&(o+=location.hash),o};if(e.current){const r=e.current.getRootState();if(r){const e=(0,t.findFocusedRoute)(r),n=o(e,r);void 0===j.current&&(j.current=r),v.replace({path:n,state:r})}}return e.current?.addListener('state',a(async()=>{const n=e.current;if(!n||!r)return;const s=j.current,c=n.getRootState();if(!c)return;const a=O.current,f=(0,t.findFocusedRoute)(c),d=o(f,c);j.current=c,O.current=void 0;const[l,h]=u(s,c);if(l&&h&&d!==a){const e=(h.history?h.history.length:h.routes.length)-(l.history?l.history.length:l.routes.length);if(e>0)v.push({path:d,state:c});else if(e<0){const t=v.backIndex({path:d}),r=v.index;try{-1!==t&&t{if(void 0===e||void 0===t||e.key!==t.key)return[void 0,void 0];const r=e.history?e.history.length:e.routes.length,n=t.history?t.history.length:t.routes.length,o=e.routes[e.index],s=t.routes[t.index],c=o.state,a=s.state;return r!==n||o.key!==s.key||void 0===c||void 0===a||c.key!==a.key?[e,t]:u(c,a)},a=e=>{let t=Promise.resolve();return()=>{t=t.then(e)}}},115,[9,79,19,116,117]); -__d(function(g,r,_i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.createMemoryHistory=function(){let n=0,i=[];const o=[],s=()=>{o.forEach(t=>{const n=t.cb;t.cb=()=>n(!0)})};return{get index(){const t=window.history.state?.id;if(t){const n=i.findIndex(n=>n.id===t);return n>-1?n:0}return 0},get:t=>i[t],backIndex({path:t}){for(let o=n-1;o>=0;o--){if(i[o].path===t)return o}return-1},push({path:o,state:c}){s();const h=(0,t.nanoid)();i=i.slice(0,n+1),i.push({path:o,state:c,id:h}),n=i.length-1,window.history.pushState({id:h},'',o)},replace({path:o,state:c}){s();const h=window.history.state?.id??(0,t.nanoid)();let w=o;const p=w.includes('#')?'':location.hash;!i.length||i.findIndex(t=>t.id===h)<0?(w+=p,i=[{path:w,state:c,id:h}],n=0):(i[n].path===o&&(w+=p),i[n]={path:o,state:c,id:h}),window.history.replaceState({id:h},'',w)},go(t){s();const c=n+t,h=i.length-1;if(t<0&&!i[c]?(t=-n,n=0):t>0&&c>h?(t=h-n,n=h):n=c,0!==t)return new Promise((i,s)=>{const c=t=>{if(clearTimeout(h),t)return void s(new Error('History was changed during navigation.'));const{title:n}=window.document;window.document.title='',window.document.title=n,i()};o.push({ref:c,cb:c});const h=setTimeout(()=>{const t=o.findIndex(t=>t.ref===c);t>-1&&(o[t].cb(),o.splice(t,1)),n=this.index},100),w=()=>{n=this.index;const t=o.pop();window.removeEventListener('popstate',w),t?.cb()};window.addEventListener('popstate',w),window.history.go(t)})},listen(t){const i=()=>{n=this.index,o.length||t()};return window.addEventListener('popstate',i),()=>window.removeEventListener('popstate',i)}}};var t=r(d[0])},116,[826]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"ServerContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},117,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useThenable=function(t){const[n]=e.useState(t);let u=[!1,void 0];n.then(e=>{u=[!0,e]});const[c,o]=e.useState(u),[f]=c;return e.useEffect(()=>{let e=!1;return f||(async()=>{let t;try{t=await n}finally{e||o([!0,t])}})(),()=>{e=!0}},[n,f]),c};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0]))},118,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.Link=function({screen:n,params:o,action:c,href:f,style:l,...d}){const{colors:p,fonts:P}=(0,e.useTheme)(),_=(0,u.useLinkProps)({screen:n,params:o,action:c,href:f});return t.createElement(s.default,{..._,...d,onClick:e=>{'onPress'in d&&d.onPress?.(e),e.defaultPrevented||_.onPress(e)},style:[{color:p.primary},P.regular,l]})};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1]));r(_d[2]);var n,o=r(_d[3]),s=(n=o)&&n.__esModule?n:{default:n},u=r(_d[4])},119,[9,19,111,120,211]); -__d(function(g,r,i,a,m,_e,_d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var o={};return e&&Object.keys(e).forEach(function(n){var t=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(o,n,t.get?t:{enumerable:!0,get:function(){return e[n]}})}),o.default=e,o}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return k}});var n=e(r(_d[0])),t=e(r(_d[1])),l=o(r(_d[2])),d=e(r(_d[3])),s=o(r(_d[4])),u=e(r(_d[5])),p=e(r(_d[6])),S=e(r(_d[7])),c=e(r(_d[8])),R=e(r(_d[9])),h=e(r(_d[10])),f=e(r(_d[11])),b=r(_d[12]),v=["hrefAttrs","numberOfLines","onClick","onLayout","onPress","onMoveShouldSetResponder","onMoveShouldSetResponderCapture","onResponderEnd","onResponderGrant","onResponderMove","onResponderReject","onResponderRelease","onResponderStart","onResponderTerminate","onResponderTerminationRequest","onScrollShouldSetResponder","onScrollShouldSetResponderCapture","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onStartShouldSetResponder","onStartShouldSetResponderCapture","selectable"],C=Object.assign({},s.defaultProps,s.accessibilityProps,s.clickProps,s.focusProps,s.keyboardProps,s.mouseProps,s.touchProps,s.styleProps,{href:!0,lang:!0,pointerEvents:!0}),x=e=>(0,u.default)(e,C),w=l.forwardRef((e,o)=>{var n=e.hrefAttrs,s=e.numberOfLines,u=e.onClick,h=e.onLayout,C=e.onPress,w=e.onMoveShouldSetResponder,y=e.onMoveShouldSetResponderCapture,k=e.onResponderEnd,M=e.onResponderGrant,O=e.onResponderMove,L=e.onResponderReject,_=e.onResponderRelease,j=e.onResponderStart,A=e.onResponderTerminate,T=e.onResponderTerminationRequest,E=e.onScrollShouldSetResponder,W=e.onScrollShouldSetResponderCapture,D=e.onSelectionChangeShouldSetResponder,$=e.onSelectionChangeShouldSetResponderCapture,q=e.onStartShouldSetResponder,G=e.onStartShouldSetResponderCapture,H=e.selectable,z=(0,t.default)(e,v),B=l.useContext(f.default),N=l.useRef(null),F=(0,b.useLocaleContext)().direction;(0,p.default)(N,h),(0,R.default)(N,{onMoveShouldSetResponder:w,onMoveShouldSetResponderCapture:y,onResponderEnd:k,onResponderGrant:M,onResponderMove:O,onResponderReject:L,onResponderRelease:_,onResponderStart:j,onResponderTerminate:A,onResponderTerminationRequest:T,onScrollShouldSetResponder:E,onScrollShouldSetResponderCapture:W,onSelectionChangeShouldSetResponder:D,onSelectionChangeShouldSetResponderCapture:$,onStartShouldSetResponder:q,onStartShouldSetResponderCapture:G});var I=l.useCallback(e=>{null!=u?u(e):null!=C&&(e.stopPropagation(),C(e))},[u,C]),J=B?'span':'div',K=null!=e.lang?(0,b.getLocaleDirection)(e.lang):null,Q=e.dir||K,U=Q||F,V=x(z);if(V.dir=Q,B||(V.dir=null!=Q?Q:'auto'),(u||C)&&(V.onClick=I),V.style=[null!=s&&s>1&&{WebkitLineClamp:s},!0===B?P.textHasAncestor$raw:P.text$raw,1===s&&P.textOneLine,null!=s&&s>1&&P.textMultiLine,e.style,!0===H&&P.selectable,!1===H&&P.notSelectable,C&&P.pressable],null!=e.href&&(J='a',null!=n)){var X=n.download,Y=n.rel,Z=n.target;null!=X&&(V.download=X),null!=Y&&(V.rel=Y),'string'==typeof Z&&(V.target='_'!==Z.charAt(0)?'_'+Z:Z)}var ee=(0,c.default)(V),oe=(0,S.default)(N,ee,o);V.ref=oe;var ne=(0,d.default)(J,V,{writingDirection:U});return B?ne:l.createElement(f.default.Provider,{value:!0},ne)});w.displayName='Text';var y={backgroundColor:'transparent',border:'0 solid black',boxSizing:'border-box',color:'black',display:'inline',font:'14px System',listStyle:'none',margin:0,padding:0,position:'relative',textAlign:'start',textDecoration:'none',whiteSpace:'pre-wrap',wordWrap:'break-word'},P=h.default.create({text$raw:y,textHasAncestor$raw:(0,n.default)((0,n.default)({},y),{},{color:'inherit',font:'inherit',textAlign:'inherit',whiteSpace:'inherit'}),textOneLine:{maxWidth:'100%',overflow:'hidden',textOverflow:'ellipsis',whiteSpace:'nowrap',wordWrap:'normal'},textMultiLine:{display:'-webkit-box',maxWidth:'100%',overflow:'clip',textOverflow:'ellipsis',WebkitBoxOrient:'vertical'},notSelectable:{userSelect:'none'},selectable:{userSelect:'text'},pressable:{cursor:'pointer'}}),k=w},120,[827,832,19,127,190,191,192,199,201,203,133,210,188]); -__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return o}});var t=e(r(d[0])),n=e(r(d[1])),l=e(r(d[2])),u=r(d[3]),o=(e,o,c)=>{var f;e&&e.constructor===String&&(f=t.default.propsToAccessibilityComponent(o));var s=f||e,_=(0,n.default)(s,o,c),p=l.default.createElement(s,_);return _.dir?l.default.createElement(u.LocaleProvider,{children:p,direction:_.dir,locale:_.lang}):p}},127,[128,132,19,188]); -__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var t=e(r(d[0])),u=e(r(d[1])),o=e(r(d[2])),n={isDisabled:t.default,propsToAccessibilityComponent:u.default,propsToAriaRole:o.default}},128,[129,130,131]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t}});var t=t=>t.disabled||Array.isArray(t.accessibilityStates)&&t.accessibilityStates.indexOf('disabled')>-1},129,[]); -__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return u}});var e,t=r(d[0]),n=(e=t)&&e.__esModule?e:{default:e},o={article:'article',banner:'header',blockquote:'blockquote',button:'button',code:'code',complementary:'aside',contentinfo:'footer',deletion:'del',emphasis:'em',figure:'figure',insertion:'ins',form:'form',list:'ul',listitem:'li',main:'main',navigation:'nav',paragraph:'p',region:'section',strong:'strong'},l={},u=function(e){if(void 0===e&&(e=l),'label'===(e.role||e.accessibilityRole))return'label';var t=(0,n.default)(e);if(t){if('heading'===t){var u=e.accessibilityLevel||e['aria-level'];return null!=u?"h"+u:'h1'}return o[t]}}},130,[131]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t}});var n={adjustable:'slider',button:'button',header:'heading',image:'img',imagebutton:null,keyboardkey:null,label:null,link:'link',none:'presentation',search:'search',summary:'region',text:null},t=t=>{var l=t.accessibilityRole,u=t.role||l;if(u){var o=n[u];if(null!==o)return o||u}}},131,[]); -__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return h}});var l=e(r(d[0])),t=e(r(d[1])),s=e(r(d[2])),n=e(r(d[3])),c=r(d[4]),u=["aria-activedescendant","accessibilityActiveDescendant","aria-atomic","accessibilityAtomic","aria-autocomplete","accessibilityAutoComplete","aria-busy","accessibilityBusy","aria-checked","accessibilityChecked","aria-colcount","accessibilityColumnCount","aria-colindex","accessibilityColumnIndex","aria-colspan","accessibilityColumnSpan","aria-controls","accessibilityControls","aria-current","accessibilityCurrent","aria-describedby","accessibilityDescribedBy","aria-details","accessibilityDetails","aria-disabled","accessibilityDisabled","aria-errormessage","accessibilityErrorMessage","aria-expanded","accessibilityExpanded","aria-flowto","accessibilityFlowTo","aria-haspopup","accessibilityHasPopup","aria-hidden","accessibilityHidden","aria-invalid","accessibilityInvalid","aria-keyshortcuts","accessibilityKeyShortcuts","aria-label","accessibilityLabel","aria-labelledby","accessibilityLabelledBy","aria-level","accessibilityLevel","aria-live","accessibilityLiveRegion","aria-modal","accessibilityModal","aria-multiline","accessibilityMultiline","aria-multiselectable","accessibilityMultiSelectable","aria-orientation","accessibilityOrientation","aria-owns","accessibilityOwns","aria-placeholder","accessibilityPlaceholder","aria-posinset","accessibilityPosInSet","aria-pressed","accessibilityPressed","aria-readonly","accessibilityReadOnly","aria-required","accessibilityRequired","role","accessibilityRole","aria-roledescription","accessibilityRoleDescription","aria-rowcount","accessibilityRowCount","aria-rowindex","accessibilityRowIndex","aria-rowspan","accessibilityRowSpan","aria-selected","accessibilitySelected","aria-setsize","accessibilitySetSize","aria-sort","accessibilitySort","aria-valuemax","accessibilityValueMax","aria-valuemin","accessibilityValueMin","aria-valuenow","accessibilityValueNow","aria-valuetext","accessibilityValueText","dataSet","focusable","id","nativeID","pointerEvents","style","tabIndex","testID"],o={},b=Object.prototype.hasOwnProperty,y=Array.isArray,v=/[A-Z]/g;function p(e){return'-'+e.toLowerCase()}function x(e){return e.replace(v,p)}function w(e){return y(e)?e.join(' '):e}var f=n.default.create({auto:{pointerEvents:'auto'},'box-none':{pointerEvents:'box-none'},'box-only':{pointerEvents:'box-only'},none:{pointerEvents:'none'}}),h=(e,y,v)=>{y||(y=o);var p=y,h=p['aria-activedescendant'],S=p.accessibilityActiveDescendant,C=p['aria-atomic'],I=p.accessibilityAtomic,R=p['aria-autocomplete'],D=p.accessibilityAutoComplete,M=p['aria-busy'],E=p.accessibilityBusy,O=p['aria-checked'],P=p.accessibilityChecked,k=p['aria-colcount'],A=p.accessibilityColumnCount,L=p['aria-colindex'],V=p.accessibilityColumnIndex,q=p['aria-colspan'],B=p.accessibilityColumnSpan,_=p['aria-controls'],z=p.accessibilityControls,T=p['aria-current'],j=p.accessibilityCurrent,H=p['aria-describedby'],N=p.accessibilityDescribedBy,F=p['aria-details'],K=p.accessibilityDetails,U=p['aria-disabled'],Z=p.accessibilityDisabled,G=p['aria-errormessage'],J=p.accessibilityErrorMessage,Q=p['aria-expanded'],W=p.accessibilityExpanded,X=p['aria-flowto'],Y=p.accessibilityFlowTo,$=p['aria-haspopup'],aa=p.accessibilityHasPopup,ia=p['aria-hidden'],ea=p.accessibilityHidden,la=p['aria-invalid'],ra=p.accessibilityInvalid,ta=p['aria-keyshortcuts'],sa=p.accessibilityKeyShortcuts,na=p['aria-label'],ca=p.accessibilityLabel,ua=p['aria-labelledby'],oa=p.accessibilityLabelledBy,ba=p['aria-level'],da=p.accessibilityLevel,ya=p['aria-live'],va=p.accessibilityLiveRegion,pa=p['aria-modal'],xa=p.accessibilityModal,ma=p['aria-multiline'],wa=p.accessibilityMultiline,fa=p['aria-multiselectable'],ha=p.accessibilityMultiSelectable,Sa=p['aria-orientation'],Ca=p.accessibilityOrientation,Ia=p['aria-owns'],Ra=p.accessibilityOwns,Da=p['aria-placeholder'],Ma=p.accessibilityPlaceholder,Ea=p['aria-posinset'],Oa=p.accessibilityPosInSet,Pa=p['aria-pressed'],ga=p.accessibilityPressed,ka=p['aria-readonly'],Aa=p.accessibilityReadOnly,La=p['aria-required'],Va=p.accessibilityRequired,qa=(p.role,p.accessibilityRole,p['aria-roledescription']),Ba=p.accessibilityRoleDescription,_a=p['aria-rowcount'],za=p.accessibilityRowCount,Ta=p['aria-rowindex'],ja=p.accessibilityRowIndex,Ha=p['aria-rowspan'],Na=p.accessibilityRowSpan,Fa=p['aria-selected'],Ka=p.accessibilitySelected,Ua=p['aria-setsize'],Za=p.accessibilitySetSize,Ga=p['aria-sort'],Ja=p.accessibilitySort,Qa=p['aria-valuemax'],Wa=p.accessibilityValueMax,Xa=p['aria-valuemin'],Ya=p.accessibilityValueMin,$a=p['aria-valuenow'],ai=p.accessibilityValueNow,ii=p['aria-valuetext'],ei=p.accessibilityValueText,li=p.dataSet,ri=p.focusable,ti=p.id,si=p.nativeID,ni=p.pointerEvents,ci=p.style,ui=p.tabIndex,oi=p.testID,bi=(0,t.default)(p,u),di=U||Z,yi=s.default.propsToAriaRole(y),vi=null!=h?h:S;null!=vi&&(bi['aria-activedescendant']=vi);var pi=null!=C?h:I;null!=pi&&(bi['aria-atomic']=pi);var xi=null!=R?R:D;null!=xi&&(bi['aria-autocomplete']=xi);var mi=null!=M?M:E;null!=mi&&(bi['aria-busy']=mi);var wi=null!=O?O:P;null!=wi&&(bi['aria-checked']=wi);var fi=null!=k?k:A;null!=fi&&(bi['aria-colcount']=fi);var hi=null!=L?L:V;null!=hi&&(bi['aria-colindex']=hi);var Si=null!=q?q:B;null!=Si&&(bi['aria-colspan']=Si);var Ci=null!=_?_:z;null!=Ci&&(bi['aria-controls']=w(Ci));var Ii=null!=T?T:j;null!=Ii&&(bi['aria-current']=Ii);var Ri=null!=H?H:N;null!=Ri&&(bi['aria-describedby']=w(Ri));var Di=null!=F?F:K;null!=Di&&(bi['aria-details']=Di),!0===di&&(bi['aria-disabled']=!0,'button'!==e&&'form'!==e&&'input'!==e&&'select'!==e&&'textarea'!==e||(bi.disabled=!0));var Mi=null!=G?G:J;null!=Mi&&(bi['aria-errormessage']=Mi);var Ei=null!=Q?Q:W;null!=Ei&&(bi['aria-expanded']=Ei);var Oi=null!=X?X:Y;null!=Oi&&(bi['aria-flowto']=w(Oi));var Pi=null!=$?$:aa;null!=Pi&&(bi['aria-haspopup']=Pi);var gi=null!=ia?ia:ea;!0===gi&&(bi['aria-hidden']=gi);var ki=null!=la?la:ra;null!=ki&&(bi['aria-invalid']=ki);var Ai=null!=ta?ta:sa;null!=Ai&&(bi['aria-keyshortcuts']=w(Ai));var Li=null!=na?na:ca;null!=Li&&(bi['aria-label']=Li);var Vi=null!=ua?ua:oa;null!=Vi&&(bi['aria-labelledby']=w(Vi));var qi=null!=ba?ba:da;null!=qi&&(bi['aria-level']=qi);var Bi=null!=ya?ya:va;null!=Bi&&(bi['aria-live']='none'===Bi?'off':Bi);var _i=null!=pa?pa:xa;null!=_i&&(bi['aria-modal']=_i);var zi=null!=ma?ma:wa;null!=zi&&(bi['aria-multiline']=zi);var Ti=null!=fa?fa:ha;null!=Ti&&(bi['aria-multiselectable']=Ti);var ji=null!=Sa?Sa:Ca;null!=ji&&(bi['aria-orientation']=ji);var Hi=null!=Ia?Ia:Ra;null!=Hi&&(bi['aria-owns']=w(Hi));var Ni=null!=Da?Da:Ma;null!=Ni&&(bi['aria-placeholder']=Ni);var Fi=null!=Ea?Ea:Oa;null!=Fi&&(bi['aria-posinset']=Fi);var Ki=null!=Pa?Pa:ga;null!=Ki&&(bi['aria-pressed']=Ki);var Ui=null!=ka?ka:Aa;null!=Ui&&(bi['aria-readonly']=Ui,'input'!==e&&'select'!==e&&'textarea'!==e||(bi.readOnly=!0));var Zi=null!=La?La:Va;null!=Zi&&(bi['aria-required']=Zi,'input'!==e&&'select'!==e&&'textarea'!==e||(bi.required=Va)),null!=yi&&(bi.role='none'===yi?'presentation':yi);var Gi=null!=qa?qa:Ba;null!=Gi&&(bi['aria-roledescription']=Gi);var Ji=null!=_a?_a:za;null!=Ji&&(bi['aria-rowcount']=Ji);var Qi=null!=Ta?Ta:ja;null!=Qi&&(bi['aria-rowindex']=Qi);var Wi=null!=Ha?Ha:Na;null!=Wi&&(bi['aria-rowspan']=Wi);var Xi=null!=Fa?Fa:Ka;null!=Xi&&(bi['aria-selected']=Xi);var Yi=null!=Ua?Ua:Za;null!=Yi&&(bi['aria-setsize']=Yi);var $i=null!=Ga?Ga:Ja;null!=$i&&(bi['aria-sort']=$i);var ae=null!=Qa?Qa:Wa;null!=ae&&(bi['aria-valuemax']=ae);var ie=null!=Xa?Xa:Ya;null!=ie&&(bi['aria-valuemin']=ie);var ee=null!=$a?$a:ai;null!=ee&&(bi['aria-valuenow']=ee);var le=null!=ii?ii:ei;if(null!=le&&(bi['aria-valuetext']=le),null!=li)for(var re in li)if(b.call(li,re)){var te=x(re),se=li[re];null!=se&&(bi["data-"+te]=se)}0===ui||'0'===ui||-1===ui||'-1'===ui?bi.tabIndex=ui:(!1===ri&&(bi.tabIndex='-1'),'a'===e||'button'===e||'input'===e||'select'===e||'textarea'===e?!1!==ri&&!0!==Z||(bi.tabIndex='-1'):'button'===yi||'checkbox'===yi||'link'===yi||'radio'===yi||'textbox'===yi||'switch'===yi?!1!==ri&&(bi.tabIndex='0'):!0===ri&&(bi.tabIndex='0')),null!=ni&&(0,c.warnOnce)('pointerEvents',"props.pointerEvents is deprecated. Use style.pointerEvents");var ne=(0,n.default)([ci,ni&&f[ni]],(0,l.default)({writingDirection:'ltr'},v)),ce=ne[0],ue=ne[1];ce&&(bi.className=ce),ue&&(bi.style=ue);var oe=null!=ti?ti:si;return null!=oe&&(bi.id=oe),null!=oi&&(bi['data-testid']=oi),null==bi.type&&'button'===e&&(bi.type='button'),bi}},132,[827,832,128,133,179]); -__d(function(g,r,_i,a,m,_e,d){"use strict";function t(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return S}});var e=t(r(d[0])),n=t(r(d[1])),i=r(d[2]),o=r(d[3]),l=r(d[4]),u=r(d[5]),c=r(d[6]),f=(r(d[7]),t(r(d[8]))),s=["writingDirection"],_=new WeakMap,v=(0,o.createSheet)(),O={shadow:!0,textShadow:!0};function w(t,i){void 0===i&&(i={});var o=i,f=o.writingDirection,v=(0,n.default)(o,s),w='rtl'===f;return c.styleq.factory({transform(t){var n=_.get(t);return null!=n?(0,l.localizeStyle)(n,w):(0,u.preprocess)(t,(0,e.default)((0,e.default)({},O),v))}})(t)}function h(t){t.forEach(t=>{var e=t[0],n=t[1];null!=v&&e.forEach(t=>{v.insert(t,n)})})}function p(t,e){var n=(0,i.classic)(t,e),o=n[0];return h(n[1]),o}var b={position:'absolute',left:0,right:0,top:0,bottom:0},y=A({x:(0,e.default)({},b)}).x;function A(t){return Object.keys(t).forEach(e=>{var n,o,l,c,f=t[e];null!=f&&!0!==f.$$css&&(e.indexOf('$raw')>-1?n=p(f,e.split('$raw')[0]):(o=f,l=(0,i.atomic)((0,u.preprocess)(o,O)),c=l[0],h(l[1]),n=c),_.set(f,n))}),t}function E(t,e){void 0===e&&(e={});var n='rtl'===e.writingDirection,o=w(t,e);return Array.isArray(o)&&null!=o[1]&&(o[1]=(0,i.inline)(o[1],n)),o}E.absoluteFill=y,E.absoluteFillObject=b,E.create=A,E.compose=function(t,e){return[t,e]},E.flatten=function(){for(var t=arguments.length,e=new Array(t),n=0;n{var o=n[t];if(null!=o){var l;if(P.indexOf(t)>-1){var s=i(t,t,'left'),u=i(t,t,'right');'start'===o?l=[s,u]:'end'===o&&(l=[u,s])}var f=N[t];if(null!=f){var p=i(t,f,o),c=i(t,_[f],o);l=[p,c]}if('transitionProperty'===t){for(var b=Array.isArray(o)?o:[o],h=[],v=0;v0){var S=[...b],E=[...b];h.forEach(n=>{var e=S[n];if('string'==typeof e){var o=N[e],s=_[o];S[n]=o,E[n]=s;var u=i(t,t,S),f=i(t,t,E);l=[u,f]}})}}null==l?l=i(t,t,o):e.$$css$localize=!0,e[t]=l}}),[e,t]},_e.classic=function(n,i){var o,l={$$css:!0},s=[],u=n.animationKeyframes,p=(0,t.default)(n,f),c=T('css',i,JSON.stringify(n)),h="."+c;if(null!=u){var v=V(u),y=v[0],S=v[1];o=y.join(','),s.push(...S)}var E=M((0,e.default)((0,e.default)({},p),{},{animationName:o}));return s.push(""+h+E),l[c]=c,[l,[[s,b]]]},_e.inline=function(n,e){var t=n||c,o={},l={},s=function(){var n=t[u],i=u,s=n;if(!Object.prototype.hasOwnProperty.call(t,u)||null==n)return"continue";P.indexOf(u)>-1&&('start'===n?s=e?'right':'left':'end'===n&&(s=e?'left':'right'));var f=N[u];if(null!=f&&(i=e?_[f]:f),'transitionProperty'===u){var p=Array.isArray(n)?n:[n];p.forEach((n,t)=>{if('string'==typeof n){var i=N[n];null!=i&&(p[t]=e?_[i]:i,s=p.join(' '))}})}o[i]||(l[i]=s),i===u&&(o[i]=!0)};for(var u in t)s();return(0,i.default)(l,!0)},_e.stringifyValueWithProperty=J;var e=n(r(d[0])),t=n(r(d[1])),i=n(r(d[2])),o=n(r(d[3])),l=n(r(d[4])),s=n(r(d[5])),u=n(r(d[6])),f=["animationKeyframes"],p=new Map,c={},b=1,h=3,v={borderColor:2,borderRadius:2,borderStyle:2,borderWidth:2,display:2,flex:2,inset:2,margin:2,overflow:2,overscrollBehavior:2,padding:2,insetBlock:2.1,insetInline:2.1,marginInline:2.1,marginBlock:2.1,paddingInline:2.1,paddingBlock:2.1,borderBlockStartColor:2.2,borderBlockStartStyle:2.2,borderBlockStartWidth:2.2,borderBlockEndColor:2.2,borderBlockEndStyle:2.2,borderBlockEndWidth:2.2,borderInlineStartColor:2.2,borderInlineStartStyle:2.2,borderInlineStartWidth:2.2,borderInlineEndColor:2.2,borderInlineEndStyle:2.2,borderInlineEndWidth:2.2,borderEndStartRadius:2.2,borderEndEndRadius:2.2,borderStartStartRadius:2.2,borderStartEndRadius:2.2,insetBlockEnd:2.2,insetBlockStart:2.2,insetInlineEnd:2.2,insetInlineStart:2.2,marginBlockStart:2.2,marginBlockEnd:2.2,marginInlineStart:2.2,marginInlineEnd:2.2,paddingBlockStart:2.2,paddingBlockEnd:2.2,paddingInlineStart:2.2,paddingInlineEnd:2.2},y='borderTopLeftRadius',S='borderTopRightRadius',E='borderBottomLeftRadius',I='borderBottomRightRadius',k='borderLeftColor',R='borderLeftStyle',B='borderLeftWidth',W='borderRightColor',j='borderRightStyle',C='borderRightWidth',O='right',w='marginLeft',A='marginRight',x='paddingLeft',L='paddingRight',$='left',_={[y]:S,[S]:y,[E]:I,[I]:E,[k]:W,[R]:j,[B]:C,[W]:k,[j]:R,[C]:B,[$]:O,[w]:A,[A]:w,[x]:L,[L]:x,[O]:$},N={borderStartStartRadius:y,borderStartEndRadius:S,borderEndStartRadius:E,borderEndEndRadius:I,borderInlineStartColor:k,borderInlineStartStyle:R,borderInlineStartWidth:B,borderInlineEndColor:W,borderInlineEndStyle:j,borderInlineEndWidth:C,insetInlineEnd:O,insetInlineStart:$,marginInlineStart:w,marginInlineEnd:A,paddingInlineStart:x,paddingInlineEnd:L},P=['clear','float','textAlign'];function J(n,e){var t=(0,s.default)(n,e);return'string'!=typeof t?JSON.stringify(t||''):t}function K(n,e,t){var i=[],o="."+n;switch(e){case'animationKeyframes':var l=V(t),s=l[0],u=l[1],f=M({animationName:s.join(',')});i.push(""+o+f,...u);break;case'placeholderTextColor':var p=M({color:t,opacity:1});i.push(o+"::-webkit-input-placeholder"+p,o+"::-moz-placeholder"+p,o+":-ms-input-placeholder"+p,o+"::placeholder"+p);break;case'pointerEvents':var c=t;if('auto'===t)c='auto!important';else if('none'===t){c='none!important';var b=M({pointerEvents:'none'});i.push(o+">* "+b)}else if('box-none'===t){c='none!important';var h=M({pointerEvents:'auto'});i.push(o+">* "+h)}else if('box-only'===t){c='auto!important';var v=M({pointerEvents:'none'});i.push(o+">* "+v)}var y=M({pointerEvents:c});i.push(""+o+y);break;case'scrollbarWidth':'none'===t&&i.push(o+"::-webkit-scrollbar{display:none}");var S=M({scrollbarWidth:t});i.push(""+o+S);break;default:var E=M({[e]:t});i.push(""+o+E)}return i}function M(n){var e=(0,u.default)((0,i.default)(n));return"{"+Object.keys(e).map(n=>{var t=e[n],i=(0,l.default)(n);return Array.isArray(t)?t.map(n=>i+":"+n).join(';'):i+":"+t}).sort().join(';')+";}"}function T(n,e,t){return n+"-"+(0,o.default)(e+t)}function z(n){var e=T('r','animation',JSON.stringify(n)),t='{'+Object.keys(n).map(e=>""+e+M(n[e])).join('')+'}',i=['-webkit-',''].map(n=>"@"+n+"keyframes "+e+t);return[e,i]}function V(n){if('number'==typeof n)throw new Error("Invalid CSS keyframes type: "+typeof n);var e=[],t=[];return(Array.isArray(n)?n:[n]).forEach(n=>{if('string'==typeof n)e.push(n);else{var i=z(n),o=i[0],l=i[1];e.push(o),t.push(...l)}}),[e,t]}},134,[827,832,135,143,144,136,145]); -__d(function(g,r,_i,a,m,_e,d){"use strict";function o(o){return o&&o.__esModule?o:{default:o}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return p}});var e=o(r(d[0])),t=o(r(d[1])),i={},n=!t.default||null!=window.CSS&&null!=window.CSS.supports&&(window.CSS.supports('text-decoration-line','none')||window.CSS.supports('-webkit-text-decoration-line','none')),l='-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',b={borderColor:['borderTopColor','borderRightColor','borderBottomColor','borderLeftColor'],borderBlockColor:['borderTopColor','borderBottomColor'],borderInlineColor:['borderRightColor','borderLeftColor'],borderRadius:['borderTopLeftRadius','borderTopRightRadius','borderBottomRightRadius','borderBottomLeftRadius'],borderStyle:['borderTopStyle','borderRightStyle','borderBottomStyle','borderLeftStyle'],borderBlockStyle:['borderTopStyle','borderBottomStyle'],borderInlineStyle:['borderRightStyle','borderLeftStyle'],borderWidth:['borderTopWidth','borderRightWidth','borderBottomWidth','borderLeftWidth'],borderBlockWidth:['borderTopWidth','borderBottomWidth'],borderInlineWidth:['borderRightWidth','borderLeftWidth'],insetBlock:['top','bottom'],insetInline:['left','right'],marginBlock:['marginTop','marginBottom'],marginInline:['marginRight','marginLeft'],paddingBlock:['paddingTop','paddingBottom'],paddingInline:['paddingRight','paddingLeft'],overflow:['overflowX','overflowY'],overscrollBehavior:['overscrollBehaviorX','overscrollBehaviorY'],borderBlockStartColor:['borderTopColor'],borderBlockStartStyle:['borderTopStyle'],borderBlockStartWidth:['borderTopWidth'],borderBlockEndColor:['borderBottomColor'],borderBlockEndStyle:['borderBottomStyle'],borderBlockEndWidth:['borderBottomWidth'],borderEndStartRadius:['borderBottomLeftRadius'],borderEndEndRadius:['borderBottomRightRadius'],borderStartStartRadius:['borderTopLeftRadius'],borderStartEndRadius:['borderTopRightRadius'],insetBlockEnd:['bottom'],insetBlockStart:['top'],marginBlockStart:['marginTop'],marginBlockEnd:['marginBottom'],paddingBlockStart:['paddingTop'],paddingBlockEnd:['paddingBottom']},p=(o,t)=>{if(!o)return i;var p={},s=function(){var i=o[f];if(null==i)return"continue";if('backgroundClip'===f)'text'===i&&(p.backgroundClip=i,p.WebkitBackgroundClip=i);else if('flex'===f)-1===i?(p.flexGrow=0,p.flexShrink=1,p.flexBasis='auto'):p.flex=i;else if('font'===f)p[f]=i.replace('System',l);else if('fontFamily'===f)if(i.indexOf('System')>-1){var s=i.split(/,\s*/);s[s.indexOf('System')]=l,p[f]=s.join(',')}else p[f]='monospace'===i?"monospace,monospace":i;else if('textDecorationLine'===f)n?p.textDecorationLine=i:p.textDecoration=i;else if('writingDirection'===f)p.direction=i;else{var c=(0,e.default)(o[f],f),u=b[f];t&&'inset'===f?(null==o.insetInline&&(p.left=c,p.right=c),null==o.insetBlock&&(p.top=c,p.bottom=c)):t&&'margin'===f?(null==o.marginInline&&(p.marginLeft=c,p.marginRight=c),null==o.marginBlock&&(p.marginTop=c,p.marginBottom=c)):t&&'padding'===f?(null==o.paddingInline&&(p.paddingLeft=c,p.paddingRight=c),null==o.paddingBlock&&(p.paddingTop=c,p.paddingBottom=c)):u?u.forEach((e,t)=>{null==o[e]&&(p[e]=c)}):p[f]=c}};for(var f in o)s();return p}},135,[136,142]); -__d(function(g,r,i,a,m,_e,d){"use strict";function o(o){return o&&o.__esModule?o:{default:o}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return u}});var e=o(r(d[0])),t=o(r(d[1])),l={backgroundColor:!0,borderColor:!0,borderTopColor:!0,borderRightColor:!0,borderBottomColor:!0,borderLeftColor:!0,color:!0,shadowColor:!0,textDecorationColor:!0,textShadowColor:!0};function u(o,u){var n=o;return null!=u&&e.default[u]||'number'!=typeof o?null!=u&&l[u]&&(n=(0,t.default)(o)):n=o+"px",n}},136,[137,138]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return n}});var t={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexOrder:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,gridRow:!0,gridRowEnd:!0,gridRowGap:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnGap:!0,gridColumnStart:!0,lineClamp:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0,scale:!0,scaleX:!0,scaleY:!0,scaleZ:!0,shadowOpacity:!0},o=['ms','Moz','O','Webkit'],l=(t,o)=>t+o.charAt(0).toUpperCase()+o.substring(1);Object.keys(t).forEach(n=>{o.forEach(o=>{t[l(o,n)]=t[n]})});var n=t},137,[]); -__d(function(_g,_r,i,_a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var t=e(_r(d[0])),u=e(_r(d[1])),n=function(e,n){if(void 0===n&&(n=1),null!=e){if('string'==typeof e&&(0,t.default)(e))return e;var r=(0,u.default)(e);if(null!=r)return"rgba("+(r>>16&255)+","+(r>>8&255)+","+(255&r)+","+((r>>24&255)/255*n).toFixed(2)+")"}}},138,[139,140]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t}});var t=t=>'currentcolor'===t||'currentColor'===t||'inherit'===t||0===t.indexOf('var(')},139,[]); -__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var e,t=r(d[0]),u=(e=t)&&e.__esModule?e:{default:e},n=e=>{if(null==e)return e;var t=(0,u.default)(e);return null!=t?t=(t<<24|t>>>8)>>>0:void 0}},140,[141]); -__d(function(_g,_r,i,a,m,e,d){'use strict';function r(r,n,t){return t<0&&(t+=1),t>1&&(t-=1),t<.16666666666666666?r+6*(n-r)*t:t<.5?n:t<.6666666666666666?r+(n-r)*(.6666666666666666-t)*6:r}function n(n,t,s){const u=s<.5?s*(1+t):s+t-s*t,c=2*s-u,l=r(c,u,n+.3333333333333333),o=r(c,u,n),g=r(c,u,n-.3333333333333333);return Math.round(255*l)<<24|Math.round(255*o)<<16|Math.round(255*g)<<8}function t(n,t,s){if(t+s>=1){const r=Math.round(255*t/(t+s));return r<<24|r<<16|r<<8}const u=r(0,1,n+.3333333333333333)*(1-t-s)+t,c=r(0,1,n)*(1-t-s)+t,l=r(0,1,n-.3333333333333333)*(1-t-s)+t;return Math.round(255*u)<<24|Math.round(255*c)<<16|Math.round(255*l)<<8}const s='[-+]?\\d*\\.?\\d+',u="[-+]?\\d*\\.?\\d+%";function c(...r){return'\\(\\s*('+r.join(')\\s*,?\\s*(')+')\\s*\\)'}function l(...r){return'\\(\\s*('+r.slice(0,r.length-1).join(')\\s*,?\\s*(')+')\\s*/\\s*('+r[r.length-1]+')\\s*\\)'}function o(...r){return'\\(\\s*('+r.join(')\\s*,\\s*(')+')\\s*\\)'}let g;function h(){return void 0===g&&(g={rgb:new RegExp('rgb'+c(s,s,s)),rgba:new RegExp('rgba('+o(s,s,s,s)+'|'+l(s,s,s,s)+')'),hsl:new RegExp('hsl'+c(s,u,u)),hsla:new RegExp('hsla('+o(s,u,u,s)+'|'+l(s,u,u,s)+')'),hwb:new RegExp('hwb'+c(s,u,u)),hex3:/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex4:/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#([0-9a-fA-F]{6})$/,hex8:/^#([0-9a-fA-F]{8})$/}),g}function b(r){const n=parseInt(r,10);return n<0?0:n>255?255:n}function p(r){return(parseFloat(r)%360+360)%360/360}function f(r){const n=parseFloat(r);return n<0?0:n>1?255:Math.round(255*n)}function y(r){const n=parseFloat(r);return n<0?0:n>100?1:n/100}function k(r){switch(r){case'transparent':return 0;case'aliceblue':return 4042850303;case'antiquewhite':return 4209760255;case'aqua':case'cyan':return 16777215;case'aquamarine':return 2147472639;case'azure':return 4043309055;case'beige':return 4126530815;case'bisque':return 4293182719;case'black':return 255;case'blanchedalmond':return 4293643775;case'blue':return 65535;case'blueviolet':return 2318131967;case'brown':return 2771004159;case'burlywood':return 3736635391;case'burntsienna':return 3934150143;case'cadetblue':return 1604231423;case'chartreuse':return 2147418367;case'chocolate':return 3530104575;case'coral':return 4286533887;case'cornflowerblue':return 1687547391;case'cornsilk':return 4294499583;case'crimson':return 3692313855;case'darkblue':return 35839;case'darkcyan':return 9145343;case'darkgoldenrod':return 3095792639;case'darkgray':case'darkgrey':return 2846468607;case'darkgreen':return 6553855;case'darkkhaki':return 3182914559;case'darkmagenta':return 2332068863;case'darkolivegreen':return 1433087999;case'darkorange':return 4287365375;case'darkorchid':return 2570243327;case'darkred':return 2332033279;case'darksalmon':return 3918953215;case'darkseagreen':return 2411499519;case'darkslateblue':return 1211993087;case'darkslategray':case'darkslategrey':return 793726975;case'darkturquoise':return 13554175;case'darkviolet':return 2483082239;case'deeppink':return 4279538687;case'deepskyblue':return 12582911;case'dimgray':case'dimgrey':return 1768516095;case'dodgerblue':return 512819199;case'firebrick':return 2988581631;case'floralwhite':return 4294635775;case'forestgreen':return 579543807;case'fuchsia':case'magenta':return 4278255615;case'gainsboro':return 3705462015;case'ghostwhite':return 4177068031;case'gold':return 4292280575;case'goldenrod':return 3668254975;case'gray':case'grey':return 2155905279;case'green':return 8388863;case'greenyellow':return 2919182335;case'honeydew':return 4043305215;case'hotpink':return 4285117695;case'indianred':return 3445382399;case'indigo':return 1258324735;case'ivory':return 4294963455;case'khaki':return 4041641215;case'lavender':return 3873897215;case'lavenderblush':return 4293981695;case'lawngreen':return 2096890111;case'lemonchiffon':return 4294626815;case'lightblue':return 2916673279;case'lightcoral':return 4034953471;case'lightcyan':return 3774873599;case'lightgoldenrodyellow':return 4210742015;case'lightgray':case'lightgrey':return 3553874943;case'lightgreen':return 2431553791;case'lightpink':return 4290167295;case'lightsalmon':return 4288707327;case'lightseagreen':return 548580095;case'lightskyblue':return 2278488831;case'lightslategray':case'lightslategrey':return 2005441023;case'lightsteelblue':return 2965692159;case'lightyellow':return 4294959359;case'lime':return 16711935;case'limegreen':return 852308735;case'linen':return 4210091775;case'maroon':return 2147483903;case'mediumaquamarine':return 1724754687;case'mediumblue':return 52735;case'mediumorchid':return 3126187007;case'mediumpurple':return 2473647103;case'mediumseagreen':return 1018393087;case'mediumslateblue':return 2070474495;case'mediumspringgreen':return 16423679;case'mediumturquoise':return 1221709055;case'mediumvioletred':return 3340076543;case'midnightblue':return 421097727;case'mintcream':return 4127193855;case'mistyrose':return 4293190143;case'moccasin':return 4293178879;case'navajowhite':return 4292783615;case'navy':return 33023;case'oldlace':return 4260751103;case'olive':return 2155872511;case'olivedrab':return 1804477439;case'orange':return 4289003775;case'orangered':return 4282712319;case'orchid':return 3664828159;case'palegoldenrod':return 4008225535;case'palegreen':return 2566625535;case'paleturquoise':return 2951671551;case'palevioletred':return 3681588223;case'papayawhip':return 4293907967;case'peachpuff':return 4292524543;case'peru':return 3448061951;case'pink':return 4290825215;case'plum':return 3718307327;case'powderblue':return 2967529215;case'purple':return 2147516671;case'rebeccapurple':return 1714657791;case'red':return 4278190335;case'rosybrown':return 3163525119;case'royalblue':return 1097458175;case'saddlebrown':return 2336560127;case'salmon':return 4202722047;case'sandybrown':return 4104413439;case'seagreen':return 780883967;case'seashell':return 4294307583;case'sienna':return 2689740287;case'silver':return 3233857791;case'skyblue':return 2278484991;case'slateblue':return 1784335871;case'slategray':case'slategrey':return 1887473919;case'snow':return 4294638335;case'springgreen':return 16744447;case'steelblue':return 1182971135;case'tan':return 3535047935;case'teal':return 8421631;case'thistle':return 3636451583;case'tomato':return 4284696575;case'turquoise':return 1088475391;case'violet':return 4001558271;case'wheat':return 4125012991;case'white':return 4294967295;case'whitesmoke':return 4126537215;case'yellow':return 4294902015;case'yellowgreen':return 2597139199}return null}m.exports=function(r){if('number'==typeof r)return r>>>0===r&&r>=0&&r<=4294967295?r:null;if('string'!=typeof r)return null;const s=h();let u;if(u=s.hex6.exec(r))return parseInt(u[1]+'ff',16)>>>0;const c=k(r);return null!=c?c:(u=s.rgb.exec(r))?(b(u[1])<<24|b(u[2])<<16|b(u[3])<<8|255)>>>0:(u=s.rgba.exec(r))?void 0!==u[6]?(b(u[6])<<24|b(u[7])<<16|b(u[8])<<8|f(u[9]))>>>0:(b(u[2])<<24|b(u[3])<<16|b(u[4])<<8|f(u[5]))>>>0:(u=s.hex3.exec(r))?parseInt(u[1]+u[1]+u[2]+u[2]+u[3]+u[3]+'ff',16)>>>0:(u=s.hex8.exec(r))?parseInt(u[1],16)>>>0:(u=s.hex4.exec(r))?parseInt(u[1]+u[1]+u[2]+u[2]+u[3]+u[3]+u[4]+u[4],16)>>>0:(u=s.hsl.exec(r))?(255|n(p(u[1]),y(u[2]),y(u[3])))>>>0:(u=s.hsla.exec(r))?void 0!==u[6]?(n(p(u[6]),y(u[7]),y(u[8]))|f(u[9]))>>>0:(n(p(u[2]),y(u[3]),y(u[4]))|f(u[5]))>>>0:(u=s.hwb.exec(r))?(255|t(p(u[1]),y(u[2]),y(u[3])))>>>0:null}},141,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return n}});var n=!('undefined'==typeof window||!window.document||!window.document.createElement)},142,[]); -__d(function(g,r,_i,a,m,e,d){"use strict";function t(t,c){for(var o,n=t.length,u=c^n,h=0;n>=4;)o=1540483477*(65535&(o=255&t.charCodeAt(h)|(255&t.charCodeAt(++h))<<8|(255&t.charCodeAt(++h))<<16|(255&t.charCodeAt(++h))<<24))+((1540483477*(o>>>16)&65535)<<16),u=1540483477*(65535&u)+((1540483477*(u>>>16)&65535)<<16)^(o=1540483477*(65535&(o^=o>>>24))+((1540483477*(o>>>16)&65535)<<16)),n-=4,++h;switch(n){case 3:u^=(255&t.charCodeAt(h+2))<<16;case 2:u^=(255&t.charCodeAt(h+1))<<8;case 1:u=1540483477*(65535&(u^=255&t.charCodeAt(h)))+((1540483477*(u>>>16)&65535)<<16)}return u=1540483477*(65535&(u^=u>>>13))+((1540483477*(u>>>16)&65535)<<16),(u^=u>>>15)>>>0}Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return c}});var c=c=>t(c,1).toString(36)},143,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return c}});var t=/[A-Z]/g,n=/^ms-/,u={};function o(t){return'-'+t.toLowerCase()}var c=function(c){if(c in u)return u[c];var f=c.replace(t,o);return u[c]=n.test(f)?'-'+f:f}},144,[]); -__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var t=e(r(d[0])),u=e(r(d[1])),n=(0,t.default)(u.default)},145,[146,152]); -__d(function(g,r,_i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(l){var i=l.prefixMap,o=l.plugins;return function l(s){for(var v in s){var c=s[v];if((0,n.default)(c))s[v]=l(c);else if(Array.isArray(c)){for(var _=[],p=0,y=c.length;p0&&(s[v]=_)}else{var h=(0,u.default)(o,v,c,s,i);h&&(s[v]=h),s=(0,t.default)(i,v,s)}}return s}};var t=l(r(d[0])),u=l(r(d[1])),f=l(r(d[2])),n=l(r(d[3]));function l(t){return t&&t.__esModule?t:{default:t}}},146,[147,149,150,151]); -__d(function(g,r,_i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,u,n){var l=t[u];if(l&&n.hasOwnProperty(u))for(var o=(0,f.default)(u),_=0;_-1)return f.map(function(t){return u.replace(/image-set\(/g,t+'image-set(')})};var t,u=r(d[0]),n=(t=u)&&t.__esModule?t:{default:t};var f=['-webkit-','']},168,[162]); -__d(function(g,r,_i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(o,n,i){if(Object.prototype.hasOwnProperty.call(t,o))for(var l=t[o],b=0,B=l.length;b-1)return p;var v=l.split(/,(?![^()]*(?:\([^()]*\))?\))/g).filter(function(t){return!/-webkit-|-ms-/.test(t)}).join(',');return t.indexOf('Moz')>-1?v:(o['Webkit'+(0,n.default)(t)]=p,o['Moz'+(0,n.default)(t)]=v,l)}};var t=o(r(d[0])),i=o(r(d[1])),n=o(r(d[2]));function o(t){return t&&t.__esModule?t:{default:t}}var f={transition:!0,transitionProperty:!0,WebkitTransition:!0,WebkitTransitionProperty:!0,MozTransition:!0,MozTransitionProperty:!0},u={Webkit:'-webkit-',Moz:'-moz-',ms:'-ms-'};function s(n,o){if((0,i.default)(n))return n;for(var f=n.split(/,(?![^()]*(?:\([^()]*\))?\))/g),s=0,l=f.length;s-1&&'order'!==b)for(var k=o[c],z=0,M=k.length;z{h.insert(e,0)}),o.set(b,l.length),l.push(h);else{var p=o.get(b);if(null==p){var v=l[0],k=null!=v?v.getTextContent():'';h=(0,u.default)((0,n.default)(f,b,k)),o.set(b,l.length),l.push(h)}else h=l[p]}}else 0===l.length?(h=(0,u.default)((0,n.default)(f)),c.forEach(e=>{h.insert(e,0)}),l.push(h)):h=l[0];return{getTextContent:()=>h.getTextContent(),id:f,insert(e,t){l.forEach(n=>{n.insert(e,t)})}}};var t=e(r(d[0])),n=e(r(d[1])),u=e(r(d[2])),s='react-native-stylesheet',o=new WeakMap,l=[],c=['html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}','body{margin:0;}','button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}','input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}']},173,[142,174,175]); -__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return u}});var e,t=r(d[0]),n=(e=t)&&e.__esModule?e:{default:e};function u(e,t,u){if(n.default){var l=null!=t?t:document,o=l.getElementById(e);if(null==o)if((o=document.createElement('style')).setAttribute('id',e),'string'==typeof u&&o.appendChild(document.createTextNode(u)),l instanceof ShadowRoot)l.insertBefore(o,l.firstChild);else{var f=l.head;f&&f.insertBefore(o,f.firstChild)}return o.sheet}return null}},174,[142]); -__d(function(g,r,_i,_a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return e}});var t=Array.prototype.slice;function e(e){var u,a={},c={};null!=e&&t.call(e.cssRules).forEach((t,e)=>{var n=t.cssText;if(n.indexOf('stylesheet-group')>-1)u=l(t),a[u]={start:e,rules:[n]};else{var s=i(n);null!=s&&(c[s]=!0,a[u].rules.push(n))}});function f(t,e,n){var u=s(a),l=u.indexOf(e)+1,i=u[l],c=null!=i&&null!=a[i].start?a[i].start:t.cssRules.length,f=o(t,n,c);if(f){null==a[e].start&&(a[e].start=c);for(var v=l;vs(a).map(t=>{var e=a[t].rules,n=e.shift();return e.sort(),e.unshift(n),e.join('\n')}).join('\n'),insert(t,u){var l=Number(u);if(null==a[l]){var s=n(l);a[l]={start:null,rules:[s]},null!=e&&f(e,l,s)}var o=i(t);null!=o&&null==c[o]&&(c[o]=!0,a[l].rules.push(t),null!=e&&(f(e,l,t)||a[l].rules.pop()))}};return v}function n(t){return"[stylesheet-group=\""+t+"\"]{}"}var u=/["']/g;function l(t){return Number(t.selectorText.split(u)[1])}function s(t){return Object.keys(t).map(Number).sort((t,e)=>t>e?1:-1)}var a=/\s*([,])\s*/g;function i(t){var e=t.split('{')[0].trim();return''!==e?e.replace(a,'$1'):null}function o(t,e,n){try{return t.insertRule(e,n),!0}catch(t){return!1}}},175,[]); -__d(function(g,r,i,a,m,e,d){m.exports=r(d[0])},176,[177]); -__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.localizeStyle=function(l,s){if(null!=l[t]){var c=s?1:0;if(n.has(l)){var f=n.get(l),o=f[c];return null==o&&(o=u(l,s),f[c]=o,n.set(l,f)),o}var v=u(l,s),y=new Array(2);return y[c]=v,n.set(l,y),v}return l};var n=new WeakMap,t='$$css$localize';function u(n,u){var l={};for(var s in n)if(s!==t){var c=n[s];Array.isArray(c)?l[s]=u?c[1]:c[0]:l[s]=c}return l}},177,[]); -__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return O}}),Object.defineProperty(_e,"createBoxShadowValue",{enumerable:!0,get:function(){return s}}),Object.defineProperty(_e,"createTextShadowValue",{enumerable:!0,get:function(){return f}}),Object.defineProperty(_e,"createBoxShadowArrayValue",{enumerable:!0,get:function(){return S}}),Object.defineProperty(_e,"createTransformValue",{enumerable:!0,get:function(){return b}}),Object.defineProperty(_e,"createTransformOriginValue",{enumerable:!0,get:function(){return w}}),Object.defineProperty(_e,"preprocess",{enumerable:!0,get:function(){return x}});var t=e(r(d[0])),n=e(r(d[1])),o=r(d[2]),l={},u={height:0,width:0},s=e=>{var o=e.shadowColor,l=e.shadowOffset,s=e.shadowOpacity,f=e.shadowRadius,h=l||u,S=h.height,c=h.width,b=(0,n.default)(c),w=(0,n.default)(S),p=(0,n.default)(f||0),y=(0,t.default)(o||'black',s);if(null!=y&&null!=b&&null!=w&&null!=p)return b+" "+w+" "+p+" "+y},f=e=>{var t=e.textShadowColor,o=e.textShadowOffset,l=e.textShadowRadius,s=o||u,f=s.height,h=s.width,S=l||0,c=(0,n.default)(h),b=(0,n.default)(f),w=(0,n.default)(S),p=(0,n.default)(t,'textShadowColor');if(p&&(0!==f||0!==h||0!==S)&&null!=c&&null!=b&&null!=w)return c+" "+b+" "+w+" "+p},h=e=>{if('string'==typeof e)return e;var o=(0,n.default)(e.offsetX)||0,l=(0,n.default)(e.offsetY)||0,u=(0,n.default)(e.blurRadius)||0,s=(0,n.default)(e.spreadDistance)||0,f=(0,t.default)(e.color)||'black';return""+(e.inset?'inset ':'')+o+" "+l+" "+u+" "+s+" "+f},S=e=>e.map(h).join(', '),c=e=>{var t=Object.keys(e)[0],o=e[t];return'matrix'===t||'matrix3d'===t?t+"("+o.join(',')+")":t+"("+(0,n.default)(o,t)+")"},b=e=>e.map(c).join(' '),w=e=>e.map(e=>(0,n.default)(e)).join(' '),p={borderBottomEndRadius:'borderEndEndRadius',borderBottomStartRadius:'borderEndStartRadius',borderTopEndRadius:'borderStartEndRadius',borderTopStartRadius:'borderStartStartRadius',borderEndColor:'borderInlineEndColor',borderEndStyle:'borderInlineEndStyle',borderEndWidth:'borderInlineEndWidth',borderStartColor:'borderInlineStartColor',borderStartStyle:'borderInlineStartStyle',borderStartWidth:'borderInlineStartWidth',end:'insetInlineEnd',marginEnd:'marginInlineEnd',marginHorizontal:'marginInline',marginStart:'marginInlineStart',marginVertical:'marginBlock',paddingEnd:'paddingInlineEnd',paddingHorizontal:'paddingInline',paddingStart:'paddingInlineStart',paddingVertical:'paddingBlock',start:'insetInlineStart'},y={elevation:!0,overlayColor:!0,resizeMode:!0,tintColor:!0},x=function(e,t){void 0===t&&(t={});var n=e||l,u={};if(t.shadow,null!=n.shadowColor||null!=n.shadowOffset||null!=n.shadowOpacity||null!=n.shadowRadius){(0,o.warnOnce)('shadowStyles',"\"shadow*\" style props are deprecated. Use \"boxShadow\".");var h=s(n);null!=h&&(u.boxShadow=h)}if(t.textShadow,null!=n.textShadowColor||null!=n.textShadowOffset||null!=n.textShadowRadius){(0,o.warnOnce)('textShadowStyles',"\"textShadow*\" style props are deprecated. Use \"textShadow\".");var c=f(n);if(null!=c&&null==u.textShadow){var x=n.textShadow,O=x?x+", "+c:c;u.textShadow=O}}for(var v in n)if(null==y[v]&&'shadowColor'!==v&&'shadowOffset'!==v&&'shadowOpacity'!==v&&'shadowRadius'!==v&&'textShadowColor'!==v&&'textShadowOffset'!==v&&'textShadowRadius'!==v){var E=n[v],R=p[v]||v,j=E;if(Object.prototype.hasOwnProperty.call(n,v)&&(R===v||null==n[R]))if('aspectRatio'===R&&'number'==typeof j)u[R]=j.toString();else if('boxShadow'===R){Array.isArray(j)&&(j=S(j));var I=u.boxShadow;u.boxShadow=I?j+", "+I:j}else'fontVariant'===R?(Array.isArray(j)&&j.length>0&&(j=j.join(' ')),u[R]=j):'textAlignVertical'===R?null==n.verticalAlign&&(u.verticalAlign='center'===j?'middle':j):'transform'===R?(Array.isArray(j)&&(j=b(j)),u.transform=j):'transformOrigin'===R?(Array.isArray(j)&&(j=w(j)),u.transformOrigin=j):u[R]=j}return u},O=x},178,[138,136,179]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.warnOnce=function(n,t){}},179,[]); -__d(function(g,r,_i2,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.styleq=void 0;var l=new WeakMap;function n(n){var s,u,t;return null!=n&&(s=!0===n.disableCache,u=!0===n.disableMix,t=n.transform),function(){for(var n=[],i='',o=null,f=s?null:l,v=new Array(arguments.length),c=0;c0;){var p=v.pop();if(null!=p&&!1!==p)if(Array.isArray(p))for(var y=0;y-1)s("Invalid style declaration \""+u+":"+c+"\". Values cannot include \"!important\""),f=!0;else{var p='';'animation'===u||'animationName'===u?(p='Did you mean "animationKeyframes"?',f=!0):'direction'===u?(p='Did you mean "writingDirection"?',f=!0):t[u]?(p='Please use long-form properties.',f=!0):l[u]&&'string'==typeof c&&(0,o.default)(c).nodes.length>1&&(p="Value is \""+c+"\" but only single values are supported.",f=!0),''!==p&&s("Invalid style property of \""+u+"\". "+p)}f&&delete e[n]}}};var e,n=r(d[0]),o=(e=n)&&e.__esModule?e:{default:e},t={background:!0,borderBottom:!0,borderLeft:!0,borderRight:!0,borderTop:!0,font:!0,grid:!0,outline:!0,textDecoration:!0},l={flex:!0,margin:!0,padding:!0,borderColor:!0,borderRadius:!0,borderStyle:!0,borderWidth:!0,inset:!0,insetBlock:!0,insetInline:!0,marginBlock:!0,marginInline:!0,marginHorizontal:!0,marginVertical:!0,paddingBlock:!0,paddingInline:!0,paddingHorizontal:!0,paddingVertical:!0,overflow:!0,overscrollBehavior:!0,backgroundPosition:!0};function s(e){console.error(e)}},182,[183]); -__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]);function s(n){return this instanceof s?(this.nodes=t(n),this):new s(n)}s.prototype.toString=function(){return Array.isArray(this.nodes)?o(this.nodes):""},s.prototype.walk=function(t,o){return n(this.nodes,t,o),this},s.unit=r(d[3]),s.walk=n,s.stringify=o,m.exports=s},183,[184,185,186,187]); -__d(function(g,r,i,a,m,e,d){var o="(".charCodeAt(0),n=")".charCodeAt(0),c="'".charCodeAt(0),t='"'.charCodeAt(0),s="\\".charCodeAt(0),u="/".charCodeAt(0),l=",".charCodeAt(0),h=":".charCodeAt(0),f="*".charCodeAt(0),p="u".charCodeAt(0),x="U".charCodeAt(0),A="+".charCodeAt(0),C=/^[a-f0-9?-]+$/i;m.exports=function(I){for(var v,E,y,w,O,b,_,q,U,$=[],j=I,k=0,z=j.charCodeAt(k),B=j.length,D=[{nodes:$}],F=0,G="",H="",J="";k=48&&A<=57)return!0;var n=h.charCodeAt(2);return A===c&&n>=48&&n<=57}return C===c?(A=h.charCodeAt(1))>=48&&A<=57:C>=48&&C<=57}m.exports=function(n){var f,u,v,l=0,s=n.length;if(0===s||!C(n))return!1;for((f=n.charCodeAt(l))!==o&&f!==t||l++;l57);)l+=1;if(f=n.charCodeAt(l),u=n.charCodeAt(l+1),f===c&&u>=48&&u<=57)for(l+=2;l57);)l+=1;if(f=n.charCodeAt(l),u=n.charCodeAt(l+1),v=n.charCodeAt(l+2),(f===h||f===A)&&(u>=48&&u<=57||(u===o||u===t)&&v>=48&&v<=57))for(l+=u===o||u===t?3:2;l57);)l+=1;return{number:n.slice(0,l),unit:n.slice(l)}}},187,[]); -__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.getLocaleDirection=u,_e.LocaleProvider=function(e){var t=e.direction,o=e.locale,l=e.children;return t||o?n.default.createElement(c.Provider,{children:l,value:{direction:o?u(o):t,locale:o}}):l},_e.useLocaleContext=function(){return(0,t.useContext)(c)};var e,t=r(d[0]),n=(e=t)&&e.__esModule?e:{default:e},o=r(d[1]),l={direction:'ltr',locale:'en-US'},c=(0,t.createContext)(l);function u(e){return(0,o.isLocaleRTL)(e)?'rtl':'ltr'}},188,[19,189]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.isLocaleRTL=function(s){var l=c.get(s);if(l)return l;var o=!1;if(Intl.Locale)try{var u=new Intl.Locale(s).maximize().script;o=t.has(u)}catch(t){var h=s.split('-')[0];o=n.has(h)}else{var v=s.split('-')[0];o=n.has(v)}return c.set(s,o),o};var t=new Set(['Arab','Syrc','Samr','Mand','Thaa','Mend','Nkoo','Adlm','Rohg','Hebr']),n=new Set(['ae','ar','arc','bcc','bqi','ckb','dv','fa','far','glk','he','iw','khw','ks','ku','mzn','nqo','pnb','ps','sd','ug','ur','yi']),c=new Map},189,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"defaultProps",{enumerable:!0,get:function(){return t}}),Object.defineProperty(e,"accessibilityProps",{enumerable:!0,get:function(){return c}}),Object.defineProperty(e,"clickProps",{enumerable:!0,get:function(){return o}}),Object.defineProperty(e,"focusProps",{enumerable:!0,get:function(){return s}}),Object.defineProperty(e,"keyboardProps",{enumerable:!0,get:function(){return n}}),Object.defineProperty(e,"mouseProps",{enumerable:!0,get:function(){return l}}),Object.defineProperty(e,"touchProps",{enumerable:!0,get:function(){return u}}),Object.defineProperty(e,"styleProps",{enumerable:!0,get:function(){return b}});var t={children:!0,dataSet:!0,dir:!0,id:!0,ref:!0,suppressHydrationWarning:!0,tabIndex:!0,testID:!0,focusable:!0,nativeID:!0},c={'aria-activedescendant':!0,'aria-atomic':!0,'aria-autocomplete':!0,'aria-busy':!0,'aria-checked':!0,'aria-colcount':!0,'aria-colindex':!0,'aria-colspan':!0,'aria-controls':!0,'aria-current':!0,'aria-describedby':!0,'aria-details':!0,'aria-disabled':!0,'aria-errormessage':!0,'aria-expanded':!0,'aria-flowto':!0,'aria-haspopup':!0,'aria-hidden':!0,'aria-invalid':!0,'aria-keyshortcuts':!0,'aria-label':!0,'aria-labelledby':!0,'aria-level':!0,'aria-live':!0,'aria-modal':!0,'aria-multiline':!0,'aria-multiselectable':!0,'aria-orientation':!0,'aria-owns':!0,'aria-placeholder':!0,'aria-posinset':!0,'aria-pressed':!0,'aria-readonly':!0,'aria-required':!0,inert:!0,role:!0,'aria-roledescription':!0,'aria-rowcount':!0,'aria-rowindex':!0,'aria-rowspan':!0,'aria-selected':!0,'aria-setsize':!0,'aria-sort':!0,'aria-valuemax':!0,'aria-valuemin':!0,'aria-valuenow':!0,'aria-valuetext':!0,accessibilityActiveDescendant:!0,accessibilityAtomic:!0,accessibilityAutoComplete:!0,accessibilityBusy:!0,accessibilityChecked:!0,accessibilityColumnCount:!0,accessibilityColumnIndex:!0,accessibilityColumnSpan:!0,accessibilityControls:!0,accessibilityCurrent:!0,accessibilityDescribedBy:!0,accessibilityDetails:!0,accessibilityDisabled:!0,accessibilityErrorMessage:!0,accessibilityExpanded:!0,accessibilityFlowTo:!0,accessibilityHasPopup:!0,accessibilityHidden:!0,accessibilityInvalid:!0,accessibilityKeyShortcuts:!0,accessibilityLabel:!0,accessibilityLabelledBy:!0,accessibilityLevel:!0,accessibilityLiveRegion:!0,accessibilityModal:!0,accessibilityMultiline:!0,accessibilityMultiSelectable:!0,accessibilityOrientation:!0,accessibilityOwns:!0,accessibilityPlaceholder:!0,accessibilityPosInSet:!0,accessibilityPressed:!0,accessibilityReadOnly:!0,accessibilityRequired:!0,accessibilityRole:!0,accessibilityRoleDescription:!0,accessibilityRowCount:!0,accessibilityRowIndex:!0,accessibilityRowSpan:!0,accessibilitySelected:!0,accessibilitySetSize:!0,accessibilitySort:!0,accessibilityValueMax:!0,accessibilityValueMin:!0,accessibilityValueNow:!0,accessibilityValueText:!0},o={onClick:!0,onAuxClick:!0,onContextMenu:!0,onGotPointerCapture:!0,onLostPointerCapture:!0,onPointerCancel:!0,onPointerDown:!0,onPointerEnter:!0,onPointerMove:!0,onPointerLeave:!0,onPointerOut:!0,onPointerOver:!0,onPointerUp:!0},s={onBlur:!0,onFocus:!0},n={onKeyDown:!0,onKeyDownCapture:!0,onKeyUp:!0,onKeyUpCapture:!0},l={onMouseDown:!0,onMouseEnter:!0,onMouseLeave:!0,onMouseMove:!0,onMouseOver:!0,onMouseOut:!0,onMouseUp:!0},u={onTouchCancel:!0,onTouchCancelCapture:!0,onTouchEnd:!0,onTouchEndCapture:!0,onTouchMove:!0,onTouchMoveCapture:!0,onTouchStart:!0,onTouchStartCapture:!0},b={style:!0}},190,[]); -__d(function(g,r,i,a,m,e,d){"use strict";function t(t,n){var u={};for(var o in t)t.hasOwnProperty(o)&&!0===n[o]&&(u[o]=t[o]);return u}Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t}})},191,[]); -__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return f}});var t=e(r(d[0])),n=e(r(d[1])),u=e(r(d[2])),l='__reactLayoutHandler',o=(u.default,null);function f(e,f){var v=(u.default&&void 0!==window.ResizeObserver&&null==o&&(o=new window.ResizeObserver(function(e){e.forEach(e=>{var t=e.target,u=t[l];'function'==typeof u&&n.default.measure(t,(t,n,l,o,f,v)=>{var c={nativeEvent:{layout:{x:t,y:n,width:l,height:o,left:f,top:v}},timeStamp:Date.now()};Object.defineProperty(c.nativeEvent,'target',{enumerable:!0,get:()=>e.target}),u(c)})})})),o);(0,t.default)(()=>{var t=e.current;null!=t&&(t[l]=f)},[e,f]),(0,t.default)(()=>{var t=e.current;return null!=t&&null!=v&&('function'==typeof t[l]?v.observe(t):v.unobserve(t)),()=>{null!=t&&null!=v&&v.unobserve(t)}},[e,v])}},192,[193,194,142]); -__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return f}});var e,t=r(d[0]),u=r(d[1]),f=((e=u)&&e.__esModule?e:{default:e}).default?t.useLayoutEffect:t.useEffect},193,[19,142]); -__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return f}});var t=e(r(d[0])),o=e(r(d[1])),s=e=>{var t=e.offsetHeight,o=e.offsetWidth,s=e.offsetLeft,n=e.offsetTop;for(e=e.offsetParent;e&&1===e.nodeType;)s+=e.offsetLeft+e.clientLeft-e.scrollLeft,n+=e.offsetTop+e.clientTop-e.scrollTop,e=e.offsetParent;return{width:o,height:t,top:n-=window.scrollY,left:s-=window.scrollX}},n=(e,t,o)=>{var n=t||e&&e.parentNode;e&&n&&setTimeout(()=>{if(e.isConnected&&n.isConnected){var t=s(n),l=s(e),f=l.height,u=l.left,c=l.top,b=l.width,p=u-t.left,h=c-t.top;o(p,h,b,f,u,c)}},0)},l={A:!0,BODY:!0,INPUT:!0,SELECT:!0,TEXTAREA:!0},f={blur(e){try{e.blur()}catch(e){}},focus(e){try{var t=e.nodeName;null==e.getAttribute('tabIndex')&&!0!==e.isContentEditable&&null==l[t]&&e.setAttribute('tabIndex','-1'),e.focus()}catch(e){}},measure(e,t){n(e,null,t)},measureInWindow(e,o){e&&setTimeout(()=>{var s=(0,t.default)(e),n=s.height,l=s.left,f=s.top,u=s.width;o(l,f,u,n)},0)},measureLayout(e,t,o,s){n(e,t,s)},updateView(e,t){for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s)){var n=t[s];switch(s){case'style':(0,o.default)(e,n);break;case'class':case'className':e.setAttribute('class',n);break;case'text':case'value':e.value=n;break;default:e.setAttribute(s,n)}}},configureNextLayoutAnimation(e,t){t()},setLayoutAnimationEnabledExperimental(){}}},194,[195,196]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t}});var t=t=>{if(null!=t&&(1===t.nodeType&&'function'==typeof t.getBoundingClientRect))return t.getBoundingClientRect()}},195,[]); -__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return f}});var e,t=r(d[0]),n=(e=t)&&e.__esModule?e:{default:e};var f=function(e,t){var f=e.style;for(var o in t)if(t.hasOwnProperty(o)){var u=0===o.indexOf('--'),l=(0,n.default)(o,t[o],u);'float'===o&&(o='cssFloat'),u?f.setProperty(o,l):f[o]=l}}},196,[197]); -__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var e,t=r(d[0]),u=(e=t)&&e.__esModule?e:{default:e};var n=function(e,t,n){return null==t||'boolean'==typeof t||''===t?'':n||'number'!=typeof t||0===t||u.default.hasOwnProperty(e)&&u.default[e]?(''+t).trim():t+'px'}},197,[198]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return n}});var t={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexOrder:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,gridRow:!0,gridRowEnd:!0,gridRowGap:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnGap:!0,gridColumnStart:!0,lineClamp:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0,scale:!0,scaleX:!0,scaleY:!0,scaleZ:!0,shadowOpacity:!0},o=['ms','Moz','O','Webkit'],l=(t,o)=>t+o.charAt(0).toUpperCase()+o.substring(1);Object.keys(t).forEach(n=>{o.forEach(o=>{t[l(o,n)]=t[n]})});var n=t},198,[]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return o}});var e,t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),n=r(_d[1]),u=(e=n)&&e.__esModule?e:{default:e};function o(){for(var e=arguments.length,n=new Array(e),o=0;o(0,u.default)(...n),[...n])}},199,[19,200]); -__d(function(g,r,i,a,m,e,d){"use strict";function n(){for(var n=arguments.length,t=new Array(n),o=0;o{null!=t&&('function'!=typeof t?'object'!=typeof t?console.error("mergeRefs cannot handle Refs of type boolean, number or string, received ref "+String(t)):t.current=n:t(n))})}}Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return n}}),r(d[0])},200,[19]); -__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var u=e(r(d[0])),t=e(r(d[1]));function n(e){e.pointerEvents,e.style;return(0,t.default)(()=>e=>{null!=e&&(e.measure=t=>u.default.measure(e,t),e.measureLayout=(t,n,l)=>u.default.measureLayout(e,t,l,n),e.measureInWindow=t=>u.default.measureInWindow(e,t))})}},201,[194,202]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t='function'==typeof Symbol&&'symbol'==typeof Symbol()?Symbol():Object.freeze({});function n(n){var u=e.useRef(t);return u.current===t&&(u.current=n()),u.current}},202,[19]); -__d(function(g,r,i,a,m,_e,_d){"use strict";function e(e){if(e&&e.__esModule)return e;var n={};return e&&Object.keys(e).forEach(function(t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}),n.default=e,n}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return l}});var n=e(r(_d[0])),t=e(r(_d[1])),u={},o=0;function l(e,l){void 0===l&&(l=u);var d,c,s=(d=()=>o++,null==(c=n.useRef(null)).current&&(c.current=d()),c.current),S=n.useRef(!1);n.useEffect(()=>(t.attachListeners(),()=>{t.removeNode(s)}),[s]),n.useEffect(()=>{var n=l,u=n.onMoveShouldSetResponder,o=n.onMoveShouldSetResponderCapture,d=n.onScrollShouldSetResponder,c=n.onScrollShouldSetResponderCapture,f=n.onSelectionChangeShouldSetResponder,p=n.onSelectionChangeShouldSetResponderCapture,h=n.onStartShouldSetResponder,R=n.onStartShouldSetResponderCapture,v=null!=u||null!=o||null!=d||null!=c||null!=f||null!=p||null!=h||null!=R,b=e.current;v?(t.addNode(s,b,l),S.current=!0):S.current&&(t.removeNode(s),S.current=!1)},[l,e,s]),n.useDebugValue({isResponder:e.current===t.getResponderNode()}),n.useDebugValue(l)}},203,[19,204]); -__d(function(g,r,_i2,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.attachListeners=function(){s.default&&null==window.__reactResponderSystemActive&&(window.addEventListener('blur',P),E.forEach(e=>{document.addEventListener(e,P)}),_.forEach(e=>{document.addEventListener(e,P,!0)}),window.__reactResponderSystemActive=!0)},_e.addNode=function(e,n,t){(0,o.setResponderId)(n,e),f.set(e,t)},_e.removeNode=function(e){S.id===e&&M();f.has(e)&&f.delete(e)},_e.terminateResponder=M,_e.getResponderNode=function(){return S.node};var n=e(r(d[0])),t=r(d[1]),o=r(d[2]),i=r(d[3]),s=e(r(d[4])),l={},u=['onStartShouldSetResponderCapture','onStartShouldSetResponder',{bubbles:!0}],c=['onMoveShouldSetResponderCapture','onMoveShouldSetResponder',{bubbles:!0}],p={touchstart:u,mousedown:u,touchmove:c,mousemove:c,scroll:['onScrollShouldSetResponderCapture','onScrollShouldSetResponder',{bubbles:!1}]},h={id:null,idPath:null,node:null},f=new Map,v=!1,R=0,S={id:null,node:null,idPath:null},b=new i.ResponderTouchHistoryStore;function T(e){S=e}function C(e){var n=f.get(e);return null!=n?n:l}function P(e){var i=e.type,s=e.target;if('touchstart'===i&&(v=!0),('touchmove'===i||R>1)&&(v=!1),!('mousedown'===i&&v||'mousemove'===i&&v||'mousemove'===i&&R<1))if(v&&'mouseup'===i)0===R&&(v=!1);else{var l=(0,t.isStartish)(i)&&(0,o.isPrimaryPointerDown)(e),u=(0,t.isMoveish)(i),c=(0,t.isEndish)(i),p=(0,t.isScroll)(i),f=(0,t.isSelectionChange)(i),P=(0,n.default)(e,b);(l||u||c)&&(e.touches?R=e.touches.length:l?R=1:c&&(R=0),b.recordTouchTrack(i,P.nativeEvent));var _,E=(0,o.getResponderPaths)(e),M=!1;if(l||u||p&&R>0){var y=S.idPath,x=E.idPath;if(null!=y&&null!=x){var L=(0,o.getLowestCommonAncestor)(y,x);if(null!=L){var q=x.indexOf(L)+(L===S.id?1:0);E={idPath:x.slice(q),nodePath:E.nodePath.slice(q)}}else E=null}null!=E&&null!=(_=w(E,e,P))&&(N(P,_),M=!0)}if(null!=S.id&&null!=S.node){var j=S,A=j.id,G=j.node,O=C(A),k=O.onResponderStart,D=O.onResponderMove,H=O.onResponderEnd,I=O.onResponderRelease,V=O.onResponderTerminate,z=O.onResponderTerminationRequest;if(P.bubbles=!1,P.cancelable=!1,P.currentTarget=G,l)null!=k&&(P.dispatchConfig.registrationName='onResponderStart',k(P));else if(u)null!=D&&(P.dispatchConfig.registrationName='onResponderMove',D(P));else{var B=(0,t.isCancelish)(i)||'contextmenu'===i||'blur'===i&&s===window||'blur'===i&&s.contains(G)&&e.relatedTarget!==G||p&&0===R||p&&s.contains(G)&&s!==G||f&&(0,o.hasValidSelection)(e),F=c&&!B&&!(0,o.hasTargetTouches)(G,e.touches);if(c&&null!=H&&(P.dispatchConfig.registrationName='onResponderEnd',H(P)),F&&(null!=I&&(P.dispatchConfig.registrationName='onResponderRelease',I(P)),T(h)),B){var J=!0;'contextmenu'!==i&&'scroll'!==i&&'selectionchange'!==i||(M?J=!1:null!=z&&(P.dispatchConfig.registrationName='onResponderTerminationRequest',!1===z(P)&&(J=!1))),J&&(null!=V&&(P.dispatchConfig.registrationName='onResponderTerminate',V(P)),T(h),v=!1,R=0)}}}}}function w(e,n,t){var o=p[n.type];if(null!=o){for(var i=e.idPath,s=e.nodePath,l=o[0],u=o[1],c=o[2].bubbles,h=function(e,n,o){var s=C(e)[o];if(null!=s&&(t.currentTarget=n,!0===s(t)))return{id:e,node:n,idPath:i.slice(i.indexOf(e))}},f=i.length-1;f>=0;f--){var v=h(i[f],s[f],l);if(null!=v)return v;if(!0===t.isPropagationStopped())return}if(c)for(var R=0;R{},o={},c=[];function l(e){return e>20?e%20:e}function f(e,t){var f,p,s,v=!1,y=e.changedTouches,h=e.type,X=!0===e.metaKey,Y=!0===e.shiftKey,P=y&&y[0].force||0,b=l(y&&y[0].identifier||0),T=y&&y[0].clientX||e.clientX,K=y&&y[0].clientY||e.clientY,_=y&&y[0].pageX||e.pageX,D=y&&y[0].pageY||e.pageY,S='function'==typeof e.preventDefault?e.preventDefault.bind(e):u,j=e.timeStamp;function H(e){return Array.prototype.slice.call(e).map(e=>({force:e.force,identifier:l(e.identifier),get locationX(){return A(e.clientX)},get locationY(){return C(e.clientY)},pageX:e.pageX,pageY:e.pageY,target:e.target,timestamp:j}))}if(null!=y)p=H(y),s=H(e.touches);else{var M=[{force:P,identifier:b,get locationX(){return A(T)},get locationY(){return C(K)},pageX:_,pageY:D,target:e.target,timestamp:j}];p=M,s='mouseup'===h||'dragstart'===h?c:M}var O={bubbles:!0,cancelable:!0,currentTarget:null,defaultPrevented:e.defaultPrevented,dispatchConfig:o,eventPhase:e.eventPhase,isDefaultPrevented:()=>e.defaultPrevented,isPropagationStopped:()=>v,isTrusted:e.isTrusted,nativeEvent:{altKey:!1,ctrlKey:!1,metaKey:X,shiftKey:Y,changedTouches:p,force:P,identifier:b,get locationX(){return A(T)},get locationY(){return C(K)},pageX:_,pageY:D,target:e.target,timestamp:j,touches:s,type:h},persist:u,preventDefault:S,stopPropagation(){v=!0},target:e.target,timeStamp:j,touchHistory:t.touchHistory};function A(e){if(f=f||(0,n.default)(O.currentTarget))return e-f.left}function C(e){if(f=f||(0,n.default)(O.currentTarget))return e-f.top}return O}},205,[195]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"BLUR",{enumerable:!0,get:function(){return t}}),Object.defineProperty(e,"CONTEXT_MENU",{enumerable:!0,get:function(){return n}}),Object.defineProperty(e,"FOCUS_OUT",{enumerable:!0,get:function(){return u}}),Object.defineProperty(e,"MOUSE_DOWN",{enumerable:!0,get:function(){return o}}),Object.defineProperty(e,"MOUSE_MOVE",{enumerable:!0,get:function(){return c}}),Object.defineProperty(e,"MOUSE_UP",{enumerable:!0,get:function(){return f}}),Object.defineProperty(e,"MOUSE_CANCEL",{enumerable:!0,get:function(){return O}}),Object.defineProperty(e,"TOUCH_START",{enumerable:!0,get:function(){return b}}),Object.defineProperty(e,"TOUCH_MOVE",{enumerable:!0,get:function(){return l}}),Object.defineProperty(e,"TOUCH_END",{enumerable:!0,get:function(){return s}}),Object.defineProperty(e,"TOUCH_CANCEL",{enumerable:!0,get:function(){return E}}),Object.defineProperty(e,"SCROLL",{enumerable:!0,get:function(){return p}}),Object.defineProperty(e,"SELECT",{enumerable:!0,get:function(){return C}}),Object.defineProperty(e,"SELECTION_CHANGE",{enumerable:!0,get:function(){return P}}),e.isStartish=function(t){return t===b||t===o},e.isMoveish=function(t){return t===l||t===c},e.isEndish=function(t){return t===s||t===f||j(t)},e.isCancelish=j,e.isScroll=function(t){return t===p},e.isSelectionChange=function(t){return t===C||t===P};var t='blur',n='contextmenu',u='focusout',o='mousedown',c='mousemove',f='mouseup',O='dragstart',b='touchstart',l='touchmove',s='touchend',E='touchcancel',p='scroll',C='select',P='selectionchange';function j(t){return t===E||t===O}},206,[]); -__d(function(g,r,_i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.setResponderId=function(e,t){null!=e&&(e[o]=t)},_e.getResponderPaths=function(e){for(var t=[],n=[],o=u(e),l=0;l0&&(u=e[l=n-o],n=o);o-n>0&&(c=t[i=o-n],o=n);var s=n;for(;s--;){if(u===c)return u;u=e[l++],c=t[i++]}return null},_e.hasTargetTouches=function(e,t){if(!t||0===t.length)return!1;for(var n=0;n=1&&'\n'!==o&&c}Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return n}})},208,[]); -__d(function(g,r,_i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"ResponderTouchHistoryStore",{enumerable:!0,get:function(){return T}});var t=r(d[0]);function n(t){return t.timeStamp||t.timestamp}function i(t){return{touchActive:!0,startPageX:t.pageX,startPageY:t.pageY,startTimeStamp:n(t),currentPageX:t.pageX,currentPageY:t.pageY,currentTimeStamp:n(t),previousPageX:t.pageX,previousPageY:t.pageY,previousTimeStamp:n(t)}}function c(t,i){t.touchActive=!0,t.startPageX=i.pageX,t.startPageY=i.pageY,t.startTimeStamp=n(i),t.currentPageX=i.pageX,t.currentPageY=i.pageY,t.currentTimeStamp=n(i),t.previousPageX=i.pageX,t.previousPageY=i.pageY,t.previousTimeStamp=n(i)}function o(t){var n=t.identifier;return null==n&&console.error('Touch object is missing identifier.'),n}function u(t,u){var s=o(t),h=u.touchBank[s];h?c(h,t):u.touchBank[s]=i(t),u.mostRecentTimeStamp=n(t)}function s(t,i){var c=i.touchBank[o(t)];c?(c.touchActive=!0,c.previousPageX=c.currentPageX,c.previousPageY=c.currentPageY,c.previousTimeStamp=c.currentTimeStamp,c.currentPageX=t.pageX,c.currentPageY=t.pageY,c.currentTimeStamp=n(t),i.mostRecentTimeStamp=n(t)):console.warn('Cannot record touch move without a touch start.\n',"Touch Move: "+p(t)+"\n","Touch Bank: "+v(i))}function h(t,i){var c=i.touchBank[o(t)];c?(c.touchActive=!1,c.previousPageX=c.currentPageX,c.previousPageY=c.currentPageY,c.previousTimeStamp=c.currentTimeStamp,c.currentPageX=t.pageX,c.currentPageY=t.pageY,c.currentTimeStamp=n(t),i.mostRecentTimeStamp=n(t)):console.warn('Cannot record touch end without a touch start.\n',"Touch End: "+p(t)+"\n","Touch Bank: "+v(i))}function p(t){return JSON.stringify({identifier:t.identifier,pageX:t.pageX,pageY:t.pageY,timestamp:n(t)})}function v(t){var n=t.touchBank,i=JSON.stringify(n.slice(0,20));return n.length>20&&(i+=' (original size: '+n.length+')'),i}class T{constructor(){this._touchHistory={touchBank:[],numberActiveTouches:0,indexOfSingleActiveTouch:-1,mostRecentTimeStamp:0}}recordTouchTrack(n,i){var c=this._touchHistory;if((0,t.isMoveish)(n))i.changedTouches.forEach(t=>s(t,c));else if((0,t.isStartish)(n))i.changedTouches.forEach(t=>u(t,c)),c.numberActiveTouches=i.touches.length,1===c.numberActiveTouches&&(c.indexOfSingleActiveTouch=i.touches[0].identifier);else if((0,t.isEndish)(n)&&(i.changedTouches.forEach(t=>h(t,c)),c.numberActiveTouches=i.touches.length,1===c.numberActiveTouches))for(var o=c.touchBank,p=0;p{let t=!1;if(e){const n='metaKey'in e&&e.metaKey||'altKey'in e&&e.altKey||'ctrlKey'in e&&e.ctrlKey||'shiftKey'in e&&e.shiftKey,o=!('button'in e)||null==e.button||0===e.button,s=!e.currentTarget||!('target'in e.currentTarget)||[void 0,null,'','self'].includes(e.currentTarget.target);!n&&o&&s&&(e.preventDefault?.(),t=!0)}else e?.preventDefault?.(),t=!0;if(t)if(l)if(p)p.dispatch(l);else{if(!f)throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");f.dispatch(l)}else p?.navigate(s,u)}}};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1]));r(_d[2]);var n=r(_d[3]);const o=e=>e?.state?e.state:e?.screen?{routes:[{name:e.screen,params:e.params,state:e.screen?o(e.params):void 0}]}:void 0},211,[9,19,111,107]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"ServerContainer",{enumerable:!0,get:function(){return c}});var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),n=r(_d[2]),o=r(_d[3]);const c=t.forwardRef(function({children:c,location:u},f){t.useEffect(()=>{console.error("'ServerContainer' should only be used on the server with 'react-dom/server' for SSR.")},[]);const s={};if(f){const e={getCurrentOptions:()=>s.options};'function'==typeof f?f(e):f.current=e}return(0,o.jsx)(n.ServerContext.Provider,{value:{location:u},children:(0,o.jsx)(e.CurrentRenderContext.Provider,{value:s,children:c})})})},212,[9,19,117,2]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"DarkTheme",{enumerable:!0,get:function(){return t}});const t={dark:!0,colors:{primary:'rgb(10, 132, 255)',background:'rgb(1, 1, 1)',card:'rgb(18, 18, 18)',text:'rgb(229, 229, 231)',border:'rgb(39, 39, 41)',notification:'rgb(255, 69, 58)'},fonts:r(d[0]).fonts}},213,[110]); -__d(function(g,r,i,a,m,e,d){},214,[]); -__d(function(g,_r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useLinkBuilder=function(){const o=e.useContext(t.NavigationHelpersContext),n=e.useContext(t.NavigationRouteContext),{options:u}=e.useContext(r.LinkingContext),s=(0,t.useStateForPath)(),c=u?.getPathFromState??t.getPathFromState,f=u?.getStateFromPath??t.getStateFromPath,l=u?.getActionFromState??t.getActionFromState,d=e.useCallback((e,r)=>{if(!1===u?.enabled)return;const f=!!(o&&n?.key&&s)&&(n.key===(0,t.findFocusedRoute)(s)?.key&&o.getState().routes.some(t=>t.key===n.key)),l={routes:[{name:e,params:r}]},d=t=>{if(t){const e=t.routes[0];return f&&!e.state?l:{routes:[{...e,state:d(e.state)}]}}return l},h=d(s);return c(h,u?.config)},[u?.enabled,u?.config,n?.key,o,s,c]),h=e.useCallback(e=>{if(!e.startsWith('/'))throw new Error(`The href must start with '/' (${e}).`);const r=f(e,u?.config);if(r){return l(r,u?.config)??t.CommonActions.reset(r)}throw new Error('Failed to parse the href to a navigation state.')},[u?.config,f,l]);return{buildHref:d,buildAction:h}};var t=_r(_d[0]),e=(function(t){if(t&&t.__esModule)return t;var e={};return t&&Object.keys(t).forEach(function(r){var o=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,o.get?o:{enumerable:!0,get:function(){return t[r]}})}),e.default=t,e})(_r(_d[1])),r=_r(_d[2])},215,[9,19,107]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useLinkTo=function(){const o=t.useContext(e.NavigationContainerRefContext),{buildAction:u}=(0,n.useLinkBuilder)();return t.useCallback(e=>{if(void 0===o)throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");const t=u(e);o.dispatch(t)},[u,o])};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),n=r(_d[2])},216,[9,19,215]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useLocale=function(){const n=e.useContext(t.LocaleDirContext);if(void 0===n)throw new Error("Couldn't determine the text direction. Is your component inside NavigationContainer?");return{direction:n}};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},217,[19,108]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useRoutePath=function(){const{options:o}=t.useContext(n.LinkingContext),u=(0,e.useStateForPath)();if(void 0===u)throw new Error("Couldn't find a state for the route object. Is your component inside a screen in a navigator?");const c=o?.getPathFromState??e.getPathFromState;return t.useMemo(()=>{if(!1===o?.enabled)return;return c(u,o?.config)},[o?.enabled,o?.config,u,c])};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),n=r(_d[2])},218,[9,19,107]); -__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useScrollToTop=function(n){const c=t.useContext(e.NavigationContext),l=(0,e.useRoute)();if(void 0===c)throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");t.useEffect(()=>{const e=[];let t=c;for(;t;)'tab'===t.getState().type&&e.push(t),t=t.getParent();if(0===e.length)return;const s=e.map(t=>t.addListener('tabPress',t=>{const s=c.isFocused(),u=e.includes(c)||c.getState().routes[0].key===l.key;requestAnimationFrame(()=>{const e=o(n);s&&u&&e&&!t.defaultPrevented&&('scrollToTop'in e?e.scrollToTop():'scrollTo'in e?e.scrollTo({y:0,animated:!0}):'scrollToOffset'in e?e.scrollToOffset({offset:0,animated:!0}):'scrollResponderScrollTo'in e&&e.scrollResponderScrollTo({y:0,animated:!0}))})}));return()=>{s.forEach(e=>e())}},[c,n,l.key])};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(o){var n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:function(){return e[o]}})}),t.default=e,t})(r(_d[1]));function o(e){return null==e.current?null:'scrollToTop'in e.current||'scrollTo'in e.current||'scrollToOffset'in e.current||'scrollResponderScrollTo'in e.current?e.current:'getScrollResponder'in e.current?e.current.getScrollResponder():'getNode'in e.current?e.current.getNode():e.current}},219,[9,19]); -__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"EventEmitter",{enumerable:!0,get:function(){return t.EventEmitter}}),Object.defineProperty(_e,"NativeModule",{enumerable:!0,get:function(){return n.NativeModule}}),Object.defineProperty(_e,"SharedObject",{enumerable:!0,get:function(){return o.SharedObject}}),Object.defineProperty(_e,"SharedRef",{enumerable:!0,get:function(){return u.SharedRef}}),Object.defineProperty(_e,"Platform",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(_e,"uuid",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(_e,"requireNativeViewManager",{enumerable:!0,get:function(){return b.requireNativeViewManager}}),Object.defineProperty(_e,"CodedError",{enumerable:!0,get:function(){return h.CodedError}}),Object.defineProperty(_e,"UnavailabilityError",{enumerable:!0,get:function(){return E.UnavailabilityError}}),Object.defineProperty(_e,"LegacyEventEmitter",{enumerable:!0,get:function(){return w.LegacyEventEmitter}}),Object.defineProperty(_e,"NativeModulesProxy",{enumerable:!0,get:function(){return k.default}}),r(d[0]),r(d[1]);var t=r(d[2]),n=r(d[3]),o=r(d[4]),u=r(d[5]),c=e(r(d[6])),f=e(r(d[7])),b=r(d[8]),l=r(d[9]);Object.keys(l).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return l[e]}})});var y=r(d[10]);Object.keys(y).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return y[e]}})});var O=r(d[11]);Object.keys(O).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return O[e]}})});var p=r(d[12]);Object.keys(p).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return p[e]}})});var j=r(d[13]);Object.keys(j).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return j[e]}})});var P=r(d[14]);Object.keys(P).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return P[e]}})});var s=r(d[15]);Object.keys(s).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return s[e]}})});var v=r(d[16]);Object.keys(v).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return v[e]}})});var h=r(d[17]),E=r(d[18]),w=r(d[19]),k=e(r(d[20]))},221,[222,223,236,238,239,240,241,226,243,246,247,248,249,250,251,252,253,245,244,254,261]); -__d(function(g,r,i,a,m,e,d){},222,[]); -__d(function(g,r,i,a,m,e,d){"use strict";(0,r(d[0]).installExpoGlobalPolyfill)()},223,[224]); -__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.installExpoGlobalPolyfill=function(){if(globalThis.expo)return;globalThis.expo={EventEmitter:o.EventEmitter,NativeModule:o.NativeModule,SharedObject:o.SharedObject,SharedRef:o.SharedRef,modules:globalThis.ExpoDomWebView?.expoModulesProxy??{},uuidv4:l.default.v4,uuidv5:l.default.v5,getViewConfig:()=>{throw new Error('Method not implemented.')},reloadAppAsync:async()=>{window.location.reload()},expoModulesCoreVersion:void 0,cacheDir:void 0,documentsDir:void 0}};var e,o=r(d[0]),t=r(d[1]),l=(e=t)&&e.__esModule?e:{default:e},n=r(d[2]);Object.keys(n).forEach(function(e){'default'===e||Object.prototype.hasOwnProperty.call(_e,e)||Object.defineProperty(_e,e,{enumerable:!0,get:function(){return n[e]}})})},224,[225,226,231]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"EventEmitter",{enumerable:!0,get:function(){return t}}),Object.defineProperty(e,"NativeModule",{enumerable:!0,get:function(){return s}}),Object.defineProperty(e,"SharedObject",{enumerable:!0,get:function(){return n}}),Object.defineProperty(e,"SharedRef",{enumerable:!0,get:function(){return o}});class t{addListener(t,s){this.listeners||(this.listeners=new Map),this.listeners?.has(t)||this.listeners?.set(t,new Set);const n=this.listenerCount(t);return this.listeners?.get(t)?.add(s),0===n&&1===this.listenerCount(t)&&this.startObserving(t),{remove:()=>{this.removeListener(t,s)}}}removeListener(t,s){const n=this.listeners?.get(t)?.delete(s);0===this.listenerCount(t)&&n&&this.stopObserving(t)}removeAllListeners(t){const s=this.listenerCount(t);this.listeners?.get(t)?.clear(),s>0&&this.stopObserving(t)}emit(t,...s){new Set(this.listeners?.get(t)).forEach(t=>{try{t(...s)}catch(t){console.error(t)}})}listenerCount(t){return this.listeners?.get(t)?.size??0}startObserving(t){}stopObserving(t){}}class s extends t{}class n extends t{release(){}}class o extends n{nativeRefType='unknown'}},225,[]); -__d(function(g,r,i,a,m,_e,d){"use strict";function _interopDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return _default}});var _libSha=r(d[0]),sha1=_interopDefault(_libSha),_libV=r(d[1]),v35=_interopDefault(_libV),_uuidTypes=r(d[2]);function uuidv4(){return'undefined'==typeof crypto&&'undefined'==typeof window?eval('require')('node:crypto').randomUUID():crypto.randomUUID()}const uuid={v4:uuidv4,v5:(0,v35.default)('v5',80,sha1.default),namespace:_uuidTypes.Uuidv5Namespace};var _default=uuid},226,[227,228,230]); -__d(function(g,r,_i,_a,m,_e,_d){'use strict';function e(e,t,n,o){switch(e){case 0:return t&n^~t&o;case 1:case 3:return t^n^o;case 2:return t&n^t&o^n&o;default:return 0}}function t(e,t){return e<>>32-t}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var n=function(n){const o=[1518500249,1859775393,2400959708,3395469782],c=[1732584193,4023233417,2562383102,271733878,3285377520];if('string'==typeof n){const e=unescape(encodeURIComponent(n));n=new Array(e.length);for(let t=0;t>>0;i=h,h=s,s=t(a,30)>>>0,a=f,f=u}c[0]=c[0]+f>>>0,c[1]=c[1]+a>>>0,c[2]=c[2]+s>>>0,c[3]=c[3]+h>>>0,c[4]=c[4]+i>>>0}return[c[0]>>24&255,c[0]>>16&255,c[0]>>8&255,255&c[0],c[1]>>24&255,c[1]>>16&255,c[1]>>8&255,255&c[1],c[2]>>24&255,c[2]>>16&255,c[2]>>8&255,255&c[2],c[3]>>24&255,c[3]>>16&255,c[3]>>8&255,255&c[3],c[4]>>24&255,c[4]>>16&255,c[4]>>8&255,255&c[4]]}},227,[]); -__d(function(g,r,_i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return u}});var e,t=r(d[0]),n=(e=t)&&e.__esModule?e:{default:e};function o(e){const t=[];return e.replace(/[a-fA-F0-9]{2}/g,e=>(t.push(parseInt(e,16)),'')),t}function c(e){e=unescape(encodeURIComponent(e));const t=new Array(e.length);for(let n=0;nu(t,n)};var t=r(d[0]);function u(u,n){const c=(0,t.useRef)(!0),[s,o]=(0,t.useState)(null),{get:l=!0,request:f=!1,...h}=n||{},M=(0,t.useCallback)(async()=>{let t;return t=Object.keys(h).length>0?await u.getMethod(h):await u.getMethod(),c.current&&o(t),t},[u.getMethod]),b=(0,t.useCallback)(async()=>{let t;return t=Object.keys(h).length>0?await u.requestMethod(h):await u.requestMethod(),c.current&&o(t),t},[u.requestMethod]);return(0,t.useEffect)(function(){f&&b(),!f&&l&&M()},[l,f,b,M]),(0,t.useEffect)(function(){return c.current=!0,()=>{c.current=!1}},[]),[s,b,M]}},250,[19]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.createSnapshotFriendlyRef=function(){return(0,t.createRef)()};var t=r(d[0])},251,[19]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.useReleasingSharedObject=function(u,n){const c=(0,t.useRef)(null),s=(0,t.useRef)(!1),l=(0,t.useRef)(n);null==c.current&&(c.current=u());const o=(0,t.useMemo)(()=>{let t=c.current;const s=l.current?.length===n.length&&n.every((t,u)=>t===l.current[u]);return t&&s||(c.current?.release(),t=u(),c.current=t,l.current=n),t},n);return(0,t.useMemo)(()=>{s.current=!0},[]),(0,t.useEffect)(()=>(s.current=!1,()=>{!s.current&&c.current&&c.current.release()}),[]),o};var t=r(d[0])},252,[19]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.reloadAppAsync=async function(o="Reloaded from JS call"){await(globalThis.expo?.reloadAppAsync(o))}},253,[]); -__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"LegacyEventEmitter",{enumerable:!0,get:function(){return o}});var t=e(r(d[0])),n=e(r(d[1]));r(d[2]);const s='@@nativeEmitterSubscription@@';class o{_listenerCount=0;constructor(e){if(e.__expo_module_name__)return e;this._nativeModule=e,this._eventEmitter=new n.default(e)}addListener(e,t){!this._listenerCount&&this._nativeModule.startObserving&&this._nativeModule.startObserving(),this._listenerCount++;const n=this._eventEmitter.addListener(e,t),o={[s]:n,remove:()=>{this.removeSubscription(o)}};return o}removeAllListeners(e){const n=this._eventEmitter.listenerCount?this._eventEmitter.listenerCount(e):this._eventEmitter.listeners(e).length;this._eventEmitter.removeAllListeners(e),this._listenerCount-=n,(0,t.default)(this._listenerCount>=0,"EventEmitter must have a non-negative number of listeners"),!this._listenerCount&&this._nativeModule.stopObserving&&this._nativeModule.stopObserving()}removeSubscription(e){const t=e,n=t[s];n&&('remove'in n&&n.remove?.(),this._listenerCount--,delete t[s],e.remove=()=>{},!this._listenerCount&&this._nativeModule.stopObserving&&this._nativeModule.stopObserving())}emit(e,...t){this._eventEmitter.emit(e,...t)}}},254,[887,256,111]); -__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return u}});var e,t=r(d[0]),u=((e=t)&&e.__esModule?e:{default:e}).default},256,[257]); -__d(function(g,r,i,a,m,_e,d){'use strict';function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return l}}),r(d[0]);var t=e(r(d[1])),n=e(r(d[2]));class l{constructor(e){}addListener(e,n,l){var u;null==(u=this._nativeModule)||u.addListener(e);var s=t.default.addListener(e,n,l);return{remove:()=>{var e;null!=s&&(null==(e=this._nativeModule)||e.removeListeners(1),s.remove(),s=null)}}}removeListener(e,n){var l;null==(l=this._nativeModule)||l.removeListeners(1),t.default.removeListener(e,n)}emit(e){for(var n=arguments.length,l=new Array(n>1?n-1:0),u=1;u1?s-1:0),u=1;u2?t-2:0),s=2;sw.fromModule(t).downloadAsync()))}static fromModule(t){if('string'==typeof t)return w.fromURI(t);if('object'==typeof t&&'uri'in t&&'string'==typeof t.uri){const e=h.getFileExtension(t.uri);return new w({name:'',type:e.startsWith('.')?e.substring(1):e,hash:null,uri:t.uri,width:t.width,height:t.height})}const s=(0,e.getAssetByID)(t);if(!s)throw new Error(`Module "${t}" is missing from the asset registry`);if(!d.IS_ENV_WITH_LOCAL_ASSETS){const{uri:e}=(0,f.default)(t),n=new w({name:s.name,type:s.type,hash:s.hash,uri:e,width:s.width,height:s.height});return w.byHash[s.hash]=n,n}return w.fromMetadata(s)}static fromMetadata(t){const e=t.hash,s=w.byHash[e];if(s)return s;const{uri:h,hash:o}=(0,n.selectAssetSource)(t),l=new w({name:t.name,type:t.type,hash:o,uri:h,width:t.width,height:t.height});return w.byHash[e]=l,l}static fromURI(t){if(w.byUri[t])return w.byUri[t];let e='';if(t.indexOf(';base64')>-1)e=t.split(';')[0].split('/')[1];else{const s=h.getFileExtension(t);e=s.startsWith('.')?s.substring(1):s}const s=new w({name:'',type:e,hash:null,uri:t});return w.byUri[t]=s,s}async downloadAsync(){if(this.downloaded)return this;if(this.downloading)return await new Promise((t,e)=>{this._downloadCallbacks.push({resolve:t,reject:e})}),this;this.downloading=!0;try{if(l.isImageType(this.type)){const{width:t,height:e,name:s}=await l.getImageInfoAsync(this.uri);this.width=t,this.height=e,this.name=s}else this.name=h.getFilename(this.uri);this.localUri=await(0,o.downloadAsync)(this.uri,this.hash,this.type),this.downloaded=!0,this._downloadCallbacks.forEach(({resolve:t})=>t())}catch(t){throw this._downloadCallbacks.forEach(({reject:e})=>e(t)),t}finally{this.downloading=!1,this._downloadCallbacks=[]}return this}}},268,[269,221,270,276,277,278,279,275,280]); -__d(function(g,r,i,a,m,e,d){const s=[];m.exports={registerAsset:t=>s.push(t),getAssetByID:t=>s[t-1]}},269,[]); -__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.selectAssetSource=function(e){const c=n.default.pickScale(e.scales,t.default.get()),u=e.scales.findIndex(e=>e===c),f=e.fileHashes?e.fileHashes[u]??e.fileHashes[0]:e.hash,l=e.fileUris?e.fileUris[u]??e.fileUris[0]:e.uri;if(l)return{uri:h(l),hash:f};const p=1===c?'':`@${c}x`,U=e.type?`.${encodeURIComponent(e.type)}`:'',v=`/${encodeURIComponent(e.name)}${p}${U}`,x=new URLSearchParams({platform:"web",hash:e.hash});if(/^https?:\/\//.test(e.httpServerLocation)){return{uri:e.httpServerLocation+v+'?'+x,hash:f}}const L=(0,o.getManifest2)(),R=L?.extra?.expoGo?.developer?'http://'+L.extra.expoGo.debuggerHost:null;if(R){const t=new URL(e.httpServerLocation+v,R);return t.searchParams.set('platform',"web"),t.searchParams.set('hash',e.hash),{uri:t.href,hash:f}}if(s.default.ExponentKernel)return{uri:`https://classic-assets.eascdn.net/~assets/${encodeURIComponent(f)}`,hash:f};return{uri:'',hash:f}},_e.resolveUri=h,r(d[0]);var t=e(r(d[1])),s=e(r(d[2])),n=e(r(d[3])),o=r(d[4]);function h(e){return o.manifestBaseUrl?new URL(e,o.manifestBaseUrl).href:e}},270,[221,271,273,274,275]); -__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var e,t=r(d[0]),u=(e=t)&&e.__esModule?e:{default:e};class n{static get(){return u.default.get('window').scale}static getFontScale(){return u.default.get('window').fontScale||n.get()}static getPixelSizeForLayoutSize(e){return Math.round(e*n.get())}static roundToNearestPixel(e){var t=n.get();return Math.round(e*t)/t}}},271,[272]); -__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return w}});var t=e(r(d[0])),n=e(r(d[1])),s={window:{fontScale:1,height:0,scale:1,width:0},screen:{fontScale:1,height:0,scale:1,width:0}},o={},c=n.default;function l(){if(n.default){var e,t,o=window;if(o.visualViewport){var c=o.visualViewport;e=Math.round(c.height*c.scale),t=Math.round(c.width*c.scale)}else{var l=o.document.documentElement;e=l.clientHeight,t=l.clientWidth}s.window={fontScale:1,height:e,scale:o.devicePixelRatio||1,width:t},s.screen={fontScale:1,height:o.screen.height,scale:o.devicePixelRatio||1,width:o.screen.width}}}function u(){l(),Array.isArray(o.change)&&o.change.forEach(e=>e(s))}class w{static get(e){return c&&(c=!1,l()),(0,t.default)(s[e],"No dimension set for key "+e),s[e]}static set(e){e&&(n.default?(0,t.default)(!1,'Dimensions cannot be set in the browser'):(null!=e.screen&&(s.screen=e.screen),null!=e.window&&(s.window=e.window)))}static addEventListener(e,t){return o[e]=o[e]||[],o[e].push(t),{remove:()=>{this.removeEventListener(e,t)}}}static removeEventListener(e,t){Array.isArray(o[e])&&(o[e]=o[e].filter(e=>e!==t))}}n.default&&(window.visualViewport?window.visualViewport.addEventListener('resize',u,!1):window.addEventListener('resize',u,!1))},272,[260,142]); -__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return u}});var e,t=r(d[0]),u={UIManager:((e=t)&&e.__esModule?e:{default:e}).default}},273,[194]); -__d(function(g,r,_i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}}),r(d[0]);var e,t=r(d[1]),s=(e=t)&&e.__esModule?e:{default:e};function i(e){const t=n.pickScale(e.scales,s.default.get()),i=1===t?'':'@'+t+'x',c=e.type?`.${e.type}`:'';return e.httpServerLocation.replace(/\.\.\//g,'_')+'/'+e.name+i+c}class n{constructor(e,t,s){this.serverUrl=e||'https://expo.dev',this.jsbundleUrl=null,this.asset=s}isLoadedFromServer(){return!0}isLoadedFromFileSystem(){return!1}defaultAsset(){return this.assetServerURL()}assetServerURL(){const e=new URL(i(this.asset),this.serverUrl);return e.searchParams.set('platform',"web"),e.searchParams.set('hash',this.asset.hash),this.fromSource(e.toString().replace(e.origin,''))}fromSource(e){return{__packager_asset:!0,width:this.asset.width??void 0,height:this.asset.height??void 0,uri:e,scale:n.pickScale(this.asset.scales,s.default.get())}}static pickScale(e,t){for(let s=0;s=t)return e[s];return e[e.length-1]||1}}},274,[221,271]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"IS_ENV_WITH_LOCAL_ASSETS",{enumerable:!0,get:function(){return t}}),e.getLocalAssets=function(){return{}},e.getManifest2=function(){return{}},Object.defineProperty(e,"manifestBaseUrl",{enumerable:!0,get:function(){return n}});const t=!1;const n=null},275,[]); -__d(function(g,r,i,a,m,e,d){"use strict";function t(t){const{pathname:s,searchParams:o}=new URL(t,'https://e');return n(s)}function n(t){return t.substring(t.lastIndexOf('/')+1)}Object.defineProperty(e,'__esModule',{value:!0}),e.getFilename=t,e.getFileExtension=function(n){const s=t(n),o=s.lastIndexOf('.');return o>0?s.substring(o):''},e.getManifestBaseUrl=function(t){const n=new URL(t);let s=n.protocol;'exp:'===s?s='http:':'exps:'===s&&(s='https:');n.protocol=s;const o=n.pathname.substring(0,n.pathname.lastIndexOf('/')+1);return n.pathname=o,n.search='',n.hash='',n.protocol!==s?n.href.replace(n.protocol,s):n.href}},276,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.downloadAsync=async function(n,t,c){return n}},277,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.isImageType=function(n){return/^(jpeg|jpg|gif|png|bmp|webp|heic)$/i.test(n)},e.getImageInfoAsync=function(t){if('undefined'==typeof window)return Promise.resolve({name:(0,n.getFilename)(t),width:0,height:0});return new Promise((o,u)=>{const s=new Image;s.onerror=u,s.onload=()=>{o({name:(0,n.getFilename)(t),width:s.naturalWidth,height:s.naturalHeight})},s.src=t})};var n=r(d[0])},278,[276]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.getLocalAssetUri=function(t,n){return null}},279,[]); -__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return s}}),_e.setCustomSourceTransformer=c,Object.defineProperty(_e,"pickScale",{enumerable:!0,get:function(){return l}});var e,t=r(d[0]),n=r(d[1]),u=(e=n)&&e.__esModule?e:{default:e};let o;function c(e){o=e}function f(e){if('object'==typeof e)return e;const n=(0,t.getAssetByID)(e);if(!n)return null;const c=new u.default('https://expo.dev',null,n);return o?o(c):c.defaultAsset()}Object.defineProperty(f,'setCustomSourceTransformer',{get:()=>c});var s=f;const{pickScale:l}=u.default},280,[269,274]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.useAssets=function(u){const[c,n]=(0,t.useState)(),[o,f]=(0,t.useState)();return(0,t.useEffect)(()=>{s.Asset.loadAsync(u).then(n).catch(f)},[]),[c,o]};var t=r(d[0]),s=r(d[1])},281,[19,268]); -__d(function(g,r,i,a,m,e,d){'use strict';!(function _(){if('undefined'!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&'function'==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(_)}catch(_){console.error(_)}})(),m.exports=r(d[0])},284,[285]); -__d(function(g,r,_i,_a,m,e,d){ +"use strict";var u=r(d[0]);var n="function"==typeof Object.is?Object.is:function(u,n){return u===n&&(0!==u||1/u==1/n)||u!=u&&n!=n},t=u.useSyncExternalStore,l=u.useRef,c=u.useEffect,f=u.useMemo,o=u.useDebugValue;e.useSyncExternalStoreWithSelector=function(u,v,s,S,h){var V=l(null);if(null===V.current){var b={hasValue:!1,value:null};V.current=b}else b=V.current;V=f(function(){function u(u){if(!c){if(c=!0,t=u,u=S(u),void 0!==h&&b.hasValue){var f=b.value;if(h(f,u))return l=f}return l=u}if(f=l,n(t,u))return f;var o=S(u);return void 0!==h&&h(f,o)?(t=u,f):(t=u,l=o)}var t,l,c=!1,f=void 0===s?null:s;return[function(){return u(v())},null===f?void 0:function(){return u(f())}]},[v,s,S,h]);var y=t(u,V[0],V[1]);return c(function(){b.hasValue=!0,b.value=y},[y]),o(y),y}},171,[39]); +__d(function(g,r,_i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useOnAction=function({router:i,getState:u,setState:s,key:c,actionListeners:f,beforeRemoveListeners:d,routerConfigOptions:l,emitter:v}){const{onAction:y,onRouteFocus:p,addListener:C,onDispatchAction:b}=e.useContext(n.NavigationBuilderContext),h=e.useContext(t.DeprecatedNavigationInChildContext),A=e.useRef(l);e.useEffect(()=>{A.current=l});const O=e.useCallback((e,t=new Set)=>{const n=u();if(t.has(n.key))return!1;if(t.add(n.key),'string'!=typeof e.target||e.target===n.key){let t=i.getStateForAction(n,e,A.current);if(t=null===t&&e.target===n.key?n:t,null!==t){if(b(e,n===t),n!==t){if((0,o.shouldPreventRemove)(v,d,n.routes,t.routes,e))return!0;s(t)}if(void 0!==p){i.shouldActionChangeFocus(e)&&void 0!==c&&p(c)}return!0}}if(void 0!==y&&y(e,t))return!0;if('string'==typeof e.target||'NAVIGATE_DEPRECATED'===e.type||h)for(let n=f.length-1;n>=0;n--){if((0,f[n])(e,t))return!0}return!1},[f,d,v,u,h,c,y,b,p,i,s]);return(0,o.useOnPreventRemove)({getState:u,emitter:v,beforeRemoveListeners:d}),e.useEffect(()=>C?.('action',O),[C,O]),O};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2]),o=r(_d[3])},172,[39,102,105,173]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"shouldPreventRemove",{enumerable:!0,get:function(){return u}}),_e.useOnPreventRemove=function({getState:o,emitter:f,beforeRemoveListeners:c}){const{addKeyedListener:s}=e.useContext(t.NavigationBuilderContext),d=e.useContext(n.NavigationRouteContext),v=d?.key;e.useEffect(()=>{if(v)return s?.('beforeRemove',v,e=>{const t=o();return u(f,c,t.routes,[],e)})},[s,c,f,o,v])};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2]);const o=Symbol('VISITED_ROUTE_KEYS'),u=(e,t,n,u,f)=>{const c=u.map(e=>e.key),s=n.filter(e=>!c.includes(e.key)).reverse(),d=f[o]??new Set,v={...f,[o]:d};for(const n of s){if(d.has(n.key))continue;const o=t[n.key]?.(v);if(o)return!0;d.add(n.key);if(e.emit({type:'beforeRemove',target:n.key,data:{action:v},canPreventDefault:!0}).defaultPrevented)return!0}return!1}},173,[39,105,142]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useOnGetState=function({getState:u,getStateListeners:s}){const{addKeyedListener:c}=e.useContext(n.NavigationBuilderContext),f=e.useContext(o.NavigationRouteContext),d=f?f.key:'root',l=e.useCallback(()=>{const e=u(),n=e.routes.map(e=>{const t=s[e.key]?.();return e.state===t?e:{...e,state:t}});return(0,t.isArrayEqual)(e.routes,n)?e:{...e,routes:n}},[u,s]);e.useEffect(()=>c?.('getState',d,l),[c,l,d])};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2]),o=r(_d[3])},174,[39,138,105,142]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useOnRouteFocus=function({router:o,getState:u,key:n,setState:c}){const{onRouteFocus:s}=e.useContext(t.NavigationBuilderContext);return e.useCallback(e=>{const t=u(),f=o.getStateForRouteFocus(t,e);f!==t&&c(f),void 0!==s&&void 0!==n&&s(n)},[u,s,o,c,n])};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(o){var u=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,u.get?u:{enumerable:!0,get:function(){return e[o]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},175,[39,105]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useRegisterNavigator=function(){const[o]=t.useState(()=>(0,e.nanoid)()),u=t.useContext(n.SingleNavigatorContext);if(void 0===u)throw new Error("Couldn't register the navigator. Have you wrapped your app with 'NavigationContainer'?\n\nThis can also happen if there are multiple copies of '@react-navigation' packages installed.");return t.useEffect(()=>{const{register:e,unregister:t}=u;return e(o),()=>t(o)},[u,o]),o};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),n=r(_d[2])},176,[897,39,103]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useScheduleUpdate=function(u){const{scheduleUpdate:o,flushUpdates:c}=e.useContext(t.NavigationBuilderContext);o(u),(0,n.useClientLayoutEffect)(c)};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1]),n=r(_d[2])},177,[39,105,157]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useNavigationContainerRef=function(){const n=e.useRef(null);null==n.current&&(n.current=(0,t.createNavigationContainerRef)());return n.current};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},178,[39,101]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.usePreventRemove=function(e,u){const[d]=n.useState(()=>(0,t.nanoid)()),v=(0,f.useNavigation)(),{key:l}=(0,c.useRoute)(),{setPreventRemove:_}=(0,s.usePreventRemoveContext)();n.useEffect(()=>(_(d,l,e),()=>{_(d,l,!1)}),[_,d,l,e]);const b=(0,o.default)(t=>{e&&(t.preventDefault(),u({data:t.data}))});n.useEffect(()=>v?.addListener('beforeRemove',b),[v,b])};var e,t=r(_d[0]),n=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),u=r(_d[2]),o=(e=u)&&e.__esModule?e:{default:e},f=r(_d[3]),s=r(_d[4]),c=r(_d[5])},179,[897,39,97,153,180,149]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.usePreventRemoveContext=function(){const n=e.useContext(t.PreventRemoveContext);if(null==n)throw new Error("Couldn't find the prevent remove context. Is your component inside NavigationContent?");return n};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},180,[39,144]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useStateForPath=function(){return e.useContext(t.NavigationFocusedRouteStateContext)};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},181,[39,162]); +__d(function(g,r,i,a,m,_e,_d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"NavigationContainer",{enumerable:!0,get:function(){return b}});var t=r(_d[0]),n=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),o=e(r(_d[2])),u=e(r(_d[3])),l=r(_d[4]),c=r(_d[5]),s=r(_d[6]),d=r(_d[7]),f=r(_d[8]),h=r(_d[9]),S=r(_d[10]),v=r(_d[11]),P=r(_d[12]);function C({direction:e=(o.default.getConstants().isRTL?'rtl':'ltr'),theme:C=s.DefaultTheme,linking:b,fallback:p=null,documentTitle:x,onReady:T,onStateChange:O,..._},j){const k=!!b&&!1!==b.enabled;b?.config&&(0,t.validatePathConfig)(b.config);const L=n.useRef(null);(0,f.useBackButton)(L),(0,h.useDocumentTitle)(L,x);const[A,F]=n.useState(),{getInitialState:R}=(0,S.useLinking)(L,{enabled:k,prefixes:[],...b},F),y=n.useMemo(()=>({options:b}),[b]),D=n.useMemo(()=>({lastUnhandledLink:A,setLastUnhandledLink:F}),[A,F]),E=(0,u.default)(()=>{const e=L.current?.getCurrentRoute()?.path;F(t=>{if(t!==e)return t}),T?.()}),I=(0,u.default)(e=>{const t=L.current?.getCurrentRoute()?.path;F(e=>{if(e!==t)return e}),O?.(e)});n.useEffect(()=>{L.current&&REACT_NAVIGATION_DEVTOOLS.set(L.current,{get linking(){return{...b,enabled:k,prefixes:b?.prefixes??[],getStateFromPath:b?.getStateFromPath??t.getStateFromPath,getPathFromState:b?.getPathFromState??t.getPathFromState,getActionFromState:b?.getActionFromState??t.getActionFromState}}})});const[M,N]=(0,v.useThenable)(R);n.useImperativeHandle(j,()=>L.current);return null!=_.initialState||!k||M?(0,P.jsx)(c.LocaleDirContext.Provider,{value:e,children:(0,P.jsx)(d.UnhandledLinkingContext.Provider,{value:D,children:(0,P.jsx)(l.LinkingContext.Provider,{value:y,children:(0,P.jsx)(t.BaseNavigationContainer,{..._,theme:C,onReady:E,onStateChange:I,initialState:null==_.initialState?N:_.initialState,ref:L})})})}):(0,P.jsx)(c.LocaleDirContext.Provider,{value:e,children:(0,P.jsx)(t.ThemeProvider,{value:C,children:p})})}globalThis.REACT_NAVIGATION_DEVTOOLS=new WeakMap;const b=n.forwardRef(C)},182,[85,39,183,97,184,185,186,188,189,190,191,194,2]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t}});var t={allowRTL(){},forceRTL(){},getConstants:()=>({isRTL:!1})}},183,[]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"LinkingContext",{enumerable:!0,get:function(){return t}});var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0]));const t=e.createContext({get options(){throw new Error("Couldn't find a LinkingContext context.")}});t.displayName='LinkingContext'},184,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"LocaleDirContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext('ltr');e.displayName='LocaleDirContext'},185,[39]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"DefaultTheme",{enumerable:!0,get:function(){return t}});const t={dark:!1,colors:{primary:'rgb(0, 122, 255)',background:'rgb(242, 242, 242)',card:'rgb(255, 255, 255)',text:'rgb(28, 28, 30)',border:'rgb(216, 216, 216)',notification:'rgb(255, 59, 48)'},fonts:r(d[0]).fonts}},186,[187]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"fonts",{enumerable:!0,get:function(){return t}}),r(d[0]);const o='system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',t={regular:{fontFamily:o,fontWeight:'400'},medium:{fontFamily:o,fontWeight:'500'},bold:{fontFamily:o,fontWeight:'600'},heavy:{fontFamily:o,fontWeight:'700'}}},187,[29]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"UnhandledLinkingContext",{enumerable:!0,get:function(){return t}});var e=(function(e){if(e&&e.__esModule)return e;var n={};return e&&Object.keys(e).forEach(function(t){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}),n.default=e,n})(r(_d[0]));const n="Couldn't find an UnhandledLinkingContext context.",t=e.createContext({get lastUnhandledLink(){throw new Error(n)},get setLastUnhandledLink(){throw new Error(n)}});t.displayName='UnhandledLinkingContext'},188,[39]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.useBackButton=function(t){}},189,[]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useDocumentTitle=function(t,{enabled:n=!0,formatter:u=(e,t)=>e?.title??t?.name}={}){e.useEffect(()=>{if(!n)return;const e=t.current;if(e){const t=u(e.getCurrentOptions(),e.getCurrentRoute());document.title=t}return e?.addListener('options',t=>{const n=u(t.data.options,e?.getCurrentRoute());document.title=n})})};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0]))},190,[39]); +__d(function(g,_r,i,_a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"series",{enumerable:!0,get:function(){return a}}),_e.useLinking=function(e,{enabled:r=!0,config:f,getStateFromPath:d=t.getStateFromPath,getPathFromState:l=t.getPathFromState,getActionFromState:h=t.getActionFromState},y){const p=(0,t.useNavigationIndependentTree)();o.useEffect(()=>{},[r,p]);const[v]=o.useState(s.createMemoryHistory),R=o.useRef(r),k=o.useRef(f),b=o.useRef(d),S=o.useRef(l),w=o.useRef(h);o.useEffect(()=>{R.current=r,k.current=f,b.current=d,S.current=l,w.current=h});const F=o.useCallback(t=>{const r=e.current,n=r?.getRootState();return t?.routes.some(e=>!n?.routeNames.includes(e.name))},[e]),P=o.useContext(c.ServerContext),x=o.useCallback(()=>{let e;if(R.current){const t=P?.location??('undefined'!=typeof window?window.location:void 0),r=t?t.pathname+t.search:void 0;r&&(e=b.current(r,k.current)),y(r)}const t={then:t=>Promise.resolve(t?t(e):e),catch:()=>t};return t},[]),_=o.useRef(void 0),j=o.useRef(void 0),O=o.useRef(void 0);return o.useEffect(()=>(_.current=v.index,v.listen(()=>{const t=e.current;if(!t||!r)return;const{location:n}=window,o=n.pathname+n.search,s=v.index,c=_.current??0;_.current=s,O.current=o;const u=v.get(s);if(u?.path===o&&u?.state)return void t.resetRoot(u.state);const a=b.current(o,k.current);if(a){if(y(o),F(a))return;if(s>c){const e=w.current(a,k.current);if(void 0!==e)try{t.dispatch(e)}catch(e){console.warn(`An error occurred when trying to handle the link '${o}': ${'object'==typeof e&&null!=e&&'message'in e?e.message:e}`)}else t.resetRoot(a)}else t.resetRoot(a)}else t.resetRoot(a)})),[r,v,y,e,F]),o.useEffect(()=>{if(!r)return;const o=(e,r)=>{let o;if(e?.path){const r=b.current(e.path,k.current);if(r){const s=(0,t.findFocusedRoute)(r);s&&s.name===e.name&&(0,n.default)(s.params,e.params)&&(o=e.path)}}null==o&&(o=S.current(r,k.current));const s=j.current?(0,t.findFocusedRoute)(j.current):void 0;return s&&e&&'key'in s&&'key'in e&&s.key===e.key&&(o+=location.hash),o};if(e.current){const r=e.current.getRootState();if(r){const e=(0,t.findFocusedRoute)(r),n=o(e,r);void 0===j.current&&(j.current=r),v.replace({path:n,state:r})}}return e.current?.addListener('state',a(async()=>{const n=e.current;if(!n||!r)return;const s=j.current,c=n.getRootState();if(!c)return;const a=O.current,f=(0,t.findFocusedRoute)(c),d=o(f,c);j.current=c,O.current=void 0;const[l,h]=u(s,c);if(l&&h&&d!==a){const e=(h.history?h.history.length:h.routes.length)-(l.history?l.history.length:l.routes.length);if(e>0)v.push({path:d,state:c});else if(e<0){const t=v.backIndex({path:d}),r=v.index;try{-1!==t&&t{if(void 0===e||void 0===t||e.key!==t.key)return[void 0,void 0];const r=e.history?e.history.length:e.routes.length,n=t.history?t.history.length:t.routes.length,o=e.routes[e.index],s=t.routes[t.index],c=o.state,a=s.state;return r!==n||o.key!==s.key||void 0===c||void 0===a||c.key!==a.key?[e,t]:u(c,a)},a=e=>{let t=Promise.resolve();return()=>{t=t.then(e)}}},191,[85,156,39,192,193]); +__d(function(g,r,_i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.createMemoryHistory=function(){let n=0,i=[];const o=[],s=()=>{o.forEach(t=>{const n=t.cb;t.cb=()=>n(!0)})};return{get index(){const t=window.history.state?.id;if(t){const n=i.findIndex(n=>n.id===t);return n>-1?n:0}return 0},get:t=>i[t],backIndex({path:t}){for(let o=n-1;o>=0;o--){if(i[o].path===t)return o}return-1},push({path:o,state:c}){s();const h=(0,t.nanoid)();i=i.slice(0,n+1),i.push({path:o,state:c,id:h}),n=i.length-1,window.history.pushState({id:h},'',o)},replace({path:o,state:c}){s();const h=window.history.state?.id??(0,t.nanoid)();let w=o;const p=w.includes('#')?'':location.hash;!i.length||i.findIndex(t=>t.id===h)<0?(w+=p,i=[{path:w,state:c,id:h}],n=0):(i[n].path===o&&(w+=p),i[n]={path:o,state:c,id:h}),window.history.replaceState({id:h},'',w)},go(t){s();const c=n+t,h=i.length-1;if(t<0&&!i[c]?(t=-n,n=0):t>0&&c>h?(t=h-n,n=h):n=c,0!==t)return new Promise((i,s)=>{const c=t=>{if(clearTimeout(h),t)return void s(new Error('History was changed during navigation.'));const{title:n}=window.document;window.document.title='',window.document.title=n,i()};o.push({ref:c,cb:c});const h=setTimeout(()=>{const t=o.findIndex(t=>t.ref===c);t>-1&&(o[t].cb(),o.splice(t,1)),n=this.index},100),w=()=>{n=this.index;const t=o.pop();window.removeEventListener('popstate',w),t?.cb()};window.addEventListener('popstate',w),window.history.go(t)})},listen(t){const i=()=>{n=this.index,o.length||t()};return window.addEventListener('popstate',i),()=>window.removeEventListener('popstate',i)}}};var t=r(d[0])},192,[897]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"ServerContext",{enumerable:!0,get:function(){return e}});const e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])).createContext(void 0)},193,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useThenable=function(t){const[n]=e.useState(t);let u=[!1,void 0];n.then(e=>{u=[!0,e]});const[c,o]=e.useState(u),[f]=c;return e.useEffect(()=>{let e=!1;return f||(async()=>{let t;try{t=await n}finally{e||o([!0,t])}})(),()=>{e=!0}},[n,f]),c};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0]))},194,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.Link=function({screen:n,params:o,action:c,href:f,style:l,...d}){const{colors:p,fonts:P}=(0,e.useTheme)(),_=(0,u.useLinkProps)({screen:n,params:o,action:c,href:f});return t.createElement(s.default,{..._,...d,onClick:e=>{'onPress'in d&&d.onPress?.(e),e.defaultPrevented||_.onPress(e)},style:[{color:p.primary},P.regular,l]})};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1]));r(_d[2]);var n,o=r(_d[3]),s=(n=o)&&n.__esModule?n:{default:n},u=r(_d[4])},195,[85,39,29,196,281]); +__d(function(g,r,i,a,m,_e,_d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var o={};return e&&Object.keys(e).forEach(function(n){var t=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(o,n,t.get?t:{enumerable:!0,get:function(){return e[n]}})}),o.default=e,o}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return k}});var n=e(r(_d[0])),t=e(r(_d[1])),l=o(r(_d[2])),d=e(r(_d[3])),s=o(r(_d[4])),u=e(r(_d[5])),p=e(r(_d[6])),S=e(r(_d[7])),c=e(r(_d[8])),R=e(r(_d[9])),h=e(r(_d[10])),f=e(r(_d[11])),b=r(_d[12]),v=["hrefAttrs","numberOfLines","onClick","onLayout","onPress","onMoveShouldSetResponder","onMoveShouldSetResponderCapture","onResponderEnd","onResponderGrant","onResponderMove","onResponderReject","onResponderRelease","onResponderStart","onResponderTerminate","onResponderTerminationRequest","onScrollShouldSetResponder","onScrollShouldSetResponderCapture","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onStartShouldSetResponder","onStartShouldSetResponderCapture","selectable"],C=Object.assign({},s.defaultProps,s.accessibilityProps,s.clickProps,s.focusProps,s.keyboardProps,s.mouseProps,s.touchProps,s.styleProps,{href:!0,lang:!0,pointerEvents:!0}),x=e=>(0,u.default)(e,C),w=l.forwardRef((e,o)=>{var n=e.hrefAttrs,s=e.numberOfLines,u=e.onClick,h=e.onLayout,C=e.onPress,w=e.onMoveShouldSetResponder,y=e.onMoveShouldSetResponderCapture,k=e.onResponderEnd,M=e.onResponderGrant,O=e.onResponderMove,L=e.onResponderReject,_=e.onResponderRelease,j=e.onResponderStart,A=e.onResponderTerminate,T=e.onResponderTerminationRequest,E=e.onScrollShouldSetResponder,W=e.onScrollShouldSetResponderCapture,D=e.onSelectionChangeShouldSetResponder,$=e.onSelectionChangeShouldSetResponderCapture,q=e.onStartShouldSetResponder,G=e.onStartShouldSetResponderCapture,H=e.selectable,z=(0,t.default)(e,v),B=l.useContext(f.default),N=l.useRef(null),F=(0,b.useLocaleContext)().direction;(0,p.default)(N,h),(0,R.default)(N,{onMoveShouldSetResponder:w,onMoveShouldSetResponderCapture:y,onResponderEnd:k,onResponderGrant:M,onResponderMove:O,onResponderReject:L,onResponderRelease:_,onResponderStart:j,onResponderTerminate:A,onResponderTerminationRequest:T,onScrollShouldSetResponder:E,onScrollShouldSetResponderCapture:W,onSelectionChangeShouldSetResponder:D,onSelectionChangeShouldSetResponderCapture:$,onStartShouldSetResponder:q,onStartShouldSetResponderCapture:G});var I=l.useCallback(e=>{null!=u?u(e):null!=C&&(e.stopPropagation(),C(e))},[u,C]),J=B?'span':'div',K=null!=e.lang?(0,b.getLocaleDirection)(e.lang):null,Q=e.dir||K,U=Q||F,V=x(z);if(V.dir=Q,B||(V.dir=null!=Q?Q:'auto'),(u||C)&&(V.onClick=I),V.style=[null!=s&&s>1&&{WebkitLineClamp:s},!0===B?P.textHasAncestor$raw:P.text$raw,1===s&&P.textOneLine,null!=s&&s>1&&P.textMultiLine,e.style,!0===H&&P.selectable,!1===H&&P.notSelectable,C&&P.pressable],null!=e.href&&(J='a',null!=n)){var X=n.download,Y=n.rel,Z=n.target;null!=X&&(V.download=X),null!=Y&&(V.rel=Y),'string'==typeof Z&&(V.target='_'!==Z.charAt(0)?'_'+Z:Z)}var ee=(0,c.default)(V),oe=(0,S.default)(N,ee,o);V.ref=oe;var ne=(0,d.default)(J,V,{writingDirection:U});return B?ne:l.createElement(f.default.Provider,{value:!0},ne)});w.displayName='Text';var y={backgroundColor:'transparent',border:'0 solid black',boxSizing:'border-box',color:'black',display:'inline',font:'14px System',listStyle:'none',margin:0,padding:0,position:'relative',textAlign:'start',textDecoration:'none',whiteSpace:'pre-wrap',wordWrap:'break-word'},P=h.default.create({text$raw:y,textHasAncestor$raw:(0,n.default)((0,n.default)({},y),{},{color:'inherit',font:'inherit',textAlign:'inherit',whiteSpace:'inherit'}),textOneLine:{maxWidth:'100%',overflow:'hidden',textOverflow:'ellipsis',whiteSpace:'nowrap',wordWrap:'normal'},textMultiLine:{display:'-webkit-box',maxWidth:'100%',overflow:'clip',textOverflow:'ellipsis',WebkitBoxOrient:'vertical'},notSelectable:{userSelect:'none'},selectable:{userSelect:'text'},pressable:{cursor:'pointer'}}),k=w},196,[898,903,39,203,265,266,267,269,271,273,209,280,263]); +__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return o}});var t=e(r(d[0])),n=e(r(d[1])),l=e(r(d[2])),u=r(d[3]),o=(e,o,c)=>{var f;e&&e.constructor===String&&(f=t.default.propsToAccessibilityComponent(o));var s=f||e,_=(0,n.default)(s,o,c),p=l.default.createElement(s,_);return _.dir?l.default.createElement(u.LocaleProvider,{children:p,direction:_.dir,locale:_.lang}):p}},203,[204,208,39,263]); +__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var t=e(r(d[0])),u=e(r(d[1])),o=e(r(d[2])),n={isDisabled:t.default,propsToAccessibilityComponent:u.default,propsToAriaRole:o.default}},204,[205,206,207]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t}});var t=t=>t.disabled||Array.isArray(t.accessibilityStates)&&t.accessibilityStates.indexOf('disabled')>-1},205,[]); +__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return u}});var e,t=r(d[0]),n=(e=t)&&e.__esModule?e:{default:e},o={article:'article',banner:'header',blockquote:'blockquote',button:'button',code:'code',complementary:'aside',contentinfo:'footer',deletion:'del',emphasis:'em',figure:'figure',insertion:'ins',form:'form',list:'ul',listitem:'li',main:'main',navigation:'nav',paragraph:'p',region:'section',strong:'strong'},l={},u=function(e){if(void 0===e&&(e=l),'label'===(e.role||e.accessibilityRole))return'label';var t=(0,n.default)(e);if(t){if('heading'===t){var u=e.accessibilityLevel||e['aria-level'];return null!=u?"h"+u:'h1'}return o[t]}}},206,[207]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t}});var n={adjustable:'slider',button:'button',header:'heading',image:'img',imagebutton:null,keyboardkey:null,label:null,link:'link',none:'presentation',search:'search',summary:'region',text:null},t=t=>{var l=t.accessibilityRole,u=t.role||l;if(u){var o=n[u];if(null!==o)return o||u}}},207,[]); +__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return h}});var l=e(r(d[0])),t=e(r(d[1])),s=e(r(d[2])),n=e(r(d[3])),c=r(d[4]),u=["aria-activedescendant","accessibilityActiveDescendant","aria-atomic","accessibilityAtomic","aria-autocomplete","accessibilityAutoComplete","aria-busy","accessibilityBusy","aria-checked","accessibilityChecked","aria-colcount","accessibilityColumnCount","aria-colindex","accessibilityColumnIndex","aria-colspan","accessibilityColumnSpan","aria-controls","accessibilityControls","aria-current","accessibilityCurrent","aria-describedby","accessibilityDescribedBy","aria-details","accessibilityDetails","aria-disabled","accessibilityDisabled","aria-errormessage","accessibilityErrorMessage","aria-expanded","accessibilityExpanded","aria-flowto","accessibilityFlowTo","aria-haspopup","accessibilityHasPopup","aria-hidden","accessibilityHidden","aria-invalid","accessibilityInvalid","aria-keyshortcuts","accessibilityKeyShortcuts","aria-label","accessibilityLabel","aria-labelledby","accessibilityLabelledBy","aria-level","accessibilityLevel","aria-live","accessibilityLiveRegion","aria-modal","accessibilityModal","aria-multiline","accessibilityMultiline","aria-multiselectable","accessibilityMultiSelectable","aria-orientation","accessibilityOrientation","aria-owns","accessibilityOwns","aria-placeholder","accessibilityPlaceholder","aria-posinset","accessibilityPosInSet","aria-pressed","accessibilityPressed","aria-readonly","accessibilityReadOnly","aria-required","accessibilityRequired","role","accessibilityRole","aria-roledescription","accessibilityRoleDescription","aria-rowcount","accessibilityRowCount","aria-rowindex","accessibilityRowIndex","aria-rowspan","accessibilityRowSpan","aria-selected","accessibilitySelected","aria-setsize","accessibilitySetSize","aria-sort","accessibilitySort","aria-valuemax","accessibilityValueMax","aria-valuemin","accessibilityValueMin","aria-valuenow","accessibilityValueNow","aria-valuetext","accessibilityValueText","dataSet","focusable","id","nativeID","pointerEvents","style","tabIndex","testID"],o={},b=Object.prototype.hasOwnProperty,y=Array.isArray,v=/[A-Z]/g;function p(e){return'-'+e.toLowerCase()}function x(e){return e.replace(v,p)}function w(e){return y(e)?e.join(' '):e}var f=n.default.create({auto:{pointerEvents:'auto'},'box-none':{pointerEvents:'box-none'},'box-only':{pointerEvents:'box-only'},none:{pointerEvents:'none'}}),h=(e,y,v)=>{y||(y=o);var p=y,h=p['aria-activedescendant'],S=p.accessibilityActiveDescendant,C=p['aria-atomic'],I=p.accessibilityAtomic,R=p['aria-autocomplete'],D=p.accessibilityAutoComplete,M=p['aria-busy'],E=p.accessibilityBusy,O=p['aria-checked'],P=p.accessibilityChecked,k=p['aria-colcount'],A=p.accessibilityColumnCount,L=p['aria-colindex'],V=p.accessibilityColumnIndex,q=p['aria-colspan'],B=p.accessibilityColumnSpan,_=p['aria-controls'],z=p.accessibilityControls,T=p['aria-current'],j=p.accessibilityCurrent,H=p['aria-describedby'],N=p.accessibilityDescribedBy,F=p['aria-details'],K=p.accessibilityDetails,U=p['aria-disabled'],Z=p.accessibilityDisabled,G=p['aria-errormessage'],J=p.accessibilityErrorMessage,Q=p['aria-expanded'],W=p.accessibilityExpanded,X=p['aria-flowto'],Y=p.accessibilityFlowTo,$=p['aria-haspopup'],aa=p.accessibilityHasPopup,ia=p['aria-hidden'],ea=p.accessibilityHidden,la=p['aria-invalid'],ra=p.accessibilityInvalid,ta=p['aria-keyshortcuts'],sa=p.accessibilityKeyShortcuts,na=p['aria-label'],ca=p.accessibilityLabel,ua=p['aria-labelledby'],oa=p.accessibilityLabelledBy,ba=p['aria-level'],da=p.accessibilityLevel,ya=p['aria-live'],va=p.accessibilityLiveRegion,pa=p['aria-modal'],xa=p.accessibilityModal,ma=p['aria-multiline'],wa=p.accessibilityMultiline,fa=p['aria-multiselectable'],ha=p.accessibilityMultiSelectable,Sa=p['aria-orientation'],Ca=p.accessibilityOrientation,Ia=p['aria-owns'],Ra=p.accessibilityOwns,Da=p['aria-placeholder'],Ma=p.accessibilityPlaceholder,Ea=p['aria-posinset'],Oa=p.accessibilityPosInSet,Pa=p['aria-pressed'],ga=p.accessibilityPressed,ka=p['aria-readonly'],Aa=p.accessibilityReadOnly,La=p['aria-required'],Va=p.accessibilityRequired,qa=(p.role,p.accessibilityRole,p['aria-roledescription']),Ba=p.accessibilityRoleDescription,_a=p['aria-rowcount'],za=p.accessibilityRowCount,Ta=p['aria-rowindex'],ja=p.accessibilityRowIndex,Ha=p['aria-rowspan'],Na=p.accessibilityRowSpan,Fa=p['aria-selected'],Ka=p.accessibilitySelected,Ua=p['aria-setsize'],Za=p.accessibilitySetSize,Ga=p['aria-sort'],Ja=p.accessibilitySort,Qa=p['aria-valuemax'],Wa=p.accessibilityValueMax,Xa=p['aria-valuemin'],Ya=p.accessibilityValueMin,$a=p['aria-valuenow'],ai=p.accessibilityValueNow,ii=p['aria-valuetext'],ei=p.accessibilityValueText,li=p.dataSet,ri=p.focusable,ti=p.id,si=p.nativeID,ni=p.pointerEvents,ci=p.style,ui=p.tabIndex,oi=p.testID,bi=(0,t.default)(p,u),di=U||Z,yi=s.default.propsToAriaRole(y),vi=null!=h?h:S;null!=vi&&(bi['aria-activedescendant']=vi);var pi=null!=C?h:I;null!=pi&&(bi['aria-atomic']=pi);var xi=null!=R?R:D;null!=xi&&(bi['aria-autocomplete']=xi);var mi=null!=M?M:E;null!=mi&&(bi['aria-busy']=mi);var wi=null!=O?O:P;null!=wi&&(bi['aria-checked']=wi);var fi=null!=k?k:A;null!=fi&&(bi['aria-colcount']=fi);var hi=null!=L?L:V;null!=hi&&(bi['aria-colindex']=hi);var Si=null!=q?q:B;null!=Si&&(bi['aria-colspan']=Si);var Ci=null!=_?_:z;null!=Ci&&(bi['aria-controls']=w(Ci));var Ii=null!=T?T:j;null!=Ii&&(bi['aria-current']=Ii);var Ri=null!=H?H:N;null!=Ri&&(bi['aria-describedby']=w(Ri));var Di=null!=F?F:K;null!=Di&&(bi['aria-details']=Di),!0===di&&(bi['aria-disabled']=!0,'button'!==e&&'form'!==e&&'input'!==e&&'select'!==e&&'textarea'!==e||(bi.disabled=!0));var Mi=null!=G?G:J;null!=Mi&&(bi['aria-errormessage']=Mi);var Ei=null!=Q?Q:W;null!=Ei&&(bi['aria-expanded']=Ei);var Oi=null!=X?X:Y;null!=Oi&&(bi['aria-flowto']=w(Oi));var Pi=null!=$?$:aa;null!=Pi&&(bi['aria-haspopup']=Pi);var gi=null!=ia?ia:ea;!0===gi&&(bi['aria-hidden']=gi);var ki=null!=la?la:ra;null!=ki&&(bi['aria-invalid']=ki);var Ai=null!=ta?ta:sa;null!=Ai&&(bi['aria-keyshortcuts']=w(Ai));var Li=null!=na?na:ca;null!=Li&&(bi['aria-label']=Li);var Vi=null!=ua?ua:oa;null!=Vi&&(bi['aria-labelledby']=w(Vi));var qi=null!=ba?ba:da;null!=qi&&(bi['aria-level']=qi);var Bi=null!=ya?ya:va;null!=Bi&&(bi['aria-live']='none'===Bi?'off':Bi);var _i=null!=pa?pa:xa;null!=_i&&(bi['aria-modal']=_i);var zi=null!=ma?ma:wa;null!=zi&&(bi['aria-multiline']=zi);var Ti=null!=fa?fa:ha;null!=Ti&&(bi['aria-multiselectable']=Ti);var ji=null!=Sa?Sa:Ca;null!=ji&&(bi['aria-orientation']=ji);var Hi=null!=Ia?Ia:Ra;null!=Hi&&(bi['aria-owns']=w(Hi));var Ni=null!=Da?Da:Ma;null!=Ni&&(bi['aria-placeholder']=Ni);var Fi=null!=Ea?Ea:Oa;null!=Fi&&(bi['aria-posinset']=Fi);var Ki=null!=Pa?Pa:ga;null!=Ki&&(bi['aria-pressed']=Ki);var Ui=null!=ka?ka:Aa;null!=Ui&&(bi['aria-readonly']=Ui,'input'!==e&&'select'!==e&&'textarea'!==e||(bi.readOnly=!0));var Zi=null!=La?La:Va;null!=Zi&&(bi['aria-required']=Zi,'input'!==e&&'select'!==e&&'textarea'!==e||(bi.required=Va)),null!=yi&&(bi.role='none'===yi?'presentation':yi);var Gi=null!=qa?qa:Ba;null!=Gi&&(bi['aria-roledescription']=Gi);var Ji=null!=_a?_a:za;null!=Ji&&(bi['aria-rowcount']=Ji);var Qi=null!=Ta?Ta:ja;null!=Qi&&(bi['aria-rowindex']=Qi);var Wi=null!=Ha?Ha:Na;null!=Wi&&(bi['aria-rowspan']=Wi);var Xi=null!=Fa?Fa:Ka;null!=Xi&&(bi['aria-selected']=Xi);var Yi=null!=Ua?Ua:Za;null!=Yi&&(bi['aria-setsize']=Yi);var $i=null!=Ga?Ga:Ja;null!=$i&&(bi['aria-sort']=$i);var ae=null!=Qa?Qa:Wa;null!=ae&&(bi['aria-valuemax']=ae);var ie=null!=Xa?Xa:Ya;null!=ie&&(bi['aria-valuemin']=ie);var ee=null!=$a?$a:ai;null!=ee&&(bi['aria-valuenow']=ee);var le=null!=ii?ii:ei;if(null!=le&&(bi['aria-valuetext']=le),null!=li)for(var re in li)if(b.call(li,re)){var te=x(re),se=li[re];null!=se&&(bi["data-"+te]=se)}0===ui||'0'===ui||-1===ui||'-1'===ui?bi.tabIndex=ui:(!1===ri&&(bi.tabIndex='-1'),'a'===e||'button'===e||'input'===e||'select'===e||'textarea'===e?!1!==ri&&!0!==Z||(bi.tabIndex='-1'):'button'===yi||'checkbox'===yi||'link'===yi||'radio'===yi||'textbox'===yi||'switch'===yi?!1!==ri&&(bi.tabIndex='0'):!0===ri&&(bi.tabIndex='0')),null!=ni&&(0,c.warnOnce)('pointerEvents',"props.pointerEvents is deprecated. Use style.pointerEvents");var ne=(0,n.default)([ci,ni&&f[ni]],(0,l.default)({writingDirection:'ltr'},v)),ce=ne[0],ue=ne[1];ce&&(bi.className=ce),ue&&(bi.style=ue);var oe=null!=ti?ti:si;return null!=oe&&(bi.id=oe),null!=oi&&(bi['data-testid']=oi),null==bi.type&&'button'===e&&(bi.type='button'),bi}},208,[898,903,204,209,254]); +__d(function(g,r,_i,a,m,_e,d){"use strict";function t(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return S}});var e=t(r(d[0])),n=t(r(d[1])),i=r(d[2]),o=r(d[3]),l=r(d[4]),u=r(d[5]),c=r(d[6]);r(d[7]);var f=t(r(d[8])),s=["writingDirection"],_=new WeakMap,v=(0,o.createSheet)(),O={shadow:!0,textShadow:!0};function w(t,i){void 0===i&&(i={});var o=i,f=o.writingDirection,v=(0,n.default)(o,s),w='rtl'===f;return c.styleq.factory({transform(t){var n=_.get(t);return null!=n?(0,l.localizeStyle)(n,w):(0,u.preprocess)(t,(0,e.default)((0,e.default)({},O),v))}})(t)}function h(t){t.forEach(t=>{var e=t[0],n=t[1];null!=v&&e.forEach(t=>{v.insert(t,n)})})}function p(t,e){var n=(0,i.classic)(t,e),o=n[0];return h(n[1]),o}var b={position:'absolute',left:0,right:0,top:0,bottom:0},y=A({x:(0,e.default)({},b)}).x;function A(t){return Object.keys(t).forEach(e=>{var n,o,l,c,f=t[e];null!=f&&!0!==f.$$css&&(e.indexOf('$raw')>-1?n=p(f,e.split('$raw')[0]):(o=f,l=(0,i.atomic)((0,u.preprocess)(o,O)),c=l[0],h(l[1]),n=c),_.set(f,n))}),t}function E(t,e){void 0===e&&(e={});var n='rtl'===e.writingDirection,o=w(t,e);return Array.isArray(o)&&null!=o[1]&&(o[1]=(0,i.inline)(o[1],n)),o}E.absoluteFill=y,E.absoluteFillObject=b,E.create=A,E.compose=function(t,e){return[t,e]},E.flatten=function(){for(var t=arguments.length,e=new Array(t),n=0;n{var o=n[t];if(null!=o){var l;if(P.indexOf(t)>-1){var s=i(t,t,'left'),u=i(t,t,'right');'start'===o?l=[s,u]:'end'===o&&(l=[u,s])}var f=N[t];if(null!=f){var p=i(t,f,o),c=i(t,_[f],o);l=[p,c]}if('transitionProperty'===t){for(var b=Array.isArray(o)?o:[o],h=[],v=0;v0){var S=[...b],E=[...b];h.forEach(n=>{var e=S[n];if('string'==typeof e){var o=N[e],s=_[o];S[n]=o,E[n]=s;var u=i(t,t,S),f=i(t,t,E);l=[u,f]}})}}null==l?l=i(t,t,o):e.$$css$localize=!0,e[t]=l}}),[e,t]},_e.classic=function(n,i){var o,l={$$css:!0},s=[],u=n.animationKeyframes,p=(0,t.default)(n,f),c=T('css',i,JSON.stringify(n)),h="."+c;if(null!=u){var v=V(u),y=v[0],S=v[1];o=y.join(','),s.push(...S)}var E=M((0,e.default)((0,e.default)({},p),{},{animationName:o}));return s.push(""+h+E),l[c]=c,[l,[[s,b]]]},_e.inline=function(n,e){var t=n||c,o={},l={},s=function(){var n=t[u],i=u,s=n;if(!Object.prototype.hasOwnProperty.call(t,u)||null==n)return"continue";P.indexOf(u)>-1&&('start'===n?s=e?'right':'left':'end'===n&&(s=e?'left':'right'));var f=N[u];if(null!=f&&(i=e?_[f]:f),'transitionProperty'===u){var p=Array.isArray(n)?n:[n];p.forEach((n,t)=>{if('string'==typeof n){var i=N[n];null!=i&&(p[t]=e?_[i]:i,s=p.join(' '))}})}o[i]||(l[i]=s),i===u&&(o[i]=!0)};for(var u in t)s();return(0,i.default)(l,!0)},_e.stringifyValueWithProperty=J;var e=n(r(d[0])),t=n(r(d[1])),i=n(r(d[2])),o=n(r(d[3])),l=n(r(d[4])),s=n(r(d[5])),u=n(r(d[6])),f=["animationKeyframes"],p=new Map,c={},b=1,h=3,v={borderColor:2,borderRadius:2,borderStyle:2,borderWidth:2,display:2,flex:2,inset:2,margin:2,overflow:2,overscrollBehavior:2,padding:2,insetBlock:2.1,insetInline:2.1,marginInline:2.1,marginBlock:2.1,paddingInline:2.1,paddingBlock:2.1,borderBlockStartColor:2.2,borderBlockStartStyle:2.2,borderBlockStartWidth:2.2,borderBlockEndColor:2.2,borderBlockEndStyle:2.2,borderBlockEndWidth:2.2,borderInlineStartColor:2.2,borderInlineStartStyle:2.2,borderInlineStartWidth:2.2,borderInlineEndColor:2.2,borderInlineEndStyle:2.2,borderInlineEndWidth:2.2,borderEndStartRadius:2.2,borderEndEndRadius:2.2,borderStartStartRadius:2.2,borderStartEndRadius:2.2,insetBlockEnd:2.2,insetBlockStart:2.2,insetInlineEnd:2.2,insetInlineStart:2.2,marginBlockStart:2.2,marginBlockEnd:2.2,marginInlineStart:2.2,marginInlineEnd:2.2,paddingBlockStart:2.2,paddingBlockEnd:2.2,paddingInlineStart:2.2,paddingInlineEnd:2.2},y='borderTopLeftRadius',S='borderTopRightRadius',E='borderBottomLeftRadius',I='borderBottomRightRadius',k='borderLeftColor',R='borderLeftStyle',B='borderLeftWidth',W='borderRightColor',j='borderRightStyle',C='borderRightWidth',O='right',w='marginLeft',A='marginRight',x='paddingLeft',L='paddingRight',$='left',_={[y]:S,[S]:y,[E]:I,[I]:E,[k]:W,[R]:j,[B]:C,[W]:k,[j]:R,[C]:B,[$]:O,[w]:A,[A]:w,[x]:L,[L]:x,[O]:$},N={borderStartStartRadius:y,borderStartEndRadius:S,borderEndStartRadius:E,borderEndEndRadius:I,borderInlineStartColor:k,borderInlineStartStyle:R,borderInlineStartWidth:B,borderInlineEndColor:W,borderInlineEndStyle:j,borderInlineEndWidth:C,insetInlineEnd:O,insetInlineStart:$,marginInlineStart:w,marginInlineEnd:A,paddingInlineStart:x,paddingInlineEnd:L},P=['clear','float','textAlign'];function J(n,e){var t=(0,s.default)(n,e);return'string'!=typeof t?JSON.stringify(t||''):t}function K(n,e,t){var i=[],o="."+n;switch(e){case'animationKeyframes':var l=V(t),s=l[0],u=l[1],f=M({animationName:s.join(',')});i.push(""+o+f,...u);break;case'placeholderTextColor':var p=M({color:t,opacity:1});i.push(o+"::-webkit-input-placeholder"+p,o+"::-moz-placeholder"+p,o+":-ms-input-placeholder"+p,o+"::placeholder"+p);break;case'pointerEvents':var c=t;if('auto'===t)c='auto!important';else if('none'===t){c='none!important';var b=M({pointerEvents:'none'});i.push(o+">* "+b)}else if('box-none'===t){c='none!important';var h=M({pointerEvents:'auto'});i.push(o+">* "+h)}else if('box-only'===t){c='auto!important';var v=M({pointerEvents:'none'});i.push(o+">* "+v)}var y=M({pointerEvents:c});i.push(""+o+y);break;case'scrollbarWidth':'none'===t&&i.push(o+"::-webkit-scrollbar{display:none}");var S=M({scrollbarWidth:t});i.push(""+o+S);break;default:var E=M({[e]:t});i.push(""+o+E)}return i}function M(n){var e=(0,u.default)((0,i.default)(n));return"{"+Object.keys(e).map(n=>{var t=e[n],i=(0,l.default)(n);return Array.isArray(t)?t.map(n=>i+":"+n).join(';'):i+":"+t}).sort().join(';')+";}"}function T(n,e,t){return n+"-"+(0,o.default)(e+t)}function z(n){var e=T('r','animation',JSON.stringify(n)),t='{'+Object.keys(n).map(e=>""+e+M(n[e])).join('')+'}',i=['-webkit-',''].map(n=>"@"+n+"keyframes "+e+t);return[e,i]}function V(n){if('number'==typeof n)throw new Error("Invalid CSS keyframes type: "+typeof n);var e=[],t=[];return(Array.isArray(n)?n:[n]).forEach(n=>{if('string'==typeof n)e.push(n);else{var i=z(n),o=i[0],l=i[1];e.push(o),t.push(...l)}}),[e,t]}},210,[898,903,211,218,219,212,220]); +__d(function(g,r,_i,a,m,_e,d){"use strict";function o(o){return o&&o.__esModule?o:{default:o}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return p}});var e=o(r(d[0])),t=o(r(d[1])),i={},n=!t.default||null!=window.CSS&&null!=window.CSS.supports&&(window.CSS.supports('text-decoration-line','none')||window.CSS.supports('-webkit-text-decoration-line','none')),l='-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif',b={borderColor:['borderTopColor','borderRightColor','borderBottomColor','borderLeftColor'],borderBlockColor:['borderTopColor','borderBottomColor'],borderInlineColor:['borderRightColor','borderLeftColor'],borderRadius:['borderTopLeftRadius','borderTopRightRadius','borderBottomRightRadius','borderBottomLeftRadius'],borderStyle:['borderTopStyle','borderRightStyle','borderBottomStyle','borderLeftStyle'],borderBlockStyle:['borderTopStyle','borderBottomStyle'],borderInlineStyle:['borderRightStyle','borderLeftStyle'],borderWidth:['borderTopWidth','borderRightWidth','borderBottomWidth','borderLeftWidth'],borderBlockWidth:['borderTopWidth','borderBottomWidth'],borderInlineWidth:['borderRightWidth','borderLeftWidth'],insetBlock:['top','bottom'],insetInline:['left','right'],marginBlock:['marginTop','marginBottom'],marginInline:['marginRight','marginLeft'],paddingBlock:['paddingTop','paddingBottom'],paddingInline:['paddingRight','paddingLeft'],overflow:['overflowX','overflowY'],overscrollBehavior:['overscrollBehaviorX','overscrollBehaviorY'],borderBlockStartColor:['borderTopColor'],borderBlockStartStyle:['borderTopStyle'],borderBlockStartWidth:['borderTopWidth'],borderBlockEndColor:['borderBottomColor'],borderBlockEndStyle:['borderBottomStyle'],borderBlockEndWidth:['borderBottomWidth'],borderEndStartRadius:['borderBottomLeftRadius'],borderEndEndRadius:['borderBottomRightRadius'],borderStartStartRadius:['borderTopLeftRadius'],borderStartEndRadius:['borderTopRightRadius'],insetBlockEnd:['bottom'],insetBlockStart:['top'],marginBlockStart:['marginTop'],marginBlockEnd:['marginBottom'],paddingBlockStart:['paddingTop'],paddingBlockEnd:['paddingBottom']},p=(o,t)=>{if(!o)return i;var p={},s=function(){var i=o[f];if(null==i)return"continue";if('backgroundClip'===f)'text'===i&&(p.backgroundClip=i,p.WebkitBackgroundClip=i);else if('flex'===f)-1===i?(p.flexGrow=0,p.flexShrink=1,p.flexBasis='auto'):p.flex=i;else if('font'===f)p[f]=i.replace('System',l);else if('fontFamily'===f)if(i.indexOf('System')>-1){var s=i.split(/,\s*/);s[s.indexOf('System')]=l,p[f]=s.join(',')}else p[f]='monospace'===i?"monospace,monospace":i;else if('textDecorationLine'===f)n?p.textDecorationLine=i:p.textDecoration=i;else if('writingDirection'===f)p.direction=i;else{var c=(0,e.default)(o[f],f),u=b[f];t&&'inset'===f?(null==o.insetInline&&(p.left=c,p.right=c),null==o.insetBlock&&(p.top=c,p.bottom=c)):t&&'margin'===f?(null==o.marginInline&&(p.marginLeft=c,p.marginRight=c),null==o.marginBlock&&(p.marginTop=c,p.marginBottom=c)):t&&'padding'===f?(null==o.paddingInline&&(p.paddingLeft=c,p.paddingRight=c),null==o.paddingBlock&&(p.paddingTop=c,p.paddingBottom=c)):u?u.forEach((e,t)=>{null==o[e]&&(p[e]=c)}):p[f]=c}};for(var f in o)s();return p}},211,[212,64]); +__d(function(g,r,i,a,m,_e,d){"use strict";function o(o){return o&&o.__esModule?o:{default:o}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return u}});var e=o(r(d[0])),t=o(r(d[1])),l={backgroundColor:!0,borderColor:!0,borderTopColor:!0,borderRightColor:!0,borderBottomColor:!0,borderLeftColor:!0,color:!0,shadowColor:!0,textDecorationColor:!0,textShadowColor:!0};function u(o,u){var n=o;return null!=u&&e.default[u]||'number'!=typeof o?null!=u&&l[u]&&(n=(0,t.default)(o)):n=o+"px",n}},212,[213,214]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return n}});var t={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexOrder:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,gridRow:!0,gridRowEnd:!0,gridRowGap:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnGap:!0,gridColumnStart:!0,lineClamp:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0,scale:!0,scaleX:!0,scaleY:!0,scaleZ:!0,shadowOpacity:!0},o=['ms','Moz','O','Webkit'],l=(t,o)=>t+o.charAt(0).toUpperCase()+o.substring(1);Object.keys(t).forEach(n=>{o.forEach(o=>{t[l(o,n)]=t[n]})});var n=t},213,[]); +__d(function(_g,_r,i,_a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var t=e(_r(d[0])),u=e(_r(d[1])),n=function(e,n){if(void 0===n&&(n=1),null!=e){if('string'==typeof e&&(0,t.default)(e))return e;var r=(0,u.default)(e);if(null!=r)return"rgba("+(r>>16&255)+","+(r>>8&255)+","+(255&r)+","+((r>>24&255)/255*n).toFixed(2)+")"}}},214,[215,216]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t}});var t=t=>'currentcolor'===t||'currentColor'===t||'inherit'===t||0===t.indexOf('var(')},215,[]); +__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var e,t=r(d[0]),u=(e=t)&&e.__esModule?e:{default:e},n=e=>{if(null==e)return e;var t=(0,u.default)(e);return null!=t?t=(t<<24|t>>>8)>>>0:void 0}},216,[217]); +__d(function(_g,_r,i,a,m,e,d){'use strict';function r(r,n,t){return t<0&&(t+=1),t>1&&(t-=1),t<.16666666666666666?r+6*(n-r)*t:t<.5?n:t<.6666666666666666?r+(n-r)*(.6666666666666666-t)*6:r}function n(n,t,s){const u=s<.5?s*(1+t):s+t-s*t,c=2*s-u,l=r(c,u,n+.3333333333333333),o=r(c,u,n),g=r(c,u,n-.3333333333333333);return Math.round(255*l)<<24|Math.round(255*o)<<16|Math.round(255*g)<<8}function t(n,t,s){if(t+s>=1){const r=Math.round(255*t/(t+s));return r<<24|r<<16|r<<8}const u=r(0,1,n+.3333333333333333)*(1-t-s)+t,c=r(0,1,n)*(1-t-s)+t,l=r(0,1,n-.3333333333333333)*(1-t-s)+t;return Math.round(255*u)<<24|Math.round(255*c)<<16|Math.round(255*l)<<8}const s='[-+]?\\d*\\.?\\d+',u="[-+]?\\d*\\.?\\d+%";function c(...r){return'\\(\\s*('+r.join(')\\s*,?\\s*(')+')\\s*\\)'}function l(...r){return'\\(\\s*('+r.slice(0,r.length-1).join(')\\s*,?\\s*(')+')\\s*/\\s*('+r[r.length-1]+')\\s*\\)'}function o(...r){return'\\(\\s*('+r.join(')\\s*,\\s*(')+')\\s*\\)'}let g;function h(){return void 0===g&&(g={rgb:new RegExp('rgb'+c(s,s,s)),rgba:new RegExp('rgba('+o(s,s,s,s)+'|'+l(s,s,s,s)+')'),hsl:new RegExp('hsl'+c(s,u,u)),hsla:new RegExp('hsla('+o(s,u,u,s)+'|'+l(s,u,u,s)+')'),hwb:new RegExp('hwb'+c(s,u,u)),hex3:/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex4:/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#([0-9a-fA-F]{6})$/,hex8:/^#([0-9a-fA-F]{8})$/}),g}function b(r){const n=parseInt(r,10);return n<0?0:n>255?255:n}function p(r){return(parseFloat(r)%360+360)%360/360}function f(r){const n=parseFloat(r);return n<0?0:n>1?255:Math.round(255*n)}function y(r){const n=parseFloat(r);return n<0?0:n>100?1:n/100}function k(r){switch(r){case'transparent':return 0;case'aliceblue':return 4042850303;case'antiquewhite':return 4209760255;case'aqua':case'cyan':return 16777215;case'aquamarine':return 2147472639;case'azure':return 4043309055;case'beige':return 4126530815;case'bisque':return 4293182719;case'black':return 255;case'blanchedalmond':return 4293643775;case'blue':return 65535;case'blueviolet':return 2318131967;case'brown':return 2771004159;case'burlywood':return 3736635391;case'burntsienna':return 3934150143;case'cadetblue':return 1604231423;case'chartreuse':return 2147418367;case'chocolate':return 3530104575;case'coral':return 4286533887;case'cornflowerblue':return 1687547391;case'cornsilk':return 4294499583;case'crimson':return 3692313855;case'darkblue':return 35839;case'darkcyan':return 9145343;case'darkgoldenrod':return 3095792639;case'darkgray':case'darkgrey':return 2846468607;case'darkgreen':return 6553855;case'darkkhaki':return 3182914559;case'darkmagenta':return 2332068863;case'darkolivegreen':return 1433087999;case'darkorange':return 4287365375;case'darkorchid':return 2570243327;case'darkred':return 2332033279;case'darksalmon':return 3918953215;case'darkseagreen':return 2411499519;case'darkslateblue':return 1211993087;case'darkslategray':case'darkslategrey':return 793726975;case'darkturquoise':return 13554175;case'darkviolet':return 2483082239;case'deeppink':return 4279538687;case'deepskyblue':return 12582911;case'dimgray':case'dimgrey':return 1768516095;case'dodgerblue':return 512819199;case'firebrick':return 2988581631;case'floralwhite':return 4294635775;case'forestgreen':return 579543807;case'fuchsia':case'magenta':return 4278255615;case'gainsboro':return 3705462015;case'ghostwhite':return 4177068031;case'gold':return 4292280575;case'goldenrod':return 3668254975;case'gray':case'grey':return 2155905279;case'green':return 8388863;case'greenyellow':return 2919182335;case'honeydew':return 4043305215;case'hotpink':return 4285117695;case'indianred':return 3445382399;case'indigo':return 1258324735;case'ivory':return 4294963455;case'khaki':return 4041641215;case'lavender':return 3873897215;case'lavenderblush':return 4293981695;case'lawngreen':return 2096890111;case'lemonchiffon':return 4294626815;case'lightblue':return 2916673279;case'lightcoral':return 4034953471;case'lightcyan':return 3774873599;case'lightgoldenrodyellow':return 4210742015;case'lightgray':case'lightgrey':return 3553874943;case'lightgreen':return 2431553791;case'lightpink':return 4290167295;case'lightsalmon':return 4288707327;case'lightseagreen':return 548580095;case'lightskyblue':return 2278488831;case'lightslategray':case'lightslategrey':return 2005441023;case'lightsteelblue':return 2965692159;case'lightyellow':return 4294959359;case'lime':return 16711935;case'limegreen':return 852308735;case'linen':return 4210091775;case'maroon':return 2147483903;case'mediumaquamarine':return 1724754687;case'mediumblue':return 52735;case'mediumorchid':return 3126187007;case'mediumpurple':return 2473647103;case'mediumseagreen':return 1018393087;case'mediumslateblue':return 2070474495;case'mediumspringgreen':return 16423679;case'mediumturquoise':return 1221709055;case'mediumvioletred':return 3340076543;case'midnightblue':return 421097727;case'mintcream':return 4127193855;case'mistyrose':return 4293190143;case'moccasin':return 4293178879;case'navajowhite':return 4292783615;case'navy':return 33023;case'oldlace':return 4260751103;case'olive':return 2155872511;case'olivedrab':return 1804477439;case'orange':return 4289003775;case'orangered':return 4282712319;case'orchid':return 3664828159;case'palegoldenrod':return 4008225535;case'palegreen':return 2566625535;case'paleturquoise':return 2951671551;case'palevioletred':return 3681588223;case'papayawhip':return 4293907967;case'peachpuff':return 4292524543;case'peru':return 3448061951;case'pink':return 4290825215;case'plum':return 3718307327;case'powderblue':return 2967529215;case'purple':return 2147516671;case'rebeccapurple':return 1714657791;case'red':return 4278190335;case'rosybrown':return 3163525119;case'royalblue':return 1097458175;case'saddlebrown':return 2336560127;case'salmon':return 4202722047;case'sandybrown':return 4104413439;case'seagreen':return 780883967;case'seashell':return 4294307583;case'sienna':return 2689740287;case'silver':return 3233857791;case'skyblue':return 2278484991;case'slateblue':return 1784335871;case'slategray':case'slategrey':return 1887473919;case'snow':return 4294638335;case'springgreen':return 16744447;case'steelblue':return 1182971135;case'tan':return 3535047935;case'teal':return 8421631;case'thistle':return 3636451583;case'tomato':return 4284696575;case'turquoise':return 1088475391;case'violet':return 4001558271;case'wheat':return 4125012991;case'white':return 4294967295;case'whitesmoke':return 4126537215;case'yellow':return 4294902015;case'yellowgreen':return 2597139199}return null}m.exports=function(r){if('number'==typeof r)return r>>>0===r&&r>=0&&r<=4294967295?r:null;if('string'!=typeof r)return null;const s=h();let u;if(u=s.hex6.exec(r))return parseInt(u[1]+'ff',16)>>>0;const c=k(r);return null!=c?c:(u=s.rgb.exec(r))?(b(u[1])<<24|b(u[2])<<16|b(u[3])<<8|255)>>>0:(u=s.rgba.exec(r))?void 0!==u[6]?(b(u[6])<<24|b(u[7])<<16|b(u[8])<<8|f(u[9]))>>>0:(b(u[2])<<24|b(u[3])<<16|b(u[4])<<8|f(u[5]))>>>0:(u=s.hex3.exec(r))?parseInt(u[1]+u[1]+u[2]+u[2]+u[3]+u[3]+'ff',16)>>>0:(u=s.hex8.exec(r))?parseInt(u[1],16)>>>0:(u=s.hex4.exec(r))?parseInt(u[1]+u[1]+u[2]+u[2]+u[3]+u[3]+u[4]+u[4],16)>>>0:(u=s.hsl.exec(r))?(255|n(p(u[1]),y(u[2]),y(u[3])))>>>0:(u=s.hsla.exec(r))?void 0!==u[6]?(n(p(u[6]),y(u[7]),y(u[8]))|f(u[9]))>>>0:(n(p(u[2]),y(u[3]),y(u[4]))|f(u[5]))>>>0:(u=s.hwb.exec(r))?(255|t(p(u[1]),y(u[2]),y(u[3])))>>>0:null}},217,[]); +__d(function(g,r,_i,a,m,e,d){"use strict";function t(t,c){for(var o,n=t.length,u=c^n,h=0;n>=4;)o=1540483477*(65535&(o=255&t.charCodeAt(h)|(255&t.charCodeAt(++h))<<8|(255&t.charCodeAt(++h))<<16|(255&t.charCodeAt(++h))<<24))+((1540483477*(o>>>16)&65535)<<16),u=1540483477*(65535&u)+((1540483477*(u>>>16)&65535)<<16)^(o=1540483477*(65535&(o^=o>>>24))+((1540483477*(o>>>16)&65535)<<16)),n-=4,++h;switch(n){case 3:u^=(255&t.charCodeAt(h+2))<<16;case 2:u^=(255&t.charCodeAt(h+1))<<8;case 1:u=1540483477*(65535&(u^=255&t.charCodeAt(h)))+((1540483477*(u>>>16)&65535)<<16)}return u=1540483477*(65535&(u^=u>>>13))+((1540483477*(u>>>16)&65535)<<16),(u^=u>>>15)>>>0}Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return c}});var c=c=>t(c,1).toString(36)},218,[]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return c}});var t=/[A-Z]/g,n=/^ms-/,u={};function o(t){return'-'+t.toLowerCase()}var c=function(c){if(c in u)return u[c];var f=c.replace(t,o);return u[c]=n.test(f)?'-'+f:f}},219,[]); +__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var t=e(r(d[0])),u=e(r(d[1])),n=(0,t.default)(u.default)},220,[221,227]); +__d(function(g,r,_i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(l){var i=l.prefixMap,o=l.plugins;return function l(s){for(var v in s){var c=s[v];if((0,n.default)(c))s[v]=l(c);else if(Array.isArray(c)){for(var _=[],p=0,y=c.length;p0&&(s[v]=_)}else{var h=(0,u.default)(o,v,c,s,i);h&&(s[v]=h),s=(0,t.default)(i,v,s)}}return s}};var t=l(r(d[0])),u=l(r(d[1])),f=l(r(d[2])),n=l(r(d[3]));function l(t){return t&&t.__esModule?t:{default:t}}},221,[222,224,225,226]); +__d(function(g,r,_i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,u,n){var l=t[u];if(l&&n.hasOwnProperty(u))for(var o=(0,f.default)(u),_=0;_-1)return f.map(function(t){return u.replace(/image-set\(/g,t+'image-set(')})};var t,u=r(d[0]),n=(t=u)&&t.__esModule?t:{default:t};var f=['-webkit-','']},243,[237]); +__d(function(g,r,_i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(o,n,i){if(Object.prototype.hasOwnProperty.call(t,o))for(var l=t[o],b=0,B=l.length;b-1)return p;var v=l.split(/,(?![^()]*(?:\([^()]*\))?\))/g).filter(function(t){return!/-webkit-|-ms-/.test(t)}).join(',');return t.indexOf('Moz')>-1?v:(o['Webkit'+(0,n.default)(t)]=p,o['Moz'+(0,n.default)(t)]=v,l)}};var t=o(r(d[0])),i=o(r(d[1])),n=o(r(d[2]));function o(t){return t&&t.__esModule?t:{default:t}}var f={transition:!0,transitionProperty:!0,WebkitTransition:!0,WebkitTransitionProperty:!0,MozTransition:!0,MozTransitionProperty:!0},u={Webkit:'-webkit-',Moz:'-moz-',ms:'-ms-'};function s(n,o){if((0,i.default)(n))return n;for(var f=n.split(/,(?![^()]*(?:\([^()]*\))?\))/g),s=0,l=f.length;s-1&&'order'!==b)for(var k=o[c],z=0,M=k.length;z{h.insert(e,0)}),o.set(b,l.length),l.push(h);else{var p=o.get(b);if(null==p){var v=l[0],k=null!=v?v.getTextContent():'';h=(0,u.default)((0,n.default)(f,b,k)),o.set(b,l.length),l.push(h)}else h=l[p]}}else 0===l.length?(h=(0,u.default)((0,n.default)(f)),c.forEach(e=>{h.insert(e,0)}),l.push(h)):h=l[0];return{getTextContent:()=>h.getTextContent(),id:f,insert(e,t){l.forEach(n=>{n.insert(e,t)})}}};var t=e(r(d[0])),n=e(r(d[1])),u=e(r(d[2])),s='react-native-stylesheet',o=new WeakMap,l=[],c=['html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}','body{margin:0;}','button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}','input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}']},248,[64,249,250]); +__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return u}});var e,t=r(d[0]),n=(e=t)&&e.__esModule?e:{default:e};function u(e,t,u){if(n.default){var l=null!=t?t:document,o=l.getElementById(e);if(null==o)if((o=document.createElement('style')).setAttribute('id',e),'string'==typeof u&&o.appendChild(document.createTextNode(u)),l instanceof ShadowRoot)l.insertBefore(o,l.firstChild);else{var f=l.head;f&&f.insertBefore(o,f.firstChild)}return o.sheet}return null}},249,[64]); +__d(function(g,r,_i,_a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return e}});var t=Array.prototype.slice;function e(e){var u,a={},c={};null!=e&&t.call(e.cssRules).forEach((t,e)=>{var n=t.cssText;if(n.indexOf('stylesheet-group')>-1)u=l(t),a[u]={start:e,rules:[n]};else{var s=i(n);null!=s&&(c[s]=!0,a[u].rules.push(n))}});function f(t,e,n){var u=s(a),l=u.indexOf(e)+1,i=u[l],c=null!=i&&null!=a[i].start?a[i].start:t.cssRules.length,f=o(t,n,c);if(f){null==a[e].start&&(a[e].start=c);for(var v=l;vs(a).map(t=>{var e=a[t].rules,n=e.shift();return e.sort(),e.unshift(n),e.join('\n')}).join('\n'),insert(t,u){var l=Number(u);if(null==a[l]){var s=n(l);a[l]={start:null,rules:[s]},null!=e&&f(e,l,s)}var o=i(t);null!=o&&null==c[o]&&(c[o]=!0,a[l].rules.push(t),null!=e&&(f(e,l,t)||a[l].rules.pop()))}};return v}function n(t){return"[stylesheet-group=\""+t+"\"]{}"}var u=/["']/g;function l(t){return Number(t.selectorText.split(u)[1])}function s(t){return Object.keys(t).map(Number).sort((t,e)=>t>e?1:-1)}var a=/\s*([,])\s*/g;function i(t){var e=t.split('{')[0].trim();return''!==e?e.replace(a,'$1'):null}function o(t,e,n){try{return t.insertRule(e,n),!0}catch(t){return!1}}},250,[]); +__d(function(g,r,i,a,m,e,d){m.exports=r(d[0])},251,[252]); +__d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.localizeStyle=function(l,s){if(null!=l[t]){var c=s?1:0;if(n.has(l)){var f=n.get(l),o=f[c];return null==o&&(o=u(l,s),f[c]=o,n.set(l,f)),o}var v=u(l,s),y=new Array(2);return y[c]=v,n.set(l,y),v}return l};var n=new WeakMap,t='$$css$localize';function u(n,u){var l={};for(var s in n)if(s!==t){var c=n[s];Array.isArray(c)?l[s]=u?c[1]:c[0]:l[s]=c}return l}},252,[]); +__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return O}}),Object.defineProperty(_e,"createBoxShadowValue",{enumerable:!0,get:function(){return s}}),Object.defineProperty(_e,"createTextShadowValue",{enumerable:!0,get:function(){return f}}),Object.defineProperty(_e,"createBoxShadowArrayValue",{enumerable:!0,get:function(){return S}}),Object.defineProperty(_e,"createTransformValue",{enumerable:!0,get:function(){return b}}),Object.defineProperty(_e,"createTransformOriginValue",{enumerable:!0,get:function(){return w}}),Object.defineProperty(_e,"preprocess",{enumerable:!0,get:function(){return x}});var t=e(r(d[0])),n=e(r(d[1])),o=r(d[2]),l={},u={height:0,width:0},s=e=>{var o=e.shadowColor,l=e.shadowOffset,s=e.shadowOpacity,f=e.shadowRadius,h=l||u,S=h.height,c=h.width,b=(0,n.default)(c),w=(0,n.default)(S),p=(0,n.default)(f||0),y=(0,t.default)(o||'black',s);if(null!=y&&null!=b&&null!=w&&null!=p)return b+" "+w+" "+p+" "+y},f=e=>{var t=e.textShadowColor,o=e.textShadowOffset,l=e.textShadowRadius,s=o||u,f=s.height,h=s.width,S=l||0,c=(0,n.default)(h),b=(0,n.default)(f),w=(0,n.default)(S),p=(0,n.default)(t,'textShadowColor');if(p&&(0!==f||0!==h||0!==S)&&null!=c&&null!=b&&null!=w)return c+" "+b+" "+w+" "+p},h=e=>{if('string'==typeof e)return e;var o=(0,n.default)(e.offsetX)||0,l=(0,n.default)(e.offsetY)||0,u=(0,n.default)(e.blurRadius)||0,s=(0,n.default)(e.spreadDistance)||0,f=(0,t.default)(e.color)||'black';return""+(e.inset?'inset ':'')+o+" "+l+" "+u+" "+s+" "+f},S=e=>e.map(h).join(', '),c=e=>{var t=Object.keys(e)[0],o=e[t];return'matrix'===t||'matrix3d'===t?t+"("+o.join(',')+")":t+"("+(0,n.default)(o,t)+")"},b=e=>e.map(c).join(' '),w=e=>e.map(e=>(0,n.default)(e)).join(' '),p={borderBottomEndRadius:'borderEndEndRadius',borderBottomStartRadius:'borderEndStartRadius',borderTopEndRadius:'borderStartEndRadius',borderTopStartRadius:'borderStartStartRadius',borderEndColor:'borderInlineEndColor',borderEndStyle:'borderInlineEndStyle',borderEndWidth:'borderInlineEndWidth',borderStartColor:'borderInlineStartColor',borderStartStyle:'borderInlineStartStyle',borderStartWidth:'borderInlineStartWidth',end:'insetInlineEnd',marginEnd:'marginInlineEnd',marginHorizontal:'marginInline',marginStart:'marginInlineStart',marginVertical:'marginBlock',paddingEnd:'paddingInlineEnd',paddingHorizontal:'paddingInline',paddingStart:'paddingInlineStart',paddingVertical:'paddingBlock',start:'insetInlineStart'},y={elevation:!0,overlayColor:!0,resizeMode:!0,tintColor:!0},x=function(e,t){void 0===t&&(t={});var n=e||l,u={};if(t.shadow,null!=n.shadowColor||null!=n.shadowOffset||null!=n.shadowOpacity||null!=n.shadowRadius){(0,o.warnOnce)('shadowStyles',"\"shadow*\" style props are deprecated. Use \"boxShadow\".");var h=s(n);null!=h&&(u.boxShadow=h)}if(t.textShadow,null!=n.textShadowColor||null!=n.textShadowOffset||null!=n.textShadowRadius){(0,o.warnOnce)('textShadowStyles',"\"textShadow*\" style props are deprecated. Use \"textShadow\".");var c=f(n);if(null!=c&&null==u.textShadow){var x=n.textShadow,O=x?x+", "+c:c;u.textShadow=O}}for(var v in n)if(null==y[v]&&'shadowColor'!==v&&'shadowOffset'!==v&&'shadowOpacity'!==v&&'shadowRadius'!==v&&'textShadowColor'!==v&&'textShadowOffset'!==v&&'textShadowRadius'!==v){var E=n[v],R=p[v]||v,j=E;if(Object.prototype.hasOwnProperty.call(n,v)&&(R===v||null==n[R]))if('aspectRatio'===R&&'number'==typeof j)u[R]=j.toString();else if('boxShadow'===R){Array.isArray(j)&&(j=S(j));var I=u.boxShadow;u.boxShadow=I?j+", "+I:j}else'fontVariant'===R?(Array.isArray(j)&&j.length>0&&(j=j.join(' ')),u[R]=j):'textAlignVertical'===R?null==n.verticalAlign&&(u.verticalAlign='center'===j?'middle':j):'transform'===R?(Array.isArray(j)&&(j=b(j)),u.transform=j):'transformOrigin'===R?(Array.isArray(j)&&(j=w(j)),u.transformOrigin=j):u[R]=j}return u},O=x},253,[214,212,254]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.warnOnce=function(n,t){}},254,[]); +__d(function(g,r,_i2,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{value:!0}),e.styleq=void 0;var l=new WeakMap;function n(n){var s,u,t;return null!=n&&(s=!0===n.disableCache,u=!0===n.disableMix,t=n.transform),function(){for(var n=[],i='',o=null,f=s?null:l,v=new Array(arguments.length),c=0;c0;){var p=v.pop();if(null!=p&&!1!==p)if(Array.isArray(p))for(var y=0;y-1)s("Invalid style declaration \""+u+":"+c+"\". Values cannot include \"!important\""),f=!0;else{var p='';'animation'===u||'animationName'===u?(p='Did you mean "animationKeyframes"?',f=!0):'direction'===u?(p='Did you mean "writingDirection"?',f=!0):t[u]?(p='Please use long-form properties.',f=!0):l[u]&&'string'==typeof c&&(0,o.default)(c).nodes.length>1&&(p="Value is \""+c+"\" but only single values are supported.",f=!0),''!==p&&s("Invalid style property of \""+u+"\". "+p)}f&&delete e[n]}}};var e,n=r(d[0]),o=(e=n)&&e.__esModule?e:{default:e},t={background:!0,borderBottom:!0,borderLeft:!0,borderRight:!0,borderTop:!0,font:!0,grid:!0,outline:!0,textDecoration:!0},l={flex:!0,margin:!0,padding:!0,borderColor:!0,borderRadius:!0,borderStyle:!0,borderWidth:!0,inset:!0,insetBlock:!0,insetInline:!0,marginBlock:!0,marginInline:!0,marginHorizontal:!0,marginVertical:!0,paddingBlock:!0,paddingInline:!0,paddingHorizontal:!0,paddingVertical:!0,overflow:!0,overscrollBehavior:!0,backgroundPosition:!0};function s(e){console.error(e)}},257,[258]); +__d(function(g,r,i,a,m,e,d){var t=r(d[0]),n=r(d[1]),o=r(d[2]);function s(n){return this instanceof s?(this.nodes=t(n),this):new s(n)}s.prototype.toString=function(){return Array.isArray(this.nodes)?o(this.nodes):""},s.prototype.walk=function(t,o){return n(this.nodes,t,o),this},s.unit=r(d[3]),s.walk=n,s.stringify=o,m.exports=s},258,[259,260,261,262]); +__d(function(g,r,i,a,m,e,d){var o="(".charCodeAt(0),n=")".charCodeAt(0),c="'".charCodeAt(0),t='"'.charCodeAt(0),s="\\".charCodeAt(0),u="/".charCodeAt(0),l=",".charCodeAt(0),h=":".charCodeAt(0),f="*".charCodeAt(0),p="u".charCodeAt(0),x="U".charCodeAt(0),A="+".charCodeAt(0),C=/^[a-f0-9?-]+$/i;m.exports=function(I){for(var v,E,y,w,O,b,_,q,U,$=[],j=I,k=0,z=j.charCodeAt(k),B=j.length,D=[{nodes:$}],F=0,G="",H="",J="";k=48&&A<=57)return!0;var n=h.charCodeAt(2);return A===c&&n>=48&&n<=57}return C===c?(A=h.charCodeAt(1))>=48&&A<=57:C>=48&&C<=57}m.exports=function(n){var f,u,v,l=0,s=n.length;if(0===s||!C(n))return!1;for((f=n.charCodeAt(l))!==o&&f!==t||l++;l57);)l+=1;if(f=n.charCodeAt(l),u=n.charCodeAt(l+1),f===c&&u>=48&&u<=57)for(l+=2;l57);)l+=1;if(f=n.charCodeAt(l),u=n.charCodeAt(l+1),v=n.charCodeAt(l+2),(f===h||f===A)&&(u>=48&&u<=57||(u===o||u===t)&&v>=48&&v<=57))for(l+=u===o||u===t?3:2;l57);)l+=1;return{number:n.slice(0,l),unit:n.slice(l)}}},262,[]); +__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.getLocaleDirection=u,_e.LocaleProvider=function(e){var t=e.direction,o=e.locale,l=e.children;return t||o?n.default.createElement(c.Provider,{children:l,value:{direction:o?u(o):t,locale:o}}):l},_e.useLocaleContext=function(){return(0,t.useContext)(c)};var e,t=r(d[0]),n=(e=t)&&e.__esModule?e:{default:e},o=r(d[1]),l={direction:'ltr',locale:'en-US'},c=(0,t.createContext)(l);function u(e){return(0,o.isLocaleRTL)(e)?'rtl':'ltr'}},263,[39,264]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),e.isLocaleRTL=function(s){var l=c.get(s);if(l)return l;var o=!1;if(Intl.Locale)try{var u=new Intl.Locale(s).maximize().script;o=t.has(u)}catch(t){var h=s.split('-')[0];o=n.has(h)}else{var v=s.split('-')[0];o=n.has(v)}return c.set(s,o),o};var t=new Set(['Arab','Syrc','Samr','Mand','Thaa','Mend','Nkoo','Adlm','Rohg','Hebr']),n=new Set(['ae','ar','arc','bcc','bqi','ckb','dv','fa','far','glk','he','iw','khw','ks','ku','mzn','nqo','pnb','ps','sd','ug','ur','yi']),c=new Map},264,[]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"defaultProps",{enumerable:!0,get:function(){return t}}),Object.defineProperty(e,"accessibilityProps",{enumerable:!0,get:function(){return c}}),Object.defineProperty(e,"clickProps",{enumerable:!0,get:function(){return o}}),Object.defineProperty(e,"focusProps",{enumerable:!0,get:function(){return s}}),Object.defineProperty(e,"keyboardProps",{enumerable:!0,get:function(){return n}}),Object.defineProperty(e,"mouseProps",{enumerable:!0,get:function(){return l}}),Object.defineProperty(e,"touchProps",{enumerable:!0,get:function(){return u}}),Object.defineProperty(e,"styleProps",{enumerable:!0,get:function(){return b}});var t={children:!0,dataSet:!0,dir:!0,id:!0,ref:!0,suppressHydrationWarning:!0,tabIndex:!0,testID:!0,focusable:!0,nativeID:!0},c={'aria-activedescendant':!0,'aria-atomic':!0,'aria-autocomplete':!0,'aria-busy':!0,'aria-checked':!0,'aria-colcount':!0,'aria-colindex':!0,'aria-colspan':!0,'aria-controls':!0,'aria-current':!0,'aria-describedby':!0,'aria-details':!0,'aria-disabled':!0,'aria-errormessage':!0,'aria-expanded':!0,'aria-flowto':!0,'aria-haspopup':!0,'aria-hidden':!0,'aria-invalid':!0,'aria-keyshortcuts':!0,'aria-label':!0,'aria-labelledby':!0,'aria-level':!0,'aria-live':!0,'aria-modal':!0,'aria-multiline':!0,'aria-multiselectable':!0,'aria-orientation':!0,'aria-owns':!0,'aria-placeholder':!0,'aria-posinset':!0,'aria-pressed':!0,'aria-readonly':!0,'aria-required':!0,inert:!0,role:!0,'aria-roledescription':!0,'aria-rowcount':!0,'aria-rowindex':!0,'aria-rowspan':!0,'aria-selected':!0,'aria-setsize':!0,'aria-sort':!0,'aria-valuemax':!0,'aria-valuemin':!0,'aria-valuenow':!0,'aria-valuetext':!0,accessibilityActiveDescendant:!0,accessibilityAtomic:!0,accessibilityAutoComplete:!0,accessibilityBusy:!0,accessibilityChecked:!0,accessibilityColumnCount:!0,accessibilityColumnIndex:!0,accessibilityColumnSpan:!0,accessibilityControls:!0,accessibilityCurrent:!0,accessibilityDescribedBy:!0,accessibilityDetails:!0,accessibilityDisabled:!0,accessibilityErrorMessage:!0,accessibilityExpanded:!0,accessibilityFlowTo:!0,accessibilityHasPopup:!0,accessibilityHidden:!0,accessibilityInvalid:!0,accessibilityKeyShortcuts:!0,accessibilityLabel:!0,accessibilityLabelledBy:!0,accessibilityLevel:!0,accessibilityLiveRegion:!0,accessibilityModal:!0,accessibilityMultiline:!0,accessibilityMultiSelectable:!0,accessibilityOrientation:!0,accessibilityOwns:!0,accessibilityPlaceholder:!0,accessibilityPosInSet:!0,accessibilityPressed:!0,accessibilityReadOnly:!0,accessibilityRequired:!0,accessibilityRole:!0,accessibilityRoleDescription:!0,accessibilityRowCount:!0,accessibilityRowIndex:!0,accessibilityRowSpan:!0,accessibilitySelected:!0,accessibilitySetSize:!0,accessibilitySort:!0,accessibilityValueMax:!0,accessibilityValueMin:!0,accessibilityValueNow:!0,accessibilityValueText:!0},o={onClick:!0,onAuxClick:!0,onContextMenu:!0,onGotPointerCapture:!0,onLostPointerCapture:!0,onPointerCancel:!0,onPointerDown:!0,onPointerEnter:!0,onPointerMove:!0,onPointerLeave:!0,onPointerOut:!0,onPointerOver:!0,onPointerUp:!0},s={onBlur:!0,onFocus:!0},n={onKeyDown:!0,onKeyDownCapture:!0,onKeyUp:!0,onKeyUpCapture:!0},l={onMouseDown:!0,onMouseEnter:!0,onMouseLeave:!0,onMouseMove:!0,onMouseOver:!0,onMouseOut:!0,onMouseUp:!0},u={onTouchCancel:!0,onTouchCancelCapture:!0,onTouchEnd:!0,onTouchEndCapture:!0,onTouchMove:!0,onTouchMoveCapture:!0,onTouchStart:!0,onTouchStartCapture:!0},b={style:!0}},265,[]); +__d(function(g,r,i,a,m,e,d){"use strict";function t(t,n){var u={};for(var o in t)t.hasOwnProperty(o)&&!0===n[o]&&(u[o]=t[o]);return u}Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t}})},266,[]); +__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return f}});var t=e(r(d[0])),n=e(r(d[1])),u=e(r(d[2])),l='__reactLayoutHandler',o=(u.default,null);function f(e,f){var v=(u.default&&void 0!==window.ResizeObserver&&null==o&&(o=new window.ResizeObserver(function(e){e.forEach(e=>{var t=e.target,u=t[l];'function'==typeof u&&n.default.measure(t,(t,n,l,o,f,v)=>{var c={nativeEvent:{layout:{x:t,y:n,width:l,height:o,left:f,top:v}},timeStamp:Date.now()};Object.defineProperty(c.nativeEvent,'target',{enumerable:!0,get:()=>e.target}),u(c)})})})),o);(0,t.default)(()=>{var t=e.current;null!=t&&(t[l]=f)},[e,f]),(0,t.default)(()=>{var t=e.current;return null!=t&&null!=v&&('function'==typeof t[l]?v.observe(t):v.unobserve(t)),()=>{null!=t&&null!=v&&v.unobserve(t)}},[e,v])}},267,[268,66,64]); +__d(function(g,r,i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return f}});var e,t=r(d[0]),u=r(d[1]),f=((e=u)&&e.__esModule?e:{default:e}).default?t.useLayoutEffect:t.useEffect},268,[39,64]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return o}});var e,t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),n=r(_d[1]),u=(e=n)&&e.__esModule?e:{default:e};function o(){for(var e=arguments.length,n=new Array(e),o=0;o(0,u.default)(...n),[...n])}},269,[39,270]); +__d(function(g,r,i,a,m,e,d){"use strict";function n(){for(var n=arguments.length,t=new Array(n),o=0;o{null!=t&&('function'!=typeof t?'object'!=typeof t?console.error("mergeRefs cannot handle Refs of type boolean, number or string, received ref "+String(t)):t.current=n:t(n))})}}Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return n}}),r(d[0])},270,[39]); +__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var u=e(r(d[0])),t=e(r(d[1]));function n(e){e.pointerEvents,e.style;return(0,t.default)(()=>e=>{null!=e&&(e.measure=t=>u.default.measure(e,t),e.measureLayout=(t,n,l)=>u.default.measureLayout(e,t,l,n),e.measureInWindow=t=>u.default.measureInWindow(e,t))})}},271,[66,272]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return n}});var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var u=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,u.get?u:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t='function'==typeof Symbol&&'symbol'==typeof Symbol()?Symbol():Object.freeze({});function n(n){var u=e.useRef(t);return u.current===t&&(u.current=n()),u.current}},272,[39]); +__d(function(g,r,i,a,m,_e,_d){"use strict";function e(e){if(e&&e.__esModule)return e;var n={};return e&&Object.keys(e).forEach(function(t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}),n.default=e,n}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return l}});var n=e(r(_d[0])),t=e(r(_d[1])),u={},o=0;function l(e,l){void 0===l&&(l=u);var d,c,s=(d=()=>o++,null==(c=n.useRef(null)).current&&(c.current=d()),c.current),S=n.useRef(!1);n.useEffect(()=>(t.attachListeners(),()=>{t.removeNode(s)}),[s]),n.useEffect(()=>{var n=l,u=n.onMoveShouldSetResponder,o=n.onMoveShouldSetResponderCapture,d=n.onScrollShouldSetResponder,c=n.onScrollShouldSetResponderCapture,f=n.onSelectionChangeShouldSetResponder,p=n.onSelectionChangeShouldSetResponderCapture,h=n.onStartShouldSetResponder,R=n.onStartShouldSetResponderCapture,v=null!=u||null!=o||null!=d||null!=c||null!=f||null!=p||null!=h||null!=R,b=e.current;v?(t.addNode(s,b,l),S.current=!0):S.current&&(t.removeNode(s),S.current=!1)},[l,e,s]),n.useDebugValue({isResponder:e.current===t.getResponderNode()}),n.useDebugValue(l)}},273,[39,274]); +__d(function(g,r,_i2,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),_e.attachListeners=function(){s.default&&null==window.__reactResponderSystemActive&&(window.addEventListener('blur',P),E.forEach(e=>{document.addEventListener(e,P)}),_.forEach(e=>{document.addEventListener(e,P,!0)}),window.__reactResponderSystemActive=!0)},_e.addNode=function(e,n,t){(0,o.setResponderId)(n,e),f.set(e,t)},_e.removeNode=function(e){S.id===e&&M();f.has(e)&&f.delete(e)},_e.terminateResponder=M,_e.getResponderNode=function(){return S.node};var n=e(r(d[0])),t=r(d[1]),o=r(d[2]),i=r(d[3]),s=e(r(d[4])),l={},u=['onStartShouldSetResponderCapture','onStartShouldSetResponder',{bubbles:!0}],c=['onMoveShouldSetResponderCapture','onMoveShouldSetResponder',{bubbles:!0}],p={touchstart:u,mousedown:u,touchmove:c,mousemove:c,scroll:['onScrollShouldSetResponderCapture','onScrollShouldSetResponder',{bubbles:!1}]},h={id:null,idPath:null,node:null},f=new Map,v=!1,R=0,S={id:null,node:null,idPath:null},b=new i.ResponderTouchHistoryStore;function T(e){S=e}function C(e){var n=f.get(e);return null!=n?n:l}function P(e){var i=e.type,s=e.target;if('touchstart'===i&&(v=!0),('touchmove'===i||R>1)&&(v=!1),!('mousedown'===i&&v||'mousemove'===i&&v||'mousemove'===i&&R<1))if(v&&'mouseup'===i)0===R&&(v=!1);else{var l=(0,t.isStartish)(i)&&(0,o.isPrimaryPointerDown)(e),u=(0,t.isMoveish)(i),c=(0,t.isEndish)(i),p=(0,t.isScroll)(i),f=(0,t.isSelectionChange)(i),P=(0,n.default)(e,b);(l||u||c)&&(e.touches?R=e.touches.length:l?R=1:c&&(R=0),b.recordTouchTrack(i,P.nativeEvent));var _,E=(0,o.getResponderPaths)(e),M=!1;if(l||u||p&&R>0){var y=S.idPath,x=E.idPath;if(null!=y&&null!=x){var L=(0,o.getLowestCommonAncestor)(y,x);if(null!=L){var q=x.indexOf(L)+(L===S.id?1:0);E={idPath:x.slice(q),nodePath:E.nodePath.slice(q)}}else E=null}null!=E&&null!=(_=w(E,e,P))&&(N(P,_),M=!0)}if(null!=S.id&&null!=S.node){var j=S,A=j.id,G=j.node,O=C(A),k=O.onResponderStart,D=O.onResponderMove,H=O.onResponderEnd,I=O.onResponderRelease,V=O.onResponderTerminate,z=O.onResponderTerminationRequest;if(P.bubbles=!1,P.cancelable=!1,P.currentTarget=G,l)null!=k&&(P.dispatchConfig.registrationName='onResponderStart',k(P));else if(u)null!=D&&(P.dispatchConfig.registrationName='onResponderMove',D(P));else{var B=(0,t.isCancelish)(i)||'contextmenu'===i||'blur'===i&&s===window||'blur'===i&&s.contains(G)&&e.relatedTarget!==G||p&&0===R||p&&s.contains(G)&&s!==G||f&&(0,o.hasValidSelection)(e),F=c&&!B&&!(0,o.hasTargetTouches)(G,e.touches);if(c&&null!=H&&(P.dispatchConfig.registrationName='onResponderEnd',H(P)),F&&(null!=I&&(P.dispatchConfig.registrationName='onResponderRelease',I(P)),T(h)),B){var J=!0;'contextmenu'!==i&&'scroll'!==i&&'selectionchange'!==i||(M?J=!1:null!=z&&(P.dispatchConfig.registrationName='onResponderTerminationRequest',!1===z(P)&&(J=!1))),J&&(null!=V&&(P.dispatchConfig.registrationName='onResponderTerminate',V(P)),T(h),v=!1,R=0)}}}}}function w(e,n,t){var o=p[n.type];if(null!=o){for(var i=e.idPath,s=e.nodePath,l=o[0],u=o[1],c=o[2].bubbles,h=function(e,n,o){var s=C(e)[o];if(null!=s&&(t.currentTarget=n,!0===s(t)))return{id:e,node:n,idPath:i.slice(i.indexOf(e))}},f=i.length-1;f>=0;f--){var v=h(i[f],s[f],l);if(null!=v)return v;if(!0===t.isPropagationStopped())return}if(c)for(var R=0;R{},o={},c=[];function l(e){return e>20?e%20:e}function f(e,t){var f,p,s,v=!1,y=e.changedTouches,h=e.type,X=!0===e.metaKey,Y=!0===e.shiftKey,P=y&&y[0].force||0,b=l(y&&y[0].identifier||0),T=y&&y[0].clientX||e.clientX,K=y&&y[0].clientY||e.clientY,_=y&&y[0].pageX||e.pageX,D=y&&y[0].pageY||e.pageY,S='function'==typeof e.preventDefault?e.preventDefault.bind(e):u,j=e.timeStamp;function H(e){return Array.prototype.slice.call(e).map(e=>({force:e.force,identifier:l(e.identifier),get locationX(){return A(e.clientX)},get locationY(){return C(e.clientY)},pageX:e.pageX,pageY:e.pageY,target:e.target,timestamp:j}))}if(null!=y)p=H(y),s=H(e.touches);else{var M=[{force:P,identifier:b,get locationX(){return A(T)},get locationY(){return C(K)},pageX:_,pageY:D,target:e.target,timestamp:j}];p=M,s='mouseup'===h||'dragstart'===h?c:M}var O={bubbles:!0,cancelable:!0,currentTarget:null,defaultPrevented:e.defaultPrevented,dispatchConfig:o,eventPhase:e.eventPhase,isDefaultPrevented:()=>e.defaultPrevented,isPropagationStopped:()=>v,isTrusted:e.isTrusted,nativeEvent:{altKey:!1,ctrlKey:!1,metaKey:X,shiftKey:Y,changedTouches:p,force:P,identifier:b,get locationX(){return A(T)},get locationY(){return C(K)},pageX:_,pageY:D,target:e.target,timestamp:j,touches:s,type:h},persist:u,preventDefault:S,stopPropagation(){v=!0},target:e.target,timeStamp:j,touchHistory:t.touchHistory};function A(e){if(f=f||(0,n.default)(O.currentTarget))return e-f.left}function C(e){if(f=f||(0,n.default)(O.currentTarget))return e-f.top}return O}},275,[67]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"BLUR",{enumerable:!0,get:function(){return t}}),Object.defineProperty(e,"CONTEXT_MENU",{enumerable:!0,get:function(){return n}}),Object.defineProperty(e,"FOCUS_OUT",{enumerable:!0,get:function(){return u}}),Object.defineProperty(e,"MOUSE_DOWN",{enumerable:!0,get:function(){return o}}),Object.defineProperty(e,"MOUSE_MOVE",{enumerable:!0,get:function(){return c}}),Object.defineProperty(e,"MOUSE_UP",{enumerable:!0,get:function(){return f}}),Object.defineProperty(e,"MOUSE_CANCEL",{enumerable:!0,get:function(){return O}}),Object.defineProperty(e,"TOUCH_START",{enumerable:!0,get:function(){return b}}),Object.defineProperty(e,"TOUCH_MOVE",{enumerable:!0,get:function(){return l}}),Object.defineProperty(e,"TOUCH_END",{enumerable:!0,get:function(){return s}}),Object.defineProperty(e,"TOUCH_CANCEL",{enumerable:!0,get:function(){return E}}),Object.defineProperty(e,"SCROLL",{enumerable:!0,get:function(){return p}}),Object.defineProperty(e,"SELECT",{enumerable:!0,get:function(){return C}}),Object.defineProperty(e,"SELECTION_CHANGE",{enumerable:!0,get:function(){return P}}),e.isStartish=function(t){return t===b||t===o},e.isMoveish=function(t){return t===l||t===c},e.isEndish=function(t){return t===s||t===f||j(t)},e.isCancelish=j,e.isScroll=function(t){return t===p},e.isSelectionChange=function(t){return t===C||t===P};var t='blur',n='contextmenu',u='focusout',o='mousedown',c='mousemove',f='mouseup',O='dragstart',b='touchstart',l='touchmove',s='touchend',E='touchcancel',p='scroll',C='select',P='selectionchange';function j(t){return t===E||t===O}},276,[]); +__d(function(g,r,_i,a,m,_e,d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.setResponderId=function(e,t){null!=e&&(e[o]=t)},_e.getResponderPaths=function(e){for(var t=[],n=[],o=u(e),l=0;l0&&(u=e[l=n-o],n=o);o-n>0&&(c=t[i=o-n],o=n);var s=n;for(;s--;){if(u===c)return u;u=e[l++],c=t[i++]}return null},_e.hasTargetTouches=function(e,t){if(!t||0===t.length)return!1;for(var n=0;n=1&&'\n'!==o&&c}Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return n}})},278,[]); +__d(function(g,r,_i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"ResponderTouchHistoryStore",{enumerable:!0,get:function(){return T}});var t=r(d[0]);function n(t){return t.timeStamp||t.timestamp}function i(t){return{touchActive:!0,startPageX:t.pageX,startPageY:t.pageY,startTimeStamp:n(t),currentPageX:t.pageX,currentPageY:t.pageY,currentTimeStamp:n(t),previousPageX:t.pageX,previousPageY:t.pageY,previousTimeStamp:n(t)}}function c(t,i){t.touchActive=!0,t.startPageX=i.pageX,t.startPageY=i.pageY,t.startTimeStamp=n(i),t.currentPageX=i.pageX,t.currentPageY=i.pageY,t.currentTimeStamp=n(i),t.previousPageX=i.pageX,t.previousPageY=i.pageY,t.previousTimeStamp=n(i)}function o(t){var n=t.identifier;return null==n&&console.error('Touch object is missing identifier.'),n}function u(t,u){var s=o(t),h=u.touchBank[s];h?c(h,t):u.touchBank[s]=i(t),u.mostRecentTimeStamp=n(t)}function s(t,i){var c=i.touchBank[o(t)];c?(c.touchActive=!0,c.previousPageX=c.currentPageX,c.previousPageY=c.currentPageY,c.previousTimeStamp=c.currentTimeStamp,c.currentPageX=t.pageX,c.currentPageY=t.pageY,c.currentTimeStamp=n(t),i.mostRecentTimeStamp=n(t)):console.warn('Cannot record touch move without a touch start.\n',"Touch Move: "+p(t)+"\n","Touch Bank: "+v(i))}function h(t,i){var c=i.touchBank[o(t)];c?(c.touchActive=!1,c.previousPageX=c.currentPageX,c.previousPageY=c.currentPageY,c.previousTimeStamp=c.currentTimeStamp,c.currentPageX=t.pageX,c.currentPageY=t.pageY,c.currentTimeStamp=n(t),i.mostRecentTimeStamp=n(t)):console.warn('Cannot record touch end without a touch start.\n',"Touch End: "+p(t)+"\n","Touch Bank: "+v(i))}function p(t){return JSON.stringify({identifier:t.identifier,pageX:t.pageX,pageY:t.pageY,timestamp:n(t)})}function v(t){var n=t.touchBank,i=JSON.stringify(n.slice(0,20));return n.length>20&&(i+=' (original size: '+n.length+')'),i}class T{constructor(){this._touchHistory={touchBank:[],numberActiveTouches:0,indexOfSingleActiveTouch:-1,mostRecentTimeStamp:0}}recordTouchTrack(n,i){var c=this._touchHistory;if((0,t.isMoveish)(n))i.changedTouches.forEach(t=>s(t,c));else if((0,t.isStartish)(n))i.changedTouches.forEach(t=>u(t,c)),c.numberActiveTouches=i.touches.length,1===c.numberActiveTouches&&(c.indexOfSingleActiveTouch=i.touches[0].identifier);else if((0,t.isEndish)(n)&&(i.changedTouches.forEach(t=>h(t,c)),c.numberActiveTouches=i.touches.length,1===c.numberActiveTouches))for(var o=c.touchBank,p=0;p{let t=!1;if(e){const n='metaKey'in e&&e.metaKey||'altKey'in e&&e.altKey||'ctrlKey'in e&&e.ctrlKey||'shiftKey'in e&&e.shiftKey,o=!('button'in e)||null==e.button||0===e.button,s=!e.currentTarget||!('target'in e.currentTarget)||[void 0,null,'','self'].includes(e.currentTarget.target);!n&&o&&s&&(e.preventDefault?.(),t=!0)}else e?.preventDefault?.(),t=!0;if(t)if(l)if(p)p.dispatch(l);else{if(!f)throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");f.dispatch(l)}else p?.navigate(s,u)}}};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1]));r(_d[2]);var n=r(_d[3]);const o=e=>e?.state?e.state:e?.screen?{routes:[{name:e.screen,params:e.params,state:e.screen?o(e.params):void 0}]}:void 0},281,[85,39,29,184]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"ServerContainer",{enumerable:!0,get:function(){return c}});var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),n=r(_d[2]),o=r(_d[3]);const c=t.forwardRef(function({children:c,location:u},f){t.useEffect(()=>{console.error("'ServerContainer' should only be used on the server with 'react-dom/server' for SSR.")},[]);const s={};if(f){const e={getCurrentOptions:()=>s.options};'function'==typeof f?f(e):f.current=e}return(0,o.jsx)(n.ServerContext.Provider,{value:{location:u},children:(0,o.jsx)(e.CurrentRenderContext.Provider,{value:s,children:c})})})},282,[85,39,193,2]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"DarkTheme",{enumerable:!0,get:function(){return t}});const t={dark:!0,colors:{primary:'rgb(10, 132, 255)',background:'rgb(1, 1, 1)',card:'rgb(18, 18, 18)',text:'rgb(229, 229, 231)',border:'rgb(39, 39, 41)',notification:'rgb(255, 69, 58)'},fonts:r(d[0]).fonts}},283,[187]); +__d(function(g,r,i,a,m,e,d){},284,[]); +__d(function(g,_r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useBuildHref=r,Object.defineProperty(_e,"useBuildAction",{enumerable:!0,get:function(){return o}}),_e.useLinkBuilder=function(){const t=r(),e=o();return{buildHref:t,buildAction:e}};var t=_r(_d[0]),e=(function(t){if(t&&t.__esModule)return t;var e={};return t&&Object.keys(t).forEach(function(n){var r=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:function(){return t[n]}})}),e.default=t,e})(_r(_d[1])),n=_r(_d[2]);function r(){const r=e.useContext(t.NavigationHelpersContext),o=e.useContext(t.NavigationRouteContext),{options:u}=e.useContext(n.LinkingContext),s=(0,t.useStateForPath)(),c=u?.getPathFromState??t.getPathFromState;return e.useCallback((e,n)=>{if(!1===u?.enabled)return;const f=!!(r&&o?.key&&s)&&(o.key===(0,t.findFocusedRoute)(s)?.key&&r.getState().routes.some(t=>t.key===o.key)),l={routes:[{name:e,params:n}]},d=t=>{if(t){const e=t.routes[0];return f&&!e.state?l:{routes:[{...e,state:d(e.state)}]}}return l},h=d(s);return c(h,u?.config)},[u?.enabled,u?.config,o?.key,r,s,c])}const o=()=>{const{options:r}=e.useContext(n.LinkingContext),o=r?.getStateFromPath??t.getStateFromPath,u=r?.getActionFromState??t.getActionFromState;return e.useCallback(e=>{if(!e.startsWith('/'))throw new Error(`The href must start with '/' (${e}).`);const n=o(e,r?.config);if(n){return u(n,r?.config)??t.CommonActions.reset(n)}throw new Error('Failed to parse the href to a navigation state.')},[r?.config,o,u])}},285,[85,39,184]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useLinkTo=function(){const o=t.useContext(e.NavigationContainerRefContext),u=(0,n.useBuildAction)();return t.useCallback(e=>{if(void 0===o)throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");const t=u(e);o.dispatch(t)},[u,o])};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),n=r(_d[2])},286,[85,39,285]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useLocale=function(){const n=e.useContext(t.LocaleDirContext);if(void 0===n)throw new Error("Couldn't determine the text direction. Is your component inside NavigationContainer?");return{direction:n}};var e=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[0])),t=r(_d[1])},287,[39,185]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useRoutePath=function(){const{options:o}=t.useContext(n.LinkingContext),u=(0,e.useStateForPath)();if(void 0===u)throw new Error("Couldn't find a state for the route object. Is your component inside a screen in a navigator?");const c=o?.getPathFromState??e.getPathFromState;return t.useMemo(()=>{if(!1===o?.enabled)return;return c(u,o?.config)},[o?.enabled,o?.config,u,c])};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),t.default=e,t})(r(_d[1])),n=r(_d[2])},288,[85,39,184]); +__d(function(g,r,i,a,m,_e,_d){"use strict";Object.defineProperty(_e,'__esModule',{value:!0}),_e.useScrollToTop=function(n){const c=t.useContext(e.NavigationContext),l=(0,e.useRoute)();if(void 0===c)throw new Error("Couldn't find a navigation object. Is your component inside NavigationContainer?");t.useEffect(()=>{const e=[];let t=c;for(;t;)'tab'===t.getState().type&&e.push(t),t=t.getParent();if(0===e.length)return;const s=e.map(t=>t.addListener('tabPress',t=>{const s=c.isFocused(),u=e.includes(c)||c.getState().routes[0].key===l.key;requestAnimationFrame(()=>{const e=o(n);s&&u&&e&&!t.defaultPrevented&&('scrollToTop'in e?e.scrollToTop():'scrollTo'in e?e.scrollTo({y:0,animated:!0}):'scrollToOffset'in e?e.scrollToOffset({offset:0,animated:!0}):'scrollResponderScrollTo'in e&&e.scrollResponderScrollTo({y:0,animated:!0}))})}));return()=>{s.forEach(e=>e())}},[c,n,l.key])};var e=r(_d[0]),t=(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach(function(o){var n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:function(){return e[o]}})}),t.default=e,t})(r(_d[1]));function o(e){return null==e.current?null:'scrollToTop'in e.current||'scrollTo'in e.current||'scrollToOffset'in e.current||'scrollResponderScrollTo'in e.current?e.current:'getScrollResponder'in e.current?e.current.getScrollResponder():'getNode'in e.current?e.current.getNode():e.current}},289,[85,39]); +__d(function(g,r,i,a,m,_e,d){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(_e,'__esModule',{value:!0}),Object.defineProperty(_e,"unstable_createElement",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(_e,"findNodeHandle",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(_e,"processColor",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(_e,"render",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(_e,"unmountComponentAtNode",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(_e,"NativeModules",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(_e,"AccessibilityInfo",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(_e,"Alert",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(_e,"Animated",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(_e,"Appearance",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(_e,"AppRegistry",{enumerable:!0,get:function(){return P.default}}),Object.defineProperty(_e,"AppState",{enumerable:!0,get:function(){return O.default}}),Object.defineProperty(_e,"BackHandler",{enumerable:!0,get:function(){return j.default}}),Object.defineProperty(_e,"Clipboard",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(_e,"Dimensions",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(_e,"Easing",{enumerable:!0,get:function(){return A.default}}),Object.defineProperty(_e,"I18nManager",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(_e,"Keyboard",{enumerable:!0,get:function(){return S.default}}),Object.defineProperty(_e,"InteractionManager",{enumerable:!0,get:function(){return B.default}}),Object.defineProperty(_e,"LayoutAnimation",{enumerable:!0,get:function(){return I.default}}),Object.defineProperty(_e,"Linking",{enumerable:!0,get:function(){return k.default}}),Object.defineProperty(_e,"NativeEventEmitter",{enumerable:!0,get:function(){return w.default}}),Object.defineProperty(_e,"PanResponder",{enumerable:!0,get:function(){return x.default}}),Object.defineProperty(_e,"PixelRatio",{enumerable:!0,get:function(){return C.default}}),Object.defineProperty(_e,"Platform",{enumerable:!0,get:function(){return L.default}}),Object.defineProperty(_e,"Share",{enumerable:!0,get:function(){return M.default}}),Object.defineProperty(_e,"StyleSheet",{enumerable:!0,get:function(){return T.default}}),Object.defineProperty(_e,"UIManager",{enumerable:!0,get:function(){return _.default}}),Object.defineProperty(_e,"Vibration",{enumerable:!0,get:function(){return E.default}}),Object.defineProperty(_e,"ActivityIndicator",{enumerable:!0,get:function(){return V.default}}),Object.defineProperty(_e,"Button",{enumerable:!0,get:function(){return N.default}}),Object.defineProperty(_e,"CheckBox",{enumerable:!0,get:function(){return R.default}}),Object.defineProperty(_e,"FlatList",{enumerable:!0,get:function(){return D.default}}),Object.defineProperty(_e,"Image",{enumerable:!0,get:function(){return F.default}}),Object.defineProperty(_e,"ImageBackground",{enumerable:!0,get:function(){return H.default}}),Object.defineProperty(_e,"KeyboardAvoidingView",{enumerable:!0,get:function(){return K.default}}),Object.defineProperty(_e,"Modal",{enumerable:!0,get:function(){return W.default}}),Object.defineProperty(_e,"Picker",{enumerable:!0,get:function(){return z.default}}),Object.defineProperty(_e,"Pressable",{enumerable:!0,get:function(){return U.default}}),Object.defineProperty(_e,"ProgressBar",{enumerable:!0,get:function(){return Y.default}}),Object.defineProperty(_e,"RefreshControl",{enumerable:!0,get:function(){return q.default}}),Object.defineProperty(_e,"SafeAreaView",{enumerable:!0,get:function(){return G.default}}),Object.defineProperty(_e,"ScrollView",{enumerable:!0,get:function(){return J.default}}),Object.defineProperty(_e,"SectionList",{enumerable:!0,get:function(){return Q.default}}),Object.defineProperty(_e,"StatusBar",{enumerable:!0,get:function(){return X.default}}),Object.defineProperty(_e,"Switch",{enumerable:!0,get:function(){return Z.default}}),Object.defineProperty(_e,"Text",{enumerable:!0,get:function(){return $.default}}),Object.defineProperty(_e,"TextInput",{enumerable:!0,get:function(){return ee.default}}),Object.defineProperty(_e,"Touchable",{enumerable:!0,get:function(){return te.default}}),Object.defineProperty(_e,"TouchableHighlight",{enumerable:!0,get:function(){return ne.default}}),Object.defineProperty(_e,"TouchableNativeFeedback",{enumerable:!0,get:function(){return re.default}}),Object.defineProperty(_e,"TouchableOpacity",{enumerable:!0,get:function(){return ue.default}}),Object.defineProperty(_e,"TouchableWithoutFeedback",{enumerable:!0,get:function(){return fe.default}}),Object.defineProperty(_e,"View",{enumerable:!0,get:function(){return ae.default}}),Object.defineProperty(_e,"VirtualizedList",{enumerable:!0,get:function(){return ie.default}}),Object.defineProperty(_e,"YellowBox",{enumerable:!0,get:function(){return oe.default}}),Object.defineProperty(_e,"LogBox",{enumerable:!0,get:function(){return le.default}}),Object.defineProperty(_e,"DeviceEventEmitter",{enumerable:!0,get:function(){return ce.default}}),Object.defineProperty(_e,"useColorScheme",{enumerable:!0,get:function(){return de.default}}),Object.defineProperty(_e,"useLocaleContext",{enumerable:!0,get:function(){return be.default}}),Object.defineProperty(_e,"useWindowDimensions",{enumerable:!0,get:function(){return ge.default}});var t=e(r(d[0])),n=e(r(d[1])),u=e(r(d[2])),f=e(r(d[3])),o=e(r(d[4])),l=e(r(d[5])),c=e(r(d[6])),b=e(r(d[7])),p=e(r(d[8])),y=e(r(d[9])),P=e(r(d[10])),O=e(r(d[11])),j=e(r(d[12])),s=e(r(d[13])),h=e(r(d[14])),A=e(r(d[15])),v=e(r(d[16])),S=e(r(d[17])),B=e(r(d[18])),I=e(r(d[19])),k=e(r(d[20])),w=e(r(d[21])),x=e(r(d[22])),C=e(r(d[23])),L=e(r(d[24])),M=e(r(d[25])),T=e(r(d[26])),_=e(r(d[27])),E=e(r(d[28])),V=e(r(d[29])),N=e(r(d[30])),R=e(r(d[31])),D=e(r(d[32])),F=e(r(d[33])),H=e(r(d[34])),K=e(r(d[35])),W=e(r(d[36])),z=e(r(d[37])),U=e(r(d[38])),Y=e(r(d[39])),q=e(r(d[40])),G=e(r(d[41])),J=e(r(d[42])),Q=e(r(d[43])),X=e(r(d[44])),Z=e(r(d[45])),$=e(r(d[46])),ee=e(r(d[47])),te=e(r(d[48])),ne=e(r(d[49])),re=e(r(d[50])),ue=e(r(d[51])),fe=e(r(d[52])),ae=e(r(d[53])),ie=e(r(d[54])),oe=e(r(d[55])),le=e(r(d[56])),ce=e(r(d[57])),de=e(r(d[58])),be=e(r(d[59])),ge=e(r(d[60]))},293,[203,294,216,295,302,65,303,304,305,387,388,391,392,393,63,384,183,394,325,395,397,46,398,62,29,401,209,66,402,403,404,408,309,359,409,410,411,416,418,423,317,424,318,363,425,426,196,428,429,433,434,405,436,311,437,438,439,440,441,442,443]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t}});var t=t=>{throw new Error("findNodeHandle is not supported on web. Use the ref property on the component instead.")}},294,[]); +__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return u}}),e.hydrate=function(u,o){return(0,n.createSheet)(o),(0,t.hydrateRoot)(o,u)};var t=r(d[0]),n=r(d[1]);function u(u,o){(0,n.createSheet)(o);var c=(0,t.createRoot)(o);return c.render(u),c}},295,[296,248]); +__d(function(g,r,i,a,m,e,d){'use strict';!(function _(){if('undefined'!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&'function'==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(_)}catch(_){console.error(_)}})(),m.exports=r(d[0])},296,[297]); +__d(function(e,n,t,r,l,a,o){ /** * @license React - * react-dom.production.js + * react-dom-client.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -"use strict";var t=r(d[0]);function i(t){var i="https://react.dev/errors/"+t;if(1{throw new Error("findNodeHandle is not supported on web. Use the ref property on the component instead.")}},292,[]); -__d(function(g,r,i,a,m,e,d){"use strict";Object.defineProperty(e,'__esModule',{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return u}}),e.hydrate=function(u,o){return(0,n.createSheet)(o),(0,t.hydrateRoot)(o,u)};var t=r(d[0]),n=r(d[1]);function u(u,o){(0,n.createSheet)(o);var c=(0,t.createRoot)(o);return c.render(u),c}},293,[294,173]); -__d(function(g,r,i,a,m,e,d){'use strict';!(function _(){if('undefined'!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&'function'==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(_)}catch(_){console.error(_)}})(),m.exports=r(d[0])},294,[295]); -__d(function(e,n,t,r,l,a,o){ +"use strict";var u=n(o[0]),i=n(o[1]),s=n(o[2]);function c(e){var n="https://react.dev/errors/"+e;if(1Q||(e.current=V[Q],V[Q]=null,Q--)}function W(e,n){Q++,V[Q]=e.current,e.current=n}var q,K,Y=B(null),X=B(null),G=B(null),Z=B(null);function J(e,n){switch(W(G,n),W(X,e),W(Y,null),n.nodeType){case 9:case 11:e=(e=n.documentElement)&&(e=e.namespaceURI)?If(e):0;break;default:if(e=n.tagName,n=n.namespaceURI)e=Uf(n=If(n),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}H(Y),W(Y,e)}function ee(){H(Y),H(X),H(G)}function ne(e){null!==e.memoizedState&&W(Z,e);var n=Y.current,t=Uf(n,e.type);n!==t&&(W(X,e),W(Y,t))}function te(e){X.current===e&&(H(Y),H(X)),Z.current===e&&(H(Z),Id._currentValue=j)}function re(e){if(void 0===q)try{throw Error()}catch(e){var n=e.stack.trim().match(/\n( *(at )?)/);q=n&&n[1]||"",K=-1)":-1--l||i[r]!==s[l]){var c="\n"+i[r].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}}while(1<=r&&0<=l);break}}}finally{le=!1,Error.prepareStackTrace=t}return(t=e?e.displayName||e.name:"")?re(t):""}function oe(e,n){switch(e.tag){case 26:case 27:case 5:return re(e.type);case 16:return re("Lazy");case 13:return e.child!==n&&null!==n?re("Suspense Fallback"):re("Suspense");case 19:return re("SuspenseList");case 0:case 15:return ae(e.type,!1);case 11:return ae(e.type.render,!1);case 1:return ae(e.type,!0);case 31:return re("Activity");default:return""}}function ue(e){try{var n="",t=null;do{n+=oe(e,t),t=e,e=e.return}while(e);return n}catch(e){return"\nError generating stack: "+e.message+"\n"+e.stack}}var ie=Object.prototype.hasOwnProperty,se=u.unstable_scheduleCallback,ce=u.unstable_cancelCallback,fe=u.unstable_shouldYield,de=u.unstable_requestPaint,pe=u.unstable_now,me=u.unstable_getCurrentPriorityLevel,he=u.unstable_ImmediatePriority,ge=u.unstable_UserBlockingPriority,ve=u.unstable_NormalPriority,ye=u.unstable_LowPriority,be=u.unstable_IdlePriority,ke=u.log,we=u.unstable_setDisableYieldValue,Se=null,Ee=null;function xe(e){if("function"==typeof ke&&we(e),Ee&&"function"==typeof Ee.setStrictMode)try{Ee.setStrictMode(Se,e)}catch(e){}}var Ce=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(ze(e)/Pe|0)|0},ze=Math.log,Pe=Math.LN2;var Ne=256,Le=262144,Te=4194304;function _e(e){var n=42&e;if(0!==n)return n;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return 261888&e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 16777216:case 33554432:return 62914560&e;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Fe(e,n,t){var r=e.pendingLanes;if(0===r)return 0;var l=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var u=134217727&r;return 0!==u?0!==(r=u&~a)?l=_e(r):0!==(o&=u)?l=_e(o):t||0!==(t=u&~e)&&(l=_e(t)):0!==(u=r&~a)?l=_e(u):0!==o?l=_e(o):t||0!==(t=r&~e)&&(l=_e(t)),0===l?0:0!==n&&n!==l&&0===(n&a)&&((a=l&-l)>=(t=n&-n)||32===a&&4194048&t)?n:l}function De(e,n){return 0===(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&n)}function Oe(e,n){switch(e){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;default:return-1}}function Me(){var e=Te;return!(62914560&(Te<<=1))&&(Te=4194304),e}function Ae(e){for(var n=[],t=0;31>t;t++)n.push(e);return n}function Re(e,n){e.pendingLanes|=n,268435456!==n&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ie(e,n,t,r,l,a){var o=e.pendingLanes;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=t,e.entangledLanes&=t,e.errorRecoveryDisabledLanes&=t,e.shellSuspendCounter=0;var u=e.entanglements,i=e.expirationTimes,s=e.hiddenUpdates;for(t=o&~t;0=Dt),At=String.fromCharCode(32),Rt=!1;function It(e,n){switch(e){case"keyup":return-1!==_t.indexOf(n.keyCode);case"keydown":return 229!==n.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ut(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var $t=!1;function jt(e,n){switch(e){case"compositionend":return Ut(n);case"keypress":return 32!==n.which?null:(Rt=!0,At);case"textInput":return(e=n.data)===At&&Rt?null:e;default:return null}}function Vt(e,n){if($t)return"compositionend"===e||!Ft&&It(e,n)?(e=nt(),et=Jn=Zn=null,$t=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:r,offset:n-e};e=t}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=sr(r)}}function fr(e,n){return!(!e||!n)&&(e===n||(!e||3!==e.nodeType)&&(n&&3===n.nodeType?fr(e,n.parentNode):"contains"in e?e.contains(n):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(n))))}function dr(e){for(var n=En((e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window).document);n instanceof e.HTMLIFrameElement;){try{var t="string"==typeof n.contentWindow.location.href}catch(e){t=!1}if(!t)break;n=En((e=n.contentWindow).document)}return n}function pr(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&("input"===n&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===n||"true"===e.contentEditable)}var mr=Yn&&"documentMode"in document&&11>=document.documentMode,hr=null,gr=null,vr=null,yr=!1;function br(e,n,t){var r=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;yr||null==hr||hr!==En(r)||("selectionStart"in(r=hr)&&pr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},vr&&ir(vr,r)||(vr=r,0<(r=Sf(gr,"onSelect")).length&&(n=new ct("onSelect","select",null,n,t),e.push({event:n,listeners:r}),n.target=hr)))}function kr(e,n){var t={};return t[e.toLowerCase()]=n.toLowerCase(),t["Webkit"+e]="webkit"+n,t["Moz"+e]="moz"+n,t}var wr={animationend:kr("Animation","AnimationEnd"),animationiteration:kr("Animation","AnimationIteration"),animationstart:kr("Animation","AnimationStart"),transitionrun:kr("Transition","TransitionRun"),transitionstart:kr("Transition","TransitionStart"),transitioncancel:kr("Transition","TransitionCancel"),transitionend:kr("Transition","TransitionEnd")},Sr={},Er={};function xr(e){if(Sr[e])return Sr[e];if(!wr[e])return e;var n,t=wr[e];for(n in t)if(t.hasOwnProperty(n)&&n in Er)return Sr[e]=t[n];return e}Yn&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete wr.animationend.animation,delete wr.animationiteration.animation,delete wr.animationstart.animation),"TransitionEvent"in window||delete wr.transitionend.transition);var Cr=xr("animationend"),zr=xr("animationiteration"),Pr=xr("animationstart"),Nr=xr("transitionrun"),Lr=xr("transitionstart"),Tr=xr("transitioncancel"),_r=xr("transitionend"),Fr=new Map,Dr="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Or(e,n){Fr.set(e,n),cn(n,[e])}Dr.push("scrollEnd");var Mr="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var n=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(n))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)},Ar=[],Rr=0,Ir=0;function Ur(){for(var e=Rr,n=Ir=Rr=0;n>=o,l-=o,fl=1<<32-Ce(n)+l|t<h?(g=f,f=null):g=f.sibling;var v=p(l,f,u[h],i);if(null===v){null===f&&(f=g);break}e&&f&&null===v.alternate&&n(l,f),o=a(v,o,h),null===c?s=v:c.sibling=v,c=v,f=g}if(h===u.length)return t(l,f),kl&&pl(l,h),s;if(null===f){for(;hg?(v=h,h=null):v=h.sibling;var b=p(l,h,y.value,i);if(null===b){null===h&&(h=v);break}e&&h&&null===b.alternate&&n(l,h),o=a(b,o,g),null===f?s=b:f.sibling=b,f=b,h=v}if(y.done)return t(l,h),kl&&pl(l,g),s;if(null===h){for(;!y.done;g++,y=u.next())null!==(y=d(l,y.value,i))&&(o=a(y,o,g),null===f?s=y:f.sibling=y,f=y);return kl&&pl(l,g),s}for(h=r(h);!y.done;g++,y=u.next())null!==(y=m(h,l,g,y.value,i))&&(e&&null!==y.alternate&&h.delete(null===y.key?g:y.key),o=a(y,o,g),null===f?s=y:f.sibling=y,f=y);return e&&h.forEach(function(e){return n(l,e)}),kl&&pl(l,g),s}function v(e,r,a,u){if("object"==typeof a&&null!==a&&a.type===S&&null===a.key&&(a=a.props.children),"object"==typeof a&&null!==a){switch(a.$$typeof){case k:e:{for(var i=a.key;null!==r;){if(r.key===i){if((i=a.type)===S){if(7===r.tag){t(e,r.sibling),(u=l(r,a.props.children)).return=e,e=u;break e}}else if(r.elementType===i||"object"==typeof i&&null!==i&&i.$$typeof===_&&pa(i)===r.type){t(e,r.sibling),ka(u=l(r,a.props),a),u.return=e,e=u;break e}t(e,r);break}n(e,r),r=r.sibling}a.type===S?((u=Zr(a.props.children,e.mode,u,a.key)).return=e,e=u):(ka(u=Gr(a.type,a.key,a.props,null,e.mode,u),a),u.return=e,e=u)}return o(e);case w:e:{for(i=a.key;null!==r;){if(r.key===i){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){t(e,r.sibling),(u=l(r,a.children||[])).return=e,e=u;break e}t(e,r);break}n(e,r),r=r.sibling}(u=nl(a,e.mode,u)).return=e,e=u}return o(e);case _:return v(e,r,a=pa(a),u)}if(I(a))return h(e,r,a,u);if(M(a)){if("function"!=typeof(i=M(a)))throw Error(c(150));return g(e,r,a=i.call(a),u)}if("function"==typeof a.then)return v(e,r,ba(a),u);if(a.$$typeof===z)return v(e,r,Vl(e,a),u);wa(e,a)}return"string"==typeof a&&""!==a||"number"==typeof a||"bigint"==typeof a?(a=""+a,null!==r&&6===r.tag?(t(e,r.sibling),(u=l(r,a)).return=e,e=u):(t(e,r),(u=Jr(a,e.mode,u)).return=e,e=u),o(e)):t(e,r)}return function(e,n,t,r){try{ya=0;var l=v(e,n,t,r);return va=null,l}catch(n){if(n===ua||n===sa)throw n;var a=qr(29,n,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ea=Sa(!0),xa=Sa(!1),Ca=!1;function za(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Pa(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Na(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function La(e,n,t){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&Ls){var l=r.pending;return null===l?n.next=n:(n.next=l.next,l.next=n),r.pending=n,n=Br(e),Qr(e,null,t),n}return $r(e,r,n,t),Br(e)}function Ta(e,n,t){if(null!==(n=n.updateQueue)&&(n=n.shared,4194048&t)){var r=n.lanes;t|=r&=e.pendingLanes,n.lanes=t,$e(e,t)}}function _a(e,n){var t=e.updateQueue,r=e.alternate;if(null!==r&&t===(r=r.updateQueue)){var l=null,a=null;if(null!==(t=t.firstBaseUpdate)){do{var o={lane:t.lane,tag:t.tag,payload:t.payload,callback:null,next:null};null===a?l=a=o:a=a.next=o,t=t.next}while(null!==t);null===a?l=a=n:a=a.next=n}else l=a=n;return t={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},void(e.updateQueue=t)}null===(e=t.lastBaseUpdate)?t.firstBaseUpdate=n:e.next=n,t.lastBaseUpdate=n}var Fa=!1;function Da(){if(Fa){if(null!==Jl)throw Jl}}function Oa(e,n,t,r){Fa=!1;var l=e.updateQueue;Ca=!1;var a=l.firstBaseUpdate,o=l.lastBaseUpdate,u=l.shared.pending;if(null!==u){l.shared.pending=null;var i=u,s=i.next;i.next=null,null===o?a=s:o.next=s,o=i;var c=e.alternate;null!==c&&((u=(c=c.updateQueue).lastBaseUpdate)!==o&&(null===u?c.firstBaseUpdate=s:u.next=s,c.lastBaseUpdate=i))}if(null!==a){var f=l.baseState;for(o=0,c=s=i=null,u=a;;){var d=-536870913&u.lane,p=d!==u.lane;if(p?(Fs&d)===d:(r&d)===d){0!==d&&d===Zl&&(Fa=!0),null!==c&&(c=c.next={lane:0,tag:u.tag,payload:u.payload,callback:null,next:null});e:{var m=e,h=u;d=n;var g=t;switch(h.tag){case 1:if("function"==typeof(m=h.payload)){f=m.call(g,f,d);break e}f=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(d="function"==typeof(m=h.payload)?m.call(g,f,d):m))break e;f=y({},f,d);break e;case 2:Ca=!0}}null!==(d=u.callback)&&(e.flags|=64,p&&(e.flags|=8192),null===(p=l.callbacks)?l.callbacks=[d]:p.push(d))}else p={lane:d,tag:u.tag,payload:u.payload,callback:u.callback,next:null},null===c?(s=c=p,i=f):c=c.next=p,o|=d;if(null===(u=u.next)){if(null===(u=l.shared.pending))break;u=(p=u).next,p.next=null,l.lastBaseUpdate=p,l.shared.pending=null}}null===c&&(i=f),l.baseState=i,l.firstBaseUpdate=s,l.lastBaseUpdate=c,null===a&&(l.shared.lanes=0),$s|=o,e.lanes=o,e.memoizedState=f}}function Ma(e,n){if("function"!=typeof e)throw Error(c(191,e));e.call(n)}function Aa(e,n){var t=e.callbacks;if(null!==t)for(e.callbacks=null,e=0;ea?a:8;var o,u,i,s=U.T,c={};U.T=c,Su(e,!1,n,t);try{var f=l(),d=U.S;if(null!==d&&d(c,f),null!==f&&"object"==typeof f&&"function"==typeof f.then)wu(e,n,(o=r,u=[],i={status:"pending",value:null,reason:null,then:function(e){u.push(e)}},f.then(function(){i.status="fulfilled",i.value=o;for(var e=0;e<\/script>",a=a.removeChild(a.firstChild);break;case"select":a="string"==typeof r.is?o.createElement("select",{is:r.is}):o.createElement("select"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a="string"==typeof r.is?o.createElement(l,{is:r.is}):o.createElement(l)}}a[qe]=n,a[Ke]=r;e:for(o=n.child;null!==o;){if(5===o.tag||6===o.tag)a.appendChild(o.stateNode);else if(4!==o.tag&&27!==o.tag&&null!==o.child){o.child.return=o,o=o.child;continue}if(o===n)break e;for(;null===o.sibling;){if(null===o.return||o.return===n)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}n.stateNode=a;e:switch(_f(a,l,r),l){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}r&&wi(n)}}return zi(n),Si(n,n.type,null===e||e.memoizedProps,n.pendingProps,t),null;case 6:if(e&&null!=n.stateNode)e.memoizedProps!==r&&wi(n);else{if("string"!=typeof r&&null===n.stateNode)throw Error(c(166));if(e=G.current,Pl(n)){if(e=n.stateNode,t=n.memoizedProps,r=null,null!==(l=yl))switch(l.tag){case 27:case 5:r=l.memoizedProps}e[qe]=n,(e=!!(e.nodeValue===t||null!==r&&!0===r.suppressHydrationWarning||Nf(e.nodeValue,t)))||xl(n,!0)}else(e=Rf(e).createTextNode(r))[qe]=n,n.stateNode=e}return zi(n),null;case 31:if(t=n.memoizedState,null===e||null!==e.memoizedState){if(r=Pl(n),null!==t){if(null===e){if(!r)throw Error(c(318));if(!(e=null!==(e=n.memoizedState)?e.dehydrated:null))throw Error(c(557));e[qe]=n}else Nl(),!(128&n.flags)&&(n.memoizedState=null),n.flags|=4;zi(n),e=!1}else t=Ll(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=t),e=!0;if(!e)return 256&n.flags?(Ka(n),n):(Ka(n),null);if(128&n.flags)throw Error(c(558))}return zi(n),null;case 13:if(r=n.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(l=Pl(n),null!==r&&null!==r.dehydrated){if(null===e){if(!l)throw Error(c(318));if(!(l=null!==(l=n.memoizedState)?l.dehydrated:null))throw Error(c(317));l[qe]=n}else Nl(),!(128&n.flags)&&(n.memoizedState=null),n.flags|=4;zi(n),l=!1}else l=Ll(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l)return 256&n.flags?(Ka(n),n):(Ka(n),null)}return Ka(n),128&n.flags?(n.lanes=t,n):(t=null!==r,e=null!==e&&null!==e.memoizedState,t&&(l=null,null!==(r=n.child).alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(l=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==l&&(r.flags|=2048)),t!==e&&t&&(n.child.flags|=8192),xi(n,n.updateQueue),zi(n),null);case 4:return ee(),null===e&&yf(n.stateNode.containerInfo),zi(n),null;case 10:return Ml(n.type),zi(n),null;case 19:if(H(Ya),null===(r=n.memoizedState))return zi(n),null;if(l=!!(128&n.flags),null===(a=r.rendering))if(l)Ci(r,!1);else{if(0!==Us||null!==e&&128&e.flags)for(e=n.child;null!==e;){if(null!==(a=Xa(e))){for(n.flags|=128,Ci(r,!1),e=a.updateQueue,n.updateQueue=e,xi(n,e),n.subtreeFlags=0,e=t,t=n.child;null!==t;)Xr(t,e),t=t.sibling;return W(Ya,1&Ya.current|2),kl&&pl(n,r.treeForkCount),n.child}e=e.sibling}null!==r.tail&&pe()>Xs&&(n.flags|=128,l=!0,Ci(r,!1),n.lanes=4194304)}else{if(!l)if(null!==(e=Xa(a))){if(n.flags|=128,l=!0,e=e.updateQueue,n.updateQueue=e,xi(n,e),Ci(r,!0),null===r.tail&&"hidden"===r.tailMode&&!a.alternate&&!kl)return zi(n),null}else 2*pe()-r.renderingStartTime>Xs&&536870912!==t&&(n.flags|=128,l=!0,Ci(r,!1),n.lanes=4194304);r.isBackwards?(a.sibling=n.child,n.child=a):(null!==(e=r.last)?e.sibling=a:n.child=a,r.last=a)}return null!==r.tail?(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=pe(),e.sibling=null,t=Ya.current,W(Ya,l?1&t|2:1&t),kl&&pl(n,r.treeForkCount),e):(zi(n),null);case 22:case 23:return Ka(n),ja(),r=null!==n.memoizedState,null!==e?null!==e.memoizedState!==r&&(n.flags|=8192):r&&(n.flags|=8192),r?!!(536870912&t)&&!(128&n.flags)&&(zi(n),6&n.subtreeFlags&&(n.flags|=8192)):zi(n),null!==(t=n.updateQueue)&&xi(n,t.retryQueue),t=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(t=e.memoizedState.cachePool.pool),r=null,null!==n.memoizedState&&null!==n.memoizedState.cachePool&&(r=n.memoizedState.cachePool.pool),r!==t&&(n.flags|=2048),null!==e&&H(ra),null;case 24:return t=null,null!==e&&(t=e.memoizedState.cache),n.memoizedState.cache!==t&&(n.flags|=2048),Ml(ql),zi(n),null;case 25:case 30:return null}throw Error(c(156,n.tag))}function Ni(e,n){switch(gl(n),n.tag){case 1:return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 3:return Ml(ql),ee(),65536&(e=n.flags)&&!(128&e)?(n.flags=-65537&e|128,n):null;case 26:case 27:case 5:return te(n),null;case 31:if(null!==n.memoizedState){if(Ka(n),null===n.alternate)throw Error(c(340));Nl()}return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 13:if(Ka(n),null!==(e=n.memoizedState)&&null!==e.dehydrated){if(null===n.alternate)throw Error(c(340));Nl()}return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 19:return H(Ya),null;case 4:return ee(),null;case 10:return Ml(n.type),null;case 22:case 23:return Ka(n),ja(),null!==e&&H(ra),65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 24:return Ml(ql),null;default:return null}}function Li(e,n){switch(gl(n),n.tag){case 3:Ml(ql),ee();break;case 26:case 27:case 5:te(n);break;case 4:ee();break;case 31:null!==n.memoizedState&&Ka(n);break;case 13:Ka(n);break;case 19:H(Ya);break;case 10:Ml(n.type);break;case 22:case 23:Ka(n),ja(),null!==e&&H(ra);break;case 24:Ml(ql)}}function Ti(e,n){try{var t=n.updateQueue,r=null!==t?t.lastEffect:null;if(null!==r){var l=r.next;t=l;do{if((t.tag&e)===e){r=void 0;var a=t.create,o=t.inst;r=a(),o.destroy=r}t=t.next}while(t!==l)}}catch(e){$c(n,n.return,e)}}function _i(e,n,t){try{var r=n.updateQueue,l=null!==r?r.lastEffect:null;if(null!==l){var a=l.next;r=a;do{if((r.tag&e)===e){var o=r.inst,u=o.destroy;if(void 0!==u){o.destroy=void 0,l=n;var i=t,s=u;try{s()}catch(e){$c(l,i,e)}}}r=r.next}while(r!==a)}}catch(e){$c(n,n.return,e)}}function Fi(e){var n=e.updateQueue;if(null!==n){var t=e.stateNode;try{Aa(n,t)}catch(n){$c(e,e.return,n)}}}function Di(e,n,t){t.props=Ou(e.type,e.memoizedProps),t.state=e.memoizedState;try{t.componentWillUnmount()}catch(t){$c(e,n,t)}}function Oi(e,n){try{var t=e.ref;if(null!==t){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;default:r=e.stateNode}"function"==typeof t?e.refCleanup=t(r):t.current=r}}catch(t){$c(e,n,t)}}function Mi(e,n){var t=e.ref,r=e.refCleanup;if(null!==t)if("function"==typeof r)try{r()}catch(t){$c(e,n,t)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if("function"==typeof t)try{t(null)}catch(t){$c(e,n,t)}else t.current=null}function Ai(e){var n=e.type,t=e.memoizedProps,r=e.stateNode;try{e:switch(n){case"button":case"input":case"select":case"textarea":t.autoFocus&&r.focus();break e;case"img":t.src?r.src=t.src:t.srcSet&&(r.srcset=t.srcSet)}}catch(n){$c(e,e.return,n)}}function Ri(e,n,t){try{var r=e.stateNode;Ff(r,e.type,t,n),r[Ke]=n}catch(n){$c(e,e.return,n)}}function Ii(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&Kf(e.type)||4===e.tag}function Ui(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||Ii(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&Kf(e.type))continue e;if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function $i(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?(9===t.nodeType?t.body:"HTML"===t.nodeName?t.ownerDocument.body:t).insertBefore(e,n):((n=9===t.nodeType?t.body:"HTML"===t.nodeName?t.ownerDocument.body:t).appendChild(e),null!=(t=t._reactRootContainer)||null!==n.onclick||(n.onclick=$n));else if(4!==r&&(27===r&&Kf(e.type)&&(t=e.stateNode,n=null),null!==(e=e.child)))for($i(e,n,t),e=e.sibling;null!==e;)$i(e,n,t),e=e.sibling}function ji(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(4!==r&&(27===r&&Kf(e.type)&&(t=e.stateNode),null!==(e=e.child)))for(ji(e,n,t),e=e.sibling;null!==e;)ji(e,n,t),e=e.sibling}function Vi(e){var n=e.stateNode,t=e.memoizedProps;try{for(var r=e.type,l=n.attributes;l.length;)n.removeAttributeNode(l[0]);_f(n,r,t),n[qe]=e,n[Ke]=t}catch(n){$c(e,e.return,n)}}var Qi=!1,Bi=!1,Hi=!1,Wi="function"==typeof WeakSet?WeakSet:Set,qi=null;function Ki(e,n){if(e=e.containerInfo,Mf=qd,pr(e=dr(e))){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(t=(t=e.ownerDocument)&&t.defaultView||window).getSelection&&t.getSelection();if(r&&0!==r.rangeCount){t=r.anchorNode;var l=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{t.nodeType,a.nodeType}catch(e){t=null;break e}var o=0,u=-1,i=-1,s=0,f=0,d=e,p=null;n:for(;;){for(var m;d!==t||0!==l&&3!==d.nodeType||(u=o+l),d!==a||0!==r&&3!==d.nodeType||(i=o+r),3===d.nodeType&&(o+=d.nodeValue.length),null!==(m=d.firstChild);)p=d,d=m;for(;;){if(d===e)break n;if(p===t&&++s===l&&(u=o),p===a&&++f===r&&(i=o),null!==(m=d.nextSibling))break;p=(d=p).parentNode}d=m}t=-1===u||-1===i?null:{start:u,end:i}}else t=null}t=t||{start:0,end:0}}else t=null;for(Af={focusedElem:e,selectionRange:t},qd=!1,qi=n;null!==qi;)if(e=(n=qi).child,1028&n.subtreeFlags&&null!==e)e.return=n,qi=e;else for(;null!==qi;){switch(a=(n=qi).alternate,e=n.flags,n.tag){case 0:if(4&e&&null!==(e=null!==(e=n.updateQueue)?e.events:null))for(t=0;t title"))),_f(a,r,t),a[qe]=e,on(a),r=a;break e;case"link":var o=Pd("link","href",l).get(r+(t.href||""));if(o)for(var u=0;ug&&(o=g,g=h,h=o);var v=cr(u,h),y=cr(u,g);if(v&&y&&(1!==p.rangeCount||p.anchorNode!==v.node||p.anchorOffset!==v.offset||p.focusNode!==y.node||p.focusOffset!==y.offset)){var b=f.createRange();b.setStart(v.node,v.offset),p.removeAllRanges(),h>g?(p.addRange(b),p.extend(y.node,y.offset)):(b.setEnd(y.node,y.offset),p.addRange(b))}}}}for(f=[],p=u;p=p.parentNode;)1===p.nodeType&&f.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof u.focus&&u.focus(),u=0;ut?32:t,U.T=null,t=lc,lc=null;var a=ec,o=tc;if(Js=0,nc=ec=null,tc=0,6&Ls)throw Error(c(331));var u=Ls;if(Ls|=4,xs(a.current),gs(a,a.current,o,t),Ls=u,Jc(0,!1),Ee&&"function"==typeof Ee.onPostCommitFiberRoot)try{Ee.onPostCommitFiberRoot(Se,a)}catch(e){}return!0}finally{$.p=l,U.T=r,Ac(e,n)}}function Uc(e,n,t){n=rl(t,n),null!==(e=La(e,n=$u(e.stateNode,n,2),2))&&(Re(e,2),Zc(e))}function $c(e,n,t){if(3===e.tag)Uc(e,e,t);else for(;null!==n;){if(3===n.tag){Uc(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Zs||!Zs.has(r))){e=rl(t,e),null!==(r=La(n,t=ju(2),2))&&(Vu(t,r,n,e),Re(r,2),Zc(r));break}}n=n.return}}function jc(e,n,t){var r=e.pingCache;if(null===r){r=e.pingCache=new Ns;var l=new Set;r.set(n,l)}else void 0===(l=r.get(n))&&(l=new Set,r.set(n,l));l.has(t)||(Rs=!0,l.add(t),e=Vc.bind(null,e,n,t),n.then(e,e))}function Vc(e,n,t){var r=e.pingCache;null!==r&&r.delete(n),e.pingedLanes|=e.suspendedLanes&t,e.warmLanes&=~t,Ts===e&&(Fs&t)===t&&(4===Us||3===Us&&(62914560&Fs)===Fs&&300>pe()-Ks?!(2&Ls)&&vc(e,0):Vs|=t,Bs===Fs&&(Bs=0)),Zc(e)}function Qc(e,n){0===n&&(n=Me()),null!==(e=Vr(e,n))&&(Re(e,n),Zc(e))}function Bc(e){var n=e.memoizedState,t=0;null!==n&&(t=n.retryLane),Qc(e,t)}function Hc(e,n){var t=0;switch(e.tag){case 31:case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(t=l.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(c(314))}null!==r&&r.delete(n),Qc(e,t)}var Wc=null,qc=null,Kc=!1,Yc=!1,Xc=!1,Gc=0;function Zc(e){e!==qc&&null===e.next&&(null===qc?Wc=qc=e:qc=qc.next=e),Yc=!0,Kc||(Kc=!0,Wf(function(){6&Ls?se(he,ef):nf()}))}function Jc(e,n){if(!Xc&&Yc){Xc=!0;do{for(var t=!1,r=Wc;null!==r;){if(!n)if(0!==e){var l=r.pendingLanes;if(0===l)var a=0;else{var o=r.suspendedLanes,u=r.pingedLanes;a=(1<<31-Ce(42|e)+1)-1,a=201326741&(a&=l&~(o&~u))?201326741&a|1:a?2|a:0}0!==a&&(t=!0,lf(r,a))}else a=Fs,!(3&(a=Fe(r,r===Ts?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||De(r,a)||(t=!0,lf(r,a));r=r.next}}while(t);Xc=!1}}function ef(){nf()}function nf(){Yc=Kc=!1;var e=0;0!==Gc&&Vf()&&(e=Gc);for(var n=pe(),t=null,r=Wc;null!==r;){var l=r.next,a=tf(r,n);0===a?(r.next=null,null===t?Wc=l:t.next=l,null===l&&(qc=t)):(t=r,(0!==e||3&a)&&(Yc=!0)),r=l}0!==Js&&5!==Js||Jc(e,!1),0!==Gc&&(Gc=0)}function tf(e,n){for(var t=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=-62914561&e.pendingLanes;0u)break;var c=i.transferSize,f=i.initiatorType;c&&Df(f)&&(o+=c*((i=i.responseEnd) title"):null)}function Ld(e,n,t){if(1===t||null!=n.itemProp)return!1;switch(e){case"meta":case"title":return!0;case"style":if("string"!=typeof n.precedence||"string"!=typeof n.href||""===n.href)break;return!0;case"link":if("string"!=typeof n.rel||"string"!=typeof n.href||""===n.href||n.onLoad||n.onError)break;return"stylesheet"!==n.rel||(e=n.disabled,"string"==typeof n.precedence&&null==e);case"script":if(n.async&&"function"!=typeof n.async&&"symbol"!=typeof n.async&&!n.onLoad&&!n.onError&&n.src&&"string"==typeof n.src)return!0}return!1}function Td(e){return!!("stylesheet"!==e.type||3&e.state.loading)}function _d(e,n,t,r){if(!("stylesheet"!==t.type||"string"==typeof r.media&&!1===matchMedia(r.media).matches||4&t.state.loading)){if(null===t.instance){var l=vd(r.href),a=n.querySelector(yd(l));if(a)return null!==(n=a._p)&&"object"==typeof n&&"function"==typeof n.then&&(e.count++,e=Od.bind(e),n.then(e,e)),t.state.loading|=4,t.instance=a,void on(a);a=n.ownerDocument||n,r=bd(r),(l=cd.get(l))&&xd(r,l),on(a=a.createElement("link"));var o=a;o._p=new Promise(function(e,n){o.onload=e,o.onerror=n}),_f(a,"link",r),t.instance=a}null===e.stylesheets&&(e.stylesheets=new Map),e.stylesheets.set(t,n),(n=t.state.preload)&&!(3&t.state.loading)&&(e.count++,t=Od.bind(e),n.addEventListener("load",t),n.addEventListener("error",t))}}var Fd=0;function Dd(e,n){return e.stylesheets&&0===e.count&&Ad(e,e.stylesheets),0Fd?50:800)+n);return e.unsuspend=t,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(l)}}:null}function Od(){if(this.count--,0===this.count&&(0===this.imgCount||!this.waitingForImages))if(this.stylesheets)Ad(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}var Md=null;function Ad(e,n){e.stylesheets=null,null!==e.unsuspend&&(e.count++,Md=new Map,n.forEach(Rd,e),Md=null,Od.call(e))}function Rd(e,n){if(!(4&n.state.loading)){var t=Md.get(e);if(t)var r=t.get(null);else{t=new Map,Md.set(e,t);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;aQ||(e.current=H[Q],H[Q]=null,Q--)}function W(e,n){Q++,H[Q]=e.current,e.current=n}var q=$(null),K=$(null),Y=$(null),X=$(null);function G(e,n){switch(W(Y,n),W(K,e),W(q,null),n.nodeType){case 9:case 11:e=(e=n.documentElement)&&(e=e.namespaceURI)?xf(e):0;break;default:if(e=n.tagName,n=n.namespaceURI)e=Cf(n=xf(n),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}B(q),W(q,e)}function Z(){B(q),B(K),B(Y)}function J(e){null!==e.memoizedState&&W(X,e);var n=q.current,t=Cf(n,e.type);n!==t&&(W(K,e),W(q,t))}function ee(e){K.current===e&&(B(q),B(K)),X.current===e&&(B(X),wd._currentValue=V)}var ne=Object.prototype.hasOwnProperty,te=u.unstable_scheduleCallback,re=u.unstable_cancelCallback,le=u.unstable_shouldYield,ae=u.unstable_requestPaint,oe=u.unstable_now,ue=u.unstable_getCurrentPriorityLevel,ie=u.unstable_ImmediatePriority,se=u.unstable_UserBlockingPriority,ce=u.unstable_NormalPriority,fe=u.unstable_LowPriority,de=u.unstable_IdlePriority,pe=u.log,me=u.unstable_setDisableYieldValue,he=null,ge=null;function ve(e){if("function"==typeof pe&&me(e),ge&&"function"==typeof ge.setStrictMode)try{ge.setStrictMode(he,e)}catch(e){}}var ye=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(be(e)/ke|0)|0},be=Math.log,ke=Math.LN2;var we=256,Se=4194304;function Ee(e){var n=42&e;if(0!==n)return n;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194048&e;case 4194304:case 8388608:case 16777216:case 33554432:return 62914560&e;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function xe(e,n,t){var r=e.pendingLanes;if(0===r)return 0;var l=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var u=134217727&r;return 0!==u?0!==(r=u&~a)?l=Ee(r):0!==(o&=u)?l=Ee(o):t||0!==(t=u&~e)&&(l=Ee(t)):0!==(u=r&~a)?l=Ee(u):0!==o?l=Ee(o):t||0!==(t=r&~e)&&(l=Ee(t)),0===l?0:0!==n&&n!==l&&0===(n&a)&&((a=l&-l)>=(t=n&-n)||32===a&&4194048&t)?n:l}function Ce(e,n){return 0===(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&n)}function ze(e,n){switch(e){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;default:return-1}}function Pe(){var e=we;return!(4194048&(we<<=1))&&(we=256),e}function Ne(){var e=Se;return!(62914560&(Se<<=1))&&(Se=4194304),e}function Le(e){for(var n=[],t=0;31>t;t++)n.push(e);return n}function Te(e,n){e.pendingLanes|=n,268435456!==n&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function _e(e,n,t,r,l,a){var o=e.pendingLanes;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=t,e.entangledLanes&=t,e.errorRecoveryDisabledLanes&=t,e.shellSuspendCounter=0;var u=e.entanglements,i=e.expirationTimes,s=e.hiddenUpdates;for(t=o&~t;0)":-1--l||i[r]!==s[l]){var c="\n"+i[r].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}}while(1<=r&&0<=l);break}}}finally{pn=!1,Error.prepareStackTrace=t}return(t=e?e.displayName||e.name:"")?dn(t):""}function hn(e){switch(e.tag){case 26:case 27:case 5:return dn(e.type);case 16:return dn("Lazy");case 13:return dn("Suspense");case 19:return dn("SuspenseList");case 0:case 15:return mn(e.type,!1);case 11:return mn(e.type.render,!1);case 1:return mn(e.type,!0);case 31:return dn("Activity");default:return""}}function gn(e){try{var n="";do{n+=hn(e),e=e.return}while(e);return n}catch(e){return"\nError generating stack: "+e.message+"\n"+e.stack}}function vn(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function yn(e){var n=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===n||"radio"===n)}function bn(e){var n=yn(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),r=""+e[n];if(!e.hasOwnProperty(n)&&void 0!==t&&"function"==typeof t.get&&"function"==typeof t.set){var l=t.get,a=t.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return l.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,n,{enumerable:t.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function kn(e){e._valueTracker||(e._valueTracker=bn(e))}function wn(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue(),r="";return e&&(r=yn(e)?e.checked?"true":"false":e.value),(e=r)!==t&&(n.setValue(e),!0)}function Sn(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(n){return e.body}}var En=/[\n"\\]/g;function xn(e){return e.replace(En,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function Cn(e,n,t,r,l,a,o,u){e.name="",null!=o&&"function"!=typeof o&&"symbol"!=typeof o&&"boolean"!=typeof o?e.type=o:e.removeAttribute("type"),null!=n?"number"===o?(0===n&&""===e.value||e.value!=n)&&(e.value=""+vn(n)):e.value!==""+vn(n)&&(e.value=""+vn(n)):"submit"!==o&&"reset"!==o||e.removeAttribute("value"),null!=n?Pn(e,o,vn(n)):null!=t?Pn(e,o,vn(t)):null!=r&&e.removeAttribute("value"),null==l&&null!=a&&(e.defaultChecked=!!a),null!=l&&(e.checked=l&&"function"!=typeof l&&"symbol"!=typeof l),null!=u&&"function"!=typeof u&&"symbol"!=typeof u&&"boolean"!=typeof u?e.name=""+vn(u):e.removeAttribute("name")}function zn(e,n,t,r,l,a,o,u){if(null!=a&&"function"!=typeof a&&"symbol"!=typeof a&&"boolean"!=typeof a&&(e.type=a),null!=n||null!=t){if(("submit"===a||"reset"===a)&&null==n)return;t=null!=t?""+vn(t):"",n=null!=n?""+vn(n):t,u||n===e.value||(e.value=n),e.defaultValue=n}r="function"!=typeof(r=null!=r?r:l)&&"symbol"!=typeof r&&!!r,e.checked=u?e.checked:!!r,e.defaultChecked=!!r,null!=o&&"function"!=typeof o&&"symbol"!=typeof o&&"boolean"!=typeof o&&(e.name=o)}function Pn(e,n,t){"number"===n&&Sn(e.ownerDocument)===e||e.defaultValue===""+t||(e.defaultValue=""+t)}function Nn(e,n,t,r){if(e=e.options,n){n={};for(var l=0;l=_t),Mt=String.fromCharCode(32),Ot=!1;function At(e,n){switch(e){case"keyup":return-1!==Lt.indexOf(n.keyCode);case"keydown":return 229!==n.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Rt(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var It=!1;function Ut(e,n){switch(e){case"compositionend":return Rt(n);case"keypress":return 32!==n.which?null:(Ot=!0,Mt);case"textInput":return(e=n.data)===Mt&&Ot?null:e;default:return null}}function jt(e,n){if(It)return"compositionend"===e||!Tt&&At(e,n)?(e=Jn(),Zn=Gn=Xn=null,It=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:r,offset:n-e};e=t}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=ur(r)}}function sr(e,n){return!(!e||!n)&&(e===n||(!e||3!==e.nodeType)&&(n&&3===n.nodeType?sr(e,n.parentNode):"contains"in e?e.contains(n):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(n))))}function cr(e){for(var n=Sn((e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window).document);n instanceof e.HTMLIFrameElement;){try{var t="string"==typeof n.contentWindow.location.href}catch(e){t=!1}if(!t)break;n=Sn((e=n.contentWindow).document)}return n}function fr(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&("input"===n&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===n||"true"===e.contentEditable)}var dr=qn&&"documentMode"in document&&11>=document.documentMode,pr=null,mr=null,hr=null,gr=!1;function vr(e,n,t){var r=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;gr||null==pr||pr!==Sn(r)||("selectionStart"in(r=pr)&&fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},hr&&or(hr,r)||(hr=r,0<(r=sf(mr,"onSelect")).length&&(n=new it("onSelect","select",null,n,t),e.push({event:n,listeners:r}),n.target=pr)))}function yr(e,n){var t={};return t[e.toLowerCase()]=n.toLowerCase(),t["Webkit"+e]="webkit"+n,t["Moz"+e]="moz"+n,t}var br={animationend:yr("Animation","AnimationEnd"),animationiteration:yr("Animation","AnimationIteration"),animationstart:yr("Animation","AnimationStart"),transitionrun:yr("Transition","TransitionRun"),transitionstart:yr("Transition","TransitionStart"),transitioncancel:yr("Transition","TransitionCancel"),transitionend:yr("Transition","TransitionEnd")},kr={},wr={};function Sr(e){if(kr[e])return kr[e];if(!br[e])return e;var n,t=br[e];for(n in t)if(t.hasOwnProperty(n)&&n in wr)return kr[e]=t[n];return e}qn&&(wr=document.createElement("div").style,"AnimationEvent"in window||(delete br.animationend.animation,delete br.animationiteration.animation,delete br.animationstart.animation),"TransitionEvent"in window||delete br.transitionend.transition);var Er=Sr("animationend"),xr=Sr("animationiteration"),Cr=Sr("animationstart"),zr=Sr("transitionrun"),Pr=Sr("transitionstart"),Nr=Sr("transitioncancel"),Lr=Sr("transitionend"),Tr=new Map,_r="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Fr(e,n){Tr.set(e,n),nn(n,[e])}_r.push("scrollEnd");var Dr=new WeakMap;function Mr(e,n){if("object"==typeof e&&null!==e){var t=Dr.get(e);return void 0!==t?t:(n={value:e,source:n,stack:gn(n)},Dr.set(e,n),n)}return{value:e,source:n,stack:gn(n)}}var Or=[],Ar=0,Rr=0;function Ir(){for(var e=Ar,n=Rr=Ar=0;n>=o,l-=o,ul=1<<32-ye(n)+l|t<a?a:8;var o,u,i,s=U.T,c={};U.T=c,Jo(e,!1,n,t);try{var f=l(),d=U.S;if(null!==d&&d(c,f),null!==f&&"object"==typeof f&&"function"==typeof f.then)Zo(e,n,(o=r,u=[],i={status:"pending",value:null,reason:null,then:function(e){u.push(e)}},f.then(function(){i.status="fulfilled",i.value=o;for(var e=0;eh?(g=f,f=null):g=f.sibling;var v=p(l,f,u[h],i);if(null===v){null===f&&(f=g);break}e&&f&&null===v.alternate&&n(l,f),o=a(v,o,h),null===c?s=v:c.sibling=v,c=v,f=g}if(h===u.length)return t(l,f),hl&&sl(l,h),s;if(null===f){for(;hg?(v=h,h=null):v=h.sibling;var b=p(l,h,y.value,i);if(null===b){null===h&&(h=v);break}e&&h&&null===b.alternate&&n(l,h),o=a(b,o,g),null===f?s=b:f.sibling=b,f=b,h=v}if(y.done)return t(l,h),hl&&sl(l,g),s;if(null===h){for(;!y.done;g++,y=u.next())null!==(y=d(l,y.value,i))&&(o=a(y,o,g),null===f?s=y:f.sibling=y,f=y);return hl&&sl(l,g),s}for(h=r(h);!y.done;g++,y=u.next())null!==(y=m(h,l,g,y.value,i))&&(e&&null!==y.alternate&&h.delete(null===y.key?g:y.key),o=a(y,o,g),null===f?s=y:f.sibling=y,f=y);return e&&h.forEach(function(e){return n(l,e)}),hl&&sl(l,g),s}function v(e,r,a,u){if("object"==typeof a&&null!==a&&a.type===w&&null===a.key&&(a=a.props.children),"object"==typeof a&&null!==a){switch(a.$$typeof){case b:e:{for(var i=a.key;null!==r;){if(r.key===i){if((i=a.type)===w){if(7===r.tag){t(e,r.sibling),(u=l(r,a.props.children)).return=e,e=u;break e}}else if(r.elementType===i||"object"==typeof i&&null!==i&&i.$$typeof===_&&du(i)===r.type){t(e,r.sibling),cu(u=l(r,a.props),a),u.return=e,e=u;break e}t(e,r);break}n(e,r),r=r.sibling}a.type===w?((u=Gr(a.props.children,e.mode,u,a.key)).return=e,e=u):(cu(u=Xr(a.type,a.key,a.props,null,e.mode,u),a),u.return=e,e=u)}return o(e);case k:e:{for(i=a.key;null!==r;){if(r.key===i){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){t(e,r.sibling),(u=l(r,a.children||[])).return=e,e=u;break e}t(e,r);break}n(e,r),r=r.sibling}(u=Jr(a,e.mode,u)).return=e,e=u}return o(e);case _:return v(e,r,a=(i=a._init)(a._payload),u)}if(I(a))return h(e,r,a,u);if(O(a)){if("function"!=typeof(i=O(a)))throw Error(c(150));return g(e,r,a=i.call(a),u)}if("function"==typeof a.then)return v(e,r,su(a),u);if(a.$$typeof===z)return v(e,r,Rl(e,a),u);fu(e,a)}return"string"==typeof a&&""!==a||"number"==typeof a||"bigint"==typeof a?(a=""+a,null!==r&&6===r.tag?(t(e,r.sibling),(u=l(r,a)).return=e,e=u):(t(e,r),(u=Zr(a,e.mode,u)).return=e,e=u),o(e)):t(e,r)}return function(e,n,t,r){try{iu=0;var l=v(e,n,t,r);return uu=null,l}catch(n){if(n===ta||n===la)throw n;var a=Wr(29,n,null,e.mode);return a.lanes=r,a.return=e,a}}}var mu=pu(!0),hu=pu(!1),gu=$(null),vu=null;function yu(e){var n=e.alternate;W(Su,1&Su.current),W(gu,e),null===vu&&(null===n||null!==xa.current||null!==n.memoizedState)&&(vu=e)}function bu(e){if(22===e.tag){if(W(Su,Su.current),W(gu,e),null===vu){var n=e.alternate;null!==n&&null!==n.memoizedState&&(vu=e)}}else ku()}function ku(){W(Su,Su.current),W(gu,gu.current)}function wu(e){B(gu),vu===e&&(vu=null),B(Su)}var Su=$(0);function Eu(e){for(var n=e;null!==n;){if(13===n.tag){var t=n.memoizedState;if(null!==t&&(null===(t=t.dehydrated)||"$?"===t.data||Uf(t)))return n}else if(19===n.tag&&void 0!==n.memoizedProps.revealOrder){if(128&n.flags)return n}else if(null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}function xu(e,n,t,r){t=null==(t=t(r,n=e.memoizedState))?n:v({},n,t),e.memoizedState=t,0===e.lanes&&(e.updateQueue.baseState=t)}var Cu={enqueueSetState:function(e,n,t){e=e._reactInternals;var r=Xs(),l=ha(r);l.payload=n,null!=t&&(l.callback=t),null!==(n=ga(e,l,r))&&(Zs(n,e,r),va(n,e,r))},enqueueReplaceState:function(e,n,t){e=e._reactInternals;var r=Xs(),l=ha(r);l.tag=1,l.payload=n,null!=t&&(l.callback=t),null!==(n=ga(e,l,r))&&(Zs(n,e,r),va(n,e,r))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var t=Xs(),r=ha(t);r.tag=2,null!=n&&(r.callback=n),null!==(n=ga(e,r,t))&&(Zs(n,e,t),va(n,e,t))}};function zu(e,n,t,r,l,a,o){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,o):!n.prototype||!n.prototype.isPureReactComponent||(!or(t,r)||!or(l,a))}function Pu(e,n,t,r){e=n.state,"function"==typeof n.componentWillReceiveProps&&n.componentWillReceiveProps(t,r),"function"==typeof n.UNSAFE_componentWillReceiveProps&&n.UNSAFE_componentWillReceiveProps(t,r),n.state!==e&&Cu.enqueueReplaceState(n,n.state,null)}function Nu(e,n){var t=n;if("ref"in n)for(var r in t={},n)"ref"!==r&&(t[r]=n[r]);if(e=e.defaultProps)for(var l in t===n&&(t=v({},t)),e)void 0===t[l]&&(t[l]=e[l]);return t}var Lu="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var n=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(n))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)};function Tu(e){Lu(e)}function _u(e){console.error(e)}function Fu(e){Lu(e)}function Du(e,n){try{(0,e.onUncaughtError)(n.value,{componentStack:n.stack})}catch(e){setTimeout(function(){throw e})}}function Mu(e,n,t){try{(0,e.onCaughtError)(t.value,{componentStack:t.stack,errorBoundary:1===n.tag?n.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function Ou(e,n,t){return(t=ha(t)).tag=3,t.payload={element:null},t.callback=function(){Du(e,n)},t}function Au(e){return(e=ha(e)).tag=3,e}function Ru(e,n,t,r){var l=t.type.getDerivedStateFromError;if("function"==typeof l){var a=r.value;e.payload=function(){return l(a)},e.callback=function(){Mu(n,t,r)}}var o=t.stateNode;null!==o&&"function"==typeof o.componentDidCatch&&(e.callback=function(){Mu(n,t,r),"function"!=typeof l&&(null===js?js=new Set([this]):js.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:null!==e?e:""})})}function Iu(e,n,t,r,l){if(t.flags|=32768,null!==r&&"object"==typeof r&&"function"==typeof r.then){if(null!==(n=t.alternate)&&Dl(n,t,l,!0),null!==(t=gu.current)){switch(t.tag){case 13:return null===vu?sc():null===t.alternate&&0===Ns&&(Ns=3),t.flags&=-257,t.flags|=65536,t.lanes=l,r===aa?t.flags|=16384:(null===(n=t.updateQueue)?t.updateQueue=new Set([r]):n.add(r),Nc(e,r,l)),!1;case 22:return t.flags|=65536,r===aa?t.flags|=16384:(null===(n=t.updateQueue)?(n={transitions:null,markerInstances:null,retryQueue:new Set([r])},t.updateQueue=n):null===(t=n.retryQueue)?n.retryQueue=new Set([r]):t.add(r),Nc(e,r,l)),!1}throw Error(c(435,t.tag))}return Nc(e,r,l),sc(),!1}if(hl)return null!==(n=gu.current)?(!(65536&n.flags)&&(n.flags|=256),n.flags|=65536,n.lanes=l,r!==yl&&Cl(Mr(e=Error(c(422),{cause:r}),t))):(r!==yl&&Cl(Mr(n=Error(c(423),{cause:r}),t)),(e=e.current.alternate).flags|=65536,l&=-l,e.lanes|=l,r=Mr(r,t),ya(e,l=Ou(e.stateNode,r,l)),4!==Ns&&(Ns=2)),!1;var a=Error(c(520),{cause:r});if(a=Mr(a,t),null===Ms?Ms=[a]:Ms.push(a),4!==Ns&&(Ns=2),null===n)return!0;r=Mr(r,t),t=n;do{switch(t.tag){case 3:return t.flags|=65536,e=l&-l,t.lanes|=e,ya(t,e=Ou(t.stateNode,r,e)),!1;case 1:if(n=t.type,a=t.stateNode,!(128&t.flags||"function"!=typeof n.getDerivedStateFromError&&(null===a||"function"!=typeof a.componentDidCatch||null!==js&&js.has(a))))return t.flags|=65536,l&=-l,t.lanes|=l,Ru(l=Au(l),e,t,r),ya(t,l),!1}t=t.return}while(null!==t);return!1}var Uu=Error(c(461)),ju=!1;function Vu(e,n,t,r){n.child=null===e?hu(n,null,t,r):mu(n,e.child,t,r)}function Hu(e,n,t,r,l){t=t.render;var a=n.ref;if("ref"in r){var o={};for(var u in r)"ref"!==u&&(o[u]=r[u])}else o=r;return Ol(n),r=Ha(e,n,t,o,a,l),u=Wa(),null===e||ju?(hl&&u&&fl(n),n.flags|=1,Vu(e,n,r,l),n.child):(qa(e,n,l),ii(e,n,l))}function Qu(e,n,t,r,l){if(null===e){var a=t.type;return"function"!=typeof a||qr(a)||void 0!==a.defaultProps||null!==t.compare?((e=Xr(t.type,null,r,n,n.mode,l)).ref=n.ref,e.return=n,n.child=e):(n.tag=15,n.type=a,$u(e,n,a,r,l))}if(a=e.child,!si(e,l)){var o=a.memoizedProps;if((t=null!==(t=t.compare)?t:or)(o,r)&&e.ref===n.ref)return ii(e,n,l)}return n.flags|=1,(e=Kr(a,r)).ref=n.ref,e.return=n,n.child=e}function $u(e,n,t,r,l){if(null!==e){var a=e.memoizedProps;if(or(a,r)&&e.ref===n.ref){if(ju=!1,n.pendingProps=r=a,!si(e,l))return n.lanes=e.lanes,ii(e,n,l);131072&e.flags&&(ju=!0)}}return Ku(e,n,t,r,l)}function Bu(e,n,t){var r=n.pendingProps,l=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode){if(128&n.flags){if(r=null!==a?a.baseLanes|t:t,null!==e){for(l=n.child=e.child,a=0;null!==l;)a=a|l.lanes|l.childLanes,l=l.sibling;n.childLanes=a&~r}else n.childLanes=0,n.child=null;return Wu(e,n,r,t)}if(!(536870912&t))return n.lanes=n.childLanes=536870912,Wu(e,n,null!==a?a.baseLanes|t:t,t);n.memoizedState={baseLanes:0,cachePool:null},null!==e&&ea(0,null!==a?a.cachePool:null),null!==a?za(n,a):Pa(),bu(n)}else null!==a?(ea(0,a.cachePool),za(n,a),ku(),n.memoizedState=null):(null!==e&&ea(0,null),Pa(),ku());return Vu(e,n,l,t),n.child}function Wu(e,n,t,r){var l=Jl();return l=null===l?null:{parent:Hl._currentValue,pool:l},n.memoizedState={baseLanes:t,cachePool:l},null!==e&&ea(0,null),Pa(),bu(n),null!==e&&Dl(e,n,r,!0),null}function qu(e,n){var t=n.ref;if(null===t)null!==e&&null!==e.ref&&(n.flags|=4194816);else{if("function"!=typeof t&&"object"!=typeof t)throw Error(c(284));null!==e&&e.ref===t||(n.flags|=4194816)}}function Ku(e,n,t,r,l){return Ol(n),t=Ha(e,n,t,r,void 0,l),r=Wa(),null===e||ju?(hl&&r&&fl(n),n.flags|=1,Vu(e,n,t,l),n.child):(qa(e,n,l),ii(e,n,l))}function Yu(e,n,t,r,l,a){return Ol(n),n.updateQueue=null,t=$a(n,r,t,l),Qa(e),r=Wa(),null===e||ju?(hl&&r&&fl(n),n.flags|=1,Vu(e,n,t,a),n.child):(qa(e,n,a),ii(e,n,a))}function Xu(e,n,t,r,l){if(Ol(n),null===n.stateNode){var a=$r,o=t.contextType;"object"==typeof o&&null!==o&&(a=Al(o)),a=new t(r,a),n.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,a.updater=Cu,n.stateNode=a,a._reactInternals=n,(a=n.stateNode).props=r,a.state=n.memoizedState,a.refs={},pa(n),o=t.contextType,a.context="object"==typeof o&&null!==o?Al(o):$r,a.state=n.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(xu(n,t,o,r),a.state=n.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(o=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),o!==a.state&&Cu.enqueueReplaceState(a,a.state,null),wa(n,r,a,l),ka(),a.state=n.memoizedState),"function"==typeof a.componentDidMount&&(n.flags|=4194308),r=!0}else if(null===e){a=n.stateNode;var u=n.memoizedProps,i=Nu(t,u);a.props=i;var s=a.context,c=t.contextType;o=$r,"object"==typeof c&&null!==c&&(o=Al(c));var f=t.getDerivedStateFromProps;c="function"==typeof f||"function"==typeof a.getSnapshotBeforeUpdate,u=n.pendingProps!==u,c||"function"!=typeof a.UNSAFE_componentWillReceiveProps&&"function"!=typeof a.componentWillReceiveProps||(u||s!==o)&&Pu(n,a,r,o),da=!1;var d=n.memoizedState;a.state=d,wa(n,r,a,l),ka(),s=n.memoizedState,u||d!==s||da?("function"==typeof f&&(xu(n,t,f,r),s=n.memoizedState),(i=da||zu(n,t,i,r,d,s,o))?(c||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||("function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),"function"==typeof a.componentDidMount&&(n.flags|=4194308)):("function"==typeof a.componentDidMount&&(n.flags|=4194308),n.memoizedProps=r,n.memoizedState=s),a.props=r,a.state=s,a.context=o,r=i):("function"==typeof a.componentDidMount&&(n.flags|=4194308),r=!1)}else{a=n.stateNode,ma(e,n),c=Nu(t,o=n.memoizedProps),a.props=c,f=n.pendingProps,d=a.context,s=t.contextType,i=$r,"object"==typeof s&&null!==s&&(i=Al(s)),(s="function"==typeof(u=t.getDerivedStateFromProps)||"function"==typeof a.getSnapshotBeforeUpdate)||"function"!=typeof a.UNSAFE_componentWillReceiveProps&&"function"!=typeof a.componentWillReceiveProps||(o!==f||d!==i)&&Pu(n,a,r,i),da=!1,d=n.memoizedState,a.state=d,wa(n,r,a,l),ka();var p=n.memoizedState;o!==f||d!==p||da||null!==e&&null!==e.dependencies&&Ml(e.dependencies)?("function"==typeof u&&(xu(n,t,u,r),p=n.memoizedState),(c=da||zu(n,t,c,r,d,p,i)||null!==e&&null!==e.dependencies&&Ml(e.dependencies))?(s||"function"!=typeof a.UNSAFE_componentWillUpdate&&"function"!=typeof a.componentWillUpdate||("function"==typeof a.componentWillUpdate&&a.componentWillUpdate(r,p,i),"function"==typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(r,p,i)),"function"==typeof a.componentDidUpdate&&(n.flags|=4),"function"==typeof a.getSnapshotBeforeUpdate&&(n.flags|=1024)):("function"!=typeof a.componentDidUpdate||o===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!=typeof a.getSnapshotBeforeUpdate||o===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),n.memoizedProps=r,n.memoizedState=p),a.props=r,a.state=p,a.context=i,r=c):("function"!=typeof a.componentDidUpdate||o===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!=typeof a.getSnapshotBeforeUpdate||o===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),r=!1)}return a=r,qu(e,n),r=!!(128&n.flags),a||r?(a=n.stateNode,t=r&&"function"!=typeof t.getDerivedStateFromError?null:a.render(),n.flags|=1,null!==e&&r?(n.child=mu(n,e.child,null,l),n.child=mu(n,null,t,l)):Vu(e,n,t,l),n.memoizedState=a.state,e=n.child):e=ii(e,n,l),e}function Gu(e,n,t,r){return El(),n.flags|=256,Vu(e,n,t,r),n.child}var Zu={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Ju(e){return{baseLanes:e,cachePool:na()}}function ei(e,n,t){return e=null!==e?e.childLanes&~t:0,n&&(e|=Fs),e}function ni(e,n,t){var r,l=n.pendingProps,a=!1,o=!!(128&n.flags);if((r=o)||(r=(null===e||null!==e.memoizedState)&&!!(2&Su.current)),r&&(a=!0,n.flags&=-129),r=!!(32&n.flags),n.flags&=-33,null===e){if(hl){if(a?yu(n):ku(),hl){var u,i=ml;if(u=i){e:{for(u=i,i=vl;8!==u.nodeType;){if(!i){i=null;break e}if(null===(u=Vf(u.nextSibling))){i=null;break e}}i=u}null!==i?(n.memoizedState={dehydrated:i,treeContext:null!==ol?{id:ul,overflow:il}:null,retryLane:536870912,hydrationErrors:null},(u=Wr(18,null,null,0)).stateNode=i,u.return=n,n.child=u,pl=n,ml=null,u=!0):u=!1}u||bl(n)}if(null!==(i=n.memoizedState)&&null!==(i=i.dehydrated))return Uf(i)?n.lanes=32:n.lanes=536870912,null;wu(n)}return i=l.children,l=l.fallback,a?(ku(),i=ri({mode:"hidden",children:i},a=n.mode),l=Gr(l,a,t,null),i.return=n,l.return=n,i.sibling=l,n.child=i,(a=n.child).memoizedState=Ju(t),a.childLanes=ei(e,r,t),n.memoizedState=Zu,l):(yu(n),ti(n,i))}if(null!==(u=e.memoizedState)&&null!==(i=u.dehydrated)){if(o)256&n.flags?(yu(n),n.flags&=-257,n=li(e,n,t)):null!==n.memoizedState?(ku(),n.child=e.child,n.flags|=128,n=null):(ku(),a=l.fallback,i=n.mode,l=ri({mode:"visible",children:l.children},i),(a=Gr(a,i,t,null)).flags|=2,l.return=n,a.return=n,l.sibling=a,n.child=l,mu(n,e.child,null,t),(l=n.child).memoizedState=Ju(t),l.childLanes=ei(e,r,t),n.memoizedState=Zu,n=a);else if(yu(n),Uf(i)){if(r=i.nextSibling&&i.nextSibling.dataset)var s=r.dgst;r=s,(l=Error(c(419))).stack="",l.digest=r,Cl({value:l,source:null,stack:null}),n=li(e,n,t)}else if(ju||Dl(e,n,t,!1),r=0!==(t&e.childLanes),ju||r){if(null!==(r=bs)&&(0!==(l=0!==((l=42&(l=t&-t)?1:Me(l))&(r.suspendedLanes|t))?0:l)&&l!==u.retryLane))throw u.retryLane=l,Vr(e,l),Zs(r,e,l),Uu;"$?"===i.data||sc(),n=li(e,n,t)}else"$?"===i.data?(n.flags|=192,n.child=e.child,n=null):(e=u.treeContext,ml=Vf(i.nextSibling),pl=n,hl=!0,gl=null,vl=!1,null!==e&&(ll[al++]=ul,ll[al++]=il,ll[al++]=ol,ul=e.id,il=e.overflow,ol=n),(n=ti(n,l.children)).flags|=4096);return n}return a?(ku(),a=l.fallback,i=n.mode,s=(u=e.child).sibling,(l=Kr(u,{mode:"hidden",children:l.children})).subtreeFlags=65011712&u.subtreeFlags,null!==s?a=Kr(s,a):(a=Gr(a,i,t,null)).flags|=2,a.return=n,l.return=n,l.sibling=a,n.child=l,l=a,a=n.child,null===(i=e.child.memoizedState)?i=Ju(t):(null!==(u=i.cachePool)?(s=Hl._currentValue,u=u.parent!==s?{parent:s,pool:s}:u):u=na(),i={baseLanes:i.baseLanes|t,cachePool:u}),a.memoizedState=i,a.childLanes=ei(e,r,t),n.memoizedState=Zu,l):(yu(n),e=(t=e.child).sibling,(t=Kr(t,{mode:"visible",children:l.children})).return=n,t.sibling=null,null!==e&&(null===(r=n.deletions)?(n.deletions=[e],n.flags|=16):r.push(e)),n.child=t,n.memoizedState=null,t)}function ti(e,n){return(n=ri({mode:"visible",children:n},e.mode)).return=e,e.child=n}function ri(e,n){return(e=Wr(22,e,null,n)).lanes=0,e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},e}function li(e,n,t){return mu(n,e.child,null,t),(e=ti(n,n.pendingProps.children)).flags|=2,n.memoizedState=null,e}function ai(e,n,t){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n),_l(e.return,n,t)}function oi(e,n,t,r,l){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:r,tail:t,tailMode:l}:(a.isBackwards=n,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=t,a.tailMode=l)}function ui(e,n,t){var r=n.pendingProps,l=r.revealOrder,a=r.tail;if(Vu(e,n,r.children,t),2&(r=Su.current))r=1&r|2,n.flags|=128;else{if(null!==e&&128&e.flags)e:for(e=n.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ai(e,t,n);else if(19===e.tag)ai(e,t,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}switch(W(Su,r),l){case"forwards":for(t=n.child,l=null;null!==t;)null!==(e=t.alternate)&&null===Eu(e)&&(l=t),t=t.sibling;null===(t=l)?(l=n.child,n.child=null):(l=t.sibling,t.sibling=null),oi(n,!1,l,t,a);break;case"backwards":for(t=null,l=n.child,n.child=null;null!==l;){if(null!==(e=l.alternate)&&null===Eu(e)){n.child=l;break}e=l.sibling,l.sibling=t,t=l,l=e}oi(n,!0,t,null,a);break;case"together":oi(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function ii(e,n,t){if(null!==e&&(n.dependencies=e.dependencies),Ls|=n.lanes,0===(t&n.childLanes)){if(null===e)return null;if(Dl(e,n,t,!1),0===(t&n.childLanes))return null}if(null!==e&&n.child!==e.child)throw Error(c(153));if(null!==n.child){for(t=Kr(e=n.child,e.pendingProps),n.child=t,t.return=n;null!==e.sibling;)e=e.sibling,(t=t.sibling=Kr(e,e.pendingProps)).return=n;t.sibling=null}return n.child}function si(e,n){return 0!==(e.lanes&n)||!(null===(e=e.dependencies)||!Ml(e))}function ci(e,n,t){switch(n.tag){case 3:G(n,n.stateNode.containerInfo),Ll(0,Hl,e.memoizedState.cache),El();break;case 27:case 5:J(n);break;case 4:G(n,n.stateNode.containerInfo);break;case 10:Ll(0,n.type,n.memoizedProps.value);break;case 13:var r=n.memoizedState;if(null!==r)return null!==r.dehydrated?(yu(n),n.flags|=128,null):0!==(t&n.child.childLanes)?ni(e,n,t):(yu(n),null!==(e=ii(e,n,t))?e.sibling:null);yu(n);break;case 19:var l=!!(128&e.flags);if((r=0!==(t&n.childLanes))||(Dl(e,n,t,!1),r=0!==(t&n.childLanes)),l){if(r)return ui(e,n,t);n.flags|=128}if(null!==(l=n.memoizedState)&&(l.rendering=null,l.tail=null,l.lastEffect=null),W(Su,Su.current),r)break;return null;case 22:case 23:return n.lanes=0,Bu(e,n,t);case 24:Ll(0,Hl,e.memoizedState.cache)}return ii(e,n,t)}function fi(e,n,t){if(null!==e)if(e.memoizedProps!==n.pendingProps)ju=!0;else{if(!(si(e,t)||128&n.flags))return ju=!1,ci(e,n,t);ju=!!(131072&e.flags)}else ju=!1,hl&&1048576&n.flags&&cl(n,rl,n.index);switch(n.lanes=0,n.tag){case 16:e:{e=n.pendingProps;var r=n.elementType,l=r._init;if(r=l(r._payload),n.type=r,"function"!=typeof r){if(null!=r){if((l=r.$$typeof)===P){n.tag=11,n=Hu(null,n,r,e,t);break e}if(l===T){n.tag=14,n=Qu(null,n,r,e,t);break e}}throw n=R(r)||r,Error(c(306,n,""))}qr(r)?(e=Nu(r,e),n.tag=1,n=Xu(null,n,r,e,t)):(n.tag=0,n=Ku(null,n,r,e,t))}return n;case 0:return Ku(e,n,n.type,n.pendingProps,t);case 1:return Xu(e,n,r=n.type,l=Nu(r,n.pendingProps),t);case 3:e:{if(G(n,n.stateNode.containerInfo),null===e)throw Error(c(387));r=n.pendingProps;var a=n.memoizedState;l=a.element,ma(e,n),wa(n,r,null,t);var o=n.memoizedState;if(r=o.cache,Ll(0,Hl,r),r!==a.cache&&Fl(n,[Hl],t,!0),ka(),r=o.element,a.isDehydrated){if(a={element:r,isDehydrated:!1,cache:o.cache},n.updateQueue.baseState=a,n.memoizedState=a,256&n.flags){n=Gu(e,n,r,t);break e}if(r!==l){Cl(l=Mr(Error(c(424)),n)),n=Gu(e,n,r,t);break e}if(9===(e=n.stateNode.containerInfo).nodeType)e=e.body;else e="HTML"===e.nodeName?e.ownerDocument.body:e;for(ml=Vf(e.firstChild),pl=n,hl=!0,gl=null,vl=!0,t=hu(n,null,r,t),n.child=t;t;)t.flags=-3&t.flags|4096,t=t.sibling}else{if(El(),r===l){n=ii(e,n,t);break e}Vu(e,n,r,t)}n=n.child}return n;case 26:return qu(e,n),null===e?(t=Zf(n.type,null,n.pendingProps,null))?n.memoizedState=t:hl||(t=n.type,e=n.pendingProps,(r=Ef(Y.current).createElement(t))[Ue]=n,r[je]=e,bf(r,t,e),Ze(r),n.stateNode=r):n.memoizedState=Zf(n.type,e.memoizedProps,n.pendingProps,e.memoizedState),null;case 27:return J(n),null===e&&hl&&(r=n.stateNode=$f(n.type,n.pendingProps,Y.current),pl=n,vl=!0,l=ml,Mf(n.type)?(Hf=l,ml=Vf(r.firstChild)):ml=l),Vu(e,n,n.pendingProps.children,t),qu(e,n),null===e&&(n.flags|=4194304),n.child;case 5:return null===e&&hl&&((l=r=ml)&&(null!==(r=Rf(r,n.type,n.pendingProps,vl))?(n.stateNode=r,pl=n,ml=Vf(r.firstChild),vl=!1,l=!0):l=!1),l||bl(n)),J(n),l=n.type,a=n.pendingProps,o=null!==e?e.memoizedProps:null,r=a.children,zf(l,a)?r=null:null!==o&&zf(l,o)&&(n.flags|=32),null!==n.memoizedState&&(l=Ha(e,n,Ba,null,null,t),wd._currentValue=l),qu(e,n),Vu(e,n,r,t),n.child;case 6:return null===e&&hl&&((e=t=ml)&&(null!==(t=If(t,n.pendingProps,vl))?(n.stateNode=t,pl=n,ml=null,e=!0):e=!1),e||bl(n)),null;case 13:return ni(e,n,t);case 4:return G(n,n.stateNode.containerInfo),r=n.pendingProps,null===e?n.child=mu(n,null,r,t):Vu(e,n,r,t),n.child;case 11:return Hu(e,n,n.type,n.pendingProps,t);case 7:return Vu(e,n,n.pendingProps,t),n.child;case 8:case 12:return Vu(e,n,n.pendingProps.children,t),n.child;case 10:return r=n.pendingProps,Ll(0,n.type,r.value),Vu(e,n,r.children,t),n.child;case 9:return l=n.type._context,r=n.pendingProps.children,Ol(n),r=r(l=Al(l)),n.flags|=1,Vu(e,n,r,t),n.child;case 14:return Qu(e,n,n.type,n.pendingProps,t);case 15:return $u(e,n,n.type,n.pendingProps,t);case 19:return ui(e,n,t);case 31:return r=n.pendingProps,t=n.mode,r={mode:r.mode,children:r.children},null===e?((t=ri(r,t)).ref=n.ref,n.child=t,t.return=n,n=t):((t=Kr(e.child,r)).ref=n.ref,n.child=t,t.return=n,n=t),n;case 22:return Bu(e,n,t);case 24:return Ol(n),r=Al(Hl),null===e?(null===(l=Jl())&&(l=bs,a=Ql(),l.pooledCache=a,a.refCount++,null!==a&&(l.pooledCacheLanes|=t),l=a),n.memoizedState={parent:r,cache:l},pa(n),Ll(0,Hl,l)):(0!==(e.lanes&t)&&(ma(e,n),wa(n,null,null,t),ka()),l=e.memoizedState,a=n.memoizedState,l.parent!==r?(l={parent:r,cache:r},n.memoizedState=l,0===n.lanes&&(n.memoizedState=n.updateQueue.baseState=l),Ll(0,Hl,r)):(r=a.cache,Ll(0,Hl,r),r!==l.cache&&Fl(n,[Hl],t,!0))),Vu(e,n,n.pendingProps.children,t),n.child;case 29:throw n.pendingProps}throw Error(c(156,n.tag))}function di(e){e.flags|=4}function pi(e,n){if("stylesheet"!==n.type||4&n.state.loading)e.flags&=-16777217;else if(e.flags|=16777216,!dd(n)){if(null!==(n=gu.current)&&((4194048&ws)===ws?null!==vu:(62914560&ws)!==ws&&!(536870912&ws)||n!==vu))throw sa=aa,ra;e.flags|=8192}}function mi(e,n){null!==n&&(e.flags|=4),16384&e.flags&&(n=22!==e.tag?Ne():536870912,e.lanes|=n,Ds|=n)}function hi(e,n){if(!hl)switch(e.tailMode){case"hidden":n=e.tail;for(var t=null;null!==n;)null!==n.alternate&&(t=n),n=n.sibling;null===t?e.tail=null:t.sibling=null;break;case"collapsed":t=e.tail;for(var r=null;null!==t;)null!==t.alternate&&(r=t),t=t.sibling;null===r?n||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function gi(e){var n=null!==e.alternate&&e.alternate.child===e.child,t=0,r=0;if(n)for(var l=e.child;null!==l;)t|=l.lanes|l.childLanes,r|=65011712&l.subtreeFlags,r|=65011712&l.flags,l.return=e,l=l.sibling;else for(l=e.child;null!==l;)t|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=t,n}function vi(e,n,t){var r=n.pendingProps;switch(dl(n),n.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:case 1:return gi(n),null;case 3:return t=n.stateNode,r=null,null!==e&&(r=e.memoizedState.cache),n.memoizedState.cache!==r&&(n.flags|=2048),Tl(Hl),Z(),t.pendingContext&&(t.context=t.pendingContext,t.pendingContext=null),null!==e&&null!==e.child||(Sl(n)?di(n):null===e||e.memoizedState.isDehydrated&&!(256&n.flags)||(n.flags|=1024,xl())),gi(n),null;case 26:return t=n.memoizedState,null===e?(di(n),null!==t?(gi(n),pi(n,t)):(gi(n),n.flags&=-16777217)):t?t!==e.memoizedState?(di(n),gi(n),pi(n,t)):(gi(n),n.flags&=-16777217):(e.memoizedProps!==r&&di(n),gi(n),n.flags&=-16777217),null;case 27:ee(n),t=Y.current;var l=n.type;if(null!==e&&null!=n.stateNode)e.memoizedProps!==r&&di(n);else{if(!r){if(null===n.stateNode)throw Error(c(166));return gi(n),null}e=q.current,Sl(n)?kl(n):(e=$f(l,r,t),n.stateNode=e,di(n))}return gi(n),null;case 5:if(ee(n),t=n.type,null!==e&&null!=n.stateNode)e.memoizedProps!==r&&di(n);else{if(!r){if(null===n.stateNode)throw Error(c(166));return gi(n),null}if(e=q.current,Sl(n))kl(n);else{switch(l=Ef(Y.current),e){case 1:e=l.createElementNS("http://www.w3.org/2000/svg",t);break;case 2:e=l.createElementNS("http://www.w3.org/1998/Math/MathML",t);break;default:switch(t){case"svg":e=l.createElementNS("http://www.w3.org/2000/svg",t);break;case"math":e=l.createElementNS("http://www.w3.org/1998/Math/MathML",t);break;case"script":(e=l.createElement("div")).innerHTML="
+@keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}
\ No newline at end of file diff --git a/packages/expo-sqlite/dev-plugin-dist/index.html b/packages/expo-sqlite/dev-plugin-dist/index.html index 7754fe00f919d7..cd510eb60b18b0 100644 --- a/packages/expo-sqlite/dev-plugin-dist/index.html +++ b/packages/expo-sqlite/dev-plugin-dist/index.html @@ -313,5 +313,5 @@ @keyframes r-1pzkwqh{0%{transform:translateY(100%);}100%{transform:translateY(0%);}} @keyframes r-imtty0{0%{opacity:0;}100%{opacity:1;}} @keyframes r-q67da2{0%{transform:translateX(-100%);}100%{transform:translateX(400%);}} -@keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}
SQLite Database Inspector
Upload a database file or connect to your app

Available Databases

No databases found. Make sure your app is using useSQLiteDevTool.

+@keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}
SQLite Database Inspector
Upload a database file or connect to your app

Available Databases

No databases found. Make sure your app is using useSQLiteDevTool.

\ No newline at end of file diff --git a/packages/expo-sqlite/dev-plugin-webui/bun.lock b/packages/expo-sqlite/dev-plugin-webui/bun.lock index 88819725c1026c..2d0c1837ac4fe6 100644 --- a/packages/expo-sqlite/dev-plugin-webui/bun.lock +++ b/packages/expo-sqlite/dev-plugin-webui/bun.lock @@ -1,5 +1,6 @@ { "lockfileVersion": 1, + "configVersion": 0, "workspaces": { "": { "name": "webui2", @@ -11,18 +12,18 @@ "autoprefixer": "^10.4.21", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "expo": "~54.0.21", - "expo-linking": "~8.0.8", - "expo-router": "~6.0.14", - "expo-sqlite": "~16.0.8", + "expo": "^55.0.0", + "expo-linking": "~55.0.7", + "expo-router": "~55.0.0", + "expo-sqlite": "~55.0.9", "lucide-react": "^0.548.0", "next-themes": "^0.4.6", "postcss": "^8.5.6", - "react": "19.1.0", - "react-dom": "19.1.0", - "react-native": "0.81.5", + "react": "19.2.0", + "react-dom": "19.2.0", + "react-native": "0.83.2", "react-native-safe-area-context": "~5.6.2", - "react-native-screens": "~4.16.0", + "react-native-screens": "~4.24.0", "react-native-web": "~0.21.0", "sonner": "^2.0.7", "tailwind-merge": "^3.3.1", @@ -35,2691 +36,2511 @@ "@testing-library/react-native": "^13.3.0", "@types/bun": "^1.3.1", "@types/jest": "29.5.14", - "@types/react": "~19.1.0", + "@types/react": "~19.2.10", "eslint": "^9.25.0", - "eslint-config-expo": "~10.0.0", + "eslint-config-expo": "~55.0.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-prettier": "^5.5.4", "expo-atlas": "^0.4.0", "jest": "~29.7.0", - "jest-expo": "~54.0.13", + "jest-expo": "~55.0.9", "prettier": "^3.6.2", + "react-test-renderer": "19.2.0", "typescript": "~5.9.2", }, }, }, - "patchedDependencies": { - "@expo/devtools@0.1.7": "patches/@expo%2Fdevtools@0.1.7.patch", - }, "packages": { - "@0no-co/graphql.web": ["@0no-co/graphql.web@1.2.0", "", { "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" }, "optionalPeers": ["graphql"] }, "sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw=="], - - "@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="], - - "@babel/code-frame": ["@babel/code-frame@7.10.4", "", { "dependencies": { "@babel/highlight": "^7.10.4" } }, "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg=="], - - "@babel/compat-data": ["@babel/compat-data@7.28.5", "", {}, "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA=="], - - "@babel/core": ["@babel/core@7.28.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", "@babel/helpers": "^7.28.4", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw=="], - - "@babel/generator": ["@babel/generator@7.28.5", "", { "dependencies": { "@babel/parser": "^7.28.5", "@babel/types": "^7.28.5", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ=="], - - "@babel/helper-annotate-as-pure": ["@babel/helper-annotate-as-pure@7.27.3", "", { "dependencies": { "@babel/types": "^7.27.3" } }, "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg=="], - - "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.27.2", "", { "dependencies": { "@babel/compat-data": "^7.27.2", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ=="], - - "@babel/helper-create-class-features-plugin": ["@babel/helper-create-class-features-plugin@7.28.5", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/traverse": "^7.28.5", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ=="], - - "@babel/helper-create-regexp-features-plugin": ["@babel/helper-create-regexp-features-plugin@7.28.5", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "regexpu-core": "^6.3.1", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw=="], - - "@babel/helper-define-polyfill-provider": ["@babel/helper-define-polyfill-provider@0.6.5", "", { "dependencies": { "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", "debug": "^4.4.1", "lodash.debounce": "^4.0.8", "resolve": "^1.22.10" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg=="], - - "@babel/helper-globals": ["@babel/helper-globals@7.28.0", "", {}, "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw=="], - - "@babel/helper-member-expression-to-functions": ["@babel/helper-member-expression-to-functions@7.28.5", "", { "dependencies": { "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5" } }, "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg=="], - - "@babel/helper-module-imports": ["@babel/helper-module-imports@7.27.1", "", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w=="], - - "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.28.3", "", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", "@babel/traverse": "^7.28.3" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw=="], - - "@babel/helper-optimise-call-expression": ["@babel/helper-optimise-call-expression@7.27.1", "", { "dependencies": { "@babel/types": "^7.27.1" } }, "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw=="], - - "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.27.1", "", {}, "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw=="], - - "@babel/helper-remap-async-to-generator": ["@babel/helper-remap-async-to-generator@7.27.1", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-wrap-function": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA=="], - - "@babel/helper-replace-supers": ["@babel/helper-replace-supers@7.27.1", "", { "dependencies": { "@babel/helper-member-expression-to-functions": "^7.27.1", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA=="], - - "@babel/helper-skip-transparent-expression-wrappers": ["@babel/helper-skip-transparent-expression-wrappers@7.27.1", "", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg=="], - - "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], - - "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], - - "@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="], - - "@babel/helper-wrap-function": ["@babel/helper-wrap-function@7.28.3", "", { "dependencies": { "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.3", "@babel/types": "^7.28.2" } }, "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g=="], - - "@babel/helpers": ["@babel/helpers@7.28.4", "", { "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.28.4" } }, "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w=="], - - "@babel/highlight": ["@babel/highlight@7.25.9", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw=="], - - "@babel/parser": ["@babel/parser@7.28.5", "", { "dependencies": { "@babel/types": "^7.28.5" }, "bin": "./bin/babel-parser.js" }, "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ=="], - - "@babel/plugin-proposal-decorators": ["@babel/plugin-proposal-decorators@7.28.0", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-syntax-decorators": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg=="], - - "@babel/plugin-proposal-export-default-from": ["@babel/plugin-proposal-export-default-from@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-hjlsMBl1aJc5lp8MoCDEZCiYzlgdRAShOjAfRw6X+GlpLpUPU7c3XNLsKFZbQk/1cRzBlJ7CXg3xJAJMrFa1Uw=="], - - "@babel/plugin-syntax-async-generators": ["@babel/plugin-syntax-async-generators@7.8.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw=="], - - "@babel/plugin-syntax-bigint": ["@babel/plugin-syntax-bigint@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg=="], - - "@babel/plugin-syntax-class-properties": ["@babel/plugin-syntax-class-properties@7.12.13", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA=="], - - "@babel/plugin-syntax-class-static-block": ["@babel/plugin-syntax-class-static-block@7.14.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw=="], - - "@babel/plugin-syntax-decorators": ["@babel/plugin-syntax-decorators@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A=="], - - "@babel/plugin-syntax-dynamic-import": ["@babel/plugin-syntax-dynamic-import@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ=="], - - "@babel/plugin-syntax-export-default-from": ["@babel/plugin-syntax-export-default-from@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-eBC/3KSekshx19+N40MzjWqJd7KTEdOoLesAfa4IDFI8eRz5a47i5Oszus6zG/cwIXN63YhgLOMSSNJx49sENg=="], - - "@babel/plugin-syntax-flow": ["@babel/plugin-syntax-flow@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA=="], - - "@babel/plugin-syntax-import-attributes": ["@babel/plugin-syntax-import-attributes@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww=="], - - "@babel/plugin-syntax-import-meta": ["@babel/plugin-syntax-import-meta@7.10.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g=="], - - "@babel/plugin-syntax-json-strings": ["@babel/plugin-syntax-json-strings@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA=="], - - "@babel/plugin-syntax-jsx": ["@babel/plugin-syntax-jsx@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w=="], - - "@babel/plugin-syntax-logical-assignment-operators": ["@babel/plugin-syntax-logical-assignment-operators@7.10.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig=="], - - "@babel/plugin-syntax-nullish-coalescing-operator": ["@babel/plugin-syntax-nullish-coalescing-operator@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ=="], - - "@babel/plugin-syntax-numeric-separator": ["@babel/plugin-syntax-numeric-separator@7.10.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug=="], - - "@babel/plugin-syntax-object-rest-spread": ["@babel/plugin-syntax-object-rest-spread@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA=="], - - "@babel/plugin-syntax-optional-catch-binding": ["@babel/plugin-syntax-optional-catch-binding@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q=="], - - "@babel/plugin-syntax-optional-chaining": ["@babel/plugin-syntax-optional-chaining@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg=="], - - "@babel/plugin-syntax-private-property-in-object": ["@babel/plugin-syntax-private-property-in-object@7.14.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg=="], - - "@babel/plugin-syntax-top-level-await": ["@babel/plugin-syntax-top-level-await@7.14.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw=="], - - "@babel/plugin-syntax-typescript": ["@babel/plugin-syntax-typescript@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ=="], - - "@babel/plugin-transform-arrow-functions": ["@babel/plugin-transform-arrow-functions@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA=="], - - "@babel/plugin-transform-async-generator-functions": ["@babel/plugin-transform-async-generator-functions@7.28.0", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-remap-async-to-generator": "^7.27.1", "@babel/traverse": "^7.28.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q=="], - - "@babel/plugin-transform-async-to-generator": ["@babel/plugin-transform-async-to-generator@7.27.1", "", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-remap-async-to-generator": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA=="], - - "@babel/plugin-transform-block-scoping": ["@babel/plugin-transform-block-scoping@7.28.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g=="], - - "@babel/plugin-transform-class-properties": ["@babel/plugin-transform-class-properties@7.27.1", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA=="], - - "@babel/plugin-transform-class-static-block": ["@babel/plugin-transform-class-static-block@7.28.3", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.28.3", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.12.0" } }, "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg=="], - - "@babel/plugin-transform-classes": ["@babel/plugin-transform-classes@7.28.4", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-globals": "^7.28.0", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/traverse": "^7.28.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA=="], - - "@babel/plugin-transform-computed-properties": ["@babel/plugin-transform-computed-properties@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/template": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw=="], - - "@babel/plugin-transform-destructuring": ["@babel/plugin-transform-destructuring@7.28.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.28.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw=="], - - "@babel/plugin-transform-export-namespace-from": ["@babel/plugin-transform-export-namespace-from@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ=="], - - "@babel/plugin-transform-flow-strip-types": ["@babel/plugin-transform-flow-strip-types@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-syntax-flow": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg=="], - - "@babel/plugin-transform-for-of": ["@babel/plugin-transform-for-of@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw=="], - - "@babel/plugin-transform-function-name": ["@babel/plugin-transform-function-name@7.27.1", "", { "dependencies": { "@babel/helper-compilation-targets": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ=="], - - "@babel/plugin-transform-literals": ["@babel/plugin-transform-literals@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA=="], - - "@babel/plugin-transform-logical-assignment-operators": ["@babel/plugin-transform-logical-assignment-operators@7.28.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA=="], - - "@babel/plugin-transform-modules-commonjs": ["@babel/plugin-transform-modules-commonjs@7.27.1", "", { "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw=="], - - "@babel/plugin-transform-named-capturing-groups-regex": ["@babel/plugin-transform-named-capturing-groups-regex@7.27.1", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng=="], - - "@babel/plugin-transform-nullish-coalescing-operator": ["@babel/plugin-transform-nullish-coalescing-operator@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA=="], - - "@babel/plugin-transform-numeric-separator": ["@babel/plugin-transform-numeric-separator@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw=="], - - "@babel/plugin-transform-object-rest-spread": ["@babel/plugin-transform-object-rest-spread@7.28.4", "", { "dependencies": { "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-transform-destructuring": "^7.28.0", "@babel/plugin-transform-parameters": "^7.27.7", "@babel/traverse": "^7.28.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew=="], - - "@babel/plugin-transform-optional-catch-binding": ["@babel/plugin-transform-optional-catch-binding@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q=="], - - "@babel/plugin-transform-optional-chaining": ["@babel/plugin-transform-optional-chaining@7.28.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ=="], - - "@babel/plugin-transform-parameters": ["@babel/plugin-transform-parameters@7.27.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg=="], - - "@babel/plugin-transform-private-methods": ["@babel/plugin-transform-private-methods@7.27.1", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA=="], - - "@babel/plugin-transform-private-property-in-object": ["@babel/plugin-transform-private-property-in-object@7.27.1", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ=="], - - "@babel/plugin-transform-react-display-name": ["@babel/plugin-transform-react-display-name@7.28.0", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA=="], - - "@babel/plugin-transform-react-jsx": ["@babel/plugin-transform-react-jsx@7.27.1", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-module-imports": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/types": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw=="], - - "@babel/plugin-transform-react-jsx-development": ["@babel/plugin-transform-react-jsx-development@7.27.1", "", { "dependencies": { "@babel/plugin-transform-react-jsx": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q=="], - - "@babel/plugin-transform-react-jsx-self": ["@babel/plugin-transform-react-jsx-self@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw=="], - - "@babel/plugin-transform-react-jsx-source": ["@babel/plugin-transform-react-jsx-source@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw=="], - - "@babel/plugin-transform-react-pure-annotations": ["@babel/plugin-transform-react-pure-annotations@7.27.1", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA=="], - - "@babel/plugin-transform-regenerator": ["@babel/plugin-transform-regenerator@7.28.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA=="], - - "@babel/plugin-transform-runtime": ["@babel/plugin-transform-runtime@7.28.5", "", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "babel-plugin-polyfill-corejs2": "^0.4.14", "babel-plugin-polyfill-corejs3": "^0.13.0", "babel-plugin-polyfill-regenerator": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w=="], - - "@babel/plugin-transform-shorthand-properties": ["@babel/plugin-transform-shorthand-properties@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ=="], - - "@babel/plugin-transform-spread": ["@babel/plugin-transform-spread@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q=="], - - "@babel/plugin-transform-sticky-regex": ["@babel/plugin-transform-sticky-regex@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g=="], - - "@babel/plugin-transform-template-literals": ["@babel/plugin-transform-template-literals@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg=="], - - "@babel/plugin-transform-typescript": ["@babel/plugin-transform-typescript@7.28.5", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-create-class-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA=="], - - "@babel/plugin-transform-unicode-regex": ["@babel/plugin-transform-unicode-regex@7.27.1", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw=="], - - "@babel/preset-react": ["@babel/preset-react@7.28.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-transform-react-display-name": "^7.28.0", "@babel/plugin-transform-react-jsx": "^7.27.1", "@babel/plugin-transform-react-jsx-development": "^7.27.1", "@babel/plugin-transform-react-pure-annotations": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ=="], + "@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="], - "@babel/preset-typescript": ["@babel/preset-typescript@7.28.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.27.1", "@babel/plugin-transform-typescript": "^7.28.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g=="], + "@babel/code-frame": ["@babel/code-frame@7.27.1", "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], - "@babel/runtime": ["@babel/runtime@7.28.4", "", {}, "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ=="], + "@babel/compat-data": ["@babel/compat-data@7.28.5", "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.5.tgz", {}, "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA=="], - "@babel/template": ["@babel/template@7.27.2", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/parser": "^7.27.2", "@babel/types": "^7.27.1" } }, "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw=="], + "@babel/core": ["@babel/core@7.28.5", "https://registry.yarnpkg.com/@babel/core/-/core-7.28.5.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", "@babel/helpers": "^7.28.4", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw=="], - "@babel/traverse": ["@babel/traverse@7.28.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/types": "^7.28.5", "debug": "^4.3.1" } }, "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ=="], + "@babel/generator": ["@babel/generator@7.28.5", "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.5.tgz", { "dependencies": { "@babel/parser": "^7.28.5", "@babel/types": "^7.28.5", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ=="], - "@babel/traverse--for-generate-function-map": ["@babel/traverse@7.28.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/types": "^7.28.5", "debug": "^4.3.1" } }, "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ=="], + "@babel/helper-annotate-as-pure": ["@babel/helper-annotate-as-pure@7.27.3", "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", { "dependencies": { "@babel/types": "^7.27.3" } }, "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg=="], - "@babel/types": ["@babel/types@7.28.5", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA=="], + "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.27.2", "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", { "dependencies": { "@babel/compat-data": "^7.27.2", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ=="], - "@bcoe/v8-coverage": ["@bcoe/v8-coverage@0.2.3", "", {}, "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="], + "@babel/helper-create-class-features-plugin": ["@babel/helper-create-class-features-plugin@7.28.5", "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/traverse": "^7.28.5", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ=="], - "@egjs/hammerjs": ["@egjs/hammerjs@2.0.17", "", { "dependencies": { "@types/hammerjs": "^2.0.36" } }, "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A=="], + "@babel/helper-create-regexp-features-plugin": ["@babel/helper-create-regexp-features-plugin@7.28.5", "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "regexpu-core": "^6.3.1", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw=="], - "@emnapi/core": ["@emnapi/core@1.6.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" } }, "sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg=="], + "@babel/helper-define-polyfill-provider": ["@babel/helper-define-polyfill-provider@0.6.5", "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", { "dependencies": { "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", "debug": "^4.4.1", "lodash.debounce": "^4.0.8", "resolve": "^1.22.10" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg=="], - "@emnapi/runtime": ["@emnapi/runtime@1.6.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA=="], + "@babel/helper-globals": ["@babel/helper-globals@7.28.0", "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz", {}, "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw=="], - "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], + "@babel/helper-member-expression-to-functions": ["@babel/helper-member-expression-to-functions@7.28.5", "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", { "dependencies": { "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5" } }, "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg=="], - "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g=="], + "@babel/helper-module-imports": ["@babel/helper-module-imports@7.27.1", "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w=="], - "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="], + "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.28.3", "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", "@babel/traverse": "^7.28.3" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw=="], - "@eslint/config-array": ["@eslint/config-array@0.21.1", "", { "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA=="], + "@babel/helper-optimise-call-expression": ["@babel/helper-optimise-call-expression@7.27.1", "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", { "dependencies": { "@babel/types": "^7.27.1" } }, "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw=="], - "@eslint/config-helpers": ["@eslint/config-helpers@0.4.1", "", { "dependencies": { "@eslint/core": "^0.16.0" } }, "sha512-csZAzkNhsgwb0I/UAV6/RGFTbiakPCf0ZrGmrIxQpYvGZ00PhTkSnyKNolphgIvmnJeGw6rcGVEXfTzUnFuEvw=="], + "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.27.1", "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", {}, "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw=="], - "@eslint/core": ["@eslint/core@0.16.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q=="], + "@babel/helper-remap-async-to-generator": ["@babel/helper-remap-async-to-generator@7.27.1", "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-wrap-function": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA=="], - "@eslint/eslintrc": ["@eslint/eslintrc@3.3.1", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ=="], + "@babel/helper-replace-supers": ["@babel/helper-replace-supers@7.27.1", "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", { "dependencies": { "@babel/helper-member-expression-to-functions": "^7.27.1", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA=="], - "@eslint/js": ["@eslint/js@9.38.0", "", {}, "sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A=="], + "@babel/helper-skip-transparent-expression-wrappers": ["@babel/helper-skip-transparent-expression-wrappers@7.27.1", "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg=="], - "@eslint/object-schema": ["@eslint/object-schema@2.1.7", "", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="], + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], - "@eslint/plugin-kit": ["@eslint/plugin-kit@0.4.0", "", { "dependencies": { "@eslint/core": "^0.16.0", "levn": "^0.4.1" } }, "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A=="], + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], - "@expo/cli": ["@expo/cli@54.0.14", "", { "dependencies": { "@0no-co/graphql.web": "^1.0.8", "@expo/code-signing-certificates": "^0.0.5", "@expo/config": "~12.0.10", "@expo/config-plugins": "~54.0.2", "@expo/devcert": "^1.1.2", "@expo/env": "~2.0.7", "@expo/image-utils": "^0.8.7", "@expo/json-file": "^10.0.7", "@expo/mcp-tunnel": "~0.0.7", "@expo/metro": "~54.1.0", "@expo/metro-config": "~54.0.8", "@expo/osascript": "^2.3.7", "@expo/package-manager": "^1.9.8", "@expo/plist": "^0.4.7", "@expo/prebuild-config": "^54.0.6", "@expo/schema-utils": "^0.1.7", "@expo/spawn-async": "^1.7.2", "@expo/ws-tunnel": "^1.0.1", "@expo/xcpretty": "^4.3.0", "@react-native/dev-middleware": "0.81.5", "@urql/core": "^5.0.6", "@urql/exchange-retry": "^1.3.0", "accepts": "^1.3.8", "arg": "^5.0.2", "better-opn": "~3.0.2", "bplist-creator": "0.1.0", "bplist-parser": "^0.3.1", "chalk": "^4.0.0", "ci-info": "^3.3.0", "compression": "^1.7.4", "connect": "^3.7.0", "debug": "^4.3.4", "env-editor": "^0.4.1", "expo-server": "^1.0.3", "freeport-async": "^2.0.0", "getenv": "^2.0.0", "glob": "^10.4.2", "lan-network": "^0.1.6", "minimatch": "^9.0.0", "node-forge": "^1.3.1", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "picomatch": "^3.0.1", "pretty-bytes": "^5.6.0", "pretty-format": "^29.7.0", "progress": "^2.0.3", "prompts": "^2.3.2", "qrcode-terminal": "0.11.0", "require-from-string": "^2.0.2", "requireg": "^0.2.2", "resolve": "^1.22.2", "resolve-from": "^5.0.0", "resolve.exports": "^2.0.3", "semver": "^7.6.0", "send": "^0.19.0", "slugify": "^1.3.4", "source-map-support": "~0.5.21", "stacktrace-parser": "^0.1.10", "structured-headers": "^0.4.1", "tar": "^7.4.3", "terminal-link": "^2.1.1", "undici": "^6.18.2", "wrap-ansi": "^7.0.0", "ws": "^8.12.1" }, "peerDependencies": { "expo": "*", "expo-router": "*", "react-native": "*" }, "optionalPeers": ["expo-router", "react-native"], "bin": { "expo-internal": "build/bin/cli" } }, "sha512-M7QW/GHx1FJg+CGgChGKerYXmCGWDskJ8S6w+8m49IBZ41CMDeWRH5snQkFoGCttF8WnzhGiX+nu69AFnEuDHQ=="], + "@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="], - "@expo/code-signing-certificates": ["@expo/code-signing-certificates@0.0.5", "", { "dependencies": { "node-forge": "^1.2.1", "nullthrows": "^1.1.1" } }, "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw=="], + "@babel/helper-wrap-function": ["@babel/helper-wrap-function@7.28.3", "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", { "dependencies": { "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.3", "@babel/types": "^7.28.2" } }, "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g=="], - "@expo/config": ["@expo/config@12.0.10", "", { "dependencies": { "@babel/code-frame": "~7.10.4", "@expo/config-plugins": "~54.0.2", "@expo/config-types": "^54.0.8", "@expo/json-file": "^10.0.7", "deepmerge": "^4.3.1", "getenv": "^2.0.0", "glob": "^10.4.2", "require-from-string": "^2.0.2", "resolve-from": "^5.0.0", "resolve-workspace-root": "^2.0.0", "semver": "^7.6.0", "slugify": "^1.3.4", "sucrase": "3.35.0" } }, "sha512-lJMof5Nqakq1DxGYlghYB/ogSBjmv4Fxn1ovyDmcjlRsQdFCXgu06gEUogkhPtc9wBt9WlTTfqENln5HHyLW6w=="], + "@babel/helpers": ["@babel/helpers@7.28.4", "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.4.tgz", { "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.28.4" } }, "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w=="], - "@expo/config-plugins": ["@expo/config-plugins@54.0.2", "", { "dependencies": { "@expo/config-types": "^54.0.8", "@expo/json-file": "~10.0.7", "@expo/plist": "^0.4.7", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", "debug": "^4.3.5", "getenv": "^2.0.0", "glob": "^10.4.2", "resolve-from": "^5.0.0", "semver": "^7.5.4", "slash": "^3.0.0", "slugify": "^1.6.6", "xcode": "^3.0.1", "xml2js": "0.6.0" } }, "sha512-jD4qxFcURQUVsUFGMcbo63a/AnviK8WUGard+yrdQE3ZrB/aurn68SlApjirQQLEizhjI5Ar2ufqflOBlNpyPg=="], + "@babel/parser": ["@babel/parser@7.28.5", "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.5.tgz", { "dependencies": { "@babel/types": "^7.28.5" }, "bin": "./bin/babel-parser.js" }, "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ=="], - "@expo/config-types": ["@expo/config-types@54.0.8", "", {}, "sha512-lyIn/x/Yz0SgHL7IGWtgTLg6TJWC9vL7489++0hzCHZ4iGjVcfZmPTUfiragZ3HycFFj899qN0jlhl49IHa94A=="], + "@babel/plugin-proposal-decorators": ["@babel/plugin-proposal-decorators@7.28.0", "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.28.0.tgz", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-syntax-decorators": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg=="], - "@expo/devcert": ["@expo/devcert@1.2.0", "", { "dependencies": { "@expo/sudo-prompt": "^9.3.1", "debug": "^3.1.0", "glob": "^10.4.2" } }, "sha512-Uilcv3xGELD5t/b0eM4cxBFEKQRIivB3v7i+VhWLV/gL98aw810unLKKJbGAxAIhY6Ipyz8ChWibFsKFXYwstA=="], + "@babel/plugin-proposal-export-default-from": ["@babel/plugin-proposal-export-default-from@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-hjlsMBl1aJc5lp8MoCDEZCiYzlgdRAShOjAfRw6X+GlpLpUPU7c3XNLsKFZbQk/1cRzBlJ7CXg3xJAJMrFa1Uw=="], - "@expo/devtools": ["@expo/devtools@0.1.7", "", { "dependencies": { "chalk": "^4.1.2" }, "peerDependencies": { "react": "*", "react-native": "*" }, "optionalPeers": ["react", "react-native"] }, "sha512-dfIa9qMyXN+0RfU6SN4rKeXZyzKWsnz6xBSDccjL4IRiE+fQ0t84zg0yxgN4t/WK2JU5v6v4fby7W7Crv9gJvA=="], + "@babel/plugin-syntax-async-generators": ["@babel/plugin-syntax-async-generators@7.8.4", "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw=="], - "@expo/env": ["@expo/env@2.0.7", "", { "dependencies": { "chalk": "^4.0.0", "debug": "^4.3.4", "dotenv": "~16.4.5", "dotenv-expand": "~11.0.6", "getenv": "^2.0.0" } }, "sha512-BNETbLEohk3HQ2LxwwezpG8pq+h7Fs7/vAMP3eAtFT1BCpprLYoBBFZH7gW4aqGfqOcVP4Lc91j014verrYNGg=="], + "@babel/plugin-syntax-bigint": ["@babel/plugin-syntax-bigint@7.8.3", "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg=="], - "@expo/fingerprint": ["@expo/fingerprint@0.15.2", "", { "dependencies": { "@expo/spawn-async": "^1.7.2", "arg": "^5.0.2", "chalk": "^4.1.2", "debug": "^4.3.4", "getenv": "^2.0.0", "glob": "^10.4.2", "ignore": "^5.3.1", "minimatch": "^9.0.0", "p-limit": "^3.1.0", "resolve-from": "^5.0.0", "semver": "^7.6.0" }, "bin": { "fingerprint": "bin/cli.js" } }, "sha512-mA3weHEOd9B3mbDLNDKmAcFWo3kqsAJqPne7uMJndheKXPbRw15bV+ajAGBYZh2SS37xixLJ5eDpuc+Wr6jJtw=="], + "@babel/plugin-syntax-class-properties": ["@babel/plugin-syntax-class-properties@7.12.13", "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA=="], - "@expo/image-utils": ["@expo/image-utils@0.8.7", "", { "dependencies": { "@expo/spawn-async": "^1.7.2", "chalk": "^4.0.0", "getenv": "^2.0.0", "jimp-compact": "0.16.1", "parse-png": "^2.1.0", "resolve-from": "^5.0.0", "resolve-global": "^1.0.0", "semver": "^7.6.0", "temp-dir": "~2.0.0", "unique-string": "~2.0.0" } }, "sha512-SXOww4Wq3RVXLyOaXiCCuQFguCDh8mmaHBv54h/R29wGl4jRY8GEyQEx8SypV/iHt1FbzsU/X3Qbcd9afm2W2w=="], + "@babel/plugin-syntax-class-static-block": ["@babel/plugin-syntax-class-static-block@7.14.5", "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw=="], - "@expo/json-file": ["@expo/json-file@10.0.7", "", { "dependencies": { "@babel/code-frame": "~7.10.4", "json5": "^2.2.3" } }, "sha512-z2OTC0XNO6riZu98EjdNHC05l51ySeTto6GP7oSQrCvQgG9ARBwD1YvMQaVZ9wU7p/4LzSf1O7tckL3B45fPpw=="], + "@babel/plugin-syntax-decorators": ["@babel/plugin-syntax-decorators@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A=="], - "@expo/mcp-tunnel": ["@expo/mcp-tunnel@0.0.8", "", { "dependencies": { "ws": "^8.18.3", "zod": "^3.25.76", "zod-to-json-schema": "^3.24.6" }, "peerDependencies": { "@modelcontextprotocol/sdk": "^1.13.2" }, "optionalPeers": ["@modelcontextprotocol/sdk"] }, "sha512-6261obzt6h9TQb6clET7Fw4Ig4AY2hfTNKI3gBt0gcTNxZipwMg8wER7ssDYieA9feD/FfPTuCPYFcR280aaWA=="], + "@babel/plugin-syntax-dynamic-import": ["@babel/plugin-syntax-dynamic-import@7.8.3", "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ=="], - "@expo/metro": ["@expo/metro@54.1.0", "", { "dependencies": { "metro": "0.83.2", "metro-babel-transformer": "0.83.2", "metro-cache": "0.83.2", "metro-cache-key": "0.83.2", "metro-config": "0.83.2", "metro-core": "0.83.2", "metro-file-map": "0.83.2", "metro-resolver": "0.83.2", "metro-runtime": "0.83.2", "metro-source-map": "0.83.2", "metro-transform-plugins": "0.83.2", "metro-transform-worker": "0.83.2" } }, "sha512-MgdeRNT/LH0v1wcO0TZp9Qn8zEF0X2ACI0wliPtv5kXVbXWI+yK9GyrstwLAiTXlULKVIg3HVSCCvmLu0M3tnw=="], + "@babel/plugin-syntax-export-default-from": ["@babel/plugin-syntax-export-default-from@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-eBC/3KSekshx19+N40MzjWqJd7KTEdOoLesAfa4IDFI8eRz5a47i5Oszus6zG/cwIXN63YhgLOMSSNJx49sENg=="], - "@expo/metro-config": ["@expo/metro-config@54.0.8", "", { "dependencies": { "@babel/code-frame": "^7.20.0", "@babel/core": "^7.20.0", "@babel/generator": "^7.20.5", "@expo/config": "~12.0.10", "@expo/env": "~2.0.7", "@expo/json-file": "~10.0.7", "@expo/metro": "~54.1.0", "@expo/spawn-async": "^1.7.2", "browserslist": "^4.25.0", "chalk": "^4.1.0", "debug": "^4.3.2", "dotenv": "~16.4.5", "dotenv-expand": "~11.0.6", "getenv": "^2.0.0", "glob": "^10.4.2", "hermes-parser": "^0.29.1", "jsc-safe-url": "^0.2.4", "lightningcss": "^1.30.1", "minimatch": "^9.0.0", "postcss": "~8.4.32", "resolve-from": "^5.0.0" }, "peerDependencies": { "expo": "*" }, "optionalPeers": ["expo"] }, "sha512-rCkDQ8IT6sgcGNy48O2cTE4NlazCAgAIsD5qBsNPJLZSS0XbaILvAgGsFt/4nrx0GMGj6iQcOn5ifwV4NssTmw=="], + "@babel/plugin-syntax-flow": ["@babel/plugin-syntax-flow@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA=="], - "@expo/metro-runtime": ["@expo/metro-runtime@6.1.2", "", { "dependencies": { "anser": "^1.4.9", "pretty-format": "^29.7.0", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-dom": "*", "react-native": "*" }, "optionalPeers": ["react-dom"] }, "sha512-nvM+Qv45QH7pmYvP8JB1G8JpScrWND3KrMA6ZKe62cwwNiX/BjHU28Ear0v/4bQWXlOY0mv6B8CDIm8JxXde9g=="], + "@babel/plugin-syntax-import-attributes": ["@babel/plugin-syntax-import-attributes@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww=="], - "@expo/osascript": ["@expo/osascript@2.3.7", "", { "dependencies": { "@expo/spawn-async": "^1.7.2", "exec-async": "^2.2.0" } }, "sha512-IClSOXxR0YUFxIriUJVqyYki7lLMIHrrzOaP01yxAL1G8pj2DWV5eW1y5jSzIcIfSCNhtGsshGd1tU/AYup5iQ=="], + "@babel/plugin-syntax-import-meta": ["@babel/plugin-syntax-import-meta@7.10.4", "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g=="], - "@expo/package-manager": ["@expo/package-manager@1.9.8", "", { "dependencies": { "@expo/json-file": "^10.0.7", "@expo/spawn-async": "^1.7.2", "chalk": "^4.0.0", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "resolve-workspace-root": "^2.0.0" } }, "sha512-4/I6OWquKXYnzo38pkISHCOCOXxfeEmu4uDoERq1Ei/9Ur/s9y3kLbAamEkitUkDC7gHk1INxRWEfFNzGbmOrA=="], + "@babel/plugin-syntax-json-strings": ["@babel/plugin-syntax-json-strings@7.8.3", "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA=="], - "@expo/plist": ["@expo/plist@0.4.7", "", { "dependencies": { "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.2.3", "xmlbuilder": "^15.1.1" } }, "sha512-dGxqHPvCZKeRKDU1sJZMmuyVtcASuSYh1LPFVaM1DuffqPL36n6FMEL0iUqq2Tx3xhWk8wCnWl34IKplUjJDdA=="], + "@babel/plugin-syntax-jsx": ["@babel/plugin-syntax-jsx@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w=="], - "@expo/prebuild-config": ["@expo/prebuild-config@54.0.6", "", { "dependencies": { "@expo/config": "~12.0.10", "@expo/config-plugins": "~54.0.2", "@expo/config-types": "^54.0.8", "@expo/image-utils": "^0.8.7", "@expo/json-file": "^10.0.7", "@react-native/normalize-colors": "0.81.5", "debug": "^4.3.1", "resolve-from": "^5.0.0", "semver": "^7.6.0", "xml2js": "0.6.0" }, "peerDependencies": { "expo": "*" } }, "sha512-xowuMmyPNy+WTNq+YX0m0EFO/Knc68swjThk4dKivgZa8zI1UjvFXOBIOp8RX4ljCXLzwxQJM5oBBTvyn+59ZA=="], + "@babel/plugin-syntax-logical-assignment-operators": ["@babel/plugin-syntax-logical-assignment-operators@7.10.4", "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig=="], - "@expo/schema-utils": ["@expo/schema-utils@0.1.7", "", {}, "sha512-jWHoSuwRb5ZczjahrychMJ3GWZu54jK9ulNdh1d4OzAEq672K9E5yOlnlBsfIHWHGzUAT+0CL7Yt1INiXTz68g=="], + "@babel/plugin-syntax-nullish-coalescing-operator": ["@babel/plugin-syntax-nullish-coalescing-operator@7.8.3", "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ=="], - "@expo/sdk-runtime-versions": ["@expo/sdk-runtime-versions@1.0.0", "", {}, "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ=="], + "@babel/plugin-syntax-numeric-separator": ["@babel/plugin-syntax-numeric-separator@7.10.4", "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug=="], - "@expo/server": ["@expo/server@0.5.3", "", { "dependencies": { "abort-controller": "^3.0.0", "debug": "^4.3.4", "source-map-support": "~0.5.21", "undici": "^6.18.2" } }, "sha512-WXsWzeBs5v/h0PUfHyNLLz07rwwO5myQ1A5DGYewyyGLmsyl61yVCe8AgAlp1wkiMsqhj2hZqI2u3K10QnCMrQ=="], + "@babel/plugin-syntax-object-rest-spread": ["@babel/plugin-syntax-object-rest-spread@7.8.3", "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA=="], - "@expo/spawn-async": ["@expo/spawn-async@1.7.2", "", { "dependencies": { "cross-spawn": "^7.0.3" } }, "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew=="], + "@babel/plugin-syntax-optional-catch-binding": ["@babel/plugin-syntax-optional-catch-binding@7.8.3", "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q=="], - "@expo/sudo-prompt": ["@expo/sudo-prompt@9.3.2", "", {}, "sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw=="], + "@babel/plugin-syntax-optional-chaining": ["@babel/plugin-syntax-optional-chaining@7.8.3", "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg=="], - "@expo/vector-icons": ["@expo/vector-icons@15.0.3", "", { "peerDependencies": { "expo-font": ">=14.0.4", "react": "*", "react-native": "*" } }, "sha512-SBUyYKphmlfUBqxSfDdJ3jAdEVSALS2VUPOUyqn48oZmb2TL/O7t7/PQm5v4NQujYEPLPMTLn9KVw6H7twwbTA=="], + "@babel/plugin-syntax-private-property-in-object": ["@babel/plugin-syntax-private-property-in-object@7.14.5", "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg=="], - "@expo/ws-tunnel": ["@expo/ws-tunnel@1.0.6", "", {}, "sha512-nDRbLmSrJar7abvUjp3smDwH8HcbZcoOEa5jVPUv9/9CajgmWw20JNRwTuBRzWIWIkEJDkz20GoNA+tSwUqk0Q=="], + "@babel/plugin-syntax-top-level-await": ["@babel/plugin-syntax-top-level-await@7.14.5", "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw=="], - "@expo/xcpretty": ["@expo/xcpretty@4.3.2", "", { "dependencies": { "@babel/code-frame": "7.10.4", "chalk": "^4.1.0", "find-up": "^5.0.0", "js-yaml": "^4.1.0" }, "bin": { "excpretty": "build/cli.js" } }, "sha512-ReZxZ8pdnoI3tP/dNnJdnmAk7uLT4FjsKDGW7YeDdvdOMz2XCQSmSCM9IWlrXuWtMF9zeSB6WJtEhCQ41gQOfw=="], + "@babel/plugin-syntax-typescript": ["@babel/plugin-syntax-typescript@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ=="], - "@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], + "@babel/plugin-transform-arrow-functions": ["@babel/plugin-transform-arrow-functions@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA=="], - "@humanfs/node": ["@humanfs/node@0.16.7", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ=="], + "@babel/plugin-transform-async-generator-functions": ["@babel/plugin-transform-async-generator-functions@7.28.0", "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-remap-async-to-generator": "^7.27.1", "@babel/traverse": "^7.28.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q=="], - "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], + "@babel/plugin-transform-async-to-generator": ["@babel/plugin-transform-async-to-generator@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-remap-async-to-generator": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA=="], - "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], + "@babel/plugin-transform-block-scoping": ["@babel/plugin-transform-block-scoping@7.28.5", "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g=="], - "@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="], + "@babel/plugin-transform-class-properties": ["@babel/plugin-transform-class-properties@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA=="], - "@isaacs/fs-minipass": ["@isaacs/fs-minipass@4.0.1", "", { "dependencies": { "minipass": "^7.0.4" } }, "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="], + "@babel/plugin-transform-class-static-block": ["@babel/plugin-transform-class-static-block@7.28.3", "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.28.3", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.12.0" } }, "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg=="], - "@isaacs/ttlcache": ["@isaacs/ttlcache@1.4.1", "", {}, "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA=="], + "@babel/plugin-transform-classes": ["@babel/plugin-transform-classes@7.28.4", "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-globals": "^7.28.0", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/traverse": "^7.28.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA=="], - "@istanbuljs/load-nyc-config": ["@istanbuljs/load-nyc-config@1.1.0", "", { "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" } }, "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ=="], + "@babel/plugin-transform-computed-properties": ["@babel/plugin-transform-computed-properties@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/template": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw=="], - "@istanbuljs/schema": ["@istanbuljs/schema@0.1.3", "", {}, "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA=="], + "@babel/plugin-transform-destructuring": ["@babel/plugin-transform-destructuring@7.28.5", "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.28.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw=="], - "@jest/console": ["@jest/console@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0", "slash": "^3.0.0" } }, "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg=="], + "@babel/plugin-transform-export-namespace-from": ["@babel/plugin-transform-export-namespace-from@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ=="], - "@jest/core": ["@jest/core@29.7.0", "", { "dependencies": { "@jest/console": "^29.7.0", "@jest/reporters": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "jest-changed-files": "^29.7.0", "jest-config": "^29.7.0", "jest-haste-map": "^29.7.0", "jest-message-util": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-resolve": "^29.7.0", "jest-resolve-dependencies": "^29.7.0", "jest-runner": "^29.7.0", "jest-runtime": "^29.7.0", "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", "jest-validate": "^29.7.0", "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"] }, "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg=="], + "@babel/plugin-transform-flow-strip-types": ["@babel/plugin-transform-flow-strip-types@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-syntax-flow": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg=="], - "@jest/create-cache-key-function": ["@jest/create-cache-key-function@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3" } }, "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA=="], + "@babel/plugin-transform-for-of": ["@babel/plugin-transform-for-of@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw=="], - "@jest/diff-sequences": ["@jest/diff-sequences@30.0.1", "", {}, "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw=="], + "@babel/plugin-transform-function-name": ["@babel/plugin-transform-function-name@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", { "dependencies": { "@babel/helper-compilation-targets": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ=="], - "@jest/environment": ["@jest/environment@29.7.0", "", { "dependencies": { "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "jest-mock": "^29.7.0" } }, "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw=="], + "@babel/plugin-transform-literals": ["@babel/plugin-transform-literals@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA=="], - "@jest/expect": ["@jest/expect@29.7.0", "", { "dependencies": { "expect": "^29.7.0", "jest-snapshot": "^29.7.0" } }, "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ=="], + "@babel/plugin-transform-logical-assignment-operators": ["@babel/plugin-transform-logical-assignment-operators@7.28.5", "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA=="], - "@jest/expect-utils": ["@jest/expect-utils@29.7.0", "", { "dependencies": { "jest-get-type": "^29.6.3" } }, "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA=="], + "@babel/plugin-transform-modules-commonjs": ["@babel/plugin-transform-modules-commonjs@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", { "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw=="], - "@jest/fake-timers": ["@jest/fake-timers@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", "jest-message-util": "^29.7.0", "jest-mock": "^29.7.0", "jest-util": "^29.7.0" } }, "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ=="], + "@babel/plugin-transform-named-capturing-groups-regex": ["@babel/plugin-transform-named-capturing-groups-regex@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng=="], - "@jest/get-type": ["@jest/get-type@30.1.0", "", {}, "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA=="], + "@babel/plugin-transform-nullish-coalescing-operator": ["@babel/plugin-transform-nullish-coalescing-operator@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA=="], - "@jest/globals": ["@jest/globals@29.7.0", "", { "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", "@jest/types": "^29.6.3", "jest-mock": "^29.7.0" } }, "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ=="], + "@babel/plugin-transform-numeric-separator": ["@babel/plugin-transform-numeric-separator@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw=="], - "@jest/reporters": ["@jest/reporters@29.7.0", "", { "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0", "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", "v8-to-istanbul": "^9.0.1" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"] }, "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg=="], + "@babel/plugin-transform-object-rest-spread": ["@babel/plugin-transform-object-rest-spread@7.28.4", "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", { "dependencies": { "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-transform-destructuring": "^7.28.0", "@babel/plugin-transform-parameters": "^7.27.7", "@babel/traverse": "^7.28.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew=="], - "@jest/schemas": ["@jest/schemas@29.6.3", "", { "dependencies": { "@sinclair/typebox": "^0.27.8" } }, "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA=="], + "@babel/plugin-transform-optional-catch-binding": ["@babel/plugin-transform-optional-catch-binding@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q=="], - "@jest/source-map": ["@jest/source-map@29.6.3", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" } }, "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw=="], + "@babel/plugin-transform-optional-chaining": ["@babel/plugin-transform-optional-chaining@7.28.5", "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ=="], - "@jest/test-result": ["@jest/test-result@29.7.0", "", { "dependencies": { "@jest/console": "^29.7.0", "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA=="], + "@babel/plugin-transform-parameters": ["@babel/plugin-transform-parameters@7.27.7", "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg=="], - "@jest/test-sequencer": ["@jest/test-sequencer@29.7.0", "", { "dependencies": { "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "slash": "^3.0.0" } }, "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw=="], + "@babel/plugin-transform-private-methods": ["@babel/plugin-transform-private-methods@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA=="], - "@jest/transform": ["@jest/transform@29.7.0", "", { "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", "write-file-atomic": "^4.0.2" } }, "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw=="], + "@babel/plugin-transform-private-property-in-object": ["@babel/plugin-transform-private-property-in-object@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ=="], - "@jest/types": ["@jest/types@29.6.3", "", { "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^17.0.8", "chalk": "^4.0.0" } }, "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw=="], + "@babel/plugin-transform-react-display-name": ["@babel/plugin-transform-react-display-name@7.28.0", "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA=="], - "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], + "@babel/plugin-transform-react-jsx": ["@babel/plugin-transform-react-jsx@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-module-imports": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/types": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw=="], - "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + "@babel/plugin-transform-react-jsx-development": ["@babel/plugin-transform-react-jsx-development@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", { "dependencies": { "@babel/plugin-transform-react-jsx": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q=="], - "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + "@babel/plugin-transform-react-jsx-self": ["@babel/plugin-transform-react-jsx-self@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw=="], - "@jridgewell/source-map": ["@jridgewell/source-map@0.3.11", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA=="], + "@babel/plugin-transform-react-jsx-source": ["@babel/plugin-transform-react-jsx-source@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw=="], - "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + "@babel/plugin-transform-react-pure-annotations": ["@babel/plugin-transform-react-pure-annotations@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA=="], - "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + "@babel/plugin-transform-regenerator": ["@babel/plugin-transform-regenerator@7.28.4", "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA=="], - "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.12", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.10.0" } }, "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ=="], + "@babel/plugin-transform-runtime": ["@babel/plugin-transform-runtime@7.28.5", "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "babel-plugin-polyfill-corejs2": "^0.4.14", "babel-plugin-polyfill-corejs3": "^0.13.0", "babel-plugin-polyfill-regenerator": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w=="], - "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], + "@babel/plugin-transform-shorthand-properties": ["@babel/plugin-transform-shorthand-properties@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ=="], - "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], + "@babel/plugin-transform-spread": ["@babel/plugin-transform-spread@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q=="], - "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], + "@babel/plugin-transform-sticky-regex": ["@babel/plugin-transform-sticky-regex@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g=="], - "@nolyfill/is-core-module": ["@nolyfill/is-core-module@1.0.39", "", {}, "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA=="], + "@babel/plugin-transform-typescript": ["@babel/plugin-transform-typescript@7.28.5", "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-create-class-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA=="], - "@pkgjs/parseargs": ["@pkgjs/parseargs@0.11.0", "", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="], + "@babel/plugin-transform-unicode-regex": ["@babel/plugin-transform-unicode-regex@7.27.1", "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw=="], - "@pkgr/core": ["@pkgr/core@0.2.9", "", {}, "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA=="], + "@babel/preset-react": ["@babel/preset-react@7.28.5", "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.28.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-transform-react-display-name": "^7.28.0", "@babel/plugin-transform-react-jsx": "^7.27.1", "@babel/plugin-transform-react-jsx-development": "^7.27.1", "@babel/plugin-transform-react-pure-annotations": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ=="], - "@radix-ui/primitive": ["@radix-ui/primitive@1.1.3", "", {}, "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg=="], + "@babel/preset-typescript": ["@babel/preset-typescript@7.28.5", "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.27.1", "@babel/plugin-transform-typescript": "^7.28.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g=="], - "@radix-ui/react-collection": ["@radix-ui/react-collection@1.1.7", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw=="], + "@babel/runtime": ["@babel/runtime@7.28.4", "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz", {}, "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ=="], - "@radix-ui/react-compose-refs": ["@radix-ui/react-compose-refs@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg=="], + "@babel/template": ["@babel/template@7.27.2", "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/parser": "^7.27.2", "@babel/types": "^7.27.1" } }, "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw=="], - "@radix-ui/react-context": ["@radix-ui/react-context@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA=="], + "@babel/traverse": ["@babel/traverse@7.28.5", "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.5.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/types": "^7.28.5", "debug": "^4.3.1" } }, "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ=="], - "@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.1.15", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.11", "@radix-ui/react-focus-guards": "1.1.3", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw=="], + "@babel/traverse--for-generate-function-map": ["@babel/traverse@7.28.5", "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.5.tgz", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/types": "^7.28.5", "debug": "^4.3.1" } }, "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ=="], - "@radix-ui/react-direction": ["@radix-ui/react-direction@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw=="], + "@babel/types": ["@babel/types@7.28.5", "https://registry.yarnpkg.com/@babel/types/-/types-7.28.5.tgz", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA=="], - "@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.1.11", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-escape-keydown": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg=="], + "@bcoe/v8-coverage": ["@bcoe/v8-coverage@0.2.3", "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", {}, "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="], - "@radix-ui/react-focus-guards": ["@radix-ui/react-focus-guards@1.1.3", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw=="], + "@emnapi/core": ["@emnapi/core@1.6.0", "https://registry.yarnpkg.com/@emnapi/core/-/core-1.6.0.tgz", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" } }, "sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg=="], - "@radix-ui/react-focus-scope": ["@radix-ui/react-focus-scope@1.1.7", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw=="], + "@emnapi/runtime": ["@emnapi/runtime@1.6.0", "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.6.0.tgz", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA=="], - "@radix-ui/react-id": ["@radix-ui/react-id@1.1.1", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg=="], + "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], - "@radix-ui/react-portal": ["@radix-ui/react-portal@1.1.9", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ=="], + "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.0", "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g=="], - "@radix-ui/react-presence": ["@radix-ui/react-presence@1.1.5", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ=="], + "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="], - "@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="], + "@eslint/config-array": ["@eslint/config-array@0.21.1", "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.1.tgz", { "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA=="], - "@radix-ui/react-roving-focus": ["@radix-ui/react-roving-focus@1.1.11", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA=="], + "@eslint/config-helpers": ["@eslint/config-helpers@0.4.1", "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.4.1.tgz", { "dependencies": { "@eslint/core": "^0.16.0" } }, "sha512-csZAzkNhsgwb0I/UAV6/RGFTbiakPCf0ZrGmrIxQpYvGZ00PhTkSnyKNolphgIvmnJeGw6rcGVEXfTzUnFuEvw=="], - "@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="], + "@eslint/core": ["@eslint/core@0.16.0", "https://registry.yarnpkg.com/@eslint/core/-/core-0.16.0.tgz", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q=="], - "@radix-ui/react-tabs": ["@radix-ui/react-tabs@1.1.13", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-roving-focus": "1.1.11", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A=="], + "@eslint/eslintrc": ["@eslint/eslintrc@3.3.1", "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ=="], - "@radix-ui/react-use-callback-ref": ["@radix-ui/react-use-callback-ref@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg=="], + "@eslint/js": ["@eslint/js@9.38.0", "https://registry.yarnpkg.com/@eslint/js/-/js-9.38.0.tgz", {}, "sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A=="], - "@radix-ui/react-use-controllable-state": ["@radix-ui/react-use-controllable-state@1.2.2", "", { "dependencies": { "@radix-ui/react-use-effect-event": "0.0.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg=="], + "@eslint/object-schema": ["@eslint/object-schema@2.1.7", "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.7.tgz", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="], - "@radix-ui/react-use-effect-event": ["@radix-ui/react-use-effect-event@0.0.2", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA=="], + "@eslint/plugin-kit": ["@eslint/plugin-kit@0.4.0", "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz", { "dependencies": { "@eslint/core": "^0.16.0", "levn": "^0.4.1" } }, "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A=="], - "@radix-ui/react-use-escape-keydown": ["@radix-ui/react-use-escape-keydown@1.1.1", "", { "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g=="], + "@expo-google-fonts/material-symbols": ["@expo-google-fonts/material-symbols@0.4.23", "https://registry.yarnpkg.com/@expo-google-fonts/material-symbols/-/material-symbols-0.4.23.tgz", {}, "sha512-bxKaz8l+vLwSvl/hT9anLt32l4lSocqnDoDhPrpLF+FS0imJ+Kuw+2wtXSVMJqYm4fkVF19fDJo6OwmSJY1wvg=="], - "@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ=="], + "@expo/cli": ["@expo/cli@55.0.11", "https://registry.yarnpkg.com/@expo/cli/-/cli-55.0.11.tgz", { "dependencies": { "@expo/code-signing-certificates": "^0.0.6", "@expo/config": "~55.0.8", "@expo/config-plugins": "~55.0.6", "@expo/devcert": "^1.2.1", "@expo/env": "~2.1.1", "@expo/image-utils": "^0.8.12", "@expo/json-file": "^10.0.12", "@expo/log-box": "55.0.7", "@expo/metro": "~54.2.0", "@expo/metro-config": "~55.0.8", "@expo/osascript": "^2.4.2", "@expo/package-manager": "^1.10.3", "@expo/plist": "^0.5.2", "@expo/prebuild-config": "^55.0.7", "@expo/require-utils": "^55.0.2", "@expo/router-server": "^55.0.8", "@expo/schema-utils": "^55.0.2", "@expo/spawn-async": "^1.7.2", "@expo/ws-tunnel": "^1.0.1", "@expo/xcpretty": "^4.4.0", "@react-native/dev-middleware": "0.83.2", "accepts": "^1.3.8", "arg": "^5.0.2", "better-opn": "~3.0.2", "bplist-creator": "0.1.0", "bplist-parser": "^0.3.1", "chalk": "^4.0.0", "ci-info": "^3.3.0", "compression": "^1.7.4", "connect": "^3.7.0", "debug": "^4.3.4", "dnssd-advertise": "^1.1.3", "expo-server": "^55.0.5", "fetch-nodeshim": "^0.4.6", "getenv": "^2.0.0", "glob": "^13.0.0", "lan-network": "^0.2.0", "multitars": "^0.2.3", "node-forge": "^1.3.3", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "picomatch": "^4.0.3", "pretty-format": "^29.7.0", "progress": "^2.0.3", "prompts": "^2.3.2", "resolve-from": "^5.0.0", "semver": "^7.6.0", "send": "^0.19.0", "slugify": "^1.3.4", "source-map-support": "~0.5.21", "stacktrace-parser": "^0.1.10", "structured-headers": "^0.4.1", "terminal-link": "^2.1.1", "toqr": "^0.1.1", "wrap-ansi": "^7.0.0", "ws": "^8.12.1", "zod": "^3.25.76" }, "peerDependencies": { "expo": "*", "expo-router": "*", "react-native": "*" }, "optionalPeers": ["expo-router", "react-native"], "bin": { "expo-internal": "build/bin/cli" } }, "sha512-tSUQtJ1dr9G+N2+CS2ahP+JhYHuteoqfAzVJxCaRvMM6tuK13UWPfCCCY9X5fkkNs8EyUEGZ9bkpgeHaTt3rsA=="], - "@react-native/assets-registry": ["@react-native/assets-registry@0.81.5", "", {}, "sha512-705B6x/5Kxm1RKRvSv0ADYWm5JOnoiQ1ufW7h8uu2E6G9Of/eE6hP/Ivw3U5jI16ERqZxiKQwk34VJbB0niX9w=="], + "@expo/code-signing-certificates": ["@expo/code-signing-certificates@0.0.6", "https://registry.yarnpkg.com/@expo/code-signing-certificates/-/code-signing-certificates-0.0.6.tgz", { "dependencies": { "node-forge": "^1.3.3" } }, "sha512-iNe0puxwBNEcuua9gmTGzq+SuMDa0iATai1FlFTMHJ/vUmKvN/V//drXoLJkVb5i5H3iE/n/qIJxyoBnXouD0w=="], - "@react-native/babel-plugin-codegen": ["@react-native/babel-plugin-codegen@0.81.5", "", { "dependencies": { "@babel/traverse": "^7.25.3", "@react-native/codegen": "0.81.5" } }, "sha512-oF71cIH6je3fSLi6VPjjC3Sgyyn57JLHXs+mHWc9MoCiJJcM4nqsS5J38zv1XQ8d3zOW2JtHro+LF0tagj2bfQ=="], + "@expo/config": ["@expo/config@55.0.8", "https://registry.yarnpkg.com/@expo/config/-/config-55.0.8.tgz", { "dependencies": { "@expo/config-plugins": "~55.0.6", "@expo/config-types": "^55.0.5", "@expo/json-file": "^10.0.12", "@expo/require-utils": "^55.0.2", "deepmerge": "^4.3.1", "getenv": "^2.0.0", "glob": "^13.0.0", "resolve-from": "^5.0.0", "resolve-workspace-root": "^2.0.0", "semver": "^7.6.0", "slugify": "^1.3.4" } }, "sha512-D7RYYHfErCgEllGxNwdYdkgzLna7zkzUECBV3snbUpf7RvIpB5l1LpCgzuVoc5KVew5h7N1Tn4LnT/tBSUZsQg=="], - "@react-native/babel-preset": ["@react-native/babel-preset@0.81.5", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/plugin-proposal-export-default-from": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-default-from": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-transform-arrow-functions": "^7.24.7", "@babel/plugin-transform-async-generator-functions": "^7.25.4", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoping": "^7.25.0", "@babel/plugin-transform-class-properties": "^7.25.4", "@babel/plugin-transform-classes": "^7.25.4", "@babel/plugin-transform-computed-properties": "^7.24.7", "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-for-of": "^7.24.7", "@babel/plugin-transform-function-name": "^7.25.1", "@babel/plugin-transform-literals": "^7.25.2", "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", "@babel/plugin-transform-numeric-separator": "^7.24.7", "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-react-display-name": "^7.24.7", "@babel/plugin-transform-react-jsx": "^7.25.2", "@babel/plugin-transform-react-jsx-self": "^7.24.7", "@babel/plugin-transform-react-jsx-source": "^7.24.7", "@babel/plugin-transform-regenerator": "^7.24.7", "@babel/plugin-transform-runtime": "^7.24.7", "@babel/plugin-transform-shorthand-properties": "^7.24.7", "@babel/plugin-transform-spread": "^7.24.7", "@babel/plugin-transform-sticky-regex": "^7.24.7", "@babel/plugin-transform-typescript": "^7.25.2", "@babel/plugin-transform-unicode-regex": "^7.24.7", "@babel/template": "^7.25.0", "@react-native/babel-plugin-codegen": "0.81.5", "babel-plugin-syntax-hermes-parser": "0.29.1", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" } }, "sha512-UoI/x/5tCmi+pZ3c1+Ypr1DaRMDLI3y+Q70pVLLVgrnC3DHsHRIbHcCHIeG/IJvoeFqFM2sTdhSOLJrf8lOPrA=="], + "@expo/config-plugins": ["@expo/config-plugins@55.0.6", "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-55.0.6.tgz", { "dependencies": { "@expo/config-types": "^55.0.5", "@expo/json-file": "~10.0.12", "@expo/plist": "^0.5.2", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", "debug": "^4.3.5", "getenv": "^2.0.0", "glob": "^13.0.0", "resolve-from": "^5.0.0", "semver": "^7.5.4", "slugify": "^1.6.6", "xcode": "^3.0.1", "xml2js": "0.6.0" } }, "sha512-cIox6FjZlFaaX40rbQ3DvP9e87S5X85H9uw+BAxJE5timkMhuByy3GAlOsj1h96EyzSiol7Q6YIGgY1Jiz4M+A=="], - "@react-native/codegen": ["@react-native/codegen@0.81.5", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/parser": "^7.25.3", "glob": "^7.1.1", "hermes-parser": "0.29.1", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "yargs": "^17.6.2" } }, "sha512-a2TDA03Up8lpSa9sh5VRGCQDXgCTOyDOFH+aqyinxp1HChG8uk89/G+nkJ9FPd0rqgi25eCTR16TWdS3b+fA6g=="], + "@expo/config-types": ["@expo/config-types@55.0.5", "https://registry.yarnpkg.com/@expo/config-types/-/config-types-55.0.5.tgz", {}, "sha512-sCmSUZG4mZ/ySXvfyyBdhjivz8Q539X1NondwDdYG7s3SBsk+wsgPJzYsqgAG/P9+l0xWjUD2F+kQ1cAJ6NNLg=="], - "@react-native/community-cli-plugin": ["@react-native/community-cli-plugin@0.81.5", "", { "dependencies": { "@react-native/dev-middleware": "0.81.5", "debug": "^4.4.0", "invariant": "^2.2.4", "metro": "^0.83.1", "metro-config": "^0.83.1", "metro-core": "^0.83.1", "semver": "^7.1.3" }, "peerDependencies": { "@react-native-community/cli": "*", "@react-native/metro-config": "*" }, "optionalPeers": ["@react-native-community/cli", "@react-native/metro-config"] }, "sha512-yWRlmEOtcyvSZ4+OvqPabt+NS36vg0K/WADTQLhrYrm9qdZSuXmq8PmdJWz/68wAqKQ+4KTILiq2kjRQwnyhQw=="], + "@expo/devcert": ["@expo/devcert@1.2.1", "https://registry.yarnpkg.com/@expo/devcert/-/devcert-1.2.1.tgz", { "dependencies": { "@expo/sudo-prompt": "^9.3.1", "debug": "^3.1.0" } }, "sha512-qC4eaxmKMTmJC2ahwyui6ud8f3W60Ss7pMkpBq40Hu3zyiAaugPXnZ24145U7K36qO9UHdZUVxsCvIpz2RYYCA=="], - "@react-native/debugger-frontend": ["@react-native/debugger-frontend@0.81.5", "", {}, "sha512-bnd9FSdWKx2ncklOetCgrlwqSGhMHP2zOxObJbOWXoj7GHEmih4MKarBo5/a8gX8EfA1EwRATdfNBQ81DY+h+w=="], + "@expo/devtools": ["@expo/devtools@55.0.2", "https://registry.yarnpkg.com/@expo/devtools/-/devtools-55.0.2.tgz", { "dependencies": { "chalk": "^4.1.2" }, "peerDependencies": { "react": "*", "react-native": "*" }, "optionalPeers": ["react", "react-native"] }, "sha512-4VsFn9MUriocyuhyA+ycJP3TJhUsOFHDc270l9h3LhNpXMf6wvIdGcA0QzXkZtORXmlDybWXRP2KT1k36HcQkA=="], - "@react-native/dev-middleware": ["@react-native/dev-middleware@0.81.5", "", { "dependencies": { "@isaacs/ttlcache": "^1.4.1", "@react-native/debugger-frontend": "0.81.5", "chrome-launcher": "^0.15.2", "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", "debug": "^4.4.0", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "open": "^7.0.3", "serve-static": "^1.16.2", "ws": "^6.2.3" } }, "sha512-WfPfZzboYgo/TUtysuD5xyANzzfka8Ebni6RIb2wDxhb56ERi7qDrE4xGhtPsjCL4pQBXSVxyIlCy0d8I6EgGA=="], + "@expo/dom-webview": ["@expo/dom-webview@55.0.3", "https://registry.yarnpkg.com/@expo/dom-webview/-/dom-webview-55.0.3.tgz", { "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-bY4/rfcZ0f43DvOtMn8/kmPlmo01tex5hRoc5hKbwBwQjqWQuQt0ACwu7akR9IHI4j0WNG48eL6cZB6dZUFrzg=="], - "@react-native/gradle-plugin": ["@react-native/gradle-plugin@0.81.5", "", {}, "sha512-hORRlNBj+ReNMLo9jme3yQ6JQf4GZpVEBLxmTXGGlIL78MAezDZr5/uq9dwElSbcGmLEgeiax6e174Fie6qPLg=="], + "@expo/env": ["@expo/env@2.1.1", "https://registry.yarnpkg.com/@expo/env/-/env-2.1.1.tgz", { "dependencies": { "chalk": "^4.0.0", "debug": "^4.3.4", "getenv": "^2.0.0" } }, "sha512-rVvHC4I6xlPcg+mAO09ydUi2Wjv1ZytpLmHOSzvXzBAz9mMrJggqCe4s4dubjJvi/Ino/xQCLhbaLCnTtLpikg=="], - "@react-native/js-polyfills": ["@react-native/js-polyfills@0.81.5", "", {}, "sha512-fB7M1CMOCIUudTRuj7kzxIBTVw2KXnsgbQ6+4cbqSxo8NmRRhA0Ul4ZUzZj3rFd3VznTL4Brmocv1oiN0bWZ8w=="], + "@expo/fingerprint": ["@expo/fingerprint@0.16.5", "https://registry.yarnpkg.com/@expo/fingerprint/-/fingerprint-0.16.5.tgz", { "dependencies": { "@expo/env": "^2.0.11", "@expo/spawn-async": "^1.7.2", "arg": "^5.0.2", "chalk": "^4.1.2", "debug": "^4.3.4", "getenv": "^2.0.0", "glob": "^13.0.0", "ignore": "^5.3.1", "minimatch": "^10.2.2", "resolve-from": "^5.0.0", "semver": "^7.6.0" }, "bin": { "fingerprint": "bin/cli.js" } }, "sha512-mLrcymtgkW9IJ/G1e8MH1Xt2VIb1MOS86ePY0ePcnV3nVyJqm7gfa/AXD1Hk+eZXvf8XhioYz6QZaamBdEzR3A=="], - "@react-native/normalize-colors": ["@react-native/normalize-colors@0.81.5", "", {}, "sha512-0HuJ8YtqlTVRXGZuGeBejLE04wSQsibpTI+RGOyVqxZvgtlLLC/Ssw0UmbHhT4lYMp2fhdtvKZSs5emWB1zR/g=="], + "@expo/image-utils": ["@expo/image-utils@0.8.12", "https://registry.yarnpkg.com/@expo/image-utils/-/image-utils-0.8.12.tgz", { "dependencies": { "@expo/spawn-async": "^1.7.2", "chalk": "^4.0.0", "getenv": "^2.0.0", "jimp-compact": "0.16.1", "parse-png": "^2.1.0", "resolve-from": "^5.0.0", "semver": "^7.6.0" } }, "sha512-3KguH7kyKqq7pNwLb9j6BBdD/bjmNwXZG/HPWT6GWIXbwrvAJt2JNyYTP5agWJ8jbbuys1yuCzmkX+TU6rmI7A=="], - "@react-native/virtualized-lists": ["@react-native/virtualized-lists@0.81.5", "", { "dependencies": { "invariant": "^2.2.4", "nullthrows": "^1.1.1" }, "peerDependencies": { "@types/react": "^19.1.0", "react": "*", "react-native": "*" }, "optionalPeers": ["@types/react"] }, "sha512-UVXgV/db25OPIvwZySeToXD/9sKKhOdkcWmmf4Jh8iBZuyfML+/5CasaZ1E7Lqg6g3uqVQq75NqIwkYmORJMPw=="], + "@expo/json-file": ["@expo/json-file@10.0.12", "https://registry.yarnpkg.com/@expo/json-file/-/json-file-10.0.12.tgz", { "dependencies": { "@babel/code-frame": "^7.20.0", "json5": "^2.2.3" } }, "sha512-inbDycp1rMAelAofg7h/mMzIe+Owx6F7pur3XdQ3EPTy00tme+4P6FWgHKUcjN8dBSrnbRNpSyh5/shzHyVCyQ=="], - "@react-navigation/bottom-tabs": ["@react-navigation/bottom-tabs@7.7.1", "", { "dependencies": { "@react-navigation/elements": "^2.8.0", "color": "^4.2.3", "sf-symbols-typescript": "^2.1.0" }, "peerDependencies": { "@react-navigation/native": "^7.1.19", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", "react-native-screens": ">= 4.0.0" } }, "sha512-BU4k7To+idoQNsoXZwf71kOgkg7IWCsr5ZYFdqnQi/MjgNEpu46KenofQNw80cT0o7luNupNL2/WgjJnT/tQ2g=="], + "@expo/local-build-cache-provider": ["@expo/local-build-cache-provider@55.0.6", "https://registry.yarnpkg.com/@expo/local-build-cache-provider/-/local-build-cache-provider-55.0.6.tgz", { "dependencies": { "@expo/config": "~55.0.8", "chalk": "^4.1.2" } }, "sha512-4kfdv48sKzokijMqi07fINYA9/XprshmPgSLf8i69XgzIv2YdRyBbb70SzrufB7PDneFoltz8N83icW8gOOj1g=="], - "@react-navigation/core": ["@react-navigation/core@7.13.0", "", { "dependencies": { "@react-navigation/routers": "^7.5.1", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "^3.3.11", "query-string": "^7.1.3", "react-is": "^19.1.0", "use-latest-callback": "^0.2.4", "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "react": ">= 18.2.0" } }, "sha512-Fc/SO23HnlGnkou/z8JQUzwEMvhxuUhr4rdPTIZp/c8q1atq3k632Nfh8fEiGtk+MP1wtIvXdN2a5hBIWpLq3g=="], + "@expo/log-box": ["@expo/log-box@55.0.7", "https://registry.yarnpkg.com/@expo/log-box/-/log-box-55.0.7.tgz", { "dependencies": { "@expo/dom-webview": "^55.0.3", "anser": "^1.4.9", "stacktrace-parser": "^0.1.10" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-m7V1k2vlMp4NOj3fopjOg4zl/ANXyTRF3HMTMep2GZAKsPiDzgOQ41nm8CaU50/HlDIGXlCObss07gOn20UpHQ=="], - "@react-navigation/elements": ["@react-navigation/elements@2.8.0", "", { "dependencies": { "color": "^4.2.3", "use-latest-callback": "^0.2.4", "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "@react-native-masked-view/masked-view": ">= 0.2.0", "@react-navigation/native": "^7.1.19", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0" }, "optionalPeers": ["@react-native-masked-view/masked-view"] }, "sha512-uvSOkYOF7wfgkt57cl+6fZ2vQgTiYYyJleZzuWthPKHK4nDq2M4sc9SSzgK9GS9UCJFRBErNtl3S+/ErtrwREw=="], + "@expo/metro": ["@expo/metro@54.2.0", "https://registry.yarnpkg.com/@expo/metro/-/metro-54.2.0.tgz", { "dependencies": { "metro": "0.83.3", "metro-babel-transformer": "0.83.3", "metro-cache": "0.83.3", "metro-cache-key": "0.83.3", "metro-config": "0.83.3", "metro-core": "0.83.3", "metro-file-map": "0.83.3", "metro-minify-terser": "0.83.3", "metro-resolver": "0.83.3", "metro-runtime": "0.83.3", "metro-source-map": "0.83.3", "metro-symbolicate": "0.83.3", "metro-transform-plugins": "0.83.3", "metro-transform-worker": "0.83.3" } }, "sha512-h68TNZPGsk6swMmLm9nRSnE2UXm48rWwgcbtAHVMikXvbxdS41NDHHeqg1rcQ9AbznDRp6SQVC2MVpDnsRKU1w=="], - "@react-navigation/native": ["@react-navigation/native@7.1.19", "", { "dependencies": { "@react-navigation/core": "^7.13.0", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "^3.3.11", "use-latest-callback": "^0.2.4" }, "peerDependencies": { "react": ">= 18.2.0", "react-native": "*" } }, "sha512-fM7q8di4Q8sp2WUhiUWOe7bEDRyRhbzsKQOd5N2k+lHeCx3UncsRYuw4Q/KN0EovM3wWKqMMmhy/YWuEO04kgw=="], + "@expo/metro-config": ["@expo/metro-config@55.0.8", "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-55.0.8.tgz", { "dependencies": { "@babel/code-frame": "^7.20.0", "@babel/core": "^7.20.0", "@babel/generator": "^7.20.5", "@expo/config": "~55.0.8", "@expo/env": "~2.1.1", "@expo/json-file": "~10.0.12", "@expo/metro": "~54.2.0", "@expo/spawn-async": "^1.7.2", "browserslist": "^4.25.0", "chalk": "^4.1.0", "debug": "^4.3.2", "getenv": "^2.0.0", "glob": "^13.0.0", "hermes-parser": "^0.29.1", "jsc-safe-url": "^0.2.4", "lightningcss": "^1.30.1", "picomatch": "^4.0.3", "postcss": "~8.4.32", "resolve-from": "^5.0.0" }, "peerDependencies": { "expo": "*" }, "optionalPeers": ["expo"] }, "sha512-rlWMzBcRKAcYhEogGZuv8iPHPdErH9h1rchCEFZMOmGX+aZS2q+VqqRo4Zm6oktX6KEqhuNbtcvCelV4aicnUQ=="], - "@react-navigation/native-stack": ["@react-navigation/native-stack@7.6.1", "", { "dependencies": { "@react-navigation/elements": "^2.8.0", "color": "^4.2.3", "sf-symbols-typescript": "^2.1.0", "warn-once": "^0.1.1" }, "peerDependencies": { "@react-navigation/native": "^7.1.19", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", "react-native-screens": ">= 4.0.0" } }, "sha512-JbYhLzZD6dHv23bGYusToaOlsdEdMgL/QtKEhwV9fEKgFNoDvkZlak8rTPJUrOlC56QwMOPe1vLG83udlNeVYQ=="], + "@expo/metro-runtime": ["@expo/metro-runtime@6.1.2", "https://registry.yarnpkg.com/@expo/metro-runtime/-/metro-runtime-6.1.2.tgz", { "dependencies": { "anser": "^1.4.9", "pretty-format": "^29.7.0", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-dom": "*", "react-native": "*" }, "optionalPeers": ["react-dom"] }, "sha512-nvM+Qv45QH7pmYvP8JB1G8JpScrWND3KrMA6ZKe62cwwNiX/BjHU28Ear0v/4bQWXlOY0mv6B8CDIm8JxXde9g=="], - "@react-navigation/routers": ["@react-navigation/routers@7.5.1", "", { "dependencies": { "nanoid": "^3.3.11" } }, "sha512-pxipMW/iEBSUrjxz2cDD7fNwkqR4xoi0E/PcfTQGCcdJwLoaxzab5kSadBLj1MTJyT0YRrOXL9umHpXtp+Dv4w=="], + "@expo/osascript": ["@expo/osascript@2.4.2", "https://registry.yarnpkg.com/@expo/osascript/-/osascript-2.4.2.tgz", { "dependencies": { "@expo/spawn-async": "^1.7.2" } }, "sha512-/XP7PSYF2hzOZzqfjgkoWtllyeTN8dW3aM4P6YgKcmmPikKL5FdoyQhti4eh6RK5a5VrUXJTOlTNIpIHsfB5Iw=="], - "@rtsao/scc": ["@rtsao/scc@1.1.0", "", {}, "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g=="], + "@expo/package-manager": ["@expo/package-manager@1.10.3", "https://registry.yarnpkg.com/@expo/package-manager/-/package-manager-1.10.3.tgz", { "dependencies": { "@expo/json-file": "^10.0.12", "@expo/spawn-async": "^1.7.2", "chalk": "^4.0.0", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "resolve-workspace-root": "^2.0.0" } }, "sha512-ZuXiK/9fCrIuLjPSe1VYmfp0Sa85kCMwd8QQpgyi5ufppYKRtLBg14QOgUqj8ZMbJTxE0xqzd0XR7kOs3vAK9A=="], - "@sinclair/typebox": ["@sinclair/typebox@0.27.8", "", {}, "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA=="], + "@expo/plist": ["@expo/plist@0.5.2", "https://registry.yarnpkg.com/@expo/plist/-/plist-0.5.2.tgz", { "dependencies": { "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.5.1", "xmlbuilder": "^15.1.1" } }, "sha512-o4xdVdBpe4aTl3sPMZ2u3fJH4iG1I768EIRk1xRZP+GaFI93MaR3JvoFibYqxeTmLQ1p1kNEVqylfUjezxx45g=="], - "@sinonjs/commons": ["@sinonjs/commons@3.0.1", "", { "dependencies": { "type-detect": "4.0.8" } }, "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ=="], + "@expo/prebuild-config": ["@expo/prebuild-config@55.0.7", "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-55.0.7.tgz", { "dependencies": { "@expo/config": "~55.0.8", "@expo/config-plugins": "~55.0.6", "@expo/config-types": "^55.0.5", "@expo/image-utils": "^0.8.12", "@expo/json-file": "^10.0.12", "@react-native/normalize-colors": "0.83.2", "debug": "^4.3.1", "resolve-from": "^5.0.0", "semver": "^7.6.0", "xml2js": "0.6.0" }, "peerDependencies": { "expo": "*" } }, "sha512-NNfUmUss0ykzzITeIIZQrG/mQnFE6k3usMuUY0RQPoB4omUNHuHcPqEPmojVsIHFigD7CkAH6RvEL0/syuewBA=="], - "@sinonjs/fake-timers": ["@sinonjs/fake-timers@10.3.0", "", { "dependencies": { "@sinonjs/commons": "^3.0.0" } }, "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA=="], + "@expo/require-utils": ["@expo/require-utils@55.0.2", "https://registry.yarnpkg.com/@expo/require-utils/-/require-utils-55.0.2.tgz", { "dependencies": { "@babel/code-frame": "^7.20.0", "@babel/core": "^7.25.2", "@babel/plugin-transform-modules-commonjs": "^7.24.8" }, "peerDependencies": { "typescript": "^5.0.0 || ^5.0.0-0" }, "optionalPeers": ["typescript"] }, "sha512-dV5oCShQ1umKBKagMMT4B/N+SREsQe3lU4Zgmko5AO0rxKV0tynZT6xXs+e2JxuqT4Rz997atg7pki0BnZb4uw=="], - "@tailwindcss/node": ["@tailwindcss/node@4.1.16", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.6.1", "lightningcss": "1.30.2", "magic-string": "^0.30.19", "source-map-js": "^1.2.1", "tailwindcss": "4.1.16" } }, "sha512-BX5iaSsloNuvKNHRN3k2RcCuTEgASTo77mofW0vmeHkfrDWaoFAFvNHpEgtu0eqyypcyiBkDWzSMxJhp3AUVcw=="], + "@expo/router-server": ["@expo/router-server@55.0.8", "https://registry.yarnpkg.com/@expo/router-server/-/router-server-55.0.8.tgz", { "dependencies": { "debug": "^4.3.4" }, "peerDependencies": { "@expo/metro-runtime": "^55.0.6", "expo": "*", "expo-constants": "^55.0.7", "expo-font": "^55.0.4", "expo-router": "*", "expo-server": "^55.0.5", "react": "*", "react-dom": "*", "react-server-dom-webpack": "~19.0.1 || ~19.1.2 || ~19.2.1" }, "optionalPeers": ["@expo/metro-runtime", "expo-router", "react-dom", "react-server-dom-webpack"] }, "sha512-kSyl6HliepOzuW6T78GtLSwmQ+XxtO9pG2boNbX7GW4oJqMsa0LbkG//5Xw/6HRrgSN0OlFbrZApN7yn7QJ6fw=="], - "@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.16", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.16", "@tailwindcss/oxide-darwin-arm64": "4.1.16", "@tailwindcss/oxide-darwin-x64": "4.1.16", "@tailwindcss/oxide-freebsd-x64": "4.1.16", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.16", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.16", "@tailwindcss/oxide-linux-arm64-musl": "4.1.16", "@tailwindcss/oxide-linux-x64-gnu": "4.1.16", "@tailwindcss/oxide-linux-x64-musl": "4.1.16", "@tailwindcss/oxide-wasm32-wasi": "4.1.16", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.16", "@tailwindcss/oxide-win32-x64-msvc": "4.1.16" } }, "sha512-2OSv52FRuhdlgyOQqgtQHuCgXnS8nFSYRp2tJ+4WZXKgTxqPy7SMSls8c3mPT5pkZ17SBToGM5LHEJBO7miEdg=="], + "@expo/schema-utils": ["@expo/schema-utils@55.0.2", "https://registry.yarnpkg.com/@expo/schema-utils/-/schema-utils-55.0.2.tgz", {}, "sha512-QZ5WKbJOWkCrMq0/kfhV9ry8te/OaS34YgLVpG8u9y2gix96TlpRTbxM/YATjNcUR2s4fiQmPCOxkGtog4i37g=="], - "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.16", "", { "os": "android", "cpu": "arm64" }, "sha512-8+ctzkjHgwDJ5caq9IqRSgsP70xhdhJvm+oueS/yhD5ixLhqTw9fSL1OurzMUhBwE5zK26FXLCz2f/RtkISqHA=="], + "@expo/sdk-runtime-versions": ["@expo/sdk-runtime-versions@1.0.0", "https://registry.yarnpkg.com/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", {}, "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ=="], - "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.16", "", { "os": "darwin", "cpu": "arm64" }, "sha512-C3oZy5042v2FOALBZtY0JTDnGNdS6w7DxL/odvSny17ORUnaRKhyTse8xYi3yKGyfnTUOdavRCdmc8QqJYwFKA=="], + "@expo/server": ["@expo/server@0.5.3", "https://registry.yarnpkg.com/@expo/server/-/server-0.5.3.tgz", { "dependencies": { "abort-controller": "^3.0.0", "debug": "^4.3.4", "source-map-support": "~0.5.21", "undici": "^6.18.2" } }, "sha512-WXsWzeBs5v/h0PUfHyNLLz07rwwO5myQ1A5DGYewyyGLmsyl61yVCe8AgAlp1wkiMsqhj2hZqI2u3K10QnCMrQ=="], - "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.16", "", { "os": "darwin", "cpu": "x64" }, "sha512-vjrl/1Ub9+JwU6BP0emgipGjowzYZMjbWCDqwA2Z4vCa+HBSpP4v6U2ddejcHsolsYxwL5r4bPNoamlV0xDdLg=="], + "@expo/spawn-async": ["@expo/spawn-async@1.7.2", "https://registry.yarnpkg.com/@expo/spawn-async/-/spawn-async-1.7.2.tgz", { "dependencies": { "cross-spawn": "^7.0.3" } }, "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew=="], - "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.16", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TSMpPYpQLm+aR1wW5rKuUuEruc/oOX3C7H0BTnPDn7W/eMw8W+MRMpiypKMkXZfwH8wqPIRKppuZoedTtNj2tg=="], + "@expo/sudo-prompt": ["@expo/sudo-prompt@9.3.2", "https://registry.yarnpkg.com/@expo/sudo-prompt/-/sudo-prompt-9.3.2.tgz", {}, "sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw=="], - "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.16", "", { "os": "linux", "cpu": "arm" }, "sha512-p0GGfRg/w0sdsFKBjMYvvKIiKy/LNWLWgV/plR4lUgrsxFAoQBFrXkZ4C0w8IOXfslB9vHK/JGASWD2IefIpvw=="], + "@expo/vector-icons": ["@expo/vector-icons@15.0.3", "https://registry.yarnpkg.com/@expo/vector-icons/-/vector-icons-15.0.3.tgz", { "peerDependencies": { "expo-font": ">=14.0.4", "react": "*", "react-native": "*" } }, "sha512-SBUyYKphmlfUBqxSfDdJ3jAdEVSALS2VUPOUyqn48oZmb2TL/O7t7/PQm5v4NQujYEPLPMTLn9KVw6H7twwbTA=="], - "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.16", "", { "os": "linux", "cpu": "arm64" }, "sha512-DoixyMmTNO19rwRPdqviTrG1rYzpxgyYJl8RgQvdAQUzxC1ToLRqtNJpU/ATURSKgIg6uerPw2feW0aS8SNr/w=="], + "@expo/ws-tunnel": ["@expo/ws-tunnel@1.0.6", "https://registry.yarnpkg.com/@expo/ws-tunnel/-/ws-tunnel-1.0.6.tgz", {}, "sha512-nDRbLmSrJar7abvUjp3smDwH8HcbZcoOEa5jVPUv9/9CajgmWw20JNRwTuBRzWIWIkEJDkz20GoNA+tSwUqk0Q=="], - "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.16", "", { "os": "linux", "cpu": "arm64" }, "sha512-H81UXMa9hJhWhaAUca6bU2wm5RRFpuHImrwXBUvPbYb+3jo32I9VIwpOX6hms0fPmA6f2pGVlybO6qU8pF4fzQ=="], + "@expo/xcpretty": ["@expo/xcpretty@4.4.1", "https://registry.yarnpkg.com/@expo/xcpretty/-/xcpretty-4.4.1.tgz", { "dependencies": { "@babel/code-frame": "^7.20.0", "chalk": "^4.1.0", "js-yaml": "^4.1.0" }, "bin": { "excpretty": "build/cli.js" } }, "sha512-KZNxZvnGCtiM2aYYZ6Wz0Ix5r47dAvpNLApFtZWnSoERzAdOMzVBOPysBoM0JlF6FKWZ8GPqgn6qt3dV/8Zlpg=="], - "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.16", "", { "os": "linux", "cpu": "x64" }, "sha512-ZGHQxDtFC2/ruo7t99Qo2TTIvOERULPl5l0K1g0oK6b5PGqjYMga+FcY1wIUnrUxY56h28FxybtDEla+ICOyew=="], + "@humanfs/core": ["@humanfs/core@0.19.1", "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], - "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.16", "", { "os": "linux", "cpu": "x64" }, "sha512-Oi1tAaa0rcKf1Og9MzKeINZzMLPbhxvm7rno5/zuP1WYmpiG0bEHq4AcRUiG2165/WUzvxkW4XDYCscZWbTLZw=="], + "@humanfs/node": ["@humanfs/node@0.16.7", "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.7.tgz", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ=="], - "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.16", "", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.0.7", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.4.0" }, "cpu": "none" }, "sha512-B01u/b8LteGRwucIBmCQ07FVXLzImWESAIMcUU6nvFt/tYsQ6IHz8DmZ5KtvmwxD+iTYBtM1xwoGXswnlu9v0Q=="], + "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], - "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.16", "", { "os": "win32", "cpu": "arm64" }, "sha512-zX+Q8sSkGj6HKRTMJXuPvOcP8XfYON24zJBRPlszcH1Np7xuHXhWn8qfFjIujVzvH3BHU+16jBXwgpl20i+v9A=="], + "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], - "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.16", "", { "os": "win32", "cpu": "x64" }, "sha512-m5dDFJUEejbFqP+UXVstd4W/wnxA4F61q8SoL+mqTypId2T2ZpuxosNSgowiCnLp2+Z+rivdU0AqpfgiD7yCBg=="], + "@isaacs/ttlcache": ["@isaacs/ttlcache@1.4.1", "https://registry.yarnpkg.com/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", {}, "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA=="], - "@tailwindcss/postcss": ["@tailwindcss/postcss@4.1.16", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.1.16", "@tailwindcss/oxide": "4.1.16", "postcss": "^8.4.41", "tailwindcss": "4.1.16" } }, "sha512-Qn3SFGPXYQMKR/UtqS+dqvPrzEeBZHrFA92maT4zijCVggdsXnDBMsPFJo1eArX3J+O+Gi+8pV4PkqjLCNBk3A=="], + "@istanbuljs/load-nyc-config": ["@istanbuljs/load-nyc-config@1.1.0", "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", { "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" } }, "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ=="], - "@testing-library/react-native": ["@testing-library/react-native@13.3.3", "", { "dependencies": { "jest-matcher-utils": "^30.0.5", "picocolors": "^1.1.1", "pretty-format": "^30.0.5", "redent": "^3.0.0" }, "peerDependencies": { "jest": ">=29.0.0", "react": ">=18.2.0", "react-native": ">=0.71", "react-test-renderer": ">=18.2.0" }, "optionalPeers": ["jest"] }, "sha512-k6Mjsd9dbZgvY4Bl7P1NIpePQNi+dfYtlJ5voi9KQlynxSyQkfOgJmYGCYmw/aSgH/rUcFvG8u5gd4npzgRDyg=="], + "@istanbuljs/schema": ["@istanbuljs/schema@0.1.3", "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz", {}, "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA=="], - "@tootallnate/once": ["@tootallnate/once@2.0.0", "", {}, "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A=="], + "@jest/console": ["@jest/console@29.7.0", "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz", { "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0", "slash": "^3.0.0" } }, "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg=="], - "@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], + "@jest/core": ["@jest/core@29.7.0", "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz", { "dependencies": { "@jest/console": "^29.7.0", "@jest/reporters": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "jest-changed-files": "^29.7.0", "jest-config": "^29.7.0", "jest-haste-map": "^29.7.0", "jest-message-util": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-resolve": "^29.7.0", "jest-resolve-dependencies": "^29.7.0", "jest-runner": "^29.7.0", "jest-runtime": "^29.7.0", "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", "jest-validate": "^29.7.0", "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"] }, "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg=="], - "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], + "@jest/create-cache-key-function": ["@jest/create-cache-key-function@29.7.0", "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", { "dependencies": { "@jest/types": "^29.6.3" } }, "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA=="], - "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], + "@jest/diff-sequences": ["@jest/diff-sequences@30.0.1", "https://registry.yarnpkg.com/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", {}, "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw=="], - "@types/babel__template": ["@types/babel__template@7.4.4", "", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="], + "@jest/environment": ["@jest/environment@29.7.0", "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz", { "dependencies": { "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "jest-mock": "^29.7.0" } }, "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw=="], - "@types/babel__traverse": ["@types/babel__traverse@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="], + "@jest/expect": ["@jest/expect@29.7.0", "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz", { "dependencies": { "expect": "^29.7.0", "jest-snapshot": "^29.7.0" } }, "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ=="], - "@types/bun": ["@types/bun@1.3.1", "", { "dependencies": { "bun-types": "1.3.1" } }, "sha512-4jNMk2/K9YJtfqwoAa28c8wK+T7nvJFOjxI4h/7sORWcypRNxBpr+TPNaCfVWq70tLCJsqoFwcf0oI0JU/fvMQ=="], + "@jest/expect-utils": ["@jest/expect-utils@29.7.0", "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz", { "dependencies": { "jest-get-type": "^29.6.3" } }, "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA=="], - "@types/eslint": ["@types/eslint@9.6.1", "", { "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag=="], + "@jest/fake-timers": ["@jest/fake-timers@29.7.0", "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz", { "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", "jest-message-util": "^29.7.0", "jest-mock": "^29.7.0", "jest-util": "^29.7.0" } }, "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ=="], - "@types/eslint-scope": ["@types/eslint-scope@3.7.7", "", { "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg=="], + "@jest/get-type": ["@jest/get-type@30.1.0", "https://registry.yarnpkg.com/@jest/get-type/-/get-type-30.1.0.tgz", {}, "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA=="], - "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], + "@jest/globals": ["@jest/globals@29.7.0", "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz", { "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", "@jest/types": "^29.6.3", "jest-mock": "^29.7.0" } }, "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ=="], - "@types/graceful-fs": ["@types/graceful-fs@4.1.9", "", { "dependencies": { "@types/node": "*" } }, "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ=="], + "@jest/reporters": ["@jest/reporters@29.7.0", "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz", { "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0", "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", "v8-to-istanbul": "^9.0.1" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"] }, "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg=="], - "@types/hammerjs": ["@types/hammerjs@2.0.46", "", {}, "sha512-ynRvcq6wvqexJ9brDMS4BnBLzmr0e14d6ZJTEShTBWKymQiHwlAyGu0ZPEFI2Fh1U53F7tN9ufClWM5KvqkKOw=="], + "@jest/schemas": ["@jest/schemas@29.6.3", "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz", { "dependencies": { "@sinclair/typebox": "^0.27.8" } }, "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA=="], - "@types/istanbul-lib-coverage": ["@types/istanbul-lib-coverage@2.0.6", "", {}, "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="], + "@jest/source-map": ["@jest/source-map@29.6.3", "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" } }, "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw=="], - "@types/istanbul-lib-report": ["@types/istanbul-lib-report@3.0.3", "", { "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA=="], + "@jest/test-result": ["@jest/test-result@29.7.0", "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz", { "dependencies": { "@jest/console": "^29.7.0", "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA=="], - "@types/istanbul-reports": ["@types/istanbul-reports@3.0.4", "", { "dependencies": { "@types/istanbul-lib-report": "*" } }, "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ=="], + "@jest/test-sequencer": ["@jest/test-sequencer@29.7.0", "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", { "dependencies": { "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "slash": "^3.0.0" } }, "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw=="], - "@types/jest": ["@types/jest@29.5.14", "", { "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" } }, "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ=="], + "@jest/transform": ["@jest/transform@29.7.0", "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz", { "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", "write-file-atomic": "^4.0.2" } }, "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw=="], - "@types/jsdom": ["@types/jsdom@20.0.1", "", { "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", "parse5": "^7.0.0" } }, "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ=="], + "@jest/types": ["@jest/types@29.6.3", "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz", { "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^17.0.8", "chalk": "^4.0.0" } }, "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw=="], - "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], - "@types/json5": ["@types/json5@0.0.29", "", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="], + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], - "@types/node": ["@types/node@24.9.2", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA=="], + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], - "@types/react": ["@types/react@19.1.17", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA=="], + "@jridgewell/source-map": ["@jridgewell/source-map@0.3.11", "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.11.tgz", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA=="], - "@types/stack-utils": ["@types/stack-utils@2.0.3", "", {}, "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="], + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], - "@types/tough-cookie": ["@types/tough-cookie@4.0.5", "", {}, "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA=="], + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], - "@types/yargs": ["@types/yargs@17.0.34", "", { "dependencies": { "@types/yargs-parser": "*" } }, "sha512-KExbHVa92aJpw9WDQvzBaGVE2/Pz+pLZQloT2hjL8IqsZnV62rlPOYvNnLmf/L2dyllfVUOVBj64M0z/46eR2A=="], + "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.12", "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.10.0" } }, "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ=="], - "@types/yargs-parser": ["@types/yargs-parser@21.0.3", "", {}, "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="], + "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], - "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.46.2", "", { "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.46.2", "@typescript-eslint/type-utils": "8.46.2", "@typescript-eslint/utils": "8.46.2", "@typescript-eslint/visitor-keys": "8.46.2", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.46.2", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w=="], + "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], - "@typescript-eslint/parser": ["@typescript-eslint/parser@8.46.2", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.46.2", "@typescript-eslint/types": "8.46.2", "@typescript-eslint/typescript-estree": "8.46.2", "@typescript-eslint/visitor-keys": "8.46.2", "debug": "^4.3.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g=="], + "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], - "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.46.2", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.46.2", "@typescript-eslint/types": "^8.46.2", "debug": "^4.3.4" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg=="], + "@nolyfill/is-core-module": ["@nolyfill/is-core-module@1.0.39", "https://registry.yarnpkg.com/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", {}, "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA=="], - "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.46.2", "", { "dependencies": { "@typescript-eslint/types": "8.46.2", "@typescript-eslint/visitor-keys": "8.46.2" } }, "sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA=="], + "@pkgr/core": ["@pkgr/core@0.2.9", "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.9.tgz", {}, "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA=="], - "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.46.2", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag=="], + "@radix-ui/primitive": ["@radix-ui/primitive@1.1.3", "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.1.3.tgz", {}, "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg=="], - "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.46.2", "", { "dependencies": { "@typescript-eslint/types": "8.46.2", "@typescript-eslint/typescript-estree": "8.46.2", "@typescript-eslint/utils": "8.46.2", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA=="], + "@radix-ui/react-collection": ["@radix-ui/react-collection@1.1.7", "https://registry.yarnpkg.com/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw=="], - "@typescript-eslint/types": ["@typescript-eslint/types@8.46.2", "", {}, "sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ=="], + "@radix-ui/react-compose-refs": ["@radix-ui/react-compose-refs@1.1.2", "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg=="], - "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.46.2", "", { "dependencies": { "@typescript-eslint/project-service": "8.46.2", "@typescript-eslint/tsconfig-utils": "8.46.2", "@typescript-eslint/types": "8.46.2", "@typescript-eslint/visitor-keys": "8.46.2", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ=="], + "@radix-ui/react-context": ["@radix-ui/react-context@1.1.2", "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.1.2.tgz", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA=="], - "@typescript-eslint/utils": ["@typescript-eslint/utils@8.46.2", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.46.2", "@typescript-eslint/types": "8.46.2", "@typescript-eslint/typescript-estree": "8.46.2" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg=="], + "@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.1.15", "https://registry.yarnpkg.com/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.11", "@radix-ui/react-focus-guards": "1.1.3", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw=="], - "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.46.2", "", { "dependencies": { "@typescript-eslint/types": "8.46.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w=="], + "@radix-ui/react-direction": ["@radix-ui/react-direction@1.1.1", "https://registry.yarnpkg.com/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw=="], - "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], + "@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.1.11", "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-escape-keydown": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg=="], - "@unrs/resolver-binding-android-arm-eabi": ["@unrs/resolver-binding-android-arm-eabi@1.11.1", "", { "os": "android", "cpu": "arm" }, "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw=="], + "@radix-ui/react-focus-guards": ["@radix-ui/react-focus-guards@1.1.3", "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw=="], - "@unrs/resolver-binding-android-arm64": ["@unrs/resolver-binding-android-arm64@1.11.1", "", { "os": "android", "cpu": "arm64" }, "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g=="], + "@radix-ui/react-focus-scope": ["@radix-ui/react-focus-scope@1.1.7", "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw=="], - "@unrs/resolver-binding-darwin-arm64": ["@unrs/resolver-binding-darwin-arm64@1.11.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g=="], + "@radix-ui/react-id": ["@radix-ui/react-id@1.1.1", "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.1.1.tgz", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg=="], - "@unrs/resolver-binding-darwin-x64": ["@unrs/resolver-binding-darwin-x64@1.11.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ=="], + "@radix-ui/react-portal": ["@radix-ui/react-portal@1.1.9", "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", { "dependencies": { "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ=="], - "@unrs/resolver-binding-freebsd-x64": ["@unrs/resolver-binding-freebsd-x64@1.11.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw=="], + "@radix-ui/react-presence": ["@radix-ui/react-presence@1.1.5", "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ=="], - "@unrs/resolver-binding-linux-arm-gnueabihf": ["@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1", "", { "os": "linux", "cpu": "arm" }, "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw=="], + "@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="], - "@unrs/resolver-binding-linux-arm-musleabihf": ["@unrs/resolver-binding-linux-arm-musleabihf@1.11.1", "", { "os": "linux", "cpu": "arm" }, "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw=="], + "@radix-ui/react-roving-focus": ["@radix-ui/react-roving-focus@1.1.11", "https://registry.yarnpkg.com/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA=="], - "@unrs/resolver-binding-linux-arm64-gnu": ["@unrs/resolver-binding-linux-arm64-gnu@1.11.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ=="], + "@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="], - "@unrs/resolver-binding-linux-arm64-musl": ["@unrs/resolver-binding-linux-arm64-musl@1.11.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w=="], + "@radix-ui/react-tabs": ["@radix-ui/react-tabs@1.1.13", "https://registry.yarnpkg.com/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-roving-focus": "1.1.11", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A=="], - "@unrs/resolver-binding-linux-ppc64-gnu": ["@unrs/resolver-binding-linux-ppc64-gnu@1.11.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA=="], + "@radix-ui/react-use-callback-ref": ["@radix-ui/react-use-callback-ref@1.1.1", "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg=="], - "@unrs/resolver-binding-linux-riscv64-gnu": ["@unrs/resolver-binding-linux-riscv64-gnu@1.11.1", "", { "os": "linux", "cpu": "none" }, "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ=="], + "@radix-ui/react-use-controllable-state": ["@radix-ui/react-use-controllable-state@1.2.2", "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", { "dependencies": { "@radix-ui/react-use-effect-event": "0.0.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg=="], - "@unrs/resolver-binding-linux-riscv64-musl": ["@unrs/resolver-binding-linux-riscv64-musl@1.11.1", "", { "os": "linux", "cpu": "none" }, "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew=="], + "@radix-ui/react-use-effect-event": ["@radix-ui/react-use-effect-event@0.0.2", "https://registry.yarnpkg.com/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA=="], - "@unrs/resolver-binding-linux-s390x-gnu": ["@unrs/resolver-binding-linux-s390x-gnu@1.11.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg=="], + "@radix-ui/react-use-escape-keydown": ["@radix-ui/react-use-escape-keydown@1.1.1", "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", { "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g=="], - "@unrs/resolver-binding-linux-x64-gnu": ["@unrs/resolver-binding-linux-x64-gnu@1.11.1", "", { "os": "linux", "cpu": "x64" }, "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w=="], + "@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.1", "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ=="], - "@unrs/resolver-binding-linux-x64-musl": ["@unrs/resolver-binding-linux-x64-musl@1.11.1", "", { "os": "linux", "cpu": "x64" }, "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA=="], + "@react-native/assets-registry": ["@react-native/assets-registry@0.83.2", "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.83.2.tgz", {}, "sha512-9I5l3pGAKnlpQ15uVkeB9Mgjvt3cZEaEc8EDtdexvdtZvLSjtwBzgourrOW4yZUijbjJr8h3YO2Y0q+THwUHTA=="], - "@unrs/resolver-binding-wasm32-wasi": ["@unrs/resolver-binding-wasm32-wasi@1.11.1", "", { "dependencies": { "@napi-rs/wasm-runtime": "^0.2.11" }, "cpu": "none" }, "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ=="], + "@react-native/babel-plugin-codegen": ["@react-native/babel-plugin-codegen@0.83.2", "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.83.2.tgz", { "dependencies": { "@babel/traverse": "^7.25.3", "@react-native/codegen": "0.83.2" } }, "sha512-XbcN/BEa64pVlb0Hb/E/Ph2SepjVN/FcNKrJcQvtaKZA6mBSO8pW8Eircdlr61/KBH94LihHbQoQDzkQFpeaTg=="], - "@unrs/resolver-binding-win32-arm64-msvc": ["@unrs/resolver-binding-win32-arm64-msvc@1.11.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw=="], + "@react-native/babel-preset": ["@react-native/babel-preset@0.83.2", "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.83.2.tgz", { "dependencies": { "@babel/core": "^7.25.2", "@babel/plugin-proposal-export-default-from": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-default-from": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-transform-arrow-functions": "^7.24.7", "@babel/plugin-transform-async-generator-functions": "^7.25.4", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoping": "^7.25.0", "@babel/plugin-transform-class-properties": "^7.25.4", "@babel/plugin-transform-classes": "^7.25.4", "@babel/plugin-transform-computed-properties": "^7.24.7", "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-for-of": "^7.24.7", "@babel/plugin-transform-function-name": "^7.25.1", "@babel/plugin-transform-literals": "^7.25.2", "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", "@babel/plugin-transform-numeric-separator": "^7.24.7", "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-react-display-name": "^7.24.7", "@babel/plugin-transform-react-jsx": "^7.25.2", "@babel/plugin-transform-react-jsx-self": "^7.24.7", "@babel/plugin-transform-react-jsx-source": "^7.24.7", "@babel/plugin-transform-regenerator": "^7.24.7", "@babel/plugin-transform-runtime": "^7.24.7", "@babel/plugin-transform-shorthand-properties": "^7.24.7", "@babel/plugin-transform-spread": "^7.24.7", "@babel/plugin-transform-sticky-regex": "^7.24.7", "@babel/plugin-transform-typescript": "^7.25.2", "@babel/plugin-transform-unicode-regex": "^7.24.7", "@babel/template": "^7.25.0", "@react-native/babel-plugin-codegen": "0.83.2", "babel-plugin-syntax-hermes-parser": "0.32.0", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" } }, "sha512-X/RAXDfe6W+om/Fw1i6htTxQXFhBJ2jgNOWx3WpI3KbjeIWbq7ib6vrpTeIAW2NUMg+K3mML1NzgD4dpZeqdjA=="], - "@unrs/resolver-binding-win32-ia32-msvc": ["@unrs/resolver-binding-win32-ia32-msvc@1.11.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ=="], + "@react-native/codegen": ["@react-native/codegen@0.83.2", "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.83.2.tgz", { "dependencies": { "@babel/core": "^7.25.2", "@babel/parser": "^7.25.3", "glob": "^7.1.1", "hermes-parser": "0.32.0", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "yargs": "^17.6.2" } }, "sha512-9uK6X1miCXqtL4c759l74N/XbQeneWeQVjoV7SD2CGJuW7ZefxaoYenwGPs7rMoCdtS6wuIyR3hXQ+uWEBGYXA=="], - "@unrs/resolver-binding-win32-x64-msvc": ["@unrs/resolver-binding-win32-x64-msvc@1.11.1", "", { "os": "win32", "cpu": "x64" }, "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g=="], + "@react-native/community-cli-plugin": ["@react-native/community-cli-plugin@0.83.2", "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.83.2.tgz", { "dependencies": { "@react-native/dev-middleware": "0.83.2", "debug": "^4.4.0", "invariant": "^2.2.4", "metro": "^0.83.3", "metro-config": "^0.83.3", "metro-core": "^0.83.3", "semver": "^7.1.3" }, "peerDependencies": { "@react-native-community/cli": "*", "@react-native/metro-config": "*" }, "optionalPeers": ["@react-native-community/cli", "@react-native/metro-config"] }, "sha512-sTEF0eiUKtmImEP07Qo5c3Khvm1LIVX1Qyb6zWUqPL6W3MqFiXutZvKBjqLz6p49Szx8cplQLoXfLHT0bcDXKg=="], - "@urql/core": ["@urql/core@5.2.0", "", { "dependencies": { "@0no-co/graphql.web": "^1.0.13", "wonka": "^6.3.2" } }, "sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A=="], + "@react-native/debugger-frontend": ["@react-native/debugger-frontend@0.83.2", "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.83.2.tgz", {}, "sha512-t4fYfa7xopbUF5S4+ihNEwgaq4wLZLKLY0Ms8z72lkMteVd3bOX2Foxa8E2wTfRvdhPOkSpOsTeNDmD8ON4DoQ=="], - "@urql/exchange-retry": ["@urql/exchange-retry@1.3.2", "", { "dependencies": { "@urql/core": "^5.1.2", "wonka": "^6.3.2" } }, "sha512-TQMCz2pFJMfpNxmSfX1VSfTjwUIFx/mL+p1bnfM1xjjdla7Z+KnGMW/EhFbpckp3LyWAH4PgOsMwOMnIN+MBFg=="], + "@react-native/debugger-shell": ["@react-native/debugger-shell@0.83.2", "https://registry.yarnpkg.com/@react-native/debugger-shell/-/debugger-shell-0.83.2.tgz", { "dependencies": { "cross-spawn": "^7.0.6", "fb-dotslash": "0.5.8" } }, "sha512-z9go6NJMsLSDJT5MW6VGugRsZHjYvUTwxtsVc3uLt4U9W6T3J6FWI2wHpXIzd2dUkXRfAiRQ3Zi8ZQQ8fRFg9A=="], - "@webassemblyjs/ast": ["@webassemblyjs/ast@1.14.1", "", { "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ=="], + "@react-native/dev-middleware": ["@react-native/dev-middleware@0.83.2", "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.83.2.tgz", { "dependencies": { "@isaacs/ttlcache": "^1.4.1", "@react-native/debugger-frontend": "0.83.2", "@react-native/debugger-shell": "0.83.2", "chrome-launcher": "^0.15.2", "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", "debug": "^4.4.0", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "open": "^7.0.3", "serve-static": "^1.16.2", "ws": "^7.5.10" } }, "sha512-Zi4EVaAm28+icD19NN07Gh8Pqg/84QQu+jn4patfWKNkcToRFP5vPEbbp0eLOGWS+BVB1d1Fn5lvMrJsBbFcOg=="], - "@webassemblyjs/floating-point-hex-parser": ["@webassemblyjs/floating-point-hex-parser@1.13.2", "", {}, "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA=="], + "@react-native/gradle-plugin": ["@react-native/gradle-plugin@0.83.2", "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.83.2.tgz", {}, "sha512-PqN11fXRAU+uJ0inZY1HWYlwJOXHOhF4SPyeHBBxjajKpm2PGunmvFWwkmBjmmUkP/CNO0ezTUudV0oj+2wiHQ=="], - "@webassemblyjs/helper-api-error": ["@webassemblyjs/helper-api-error@1.13.2", "", {}, "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ=="], + "@react-native/js-polyfills": ["@react-native/js-polyfills@0.83.2", "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.83.2.tgz", {}, "sha512-dk6fIY2OrKW/2Nk2HydfYNrQau8g6LOtd7NVBrgaqa+lvuRyIML5iimShP5qPqQnx2ofHuzjFw+Ya0b5Q7nDbA=="], - "@webassemblyjs/helper-buffer": ["@webassemblyjs/helper-buffer@1.14.1", "", {}, "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA=="], + "@react-native/normalize-colors": ["@react-native/normalize-colors@0.83.2", "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.83.2.tgz", {}, "sha512-gkZAb9LoVVzNuYzzOviH7DiPTXQoZPHuiTH2+O2+VWNtOkiznjgvqpwYAhg58a5zfRq5GXlbBdf5mzRj5+3Y5Q=="], - "@webassemblyjs/helper-numbers": ["@webassemblyjs/helper-numbers@1.13.2", "", { "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.13.2", "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA=="], + "@react-native/virtualized-lists": ["@react-native/virtualized-lists@0.83.2", "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.83.2.tgz", { "dependencies": { "invariant": "^2.2.4", "nullthrows": "^1.1.1" }, "peerDependencies": { "@types/react": "^19.2.0", "react": "*", "react-native": "*" }, "optionalPeers": ["@types/react"] }, "sha512-N7mRjHLW/+KWxMp9IHRWyE3VIkeG1m3PnZJAGEFLCN8VFb7e4VfI567o7tE/HYcdcXCylw+Eqhlciz8gDeQ71g=="], - "@webassemblyjs/helper-wasm-bytecode": ["@webassemblyjs/helper-wasm-bytecode@1.13.2", "", {}, "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA=="], + "@react-navigation/bottom-tabs": ["@react-navigation/bottom-tabs@7.10.1", "https://registry.yarnpkg.com/@react-navigation/bottom-tabs/-/bottom-tabs-7.10.1.tgz", { "dependencies": { "@react-navigation/elements": "^2.9.5", "color": "^4.2.3", "sf-symbols-typescript": "^2.1.0" }, "peerDependencies": { "@react-navigation/native": "^7.1.28", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", "react-native-screens": ">= 4.0.0" } }, "sha512-MirOzKEe/rRwPSE9HMrS4niIo0LyUhewlvd01TpzQ1ipuXjH2wJbzAM9gS/r62zriB6HMHz2OY6oIRduwQJtTw=="], - "@webassemblyjs/helper-wasm-section": ["@webassemblyjs/helper-wasm-section@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/wasm-gen": "1.14.1" } }, "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw=="], + "@react-navigation/core": ["@react-navigation/core@7.14.0", "https://registry.yarnpkg.com/@react-navigation/core/-/core-7.14.0.tgz", { "dependencies": { "@react-navigation/routers": "^7.5.3", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "^3.3.11", "query-string": "^7.1.3", "react-is": "^19.1.0", "use-latest-callback": "^0.2.4", "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "react": ">= 18.2.0" } }, "sha512-tMpzskBzVp0E7CRNdNtJIdXjk54Kwe/TF9ViXAef+YFM1kSfGv4e/B2ozfXE+YyYgmh4WavTv8fkdJz1CNyu+g=="], - "@webassemblyjs/ieee754": ["@webassemblyjs/ieee754@1.13.2", "", { "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw=="], + "@react-navigation/elements": ["@react-navigation/elements@2.9.5", "https://registry.yarnpkg.com/@react-navigation/elements/-/elements-2.9.5.tgz", { "dependencies": { "color": "^4.2.3", "use-latest-callback": "^0.2.4", "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "@react-native-masked-view/masked-view": ">= 0.2.0", "@react-navigation/native": "^7.1.28", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0" }, "optionalPeers": ["@react-native-masked-view/masked-view"] }, "sha512-iHZU8rRN1014Upz73AqNVXDvSMZDh5/ktQ1CMe21rdgnOY79RWtHHBp9qOS3VtqlUVYGkuX5GEw5mDt4tKdl0g=="], - "@webassemblyjs/leb128": ["@webassemblyjs/leb128@1.13.2", "", { "dependencies": { "@xtuc/long": "4.2.2" } }, "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw=="], + "@react-navigation/native": ["@react-navigation/native@7.1.28", "https://registry.yarnpkg.com/@react-navigation/native/-/native-7.1.28.tgz", { "dependencies": { "@react-navigation/core": "^7.14.0", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "^3.3.11", "use-latest-callback": "^0.2.4" }, "peerDependencies": { "react": ">= 18.2.0", "react-native": "*" } }, "sha512-d1QDn+KNHfHGt3UIwOZvupvdsDdiHYZBEj7+wL2yDVo3tMezamYy60H9s3EnNVE1Ae1ty0trc7F2OKqo/RmsdQ=="], - "@webassemblyjs/utf8": ["@webassemblyjs/utf8@1.13.2", "", {}, "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ=="], + "@react-navigation/native-stack": ["@react-navigation/native-stack@7.10.1", "https://registry.yarnpkg.com/@react-navigation/native-stack/-/native-stack-7.10.1.tgz", { "dependencies": { "@react-navigation/elements": "^2.9.5", "color": "^4.2.3", "sf-symbols-typescript": "^2.1.0", "warn-once": "^0.1.1" }, "peerDependencies": { "@react-navigation/native": "^7.1.28", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", "react-native-screens": ">= 4.0.0" } }, "sha512-8jt7olKysn07HuKKSjT/ahZZTV+WaZa96o9RI7gAwh7ATlUDY02rIRttwvCyjovhSjD9KCiuJ+Hd4kwLidHwJw=="], - "@webassemblyjs/wasm-edit": ["@webassemblyjs/wasm-edit@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/helper-wasm-section": "1.14.1", "@webassemblyjs/wasm-gen": "1.14.1", "@webassemblyjs/wasm-opt": "1.14.1", "@webassemblyjs/wasm-parser": "1.14.1", "@webassemblyjs/wast-printer": "1.14.1" } }, "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ=="], + "@react-navigation/routers": ["@react-navigation/routers@7.5.3", "https://registry.yarnpkg.com/@react-navigation/routers/-/routers-7.5.3.tgz", { "dependencies": { "nanoid": "^3.3.11" } }, "sha512-1tJHg4KKRJuQ1/EvJxatrMef3NZXEPzwUIUZ3n1yJ2t7Q97siwRtbynRpQG9/69ebbtiZ8W3ScOZF/OmhvM4Rg=="], - "@webassemblyjs/wasm-gen": ["@webassemblyjs/wasm-gen@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/ieee754": "1.13.2", "@webassemblyjs/leb128": "1.13.2", "@webassemblyjs/utf8": "1.13.2" } }, "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg=="], + "@rtsao/scc": ["@rtsao/scc@1.1.0", "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz", {}, "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g=="], - "@webassemblyjs/wasm-opt": ["@webassemblyjs/wasm-opt@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", "@webassemblyjs/wasm-gen": "1.14.1", "@webassemblyjs/wasm-parser": "1.14.1" } }, "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw=="], + "@sinclair/typebox": ["@sinclair/typebox@0.27.8", "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz", {}, "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA=="], - "@webassemblyjs/wasm-parser": ["@webassemblyjs/wasm-parser@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-api-error": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/ieee754": "1.13.2", "@webassemblyjs/leb128": "1.13.2", "@webassemblyjs/utf8": "1.13.2" } }, "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ=="], + "@sinonjs/commons": ["@sinonjs/commons@3.0.1", "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz", { "dependencies": { "type-detect": "4.0.8" } }, "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ=="], - "@webassemblyjs/wast-printer": ["@webassemblyjs/wast-printer@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw=="], + "@sinonjs/fake-timers": ["@sinonjs/fake-timers@10.3.0", "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", { "dependencies": { "@sinonjs/commons": "^3.0.0" } }, "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA=="], - "@xmldom/xmldom": ["@xmldom/xmldom@0.8.11", "", {}, "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw=="], + "@tailwindcss/node": ["@tailwindcss/node@4.1.16", "https://registry.yarnpkg.com/@tailwindcss/node/-/node-4.1.16.tgz", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.6.1", "lightningcss": "1.30.2", "magic-string": "^0.30.19", "source-map-js": "^1.2.1", "tailwindcss": "4.1.16" } }, "sha512-BX5iaSsloNuvKNHRN3k2RcCuTEgASTo77mofW0vmeHkfrDWaoFAFvNHpEgtu0eqyypcyiBkDWzSMxJhp3AUVcw=="], - "@xtuc/ieee754": ["@xtuc/ieee754@1.2.0", "", {}, "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="], + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.16", "https://registry.yarnpkg.com/@tailwindcss/oxide/-/oxide-4.1.16.tgz", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.16", "@tailwindcss/oxide-darwin-arm64": "4.1.16", "@tailwindcss/oxide-darwin-x64": "4.1.16", "@tailwindcss/oxide-freebsd-x64": "4.1.16", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.16", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.16", "@tailwindcss/oxide-linux-arm64-musl": "4.1.16", "@tailwindcss/oxide-linux-x64-gnu": "4.1.16", "@tailwindcss/oxide-linux-x64-musl": "4.1.16", "@tailwindcss/oxide-wasm32-wasi": "4.1.16", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.16", "@tailwindcss/oxide-win32-x64-msvc": "4.1.16" } }, "sha512-2OSv52FRuhdlgyOQqgtQHuCgXnS8nFSYRp2tJ+4WZXKgTxqPy7SMSls8c3mPT5pkZ17SBToGM5LHEJBO7miEdg=="], - "@xtuc/long": ["@xtuc/long@4.2.2", "", {}, "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="], + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.16", "https://registry.yarnpkg.com/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.16.tgz", { "os": "android", "cpu": "arm64" }, "sha512-8+ctzkjHgwDJ5caq9IqRSgsP70xhdhJvm+oueS/yhD5ixLhqTw9fSL1OurzMUhBwE5zK26FXLCz2f/RtkISqHA=="], - "abab": ["abab@2.0.6", "", {}, "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="], + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.16", "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.16.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-C3oZy5042v2FOALBZtY0JTDnGNdS6w7DxL/odvSny17ORUnaRKhyTse8xYi3yKGyfnTUOdavRCdmc8QqJYwFKA=="], - "abort-controller": ["abort-controller@3.0.0", "", { "dependencies": { "event-target-shim": "^5.0.0" } }, "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="], + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.16", "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.16.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-vjrl/1Ub9+JwU6BP0emgipGjowzYZMjbWCDqwA2Z4vCa+HBSpP4v6U2ddejcHsolsYxwL5r4bPNoamlV0xDdLg=="], - "accepts": ["accepts@1.3.8", "", { "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" } }, "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="], + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.16", "https://registry.yarnpkg.com/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.16.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-TSMpPYpQLm+aR1wW5rKuUuEruc/oOX3C7H0BTnPDn7W/eMw8W+MRMpiypKMkXZfwH8wqPIRKppuZoedTtNj2tg=="], - "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.16", "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.16.tgz", { "os": "linux", "cpu": "arm" }, "sha512-p0GGfRg/w0sdsFKBjMYvvKIiKy/LNWLWgV/plR4lUgrsxFAoQBFrXkZ4C0w8IOXfslB9vHK/JGASWD2IefIpvw=="], - "acorn-globals": ["acorn-globals@7.0.1", "", { "dependencies": { "acorn": "^8.1.0", "acorn-walk": "^8.0.2" } }, "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q=="], + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.16", "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.16.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-DoixyMmTNO19rwRPdqviTrG1rYzpxgyYJl8RgQvdAQUzxC1ToLRqtNJpU/ATURSKgIg6uerPw2feW0aS8SNr/w=="], - "acorn-import-phases": ["acorn-import-phases@1.0.4", "", { "peerDependencies": { "acorn": "^8.14.0" } }, "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ=="], + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.16", "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.16.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-H81UXMa9hJhWhaAUca6bU2wm5RRFpuHImrwXBUvPbYb+3jo32I9VIwpOX6hms0fPmA6f2pGVlybO6qU8pF4fzQ=="], - "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.16", "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.16.tgz", { "os": "linux", "cpu": "x64" }, "sha512-ZGHQxDtFC2/ruo7t99Qo2TTIvOERULPl5l0K1g0oK6b5PGqjYMga+FcY1wIUnrUxY56h28FxybtDEla+ICOyew=="], - "acorn-loose": ["acorn-loose@8.5.2", "", { "dependencies": { "acorn": "^8.15.0" } }, "sha512-PPvV6g8UGMGgjrMu+n/f9E/tCSkNQ2Y97eFvuVdJfG11+xdIeDcLyNdC8SHcrHbRqkfwLASdplyR6B6sKM1U4A=="], + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.16", "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.16.tgz", { "os": "linux", "cpu": "x64" }, "sha512-Oi1tAaa0rcKf1Og9MzKeINZzMLPbhxvm7rno5/zuP1WYmpiG0bEHq4AcRUiG2165/WUzvxkW4XDYCscZWbTLZw=="], - "acorn-walk": ["acorn-walk@8.3.4", "", { "dependencies": { "acorn": "^8.11.0" } }, "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g=="], + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.16", "https://registry.yarnpkg.com/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.16.tgz", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.0.7", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.4.0" }, "cpu": "none" }, "sha512-B01u/b8LteGRwucIBmCQ07FVXLzImWESAIMcUU6nvFt/tYsQ6IHz8DmZ5KtvmwxD+iTYBtM1xwoGXswnlu9v0Q=="], - "agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="], + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.16", "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.16.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-zX+Q8sSkGj6HKRTMJXuPvOcP8XfYON24zJBRPlszcH1Np7xuHXhWn8qfFjIujVzvH3BHU+16jBXwgpl20i+v9A=="], - "ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.16", "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.16.tgz", { "os": "win32", "cpu": "x64" }, "sha512-m5dDFJUEejbFqP+UXVstd4W/wnxA4F61q8SoL+mqTypId2T2ZpuxosNSgowiCnLp2+Z+rivdU0AqpfgiD7yCBg=="], - "ajv-formats": ["ajv-formats@2.1.1", "", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA=="], + "@tailwindcss/postcss": ["@tailwindcss/postcss@4.1.16", "https://registry.yarnpkg.com/@tailwindcss/postcss/-/postcss-4.1.16.tgz", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.1.16", "@tailwindcss/oxide": "4.1.16", "postcss": "^8.4.41", "tailwindcss": "4.1.16" } }, "sha512-Qn3SFGPXYQMKR/UtqS+dqvPrzEeBZHrFA92maT4zijCVggdsXnDBMsPFJo1eArX3J+O+Gi+8pV4PkqjLCNBk3A=="], - "ajv-keywords": ["ajv-keywords@5.1.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw=="], + "@testing-library/react-native": ["@testing-library/react-native@13.3.3", "https://registry.yarnpkg.com/@testing-library/react-native/-/react-native-13.3.3.tgz", { "dependencies": { "jest-matcher-utils": "^30.0.5", "picocolors": "^1.1.1", "pretty-format": "^30.0.5", "redent": "^3.0.0" }, "peerDependencies": { "jest": ">=29.0.0", "react": ">=18.2.0", "react-native": ">=0.71", "react-test-renderer": ">=18.2.0" }, "optionalPeers": ["jest"] }, "sha512-k6Mjsd9dbZgvY4Bl7P1NIpePQNi+dfYtlJ5voi9KQlynxSyQkfOgJmYGCYmw/aSgH/rUcFvG8u5gd4npzgRDyg=="], - "anser": ["anser@1.4.10", "", {}, "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww=="], + "@tootallnate/once": ["@tootallnate/once@2.0.0", "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz", {}, "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A=="], - "ansi-escapes": ["ansi-escapes@4.3.2", "", { "dependencies": { "type-fest": "^0.21.3" } }, "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="], + "@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], - "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "@types/babel__core": ["@types/babel__core@7.20.5", "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], - "ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + "@types/babel__generator": ["@types/babel__generator@7.27.0", "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], - "any-promise": ["any-promise@1.3.0", "", {}, "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="], + "@types/babel__template": ["@types/babel__template@7.4.4", "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="], - "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], + "@types/babel__traverse": ["@types/babel__traverse@7.28.0", "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="], - "arg": ["arg@5.0.2", "", {}, "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="], + "@types/bun": ["@types/bun@1.3.1", "https://registry.yarnpkg.com/@types/bun/-/bun-1.3.1.tgz", { "dependencies": { "bun-types": "1.3.1" } }, "sha512-4jNMk2/K9YJtfqwoAa28c8wK+T7nvJFOjxI4h/7sORWcypRNxBpr+TPNaCfVWq70tLCJsqoFwcf0oI0JU/fvMQ=="], - "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + "@types/eslint": ["@types/eslint@9.6.1", "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz", { "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag=="], - "aria-hidden": ["aria-hidden@1.2.6", "", { "dependencies": { "tslib": "^2.0.0" } }, "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA=="], + "@types/eslint-scope": ["@types/eslint-scope@3.7.7", "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", { "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg=="], - "array-buffer-byte-length": ["array-buffer-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="], + "@types/estree": ["@types/estree@1.0.8", "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], - "array-flatten": ["array-flatten@1.1.1", "", {}, "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="], + "@types/graceful-fs": ["@types/graceful-fs@4.1.9", "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", { "dependencies": { "@types/node": "*" } }, "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ=="], - "array-includes": ["array-includes@3.1.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.24.0", "es-object-atoms": "^1.1.1", "get-intrinsic": "^1.3.0", "is-string": "^1.1.1", "math-intrinsics": "^1.1.0" } }, "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ=="], + "@types/istanbul-lib-coverage": ["@types/istanbul-lib-coverage@2.0.6", "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", {}, "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="], - "array.prototype.findlast": ["array.prototype.findlast@1.2.5", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ=="], + "@types/istanbul-lib-report": ["@types/istanbul-lib-report@3.0.3", "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", { "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA=="], - "array.prototype.findlastindex": ["array.prototype.findlastindex@1.2.6", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-shim-unscopables": "^1.1.0" } }, "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ=="], + "@types/istanbul-reports": ["@types/istanbul-reports@3.0.4", "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", { "dependencies": { "@types/istanbul-lib-report": "*" } }, "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ=="], - "array.prototype.flat": ["array.prototype.flat@1.3.3", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg=="], + "@types/jest": ["@types/jest@29.5.14", "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.14.tgz", { "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" } }, "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ=="], - "array.prototype.flatmap": ["array.prototype.flatmap@1.3.3", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg=="], + "@types/jsdom": ["@types/jsdom@20.0.1", "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.1.tgz", { "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", "parse5": "^7.0.0" } }, "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ=="], - "array.prototype.tosorted": ["array.prototype.tosorted@1.1.4", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA=="], + "@types/json-schema": ["@types/json-schema@7.0.15", "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], - "arraybuffer.prototype.slice": ["arraybuffer.prototype.slice@1.0.4", "", { "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "is-array-buffer": "^3.0.4" } }, "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ=="], + "@types/json5": ["@types/json5@0.0.29", "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="], - "asap": ["asap@2.0.6", "", {}, "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="], + "@types/node": ["@types/node@24.9.2", "https://registry.yarnpkg.com/@types/node/-/node-24.9.2.tgz", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA=="], - "async-function": ["async-function@1.0.0", "", {}, "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA=="], + "@types/react": ["@types/react@19.2.14", "https://registry.yarnpkg.com/@types/react/-/react-19.2.14.tgz", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w=="], - "async-limiter": ["async-limiter@1.0.1", "", {}, "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="], + "@types/stack-utils": ["@types/stack-utils@2.0.3", "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz", {}, "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="], - "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="], + "@types/tough-cookie": ["@types/tough-cookie@4.0.5", "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", {}, "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA=="], - "autoprefixer": ["autoprefixer@10.4.21", "", { "dependencies": { "browserslist": "^4.24.4", "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ=="], + "@types/yargs": ["@types/yargs@17.0.34", "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.34.tgz", { "dependencies": { "@types/yargs-parser": "*" } }, "sha512-KExbHVa92aJpw9WDQvzBaGVE2/Pz+pLZQloT2hjL8IqsZnV62rlPOYvNnLmf/L2dyllfVUOVBj64M0z/46eR2A=="], - "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], + "@types/yargs-parser": ["@types/yargs-parser@21.0.3", "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", {}, "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="], - "await-lock": ["await-lock@2.2.2", "", {}, "sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw=="], + "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.46.2", "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.2.tgz", { "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.46.2", "@typescript-eslint/type-utils": "8.46.2", "@typescript-eslint/utils": "8.46.2", "@typescript-eslint/visitor-keys": "8.46.2", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.46.2", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w=="], - "babel-jest": ["babel-jest@29.7.0", "", { "dependencies": { "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" }, "peerDependencies": { "@babel/core": "^7.8.0" } }, "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg=="], + "@typescript-eslint/parser": ["@typescript-eslint/parser@8.46.2", "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.46.2.tgz", { "dependencies": { "@typescript-eslint/scope-manager": "8.46.2", "@typescript-eslint/types": "8.46.2", "@typescript-eslint/typescript-estree": "8.46.2", "@typescript-eslint/visitor-keys": "8.46.2", "debug": "^4.3.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g=="], - "babel-plugin-istanbul": ["babel-plugin-istanbul@6.1.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-instrument": "^5.0.4", "test-exclude": "^6.0.0" } }, "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA=="], + "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.46.2", "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.46.2.tgz", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.46.2", "@typescript-eslint/types": "^8.46.2", "debug": "^4.3.4" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg=="], - "babel-plugin-jest-hoist": ["babel-plugin-jest-hoist@29.6.3", "", { "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", "@types/babel__core": "^7.1.14", "@types/babel__traverse": "^7.0.6" } }, "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg=="], + "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.46.2", "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.46.2.tgz", { "dependencies": { "@typescript-eslint/types": "8.46.2", "@typescript-eslint/visitor-keys": "8.46.2" } }, "sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA=="], - "babel-plugin-polyfill-corejs2": ["babel-plugin-polyfill-corejs2@0.4.14", "", { "dependencies": { "@babel/compat-data": "^7.27.7", "@babel/helper-define-polyfill-provider": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg=="], + "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.46.2", "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.2.tgz", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag=="], - "babel-plugin-polyfill-corejs3": ["babel-plugin-polyfill-corejs3@0.13.0", "", { "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.5", "core-js-compat": "^3.43.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A=="], + "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.46.2", "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.46.2.tgz", { "dependencies": { "@typescript-eslint/types": "8.46.2", "@typescript-eslint/typescript-estree": "8.46.2", "@typescript-eslint/utils": "8.46.2", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA=="], - "babel-plugin-polyfill-regenerator": ["babel-plugin-polyfill-regenerator@0.6.5", "", { "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.5" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg=="], + "@typescript-eslint/types": ["@typescript-eslint/types@8.46.2", "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.46.2.tgz", {}, "sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ=="], - "babel-plugin-react-compiler": ["babel-plugin-react-compiler@1.0.0", "", { "dependencies": { "@babel/types": "^7.26.0" } }, "sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw=="], + "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.46.2", "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.2.tgz", { "dependencies": { "@typescript-eslint/project-service": "8.46.2", "@typescript-eslint/tsconfig-utils": "8.46.2", "@typescript-eslint/types": "8.46.2", "@typescript-eslint/visitor-keys": "8.46.2", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ=="], - "babel-plugin-react-native-web": ["babel-plugin-react-native-web@0.21.2", "", {}, "sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA=="], + "@typescript-eslint/utils": ["@typescript-eslint/utils@8.46.2", "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.46.2.tgz", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.46.2", "@typescript-eslint/types": "8.46.2", "@typescript-eslint/typescript-estree": "8.46.2" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg=="], - "babel-plugin-syntax-hermes-parser": ["babel-plugin-syntax-hermes-parser@0.29.1", "", { "dependencies": { "hermes-parser": "0.29.1" } }, "sha512-2WFYnoWGdmih1I1J5eIqxATOeycOqRwYxAQBu3cUu/rhwInwHUg7k60AFNbuGjSDL8tje5GDrAnxzRLcu2pYcA=="], + "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.46.2", "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.2.tgz", { "dependencies": { "@typescript-eslint/types": "8.46.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w=="], - "babel-plugin-transform-flow-enums": ["babel-plugin-transform-flow-enums@0.0.2", "", { "dependencies": { "@babel/plugin-syntax-flow": "^7.12.1" } }, "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ=="], + "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], - "babel-preset-current-node-syntax": ["babel-preset-current-node-syntax@1.2.0", "", { "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0 || ^8.0.0-0" } }, "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg=="], + "@unrs/resolver-binding-android-arm-eabi": ["@unrs/resolver-binding-android-arm-eabi@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", { "os": "android", "cpu": "arm" }, "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw=="], - "babel-preset-expo": ["babel-preset-expo@54.0.6", "", { "dependencies": { "@babel/helper-module-imports": "^7.25.9", "@babel/plugin-proposal-decorators": "^7.12.9", "@babel/plugin-proposal-export-default-from": "^7.24.7", "@babel/plugin-syntax-export-default-from": "^7.24.7", "@babel/plugin-transform-class-static-block": "^7.27.1", "@babel/plugin-transform-export-namespace-from": "^7.25.9", "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-runtime": "^7.24.7", "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.0", "@react-native/babel-preset": "0.81.5", "babel-plugin-react-compiler": "^1.0.0", "babel-plugin-react-native-web": "~0.21.0", "babel-plugin-syntax-hermes-parser": "^0.29.1", "babel-plugin-transform-flow-enums": "^0.0.2", "debug": "^4.3.4", "resolve-from": "^5.0.0" }, "peerDependencies": { "@babel/runtime": "^7.20.0", "expo": "*", "react-refresh": ">=0.14.0 <1.0.0" }, "optionalPeers": ["@babel/runtime", "expo"] }, "sha512-GxJfwnuOPQJbzDe5WASJZdNQiukLw7i9z+Lh6JQWkUHXsShHyQrqgiKE55MD/KaP9VqJ70yZm7bYqOu8zwcWqQ=="], + "@unrs/resolver-binding-android-arm64": ["@unrs/resolver-binding-android-arm64@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", { "os": "android", "cpu": "arm64" }, "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g=="], - "babel-preset-jest": ["babel-preset-jest@29.6.3", "", { "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA=="], + "@unrs/resolver-binding-darwin-arm64": ["@unrs/resolver-binding-darwin-arm64@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g=="], - "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + "@unrs/resolver-binding-darwin-x64": ["@unrs/resolver-binding-darwin-x64@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ=="], - "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], + "@unrs/resolver-binding-freebsd-x64": ["@unrs/resolver-binding-freebsd-x64@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw=="], - "baseline-browser-mapping": ["baseline-browser-mapping@2.8.20", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ=="], + "@unrs/resolver-binding-linux-arm-gnueabihf": ["@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", { "os": "linux", "cpu": "arm" }, "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw=="], - "basic-auth": ["basic-auth@2.0.1", "", { "dependencies": { "safe-buffer": "5.1.2" } }, "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg=="], + "@unrs/resolver-binding-linux-arm-musleabihf": ["@unrs/resolver-binding-linux-arm-musleabihf@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", { "os": "linux", "cpu": "arm" }, "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw=="], - "better-opn": ["better-opn@3.0.2", "", { "dependencies": { "open": "^8.0.4" } }, "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ=="], + "@unrs/resolver-binding-linux-arm64-gnu": ["@unrs/resolver-binding-linux-arm64-gnu@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ=="], - "big-integer": ["big-integer@1.6.52", "", {}, "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg=="], + "@unrs/resolver-binding-linux-arm64-musl": ["@unrs/resolver-binding-linux-arm64-musl@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w=="], - "body-parser": ["body-parser@1.20.3", "", { "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" } }, "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g=="], + "@unrs/resolver-binding-linux-ppc64-gnu": ["@unrs/resolver-binding-linux-ppc64-gnu@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", { "os": "linux", "cpu": "ppc64" }, "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA=="], - "bplist-creator": ["bplist-creator@0.1.0", "", { "dependencies": { "stream-buffers": "2.2.x" } }, "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg=="], + "@unrs/resolver-binding-linux-riscv64-gnu": ["@unrs/resolver-binding-linux-riscv64-gnu@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", { "os": "linux", "cpu": "none" }, "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ=="], - "bplist-parser": ["bplist-parser@0.3.2", "", { "dependencies": { "big-integer": "1.6.x" } }, "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ=="], + "@unrs/resolver-binding-linux-riscv64-musl": ["@unrs/resolver-binding-linux-riscv64-musl@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", { "os": "linux", "cpu": "none" }, "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew=="], - "brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + "@unrs/resolver-binding-linux-s390x-gnu": ["@unrs/resolver-binding-linux-s390x-gnu@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", { "os": "linux", "cpu": "s390x" }, "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg=="], - "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], + "@unrs/resolver-binding-linux-x64-gnu": ["@unrs/resolver-binding-linux-x64-gnu@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", { "os": "linux", "cpu": "x64" }, "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w=="], - "browserslist": ["browserslist@4.27.0", "", { "dependencies": { "baseline-browser-mapping": "^2.8.19", "caniuse-lite": "^1.0.30001751", "electron-to-chromium": "^1.5.238", "node-releases": "^2.0.26", "update-browserslist-db": "^1.1.4" }, "bin": { "browserslist": "cli.js" } }, "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw=="], + "@unrs/resolver-binding-linux-x64-musl": ["@unrs/resolver-binding-linux-x64-musl@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", { "os": "linux", "cpu": "x64" }, "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA=="], - "bser": ["bser@2.1.1", "", { "dependencies": { "node-int64": "^0.4.0" } }, "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ=="], + "@unrs/resolver-binding-wasm32-wasi": ["@unrs/resolver-binding-wasm32-wasi@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", { "dependencies": { "@napi-rs/wasm-runtime": "^0.2.11" }, "cpu": "none" }, "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ=="], - "buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="], + "@unrs/resolver-binding-win32-arm64-msvc": ["@unrs/resolver-binding-win32-arm64-msvc@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw=="], - "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], + "@unrs/resolver-binding-win32-ia32-msvc": ["@unrs/resolver-binding-win32-ia32-msvc@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", { "os": "win32", "cpu": "ia32" }, "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ=="], - "bun-types": ["bun-types@1.3.1", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-NMrcy7smratanWJ2mMXdpatalovtxVggkj11bScuWuiOoXTiKIu2eVS1/7qbyI/4yHedtsn175n4Sm4JcdHLXw=="], + "@unrs/resolver-binding-win32-x64-msvc": ["@unrs/resolver-binding-win32-x64-msvc@1.11.1", "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", { "os": "win32", "cpu": "x64" }, "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g=="], - "bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="], + "@webassemblyjs/ast": ["@webassemblyjs/ast@1.14.1", "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz", { "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ=="], - "call-bind": ["call-bind@1.0.8", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="], + "@webassemblyjs/floating-point-hex-parser": ["@webassemblyjs/floating-point-hex-parser@1.13.2", "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", {}, "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA=="], - "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], + "@webassemblyjs/helper-api-error": ["@webassemblyjs/helper-api-error@1.13.2", "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", {}, "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ=="], - "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], + "@webassemblyjs/helper-buffer": ["@webassemblyjs/helper-buffer@1.14.1", "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", {}, "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA=="], - "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], + "@webassemblyjs/helper-numbers": ["@webassemblyjs/helper-numbers@1.13.2", "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", { "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.13.2", "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA=="], - "camelcase": ["camelcase@6.3.0", "", {}, "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="], + "@webassemblyjs/helper-wasm-bytecode": ["@webassemblyjs/helper-wasm-bytecode@1.13.2", "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", {}, "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA=="], - "caniuse-lite": ["caniuse-lite@1.0.30001751", "", {}, "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw=="], + "@webassemblyjs/helper-wasm-section": ["@webassemblyjs/helper-wasm-section@1.14.1", "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/wasm-gen": "1.14.1" } }, "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw=="], - "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "@webassemblyjs/ieee754": ["@webassemblyjs/ieee754@1.13.2", "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", { "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw=="], - "char-regex": ["char-regex@2.0.2", "", {}, "sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg=="], + "@webassemblyjs/leb128": ["@webassemblyjs/leb128@1.13.2", "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", { "dependencies": { "@xtuc/long": "4.2.2" } }, "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw=="], - "chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="], + "@webassemblyjs/utf8": ["@webassemblyjs/utf8@1.13.2", "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", {}, "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ=="], - "chrome-launcher": ["chrome-launcher@0.15.2", "", { "dependencies": { "@types/node": "*", "escape-string-regexp": "^4.0.0", "is-wsl": "^2.2.0", "lighthouse-logger": "^1.0.0" }, "bin": { "print-chrome-path": "bin/print-chrome-path.js" } }, "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ=="], + "@webassemblyjs/wasm-edit": ["@webassemblyjs/wasm-edit@1.14.1", "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/helper-wasm-section": "1.14.1", "@webassemblyjs/wasm-gen": "1.14.1", "@webassemblyjs/wasm-opt": "1.14.1", "@webassemblyjs/wasm-parser": "1.14.1", "@webassemblyjs/wast-printer": "1.14.1" } }, "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ=="], - "chrome-trace-event": ["chrome-trace-event@1.0.4", "", {}, "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ=="], + "@webassemblyjs/wasm-gen": ["@webassemblyjs/wasm-gen@1.14.1", "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/ieee754": "1.13.2", "@webassemblyjs/leb128": "1.13.2", "@webassemblyjs/utf8": "1.13.2" } }, "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg=="], - "chromium-edge-launcher": ["chromium-edge-launcher@0.2.0", "", { "dependencies": { "@types/node": "*", "escape-string-regexp": "^4.0.0", "is-wsl": "^2.2.0", "lighthouse-logger": "^1.0.0", "mkdirp": "^1.0.4", "rimraf": "^3.0.2" } }, "sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg=="], + "@webassemblyjs/wasm-opt": ["@webassemblyjs/wasm-opt@1.14.1", "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", "@webassemblyjs/wasm-gen": "1.14.1", "@webassemblyjs/wasm-parser": "1.14.1" } }, "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw=="], - "ci-info": ["ci-info@3.9.0", "", {}, "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ=="], + "@webassemblyjs/wasm-parser": ["@webassemblyjs/wasm-parser@1.14.1", "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-api-error": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/ieee754": "1.13.2", "@webassemblyjs/leb128": "1.13.2", "@webassemblyjs/utf8": "1.13.2" } }, "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ=="], - "cjs-module-lexer": ["cjs-module-lexer@1.4.3", "", {}, "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q=="], + "@webassemblyjs/wast-printer": ["@webassemblyjs/wast-printer@1.14.1", "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw=="], - "class-variance-authority": ["class-variance-authority@0.7.1", "", { "dependencies": { "clsx": "^2.1.1" } }, "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg=="], + "@xmldom/xmldom": ["@xmldom/xmldom@0.8.11", "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.11.tgz", {}, "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw=="], - "cli-cursor": ["cli-cursor@2.1.0", "", { "dependencies": { "restore-cursor": "^2.0.0" } }, "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw=="], + "@xtuc/ieee754": ["@xtuc/ieee754@1.2.0", "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", {}, "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="], - "cli-spinners": ["cli-spinners@2.9.2", "", {}, "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg=="], + "@xtuc/long": ["@xtuc/long@4.2.2", "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz", {}, "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="], - "client-only": ["client-only@0.0.1", "", {}, "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="], + "abab": ["abab@2.0.6", "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz", {}, "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="], - "cliui": ["cliui@8.0.1", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="], + "abort-controller": ["abort-controller@3.0.0", "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz", { "dependencies": { "event-target-shim": "^5.0.0" } }, "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="], - "clone": ["clone@1.0.4", "", {}, "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg=="], + "accepts": ["accepts@1.3.8", "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz", { "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" } }, "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="], - "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], + "acorn": ["acorn@8.15.0", "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], - "co": ["co@4.6.0", "", {}, "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=="], + "acorn-globals": ["acorn-globals@7.0.1", "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz", { "dependencies": { "acorn": "^8.1.0", "acorn-walk": "^8.0.2" } }, "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q=="], - "collect-v8-coverage": ["collect-v8-coverage@1.0.3", "", {}, "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw=="], + "acorn-import-phases": ["acorn-import-phases@1.0.4", "https://registry.yarnpkg.com/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", { "peerDependencies": { "acorn": "^8.14.0" } }, "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ=="], - "color": ["color@4.2.3", "", { "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" } }, "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A=="], + "acorn-jsx": ["acorn-jsx@5.3.2", "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], - "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + "acorn-loose": ["acorn-loose@8.5.2", "https://registry.yarnpkg.com/acorn-loose/-/acorn-loose-8.5.2.tgz", { "dependencies": { "acorn": "^8.15.0" } }, "sha512-PPvV6g8UGMGgjrMu+n/f9E/tCSkNQ2Y97eFvuVdJfG11+xdIeDcLyNdC8SHcrHbRqkfwLASdplyR6B6sKM1U4A=="], - "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + "acorn-walk": ["acorn-walk@8.3.4", "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz", { "dependencies": { "acorn": "^8.11.0" } }, "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g=="], - "color-string": ["color-string@1.9.1", "", { "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg=="], + "agent-base": ["agent-base@6.0.2", "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="], - "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], + "ajv": ["ajv@6.12.6", "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], - "commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], + "ajv-formats": ["ajv-formats@2.1.1", "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA=="], - "compressible": ["compressible@2.0.18", "", { "dependencies": { "mime-db": ">= 1.43.0 < 2" } }, "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg=="], + "ajv-keywords": ["ajv-keywords@5.1.0", "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", { "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw=="], - "compression": ["compression@1.8.1", "", { "dependencies": { "bytes": "3.1.2", "compressible": "~2.0.18", "debug": "2.6.9", "negotiator": "~0.6.4", "on-headers": "~1.1.0", "safe-buffer": "5.2.1", "vary": "~1.1.2" } }, "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w=="], + "anser": ["anser@1.4.10", "https://registry.yarnpkg.com/anser/-/anser-1.4.10.tgz", {}, "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww=="], - "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + "ansi-escapes": ["ansi-escapes@4.3.2", "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz", { "dependencies": { "type-fest": "^0.21.3" } }, "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="], - "connect": ["connect@3.7.0", "", { "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", "parseurl": "~1.3.3", "utils-merge": "1.0.1" } }, "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ=="], + "ansi-regex": ["ansi-regex@5.0.1", "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "content-disposition": ["content-disposition@0.5.4", "", { "dependencies": { "safe-buffer": "5.2.1" } }, "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ=="], + "ansi-styles": ["ansi-styles@5.2.0", "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - "content-type": ["content-type@1.0.5", "", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="], + "anymatch": ["anymatch@3.1.3", "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], - "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + "arg": ["arg@5.0.2", "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz", {}, "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="], - "cookie": ["cookie@0.7.1", "", {}, "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w=="], + "argparse": ["argparse@2.0.1", "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], - "cookie-signature": ["cookie-signature@1.0.6", "", {}, "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="], + "aria-hidden": ["aria-hidden@1.2.6", "https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.2.6.tgz", { "dependencies": { "tslib": "^2.0.0" } }, "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA=="], - "core-js-compat": ["core-js-compat@3.46.0", "", { "dependencies": { "browserslist": "^4.26.3" } }, "sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law=="], + "array-buffer-byte-length": ["array-buffer-byte-length@1.0.2", "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", { "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="], - "create-jest": ["create-jest@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "jest-config": "^29.7.0", "jest-util": "^29.7.0", "prompts": "^2.0.1" }, "bin": { "create-jest": "bin/create-jest.js" } }, "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q=="], + "array-flatten": ["array-flatten@1.1.1", "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz", {}, "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="], - "cross-fetch": ["cross-fetch@3.2.0", "", { "dependencies": { "node-fetch": "^2.7.0" } }, "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q=="], + "array-includes": ["array-includes@3.1.9", "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.9.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.24.0", "es-object-atoms": "^1.1.1", "get-intrinsic": "^1.3.0", "is-string": "^1.1.1", "math-intrinsics": "^1.1.0" } }, "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ=="], - "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + "array.prototype.findlast": ["array.prototype.findlast@1.2.5", "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ=="], - "crypto-random-string": ["crypto-random-string@2.0.0", "", {}, "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="], + "array.prototype.findlastindex": ["array.prototype.findlastindex@1.2.6", "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-shim-unscopables": "^1.1.0" } }, "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ=="], - "css-in-js-utils": ["css-in-js-utils@3.1.0", "", { "dependencies": { "hyphenate-style-name": "^1.0.3" } }, "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A=="], + "array.prototype.flat": ["array.prototype.flat@1.3.3", "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg=="], - "cssom": ["cssom@0.5.0", "", {}, "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw=="], + "array.prototype.flatmap": ["array.prototype.flatmap@1.3.3", "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg=="], - "cssstyle": ["cssstyle@2.3.0", "", { "dependencies": { "cssom": "~0.3.6" } }, "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A=="], + "array.prototype.tosorted": ["array.prototype.tosorted@1.1.4", "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA=="], - "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], + "arraybuffer.prototype.slice": ["arraybuffer.prototype.slice@1.0.4", "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", { "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "is-array-buffer": "^3.0.4" } }, "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ=="], - "data-urls": ["data-urls@3.0.2", "", { "dependencies": { "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", "whatwg-url": "^11.0.0" } }, "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ=="], + "asap": ["asap@2.0.6", "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz", {}, "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="], - "data-view-buffer": ["data-view-buffer@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ=="], + "async-function": ["async-function@1.0.0", "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz", {}, "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA=="], - "data-view-byte-length": ["data-view-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ=="], + "asynckit": ["asynckit@0.4.0", "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="], - "data-view-byte-offset": ["data-view-byte-offset@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" } }, "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ=="], + "autoprefixer": ["autoprefixer@10.4.21", "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.21.tgz", { "dependencies": { "browserslist": "^4.24.4", "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ=="], - "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + "available-typed-arrays": ["available-typed-arrays@1.0.7", "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], - "decimal.js": ["decimal.js@10.6.0", "", {}, "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg=="], + "await-lock": ["await-lock@2.2.2", "https://registry.yarnpkg.com/await-lock/-/await-lock-2.2.2.tgz", {}, "sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw=="], - "decode-uri-component": ["decode-uri-component@0.2.2", "", {}, "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="], + "babel-jest": ["babel-jest@29.7.0", "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz", { "dependencies": { "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" }, "peerDependencies": { "@babel/core": "^7.8.0" } }, "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg=="], - "dedent": ["dedent@1.7.0", "", { "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, "optionalPeers": ["babel-plugin-macros"] }, "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ=="], + "babel-plugin-istanbul": ["babel-plugin-istanbul@6.1.1", "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", { "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-instrument": "^5.0.4", "test-exclude": "^6.0.0" } }, "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA=="], - "deep-extend": ["deep-extend@0.6.0", "", {}, "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="], + "babel-plugin-jest-hoist": ["babel-plugin-jest-hoist@29.6.3", "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", { "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", "@types/babel__core": "^7.1.14", "@types/babel__traverse": "^7.0.6" } }, "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg=="], - "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], + "babel-plugin-polyfill-corejs2": ["babel-plugin-polyfill-corejs2@0.4.14", "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", { "dependencies": { "@babel/compat-data": "^7.27.7", "@babel/helper-define-polyfill-provider": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg=="], - "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], + "babel-plugin-polyfill-corejs3": ["babel-plugin-polyfill-corejs3@0.13.0", "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", { "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.5", "core-js-compat": "^3.43.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A=="], - "defaults": ["defaults@1.0.4", "", { "dependencies": { "clone": "^1.0.2" } }, "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A=="], + "babel-plugin-polyfill-regenerator": ["babel-plugin-polyfill-regenerator@0.6.5", "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", { "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.5" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg=="], - "define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="], + "babel-plugin-react-compiler": ["babel-plugin-react-compiler@1.0.0", "https://registry.yarnpkg.com/babel-plugin-react-compiler/-/babel-plugin-react-compiler-1.0.0.tgz", { "dependencies": { "@babel/types": "^7.26.0" } }, "sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw=="], - "define-lazy-prop": ["define-lazy-prop@2.0.0", "", {}, "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="], + "babel-plugin-react-native-web": ["babel-plugin-react-native-web@0.21.2", "https://registry.yarnpkg.com/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.21.2.tgz", {}, "sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA=="], - "define-properties": ["define-properties@1.2.1", "", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="], + "babel-plugin-syntax-hermes-parser": ["babel-plugin-syntax-hermes-parser@0.32.0", "https://registry.yarnpkg.com/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.32.0.tgz", { "dependencies": { "hermes-parser": "0.32.0" } }, "sha512-m5HthL++AbyeEA2FcdwOLfVFvWYECOBObLHNqdR8ceY4TsEdn4LdX2oTvbB2QJSSElE2AWA/b2MXZ/PF/CqLZg=="], - "delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="], + "babel-plugin-transform-flow-enums": ["babel-plugin-transform-flow-enums@0.0.2", "https://registry.yarnpkg.com/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz", { "dependencies": { "@babel/plugin-syntax-flow": "^7.12.1" } }, "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ=="], - "depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="], + "babel-preset-current-node-syntax": ["babel-preset-current-node-syntax@1.2.0", "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", { "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0 || ^8.0.0-0" } }, "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg=="], - "destroy": ["destroy@1.2.0", "", {}, "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="], + "babel-preset-expo": ["babel-preset-expo@55.0.7", "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-55.0.7.tgz", { "dependencies": { "@babel/generator": "^7.20.5", "@babel/helper-module-imports": "^7.25.9", "@babel/plugin-proposal-decorators": "^7.12.9", "@babel/plugin-proposal-export-default-from": "^7.24.7", "@babel/plugin-syntax-export-default-from": "^7.24.7", "@babel/plugin-transform-class-static-block": "^7.27.1", "@babel/plugin-transform-export-namespace-from": "^7.25.9", "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-runtime": "^7.24.7", "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.0", "@react-native/babel-preset": "0.83.2", "babel-plugin-react-compiler": "^1.0.0", "babel-plugin-react-native-web": "~0.21.0", "babel-plugin-syntax-hermes-parser": "^0.29.1", "babel-plugin-transform-flow-enums": "^0.0.2", "debug": "^4.3.4", "resolve-from": "^5.0.0" }, "peerDependencies": { "@babel/runtime": "^7.20.0", "expo": "*", "expo-widgets": "^55.0.0", "react-refresh": ">=0.14.0 <1.0.0" }, "optionalPeers": ["@babel/runtime", "expo", "expo-widgets"] }, "sha512-mKXfwFGyDWdivbKm8/z3bHvzWo/ICytg3lfsY9/USaV9I27Vq5l/EmxkRIa3JVJFebsm9sKAFvU+r+WB8rBPPA=="], - "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + "babel-preset-jest": ["babel-preset-jest@29.6.3", "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", { "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA=="], - "detect-newline": ["detect-newline@3.1.0", "", {}, "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA=="], + "balanced-match": ["balanced-match@1.0.2", "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], - "detect-node-es": ["detect-node-es@1.1.0", "", {}, "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ=="], + "base64-js": ["base64-js@1.5.1", "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], - "diff-sequences": ["diff-sequences@29.6.3", "", {}, "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q=="], + "baseline-browser-mapping": ["baseline-browser-mapping@2.8.20", "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.8.20.tgz", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ=="], - "doctrine": ["doctrine@2.1.0", "", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="], + "basic-auth": ["basic-auth@2.0.1", "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz", { "dependencies": { "safe-buffer": "5.1.2" } }, "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg=="], - "domexception": ["domexception@4.0.0", "", { "dependencies": { "webidl-conversions": "^7.0.0" } }, "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw=="], + "better-opn": ["better-opn@3.0.2", "https://registry.yarnpkg.com/better-opn/-/better-opn-3.0.2.tgz", { "dependencies": { "open": "^8.0.4" } }, "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ=="], - "dotenv": ["dotenv@16.4.7", "", {}, "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ=="], + "big-integer": ["big-integer@1.6.52", "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz", {}, "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg=="], - "dotenv-expand": ["dotenv-expand@11.0.7", "", { "dependencies": { "dotenv": "^16.4.5" } }, "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA=="], + "body-parser": ["body-parser@1.20.3", "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz", { "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" } }, "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g=="], - "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], + "bplist-creator": ["bplist-creator@0.1.0", "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.1.0.tgz", { "dependencies": { "stream-buffers": "2.2.x" } }, "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg=="], - "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="], + "bplist-parser": ["bplist-parser@0.3.2", "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.3.2.tgz", { "dependencies": { "big-integer": "1.6.x" } }, "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ=="], - "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], + "brace-expansion": ["brace-expansion@1.1.12", "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - "electron-to-chromium": ["electron-to-chromium@1.5.242", "", {}, "sha512-msZ7SYGFpXkm/iUizlMrm/FPNeYo8uSltQccLVFO3fV4RN2JWGdG7Aatztxtw3uDWp3DkupfkrosLjUnhY+iOw=="], + "braces": ["braces@3.0.3", "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], - "emittery": ["emittery@0.13.1", "", {}, "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ=="], + "browserslist": ["browserslist@4.27.0", "https://registry.yarnpkg.com/browserslist/-/browserslist-4.27.0.tgz", { "dependencies": { "baseline-browser-mapping": "^2.8.19", "caniuse-lite": "^1.0.30001751", "electron-to-chromium": "^1.5.238", "node-releases": "^2.0.26", "update-browserslist-db": "^1.1.4" }, "bin": { "browserslist": "cli.js" } }, "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw=="], - "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + "bser": ["bser@2.1.1", "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz", { "dependencies": { "node-int64": "^0.4.0" } }, "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ=="], - "encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="], + "buffer-from": ["buffer-from@1.1.2", "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], - "enhanced-resolve": ["enhanced-resolve@5.18.3", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww=="], + "bun-types": ["bun-types@1.3.1", "https://registry.yarnpkg.com/bun-types/-/bun-types-1.3.1.tgz", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-NMrcy7smratanWJ2mMXdpatalovtxVggkj11bScuWuiOoXTiKIu2eVS1/7qbyI/4yHedtsn175n4Sm4JcdHLXw=="], - "entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], + "bytes": ["bytes@3.1.2", "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="], - "env-editor": ["env-editor@0.4.2", "", {}, "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA=="], + "call-bind": ["call-bind@1.0.8", "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="], - "error-ex": ["error-ex@1.3.4", "", { "dependencies": { "is-arrayish": "^0.2.1" } }, "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ=="], + "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], - "error-stack-parser": ["error-stack-parser@2.1.4", "", { "dependencies": { "stackframe": "^1.3.4" } }, "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ=="], + "call-bound": ["call-bound@1.0.4", "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], - "es-abstract": ["es-abstract@1.24.0", "", { "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", "get-intrinsic": "^1.3.0", "get-proto": "^1.0.1", "get-symbol-description": "^1.1.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", "hasown": "^2.0.2", "internal-slot": "^1.1.0", "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.3", "typed-array-byte-length": "^1.0.3", "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", "which-typed-array": "^1.1.19" } }, "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg=="], + "callsites": ["callsites@3.1.0", "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], - "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], + "camelcase": ["camelcase@6.3.0", "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz", {}, "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="], - "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], + "caniuse-lite": ["caniuse-lite@1.0.30001751", "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz", {}, "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw=="], - "es-iterator-helpers": ["es-iterator-helpers@1.2.1", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.6", "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.4", "safe-array-concat": "^1.1.3" } }, "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w=="], + "chalk": ["chalk@4.1.2", "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "es-module-lexer": ["es-module-lexer@1.7.0", "", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="], + "char-regex": ["char-regex@2.0.2", "https://registry.yarnpkg.com/char-regex/-/char-regex-2.0.2.tgz", {}, "sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg=="], - "es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="], + "chrome-launcher": ["chrome-launcher@0.15.2", "https://registry.yarnpkg.com/chrome-launcher/-/chrome-launcher-0.15.2.tgz", { "dependencies": { "@types/node": "*", "escape-string-regexp": "^4.0.0", "is-wsl": "^2.2.0", "lighthouse-logger": "^1.0.0" }, "bin": { "print-chrome-path": "bin/print-chrome-path.js" } }, "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ=="], - "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="], + "chrome-trace-event": ["chrome-trace-event@1.0.4", "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", {}, "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ=="], - "es-shim-unscopables": ["es-shim-unscopables@1.1.0", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw=="], + "chromium-edge-launcher": ["chromium-edge-launcher@0.2.0", "https://registry.yarnpkg.com/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz", { "dependencies": { "@types/node": "*", "escape-string-regexp": "^4.0.0", "is-wsl": "^2.2.0", "lighthouse-logger": "^1.0.0", "mkdirp": "^1.0.4", "rimraf": "^3.0.2" } }, "sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg=="], - "es-to-primitive": ["es-to-primitive@1.3.0", "", { "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", "is-symbol": "^1.0.4" } }, "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g=="], + "ci-info": ["ci-info@3.9.0", "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz", {}, "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ=="], - "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + "cjs-module-lexer": ["cjs-module-lexer@1.4.3", "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", {}, "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q=="], - "escape-html": ["escape-html@1.0.3", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="], + "class-variance-authority": ["class-variance-authority@0.7.1", "https://registry.yarnpkg.com/class-variance-authority/-/class-variance-authority-0.7.1.tgz", { "dependencies": { "clsx": "^2.1.1" } }, "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg=="], - "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], + "cli-cursor": ["cli-cursor@2.1.0", "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz", { "dependencies": { "restore-cursor": "^2.0.0" } }, "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw=="], - "escodegen": ["escodegen@2.1.0", "", { "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", "esutils": "^2.0.2" }, "optionalDependencies": { "source-map": "~0.6.1" }, "bin": { "esgenerate": "bin/esgenerate.js", "escodegen": "bin/escodegen.js" } }, "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w=="], + "cli-spinners": ["cli-spinners@2.9.2", "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz", {}, "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg=="], - "eslint": ["eslint@9.38.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", "@eslint/config-helpers": "^0.4.1", "@eslint/core": "^0.16.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.38.0", "@eslint/plugin-kit": "^0.4.0", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw=="], + "client-only": ["client-only@0.0.1", "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz", {}, "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="], - "eslint-config-expo": ["eslint-config-expo@10.0.0", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "^8.18.2", "@typescript-eslint/parser": "^8.18.2", "eslint-import-resolver-typescript": "^3.6.3", "eslint-plugin-expo": "^1.0.0", "eslint-plugin-import": "^2.30.0", "eslint-plugin-react": "^7.37.3", "eslint-plugin-react-hooks": "^5.1.0", "globals": "^16.0.0" }, "peerDependencies": { "eslint": ">=8.10" } }, "sha512-/XC/DvniUWTzU7Ypb/cLDhDD4DXqEio4lug1ObD/oQ9Hcx3OVOR8Mkp4u6U4iGoZSJyIQmIk3WVHe/P1NYUXKw=="], + "cliui": ["cliui@8.0.1", "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="], - "eslint-config-prettier": ["eslint-config-prettier@10.1.8", "", { "peerDependencies": { "eslint": ">=7.0.0" }, "bin": { "eslint-config-prettier": "bin/cli.js" } }, "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w=="], + "clone": ["clone@1.0.4", "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz", {}, "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg=="], - "eslint-import-resolver-node": ["eslint-import-resolver-node@0.3.9", "", { "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", "resolve": "^1.22.4" } }, "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g=="], + "clsx": ["clsx@2.1.1", "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], - "eslint-import-resolver-typescript": ["eslint-import-resolver-typescript@3.10.1", "", { "dependencies": { "@nolyfill/is-core-module": "1.0.39", "debug": "^4.4.0", "get-tsconfig": "^4.10.0", "is-bun-module": "^2.0.0", "stable-hash": "^0.0.5", "tinyglobby": "^0.2.13", "unrs-resolver": "^1.6.2" }, "peerDependencies": { "eslint": "*", "eslint-plugin-import": "*", "eslint-plugin-import-x": "*" }, "optionalPeers": ["eslint-plugin-import", "eslint-plugin-import-x"] }, "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ=="], + "co": ["co@4.6.0", "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz", {}, "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=="], - "eslint-module-utils": ["eslint-module-utils@2.12.1", "", { "dependencies": { "debug": "^3.2.7" } }, "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw=="], + "collect-v8-coverage": ["collect-v8-coverage@1.0.3", "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", {}, "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw=="], - "eslint-plugin-expo": ["eslint-plugin-expo@1.0.0", "", { "dependencies": { "@typescript-eslint/types": "^8.29.1", "@typescript-eslint/utils": "^8.29.1", "eslint": "^9.24.0" } }, "sha512-qLtunR+cNFtC+jwYCBia5c/PJurMjSLMOV78KrEOyQK02ohZapU4dCFFnS2hfrJuw0zxfsjVkjqg3QBqi933QA=="], + "color": ["color@4.2.3", "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz", { "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" } }, "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A=="], - "eslint-plugin-import": ["eslint-plugin-import@2.32.0", "", { "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", "array.prototype.findlastindex": "^1.2.6", "array.prototype.flat": "^1.3.3", "array.prototype.flatmap": "^1.3.3", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.12.1", "hasown": "^2.0.2", "is-core-module": "^2.16.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "object.groupby": "^1.0.3", "object.values": "^1.2.1", "semver": "^6.3.1", "string.prototype.trimend": "^1.0.9", "tsconfig-paths": "^3.15.0" }, "peerDependencies": { "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA=="], + "color-convert": ["color-convert@2.0.1", "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], - "eslint-plugin-prettier": ["eslint-plugin-prettier@5.5.4", "", { "dependencies": { "prettier-linter-helpers": "^1.0.0", "synckit": "^0.11.7" }, "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" }, "optionalPeers": ["@types/eslint", "eslint-config-prettier"] }, "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg=="], + "color-name": ["color-name@1.1.4", "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], - "eslint-plugin-react": ["eslint-plugin-react@7.37.5", "", { "dependencies": { "array-includes": "^3.1.8", "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.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.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" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA=="], + "color-string": ["color-string@1.9.1", "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz", { "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg=="], - "eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@5.2.0", "", { "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg=="], + "combined-stream": ["combined-stream@1.0.8", "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], - "eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], + "commander": ["commander@12.1.0", "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], - "eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="], + "compressible": ["compressible@2.0.18", "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz", { "dependencies": { "mime-db": ">= 1.43.0 < 2" } }, "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg=="], - "espree": ["espree@10.4.0", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="], + "compression": ["compression@1.8.1", "https://registry.yarnpkg.com/compression/-/compression-1.8.1.tgz", { "dependencies": { "bytes": "3.1.2", "compressible": "~2.0.18", "debug": "2.6.9", "negotiator": "~0.6.4", "on-headers": "~1.1.0", "safe-buffer": "5.2.1", "vary": "~1.1.2" } }, "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w=="], - "esprima": ["esprima@4.0.1", "", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="], + "concat-map": ["concat-map@0.0.1", "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], - "esquery": ["esquery@1.6.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="], + "connect": ["connect@3.7.0", "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz", { "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", "parseurl": "~1.3.3", "utils-merge": "1.0.1" } }, "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ=="], - "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], + "content-disposition": ["content-disposition@0.5.4", "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz", { "dependencies": { "safe-buffer": "5.2.1" } }, "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ=="], - "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], + "content-type": ["content-type@1.0.5", "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="], - "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], + "convert-source-map": ["convert-source-map@2.0.0", "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], - "etag": ["etag@1.8.1", "", {}, "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="], + "cookie": ["cookie@0.7.1", "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz", {}, "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w=="], - "event-target-shim": ["event-target-shim@5.0.1", "", {}, "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="], + "cookie-signature": ["cookie-signature@1.0.6", "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz", {}, "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="], - "events": ["events@3.3.0", "", {}, "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="], + "core-js-compat": ["core-js-compat@3.46.0", "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.46.0.tgz", { "dependencies": { "browserslist": "^4.26.3" } }, "sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law=="], - "exec-async": ["exec-async@2.2.0", "", {}, "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw=="], + "create-jest": ["create-jest@29.7.0", "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz", { "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "jest-config": "^29.7.0", "jest-util": "^29.7.0", "prompts": "^2.0.1" }, "bin": { "create-jest": "bin/create-jest.js" } }, "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q=="], - "execa": ["execa@5.1.1", "", { "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="], + "cross-fetch": ["cross-fetch@3.2.0", "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz", { "dependencies": { "node-fetch": "^2.7.0" } }, "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q=="], - "exit": ["exit@0.1.2", "", {}, "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ=="], + "cross-spawn": ["cross-spawn@7.0.6", "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], - "expect": ["expect@29.7.0", "", { "dependencies": { "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", "jest-matcher-utils": "^29.7.0", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0" } }, "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw=="], + "css-in-js-utils": ["css-in-js-utils@3.1.0", "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz", { "dependencies": { "hyphenate-style-name": "^1.0.3" } }, "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A=="], - "expo": ["expo@54.0.21", "", { "dependencies": { "@babel/runtime": "^7.20.0", "@expo/cli": "54.0.14", "@expo/config": "~12.0.10", "@expo/config-plugins": "~54.0.2", "@expo/devtools": "0.1.7", "@expo/fingerprint": "0.15.2", "@expo/metro": "~54.1.0", "@expo/metro-config": "54.0.8", "@expo/vector-icons": "^15.0.3", "@ungap/structured-clone": "^1.3.0", "babel-preset-expo": "~54.0.6", "expo-asset": "~12.0.9", "expo-constants": "~18.0.10", "expo-file-system": "~19.0.17", "expo-font": "~14.0.9", "expo-keep-awake": "~15.0.7", "expo-modules-autolinking": "3.0.19", "expo-modules-core": "3.0.23", "pretty-format": "^29.7.0", "react-refresh": "^0.14.2", "whatwg-url-without-unicode": "8.0.0-3" }, "peerDependencies": { "@expo/dom-webview": "*", "@expo/metro-runtime": "*", "react": "*", "react-native": "*", "react-native-webview": "*" }, "optionalPeers": ["@expo/dom-webview", "@expo/metro-runtime", "react-native-webview"], "bin": { "expo": "bin/cli", "fingerprint": "bin/fingerprint", "expo-modules-autolinking": "bin/autolinking" } }, "sha512-I3kzMNW/43a71pt6hT0Zebd2zAPIMMeucUDDEdfUKYrzzTRwISZfVAv0dp8GWKHHDjZsy+FjE4RQCMdyKmiDeQ=="], + "cssom": ["cssom@0.5.0", "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz", {}, "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw=="], - "expo-asset": ["expo-asset@12.0.9", "", { "dependencies": { "@expo/image-utils": "^0.8.7", "expo-constants": "~18.0.9" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-vrdRoyhGhBmd0nJcssTSk1Ypx3Mbn/eXaaBCQVkL0MJ8IOZpAObAjfD5CTy8+8RofcHEQdh3wwZVCs7crvfOeg=="], + "cssstyle": ["cssstyle@2.3.0", "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz", { "dependencies": { "cssom": "~0.3.6" } }, "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A=="], - "expo-atlas": ["expo-atlas@0.4.3", "", { "dependencies": { "@expo/server": "^0.5.0", "arg": "^5.0.2", "chalk": "^4.1.2", "compression": "^1.7.4", "connect": "^3.7.0", "express": "^4.19.2", "freeport-async": "^2.0.0", "getenv": "^2.0.0", "morgan": "^1.10.0", "open": "^8.4.2", "serve-static": "^1.15.0", "stream-json": "^1.8.0" }, "peerDependencies": { "expo": "*" }, "bin": { "expo-atlas": "build/src/cli/bin.js" } }, "sha512-nN2bouxFvMsqZqLl0ka+eI9Ofida0PcuoE4v+7fHlgyp95X2cCL8Acf0nRKXmmIBEYazdw0d7BAOZfC0b41oxA=="], + "csstype": ["csstype@3.2.3", "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], - "expo-constants": ["expo-constants@18.0.10", "", { "dependencies": { "@expo/config": "~12.0.10", "@expo/env": "~2.0.7" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-Rhtv+X974k0Cahmvx6p7ER5+pNhBC0XbP1lRviL2J1Xl4sT2FBaIuIxF/0I0CbhOsySf0ksqc5caFweAy9Ewiw=="], + "data-urls": ["data-urls@3.0.2", "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz", { "dependencies": { "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", "whatwg-url": "^11.0.0" } }, "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ=="], - "expo-file-system": ["expo-file-system@19.0.17", "", { "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-WwaS01SUFrxBnExn87pg0sCTJjZpf2KAOzfImG0o8yhkU7fbYpihpl/oocXBEsNbj58a8hVt1Y4CVV5c1tzu/g=="], + "data-view-buffer": ["data-view-buffer@1.0.2", "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ=="], - "expo-font": ["expo-font@14.0.9", "", { "dependencies": { "fontfaceobserver": "^2.1.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-xCoQbR/36qqB6tew/LQ6GWICpaBmHLhg/Loix5Rku/0ZtNaXMJv08M9o1AcrdiGTn/Xf/BnLu6DgS45cWQEHZg=="], + "data-view-byte-length": ["data-view-byte-length@1.0.2", "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ=="], - "expo-keep-awake": ["expo-keep-awake@15.0.7", "", { "peerDependencies": { "expo": "*", "react": "*" } }, "sha512-CgBNcWVPnrIVII5G54QDqoE125l+zmqR4HR8q+MQaCfHet+dYpS5vX5zii/RMayzGN4jPgA4XYIQ28ePKFjHoA=="], + "data-view-byte-offset": ["data-view-byte-offset@1.0.1", "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" } }, "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ=="], - "expo-linking": ["expo-linking@8.0.8", "", { "dependencies": { "expo-constants": "~18.0.8", "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-MyeMcbFDKhXh4sDD1EHwd0uxFQNAc6VCrwBkNvvvufUsTYFq3glTA9Y8a+x78CPpjNqwNAamu74yIaIz7IEJyg=="], + "debug": ["debug@4.4.3", "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], - "expo-modules-autolinking": ["expo-modules-autolinking@3.0.19", "", { "dependencies": { "@expo/spawn-async": "^1.7.2", "chalk": "^4.1.0", "commander": "^7.2.0", "glob": "^10.4.2", "require-from-string": "^2.0.2", "resolve-from": "^5.0.0" }, "bin": { "expo-modules-autolinking": "bin/expo-modules-autolinking.js" } }, "sha512-tSMYGnfZmAaN77X8iMLiaSgbCFnA7eh6s2ac09J2N2N0Rcf2RCE27jg0c0XenTMTWUcM4QvLhsNHof/WtlKqPw=="], + "decimal.js": ["decimal.js@10.6.0", "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.6.0.tgz", {}, "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg=="], - "expo-modules-core": ["expo-modules-core@3.0.23", "", { "dependencies": { "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-NYHi5LK/cdIyOjK9ZQAgfDPCOqER26cIbU3gzsce7YdnsmlNFR0qMfWOj9zAmaFBviC2kCkCOmitwk4357Td3Q=="], + "decode-uri-component": ["decode-uri-component@0.2.2", "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz", {}, "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="], - "expo-router": ["expo-router@6.0.14", "", { "dependencies": { "@expo/metro-runtime": "^6.1.2", "@expo/schema-utils": "^0.1.7", "@radix-ui/react-slot": "1.2.0", "@radix-ui/react-tabs": "^1.1.12", "@react-navigation/bottom-tabs": "^7.4.0", "@react-navigation/native": "^7.1.8", "@react-navigation/native-stack": "^7.3.16", "client-only": "^0.0.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "expo-server": "^1.0.3", "fast-deep-equal": "^3.1.3", "invariant": "^2.2.4", "nanoid": "^3.3.8", "query-string": "^7.1.3", "react-fast-compare": "^3.2.2", "react-native-is-edge-to-edge": "^1.1.6", "semver": "~7.6.3", "server-only": "^0.0.1", "sf-symbols-typescript": "^2.1.0", "shallowequal": "^1.1.0", "use-latest-callback": "^0.2.1", "vaul": "^1.1.2" }, "peerDependencies": { "@react-navigation/drawer": "^7.5.0", "@testing-library/react-native": ">= 12.0.0", "expo": "*", "expo-constants": "^18.0.10", "expo-linking": "^8.0.8", "react": "*", "react-dom": "*", "react-native": "*", "react-native-gesture-handler": "*", "react-native-reanimated": "*", "react-native-safe-area-context": ">= 5.4.0", "react-native-screens": "*", "react-native-web": "*", "react-server-dom-webpack": ">= 19.0.0" }, "optionalPeers": ["@react-navigation/drawer", "@testing-library/react-native", "react-dom", "react-native-gesture-handler", "react-native-reanimated", "react-native-web", "react-server-dom-webpack"] }, "sha512-vizLO4SgnMEL+PPs2dXr+etEOuksjue7yUQBCtfCEdqoDkQlB0r35zI7rS34Wt53sxKWSlM2p+038qQEpxtiFw=="], + "dedent": ["dedent@1.7.0", "https://registry.yarnpkg.com/dedent/-/dedent-1.7.0.tgz", { "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, "optionalPeers": ["babel-plugin-macros"] }, "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ=="], - "expo-server": ["expo-server@1.0.3", "", {}, "sha512-SOwdzM/BFAL+vTFlUDJG6ljhyk6TyTl+LRK3ubGmN+Pf18ENRqKj37U8krc5vH926sAsB3IFcE8kJEYf4dG7PA=="], + "deep-is": ["deep-is@0.1.4", "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], - "expo-sqlite": ["expo-sqlite@16.0.8", "", { "dependencies": { "await-lock": "^2.2.2" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-xw776gFgH4ZM5oGs0spSLNmkHO/kJ/EuRXGzE4/22yII9EmG84vm7aM/M2aEb8taBTqwhSGYUpkwkRT5YFFmsg=="], + "deepmerge": ["deepmerge@4.3.1", "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], - "exponential-backoff": ["exponential-backoff@3.1.3", "", {}, "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA=="], + "defaults": ["defaults@1.0.4", "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz", { "dependencies": { "clone": "^1.0.2" } }, "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A=="], - "express": ["express@4.21.2", "", { "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.19.0", "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" } }, "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA=="], + "define-data-property": ["define-data-property@1.1.4", "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="], - "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], + "define-lazy-prop": ["define-lazy-prop@2.0.0", "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", {}, "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="], - "fast-diff": ["fast-diff@1.3.0", "", {}, "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="], + "define-properties": ["define-properties@1.2.1", "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="], - "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], + "delayed-stream": ["delayed-stream@1.0.0", "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="], - "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], + "depd": ["depd@2.0.0", "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="], - "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], + "destroy": ["destroy@1.2.0", "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz", {}, "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="], - "fast-uri": ["fast-uri@3.1.0", "", {}, "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA=="], + "detect-libc": ["detect-libc@2.1.2", "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], - "fastq": ["fastq@1.19.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ=="], + "detect-newline": ["detect-newline@3.1.0", "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz", {}, "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA=="], - "fb-watchman": ["fb-watchman@2.0.2", "", { "dependencies": { "bser": "2.1.1" } }, "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA=="], + "detect-node-es": ["detect-node-es@1.1.0", "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz", {}, "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ=="], - "fbjs": ["fbjs@3.0.5", "", { "dependencies": { "cross-fetch": "^3.1.5", "fbjs-css-vars": "^1.0.0", "loose-envify": "^1.0.0", "object-assign": "^4.1.0", "promise": "^7.1.1", "setimmediate": "^1.0.5", "ua-parser-js": "^1.0.35" } }, "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg=="], + "diff-sequences": ["diff-sequences@29.6.3", "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz", {}, "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q=="], - "fbjs-css-vars": ["fbjs-css-vars@1.0.2", "", {}, "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="], + "dnssd-advertise": ["dnssd-advertise@1.1.3", "https://registry.yarnpkg.com/dnssd-advertise/-/dnssd-advertise-1.1.3.tgz", {}, "sha512-XENsHi3MBzWOCAXif3yZvU1Ah0l+nhJj1sjWL6TnOAYKvGiFhbTx32xHN7+wLMLUOCj7Nr0evADWG4R8JtqCDA=="], - "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + "doctrine": ["doctrine@2.1.0", "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="], - "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], + "domexception": ["domexception@4.0.0", "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz", { "dependencies": { "webidl-conversions": "^7.0.0" } }, "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw=="], - "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], + "dunder-proto": ["dunder-proto@1.0.1", "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], - "filter-obj": ["filter-obj@1.1.0", "", {}, "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ=="], + "ee-first": ["ee-first@1.1.1", "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], - "finalhandler": ["finalhandler@1.1.2", "", { "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "on-finished": "~2.3.0", "parseurl": "~1.3.3", "statuses": "~1.5.0", "unpipe": "~1.0.0" } }, "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA=="], + "electron-to-chromium": ["electron-to-chromium@1.5.242", "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.242.tgz", {}, "sha512-msZ7SYGFpXkm/iUizlMrm/FPNeYo8uSltQccLVFO3fV4RN2JWGdG7Aatztxtw3uDWp3DkupfkrosLjUnhY+iOw=="], - "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], + "emittery": ["emittery@0.13.1", "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz", {}, "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ=="], - "flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], + "emoji-regex": ["emoji-regex@8.0.0", "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - "flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="], + "encodeurl": ["encodeurl@2.0.0", "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="], - "flow-enums-runtime": ["flow-enums-runtime@0.0.6", "", {}, "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw=="], + "enhanced-resolve": ["enhanced-resolve@5.18.3", "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww=="], - "fontfaceobserver": ["fontfaceobserver@2.3.0", "", {}, "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg=="], + "entities": ["entities@6.0.1", "https://registry.yarnpkg.com/entities/-/entities-6.0.1.tgz", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], - "for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], + "error-ex": ["error-ex@1.3.4", "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz", { "dependencies": { "is-arrayish": "^0.2.1" } }, "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ=="], - "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], + "error-stack-parser": ["error-stack-parser@2.1.4", "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz", { "dependencies": { "stackframe": "^1.3.4" } }, "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ=="], - "form-data": ["form-data@4.0.4", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow=="], + "es-abstract": ["es-abstract@1.24.0", "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.24.0.tgz", { "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", "get-intrinsic": "^1.3.0", "get-proto": "^1.0.1", "get-symbol-description": "^1.1.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", "hasown": "^2.0.2", "internal-slot": "^1.1.0", "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.3", "typed-array-byte-length": "^1.0.3", "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", "which-typed-array": "^1.1.19" } }, "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg=="], - "forwarded": ["forwarded@0.2.0", "", {}, "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="], + "es-define-property": ["es-define-property@1.0.1", "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], - "fraction.js": ["fraction.js@4.3.7", "", {}, "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew=="], + "es-errors": ["es-errors@1.3.0", "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], - "freeport-async": ["freeport-async@2.0.0", "", {}, "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ=="], + "es-iterator-helpers": ["es-iterator-helpers@1.2.1", "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.6", "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.4", "safe-array-concat": "^1.1.3" } }, "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w=="], - "fresh": ["fresh@0.5.2", "", {}, "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="], + "es-module-lexer": ["es-module-lexer@1.7.0", "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="], - "fs.realpath": ["fs.realpath@1.0.0", "", {}, "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="], + "es-object-atoms": ["es-object-atoms@1.1.1", "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="], - "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="], - "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], + "es-shim-unscopables": ["es-shim-unscopables@1.1.0", "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw=="], - "function.prototype.name": ["function.prototype.name@1.1.8", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "functions-have-names": "^1.2.3", "hasown": "^2.0.2", "is-callable": "^1.2.7" } }, "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q=="], + "es-to-primitive": ["es-to-primitive@1.3.0", "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz", { "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", "is-symbol": "^1.0.4" } }, "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g=="], - "functions-have-names": ["functions-have-names@1.2.3", "", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="], + "escalade": ["escalade@3.2.0", "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], - "generator-function": ["generator-function@2.0.1", "", {}, "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g=="], + "escape-html": ["escape-html@1.0.3", "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="], - "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + "escape-string-regexp": ["escape-string-regexp@4.0.0", "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], - "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], + "escodegen": ["escodegen@2.1.0", "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz", { "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", "esutils": "^2.0.2" }, "optionalDependencies": { "source-map": "~0.6.1" }, "bin": { "esgenerate": "bin/esgenerate.js", "escodegen": "bin/escodegen.js" } }, "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w=="], - "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], + "eslint": ["eslint@9.38.0", "https://registry.yarnpkg.com/eslint/-/eslint-9.38.0.tgz", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", "@eslint/config-helpers": "^0.4.1", "@eslint/core": "^0.16.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.38.0", "@eslint/plugin-kit": "^0.4.0", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw=="], - "get-nonce": ["get-nonce@1.0.1", "", {}, "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q=="], + "eslint-config-expo": ["eslint-config-expo@55.0.0", "https://registry.yarnpkg.com/eslint-config-expo/-/eslint-config-expo-55.0.0.tgz", { "dependencies": { "@typescript-eslint/eslint-plugin": "^8.18.2", "@typescript-eslint/parser": "^8.18.2", "eslint-import-resolver-typescript": "^3.6.3", "eslint-plugin-expo": "^1.0.0", "eslint-plugin-import": "^2.30.0", "eslint-plugin-react": "^7.37.3", "eslint-plugin-react-hooks": "^5.1.0", "globals": "^16.0.0" }, "peerDependencies": { "eslint": ">=8.10" } }, "sha512-YvhaKrp1g7pR/qjdI12E5nw9y0DJZWgYr815vyW8wskGLsFvxATY3mtKL8zm3ZYzWj3Bvc37tRIS661TEkrv9A=="], - "get-package-type": ["get-package-type@0.1.0", "", {}, "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q=="], + "eslint-config-prettier": ["eslint-config-prettier@10.1.8", "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", { "peerDependencies": { "eslint": ">=7.0.0" }, "bin": { "eslint-config-prettier": "bin/cli.js" } }, "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w=="], - "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], + "eslint-import-resolver-node": ["eslint-import-resolver-node@0.3.9", "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", { "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", "resolve": "^1.22.4" } }, "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g=="], - "get-stream": ["get-stream@6.0.1", "", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="], + "eslint-import-resolver-typescript": ["eslint-import-resolver-typescript@3.10.1", "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", { "dependencies": { "@nolyfill/is-core-module": "1.0.39", "debug": "^4.4.0", "get-tsconfig": "^4.10.0", "is-bun-module": "^2.0.0", "stable-hash": "^0.0.5", "tinyglobby": "^0.2.13", "unrs-resolver": "^1.6.2" }, "peerDependencies": { "eslint": "*", "eslint-plugin-import": "*", "eslint-plugin-import-x": "*" }, "optionalPeers": ["eslint-plugin-import", "eslint-plugin-import-x"] }, "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ=="], - "get-symbol-description": ["get-symbol-description@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6" } }, "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg=="], + "eslint-module-utils": ["eslint-module-utils@2.12.1", "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", { "dependencies": { "debug": "^3.2.7" } }, "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw=="], - "get-tsconfig": ["get-tsconfig@4.13.0", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ=="], + "eslint-plugin-expo": ["eslint-plugin-expo@1.0.0", "https://registry.yarnpkg.com/eslint-plugin-expo/-/eslint-plugin-expo-1.0.0.tgz", { "dependencies": { "@typescript-eslint/types": "^8.29.1", "@typescript-eslint/utils": "^8.29.1", "eslint": "^9.24.0" } }, "sha512-qLtunR+cNFtC+jwYCBia5c/PJurMjSLMOV78KrEOyQK02ohZapU4dCFFnS2hfrJuw0zxfsjVkjqg3QBqi933QA=="], - "getenv": ["getenv@2.0.0", "", {}, "sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ=="], + "eslint-plugin-import": ["eslint-plugin-import@2.32.0", "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", { "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", "array.prototype.findlastindex": "^1.2.6", "array.prototype.flat": "^1.3.3", "array.prototype.flatmap": "^1.3.3", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.12.1", "hasown": "^2.0.2", "is-core-module": "^2.16.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "object.groupby": "^1.0.3", "object.values": "^1.2.1", "semver": "^6.3.1", "string.prototype.trimend": "^1.0.9", "tsconfig-paths": "^3.15.0" }, "peerDependencies": { "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA=="], - "glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], + "eslint-plugin-prettier": ["eslint-plugin-prettier@5.5.4", "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz", { "dependencies": { "prettier-linter-helpers": "^1.0.0", "synckit": "^0.11.7" }, "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" }, "optionalPeers": ["@types/eslint", "eslint-config-prettier"] }, "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg=="], - "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], + "eslint-plugin-react": ["eslint-plugin-react@7.37.5", "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", { "dependencies": { "array-includes": "^3.1.8", "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.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.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" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA=="], - "glob-to-regexp": ["glob-to-regexp@0.4.1", "", {}, "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="], + "eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@5.2.0", "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", { "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg=="], - "global-dirs": ["global-dirs@0.1.1", "", { "dependencies": { "ini": "^1.3.4" } }, "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg=="], + "eslint-scope": ["eslint-scope@8.4.0", "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.4.0.tgz", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], - "globals": ["globals@16.4.0", "", {}, "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw=="], + "eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="], - "globalthis": ["globalthis@1.0.4", "", { "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" } }, "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="], + "espree": ["espree@10.4.0", "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="], - "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], + "esprima": ["esprima@4.0.1", "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="], - "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + "esquery": ["esquery@1.6.0", "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="], - "graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="], + "esrecurse": ["esrecurse@4.3.0", "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], - "has-bigints": ["has-bigints@1.1.0", "", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="], + "estraverse": ["estraverse@5.3.0", "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], - "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + "esutils": ["esutils@2.0.3", "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], - "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], + "etag": ["etag@1.8.1", "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz", {}, "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="], - "has-proto": ["has-proto@1.2.0", "", { "dependencies": { "dunder-proto": "^1.0.0" } }, "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ=="], + "event-target-shim": ["event-target-shim@5.0.1", "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz", {}, "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="], - "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], + "events": ["events@3.3.0", "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz", {}, "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="], - "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], + "execa": ["execa@5.1.1", "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz", { "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="], - "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], + "exit": ["exit@0.1.2", "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz", {}, "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ=="], - "hermes-estree": ["hermes-estree@0.29.1", "", {}, "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ=="], + "expect": ["expect@29.7.0", "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz", { "dependencies": { "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", "jest-matcher-utils": "^29.7.0", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0" } }, "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw=="], - "hermes-parser": ["hermes-parser@0.29.1", "", { "dependencies": { "hermes-estree": "0.29.1" } }, "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA=="], + "expo": ["expo@55.0.0", "https://registry.yarnpkg.com/expo/-/expo-55.0.0.tgz", { "dependencies": { "@babel/runtime": "^7.20.0", "@expo/cli": "55.0.11", "@expo/config": "~55.0.8", "@expo/config-plugins": "~55.0.6", "@expo/devtools": "55.0.2", "@expo/fingerprint": "0.16.5", "@expo/local-build-cache-provider": "55.0.6", "@expo/log-box": "55.0.7", "@expo/metro": "~54.2.0", "@expo/metro-config": "55.0.8", "@expo/vector-icons": "^15.0.2", "@ungap/structured-clone": "^1.3.0", "babel-preset-expo": "~55.0.7", "expo-asset": "~55.0.7", "expo-constants": "~55.0.7", "expo-file-system": "~55.0.9", "expo-font": "~55.0.4", "expo-keep-awake": "~55.0.4", "expo-modules-autolinking": "55.0.8", "expo-modules-core": "55.0.11", "pretty-format": "^29.7.0", "react-refresh": "^0.14.2", "whatwg-url-minimum": "^0.1.1" }, "peerDependencies": { "@expo/dom-webview": "*", "@expo/metro-runtime": "*", "react": "*", "react-native": "*", "react-native-webview": "*" }, "optionalPeers": ["@expo/dom-webview", "@expo/metro-runtime", "react-native-webview"], "bin": { "expo": "bin/cli", "expo-modules-autolinking": "bin/autolinking", "fingerprint": "bin/fingerprint" } }, "sha512-7/vIhW/gEa23r+BWMe81e2HnNFOp/gNhkkP7sFOoRhG7llcl85GJXgyxmvaapTTlzXY5u5RWqTKyXH5v6YD0QQ=="], - "hoist-non-react-statics": ["hoist-non-react-statics@3.3.2", "", { "dependencies": { "react-is": "^16.7.0" } }, "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw=="], + "expo-asset": ["expo-asset@55.0.7", "https://registry.yarnpkg.com/expo-asset/-/expo-asset-55.0.7.tgz", { "dependencies": { "@expo/image-utils": "^0.8.12", "expo-constants": "~55.0.7" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-MnL43vmzfk5yXsY4Y7Pbq1c4iM1Xo8Q/cRITfFiVQYkMDgcQ7OoBontHwJhAJCgu0IHQJz/2NsQT6iQ/oIy/kg=="], - "hosted-git-info": ["hosted-git-info@7.0.2", "", { "dependencies": { "lru-cache": "^10.0.1" } }, "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w=="], + "expo-atlas": ["expo-atlas@0.4.3", "https://registry.yarnpkg.com/expo-atlas/-/expo-atlas-0.4.3.tgz", { "dependencies": { "@expo/server": "^0.5.0", "arg": "^5.0.2", "chalk": "^4.1.2", "compression": "^1.7.4", "connect": "^3.7.0", "express": "^4.19.2", "freeport-async": "^2.0.0", "getenv": "^2.0.0", "morgan": "^1.10.0", "open": "^8.4.2", "serve-static": "^1.15.0", "stream-json": "^1.8.0" }, "peerDependencies": { "expo": "*" }, "bin": { "expo-atlas": "build/src/cli/bin.js" } }, "sha512-nN2bouxFvMsqZqLl0ka+eI9Ofida0PcuoE4v+7fHlgyp95X2cCL8Acf0nRKXmmIBEYazdw0d7BAOZfC0b41oxA=="], - "html-encoding-sniffer": ["html-encoding-sniffer@3.0.0", "", { "dependencies": { "whatwg-encoding": "^2.0.0" } }, "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA=="], + "expo-constants": ["expo-constants@55.0.7", "https://registry.yarnpkg.com/expo-constants/-/expo-constants-55.0.7.tgz", { "dependencies": { "@expo/config": "~55.0.8", "@expo/env": "~2.1.1" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-kdcO4TsQRRqt0USvjaY5vgQMO9H52K3kBZ/ejC7F6rz70mv08GoowrZ1CYOr5O4JpPDRlIpQfZJUucaS/c+KWQ=="], - "html-escaper": ["html-escaper@2.0.2", "", {}, "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="], + "expo-file-system": ["expo-file-system@55.0.9", "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-55.0.9.tgz", { "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-jJ0BMGSBk0YgyxG9GB71qLW+jSWqjWkRnOhSGn9ry98XL045faNKPJ7rq94ENmNjt98QLEm5I+NEvBxt/EYAdQ=="], - "http-errors": ["http-errors@2.0.0", "", { "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" } }, "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="], + "expo-font": ["expo-font@55.0.4", "https://registry.yarnpkg.com/expo-font/-/expo-font-55.0.4.tgz", { "dependencies": { "fontfaceobserver": "^2.1.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-ZKeGTFffPygvY5dM/9ATM2p7QDkhsaHopH7wFAWgP2lKzqUMS9B/RxCvw5CaObr9Ro7x9YptyeRKX2HmgmMfrg=="], - "http-proxy-agent": ["http-proxy-agent@5.0.0", "", { "dependencies": { "@tootallnate/once": "2", "agent-base": "6", "debug": "4" } }, "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w=="], + "expo-glass-effect": ["expo-glass-effect@55.0.7", "https://registry.yarnpkg.com/expo-glass-effect/-/expo-glass-effect-55.0.7.tgz", { "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-G7Q9rUaEY0YC36fGE6irDljfsfvzz/y49zagARAKvSJSyQMUSrhR25WOr5LK5Cw7gQNNBEy9U1ctlr7yCay/fQ=="], - "https-proxy-agent": ["https-proxy-agent@5.0.1", "", { "dependencies": { "agent-base": "6", "debug": "4" } }, "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA=="], + "expo-image": ["expo-image@55.0.5", "https://registry.yarnpkg.com/expo-image/-/expo-image-55.0.5.tgz", { "dependencies": { "sf-symbols-typescript": "^2.2.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*", "react-native-web": "*" }, "optionalPeers": ["react-native-web"] }, "sha512-oejmMwy5O9EtC8po9NxkcurWHqND6p8xuJaj9FGNo8NXLt9e+w3cKWx7HuPzkH5y3qFXQ9Od+z+I/wxEci36fw=="], - "human-signals": ["human-signals@2.1.0", "", {}, "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="], + "expo-keep-awake": ["expo-keep-awake@55.0.4", "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-55.0.4.tgz", { "peerDependencies": { "expo": "*", "react": "*" } }, "sha512-vwfdMtMS5Fxaon8gC0AiE70SpxTsHJ+rjeoVJl8kdfdbxczF7OIaVmfjFJ5Gfigd/WZiLqxhfZk34VAkXF4PNg=="], - "hyphenate-style-name": ["hyphenate-style-name@1.1.0", "", {}, "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw=="], + "expo-linking": ["expo-linking@55.0.7", "https://registry.yarnpkg.com/expo-linking/-/expo-linking-55.0.7.tgz", { "dependencies": { "expo-constants": "~55.0.7", "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-MiGCedere1vzQTEi2aGrkzd7eh/rPSz4w6F3GMBuAJzYl+/0VhIuyhozpEGrueyDIXWfzaUVOcn3SfxVi+kwQQ=="], - "iconv-lite": ["iconv-lite@0.4.24", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3" } }, "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="], + "expo-modules-autolinking": ["expo-modules-autolinking@55.0.8", "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-55.0.8.tgz", { "dependencies": { "@expo/require-utils": "^55.0.2", "@expo/spawn-async": "^1.7.2", "chalk": "^4.1.0", "commander": "^7.2.0" }, "bin": { "expo-modules-autolinking": "bin/expo-modules-autolinking.js" } }, "sha512-nrWB1pkNp7bR8ECUTgYUiJ2Pyh6AvxCBXZ+lyPlfl1TzEIGhwU1Yqr+d78eJDueXaW+9zKeE0HqrTZoLS3ve4A=="], - "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], + "expo-modules-core": ["expo-modules-core@55.0.11", "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-55.0.11.tgz", { "dependencies": { "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-dD/Ea298aDX/Dk81XiD+VFMFU9tjcARgzfcvbFPvTvbGcimpM2sqNK3+ZiTweXYEgcx63CKKdo9pBZuPUypDXw=="], - "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + "expo-router": ["expo-router@55.0.0", "https://registry.yarnpkg.com/expo-router/-/expo-router-55.0.0.tgz", { "dependencies": { "@expo/metro-runtime": "^55.0.6", "@expo/schema-utils": "^55.0.2", "@radix-ui/react-slot": "1.2.0", "@radix-ui/react-tabs": "^1.1.12", "@react-navigation/bottom-tabs": "7.10.1", "@react-navigation/native": "7.1.28", "@react-navigation/native-stack": "7.10.1", "client-only": "^0.0.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "expo-glass-effect": "^55.0.7", "expo-image": "^55.0.5", "expo-server": "^55.0.5", "expo-symbols": "^55.0.4", "fast-deep-equal": "^3.1.3", "invariant": "^2.2.4", "nanoid": "^3.3.8", "query-string": "^7.1.3", "react-fast-compare": "^3.2.2", "react-native-is-edge-to-edge": "^1.2.1", "react-native-screens": "~4.24.0", "semver": "~7.6.3", "server-only": "^0.0.1", "sf-symbols-typescript": "^2.1.0", "shallowequal": "^1.1.0", "use-latest-callback": "^0.2.1", "vaul": "^1.1.2" }, "peerDependencies": { "@expo/log-box": "55.0.7", "@react-navigation/drawer": "^7.7.2", "@testing-library/react-native": ">= 13.2.0", "expo": "*", "expo-constants": "^55.0.7", "expo-linking": "^55.0.7", "react": "*", "react-dom": "*", "react-native": "*", "react-native-gesture-handler": "*", "react-native-reanimated": "*", "react-native-safe-area-context": ">= 5.4.0", "react-native-web": "*", "react-server-dom-webpack": "~19.0.4 || ~19.1.5 || ~19.2.4" }, "optionalPeers": ["@react-navigation/drawer", "@testing-library/react-native", "react-dom", "react-native-gesture-handler", "react-native-reanimated", "react-native-web", "react-server-dom-webpack"] }, "sha512-NA2uNVNJVOeOVdmUCc3hiidWjnuQPWfXs6Rv6yLzNQZWrkQfLDbyUTBt25NWLq4eNFmtdIWHSMx3oXWywbFUmg=="], - "image-size": ["image-size@1.2.1", "", { "dependencies": { "queue": "6.0.2" }, "bin": { "image-size": "bin/image-size.js" } }, "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw=="], + "expo-server": ["expo-server@55.0.5", "https://registry.yarnpkg.com/expo-server/-/expo-server-55.0.5.tgz", {}, "sha512-cfoh1OwBjHPCwYD11wep12l5WGkVEmRbGSZEbE4u+08k1TkOyYhrWyI2o/iMcUMMT8u1sKsymHKsrC8Mv82V7A=="], - "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], + "expo-sqlite": ["expo-sqlite@55.0.9", "https://registry.yarnpkg.com/expo-sqlite/-/expo-sqlite-55.0.9.tgz", { "dependencies": { "await-lock": "^2.2.2" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-Wkq2z+deqxLDJdgzS5hEat5yJWY0uIbe5LJ6d5VDbe1xDN+bYY4Z/d64OAMG0Loux0Qd7Us7lJVbxRY1ZYLkqg=="], - "import-local": ["import-local@3.2.0", "", { "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" }, "bin": { "import-local-fixture": "fixtures/cli.js" } }, "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA=="], + "expo-symbols": ["expo-symbols@55.0.4", "https://registry.yarnpkg.com/expo-symbols/-/expo-symbols-55.0.4.tgz", { "dependencies": { "@expo-google-fonts/material-symbols": "^0.4.1", "sf-symbols-typescript": "^2.0.0" }, "peerDependencies": { "expo": "*", "expo-font": "*", "react": "*", "react-native": "*" } }, "sha512-w9rxPlpta3gks0G4Tvpq/qQdiMp4R/XOeOzyjSruYUQakmsWbQBKA+Sd/fCVXs7qFJSvVTOGXiOhZm+YJRYZVg=="], - "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], + "exponential-backoff": ["exponential-backoff@3.1.3", "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.3.tgz", {}, "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA=="], - "indent-string": ["indent-string@4.0.0", "", {}, "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="], + "express": ["express@4.21.2", "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz", { "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.19.0", "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" } }, "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA=="], - "inflight": ["inflight@1.0.6", "", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="], + "fast-deep-equal": ["fast-deep-equal@3.1.3", "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], - "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], + "fast-diff": ["fast-diff@1.3.0", "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz", {}, "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="], - "ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="], + "fast-glob": ["fast-glob@3.3.3", "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], - "inline-style-prefixer": ["inline-style-prefixer@7.0.1", "", { "dependencies": { "css-in-js-utils": "^3.1.0" } }, "sha512-lhYo5qNTQp3EvSSp3sRvXMbVQTLrvGV6DycRMJ5dm2BLMiJ30wpXKdDdgX+GmJZ5uQMucwRKHamXSst3Sj/Giw=="], + "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], - "internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], + "fast-levenshtein": ["fast-levenshtein@2.0.6", "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], - "invariant": ["invariant@2.2.4", "", { "dependencies": { "loose-envify": "^1.0.0" } }, "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA=="], + "fast-uri": ["fast-uri@3.1.0", "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz", {}, "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA=="], - "ipaddr.js": ["ipaddr.js@1.9.1", "", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="], + "fastq": ["fastq@1.19.1", "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ=="], - "is-array-buffer": ["is-array-buffer@3.0.5", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="], + "fb-dotslash": ["fb-dotslash@0.5.8", "https://registry.yarnpkg.com/fb-dotslash/-/fb-dotslash-0.5.8.tgz", { "bin": { "dotslash": "bin/dotslash" } }, "sha512-XHYLKk9J4BupDxi9bSEhkfss0m+Vr9ChTrjhf9l2iw3jB5C7BnY4GVPoMcqbrTutsKJso6yj2nAB6BI/F2oZaA=="], - "is-arrayish": ["is-arrayish@0.2.1", "", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="], + "fb-watchman": ["fb-watchman@2.0.2", "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz", { "dependencies": { "bser": "2.1.1" } }, "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA=="], - "is-async-function": ["is-async-function@2.1.1", "", { "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ=="], + "fbjs": ["fbjs@3.0.5", "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.5.tgz", { "dependencies": { "cross-fetch": "^3.1.5", "fbjs-css-vars": "^1.0.0", "loose-envify": "^1.0.0", "object-assign": "^4.1.0", "promise": "^7.1.1", "setimmediate": "^1.0.5", "ua-parser-js": "^1.0.35" } }, "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg=="], - "is-bigint": ["is-bigint@1.1.0", "", { "dependencies": { "has-bigints": "^1.0.2" } }, "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ=="], + "fbjs-css-vars": ["fbjs-css-vars@1.0.2", "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", {}, "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="], - "is-boolean-object": ["is-boolean-object@1.2.2", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A=="], + "fdir": ["fdir@6.5.0", "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], - "is-bun-module": ["is-bun-module@2.0.0", "", { "dependencies": { "semver": "^7.7.1" } }, "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ=="], + "fetch-nodeshim": ["fetch-nodeshim@0.4.8", "https://registry.yarnpkg.com/fetch-nodeshim/-/fetch-nodeshim-0.4.8.tgz", {}, "sha512-YW5vG33rabBq6JpYosLNoXoaMN69/WH26MeeX2hkDVjN6UlvRGq3Wkazl9H0kisH95aMu/HtHL64JUvv/+Nv/g=="], - "is-callable": ["is-callable@1.2.7", "", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="], + "file-entry-cache": ["file-entry-cache@8.0.0", "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], - "is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="], + "fill-range": ["fill-range@7.1.1", "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], - "is-data-view": ["is-data-view@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" } }, "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw=="], + "filter-obj": ["filter-obj@1.1.0", "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz", {}, "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ=="], - "is-date-object": ["is-date-object@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="], + "finalhandler": ["finalhandler@1.1.2", "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz", { "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "on-finished": "~2.3.0", "parseurl": "~1.3.3", "statuses": "~1.5.0", "unpipe": "~1.0.0" } }, "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA=="], - "is-docker": ["is-docker@2.2.1", "", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="], + "find-up": ["find-up@5.0.0", "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], - "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + "flat-cache": ["flat-cache@4.0.1", "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], - "is-finalizationregistry": ["is-finalizationregistry@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg=="], + "flatted": ["flatted@3.3.3", "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="], - "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + "flow-enums-runtime": ["flow-enums-runtime@0.0.6", "https://registry.yarnpkg.com/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz", {}, "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw=="], - "is-generator-fn": ["is-generator-fn@2.1.0", "", {}, "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ=="], + "fontfaceobserver": ["fontfaceobserver@2.3.0", "https://registry.yarnpkg.com/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz", {}, "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg=="], - "is-generator-function": ["is-generator-function@1.1.2", "", { "dependencies": { "call-bound": "^1.0.4", "generator-function": "^2.0.0", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA=="], + "for-each": ["for-each@0.3.5", "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], - "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + "form-data": ["form-data@4.0.4", "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow=="], - "is-map": ["is-map@2.0.3", "", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="], + "forwarded": ["forwarded@0.2.0", "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz", {}, "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="], - "is-negative-zero": ["is-negative-zero@2.0.3", "", {}, "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw=="], + "fraction.js": ["fraction.js@4.3.7", "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz", {}, "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew=="], - "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], + "freeport-async": ["freeport-async@2.0.0", "https://registry.yarnpkg.com/freeport-async/-/freeport-async-2.0.0.tgz", {}, "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ=="], - "is-number-object": ["is-number-object@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw=="], + "fresh": ["fresh@0.5.2", "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz", {}, "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="], - "is-potential-custom-element-name": ["is-potential-custom-element-name@1.0.1", "", {}, "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="], + "fs.realpath": ["fs.realpath@1.0.0", "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz", {}, "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="], - "is-regex": ["is-regex@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="], + "fsevents": ["fsevents@2.3.3", "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], - "is-set": ["is-set@2.0.3", "", {}, "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg=="], + "function-bind": ["function-bind@1.1.2", "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], - "is-shared-array-buffer": ["is-shared-array-buffer@1.0.4", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A=="], + "function.prototype.name": ["function.prototype.name@1.1.8", "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "functions-have-names": "^1.2.3", "hasown": "^2.0.2", "is-callable": "^1.2.7" } }, "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q=="], - "is-stream": ["is-stream@2.0.1", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="], + "functions-have-names": ["functions-have-names@1.2.3", "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="], - "is-string": ["is-string@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA=="], + "generator-function": ["generator-function@2.0.1", "https://registry.yarnpkg.com/generator-function/-/generator-function-2.0.1.tgz", {}, "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g=="], - "is-symbol": ["is-symbol@1.1.1", "", { "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", "safe-regex-test": "^1.1.0" } }, "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w=="], + "gensync": ["gensync@1.0.0-beta.2", "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], - "is-typed-array": ["is-typed-array@1.1.15", "", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="], + "get-caller-file": ["get-caller-file@2.0.5", "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], - "is-weakmap": ["is-weakmap@2.0.2", "", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="], + "get-intrinsic": ["get-intrinsic@1.3.0", "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], - "is-weakref": ["is-weakref@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew=="], + "get-nonce": ["get-nonce@1.0.1", "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz", {}, "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q=="], - "is-weakset": ["is-weakset@2.0.4", "", { "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ=="], + "get-package-type": ["get-package-type@0.1.0", "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz", {}, "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q=="], - "is-wsl": ["is-wsl@2.2.0", "", { "dependencies": { "is-docker": "^2.0.0" } }, "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="], + "get-proto": ["get-proto@1.0.1", "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], - "isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], + "get-stream": ["get-stream@6.0.1", "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="], - "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + "get-symbol-description": ["get-symbol-description@1.1.0", "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6" } }, "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg=="], - "istanbul-lib-coverage": ["istanbul-lib-coverage@3.2.2", "", {}, "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg=="], + "get-tsconfig": ["get-tsconfig@4.13.0", "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.13.0.tgz", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ=="], - "istanbul-lib-instrument": ["istanbul-lib-instrument@6.0.3", "", { "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", "semver": "^7.5.4" } }, "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q=="], + "getenv": ["getenv@2.0.0", "https://registry.yarnpkg.com/getenv/-/getenv-2.0.0.tgz", {}, "sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ=="], - "istanbul-lib-report": ["istanbul-lib-report@3.0.1", "", { "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", "supports-color": "^7.1.0" } }, "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw=="], + "glob": ["glob@7.2.3", "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], - "istanbul-lib-source-maps": ["istanbul-lib-source-maps@4.0.1", "", { "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" } }, "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw=="], + "glob-parent": ["glob-parent@6.0.2", "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], - "istanbul-reports": ["istanbul-reports@3.2.0", "", { "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA=="], + "glob-to-regexp": ["glob-to-regexp@0.4.1", "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", {}, "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="], - "iterator.prototype": ["iterator.prototype@1.1.5", "", { "dependencies": { "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "get-proto": "^1.0.0", "has-symbols": "^1.1.0", "set-function-name": "^2.0.2" } }, "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g=="], + "globals": ["globals@16.4.0", "https://registry.yarnpkg.com/globals/-/globals-16.4.0.tgz", {}, "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw=="], - "jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], + "globalthis": ["globalthis@1.0.4", "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz", { "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" } }, "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="], - "jest": ["jest@29.7.0", "", { "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", "import-local": "^3.0.2", "jest-cli": "^29.7.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"], "bin": { "jest": "bin/jest.js" } }, "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw=="], + "gopd": ["gopd@1.2.0", "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], - "jest-changed-files": ["jest-changed-files@29.7.0", "", { "dependencies": { "execa": "^5.0.0", "jest-util": "^29.7.0", "p-limit": "^3.1.0" } }, "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w=="], + "graceful-fs": ["graceful-fs@4.2.11", "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], - "jest-circus": ["jest-circus@29.7.0", "", { "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", "jest-each": "^29.7.0", "jest-matcher-utils": "^29.7.0", "jest-message-util": "^29.7.0", "jest-runtime": "^29.7.0", "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", "p-limit": "^3.1.0", "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw=="], + "graphemer": ["graphemer@1.4.0", "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="], - "jest-cli": ["jest-cli@29.7.0", "", { "dependencies": { "@jest/core": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "chalk": "^4.0.0", "create-jest": "^29.7.0", "exit": "^0.1.2", "import-local": "^3.0.2", "jest-config": "^29.7.0", "jest-util": "^29.7.0", "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"], "bin": { "jest": "bin/jest.js" } }, "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg=="], + "has-bigints": ["has-bigints@1.1.0", "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.1.0.tgz", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="], - "jest-config": ["jest-config@29.7.0", "", { "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^29.7.0", "@jest/types": "^29.6.3", "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", "jest-circus": "^29.7.0", "jest-environment-node": "^29.7.0", "jest-get-type": "^29.6.3", "jest-regex-util": "^29.6.3", "jest-resolve": "^29.7.0", "jest-runner": "^29.7.0", "jest-util": "^29.7.0", "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "peerDependencies": { "@types/node": "*", "ts-node": ">=9.0.0" }, "optionalPeers": ["@types/node", "ts-node"] }, "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ=="], + "has-flag": ["has-flag@4.0.0", "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], - "jest-diff": ["jest-diff@30.2.0", "", { "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.1.0", "chalk": "^4.1.2", "pretty-format": "30.2.0" } }, "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A=="], + "has-property-descriptors": ["has-property-descriptors@1.0.2", "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], - "jest-docblock": ["jest-docblock@29.7.0", "", { "dependencies": { "detect-newline": "^3.0.0" } }, "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g=="], + "has-proto": ["has-proto@1.2.0", "https://registry.yarnpkg.com/has-proto/-/has-proto-1.2.0.tgz", { "dependencies": { "dunder-proto": "^1.0.0" } }, "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ=="], - "jest-each": ["jest-each@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", "jest-get-type": "^29.6.3", "jest-util": "^29.7.0", "pretty-format": "^29.7.0" } }, "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ=="], + "has-symbols": ["has-symbols@1.1.0", "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], - "jest-environment-jsdom": ["jest-environment-jsdom@29.7.0", "", { "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/jsdom": "^20.0.0", "@types/node": "*", "jest-mock": "^29.7.0", "jest-util": "^29.7.0", "jsdom": "^20.0.0" }, "peerDependencies": { "canvas": "^2.5.0" }, "optionalPeers": ["canvas"] }, "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA=="], + "has-tostringtag": ["has-tostringtag@1.0.2", "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], - "jest-environment-node": ["jest-environment-node@29.7.0", "", { "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "jest-mock": "^29.7.0", "jest-util": "^29.7.0" } }, "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw=="], + "hasown": ["hasown@2.0.2", "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], - "jest-expo": ["jest-expo@54.0.13", "", { "dependencies": { "@expo/config": "~12.0.10", "@expo/json-file": "^10.0.7", "@jest/create-cache-key-function": "^29.2.1", "@jest/globals": "^29.2.1", "babel-jest": "^29.2.1", "jest-environment-jsdom": "^29.2.1", "jest-snapshot": "^29.2.1", "jest-watch-select-projects": "^2.0.0", "jest-watch-typeahead": "2.2.1", "json5": "^2.2.3", "lodash": "^4.17.19", "react-server-dom-webpack": "~19.0.0", "react-test-renderer": "19.1.0", "server-only": "^0.0.1", "stacktrace-js": "^2.0.2" }, "peerDependencies": { "expo": "*", "react-native": "*" }, "bin": { "jest": "bin/jest.js" } }, "sha512-V0xefV7VJ9RD6v6Jo64I8RzQCchgEWVn6ip5r+u4TlgsGau0DA8CAqzitn4ShoSKlmjmpuaMqcGxeCz1p9Cfvg=="], + "hermes-compiler": ["hermes-compiler@0.14.1", "https://registry.yarnpkg.com/hermes-compiler/-/hermes-compiler-0.14.1.tgz", {}, "sha512-+RPPQlayoZ9n6/KXKt5SFILWXCGJ/LV5d24L5smXrvTDrPS4L6dSctPczXauuvzFP3QEJbD1YO7Z3Ra4a+4IhA=="], - "jest-get-type": ["jest-get-type@29.6.3", "", {}, "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw=="], + "hermes-estree": ["hermes-estree@0.29.1", "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.29.1.tgz", {}, "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ=="], - "jest-haste-map": ["jest-haste-map@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", "jest-regex-util": "^29.6.3", "jest-util": "^29.7.0", "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.2" } }, "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA=="], + "hermes-parser": ["hermes-parser@0.29.1", "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.29.1.tgz", { "dependencies": { "hermes-estree": "0.29.1" } }, "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA=="], - "jest-leak-detector": ["jest-leak-detector@29.7.0", "", { "dependencies": { "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw=="], + "hosted-git-info": ["hosted-git-info@7.0.2", "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.2.tgz", { "dependencies": { "lru-cache": "^10.0.1" } }, "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w=="], - "jest-matcher-utils": ["jest-matcher-utils@30.2.0", "", { "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", "jest-diff": "30.2.0", "pretty-format": "30.2.0" } }, "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg=="], + "html-encoding-sniffer": ["html-encoding-sniffer@3.0.0", "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", { "dependencies": { "whatwg-encoding": "^2.0.0" } }, "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA=="], - "jest-message-util": ["jest-message-util@29.7.0", "", { "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w=="], + "html-escaper": ["html-escaper@2.0.2", "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz", {}, "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="], - "jest-mock": ["jest-mock@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "jest-util": "^29.7.0" } }, "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw=="], + "http-errors": ["http-errors@2.0.0", "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz", { "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" } }, "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="], - "jest-pnp-resolver": ["jest-pnp-resolver@1.2.3", "", { "peerDependencies": { "jest-resolve": "*" }, "optionalPeers": ["jest-resolve"] }, "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w=="], + "http-proxy-agent": ["http-proxy-agent@5.0.0", "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", { "dependencies": { "@tootallnate/once": "2", "agent-base": "6", "debug": "4" } }, "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w=="], - "jest-regex-util": ["jest-regex-util@29.6.3", "", {}, "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg=="], + "https-proxy-agent": ["https-proxy-agent@5.0.1", "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", { "dependencies": { "agent-base": "6", "debug": "4" } }, "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA=="], - "jest-resolve": ["jest-resolve@29.7.0", "", { "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", "jest-util": "^29.7.0", "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" } }, "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA=="], + "human-signals": ["human-signals@2.1.0", "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz", {}, "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="], - "jest-resolve-dependencies": ["jest-resolve-dependencies@29.7.0", "", { "dependencies": { "jest-regex-util": "^29.6.3", "jest-snapshot": "^29.7.0" } }, "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA=="], + "hyphenate-style-name": ["hyphenate-style-name@1.1.0", "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz", {}, "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw=="], - "jest-runner": ["jest-runner@29.7.0", "", { "dependencies": { "@jest/console": "^29.7.0", "@jest/environment": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", "jest-docblock": "^29.7.0", "jest-environment-node": "^29.7.0", "jest-haste-map": "^29.7.0", "jest-leak-detector": "^29.7.0", "jest-message-util": "^29.7.0", "jest-resolve": "^29.7.0", "jest-runtime": "^29.7.0", "jest-util": "^29.7.0", "jest-watcher": "^29.7.0", "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" } }, "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ=="], + "iconv-lite": ["iconv-lite@0.4.24", "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3" } }, "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="], - "jest-runtime": ["jest-runtime@29.7.0", "", { "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", "@jest/globals": "^29.7.0", "@jest/source-map": "^29.6.3", "@jest/test-result": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-message-util": "^29.7.0", "jest-mock": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-resolve": "^29.7.0", "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" } }, "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ=="], + "ignore": ["ignore@5.3.2", "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], - "jest-snapshot": ["jest-snapshot@29.7.0", "", { "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/types": "^7.3.3", "@jest/expect-utils": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", "expect": "^29.7.0", "graceful-fs": "^4.2.9", "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", "jest-matcher-utils": "^29.7.0", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0", "natural-compare": "^1.4.0", "pretty-format": "^29.7.0", "semver": "^7.5.3" } }, "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw=="], + "image-size": ["image-size@1.2.1", "https://registry.yarnpkg.com/image-size/-/image-size-1.2.1.tgz", { "dependencies": { "queue": "6.0.2" }, "bin": { "image-size": "bin/image-size.js" } }, "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw=="], - "jest-util": ["jest-util@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", "picomatch": "^2.2.3" } }, "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA=="], + "import-fresh": ["import-fresh@3.3.1", "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], - "jest-validate": ["jest-validate@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^29.6.3", "leven": "^3.1.0", "pretty-format": "^29.7.0" } }, "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw=="], + "import-local": ["import-local@3.2.0", "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz", { "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" }, "bin": { "import-local-fixture": "fixtures/cli.js" } }, "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA=="], - "jest-watch-select-projects": ["jest-watch-select-projects@2.0.0", "", { "dependencies": { "ansi-escapes": "^4.3.0", "chalk": "^3.0.0", "prompts": "^2.2.1" } }, "sha512-j00nW4dXc2NiCW6znXgFLF9g8PJ0zP25cpQ1xRro/HU2GBfZQFZD0SoXnAlaoKkIY4MlfTMkKGbNXFpvCdjl1w=="], + "imurmurhash": ["imurmurhash@0.1.4", "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], - "jest-watch-typeahead": ["jest-watch-typeahead@2.2.1", "", { "dependencies": { "ansi-escapes": "^6.0.0", "chalk": "^4.0.0", "jest-regex-util": "^29.0.0", "jest-watcher": "^29.0.0", "slash": "^5.0.0", "string-length": "^5.0.1", "strip-ansi": "^7.0.1" }, "peerDependencies": { "jest": "^27.0.0 || ^28.0.0 || ^29.0.0" } }, "sha512-jYpYmUnTzysmVnwq49TAxlmtOAwp8QIqvZyoofQFn8fiWhEDZj33ZXzg3JA4nGnzWFm1hbWf3ADpteUokvXgFA=="], + "indent-string": ["indent-string@4.0.0", "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz", {}, "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="], - "jest-watcher": ["jest-watcher@29.7.0", "", { "dependencies": { "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", "jest-util": "^29.7.0", "string-length": "^4.0.1" } }, "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g=="], + "inflight": ["inflight@1.0.6", "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="], - "jest-worker": ["jest-worker@29.7.0", "", { "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw=="], + "inherits": ["inherits@2.0.4", "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], - "jimp-compact": ["jimp-compact@0.16.1", "", {}, "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww=="], + "inline-style-prefixer": ["inline-style-prefixer@7.0.1", "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-7.0.1.tgz", { "dependencies": { "css-in-js-utils": "^3.1.0" } }, "sha512-lhYo5qNTQp3EvSSp3sRvXMbVQTLrvGV6DycRMJ5dm2BLMiJ30wpXKdDdgX+GmJZ5uQMucwRKHamXSst3Sj/Giw=="], - "jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], + "internal-slot": ["internal-slot@1.1.0", "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.1.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], - "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + "invariant": ["invariant@2.2.4", "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz", { "dependencies": { "loose-envify": "^1.0.0" } }, "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA=="], - "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], + "ipaddr.js": ["ipaddr.js@1.9.1", "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="], - "jsc-safe-url": ["jsc-safe-url@0.2.4", "", {}, "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q=="], + "is-array-buffer": ["is-array-buffer@3.0.5", "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="], - "jsdom": ["jsdom@20.0.3", "", { "dependencies": { "abab": "^2.0.6", "acorn": "^8.8.1", "acorn-globals": "^7.0.0", "cssom": "^0.5.0", "cssstyle": "^2.3.0", "data-urls": "^3.0.2", "decimal.js": "^10.4.2", "domexception": "^4.0.0", "escodegen": "^2.0.0", "form-data": "^4.0.0", "html-encoding-sniffer": "^3.0.0", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.1", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.2", "parse5": "^7.1.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^4.1.2", "w3c-xmlserializer": "^4.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^2.0.0", "whatwg-mimetype": "^3.0.0", "whatwg-url": "^11.0.0", "ws": "^8.11.0", "xml-name-validator": "^4.0.0" }, "peerDependencies": { "canvas": "^2.5.0" }, "optionalPeers": ["canvas"] }, "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ=="], + "is-arrayish": ["is-arrayish@0.2.1", "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="], - "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + "is-async-function": ["is-async-function@2.1.1", "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.1.1.tgz", { "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ=="], - "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], + "is-bigint": ["is-bigint@1.1.0", "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.1.0.tgz", { "dependencies": { "has-bigints": "^1.0.2" } }, "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ=="], - "json-parse-even-better-errors": ["json-parse-even-better-errors@2.3.1", "", {}, "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="], + "is-boolean-object": ["is-boolean-object@1.2.2", "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A=="], - "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], + "is-bun-module": ["is-bun-module@2.0.0", "https://registry.yarnpkg.com/is-bun-module/-/is-bun-module-2.0.0.tgz", { "dependencies": { "semver": "^7.7.1" } }, "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ=="], - "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], + "is-callable": ["is-callable@1.2.7", "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="], - "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + "is-core-module": ["is-core-module@2.16.1", "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="], - "jsx-ast-utils": ["jsx-ast-utils@3.3.5", "", { "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", "object.assign": "^4.1.4", "object.values": "^1.1.6" } }, "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ=="], + "is-data-view": ["is-data-view@1.0.2", "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.2.tgz", { "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" } }, "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw=="], - "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], + "is-date-object": ["is-date-object@1.1.0", "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.1.0.tgz", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="], - "kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="], + "is-docker": ["is-docker@2.2.1", "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="], - "lan-network": ["lan-network@0.1.7", "", { "bin": { "lan-network": "dist/lan-network-cli.js" } }, "sha512-mnIlAEMu4OyEvUNdzco9xpuB9YVcPkQec+QsgycBCtPZvEqWPCDPfbAE4OJMdBBWpZWtpCn1xw9jJYlwjWI5zQ=="], + "is-extglob": ["is-extglob@2.1.1", "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], - "leven": ["leven@3.1.0", "", {}, "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="], + "is-finalizationregistry": ["is-finalizationregistry@1.1.1", "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg=="], - "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], + "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], - "lighthouse-logger": ["lighthouse-logger@1.4.2", "", { "dependencies": { "debug": "^2.6.9", "marky": "^1.2.2" } }, "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g=="], + "is-generator-fn": ["is-generator-fn@2.1.0", "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz", {}, "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ=="], - "lightningcss": ["lightningcss@1.30.2", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.30.2", "lightningcss-darwin-arm64": "1.30.2", "lightningcss-darwin-x64": "1.30.2", "lightningcss-freebsd-x64": "1.30.2", "lightningcss-linux-arm-gnueabihf": "1.30.2", "lightningcss-linux-arm64-gnu": "1.30.2", "lightningcss-linux-arm64-musl": "1.30.2", "lightningcss-linux-x64-gnu": "1.30.2", "lightningcss-linux-x64-musl": "1.30.2", "lightningcss-win32-arm64-msvc": "1.30.2", "lightningcss-win32-x64-msvc": "1.30.2" } }, "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ=="], + "is-generator-function": ["is-generator-function@1.1.2", "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.2.tgz", { "dependencies": { "call-bound": "^1.0.4", "generator-function": "^2.0.0", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA=="], - "lightningcss-android-arm64": ["lightningcss-android-arm64@1.30.2", "", { "os": "android", "cpu": "arm64" }, "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A=="], + "is-glob": ["is-glob@4.0.3", "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], - "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.30.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA=="], + "is-map": ["is-map@2.0.3", "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="], - "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.30.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ=="], + "is-negative-zero": ["is-negative-zero@2.0.3", "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz", {}, "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw=="], - "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.30.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA=="], + "is-number": ["is-number@7.0.0", "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], - "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.30.2", "", { "os": "linux", "cpu": "arm" }, "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA=="], + "is-number-object": ["is-number-object@1.1.1", "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.1.tgz", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw=="], - "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A=="], + "is-potential-custom-element-name": ["is-potential-custom-element-name@1.0.1", "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", {}, "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="], - "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA=="], + "is-regex": ["is-regex@1.2.1", "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="], - "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w=="], + "is-set": ["is-set@2.0.3", "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz", {}, "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg=="], - "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA=="], + "is-shared-array-buffer": ["is-shared-array-buffer@1.0.4", "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A=="], - "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.30.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ=="], + "is-stream": ["is-stream@2.0.1", "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="], - "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.2", "", { "os": "win32", "cpu": "x64" }, "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw=="], + "is-string": ["is-string@1.1.1", "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA=="], - "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], + "is-symbol": ["is-symbol@1.1.1", "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.1.tgz", { "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", "safe-regex-test": "^1.1.0" } }, "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w=="], - "loader-runner": ["loader-runner@4.3.1", "", {}, "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q=="], + "is-typed-array": ["is-typed-array@1.1.15", "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="], - "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], + "is-weakmap": ["is-weakmap@2.0.2", "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="], - "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], + "is-weakref": ["is-weakref@1.1.1", "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.1.tgz", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew=="], - "lodash.debounce": ["lodash.debounce@4.0.8", "", {}, "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="], + "is-weakset": ["is-weakset@2.0.4", "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.4.tgz", { "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ=="], - "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], + "is-wsl": ["is-wsl@2.2.0", "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz", { "dependencies": { "is-docker": "^2.0.0" } }, "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="], - "lodash.throttle": ["lodash.throttle@4.1.1", "", {}, "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ=="], + "isarray": ["isarray@2.0.5", "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], - "log-symbols": ["log-symbols@2.2.0", "", { "dependencies": { "chalk": "^2.0.1" } }, "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg=="], + "isexe": ["isexe@2.0.0", "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], - "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], + "istanbul-lib-coverage": ["istanbul-lib-coverage@3.2.2", "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", {}, "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg=="], - "lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + "istanbul-lib-instrument": ["istanbul-lib-instrument@6.0.3", "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", { "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", "semver": "^7.5.4" } }, "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q=="], - "lucide-react": ["lucide-react@0.548.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-63b16z63jM9yc1MwxajHeuu0FRZFsDtljtDjYm26Kd86UQ5HQzu9ksEtoUUw4RBuewodw/tGFmvipePvRsKeDA=="], + "istanbul-lib-report": ["istanbul-lib-report@3.0.1", "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", { "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", "supports-color": "^7.1.0" } }, "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw=="], - "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + "istanbul-lib-source-maps": ["istanbul-lib-source-maps@4.0.1", "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", { "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" } }, "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw=="], - "make-dir": ["make-dir@4.0.0", "", { "dependencies": { "semver": "^7.5.3" } }, "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw=="], + "istanbul-reports": ["istanbul-reports@3.2.0", "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.2.0.tgz", { "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA=="], - "makeerror": ["makeerror@1.0.12", "", { "dependencies": { "tmpl": "1.0.5" } }, "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg=="], + "iterator.prototype": ["iterator.prototype@1.1.5", "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.5.tgz", { "dependencies": { "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "get-proto": "^1.0.0", "has-symbols": "^1.1.0", "set-function-name": "^2.0.2" } }, "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g=="], - "marky": ["marky@1.3.0", "", {}, "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ=="], + "jest": ["jest@29.7.0", "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz", { "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", "import-local": "^3.0.2", "jest-cli": "^29.7.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"], "bin": { "jest": "bin/jest.js" } }, "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw=="], - "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], + "jest-changed-files": ["jest-changed-files@29.7.0", "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz", { "dependencies": { "execa": "^5.0.0", "jest-util": "^29.7.0", "p-limit": "^3.1.0" } }, "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w=="], - "media-typer": ["media-typer@0.3.0", "", {}, "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="], + "jest-circus": ["jest-circus@29.7.0", "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz", { "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", "jest-each": "^29.7.0", "jest-matcher-utils": "^29.7.0", "jest-message-util": "^29.7.0", "jest-runtime": "^29.7.0", "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", "p-limit": "^3.1.0", "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw=="], - "memoize-one": ["memoize-one@5.2.1", "", {}, "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q=="], + "jest-cli": ["jest-cli@29.7.0", "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz", { "dependencies": { "@jest/core": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "chalk": "^4.0.0", "create-jest": "^29.7.0", "exit": "^0.1.2", "import-local": "^3.0.2", "jest-config": "^29.7.0", "jest-util": "^29.7.0", "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"], "bin": { "jest": "bin/jest.js" } }, "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg=="], - "merge-descriptors": ["merge-descriptors@1.0.3", "", {}, "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ=="], + "jest-config": ["jest-config@29.7.0", "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz", { "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^29.7.0", "@jest/types": "^29.6.3", "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", "jest-circus": "^29.7.0", "jest-environment-node": "^29.7.0", "jest-get-type": "^29.6.3", "jest-regex-util": "^29.6.3", "jest-resolve": "^29.7.0", "jest-runner": "^29.7.0", "jest-util": "^29.7.0", "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "peerDependencies": { "@types/node": "*", "ts-node": ">=9.0.0" }, "optionalPeers": ["@types/node", "ts-node"] }, "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ=="], - "merge-stream": ["merge-stream@2.0.0", "", {}, "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="], + "jest-diff": ["jest-diff@30.2.0", "https://registry.yarnpkg.com/jest-diff/-/jest-diff-30.2.0.tgz", { "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.1.0", "chalk": "^4.1.2", "pretty-format": "30.2.0" } }, "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A=="], - "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], + "jest-docblock": ["jest-docblock@29.7.0", "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz", { "dependencies": { "detect-newline": "^3.0.0" } }, "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g=="], - "methods": ["methods@1.1.2", "", {}, "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="], + "jest-each": ["jest-each@29.7.0", "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz", { "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", "jest-get-type": "^29.6.3", "jest-util": "^29.7.0", "pretty-format": "^29.7.0" } }, "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ=="], - "metro": ["metro@0.83.2", "", { "dependencies": { "@babel/code-frame": "^7.24.7", "@babel/core": "^7.25.2", "@babel/generator": "^7.25.0", "@babel/parser": "^7.25.3", "@babel/template": "^7.25.0", "@babel/traverse": "^7.25.3", "@babel/types": "^7.25.2", "accepts": "^1.3.7", "chalk": "^4.0.0", "ci-info": "^2.0.0", "connect": "^3.6.5", "debug": "^4.4.0", "error-stack-parser": "^2.0.6", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", "hermes-parser": "0.32.0", "image-size": "^1.0.2", "invariant": "^2.2.4", "jest-worker": "^29.7.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", "metro-babel-transformer": "0.83.2", "metro-cache": "0.83.2", "metro-cache-key": "0.83.2", "metro-config": "0.83.2", "metro-core": "0.83.2", "metro-file-map": "0.83.2", "metro-resolver": "0.83.2", "metro-runtime": "0.83.2", "metro-source-map": "0.83.2", "metro-symbolicate": "0.83.2", "metro-transform-plugins": "0.83.2", "metro-transform-worker": "0.83.2", "mime-types": "^2.1.27", "nullthrows": "^1.1.1", "serialize-error": "^2.1.0", "source-map": "^0.5.6", "throat": "^5.0.0", "ws": "^7.5.10", "yargs": "^17.6.2" }, "bin": { "metro": "src/cli.js" } }, "sha512-HQgs9H1FyVbRptNSMy/ImchTTE5vS2MSqLoOo7hbDoBq6hPPZokwJvBMwrYSxdjQZmLXz2JFZtdvS+ZfgTc9yw=="], + "jest-environment-jsdom": ["jest-environment-jsdom@29.7.0", "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", { "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/jsdom": "^20.0.0", "@types/node": "*", "jest-mock": "^29.7.0", "jest-util": "^29.7.0", "jsdom": "^20.0.0" }, "peerDependencies": { "canvas": "^2.5.0" }, "optionalPeers": ["canvas"] }, "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA=="], - "metro-babel-transformer": ["metro-babel-transformer@0.83.2", "", { "dependencies": { "@babel/core": "^7.25.2", "flow-enums-runtime": "^0.0.6", "hermes-parser": "0.32.0", "nullthrows": "^1.1.1" } }, "sha512-rirY1QMFlA1uxH3ZiNauBninwTioOgwChnRdDcbB4tgRZ+bGX9DiXoh9QdpppiaVKXdJsII932OwWXGGV4+Nlw=="], + "jest-environment-node": ["jest-environment-node@29.7.0", "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz", { "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "jest-mock": "^29.7.0", "jest-util": "^29.7.0" } }, "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw=="], - "metro-cache": ["metro-cache@0.83.2", "", { "dependencies": { "exponential-backoff": "^3.1.1", "flow-enums-runtime": "^0.0.6", "https-proxy-agent": "^7.0.5", "metro-core": "0.83.2" } }, "sha512-Z43IodutUZeIS7OTH+yQFjc59QlFJ6s5OvM8p2AP9alr0+F8UKr8ADzFzoGKoHefZSKGa4bJx7MZJLF6GwPDHQ=="], + "jest-expo": ["jest-expo@55.0.9", "https://registry.yarnpkg.com/jest-expo/-/jest-expo-55.0.9.tgz", { "dependencies": { "@expo/config": "~55.0.8", "@expo/json-file": "^10.0.12", "@jest/create-cache-key-function": "^29.2.1", "@jest/globals": "^29.2.1", "babel-jest": "^29.2.1", "jest-environment-jsdom": "^29.2.1", "jest-snapshot": "^29.2.1", "jest-watch-select-projects": "^2.0.0", "jest-watch-typeahead": "2.2.1", "json5": "^2.2.3", "lodash": "^4.17.19", "react-test-renderer": "19.2.0", "server-only": "^0.0.1", "stacktrace-js": "^2.0.2" }, "peerDependencies": { "expo": "*", "react-native": "*", "react-server-dom-webpack": "~19.0.4 || ~19.1.5 || ~19.2.4" }, "optionalPeers": ["react-server-dom-webpack"], "bin": { "jest": "bin/jest.js" } }, "sha512-6wz7JJUeW2e0+APRQP7eOcXKPdI7bdmAIoBiPJbtzSBRlghho8LzPcv4jkoVFoYi8SKb9k3BTKx4GcUlyVMedw=="], - "metro-cache-key": ["metro-cache-key@0.83.2", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-3EMG/GkGKYoTaf5RqguGLSWRqGTwO7NQ0qXKmNBjr0y6qD9s3VBXYlwB+MszGtmOKsqE9q3FPrE5Nd9Ipv7rZw=="], + "jest-get-type": ["jest-get-type@29.6.3", "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz", {}, "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw=="], - "metro-config": ["metro-config@0.83.2", "", { "dependencies": { "connect": "^3.6.5", "flow-enums-runtime": "^0.0.6", "jest-validate": "^29.7.0", "metro": "0.83.2", "metro-cache": "0.83.2", "metro-core": "0.83.2", "metro-runtime": "0.83.2", "yaml": "^2.6.1" } }, "sha512-1FjCcdBe3e3D08gSSiU9u3Vtxd7alGH3x/DNFqWDFf5NouX4kLgbVloDDClr1UrLz62c0fHh2Vfr9ecmrOZp+g=="], + "jest-haste-map": ["jest-haste-map@29.7.0", "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz", { "dependencies": { "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", "jest-regex-util": "^29.6.3", "jest-util": "^29.7.0", "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.2" } }, "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA=="], - "metro-core": ["metro-core@0.83.2", "", { "dependencies": { "flow-enums-runtime": "^0.0.6", "lodash.throttle": "^4.1.1", "metro-resolver": "0.83.2" } }, "sha512-8DRb0O82Br0IW77cNgKMLYWUkx48lWxUkvNUxVISyMkcNwE/9ywf1MYQUE88HaKwSrqne6kFgCSA/UWZoUT0Iw=="], + "jest-leak-detector": ["jest-leak-detector@29.7.0", "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", { "dependencies": { "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw=="], - "metro-file-map": ["metro-file-map@0.83.2", "", { "dependencies": { "debug": "^4.4.0", "fb-watchman": "^2.0.0", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", "invariant": "^2.2.4", "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "nullthrows": "^1.1.1", "walker": "^1.0.7" } }, "sha512-cMSWnEqZrp/dzZIEd7DEDdk72PXz6w5NOKriJoDN9p1TDQ5nAYrY2lHi8d6mwbcGLoSlWmpPyny9HZYFfPWcGQ=="], + "jest-matcher-utils": ["jest-matcher-utils@30.2.0", "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz", { "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", "jest-diff": "30.2.0", "pretty-format": "30.2.0" } }, "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg=="], - "metro-minify-terser": ["metro-minify-terser@0.83.2", "", { "dependencies": { "flow-enums-runtime": "^0.0.6", "terser": "^5.15.0" } }, "sha512-zvIxnh7U0JQ7vT4quasKsijId3dOAWgq+ip2jF/8TMrPUqQabGrs04L2dd0haQJ+PA+d4VvK/bPOY8X/vL2PWw=="], + "jest-message-util": ["jest-message-util@29.7.0", "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz", { "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w=="], - "metro-resolver": ["metro-resolver@0.83.2", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-Yf5mjyuiRE/Y+KvqfsZxrbHDA15NZxyfg8pIk0qg47LfAJhpMVEX+36e6ZRBq7KVBqy6VDX5Sq55iHGM4xSm7Q=="], + "jest-mock": ["jest-mock@29.7.0", "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz", { "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "jest-util": "^29.7.0" } }, "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw=="], - "metro-runtime": ["metro-runtime@0.83.3", "", { "dependencies": { "@babel/runtime": "^7.25.0", "flow-enums-runtime": "^0.0.6" } }, "sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw=="], + "jest-pnp-resolver": ["jest-pnp-resolver@1.2.3", "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", { "peerDependencies": { "jest-resolve": "*" }, "optionalPeers": ["jest-resolve"] }, "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w=="], - "metro-source-map": ["metro-source-map@0.83.3", "", { "dependencies": { "@babel/traverse": "^7.25.3", "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3", "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "metro-symbolicate": "0.83.3", "nullthrows": "^1.1.1", "ob1": "0.83.3", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg=="], + "jest-regex-util": ["jest-regex-util@29.6.3", "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz", {}, "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg=="], - "metro-symbolicate": ["metro-symbolicate@0.83.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "metro-source-map": "0.83.3", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "vlq": "^1.0.0" }, "bin": { "metro-symbolicate": "src/index.js" } }, "sha512-F/YChgKd6KbFK3eUR5HdUsfBqVsanf5lNTwFd4Ca7uuxnHgBC3kR/Hba/RGkenR3pZaGNp5Bu9ZqqP52Wyhomw=="], + "jest-resolve": ["jest-resolve@29.7.0", "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz", { "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", "jest-util": "^29.7.0", "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" } }, "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA=="], - "metro-transform-plugins": ["metro-transform-plugins@0.83.2", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/generator": "^7.25.0", "@babel/template": "^7.25.0", "@babel/traverse": "^7.25.3", "flow-enums-runtime": "^0.0.6", "nullthrows": "^1.1.1" } }, "sha512-5WlW25WKPkiJk2yA9d8bMuZrgW7vfA4f4MBb9ZeHbTB3eIAoNN8vS8NENgG/X/90vpTB06X66OBvxhT3nHwP6A=="], + "jest-resolve-dependencies": ["jest-resolve-dependencies@29.7.0", "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", { "dependencies": { "jest-regex-util": "^29.6.3", "jest-snapshot": "^29.7.0" } }, "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA=="], - "metro-transform-worker": ["metro-transform-worker@0.83.2", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/generator": "^7.25.0", "@babel/parser": "^7.25.3", "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "metro": "0.83.2", "metro-babel-transformer": "0.83.2", "metro-cache": "0.83.2", "metro-cache-key": "0.83.2", "metro-minify-terser": "0.83.2", "metro-source-map": "0.83.2", "metro-transform-plugins": "0.83.2", "nullthrows": "^1.1.1" } }, "sha512-G5DsIg+cMZ2KNfrdLnWMvtppb3+Rp1GMyj7Bvd9GgYc/8gRmvq1XVEF9XuO87Shhb03kFhGqMTgZerz3hZ1v4Q=="], + "jest-runner": ["jest-runner@29.7.0", "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz", { "dependencies": { "@jest/console": "^29.7.0", "@jest/environment": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", "jest-docblock": "^29.7.0", "jest-environment-node": "^29.7.0", "jest-haste-map": "^29.7.0", "jest-leak-detector": "^29.7.0", "jest-message-util": "^29.7.0", "jest-resolve": "^29.7.0", "jest-runtime": "^29.7.0", "jest-util": "^29.7.0", "jest-watcher": "^29.7.0", "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" } }, "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ=="], - "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], + "jest-runtime": ["jest-runtime@29.7.0", "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz", { "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", "@jest/globals": "^29.7.0", "@jest/source-map": "^29.6.3", "@jest/test-result": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-message-util": "^29.7.0", "jest-mock": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-resolve": "^29.7.0", "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" } }, "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ=="], - "mime": ["mime@1.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="], + "jest-snapshot": ["jest-snapshot@29.7.0", "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz", { "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/types": "^7.3.3", "@jest/expect-utils": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", "expect": "^29.7.0", "graceful-fs": "^4.2.9", "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", "jest-matcher-utils": "^29.7.0", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0", "natural-compare": "^1.4.0", "pretty-format": "^29.7.0", "semver": "^7.5.3" } }, "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw=="], - "mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "jest-util": ["jest-util@29.7.0", "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz", { "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", "picomatch": "^2.2.3" } }, "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA=="], - "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + "jest-validate": ["jest-validate@29.7.0", "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz", { "dependencies": { "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^29.6.3", "leven": "^3.1.0", "pretty-format": "^29.7.0" } }, "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw=="], - "mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], + "jest-watch-select-projects": ["jest-watch-select-projects@2.0.0", "https://registry.yarnpkg.com/jest-watch-select-projects/-/jest-watch-select-projects-2.0.0.tgz", { "dependencies": { "ansi-escapes": "^4.3.0", "chalk": "^3.0.0", "prompts": "^2.2.1" } }, "sha512-j00nW4dXc2NiCW6znXgFLF9g8PJ0zP25cpQ1xRro/HU2GBfZQFZD0SoXnAlaoKkIY4MlfTMkKGbNXFpvCdjl1w=="], - "min-indent": ["min-indent@1.0.1", "", {}, "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg=="], + "jest-watch-typeahead": ["jest-watch-typeahead@2.2.1", "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-2.2.1.tgz", { "dependencies": { "ansi-escapes": "^6.0.0", "chalk": "^4.0.0", "jest-regex-util": "^29.0.0", "jest-watcher": "^29.0.0", "slash": "^5.0.0", "string-length": "^5.0.1", "strip-ansi": "^7.0.1" }, "peerDependencies": { "jest": "^27.0.0 || ^28.0.0 || ^29.0.0" } }, "sha512-jYpYmUnTzysmVnwq49TAxlmtOAwp8QIqvZyoofQFn8fiWhEDZj33ZXzg3JA4nGnzWFm1hbWf3ADpteUokvXgFA=="], - "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "jest-watcher": ["jest-watcher@29.7.0", "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz", { "dependencies": { "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", "jest-util": "^29.7.0", "string-length": "^4.0.1" } }, "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g=="], - "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], + "jest-worker": ["jest-worker@29.7.0", "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz", { "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw=="], - "minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="], + "jimp-compact": ["jimp-compact@0.16.1", "https://registry.yarnpkg.com/jimp-compact/-/jimp-compact-0.16.1.tgz", {}, "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww=="], - "minizlib": ["minizlib@3.1.0", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw=="], + "jiti": ["jiti@2.6.1", "https://registry.yarnpkg.com/jiti/-/jiti-2.6.1.tgz", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], - "mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="], + "js-tokens": ["js-tokens@4.0.0", "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], - "morgan": ["morgan@1.10.1", "", { "dependencies": { "basic-auth": "~2.0.1", "debug": "2.6.9", "depd": "~2.0.0", "on-finished": "~2.3.0", "on-headers": "~1.1.0" } }, "sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A=="], + "js-yaml": ["js-yaml@4.1.0", "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], - "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + "jsc-safe-url": ["jsc-safe-url@0.2.4", "https://registry.yarnpkg.com/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz", {}, "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q=="], - "mz": ["mz@2.7.0", "", { "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="], + "jsdom": ["jsdom@20.0.3", "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz", { "dependencies": { "abab": "^2.0.6", "acorn": "^8.8.1", "acorn-globals": "^7.0.0", "cssom": "^0.5.0", "cssstyle": "^2.3.0", "data-urls": "^3.0.2", "decimal.js": "^10.4.2", "domexception": "^4.0.0", "escodegen": "^2.0.0", "form-data": "^4.0.0", "html-encoding-sniffer": "^3.0.0", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.1", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.2", "parse5": "^7.1.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^4.1.2", "w3c-xmlserializer": "^4.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^2.0.0", "whatwg-mimetype": "^3.0.0", "whatwg-url": "^11.0.0", "ws": "^8.11.0", "xml-name-validator": "^4.0.0" }, "peerDependencies": { "canvas": "^2.5.0" }, "optionalPeers": ["canvas"] }, "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ=="], - "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], + "jsesc": ["jsesc@3.1.0", "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], - "napi-postinstall": ["napi-postinstall@0.3.4", "", { "bin": { "napi-postinstall": "lib/cli.js" } }, "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ=="], + "json-buffer": ["json-buffer@3.0.1", "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], - "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], + "json-parse-even-better-errors": ["json-parse-even-better-errors@2.3.1", "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", {}, "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="], - "negotiator": ["negotiator@0.6.4", "", {}, "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w=="], + "json-schema-traverse": ["json-schema-traverse@0.4.1", "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], - "neo-async": ["neo-async@2.6.2", "", {}, "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="], + "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], - "nested-error-stacks": ["nested-error-stacks@2.0.1", "", {}, "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A=="], + "json5": ["json5@2.2.3", "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], - "next-themes": ["next-themes@0.4.6", "", { "peerDependencies": { "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" } }, "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA=="], + "jsx-ast-utils": ["jsx-ast-utils@3.3.5", "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", { "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", "object.assign": "^4.1.4", "object.values": "^1.1.6" } }, "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ=="], - "node-fetch": ["node-fetch@2.7.0", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], + "keyv": ["keyv@4.5.4", "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], - "node-forge": ["node-forge@1.3.1", "", {}, "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA=="], + "kleur": ["kleur@3.0.3", "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="], - "node-int64": ["node-int64@0.4.0", "", {}, "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="], + "lan-network": ["lan-network@0.2.0", "https://registry.yarnpkg.com/lan-network/-/lan-network-0.2.0.tgz", { "bin": { "lan-network": "dist/lan-network-cli.js" } }, "sha512-EZgbsXMrGS+oK+Ta12mCjzBFse+SIewGdwrSTr5g+MSymnjpox2x05ceI20PQejJOFvOgzcXrfDk/SdY7dSCtw=="], - "node-releases": ["node-releases@2.0.26", "", {}, "sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA=="], + "leven": ["leven@3.1.0", "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz", {}, "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="], - "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + "levn": ["levn@0.4.1", "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], - "normalize-range": ["normalize-range@0.1.2", "", {}, "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="], + "lighthouse-logger": ["lighthouse-logger@1.4.2", "https://registry.yarnpkg.com/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", { "dependencies": { "debug": "^2.6.9", "marky": "^1.2.2" } }, "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g=="], - "npm-package-arg": ["npm-package-arg@11.0.3", "", { "dependencies": { "hosted-git-info": "^7.0.0", "proc-log": "^4.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" } }, "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw=="], + "lightningcss": ["lightningcss@1.30.2", "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.30.2.tgz", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.30.2", "lightningcss-darwin-arm64": "1.30.2", "lightningcss-darwin-x64": "1.30.2", "lightningcss-freebsd-x64": "1.30.2", "lightningcss-linux-arm-gnueabihf": "1.30.2", "lightningcss-linux-arm64-gnu": "1.30.2", "lightningcss-linux-arm64-musl": "1.30.2", "lightningcss-linux-x64-gnu": "1.30.2", "lightningcss-linux-x64-musl": "1.30.2", "lightningcss-win32-arm64-msvc": "1.30.2", "lightningcss-win32-x64-msvc": "1.30.2" } }, "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ=="], - "npm-run-path": ["npm-run-path@4.0.1", "", { "dependencies": { "path-key": "^3.0.0" } }, "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="], + "lightningcss-android-arm64": ["lightningcss-android-arm64@1.30.2", "https://registry.yarnpkg.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz", { "os": "android", "cpu": "arm64" }, "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A=="], - "nullthrows": ["nullthrows@1.1.1", "", {}, "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw=="], + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.30.2", "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz", { "os": "darwin", "cpu": "arm64" }, "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA=="], - "nwsapi": ["nwsapi@2.2.22", "", {}, "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ=="], + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.30.2", "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz", { "os": "darwin", "cpu": "x64" }, "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ=="], - "ob1": ["ob1@0.83.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA=="], + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.30.2", "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz", { "os": "freebsd", "cpu": "x64" }, "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA=="], - "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.30.2", "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz", { "os": "linux", "cpu": "arm" }, "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA=="], - "object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="], + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.30.2", "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A=="], - "object-keys": ["object-keys@1.1.1", "", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="], + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.30.2", "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz", { "os": "linux", "cpu": "arm64" }, "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA=="], - "object.assign": ["object.assign@4.1.7", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0", "has-symbols": "^1.1.0", "object-keys": "^1.1.1" } }, "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw=="], + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.30.2", "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz", { "os": "linux", "cpu": "x64" }, "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w=="], - "object.entries": ["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" } }, "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw=="], + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.30.2", "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz", { "os": "linux", "cpu": "x64" }, "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA=="], - "object.fromentries": ["object.fromentries@2.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" } }, "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ=="], + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.30.2", "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz", { "os": "win32", "cpu": "arm64" }, "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ=="], - "object.groupby": ["object.groupby@1.0.3", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2" } }, "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ=="], + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.2", "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz", { "os": "win32", "cpu": "x64" }, "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw=="], - "object.values": ["object.values@1.2.1", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA=="], + "lines-and-columns": ["lines-and-columns@1.2.4", "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], - "on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="], + "loader-runner": ["loader-runner@4.3.1", "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.1.tgz", {}, "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q=="], - "on-headers": ["on-headers@1.1.0", "", {}, "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A=="], + "locate-path": ["locate-path@6.0.0", "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], - "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], + "lodash": ["lodash@4.17.21", "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], - "onetime": ["onetime@5.1.2", "", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="], + "lodash.debounce": ["lodash.debounce@4.0.8", "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", {}, "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="], - "open": ["open@8.4.2", "", { "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" } }, "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ=="], + "lodash.merge": ["lodash.merge@4.6.2", "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], - "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], + "lodash.throttle": ["lodash.throttle@4.1.1", "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz", {}, "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ=="], - "ora": ["ora@3.4.0", "", { "dependencies": { "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-spinners": "^2.0.0", "log-symbols": "^2.2.0", "strip-ansi": "^5.2.0", "wcwidth": "^1.0.1" } }, "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg=="], + "log-symbols": ["log-symbols@2.2.0", "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz", { "dependencies": { "chalk": "^2.0.1" } }, "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg=="], - "own-keys": ["own-keys@1.0.1", "", { "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", "safe-push-apply": "^1.0.0" } }, "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg=="], + "loose-envify": ["loose-envify@1.4.0", "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], - "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + "lru-cache": ["lru-cache@11.2.6", "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.2.6.tgz", {}, "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ=="], - "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], + "lucide-react": ["lucide-react@0.548.0", "https://registry.yarnpkg.com/lucide-react/-/lucide-react-0.548.0.tgz", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-63b16z63jM9yc1MwxajHeuu0FRZFsDtljtDjYm26Kd86UQ5HQzu9ksEtoUUw4RBuewodw/tGFmvipePvRsKeDA=="], - "p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], + "magic-string": ["magic-string@0.30.21", "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], - "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="], + "make-dir": ["make-dir@4.0.0", "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz", { "dependencies": { "semver": "^7.5.3" } }, "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw=="], - "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], + "makeerror": ["makeerror@1.0.12", "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz", { "dependencies": { "tmpl": "1.0.5" } }, "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg=="], - "parse-json": ["parse-json@5.2.0", "", { "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="], + "marky": ["marky@1.3.0", "https://registry.yarnpkg.com/marky/-/marky-1.3.0.tgz", {}, "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ=="], - "parse-png": ["parse-png@2.1.0", "", { "dependencies": { "pngjs": "^3.3.0" } }, "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ=="], + "math-intrinsics": ["math-intrinsics@1.1.0", "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], - "parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], + "media-typer": ["media-typer@0.3.0", "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz", {}, "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="], - "parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="], + "memoize-one": ["memoize-one@5.2.1", "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz", {}, "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q=="], - "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + "merge-descriptors": ["merge-descriptors@1.0.3", "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz", {}, "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ=="], - "path-is-absolute": ["path-is-absolute@1.0.1", "", {}, "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="], + "merge-stream": ["merge-stream@2.0.0", "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz", {}, "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="], - "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + "merge2": ["merge2@1.4.1", "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], - "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], + "methods": ["methods@1.1.2", "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz", {}, "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="], - "path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], + "metro": ["metro@0.83.3", "https://registry.yarnpkg.com/metro/-/metro-0.83.3.tgz", { "dependencies": { "@babel/code-frame": "^7.24.7", "@babel/core": "^7.25.2", "@babel/generator": "^7.25.0", "@babel/parser": "^7.25.3", "@babel/template": "^7.25.0", "@babel/traverse": "^7.25.3", "@babel/types": "^7.25.2", "accepts": "^1.3.7", "chalk": "^4.0.0", "ci-info": "^2.0.0", "connect": "^3.6.5", "debug": "^4.4.0", "error-stack-parser": "^2.0.6", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", "hermes-parser": "0.32.0", "image-size": "^1.0.2", "invariant": "^2.2.4", "jest-worker": "^29.7.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", "metro-babel-transformer": "0.83.3", "metro-cache": "0.83.3", "metro-cache-key": "0.83.3", "metro-config": "0.83.3", "metro-core": "0.83.3", "metro-file-map": "0.83.3", "metro-resolver": "0.83.3", "metro-runtime": "0.83.3", "metro-source-map": "0.83.3", "metro-symbolicate": "0.83.3", "metro-transform-plugins": "0.83.3", "metro-transform-worker": "0.83.3", "mime-types": "^2.1.27", "nullthrows": "^1.1.1", "serialize-error": "^2.1.0", "source-map": "^0.5.6", "throat": "^5.0.0", "ws": "^7.5.10", "yargs": "^17.6.2" }, "bin": { "metro": "src/cli.js" } }, "sha512-+rP+/GieOzkt97hSJ0MrPOuAH/jpaS21ZDvL9DJ35QYRDlQcwzcvUlGUf79AnQxq/2NPiS/AULhhM4TKutIt8Q=="], - "path-to-regexp": ["path-to-regexp@0.1.12", "", {}, "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="], + "metro-babel-transformer": ["metro-babel-transformer@0.83.3", "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.83.3.tgz", { "dependencies": { "@babel/core": "^7.25.2", "flow-enums-runtime": "^0.0.6", "hermes-parser": "0.32.0", "nullthrows": "^1.1.1" } }, "sha512-1vxlvj2yY24ES1O5RsSIvg4a4WeL7PFXgKOHvXTXiW0deLvQr28ExXj6LjwCCDZ4YZLhq6HddLpZnX4dEdSq5g=="], - "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + "metro-cache": ["metro-cache@0.83.3", "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.83.3.tgz", { "dependencies": { "exponential-backoff": "^3.1.1", "flow-enums-runtime": "^0.0.6", "https-proxy-agent": "^7.0.5", "metro-core": "0.83.3" } }, "sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q=="], - "picomatch": ["picomatch@3.0.1", "", {}, "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag=="], + "metro-cache-key": ["metro-cache-key@0.83.3", "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.83.3.tgz", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-59ZO049jKzSmvBmG/B5bZ6/dztP0ilp0o988nc6dpaDsU05Cl1c/lRf+yx8m9WW/JVgbmfO5MziBU559XjI5Zw=="], - "pirates": ["pirates@4.0.7", "", {}, "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA=="], + "metro-config": ["metro-config@0.83.3", "https://registry.yarnpkg.com/metro-config/-/metro-config-0.83.3.tgz", { "dependencies": { "connect": "^3.6.5", "flow-enums-runtime": "^0.0.6", "jest-validate": "^29.7.0", "metro": "0.83.3", "metro-cache": "0.83.3", "metro-core": "0.83.3", "metro-runtime": "0.83.3", "yaml": "^2.6.1" } }, "sha512-mTel7ipT0yNjKILIan04bkJkuCzUUkm2SeEaTads8VfEecCh+ltXchdq6DovXJqzQAXuR2P9cxZB47Lg4klriA=="], - "pkg-dir": ["pkg-dir@4.2.0", "", { "dependencies": { "find-up": "^4.0.0" } }, "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ=="], + "metro-core": ["metro-core@0.83.3", "https://registry.yarnpkg.com/metro-core/-/metro-core-0.83.3.tgz", { "dependencies": { "flow-enums-runtime": "^0.0.6", "lodash.throttle": "^4.1.1", "metro-resolver": "0.83.3" } }, "sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw=="], - "plist": ["plist@3.1.0", "", { "dependencies": { "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.5.1", "xmlbuilder": "^15.1.1" } }, "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ=="], + "metro-file-map": ["metro-file-map@0.83.3", "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.83.3.tgz", { "dependencies": { "debug": "^4.4.0", "fb-watchman": "^2.0.0", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", "invariant": "^2.2.4", "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "nullthrows": "^1.1.1", "walker": "^1.0.7" } }, "sha512-jg5AcyE0Q9Xbbu/4NAwwZkmQn7doJCKGW0SLeSJmzNB9Z24jBe0AL2PHNMy4eu0JiKtNWHz9IiONGZWq7hjVTA=="], - "pngjs": ["pngjs@3.4.0", "", {}, "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="], + "metro-minify-terser": ["metro-minify-terser@0.83.3", "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.83.3.tgz", { "dependencies": { "flow-enums-runtime": "^0.0.6", "terser": "^5.15.0" } }, "sha512-O2BmfWj6FSfzBLrNCXt/rr2VYZdX5i6444QJU0fFoc7Ljg+Q+iqebwE3K0eTvkI6TRjELsXk1cjU+fXwAR4OjQ=="], - "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], + "metro-resolver": ["metro-resolver@0.83.3", "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.83.3.tgz", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ=="], - "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], + "metro-runtime": ["metro-runtime@0.83.3", "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.83.3.tgz", { "dependencies": { "@babel/runtime": "^7.25.0", "flow-enums-runtime": "^0.0.6" } }, "sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw=="], - "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], + "metro-source-map": ["metro-source-map@0.83.3", "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.83.3.tgz", { "dependencies": { "@babel/traverse": "^7.25.3", "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3", "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "metro-symbolicate": "0.83.3", "nullthrows": "^1.1.1", "ob1": "0.83.3", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg=="], - "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], + "metro-symbolicate": ["metro-symbolicate@0.83.3", "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.83.3.tgz", { "dependencies": { "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "metro-source-map": "0.83.3", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "vlq": "^1.0.0" }, "bin": { "metro-symbolicate": "src/index.js" } }, "sha512-F/YChgKd6KbFK3eUR5HdUsfBqVsanf5lNTwFd4Ca7uuxnHgBC3kR/Hba/RGkenR3pZaGNp5Bu9ZqqP52Wyhomw=="], - "prettier": ["prettier@3.6.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ=="], + "metro-transform-plugins": ["metro-transform-plugins@0.83.3", "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.83.3.tgz", { "dependencies": { "@babel/core": "^7.25.2", "@babel/generator": "^7.25.0", "@babel/template": "^7.25.0", "@babel/traverse": "^7.25.3", "flow-enums-runtime": "^0.0.6", "nullthrows": "^1.1.1" } }, "sha512-eRGoKJU6jmqOakBMH5kUB7VitEWiNrDzBHpYbkBXW7C5fUGeOd2CyqrosEzbMK5VMiZYyOcNFEphvxk3OXey2A=="], - "prettier-linter-helpers": ["prettier-linter-helpers@1.0.0", "", { "dependencies": { "fast-diff": "^1.1.2" } }, "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w=="], + "metro-transform-worker": ["metro-transform-worker@0.83.3", "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.83.3.tgz", { "dependencies": { "@babel/core": "^7.25.2", "@babel/generator": "^7.25.0", "@babel/parser": "^7.25.3", "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "metro": "0.83.3", "metro-babel-transformer": "0.83.3", "metro-cache": "0.83.3", "metro-cache-key": "0.83.3", "metro-minify-terser": "0.83.3", "metro-source-map": "0.83.3", "metro-transform-plugins": "0.83.3", "nullthrows": "^1.1.1" } }, "sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA=="], - "pretty-bytes": ["pretty-bytes@5.6.0", "", {}, "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg=="], + "micromatch": ["micromatch@4.0.8", "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], - "pretty-format": ["pretty-format@30.2.0", "", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA=="], + "mime": ["mime@1.6.0", "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="], - "proc-log": ["proc-log@4.2.0", "", {}, "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA=="], + "mime-db": ["mime-db@1.52.0", "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], - "progress": ["progress@2.0.3", "", {}, "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="], + "mime-types": ["mime-types@2.1.35", "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], - "promise": ["promise@8.3.0", "", { "dependencies": { "asap": "~2.0.6" } }, "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg=="], + "mimic-fn": ["mimic-fn@2.1.0", "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], - "prompts": ["prompts@2.4.2", "", { "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" } }, "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q=="], + "min-indent": ["min-indent@1.0.1", "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz", {}, "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg=="], - "prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="], + "minimatch": ["minimatch@3.1.2", "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - "proxy-addr": ["proxy-addr@2.0.7", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="], + "minimist": ["minimist@1.2.8", "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], - "psl": ["psl@1.15.0", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w=="], + "minipass": ["minipass@7.1.3", "https://registry.yarnpkg.com/minipass/-/minipass-7.1.3.tgz", {}, "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A=="], - "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + "mkdirp": ["mkdirp@1.0.4", "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="], - "pure-rand": ["pure-rand@6.1.0", "", {}, "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA=="], + "morgan": ["morgan@1.10.1", "https://registry.yarnpkg.com/morgan/-/morgan-1.10.1.tgz", { "dependencies": { "basic-auth": "~2.0.1", "debug": "2.6.9", "depd": "~2.0.0", "on-finished": "~2.3.0", "on-headers": "~1.1.0" } }, "sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A=="], - "qrcode-terminal": ["qrcode-terminal@0.11.0", "", { "bin": { "qrcode-terminal": "./bin/qrcode-terminal.js" } }, "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ=="], + "ms": ["ms@2.1.3", "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], - "qs": ["qs@6.13.0", "", { "dependencies": { "side-channel": "^1.0.6" } }, "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg=="], + "multitars": ["multitars@0.2.4", "https://registry.yarnpkg.com/multitars/-/multitars-0.2.4.tgz", {}, "sha512-XgLbg1HHchFauMCQPRwMj6MSyDd5koPlTA1hM3rUFkeXzGpjU/I9fP3to7yrObE9jcN8ChIOQGrM0tV0kUZaKg=="], - "query-string": ["query-string@7.1.3", "", { "dependencies": { "decode-uri-component": "^0.2.2", "filter-obj": "^1.1.0", "split-on-first": "^1.0.0", "strict-uri-encode": "^2.0.0" } }, "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg=="], + "nanoid": ["nanoid@3.3.11", "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], - "querystringify": ["querystringify@2.2.0", "", {}, "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="], + "napi-postinstall": ["napi-postinstall@0.3.4", "https://registry.yarnpkg.com/napi-postinstall/-/napi-postinstall-0.3.4.tgz", { "bin": { "napi-postinstall": "lib/cli.js" } }, "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ=="], - "queue": ["queue@6.0.2", "", { "dependencies": { "inherits": "~2.0.3" } }, "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA=="], + "natural-compare": ["natural-compare@1.4.0", "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], - "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], + "negotiator": ["negotiator@0.6.4", "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz", {}, "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w=="], - "randombytes": ["randombytes@2.1.0", "", { "dependencies": { "safe-buffer": "^5.1.0" } }, "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="], + "neo-async": ["neo-async@2.6.2", "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz", {}, "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="], - "range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], + "next-themes": ["next-themes@0.4.6", "https://registry.yarnpkg.com/next-themes/-/next-themes-0.4.6.tgz", { "peerDependencies": { "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" } }, "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA=="], - "raw-body": ["raw-body@2.5.2", "", { "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } }, "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA=="], + "node-fetch": ["node-fetch@2.7.0", "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], - "rc": ["rc@1.2.8", "", { "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, "bin": { "rc": "./cli.js" } }, "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw=="], + "node-forge": ["node-forge@1.3.3", "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.3.tgz", {}, "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg=="], - "react": ["react@19.1.0", "", {}, "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg=="], + "node-int64": ["node-int64@0.4.0", "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz", {}, "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="], - "react-devtools-core": ["react-devtools-core@6.1.5", "", { "dependencies": { "shell-quote": "^1.6.1", "ws": "^7" } }, "sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA=="], + "node-releases": ["node-releases@2.0.26", "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.26.tgz", {}, "sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA=="], - "react-dom": ["react-dom@19.1.0", "", { "dependencies": { "scheduler": "^0.26.0" }, "peerDependencies": { "react": "^19.1.0" } }, "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g=="], + "normalize-path": ["normalize-path@3.0.0", "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], - "react-fast-compare": ["react-fast-compare@3.2.2", "", {}, "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ=="], + "normalize-range": ["normalize-range@0.1.2", "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz", {}, "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="], - "react-freeze": ["react-freeze@1.0.4", "", { "peerDependencies": { "react": ">=17.0.0" } }, "sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA=="], + "npm-package-arg": ["npm-package-arg@11.0.3", "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.3.tgz", { "dependencies": { "hosted-git-info": "^7.0.0", "proc-log": "^4.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" } }, "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw=="], - "react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], + "npm-run-path": ["npm-run-path@4.0.1", "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz", { "dependencies": { "path-key": "^3.0.0" } }, "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="], - "react-native": ["react-native@0.81.5", "", { "dependencies": { "@jest/create-cache-key-function": "^29.7.0", "@react-native/assets-registry": "0.81.5", "@react-native/codegen": "0.81.5", "@react-native/community-cli-plugin": "0.81.5", "@react-native/gradle-plugin": "0.81.5", "@react-native/js-polyfills": "0.81.5", "@react-native/normalize-colors": "0.81.5", "@react-native/virtualized-lists": "0.81.5", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", "babel-jest": "^29.7.0", "babel-plugin-syntax-hermes-parser": "0.29.1", "base64-js": "^1.5.1", "commander": "^12.0.0", "flow-enums-runtime": "^0.0.6", "glob": "^7.1.1", "invariant": "^2.2.4", "jest-environment-node": "^29.7.0", "memoize-one": "^5.0.0", "metro-runtime": "^0.83.1", "metro-source-map": "^0.83.1", "nullthrows": "^1.1.1", "pretty-format": "^29.7.0", "promise": "^8.3.0", "react-devtools-core": "^6.1.5", "react-refresh": "^0.14.0", "regenerator-runtime": "^0.13.2", "scheduler": "0.26.0", "semver": "^7.1.3", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0", "ws": "^6.2.3", "yargs": "^17.6.2" }, "peerDependencies": { "@types/react": "^19.1.0", "react": "^19.1.0" }, "optionalPeers": ["@types/react"], "bin": { "react-native": "cli.js" } }, "sha512-1w+/oSjEXZjMqsIvmkCRsOc8UBYv163bTWKTI8+1mxztvQPhCRYGTvZ/PL1w16xXHneIj/SLGfxWg2GWN2uexw=="], + "nullthrows": ["nullthrows@1.1.1", "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz", {}, "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw=="], - "react-native-gesture-handler": ["react-native-gesture-handler@2.28.0", "", { "dependencies": { "@egjs/hammerjs": "^2.0.17", "hoist-non-react-statics": "^3.3.0", "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-0msfJ1vRxXKVgTgvL+1ZOoYw3/0z1R+Ked0+udoJhyplC2jbVKIJ8Z1bzWdpQRCV3QcQ87Op0zJVE5DhKK2A0A=="], + "nwsapi": ["nwsapi@2.2.22", "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.22.tgz", {}, "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ=="], - "react-native-is-edge-to-edge": ["react-native-is-edge-to-edge@1.2.1", "", { "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-FLbPWl/MyYQWz+KwqOZsSyj2JmLKglHatd3xLZWskXOpRaio4LfEDEz8E/A6uD8QoTHW6Aobw1jbEwK7KMgR7Q=="], + "ob1": ["ob1@0.83.3", "https://registry.yarnpkg.com/ob1/-/ob1-0.83.3.tgz", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA=="], - "react-native-reanimated": ["react-native-reanimated@4.1.3", "", { "dependencies": { "react-native-is-edge-to-edge": "^1.2.1", "semver": "7.7.2" }, "peerDependencies": { "@babel/core": "^7.0.0-0", "react": "*", "react-native": "*", "react-native-worklets": ">=0.5.0" } }, "sha512-GP8wsi1u3nqvC1fMab/m8gfFwFyldawElCcUSBJQgfrXeLmsPPUOpDw44lbLeCpcwUuLa05WTVePdTEwCLTUZg=="], + "object-assign": ["object-assign@4.1.1", "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], - "react-native-safe-area-context": ["react-native-safe-area-context@5.6.2", "", { "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-4XGqMNj5qjUTYywJqpdWZ9IG8jgkS3h06sfVjfw5yZQZfWnRFXczi0GnYyFyCc2EBps/qFmoCH8fez//WumdVg=="], + "object-inspect": ["object-inspect@1.13.4", "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="], - "react-native-screens": ["react-native-screens@4.16.0", "", { "dependencies": { "react-freeze": "^1.0.0", "react-native-is-edge-to-edge": "^1.2.1", "warn-once": "^0.1.0" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-yIAyh7F/9uWkOzCi1/2FqvNvK6Wb9Y1+Kzn16SuGfN9YFJDTbwlzGRvePCNTOX0recpLQF3kc2FmvMUhyTCH1Q=="], + "object-keys": ["object-keys@1.1.1", "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="], - "react-native-web": ["react-native-web@0.21.2", "", { "dependencies": { "@babel/runtime": "^7.18.6", "@react-native/normalize-colors": "^0.74.1", "fbjs": "^3.0.4", "inline-style-prefixer": "^7.0.1", "memoize-one": "^6.0.0", "nullthrows": "^1.1.1", "postcss-value-parser": "^4.2.0", "styleq": "^0.1.3" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-SO2t9/17zM4iEnFvlu2DA9jqNbzNhoUP+AItkoCOyFmDMOhUnBBznBDCYN92fGdfAkfQlWzPoez6+zLxFNsZEg=="], + "object.assign": ["object.assign@4.1.7", "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0", "has-symbols": "^1.1.0", "object-keys": "^1.1.1" } }, "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw=="], - "react-native-worklets": ["react-native-worklets@0.5.1", "", { "dependencies": { "@babel/plugin-transform-arrow-functions": "^7.0.0-0", "@babel/plugin-transform-class-properties": "^7.0.0-0", "@babel/plugin-transform-classes": "^7.0.0-0", "@babel/plugin-transform-nullish-coalescing-operator": "^7.0.0-0", "@babel/plugin-transform-optional-chaining": "^7.0.0-0", "@babel/plugin-transform-shorthand-properties": "^7.0.0-0", "@babel/plugin-transform-template-literals": "^7.0.0-0", "@babel/plugin-transform-unicode-regex": "^7.0.0-0", "@babel/preset-typescript": "^7.16.7", "convert-source-map": "^2.0.0", "semver": "7.7.2" }, "peerDependencies": { "@babel/core": "^7.0.0-0", "react": "*", "react-native": "*" } }, "sha512-lJG6Uk9YuojjEX/tQrCbcbmpdLCSFxDK1rJlkDhgqkVi1KZzG7cdcBFQRqyNOOzR9Y0CXNuldmtWTGOyM0k0+w=="], + "object.entries": ["object.entries@1.1.9", "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.9.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-object-atoms": "^1.1.1" } }, "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw=="], - "react-refresh": ["react-refresh@0.14.2", "", {}, "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA=="], + "object.fromentries": ["object.fromentries@2.0.8", "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" } }, "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ=="], - "react-remove-scroll": ["react-remove-scroll@2.7.1", "", { "dependencies": { "react-remove-scroll-bar": "^2.3.7", "react-style-singleton": "^2.2.3", "tslib": "^2.1.0", "use-callback-ref": "^1.3.3", "use-sidecar": "^1.1.3" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA=="], + "object.groupby": ["object.groupby@1.0.3", "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2" } }, "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ=="], - "react-remove-scroll-bar": ["react-remove-scroll-bar@2.3.8", "", { "dependencies": { "react-style-singleton": "^2.2.2", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "optionalPeers": ["@types/react"] }, "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q=="], + "object.values": ["object.values@1.2.1", "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA=="], - "react-server-dom-webpack": ["react-server-dom-webpack@19.0.0", "", { "dependencies": { "acorn-loose": "^8.3.0", "neo-async": "^2.6.1", "webpack-sources": "^3.2.0" }, "peerDependencies": { "react": "^19.0.0", "react-dom": "^19.0.0", "webpack": "^5.59.0" } }, "sha512-hLug9KEXLc8vnU9lDNe2b2rKKDaqrp5gNiES4uyu2Up3FZfZJZmdwLFXlWzdA9gTB/6/cWduSB2K1Lfag2pSvw=="], + "on-finished": ["on-finished@2.4.1", "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="], - "react-style-singleton": ["react-style-singleton@2.2.3", "", { "dependencies": { "get-nonce": "^1.0.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ=="], + "on-headers": ["on-headers@1.1.0", "https://registry.yarnpkg.com/on-headers/-/on-headers-1.1.0.tgz", {}, "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A=="], - "react-test-renderer": ["react-test-renderer@19.1.0", "", { "dependencies": { "react-is": "^19.1.0", "scheduler": "^0.26.0" }, "peerDependencies": { "react": "^19.1.0" } }, "sha512-jXkSl3CpvPYEF+p/eGDLB4sPoDX8pKkYvRl9+rR8HxLY0X04vW7hCm1/0zHoUSjPZ3bDa+wXWNTDVIw/R8aDVw=="], + "once": ["once@1.4.0", "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], - "redent": ["redent@3.0.0", "", { "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" } }, "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg=="], + "onetime": ["onetime@5.1.2", "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="], - "reflect.getprototypeof": ["reflect.getprototypeof@1.0.10", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.7", "get-proto": "^1.0.1", "which-builtin-type": "^1.2.1" } }, "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw=="], + "open": ["open@8.4.2", "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz", { "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" } }, "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ=="], - "regenerate": ["regenerate@1.4.2", "", {}, "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="], + "optionator": ["optionator@0.9.4", "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], - "regenerate-unicode-properties": ["regenerate-unicode-properties@10.2.2", "", { "dependencies": { "regenerate": "^1.4.2" } }, "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g=="], + "ora": ["ora@3.4.0", "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz", { "dependencies": { "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-spinners": "^2.0.0", "log-symbols": "^2.2.0", "strip-ansi": "^5.2.0", "wcwidth": "^1.0.1" } }, "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg=="], - "regenerator-runtime": ["regenerator-runtime@0.13.11", "", {}, "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="], + "own-keys": ["own-keys@1.0.1", "https://registry.yarnpkg.com/own-keys/-/own-keys-1.0.1.tgz", { "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", "safe-push-apply": "^1.0.0" } }, "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg=="], - "regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="], + "p-limit": ["p-limit@3.1.0", "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], - "regexpu-core": ["regexpu-core@6.4.0", "", { "dependencies": { "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.2.2", "regjsgen": "^0.8.0", "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.2.1" } }, "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA=="], + "p-locate": ["p-locate@5.0.0", "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], - "regjsgen": ["regjsgen@0.8.0", "", {}, "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q=="], + "p-try": ["p-try@2.2.0", "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], - "regjsparser": ["regjsparser@0.13.0", "", { "dependencies": { "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q=="], + "parent-module": ["parent-module@1.0.1", "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], - "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], + "parse-json": ["parse-json@5.2.0", "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz", { "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="], - "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], + "parse-png": ["parse-png@2.1.0", "https://registry.yarnpkg.com/parse-png/-/parse-png-2.1.0.tgz", { "dependencies": { "pngjs": "^3.3.0" } }, "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ=="], - "requireg": ["requireg@0.2.2", "", { "dependencies": { "nested-error-stacks": "~2.0.1", "rc": "~1.2.7", "resolve": "~1.7.1" } }, "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg=="], + "parse5": ["parse5@7.3.0", "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], - "requires-port": ["requires-port@1.0.0", "", {}, "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="], + "parseurl": ["parseurl@1.3.3", "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="], - "resolve": ["resolve@2.0.0-next.5", "", { "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA=="], + "path-exists": ["path-exists@4.0.0", "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], - "resolve-cwd": ["resolve-cwd@3.0.0", "", { "dependencies": { "resolve-from": "^5.0.0" } }, "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg=="], + "path-is-absolute": ["path-is-absolute@1.0.1", "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", {}, "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="], - "resolve-from": ["resolve-from@5.0.0", "", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="], + "path-key": ["path-key@3.1.1", "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], - "resolve-global": ["resolve-global@1.0.0", "", { "dependencies": { "global-dirs": "^0.1.1" } }, "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw=="], + "path-parse": ["path-parse@1.0.7", "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], - "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], + "path-scurry": ["path-scurry@2.0.2", "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.2.tgz", { "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" } }, "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg=="], - "resolve-workspace-root": ["resolve-workspace-root@2.0.0", "", {}, "sha512-IsaBUZETJD5WsI11Wt8PKHwaIe45or6pwNc8yflvLJ4DWtImK9kuLoH5kUva/2Mmx/RdIyr4aONNSa2v9LTJsw=="], + "path-to-regexp": ["path-to-regexp@0.1.12", "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz", {}, "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="], - "resolve.exports": ["resolve.exports@2.0.3", "", {}, "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A=="], + "picocolors": ["picocolors@1.1.1", "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], - "restore-cursor": ["restore-cursor@2.0.0", "", { "dependencies": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" } }, "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q=="], + "picomatch": ["picomatch@4.0.3", "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], - "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], + "pirates": ["pirates@4.0.7", "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz", {}, "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA=="], - "rimraf": ["rimraf@3.0.2", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="], + "pkg-dir": ["pkg-dir@4.2.0", "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz", { "dependencies": { "find-up": "^4.0.0" } }, "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ=="], - "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], + "plist": ["plist@3.1.0", "https://registry.yarnpkg.com/plist/-/plist-3.1.0.tgz", { "dependencies": { "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.5.1", "xmlbuilder": "^15.1.1" } }, "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ=="], - "safe-array-concat": ["safe-array-concat@1.1.3", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "has-symbols": "^1.1.0", "isarray": "^2.0.5" } }, "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q=="], + "pngjs": ["pngjs@3.4.0", "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz", {}, "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="], - "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], - "safe-push-apply": ["safe-push-apply@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" } }, "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA=="], + "postcss": ["postcss@8.5.6", "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], - "safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], + "postcss-value-parser": ["postcss-value-parser@4.2.0", "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], - "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], + "prelude-ls": ["prelude-ls@1.2.1", "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], - "sax": ["sax@1.4.1", "", {}, "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg=="], + "prettier": ["prettier@3.6.2", "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ=="], - "saxes": ["saxes@6.0.0", "", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="], + "prettier-linter-helpers": ["prettier-linter-helpers@1.0.0", "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", { "dependencies": { "fast-diff": "^1.1.2" } }, "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w=="], - "scheduler": ["scheduler@0.26.0", "", {}, "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA=="], + "pretty-format": ["pretty-format@30.2.0", "https://registry.yarnpkg.com/pretty-format/-/pretty-format-30.2.0.tgz", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA=="], - "schema-utils": ["schema-utils@4.3.3", "", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA=="], + "proc-log": ["proc-log@4.2.0", "https://registry.yarnpkg.com/proc-log/-/proc-log-4.2.0.tgz", {}, "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA=="], - "semver": ["semver@7.6.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="], + "progress": ["progress@2.0.3", "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz", {}, "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="], - "send": ["send@0.19.0", "", { "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", "on-finished": "2.4.1", "range-parser": "~1.2.1", "statuses": "2.0.1" } }, "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw=="], + "promise": ["promise@8.3.0", "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz", { "dependencies": { "asap": "~2.0.6" } }, "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg=="], - "serialize-error": ["serialize-error@2.1.0", "", {}, "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw=="], + "prompts": ["prompts@2.4.2", "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz", { "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" } }, "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q=="], - "serialize-javascript": ["serialize-javascript@6.0.2", "", { "dependencies": { "randombytes": "^2.1.0" } }, "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g=="], + "prop-types": ["prop-types@15.8.1", "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="], - "serve-static": ["serve-static@1.16.2", "", { "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.19.0" } }, "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw=="], + "proxy-addr": ["proxy-addr@2.0.7", "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="], - "server-only": ["server-only@0.0.1", "", {}, "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA=="], + "psl": ["psl@1.15.0", "https://registry.yarnpkg.com/psl/-/psl-1.15.0.tgz", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w=="], - "set-function-length": ["set-function-length@1.2.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], + "punycode": ["punycode@2.3.1", "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], - "set-function-name": ["set-function-name@2.0.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" } }, "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ=="], + "pure-rand": ["pure-rand@6.1.0", "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz", {}, "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA=="], - "set-proto": ["set-proto@1.0.0", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0" } }, "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw=="], + "qs": ["qs@6.13.0", "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz", { "dependencies": { "side-channel": "^1.0.6" } }, "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg=="], - "setimmediate": ["setimmediate@1.0.5", "", {}, "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="], + "query-string": ["query-string@7.1.3", "https://registry.yarnpkg.com/query-string/-/query-string-7.1.3.tgz", { "dependencies": { "decode-uri-component": "^0.2.2", "filter-obj": "^1.1.0", "split-on-first": "^1.0.0", "strict-uri-encode": "^2.0.0" } }, "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg=="], - "setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="], + "querystringify": ["querystringify@2.2.0", "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz", {}, "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="], - "sf-symbols-typescript": ["sf-symbols-typescript@2.1.0", "", {}, "sha512-ezT7gu/SHTPIOEEoG6TF+O0m5eewl0ZDAO4AtdBi5HjsrUI6JdCG17+Q8+aKp0heM06wZKApRCn5olNbs0Wb/A=="], + "queue": ["queue@6.0.2", "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz", { "dependencies": { "inherits": "~2.0.3" } }, "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA=="], - "shallowequal": ["shallowequal@1.1.0", "", {}, "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="], + "queue-microtask": ["queue-microtask@1.2.3", "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], - "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + "randombytes": ["randombytes@2.1.0", "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz", { "dependencies": { "safe-buffer": "^5.1.0" } }, "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="], - "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + "range-parser": ["range-parser@1.2.1", "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], - "shell-quote": ["shell-quote@1.8.3", "", {}, "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw=="], + "raw-body": ["raw-body@2.5.2", "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz", { "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } }, "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA=="], - "side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], + "react": ["react@19.2.0", "https://registry.yarnpkg.com/react/-/react-19.2.0.tgz", {}, "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ=="], - "side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="], + "react-devtools-core": ["react-devtools-core@6.1.5", "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-6.1.5.tgz", { "dependencies": { "shell-quote": "^1.6.1", "ws": "^7" } }, "sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA=="], - "side-channel-map": ["side-channel-map@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="], + "react-dom": ["react-dom@19.2.0", "https://registry.yarnpkg.com/react-dom/-/react-dom-19.2.0.tgz", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.0" } }, "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ=="], - "side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="], + "react-fast-compare": ["react-fast-compare@3.2.2", "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz", {}, "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ=="], - "signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], + "react-freeze": ["react-freeze@1.0.4", "https://registry.yarnpkg.com/react-freeze/-/react-freeze-1.0.4.tgz", { "peerDependencies": { "react": ">=17.0.0" } }, "sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA=="], - "simple-plist": ["simple-plist@1.3.1", "", { "dependencies": { "bplist-creator": "0.1.0", "bplist-parser": "0.3.1", "plist": "^3.0.5" } }, "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw=="], + "react-is": ["react-is@19.2.0", "https://registry.yarnpkg.com/react-is/-/react-is-19.2.0.tgz", {}, "sha512-x3Ax3kNSMIIkyVYhWPyO09bu0uttcAIoecO/um/rKGQ4EltYWVYtyiGkS/3xMynrbVQdS69Jhlv8FXUEZehlzA=="], - "simple-swizzle": ["simple-swizzle@0.2.4", "", { "dependencies": { "is-arrayish": "^0.3.1" } }, "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw=="], + "react-native": ["react-native@0.83.2", "https://registry.yarnpkg.com/react-native/-/react-native-0.83.2.tgz", { "dependencies": { "@jest/create-cache-key-function": "^29.7.0", "@react-native/assets-registry": "0.83.2", "@react-native/codegen": "0.83.2", "@react-native/community-cli-plugin": "0.83.2", "@react-native/gradle-plugin": "0.83.2", "@react-native/js-polyfills": "0.83.2", "@react-native/normalize-colors": "0.83.2", "@react-native/virtualized-lists": "0.83.2", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", "babel-jest": "^29.7.0", "babel-plugin-syntax-hermes-parser": "0.32.0", "base64-js": "^1.5.1", "commander": "^12.0.0", "flow-enums-runtime": "^0.0.6", "glob": "^7.1.1", "hermes-compiler": "0.14.1", "invariant": "^2.2.4", "jest-environment-node": "^29.7.0", "memoize-one": "^5.0.0", "metro-runtime": "^0.83.3", "metro-source-map": "^0.83.3", "nullthrows": "^1.1.1", "pretty-format": "^29.7.0", "promise": "^8.3.0", "react-devtools-core": "^6.1.5", "react-refresh": "^0.14.0", "regenerator-runtime": "^0.13.2", "scheduler": "0.27.0", "semver": "^7.1.3", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0", "ws": "^7.5.10", "yargs": "^17.6.2" }, "peerDependencies": { "@types/react": "^19.1.1", "react": "^19.2.0" }, "optionalPeers": ["@types/react"], "bin": { "react-native": "cli.js" } }, "sha512-ZDma3SLkRN2U2dg0/EZqxNBAx4of/oTnPjXAQi299VLq2gdnbZowGy9hzqv+O7sTA62g+lM1v+2FM5DUnJ/6hg=="], - "sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="], + "react-native-is-edge-to-edge": ["react-native-is-edge-to-edge@1.2.1", "https://registry.yarnpkg.com/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.2.1.tgz", { "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-FLbPWl/MyYQWz+KwqOZsSyj2JmLKglHatd3xLZWskXOpRaio4LfEDEz8E/A6uD8QoTHW6Aobw1jbEwK7KMgR7Q=="], - "slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], + "react-native-safe-area-context": ["react-native-safe-area-context@5.6.2", "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-5.6.2.tgz", { "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-4XGqMNj5qjUTYywJqpdWZ9IG8jgkS3h06sfVjfw5yZQZfWnRFXczi0GnYyFyCc2EBps/qFmoCH8fez//WumdVg=="], - "slugify": ["slugify@1.6.6", "", {}, "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw=="], + "react-native-screens": ["react-native-screens@4.24.0", "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-4.24.0.tgz", { "dependencies": { "react-freeze": "^1.0.0", "warn-once": "^0.1.0" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-SyoiGaDofiyGPFrUkn1oGsAzkRuX1JUvTD9YQQK3G1JGQ5VWkvHgYSsc1K9OrLsDQxN7NmV71O0sHCAh8cBetA=="], - "sonner": ["sonner@2.0.7", "", { "peerDependencies": { "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w=="], + "react-native-web": ["react-native-web@0.21.2", "https://registry.yarnpkg.com/react-native-web/-/react-native-web-0.21.2.tgz", { "dependencies": { "@babel/runtime": "^7.18.6", "@react-native/normalize-colors": "^0.74.1", "fbjs": "^3.0.4", "inline-style-prefixer": "^7.0.1", "memoize-one": "^6.0.0", "nullthrows": "^1.1.1", "postcss-value-parser": "^4.2.0", "styleq": "^0.1.3" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-SO2t9/17zM4iEnFvlu2DA9jqNbzNhoUP+AItkoCOyFmDMOhUnBBznBDCYN92fGdfAkfQlWzPoez6+zLxFNsZEg=="], - "source-map": ["source-map@0.5.7", "", {}, "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="], + "react-refresh": ["react-refresh@0.14.2", "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz", {}, "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA=="], - "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + "react-remove-scroll": ["react-remove-scroll@2.7.1", "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.7.1.tgz", { "dependencies": { "react-remove-scroll-bar": "^2.3.7", "react-style-singleton": "^2.2.3", "tslib": "^2.1.0", "use-callback-ref": "^1.3.3", "use-sidecar": "^1.1.3" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA=="], - "source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], + "react-remove-scroll-bar": ["react-remove-scroll-bar@2.3.8", "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", { "dependencies": { "react-style-singleton": "^2.2.2", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "optionalPeers": ["@types/react"] }, "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q=="], - "split-on-first": ["split-on-first@1.1.0", "", {}, "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw=="], + "react-server-dom-webpack": ["react-server-dom-webpack@19.0.0", "https://registry.yarnpkg.com/react-server-dom-webpack/-/react-server-dom-webpack-19.0.0.tgz", { "dependencies": { "acorn-loose": "^8.3.0", "neo-async": "^2.6.1", "webpack-sources": "^3.2.0" }, "peerDependencies": { "react": "^19.0.0", "react-dom": "^19.0.0", "webpack": "^5.59.0" } }, "sha512-hLug9KEXLc8vnU9lDNe2b2rKKDaqrp5gNiES4uyu2Up3FZfZJZmdwLFXlWzdA9gTB/6/cWduSB2K1Lfag2pSvw=="], - "sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], + "react-style-singleton": ["react-style-singleton@2.2.3", "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.3.tgz", { "dependencies": { "get-nonce": "^1.0.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ=="], - "stable-hash": ["stable-hash@0.0.5", "", {}, "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA=="], + "react-test-renderer": ["react-test-renderer@19.2.0", "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-19.2.0.tgz", { "dependencies": { "react-is": "^19.2.0", "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.0" } }, "sha512-zLCFMHFE9vy/w3AxO0zNxy6aAupnCuLSVOJYDe/Tp+ayGI1f2PLQsFVPANSD42gdSbmYx5oN+1VWDhcXtq7hAQ=="], - "stack-generator": ["stack-generator@2.0.10", "", { "dependencies": { "stackframe": "^1.3.4" } }, "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ=="], + "redent": ["redent@3.0.0", "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz", { "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" } }, "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg=="], - "stack-utils": ["stack-utils@2.0.6", "", { "dependencies": { "escape-string-regexp": "^2.0.0" } }, "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ=="], + "reflect.getprototypeof": ["reflect.getprototypeof@1.0.10", "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.7", "get-proto": "^1.0.1", "which-builtin-type": "^1.2.1" } }, "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw=="], - "stackframe": ["stackframe@1.3.4", "", {}, "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="], + "regenerate": ["regenerate@1.4.2", "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz", {}, "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="], - "stacktrace-gps": ["stacktrace-gps@3.1.2", "", { "dependencies": { "source-map": "0.5.6", "stackframe": "^1.3.4" } }, "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ=="], + "regenerate-unicode-properties": ["regenerate-unicode-properties@10.2.2", "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", { "dependencies": { "regenerate": "^1.4.2" } }, "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g=="], - "stacktrace-js": ["stacktrace-js@2.0.2", "", { "dependencies": { "error-stack-parser": "^2.0.6", "stack-generator": "^2.0.5", "stacktrace-gps": "^3.0.4" } }, "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg=="], + "regenerator-runtime": ["regenerator-runtime@0.13.11", "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", {}, "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="], - "stacktrace-parser": ["stacktrace-parser@0.1.11", "", { "dependencies": { "type-fest": "^0.7.1" } }, "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg=="], + "regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="], - "statuses": ["statuses@2.0.1", "", {}, "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="], + "regexpu-core": ["regexpu-core@6.4.0", "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.4.0.tgz", { "dependencies": { "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.2.2", "regjsgen": "^0.8.0", "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.2.1" } }, "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA=="], - "stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="], + "regjsgen": ["regjsgen@0.8.0", "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz", {}, "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q=="], - "stream-buffers": ["stream-buffers@2.2.0", "", {}, "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg=="], + "regjsparser": ["regjsparser@0.13.0", "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.13.0.tgz", { "dependencies": { "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q=="], - "stream-chain": ["stream-chain@2.2.5", "", {}, "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA=="], + "require-directory": ["require-directory@2.1.1", "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], - "stream-json": ["stream-json@1.9.1", "", { "dependencies": { "stream-chain": "^2.2.5" } }, "sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw=="], + "require-from-string": ["require-from-string@2.0.2", "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], - "strict-uri-encode": ["strict-uri-encode@2.0.0", "", {}, "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ=="], + "requires-port": ["requires-port@1.0.0", "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz", {}, "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="], - "string-length": ["string-length@5.0.1", "", { "dependencies": { "char-regex": "^2.0.0", "strip-ansi": "^7.0.1" } }, "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow=="], + "resolve": ["resolve@2.0.0-next.5", "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz", { "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA=="], - "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + "resolve-cwd": ["resolve-cwd@3.0.0", "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz", { "dependencies": { "resolve-from": "^5.0.0" } }, "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg=="], - "string-width-cjs": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + "resolve-from": ["resolve-from@5.0.0", "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="], - "string.prototype.matchall": ["string.prototype.matchall@4.0.12", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "regexp.prototype.flags": "^1.5.3", "set-function-name": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA=="], + "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], - "string.prototype.repeat": ["string.prototype.repeat@1.0.0", "", { "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" } }, "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w=="], + "resolve-workspace-root": ["resolve-workspace-root@2.0.0", "https://registry.yarnpkg.com/resolve-workspace-root/-/resolve-workspace-root-2.0.0.tgz", {}, "sha512-IsaBUZETJD5WsI11Wt8PKHwaIe45or6pwNc8yflvLJ4DWtImK9kuLoH5kUva/2Mmx/RdIyr4aONNSa2v9LTJsw=="], - "string.prototype.trim": ["string.prototype.trim@1.2.10", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-data-property": "^1.1.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-object-atoms": "^1.0.0", "has-property-descriptors": "^1.0.2" } }, "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA=="], + "resolve.exports": ["resolve.exports@2.0.3", "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.3.tgz", {}, "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A=="], - "string.prototype.trimend": ["string.prototype.trimend@1.0.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ=="], + "restore-cursor": ["restore-cursor@2.0.0", "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz", { "dependencies": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" } }, "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q=="], - "string.prototype.trimstart": ["string.prototype.trimstart@1.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg=="], + "reusify": ["reusify@1.1.0", "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], - "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "rimraf": ["rimraf@3.0.2", "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="], - "strip-ansi-cjs": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "run-parallel": ["run-parallel@1.2.0", "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], - "strip-bom": ["strip-bom@3.0.0", "", {}, "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="], + "safe-array-concat": ["safe-array-concat@1.1.3", "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "has-symbols": "^1.1.0", "isarray": "^2.0.5" } }, "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q=="], - "strip-final-newline": ["strip-final-newline@2.0.0", "", {}, "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="], + "safe-buffer": ["safe-buffer@5.2.1", "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - "strip-indent": ["strip-indent@3.0.0", "", { "dependencies": { "min-indent": "^1.0.0" } }, "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ=="], + "safe-push-apply": ["safe-push-apply@1.0.0", "https://registry.yarnpkg.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" } }, "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA=="], - "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + "safe-regex-test": ["safe-regex-test@1.1.0", "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], - "structured-headers": ["structured-headers@0.4.1", "", {}, "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg=="], + "safer-buffer": ["safer-buffer@2.1.2", "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], - "styleq": ["styleq@0.1.3", "", {}, "sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA=="], + "sax": ["sax@1.4.1", "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz", {}, "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg=="], - "sucrase": ["sucrase@3.35.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", "glob": "^10.3.10", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", "ts-interface-checker": "^0.1.9" }, "bin": { "sucrase": "bin/sucrase", "sucrase-node": "bin/sucrase-node" } }, "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA=="], + "saxes": ["saxes@6.0.0", "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="], - "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + "scheduler": ["scheduler@0.27.0", "https://registry.yarnpkg.com/scheduler/-/scheduler-0.27.0.tgz", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], - "supports-hyperlinks": ["supports-hyperlinks@2.3.0", "", { "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" } }, "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA=="], + "schema-utils": ["schema-utils@4.3.3", "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.3.tgz", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA=="], - "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], + "semver": ["semver@7.6.3", "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="], - "symbol-tree": ["symbol-tree@3.2.4", "", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="], + "send": ["send@0.19.0", "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz", { "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", "on-finished": "2.4.1", "range-parser": "~1.2.1", "statuses": "2.0.1" } }, "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw=="], - "synckit": ["synckit@0.11.11", "", { "dependencies": { "@pkgr/core": "^0.2.9" } }, "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw=="], + "serialize-error": ["serialize-error@2.1.0", "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz", {}, "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw=="], - "tailwind-merge": ["tailwind-merge@3.3.1", "", {}, "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g=="], + "serialize-javascript": ["serialize-javascript@6.0.2", "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz", { "dependencies": { "randombytes": "^2.1.0" } }, "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g=="], - "tailwindcss": ["tailwindcss@4.1.16", "", {}, "sha512-pONL5awpaQX4LN5eiv7moSiSPd/DLDzKVRJz8Q9PgzmAdd1R4307GQS2ZpfiN7ZmekdQrfhZZiSE5jkLR4WNaA=="], + "serve-static": ["serve-static@1.16.2", "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz", { "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.19.0" } }, "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw=="], - "tailwindcss-animate": ["tailwindcss-animate@1.0.7", "", { "peerDependencies": { "tailwindcss": ">=3.0.0 || insiders" } }, "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA=="], + "server-only": ["server-only@0.0.1", "https://registry.yarnpkg.com/server-only/-/server-only-0.0.1.tgz", {}, "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA=="], - "tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], + "set-function-length": ["set-function-length@1.2.2", "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], - "tar": ["tar@7.5.1", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g=="], + "set-function-name": ["set-function-name@2.0.2", "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" } }, "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ=="], - "temp-dir": ["temp-dir@2.0.0", "", {}, "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg=="], + "set-proto": ["set-proto@1.0.0", "https://registry.yarnpkg.com/set-proto/-/set-proto-1.0.0.tgz", { "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0" } }, "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw=="], - "terminal-link": ["terminal-link@2.1.1", "", { "dependencies": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" } }, "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ=="], + "setimmediate": ["setimmediate@1.0.5", "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz", {}, "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="], - "terser": ["terser@5.44.0", "", { "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" } }, "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w=="], + "setprototypeof": ["setprototypeof@1.2.0", "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="], - "terser-webpack-plugin": ["terser-webpack-plugin@5.3.14", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "peerDependencies": { "webpack": "^5.1.0" } }, "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw=="], + "sf-symbols-typescript": ["sf-symbols-typescript@2.1.0", "https://registry.yarnpkg.com/sf-symbols-typescript/-/sf-symbols-typescript-2.1.0.tgz", {}, "sha512-ezT7gu/SHTPIOEEoG6TF+O0m5eewl0ZDAO4AtdBi5HjsrUI6JdCG17+Q8+aKp0heM06wZKApRCn5olNbs0Wb/A=="], - "test-exclude": ["test-exclude@6.0.0", "", { "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" } }, "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w=="], + "shallowequal": ["shallowequal@1.1.0", "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz", {}, "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="], - "thenify": ["thenify@3.3.1", "", { "dependencies": { "any-promise": "^1.0.0" } }, "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="], + "shebang-command": ["shebang-command@2.0.0", "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], - "thenify-all": ["thenify-all@1.6.0", "", { "dependencies": { "thenify": ">= 3.1.0 < 4" } }, "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA=="], + "shebang-regex": ["shebang-regex@3.0.0", "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], - "throat": ["throat@5.0.0", "", {}, "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA=="], + "shell-quote": ["shell-quote@1.8.3", "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.3.tgz", {}, "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw=="], - "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], + "side-channel": ["side-channel@1.1.0", "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], - "tmpl": ["tmpl@1.0.5", "", {}, "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="], + "side-channel-list": ["side-channel-list@1.0.0", "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="], - "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], + "side-channel-map": ["side-channel-map@1.0.1", "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="], - "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], + "side-channel-weakmap": ["side-channel-weakmap@1.0.2", "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="], - "tough-cookie": ["tough-cookie@4.1.4", "", { "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", "universalify": "^0.2.0", "url-parse": "^1.5.3" } }, "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag=="], + "signal-exit": ["signal-exit@3.0.7", "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], - "tr46": ["tr46@3.0.0", "", { "dependencies": { "punycode": "^2.1.1" } }, "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA=="], + "simple-plist": ["simple-plist@1.3.1", "https://registry.yarnpkg.com/simple-plist/-/simple-plist-1.3.1.tgz", { "dependencies": { "bplist-creator": "0.1.0", "bplist-parser": "0.3.1", "plist": "^3.0.5" } }, "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw=="], - "ts-api-utils": ["ts-api-utils@2.1.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ=="], + "simple-swizzle": ["simple-swizzle@0.2.4", "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.4.tgz", { "dependencies": { "is-arrayish": "^0.3.1" } }, "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw=="], - "ts-interface-checker": ["ts-interface-checker@0.1.13", "", {}, "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="], + "sisteransi": ["sisteransi@1.0.5", "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="], - "tsconfig-paths": ["tsconfig-paths@3.15.0", "", { "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg=="], + "slash": ["slash@3.0.0", "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], - "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "slugify": ["slugify@1.6.6", "https://registry.yarnpkg.com/slugify/-/slugify-1.6.6.tgz", {}, "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw=="], - "tw-animate-css": ["tw-animate-css@1.4.0", "", {}, "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ=="], + "sonner": ["sonner@2.0.7", "https://registry.yarnpkg.com/sonner/-/sonner-2.0.7.tgz", { "peerDependencies": { "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w=="], - "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], + "source-map": ["source-map@0.5.7", "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz", {}, "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="], - "type-detect": ["type-detect@4.0.8", "", {}, "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="], + "source-map-js": ["source-map-js@1.2.1", "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], - "type-fest": ["type-fest@0.7.1", "", {}, "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg=="], + "source-map-support": ["source-map-support@0.5.21", "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], - "type-is": ["type-is@1.6.18", "", { "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" } }, "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="], + "split-on-first": ["split-on-first@1.1.0", "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz", {}, "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw=="], - "typed-array-buffer": ["typed-array-buffer@1.0.3", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-typed-array": "^1.1.14" } }, "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw=="], + "sprintf-js": ["sprintf-js@1.0.3", "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], - "typed-array-byte-length": ["typed-array-byte-length@1.0.3", "", { "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.14" } }, "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg=="], + "stable-hash": ["stable-hash@0.0.5", "https://registry.yarnpkg.com/stable-hash/-/stable-hash-0.0.5.tgz", {}, "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA=="], - "typed-array-byte-offset": ["typed-array-byte-offset@1.0.4", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.15", "reflect.getprototypeof": "^1.0.9" } }, "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ=="], + "stack-generator": ["stack-generator@2.0.10", "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.10.tgz", { "dependencies": { "stackframe": "^1.3.4" } }, "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ=="], - "typed-array-length": ["typed-array-length@1.0.7", "", { "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "is-typed-array": "^1.1.13", "possible-typed-array-names": "^1.0.0", "reflect.getprototypeof": "^1.0.6" } }, "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg=="], + "stack-utils": ["stack-utils@2.0.6", "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz", { "dependencies": { "escape-string-regexp": "^2.0.0" } }, "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ=="], - "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + "stackframe": ["stackframe@1.3.4", "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz", {}, "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="], - "ua-parser-js": ["ua-parser-js@1.0.41", "", { "bin": { "ua-parser-js": "script/cli.js" } }, "sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug=="], + "stacktrace-gps": ["stacktrace-gps@3.1.2", "https://registry.yarnpkg.com/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz", { "dependencies": { "source-map": "0.5.6", "stackframe": "^1.3.4" } }, "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ=="], - "unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="], + "stacktrace-js": ["stacktrace-js@2.0.2", "https://registry.yarnpkg.com/stacktrace-js/-/stacktrace-js-2.0.2.tgz", { "dependencies": { "error-stack-parser": "^2.0.6", "stack-generator": "^2.0.5", "stacktrace-gps": "^3.0.4" } }, "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg=="], - "undici": ["undici@6.22.0", "", {}, "sha512-hU/10obOIu62MGYjdskASR3CUAiYaFTtC9Pa6vHyf//mAipSvSQg6od2CnJswq7fvzNS3zJhxoRkgNVaHurWKw=="], + "stacktrace-parser": ["stacktrace-parser@0.1.11", "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.11.tgz", { "dependencies": { "type-fest": "^0.7.1" } }, "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg=="], - "undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="], + "statuses": ["statuses@2.0.1", "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz", {}, "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="], - "unicode-canonical-property-names-ecmascript": ["unicode-canonical-property-names-ecmascript@2.0.1", "", {}, "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg=="], + "stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="], - "unicode-match-property-ecmascript": ["unicode-match-property-ecmascript@2.0.0", "", { "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" } }, "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q=="], + "stream-buffers": ["stream-buffers@2.2.0", "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz", {}, "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg=="], - "unicode-match-property-value-ecmascript": ["unicode-match-property-value-ecmascript@2.2.1", "", {}, "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg=="], + "stream-chain": ["stream-chain@2.2.5", "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz", {}, "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA=="], - "unicode-property-aliases-ecmascript": ["unicode-property-aliases-ecmascript@2.2.0", "", {}, "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ=="], + "stream-json": ["stream-json@1.9.1", "https://registry.yarnpkg.com/stream-json/-/stream-json-1.9.1.tgz", { "dependencies": { "stream-chain": "^2.2.5" } }, "sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw=="], - "unique-string": ["unique-string@2.0.0", "", { "dependencies": { "crypto-random-string": "^2.0.0" } }, "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg=="], + "strict-uri-encode": ["strict-uri-encode@2.0.0", "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", {}, "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ=="], - "universalify": ["universalify@0.2.0", "", {}, "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg=="], + "string-length": ["string-length@5.0.1", "https://registry.yarnpkg.com/string-length/-/string-length-5.0.1.tgz", { "dependencies": { "char-regex": "^2.0.0", "strip-ansi": "^7.0.1" } }, "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow=="], - "unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="], + "string-width": ["string-width@4.2.3", "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], - "unrs-resolver": ["unrs-resolver@1.11.1", "", { "dependencies": { "napi-postinstall": "^0.3.0" }, "optionalDependencies": { "@unrs/resolver-binding-android-arm-eabi": "1.11.1", "@unrs/resolver-binding-android-arm64": "1.11.1", "@unrs/resolver-binding-darwin-arm64": "1.11.1", "@unrs/resolver-binding-darwin-x64": "1.11.1", "@unrs/resolver-binding-freebsd-x64": "1.11.1", "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-musl": "1.11.1", "@unrs/resolver-binding-wasm32-wasi": "1.11.1", "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" } }, "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg=="], + "string.prototype.matchall": ["string.prototype.matchall@4.0.12", "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "regexp.prototype.flags": "^1.5.3", "set-function-name": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA=="], - "update-browserslist-db": ["update-browserslist-db@1.1.4", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A=="], + "string.prototype.repeat": ["string.prototype.repeat@1.0.0", "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", { "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" } }, "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w=="], - "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + "string.prototype.trim": ["string.prototype.trim@1.2.10", "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-data-property": "^1.1.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-object-atoms": "^1.0.0", "has-property-descriptors": "^1.0.2" } }, "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA=="], - "url-parse": ["url-parse@1.5.10", "", { "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" } }, "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ=="], + "string.prototype.trimend": ["string.prototype.trimend@1.0.9", "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ=="], - "use-callback-ref": ["use-callback-ref@1.3.3", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg=="], + "string.prototype.trimstart": ["string.prototype.trimstart@1.0.8", "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg=="], - "use-latest-callback": ["use-latest-callback@0.2.6", "", { "peerDependencies": { "react": ">=16.8" } }, "sha512-FvRG9i1HSo0wagmX63Vrm8SnlUU3LMM3WyZkQ76RnslpBrX694AdG4A0zQBx2B3ZifFA0yv/BaEHGBnEax5rZg=="], + "strip-ansi": ["strip-ansi@6.0.1", "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "use-sidecar": ["use-sidecar@1.1.3", "", { "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ=="], + "strip-bom": ["strip-bom@3.0.0", "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz", {}, "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="], - "use-sync-external-store": ["use-sync-external-store@1.6.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w=="], + "strip-final-newline": ["strip-final-newline@2.0.0", "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", {}, "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="], - "utils-merge": ["utils-merge@1.0.1", "", {}, "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="], + "strip-indent": ["strip-indent@3.0.0", "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz", { "dependencies": { "min-indent": "^1.0.0" } }, "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ=="], - "uuid": ["uuid@7.0.3", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg=="], + "strip-json-comments": ["strip-json-comments@3.1.1", "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], - "v8-to-istanbul": ["v8-to-istanbul@9.3.0", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^2.0.0" } }, "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA=="], + "structured-headers": ["structured-headers@0.4.1", "https://registry.yarnpkg.com/structured-headers/-/structured-headers-0.4.1.tgz", {}, "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg=="], - "validate-npm-package-name": ["validate-npm-package-name@5.0.1", "", {}, "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ=="], + "styleq": ["styleq@0.1.3", "https://registry.yarnpkg.com/styleq/-/styleq-0.1.3.tgz", {}, "sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA=="], - "vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="], + "supports-color": ["supports-color@7.2.0", "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], - "vaul": ["vaul@1.1.2", "", { "dependencies": { "@radix-ui/react-dialog": "^1.1.1" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA=="], + "supports-hyperlinks": ["supports-hyperlinks@2.3.0", "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", { "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" } }, "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA=="], - "vlq": ["vlq@1.0.1", "", {}, "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w=="], + "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], - "w3c-xmlserializer": ["w3c-xmlserializer@4.0.0", "", { "dependencies": { "xml-name-validator": "^4.0.0" } }, "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw=="], + "symbol-tree": ["symbol-tree@3.2.4", "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="], - "walker": ["walker@1.0.8", "", { "dependencies": { "makeerror": "1.0.12" } }, "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ=="], + "synckit": ["synckit@0.11.11", "https://registry.yarnpkg.com/synckit/-/synckit-0.11.11.tgz", { "dependencies": { "@pkgr/core": "^0.2.9" } }, "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw=="], - "warn-once": ["warn-once@0.1.1", "", {}, "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q=="], + "tailwind-merge": ["tailwind-merge@3.3.1", "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-3.3.1.tgz", {}, "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g=="], - "watchpack": ["watchpack@2.4.4", "", { "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" } }, "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA=="], + "tailwindcss": ["tailwindcss@4.1.16", "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-4.1.16.tgz", {}, "sha512-pONL5awpaQX4LN5eiv7moSiSPd/DLDzKVRJz8Q9PgzmAdd1R4307GQS2ZpfiN7ZmekdQrfhZZiSE5jkLR4WNaA=="], - "wcwidth": ["wcwidth@1.0.1", "", { "dependencies": { "defaults": "^1.0.3" } }, "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg=="], + "tailwindcss-animate": ["tailwindcss-animate@1.0.7", "https://registry.yarnpkg.com/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", { "peerDependencies": { "tailwindcss": ">=3.0.0 || insiders" } }, "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA=="], - "webidl-conversions": ["webidl-conversions@5.0.0", "", {}, "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA=="], + "tapable": ["tapable@2.3.0", "https://registry.yarnpkg.com/tapable/-/tapable-2.3.0.tgz", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], - "webpack": ["webpack@5.102.1", "", { "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.15.0", "acorn-import-phases": "^1.0.3", "browserslist": "^4.26.3", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.3", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", "terser-webpack-plugin": "^5.3.11", "watchpack": "^2.4.4", "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" } }, "sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ=="], + "terminal-link": ["terminal-link@2.1.1", "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz", { "dependencies": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" } }, "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ=="], - "webpack-sources": ["webpack-sources@3.3.3", "", {}, "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg=="], + "terser": ["terser@5.44.0", "https://registry.yarnpkg.com/terser/-/terser-5.44.0.tgz", { "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" } }, "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w=="], - "whatwg-encoding": ["whatwg-encoding@2.0.0", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg=="], + "terser-webpack-plugin": ["terser-webpack-plugin@5.3.14", "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "peerDependencies": { "webpack": "^5.1.0" } }, "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw=="], - "whatwg-fetch": ["whatwg-fetch@3.6.20", "", {}, "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg=="], + "test-exclude": ["test-exclude@6.0.0", "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz", { "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" } }, "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w=="], - "whatwg-mimetype": ["whatwg-mimetype@3.0.0", "", {}, "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q=="], + "throat": ["throat@5.0.0", "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz", {}, "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA=="], - "whatwg-url": ["whatwg-url@11.0.0", "", { "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" } }, "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ=="], + "tinyglobby": ["tinyglobby@0.2.15", "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.15.tgz", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], - "whatwg-url-without-unicode": ["whatwg-url-without-unicode@8.0.0-3", "", { "dependencies": { "buffer": "^5.4.3", "punycode": "^2.1.1", "webidl-conversions": "^5.0.0" } }, "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig=="], + "tmpl": ["tmpl@1.0.5", "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz", {}, "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="], - "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + "to-regex-range": ["to-regex-range@5.0.1", "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], - "which-boxed-primitive": ["which-boxed-primitive@1.1.1", "", { "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", "is-number-object": "^1.1.1", "is-string": "^1.1.1", "is-symbol": "^1.1.1" } }, "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA=="], + "toidentifier": ["toidentifier@1.0.1", "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], - "which-builtin-type": ["which-builtin-type@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.1.0", "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", "which-typed-array": "^1.1.16" } }, "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q=="], + "toqr": ["toqr@0.1.1", "https://registry.yarnpkg.com/toqr/-/toqr-0.1.1.tgz", {}, "sha512-FWAPzCIHZHnrE/5/w9MPk0kK25hSQSH2IKhYh9PyjS3SG/+IEMvlwIHbhz+oF7xl54I+ueZlVnMjyzdSwLmAwA=="], - "which-collection": ["which-collection@1.0.2", "", { "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" } }, "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw=="], + "tough-cookie": ["tough-cookie@4.1.4", "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz", { "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", "universalify": "^0.2.0", "url-parse": "^1.5.3" } }, "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag=="], - "which-typed-array": ["which-typed-array@1.1.19", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw=="], + "tr46": ["tr46@3.0.0", "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz", { "dependencies": { "punycode": "^2.1.1" } }, "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA=="], - "wonka": ["wonka@6.3.5", "", {}, "sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw=="], + "ts-api-utils": ["ts-api-utils@2.1.0", "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ=="], - "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], + "tsconfig-paths": ["tsconfig-paths@3.15.0", "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", { "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg=="], - "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + "tslib": ["tslib@2.8.1", "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "wrap-ansi-cjs": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + "tw-animate-css": ["tw-animate-css@1.4.0", "https://registry.yarnpkg.com/tw-animate-css/-/tw-animate-css-1.4.0.tgz", {}, "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ=="], - "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], + "type-check": ["type-check@0.4.0", "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], - "write-file-atomic": ["write-file-atomic@4.0.2", "", { "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" } }, "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg=="], + "type-detect": ["type-detect@4.0.8", "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz", {}, "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="], - "ws": ["ws@6.2.3", "", { "dependencies": { "async-limiter": "~1.0.0" } }, "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA=="], + "type-fest": ["type-fest@0.7.1", "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz", {}, "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg=="], - "xcode": ["xcode@3.0.1", "", { "dependencies": { "simple-plist": "^1.1.0", "uuid": "^7.0.3" } }, "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA=="], + "type-is": ["type-is@1.6.18", "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz", { "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" } }, "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="], - "xml-name-validator": ["xml-name-validator@4.0.0", "", {}, "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw=="], + "typed-array-buffer": ["typed-array-buffer@1.0.3", "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-typed-array": "^1.1.14" } }, "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw=="], - "xml2js": ["xml2js@0.6.0", "", { "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" } }, "sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w=="], + "typed-array-byte-length": ["typed-array-byte-length@1.0.3", "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", { "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.14" } }, "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg=="], - "xmlbuilder": ["xmlbuilder@15.1.1", "", {}, "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg=="], + "typed-array-byte-offset": ["typed-array-byte-offset@1.0.4", "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.15", "reflect.getprototypeof": "^1.0.9" } }, "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ=="], - "xmlchars": ["xmlchars@2.2.0", "", {}, "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="], + "typed-array-length": ["typed-array-length@1.0.7", "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.7.tgz", { "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "is-typed-array": "^1.1.13", "possible-typed-array-names": "^1.0.0", "reflect.getprototypeof": "^1.0.6" } }, "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg=="], - "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], + "typescript": ["typescript@5.9.3", "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], - "yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="], + "ua-parser-js": ["ua-parser-js@1.0.41", "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.41.tgz", { "bin": { "ua-parser-js": "script/cli.js" } }, "sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug=="], - "yaml": ["yaml@2.8.1", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw=="], + "unbox-primitive": ["unbox-primitive@1.1.0", "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="], - "yargs": ["yargs@17.7.2", "", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="], + "undici": ["undici@6.22.0", "https://registry.yarnpkg.com/undici/-/undici-6.22.0.tgz", {}, "sha512-hU/10obOIu62MGYjdskASR3CUAiYaFTtC9Pa6vHyf//mAipSvSQg6od2CnJswq7fvzNS3zJhxoRkgNVaHurWKw=="], - "yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="], + "undici-types": ["undici-types@7.16.0", "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="], - "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + "unicode-canonical-property-names-ecmascript": ["unicode-canonical-property-names-ecmascript@2.0.1", "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", {}, "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg=="], - "zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], + "unicode-match-property-ecmascript": ["unicode-match-property-ecmascript@2.0.0", "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", { "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" } }, "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q=="], - "zod-to-json-schema": ["zod-to-json-schema@3.24.6", "", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg=="], + "unicode-match-property-value-ecmascript": ["unicode-match-property-value-ecmascript@2.2.1", "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", {}, "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg=="], - "@babel/core/@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], + "unicode-property-aliases-ecmascript": ["unicode-property-aliases-ecmascript@2.2.0", "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", {}, "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ=="], - "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "universalify": ["universalify@0.2.0", "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz", {}, "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg=="], - "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + "unpipe": ["unpipe@1.0.0", "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="], - "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "unrs-resolver": ["unrs-resolver@1.11.1", "https://registry.yarnpkg.com/unrs-resolver/-/unrs-resolver-1.11.1.tgz", { "dependencies": { "napi-postinstall": "^0.3.0" }, "optionalDependencies": { "@unrs/resolver-binding-android-arm-eabi": "1.11.1", "@unrs/resolver-binding-android-arm64": "1.11.1", "@unrs/resolver-binding-darwin-arm64": "1.11.1", "@unrs/resolver-binding-darwin-x64": "1.11.1", "@unrs/resolver-binding-freebsd-x64": "1.11.1", "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-musl": "1.11.1", "@unrs/resolver-binding-wasm32-wasi": "1.11.1", "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" } }, "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg=="], - "@babel/helper-create-class-features-plugin/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "update-browserslist-db": ["update-browserslist-db@1.1.4", "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A=="], - "@babel/helper-create-regexp-features-plugin/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "uri-js": ["uri-js@4.4.1", "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], - "@babel/helper-define-polyfill-provider/resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], + "url-parse": ["url-parse@1.5.10", "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz", { "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" } }, "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ=="], - "@babel/highlight/chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], + "use-callback-ref": ["use-callback-ref@1.3.3", "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.3.tgz", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg=="], - "@babel/plugin-transform-runtime/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "use-latest-callback": ["use-latest-callback@0.2.6", "https://registry.yarnpkg.com/use-latest-callback/-/use-latest-callback-0.2.6.tgz", { "peerDependencies": { "react": ">=16.8" } }, "sha512-FvRG9i1HSo0wagmX63Vrm8SnlUU3LMM3WyZkQ76RnslpBrX694AdG4A0zQBx2B3ZifFA0yv/BaEHGBnEax5rZg=="], - "@babel/template/@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], + "use-sidecar": ["use-sidecar@1.1.3", "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.1.3.tgz", { "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ=="], - "@babel/traverse/@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], + "use-sync-external-store": ["use-sync-external-store@1.6.0", "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w=="], - "@babel/traverse--for-generate-function-map/@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], + "utils-merge": ["utils-merge@1.0.1", "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz", {}, "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="], - "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], + "uuid": ["uuid@7.0.3", "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg=="], - "@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], + "v8-to-istanbul": ["v8-to-istanbul@9.3.0", "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^2.0.0" } }, "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA=="], - "@expo/cli/glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], + "validate-npm-package-name": ["validate-npm-package-name@5.0.1", "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", {}, "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ=="], - "@expo/cli/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "vary": ["vary@1.1.2", "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="], - "@expo/cli/pretty-format": ["pretty-format@29.7.0", "", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], + "vaul": ["vaul@1.1.2", "https://registry.yarnpkg.com/vaul/-/vaul-1.1.2.tgz", { "dependencies": { "@radix-ui/react-dialog": "^1.1.1" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA=="], - "@expo/cli/resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], + "vlq": ["vlq@1.0.1", "https://registry.yarnpkg.com/vlq/-/vlq-1.0.1.tgz", {}, "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w=="], - "@expo/cli/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + "w3c-xmlserializer": ["w3c-xmlserializer@4.0.0", "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", { "dependencies": { "xml-name-validator": "^4.0.0" } }, "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw=="], - "@expo/cli/ws": ["ws@8.18.3", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg=="], + "walker": ["walker@1.0.8", "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz", { "dependencies": { "makeerror": "1.0.12" } }, "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ=="], - "@expo/config/glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], + "warn-once": ["warn-once@0.1.1", "https://registry.yarnpkg.com/warn-once/-/warn-once-0.1.1.tgz", {}, "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q=="], - "@expo/config/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + "watchpack": ["watchpack@2.4.4", "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.4.tgz", { "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" } }, "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA=="], - "@expo/config-plugins/glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], + "wcwidth": ["wcwidth@1.0.1", "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz", { "dependencies": { "defaults": "^1.0.3" } }, "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg=="], - "@expo/config-plugins/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + "webidl-conversions": ["webidl-conversions@7.0.0", "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="], - "@expo/devcert/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], + "webpack": ["webpack@5.102.1", "https://registry.yarnpkg.com/webpack/-/webpack-5.102.1.tgz", { "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.15.0", "acorn-import-phases": "^1.0.3", "browserslist": "^4.26.3", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.3", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", "terser-webpack-plugin": "^5.3.11", "watchpack": "^2.4.4", "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" } }, "sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ=="], - "@expo/devcert/glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], + "webpack-sources": ["webpack-sources@3.3.3", "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.3.tgz", {}, "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg=="], - "@expo/fingerprint/glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], + "whatwg-encoding": ["whatwg-encoding@2.0.0", "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg=="], - "@expo/fingerprint/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "whatwg-fetch": ["whatwg-fetch@3.6.20", "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", {}, "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg=="], - "@expo/fingerprint/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + "whatwg-mimetype": ["whatwg-mimetype@3.0.0", "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", {}, "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q=="], - "@expo/image-utils/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + "whatwg-url": ["whatwg-url@11.0.0", "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz", { "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" } }, "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ=="], - "@expo/mcp-tunnel/ws": ["ws@8.18.3", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg=="], + "whatwg-url-minimum": ["whatwg-url-minimum@0.1.1", "https://registry.yarnpkg.com/whatwg-url-minimum/-/whatwg-url-minimum-0.1.1.tgz", {}, "sha512-u2FNVjFVFZhdjb502KzXy1gKn1mEisQRJssmSJT8CPhZdZa0AP6VCbWlXERKyGu0l09t0k50FiDiralpGhBxgA=="], - "@expo/metro/metro-runtime": ["metro-runtime@0.83.2", "", { "dependencies": { "@babel/runtime": "^7.25.0", "flow-enums-runtime": "^0.0.6" } }, "sha512-nnsPtgRvFbNKwemqs0FuyFDzXLl+ezuFsUXDbX8o0SXOfsOPijqiQrf3kuafO1Zx1aUWf4NOrKJMAQP5EEHg9A=="], + "which": ["which@2.0.2", "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], - "@expo/metro/metro-source-map": ["metro-source-map@0.83.2", "", { "dependencies": { "@babel/traverse": "^7.25.3", "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3", "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "metro-symbolicate": "0.83.2", "nullthrows": "^1.1.1", "ob1": "0.83.2", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "sha512-5FL/6BSQvshIKjXOennt9upFngq2lFvDakZn5LfauIVq8+L4sxXewIlSTcxAtzbtjAIaXeOSVMtCJ5DdfCt9AA=="], + "which-boxed-primitive": ["which-boxed-primitive@1.1.1", "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", { "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", "is-number-object": "^1.1.1", "is-string": "^1.1.1", "is-symbol": "^1.1.1" } }, "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA=="], - "@expo/metro-config/@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], + "which-builtin-type": ["which-builtin-type@1.2.1", "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz", { "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.1.0", "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", "which-typed-array": "^1.1.16" } }, "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q=="], - "@expo/metro-config/glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], + "which-collection": ["which-collection@1.0.2", "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz", { "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" } }, "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw=="], - "@expo/metro-config/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "which-typed-array": ["which-typed-array@1.1.19", "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.19.tgz", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw=="], - "@expo/metro-config/postcss": ["postcss@8.4.49", "", { "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA=="], + "word-wrap": ["word-wrap@1.2.5", "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], - "@expo/metro-runtime/pretty-format": ["pretty-format@29.7.0", "", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], + "wrap-ansi": ["wrap-ansi@7.0.0", "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], - "@expo/prebuild-config/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + "wrappy": ["wrappy@1.0.2", "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], - "@isaacs/cliui/string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], + "write-file-atomic": ["write-file-atomic@4.0.2", "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz", { "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" } }, "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg=="], - "@isaacs/cliui/strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + "ws": ["ws@7.5.10", "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="], - "@isaacs/cliui/wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="], + "xcode": ["xcode@3.0.1", "https://registry.yarnpkg.com/xcode/-/xcode-3.0.1.tgz", { "dependencies": { "simple-plist": "^1.1.0", "uuid": "^7.0.3" } }, "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA=="], - "@istanbuljs/load-nyc-config/camelcase": ["camelcase@5.3.1", "", {}, "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="], + "xml-name-validator": ["xml-name-validator@4.0.0", "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz", {}, "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw=="], - "@istanbuljs/load-nyc-config/find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], + "xml2js": ["xml2js@0.6.0", "https://registry.yarnpkg.com/xml2js/-/xml2js-0.6.0.tgz", { "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" } }, "sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w=="], - "@istanbuljs/load-nyc-config/js-yaml": ["js-yaml@3.14.1", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="], + "xmlbuilder": ["xmlbuilder@15.1.1", "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz", {}, "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg=="], - "@jest/core/pretty-format": ["pretty-format@29.7.0", "", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], + "xmlchars": ["xmlchars@2.2.0", "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz", {}, "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="], - "@jest/reporters/string-length": ["string-length@4.0.2", "", { "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" } }, "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ=="], + "y18n": ["y18n@5.0.8", "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], - "@react-native/community-cli-plugin/metro": ["metro@0.83.3", "", { "dependencies": { "@babel/code-frame": "^7.24.7", "@babel/core": "^7.25.2", "@babel/generator": "^7.25.0", "@babel/parser": "^7.25.3", "@babel/template": "^7.25.0", "@babel/traverse": "^7.25.3", "@babel/types": "^7.25.2", "accepts": "^1.3.7", "chalk": "^4.0.0", "ci-info": "^2.0.0", "connect": "^3.6.5", "debug": "^4.4.0", "error-stack-parser": "^2.0.6", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", "hermes-parser": "0.32.0", "image-size": "^1.0.2", "invariant": "^2.2.4", "jest-worker": "^29.7.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", "metro-babel-transformer": "0.83.3", "metro-cache": "0.83.3", "metro-cache-key": "0.83.3", "metro-config": "0.83.3", "metro-core": "0.83.3", "metro-file-map": "0.83.3", "metro-resolver": "0.83.3", "metro-runtime": "0.83.3", "metro-source-map": "0.83.3", "metro-symbolicate": "0.83.3", "metro-transform-plugins": "0.83.3", "metro-transform-worker": "0.83.3", "mime-types": "^2.1.27", "nullthrows": "^1.1.1", "serialize-error": "^2.1.0", "source-map": "^0.5.6", "throat": "^5.0.0", "ws": "^7.5.10", "yargs": "^17.6.2" }, "bin": { "metro": "src/cli.js" } }, "sha512-+rP+/GieOzkt97hSJ0MrPOuAH/jpaS21ZDvL9DJ35QYRDlQcwzcvUlGUf79AnQxq/2NPiS/AULhhM4TKutIt8Q=="], + "yallist": ["yallist@3.1.1", "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], - "@react-native/community-cli-plugin/metro-config": ["metro-config@0.83.3", "", { "dependencies": { "connect": "^3.6.5", "flow-enums-runtime": "^0.0.6", "jest-validate": "^29.7.0", "metro": "0.83.3", "metro-cache": "0.83.3", "metro-core": "0.83.3", "metro-runtime": "0.83.3", "yaml": "^2.6.1" } }, "sha512-mTel7ipT0yNjKILIan04bkJkuCzUUkm2SeEaTads8VfEecCh+ltXchdq6DovXJqzQAXuR2P9cxZB47Lg4klriA=="], + "yaml": ["yaml@2.8.1", "https://registry.yarnpkg.com/yaml/-/yaml-2.8.1.tgz", { "bin": { "yaml": "bin.mjs" } }, "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw=="], - "@react-native/community-cli-plugin/metro-core": ["metro-core@0.83.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6", "lodash.throttle": "^4.1.1", "metro-resolver": "0.83.3" } }, "sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw=="], + "yargs": ["yargs@17.7.2", "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="], - "@react-native/community-cli-plugin/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + "yargs-parser": ["yargs-parser@21.1.1", "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="], - "@react-native/dev-middleware/open": ["open@7.4.2", "", { "dependencies": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" } }, "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q=="], + "yocto-queue": ["yocto-queue@0.1.0", "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], - "@react-navigation/core/react-is": ["react-is@19.2.0", "", {}, "sha512-x3Ax3kNSMIIkyVYhWPyO09bu0uttcAIoecO/um/rKGQ4EltYWVYtyiGkS/3xMynrbVQdS69Jhlv8FXUEZehlzA=="], + "zod": ["zod@3.25.76", "https://registry.yarnpkg.com/zod/-/zod-3.25.76.tgz", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], - "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.6.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg=="], + "@babel/core/semver": ["semver@6.3.1", "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.6.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA=="], + "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], - "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], + "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.0.7", "", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@tybys/wasm-util": "^0.10.1" }, "bundled": true }, "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw=="], + "@babel/helper-create-class-features-plugin/semver": ["semver@6.3.1", "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], + "@babel/helper-create-regexp-features-plugin/semver": ["semver@6.3.1", "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "@babel/helper-define-polyfill-provider/resolve": ["resolve@1.22.11", "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], - "@types/jest/pretty-format": ["pretty-format@29.7.0", "", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], + "@babel/plugin-transform-runtime/semver": ["semver@6.3.1", "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], + "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], - "@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "@eslint/eslintrc/globals": ["globals@14.0.0", "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], - "@typescript-eslint/typescript-estree/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + "@expo/cli/glob": ["glob@13.0.6", "https://registry.yarnpkg.com/glob/-/glob-13.0.6.tgz", { "dependencies": { "minimatch": "^10.2.2", "minipass": "^7.1.3", "path-scurry": "^2.0.2" } }, "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw=="], - "accepts/negotiator": ["negotiator@0.6.3", "", {}, "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="], + "@expo/cli/pretty-format": ["pretty-format@29.7.0", "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], - "ajv-formats/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], + "@expo/cli/semver": ["semver@7.7.3", "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "ajv-keywords/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], + "@expo/cli/ws": ["ws@8.18.3", "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg=="], - "ansi-escapes/type-fest": ["type-fest@0.21.3", "", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="], + "@expo/config/glob": ["glob@13.0.6", "https://registry.yarnpkg.com/glob/-/glob-13.0.6.tgz", { "dependencies": { "minimatch": "^10.2.2", "minipass": "^7.1.3", "path-scurry": "^2.0.2" } }, "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw=="], - "anymatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "@expo/config/semver": ["semver@7.7.3", "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "babel-plugin-istanbul/istanbul-lib-instrument": ["istanbul-lib-instrument@5.2.1", "", { "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" } }, "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg=="], + "@expo/config-plugins/glob": ["glob@13.0.6", "https://registry.yarnpkg.com/glob/-/glob-13.0.6.tgz", { "dependencies": { "minimatch": "^10.2.2", "minipass": "^7.1.3", "path-scurry": "^2.0.2" } }, "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw=="], - "babel-plugin-polyfill-corejs2/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "@expo/config-plugins/semver": ["semver@7.7.3", "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "basic-auth/safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="], + "@expo/devcert/debug": ["debug@3.2.7", "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], - "body-parser/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + "@expo/fingerprint/glob": ["glob@13.0.6", "https://registry.yarnpkg.com/glob/-/glob-13.0.6.tgz", { "dependencies": { "minimatch": "^10.2.2", "minipass": "^7.1.3", "path-scurry": "^2.0.2" } }, "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw=="], - "chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "@expo/fingerprint/minimatch": ["minimatch@10.2.3", "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.3.tgz", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg=="], - "compression/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + "@expo/fingerprint/semver": ["semver@7.7.3", "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "connect/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + "@expo/image-utils/semver": ["semver@7.7.3", "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "cssstyle/cssom": ["cssom@0.3.8", "", {}, "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="], + "@expo/metro-config/glob": ["glob@13.0.6", "https://registry.yarnpkg.com/glob/-/glob-13.0.6.tgz", { "dependencies": { "minimatch": "^10.2.2", "minipass": "^7.1.3", "path-scurry": "^2.0.2" } }, "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw=="], - "domexception/webidl-conversions": ["webidl-conversions@7.0.0", "", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="], + "@expo/metro-config/postcss": ["postcss@8.4.49", "https://registry.yarnpkg.com/postcss/-/postcss-8.4.49.tgz", { "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA=="], - "escodegen/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "@expo/metro-runtime/pretty-format": ["pretty-format@29.7.0", "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], - "eslint-import-resolver-node/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], + "@expo/prebuild-config/semver": ["semver@7.7.3", "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "eslint-import-resolver-node/resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], + "@istanbuljs/load-nyc-config/camelcase": ["camelcase@5.3.1", "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz", {}, "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="], - "eslint-module-utils/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], + "@istanbuljs/load-nyc-config/find-up": ["find-up@4.1.0", "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], - "eslint-plugin-import/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], + "@istanbuljs/load-nyc-config/js-yaml": ["js-yaml@3.14.1", "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="], - "eslint-plugin-import/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "@jest/core/pretty-format": ["pretty-format@29.7.0", "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], - "eslint-plugin-react/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "@jest/reporters/string-length": ["string-length@4.0.2", "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz", { "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" } }, "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ=="], - "expect/jest-matcher-utils": ["jest-matcher-utils@29.7.0", "", { "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g=="], + "@react-native/codegen/hermes-parser": ["hermes-parser@0.32.0", "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.32.0.tgz", { "dependencies": { "hermes-estree": "0.32.0" } }, "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw=="], - "expo/pretty-format": ["pretty-format@29.7.0", "", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], + "@react-native/community-cli-plugin/semver": ["semver@7.7.3", "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "expo-modules-autolinking/commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], + "@react-native/dev-middleware/open": ["open@7.4.2", "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz", { "dependencies": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" } }, "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q=="], - "expo-modules-autolinking/glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.6.0", "https://registry.yarnpkg.com/@emnapi/core/-/core-1.6.0.tgz", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg=="], - "expo-router/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.0", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w=="], + "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.6.0", "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.6.0.tgz", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA=="], - "express/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], - "express/finalhandler": ["finalhandler@1.3.1", "", { "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", "statuses": "2.0.1", "unpipe": "~1.0.0" } }, "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ=="], + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.0.7", "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.7.tgz", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@tybys/wasm-util": "^0.10.1" }, "bundled": true }, "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw=="], - "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], - "fbjs/promise": ["promise@7.3.1", "", { "dependencies": { "asap": "~2.0.3" } }, "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg=="], + "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "finalhandler/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + "@types/jest/pretty-format": ["pretty-format@29.7.0", "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], - "finalhandler/encodeurl": ["encodeurl@1.0.2", "", {}, "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="], + "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], - "finalhandler/on-finished": ["on-finished@2.3.0", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww=="], + "@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], - "finalhandler/statuses": ["statuses@1.5.0", "", {}, "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="], + "@typescript-eslint/typescript-estree/semver": ["semver@7.7.3", "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "foreground-child/signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], + "accepts/negotiator": ["negotiator@0.6.3", "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz", {}, "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="], - "hoist-non-react-statics/react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], + "ajv-formats/ajv": ["ajv@8.17.1", "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], - "import-fresh/resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], + "ajv-keywords/ajv": ["ajv@8.17.1", "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], - "is-bun-module/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + "ansi-escapes/type-fest": ["type-fest@0.21.3", "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="], - "istanbul-lib-instrument/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + "anymatch/picomatch": ["picomatch@2.3.1", "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], - "istanbul-lib-source-maps/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "babel-plugin-istanbul/istanbul-lib-instrument": ["istanbul-lib-instrument@5.2.1", "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", { "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" } }, "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg=="], - "jest-circus/jest-matcher-utils": ["jest-matcher-utils@29.7.0", "", { "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g=="], + "babel-plugin-polyfill-corejs2/semver": ["semver@6.3.1", "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "jest-circus/pretty-format": ["pretty-format@29.7.0", "", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], + "babel-plugin-syntax-hermes-parser/hermes-parser": ["hermes-parser@0.32.0", "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.32.0.tgz", { "dependencies": { "hermes-estree": "0.32.0" } }, "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw=="], - "jest-config/pretty-format": ["pretty-format@29.7.0", "", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], + "babel-preset-expo/babel-plugin-syntax-hermes-parser": ["babel-plugin-syntax-hermes-parser@0.29.1", "https://registry.yarnpkg.com/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.29.1.tgz", { "dependencies": { "hermes-parser": "0.29.1" } }, "sha512-2WFYnoWGdmih1I1J5eIqxATOeycOqRwYxAQBu3cUu/rhwInwHUg7k60AFNbuGjSDL8tje5GDrAnxzRLcu2pYcA=="], - "jest-each/pretty-format": ["pretty-format@29.7.0", "", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], + "basic-auth/safe-buffer": ["safe-buffer@5.1.2", "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="], - "jest-leak-detector/pretty-format": ["pretty-format@29.7.0", "", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], + "body-parser/debug": ["debug@2.6.9", "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - "jest-message-util/@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], + "chalk/ansi-styles": ["ansi-styles@4.3.0", "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "jest-message-util/pretty-format": ["pretty-format@29.7.0", "", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], + "compression/debug": ["debug@2.6.9", "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - "jest-resolve/resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], + "connect/debug": ["debug@2.6.9", "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - "jest-runner/source-map-support": ["source-map-support@0.5.13", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w=="], + "cssstyle/cssom": ["cssom@0.3.8", "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz", {}, "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="], - "jest-runtime/strip-bom": ["strip-bom@4.0.0", "", {}, "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="], + "escodegen/source-map": ["source-map@0.6.1", "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "jest-snapshot/jest-diff": ["jest-diff@29.7.0", "", { "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw=="], + "eslint-import-resolver-node/debug": ["debug@3.2.7", "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], - "jest-snapshot/jest-matcher-utils": ["jest-matcher-utils@29.7.0", "", { "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g=="], + "eslint-import-resolver-node/resolve": ["resolve@1.22.11", "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], - "jest-snapshot/pretty-format": ["pretty-format@29.7.0", "", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], + "eslint-module-utils/debug": ["debug@3.2.7", "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], - "jest-snapshot/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + "eslint-plugin-import/debug": ["debug@3.2.7", "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], - "jest-util/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "eslint-plugin-import/semver": ["semver@6.3.1", "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "jest-validate/pretty-format": ["pretty-format@29.7.0", "", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], + "eslint-plugin-react/semver": ["semver@6.3.1", "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "jest-watch-select-projects/chalk": ["chalk@3.0.0", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg=="], + "expect/jest-matcher-utils": ["jest-matcher-utils@29.7.0", "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", { "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g=="], - "jest-watch-typeahead/ansi-escapes": ["ansi-escapes@6.2.1", "", {}, "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig=="], + "expo/pretty-format": ["pretty-format@29.7.0", "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], - "jest-watch-typeahead/slash": ["slash@5.1.0", "", {}, "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg=="], + "expo-image/sf-symbols-typescript": ["sf-symbols-typescript@2.2.0", "https://registry.yarnpkg.com/sf-symbols-typescript/-/sf-symbols-typescript-2.2.0.tgz", {}, "sha512-TPbeg0b7ylrswdGCji8FRGFAKuqbpQlLbL8SOle3j1iHSs5Ob5mhvMAxWN2UItOjgALAB5Zp3fmMfj8mbWvXKw=="], - "jest-watch-typeahead/strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + "expo-modules-autolinking/commander": ["commander@7.2.0", "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], - "jest-watcher/string-length": ["string-length@4.0.2", "", { "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" } }, "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ=="], + "expo-router/@expo/metro-runtime": ["@expo/metro-runtime@55.0.6", "https://registry.yarnpkg.com/@expo/metro-runtime/-/metro-runtime-55.0.6.tgz", { "dependencies": { "@expo/log-box": "55.0.7", "anser": "^1.4.9", "pretty-format": "^29.7.0", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-dom": "*", "react-native": "*" }, "optionalPeers": ["react-dom"] }, "sha512-l8VvgKN9md+URjeQDB+DnHVmvpcWI6zFLH6yv7GTv4sfRDKyaZ5zDXYjTP1phYdgW6ea2NrRtCGNIxylWhsgtg=="], - "jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + "expo-router/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.0", "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.2.0.tgz", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w=="], - "jsdom/webidl-conversions": ["webidl-conversions@7.0.0", "", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="], + "express/debug": ["debug@2.6.9", "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - "jsdom/ws": ["ws@8.18.3", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg=="], + "express/finalhandler": ["finalhandler@1.3.1", "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz", { "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", "statuses": "2.0.1", "unpipe": "~1.0.0" } }, "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ=="], - "lighthouse-logger/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + "fast-glob/glob-parent": ["glob-parent@5.1.2", "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], - "log-symbols/chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], + "fbjs/promise": ["promise@7.3.1", "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz", { "dependencies": { "asap": "~2.0.3" } }, "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg=="], - "make-dir/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + "finalhandler/debug": ["debug@2.6.9", "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - "metro/@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], + "finalhandler/encodeurl": ["encodeurl@1.0.2", "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz", {}, "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="], - "metro/ci-info": ["ci-info@2.0.0", "", {}, "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="], + "finalhandler/on-finished": ["on-finished@2.3.0", "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww=="], - "metro/hermes-parser": ["hermes-parser@0.32.0", "", { "dependencies": { "hermes-estree": "0.32.0" } }, "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw=="], + "finalhandler/statuses": ["statuses@1.5.0", "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz", {}, "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="], - "metro/metro-runtime": ["metro-runtime@0.83.2", "", { "dependencies": { "@babel/runtime": "^7.25.0", "flow-enums-runtime": "^0.0.6" } }, "sha512-nnsPtgRvFbNKwemqs0FuyFDzXLl+ezuFsUXDbX8o0SXOfsOPijqiQrf3kuafO1Zx1aUWf4NOrKJMAQP5EEHg9A=="], + "hosted-git-info/lru-cache": ["lru-cache@10.4.3", "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], - "metro/metro-source-map": ["metro-source-map@0.83.2", "", { "dependencies": { "@babel/traverse": "^7.25.3", "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3", "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "metro-symbolicate": "0.83.2", "nullthrows": "^1.1.1", "ob1": "0.83.2", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "sha512-5FL/6BSQvshIKjXOennt9upFngq2lFvDakZn5LfauIVq8+L4sxXewIlSTcxAtzbtjAIaXeOSVMtCJ5DdfCt9AA=="], + "import-fresh/resolve-from": ["resolve-from@4.0.0", "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], - "metro/metro-symbolicate": ["metro-symbolicate@0.83.2", "", { "dependencies": { "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "metro-source-map": "0.83.2", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "vlq": "^1.0.0" }, "bin": { "metro-symbolicate": "src/index.js" } }, "sha512-KoU9BLwxxED6n33KYuQQuc5bXkIxF3fSwlc3ouxrrdLWwhu64muYZNQrukkWzhVKRNFIXW7X2iM8JXpi2heIPw=="], + "is-bun-module/semver": ["semver@7.7.3", "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "metro/ws": ["ws@7.5.10", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="], + "istanbul-lib-instrument/semver": ["semver@7.7.3", "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "metro-babel-transformer/hermes-parser": ["hermes-parser@0.32.0", "", { "dependencies": { "hermes-estree": "0.32.0" } }, "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw=="], + "istanbul-lib-source-maps/source-map": ["source-map@0.6.1", "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "metro-cache/https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], + "jest-circus/jest-matcher-utils": ["jest-matcher-utils@29.7.0", "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", { "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g=="], - "metro-config/metro-runtime": ["metro-runtime@0.83.2", "", { "dependencies": { "@babel/runtime": "^7.25.0", "flow-enums-runtime": "^0.0.6" } }, "sha512-nnsPtgRvFbNKwemqs0FuyFDzXLl+ezuFsUXDbX8o0SXOfsOPijqiQrf3kuafO1Zx1aUWf4NOrKJMAQP5EEHg9A=="], + "jest-circus/pretty-format": ["pretty-format@29.7.0", "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], - "metro-transform-worker/metro-source-map": ["metro-source-map@0.83.2", "", { "dependencies": { "@babel/traverse": "^7.25.3", "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3", "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "metro-symbolicate": "0.83.2", "nullthrows": "^1.1.1", "ob1": "0.83.2", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "sha512-5FL/6BSQvshIKjXOennt9upFngq2lFvDakZn5LfauIVq8+L4sxXewIlSTcxAtzbtjAIaXeOSVMtCJ5DdfCt9AA=="], + "jest-config/pretty-format": ["pretty-format@29.7.0", "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], - "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "jest-each/pretty-format": ["pretty-format@29.7.0", "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], - "morgan/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + "jest-leak-detector/pretty-format": ["pretty-format@29.7.0", "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], - "morgan/on-finished": ["on-finished@2.3.0", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww=="], + "jest-message-util/pretty-format": ["pretty-format@29.7.0", "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], - "node-fetch/whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + "jest-resolve/resolve": ["resolve@1.22.11", "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], - "npm-package-arg/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + "jest-runner/source-map-support": ["source-map-support@0.5.13", "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w=="], - "ora/chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], + "jest-runtime/strip-bom": ["strip-bom@4.0.0", "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz", {}, "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="], - "ora/strip-ansi": ["strip-ansi@5.2.0", "", { "dependencies": { "ansi-regex": "^4.1.0" } }, "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="], + "jest-snapshot/jest-diff": ["jest-diff@29.7.0", "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz", { "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw=="], - "parse-json/@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], + "jest-snapshot/jest-matcher-utils": ["jest-matcher-utils@29.7.0", "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", { "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g=="], - "pkg-dir/find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], + "jest-snapshot/pretty-format": ["pretty-format@29.7.0", "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], - "pretty-format/@jest/schemas": ["@jest/schemas@30.0.5", "", { "dependencies": { "@sinclair/typebox": "^0.34.0" } }, "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA=="], + "jest-snapshot/semver": ["semver@7.7.3", "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "prop-types/react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], + "jest-util/picomatch": ["picomatch@2.3.1", "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], - "rc/strip-json-comments": ["strip-json-comments@2.0.1", "", {}, "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="], + "jest-validate/pretty-format": ["pretty-format@29.7.0", "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], - "react-devtools-core/ws": ["ws@7.5.10", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="], + "jest-watch-select-projects/chalk": ["chalk@3.0.0", "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg=="], - "react-native/pretty-format": ["pretty-format@29.7.0", "", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], + "jest-watch-typeahead/ansi-escapes": ["ansi-escapes@6.2.1", "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.1.tgz", {}, "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig=="], - "react-native/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + "jest-watch-typeahead/slash": ["slash@5.1.0", "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz", {}, "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg=="], - "react-native-reanimated/semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="], + "jest-watch-typeahead/strip-ansi": ["strip-ansi@7.1.2", "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], - "react-native-web/@react-native/normalize-colors": ["@react-native/normalize-colors@0.74.89", "", {}, "sha512-qoMMXddVKVhZ8PA1AbUCk83trpd6N+1nF2A6k1i6LsQObyS92fELuk8kU/lQs6M7BsMHwqyLCpQJ1uFgNvIQXg=="], + "jest-watcher/string-length": ["string-length@4.0.2", "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz", { "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" } }, "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ=="], - "react-native-web/memoize-one": ["memoize-one@6.0.0", "", {}, "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="], + "jest-worker/supports-color": ["supports-color@8.1.1", "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], - "react-native-worklets/semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="], + "jsdom/ws": ["ws@8.18.3", "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg=="], - "react-test-renderer/react-is": ["react-is@19.2.0", "", {}, "sha512-x3Ax3kNSMIIkyVYhWPyO09bu0uttcAIoecO/um/rKGQ4EltYWVYtyiGkS/3xMynrbVQdS69Jhlv8FXUEZehlzA=="], + "lighthouse-logger/debug": ["debug@2.6.9", "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - "requireg/resolve": ["resolve@1.7.1", "", { "dependencies": { "path-parse": "^1.0.5" } }, "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw=="], + "log-symbols/chalk": ["chalk@2.4.2", "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], - "restore-cursor/onetime": ["onetime@2.0.1", "", { "dependencies": { "mimic-fn": "^1.0.0" } }, "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ=="], + "make-dir/semver": ["semver@7.7.3", "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "schema-utils/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], + "metro/ci-info": ["ci-info@2.0.0", "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz", {}, "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="], - "send/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + "metro/hermes-parser": ["hermes-parser@0.32.0", "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.32.0.tgz", { "dependencies": { "hermes-estree": "0.32.0" } }, "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw=="], - "send/encodeurl": ["encodeurl@1.0.2", "", {}, "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="], + "metro-babel-transformer/hermes-parser": ["hermes-parser@0.32.0", "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.32.0.tgz", { "dependencies": { "hermes-estree": "0.32.0" } }, "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw=="], - "simple-plist/bplist-parser": ["bplist-parser@0.3.1", "", { "dependencies": { "big-integer": "1.6.x" } }, "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA=="], + "metro-cache/https-proxy-agent": ["https-proxy-agent@7.0.6", "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], - "simple-swizzle/is-arrayish": ["is-arrayish@0.3.4", "", {}, "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA=="], + "micromatch/picomatch": ["picomatch@2.3.1", "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], - "source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "morgan/debug": ["debug@2.6.9", "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - "stack-utils/escape-string-regexp": ["escape-string-regexp@2.0.0", "", {}, "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="], + "morgan/on-finished": ["on-finished@2.3.0", "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww=="], - "stacktrace-gps/source-map": ["source-map@0.5.6", "", {}, "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA=="], + "node-fetch/whatwg-url": ["whatwg-url@5.0.0", "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], - "string-length/strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + "npm-package-arg/semver": ["semver@7.7.3", "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "sucrase/commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], + "ora/chalk": ["chalk@2.4.2", "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], - "sucrase/glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], + "ora/strip-ansi": ["strip-ansi@5.2.0", "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz", { "dependencies": { "ansi-regex": "^4.1.0" } }, "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="], - "terser/commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], + "pkg-dir/find-up": ["find-up@4.1.0", "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], - "terser-webpack-plugin/jest-worker": ["jest-worker@27.5.1", "", { "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg=="], + "pretty-format/@jest/schemas": ["@jest/schemas@30.0.5", "https://registry.yarnpkg.com/@jest/schemas/-/schemas-30.0.5.tgz", { "dependencies": { "@sinclair/typebox": "^0.34.0" } }, "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA=="], - "tinyglobby/picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "pretty-format/react-is": ["react-is@18.3.1", "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "tsconfig-paths/json5": ["json5@1.0.2", "", { "dependencies": { "minimist": "^1.2.0" }, "bin": { "json5": "lib/cli.js" } }, "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA=="], + "prop-types/react-is": ["react-is@16.13.1", "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], - "webpack/eslint-scope": ["eslint-scope@5.1.1", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="], + "react-native/pretty-format": ["pretty-format@29.7.0", "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], - "whatwg-encoding/iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], + "react-native/semver": ["semver@7.7.3", "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "whatwg-url/webidl-conversions": ["webidl-conversions@7.0.0", "", {}, "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="], + "react-native-web/@react-native/normalize-colors": ["@react-native/normalize-colors@0.74.89", "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.74.89.tgz", {}, "sha512-qoMMXddVKVhZ8PA1AbUCk83trpd6N+1nF2A6k1i6LsQObyS92fELuk8kU/lQs6M7BsMHwqyLCpQJ1uFgNvIQXg=="], - "wrap-ansi/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "react-native-web/memoize-one": ["memoize-one@6.0.0", "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz", {}, "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="], - "wrap-ansi-cjs/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "restore-cursor/onetime": ["onetime@2.0.1", "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz", { "dependencies": { "mimic-fn": "^1.0.0" } }, "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ=="], - "xml2js/xmlbuilder": ["xmlbuilder@11.0.1", "", {}, "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="], + "schema-utils/ajv": ["ajv@8.17.1", "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], - "@babel/helper-compilation-targets/lru-cache/yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + "send/debug": ["debug@2.6.9", "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - "@babel/highlight/chalk/ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], + "send/encodeurl": ["encodeurl@1.0.2", "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz", {}, "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="], - "@babel/highlight/chalk/escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], + "simple-plist/bplist-parser": ["bplist-parser@0.3.1", "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.3.1.tgz", { "dependencies": { "big-integer": "1.6.x" } }, "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA=="], - "@babel/highlight/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], + "simple-swizzle/is-arrayish": ["is-arrayish@0.3.4", "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.4.tgz", {}, "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA=="], - "@expo/cli/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + "source-map-support/source-map": ["source-map@0.6.1", "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "@expo/config-plugins/glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "stack-utils/escape-string-regexp": ["escape-string-regexp@2.0.0", "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", {}, "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="], - "@expo/config/glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "stacktrace-gps/source-map": ["source-map@0.5.6", "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz", {}, "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA=="], - "@expo/devcert/glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "string-length/strip-ansi": ["strip-ansi@7.1.2", "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], - "@expo/fingerprint/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + "terser/commander": ["commander@2.20.3", "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], - "@expo/metro-config/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + "terser-webpack-plugin/jest-worker": ["jest-worker@27.5.1", "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz", { "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg=="], - "@expo/metro/metro-source-map/metro-symbolicate": ["metro-symbolicate@0.83.2", "", { "dependencies": { "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "metro-source-map": "0.83.2", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "vlq": "^1.0.0" }, "bin": { "metro-symbolicate": "src/index.js" } }, "sha512-KoU9BLwxxED6n33KYuQQuc5bXkIxF3fSwlc3ouxrrdLWwhu64muYZNQrukkWzhVKRNFIXW7X2iM8JXpi2heIPw=="], + "tsconfig-paths/json5": ["json5@1.0.2", "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz", { "dependencies": { "minimist": "^1.2.0" }, "bin": { "json5": "lib/cli.js" } }, "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA=="], - "@expo/metro/metro-source-map/ob1": ["ob1@0.83.2", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-XlK3w4M+dwd1g1gvHzVbxiXEbUllRONEgcF2uEO0zm4nxa0eKlh41c6N65q1xbiDOeKKda1tvNOAD33fNjyvCg=="], + "webpack/eslint-scope": ["eslint-scope@5.1.1", "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="], - "@isaacs/cliui/string-width/emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], + "whatwg-encoding/iconv-lite": ["iconv-lite@0.6.3", "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], - "@isaacs/cliui/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + "wrap-ansi/ansi-styles": ["ansi-styles@4.3.0", "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "@isaacs/cliui/wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], + "xml2js/xmlbuilder": ["xmlbuilder@11.0.1", "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz", {}, "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="], - "@istanbuljs/load-nyc-config/find-up/locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], + "@expo/cli/glob/minimatch": ["minimatch@10.2.3", "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.3.tgz", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg=="], - "@istanbuljs/load-nyc-config/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], + "@expo/cli/pretty-format/react-is": ["react-is@18.3.1", "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "@jest/reporters/string-length/char-regex": ["char-regex@1.0.2", "", {}, "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="], + "@expo/config-plugins/glob/minimatch": ["minimatch@10.2.3", "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.3.tgz", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg=="], - "@react-native/community-cli-plugin/metro/@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], + "@expo/config/glob/minimatch": ["minimatch@10.2.3", "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.3.tgz", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg=="], - "@react-native/community-cli-plugin/metro/ci-info": ["ci-info@2.0.0", "", {}, "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="], + "@expo/fingerprint/minimatch/brace-expansion": ["brace-expansion@5.0.3", "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.3.tgz", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA=="], - "@react-native/community-cli-plugin/metro/hermes-parser": ["hermes-parser@0.32.0", "", { "dependencies": { "hermes-estree": "0.32.0" } }, "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw=="], + "@expo/metro-config/glob/minimatch": ["minimatch@10.2.3", "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.3.tgz", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg=="], - "@react-native/community-cli-plugin/metro/metro-babel-transformer": ["metro-babel-transformer@0.83.3", "", { "dependencies": { "@babel/core": "^7.25.2", "flow-enums-runtime": "^0.0.6", "hermes-parser": "0.32.0", "nullthrows": "^1.1.1" } }, "sha512-1vxlvj2yY24ES1O5RsSIvg4a4WeL7PFXgKOHvXTXiW0deLvQr28ExXj6LjwCCDZ4YZLhq6HddLpZnX4dEdSq5g=="], + "@expo/metro-runtime/pretty-format/react-is": ["react-is@18.3.1", "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "@react-native/community-cli-plugin/metro/metro-cache": ["metro-cache@0.83.3", "", { "dependencies": { "exponential-backoff": "^3.1.1", "flow-enums-runtime": "^0.0.6", "https-proxy-agent": "^7.0.5", "metro-core": "0.83.3" } }, "sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q=="], + "@istanbuljs/load-nyc-config/find-up/locate-path": ["locate-path@5.0.0", "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], - "@react-native/community-cli-plugin/metro/metro-cache-key": ["metro-cache-key@0.83.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-59ZO049jKzSmvBmG/B5bZ6/dztP0ilp0o988nc6dpaDsU05Cl1c/lRf+yx8m9WW/JVgbmfO5MziBU559XjI5Zw=="], + "@istanbuljs/load-nyc-config/js-yaml/argparse": ["argparse@1.0.10", "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], - "@react-native/community-cli-plugin/metro/metro-file-map": ["metro-file-map@0.83.3", "", { "dependencies": { "debug": "^4.4.0", "fb-watchman": "^2.0.0", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", "invariant": "^2.2.4", "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "nullthrows": "^1.1.1", "walker": "^1.0.7" } }, "sha512-jg5AcyE0Q9Xbbu/4NAwwZkmQn7doJCKGW0SLeSJmzNB9Z24jBe0AL2PHNMy4eu0JiKtNWHz9IiONGZWq7hjVTA=="], + "@jest/core/pretty-format/react-is": ["react-is@18.3.1", "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "@react-native/community-cli-plugin/metro/metro-resolver": ["metro-resolver@0.83.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ=="], + "@jest/reporters/string-length/char-regex": ["char-regex@1.0.2", "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz", {}, "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="], - "@react-native/community-cli-plugin/metro/metro-transform-plugins": ["metro-transform-plugins@0.83.3", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/generator": "^7.25.0", "@babel/template": "^7.25.0", "@babel/traverse": "^7.25.3", "flow-enums-runtime": "^0.0.6", "nullthrows": "^1.1.1" } }, "sha512-eRGoKJU6jmqOakBMH5kUB7VitEWiNrDzBHpYbkBXW7C5fUGeOd2CyqrosEzbMK5VMiZYyOcNFEphvxk3OXey2A=="], + "@react-native/codegen/hermes-parser/hermes-estree": ["hermes-estree@0.32.0", "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.32.0.tgz", {}, "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ=="], - "@react-native/community-cli-plugin/metro/metro-transform-worker": ["metro-transform-worker@0.83.3", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/generator": "^7.25.0", "@babel/parser": "^7.25.3", "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "metro": "0.83.3", "metro-babel-transformer": "0.83.3", "metro-cache": "0.83.3", "metro-cache-key": "0.83.3", "metro-minify-terser": "0.83.3", "metro-source-map": "0.83.3", "metro-transform-plugins": "0.83.3", "nullthrows": "^1.1.1" } }, "sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA=="], + "@types/jest/pretty-format/react-is": ["react-is@18.3.1", "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "@react-native/community-cli-plugin/metro/ws": ["ws@7.5.10", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="], + "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], - "@react-native/community-cli-plugin/metro-config/metro-cache": ["metro-cache@0.83.3", "", { "dependencies": { "exponential-backoff": "^3.1.1", "flow-enums-runtime": "^0.0.6", "https-proxy-agent": "^7.0.5", "metro-core": "0.83.3" } }, "sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q=="], + "ajv-formats/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], - "@react-native/community-cli-plugin/metro-core/metro-resolver": ["metro-resolver@0.83.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ=="], + "ajv-keywords/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], - "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + "babel-plugin-istanbul/istanbul-lib-instrument/semver": ["semver@6.3.1", "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "ajv-formats/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], + "babel-plugin-syntax-hermes-parser/hermes-parser/hermes-estree": ["hermes-estree@0.32.0", "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.32.0.tgz", {}, "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ=="], - "ajv-keywords/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], + "body-parser/debug/ms": ["ms@2.0.0", "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "babel-plugin-istanbul/istanbul-lib-instrument/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "compression/debug/ms": ["ms@2.0.0", "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "body-parser/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], + "connect/debug/ms": ["ms@2.0.0", "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "compression/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], + "expect/jest-matcher-utils/jest-diff": ["jest-diff@29.7.0", "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz", { "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw=="], - "connect/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], + "expect/jest-matcher-utils/pretty-format": ["pretty-format@29.7.0", "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], - "expect/jest-matcher-utils/jest-diff": ["jest-diff@29.7.0", "", { "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw=="], + "expo-router/@expo/metro-runtime/pretty-format": ["pretty-format@29.7.0", "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], - "expect/jest-matcher-utils/pretty-format": ["pretty-format@29.7.0", "", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], + "expo/pretty-format/react-is": ["react-is@18.3.1", "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "expo-modules-autolinking/glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "express/debug/ms": ["ms@2.0.0", "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "express/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], + "finalhandler/debug/ms": ["ms@2.0.0", "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "finalhandler/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], + "jest-circus/jest-matcher-utils/jest-diff": ["jest-diff@29.7.0", "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz", { "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw=="], - "jest-circus/jest-matcher-utils/jest-diff": ["jest-diff@29.7.0", "", { "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw=="], + "jest-circus/pretty-format/react-is": ["react-is@18.3.1", "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "jest-runner/source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "jest-config/pretty-format/react-is": ["react-is@18.3.1", "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "jest-watch-select-projects/chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "jest-each/pretty-format/react-is": ["react-is@18.3.1", "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "jest-watch-typeahead/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + "jest-leak-detector/pretty-format/react-is": ["react-is@18.3.1", "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "jest-watcher/string-length/char-regex": ["char-regex@1.0.2", "", {}, "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="], + "jest-message-util/pretty-format/react-is": ["react-is@18.3.1", "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "lighthouse-logger/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], + "jest-runner/source-map-support/source-map": ["source-map@0.6.1", "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - "log-symbols/chalk/ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], + "jest-snapshot/pretty-format/react-is": ["react-is@18.3.1", "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "log-symbols/chalk/escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], + "jest-validate/pretty-format/react-is": ["react-is@18.3.1", "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "log-symbols/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], + "jest-watch-select-projects/chalk/ansi-styles": ["ansi-styles@4.3.0", "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - "metro-babel-transformer/hermes-parser/hermes-estree": ["hermes-estree@0.32.0", "", {}, "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ=="], + "jest-watch-typeahead/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], - "metro-cache/https-proxy-agent/agent-base": ["agent-base@7.1.4", "", {}, "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ=="], + "jest-watcher/string-length/char-regex": ["char-regex@1.0.2", "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz", {}, "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="], - "metro-transform-worker/metro-source-map/metro-symbolicate": ["metro-symbolicate@0.83.2", "", { "dependencies": { "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "metro-source-map": "0.83.2", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "vlq": "^1.0.0" }, "bin": { "metro-symbolicate": "src/index.js" } }, "sha512-KoU9BLwxxED6n33KYuQQuc5bXkIxF3fSwlc3ouxrrdLWwhu64muYZNQrukkWzhVKRNFIXW7X2iM8JXpi2heIPw=="], + "lighthouse-logger/debug/ms": ["ms@2.0.0", "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "metro-transform-worker/metro-source-map/ob1": ["ob1@0.83.2", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-XlK3w4M+dwd1g1gvHzVbxiXEbUllRONEgcF2uEO0zm4nxa0eKlh41c6N65q1xbiDOeKKda1tvNOAD33fNjyvCg=="], + "log-symbols/chalk/ansi-styles": ["ansi-styles@3.2.1", "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], - "metro/hermes-parser/hermes-estree": ["hermes-estree@0.32.0", "", {}, "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ=="], + "log-symbols/chalk/escape-string-regexp": ["escape-string-regexp@1.0.5", "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], - "metro/metro-source-map/ob1": ["ob1@0.83.2", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-XlK3w4M+dwd1g1gvHzVbxiXEbUllRONEgcF2uEO0zm4nxa0eKlh41c6N65q1xbiDOeKKda1tvNOAD33fNjyvCg=="], + "log-symbols/chalk/supports-color": ["supports-color@5.5.0", "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], - "morgan/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], + "metro-babel-transformer/hermes-parser/hermes-estree": ["hermes-estree@0.32.0", "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.32.0.tgz", {}, "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ=="], - "node-fetch/whatwg-url/tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], + "metro-cache/https-proxy-agent/agent-base": ["agent-base@7.1.4", "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.4.tgz", {}, "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ=="], - "node-fetch/whatwg-url/webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], + "metro/hermes-parser/hermes-estree": ["hermes-estree@0.32.0", "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.32.0.tgz", {}, "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ=="], - "ora/chalk/ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], + "morgan/debug/ms": ["ms@2.0.0", "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "ora/chalk/escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], + "node-fetch/whatwg-url/tr46": ["tr46@0.0.3", "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], - "ora/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], + "node-fetch/whatwg-url/webidl-conversions": ["webidl-conversions@3.0.1", "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], - "ora/strip-ansi/ansi-regex": ["ansi-regex@4.1.1", "", {}, "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="], + "ora/chalk/ansi-styles": ["ansi-styles@3.2.1", "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], - "pkg-dir/find-up/locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], + "ora/chalk/escape-string-regexp": ["escape-string-regexp@1.0.5", "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], - "pretty-format/@jest/schemas/@sinclair/typebox": ["@sinclair/typebox@0.34.41", "", {}, "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g=="], + "ora/chalk/supports-color": ["supports-color@5.5.0", "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], - "restore-cursor/onetime/mimic-fn": ["mimic-fn@1.2.0", "", {}, "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="], + "ora/strip-ansi/ansi-regex": ["ansi-regex@4.1.1", "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz", {}, "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="], - "schema-utils/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], + "pkg-dir/find-up/locate-path": ["locate-path@5.0.0", "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], - "send/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], + "pretty-format/@jest/schemas/@sinclair/typebox": ["@sinclair/typebox@0.34.41", "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.34.41.tgz", {}, "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g=="], - "string-length/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + "react-native/pretty-format/react-is": ["react-is@18.3.1", "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "sucrase/glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "restore-cursor/onetime/mimic-fn": ["mimic-fn@1.2.0", "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz", {}, "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="], - "terser-webpack-plugin/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + "schema-utils/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], - "webpack/eslint-scope/estraverse": ["estraverse@4.3.0", "", {}, "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="], + "send/debug/ms": ["ms@2.0.0", "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "@babel/highlight/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], + "string-length/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], - "@babel/highlight/chalk/supports-color/has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], + "terser-webpack-plugin/jest-worker/supports-color": ["supports-color@8.1.1", "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], - "@expo/config-plugins/glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + "webpack/eslint-scope/estraverse": ["estraverse@4.3.0", "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz", {}, "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="], - "@expo/config/glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + "@expo/cli/glob/minimatch/brace-expansion": ["brace-expansion@5.0.3", "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.3.tgz", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA=="], - "@expo/devcert/glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + "@expo/config-plugins/glob/minimatch/brace-expansion": ["brace-expansion@5.0.3", "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.3.tgz", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA=="], - "@istanbuljs/load-nyc-config/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], + "@expo/config/glob/minimatch/brace-expansion": ["brace-expansion@5.0.3", "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.3.tgz", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA=="], - "@react-native/community-cli-plugin/metro-config/metro-cache/https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], + "@expo/fingerprint/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.4.tgz", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], - "@react-native/community-cli-plugin/metro/hermes-parser/hermes-estree": ["hermes-estree@0.32.0", "", {}, "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ=="], + "@expo/metro-config/glob/minimatch/brace-expansion": ["brace-expansion@5.0.3", "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.3.tgz", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA=="], - "@react-native/community-cli-plugin/metro/metro-cache/https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], + "@istanbuljs/load-nyc-config/find-up/locate-path/p-locate": ["p-locate@4.1.0", "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], - "@react-native/community-cli-plugin/metro/metro-transform-worker/metro-minify-terser": ["metro-minify-terser@0.83.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6", "terser": "^5.15.0" } }, "sha512-O2BmfWj6FSfzBLrNCXt/rr2VYZdX5i6444QJU0fFoc7Ljg+Q+iqebwE3K0eTvkI6TRjELsXk1cjU+fXwAR4OjQ=="], + "expect/jest-matcher-utils/pretty-format/react-is": ["react-is@18.3.1", "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "expo-modules-autolinking/glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + "expo-router/@expo/metro-runtime/pretty-format/react-is": ["react-is@18.3.1", "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "log-symbols/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], + "log-symbols/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], - "log-symbols/chalk/supports-color/has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], + "log-symbols/chalk/supports-color/has-flag": ["has-flag@3.0.0", "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], - "ora/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], + "ora/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], - "ora/chalk/supports-color/has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], + "ora/chalk/supports-color/has-flag": ["has-flag@3.0.0", "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], - "pkg-dir/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], + "pkg-dir/find-up/locate-path/p-locate": ["p-locate@4.1.0", "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], - "sucrase/glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + "@expo/cli/glob/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.4.tgz", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], - "@babel/highlight/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], + "@expo/config-plugins/glob/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.4.tgz", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], - "@istanbuljs/load-nyc-config/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], + "@expo/config/glob/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.4.tgz", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], - "@react-native/community-cli-plugin/metro-config/metro-cache/https-proxy-agent/agent-base": ["agent-base@7.1.4", "", {}, "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ=="], + "@expo/metro-config/glob/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.4.tgz", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], - "@react-native/community-cli-plugin/metro/metro-cache/https-proxy-agent/agent-base": ["agent-base@7.1.4", "", {}, "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ=="], + "@istanbuljs/load-nyc-config/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], - "log-symbols/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], + "log-symbols/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], - "ora/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], + "ora/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], - "pkg-dir/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], + "pkg-dir/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], } } diff --git a/packages/expo-sqlite/dev-plugin-webui/package.json b/packages/expo-sqlite/dev-plugin-webui/package.json index 5ca95fda2a064d..1f8423fdbf9533 100644 --- a/packages/expo-sqlite/dev-plugin-webui/package.json +++ b/packages/expo-sqlite/dev-plugin-webui/package.json @@ -17,18 +17,18 @@ "autoprefixer": "^10.4.21", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "expo": "~54.0.21", - "expo-linking": "~8.0.8", - "expo-router": "~6.0.14", - "expo-sqlite": "~16.0.8", + "expo": "^55.0.0", + "expo-linking": "~55.0.7", + "expo-router": "~55.0.0", + "expo-sqlite": "~55.0.9", "lucide-react": "^0.548.0", "next-themes": "^0.4.6", "postcss": "^8.5.6", - "react": "19.1.0", - "react-dom": "19.1.0", - "react-native": "0.81.5", + "react": "19.2.0", + "react-dom": "19.2.0", + "react-native": "0.83.2", "react-native-safe-area-context": "~5.6.2", - "react-native-screens": "~4.16.0", + "react-native-screens": "~4.24.0", "react-native-web": "~0.21.0", "sonner": "^2.0.7", "tailwind-merge": "^3.3.1", @@ -41,15 +41,16 @@ "@testing-library/react-native": "^13.3.0", "@types/bun": "^1.3.1", "@types/jest": "29.5.14", - "@types/react": "~19.1.0", + "@types/react": "~19.2.10", "eslint": "^9.25.0", - "eslint-config-expo": "~10.0.0", + "eslint-config-expo": "~55.0.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-prettier": "^5.5.4", "expo-atlas": "^0.4.0", "jest": "~29.7.0", - "jest-expo": "~54.0.13", + "jest-expo": "~55.0.9", "prettier": "^3.6.2", + "react-test-renderer": "19.2.0", "typescript": "~5.9.2" }, "prettier": { From f4799bc0800e2ac86d63cbc744ba6f481a2008b6 Mon Sep 17 00:00:00 2001 From: Kudo Chien Date: Wed, 25 Feb 2026 19:02:40 +0800 Subject: [PATCH 05/14] [docs] update sqlite doc for inspector and hosting setup (#43413) # Why update doc for sdk 55 new feature # How - update web setup for hosting - add inspector --- .../pages/versions/unversioned/sdk/sqlite.mdx | 30 +++++++++++++++++- docs/pages/versions/v55.0.0/sdk/sqlite.mdx | 30 +++++++++++++++++- .../static/images/sdk/sqlite/inspector.png | Bin 0 -> 115828 bytes 3 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 docs/public/static/images/sdk/sqlite/inspector.png diff --git a/docs/pages/versions/unversioned/sdk/sqlite.mdx b/docs/pages/versions/unversioned/sdk/sqlite.mdx index fe699bc519ac8c..f36ae51d93e8f9 100644 --- a/docs/pages/versions/unversioned/sdk/sqlite.mdx +++ b/docs/pages/versions/unversioned/sdk/sqlite.mdx @@ -10,6 +10,7 @@ platforms: ['android', 'ios', 'macos', 'tvos', 'web', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; import { ConfigPluginExample, ConfigPluginProperties } from '~/ui/components/ConfigSection'; +import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; import { DiffBlock } from '~/ui/components/Snippet'; import { Step } from '~/ui/components/Step'; @@ -99,6 +100,26 @@ Add the following configuration to your **metro.config.js**. If you don't have t If you deploy your app to web hosting services, you will also need to add the `Cross-Origin-Embedder-Policy` and `Cross-Origin-Opener-Policy` headers to your web server. [Learn more about the `COEP`, `COOP` headers, and `SharedArrayBuffer`](https://developer.chrome.com/blog/enabling-shared-array-buffer/). +If you deploy your app on [EAS Hosting](/eas/hosting/introduction/), you can configure the headers in your app config: + +```json app.json +{ + "expo": { + "plugins": [ + [ + "expo-router", + { + "headers": { + "Cross-Origin-Embedder-Policy": "credentialless", + "Cross-Origin-Opener-Policy": "same-origin" + } + } + ] + ] + } +} +``` + ## Usage Import the module from `expo-sqlite`. @@ -500,7 +521,14 @@ expect(row.data).toEqual(blob); ### Browse an on-device database -You can inspect a database, execute queries against it, and explore data with the [`drizzle-studio-expo` dev tools plugin](https://github.com/drizzle-team/drizzle-studio-expo). This plugin enables you to launch [Drizzle Studio](https://orm.drizzle.team/drizzle-studio/overview), connected to a database in your app, directly from Expo CLI. This plugin can be used with any `expo-sqlite` configuration. It does not require that you use [Drizzle ORM](#drizzle-orm) in your app. [Learn how to install and use the plugin](https://github.com/drizzle-team/drizzle-studio-expo). +The `expo-sqlite` library includes a built-in DevTools inspector plugin that is automatically enabled in development and requires no extra setup. It lets you browse tables, view and edit rows, run SQL queries, and export databases directly from your browser. To open it, press shift+m in the Expo CLI terminal to open the dev tools menu, and then select **Open expo-sqlite** to launch the inspector. + + + +Alternatively, you can also use the [`drizzle-studio-expo` dev tools plugin](https://github.com/drizzle-team/drizzle-studio-expo) to launch [Drizzle Studio](https://orm.drizzle.team/drizzle-studio/overview), connected to a database in your app, directly from Expo CLI. This plugin can be used with any `expo-sqlite` configuration and does not require [Drizzle ORM](#drizzle-orm). [Learn how to install and use the plugin](https://github.com/drizzle-team/drizzle-studio-expo). ### Key-value storage diff --git a/docs/pages/versions/v55.0.0/sdk/sqlite.mdx b/docs/pages/versions/v55.0.0/sdk/sqlite.mdx index fe699bc519ac8c..f36ae51d93e8f9 100644 --- a/docs/pages/versions/v55.0.0/sdk/sqlite.mdx +++ b/docs/pages/versions/v55.0.0/sdk/sqlite.mdx @@ -10,6 +10,7 @@ platforms: ['android', 'ios', 'macos', 'tvos', 'web', 'expo-go'] import APISection from '~/components/plugins/APISection'; import { APIInstallSection } from '~/components/plugins/InstallSection'; import { ConfigPluginExample, ConfigPluginProperties } from '~/ui/components/ConfigSection'; +import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; import { DiffBlock } from '~/ui/components/Snippet'; import { Step } from '~/ui/components/Step'; @@ -99,6 +100,26 @@ Add the following configuration to your **metro.config.js**. If you don't have t If you deploy your app to web hosting services, you will also need to add the `Cross-Origin-Embedder-Policy` and `Cross-Origin-Opener-Policy` headers to your web server. [Learn more about the `COEP`, `COOP` headers, and `SharedArrayBuffer`](https://developer.chrome.com/blog/enabling-shared-array-buffer/). +If you deploy your app on [EAS Hosting](/eas/hosting/introduction/), you can configure the headers in your app config: + +```json app.json +{ + "expo": { + "plugins": [ + [ + "expo-router", + { + "headers": { + "Cross-Origin-Embedder-Policy": "credentialless", + "Cross-Origin-Opener-Policy": "same-origin" + } + } + ] + ] + } +} +``` + ## Usage Import the module from `expo-sqlite`. @@ -500,7 +521,14 @@ expect(row.data).toEqual(blob); ### Browse an on-device database -You can inspect a database, execute queries against it, and explore data with the [`drizzle-studio-expo` dev tools plugin](https://github.com/drizzle-team/drizzle-studio-expo). This plugin enables you to launch [Drizzle Studio](https://orm.drizzle.team/drizzle-studio/overview), connected to a database in your app, directly from Expo CLI. This plugin can be used with any `expo-sqlite` configuration. It does not require that you use [Drizzle ORM](#drizzle-orm) in your app. [Learn how to install and use the plugin](https://github.com/drizzle-team/drizzle-studio-expo). +The `expo-sqlite` library includes a built-in DevTools inspector plugin that is automatically enabled in development and requires no extra setup. It lets you browse tables, view and edit rows, run SQL queries, and export databases directly from your browser. To open it, press shift+m in the Expo CLI terminal to open the dev tools menu, and then select **Open expo-sqlite** to launch the inspector. + + + +Alternatively, you can also use the [`drizzle-studio-expo` dev tools plugin](https://github.com/drizzle-team/drizzle-studio-expo) to launch [Drizzle Studio](https://orm.drizzle.team/drizzle-studio/overview), connected to a database in your app, directly from Expo CLI. This plugin can be used with any `expo-sqlite` configuration and does not require [Drizzle ORM](#drizzle-orm). [Learn how to install and use the plugin](https://github.com/drizzle-team/drizzle-studio-expo). ### Key-value storage diff --git a/docs/public/static/images/sdk/sqlite/inspector.png b/docs/public/static/images/sdk/sqlite/inspector.png new file mode 100644 index 0000000000000000000000000000000000000000..8ebdb5f8cdb8eebaa0317cef6239a8601deb9d1b GIT binary patch literal 115828 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 literal 0 HcmV?d00001 From d0a904f181b41747cbf5cf8ae683a1c565a4d96f Mon Sep 17 00:00:00 2001 From: Jakub Grzywacz Date: Wed, 25 Feb 2026 12:18:51 +0100 Subject: [PATCH 06/14] [ui][iOS] Add luminanceToAlpha modifier (#43417) # Why This modifier is really useful in widgets. # How Like every other simple modifier. # Test Plan ## Source ```tsx import { Circle, HStack, VStack, ZStack } from '@expo/ui/swift-ui'; import { foregroundStyle, frame, luminanceToAlpha } from '@expo/ui/swift-ui/modifiers'; import { createWidget, WidgetBase } from 'expo-widgets'; type Props = { state: string; }; export const TestWidget = (p: WidgetBase) => { 'widget'; return ( ); }; const widget = createWidget('Widget1', CalcWidget); export default widget; ``` ## Preview Pasted Graphic | Customization type | Without modifier | With modifier | | --- | --- | --- | | Clear | Pasted Graphic 1 | Pasted Graphic 4 | | Tinted | Pasted Graphic 2 | Pasted Graphic 3 | # Checklist - [x] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [x] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [x] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) --- packages/expo-ui/CHANGELOG.md | 2 ++ packages/expo-ui/build/swift-ui/modifiers/index.d.ts | 7 ++++++- .../expo-ui/build/swift-ui/modifiers/index.d.ts.map | 2 +- .../expo-ui/ios/Modifiers/ViewModifierRegistry.swift | 10 ++++++++++ packages/expo-ui/src/swift-ui/modifiers/index.ts | 7 +++++++ 5 files changed, 26 insertions(+), 2 deletions(-) diff --git a/packages/expo-ui/CHANGELOG.md b/packages/expo-ui/CHANGELOG.md index ae6154765ba056..bdbbb43ce9e887 100644 --- a/packages/expo-ui/CHANGELOG.md +++ b/packages/expo-ui/CHANGELOG.md @@ -6,6 +6,8 @@ ### 🎉 New features +- [iOS] Added `luminanceToAlpha` modifier. ([#43417](https://github.com/expo/expo/pull/43417) by [@jakex7](https://github.com/jakex7)) + ### 🐛 Bug fixes ### 💡 Others diff --git a/packages/expo-ui/build/swift-ui/modifiers/index.d.ts b/packages/expo-ui/build/swift-ui/modifiers/index.d.ts index 81ca7feb92ba3e..a492a1817bfe54 100644 --- a/packages/expo-ui/build/swift-ui/modifiers/index.d.ts +++ b/packages/expo-ui/build/swift-ui/modifiers/index.d.ts @@ -805,12 +805,17 @@ export type ListStyle = 'automatic' | 'plain' | 'inset' | 'insetGrouped' | 'grou * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/liststyle(_:)). */ export declare const listStyle: (style: ListStyle) => ModifierConfig; +/** + * Adds a luminance to alpha effect to this view. + * @see Official [SwiftUI documentation](https://developer.apple.com/documentation/SwiftUI/View/luminanceToAlpha()). + */ +export declare const luminanceToAlpha: () => ModifierConfig; /** * Union type of all built-in modifier return types. * This provides type safety for the modifiers array. * @hidden */ -export type BuiltInModifier = ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType | ReturnType