From e8c6acdb7ddedf3bdd7b7e60bc2e9c5e0abd6e36 Mon Sep 17 00:00:00 2001 From: Denys Hrychulevych <111864961+Den1Marshall@users.noreply.github.com> Date: Tue, 1 Sep 2026 09:33:51 +0300 Subject: [PATCH 1/8] [ui][ios] Share a ShapeStyle vocabulary between modifiers (#48905) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Why Several SwiftUI modifiers paint an area with a `ShapeStyle`: `foregroundStyle`, `background`, shape fills. Expo UI described that vocabulary once, inside `ForegroundStyleModifier`, in a form nothing else could reuse – a flat record plus two near-identical `switch` statements, one returning a `View` and one a `Text`. Adding the same styles to `background` meant copying both. # How `ShapeStyleValue` resolves a style into a single `AnyShapeStyle`. The erasure is what makes sharing possible: an opaque `some ShapeStyle` has to be one concrete type across every branch, and an existential `any ShapeStyle` cannot escape into the result of `background(_:)` or `foregroundStyle(_:)`, so a style chosen at runtime cannot be returned any other way. `AnyShapeStyle` is available since iOS 15, below the package's 16.4 minimum. `foregroundStyle` now delegates to it and shrinks from 125 lines to 34. Its public union is unchanged except for a new `material` variant, so existing calls keep working; the payload nests under a `style` key, which is what the two updated tests assert. Materials cover the five thickness levels and `bar`. `bar` has no tvOS counterpart and `quinary` needs tvOS 17; both leave the view untouched there rather than failing, since the same JS runs on every platform and the modifier array is rebuilt on each render. # Test Plan Added a "Material foreground style" section to the modifiers screen in native-component-list: text painted with a material over a gradient-filled rectangle. Verified in bare-expo on the iOS simulator. `et check-packages @expo/ui` passes, the app builds (`BUILD SUCCEEDED`) and the package tests pass (24 suites, 129 tests). # Checklist - [x] I added a `changelog.md` entry and rebuilt the package sources - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build - [x] Conforms with the Documentation Writing Style Guide Co-authored-by: nishan (o^▽^o) --- .../src/screens/UI/ModifiersScreen.ios.tsx | 25 ++++ .../expo-ui/swift-ui/modifiers.json | 2 +- packages/expo-ui/CHANGELOG.md | 1 + .../ios/Convertibles/ShapeStyleValue.swift | 129 ++++++++++++++++++ .../Modifiers/ForegroundStyleModifier.swift | 117 ++-------------- .../ios/Modifiers/ViewModifierRegistry.swift | 6 +- .../src/__tests__/foregroundStyle-test.ts | 30 ++-- .../Image/__tests__/index.test.ios.tsx | 9 +- .../expo-ui/src/swift-ui/modifiers/index.ts | 49 ++----- .../src/swift-ui/modifiers/shapeStyle.ts | 55 ++++++++ 10 files changed, 261 insertions(+), 162 deletions(-) create mode 100644 packages/expo-ui/ios/Convertibles/ShapeStyleValue.swift create mode 100644 packages/expo-ui/src/swift-ui/modifiers/shapeStyle.ts diff --git a/apps/native-component-list/src/screens/UI/ModifiersScreen.ios.tsx b/apps/native-component-list/src/screens/UI/ModifiersScreen.ios.tsx index 07997da48d0c31..7cb4c07d064b4c 100644 --- a/apps/native-component-list/src/screens/UI/ModifiersScreen.ios.tsx +++ b/apps/native-component-list/src/screens/UI/ModifiersScreen.ios.tsx @@ -15,6 +15,7 @@ import { Stepper, Spacer, Image, + ZStack, } from '@expo/ui/swift-ui'; import { background, @@ -164,6 +165,30 @@ export default function ModifiersScreen() { width: dimensions.width, }), ]}> +
+ + + + Frosted + + +
+ {/* Badge modifiers */}
Badge empty diff --git a/docs/public/static/data/unversioned/expo-ui/swift-ui/modifiers.json b/docs/public/static/data/unversioned/expo-ui/swift-ui/modifiers.json index 442e2d7639f359..e40a0c1232c113 100644 --- a/docs/public/static/data/unversioned/expo-ui/swift-ui/modifiers.json +++ b/docs/public/static/data/unversioned/expo-ui/swift-ui/modifiers.json @@ -1 +1 @@ -{"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierConfig","variant":"declaration","kind":256,"comment":{"summary":[{"kind":"text","text":"Base interface for all view modifiers.\nAll modifiers must have a type field and can include arbitrary parameters."}]},"children":[{"name":"$type","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}},{"name":"eventListener","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"args","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"intrinsic","name":"void"}}]}}}],"indexSignatures":[{"name":"__index","variant":"signature","kind":8192,"parameters":[{"name":"key","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"any"}}]},{"name":"AccessibilityTrait","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"The set of accessibility traits that can be added to or removed from a view\nwith "},{"kind":"code","text":"`accessibilityAddTraits`"},{"kind":"text","text":" and "},{"kind":"code","text":"`accessibilityRemoveTraits`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/accessibilitytraits)."}]}]},"type":{"type":"union","types":[{"type":"literal","value":"isButton"},{"type":"literal","value":"isHeader"},{"type":"literal","value":"isImage"},{"type":"literal","value":"isSelected"},{"type":"literal","value":"isLink"},{"type":"literal","value":"isModal"},{"type":"literal","value":"isSummaryElement"},{"type":"literal","value":"updatesFrequently"},{"type":"literal","value":"startsMediaSession"},{"type":"literal","value":"allowsDirectInteraction"},{"type":"literal","value":"causesPageTurn"},{"type":"literal","value":"isToggle"},{"type":"literal","value":"playsSound"},{"type":"literal","value":"isStaticText"},{"type":"literal","value":"isSearchField"},{"type":"literal","value":"isKeyboardKey"},{"type":"literal","value":"isTabBar"}]}},{"name":"ChainableAnimationType","variant":"declaration","kind":2097152,"children":[{"name":"[VALUE_SYMBOL]","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/swift-ui/modifiers/animation/types.ts","qualifiedName":"AnimationObject"},"name":"AnimationObject","package":"@expo/ui"}}]}}},{"name":"delay","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Adds a delay before the animation starts (in seconds)."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"delay","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","name":"ChainableAnimationType","package":"@expo/ui"}}]}}},{"name":"repeat","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"Repeats the animation the given number of times."}]},"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":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"autoreverses","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"boolean"}},{"name":"repeatCount","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}}]}}}],"type":{"type":"reference","name":"ChainableAnimationType","package":"@expo/ui"}}]}}}]},{"name":"Color","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","target":{"packageName":"react-native","packagePath":"Libraries/StyleSheet/StyleSheet.d.ts","qualifiedName":"ColorValue"},"name":"ColorValue","package":"react-native"},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/swift-ui/modifiers/types.ts","qualifiedName":"NamedColor"},"name":"NamedColor","package":"@expo/ui"}]}},{"name":"ContainerBackgroundPlacement","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"widget"},{"type":"literal","value":"navigation"},{"type":"literal","value":"navigationSplitView"}]}},{"name":"ContentShapeKind","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"The kinds of interaction a content shape applies to.\n\n- "},{"kind":"code","text":"`interaction`"},{"kind":"text","text":" - The kind for hit-testing and accessibility.\n- "},{"kind":"code","text":"`dragPreview`"},{"kind":"text","text":" - The kind for drag and drop previews.\n- "},{"kind":"code","text":"`contextMenuPreview`"},{"kind":"text","text":" - The kind for context menu previews.\n- "},{"kind":"code","text":"`hoverEffect`"},{"kind":"text","text":" - The kind for hover effects.\n- "},{"kind":"code","text":"`accessibility`"},{"kind":"text","text":" - The kind for accessibility."}]},"type":{"type":"union","types":[{"type":"literal","value":"interaction"},{"type":"literal","value":"dragPreview"},{"type":"literal","value":"contextMenuPreview"},{"type":"literal","value":"hoverEffect"},{"type":"literal","value":"accessibility"}]}},{"name":"DatePickerStyleType","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"automatic"},{"type":"literal","value":"compact"},{"type":"literal","value":"graphical"},{"type":"literal","value":"wheel"}]}},{"name":"DiscreteSymbolEffectValue","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Equatable primitive accepted as a discrete effect trigger."}]},"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"boolean"}]}},{"name":"DynamicTypeSizeValue","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"A standard size for Dynamic Type, from "},{"kind":"code","text":"`xSmall`"},{"kind":"text","text":" through the five\n"},{"kind":"code","text":"`accessibility`"},{"kind":"text","text":" sizes. Mirrors SwiftUI's "},{"kind":"code","text":"`DynamicTypeSize`"},{"kind":"text","text":"."}]},"type":{"type":"union","types":[{"type":"literal","value":"xSmall"},{"type":"literal","value":"small"},{"type":"literal","value":"medium"},{"type":"literal","value":"large"},{"type":"literal","value":"xLarge"},{"type":"literal","value":"xxLarge"},{"type":"literal","value":"xxxLarge"},{"type":"literal","value":"accessibility1"},{"type":"literal","value":"accessibility2"},{"type":"literal","value":"accessibility3"},{"type":"literal","value":"accessibility4"},{"type":"literal","value":"accessibility5"}]}},{"name":"EnvironmentConfig","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"key","variant":"declaration","kind":1024,"type":{"type":"literal","value":"editMode"}},{"name":"value","variant":"declaration","kind":1024,"type":{"type":"union","types":[{"type":"literal","value":"active"},{"type":"literal","value":"inactive"},{"type":"literal","value":"transient"}]}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"key","variant":"declaration","kind":1024,"type":{"type":"literal","value":"colorScheme"}},{"name":"value","variant":"declaration","kind":1024,"type":{"type":"union","types":[{"type":"literal","value":"light"},{"type":"literal","value":"dark"}]}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"key","variant":"declaration","kind":1024,"type":{"type":"literal","value":"locale"}},{"name":"value","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"key","variant":"declaration","kind":1024,"type":{"type":"literal","value":"timeZone"}},{"name":"value","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"}}]}}]}},{"name":"GaugeStyleType","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"automatic"},{"type":"literal","value":"circular"},{"type":"literal","value":"circularCapacity"},{"type":"literal","value":"linear"},{"type":"literal","value":"linearCapacity"}]}},{"name":"GlobalEvent","variant":"declaration","kind":2097152,"children":[{"name":"onGlobalEvent","variant":"declaration","kind":1024,"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":"reference","name":"GlobalEventPayload","package":"@expo/ui"}}]}}}],"type":{"type":"intrinsic","name":"void"}}]}}}]},{"name":"GlobalEventPayload","variant":"declaration","kind":2097152,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"indexSignatures":[{"name":"__index","variant":"signature","kind":8192,"parameters":[{"name":"eventName","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Record"},"typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"any"}],"name":"Record","package":"typescript"}}]}}},{"name":"IndexViewStyleConfig","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Configuration for the "},{"kind":"code","text":"`indexViewStyle`"},{"kind":"text","text":" modifier."}]},"children":[{"name":"backgroundDisplayMode","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Translucent background behind the page indicator dots. Useful when the\ndots sit on top of dark or busy content."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'automatic'"}]}]},"type":{"type":"reference","name":"PageIndexBackgroundDisplayMode","package":"@expo/ui"}}]},{"name":"InterpolatingSpringAnimationParams","variant":"declaration","kind":2097152,"children":[{"name":"bounce","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Extra bounce to apply to the spring animation."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"damping","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The damping applied to the spring."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"duration","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Total animation duration (in seconds)."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"initialVelocity","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The initial velocity of the animation."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"mass","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The mass attached to the spring."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"stiffness","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The stiffness of the spring."}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"ListStyle","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"automatic"},{"type":"literal","value":"plain"},{"type":"literal","value":"inset"},{"type":"literal","value":"insetGrouped"},{"type":"literal","value":"grouped"},{"type":"literal","value":"sidebar"}]}},{"name":"MatchedGeometryPropertiesValue","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"The geometry properties copied from the source view by "},{"kind":"code","text":"`matchedGeometryEffect`"},{"kind":"text","text":".\n"},{"kind":"code","text":"`'frame'`"},{"kind":"text","text":" combines both "},{"kind":"code","text":"`'position'`"},{"kind":"text","text":" and "},{"kind":"code","text":"`'size'`"},{"kind":"text","text":"."}]},"type":{"type":"union","types":[{"type":"literal","value":"frame"},{"type":"literal","value":"position"},{"type":"literal","value":"size"}]}},{"name":"MenuOrderType","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"automatic"},{"type":"literal","value":"fixed"},{"type":"literal","value":"priority"}]}},{"name":"ObservableState","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Observable state shared between JavaScript and native views (Jetpack Compose\non Android and SwiftUI on iOS)."}]},"typeParameters":[{"name":"T","variant":"typeParam","kind":131072}],"type":{"type":"intersection","types":[{"type":"reference","target":{"packageName":"expo-modules-core","packagePath":"src/SharedObject.ts","qualifiedName":"SharedObject"},"name":"SharedObject","package":"expo-modules-core"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"onChange","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"A single listener invoked on the native UI runtime whenever the value changes\n(after iOS "},{"kind":"code","text":"`didSet`"},{"kind":"text","text":" and Android's setter). Assigning replaces the previous\nlistener; assign "},{"kind":"code","text":"`null`"},{"kind":"text","text":" to clear. The initial value does not fire "},{"kind":"code","text":"`onChange`"},{"kind":"text","text":".\n\nThe callback must be a worklet so it can run synchronously on the UI thread.\nAttach it inside "},{"kind":"code","text":"`useEffect`"},{"kind":"text","text":" and clear it in the cleanup so the listener\nlifecycle matches the component lifecycle."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nconst state = useNativeState(0);\n\nuseEffect(() => {\n state.onChange = (value) => {\n 'worklet';\n console.log('changed to', value);\n };\n}, []);\n```"}]}]},"type":{"type":"union","types":[{"type":"indexedAccess","indexType":{"type":"literal","value":"listener"},"objectType":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"listener","variant":"declaration","kind":2048,"signatures":[{"name":"listener","variant":"signature","kind":4096,"parameters":[{"name":"value","variant":"param","kind":32768,"type":{"type":"reference","name":"T","package":"@expo/ui","refersToTypeParameter":true}}],"type":{"type":"intrinsic","name":"void"}}]}]}}},{"type":"literal","value":null}]}},{"name":"value","variant":"declaration","kind":1024,"comment":{"summary":[{"kind":"text","text":"The current value.\n\nWrites from a UI worklet are synchronous and immediately readable. Writes\nfrom the JS thread are scheduled to the UI thread asynchronously, the new value is not readable until the update has been\napplied. Prefer writing from a worklet when you need synchronous updates"}]},"type":{"type":"reference","name":"T","package":"@expo/ui","refersToTypeParameter":true}},{"name":"get","variant":"declaration","kind":2048,"signatures":[{"name":"get","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Reads the current value. A React Compiler compliant alternative to reading "},{"kind":"code","text":"`.value`"}]},"type":{"type":"reference","name":"T","package":"@expo/ui","refersToTypeParameter":true}}]},{"name":"set","variant":"declaration","kind":2048,"signatures":[{"name":"set","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Writes a new value. A React Compiler-compliant alternative to assigning "},{"kind":"code","text":"`.value`"}]},"parameters":[{"name":"value","variant":"param","kind":32768,"type":{"type":"reference","name":"T","package":"@expo/ui","refersToTypeParameter":true}}],"type":{"type":"intrinsic","name":"void"}}]}]}}]}},{"name":"PageIndexBackgroundDisplayMode","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"automatic"},{"type":"literal","value":"always"},{"type":"literal","value":"never"},{"type":"literal","value":"interactive"}]}},{"name":"PageIndexDisplayMode","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"automatic"},{"type":"literal","value":"always"},{"type":"literal","value":"never"}]}},{"name":"PickerStyleType","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"automatic"},{"type":"literal","value":"inline"},{"type":"literal","value":"menu"},{"type":"literal","value":"navigationLink"},{"type":"literal","value":"palette"},{"type":"literal","value":"segmented"},{"type":"literal","value":"wheel"}]}},{"name":"PresentationBackgroundInteractionType","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Presentation background interaction type."}]},"type":{"type":"union","types":[{"type":"literal","value":"automatic"},{"type":"literal","value":"enabled"},{"type":"literal","value":"disabled"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"detent","variant":"declaration","kind":1024,"type":{"type":"reference","name":"PresentationDetent","package":"@expo/ui"}},{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"enabledUpThrough"}}]}}]}},{"name":"PresentationDetent","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Presentation detent type for controlling sheet heights.\n- "},{"kind":"code","text":"`'medium'`"},{"kind":"text","text":": System medium height (approximately half screen)\n- "},{"kind":"code","text":"`'large'`"},{"kind":"text","text":": System large height (full screen)\n- "},{"kind":"code","text":"`{ fraction: number }`"},{"kind":"text","text":": Fraction of screen height (0-1, for example, 0.4 equals 40% of screen)\n- "},{"kind":"code","text":"`{ height: number }`"},{"kind":"text","text":": Fixed height in points"}]},"type":{"type":"union","types":[{"type":"literal","value":"medium"},{"type":"literal","value":"large"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"fraction","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"height","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}}]}}]}},{"name":"PresentationSizingType","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Sizing behavior for a sheet presentation.\n- "},{"kind":"code","text":"`'automatic'`"},{"kind":"text","text":": The system default sizing.\n- "},{"kind":"code","text":"`'fitted'`"},{"kind":"text","text":": Sizes the sheet to fit its content.\n- "},{"kind":"code","text":"`'form'`"},{"kind":"text","text":": A compact, centered form sheet.\n- "},{"kind":"code","text":"`'page'`"},{"kind":"text","text":": A larger page sheet."}],"blockTags":[{"tag":"@remarks","content":[{"kind":"text","text":"Sizing mainly affects the regular size class (iPad); in a compact size class (iPhone)\nsheets remain edge-attached and detents drive the height."}]}]},"type":{"type":"union","types":[{"type":"literal","value":"automatic"},{"type":"literal","value":"fitted"},{"type":"literal","value":"form"},{"type":"literal","value":"page"}]}},{"name":"ProgressViewStyleType","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"automatic"},{"type":"literal","value":"linear"},{"type":"literal","value":"circular"}]}},{"name":"Shape","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"ReturnType"},"typeArguments":[{"type":"query","queryType":{"type":"reference","name":"shapes.roundedRectangle","package":"@expo/ui","qualifiedName":"__object.roundedRectangle"}}],"name":"ReturnType","package":"typescript"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"ReturnType"},"typeArguments":[{"type":"query","queryType":{"type":"reference","name":"shapes.capsule","package":"@expo/ui","qualifiedName":"__object.capsule"}}],"name":"ReturnType","package":"typescript"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"ReturnType"},"typeArguments":[{"type":"query","queryType":{"type":"reference","name":"shapes.rectangle","package":"@expo/ui","qualifiedName":"__object.rectangle"}}],"name":"ReturnType","package":"typescript"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"ReturnType"},"typeArguments":[{"type":"query","queryType":{"type":"reference","name":"shapes.ellipse","package":"@expo/ui","qualifiedName":"__object.ellipse"}}],"name":"ReturnType","package":"typescript"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"ReturnType"},"typeArguments":[{"type":"query","queryType":{"type":"reference","name":"shapes.circle","package":"@expo/ui","qualifiedName":"__object.circle"}}],"name":"ReturnType","package":"typescript"},{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"ReturnType"},"typeArguments":[{"type":"query","queryType":{"type":"reference","name":"shapes.containerRelativeShape","package":"@expo/ui","qualifiedName":"__object.containerRelativeShape"}}],"name":"ReturnType","package":"typescript"}]}},{"name":"SpringAnimationParams","variant":"declaration","kind":2097152,"children":[{"name":"blendDuration","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The duration over which to blend between animations (in seconds)."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"bounce","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Extra bounce to apply to the spring animation."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"dampingFraction","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The amount of damping applied to the spring's motion."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"duration","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Total animation duration (in seconds)."}]},"type":{"type":"intrinsic","name":"number"}},{"name":"response","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The spring's response time (in seconds)."}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"StrokeStyle","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"The characteristics of a stroke that traces a path."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/strokestyle)."}]}]},"children":[{"name":"dash","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The lengths of alternating painted and unpainted segments. An empty array draws a solid line."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"[]"}]}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"number"}}},{"name":"dashPhase","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"How far into the dash pattern the line starts."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"0"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"lineCap","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The endpoint style of a line segment."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'butt'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"butt"},{"type":"literal","value":"round"},{"type":"literal","value":"square"}]}},{"name":"lineJoin","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The join type where line segments meet."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'miter'"}]}]},"type":{"type":"union","types":[{"type":"literal","value":"miter"},{"type":"literal","value":"round"},{"type":"literal","value":"bevel"}]}},{"name":"lineWidth","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The width of the stroked line."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"1"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"miterLimit","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The limit past which a miter join is replaced by a bevel."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"10"}]}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"SymbolEffect","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/swift-ui/modifiers/symbolEffect.ts","qualifiedName":"AppearSymbolEffect"},"name":"AppearSymbolEffect","package":"@expo/ui"},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/swift-ui/modifiers/symbolEffect.ts","qualifiedName":"BounceSymbolEffect"},"name":"BounceSymbolEffect","package":"@expo/ui"},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/swift-ui/modifiers/symbolEffect.ts","qualifiedName":"BreatheSymbolEffect"},"name":"BreatheSymbolEffect","package":"@expo/ui"},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/swift-ui/modifiers/symbolEffect.ts","qualifiedName":"DisappearSymbolEffect"},"name":"DisappearSymbolEffect","package":"@expo/ui"},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/swift-ui/modifiers/symbolEffect.ts","qualifiedName":"DrawOffSymbolEffect"},"name":"DrawOffSymbolEffect","package":"@expo/ui"},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/swift-ui/modifiers/symbolEffect.ts","qualifiedName":"DrawOnSymbolEffect"},"name":"DrawOnSymbolEffect","package":"@expo/ui"},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/swift-ui/modifiers/symbolEffect.ts","qualifiedName":"PulseSymbolEffect"},"name":"PulseSymbolEffect","package":"@expo/ui"},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/swift-ui/modifiers/symbolEffect.ts","qualifiedName":"RotateSymbolEffect"},"name":"RotateSymbolEffect","package":"@expo/ui"},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/swift-ui/modifiers/symbolEffect.ts","qualifiedName":"ScaleSymbolEffect"},"name":"ScaleSymbolEffect","package":"@expo/ui"},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/swift-ui/modifiers/symbolEffect.ts","qualifiedName":"VariableColorSymbolEffect"},"name":"VariableColorSymbolEffect","package":"@expo/ui"},{"type":"reference","target":{"packageName":"@expo/ui","packagePath":"src/swift-ui/modifiers/symbolEffect.ts","qualifiedName":"WiggleSymbolEffect"},"name":"WiggleSymbolEffect","package":"@expo/ui"}]}},{"name":"SymbolEffectOptions","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Animation options for a symbol effect."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [Apple documentation](https://developer.apple.com/documentation/symbols/symboleffectoptions)."}]}]},"children":[{"name":"repeat","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"How the effect repeats. Omit for the effect's natural cadence.\n- "},{"kind":"code","text":"`'nonRepeating'`"},{"kind":"text","text":" — play exactly once.\n- "},{"kind":"code","text":"`'continuous'`"},{"kind":"text","text":" — smooth, indefinite repetition (iOS 18+).\n- "},{"kind":"code","text":"`{ count?, delay? }`"},{"kind":"text","text":" — periodic repetition with optional count and delay in seconds (iOS 18+)."}]},"type":{"type":"union","types":[{"type":"literal","value":"continuous"},{"type":"literal","value":"nonRepeating"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"count","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"delay","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}}]}}]}},{"name":"speed","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Animation speed multiplier (1.0 = default)."}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"TabViewStyleConfig","variant":"declaration","kind":2097152,"comment":{"summary":[{"kind":"text","text":"Configuration for the "},{"kind":"code","text":"`tabViewStyle`"},{"kind":"text","text":" modifier.\n\n - "},{"kind":"code","text":"`'page'`"},{"kind":"text","text":" — swipeable horizontal pager with optional dot indicators.\n - "},{"kind":"code","text":"`'automatic'`"},{"kind":"text","text":" — SwiftUI's default tab-bar style.\n - "},{"kind":"code","text":"`'sidebarAdaptable'`"},{"kind":"text","text":" — iOS 18+. Sidebar on iPad/Mac, bottom bar on\n iPhone."}]},"type":{"type":"union","types":[{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"indexDisplayMode","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Visibility of the page indicator dots. Only meaningful for the page style."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"'automatic'"}]}]},"type":{"type":"reference","name":"PageIndexDisplayMode","package":"@expo/ui"}},{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"page"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"automatic"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"sidebarAdaptable"}}]}}]}},{"name":"TimingAnimationParams","variant":"declaration","kind":2097152,"children":[{"name":"duration","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Total animation duration (in seconds)."}]},"type":{"type":"intrinsic","name":"number"}}]},{"name":"UnitPointValue","variant":"declaration","kind":2097152,"type":{"type":"union","types":[{"type":"literal","value":"zero"},{"type":"literal","value":"topLeading"},{"type":"literal","value":"top"},{"type":"literal","value":"topTrailing"},{"type":"literal","value":"leading"},{"type":"literal","value":"center"},{"type":"literal","value":"trailing"},{"type":"literal","value":"bottomLeading"},{"type":"literal","value":"bottom"},{"type":"literal","value":"bottomTrailing"}]}},{"name":"Animation","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"Built-in animation presets for the "},{"kind":"code","text":"`animation`"},{"kind":"text","text":" modifier.\nPresets:\n- Timing presets ("},{"kind":"code","text":"`easeInOut`"},{"kind":"text","text":", "},{"kind":"code","text":"`easeIn`"},{"kind":"text","text":", "},{"kind":"code","text":"`easeOut`"},{"kind":"text","text":", "},{"kind":"code","text":"`linear`"},{"kind":"text","text":") accept\n["},{"kind":"code","text":"`TimingAnimationParams`"},{"kind":"text","text":"](#timinganimationparams).\n- "},{"kind":"code","text":"`spring`"},{"kind":"text","text":" accepts ["},{"kind":"code","text":"`SpringAnimationParams`"},{"kind":"text","text":"](#springanimationparams).\n- "},{"kind":"code","text":"`interpolatingSpring`"},{"kind":"text","text":" accepts\n["},{"kind":"code","text":"`InterpolatingSpringAnimationParams`"},{"kind":"text","text":"](#interpolatingspringanimationparams).\n- Chaining returns ["},{"kind":"code","text":"`ChainableAnimationType`"},{"kind":"text","text":"](#chainableanimationtype)."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { Host, VStack } from '@expo/ui/swift-ui';\nimport { animation, Animation } from '@expo/ui/swift-ui/modifiers';\n\nfunction Example() {\n const [isExpanded, setIsExpanded] = useState(false);\n\n return (\n \n \n //...\n \n \n );\n}\n```"}]},{"tag":"@hideType","content":[]}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"default","variant":"declaration","kind":1024,"type":{"type":"reference","name":"ChainableAnimationType","package":"@expo/ui"},"defaultValue":"..."},{"name":"easeIn","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,"flags":{"isOptional":true},"type":{"type":"reference","name":"TimingAnimationParams","package":"@expo/ui"}}],"type":{"type":"reference","name":"ChainableAnimationType","package":"@expo/ui"}}]}},"defaultValue":"..."},{"name":"easeInOut","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,"flags":{"isOptional":true},"type":{"type":"reference","name":"TimingAnimationParams","package":"@expo/ui"}}],"type":{"type":"reference","name":"ChainableAnimationType","package":"@expo/ui"}}]}},"defaultValue":"..."},{"name":"easeOut","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,"flags":{"isOptional":true},"type":{"type":"reference","name":"TimingAnimationParams","package":"@expo/ui"}}],"type":{"type":"reference","name":"ChainableAnimationType","package":"@expo/ui"}}]}},"defaultValue":"..."},{"name":"interpolatingSpring","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,"flags":{"isOptional":true},"type":{"type":"reference","name":"InterpolatingSpringAnimationParams","package":"@expo/ui"}}],"type":{"type":"reference","name":"ChainableAnimationType","package":"@expo/ui"}}]}},"defaultValue":"..."},{"name":"linear","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,"flags":{"isOptional":true},"type":{"type":"reference","name":"TimingAnimationParams","package":"@expo/ui"}}],"type":{"type":"reference","name":"ChainableAnimationType","package":"@expo/ui"}}]}},"defaultValue":"..."},{"name":"spring","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,"flags":{"isOptional":true},"type":{"type":"reference","name":"SpringAnimationParams","package":"@expo/ui"}}],"type":{"type":"reference","name":"ChainableAnimationType","package":"@expo/ui"}}]}},"defaultValue":"..."}]}},"defaultValue":"..."},{"name":"shapes","variant":"declaration","kind":32,"flags":{"isConst":true},"comment":{"summary":[{"kind":"text","text":"Shape builders for modifiers that accept shapes, such as "},{"kind":"code","text":"`background`"},{"kind":"text","text":" and "},{"kind":"code","text":"`containerShape`"},{"kind":"text","text":".\n\nShapes: "},{"kind":"code","text":"`roundedRectangle`"},{"kind":"text","text":", "},{"kind":"code","text":"`capsule`"},{"kind":"text","text":", "},{"kind":"code","text":"`rectangle`"},{"kind":"text","text":", "},{"kind":"code","text":"`ellipse`"},{"kind":"text","text":", "},{"kind":"code","text":"`circle`"},{"kind":"text","text":", "},{"kind":"code","text":"`containerRelativeShape`"},{"kind":"text","text":"."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { background, shapes } from '@expo/ui/swift-ui/modifiers';\nimport { Text, Host } from '@expo/ui/swift-ui';\n\nfunction Example() {\n return (\n \n \n Hello, world!\n \n \n );\n}\n```"}]},{"tag":"@hideType","content":[]}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"capsule","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,"flags":{"isOptional":true},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"roundedCornerStyle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"union","types":[{"type":"literal","value":"circular"},{"type":"literal","value":"continuous"}]}}]}}}],"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"roundedCornerStyle","variant":"declaration","kind":1024,"type":{"type":"union","types":[{"type":"literal","value":"circular"},{"type":"literal","value":"continuous"},{"type":"intrinsic","name":"undefined"}]},"defaultValue":"params.roundedCornerStyle"},{"name":"shape","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"},"defaultValue":"'capsule'"}]}}}]}},"defaultValue":"..."},{"name":"circle","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"shape","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"},"defaultValue":"'circle'"}]}}}]}},"defaultValue":"..."},{"name":"containerRelativeShape","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"shape","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"},"defaultValue":"'containerRelativeShape'"}]}}}]}},"defaultValue":"..."},{"name":"ellipse","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"shape","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"},"defaultValue":"'ellipse'"}]}}}]}},"defaultValue":"..."},{"name":"rectangle","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"shape","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"},"defaultValue":"'rectangle'"}]}}}]}},"defaultValue":"..."},{"name":"roundedRectangle","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":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"cornerRadius","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"cornerSize","variant":"declaration","kind":1024,"flags":{"isOptional":true},"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"}}]}}},{"name":"roundedCornerStyle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"union","types":[{"type":"literal","value":"circular"},{"type":"literal","value":"continuous"}]}}]}}}],"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"cornerRadius","variant":"declaration","kind":1024,"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"intrinsic","name":"undefined"}]},"defaultValue":"params.cornerRadius"},{"name":"cornerSize","variant":"declaration","kind":1024,"type":{"type":"union","types":[{"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":"intrinsic","name":"undefined"}]},"defaultValue":"params.cornerSize"},{"name":"roundedCornerStyle","variant":"declaration","kind":1024,"type":{"type":"union","types":[{"type":"literal","value":"circular"},{"type":"literal","value":"continuous"},{"type":"intrinsic","name":"undefined"}]},"defaultValue":"params.roundedCornerStyle"},{"name":"shape","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"string"},"defaultValue":"'roundedRectangle'"}]}}}]}},"defaultValue":"..."}]}},"defaultValue":"..."},{"name":"accessibilityAddTraits","variant":"declaration","kind":64,"signatures":[{"name":"accessibilityAddTraits","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Adds the given accessibility traits to the view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/accessibilityaddtraits(_:))."}]}]},"parameters":[{"name":"traits","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The accessibility traits to add. "},{"kind":"code","text":"`isToggle`"},{"kind":"text","text":" and "},{"kind":"code","text":"`isTabBar`"},{"kind":"text","text":" require iOS 17+ and are ignored on older systems."}]},"type":{"type":"array","elementType":{"type":"reference","name":"AccessibilityTrait","package":"@expo/ui"}}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"accessibilityElement","variant":"declaration","kind":64,"signatures":[{"name":"accessibilityElement","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Controls how a view's child accessibility elements are exposed, mirroring SwiftUI's\n"},{"kind":"code","text":"`accessibilityElement(children:)`"},{"kind":"text","text":". It creates a new accessibility element (or modifies\nthe existing one) and applies the chosen behavior to the subtree.\n\nComplements "},{"kind":"code","text":"`accessibilityHidden`"},{"kind":"text","text":", which hides a single leaf, by acting on the whole subtree."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/accessibilityelement(children:))."}]}]},"parameters":[{"name":"children","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"How the child accessibility elements are treated:\n- "},{"kind":"code","text":"`ignore`"},{"kind":"text","text":" - hide the children; the new element starts with no properties, so pair it with "},{"kind":"code","text":"`accessibilityLabel`"},{"kind":"text","text":" (default).\n- "},{"kind":"code","text":"`combine`"},{"kind":"text","text":" - merge the children's accessibility properties into the new element.\n- "},{"kind":"code","text":"`contain`"},{"kind":"text","text":" - keep the children as accessible elements, grouped in the new element as a container (navigated in order)."}]},"type":{"type":"union","types":[{"type":"literal","value":"contain"},{"type":"literal","value":"ignore"},{"type":"literal","value":"combine"}]},"defaultValue":"'ignore'"}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"accessibilityHidden","variant":"declaration","kind":64,"signatures":[{"name":"accessibilityHidden","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Marks the view as decoratively-named so VoiceOver and other assistive\ntechnologies skip it during element traversal. Useful for hero icons or\npresentational imagery that's already described by adjacent text."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/accessibilityhidden(_:))."}]}]},"parameters":[{"name":"hidden","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Whether the view should be hidden from accessibility. Defaults to "},{"kind":"code","text":"`true`"},{"kind":"text","text":"."}]},"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"true"}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"accessibilityHint","variant":"declaration","kind":64,"signatures":[{"name":"accessibilityHint","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets accessibility hint for the view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/accessibilityhint(_:))."}]}]},"parameters":[{"name":"hint","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The accessibility hint."}]},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"accessibilityIdentifier","variant":"declaration","kind":64,"signatures":[{"name":"accessibilityIdentifier","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets an accessibility identifier for the view.\n\nUnlike "},{"kind":"code","text":"`accessibilityLabel`"},{"kind":"text","text":", this value is for UI testing and is not visible\nto the user. UI testing tools such as XCUITest read it to locate the view, so\nprefer a stable, machine-readable identifier here."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/accessibilityidentifier(_:))."}]}]},"parameters":[{"name":"identifier","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The accessibility identifier used for UI testing."}]},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"accessibilityInputLabels","variant":"declaration","kind":64,"signatures":[{"name":"accessibilityInputLabels","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets alternative spoken phrases that Voice Control uses to refer to the view.\nEach label is read as a "},{"kind":"code","text":"`Text`"},{"kind":"text","text":" element on iOS. For example, an \"End\" button\nmight offer \"Hang up\" so users can trigger it by saying that phrase."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/accessibilityinputlabels(_:))."}]}]},"parameters":[{"name":"inputLabels","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The spoken phrases that select the view."}]},"type":{"type":"array","elementType":{"type":"intrinsic","name":"string"}}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"accessibilityLabel","variant":"declaration","kind":64,"signatures":[{"name":"accessibilityLabel","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets accessibility label for the view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/accessibilitylabel(_:))."}]}]},"parameters":[{"name":"label","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The accessibility label."}]},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"accessibilityRemoveTraits","variant":"declaration","kind":64,"signatures":[{"name":"accessibilityRemoveTraits","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Removes the given accessibility traits from the view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/accessibilityremovetraits(_:))."}]}]},"parameters":[{"name":"traits","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The accessibility traits to remove. "},{"kind":"code","text":"`isToggle`"},{"kind":"text","text":" and "},{"kind":"code","text":"`isTabBar`"},{"kind":"text","text":" require iOS 17+ and are ignored on older systems."}]},"type":{"type":"array","elementType":{"type":"reference","name":"AccessibilityTrait","package":"@expo/ui"}}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"accessibilityValue","variant":"declaration","kind":64,"signatures":[{"name":"accessibilityValue","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets accessibility value for the view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/accessibilityvalue(_:))."}]}]},"parameters":[{"name":"value","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The accessibility value."}]},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"activityBackgroundTint","variant":"declaration","kind":64,"signatures":[{"name":"activityBackgroundTint","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the background tint color for a Live Activity."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/activitybackgroundtint(_:))."}]}]},"parameters":[{"name":"color","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The background tint color, or "},{"kind":"code","text":"`null`"},{"kind":"text","text":" to use the system default."}]},"type":{"type":"union","types":[{"type":"reference","name":"Color","package":"@expo/ui"},{"type":"literal","value":null}]}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"alignmentGuide","variant":"declaration","kind":64,"signatures":[{"name":"alignmentGuide","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the position of a horizontal alignment guide of this view.\n\nUse the "},{"kind":"code","text":"`'listRowSeparatorLeading'`"},{"kind":"text","text":" guide to set where the separator of a "},{"kind":"code","text":"`List`"},{"kind":"text","text":" row starts.\nSwiftUI insets a row separator past a leading "},{"kind":"code","text":"`Image`"},{"kind":"text","text":", but not past other leading content, so\nrows with different leading content get separators that start at different offsets."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/alignmentguide(_:computevalue:)-9mdoh)."}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n A\n The separator starts 32 points from the leading edge\n\n```"}]}]},"parameters":[{"name":"guide","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The horizontal alignment guide to set. "},{"kind":"code","text":"`'listRowSeparatorLeading'`"},{"kind":"text","text":" and\n"},{"kind":"code","text":"`'listRowSeparatorTrailing'`"},{"kind":"text","text":" do nothing on tvOS, where SwiftUI does not provide them."}]},"type":{"type":"union","types":[{"type":"literal","value":"center"},{"type":"literal","value":"leading"},{"type":"literal","value":"trailing"},{"type":"literal","value":"listRowSeparatorLeading"},{"type":"literal","value":"listRowSeparatorTrailing"}]}},{"name":"value","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The position of the guide, in points from the leading edge of the view."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"allowsTightening","variant":"declaration","kind":64,"signatures":[{"name":"allowsTightening","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets whether text in this view can compress the space between characters when necessary to fit text in a line"}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]},{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/allowstightening(_:))."}]}]},"parameters":[{"name":"value","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"boolean"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"animation","variant":"declaration","kind":64,"signatures":[{"name":"animation","variant":"signature","kind":4096,"parameters":[{"name":"animationObject","variant":"param","kind":32768,"type":{"type":"reference","name":"ChainableAnimationType","package":"@expo/ui"}},{"name":"animatedValue","variant":"param","kind":32768,"type":{"type":"union","types":[{"type":"intrinsic","name":"number"},{"type":"intrinsic","name":"boolean"}]}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"aspectRatio","variant":"declaration","kind":64,"signatures":[{"name":"aspectRatio","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets aspect ratio constraint."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/aspectratio(_:contentmode:))."}]}]},"parameters":[{"name":"params","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Optional width/height aspect ratio and content mode."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"contentMode","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"union","types":[{"type":"literal","value":"fill"},{"type":"literal","value":"fit"}]}},{"name":"ratio","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}}]}}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"autocorrectionDisabled","variant":"declaration","kind":64,"signatures":[{"name":"autocorrectionDisabled","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Disables autocorrection for text input views."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/autocorrectiondisabled(_:))."}]}]},"parameters":[{"name":"disabled","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Whether autocorrection is disabled. Defaults to "},{"kind":"code","text":"`true`"},{"kind":"text","text":"."}]},"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"true"}],"type":{"type":"reference","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 of a view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/SwiftUI/View/background(_:alignment:))."}]}]},"parameters":[{"name":"color","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The background color (hex string). For example, "},{"kind":"code","text":"`#FF0000`"},{"kind":"text","text":"."}]},"type":{"type":"reference","name":"Color","package":"@expo/ui"}},{"name":"shape","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional shape to clip the background. If not provided, the background will fill the entire view."}]},"type":{"type":"reference","name":"Shape","package":"@expo/ui"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"backgroundOverlay","variant":"declaration","kind":64,"signatures":[{"name":"backgroundOverlay","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Adds a background behind the view."}]},"parameters":[{"name":"params","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Background color and alignment."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"alignment","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"union","types":[{"type":"literal","value":"center"},{"type":"literal","value":"top"},{"type":"literal","value":"bottom"},{"type":"literal","value":"leading"},{"type":"literal","value":"trailing"}]}},{"name":"color","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","name":"Color","package":"@expo/ui"}}]}}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"badge","variant":"declaration","kind":64,"signatures":[{"name":"badge","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Generates a badge for the view from a localized string key."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/badge(_:))."}]}]},"parameters":[{"name":"value","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Text view to display as a badge. Set the value to nil to hide the badge."}]},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"badgeProminence","variant":"declaration","kind":64,"signatures":[{"name":"badgeProminence","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"The prominence to apply to badges associated with this environment."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/badgeprominence(_:))."}]}]},"parameters":[{"name":"badgeType","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Select the type of badge"}]},"type":{"type":"union","types":[{"type":"literal","value":"standard"},{"type":"literal","value":"increased"},{"type":"literal","value":"decreased"}]}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"blur","variant":"declaration","kind":64,"signatures":[{"name":"blur","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Applies blur to a view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/blur(radius:opaque:))."}]}]},"parameters":[{"name":"radius","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The blur radius."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"bold","variant":"declaration","kind":64,"signatures":[{"name":"bold","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Makes text bold.\nWhen applied to "},{"kind":"code","text":"`Text`"},{"kind":"text","text":", it works on all iOS/tvOS versions. When used on regular views, it requires iOS 16.0+/tvOS 16.0+."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/text/bold())."}]}]},"type":{"type":"reference","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 to a view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/border(_:width:))."}]}]},"parameters":[{"name":"params","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The border parameters. Color and width."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"color","variant":"declaration","kind":1024,"type":{"type":"reference","name":"Color","package":"@expo/ui"}},{"name":"width","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}}]}}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"brightness","variant":"declaration","kind":64,"signatures":[{"name":"brightness","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Adjusts the brightness of a view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/brightness(_:))."}]}]},"parameters":[{"name":"amount","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Brightness adjustment (-1 to 1)."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"buttonBorderShape","variant":"declaration","kind":64,"signatures":[{"name":"buttonBorderShape","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the border shape used by buttons within this view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/buttonbordershape(_:))."}]}]},"parameters":[{"name":"shape","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The button border shape."}]},"type":{"type":"union","types":[{"type":"literal","value":"circle"},{"type":"literal","value":"automatic"},{"type":"literal","value":"roundedRectangle"},{"type":"literal","value":"capsule"}]}},{"name":"cornerRadius","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Corner radius, only used with "},{"kind":"code","text":"`'roundedRectangle'`"},{"kind":"text","text":"."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"buttonStyle","variant":"declaration","kind":64,"signatures":[{"name":"buttonStyle","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the button style for button views."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/buttonstyle(_:))."}]}]},"parameters":[{"name":"style","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The button style. "},{"kind":"code","text":"`'glass'`"},{"kind":"text","text":" and "},{"kind":"code","text":"`'glassProminent'`"},{"kind":"text","text":" are available on iOS 26+ and tvOS 26+ only."}]},"type":{"type":"union","types":[{"type":"literal","value":"automatic"},{"type":"literal","value":"bordered"},{"type":"literal","value":"borderedProminent"},{"type":"literal","value":"borderless"},{"type":"literal","value":"glass"},{"type":"literal","value":"glassProminent"},{"type":"literal","value":"plain"}]}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"clipped","variant":"declaration","kind":64,"signatures":[{"name":"clipped","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Clips content to bounds."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/clipped(antialiased:))."}]}]},"parameters":[{"name":"clipped","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Whether to clip content."}]},"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"true"}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"clipShape","variant":"declaration","kind":64,"signatures":[{"name":"clipShape","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Clips the view to a specific shape."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/clipshape(_:style:))."}]}]},"parameters":[{"name":"shape","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The clipping shape."}]},"type":{"type":"union","types":[{"type":"literal","value":"circle"},{"type":"literal","value":"ellipse"},{"type":"literal","value":"roundedRectangle"},{"type":"literal","value":"capsule"},{"type":"literal","value":"rectangle"},{"type":"literal","value":"containerRelativeShape"}]}},{"name":"cornerRadius","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Corner radius for rounded rectangle (default: 8)"}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"colorInvert","variant":"declaration","kind":64,"signatures":[{"name":"colorInvert","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Inverts the colors of a view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/colorinvert())."}]}]},"parameters":[{"name":"inverted","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Whether to invert colors."}]},"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"true"}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"containerBackground","variant":"declaration","kind":64,"signatures":[{"name":"containerBackground","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the container background of the enclosing container using a view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/containerbackground(_:for:))."}]}]},"parameters":[{"name":"color","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The color to set as the background of the container."}]},"type":{"type":"reference","name":"Color","package":"@expo/ui"}},{"name":"container","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The type of container to apply the background to."}]},"type":{"type":"reference","name":"ContainerBackgroundPlacement","package":"@expo/ui"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"containerRelativeFrame","variant":"declaration","kind":64,"signatures":[{"name":"containerRelativeFrame","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Positions this view within an invisible frame with a size relative to the nearest container."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/SwiftUI/View/containerRelativeFrame(_:alignment:))."}]},{"tag":"@platform","content":[{"kind":"text","text":"ios 17.0+"}]},{"tag":"@platform","content":[{"kind":"text","text":"tvos 17.0+"}]}]},"parameters":[{"name":"params","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The content relative frame parameters: "},{"kind":"code","text":"`axes`"},{"kind":"text","text":", "},{"kind":"code","text":"`count`"},{"kind":"text","text":", "},{"kind":"code","text":"`span`"},{"kind":"text","text":", "},{"kind":"code","text":"`spacing`"},{"kind":"text","text":" and "},{"kind":"code","text":"`alignment`"},{"kind":"text","text":"."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"alignment","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"union","types":[{"type":"literal","value":"center"},{"type":"literal","value":"top"},{"type":"literal","value":"bottom"},{"type":"literal","value":"leading"},{"type":"literal","value":"trailing"},{"type":"literal","value":"topLeading"},{"type":"literal","value":"topTrailing"},{"type":"literal","value":"bottomLeading"},{"type":"literal","value":"bottomTrailing"}]}},{"name":"axes","variant":"declaration","kind":1024,"type":{"type":"union","types":[{"type":"literal","value":"vertical"},{"type":"literal","value":"horizontal"},{"type":"literal","value":"both"}]}},{"name":"count","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"spacing","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"span","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}}]}}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"containerShape","variant":"declaration","kind":64,"signatures":[{"name":"containerShape","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the container shape for the view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/containershape(_:))."}]}]},"parameters":[{"name":"shape","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"A shape configuration from the shapes API"}]},"type":{"type":"reference","name":"Shape","package":"@expo/ui"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"contentShape","variant":"declaration","kind":64,"signatures":[{"name":"contentShape","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Defines the content shape for hit-testing purposes.\n\nThis modifier is essential for making entire view areas (including "},{"kind":"code","text":"`Spacer`"},{"kind":"text","text":" or empty space)\ninteractive. Without it, only visible elements like "},{"kind":"code","text":"`Text`"},{"kind":"text","text":" or "},{"kind":"code","text":"`Image`"},{"kind":"text","text":" respond to tap gestures.\n\nPass "},{"kind":"code","text":"`kind`"},{"kind":"text","text":" to shape something other than the default "},{"kind":"code","text":"`interaction`"},{"kind":"text","text":" (hit-testing), such as\nthe preview used while a "},{"kind":"code","text":"`List.ForEach`"},{"kind":"text","text":" row is dragged to reorder it."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\nimport { HStack, List, Section, Spacer, Text } from \"@expo/ui/swift-ui\";\nimport { contentShape, onTapGesture } from \"@expo/ui/swift-ui/modifiers\";\nimport { shapes } from \"@expo/ui/swift-ui/modifiers\";\n\nfunction InteractiveRow() {\n return (\n \n
\n console.log(\"Row tapped!\"))\n ]}\n >\n Label\n \n Value\n \n
\n
\n );\n}\n```"}]},{"tag":"@example","content":[{"kind":"code","text":"```tsx\n// Round the preview shown while a row is dragged, so its corners are not filled in.\n\n```"}]},{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/contentshape(_:_:eofill:))."}]}]},"parameters":[{"name":"shape","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"A shape configuration from the shapes API (rectangle, circle, capsule, ellipse, roundedRectangle)."}]},"type":{"type":"reference","name":"Shape","package":"@expo/ui"}},{"name":"kind","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"The kinds to apply the shape to. Defaults to "},{"kind":"code","text":"`interaction`"},{"kind":"text","text":" when not provided."}]},"type":{"type":"union","types":[{"type":"reference","name":"ContentShapeKind","package":"@expo/ui"},{"type":"array","elementType":{"type":"reference","name":"ContentShapeKind","package":"@expo/ui"}}]}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"contentTransition","variant":"declaration","kind":64,"signatures":[{"name":"contentTransition","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the content transition type for a view.\nUseful for animating changes in text content, especially numeric text.\nUse with the ["},{"kind":"code","text":"`animation`"},{"kind":"text","text":"](#animationanimationobject-animatedvalue) modifier to animate the transition when the content changes."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n {count.toString()}\n\n```"}]},{"tag":"@platform","content":[{"kind":"text","text":"ios 16.0+"}]},{"tag":"@platform","content":[{"kind":"text","text":"tvos 16.0+"}]},{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/contenttransition(_:))."}]}]},"parameters":[{"name":"transitionType","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The type of content transition."}]},"type":{"type":"union","types":[{"type":"literal","value":"opacity"},{"type":"literal","value":"identity"},{"type":"literal","value":"numericText"},{"type":"literal","value":"interpolate"}]}},{"name":"params","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Optional parameters."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"countsDown","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the numeric text counts down."}]},"type":{"type":"intrinsic","name":"boolean"}}]}}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"contrast","variant":"declaration","kind":64,"signatures":[{"name":"contrast","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Adjusts the contrast of a view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/contrast(_:))."}]}]},"parameters":[{"name":"amount","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Contrast multiplier (0 to infinity, 1 = normal)."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"controlSize","variant":"declaration","kind":64,"signatures":[{"name":"controlSize","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the size of controls within this view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/controlsize(_:))."}]}]},"parameters":[{"name":"size","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The control size."}]},"type":{"type":"union","types":[{"type":"literal","value":"small"},{"type":"literal","value":"large"},{"type":"literal","value":"regular"},{"type":"literal","value":"mini"},{"type":"literal","value":"extraLarge"}]}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"cornerRadius","variant":"declaration","kind":64,"signatures":[{"name":"cornerRadius","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Applies corner radius to a view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/cornerradius(_:antialiased:))."}]}]},"parameters":[{"name":"radius","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The corner radius value."}]},"type":{"type":"intrinsic","name":"number"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"createModifier","variant":"declaration","kind":64,"signatures":[{"name":"createModifier","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Factory function to create modifier configuration objects.\nThis is used by all built-in modifier functions and can be used by 3rd party libraries to create custom modifiers."}],"blockTags":[{"tag":"@returns","content":[{"kind":"text","text":"A "},{"kind":"code","text":"`ModifierConfig`"},{"kind":"text","text":" object that can be passed in the "},{"kind":"code","text":"`modifiers`"},{"kind":"text","text":" prop array."}]},{"tag":"@example","content":[{"kind":"code","text":"```ts\n// In a 3rd party package\nimport { createModifier } from '@expo/ui/swift-ui/modifiers';\n\nexport const blurEffect = (params: { radius: number; style?: string }) =>\n createModifier('blurEffect', params);\n```"}]}]},"parameters":[{"name":"type","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The modifier type string that maps to a registered native modifier."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"params","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Additional parameters to pass to the modifier."}]},"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Record"},"typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"any"}],"name":"Record","package":"typescript"},"defaultValue":"{}"}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"createModifierWithEventListener","variant":"declaration","kind":64,"signatures":[{"name":"createModifierWithEventListener","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Creates a modifier with an event listener."}]},"parameters":[{"name":"type","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}},{"name":"eventListener","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"signatures":[{"name":"__type","variant":"signature","kind":4096,"parameters":[{"name":"args","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"intrinsic","name":"void"}}]}}},{"name":"params","variant":"param","kind":32768,"type":{"type":"reference","target":{"packageName":"typescript","packagePath":"lib/lib.es5.d.ts","qualifiedName":"Record"},"typeArguments":[{"type":"intrinsic","name":"string"},{"type":"intrinsic","name":"any"}],"name":"Record","package":"typescript"},"defaultValue":"{}"}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"createViewModifierEventListener","variant":"declaration","kind":64,"signatures":[{"name":"createViewModifierEventListener","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Create an event listener for a view modifier."}]},"parameters":[{"name":"modifiers","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"An array of modifier configs to extract event listeners from."}]},"type":{"type":"array","elementType":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}}],"type":{"type":"reference","name":"GlobalEvent","package":"@expo/ui"}}]},{"name":"datePickerStyle","variant":"declaration","kind":64,"signatures":[{"name":"datePickerStyle","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the style for the date picker."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/datepickerstyle(_:))."}]}]},"parameters":[{"name":"style","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The style for the date picker."}]},"type":{"type":"reference","name":"DatePickerStyleType","package":"@expo/ui"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"defaultScrollAnchor","variant":"declaration","kind":64,"signatures":[{"name":"defaultScrollAnchor","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the default anchor point for a scroll view's content."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios 17.0+"}]},{"tag":"@platform","content":[{"kind":"text","text":"tvos 17.0+"}]},{"tag":"@platform","content":[{"kind":"text","text":"macos 14.0+"}]},{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/defaultscrollanchor(_:))."}]}]},"parameters":[{"name":"anchor","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The anchor point for initial scroll position and content size changes, or "},{"kind":"code","text":"`null`"},{"kind":"text","text":" to reset."}]},"type":{"type":"union","types":[{"type":"reference","name":"UnitPointValue","package":"@expo/ui"},{"type":"literal","value":null}]}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"defaultScrollAnchorForRole","variant":"declaration","kind":64,"signatures":[{"name":"defaultScrollAnchorForRole","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the default anchor point for a scroll view for a specific role.\nPass "},{"kind":"code","text":"`null`"},{"kind":"text","text":" to opt out of a specific role while keeping anchors for other roles."}],"blockTags":[{"tag":"@platform","content":[{"kind":"text","text":"ios 18.0+"}]},{"tag":"@platform","content":[{"kind":"text","text":"tvos 18.0+"}]},{"tag":"@platform","content":[{"kind":"text","text":"macos 15.0+"}]},{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/defaultscrollanchor(_:for:))."}]}]},"parameters":[{"name":"anchor","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The anchor point, or "},{"kind":"code","text":"`null`"},{"kind":"text","text":" to opt out of this role."}]},"type":{"type":"union","types":[{"type":"reference","name":"UnitPointValue","package":"@expo/ui"},{"type":"literal","value":null}]}},{"name":"role","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The scroll anchor role: "},{"kind":"code","text":"`'initialOffset'`"},{"kind":"text","text":", "},{"kind":"code","text":"`'sizeChanges'`"},{"kind":"text","text":", or "},{"kind":"code","text":"`'alignment'`"},{"kind":"text","text":"."}]},"type":{"type":"union","types":[{"type":"literal","value":"initialOffset"},{"type":"literal","value":"sizeChanges"},{"type":"literal","value":"alignment"}]}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"deleteDisabled","variant":"declaration","kind":64,"signatures":[{"name":"deleteDisabled","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Disables the delete action for a view in a list.\nApply to items within a "},{"kind":"code","text":"`ForEach`"},{"kind":"text","text":" to prevent them from being deleted."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"true"}]},{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/deletedisabled(_:))."}]}]},"parameters":[{"name":"disabled","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Whether deletion should be disabled"}]},"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"true"}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"disabled","variant":"declaration","kind":64,"signatures":[{"name":"disabled","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Disables or enables a view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/disabled(_:))."}]}]},"parameters":[{"name":"disabled","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"Whether the view should be disabled."}]},"type":{"type":"intrinsic","name":"boolean"},"defaultValue":"true"}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"dynamicTypeSize","variant":"declaration","kind":64,"signatures":[{"name":"dynamicTypeSize","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets or constrains the Dynamic Type size within the view, overriding the\nvalue inherited from the system.\n\nFour variants matching SwiftUI's "},{"kind":"code","text":"`dynamicTypeSize(_:)`"},{"kind":"text","text":":\n- "},{"kind":"code","text":"`dynamicTypeSize('large')`"},{"kind":"text","text":" — fixes the Dynamic Type size to a single value\n- "},{"kind":"code","text":"`dynamicTypeSize({ max: 'accessibility3' })`"},{"kind":"text","text":" — caps growth at a ceiling ("},{"kind":"code","text":"`...accessibility3`"},{"kind":"text","text":")\n- "},{"kind":"code","text":"`dynamicTypeSize({ min: 'large' })`"},{"kind":"text","text":" — sets a floor ("},{"kind":"code","text":"`large...`"},{"kind":"text","text":")\n- "},{"kind":"code","text":"`dynamicTypeSize({ min: 'large', max: 'accessibility3' })`"},{"kind":"text","text":" — clamps to a range ("},{"kind":"code","text":"`large...accessibility3`"},{"kind":"text","text":")\n\n"},{"kind":"code","text":"`min`"},{"kind":"text","text":" and "},{"kind":"code","text":"`max`"},{"kind":"text","text":" are independent: pass either or both. Set it on a "},{"kind":"code","text":"``"},{"kind":"text","text":" to\ncascade the constraint to every descendant through the SwiftUI environment.\nKeep "},{"kind":"code","text":"`min`"},{"kind":"text","text":" at or below "},{"kind":"code","text":"`max`"},{"kind":"text","text":", or the range traps natively, like SwiftUI.\nPer Apple's guidance, prefer capping at an accessibility size over disabling\nDynamic Type entirely."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n// Cap how large text in a tight layout can grow\n...\n```"}]},{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/dynamictypesize(_:))."}]}]},"parameters":[{"name":"size","variant":"param","kind":32768,"type":{"type":"reference","name":"DynamicTypeSizeValue","package":"@expo/ui"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}},{"name":"dynamicTypeSize","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets or constrains the Dynamic Type size within the view, overriding the\nvalue inherited from the system.\n\nFour variants matching SwiftUI's "},{"kind":"code","text":"`dynamicTypeSize(_:)`"},{"kind":"text","text":":\n- "},{"kind":"code","text":"`dynamicTypeSize('large')`"},{"kind":"text","text":" — fixes the Dynamic Type size to a single value\n- "},{"kind":"code","text":"`dynamicTypeSize({ max: 'accessibility3' })`"},{"kind":"text","text":" — caps growth at a ceiling ("},{"kind":"code","text":"`...accessibility3`"},{"kind":"text","text":")\n- "},{"kind":"code","text":"`dynamicTypeSize({ min: 'large' })`"},{"kind":"text","text":" — sets a floor ("},{"kind":"code","text":"`large...`"},{"kind":"text","text":")\n- "},{"kind":"code","text":"`dynamicTypeSize({ min: 'large', max: 'accessibility3' })`"},{"kind":"text","text":" — clamps to a range ("},{"kind":"code","text":"`large...accessibility3`"},{"kind":"text","text":")\n\n"},{"kind":"code","text":"`min`"},{"kind":"text","text":" and "},{"kind":"code","text":"`max`"},{"kind":"text","text":" are independent: pass either or both. Set it on a "},{"kind":"code","text":"``"},{"kind":"text","text":" to\ncascade the constraint to every descendant through the SwiftUI environment.\nKeep "},{"kind":"code","text":"`min`"},{"kind":"text","text":" at or below "},{"kind":"code","text":"`max`"},{"kind":"text","text":", or the range traps natively, like SwiftUI.\nPer Apple's guidance, prefer capping at an accessibility size over disabling\nDynamic Type entirely."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n// Cap how large text in a tight layout can grow\n...\n```"}]},{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/dynamictypesize(_:))."}]}]},"parameters":[{"name":"range","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"max","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","name":"DynamicTypeSizeValue","package":"@expo/ui"}},{"name":"min","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"reference","name":"DynamicTypeSizeValue","package":"@expo/ui"}}]}}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"environment","variant":"declaration","kind":64,"signatures":[{"name":"environment","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets a SwiftUI environment value."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/environment(_:_:))."}]}]},"parameters":[{"name":"config","variant":"param","kind":32768,"type":{"type":"reference","name":"EnvironmentConfig","package":"@expo/ui"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}},{"name":"environment","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets a SwiftUI environment value."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/environment(_:_:))."}]}]},"parameters":[{"name":"key","variant":"param","kind":32768,"type":{"type":"union","types":[{"type":"literal","value":"colorScheme"},{"type":"literal","value":"editMode"},{"type":"literal","value":"locale"},{"type":"literal","value":"timeZone"}]}},{"name":"value","variant":"param","kind":32768,"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"fixedSize","variant":"declaration","kind":64,"signatures":[{"name":"fixedSize","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Controls fixed size behavior."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/fixedsize())."}]}]},"parameters":[{"name":"params","variant":"param","kind":32768,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Whether the view should use its ideal width or height."}]},"type":{"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"}}]}}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"font","variant":"declaration","kind":64,"signatures":[{"name":"font","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the font properties of a view.\n\nPass "},{"kind":"code","text":"`textStyle`"},{"kind":"text","text":" to scale with the user's Dynamic Type setting. Combine\nit with "},{"kind":"code","text":"`family`"},{"kind":"text","text":" to scale a custom font."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n// Scales with Dynamic Type\nHello\n\n// Custom font that scales relative to the body text style\nHi\n\n// Fixed-size system font (no Dynamic Type scaling)\nStatic\n```"}]},{"tag":"@see","content":[{"kind":"text","text":"Official SwiftUI documentation for ["},{"kind":"code","text":"`system(_:design:weight:)`"},{"kind":"text","text":"](https://developer.apple.com/documentation/swiftui/font/system(_:design:weight:)), and ["},{"kind":"code","text":"`custom(_:size:relativeTo:)`"},{"kind":"text","text":"](https://developer.apple.com/documentation/swiftui/font/custom(_:size:relativeto:))."}]}]},"parameters":[{"name":"params","variant":"param","kind":32768,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"design","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Font design. Applied when no "},{"kind":"code","text":"`family`"},{"kind":"text","text":" is provided. "},{"kind":"code","text":"`Font.custom`"},{"kind":"text","text":" always uses the embedded font's own design."}]},"type":{"type":"union","types":[{"type":"literal","value":"default"},{"type":"literal","value":"rounded"},{"type":"literal","value":"serif"},{"type":"literal","value":"monospaced"}]}},{"name":"family","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Custom font family name."}]},"type":{"type":"intrinsic","name":"string"}},{"name":"size","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Font size in points. Ignored when only "},{"kind":"code","text":"`textStyle`"},{"kind":"text","text":" is set."}],"blockTags":[{"tag":"@default","content":[{"kind":"text","text":"17"}]}]},"type":{"type":"intrinsic","name":"number"}},{"name":"textStyle","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"SwiftUI text style. When set, the resulting font scales with the user's\nDynamic Type setting."}]},"type":{"type":"union","types":[{"type":"literal","value":"body"},{"type":"literal","value":"caption"},{"type":"literal","value":"title"},{"type":"literal","value":"largeTitle"},{"type":"literal","value":"title2"},{"type":"literal","value":"title3"},{"type":"literal","value":"headline"},{"type":"literal","value":"subheadline"},{"type":"literal","value":"callout"},{"type":"literal","value":"footnote"},{"type":"literal","value":"caption2"}]}},{"name":"weight","variant":"declaration","kind":1024,"flags":{"isOptional":true},"comment":{"summary":[{"kind":"text","text":"Font weight."}]},"type":{"type":"union","types":[{"type":"literal","value":"light"},{"type":"literal","value":"black"},{"type":"literal","value":"bold"},{"type":"literal","value":"medium"},{"type":"literal","value":"thin"},{"type":"literal","value":"regular"},{"type":"literal","value":"semibold"},{"type":"literal","value":"heavy"},{"type":"literal","value":"ultraLight"}]}}]}}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"foregroundColor","variant":"declaration","kind":64,"signatures":[{"name":"foregroundColor","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the foreground color/tint of a view."}],"blockTags":[{"tag":"@deprecated","content":[{"kind":"text","text":"Use "},{"kind":"code","text":"`foregroundStyle`"},{"kind":"text","text":" instead."}]},{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/foregroundcolor(_:))."}]}]},"parameters":[{"name":"color","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The foreground color (hex string)."}]},"type":{"type":"reference","name":"Color","package":"@expo/ui"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"foregroundStyle","variant":"declaration","kind":64,"signatures":[{"name":"foregroundStyle","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the foreground style of a view with comprehensive styling options.\n\nReplaces the deprecated "},{"kind":"code","text":"`foregroundColor`"},{"kind":"text","text":" modifier with enhanced capabilities including\ncolors, gradients, and semantic hierarchical styles that adapt to system appearance."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n// Simple usage\nRed Text\n\n// Adaptive hierarchical styling\n\n Supporting Text\n\n\n// Linear gradient\n\n Gradient Text\n\n```"}]},{"tag":"@returns","content":[{"kind":"text","text":"A view modifier that applies the specified foreground style"}]},{"tag":"@since","content":[{"kind":"text","text":"iOS 15.0+ (hierarchical quinary requires iOS 16.0+)"}]},{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/view/foregroundstyle(_:))."}]}]},"parameters":[{"name":"style","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The foreground style configuration. Can be:\n\n**Simple Color ("},{"kind":"code","text":"`Color`"},{"kind":"text","text":"):**\n- Hex colors: "},{"kind":"code","text":"`'#FF0000'`"},{"kind":"text","text":", "},{"kind":"code","text":"`'#RGB'`"},{"kind":"text","text":", "},{"kind":"code","text":"`'#RRGGBB'`"},{"kind":"text","text":", "},{"kind":"code","text":"`'#AARRGGBB'`"},{"kind":"text","text":"\n- Named colors: "},{"kind":"code","text":"`'red'`"},{"kind":"text","text":", "},{"kind":"code","text":"`'blue'`"},{"kind":"text","text":", "},{"kind":"code","text":"`'green'`"},{"kind":"text","text":", and so on.\n- React Native color values like "},{"kind":"code","text":"`PlatformColor('label')`"},{"kind":"text","text":"\n\n**Explicit Color Object:**\n"},{"kind":"code","text":"```ts\n{ type: 'color', color: PlatformColor('label') }\n```"},{"kind":"text","text":"\n\n**Hierarchical Styles (Semantic):**\nAuto-adapting semantic styles that respond to light/dark mode and accessibility settings:\n"},{"kind":"code","text":"```ts\n{ type: 'hierarchical', style: 'primary' } // Most prominent (main content, headlines)\n{ type: 'hierarchical', style: 'secondary' } // Supporting text, subheadlines\n{ type: 'hierarchical', style: 'tertiary' } // Less important text, captions\n{ type: 'hierarchical', style: 'quaternary' } // Subtle text, disabled states\n{ type: 'hierarchical', style: 'quinary' } // Most subtle (iOS 16+, fallback to quaternary)\n```"},{"kind":"text","text":"\n\n**Linear Gradient:**\n"},{"kind":"code","text":"```ts\n{\n type: 'linearGradient',\n colors: [PlatformColor('systemPink'), '#0000FF', '#00FF00'],\n startPoint: { x: 0, y: 0 }, // Top-left\n endPoint: { x: 1, y: 1 } // Bottom-right\n}\n```"},{"kind":"text","text":"\n\n**Radial Gradient:**\n"},{"kind":"code","text":"```ts\n{\n type: 'radialGradient',\n colors: [PlatformColor('systemPink'), '#0000FF'],\n center: { x: 0.5, y: 0.5 }, // Center of view\n startRadius: 0, // Inner radius\n endRadius: 100 // Outer radius\n}\n```"},{"kind":"text","text":"\n\n**Angular Gradient (Conic):**\n"},{"kind":"code","text":"```ts\n{\n type: 'angularGradient',\n colors: [PlatformColor('systemPink'), '#00FF00', '#0000FF'],\n center: { x: 0.5, y: 0.5 } // Rotation center\n}\n```"}]},"type":{"type":"union","types":[{"type":"reference","name":"Color","package":"@expo/ui"},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"color","variant":"declaration","kind":1024,"type":{"type":"reference","name":"Color","package":"@expo/ui"}},{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"color"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"style","variant":"declaration","kind":1024,"type":{"type":"union","types":[{"type":"literal","value":"primary"},{"type":"literal","value":"secondary"},{"type":"literal","value":"tertiary"},{"type":"literal","value":"quaternary"},{"type":"literal","value":"quinary"}]}},{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"hierarchical"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"colors","variant":"declaration","kind":1024,"type":{"type":"array","elementType":{"type":"reference","name":"Color","package":"@expo/ui"}}},{"name":"endPoint","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"x","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}},{"name":"y","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}}]}}},{"name":"startPoint","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"x","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}},{"name":"y","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}}]}}},{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"linearGradient"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"center","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"x","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}},{"name":"y","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}}]}}},{"name":"colors","variant":"declaration","kind":1024,"type":{"type":"array","elementType":{"type":"reference","name":"Color","package":"@expo/ui"}}},{"name":"endRadius","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}},{"name":"startRadius","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}},{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"radialGradient"}}]}},{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"center","variant":"declaration","kind":1024,"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"x","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}},{"name":"y","variant":"declaration","kind":1024,"type":{"type":"intrinsic","name":"number"}}]}}},{"name":"colors","variant":"declaration","kind":1024,"type":{"type":"array","elementType":{"type":"reference","name":"Color","package":"@expo/ui"}}},{"name":"type","variant":"declaration","kind":1024,"type":{"type":"literal","value":"angularGradient"}}]}}]}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"frame","variant":"declaration","kind":64,"signatures":[{"name":"frame","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the frame properties of a view."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/SwiftUI/View/frame(width:height:alignment:))."}]}]},"parameters":[{"name":"params","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The frame parameters. Width, height, minWidth, maxWidth, minHeight, maxHeight, idealWidth, idealHeight and alignment."}]},"type":{"type":"reflection","declaration":{"name":"__type","variant":"declaration","kind":65536,"children":[{"name":"alignment","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"union","types":[{"type":"literal","value":"center"},{"type":"literal","value":"top"},{"type":"literal","value":"bottom"},{"type":"literal","value":"leading"},{"type":"literal","value":"trailing"},{"type":"literal","value":"topLeading"},{"type":"literal","value":"topTrailing"},{"type":"literal","value":"bottomLeading"},{"type":"literal","value":"bottomTrailing"}]}},{"name":"height","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"idealHeight","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"idealWidth","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"maxHeight","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"maxWidth","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"minHeight","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"minWidth","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}},{"name":"width","variant":"declaration","kind":1024,"flags":{"isOptional":true},"type":{"type":"intrinsic","name":"number"}}]}}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"gaugeStyle","variant":"declaration","kind":64,"signatures":[{"name":"gaugeStyle","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Sets the style for the gauge."}],"blockTags":[{"tag":"@see","content":[{"kind":"text","text":"Official [SwiftUI documentation](https://developer.apple.com/documentation/swiftui/gaugestyle)."}]}]},"parameters":[{"name":"style","variant":"param","kind":32768,"comment":{"summary":[{"kind":"text","text":"The style for the gauge."}]},"type":{"type":"reference","name":"GaugeStyleType","package":"@expo/ui"}}],"type":{"type":"reference","name":"ModifierConfig","package":"@expo/ui"}}]},{"name":"geometryGroup","variant":"declaration","kind":64,"signatures":[{"name":"geometryGroup","variant":"signature","kind":4096,"comment":{"summary":[{"kind":"text","text":"Isolates the geometry (e.g. position and size) of the view from its parent view."}],"blockTags":[{"tag":"@example","content":[{"kind":"code","text":"```tsx\n\n {isBusy ? Working… : null}\n