@symbiote-native/angular 0.0.0-canary-20260724081123

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +157 -0
  3. package/babel-linker.cjs +7 -0
  4. package/babel-register-composed.cjs +127 -0
  5. package/bin/symbiote-angular-dev.cjs +93 -0
  6. package/build/angular/anchor-host-registry.d.ts +2 -0
  7. package/build/angular/anchor-host-registry.js +84 -0
  8. package/build/angular/anchor-host-registry.js.map +1 -0
  9. package/build/angular/bootstrap.d.ts +7 -0
  10. package/build/angular/bootstrap.js +15 -0
  11. package/build/angular/bootstrap.js.map +1 -0
  12. package/build/angular/components/activity-indicator/index.android.d.ts +12 -0
  13. package/build/angular/components/activity-indicator/index.android.js +21 -0
  14. package/build/angular/components/activity-indicator/index.android.js.map +1 -0
  15. package/build/angular/components/activity-indicator/index.d.ts +1 -0
  16. package/build/angular/components/activity-indicator/index.ios.d.ts +8 -0
  17. package/build/angular/components/activity-indicator/index.ios.js +21 -0
  18. package/build/angular/components/activity-indicator/index.ios.js.map +1 -0
  19. package/build/angular/components/activity-indicator/index.js +4 -0
  20. package/build/angular/components/activity-indicator/index.js.map +1 -0
  21. package/build/angular/components/activity-indicator/shared.d.ts +67 -0
  22. package/build/angular/components/activity-indicator/shared.js +260 -0
  23. package/build/angular/components/activity-indicator/shared.js.map +1 -0
  24. package/build/angular/components/button.d.ts +63 -0
  25. package/build/angular/components/button.js +332 -0
  26. package/build/angular/components/button.js.map +1 -0
  27. package/build/angular/components/flat-list/index.d.ts +122 -0
  28. package/build/angular/components/flat-list/index.js +688 -0
  29. package/build/angular/components/flat-list/index.js.map +1 -0
  30. package/build/angular/components/image/index.android.d.ts +10 -0
  31. package/build/angular/components/image/index.android.js +59 -0
  32. package/build/angular/components/image/index.android.js.map +1 -0
  33. package/build/angular/components/image/index.d.ts +1 -0
  34. package/build/angular/components/image/index.ios.d.ts +10 -0
  35. package/build/angular/components/image/index.ios.js +59 -0
  36. package/build/angular/components/image/index.ios.js.map +1 -0
  37. package/build/angular/components/image/index.js +3 -0
  38. package/build/angular/components/image/index.js.map +1 -0
  39. package/build/angular/components/image/shared.d.ts +101 -0
  40. package/build/angular/components/image/shared.js +406 -0
  41. package/build/angular/components/image/shared.js.map +1 -0
  42. package/build/angular/components/image-background.d.ts +81 -0
  43. package/build/angular/components/image-background.js +418 -0
  44. package/build/angular/components/image-background.js.map +1 -0
  45. package/build/angular/components/input-accessory-view/index.d.ts +60 -0
  46. package/build/angular/components/input-accessory-view/index.js +251 -0
  47. package/build/angular/components/input-accessory-view/index.js.map +1 -0
  48. package/build/angular/components/keyboard-avoiding-view/index.d.ts +82 -0
  49. package/build/angular/components/keyboard-avoiding-view/index.js +358 -0
  50. package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -0
  51. package/build/angular/components/modal/index.d.ts +92 -0
  52. package/build/angular/components/modal/index.js +360 -0
  53. package/build/angular/components/modal/index.js.map +1 -0
  54. package/build/angular/components/pressable/index.d.ts +123 -0
  55. package/build/angular/components/pressable/index.js +420 -0
  56. package/build/angular/components/pressable/index.js.map +1 -0
  57. package/build/angular/components/refresh-control/index.d.ts +86 -0
  58. package/build/angular/components/refresh-control/index.js +342 -0
  59. package/build/angular/components/refresh-control/index.js.map +1 -0
  60. package/build/angular/components/safe-area-view/index.d.ts +57 -0
  61. package/build/angular/components/safe-area-view/index.js +248 -0
  62. package/build/angular/components/safe-area-view/index.js.map +1 -0
  63. package/build/angular/components/scroll-view/index.android.d.ts +21 -0
  64. package/build/angular/components/scroll-view/index.android.js +235 -0
  65. package/build/angular/components/scroll-view/index.android.js.map +1 -0
  66. package/build/angular/components/scroll-view/index.d.ts +3 -0
  67. package/build/angular/components/scroll-view/index.ios.d.ts +9 -0
  68. package/build/angular/components/scroll-view/index.ios.js +86 -0
  69. package/build/angular/components/scroll-view/index.ios.js.map +1 -0
  70. package/build/angular/components/scroll-view/index.js +6 -0
  71. package/build/angular/components/scroll-view/index.js.map +1 -0
  72. package/build/angular/components/scroll-view/projection.d.ts +32 -0
  73. package/build/angular/components/scroll-view/projection.js +334 -0
  74. package/build/angular/components/scroll-view/projection.js.map +1 -0
  75. package/build/angular/components/scroll-view/shared.d.ts +230 -0
  76. package/build/angular/components/scroll-view/shared.js +682 -0
  77. package/build/angular/components/scroll-view/shared.js.map +1 -0
  78. package/build/angular/components/scroll-view/sticky-header.d.ts +40 -0
  79. package/build/angular/components/scroll-view/sticky-header.js +225 -0
  80. package/build/angular/components/scroll-view/sticky-header.js.map +1 -0
  81. package/build/angular/components/section-list/index.d.ts +116 -0
  82. package/build/angular/components/section-list/index.js +641 -0
  83. package/build/angular/components/section-list/index.js.map +1 -0
  84. package/build/angular/components/switch/index.android.d.ts +20 -0
  85. package/build/angular/components/switch/index.android.js +70 -0
  86. package/build/angular/components/switch/index.android.js.map +1 -0
  87. package/build/angular/components/switch/index.d.ts +1 -0
  88. package/build/angular/components/switch/index.ios.d.ts +19 -0
  89. package/build/angular/components/switch/index.ios.js +69 -0
  90. package/build/angular/components/switch/index.ios.js.map +1 -0
  91. package/build/angular/components/switch/index.js +4 -0
  92. package/build/angular/components/switch/index.js.map +1 -0
  93. package/build/angular/components/switch/shared.d.ts +40 -0
  94. package/build/angular/components/switch/shared.js +127 -0
  95. package/build/angular/components/switch/shared.js.map +1 -0
  96. package/build/angular/components/text-input.d.ts +153 -0
  97. package/build/angular/components/text-input.js +599 -0
  98. package/build/angular/components/text-input.js.map +1 -0
  99. package/build/angular/components/touchable/index.d.ts +245 -0
  100. package/build/angular/components/touchable/index.js +1186 -0
  101. package/build/angular/components/touchable/index.js.map +1 -0
  102. package/build/angular/components/touchable-native-feedback/index.d.ts +83 -0
  103. package/build/angular/components/touchable-native-feedback/index.js +371 -0
  104. package/build/angular/components/touchable-native-feedback/index.js.map +1 -0
  105. package/build/angular/components/virtualized-list/directives.d.ts +54 -0
  106. package/build/angular/components/virtualized-list/directives.js +153 -0
  107. package/build/angular/components/virtualized-list/directives.js.map +1 -0
  108. package/build/angular/components/virtualized-list/index.d.ts +253 -0
  109. package/build/angular/components/virtualized-list/index.js +1031 -0
  110. package/build/angular/components/virtualized-list/index.js.map +1 -0
  111. package/build/angular/components/virtualized-section-list/directives.d.ts +37 -0
  112. package/build/angular/components/virtualized-section-list/directives.js +76 -0
  113. package/build/angular/components/virtualized-section-list/directives.js.map +1 -0
  114. package/build/angular/components/virtualized-section-list/index.d.ts +178 -0
  115. package/build/angular/components/virtualized-section-list/index.js +720 -0
  116. package/build/angular/components/virtualized-section-list/index.js.map +1 -0
  117. package/build/angular/components.d.ts +39 -0
  118. package/build/angular/components.js +38 -0
  119. package/build/angular/components.js.map +1 -0
  120. package/build/angular/create-portal/index.d.ts +22 -0
  121. package/build/angular/create-portal/index.js +74 -0
  122. package/build/angular/create-portal/index.js.map +1 -0
  123. package/build/angular/create-tunnel/index.d.ts +34 -0
  124. package/build/angular/create-tunnel/index.js +126 -0
  125. package/build/angular/create-tunnel/index.js.map +1 -0
  126. package/build/angular/descriptor-to-angular/index.d.ts +22 -0
  127. package/build/angular/descriptor-to-angular/index.js +142 -0
  128. package/build/angular/descriptor-to-angular/index.js.map +1 -0
  129. package/build/angular/host-instance/index.d.ts +2 -0
  130. package/build/angular/host-instance/index.js +37 -0
  131. package/build/angular/host-instance/index.js.map +1 -0
  132. package/build/angular/index.d.ts +22 -0
  133. package/build/angular/index.js +46 -0
  134. package/build/angular/index.js.map +1 -0
  135. package/build/angular/modules/animated/animated-leaf-binder/index.d.ts +14 -0
  136. package/build/angular/modules/animated/animated-leaf-binder/index.js +91 -0
  137. package/build/angular/modules/animated/animated-leaf-binder/index.js.map +1 -0
  138. package/build/angular/modules/animated/animated-leaf-binder.d.ts +14 -0
  139. package/build/angular/modules/animated/animated-leaf-binder.js +91 -0
  140. package/build/angular/modules/animated/animated-leaf-binder.js.map +1 -0
  141. package/build/angular/modules/animated/create-animated-component.d.ts +59 -0
  142. package/build/angular/modules/animated/create-animated-component.js +364 -0
  143. package/build/angular/modules/animated/create-animated-component.js.map +1 -0
  144. package/build/angular/modules/animated/index.d.ts +51 -0
  145. package/build/angular/modules/animated/index.js +59 -0
  146. package/build/angular/modules/animated/index.js.map +1 -0
  147. package/build/angular/modules/app-registry/index.d.ts +7 -0
  148. package/build/angular/modules/app-registry/index.js +23 -0
  149. package/build/angular/modules/app-registry/index.js.map +1 -0
  150. package/build/angular/modules/status-bar/index.d.ts +20 -0
  151. package/build/angular/modules/status-bar/index.js +59 -0
  152. package/build/angular/modules/status-bar/index.js.map +1 -0
  153. package/build/angular/primitives/index.d.ts +63 -0
  154. package/build/angular/primitives/index.js +189 -0
  155. package/build/angular/primitives/index.js.map +1 -0
  156. package/build/angular/primitives/shared.d.ts +88 -0
  157. package/build/angular/primitives/shared.js +171 -0
  158. package/build/angular/primitives/shared.js.map +1 -0
  159. package/build/angular/render/index.d.ts +11 -0
  160. package/build/angular/render/index.js +171 -0
  161. package/build/angular/render/index.js.map +1 -0
  162. package/build/angular/renderer/index.d.ts +37 -0
  163. package/build/angular/renderer/index.js +301 -0
  164. package/build/angular/renderer/index.js.map +1 -0
  165. package/build/angular/services/color-scheme.service.d.ts +16 -0
  166. package/build/angular/services/color-scheme.service.js +31 -0
  167. package/build/angular/services/color-scheme.service.js.map +1 -0
  168. package/build/angular/services/index.d.ts +2 -0
  169. package/build/angular/services/index.js +3 -0
  170. package/build/angular/services/index.js.map +1 -0
  171. package/build/angular/services/window-dimensions.service.d.ts +16 -0
  172. package/build/angular/services/window-dimensions.service.js +42 -0
  173. package/build/angular/services/window-dimensions.service.js.map +1 -0
  174. package/metro-config.cjs +48 -0
  175. package/metro-css-parser.cjs +13 -0
  176. package/package.json +80 -0
  177. package/src/__tests__/responder-change-detection.test.ts +102 -0
  178. package/src/__tests__/responder-nested-cd.test.ts +113 -0
  179. package/src/anchor-host-registry.ts +88 -0
  180. package/src/angular-gaps.test.ts +142 -0
  181. package/src/angular-imports.test.ts +100 -0
  182. package/src/bootstrap.ts +26 -0
  183. package/src/components/activity-indicator/activity-indicator-class-style.test.ts +44 -0
  184. package/src/components/activity-indicator/activity-indicator.test.ts +131 -0
  185. package/src/components/activity-indicator/index.android.ts +16 -0
  186. package/src/components/activity-indicator/index.ios.ts +17 -0
  187. package/src/components/activity-indicator/index.ts +4 -0
  188. package/src/components/activity-indicator/shared.ts +206 -0
  189. package/src/components/button.ts +193 -0
  190. package/src/components/flat-list/column-wrapper-style-class.test.ts +116 -0
  191. package/src/components/flat-list/flat-list-array-style.test.ts +131 -0
  192. package/src/components/flat-list/flat-list-class-style.test.ts +74 -0
  193. package/src/components/flat-list/flat-list-scroll-containment.test.ts +107 -0
  194. package/src/components/flat-list/flat-list.test.ts +99 -0
  195. package/src/components/flat-list/index.ts +574 -0
  196. package/src/components/image/image-class-style.test.ts +46 -0
  197. package/src/components/image/index.android.ts +48 -0
  198. package/src/components/image/index.ios.ts +48 -0
  199. package/src/components/image/index.ts +3 -0
  200. package/src/components/image/shared.ts +479 -0
  201. package/src/components/image-background-class-style.test.ts +48 -0
  202. package/src/components/image-background-style-class.test.ts +79 -0
  203. package/src/components/image-background.ts +270 -0
  204. package/src/components/input-accessory-view/index.ts +185 -0
  205. package/src/components/input-accessory-view/input-accessory-view.test.ts +43 -0
  206. package/src/components/keyboard-avoiding-view/index.ts +303 -0
  207. package/src/components/keyboard-avoiding-view/keyboard-avoiding-view.test.ts +54 -0
  208. package/src/components/modal/index.ts +299 -0
  209. package/src/components/modal/modal.test.ts +43 -0
  210. package/src/components/pressable/index.ts +373 -0
  211. package/src/components/pressable/pressable.test.ts +85 -0
  212. package/src/components/refresh-control/index.ts +284 -0
  213. package/src/components/refresh-control/refresh-control.test.ts +41 -0
  214. package/src/components/safe-area-view/index.ts +177 -0
  215. package/src/components/safe-area-view/safe-area-view.test.ts +43 -0
  216. package/src/components/scroll-view/android-scroll-view-axis-projection.test.ts +123 -0
  217. package/src/components/scroll-view/content-container-style-class.test.ts +75 -0
  218. package/src/components/scroll-view/index.android.ts +190 -0
  219. package/src/components/scroll-view/index.ios.ts +79 -0
  220. package/src/components/scroll-view/index.ts +7 -0
  221. package/src/components/scroll-view/projection.ts +414 -0
  222. package/src/components/scroll-view/scroll-view-class-style.test.ts +134 -0
  223. package/src/components/scroll-view/scroll-view-projection.test.ts +194 -0
  224. package/src/components/scroll-view/shared.ts +844 -0
  225. package/src/components/scroll-view/sticky-header.ts +255 -0
  226. package/src/components/section-list/index.ts +445 -0
  227. package/src/components/switch/android-switch-class.test.ts +42 -0
  228. package/src/components/switch/index.android.ts +61 -0
  229. package/src/components/switch/index.ios.ts +60 -0
  230. package/src/components/switch/index.ts +4 -0
  231. package/src/components/switch/shared.ts +197 -0
  232. package/src/components/switch/switch.test.ts +92 -0
  233. package/src/components/text-input-class-style.test.ts +54 -0
  234. package/src/components/text-input.ts +531 -0
  235. package/src/components/touchable/index.ts +629 -0
  236. package/src/components/touchable/touchable.test.ts +102 -0
  237. package/src/components/touchable-native-feedback/index.ts +254 -0
  238. package/src/components/touchable-native-feedback/touchable-native-feedback.test.ts +49 -0
  239. package/src/components/virtualized-list/directives.ts +168 -0
  240. package/src/components/virtualized-list/index.ts +992 -0
  241. package/src/components/virtualized-list/virtualized-list-class-style.test.ts +76 -0
  242. package/src/components/virtualized-section-list/directives.ts +90 -0
  243. package/src/components/virtualized-section-list/index.ts +601 -0
  244. package/src/components/virtualized-section-list/virtualized-section-list-class-style.test.ts +60 -0
  245. package/src/components.ts +149 -0
  246. package/src/create-portal/create-portal.test.ts +90 -0
  247. package/src/create-portal/index.ts +74 -0
  248. package/src/create-tunnel/create-tunnel.test.ts +120 -0
  249. package/src/create-tunnel/index.ts +136 -0
  250. package/src/descriptor-to-angular/descriptor-outlet.test.ts +94 -0
  251. package/src/descriptor-to-angular/index.ts +190 -0
  252. package/src/host-instance/host-instance.test.ts +49 -0
  253. package/src/host-instance/index.ts +36 -0
  254. package/src/index.ts +261 -0
  255. package/src/modules/animated/animated-leaf-binder/animated-leaf-binder.test.ts +116 -0
  256. package/src/modules/animated/animated-leaf-binder/index.ts +101 -0
  257. package/src/modules/animated/animated-leaf-binder.test.ts +116 -0
  258. package/src/modules/animated/animated-leaf-binder.ts +101 -0
  259. package/src/modules/animated/animated-scroll-view.test.ts +102 -0
  260. package/src/modules/animated/create-animated-component.ts +365 -0
  261. package/src/modules/animated/index.ts +105 -0
  262. package/src/modules/app-registry/app-registry.test.ts +106 -0
  263. package/src/modules/app-registry/index.ts +60 -0
  264. package/src/modules/status-bar/index.ts +57 -0
  265. package/src/modules/status-bar/status-bar.test.ts +50 -0
  266. package/src/primitives/index.ts +119 -0
  267. package/src/primitives/shared.ts +190 -0
  268. package/src/render/index.ts +235 -0
  269. package/src/render/render.test.ts +147 -0
  270. package/src/renderer/index.ts +347 -0
  271. package/src/renderer/renderer.test.ts +203 -0
  272. package/src/services/color-scheme.service.ts +27 -0
  273. package/src/services/index.ts +2 -0
  274. package/src/services/services.test.ts +163 -0
  275. package/src/services/window-dimensions.service.ts +41 -0
  276. package/tsconfig.angular.base.json +30 -0
@@ -0,0 +1,22 @@
1
+ export { ActivityIndicator, anchorHostStyle, Button, FlatList, HorizontalScrollContentView, HorizontalScrollView, Image, ImageBackground, InputAccessoryView, KeyboardAvoidingView, Modal, Pressable, RefreshControl, SafeAreaView, ScrollContentView, ScrollView, ScrollViewStickyHeader, SectionList, stableAnchorStyle, Switch, SymbioteHostPropsDirective, Text, TextInput, TouchableHighlight, TouchableNativeFeedback, TouchableOpacity, TouchableWithoutFeedback, View, VirtualizedList, VirtualizedSectionList, VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, } from './components';
2
+ export { Animated } from './modules/animated';
3
+ export { AnimatedFlatList, AnimatedImage, AnimatedScrollView, AnimatedSectionList, AnimatedText, AnimatedView, } from './modules/animated';
4
+ export type { IActivityIndicatorProps, IAngularImageBackgroundProps, IAngularInputAccessoryViewProps, IAngularKeyboardAvoidingViewProps, IAngularModalProps, IAngularPressableProps, IAngularRefreshControlProps, IAngularSafeAreaViewProps, IAngularScrollViewProps, IAngularTextInputProps, IAngularTouchableHighlightProps, IAngularTouchableNativeFeedbackProps, IAngularTouchableOpacityProps, IAngularTouchableWithoutFeedbackProps, IButtonProps, ICellLayout, IFlatListHandle, IFlatListProps, IEnterKeyHint, IImageCacheStatus, IImageProps, IImageSize, IImageSource, IImageSourceProp, IInputMode, IKeyboardAvoidingBehavior, IModalAnimationType, IModalOrientation, IModalOrientationChangeEvent, IModalPresentationStyle, INativeFeedbackBackground, IResizeMode, IRippleBackground, IScrollViewHandle, ISectionListHandle, ISectionListProps, ISeparatorProps, ISeparators, IStickyHeaderComponentType, ISubmitBehavior, IThemeAttrBackground, IViewabilityConfig, IViewabilityConfigCallbackPair, IViewableItemsChangedInfo, IViewToken, IVirtualizedListHandle, IVirtualizedListProps, IVirtualizedSectionListHandle, IVirtualizedSectionListProps, IVListItemContext, IVListSeparatorContext, IVSectionContext, IVSectionItemContext, ISection, ISwitchProps, ISwitchTrackColor, ITextInputHandle, ITextInputSelection, } from './components';
5
+ export { setImageSourceResolver } from './components';
6
+ export { mount, unmount } from './render';
7
+ export { DescriptorOutlet } from './descriptor-to-angular';
8
+ export { PortalDirective, PortalOutletDirective } from './create-portal';
9
+ export { createTunnel, TunnelInDirective, TunnelOut, type ITunnelStore } from './create-tunnel';
10
+ export { SymbioteRenderer, SymbioteRendererFactory } from './renderer';
11
+ export { registerComposedComponent } from './anchor-host-registry';
12
+ export { findNodeHandle } from './host-instance';
13
+ export type { IHostInstance } from './host-instance';
14
+ export { StatusBar } from './modules/status-bar';
15
+ export type { IStatusBarProps, IStatusBarStyle } from './modules/status-bar';
16
+ export { AppRegistry, setHostRegistrar } from './modules/app-registry';
17
+ export type { IComponentProvider, IAppParameters, IRunnable, IHostRegistrar, IWrapperComponentProvider, IRegistry, IHeadlessTask, ITaskProvider, ITaskCanceller, ITaskCancelProvider, } from './modules/app-registry';
18
+ export { ColorSchemeService, WindowDimensionsService } from './services';
19
+ export { Alert, Share, ActionSheetIOS, Linking, Vibration, ToastAndroid, Settings, I18nManager, Dimensions, Appearance, AppState, Keyboard, KEYBOARD_EVENT, BackHandler, PermissionsAndroid, PERMISSIONS, RESULTS, AccessibilityInfo, LayoutAnimation, InteractionManager, PanResponder, PixelRatio, PlatformColor, DynamicColorIOS, } from '@symbiote-native/engine';
20
+ export type { IAlertType, IAlertButtonStyle, IAlertButton, IAlertButtons, IAlertOptions, IShareContent, IShareOptions, IShareAction, IActionSheetIOSOptions, IShareActionSheetIOSOptions, IShareActionSheetError, IUrlEvent, II18nManagerConstants, IDisplayMetrics, IDisplayMetricsAndroid, IDimensionsPayload, IDimensionsSet, IDimensionsKey, IDimensionsChangeListener, IDimensionsStatic, IColorSchemeName, IColorSchemePreference, IAppStateStatus, IAppStateEvent, IKeyboardEventName, IKeyboardEvent, IKeyboardMetrics, IBackPressEventName, IBackPressHandler, IPermission, IPermissionStatus, IRationale, IAccessibilityChangeEvent, IAccessibilityChangeEventName, IAccessibilityChangeEventHandler, IAccessibilityAnnouncementFinishedEvent, IAnnounceForAccessibilityOptions, IAccessibilityEventType, ILayoutAnimationType, ILayoutAnimationProperty, ILayoutAnimationConfig, ILayoutAnimationAnim, IInteractionEvent, ISimpleTask, IPromiseTask, ITask, IHandle, IPanResponderGestureState, IPanResponderCallbacks, IGestureResponderHandlers, IPanResponderInstance, IPixelRatioStatic, IColorValue, IOpaqueColorValue, IDynamicColorIOSTuple, } from '@symbiote-native/engine';
21
+ export { dlog, flattenStyle, isDebug, Platform, processColor, setColorProcessor, setDeviceEventSource, setNativeViewConfigSource, StyleSheet, } from '@symbiote-native/engine';
22
+ export type { IRootTag, ISymbioteEvent, ISymbioteNode } from '@symbiote-native/engine';
@@ -0,0 +1,46 @@
1
+ // @symbiote-native/angular: a thin Angular reconciler over @symbiote-native/engine. A custom Renderer2 +
2
+ // RendererFactory2 map each node op onto the engine's mutation API; all Fabric clone-on-write
3
+ // lives in the engine, shared with every other adapter. App code names only @symbiote-native/angular.
4
+ //
5
+ // SEAM SCAFFOLD: mount/unmount + the renderer seam + host intrinsic selectors. Full RN-like
6
+ // composed components still flow through the shared @symbiote-native/components bridge.
7
+ export { ActivityIndicator, anchorHostStyle, Button, FlatList, HorizontalScrollContentView, HorizontalScrollView, Image, ImageBackground, InputAccessoryView, KeyboardAvoidingView, Modal, Pressable, RefreshControl, SafeAreaView, ScrollContentView, ScrollView, ScrollViewStickyHeader, SectionList, stableAnchorStyle, Switch, SymbioteHostPropsDirective, Text, TextInput, TouchableHighlight, TouchableNativeFeedback, TouchableOpacity, TouchableWithoutFeedback, View, VirtualizedList, VirtualizedSectionList, VListEmptyDirective, VListFooterDirective, VListHeaderDirective, VListItemDirective, VListSeparatorDirective, VSectionFooterDirective, VSectionHeaderDirective, VSectionItemDirective, VSectionSeparatorDirective, } from './components';
8
+ export { Animated } from './modules/animated';
9
+ // Also exposed as named top-level symbols (not just Animated.View/.Text/...): ngtsc's partial-mode
10
+ // static evaluator can't trace a component class through property access on an external
11
+ // namespace object, only through a direct named import binding —
12
+ // so `<AnimatedView>` in a template requires `import { AnimatedView } from '@symbiote-native/angular'`,
13
+ // not `const AnimatedView = Animated.View`. Plain tsc/vitest don't catch this; only a real ngc run does.
14
+ export { AnimatedFlatList, AnimatedImage, AnimatedScrollView, AnimatedSectionList, AnimatedText, AnimatedView, } from './modules/animated';
15
+ export { setImageSourceResolver } from './components';
16
+ export { mount, unmount } from './render';
17
+ // The generic Descriptor→Angular bridge, the twin of descriptorToReact/descriptorToVue.
18
+ // Exported so a component defined OUTSIDE this package (e.g.
19
+ // @symbiote-native/slider) can render a shared @symbiote-native/components/@symbiote-native/slider Descriptor tree
20
+ // without hand-writing its own Renderer2 walker.
21
+ export { DescriptorOutlet } from './descriptor-to-angular';
22
+ // createPortal (same-surface only — see the file header) and createTunnel (cross-surface,
23
+ // see its file header) are the Angular twins of the React/Vue portal/tunnel primitives.
24
+ // Angular can't synthesize components at runtime (no JIT under Metro/Hermes), so both are
25
+ // static, pre-authored structural directives (`*portal`/`*tunnelIn`, the `*ngIf`/`*ngFor`
26
+ // idiom) parameterized by an `@Input()`, rather than a factory returning fresh components per
27
+ // call.
28
+ export { PortalDirective, PortalOutletDirective } from './create-portal';
29
+ export { createTunnel, TunnelInDirective, TunnelOut } from './create-tunnel';
30
+ export { SymbioteRenderer, SymbioteRendererFactory } from './renderer';
31
+ // registerComposedComponent lives in the dependency-free leaf ./anchor-host-registry, NOT in the
32
+ // require-cyclic ./renderer — see the leaf header. The babel-register-composed plugin injects the
33
+ // import straight from that subpath so app-screen registration never routes through this cyclic
34
+ // barrel.
35
+ export { registerComposedComponent } from './anchor-host-registry';
36
+ export { findNodeHandle } from './host-instance';
37
+ export { StatusBar } from './modules/status-bar';
38
+ // AppRegistry: RN's app entry point over `mount`. setHostRegistrar wires RN's own
39
+ // registrar so the native Fabric host finds our runnable by app key.
40
+ export { AppRegistry, setHostRegistrar } from './modules/app-registry';
41
+ export { ColorSchemeService, WindowDimensionsService } from './services';
42
+ // Framework-agnostic runtime modules from @symbiote-native/engine. Every adapter re-exports them so
43
+ // app code names only @symbiote-native/angular.
44
+ export { Alert, Share, ActionSheetIOS, Linking, Vibration, ToastAndroid, Settings, I18nManager, Dimensions, Appearance, AppState, Keyboard, KEYBOARD_EVENT, BackHandler, PermissionsAndroid, PERMISSIONS, RESULTS, AccessibilityInfo, LayoutAnimation, InteractionManager, PanResponder, PixelRatio, PlatformColor, DynamicColorIOS, } from '@symbiote-native/engine';
45
+ export { dlog, flattenStyle, isDebug, Platform, processColor, setColorProcessor, setDeviceEventSource, setNativeViewConfigSource, StyleSheet, } from '@symbiote-native/engine';
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,8FAA8F;AAC9F,sGAAsG;AACtG,EAAE;AACF,4FAA4F;AAC5F,wFAAwF;AAExF,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,MAAM,EACN,QAAQ,EACR,2BAA2B,EAC3B,oBAAoB,EACpB,KAAK,EACL,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,EACL,SAAS,EACT,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,0BAA0B,EAC1B,IAAI,EACJ,SAAS,EACT,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACxB,IAAI,EACJ,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,mGAAmG;AACnG,wFAAwF;AACxF,iEAAiE;AACjE,wGAAwG;AACxG,yGAAyG;AACzG,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACb,MAAM,oBAAoB,CAAC;AA6D5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1C,wFAAwF;AACxF,6DAA6D;AAC7D,mHAAmH;AACnH,iDAAiD;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,0FAA0F;AAC1F,wFAAwF;AACxF,0FAA0F;AAC1F,0FAA0F;AAC1F,8FAA8F;AAC9F,QAAQ;AACR,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAqB,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACvE,iGAAiG;AACjG,kGAAkG;AAClG,gGAAgG;AAChG,UAAU;AACV,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,kFAAkF;AAClF,qEAAqE;AACrE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAavE,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAEzE,oGAAoG;AACpG,gDAAgD;AAChD,OAAO,EACL,KAAK,EACL,KAAK,EACL,cAAc,EACd,OAAO,EACP,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,aAAa,EACb,eAAe,GAChB,MAAM,yBAAyB,CAAC;AA0DjC,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,UAAU,GACX,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type ISymbioteNode } from '@symbiote-native/engine';
2
+ export declare class AnimatedLeafBinder {
3
+ private readonly resolveNode;
4
+ private readonly label;
5
+ private attached;
6
+ private cancelBind;
7
+ private eventDetachers;
8
+ constructor(resolveNode: () => ISymbioteNode | null, label: string);
9
+ reconcile(props: Record<string, unknown>, wantsNative: boolean): void;
10
+ private bindNode;
11
+ private attachEvents;
12
+ private detachEvents;
13
+ destroy(): void;
14
+ }
@@ -0,0 +1,91 @@
1
+ // Pure Fabrication (GRASP): the leaf-lifecycle orchestration shared by every Animated*
2
+ // wrapper, extracted out of AnimatedComponentBase so AnimatedImage — which cannot extend
3
+ // AnimatedComponentBase, since it must extend ImageBase for TS's-native image handling —
4
+ // gets the SAME logic via composition instead of copy-pasting it. Framework-thin on
5
+ // purpose: it knows nothing about Angular (@ViewChild, DI, change detection), only the
6
+ // engine's Animated leaf + commit primitives, so it stays testable without any Angular
7
+ // bootstrap. NOTE: react/vue drive this same dance through their own runtime HOC
8
+ // (createAnimatedComponent) rather than a class, so there is no cross-adapter dedup
9
+ // opportunity here yet — this Pure Fabrication is local to the angular adapter.
10
+ import { AnimatedProps, attachNativeEventHandler, dlog, whenCommitted, } from '@symbiote-native/engine';
11
+ export class AnimatedLeafBinder {
12
+ resolveNode;
13
+ label;
14
+ // The leaf currently wired into the value graph. Null until the first reconcile.
15
+ attached = null;
16
+ // The whenCommitted waiter for the current leaf's node binding, cancelled before the next.
17
+ cancelBind;
18
+ // Detachers for any Animated.event prop bound natively to the committed node (JS path: none).
19
+ eventDetachers = [];
20
+ // `resolveNode` stays a caller-supplied resolver (not a constructor-captured node) so this
21
+ // class never needs to know HOW the host node is found — AnimatedComponentBase and
22
+ // AnimatedImage both resolve it the same way (resolveHostNode + isSymbioteNode over their
23
+ // own @ViewChild), but that's Angular DI state this binder has no business touching.
24
+ // `label` is purely diagnostic (dlog), mirroring the constructor.name the pre-extraction
25
+ // dlog call used.
26
+ constructor(resolveNode, label) {
27
+ this.resolveNode = resolveNode;
28
+ this.label = label;
29
+ }
30
+ // Build a fresh AnimatedProps leaf from the current props (the React/Vue per-render
31
+ // useMemo(rest)), wire it into the graph, and swap the previous one out. Attach the NEW leaf
32
+ // BEFORE detaching the OLD one: a shared Value self-detaches (dropping its native node) the
33
+ // instant its child count hits zero, so detaching first would kill a running native animation
34
+ // on any unrelated re-render (mirrors RN's AnimatedComponent._attachProps). Then bind the
35
+ // committed node, go native if wanted, and rebind native events.
36
+ reconcile(props, wantsNative) {
37
+ dlog(`${this.label} reconcile`);
38
+ const newLeaf = new AnimatedProps(props);
39
+ newLeaf.__attach();
40
+ if (this.attached !== null && this.attached !== newLeaf)
41
+ this.attached.__detach();
42
+ this.attached = newLeaf;
43
+ this.bindNode(newLeaf, props, wantsNative);
44
+ }
45
+ // Bind the leaf to the host's Fabric node THROUGH whenCommitted: under Angular's zoneless
46
+ // batched change detection the inner host's tag does not exist yet at ngAfterViewInit time
47
+ // (the same async-commit gotcha Vue documents), so binding eagerly would no-op. whenCommitted
48
+ // runs the action now if already committed, else after the commit that assigns the tag.
49
+ bindNode(leaf, props, wantsNative) {
50
+ this.cancelBind?.();
51
+ this.cancelBind = undefined;
52
+ const node = this.resolveNode();
53
+ if (node === null)
54
+ return;
55
+ this.cancelBind = whenCommitted(node, () => {
56
+ leaf.setNativeView(node);
57
+ if (wantsNative)
58
+ leaf.__makeNative();
59
+ this.attachEvents(node, props);
60
+ });
61
+ }
62
+ // Native-attach any Animated.event prop (e.g. onScroll={Animated.event(…,{useNativeDriver:true})})
63
+ // to the committed node. attachNativeEventHandler no-ops (returns undefined) unless the prop is a
64
+ // native event handler with a committed tag, so the JS path stays the fallback. Rebound each
65
+ // reconcile so a new inline event re-attaches; detached first to avoid leaking the prior binding.
66
+ attachEvents(node, props) {
67
+ this.detachEvents();
68
+ for (const key of Object.keys(props)) {
69
+ const attachment = attachNativeEventHandler(node, key, props[key]);
70
+ if (attachment !== undefined)
71
+ this.eventDetachers.push(attachment.detach);
72
+ }
73
+ }
74
+ detachEvents() {
75
+ for (const detach of this.eventDetachers)
76
+ detach();
77
+ this.eventDetachers = [];
78
+ }
79
+ // Tear down everything: cancel a still-pending bind, drop native event listeners, detach the
80
+ // current leaf from the value graph. Safe to call even if reconcile() was never called.
81
+ destroy() {
82
+ this.cancelBind?.();
83
+ this.cancelBind = undefined;
84
+ this.detachEvents();
85
+ if (this.attached !== null) {
86
+ this.attached.__detach();
87
+ this.attached = null;
88
+ }
89
+ }
90
+ }
91
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/animated/animated-leaf-binder/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type ISymbioteNode } from '@symbiote-native/engine';
2
+ export declare class AnimatedLeafBinder {
3
+ private readonly resolveNode;
4
+ private readonly label;
5
+ private attached;
6
+ private cancelBind;
7
+ private eventDetachers;
8
+ constructor(resolveNode: () => ISymbioteNode | null, label: string);
9
+ reconcile(props: Record<string, unknown>, wantsNative: boolean): void;
10
+ private bindNode;
11
+ private attachEvents;
12
+ private detachEvents;
13
+ destroy(): void;
14
+ }
@@ -0,0 +1,91 @@
1
+ // Pure Fabrication (GRASP): the leaf-lifecycle orchestration shared by every Animated*
2
+ // wrapper, extracted out of AnimatedComponentBase so AnimatedImage — which cannot extend
3
+ // AnimatedComponentBase, since it must extend ImageBase for TS's-native image handling —
4
+ // gets the SAME logic via composition instead of copy-pasting it. Framework-thin on
5
+ // purpose: it knows nothing about Angular (@ViewChild, DI, change detection), only the
6
+ // engine's Animated leaf + commit primitives, so it stays testable without any Angular
7
+ // bootstrap. NOTE: react/vue drive this same dance through their own runtime HOC
8
+ // (createAnimatedComponent) rather than a class, so there is no cross-adapter dedup
9
+ // opportunity here yet — this Pure Fabrication is local to the angular adapter.
10
+ import { AnimatedProps, attachNativeEventHandler, dlog, whenCommitted, } from '@symbiote-native/engine';
11
+ export class AnimatedLeafBinder {
12
+ resolveNode;
13
+ label;
14
+ // The leaf currently wired into the value graph. Null until the first reconcile.
15
+ attached = null;
16
+ // The whenCommitted waiter for the current leaf's node binding, cancelled before the next.
17
+ cancelBind;
18
+ // Detachers for any Animated.event prop bound natively to the committed node (JS path: none).
19
+ eventDetachers = [];
20
+ // `resolveNode` stays a caller-supplied resolver (not a constructor-captured node) so this
21
+ // class never needs to know HOW the host node is found — AnimatedComponentBase and
22
+ // AnimatedImage both resolve it the same way (resolveHostNode + isSymbioteNode over their
23
+ // own @ViewChild), but that's Angular DI state this binder has no business touching.
24
+ // `label` is purely diagnostic (dlog), mirroring the constructor.name the pre-extraction
25
+ // dlog call used.
26
+ constructor(resolveNode, label) {
27
+ this.resolveNode = resolveNode;
28
+ this.label = label;
29
+ }
30
+ // Build a fresh AnimatedProps leaf from the current props (the React/Vue per-render
31
+ // useMemo(rest)), wire it into the graph, and swap the previous one out. Attach the NEW leaf
32
+ // BEFORE detaching the OLD one: a shared Value self-detaches (dropping its native node) the
33
+ // instant its child count hits zero, so detaching first would kill a running native animation
34
+ // on any unrelated re-render (mirrors RN's AnimatedComponent._attachProps). Then bind the
35
+ // committed node, go native if wanted, and rebind native events.
36
+ reconcile(props, wantsNative) {
37
+ dlog(`${this.label} reconcile`);
38
+ const newLeaf = new AnimatedProps(props);
39
+ newLeaf.__attach();
40
+ if (this.attached !== null && this.attached !== newLeaf)
41
+ this.attached.__detach();
42
+ this.attached = newLeaf;
43
+ this.bindNode(newLeaf, props, wantsNative);
44
+ }
45
+ // Bind the leaf to the host's Fabric node THROUGH whenCommitted: under Angular's zoneless
46
+ // batched change detection the inner host's tag does not exist yet at ngAfterViewInit time
47
+ // (the same async-commit gotcha Vue documents), so binding eagerly would no-op. whenCommitted
48
+ // runs the action now if already committed, else after the commit that assigns the tag.
49
+ bindNode(leaf, props, wantsNative) {
50
+ this.cancelBind?.();
51
+ this.cancelBind = undefined;
52
+ const node = this.resolveNode();
53
+ if (node === null)
54
+ return;
55
+ this.cancelBind = whenCommitted(node, () => {
56
+ leaf.setNativeView(node);
57
+ if (wantsNative)
58
+ leaf.__makeNative();
59
+ this.attachEvents(node, props);
60
+ });
61
+ }
62
+ // Native-attach any Animated.event prop (e.g. onScroll={Animated.event(…,{useNativeDriver:true})})
63
+ // to the committed node. attachNativeEventHandler no-ops (returns undefined) unless the prop is a
64
+ // native event handler with a committed tag, so the JS path stays the fallback. Rebound each
65
+ // reconcile so a new inline event re-attaches; detached first to avoid leaking the prior binding.
66
+ attachEvents(node, props) {
67
+ this.detachEvents();
68
+ for (const key of Object.keys(props)) {
69
+ const attachment = attachNativeEventHandler(node, key, props[key]);
70
+ if (attachment !== undefined)
71
+ this.eventDetachers.push(attachment.detach);
72
+ }
73
+ }
74
+ detachEvents() {
75
+ for (const detach of this.eventDetachers)
76
+ detach();
77
+ this.eventDetachers = [];
78
+ }
79
+ // Tear down everything: cancel a still-pending bind, drop native event listeners, detach the
80
+ // current leaf from the value graph. Safe to call even if reconcile() was never called.
81
+ destroy() {
82
+ this.cancelBind?.();
83
+ this.cancelBind = undefined;
84
+ this.detachEvents();
85
+ if (this.attached !== null) {
86
+ this.attached.__detach();
87
+ this.attached = null;
88
+ }
89
+ }
90
+ }
91
+ //# sourceMappingURL=animated-leaf-binder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animated-leaf-binder.js","sourceRoot":"","sources":["../../../../src/modules/animated/animated-leaf-binder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { type AfterViewInit, type OnChanges, type OnDestroy, type Type } from '@angular/core';
2
+ import { FlatList } from '../../components/flat-list';
3
+ import { ImageBase } from '../../components/image/shared';
4
+ import { SectionList } from '../../components/section-list';
5
+ import * as i0 from "@angular/core";
6
+ export declare const ANIMATED_INPUTS: string[];
7
+ export declare const ANIMATED_IMAGE_INPUTS: string[];
8
+ export declare abstract class AnimatedComponentBase implements AfterViewInit, OnChanges, OnDestroy {
9
+ style: unknown;
10
+ animatedProps: Record<string, unknown> | undefined;
11
+ passthroughAnimatedPropExplicitValues: unknown;
12
+ private readonly elementRef;
13
+ private hostDirective?;
14
+ private readonly leafBinder;
15
+ private viewReady;
16
+ get reducedProps(): Record<string, unknown>;
17
+ ngAfterViewInit(): void;
18
+ ngOnChanges(): void;
19
+ ngOnDestroy(): void;
20
+ private reconcile;
21
+ private mergedProps;
22
+ private hostNode;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<AnimatedComponentBase, never>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AnimatedComponentBase, never, never, {}, {}, never, never, true, never>;
25
+ }
26
+ export declare class AnimatedView extends AnimatedComponentBase {
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<AnimatedView, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<AnimatedView, "AnimatedView, symbiote-animated-view", never, { "style": { "alias": "style"; "required": false; }; "animatedProps": { "alias": "animatedProps"; "required": false; }; "passthroughAnimatedPropExplicitValues": { "alias": "passthroughAnimatedPropExplicitValues"; "required": false; }; }, {}, never, ["*"], true, never>;
29
+ }
30
+ export declare class AnimatedText extends AnimatedComponentBase {
31
+ static ɵfac: i0.ɵɵFactoryDeclaration<AnimatedText, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<AnimatedText, "AnimatedText, symbiote-animated-text", never, { "style": { "alias": "style"; "required": false; }; "animatedProps": { "alias": "animatedProps"; "required": false; }; "passthroughAnimatedPropExplicitValues": { "alias": "passthroughAnimatedPropExplicitValues"; "required": false; }; }, {}, never, ["*"], true, never>;
33
+ }
34
+ export declare class AnimatedImage extends ImageBase implements AfterViewInit, OnChanges, OnDestroy {
35
+ animatedProps: Record<string, unknown> | undefined;
36
+ passthroughAnimatedPropExplicitValues: unknown;
37
+ private readonly elementRef;
38
+ private hostDirective?;
39
+ private readonly leafBinder;
40
+ private viewReady;
41
+ get animatedImageProps(): Record<string, unknown>;
42
+ ngAfterViewInit(): void;
43
+ ngOnChanges(): void;
44
+ ngOnDestroy(): void;
45
+ private reconcile;
46
+ private mergedProps;
47
+ private hostNode;
48
+ static ɵfac: i0.ɵɵFactoryDeclaration<AnimatedImage, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<AnimatedImage, "AnimatedImage, symbiote-animated-image", never, { "source": { "alias": "source"; "required": false; }; "defaultSource": { "alias": "defaultSource"; "required": false; }; "loadingIndicatorSource": { "alias": "loadingIndicatorSource"; "required": false; }; "style": { "alias": "style"; "required": false; }; "resizeMode": { "alias": "resizeMode"; "required": false; }; "resizeMethod": { "alias": "resizeMethod"; "required": false; }; "tintColor": { "alias": "tintColor"; "required": false; }; "blurRadius": { "alias": "blurRadius"; "required": false; }; "capInsets": { "alias": "capInsets"; "required": false; }; "fadeDuration": { "alias": "fadeDuration"; "required": false; }; "progressiveRenderingEnabled": { "alias": "progressiveRenderingEnabled"; "required": false; }; "src": { "alias": "src"; "required": false; }; "srcSet": { "alias": "srcSet"; "required": false; }; "alt": { "alias": "alt"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "crossOrigin": { "alias": "crossOrigin"; "required": false; }; "referrerPolicy": { "alias": "referrerPolicy"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "accessible": { "alias": "accessible"; "required": false; }; "accessibilityLabel": { "alias": "accessibilityLabel"; "required": false; }; "accessibilityHint": { "alias": "accessibilityHint"; "required": false; }; "accessibilityRole": { "alias": "accessibilityRole"; "required": false; }; "accessibilityState": { "alias": "accessibilityState"; "required": false; }; "accessibilityValue": { "alias": "accessibilityValue"; "required": false; }; "accessibilityActions": { "alias": "accessibilityActions"; "required": false; }; "accessibilityLabelledBy": { "alias": "accessibilityLabelledBy"; "required": false; }; "importantForAccessibility": { "alias": "importantForAccessibility"; "required": false; }; "accessibilityLiveRegion": { "alias": "accessibilityLiveRegion"; "required": false; }; "screenReaderFocusable": { "alias": "screenReaderFocusable"; "required": false; }; "accessibilityViewIsModal": { "alias": "accessibilityViewIsModal"; "required": false; }; "accessibilityElementsHidden": { "alias": "accessibilityElementsHidden"; "required": false; }; "accessibilityIgnoresInvertColors": { "alias": "accessibilityIgnoresInvertColors"; "required": false; }; "accessibilityLanguage": { "alias": "accessibilityLanguage"; "required": false; }; "accessibilityRespondsToUserInteraction": { "alias": "accessibilityRespondsToUserInteraction"; "required": false; }; "accessibilityShowsLargeContentViewer": { "alias": "accessibilityShowsLargeContentViewer"; "required": false; }; "accessibilityLargeContentTitle": { "alias": "accessibilityLargeContentTitle"; "required": false; }; "role": { "alias": "role"; "required": false; }; "ariaLabel": { "alias": "aria-label"; "required": false; }; "ariaLabelledBy": { "alias": "aria-labelledby"; "required": false; }; "ariaLive": { "alias": "aria-live"; "required": false; }; "ariaHidden": { "alias": "aria-hidden"; "required": false; }; "ariaBusy": { "alias": "aria-busy"; "required": false; }; "ariaChecked": { "alias": "aria-checked"; "required": false; }; "ariaDisabled": { "alias": "aria-disabled"; "required": false; }; "ariaExpanded": { "alias": "aria-expanded"; "required": false; }; "ariaSelected": { "alias": "aria-selected"; "required": false; }; "ariaModal": { "alias": "aria-modal"; "required": false; }; "ariaValueMax": { "alias": "aria-valuemax"; "required": false; }; "ariaValueMin": { "alias": "aria-valuemin"; "required": false; }; "ariaValueNow": { "alias": "aria-valuenow"; "required": false; }; "ariaValueText": { "alias": "aria-valuetext"; "required": false; }; "onAccessibilityAction": { "alias": "onAccessibilityAction"; "required": false; }; "onAccessibilityTap": { "alias": "onAccessibilityTap"; "required": false; }; "onMagicTap": { "alias": "onMagicTap"; "required": false; }; "onAccessibilityEscape": { "alias": "onAccessibilityEscape"; "required": false; }; "onLoadStart": { "alias": "onLoadStart"; "required": false; }; "onLoad": { "alias": "onLoad"; "required": false; }; "onLoadEnd": { "alias": "onLoadEnd"; "required": false; }; "onError": { "alias": "onError"; "required": false; }; "onProgress": { "alias": "onProgress"; "required": false; }; "onPartialLoad": { "alias": "onPartialLoad"; "required": false; }; "animatedProps": { "alias": "animatedProps"; "required": false; }; "passthroughAnimatedPropExplicitValues": { "alias": "passthroughAnimatedPropExplicitValues"; "required": false; }; }, { "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; "loadStart": "loadStart"; "load": "load"; "loadEnd": "loadEnd"; "error": "error"; "progress": "progress"; "partialLoad": "partialLoad"; }, never, ["*"], true, never>;
50
+ }
51
+ export declare class AnimatedScrollView extends AnimatedComponentBase {
52
+ get reducedProps(): Record<string, unknown>;
53
+ get contentProps(): Record<string, unknown>;
54
+ static ɵfac: i0.ɵɵFactoryDeclaration<AnimatedScrollView, never>;
55
+ static ɵcmp: i0.ɵɵComponentDeclaration<AnimatedScrollView, "AnimatedScrollView, symbiote-animated-scroll-view", never, { "style": { "alias": "style"; "required": false; }; "animatedProps": { "alias": "animatedProps"; "required": false; }; "passthroughAnimatedPropExplicitValues": { "alias": "passthroughAnimatedPropExplicitValues"; "required": false; }; }, {}, never, ["*"], true, never>;
56
+ }
57
+ export declare const AnimatedFlatList: typeof FlatList;
58
+ export declare const AnimatedSectionList: typeof SectionList;
59
+ export declare function createAnimatedComponent(base: unknown): Type<unknown>;