@symbiote-native/angular 0.7.0 → 1.0.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 (188) hide show
  1. package/README.md +3 -3
  2. package/babel-lower-host-primitives.cjs +636 -0
  3. package/babel-register-composed.cjs +21 -3
  4. package/build/angular/anchor-host-registry.js +3 -1
  5. package/build/angular/anchor-host-registry.js.map +1 -1
  6. package/build/angular/bootstrap.js +1 -1
  7. package/build/angular/bootstrap.js.map +1 -1
  8. package/build/angular/components/activity-indicator/index.android.js +7 -2
  9. package/build/angular/components/activity-indicator/index.android.js.map +1 -1
  10. package/build/angular/components/activity-indicator/index.ios.js +3 -1
  11. package/build/angular/components/activity-indicator/index.ios.js.map +1 -1
  12. package/build/angular/components/activity-indicator/shared.d.ts +1 -1
  13. package/build/angular/components/activity-indicator/shared.js +1 -1
  14. package/build/angular/components/activity-indicator/shared.js.map +1 -1
  15. package/build/angular/components/button.d.ts +3 -0
  16. package/build/angular/components/button.js +22 -5
  17. package/build/angular/components/button.js.map +1 -1
  18. package/build/angular/components/flat-list/index.d.ts +1 -1
  19. package/build/angular/components/flat-list/index.js +47 -14
  20. package/build/angular/components/flat-list/index.js.map +1 -1
  21. package/build/angular/components/image/index.android.js +4 -10
  22. package/build/angular/components/image/index.android.js.map +1 -1
  23. package/build/angular/components/image/index.ios.js +4 -10
  24. package/build/angular/components/image/index.ios.js.map +1 -1
  25. package/build/angular/components/image/shared.d.ts +4 -4
  26. package/build/angular/components/image/shared.js +51 -33
  27. package/build/angular/components/image/shared.js.map +1 -1
  28. package/build/angular/components/image-background.d.ts +3 -0
  29. package/build/angular/components/image-background.js +32 -9
  30. package/build/angular/components/image-background.js.map +1 -1
  31. package/build/angular/components/input-accessory-view/index.d.ts +2 -1
  32. package/build/angular/components/input-accessory-view/index.js +18 -16
  33. package/build/angular/components/input-accessory-view/index.js.map +1 -1
  34. package/build/angular/components/keyboard-avoiding-view/index.d.ts +3 -1
  35. package/build/angular/components/keyboard-avoiding-view/index.js +56 -19
  36. package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
  37. package/build/angular/components/modal/index.d.ts +1 -0
  38. package/build/angular/components/modal/index.js +21 -10
  39. package/build/angular/components/modal/index.js.map +1 -1
  40. package/build/angular/components/pressable/index.d.ts +10 -5
  41. package/build/angular/components/pressable/index.js +61 -16
  42. package/build/angular/components/pressable/index.js.map +1 -1
  43. package/build/angular/components/refresh-control/index.d.ts +2 -1
  44. package/build/angular/components/refresh-control/index.js +13 -9
  45. package/build/angular/components/refresh-control/index.js.map +1 -1
  46. package/build/angular/components/safe-area-view/index.d.ts +3 -1
  47. package/build/angular/components/safe-area-view/index.js +22 -20
  48. package/build/angular/components/safe-area-view/index.js.map +1 -1
  49. package/build/angular/components/scroll-view/index.android.js +44 -14
  50. package/build/angular/components/scroll-view/index.android.js.map +1 -1
  51. package/build/angular/components/scroll-view/index.ios.js +13 -5
  52. package/build/angular/components/scroll-view/index.ios.js.map +1 -1
  53. package/build/angular/components/scroll-view/projection.d.ts +32 -0
  54. package/build/angular/components/scroll-view/projection.js +212 -47
  55. package/build/angular/components/scroll-view/projection.js.map +1 -1
  56. package/build/angular/components/scroll-view/shared.d.ts +2 -0
  57. package/build/angular/components/scroll-view/shared.js +48 -11
  58. package/build/angular/components/scroll-view/shared.js.map +1 -1
  59. package/build/angular/components/scroll-view/sticky-header.js +7 -3
  60. package/build/angular/components/scroll-view/sticky-header.js.map +1 -1
  61. package/build/angular/components/section-list/index.d.ts +9 -1
  62. package/build/angular/components/section-list/index.js +72 -18
  63. package/build/angular/components/section-list/index.js.map +1 -1
  64. package/build/angular/components/switch/index.android.js +23 -9
  65. package/build/angular/components/switch/index.android.js.map +1 -1
  66. package/build/angular/components/switch/index.ios.js +23 -9
  67. package/build/angular/components/switch/index.ios.js.map +1 -1
  68. package/build/angular/components/switch/shared.d.ts +1 -1
  69. package/build/angular/components/switch/shared.js +5 -2
  70. package/build/angular/components/switch/shared.js.map +1 -1
  71. package/build/angular/components/text-input.d.ts +8 -2
  72. package/build/angular/components/text-input.js +79 -34
  73. package/build/angular/components/text-input.js.map +1 -1
  74. package/build/angular/components/touchable/index.d.ts +36 -7
  75. package/build/angular/components/touchable/index.js +280 -72
  76. package/build/angular/components/touchable/index.js.map +1 -1
  77. package/build/angular/components/touchable-native-feedback/index.d.ts +2 -1
  78. package/build/angular/components/touchable-native-feedback/index.js +19 -17
  79. package/build/angular/components/touchable-native-feedback/index.js.map +1 -1
  80. package/build/angular/components/virtualized-list/directives.js +4 -0
  81. package/build/angular/components/virtualized-list/directives.js.map +1 -1
  82. package/build/angular/components/virtualized-list/index.d.ts +8 -2
  83. package/build/angular/components/virtualized-list/index.js +207 -61
  84. package/build/angular/components/virtualized-list/index.js.map +1 -1
  85. package/build/angular/components/virtualized-section-list/directives.js.map +1 -1
  86. package/build/angular/components/virtualized-section-list/index.d.ts +21 -1
  87. package/build/angular/components/virtualized-section-list/index.js +100 -22
  88. package/build/angular/components/virtualized-section-list/index.js.map +1 -1
  89. package/build/angular/components.d.ts +2 -2
  90. package/build/angular/components.js +1 -1
  91. package/build/angular/components.js.map +1 -1
  92. package/build/angular/create-portal/index.d.ts +11 -2
  93. package/build/angular/create-portal/index.js +42 -12
  94. package/build/angular/create-portal/index.js.map +1 -1
  95. package/build/angular/create-tunnel/index.js.map +1 -1
  96. package/build/angular/descriptor-to-angular/index.js +3 -1
  97. package/build/angular/descriptor-to-angular/index.js.map +1 -1
  98. package/build/angular/diagnostics.d.ts +33 -0
  99. package/build/angular/diagnostics.js +82 -0
  100. package/build/angular/diagnostics.js.map +1 -0
  101. package/build/angular/gate-demand.d.ts +37 -0
  102. package/build/angular/gate-demand.js +84 -0
  103. package/build/angular/gate-demand.js.map +1 -0
  104. package/build/angular/host-instance/index.js +1 -1
  105. package/build/angular/host-instance/index.js.map +1 -1
  106. package/build/angular/index.d.ts +6 -2
  107. package/build/angular/index.js +16 -1
  108. package/build/angular/index.js.map +1 -1
  109. package/build/angular/modules/animated/create-animated-component.d.ts +1 -0
  110. package/build/angular/modules/animated/create-animated-component.js +41 -18
  111. package/build/angular/modules/animated/create-animated-component.js.map +1 -1
  112. package/build/angular/modules/app-registry/index.js.map +1 -1
  113. package/build/angular/modules/status-bar/index.js +1 -1
  114. package/build/angular/modules/status-bar/index.js.map +1 -1
  115. package/build/angular/primitives/index.d.ts +31 -2
  116. package/build/angular/primitives/index.js +81 -3
  117. package/build/angular/primitives/index.js.map +1 -1
  118. package/build/angular/primitives/shared.d.ts +9 -1
  119. package/build/angular/primitives/shared.js +49 -3
  120. package/build/angular/primitives/shared.js.map +1 -1
  121. package/build/angular/register.d.ts +1 -0
  122. package/build/angular/register.js +35 -0
  123. package/build/angular/register.js.map +1 -0
  124. package/build/angular/render/index.js +51 -6
  125. package/build/angular/render/index.js.map +1 -1
  126. package/build/angular/renderer/index.d.ts +1 -0
  127. package/build/angular/renderer/index.js +157 -21
  128. package/build/angular/renderer/index.js.map +1 -1
  129. package/build/angular/services/color-scheme.service.js.map +1 -1
  130. package/build/angular/services/window-dimensions.service.js +1 -1
  131. package/build/angular/services/window-dimensions.service.js.map +1 -1
  132. package/build/angular/state-style.d.ts +9 -0
  133. package/build/angular/state-style.js +39 -0
  134. package/build/angular/state-style.js.map +1 -0
  135. package/metro-transformer.cjs +69 -0
  136. package/package.json +27 -8
  137. package/src/anchor-host-registry.ts +3 -1
  138. package/src/bootstrap.ts +4 -1
  139. package/src/components/activity-indicator/index.android.ts +7 -2
  140. package/src/components/activity-indicator/index.ios.ts +3 -1
  141. package/src/components/activity-indicator/shared.ts +32 -13
  142. package/src/components/button.ts +36 -6
  143. package/src/components/flat-list/index.ts +91 -29
  144. package/src/components/image/index.android.ts +9 -6
  145. package/src/components/image/index.ios.ts +9 -6
  146. package/src/components/image/shared.ts +110 -45
  147. package/src/components/image-background.ts +47 -10
  148. package/src/components/input-accessory-view/index.ts +41 -18
  149. package/src/components/keyboard-avoiding-view/index.ts +76 -22
  150. package/src/components/modal/index.ts +39 -12
  151. package/src/components/pressable/index.ts +121 -31
  152. package/src/components/refresh-control/index.ts +36 -13
  153. package/src/components/safe-area-view/index.ts +44 -19
  154. package/src/components/scroll-view/index.android.ts +31 -9
  155. package/src/components/scroll-view/index.ios.ts +17 -4
  156. package/src/components/scroll-view/projection.ts +290 -63
  157. package/src/components/scroll-view/shared.ts +124 -30
  158. package/src/components/scroll-view/sticky-header.ts +25 -8
  159. package/src/components/section-list/index.ts +79 -19
  160. package/src/components/switch/index.android.ts +18 -7
  161. package/src/components/switch/index.ios.ts +18 -7
  162. package/src/components/switch/shared.ts +15 -4
  163. package/src/components/text-input.ts +119 -31
  164. package/src/components/touchable/index.ts +339 -72
  165. package/src/components/touchable-native-feedback/index.ts +50 -18
  166. package/src/components/virtualized-list/directives.ts +19 -5
  167. package/src/components/virtualized-list/index.ts +292 -72
  168. package/src/components/virtualized-section-list/directives.ts +6 -3
  169. package/src/components/virtualized-section-list/index.ts +164 -34
  170. package/src/components.ts +6 -1
  171. package/src/create-portal/index.ts +47 -11
  172. package/src/create-tunnel/index.ts +3 -1
  173. package/src/descriptor-to-angular/index.ts +29 -8
  174. package/src/diagnostics.ts +138 -0
  175. package/src/gate-demand.ts +109 -0
  176. package/src/host-instance/index.ts +9 -3
  177. package/src/index.ts +33 -2
  178. package/src/modules/animated/create-animated-component.ts +67 -19
  179. package/src/modules/app-registry/index.ts +3 -1
  180. package/src/modules/status-bar/index.ts +13 -4
  181. package/src/primitives/index.ts +73 -2
  182. package/src/primitives/shared.ts +70 -9
  183. package/src/register.ts +43 -0
  184. package/src/render/index.ts +59 -7
  185. package/src/renderer/index.ts +209 -37
  186. package/src/services/color-scheme.service.ts +3 -1
  187. package/src/services/window-dimensions.service.ts +11 -4
  188. package/src/state-style.ts +39 -0
@@ -2,7 +2,7 @@
2
2
  // keyboard's way as it shows/hides. The inset math + the behavior → style/structure decision
3
3
  // live framework-agnostic in @symbiote-native/components (render-keyboard-avoiding-view), shared verbatim
4
4
  // with React/Vue; Angular supplies only the lifecycle: a plain inset field, ngOnInit subscribes to
5
- // the core Keyboard module (show / changeFrame / hide) and markForCheck pulls the OnPush view (the
5
+ // the core Keyboard module (the host's show / hide pair) and markForCheck pulls the OnPush view (the
6
6
  // Angular twin of React's setState / Vue's reactive ref), ngOnDestroy tears the subscriptions down,
7
7
  // and the wrapper's onLayout measures the frame that feeds the next event's inset. The user
8
8
  // children nest under the wrapper (or, for 'position', an inner View) via <ng-content>. No native
@@ -11,8 +11,8 @@
11
11
  // Full parity: behavior 'height'|'position'|'padding', enabled, keyboardVerticalOffset,
12
12
  // contentContainerStyle, onLayout, plus the full a11y/aria surface every View carries.
13
13
  import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Input, Output, } from '@angular/core';
14
- import { computeInset, readKeyboardFrame, readLayoutFrame, resolveAccessibilityProps, resolveKeyboardAvoidingLayout, DEFAULT_VERTICAL_OFFSET, } from '@symbiote-native/components';
15
- import { Keyboard, KEYBOARD_EVENT, dlog, isSymbioteEvent, } from '@symbiote-native/engine';
14
+ import { computeInset, keyboardAvoidingEventNamesFor, readKeyboardFrame, readLayoutFrame, readPrefersCrossFadeTransitions, resolveAccessibilityProps, resolveKeyboardAvoidingLayout, DEFAULT_VERTICAL_OFFSET, } from '@symbiote-native/components';
15
+ import { Keyboard, Platform, dlog, isSymbioteEvent, } from '@symbiote-native/engine';
16
16
  import { anchorHostStyle, SymbioteHostPropsDirective, SymbioteStyleInputDirective, ViewHost, } from '../../primitives';
17
17
  import * as i0 from "@angular/core";
18
18
  import * as i1 from "../../primitives/shared";
@@ -73,6 +73,12 @@ export class KeyboardAvoidingView {
73
73
  // keyboard event's inset math (React's frameRef / initialHeightRef, Vue's frame / initialHeight).
74
74
  frame;
75
75
  initialHeight;
76
+ // The iOS "Prefer Cross-Fade Transitions" setting, read once per mount. Deliberately a plain
77
+ // field and NOT markForCheck'd when the promise lands: it is a device setting that cannot change
78
+ // mid-session, and it feeds only the NEXT keyboard event's math — never the current render — so
79
+ // under zoneless CD there is nothing to repaint at resolve time. The keyboard event that does use
80
+ // it already calls markForCheck itself.
81
+ prefersCrossFadeTransitions = false;
76
82
  subscriptions = [];
77
83
  changeDetector = inject(ChangeDetectorRef);
78
84
  // This component's OWN host — the non-painting anchor `class="..."` at the use site resolves
@@ -80,11 +86,21 @@ export class KeyboardAvoidingView {
80
86
  // component has none; the wrapper IS the outer template node hostProps binds onto).
81
87
  elementRef = inject(ElementRef);
82
88
  ngOnInit() {
89
+ // TWO events, picked per host, never three: iOS takes the will* pair so the view rides up with
90
+ // the keyboard animation, Android the did* pair. The change-frame notification is deliberately
91
+ // absent — with an undocked/split/floating iOS keyboard it fires BEFORE the hide, so listening
92
+ // to it applies a frame captured mid-dismissal (RN KeyboardAvoidingView.js's own comment).
93
+ const events = keyboardAvoidingEventNamesFor(Platform.OS);
83
94
  this.subscriptions = [
84
- Keyboard.addListener(KEYBOARD_EVENT.didShow, payload => this.onShow(payload)),
85
- Keyboard.addListener(KEYBOARD_EVENT.didChangeFrame, payload => this.onShow(payload)),
86
- Keyboard.addListener(KEYBOARD_EVENT.didHide, () => this.onHide()),
95
+ Keyboard.addListener(events.show, payload => this.onShow(payload)),
96
+ Keyboard.addListener(events.hide, () => this.onHide()),
87
97
  ];
98
+ // The core wrapper, not AccessibilityInfo directly: the engine's iOS getter REJECTS on a
99
+ // native error (RN parity), and nobody awaits this read, so an unwrapped call would surface
100
+ // as an unhandled rejection. The wrapper answers false on a failed read.
101
+ void readPrefersCrossFadeTransitions().then(enabled => {
102
+ this.prefersCrossFadeTransitions = enabled;
103
+ });
88
104
  }
89
105
  ngOnDestroy() {
90
106
  for (const subscription of this.subscriptions)
@@ -94,7 +110,17 @@ export class KeyboardAvoidingView {
94
110
  onShow(payload) {
95
111
  const keyboard = readKeyboardFrame(payload);
96
112
  const offset = this.keyboardVerticalOffset ?? DEFAULT_VERTICAL_OFFSET;
97
- const next = computeInset(this.frame, keyboard, offset);
113
+ const next = computeInset(this.frame, keyboard, offset, {
114
+ // Read off the field at event time, not captured when the subscription was built: `behavior`
115
+ // is an @Input that can change under a long-lived subscription, and a stale one keeps
116
+ // applying the old mode's math (it gates the previous-inset correction below).
117
+ behavior: this.behavior,
118
+ // The inset CURRENTLY applied (RN's this.state.bottom), read off the field at event time so
119
+ // 'height' mode's fixpoint correction sees the live value: that mode SHRINKS the wrapper by
120
+ // the inset, so the next onLayout reports a frame shorter by exactly that much.
121
+ previousInset: this.inset,
122
+ prefersCrossFadeTransitions: this.prefersCrossFadeTransitions,
123
+ });
98
124
  dlog(`KeyboardAvoidingView show -> inset ${next}`);
99
125
  this.inset = next;
100
126
  this.changeDetector.markForCheck();
@@ -141,7 +167,9 @@ export class KeyboardAvoidingView {
141
167
  return this.resolvedLayout.wrapperStyle;
142
168
  }
143
169
  get innerStyle() {
144
- return this.resolvedLayout.kind === 'nested' ? this.resolvedLayout.innerStyle : undefined;
170
+ return this.resolvedLayout.kind === 'nested'
171
+ ? this.resolvedLayout.innerStyle
172
+ : undefined;
145
173
  }
146
174
  // The wrapper's full prop bag (style + identity + a11y) folded for `[symbioteHostProps]`,
147
175
  // the same pattern Modal's `hostProps` uses over its renderModal descriptor. The anchor's
@@ -154,15 +182,24 @@ export class KeyboardAvoidingView {
154
182
  nativeID: this.nativeID,
155
183
  accessible: this.accessible,
156
184
  ...this.folded,
185
+ onAccessibilityAction: this.eventEmitterHandler(this.accessibilityAction),
186
+ onAccessibilityTap: this.eventEmitterHandler(this.accessibilityTap),
187
+ onMagicTap: this.eventEmitterHandler(this.magicTap),
188
+ onAccessibilityEscape: this.eventEmitterHandler(this.accessibilityEscape),
157
189
  };
158
190
  }
159
191
  // Forward an engine event to the matching @Output(), narrowing the template's untyped $event
160
- // first. The accessibility* Outputs ride the engine's structural event channel (Angular blocks
161
- // [onX] property bindings; events flow through (event) only).
192
+ // first.
162
193
  emit(emitter, event) {
163
194
  if (isSymbioteEvent(event))
164
195
  emitter.emit(event);
165
196
  }
197
+ // The four accessibility events are boolean-GATED Fabric events
198
+ // (`.claude/rules/fabric-boolean-event-gates.md`). `.observed`-gated, unlike `layout` above which
199
+ // this component needs unconditionally for its own internal frame measurement.
200
+ eventEmitterHandler(emitter) {
201
+ return emitter.observed ? event => this.emit(emitter, event) : undefined;
202
+ }
166
203
  // Fold the web aria-*/role aliases into the canonical accessibility* props once per render, so the
167
204
  // host node never sees an aria-* key (native ignores them) — the shared transform every adapter runs.
168
205
  get folded() {
@@ -205,10 +242,6 @@ export class KeyboardAvoidingView {
205
242
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: KeyboardAvoidingView, isStandalone: true, selector: "KeyboardAvoidingView", inputs: { behavior: "behavior", enabled: "enabled", keyboardVerticalOffset: "keyboardVerticalOffset", contentContainerStyle: "contentContainerStyle", style: "style", testID: "testID", nativeID: "nativeID", accessible: "accessible", accessibilityLabel: "accessibilityLabel", accessibilityHint: "accessibilityHint", accessibilityRole: "accessibilityRole", accessibilityState: "accessibilityState", accessibilityValue: "accessibilityValue", accessibilityActions: "accessibilityActions", accessibilityLabelledBy: "accessibilityLabelledBy", importantForAccessibility: "importantForAccessibility", accessibilityLiveRegion: "accessibilityLiveRegion", screenReaderFocusable: "screenReaderFocusable", accessibilityViewIsModal: "accessibilityViewIsModal", accessibilityElementsHidden: "accessibilityElementsHidden", accessibilityIgnoresInvertColors: "accessibilityIgnoresInvertColors", accessibilityLanguage: "accessibilityLanguage", accessibilityRespondsToUserInteraction: "accessibilityRespondsToUserInteraction", accessibilityShowsLargeContentViewer: "accessibilityShowsLargeContentViewer", accessibilityLargeContentTitle: "accessibilityLargeContentTitle", role: "role", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledBy: ["aria-labelledby", "ariaLabelledBy"], ariaLive: ["aria-live", "ariaLive"], ariaHidden: ["aria-hidden", "ariaHidden"], ariaBusy: ["aria-busy", "ariaBusy"], ariaChecked: ["aria-checked", "ariaChecked"], ariaDisabled: ["aria-disabled", "ariaDisabled"], ariaExpanded: ["aria-expanded", "ariaExpanded"], ariaSelected: ["aria-selected", "ariaSelected"], ariaModal: ["aria-modal", "ariaModal"], ariaValueMax: ["aria-valuemax", "ariaValueMax"], ariaValueMin: ["aria-valuemin", "ariaValueMin"], ariaValueNow: ["aria-valuenow", "ariaValueNow"], ariaValueText: ["aria-valuetext", "ariaValueText"] }, outputs: { layout: "layout", accessibilityAction: "accessibilityAction", accessibilityTap: "accessibilityTap", magicTap: "magicTap", accessibilityEscape: "accessibilityEscape" }, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: `
206
243
  <symbiote-view
207
244
  [symbioteHostProps]="hostProps"
208
- (accessibilityAction)="emit(accessibilityAction, $event)"
209
- (accessibilityTap)="emit(accessibilityTap, $event)"
210
- (magicTap)="emit(magicTap, $event)"
211
- (accessibilityEscape)="emit(accessibilityEscape, $event)"
212
245
  (layout)="handleLayout($event)"
213
246
  >
214
247
  @if (isNested) {
@@ -226,20 +259,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
226
259
  args: [{
227
260
  selector: 'KeyboardAvoidingView',
228
261
  standalone: true,
229
- hostDirectives: [{ directive: SymbioteStyleInputDirective, inputs: ['style'] }],
262
+ hostDirectives: [
263
+ { directive: SymbioteStyleInputDirective, inputs: ['style'] },
264
+ ],
230
265
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
231
266
  imports: [ViewHost, SymbioteHostPropsDirective],
232
267
  changeDetection: ChangeDetectionStrategy.OnPush,
233
268
  // The wrapper carries a11y + onLayout; 'position' ('nested') pushes the children in an inner
234
269
  // View by `bottom: inset`, the wrapper modes adjust the single wrapper directly. Only one @if
235
270
  // branch is instantiated, so each branch's <ng-content> projects the children unambiguously.
271
+ // `layout` stays a plain, unconditional template binding: unlike the four accessibility events
272
+ // below, this component READS its own onLayout internally (handleLayout measures the frame that
273
+ // feeds the next keyboard event's inset math — see keyboard-avoiding-view-rn-contract.md), so the
274
+ // gate must stay lit regardless of whether the app subscribes to the `layout` @Output(). Gating it
275
+ // on `.observed` would silently break the inset fixpoint correction the moment an app didn't
276
+ // listen to `layout`.
236
277
  template: `
237
278
  <symbiote-view
238
279
  [symbioteHostProps]="hostProps"
239
- (accessibilityAction)="emit(accessibilityAction, $event)"
240
- (accessibilityTap)="emit(accessibilityTap, $event)"
241
- (magicTap)="emit(magicTap, $event)"
242
- (accessibilityEscape)="emit(accessibilityEscape, $event)"
243
280
  (layout)="handleLayout($event)"
244
281
  >
245
282
  @if (isNested) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/keyboard-avoiding-view/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/keyboard-avoiding-view/index.ts"],"names":[],"mappings":"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"}
@@ -89,6 +89,7 @@ export declare class Modal implements IAngularModalInputs, OnInit, OnChanges, Do
89
89
  readonly hostProps: import("@angular/core").Signal<Record<string, unknown>>;
90
90
  get containerStyle(): unknown;
91
91
  emit(emitter: EventEmitter<ISymbioteEvent>, event: unknown): void;
92
+ private eventEmitterHandler;
92
93
  private accessibilityInputs;
93
94
  static ɵfac: i0.ɵɵFactoryDeclaration<Modal, never>;
94
95
  static ɵcmp: i0.ɵɵComponentDeclaration<Modal, "Modal", never, { "visible": { "alias": "visible"; "required": false; }; "transparent": { "alias": "transparent"; "required": false; }; "backdropColor": { "alias": "backdropColor"; "required": false; }; "animationType": { "alias": "animationType"; "required": false; }; "presentationStyle": { "alias": "presentationStyle"; "required": false; }; "supportedOrientations": { "alias": "supportedOrientations"; "required": false; }; "hardwareAccelerated": { "alias": "hardwareAccelerated"; "required": false; }; "statusBarTranslucent": { "alias": "statusBarTranslucent"; "required": false; }; "navigationBarTranslucent": { "alias": "navigationBarTranslucent"; "required": false; }; "allowSwipeDismissal": { "alias": "allowSwipeDismissal"; "required": false; }; "style": { "alias": "style"; "required": false; }; "testID": { "alias": "testID"; "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; }; }, { "show": "show"; "dismiss": "dismiss"; "requestClose": "requestClose"; "orientationChange": "orientationChange"; "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, never, ["*"], true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
@@ -152,17 +152,34 @@ export class Modal {
152
152
  hostProps = computed(() => {
153
153
  this.hostPropsRevision();
154
154
  const descriptorProps = this.descriptor.props;
155
- return { ...descriptorProps, style: [anchorHostStyle(this.elementRef), descriptorProps.style] };
155
+ return {
156
+ ...descriptorProps,
157
+ style: [anchorHostStyle(this.elementRef), descriptorProps.style],
158
+ onAccessibilityAction: this.eventEmitterHandler(this.accessibilityAction),
159
+ onAccessibilityTap: this.eventEmitterHandler(this.accessibilityTap),
160
+ onMagicTap: this.eventEmitterHandler(this.magicTap),
161
+ onAccessibilityEscape: this.eventEmitterHandler(this.accessibilityEscape),
162
+ };
156
163
  }, /* @ts-ignore */
157
164
  ...(ngDevMode ? [{ debugName: "hostProps" }] : /* istanbul ignore next */ []));
158
165
  get containerStyle() {
159
166
  const container = this.descriptor.children[0];
160
167
  return typeof container === 'string' ? undefined : container.props.style;
161
168
  }
169
+ // NOT private: `(orientationChange)="emit(...)"` in the template above calls it, and a template
170
+ // can only reach public members. `tsc` does not typecheck Angular templates, so `private` here
171
+ // compiles clean and fails only under `ngc --compilationMode partial`.
162
172
  emit(emitter, event) {
163
173
  if (isSymbioteEvent(event))
164
174
  emitter.emit(event);
165
175
  }
176
+ // The four accessibility events are boolean-GATED Fabric events
177
+ // (`.claude/rules/fabric-boolean-event-gates.md`) — `show`/`dismiss`/`requestClose`/
178
+ // `orientationChange` are NOT (Modal's own MODAL_EVENTS), so those stay unconditional template
179
+ // bindings above. `.observed`-gated, mirroring Pressable's.
180
+ eventEmitterHandler(emitter) {
181
+ return emitter.observed ? event => this.emit(emitter, event) : undefined;
182
+ }
166
183
  // Typed as the a11y intersection WITH the string index (the bag renderModal spreads into the
167
184
  // host props), so resolveAccessibilityProps's result stays assignable to passthrough.
168
185
  accessibilityInputs() {
@@ -212,10 +229,6 @@ export class Modal {
212
229
  (dismiss)="dismiss.emit()"
213
230
  (requestClose)="requestClose.emit()"
214
231
  (orientationChange)="emit(orientationChange, $event)"
215
- (accessibilityAction)="emit(accessibilityAction, $event)"
216
- (accessibilityTap)="emit(accessibilityTap, $event)"
217
- (magicTap)="emit(magicTap, $event)"
218
- (accessibilityEscape)="emit(accessibilityEscape, $event)"
219
232
  >
220
233
  <symbiote-view [style]="containerStyle" [collapsable]="false">
221
234
  <ng-content></ng-content>
@@ -229,7 +242,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
229
242
  args: [{
230
243
  selector: 'Modal',
231
244
  standalone: true,
232
- hostDirectives: [{ directive: SymbioteStyleInputDirective, inputs: ['style'] }],
245
+ hostDirectives: [
246
+ { directive: SymbioteStyleInputDirective, inputs: ['style'] },
247
+ ],
233
248
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
234
249
  imports: [ModalHost, ViewHost, SymbioteHostPropsDirective],
235
250
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -241,10 +256,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
241
256
  (dismiss)="dismiss.emit()"
242
257
  (requestClose)="requestClose.emit()"
243
258
  (orientationChange)="emit(orientationChange, $event)"
244
- (accessibilityAction)="emit(accessibilityAction, $event)"
245
- (accessibilityTap)="emit(accessibilityTap, $event)"
246
- (magicTap)="emit(magicTap, $event)"
247
- (accessibilityEscape)="emit(accessibilityEscape, $event)"
248
259
  >
249
260
  <symbiote-view [style]="containerStyle" [collapsable]="false">
250
261
  <ng-content></ng-content>
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/modal/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/modal/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { EventEmitter, type DoCheck, type OnChanges } from '@angular/core';
1
+ import { EventEmitter, type DoCheck, type OnChanges, type OnDestroy } from '@angular/core';
2
2
  import { type IAccessibilityProps, type IAccessibilityStateValue, type IAriaProps, type IPressableAndroidRippleConfig, type IPressHandler, type IPressState, type IRectOffset } from '@symbiote-native/components';
3
3
  import { type ISymbioteEvent, type IStyleProp, type IViewStyle } from '@symbiote-native/engine';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "../../primitives/shared";
6
- export type { IPressState, IPressableAndroidRippleConfig } from '@symbiote-native/components';
6
+ export type { IPressState, IPressableAndroidRippleConfig, } from '@symbiote-native/components';
7
7
  export interface IAngularPressableProps extends IAccessibilityProps, IAriaProps {
8
8
  onPress?: IPressHandler;
9
9
  onPressIn?: IPressHandler;
@@ -33,7 +33,7 @@ export interface IAngularPressableProps extends IAccessibilityProps, IAriaProps
33
33
  style?: IStyleProp<IViewStyle> | ((state: IPressState) => IStyleProp<IViewStyle>);
34
34
  }
35
35
  export type IAngularPressableInputs = Omit<IAngularPressableProps, 'onPress' | 'onPressIn' | 'onPressOut' | 'onPressMove' | 'onLongPress' | 'onHoverIn' | 'onHoverOut' | 'onAccessibilityAction' | 'onAccessibilityTap' | 'onMagicTap' | 'onAccessibilityEscape'>;
36
- export declare class Pressable implements IAngularPressableInputs, OnChanges, DoCheck {
36
+ export declare class Pressable implements IAngularPressableInputs, OnChanges, OnDestroy, DoCheck {
37
37
  readonly press: EventEmitter<ISymbioteEvent>;
38
38
  readonly pressIn: EventEmitter<ISymbioteEvent>;
39
39
  readonly pressOut: EventEmitter<ISymbioteEvent>;
@@ -51,6 +51,8 @@ export declare class Pressable implements IAngularPressableInputs, OnChanges, Do
51
51
  hitSlop?: IRectOffset;
52
52
  pressRetentionOffset?: IRectOffset;
53
53
  unstable_pressDelay?: number;
54
+ /** @internal Touchable* mirrors RN's Pressability minPressDuration: 0 override. */
55
+ __minPressDuration: number;
54
56
  android_ripple?: IPressableAndroidRippleConfig;
55
57
  android_disableSound?: boolean;
56
58
  delayHoverIn?: number;
@@ -104,10 +106,12 @@ export declare class Pressable implements IAngularPressableInputs, OnChanges, Do
104
106
  private readonly runtime;
105
107
  private readonly host;
106
108
  private readonly changeDetector;
109
+ private readonly gateDemand;
107
110
  private readonly elementRef;
108
111
  private readonly inputsRevision;
109
112
  private readonly anchorStyle;
110
113
  ngDoCheck(): void;
114
+ ngOnDestroy(): void;
111
115
  ngOnChanges(): void;
112
116
  get resolvedStyle(): IStyleProp<IViewStyle> | undefined;
113
117
  get foldedAccessibility(): Partial<IAngularPressableProps>;
@@ -119,11 +123,12 @@ export declare class Pressable implements IAngularPressableInputs, OnChanges, Do
119
123
  handleResponderMove(event: unknown): void;
120
124
  claimResponder(): boolean;
121
125
  allowTermination(): boolean;
122
- emit(emitter: EventEmitter<ISymbioteEvent>, event: unknown): void;
126
+ private emit;
123
127
  private noteHoverNoop;
124
128
  private emitterHandler;
129
+ private accessibilityEmitterHandler;
125
130
  private get handlers();
126
131
  private get hostNode();
127
132
  static ɵfac: i0.ɵɵFactoryDeclaration<Pressable, never>;
128
- static ɵcmp: i0.ɵɵComponentDeclaration<Pressable, "Pressable, symbiote-pressable", never, { "delayLongPress": { "alias": "delayLongPress"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "cancelable": { "alias": "cancelable"; "required": false; }; "hitSlop": { "alias": "hitSlop"; "required": false; }; "pressRetentionOffset": { "alias": "pressRetentionOffset"; "required": false; }; "unstable_pressDelay": { "alias": "unstable_pressDelay"; "required": false; }; "android_ripple": { "alias": "android_ripple"; "required": false; }; "android_disableSound": { "alias": "android_disableSound"; "required": false; }; "delayHoverIn": { "alias": "delayHoverIn"; "required": false; }; "delayHoverOut": { "alias": "delayHoverOut"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "hasTVPreferredFocus": { "alias": "hasTVPreferredFocus"; "required": false; }; "nextFocusDown": { "alias": "nextFocusDown"; "required": false; }; "nextFocusForward": { "alias": "nextFocusForward"; "required": false; }; "nextFocusLeft": { "alias": "nextFocusLeft"; "required": false; }; "nextFocusRight": { "alias": "nextFocusRight"; "required": false; }; "nextFocusUp": { "alias": "nextFocusUp"; "required": false; }; "style": { "alias": "style"; "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; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaBusy": { "alias": "ariaBusy"; "required": false; }; "ariaChecked": { "alias": "ariaChecked"; "required": false; }; "ariaDisabled": { "alias": "ariaDisabled"; "required": false; }; "ariaExpanded": { "alias": "ariaExpanded"; "required": false; }; "ariaHidden": { "alias": "ariaHidden"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaLive": { "alias": "ariaLive"; "required": false; }; "ariaSelected": { "alias": "ariaSelected"; "required": false; }; "ariaModal": { "alias": "ariaModal"; "required": false; }; "ariaValueMax": { "alias": "ariaValueMax"; "required": false; }; "ariaValueMin": { "alias": "ariaValueMin"; "required": false; }; "ariaValueNow": { "alias": "ariaValueNow"; "required": false; }; "ariaValueText": { "alias": "ariaValueText"; "required": false; }; "id": { "alias": "id"; "required": false; }; "role": { "alias": "role"; "required": false; }; }, { "press": "press"; "pressIn": "pressIn"; "pressOut": "pressOut"; "pressMove": "pressMove"; "longPress": "longPress"; "hoverIn": "hoverIn"; "hoverOut": "hoverOut"; "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, never, ["*"], true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
133
+ static ɵcmp: i0.ɵɵComponentDeclaration<Pressable, "Pressable", never, { "delayLongPress": { "alias": "delayLongPress"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "cancelable": { "alias": "cancelable"; "required": false; }; "hitSlop": { "alias": "hitSlop"; "required": false; }; "pressRetentionOffset": { "alias": "pressRetentionOffset"; "required": false; }; "unstable_pressDelay": { "alias": "unstable_pressDelay"; "required": false; }; "__minPressDuration": { "alias": "__minPressDuration"; "required": false; }; "android_ripple": { "alias": "android_ripple"; "required": false; }; "android_disableSound": { "alias": "android_disableSound"; "required": false; }; "delayHoverIn": { "alias": "delayHoverIn"; "required": false; }; "delayHoverOut": { "alias": "delayHoverOut"; "required": false; }; "testID": { "alias": "testID"; "required": false; }; "nativeID": { "alias": "nativeID"; "required": false; }; "hasTVPreferredFocus": { "alias": "hasTVPreferredFocus"; "required": false; }; "nextFocusDown": { "alias": "nextFocusDown"; "required": false; }; "nextFocusForward": { "alias": "nextFocusForward"; "required": false; }; "nextFocusLeft": { "alias": "nextFocusLeft"; "required": false; }; "nextFocusRight": { "alias": "nextFocusRight"; "required": false; }; "nextFocusUp": { "alias": "nextFocusUp"; "required": false; }; "style": { "alias": "style"; "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; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaBusy": { "alias": "ariaBusy"; "required": false; }; "ariaChecked": { "alias": "ariaChecked"; "required": false; }; "ariaDisabled": { "alias": "ariaDisabled"; "required": false; }; "ariaExpanded": { "alias": "ariaExpanded"; "required": false; }; "ariaHidden": { "alias": "ariaHidden"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaLive": { "alias": "ariaLive"; "required": false; }; "ariaSelected": { "alias": "ariaSelected"; "required": false; }; "ariaModal": { "alias": "ariaModal"; "required": false; }; "ariaValueMax": { "alias": "ariaValueMax"; "required": false; }; "ariaValueMin": { "alias": "ariaValueMin"; "required": false; }; "ariaValueNow": { "alias": "ariaValueNow"; "required": false; }; "ariaValueText": { "alias": "ariaValueText"; "required": false; }; "id": { "alias": "id"; "required": false; }; "role": { "alias": "role"; "required": false; }; }, { "press": "press"; "pressIn": "pressIn"; "pressOut": "pressOut"; "pressMove": "pressMove"; "longPress": "longPress"; "hoverIn": "hoverIn"; "hoverOut": "hoverOut"; "accessibilityAction": "accessibilityAction"; "accessibilityTap": "accessibilityTap"; "magicTap": "magicTap"; "accessibilityEscape": "accessibilityEscape"; }, never, ["*"], true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
129
134
  }
@@ -1,7 +1,8 @@
1
1
  import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, computed, inject, Input, Output, signal, ViewChild, } from '@angular/core';
2
- import { createPressHandlers, createPressRuntime, DEFAULT_DELAY_LONG_PRESS_MS, isTerminationAllowed, resolveAccessibilityProps, resolveDisabledAccessibilityState, rippleProps, shouldClaimResponder, shouldSuppressPress, } from '@symbiote-native/components';
2
+ import { createPressHandlers, createPressRuntime, disposePressRuntime, DEFAULT_DELAY_LONG_PRESS_MS, DEFAULT_MIN_PRESS_DURATION_MS, isTerminationAllowed, resolveAccessibilityProps, resolveDisabledAccessibilityState, rippleProps, shouldClaimResponder, shouldSuppressPress, } from '@symbiote-native/components';
3
3
  import { dlog, isSymbioteNode, measure, } from '@symbiote-native/engine';
4
4
  import { anchorHostStyle, SymbioteHostPropsDirective, SymbioteStyleInputDirective, ViewHost, } from '../../primitives';
5
+ import { gateWanted, injectGateDemand, } from '../../gate-demand';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "../../primitives/shared";
7
8
  function isStyleFn(value) {
@@ -25,9 +26,15 @@ export class Pressable {
25
26
  longPress = new EventEmitter();
26
27
  hoverIn = new EventEmitter();
27
28
  hoverOut = new EventEmitter();
28
- // The four accessibility callbacks as real Angular events too, same tradeoff as press/hover
29
- // above: `(accessibilityAction)="emit(accessibilityAction, $event)"`, not
30
- // `[onAccessibilityAction]="onAccessibilityAction"`.
29
+ // The four accessibility callbacks as real Angular events, app-facing. UNLIKE press/hover above,
30
+ // these are NOT bound in the template at all — `accessibilityAction`/`accessibilityTap`/
31
+ // `magicTap`/`accessibilityEscape` are `onX`-gated Fabric events
32
+ // (`.claude/rules/fabric-boolean-event-gates.md`): the engine only emits them when the committed
33
+ // payload carries a FUNCTION at that key, so a `(accessibilityAction)="..."` template binding —
34
+ // always present once written — would light the gate on every instance regardless of whether the
35
+ // app ever subscribes. Routed through `hostProps()` instead (`accessibilityEmitterHandler`
36
+ // below), the same `.observed`-conditional shape `emitterHandler` already uses for press/hover,
37
+ // so the gate lights only when something is actually listening.
31
38
  accessibilityAction = new EventEmitter();
32
39
  accessibilityTap = new EventEmitter();
33
40
  magicTap = new EventEmitter();
@@ -38,6 +45,8 @@ export class Pressable {
38
45
  hitSlop;
39
46
  pressRetentionOffset;
40
47
  unstable_pressDelay;
48
+ /** @internal Touchable* mirrors RN's Pressability minPressDuration: 0 override. */
49
+ __minPressDuration = DEFAULT_MIN_PRESS_DURATION_MS;
41
50
  android_ripple;
42
51
  android_disableSound;
43
52
  delayHoverIn;
@@ -111,8 +120,13 @@ export class Pressable {
111
120
  const id = setTimeout(callback, ms);
112
121
  return () => clearTimeout(id);
113
122
  },
123
+ now: Date.now,
114
124
  };
115
125
  changeDetector = inject(ChangeDetectorRef);
126
+ // Null unless an adapter wrapper renders this Pressable in its own template. See
127
+ // `gate-demand.ts`; an app's own `<Pressable>` — including one projected INTO a wrapper — gets
128
+ // null and falls back to its own `.observed`.
129
+ gateDemand = injectGateDemand();
116
130
  // This component's OWN host - the non-painting anchor `class="..."` at the use site resolves
117
131
  // onto (see anchorHostStyle's doc comment) - NOT `hostElement` above, which targets the real
118
132
  // inner `symbiote-view` one level down.
@@ -142,6 +156,9 @@ export class Pressable {
142
156
  ngDoCheck() {
143
157
  this.anchorStyle.set(anchorHostStyle(this.elementRef));
144
158
  }
159
+ ngOnDestroy() {
160
+ disposePressRuntime(this.runtime);
161
+ }
145
162
  ngOnChanges() {
146
163
  // Tells the computed bag below that an @Input moved - plain class fields are not reactive on
147
164
  // their own. Must stay in ngOnChanges: that is the single moment Angular has finished writing
@@ -190,7 +207,9 @@ export class Pressable {
190
207
  });
191
208
  }
192
209
  get resolvedRippleProps() {
193
- return this.android_ripple === undefined ? undefined : rippleProps(this.android_ripple);
210
+ return this.android_ripple === undefined
211
+ ? undefined
212
+ : rippleProps(this.android_ripple);
194
213
  }
195
214
  // Flat bag for `[symbioteHostProps]` (Renderer2.setProperty per key) - see primitives/shared.ts.
196
215
  //
@@ -213,6 +232,10 @@ export class Pressable {
213
232
  style: [this.anchorStyle(), this.resolvedStyle],
214
233
  accessible: this.accessible,
215
234
  ...this.foldedAccessibility,
235
+ onAccessibilityAction: this.accessibilityEmitterHandler('accessibilityAction'),
236
+ onAccessibilityTap: this.accessibilityEmitterHandler('accessibilityTap'),
237
+ onMagicTap: this.accessibilityEmitterHandler('magicTap'),
238
+ onAccessibilityEscape: this.accessibilityEmitterHandler('accessibilityEscape'),
216
239
  android_disableSound: this.android_disableSound,
217
240
  nativeBackgroundAndroid: this.resolvedRippleProps?.nativeBackgroundAndroid,
218
241
  nativeForegroundAndroid: this.resolvedRippleProps?.nativeForegroundAndroid,
@@ -267,6 +290,20 @@ export class Pressable {
267
290
  emitterHandler(emitter) {
268
291
  return emitter.observed ? event => emitter.emit(event) : undefined;
269
292
  }
293
+ // The accessibility twin of emitterHandler, feeding hostProps()'s flat bag instead of
294
+ // createPressHandlers' config — see the accessibilityAction @Output()'s own comment for why
295
+ // these four specifically cannot be plain template `(x)="..."` bindings. `undefined` here means
296
+ // `setEventListener` never sees a function, so the gated prop's flag never lights
297
+ // (`fabric-boolean-event-gates.md`, "The flag follows the VALUE, not the key").
298
+ accessibilityEmitterHandler(name) {
299
+ const emitter = this[name];
300
+ // A WRAPPER's binding is not a subscriber, and `.observed` cannot tell the two apart. When a
301
+ // demand is supplied from above it decides instead — see `gate-demand.ts` for why the channel
302
+ // is DI rather than an `@Input`.
303
+ return gateWanted(this.gateDemand, name, emitter)
304
+ ? event => this.emit(emitter, event)
305
+ : undefined;
306
+ }
270
307
  get handlers() {
271
308
  this.noteHoverNoop();
272
309
  const config = {
@@ -277,6 +314,7 @@ export class Pressable {
277
314
  onLongPress: this.emitterHandler(this.longPress),
278
315
  delayLongPress: this.delayLongPress ?? DEFAULT_DELAY_LONG_PRESS_MS,
279
316
  unstable_pressDelay: this.unstable_pressDelay ?? 0,
317
+ minPressDuration: this.__minPressDuration,
280
318
  hitSlop: this.hitSlop,
281
319
  pressRetentionOffset: this.pressRetentionOffset,
282
320
  };
@@ -287,14 +325,10 @@ export class Pressable {
287
325
  return isSymbioteNode(native) ? native : undefined;
288
326
  }
289
327
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: Pressable, deps: [], target: i0.ɵɵFactoryTarget.Component });
290
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: Pressable, isStandalone: true, selector: "Pressable, symbiote-pressable", inputs: { delayLongPress: "delayLongPress", disabled: "disabled", cancelable: "cancelable", hitSlop: "hitSlop", pressRetentionOffset: "pressRetentionOffset", unstable_pressDelay: "unstable_pressDelay", android_ripple: "android_ripple", android_disableSound: "android_disableSound", delayHoverIn: "delayHoverIn", delayHoverOut: "delayHoverOut", testID: "testID", nativeID: "nativeID", hasTVPreferredFocus: "hasTVPreferredFocus", nextFocusDown: "nextFocusDown", nextFocusForward: "nextFocusForward", nextFocusLeft: "nextFocusLeft", nextFocusRight: "nextFocusRight", nextFocusUp: "nextFocusUp", style: "style", accessible: "accessible", accessibilityLabel: "accessibilityLabel", accessibilityHint: "accessibilityHint", accessibilityRole: "accessibilityRole", accessibilityState: "accessibilityState", accessibilityValue: "accessibilityValue", accessibilityActions: "accessibilityActions", accessibilityLabelledBy: "accessibilityLabelledBy", importantForAccessibility: "importantForAccessibility", accessibilityLiveRegion: "accessibilityLiveRegion", screenReaderFocusable: "screenReaderFocusable", accessibilityViewIsModal: "accessibilityViewIsModal", accessibilityElementsHidden: "accessibilityElementsHidden", accessibilityIgnoresInvertColors: "accessibilityIgnoresInvertColors", accessibilityLanguage: "accessibilityLanguage", accessibilityRespondsToUserInteraction: "accessibilityRespondsToUserInteraction", accessibilityShowsLargeContentViewer: "accessibilityShowsLargeContentViewer", accessibilityLargeContentTitle: "accessibilityLargeContentTitle", ariaLabel: "ariaLabel", ariaBusy: "ariaBusy", ariaChecked: "ariaChecked", ariaDisabled: "ariaDisabled", ariaExpanded: "ariaExpanded", ariaHidden: "ariaHidden", ariaLabelledBy: "ariaLabelledBy", ariaLive: "ariaLive", ariaSelected: "ariaSelected", ariaModal: "ariaModal", ariaValueMax: "ariaValueMax", ariaValueMin: "ariaValueMin", ariaValueNow: "ariaValueNow", ariaValueText: "ariaValueText", id: "id", role: "role" }, outputs: { press: "press", pressIn: "pressIn", pressOut: "pressOut", pressMove: "pressMove", longPress: "longPress", hoverIn: "hoverIn", hoverOut: "hoverOut", accessibilityAction: "accessibilityAction", accessibilityTap: "accessibilityTap", magicTap: "magicTap", accessibilityEscape: "accessibilityEscape" }, viewQueries: [{ propertyName: "hostElement", first: true, predicate: ["host"], descendants: true, read: ElementRef }], usesOnChanges: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: `
328
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: Pressable, isStandalone: true, selector: "Pressable", inputs: { delayLongPress: "delayLongPress", disabled: "disabled", cancelable: "cancelable", hitSlop: "hitSlop", pressRetentionOffset: "pressRetentionOffset", unstable_pressDelay: "unstable_pressDelay", __minPressDuration: "__minPressDuration", android_ripple: "android_ripple", android_disableSound: "android_disableSound", delayHoverIn: "delayHoverIn", delayHoverOut: "delayHoverOut", testID: "testID", nativeID: "nativeID", hasTVPreferredFocus: "hasTVPreferredFocus", nextFocusDown: "nextFocusDown", nextFocusForward: "nextFocusForward", nextFocusLeft: "nextFocusLeft", nextFocusRight: "nextFocusRight", nextFocusUp: "nextFocusUp", style: "style", accessible: "accessible", accessibilityLabel: "accessibilityLabel", accessibilityHint: "accessibilityHint", accessibilityRole: "accessibilityRole", accessibilityState: "accessibilityState", accessibilityValue: "accessibilityValue", accessibilityActions: "accessibilityActions", accessibilityLabelledBy: "accessibilityLabelledBy", importantForAccessibility: "importantForAccessibility", accessibilityLiveRegion: "accessibilityLiveRegion", screenReaderFocusable: "screenReaderFocusable", accessibilityViewIsModal: "accessibilityViewIsModal", accessibilityElementsHidden: "accessibilityElementsHidden", accessibilityIgnoresInvertColors: "accessibilityIgnoresInvertColors", accessibilityLanguage: "accessibilityLanguage", accessibilityRespondsToUserInteraction: "accessibilityRespondsToUserInteraction", accessibilityShowsLargeContentViewer: "accessibilityShowsLargeContentViewer", accessibilityLargeContentTitle: "accessibilityLargeContentTitle", ariaLabel: "ariaLabel", ariaBusy: "ariaBusy", ariaChecked: "ariaChecked", ariaDisabled: "ariaDisabled", ariaExpanded: "ariaExpanded", ariaHidden: "ariaHidden", ariaLabelledBy: "ariaLabelledBy", ariaLive: "ariaLive", ariaSelected: "ariaSelected", ariaModal: "ariaModal", ariaValueMax: "ariaValueMax", ariaValueMin: "ariaValueMin", ariaValueNow: "ariaValueNow", ariaValueText: "ariaValueText", id: "id", role: "role" }, outputs: { press: "press", pressIn: "pressIn", pressOut: "pressOut", pressMove: "pressMove", longPress: "longPress", hoverIn: "hoverIn", hoverOut: "hoverOut", accessibilityAction: "accessibilityAction", accessibilityTap: "accessibilityTap", magicTap: "magicTap", accessibilityEscape: "accessibilityEscape" }, viewQueries: [{ propertyName: "hostElement", first: true, predicate: ["host"], descendants: true, read: ElementRef }], usesOnChanges: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: `
291
329
  <symbiote-view
292
330
  #host
293
331
  [symbioteHostProps]="hostProps()"
294
- (accessibilityAction)="emit(accessibilityAction, $event)"
295
- (accessibilityTap)="emit(accessibilityTap, $event)"
296
- (magicTap)="emit(magicTap, $event)"
297
- (accessibilityEscape)="emit(accessibilityEscape, $event)"
298
332
  (press)="handlePress($event)"
299
333
  (pressIn)="handlePressIn($event)"
300
334
  (pressOut)="handlePressOut($event)"
@@ -309,19 +343,28 @@ export class Pressable {
309
343
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: Pressable, decorators: [{
310
344
  type: Component,
311
345
  args: [{
312
- selector: 'Pressable, symbiote-pressable',
346
+ // Single-name selector, matching TextInput's own ('TextInput', text-input.ts) rather than
347
+ // View/Text's dual one. The alternate `symbiote-pressable` spelling was vestigial — nothing in
348
+ // this component's own template ever renders that tag (it renders `symbiote-view`, below), and
349
+ // no app or example code invokes the composed component by that literal tag (verified by grep,
350
+ // 2026-08-31). Its only effect was to force `symbiote-pressable` into
351
+ // `ANCHOR_HOST_COMPONENTS` unconditionally, which collided with the tag's OTHER, load-bearing
352
+ // meaning — the host-behavior registry key (`PRESSABLE_TAG`,
353
+ // core/components/src/behaviors/pressable.ts) a lowered `<Pressable>` must carry to get the
354
+ // press machine. That collision is exactly why `DIAGNOSTIC_LOWERED_PRESSABLE_TAG` existed
355
+ // (renderer/index.ts) — dropping the vestigial spelling here removes the collision at its
356
+ // source, so the escape hatch is retired rather than worked around.
357
+ selector: 'Pressable',
313
358
  standalone: true,
314
- hostDirectives: [{ directive: SymbioteStyleInputDirective, inputs: ['style'] }],
359
+ hostDirectives: [
360
+ { directive: SymbioteStyleInputDirective, inputs: ['style'] },
361
+ ],
315
362
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
316
363
  imports: [ViewHost, SymbioteHostPropsDirective],
317
364
  template: `
318
365
  <symbiote-view
319
366
  #host
320
367
  [symbioteHostProps]="hostProps()"
321
- (accessibilityAction)="emit(accessibilityAction, $event)"
322
- (accessibilityTap)="emit(accessibilityTap, $event)"
323
- (magicTap)="emit(magicTap, $event)"
324
- (accessibilityEscape)="emit(accessibilityEscape, $event)"
325
368
  (press)="handlePress($event)"
326
369
  (pressIn)="handlePressIn($event)"
327
370
  (pressOut)="handlePressOut($event)"
@@ -368,6 +411,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
368
411
  type: Input
369
412
  }], unstable_pressDelay: [{
370
413
  type: Input
414
+ }], __minPressDuration: [{
415
+ type: Input
371
416
  }], android_ripple: [{
372
417
  type: Input
373
418
  }], android_disableSound: [{