@symbiote-native/angular 0.3.3 → 0.4.0

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 (69) hide show
  1. package/babel-register-composed.cjs +119 -0
  2. package/build/angular/components/image/shared.d.ts +4 -4
  3. package/build/angular/components/image/shared.js +1 -3
  4. package/build/angular/components/image/shared.js.map +1 -1
  5. package/build/angular/components/input-accessory-view.d.ts +1 -1
  6. package/build/angular/components/input-accessory-view.js +1 -5
  7. package/build/angular/components/input-accessory-view.js.map +1 -1
  8. package/build/angular/components/keyboard-avoiding-view.js +1 -6
  9. package/build/angular/components/keyboard-avoiding-view.js.map +1 -1
  10. package/build/angular/components/modal.js +1 -6
  11. package/build/angular/components/modal.js.map +1 -1
  12. package/build/angular/components/pressable/index.js +13 -14
  13. package/build/angular/components/pressable/index.js.map +1 -1
  14. package/build/angular/components/refresh-control.js +1 -6
  15. package/build/angular/components/refresh-control.js.map +1 -1
  16. package/build/angular/components/safe-area-view.d.ts +1 -1
  17. package/build/angular/components/safe-area-view.js +1 -5
  18. package/build/angular/components/safe-area-view.js.map +1 -1
  19. package/build/angular/components/text-input.js +1 -6
  20. package/build/angular/components/text-input.js.map +1 -1
  21. package/build/angular/components/touchable-native-feedback.js +1 -6
  22. package/build/angular/components/touchable-native-feedback.js.map +1 -1
  23. package/build/angular/index.d.ts +1 -1
  24. package/build/angular/index.js +1 -1
  25. package/build/angular/index.js.map +1 -1
  26. package/build/angular/modules/animated/animated-leaf-binder.d.ts +14 -0
  27. package/build/angular/modules/animated/animated-leaf-binder.js +91 -0
  28. package/build/angular/modules/animated/animated-leaf-binder.js.map +1 -0
  29. package/build/angular/modules/animated/create-animated-component.d.ts +3 -12
  30. package/build/angular/modules/animated/create-animated-component.js +48 -113
  31. package/build/angular/modules/animated/create-animated-component.js.map +1 -1
  32. package/build/angular/renderer.js +6 -14
  33. package/build/angular/renderer.js.map +1 -1
  34. package/build/components/image/shared.d.ts +4 -4
  35. package/build/components/image/shared.js +1 -3
  36. package/build/components/input-accessory-view.d.ts +1 -1
  37. package/build/components/input-accessory-view.js +1 -5
  38. package/build/components/keyboard-avoiding-view.js +1 -6
  39. package/build/components/modal.js +1 -6
  40. package/build/components/pressable/index.js +13 -14
  41. package/build/components/refresh-control.js +1 -6
  42. package/build/components/safe-area-view.d.ts +1 -1
  43. package/build/components/safe-area-view.js +1 -5
  44. package/build/components/text-input.js +1 -6
  45. package/build/components/touchable-native-feedback.js +1 -6
  46. package/build/index.d.ts +1 -1
  47. package/build/index.js +1 -1
  48. package/build/modules/animated/animated-leaf-binder.d.ts +14 -0
  49. package/build/modules/animated/animated-leaf-binder.js +90 -0
  50. package/build/modules/animated/create-animated-component.d.ts +3 -12
  51. package/build/modules/animated/create-animated-component.js +47 -112
  52. package/build/renderer.js +6 -14
  53. package/package.json +8 -4
  54. package/src/components/image/shared.ts +6 -5
  55. package/src/components/input-accessory-view.ts +6 -7
  56. package/src/components/keyboard-avoiding-view.ts +1 -6
  57. package/src/components/modal.ts +1 -6
  58. package/src/components/pressable/index.ts +17 -15
  59. package/src/components/refresh-control.ts +1 -6
  60. package/src/components/safe-area-view.ts +6 -7
  61. package/src/components/text-input.ts +1 -6
  62. package/src/components/touchable-native-feedback.ts +1 -7
  63. package/src/index.ts +1 -1
  64. package/src/modules/animated/animated-leaf-binder.test.ts +116 -0
  65. package/src/modules/animated/animated-leaf-binder.ts +101 -0
  66. package/src/modules/animated/animated-scroll-view.test.ts +17 -0
  67. package/src/modules/animated/create-animated-component.ts +53 -123
  68. package/src/renderer.test.ts +24 -1
  69. package/src/renderer.ts +6 -14
@@ -53,23 +53,15 @@ const ANCHOR_HOST_COMPONENTS = new Set([
53
53
  // Composed Angular components render their real Fabric descriptor tree from the template;
54
54
  // their Angular host element is only a framework bookkeeping node and must not paint. This
55
55
  // is NOT limited to adapter-authored components — ANY custom composed @Component used as a
56
- // plain <Tag> inside another template needs its selector listed here too, adapter or app
57
- // code alike, or Angular's automatic host-element creation for it falls through to a raw
58
- // Fabric createNode call with an unrecognized view name, which paints RN's own "Unimplemented
59
- // component: <Tag>" fallback view instead (a real device-visible bug, not a silent no-op
60
- // discovered when examples/angular's own new demo components hit this).
61
- 'AccessibilityDemo',
56
+ // plain <Tag> inside another template needs its selector listed here too, or Angular's
57
+ // automatic host-element creation for it falls through to a raw Fabric createNode call with
58
+ // an unrecognized view name, which paints RN's own "Unimplemented component: <Tag>" fallback
59
+ // view instead (a real device-visible bug, not a silent no-op). This Set holds only
60
+ // adapter/engine-owned selectors; app code and third-party packages self-register their own
61
+ // composed components through registerComposedComponent instead of being hardcoded here.
62
62
  'ActivityIndicator',
63
- 'AnimatedDemo',
64
- 'AnimatedParityDemo',
65
63
  'Button',
66
64
  'FlatList',
67
- 'NativeModulesDemo',
68
- 'ParityDemo',
69
- 'PlatformColorDemo',
70
- 'RefApiDemo',
71
- 'ResponderDemo',
72
- 'Slider',
73
65
  'AnimatedView',
74
66
  'symbiote-animated-view',
75
67
  'AnimatedText',
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/renderer.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { type IAccessibilityProps, type IAriaProps, type IImageProps, type IImageSourceProp } from '@symbiote-native/components';
3
- import type { ISymbioteEvent } from '@symbiote-native/engine';
3
+ import { type ISymbioteEvent } from '@symbiote-native/engine';
4
4
  export { setImageSourceResolver } from '@symbiote-native/components';
5
5
  export type { IImageProps, IImageSource, IImageSourceProp, IResizeMode, IImageSize, IImageCacheStatus, } from '@symbiote-native/components';
6
6
  export declare const IMAGE_INPUTS: string[];
7
7
  export declare const IMAGE_OUTPUTS: string[];
8
8
  export declare function resolveImageProps(input: Record<string, unknown>): Record<string, unknown>;
9
9
  export declare abstract class ImageBase {
10
- static readonly getSize: (uri: string, success?: (width: number, height: number) => void, failure?: (error: unknown) => void) => Promise<import("@symbiote-native/components").IImageSize>;
11
- static readonly getSizeWithHeaders: (uri: string, headers: Record<string, string>, success?: (width: number, height: number) => void, failure?: (error: unknown) => void) => Promise<import("@symbiote-native/components").IImageSize>;
10
+ static readonly getSize: (uri: string, success?: (width: number, height: number) => void, failure?: (error: unknown) => void) => Promise<import("@symbiote-native/engine").IImageSize>;
11
+ static readonly getSizeWithHeaders: (uri: string, headers: Record<string, string>, success?: (width: number, height: number) => void, failure?: (error: unknown) => void) => Promise<import("@symbiote-native/engine").IImageSize>;
12
12
  static readonly prefetch: (uri: string, callback?: (requestId: number) => void) => Promise<boolean>;
13
13
  static readonly abortPrefetch: (requestId: number) => void;
14
- static readonly queryCache: (uris: string[]) => Promise<Record<string, import("@symbiote-native/components").IImageCacheStatus>>;
14
+ static readonly queryCache: (uris: string[]) => Promise<Record<string, import("@symbiote-native/engine").IImageCacheStatus>>;
15
15
  static readonly resolveAssetSource: (source: IImageSourceProp) => unknown;
16
16
  source: unknown;
17
17
  defaultSource: unknown;
@@ -1,5 +1,6 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { imageStatics, renderImage, resolveAccessibilityProps, } from '@symbiote-native/components';
3
+ import { isSymbioteEvent, } from '@symbiote-native/engine';
3
4
  export { setImageSourceResolver } from '@symbiote-native/components';
4
5
  export const IMAGE_INPUTS = [
5
6
  'source',
@@ -107,9 +108,6 @@ function asCrossOrigin(value) {
107
108
  function asStyle(value) {
108
109
  return typeof value === 'object' && value !== null ? value : undefined;
109
110
  }
110
- function isSymbioteEvent(value) {
111
- return typeof value === 'object' && value !== null && Reflect.has(value, 'nativeEvent');
112
- }
113
111
  export function resolveImageProps(input) {
114
112
  const passthrough = {
115
113
  resizeMethod: input['resizeMethod'],
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { type IAccessibilityProps, type IAccessibilityStateValue, type IAriaProps } from '@symbiote-native/components';
3
- import type { IStyleProp, ISymbioteEvent, IViewStyle } from '@symbiote-native/engine';
3
+ import { type IStyleProp, type ISymbioteEvent, type IViewStyle } from '@symbiote-native/engine';
4
4
  export interface IAngularInputAccessoryViewProps extends IAccessibilityProps, IAriaProps {
5
5
  nativeID?: string;
6
6
  backgroundColor?: string;
@@ -40,12 +40,8 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
40
40
  };
41
41
  import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output, } from '@angular/core';
42
42
  import { resolveAccessibilityProps, } from '@symbiote-native/components';
43
+ import { isSymbioteEvent, } from '@symbiote-native/engine';
43
44
  import { anchorHostStyle, InputAccessoryViewHost, SymbioteHostPropsDirective } from '../primitives';
44
- // Angular infers an `(event)` binding's $event as the DOM Event for a custom-schema element,
45
- // so each handler enters as `unknown` and is narrowed here before reaching a typed callback.
46
- function isSymbioteEvent(value) {
47
- return typeof value === 'object' && value !== null && 'nativeEvent' in value;
48
- }
49
45
  let InputAccessoryView = (() => {
50
46
  let _classDecorators = [Component({
51
47
  selector: 'InputAccessoryView',
@@ -46,13 +46,8 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
46
46
  };
47
47
  import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Input, Output, } from '@angular/core';
48
48
  import { computeInset, readKeyboardFrame, readLayoutFrame, resolveAccessibilityProps, resolveKeyboardAvoidingLayout, DEFAULT_VERTICAL_OFFSET, } from '@symbiote-native/components';
49
- import { Keyboard, KEYBOARD_EVENT, dlog, } from '@symbiote-native/engine';
49
+ import { Keyboard, KEYBOARD_EVENT, dlog, isSymbioteEvent, } from '@symbiote-native/engine';
50
50
  import { anchorHostStyle, SymbioteHostPropsDirective, ViewHost } from '../primitives';
51
- // Angular infers an `(event)` binding's $event as the DOM Event for a custom-schema element,
52
- // so each handler enters as `unknown` and is narrowed here before reaching a typed callback.
53
- function isSymbioteEvent(value) {
54
- return typeof value === 'object' && value !== null && 'nativeEvent' in value;
55
- }
56
51
  let KeyboardAvoidingView = (() => {
57
52
  let _classDecorators = [Component({
58
53
  selector: 'KeyboardAvoidingView',
@@ -43,13 +43,8 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
43
43
  };
44
44
  import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Input, Output, } from '@angular/core';
45
45
  import { createInitialModalState, modalReducer, renderModal, resolveAccessibilityProps, shouldRenderModal, } from '@symbiote-native/components';
46
- import { dlog, } from '@symbiote-native/engine';
46
+ import { dlog, isSymbioteEvent, } from '@symbiote-native/engine';
47
47
  import { anchorHostStyle, ModalHost, SymbioteHostPropsDirective, ViewHost } from '../primitives';
48
- // Angular infers an `(event)` binding's $event as the DOM Event for a custom-schema element,
49
- // so each handler enters as `unknown` and is narrowed here before reaching a typed callback.
50
- function isSymbioteEvent(value) {
51
- return typeof value === 'object' && value !== null && 'nativeEvent' in value;
52
- }
53
48
  const ORIENTATIONS = ['portrait', 'landscape'];
54
49
  function readOrientation(event) {
55
50
  const native = event.nativeEvent;
@@ -33,7 +33,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
33
33
  return useValue ? value : void 0;
34
34
  };
35
35
  import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Input, Output, ViewChild, } from '@angular/core';
36
- import { createPressHandlers, createPressRuntime, DEFAULT_DELAY_LONG_PRESS_MS, resolveAccessibilityProps, resolveDisabledAccessibilityState, rippleProps, } from '@symbiote-native/components';
36
+ import { createPressHandlers, createPressRuntime, DEFAULT_DELAY_LONG_PRESS_MS, isTerminationAllowed, resolveAccessibilityProps, resolveDisabledAccessibilityState, rippleProps, shouldClaimResponder, shouldSuppressPress, } from '@symbiote-native/components';
37
37
  import { dlog, isSymbioteNode, measure, } from '@symbiote-native/engine';
38
38
  import { anchorHostStyle, SymbioteHostPropsDirective, ViewHost } from '../../primitives';
39
39
  function isStyleFn(value) {
@@ -409,7 +409,7 @@ let Pressable = (() => {
409
409
  }
410
410
  // The press/hover lifecycle as real Angular events: `(press)="onTap($event)"`, not
411
411
  // `[onPress]="onTap"`. createPressHandlers still wants plain IPressHandler callbacks, so
412
- // emitterHandler() below adapts each EventEmitter into one only while something is actually
412
+ // emitterHandler() below adapts each EventEmitter into one - only while something is actually
413
413
  // subscribed (`.observed`), so an unbound onLongPress still skips arming the timer, exactly as
414
414
  // the old @Input()-absent case did.
415
415
  press = __runInitializers(this, _press_initializers, new EventEmitter());
@@ -499,8 +499,8 @@ let Pressable = (() => {
499
499
  },
500
500
  };
501
501
  changeDetector = inject(ChangeDetectorRef);
502
- // This component's OWN host the non-painting anchor `class="..."` at the use site resolves
503
- // onto (see anchorHostStyle's doc comment) NOT `hostElement` above, which targets the real
502
+ // This component's OWN host - the non-painting anchor `class="..."` at the use site resolves
503
+ // onto (see anchorHostStyle's doc comment) - NOT `hostElement` above, which targets the real
504
504
  // inner `symbiote-view` one level down.
505
505
  elementRef = inject(ElementRef);
506
506
  get resolvedStyle() {
@@ -547,8 +547,7 @@ let Pressable = (() => {
547
547
  get resolvedRippleProps() {
548
548
  return this.android_ripple === undefined ? undefined : rippleProps(this.android_ripple);
549
549
  }
550
- // Assembles the SAME resolved values the template used to bind one-by-one into a single
551
- // flat bag for `[symbioteHostProps]` (Renderer2.setProperty per key) — see primitives/shared.ts.
550
+ // Flat bag for `[symbioteHostProps]` (Renderer2.setProperty per key) - see primitives/shared.ts.
552
551
  get hostProps() {
553
552
  return {
554
553
  testID: this.testID,
@@ -569,33 +568,33 @@ let Pressable = (() => {
569
568
  }
570
569
  handlePressIn(event) {
571
570
  const symbioteEvent = asSymbioteEvent(event);
572
- if (this.disabled === true || symbioteEvent === undefined)
571
+ if (shouldSuppressPress(this.disabled) || symbioteEvent === undefined)
573
572
  return;
574
573
  this.handlers.handlePressIn(symbioteEvent);
575
574
  }
576
575
  handlePressOut(event) {
577
576
  const symbioteEvent = asSymbioteEvent(event);
578
- if (this.disabled === true || symbioteEvent === undefined)
577
+ if (shouldSuppressPress(this.disabled) || symbioteEvent === undefined)
579
578
  return;
580
579
  this.handlers.handlePressOut(symbioteEvent);
581
580
  }
582
581
  handlePress(event) {
583
582
  const symbioteEvent = asSymbioteEvent(event);
584
- if (this.disabled === true || symbioteEvent === undefined)
583
+ if (shouldSuppressPress(this.disabled) || symbioteEvent === undefined)
585
584
  return;
586
585
  this.handlers.handlePress(symbioteEvent);
587
586
  }
588
587
  handleResponderMove(event) {
589
588
  const symbioteEvent = asSymbioteEvent(event);
590
- if (this.disabled === true || symbioteEvent === undefined)
589
+ if (shouldSuppressPress(this.disabled) || symbioteEvent === undefined)
591
590
  return;
592
591
  this.handlers.handleResponderMove(symbioteEvent);
593
592
  }
594
593
  claimResponder() {
595
- return this.disabled !== true;
594
+ return shouldClaimResponder(this.disabled);
596
595
  }
597
596
  allowTermination() {
598
- return this.cancelable !== false;
597
+ return isTerminationAllowed(this.cancelable);
599
598
  }
600
599
  emit(emitter, event) {
601
600
  const symbioteEvent = asSymbioteEvent(event);
@@ -610,8 +609,8 @@ let Pressable = (() => {
610
609
  }
611
610
  }
612
611
  // Wraps an @Output() as an IPressHandler only while it has a subscriber, so an unbound
613
- // (longPress) still skips arming the timer the same "undefined means nobody cares" contract
614
- // createPressHandlers had with the old @Input() callbacks.
612
+ // (longPress) still skips arming the timer, matching createPressHandlers' "undefined means
613
+ // nobody cares" contract.
615
614
  emitterHandler(emitter) {
616
615
  return emitter.observed ? event => emitter.emit(event) : undefined;
617
616
  }
@@ -47,13 +47,8 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
47
47
  };
48
48
  import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output, ViewChild, } from '@angular/core';
49
49
  import { resolveAccessibilityProps, } from '@symbiote-native/components';
50
- import { dispatchViewCommand, dlog, isSymbioteNode, } from '@symbiote-native/engine';
50
+ import { dispatchViewCommand, dlog, isSymbioteEvent, isSymbioteNode, } from '@symbiote-native/engine';
51
51
  import { anchorHostStyle, RefreshControlHost, SymbioteHostPropsDirective } from '../primitives';
52
- // Angular infers an `(event)` binding's $event as the DOM Event for a custom-schema element,
53
- // so each handler enters as `unknown` and is narrowed here before reaching a typed callback.
54
- function isSymbioteEvent(value) {
55
- return typeof value === 'object' && value !== null && 'nativeEvent' in value;
56
- }
57
52
  let RefreshControl = (() => {
58
53
  let _classDecorators = [Component({
59
54
  selector: 'RefreshControl',
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { type IAccessibilityProps, type IAccessibilityStateValue, type IAriaProps } from '@symbiote-native/components';
3
- import type { IStyleProp, ISymbioteEvent, IViewStyle } from '@symbiote-native/engine';
3
+ import { type IStyleProp, type ISymbioteEvent, type IViewStyle } from '@symbiote-native/engine';
4
4
  export interface IAngularSafeAreaViewProps extends IAccessibilityProps, IAriaProps {
5
5
  style?: IStyleProp<IViewStyle>;
6
6
  onLayout?: (event: ISymbioteEvent) => void;
@@ -41,12 +41,8 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
41
41
  };
42
42
  import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output, } from '@angular/core';
43
43
  import { resolveAccessibilityProps, } from '@symbiote-native/components';
44
+ import { isSymbioteEvent, } from '@symbiote-native/engine';
44
45
  import { anchorHostStyle, SafeAreaViewHost, SymbioteHostPropsDirective } from '../primitives';
45
- // Angular infers an `(event)` binding's $event as the DOM Event for a custom-schema element,
46
- // so each handler enters as `unknown` and is narrowed here before reaching a typed callback.
47
- function isSymbioteEvent(value) {
48
- return typeof value === 'object' && value !== null && 'nativeEvent' in value;
49
- }
50
46
  let SafeAreaView = (() => {
51
47
  let _classDecorators = [Component({
52
48
  selector: 'SafeAreaView',
@@ -60,13 +60,8 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
60
60
  };
61
61
  import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output, ViewChild, } from '@angular/core';
62
62
  import { foldText, eventCountFromChange, textFromChange, shouldCommandText, renderTextInput, resolveAccessibilityProps, resolveTextInputProps, INITIAL_EVENT_COUNT, SELECTION_NONE, } from '@symbiote-native/components';
63
- import { blurTextInput, dispatchViewCommand, dlog, isSymbioteNode, setInputBlurred, setInputFocused, whenCommitted, } from '@symbiote-native/engine';
63
+ import { blurTextInput, dispatchViewCommand, dlog, isSymbioteEvent, isSymbioteNode, setInputBlurred, setInputFocused, whenCommitted, } from '@symbiote-native/engine';
64
64
  import { anchorHostStyle, MultilineTextInputHost, SymbioteHostPropsDirective, TextInputHost, } from '../primitives';
65
- // Angular infers an (event) binding's $event as the DOM Event for a custom-schema element, so
66
- // each handler enters as `unknown` and is narrowed here before reaching a typed callback.
67
- function isSymbioteEvent(value) {
68
- return typeof value === 'object' && value !== null && 'nativeEvent' in value;
69
- }
70
65
  let TextInput = (() => {
71
66
  let _classDecorators = [Component({
72
67
  selector: 'TextInput',
@@ -53,14 +53,9 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
53
53
  };
54
54
  import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, Output, } from '@angular/core';
55
55
  import { backgroundProps, canUseNativeForeground, resolveAccessibilityProps, resolveDisabledAccessibilityState, rippleBackground, selectableBackground, selectableBackgroundBorderless, } from '@symbiote-native/components';
56
- import { dlog } from '@symbiote-native/engine';
56
+ import { dlog, isSymbioteEvent } from '@symbiote-native/engine';
57
57
  import { anchorHostStyle, SymbioteHostPropsDirective, ViewHost } from '../primitives';
58
58
  import { Pressable } from './pressable';
59
- // Angular infers an `(event)` binding's $event as the DOM Event for a custom-schema element,
60
- // so each handler enters as `unknown` and is narrowed here before reaching a typed callback.
61
- function isSymbioteEvent(value) {
62
- return typeof value === 'object' && value !== null && 'nativeEvent' in value;
63
- }
64
59
  let TouchableNativeFeedback = (() => {
65
60
  let _classDecorators = [Component({
66
61
  selector: 'TouchableNativeFeedback',
package/build/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export { mount, unmount } from './render';
7
7
  export { DescriptorOutlet } from './descriptor-to-angular';
8
8
  export { PortalDirective, PortalOutletDirective } from './create-portal';
9
9
  export { createTunnel, TunnelInDirective, TunnelOut, type ITunnelStore } from './create-tunnel';
10
- export { SymbioteRenderer, SymbioteRendererFactory } from './renderer';
10
+ export { registerComposedComponent, SymbioteRenderer, SymbioteRendererFactory } from './renderer';
11
11
  export { findNodeHandle } from './host-instance';
12
12
  export type { IHostInstance } from './host-instance';
13
13
  export { StatusBar } from './modules/status-bar';
package/build/index.js CHANGED
@@ -27,7 +27,7 @@ export { DescriptorOutlet } from './descriptor-to-angular';
27
27
  // call.
28
28
  export { PortalDirective, PortalOutletDirective } from './create-portal';
29
29
  export { createTunnel, TunnelInDirective, TunnelOut } from './create-tunnel';
30
- export { SymbioteRenderer, SymbioteRendererFactory } from './renderer';
30
+ export { registerComposedComponent, SymbioteRenderer, SymbioteRendererFactory } from './renderer';
31
31
  export { findNodeHandle } from './host-instance';
32
32
  export { StatusBar } from './modules/status-bar';
33
33
  // AppRegistry: RN's app entry point over `mount`. setHostRegistrar wires RN's own
@@ -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,90 @@
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
+ }
@@ -10,18 +10,13 @@ export declare abstract class AnimatedComponentBase implements AfterViewInit, On
10
10
  passthroughAnimatedPropExplicitValues: unknown;
11
11
  private readonly elementRef;
12
12
  private hostDirective?;
13
- private attached;
14
- private cancelBind;
15
- private eventDetachers;
13
+ private readonly leafBinder;
16
14
  private viewReady;
17
15
  get reducedProps(): Record<string, unknown>;
18
16
  ngAfterViewInit(): void;
19
17
  ngOnChanges(): void;
20
18
  ngOnDestroy(): void;
21
19
  private reconcile;
22
- private bindNode;
23
- private attachEvents;
24
- private detachEvents;
25
20
  private mergedProps;
26
21
  private hostNode;
27
22
  }
@@ -34,23 +29,19 @@ export declare class AnimatedImage extends ImageBase implements AfterViewInit, O
34
29
  passthroughAnimatedPropExplicitValues: unknown;
35
30
  private readonly elementRef;
36
31
  private hostDirective?;
37
- private attached;
38
- private cancelBind;
39
- private eventDetachers;
32
+ private readonly leafBinder;
40
33
  private viewReady;
41
34
  get animatedImageProps(): Record<string, unknown>;
42
35
  ngAfterViewInit(): void;
43
36
  ngOnChanges(): void;
44
37
  ngOnDestroy(): void;
45
38
  private reconcile;
46
- private bindNode;
47
- private attachEvents;
48
- private detachEvents;
49
39
  private mergedProps;
50
40
  private hostNode;
51
41
  }
52
42
  export declare class AnimatedScrollView extends AnimatedComponentBase {
53
43
  get reducedProps(): Record<string, unknown>;
44
+ get contentProps(): Record<string, unknown>;
54
45
  }
55
46
  export declare const AnimatedFlatList: typeof FlatList;
56
47
  export declare const AnimatedSectionList: typeof SectionList;