@symbiote-native/angular 0.0.0-canary-20260724081123

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +157 -0
  3. package/babel-linker.cjs +7 -0
  4. package/babel-register-composed.cjs +127 -0
  5. package/bin/symbiote-angular-dev.cjs +93 -0
  6. package/build/angular/anchor-host-registry.d.ts +2 -0
  7. package/build/angular/anchor-host-registry.js +84 -0
  8. package/build/angular/anchor-host-registry.js.map +1 -0
  9. package/build/angular/bootstrap.d.ts +7 -0
  10. package/build/angular/bootstrap.js +15 -0
  11. package/build/angular/bootstrap.js.map +1 -0
  12. package/build/angular/components/activity-indicator/index.android.d.ts +12 -0
  13. package/build/angular/components/activity-indicator/index.android.js +21 -0
  14. package/build/angular/components/activity-indicator/index.android.js.map +1 -0
  15. package/build/angular/components/activity-indicator/index.d.ts +1 -0
  16. package/build/angular/components/activity-indicator/index.ios.d.ts +8 -0
  17. package/build/angular/components/activity-indicator/index.ios.js +21 -0
  18. package/build/angular/components/activity-indicator/index.ios.js.map +1 -0
  19. package/build/angular/components/activity-indicator/index.js +4 -0
  20. package/build/angular/components/activity-indicator/index.js.map +1 -0
  21. package/build/angular/components/activity-indicator/shared.d.ts +67 -0
  22. package/build/angular/components/activity-indicator/shared.js +260 -0
  23. package/build/angular/components/activity-indicator/shared.js.map +1 -0
  24. package/build/angular/components/button.d.ts +63 -0
  25. package/build/angular/components/button.js +332 -0
  26. package/build/angular/components/button.js.map +1 -0
  27. package/build/angular/components/flat-list/index.d.ts +122 -0
  28. package/build/angular/components/flat-list/index.js +688 -0
  29. package/build/angular/components/flat-list/index.js.map +1 -0
  30. package/build/angular/components/image/index.android.d.ts +10 -0
  31. package/build/angular/components/image/index.android.js +59 -0
  32. package/build/angular/components/image/index.android.js.map +1 -0
  33. package/build/angular/components/image/index.d.ts +1 -0
  34. package/build/angular/components/image/index.ios.d.ts +10 -0
  35. package/build/angular/components/image/index.ios.js +59 -0
  36. package/build/angular/components/image/index.ios.js.map +1 -0
  37. package/build/angular/components/image/index.js +3 -0
  38. package/build/angular/components/image/index.js.map +1 -0
  39. package/build/angular/components/image/shared.d.ts +101 -0
  40. package/build/angular/components/image/shared.js +406 -0
  41. package/build/angular/components/image/shared.js.map +1 -0
  42. package/build/angular/components/image-background.d.ts +81 -0
  43. package/build/angular/components/image-background.js +418 -0
  44. package/build/angular/components/image-background.js.map +1 -0
  45. package/build/angular/components/input-accessory-view/index.d.ts +60 -0
  46. package/build/angular/components/input-accessory-view/index.js +251 -0
  47. package/build/angular/components/input-accessory-view/index.js.map +1 -0
  48. package/build/angular/components/keyboard-avoiding-view/index.d.ts +82 -0
  49. package/build/angular/components/keyboard-avoiding-view/index.js +358 -0
  50. package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -0
  51. package/build/angular/components/modal/index.d.ts +92 -0
  52. package/build/angular/components/modal/index.js +360 -0
  53. package/build/angular/components/modal/index.js.map +1 -0
  54. package/build/angular/components/pressable/index.d.ts +123 -0
  55. package/build/angular/components/pressable/index.js +420 -0
  56. package/build/angular/components/pressable/index.js.map +1 -0
  57. package/build/angular/components/refresh-control/index.d.ts +86 -0
  58. package/build/angular/components/refresh-control/index.js +342 -0
  59. package/build/angular/components/refresh-control/index.js.map +1 -0
  60. package/build/angular/components/safe-area-view/index.d.ts +57 -0
  61. package/build/angular/components/safe-area-view/index.js +248 -0
  62. package/build/angular/components/safe-area-view/index.js.map +1 -0
  63. package/build/angular/components/scroll-view/index.android.d.ts +21 -0
  64. package/build/angular/components/scroll-view/index.android.js +235 -0
  65. package/build/angular/components/scroll-view/index.android.js.map +1 -0
  66. package/build/angular/components/scroll-view/index.d.ts +3 -0
  67. package/build/angular/components/scroll-view/index.ios.d.ts +9 -0
  68. package/build/angular/components/scroll-view/index.ios.js +86 -0
  69. package/build/angular/components/scroll-view/index.ios.js.map +1 -0
  70. package/build/angular/components/scroll-view/index.js +6 -0
  71. package/build/angular/components/scroll-view/index.js.map +1 -0
  72. package/build/angular/components/scroll-view/projection.d.ts +32 -0
  73. package/build/angular/components/scroll-view/projection.js +334 -0
  74. package/build/angular/components/scroll-view/projection.js.map +1 -0
  75. package/build/angular/components/scroll-view/shared.d.ts +230 -0
  76. package/build/angular/components/scroll-view/shared.js +682 -0
  77. package/build/angular/components/scroll-view/shared.js.map +1 -0
  78. package/build/angular/components/scroll-view/sticky-header.d.ts +40 -0
  79. package/build/angular/components/scroll-view/sticky-header.js +225 -0
  80. package/build/angular/components/scroll-view/sticky-header.js.map +1 -0
  81. package/build/angular/components/section-list/index.d.ts +116 -0
  82. package/build/angular/components/section-list/index.js +641 -0
  83. package/build/angular/components/section-list/index.js.map +1 -0
  84. package/build/angular/components/switch/index.android.d.ts +20 -0
  85. package/build/angular/components/switch/index.android.js +70 -0
  86. package/build/angular/components/switch/index.android.js.map +1 -0
  87. package/build/angular/components/switch/index.d.ts +1 -0
  88. package/build/angular/components/switch/index.ios.d.ts +19 -0
  89. package/build/angular/components/switch/index.ios.js +69 -0
  90. package/build/angular/components/switch/index.ios.js.map +1 -0
  91. package/build/angular/components/switch/index.js +4 -0
  92. package/build/angular/components/switch/index.js.map +1 -0
  93. package/build/angular/components/switch/shared.d.ts +40 -0
  94. package/build/angular/components/switch/shared.js +127 -0
  95. package/build/angular/components/switch/shared.js.map +1 -0
  96. package/build/angular/components/text-input.d.ts +153 -0
  97. package/build/angular/components/text-input.js +599 -0
  98. package/build/angular/components/text-input.js.map +1 -0
  99. package/build/angular/components/touchable/index.d.ts +245 -0
  100. package/build/angular/components/touchable/index.js +1186 -0
  101. package/build/angular/components/touchable/index.js.map +1 -0
  102. package/build/angular/components/touchable-native-feedback/index.d.ts +83 -0
  103. package/build/angular/components/touchable-native-feedback/index.js +371 -0
  104. package/build/angular/components/touchable-native-feedback/index.js.map +1 -0
  105. package/build/angular/components/virtualized-list/directives.d.ts +54 -0
  106. package/build/angular/components/virtualized-list/directives.js +153 -0
  107. package/build/angular/components/virtualized-list/directives.js.map +1 -0
  108. package/build/angular/components/virtualized-list/index.d.ts +253 -0
  109. package/build/angular/components/virtualized-list/index.js +1031 -0
  110. package/build/angular/components/virtualized-list/index.js.map +1 -0
  111. package/build/angular/components/virtualized-section-list/directives.d.ts +37 -0
  112. package/build/angular/components/virtualized-section-list/directives.js +76 -0
  113. package/build/angular/components/virtualized-section-list/directives.js.map +1 -0
  114. package/build/angular/components/virtualized-section-list/index.d.ts +178 -0
  115. package/build/angular/components/virtualized-section-list/index.js +720 -0
  116. package/build/angular/components/virtualized-section-list/index.js.map +1 -0
  117. package/build/angular/components.d.ts +39 -0
  118. package/build/angular/components.js +38 -0
  119. package/build/angular/components.js.map +1 -0
  120. package/build/angular/create-portal/index.d.ts +22 -0
  121. package/build/angular/create-portal/index.js +74 -0
  122. package/build/angular/create-portal/index.js.map +1 -0
  123. package/build/angular/create-tunnel/index.d.ts +34 -0
  124. package/build/angular/create-tunnel/index.js +126 -0
  125. package/build/angular/create-tunnel/index.js.map +1 -0
  126. package/build/angular/descriptor-to-angular/index.d.ts +22 -0
  127. package/build/angular/descriptor-to-angular/index.js +142 -0
  128. package/build/angular/descriptor-to-angular/index.js.map +1 -0
  129. package/build/angular/host-instance/index.d.ts +2 -0
  130. package/build/angular/host-instance/index.js +37 -0
  131. package/build/angular/host-instance/index.js.map +1 -0
  132. package/build/angular/index.d.ts +22 -0
  133. package/build/angular/index.js +46 -0
  134. package/build/angular/index.js.map +1 -0
  135. package/build/angular/modules/animated/animated-leaf-binder/index.d.ts +14 -0
  136. package/build/angular/modules/animated/animated-leaf-binder/index.js +91 -0
  137. package/build/angular/modules/animated/animated-leaf-binder/index.js.map +1 -0
  138. package/build/angular/modules/animated/animated-leaf-binder.d.ts +14 -0
  139. package/build/angular/modules/animated/animated-leaf-binder.js +91 -0
  140. package/build/angular/modules/animated/animated-leaf-binder.js.map +1 -0
  141. package/build/angular/modules/animated/create-animated-component.d.ts +59 -0
  142. package/build/angular/modules/animated/create-animated-component.js +364 -0
  143. package/build/angular/modules/animated/create-animated-component.js.map +1 -0
  144. package/build/angular/modules/animated/index.d.ts +51 -0
  145. package/build/angular/modules/animated/index.js +59 -0
  146. package/build/angular/modules/animated/index.js.map +1 -0
  147. package/build/angular/modules/app-registry/index.d.ts +7 -0
  148. package/build/angular/modules/app-registry/index.js +23 -0
  149. package/build/angular/modules/app-registry/index.js.map +1 -0
  150. package/build/angular/modules/status-bar/index.d.ts +20 -0
  151. package/build/angular/modules/status-bar/index.js +59 -0
  152. package/build/angular/modules/status-bar/index.js.map +1 -0
  153. package/build/angular/primitives/index.d.ts +63 -0
  154. package/build/angular/primitives/index.js +189 -0
  155. package/build/angular/primitives/index.js.map +1 -0
  156. package/build/angular/primitives/shared.d.ts +88 -0
  157. package/build/angular/primitives/shared.js +171 -0
  158. package/build/angular/primitives/shared.js.map +1 -0
  159. package/build/angular/render/index.d.ts +11 -0
  160. package/build/angular/render/index.js +171 -0
  161. package/build/angular/render/index.js.map +1 -0
  162. package/build/angular/renderer/index.d.ts +37 -0
  163. package/build/angular/renderer/index.js +301 -0
  164. package/build/angular/renderer/index.js.map +1 -0
  165. package/build/angular/services/color-scheme.service.d.ts +16 -0
  166. package/build/angular/services/color-scheme.service.js +31 -0
  167. package/build/angular/services/color-scheme.service.js.map +1 -0
  168. package/build/angular/services/index.d.ts +2 -0
  169. package/build/angular/services/index.js +3 -0
  170. package/build/angular/services/index.js.map +1 -0
  171. package/build/angular/services/window-dimensions.service.d.ts +16 -0
  172. package/build/angular/services/window-dimensions.service.js +42 -0
  173. package/build/angular/services/window-dimensions.service.js.map +1 -0
  174. package/metro-config.cjs +48 -0
  175. package/metro-css-parser.cjs +13 -0
  176. package/package.json +80 -0
  177. package/src/__tests__/responder-change-detection.test.ts +102 -0
  178. package/src/__tests__/responder-nested-cd.test.ts +113 -0
  179. package/src/anchor-host-registry.ts +88 -0
  180. package/src/angular-gaps.test.ts +142 -0
  181. package/src/angular-imports.test.ts +100 -0
  182. package/src/bootstrap.ts +26 -0
  183. package/src/components/activity-indicator/activity-indicator-class-style.test.ts +44 -0
  184. package/src/components/activity-indicator/activity-indicator.test.ts +131 -0
  185. package/src/components/activity-indicator/index.android.ts +16 -0
  186. package/src/components/activity-indicator/index.ios.ts +17 -0
  187. package/src/components/activity-indicator/index.ts +4 -0
  188. package/src/components/activity-indicator/shared.ts +206 -0
  189. package/src/components/button.ts +193 -0
  190. package/src/components/flat-list/column-wrapper-style-class.test.ts +116 -0
  191. package/src/components/flat-list/flat-list-array-style.test.ts +131 -0
  192. package/src/components/flat-list/flat-list-class-style.test.ts +74 -0
  193. package/src/components/flat-list/flat-list-scroll-containment.test.ts +107 -0
  194. package/src/components/flat-list/flat-list.test.ts +99 -0
  195. package/src/components/flat-list/index.ts +574 -0
  196. package/src/components/image/image-class-style.test.ts +46 -0
  197. package/src/components/image/index.android.ts +48 -0
  198. package/src/components/image/index.ios.ts +48 -0
  199. package/src/components/image/index.ts +3 -0
  200. package/src/components/image/shared.ts +479 -0
  201. package/src/components/image-background-class-style.test.ts +48 -0
  202. package/src/components/image-background-style-class.test.ts +79 -0
  203. package/src/components/image-background.ts +270 -0
  204. package/src/components/input-accessory-view/index.ts +185 -0
  205. package/src/components/input-accessory-view/input-accessory-view.test.ts +43 -0
  206. package/src/components/keyboard-avoiding-view/index.ts +303 -0
  207. package/src/components/keyboard-avoiding-view/keyboard-avoiding-view.test.ts +54 -0
  208. package/src/components/modal/index.ts +299 -0
  209. package/src/components/modal/modal.test.ts +43 -0
  210. package/src/components/pressable/index.ts +373 -0
  211. package/src/components/pressable/pressable.test.ts +85 -0
  212. package/src/components/refresh-control/index.ts +284 -0
  213. package/src/components/refresh-control/refresh-control.test.ts +41 -0
  214. package/src/components/safe-area-view/index.ts +177 -0
  215. package/src/components/safe-area-view/safe-area-view.test.ts +43 -0
  216. package/src/components/scroll-view/android-scroll-view-axis-projection.test.ts +123 -0
  217. package/src/components/scroll-view/content-container-style-class.test.ts +75 -0
  218. package/src/components/scroll-view/index.android.ts +190 -0
  219. package/src/components/scroll-view/index.ios.ts +79 -0
  220. package/src/components/scroll-view/index.ts +7 -0
  221. package/src/components/scroll-view/projection.ts +414 -0
  222. package/src/components/scroll-view/scroll-view-class-style.test.ts +134 -0
  223. package/src/components/scroll-view/scroll-view-projection.test.ts +194 -0
  224. package/src/components/scroll-view/shared.ts +844 -0
  225. package/src/components/scroll-view/sticky-header.ts +255 -0
  226. package/src/components/section-list/index.ts +445 -0
  227. package/src/components/switch/android-switch-class.test.ts +42 -0
  228. package/src/components/switch/index.android.ts +61 -0
  229. package/src/components/switch/index.ios.ts +60 -0
  230. package/src/components/switch/index.ts +4 -0
  231. package/src/components/switch/shared.ts +197 -0
  232. package/src/components/switch/switch.test.ts +92 -0
  233. package/src/components/text-input-class-style.test.ts +54 -0
  234. package/src/components/text-input.ts +531 -0
  235. package/src/components/touchable/index.ts +629 -0
  236. package/src/components/touchable/touchable.test.ts +102 -0
  237. package/src/components/touchable-native-feedback/index.ts +254 -0
  238. package/src/components/touchable-native-feedback/touchable-native-feedback.test.ts +49 -0
  239. package/src/components/virtualized-list/directives.ts +168 -0
  240. package/src/components/virtualized-list/index.ts +992 -0
  241. package/src/components/virtualized-list/virtualized-list-class-style.test.ts +76 -0
  242. package/src/components/virtualized-section-list/directives.ts +90 -0
  243. package/src/components/virtualized-section-list/index.ts +601 -0
  244. package/src/components/virtualized-section-list/virtualized-section-list-class-style.test.ts +60 -0
  245. package/src/components.ts +149 -0
  246. package/src/create-portal/create-portal.test.ts +90 -0
  247. package/src/create-portal/index.ts +74 -0
  248. package/src/create-tunnel/create-tunnel.test.ts +120 -0
  249. package/src/create-tunnel/index.ts +136 -0
  250. package/src/descriptor-to-angular/descriptor-outlet.test.ts +94 -0
  251. package/src/descriptor-to-angular/index.ts +190 -0
  252. package/src/host-instance/host-instance.test.ts +49 -0
  253. package/src/host-instance/index.ts +36 -0
  254. package/src/index.ts +261 -0
  255. package/src/modules/animated/animated-leaf-binder/animated-leaf-binder.test.ts +116 -0
  256. package/src/modules/animated/animated-leaf-binder/index.ts +101 -0
  257. package/src/modules/animated/animated-leaf-binder.test.ts +116 -0
  258. package/src/modules/animated/animated-leaf-binder.ts +101 -0
  259. package/src/modules/animated/animated-scroll-view.test.ts +102 -0
  260. package/src/modules/animated/create-animated-component.ts +365 -0
  261. package/src/modules/animated/index.ts +105 -0
  262. package/src/modules/app-registry/app-registry.test.ts +106 -0
  263. package/src/modules/app-registry/index.ts +60 -0
  264. package/src/modules/status-bar/index.ts +57 -0
  265. package/src/modules/status-bar/status-bar.test.ts +50 -0
  266. package/src/primitives/index.ts +119 -0
  267. package/src/primitives/shared.ts +190 -0
  268. package/src/render/index.ts +235 -0
  269. package/src/render/render.test.ts +147 -0
  270. package/src/renderer/index.ts +347 -0
  271. package/src/renderer/renderer.test.ts +203 -0
  272. package/src/services/color-scheme.service.ts +27 -0
  273. package/src/services/index.ts +2 -0
  274. package/src/services/services.test.ts +163 -0
  275. package/src/services/window-dimensions.service.ts +41 -0
  276. package/tsconfig.angular.base.json +30 -0
@@ -0,0 +1,360 @@
1
+ // Modal: the Angular lifecycle half. RCTModalHostView is an ordinary Fabric host node committing
2
+ // through the same childSet as the rest of the tree (no second JS surface). The style math (the
3
+ // backdrop override, the container/host styles, the presentationStyle default), the visible gate,
4
+ // and the iOS keep-alive reducer all live framework-agnostic in @symbiote-native/components and are shared
5
+ // verbatim with React/Vue; here Angular supplies only the lifecycle: the keep-alive state + a
6
+ // POST-render transition (ngOnChanges queues the reducer on a microtask so it runs AFTER the render
7
+ // that used the OLD state, the Angular twin of React's useEffect / Vue's post-flush watch — one
8
+ // keep-alive frame survives the visible→hidden transition), reusing renderModal's resolved props.
9
+ // The user children nest UNDER the container View via <ng-content>.
10
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Input, Output, } from '@angular/core';
11
+ import { createInitialModalState, modalReducer, renderModal, resolveAccessibilityProps, shouldRenderModal, } from '@symbiote-native/components';
12
+ import { dlog, isSymbioteEvent, } from '@symbiote-native/engine';
13
+ import { anchorHostStyle, ModalHost, SymbioteHostPropsDirective, ViewHost } from '../../primitives';
14
+ import * as i0 from "@angular/core";
15
+ const ORIENTATIONS = ['portrait', 'landscape'];
16
+ function readOrientation(event) {
17
+ const native = event.nativeEvent;
18
+ if (typeof native !== 'object' || native === null || !('orientation' in native))
19
+ return undefined;
20
+ const orientation = native.orientation;
21
+ return ORIENTATIONS.some(value => value === orientation)
22
+ ? { orientation: orientation === 'landscape' ? 'landscape' : 'portrait' }
23
+ : undefined;
24
+ }
25
+ export class Modal {
26
+ show = new EventEmitter();
27
+ dismiss = new EventEmitter();
28
+ requestClose = new EventEmitter();
29
+ orientationChange = new EventEmitter();
30
+ accessibilityAction = new EventEmitter();
31
+ accessibilityTap = new EventEmitter();
32
+ magicTap = new EventEmitter();
33
+ accessibilityEscape = new EventEmitter();
34
+ visible;
35
+ transparent;
36
+ backdropColor;
37
+ animationType;
38
+ presentationStyle;
39
+ supportedOrientations;
40
+ hardwareAccelerated;
41
+ statusBarTranslucent;
42
+ navigationBarTranslucent;
43
+ allowSwipeDismissal;
44
+ style;
45
+ testID;
46
+ accessible;
47
+ accessibilityLabel;
48
+ accessibilityHint;
49
+ accessibilityRole;
50
+ accessibilityState;
51
+ accessibilityValue;
52
+ accessibilityActions;
53
+ accessibilityLabelledBy;
54
+ importantForAccessibility;
55
+ accessibilityLiveRegion;
56
+ screenReaderFocusable;
57
+ accessibilityViewIsModal;
58
+ accessibilityElementsHidden;
59
+ accessibilityIgnoresInvertColors;
60
+ accessibilityLanguage;
61
+ accessibilityRespondsToUserInteraction;
62
+ accessibilityShowsLargeContentViewer;
63
+ accessibilityLargeContentTitle;
64
+ role;
65
+ ariaLabel;
66
+ ariaLabelledBy;
67
+ ariaLive;
68
+ ariaHidden;
69
+ ariaBusy;
70
+ ariaChecked;
71
+ ariaDisabled;
72
+ ariaExpanded;
73
+ ariaSelected;
74
+ ariaModal;
75
+ ariaValueMax;
76
+ ariaValueMin;
77
+ ariaValueNow;
78
+ ariaValueText;
79
+ // The iOS keep-alive (state/modal.ts): on visible→hidden the node renders one more frame
80
+ // (isRendered still true) before unmounting, so the native onDismiss can arrive.
81
+ state = createInitialModalState(false);
82
+ changeDetector = inject(ChangeDetectorRef);
83
+ // This component's OWN host — the non-painting anchor `class="..."` at the use site resolves
84
+ // onto (see anchorHostStyle's doc comment) — NOT the inner `symbiote-view [style]="containerStyle"`
85
+ // that hosts the user children; the outer `symbiote-modal` node (bound via `hostProps` below) is
86
+ // the real primitive the anchor sits in front of.
87
+ elementRef = inject(ElementRef);
88
+ ngOnInit() {
89
+ this.state = createInitialModalState(this.visible === true);
90
+ }
91
+ ngOnChanges(changes) {
92
+ const visibleChange = changes.visible;
93
+ // First change is reflected by the ngOnInit seed; only later toggles drive the keep-alive.
94
+ if (visibleChange === undefined || visibleChange.firstChange)
95
+ return;
96
+ const isVisible = this.visible === true;
97
+ // Queue on a microtask so the reducer runs AFTER this CD pass renders with the OLD state —
98
+ // the keep-alive frame. A synchronous dispatch here would unmount in the same pass.
99
+ queueMicrotask(() => {
100
+ this.state = modalReducer(this.state, isVisible ? { type: 'show' } : { type: 'hide' });
101
+ this.changeDetector.markForCheck();
102
+ });
103
+ }
104
+ get shouldRender() {
105
+ const render = shouldRenderModal(this.visible === true, this.state);
106
+ if (!render)
107
+ dlog('Modal hidden -> no node committed');
108
+ return render;
109
+ }
110
+ // renderModal owns the backdrop/presentationStyle/style math (shared with React/Vue); the
111
+ // adapter reads the resolved host + container props off the Descriptor it returns.
112
+ get descriptor() {
113
+ return renderModal({
114
+ visible: this.visible,
115
+ transparent: this.transparent,
116
+ backdropColor: this.backdropColor,
117
+ animationType: this.animationType,
118
+ presentationStyle: this.presentationStyle,
119
+ supportedOrientations: this.supportedOrientations,
120
+ hardwareAccelerated: this.hardwareAccelerated,
121
+ statusBarTranslucent: this.statusBarTranslucent,
122
+ navigationBarTranslucent: this.navigationBarTranslucent,
123
+ allowSwipeDismissal: this.allowSwipeDismissal,
124
+ style: this.style,
125
+ passthrough: resolveAccessibilityProps(this.accessibilityInputs()),
126
+ });
127
+ }
128
+ // renderModal's own MODAL_HOST_STYLE (position:'absolute') is the outer symbiote-modal node's
129
+ // style; the anchor's class-derived style goes FIRST, that resolved style SECOND —
130
+ // flattenStyle's later-wins collapse keeps the modal's own style winning over its ambient class.
131
+ get hostProps() {
132
+ const descriptorProps = this.descriptor.props;
133
+ return { ...descriptorProps, style: [anchorHostStyle(this.elementRef), descriptorProps.style] };
134
+ }
135
+ get containerStyle() {
136
+ const container = this.descriptor.children[0];
137
+ return typeof container === 'string' ? undefined : container.props.style;
138
+ }
139
+ emit(emitter, event) {
140
+ if (isSymbioteEvent(event))
141
+ emitter.emit(event);
142
+ }
143
+ emitOrientation(event) {
144
+ if (!isSymbioteEvent(event))
145
+ return;
146
+ const change = readOrientation(event);
147
+ if (change !== undefined)
148
+ this.orientationChange.emit(change);
149
+ }
150
+ // Typed as the a11y intersection WITH the string index (the bag renderModal spreads into the
151
+ // host props), so resolveAccessibilityProps's result stays assignable to passthrough.
152
+ accessibilityInputs() {
153
+ return {
154
+ testID: this.testID,
155
+ accessible: this.accessible,
156
+ accessibilityLabel: this.accessibilityLabel,
157
+ accessibilityHint: this.accessibilityHint,
158
+ accessibilityRole: this.accessibilityRole,
159
+ accessibilityState: this.accessibilityState,
160
+ accessibilityValue: this.accessibilityValue,
161
+ accessibilityActions: this.accessibilityActions,
162
+ accessibilityLabelledBy: this.accessibilityLabelledBy,
163
+ importantForAccessibility: this.importantForAccessibility,
164
+ accessibilityLiveRegion: this.accessibilityLiveRegion,
165
+ screenReaderFocusable: this.screenReaderFocusable,
166
+ accessibilityViewIsModal: this.accessibilityViewIsModal,
167
+ accessibilityElementsHidden: this.accessibilityElementsHidden,
168
+ accessibilityIgnoresInvertColors: this.accessibilityIgnoresInvertColors,
169
+ accessibilityLanguage: this.accessibilityLanguage,
170
+ accessibilityRespondsToUserInteraction: this.accessibilityRespondsToUserInteraction,
171
+ accessibilityShowsLargeContentViewer: this.accessibilityShowsLargeContentViewer,
172
+ accessibilityLargeContentTitle: this.accessibilityLargeContentTitle,
173
+ role: this.role,
174
+ 'aria-label': this.ariaLabel,
175
+ 'aria-labelledby': this.ariaLabelledBy,
176
+ 'aria-live': this.ariaLive,
177
+ 'aria-hidden': this.ariaHidden,
178
+ 'aria-busy': this.ariaBusy,
179
+ 'aria-checked': this.ariaChecked,
180
+ 'aria-disabled': this.ariaDisabled,
181
+ 'aria-expanded': this.ariaExpanded,
182
+ 'aria-selected': this.ariaSelected,
183
+ 'aria-modal': this.ariaModal,
184
+ 'aria-valuemax': this.ariaValueMax,
185
+ 'aria-valuemin': this.ariaValueMin,
186
+ 'aria-valuenow': this.ariaValueNow,
187
+ 'aria-valuetext': this.ariaValueText,
188
+ };
189
+ }
190
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Modal, deps: [], target: i0.ɵɵFactoryTarget.Component });
191
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: Modal, isStandalone: true, selector: "Modal", inputs: { visible: "visible", transparent: "transparent", backdropColor: "backdropColor", animationType: "animationType", presentationStyle: "presentationStyle", supportedOrientations: "supportedOrientations", hardwareAccelerated: "hardwareAccelerated", statusBarTranslucent: "statusBarTranslucent", navigationBarTranslucent: "navigationBarTranslucent", allowSwipeDismissal: "allowSwipeDismissal", style: "style", testID: "testID", 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: { show: "show", dismiss: "dismiss", requestClose: "requestClose", orientationChange: "orientationChange", accessibilityAction: "accessibilityAction", accessibilityTap: "accessibilityTap", magicTap: "magicTap", accessibilityEscape: "accessibilityEscape" }, usesOnChanges: true, ngImport: i0, template: `
192
+ @if (shouldRender) {
193
+ <symbiote-modal
194
+ [symbioteHostProps]="hostProps"
195
+ (show)="show.emit()"
196
+ (dismiss)="dismiss.emit()"
197
+ (requestClose)="requestClose.emit()"
198
+ (orientationChange)="emitOrientation($event)"
199
+ (accessibilityAction)="emit(accessibilityAction, $event)"
200
+ (accessibilityTap)="emit(accessibilityTap, $event)"
201
+ (magicTap)="emit(magicTap, $event)"
202
+ (accessibilityEscape)="emit(accessibilityEscape, $event)"
203
+ >
204
+ <symbiote-view [style]="containerStyle" [collapsable]="false">
205
+ <ng-content></ng-content>
206
+ </symbiote-view>
207
+ </symbiote-modal>
208
+ }
209
+ `, isInline: true, dependencies: [{ kind: "component", type: ModalHost, selector: "symbiote-modal" }, { kind: "component", type: ViewHost, selector: "symbiote-view, View" }, { kind: "directive", type: SymbioteHostPropsDirective, selector: "[symbioteHostProps]", inputs: ["symbioteHostProps"], exportAs: ["symbioteHost"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
210
+ }
211
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Modal, decorators: [{
212
+ type: Component,
213
+ args: [{
214
+ selector: 'Modal',
215
+ standalone: true,
216
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
217
+ imports: [ModalHost, ViewHost, SymbioteHostPropsDirective],
218
+ changeDetection: ChangeDetectionStrategy.OnPush,
219
+ template: `
220
+ @if (shouldRender) {
221
+ <symbiote-modal
222
+ [symbioteHostProps]="hostProps"
223
+ (show)="show.emit()"
224
+ (dismiss)="dismiss.emit()"
225
+ (requestClose)="requestClose.emit()"
226
+ (orientationChange)="emitOrientation($event)"
227
+ (accessibilityAction)="emit(accessibilityAction, $event)"
228
+ (accessibilityTap)="emit(accessibilityTap, $event)"
229
+ (magicTap)="emit(magicTap, $event)"
230
+ (accessibilityEscape)="emit(accessibilityEscape, $event)"
231
+ >
232
+ <symbiote-view [style]="containerStyle" [collapsable]="false">
233
+ <ng-content></ng-content>
234
+ </symbiote-view>
235
+ </symbiote-modal>
236
+ }
237
+ `,
238
+ }]
239
+ }], propDecorators: { show: [{
240
+ type: Output
241
+ }], dismiss: [{
242
+ type: Output
243
+ }], requestClose: [{
244
+ type: Output
245
+ }], orientationChange: [{
246
+ type: Output
247
+ }], accessibilityAction: [{
248
+ type: Output
249
+ }], accessibilityTap: [{
250
+ type: Output
251
+ }], magicTap: [{
252
+ type: Output
253
+ }], accessibilityEscape: [{
254
+ type: Output
255
+ }], visible: [{
256
+ type: Input
257
+ }], transparent: [{
258
+ type: Input
259
+ }], backdropColor: [{
260
+ type: Input
261
+ }], animationType: [{
262
+ type: Input
263
+ }], presentationStyle: [{
264
+ type: Input
265
+ }], supportedOrientations: [{
266
+ type: Input
267
+ }], hardwareAccelerated: [{
268
+ type: Input
269
+ }], statusBarTranslucent: [{
270
+ type: Input
271
+ }], navigationBarTranslucent: [{
272
+ type: Input
273
+ }], allowSwipeDismissal: [{
274
+ type: Input
275
+ }], style: [{
276
+ type: Input
277
+ }], testID: [{
278
+ type: Input
279
+ }], accessible: [{
280
+ type: Input
281
+ }], accessibilityLabel: [{
282
+ type: Input
283
+ }], accessibilityHint: [{
284
+ type: Input
285
+ }], accessibilityRole: [{
286
+ type: Input
287
+ }], accessibilityState: [{
288
+ type: Input
289
+ }], accessibilityValue: [{
290
+ type: Input
291
+ }], accessibilityActions: [{
292
+ type: Input
293
+ }], accessibilityLabelledBy: [{
294
+ type: Input
295
+ }], importantForAccessibility: [{
296
+ type: Input
297
+ }], accessibilityLiveRegion: [{
298
+ type: Input
299
+ }], screenReaderFocusable: [{
300
+ type: Input
301
+ }], accessibilityViewIsModal: [{
302
+ type: Input
303
+ }], accessibilityElementsHidden: [{
304
+ type: Input
305
+ }], accessibilityIgnoresInvertColors: [{
306
+ type: Input
307
+ }], accessibilityLanguage: [{
308
+ type: Input
309
+ }], accessibilityRespondsToUserInteraction: [{
310
+ type: Input
311
+ }], accessibilityShowsLargeContentViewer: [{
312
+ type: Input
313
+ }], accessibilityLargeContentTitle: [{
314
+ type: Input
315
+ }], role: [{
316
+ type: Input
317
+ }], ariaLabel: [{
318
+ type: Input,
319
+ args: ['aria-label']
320
+ }], ariaLabelledBy: [{
321
+ type: Input,
322
+ args: ['aria-labelledby']
323
+ }], ariaLive: [{
324
+ type: Input,
325
+ args: ['aria-live']
326
+ }], ariaHidden: [{
327
+ type: Input,
328
+ args: ['aria-hidden']
329
+ }], ariaBusy: [{
330
+ type: Input,
331
+ args: ['aria-busy']
332
+ }], ariaChecked: [{
333
+ type: Input,
334
+ args: ['aria-checked']
335
+ }], ariaDisabled: [{
336
+ type: Input,
337
+ args: ['aria-disabled']
338
+ }], ariaExpanded: [{
339
+ type: Input,
340
+ args: ['aria-expanded']
341
+ }], ariaSelected: [{
342
+ type: Input,
343
+ args: ['aria-selected']
344
+ }], ariaModal: [{
345
+ type: Input,
346
+ args: ['aria-modal']
347
+ }], ariaValueMax: [{
348
+ type: Input,
349
+ args: ['aria-valuemax']
350
+ }], ariaValueMin: [{
351
+ type: Input,
352
+ args: ['aria-valuemin']
353
+ }], ariaValueNow: [{
354
+ type: Input,
355
+ args: ['aria-valuenow']
356
+ }], ariaValueText: [{
357
+ type: Input,
358
+ args: ['aria-valuetext']
359
+ }] } });
360
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/modal/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { type IAccessibilityProps, type IAccessibilityStateValue, type IAriaProps, type IPressableAndroidRippleConfig, type IPressHandler, type IPressState, type IRectOffset } from '@symbiote-native/components';
3
+ import { type ISymbioteEvent, type IStyleProp, type IViewStyle } from '@symbiote-native/engine';
4
+ import * as i0 from "@angular/core";
5
+ export type { IPressState, IPressableAndroidRippleConfig } from '@symbiote-native/components';
6
+ export interface IAngularPressableProps extends IAccessibilityProps, IAriaProps {
7
+ onPress?: IPressHandler;
8
+ onPressIn?: IPressHandler;
9
+ onPressOut?: IPressHandler;
10
+ onPressMove?: IPressHandler;
11
+ onLongPress?: IPressHandler;
12
+ delayLongPress?: number;
13
+ disabled?: boolean;
14
+ cancelable?: boolean;
15
+ hitSlop?: IRectOffset;
16
+ pressRetentionOffset?: IRectOffset;
17
+ unstable_pressDelay?: number;
18
+ android_ripple?: IPressableAndroidRippleConfig;
19
+ android_disableSound?: boolean;
20
+ onHoverIn?: IPressHandler;
21
+ onHoverOut?: IPressHandler;
22
+ delayHoverIn?: number;
23
+ delayHoverOut?: number;
24
+ testID?: string;
25
+ nativeID?: string;
26
+ hasTVPreferredFocus?: boolean;
27
+ nextFocusDown?: number;
28
+ nextFocusForward?: number;
29
+ nextFocusLeft?: number;
30
+ nextFocusRight?: number;
31
+ nextFocusUp?: number;
32
+ style?: IStyleProp<IViewStyle> | ((state: IPressState) => IStyleProp<IViewStyle>);
33
+ }
34
+ export type IAngularPressableInputs = Omit<IAngularPressableProps, 'onPress' | 'onPressIn' | 'onPressOut' | 'onPressMove' | 'onLongPress' | 'onHoverIn' | 'onHoverOut' | 'onAccessibilityAction' | 'onAccessibilityTap' | 'onMagicTap' | 'onAccessibilityEscape'>;
35
+ export declare class Pressable implements IAngularPressableInputs {
36
+ readonly press: EventEmitter<ISymbioteEvent>;
37
+ readonly pressIn: EventEmitter<ISymbioteEvent>;
38
+ readonly pressOut: EventEmitter<ISymbioteEvent>;
39
+ readonly pressMove: EventEmitter<ISymbioteEvent>;
40
+ readonly longPress: EventEmitter<ISymbioteEvent>;
41
+ readonly hoverIn: EventEmitter<ISymbioteEvent>;
42
+ readonly hoverOut: EventEmitter<ISymbioteEvent>;
43
+ readonly accessibilityAction: EventEmitter<ISymbioteEvent>;
44
+ readonly accessibilityTap: EventEmitter<ISymbioteEvent>;
45
+ readonly magicTap: EventEmitter<ISymbioteEvent>;
46
+ readonly accessibilityEscape: EventEmitter<ISymbioteEvent>;
47
+ delayLongPress?: number;
48
+ disabled?: boolean;
49
+ cancelable?: boolean;
50
+ hitSlop?: IRectOffset;
51
+ pressRetentionOffset?: IRectOffset;
52
+ unstable_pressDelay?: number;
53
+ android_ripple?: IPressableAndroidRippleConfig;
54
+ android_disableSound?: boolean;
55
+ delayHoverIn?: number;
56
+ delayHoverOut?: number;
57
+ testID?: string;
58
+ nativeID?: string;
59
+ hasTVPreferredFocus?: boolean;
60
+ nextFocusDown?: number;
61
+ nextFocusForward?: number;
62
+ nextFocusLeft?: number;
63
+ nextFocusRight?: number;
64
+ nextFocusUp?: number;
65
+ style?: IAngularPressableProps['style'];
66
+ accessible?: boolean;
67
+ accessibilityLabel?: string;
68
+ accessibilityHint?: string;
69
+ accessibilityRole?: IAngularPressableProps['accessibilityRole'];
70
+ accessibilityState?: IAccessibilityStateValue;
71
+ accessibilityValue?: IAngularPressableProps['accessibilityValue'];
72
+ accessibilityActions?: IAngularPressableProps['accessibilityActions'];
73
+ accessibilityLabelledBy?: string | string[];
74
+ importantForAccessibility?: IAccessibilityProps['importantForAccessibility'];
75
+ accessibilityLiveRegion?: IAccessibilityProps['accessibilityLiveRegion'];
76
+ screenReaderFocusable?: boolean;
77
+ accessibilityViewIsModal?: boolean;
78
+ accessibilityElementsHidden?: boolean;
79
+ accessibilityIgnoresInvertColors?: boolean;
80
+ accessibilityLanguage?: string;
81
+ accessibilityRespondsToUserInteraction?: boolean;
82
+ accessibilityShowsLargeContentViewer?: boolean;
83
+ accessibilityLargeContentTitle?: string;
84
+ ariaLabel?: string;
85
+ ariaBusy?: boolean;
86
+ ariaChecked?: boolean | 'mixed';
87
+ ariaDisabled?: boolean;
88
+ ariaExpanded?: boolean;
89
+ ariaHidden?: boolean;
90
+ ariaLabelledBy?: string;
91
+ ariaLive?: IAriaProps['aria-live'];
92
+ ariaSelected?: boolean;
93
+ ariaModal?: boolean;
94
+ ariaValueMax?: number;
95
+ ariaValueMin?: number;
96
+ ariaValueNow?: number;
97
+ ariaValueText?: string;
98
+ id?: string;
99
+ role?: IAngularPressableProps['role'];
100
+ private hostElement?;
101
+ pressed: boolean;
102
+ private readonly runtime;
103
+ private readonly host;
104
+ private readonly changeDetector;
105
+ private readonly elementRef;
106
+ get resolvedStyle(): IStyleProp<IViewStyle> | undefined;
107
+ get foldedAccessibility(): Partial<IAngularPressableProps>;
108
+ get resolvedRippleProps(): Record<string, unknown> | undefined;
109
+ get hostProps(): Record<string, unknown>;
110
+ handlePressIn(event: unknown): void;
111
+ handlePressOut(event: unknown): void;
112
+ handlePress(event: unknown): void;
113
+ handleResponderMove(event: unknown): void;
114
+ claimResponder(): boolean;
115
+ allowTermination(): boolean;
116
+ emit(emitter: EventEmitter<ISymbioteEvent>, event: unknown): void;
117
+ private noteHoverNoop;
118
+ private emitterHandler;
119
+ private get handlers();
120
+ private get hostNode();
121
+ static ɵfac: i0.ɵɵFactoryDeclaration<Pressable, never>;
122
+ 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, never>;
123
+ }