@symbiote-native/angular 3.3.0 → 3.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 (179) hide show
  1. package/babel-register-composed.cjs +1 -0
  2. package/build/angular/accessibility-inputs.d.ts +2 -1
  3. package/build/angular/accessibility-inputs.js +4 -1
  4. package/build/angular/accessibility-inputs.js.map +1 -1
  5. package/build/angular/callback-host.d.ts +1 -1
  6. package/build/angular/callback-host.js +57 -9
  7. package/build/angular/callback-host.js.map +1 -1
  8. package/build/angular/components/flat-list/flat-list-handle.d.ts +35 -0
  9. package/build/angular/components/flat-list/flat-list-handle.js +48 -0
  10. package/build/angular/components/flat-list/flat-list-handle.js.map +1 -0
  11. package/build/angular/components/flat-list/flat-list-template.d.ts +1 -1
  12. package/build/angular/components/flat-list/flat-list-template.js +16 -0
  13. package/build/angular/components/flat-list/flat-list-template.js.map +1 -1
  14. package/build/angular/components/flat-list/index.d.ts +6 -30
  15. package/build/angular/components/flat-list/index.js +6 -36
  16. package/build/angular/components/flat-list/index.js.map +1 -1
  17. package/build/angular/components/image-inputs.d.ts +4 -0
  18. package/build/angular/components/image-inputs.js +81 -0
  19. package/build/angular/components/image-inputs.js.map +1 -0
  20. package/build/angular/components/image-props-resolve.d.ts +3 -0
  21. package/build/angular/components/image-props-resolve.js +133 -0
  22. package/build/angular/components/image-props-resolve.js.map +1 -0
  23. package/build/angular/components/image-shared.d.ts +8 -6
  24. package/build/angular/components/image-shared.js +23 -212
  25. package/build/angular/components/image-shared.js.map +1 -1
  26. package/build/angular/components/input-accessory-view-props.d.ts +4 -4
  27. package/build/angular/components/keyboard-avoiding-view/index.d.ts +3 -6
  28. package/build/angular/components/keyboard-avoiding-view/index.js +29 -56
  29. package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
  30. package/build/angular/components/layout-conformance-props.d.ts +4 -0
  31. package/build/angular/components/layout-conformance-props.js +2 -0
  32. package/build/angular/components/layout-conformance-props.js.map +1 -0
  33. package/build/angular/components/modal/index.d.ts +6 -5
  34. package/build/angular/components/modal/index.js +17 -2
  35. package/build/angular/components/modal/index.js.map +1 -1
  36. package/build/angular/components/refresh-control-props.d.ts +7 -7
  37. package/build/angular/components/scroll-view-props.d.ts +8 -5
  38. package/build/angular/components/section-list/index.d.ts +17 -8
  39. package/build/angular/components/section-list/index.js +37 -28
  40. package/build/angular/components/section-list/index.js.map +1 -1
  41. package/build/angular/components/touchable-props.d.ts +2 -2
  42. package/build/angular/components/virtualized-list/cell-renderer-context.d.ts +12 -0
  43. package/build/angular/components/virtualized-list/cell-renderer-context.js +16 -0
  44. package/build/angular/components/virtualized-list/cell-renderer-context.js.map +1 -0
  45. package/build/angular/components/virtualized-list/directives.d.ts +26 -6
  46. package/build/angular/components/virtualized-list/directives.js +59 -5
  47. package/build/angular/components/virtualized-list/directives.js.map +1 -1
  48. package/build/angular/components/virtualized-list/index.d.ts +19 -15
  49. package/build/angular/components/virtualized-list/index.js +91 -61
  50. package/build/angular/components/virtualized-list/index.js.map +1 -1
  51. package/build/angular/components/virtualized-list/list-bags.d.ts +5 -1
  52. package/build/angular/components/virtualized-list/list-bags.js +31 -19
  53. package/build/angular/components/virtualized-list/list-bags.js.map +1 -1
  54. package/build/angular/components/virtualized-list/list-effects.d.ts +2 -2
  55. package/build/angular/components/virtualized-list/list-effects.js +17 -27
  56. package/build/angular/components/virtualized-list/list-effects.js.map +1 -1
  57. package/build/angular/components/virtualized-list/list-handle.d.ts +4 -1
  58. package/build/angular/components/virtualized-list/list-handle.js +13 -3
  59. package/build/angular/components/virtualized-list/list-handle.js.map +1 -1
  60. package/build/angular/components/virtualized-list/list-inputs.d.ts +19 -5
  61. package/build/angular/components/virtualized-list/list-inputs.js +47 -4
  62. package/build/angular/components/virtualized-list/list-inputs.js.map +1 -1
  63. package/build/angular/components/virtualized-list/list-props.d.ts +9 -3
  64. package/build/angular/components/virtualized-list/list-rows.d.ts +25 -0
  65. package/build/angular/components/virtualized-list/list-rows.js +25 -0
  66. package/build/angular/components/virtualized-list/list-rows.js.map +1 -0
  67. package/build/angular/components/virtualized-list/list-styles.d.ts +4 -0
  68. package/build/angular/components/virtualized-list/list-styles.js +10 -2
  69. package/build/angular/components/virtualized-list/list-styles.js.map +1 -1
  70. package/build/angular/components/virtualized-list/list-template.d.ts +1 -1
  71. package/build/angular/components/virtualized-list/list-template.js +159 -73
  72. package/build/angular/components/virtualized-list/list-template.js.map +1 -1
  73. package/build/angular/components/virtualized-list/nested-scope.d.ts +6 -0
  74. package/build/angular/components/virtualized-list/nested-scope.js +17 -0
  75. package/build/angular/components/virtualized-list/nested-scope.js.map +1 -0
  76. package/build/angular/components/virtualized-section-list/directives.d.ts +21 -9
  77. package/build/angular/components/virtualized-section-list/directives.js +8 -28
  78. package/build/angular/components/virtualized-section-list/directives.js.map +1 -1
  79. package/build/angular/components/virtualized-section-list/index.d.ts +39 -60
  80. package/build/angular/components/virtualized-section-list/index.js +67 -33
  81. package/build/angular/components/virtualized-section-list/index.js.map +1 -1
  82. package/build/angular/components/virtualized-section-list/section-cell.d.ts +29 -0
  83. package/build/angular/components/virtualized-section-list/section-cell.js +82 -0
  84. package/build/angular/components/virtualized-section-list/section-cell.js.map +1 -0
  85. package/build/angular/components/virtualized-section-list/section-list-props.d.ts +56 -0
  86. package/build/angular/components/virtualized-section-list/section-list-props.js +3 -0
  87. package/build/angular/components/virtualized-section-list/section-list-props.js.map +1 -0
  88. package/build/angular/components/virtualized-section-list/section-list-template.d.ts +1 -1
  89. package/build/angular/components/virtualized-section-list/section-list-template.js +34 -26
  90. package/build/angular/components/virtualized-section-list/section-list-template.js.map +1 -1
  91. package/build/angular/components.d.ts +7 -3
  92. package/build/angular/components.js +2 -1
  93. package/build/angular/components.js.map +1 -1
  94. package/build/angular/element-base.d.ts +17 -1
  95. package/build/angular/element-base.js +33 -1
  96. package/build/angular/element-base.js.map +1 -1
  97. package/build/angular/element-props.d.ts +7 -7
  98. package/build/angular/element-text-input-native.d.ts +27 -0
  99. package/build/angular/element-text-input-native.js +52 -0
  100. package/build/angular/element-text-input-native.js.map +1 -0
  101. package/build/angular/elements-controls.d.ts +8 -2
  102. package/build/angular/elements-controls.js +13 -1
  103. package/build/angular/elements-controls.js.map +1 -1
  104. package/build/angular/elements-layout.d.ts +20 -3
  105. package/build/angular/elements-layout.js +37 -3
  106. package/build/angular/elements-layout.js.map +1 -1
  107. package/build/angular/elements-press.d.ts +10 -3
  108. package/build/angular/elements-press.js +13 -1
  109. package/build/angular/elements-press.js.map +1 -1
  110. package/build/angular/elements.d.ts +3 -3
  111. package/build/angular/elements.js +3 -2
  112. package/build/angular/elements.js.map +1 -1
  113. package/build/angular/index.d.ts +14 -7
  114. package/build/angular/index.js +21 -25
  115. package/build/angular/index.js.map +1 -1
  116. package/build/angular/modules/animated/create-animated-component.d.ts +1 -1
  117. package/build/angular/modules/animated/create-animated-component.js +1 -1
  118. package/build/angular/modules/animated/create-animated-component.js.map +1 -1
  119. package/build/angular/modules/animated/index.d.ts +54 -41
  120. package/build/angular/modules/animated/index.js +2 -26
  121. package/build/angular/modules/animated/index.js.map +1 -1
  122. package/build/angular/modules/app-registry/index.d.ts +3 -3
  123. package/build/angular/modules/app-registry/index.js +2 -2
  124. package/build/angular/modules/app-registry/index.js.map +1 -1
  125. package/build/angular/modules/status-bar/index.d.ts +9 -5
  126. package/build/angular/modules/status-bar/index.js +21 -10
  127. package/build/angular/modules/status-bar/index.js.map +1 -1
  128. package/build/angular/primitives/index.d.ts +4 -0
  129. package/build/angular/primitives/index.js +12 -0
  130. package/build/angular/primitives/index.js.map +1 -1
  131. package/build/angular/services/color-scheme.service.d.ts +1 -1
  132. package/package.json +6 -6
  133. package/src/accessibility-inputs.ts +3 -0
  134. package/src/callback-host.ts +56 -8
  135. package/src/components/flat-list/flat-list-handle.ts +64 -0
  136. package/src/components/flat-list/flat-list-template.ts +16 -0
  137. package/src/components/flat-list/index.ts +6 -48
  138. package/src/components/image-inputs.ts +94 -0
  139. package/src/components/image-props-resolve.ts +172 -0
  140. package/src/components/image-shared.ts +26 -291
  141. package/src/components/input-accessory-view-props.ts +12 -8
  142. package/src/components/keyboard-avoiding-view/index.ts +39 -79
  143. package/src/components/layout-conformance-props.ts +8 -0
  144. package/src/components/modal/index.ts +42 -20
  145. package/src/components/refresh-control-props.ts +29 -25
  146. package/src/components/scroll-view-props.ts +84 -76
  147. package/src/components/section-list/index.ts +34 -37
  148. package/src/components/touchable-props.ts +6 -2
  149. package/src/components/virtualized-list/cell-renderer-context.ts +36 -0
  150. package/src/components/virtualized-list/directives.ts +84 -8
  151. package/src/components/virtualized-list/index.ts +118 -85
  152. package/src/components/virtualized-list/list-bags.ts +38 -19
  153. package/src/components/virtualized-list/list-effects.ts +20 -32
  154. package/src/components/virtualized-list/list-handle.ts +17 -4
  155. package/src/components/virtualized-list/list-inputs.ts +47 -0
  156. package/src/components/virtualized-list/list-props.ts +57 -50
  157. package/src/components/virtualized-list/list-rows.ts +66 -0
  158. package/src/components/virtualized-list/list-styles.ts +30 -1
  159. package/src/components/virtualized-list/list-template.ts +159 -73
  160. package/src/components/virtualized-list/nested-scope.ts +22 -0
  161. package/src/components/virtualized-section-list/directives.ts +41 -40
  162. package/src/components/virtualized-section-list/index.ts +114 -118
  163. package/src/components/virtualized-section-list/section-cell.ts +109 -0
  164. package/src/components/virtualized-section-list/section-list-props.ts +79 -0
  165. package/src/components/virtualized-section-list/section-list-template.ts +34 -26
  166. package/src/components.ts +8 -0
  167. package/src/element-base.ts +17 -0
  168. package/src/element-props.ts +35 -33
  169. package/src/element-text-input-native.ts +31 -0
  170. package/src/elements-controls.ts +9 -1
  171. package/src/elements-layout.ts +27 -0
  172. package/src/elements-press.ts +10 -2
  173. package/src/elements.ts +3 -0
  174. package/src/index.ts +72 -22
  175. package/src/modules/animated/index.ts +2 -47
  176. package/src/modules/app-registry/index.ts +3 -1
  177. package/src/modules/status-bar/index.ts +24 -11
  178. package/src/primitives/index.ts +7 -0
  179. package/src/services/color-scheme.service.ts +1 -1
@@ -6,29 +6,9 @@
6
6
  // `Animated.timing(new Animated.Value(0), …).start()`, works against the Angular-driven engine.
7
7
 
8
8
  import {
9
- AnimatedValue,
10
- AnimatedValueXY,
11
- AnimatedColor,
9
+ AnimatedDrivers,
12
10
  AnimatedMock,
13
- Easing,
14
11
  Platform,
15
- timing,
16
- spring,
17
- decay,
18
- parallel,
19
- sequence,
20
- stagger,
21
- loop,
22
- delay,
23
- add,
24
- subtract,
25
- multiply,
26
- divide,
27
- modulo,
28
- diffClamp,
29
- event,
30
- forkEvent,
31
- unforkEvent,
32
12
  } from '@symbiote-native/engine';
33
13
  import {
34
14
  AnimatedFlatList,
@@ -61,37 +41,12 @@ export {
61
41
  // components exist. Angular still cannot synthesize arbitrary animated wrappers at runtime; custom
62
42
  // animated components remain explicit standalone components over AnimatedComponentBase.
63
43
 
64
- // The live, JS-driven driver namespace (real frames). RN's AnimatedImplementation.
65
- const liveDrivers = {
66
- Value: AnimatedValue,
67
- ValueXY: AnimatedValueXY,
68
- Color: AnimatedColor,
69
- Easing,
70
- timing,
71
- spring,
72
- decay,
73
- parallel,
74
- sequence,
75
- stagger,
76
- loop,
77
- delay,
78
- add,
79
- subtract,
80
- multiply,
81
- divide,
82
- modulo,
83
- diffClamp,
84
- event,
85
- forkEvent,
86
- unforkEvent,
87
- };
88
-
89
44
  // RN swaps the WHOLE driver namespace for the mock when the host reports isDisableAnimations
90
45
  // (reduced motion / test env): the mock keeps the same surface but jumps each animation to its
91
46
  // final value synchronously, no frames. The animated COMPONENTS are live in both branches; only
92
47
  // the drivers/value/operators/events half is swapped, exactly like RN spreading `...Animated`
93
48
  // (impl or mock) over the same components.
94
- const drivers = Platform.isDisableAnimations ? AnimatedMock : liveDrivers;
49
+ const drivers = Platform.isDisableAnimations ? AnimatedMock : AnimatedDrivers;
95
50
 
96
51
  export const Animated = {
97
52
  View: AnimatedView,
@@ -10,6 +10,7 @@ import type { Type } from '@angular/core';
10
10
  import {
11
11
  createAppRegistry,
12
12
  dlog,
13
+ HeadlessJsTaskError,
13
14
  type IAppParameters,
14
15
  type IRunnable,
15
16
  } from '@symbiote-native/engine';
@@ -47,8 +48,9 @@ const { AppRegistry, setHostRegistrar } = createAppRegistry<
47
48
  IWrapperComponentProvider
48
49
  >(runnableFor);
49
50
 
50
- export { AppRegistry, setHostRegistrar };
51
+ export { AppRegistry, HeadlessJsTaskError, setHostRegistrar };
51
52
  export type {
53
+ IAppConfig,
52
54
  IAppParameters,
53
55
  IRunnable,
54
56
  IHostRegistrar,
@@ -1,21 +1,20 @@
1
- // StatusBar, the Angular lifecycle half. The native StatusBarManager driving, the imperative
2
- // statics, and the Android bar-height constant all live in @symbiote-native/engine, shared verbatim with
3
- // React and Vue; Metro selects the engine's platform variant. Angular supplies only the
4
- // declarative shape: a component that renders nothing and re-applies the props through
5
- // ngOnChanges on mount + every prop change. Imperative statics are attached to the component
6
- // object the same way RN does.
1
+ // Angular half of StatusBar, the props stack, statics and Android bar-height constant live in
2
+ // @symbiote-native/engine. It renders nothing, keeps one stack entry through `ngOnChanges` and
3
+ // releases it in `ngOnDestroy`
7
4
 
8
5
  import {
9
6
  Component,
10
7
  Input,
11
8
  type OnChanges,
12
- type SimpleChanges,
9
+ type OnDestroy,
10
+ type OnInit,
13
11
  } from '@angular/core';
14
12
  import {
15
- applyStatusBarProps,
13
+ createStatusBarEntry,
16
14
  statusBarImperative,
17
15
  statusBarCurrentHeight,
18
16
  type IColorValue,
17
+ type IStatusBarAnimation,
19
18
  type IStatusBarProps,
20
19
  type IStatusBarStyle,
21
20
  } from '@symbiote-native/engine';
@@ -27,16 +26,29 @@ export type { IStatusBarProps, IStatusBarStyle } from '@symbiote-native/engine';
27
26
  standalone: true,
28
27
  template: '',
29
28
  })
30
- class StatusBarComponent implements OnChanges {
29
+ class StatusBarComponent implements OnInit, OnChanges, OnDestroy {
31
30
  @Input() barStyle?: IStatusBarStyle;
32
31
  @Input() hidden?: boolean;
33
32
  @Input() animated?: boolean;
33
+ @Input() showHideTransition?: IStatusBarAnimation;
34
34
  @Input() networkActivityIndicatorVisible?: boolean;
35
35
  @Input() backgroundColor?: IColorValue;
36
36
  @Input() translucent?: boolean;
37
37
 
38
- ngOnChanges(_changes: SimpleChanges): void {
39
- applyStatusBarProps(this.buildProps());
38
+ private readonly entry = createStatusBarEntry();
39
+
40
+ // `ngOnChanges` never runs without bound inputs, the bar still takes its place in the stack
41
+ ngOnInit(): void {
42
+ this.entry.apply(this.buildProps());
43
+ }
44
+
45
+ ngOnChanges(): void {
46
+ this.entry.apply(this.buildProps());
47
+ }
48
+
49
+ // Popping restores what the stack held below this entry
50
+ ngOnDestroy(): void {
51
+ this.entry.release();
40
52
  }
41
53
 
42
54
  private buildProps(): IStatusBarProps {
@@ -44,6 +56,7 @@ class StatusBarComponent implements OnChanges {
44
56
  barStyle: this.barStyle,
45
57
  hidden: this.hidden,
46
58
  animated: this.animated,
59
+ showHideTransition: this.showHideTransition,
47
60
  networkActivityIndicatorVisible: this.networkActivityIndicatorVisible,
48
61
  backgroundColor: this.backgroundColor,
49
62
  translucent: this.translucent,
@@ -103,6 +103,13 @@ export class ActivityIndicatorHost extends SymbiotePrimitiveHost {}
103
103
  })
104
104
  export class SafeAreaViewHost extends SymbiotePrimitiveHost {}
105
105
 
106
+ @Component({
107
+ selector: 'layout-conformance',
108
+ standalone: true,
109
+ template: '<ng-content></ng-content>',
110
+ })
111
+ export class LayoutConformanceHost extends SymbiotePrimitiveHost {}
112
+
106
113
  @Component({
107
114
  selector: 'modal',
108
115
  standalone: true,
@@ -11,7 +11,7 @@ import { Appearance, type IColorSchemeName } from '@symbiote-native/engine';
11
11
  */
12
12
  @Injectable({ providedIn: 'root' })
13
13
  export class ColorSchemeService {
14
- readonly colorScheme = signal<IColorSchemeName | null>(
14
+ readonly colorScheme = signal<IColorSchemeName | null | undefined>(
15
15
  Appearance.getColorScheme(),
16
16
  );
17
17