@symbiote-native/angular 0.8.0 → 2.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.
- package/README.md +13 -10
- package/babel-register-composed.cjs +58 -18
- package/bin/symbiote-angular-dev.cjs +16 -4
- package/build/angular/anchor-host-registry.js +1 -15
- package/build/angular/anchor-host-registry.js.map +1 -1
- package/build/angular/change-detection-flush.d.ts +31 -0
- package/build/angular/change-detection-flush.js +110 -0
- package/build/angular/change-detection-flush.js.map +1 -0
- package/build/angular/components/activity-indicator-props.d.ts +2 -0
- package/build/angular/components/activity-indicator-props.js +2 -0
- package/build/angular/components/activity-indicator-props.js.map +1 -0
- package/build/angular/components/button-props.d.ts +2 -0
- package/build/angular/components/button-props.js +2 -0
- package/build/angular/components/button-props.js.map +1 -0
- package/build/angular/components/flat-list/index.d.ts +2 -1
- package/build/angular/components/flat-list/index.js +22 -10
- package/build/angular/components/flat-list/index.js.map +1 -1
- package/build/angular/components/image-background-props.d.ts +6 -0
- package/build/angular/components/image-background-props.js +2 -0
- package/build/angular/components/image-background-props.js.map +1 -0
- package/build/angular/components/{image/shared.d.ts → image-shared.d.ts} +4 -4
- package/build/angular/components/{image/shared.js → image-shared.js} +39 -28
- package/build/angular/components/image-shared.js.map +1 -0
- package/build/angular/components/input-accessory-view-props.d.ts +7 -0
- package/build/angular/components/input-accessory-view-props.js +9 -0
- package/build/angular/components/input-accessory-view-props.js.map +1 -0
- package/build/angular/components/keyboard-avoiding-view/index.d.ts +2 -1
- package/build/angular/components/keyboard-avoiding-view/index.js +28 -27
- package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
- package/build/angular/components/modal/index.d.ts +2 -0
- package/build/angular/components/modal/index.js +33 -20
- package/build/angular/components/modal/index.js.map +1 -1
- package/build/angular/components/pressable-props.d.ts +32 -0
- package/build/angular/components/pressable-props.js +11 -0
- package/build/angular/components/pressable-props.js.map +1 -0
- package/build/angular/components/refresh-control-props.d.ts +16 -0
- package/build/angular/components/refresh-control-props.js +14 -0
- package/build/angular/components/refresh-control-props.js.map +1 -0
- package/build/angular/components/safe-area-view-props.d.ts +7 -0
- package/build/angular/components/safe-area-view-props.js +11 -0
- package/build/angular/components/safe-area-view-props.js.map +1 -0
- package/build/angular/components/scroll-view-props.d.ts +76 -0
- package/build/angular/components/scroll-view-props.js +18 -0
- package/build/angular/components/scroll-view-props.js.map +1 -0
- package/build/angular/components/section-list/index.d.ts +3 -0
- package/build/angular/components/section-list/index.js +10 -1
- package/build/angular/components/section-list/index.js.map +1 -1
- package/build/angular/components/text-input-props.d.ts +45 -0
- package/build/angular/components/text-input-props.js +18 -0
- package/build/angular/components/text-input-props.js.map +1 -0
- package/build/angular/components/touchable-native-feedback/touchable-native-feedback-props.d.ts +6 -0
- package/build/angular/components/touchable-native-feedback/touchable-native-feedback-props.js +2 -0
- package/build/angular/components/touchable-native-feedback/touchable-native-feedback-props.js.map +1 -0
- package/build/angular/components/touchable-props.d.ts +14 -0
- package/build/angular/components/touchable-props.js +13 -0
- package/build/angular/components/touchable-props.js.map +1 -0
- package/build/angular/components/touchable-without-feedback/touchable-without-feedback-props.d.ts +3 -0
- package/build/angular/components/touchable-without-feedback/touchable-without-feedback-props.js +2 -0
- package/build/angular/components/touchable-without-feedback/touchable-without-feedback-props.js.map +1 -0
- package/build/angular/components/virtualized-list/index.d.ts +8 -1
- package/build/angular/components/virtualized-list/index.js +373 -278
- package/build/angular/components/virtualized-list/index.js.map +1 -1
- package/build/angular/components/virtualized-section-list/index.d.ts +3 -0
- package/build/angular/components/virtualized-section-list/index.js +10 -1
- package/build/angular/components/virtualized-section-list/index.js.map +1 -1
- package/build/angular/components.d.ts +21 -27
- package/build/angular/components.js +13 -15
- package/build/angular/components.js.map +1 -1
- package/build/angular/create-portal/index.d.ts +11 -2
- package/build/angular/create-portal/index.js +37 -11
- package/build/angular/create-portal/index.js.map +1 -1
- package/build/angular/create-tunnel/index.js +1 -1
- package/build/angular/element-props.d.ts +53 -0
- package/build/angular/element-props.js +2 -0
- package/build/angular/element-props.js.map +1 -0
- package/build/angular/elements.d.ts +528 -0
- package/build/angular/elements.js +1444 -0
- package/build/angular/elements.js.map +1 -0
- package/build/angular/gate-demand.d.ts +37 -0
- package/build/angular/gate-demand.js +84 -0
- package/build/angular/gate-demand.js.map +1 -0
- package/build/angular/host-instance/index.js +1 -1
- package/build/angular/index.d.ts +5 -2
- package/build/angular/index.js +16 -1
- package/build/angular/index.js.map +1 -1
- package/build/angular/modules/animated/create-animated-component.d.ts +6 -6
- package/build/angular/modules/animated/create-animated-component.js +73 -81
- package/build/angular/modules/animated/create-animated-component.js.map +1 -1
- package/build/angular/modules/animated/index.js +1 -1
- package/build/angular/modules/animated/index.js.map +1 -1
- package/build/angular/modules/image/index.d.ts +3 -0
- package/build/angular/modules/image/index.js +16 -0
- package/build/angular/modules/image/index.js.map +1 -0
- package/build/angular/primitives/index.d.ts +28 -16
- package/build/angular/primitives/index.js +77 -31
- package/build/angular/primitives/index.js.map +1 -1
- package/build/angular/primitives/shared.d.ts +2 -3
- package/build/angular/primitives/shared.js +8 -53
- package/build/angular/primitives/shared.js.map +1 -1
- package/build/angular/register.d.ts +1 -0
- package/build/angular/register.js +16 -0
- package/build/angular/register.js.map +1 -0
- package/build/angular/render/index.js +4 -2
- package/build/angular/render/index.js.map +1 -1
- package/build/angular/renderer/index.js +207 -60
- package/build/angular/renderer/index.js.map +1 -1
- package/build/angular/renderer/value-change.d.ts +2 -0
- package/build/angular/renderer/value-change.js +9 -0
- package/build/angular/renderer/value-change.js.map +1 -0
- package/metro-config.cjs +23 -5
- package/metro-css-parser.cjs +2 -1
- package/package.json +17 -7
- package/src/anchor-host-registry.ts +1 -15
- package/src/change-detection-flush.ts +120 -0
- package/src/components/activity-indicator-props.ts +21 -0
- package/src/components/button-props.ts +26 -0
- package/src/components/flat-list/index.ts +12 -4
- package/src/components/image-background-props.ts +24 -0
- package/src/components/{image/shared.ts → image-shared.ts} +57 -26
- package/src/components/input-accessory-view-props.ts +21 -0
- package/src/components/keyboard-avoiding-view/index.ts +27 -16
- package/src/components/modal/index.ts +32 -11
- package/src/components/pressable-props.ts +73 -0
- package/src/components/refresh-control-props.ts +43 -0
- package/src/components/safe-area-view-props.ts +28 -0
- package/src/components/scroll-view-props.ts +109 -0
- package/src/components/section-list/index.ts +18 -0
- package/src/components/text-input-props.ts +72 -0
- package/src/components/touchable-native-feedback/touchable-native-feedback-props.ts +23 -0
- package/src/components/touchable-props.ts +30 -0
- package/src/components/touchable-without-feedback/touchable-without-feedback-props.ts +21 -0
- package/src/components/virtualized-list/index.ts +254 -153
- package/src/components/virtualized-section-list/index.ts +18 -0
- package/src/components.ts +86 -35
- package/src/create-portal/index.ts +39 -9
- package/src/create-tunnel/index.ts +1 -1
- package/src/diagnostics.ts +1 -1
- package/src/element-props.ts +90 -0
- package/src/elements.ts +919 -0
- package/src/gate-demand.ts +109 -0
- package/src/host-instance/index.ts +1 -1
- package/src/index.ts +54 -15
- package/src/modules/animated/create-animated-component.ts +73 -59
- package/src/modules/animated/index.ts +1 -1
- package/src/modules/image/index.ts +18 -0
- package/src/primitives/index.ts +47 -16
- package/src/primitives/shared.ts +11 -44
- package/src/register.ts +15 -0
- package/src/render/index.ts +4 -2
- package/src/renderer/index.ts +239 -80
- package/src/renderer/value-change.ts +8 -0
- package/build/angular/components/activity-indicator/index.android.d.ts +0 -13
- package/build/angular/components/activity-indicator/index.android.js +0 -29
- package/build/angular/components/activity-indicator/index.android.js.map +0 -1
- package/build/angular/components/activity-indicator/index.d.ts +0 -1
- package/build/angular/components/activity-indicator/index.ios.d.ts +0 -9
- package/build/angular/components/activity-indicator/index.ios.js +0 -26
- package/build/angular/components/activity-indicator/index.ios.js.map +0 -1
- package/build/angular/components/activity-indicator/index.js +0 -4
- package/build/angular/components/activity-indicator/index.js.map +0 -1
- package/build/angular/components/activity-indicator/shared.d.ts +0 -67
- package/build/angular/components/activity-indicator/shared.js +0 -260
- package/build/angular/components/activity-indicator/shared.js.map +0 -1
- package/build/angular/components/button.d.ts +0 -65
- package/build/angular/components/button.js +0 -351
- package/build/angular/components/button.js.map +0 -1
- package/build/angular/components/image/index.android.d.ts +0 -15
- package/build/angular/components/image/index.android.js +0 -91
- package/build/angular/components/image/index.android.js.map +0 -1
- package/build/angular/components/image/index.d.ts +0 -1
- package/build/angular/components/image/index.ios.d.ts +0 -15
- package/build/angular/components/image/index.ios.js +0 -91
- package/build/angular/components/image/index.ios.js.map +0 -1
- package/build/angular/components/image/index.js +0 -3
- package/build/angular/components/image/index.js.map +0 -1
- package/build/angular/components/image/shared.js.map +0 -1
- package/build/angular/components/image-background.d.ts +0 -82
- package/build/angular/components/image-background.js +0 -434
- package/build/angular/components/image-background.js.map +0 -1
- package/build/angular/components/input-accessory-view/index.d.ts +0 -65
- package/build/angular/components/input-accessory-view/index.js +0 -290
- package/build/angular/components/input-accessory-view/index.js.map +0 -1
- package/build/angular/components/pressable/index.d.ts +0 -129
- package/build/angular/components/pressable/index.js +0 -473
- package/build/angular/components/pressable/index.js.map +0 -1
- package/build/angular/components/refresh-control/index.d.ts +0 -90
- package/build/angular/components/refresh-control/index.js +0 -380
- package/build/angular/components/refresh-control/index.js.map +0 -1
- package/build/angular/components/safe-area-view/index.d.ts +0 -62
- package/build/angular/components/safe-area-view/index.js +0 -287
- package/build/angular/components/safe-area-view/index.js.map +0 -1
- package/build/angular/components/scroll-view/index.android.d.ts +0 -20
- package/build/angular/components/scroll-view/index.android.js +0 -262
- package/build/angular/components/scroll-view/index.android.js.map +0 -1
- package/build/angular/components/scroll-view/index.d.ts +0 -3
- package/build/angular/components/scroll-view/index.ios.d.ts +0 -8
- package/build/angular/components/scroll-view/index.ios.js +0 -92
- package/build/angular/components/scroll-view/index.ios.js.map +0 -1
- package/build/angular/components/scroll-view/index.js +0 -6
- package/build/angular/components/scroll-view/index.js.map +0 -1
- package/build/angular/components/scroll-view/projection.d.ts +0 -67
- package/build/angular/components/scroll-view/projection.js +0 -560
- package/build/angular/components/scroll-view/projection.js.map +0 -1
- package/build/angular/components/scroll-view/shared.d.ts +0 -239
- package/build/angular/components/scroll-view/shared.js +0 -832
- package/build/angular/components/scroll-view/shared.js.map +0 -1
- package/build/angular/components/scroll-view/sticky-header.d.ts +0 -40
- package/build/angular/components/scroll-view/sticky-header.js +0 -224
- package/build/angular/components/scroll-view/sticky-header.js.map +0 -1
- package/build/angular/components/switch/index.android.d.ts +0 -24
- package/build/angular/components/switch/index.android.js +0 -112
- package/build/angular/components/switch/index.android.js.map +0 -1
- package/build/angular/components/switch/index.d.ts +0 -1
- package/build/angular/components/switch/index.ios.d.ts +0 -23
- package/build/angular/components/switch/index.ios.js +0 -111
- package/build/angular/components/switch/index.ios.js.map +0 -1
- package/build/angular/components/switch/index.js +0 -4
- package/build/angular/components/switch/index.js.map +0 -1
- package/build/angular/components/switch/shared.d.ts +0 -49
- package/build/angular/components/switch/shared.js +0 -191
- package/build/angular/components/switch/shared.js.map +0 -1
- package/build/angular/components/text-input.d.ts +0 -161
- package/build/angular/components/text-input.js +0 -659
- package/build/angular/components/text-input.js.map +0 -1
- package/build/angular/components/touchable/index.d.ts +0 -276
- package/build/angular/components/touchable/index.js +0 -1422
- package/build/angular/components/touchable/index.js.map +0 -1
- package/build/angular/components/touchable-native-feedback/index.d.ts +0 -86
- package/build/angular/components/touchable-native-feedback/index.js +0 -407
- package/build/angular/components/touchable-native-feedback/index.js.map +0 -1
- package/src/components/activity-indicator/index.android.ts +0 -23
- package/src/components/activity-indicator/index.ios.ts +0 -21
- package/src/components/activity-indicator/index.ts +0 -4
- package/src/components/activity-indicator/shared.ts +0 -225
- package/src/components/button.ts +0 -220
- package/src/components/image/index.android.ts +0 -99
- package/src/components/image/index.ios.ts +0 -99
- package/src/components/image/index.ts +0 -3
- package/src/components/image-background.ts +0 -290
- package/src/components/input-accessory-view/index.ts +0 -240
- package/src/components/pressable/index.ts +0 -462
- package/src/components/refresh-control/index.ts +0 -340
- package/src/components/safe-area-view/index.ts +0 -231
- package/src/components/scroll-view/index.android.ts +0 -205
- package/src/components/scroll-view/index.ios.ts +0 -81
- package/src/components/scroll-view/index.ts +0 -7
- package/src/components/scroll-view/projection.ts +0 -713
- package/src/components/scroll-view/shared.ts +0 -1066
- package/src/components/scroll-view/sticky-header.ts +0 -267
- package/src/components/switch/index.android.ts +0 -113
- package/src/components/switch/index.ios.ts +0 -112
- package/src/components/switch/index.ts +0 -4
- package/src/components/switch/shared.ts +0 -284
- package/src/components/text-input.ts +0 -613
- package/src/components/touchable/index.ts +0 -913
- package/src/components/touchable-native-feedback/index.ts +0 -317
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
// engine's tiny mutation API; the engine owns all Fabric clone-on-write, shared with
|
|
5
5
|
// every other adapter. This is the Angular twin of adapters/vue/src/renderer.ts — proof
|
|
6
6
|
// that the same engine mutation API drives both frameworks.
|
|
7
|
-
import { appendChild, createAnchor, createElement, createRawText, dlog, getExplicitStyle, insertBefore, isDebug, isSymbioteNode, removeChild, routeProp, setEventListener, setText, toPublicInstance, RAW_TEXT_COMPONENT, SymbioteSurface, } from '@symbiote-native/engine';
|
|
8
|
-
import { descriptorFor } from '@symbiote-native/components';
|
|
7
|
+
import { appendChild, createAnchor, createElement, createRawText, dlog, getExplicitStyle, insertBefore, isDebug, isSymbioteEvent, isSymbioteNode, removeChild, routeProp, setEventListener, setProp, setText, toPublicInstance, RAW_TEXT_COMPONENT, SymbioteSurface, } from '@symbiote-native/engine';
|
|
8
|
+
import { COMPONENT_DESCRIPTORS, descriptorFor, } from '@symbiote-native/components';
|
|
9
|
+
import { foldHostBag } from '@symbiote-native/components/fold-host-bag';
|
|
9
10
|
import { isAnchorHostComponent } from '../anchor-host-registry';
|
|
10
11
|
import { countAngular, noteAngularCreate, noteAngularWrite, } from '../diagnostics';
|
|
11
|
-
import { flushScrollViewProjections, getScrollViewProjection, removeScrollViewProjectedChild, } from '../components/scroll-view/projection';
|
|
12
12
|
function isSurface(parent) {
|
|
13
13
|
return parent instanceof SymbioteSurface;
|
|
14
14
|
}
|
|
@@ -18,6 +18,79 @@ function isRawText(node) {
|
|
|
18
18
|
function isRecord(value) {
|
|
19
19
|
return typeof value === 'object' && value !== null;
|
|
20
20
|
}
|
|
21
|
+
// RN's Text.js applies two defaults on the way to native (core/components/host-primitives.cjs's
|
|
22
|
+
// `Text.defaults`; the authority on what they MEAN is core/components/src/text-props.ts's
|
|
23
|
+
// resolveTextProps, which the composed `Text` @Component already calls). That component's own
|
|
24
|
+
// host paints directly (Text is not anchor-hosted — see the top-level "View/Text's own component
|
|
25
|
+
// doesn't have this split" reasoning elsewhere in this file), so createElement runs for its INNER
|
|
26
|
+
// text node too; seeding here therefore covers both the composed Text and any bare
|
|
27
|
+
// `text` a future lowering emits, uniformly. Found missing 2026-08-31 (a cross-adapter
|
|
28
|
+
// key-count diff against Vue's real BenchmarkRow.vue) — without this a lowered Text's
|
|
29
|
+
// `numberOfLines` clips with no ellipsis, silently, on device only. Vue's renderer already does
|
|
30
|
+
// this (`adapters/vue/src/renderer/index.ts`'s `seedTextDefaults`); Angular's simply never did.
|
|
31
|
+
//
|
|
32
|
+
// Sourced from `foldHostBag` (`@symbiote-native/components/fold-host-bag`, driven by
|
|
33
|
+
// `HOST_PRIMITIVES.Text.defaults`) rather than a second hardcoded copy — React and Svelte call the
|
|
34
|
+
// same function directly; this used to be a THIRD, independent restatement of the same two
|
|
35
|
+
// defaults, with nothing to catch it drifting from the spec if a default's value ever changed.
|
|
36
|
+
// `foldHostBag('text', {})` on an EMPTY bag folds every default with no authored value to
|
|
37
|
+
// override it (the alias loop has nothing to fold — `id` is only rewritten when present), which is
|
|
38
|
+
// exactly the seed this function needs.
|
|
39
|
+
function seedTextDefaults(node) {
|
|
40
|
+
const seeded = foldHostBag('text', {});
|
|
41
|
+
for (const [key, value] of Object.entries(seeded))
|
|
42
|
+
setProp(node, key, value);
|
|
43
|
+
}
|
|
44
|
+
// An explicit `undefined` must NOT clear one of those defaults — RN treats a missing prop and an
|
|
45
|
+
// explicit undefined alike, and only a literal `false` opts allowFontScaling out. Reached only
|
|
46
|
+
// when a later write clears a key back to undefined, so it costs nothing on the common path.
|
|
47
|
+
// `foldHostBag` folds every Text default when called this way (not just `key`), because its
|
|
48
|
+
// contract is "fold a whole bag" — the extra key computed alongside `key` is simply unread here.
|
|
49
|
+
function textDefaultFor(el, key) {
|
|
50
|
+
if (isSurface(el) || !el.isText)
|
|
51
|
+
return undefined;
|
|
52
|
+
return foldHostBag('text', { [key]: undefined })[key];
|
|
53
|
+
}
|
|
54
|
+
// RN's `id` is the modern W3C-named alias for `nativeID` (core/components/host-primitives.cjs's
|
|
55
|
+
// `ID_ALIAS`) — View.js/Text.js copy it over unconditionally, so the two name ONE native prop.
|
|
56
|
+
// React/Solid/Svelte fold it in a wrapper or transform; Angular had it nowhere, so `<view
|
|
57
|
+
// id="x">`/`[id]="x"` reached Fabric with an unknown `id` key and no `nativeID` — silently, on
|
|
58
|
+
// device only. Lives in the renderer (mirroring Vue's `PROP_ALIASES`) so it covers every path
|
|
59
|
+
// that can set a prop — `setAttribute`, `setProperty`, and (should a future lowering emit one) a
|
|
60
|
+
// hand-built call — not just the composed component's own `id` @Input.
|
|
61
|
+
// `symbioteStyle` is what the lowering transform emits in place of `[style]`: Angular routes a
|
|
62
|
+
// `style` binding to its own CSS styling engine, which cannot represent an RN StyleProp (an array
|
|
63
|
+
// throws inside change detection). Under any other name it is an ordinary property binding and
|
|
64
|
+
// arrives here.
|
|
65
|
+
// Angular's two-way sugar `[(value)]` compiles to a `(valueChange)` binding; the engine knows the
|
|
66
|
+
// same fold as the function prop `onValueChange`. See `listen()`. The two names live in a leaf
|
|
67
|
+
// module so `elements.ts`'s ControlValueAccessor can name them without importing this cyclic file.
|
|
68
|
+
import { VALUE_CHANGE_EVENT, VALUE_CHANGE_PROP } from './value-change';
|
|
69
|
+
import { flushViewFor } from '../change-detection-flush';
|
|
70
|
+
const PROP_ALIASES = new Map([
|
|
71
|
+
['id', 'nativeID'],
|
|
72
|
+
['symbioteStyle', 'style'],
|
|
73
|
+
]);
|
|
74
|
+
function aliasedPropName(name) {
|
|
75
|
+
return PROP_ALIASES.get(name) ?? name;
|
|
76
|
+
}
|
|
77
|
+
// The app callbacks an engine behavior READS BACK inside the same microtask turn, as an Angular
|
|
78
|
+
// `(event)` binding — `valueChange` is handled in `listen` on its own, since it also needs the field
|
|
79
|
+
// unwrapped. Zoneless change detection is a macrotask, so without a flush the behavior reads the
|
|
80
|
+
// PRE-event value; `../change-detection-flush` holds the whole mechanism, the three behaviors, and
|
|
81
|
+
// why this is scoped rather than wired to the engine's event-dispatch seam.
|
|
82
|
+
//
|
|
83
|
+
// The other spelling — the `[onRefresh]` flat-bag PROP — is not here: an `on*` function prop is
|
|
84
|
+
// wrapped by `SymbioteElement` itself, which reaches every one of them rather than a named three,
|
|
85
|
+
// and adds the `markForCheck` a prop callback needs and an event binding gets from Angular.
|
|
86
|
+
const READ_BACK_EVENTS = new Set(['refresh']);
|
|
87
|
+
function withChangeDetection(node, listener) {
|
|
88
|
+
return (event) => {
|
|
89
|
+
const result = listener(event);
|
|
90
|
+
flushViewFor(node);
|
|
91
|
+
return result;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
21
94
|
// Diagnostic-only: tags each anchor with a sequential id so log lines can tell distinct
|
|
22
95
|
// anchors apart (they all otherwise print the same generic '#anchor' component name).
|
|
23
96
|
// Gated behind isDebug() so a production build pays zero cost (no WeakMap writes).
|
|
@@ -42,20 +115,47 @@ function describeHost(node) {
|
|
|
42
115
|
? `${node.component}#${anchorId}`
|
|
43
116
|
: node.component;
|
|
44
117
|
}
|
|
118
|
+
// A hand-written tag ngtsc accepts must contain a HYPHEN, so the six dashless intrinsics
|
|
119
|
+
// (`view`/`text`/`pressable`/`image`/`switch`/`modal`) need a second spelling that has one.
|
|
120
|
+
// `hasElement`/`hasProperty` gate the CUSTOM_ELEMENTS_SCHEMA branch behind
|
|
121
|
+
// `normalizedTag.includes('-')` (compiler/src/schema/dom_element_schema_registry.ts), so a dashless
|
|
122
|
+
// tag is NG8001 under every schema but NO_ERRORS_SCHEMA — which switches off element checking
|
|
123
|
+
// entirely. Dropping the `symbiote-` prefix from the tag alphabet is what took the dash away.
|
|
124
|
+
//
|
|
125
|
+
// A per-tag directive is the other repair, and it is the one an app should reach for now that
|
|
126
|
+
// `SYMBIOTE_ELEMENTS` exists (`../elements.ts`). Matching a directive does turn every bound prop
|
|
127
|
+
// into an input lookup — the sentence that used to end this paragraph — but that is a repair
|
|
128
|
+
// rather than a dead end: declare the input and the lookup succeeds, with a real TYPE, which no
|
|
129
|
+
// schema gives. This alias map stays for the `symbiote-*` spelling and for an app that has not
|
|
130
|
+
// imported the directives.
|
|
131
|
+
//
|
|
132
|
+
// Derived, so a future dashless intrinsic joins by existing; when the alphabet regains its dashes
|
|
133
|
+
// upstream every entry becomes identity and the map can go. See `bare-intrinsic-tag-aot.test.ts`.
|
|
134
|
+
const HYPHEN_PREFIX = 'symbiote-';
|
|
135
|
+
function hyphenatedIntrinsicAliases() {
|
|
136
|
+
const aliases = {};
|
|
137
|
+
for (const tag of Object.keys(COMPONENT_DESCRIPTORS)) {
|
|
138
|
+
if (tag.includes('-'))
|
|
139
|
+
continue;
|
|
140
|
+
aliases[`${HYPHEN_PREFIX}${tag}`] = tag;
|
|
141
|
+
}
|
|
142
|
+
return aliases;
|
|
143
|
+
}
|
|
45
144
|
const PRIMITIVE_SELECTOR_ALIAS = {
|
|
46
145
|
// Public ergonomic selectors map directly to the engine primitive descriptors.
|
|
47
|
-
View: '
|
|
48
|
-
Text: '
|
|
146
|
+
View: 'view',
|
|
147
|
+
Text: 'text',
|
|
148
|
+
...hyphenatedIntrinsicAliases(),
|
|
49
149
|
};
|
|
50
150
|
// The ANCHOR_HOST_COMPONENTS Set and registerComposedComponent now live in the dependency-free
|
|
51
151
|
// leaf module ../anchor-host-registry (imported above as isAnchorHostComponent) — see its header
|
|
52
152
|
// for why the registry must NOT sit in this require-cyclic renderer module.
|
|
53
|
-
// Inserting a bare raw-text node anywhere but inside a <
|
|
54
|
-
// stray RCTRawText would paint). Angular's ɵɵtext only ever lands text inside a <
|
|
153
|
+
// Inserting a bare raw-text node anywhere but inside a <text> is invalid in Fabric (a
|
|
154
|
+
// stray RCTRawText would paint). Angular's ɵɵtext only ever lands text inside a <text>,
|
|
55
155
|
// but guard anyway for parity with the Vue adapter and to fail loudly on a bad template.
|
|
56
156
|
function assertTextPlacement(child, parent) {
|
|
57
157
|
if (isRawText(child) && (isSurface(parent) || !parent.isText)) {
|
|
58
|
-
throw new Error(`Text string "${String(child.props.text)}" must be rendered inside a <
|
|
158
|
+
throw new Error(`Text string "${String(child.props.text)}" must be rendered inside a <text>`);
|
|
59
159
|
}
|
|
60
160
|
}
|
|
61
161
|
// One renderer per mounted surface. Every mutation asks the surface to (microtask-
|
|
@@ -72,24 +172,46 @@ export class SymbioteRenderer {
|
|
|
72
172
|
}
|
|
73
173
|
destroy() { }
|
|
74
174
|
createElement(name) {
|
|
75
|
-
// `name` is the component's host tag — a symbiote intrinsic (`
|
|
76
|
-
// `
|
|
175
|
+
// `name` is the component's host tag — a symbiote intrinsic (`view`,
|
|
176
|
+
// `text`, …), a public ergonomic alias (`View`, `Text`), or a raw Fabric view
|
|
77
177
|
// name for a native leaf. Public aliases are normalized to their engine primitive name
|
|
78
178
|
// before descriptor lookup. descriptorFor resolves it; an unknown `symbiote-*` is a typo,
|
|
79
179
|
// any other string flows through as a raw Fabric name (events/processors derived from its
|
|
80
|
-
// ViewConfig).
|
|
81
|
-
//
|
|
180
|
+
// ViewConfig). The imperative API (measure / setNativeProps / focus) is on the node's
|
|
181
|
+
// prototype, so toPublicInstance hands back the SAME identity the commit mirror keys on.
|
|
82
182
|
countAngular('nodesCreated');
|
|
83
183
|
noteAngularCreate(name);
|
|
84
184
|
const engineName = PRIMITIVE_SELECTOR_ALIAS[name] ?? name;
|
|
85
|
-
|
|
185
|
+
// An INTRINSIC is never an anchor, and the check has to come first now that the tags carry no
|
|
186
|
+
// prefix. The anchor registry is keyed on lowercased selectors — Angular lowercases a
|
|
187
|
+
// dynamically-mounted component's selector at runtime, so it must be — and the composed
|
|
188
|
+
// wrappers are named after the primitives they render: `Text`.toLowerCase() IS the tag `text`.
|
|
189
|
+
// While both layers exist, every `<text>` would anchor instead of painting.
|
|
190
|
+
//
|
|
191
|
+
// Derived from the descriptor table rather than an exclusion list, so it cannot go stale; and
|
|
192
|
+
// it disappears on its own when the wrappers do, which is what this migration is for. The
|
|
193
|
+
// collision is exactly the single-word names — `TextInput` lowercases to `textinput`, which is
|
|
194
|
+
// no tag of ours.
|
|
195
|
+
if (COMPONENT_DESCRIPTORS[engineName] === undefined &&
|
|
196
|
+
isAnchorHostComponent(engineName)) {
|
|
86
197
|
const anchor = tagAnchorForDebug(createAnchor());
|
|
87
|
-
|
|
198
|
+
if (isDebug()) {
|
|
199
|
+
dlog(`angular createElement ${name} -> anchor host ${describeHost(anchor)}`);
|
|
200
|
+
}
|
|
88
201
|
return anchor;
|
|
89
202
|
}
|
|
90
203
|
const descriptor = descriptorFor(engineName);
|
|
91
|
-
|
|
92
|
-
|
|
204
|
+
// The tag, not just the resolved Fabric name: the host-behavior registry is keyed by the
|
|
205
|
+
// INTRINSIC tag (host-behavior.ts's own comment), and a node only ever carries the resolved
|
|
206
|
+
// name afterward. Omitting this argument means attachHostBehavior looks up the WRONG key
|
|
207
|
+
// (e.g. 'RCTView') and any registered behavior silently never attaches — Vue's renderer
|
|
208
|
+
// already passes this correctly (`createElement(descriptor.component, descriptor.isText, type)`).
|
|
209
|
+
const node = createElement(descriptor.component, descriptor.isText, engineName);
|
|
210
|
+
if (descriptor.isText)
|
|
211
|
+
seedTextDefaults(node);
|
|
212
|
+
if (isDebug()) {
|
|
213
|
+
dlog(`angular createElement ${name} -> ${descriptor.component}`);
|
|
214
|
+
}
|
|
93
215
|
return toPublicInstance(node);
|
|
94
216
|
}
|
|
95
217
|
createComment() {
|
|
@@ -98,7 +220,9 @@ export class SymbioteRenderer {
|
|
|
98
220
|
// Vue createComment path.
|
|
99
221
|
countAngular('nodesCreated');
|
|
100
222
|
const anchor = tagAnchorForDebug(createAnchor());
|
|
101
|
-
|
|
223
|
+
if (isDebug()) {
|
|
224
|
+
dlog(`Angular renderer createComment -> ${describeHost(anchor)}`);
|
|
225
|
+
}
|
|
102
226
|
return anchor;
|
|
103
227
|
}
|
|
104
228
|
createText(value) {
|
|
@@ -114,18 +238,19 @@ export class SymbioteRenderer {
|
|
|
114
238
|
countAngular('nodesInserted');
|
|
115
239
|
assertTextPlacement(newChild, parent);
|
|
116
240
|
if (isSurface(parent)) {
|
|
117
|
-
|
|
241
|
+
if (isDebug()) {
|
|
242
|
+
dlog(`Angular renderer appendChild parent=surface child=${describeHost(newChild)}`);
|
|
243
|
+
}
|
|
118
244
|
parent.appendChild(newChild);
|
|
119
245
|
}
|
|
120
246
|
else {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
else {
|
|
127
|
-
appendChild(parent, newChild);
|
|
247
|
+
// The engine's own `appendChild` already redirects through `parent.childHost` when the
|
|
248
|
+
// primitive's behavior builds one (ScrollView's content node, e.g.) — the adapter-side
|
|
249
|
+
// projection bridge this used to route through is gone with the ScrollView component.
|
|
250
|
+
if (isDebug()) {
|
|
251
|
+
dlog(`Angular renderer appendChild parent=${describeHost(parent)} child=${describeHost(newChild)}`);
|
|
128
252
|
}
|
|
253
|
+
appendChild(parent, newChild);
|
|
129
254
|
}
|
|
130
255
|
this.surface.requestCommit();
|
|
131
256
|
}
|
|
@@ -135,29 +260,22 @@ export class SymbioteRenderer {
|
|
|
135
260
|
countAngular('nodesInserted');
|
|
136
261
|
assertTextPlacement(newChild, parent);
|
|
137
262
|
if (isSurface(parent)) {
|
|
138
|
-
|
|
263
|
+
if (isDebug()) {
|
|
264
|
+
dlog(`Angular renderer insertBefore parent=surface child=${describeHost(newChild)} ref=${refChild ? describeHost(refChild) : 'null'}`);
|
|
265
|
+
}
|
|
139
266
|
if (refChild)
|
|
140
267
|
parent.insertBefore(newChild, refChild);
|
|
141
268
|
else
|
|
142
269
|
parent.appendChild(newChild);
|
|
143
270
|
}
|
|
144
271
|
else {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
if (projection !== undefined) {
|
|
148
|
-
projection.insertProjectedChild(parent, newChild, refChild, (target, child, before) => {
|
|
149
|
-
if (before === undefined)
|
|
150
|
-
appendChild(target, child);
|
|
151
|
-
else
|
|
152
|
-
insertBefore(target, child, before);
|
|
153
|
-
});
|
|
272
|
+
if (isDebug()) {
|
|
273
|
+
dlog(`Angular renderer insertBefore parent=${describeHost(parent)} child=${describeHost(newChild)} ref=${refChild ? describeHost(refChild) : 'null'}`);
|
|
154
274
|
}
|
|
155
|
-
|
|
275
|
+
if (refChild)
|
|
156
276
|
insertBefore(parent, newChild, refChild);
|
|
157
|
-
|
|
158
|
-
else {
|
|
277
|
+
else
|
|
159
278
|
appendChild(parent, newChild);
|
|
160
|
-
}
|
|
161
279
|
}
|
|
162
280
|
this.surface.requestCommit();
|
|
163
281
|
}
|
|
@@ -166,17 +284,16 @@ export class SymbioteRenderer {
|
|
|
166
284
|
// surface.children with no parent). Angular's `parent` arg is ignored in favor of the
|
|
167
285
|
// authoritative link, mirroring the Vue adapter's remove.
|
|
168
286
|
countAngular('nodesRemoved');
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
if (!wasProjected) {
|
|
174
|
-
const parent = oldChild.parent;
|
|
175
|
-
if (parent !== undefined)
|
|
176
|
-
removeChild(parent, oldChild);
|
|
177
|
-
else
|
|
178
|
-
this.surface.removeChild(oldChild);
|
|
287
|
+
if (isDebug()) {
|
|
288
|
+
const angularParent = _parent !== null ? describeHost(_parent) : 'null';
|
|
289
|
+
const retainedParent = oldChild.parent !== undefined ? describeHost(oldChild.parent) : 'none';
|
|
290
|
+
dlog(`Angular renderer removeChild angularParent=${angularParent} retainedParent=${retainedParent} child=${describeHost(oldChild)}`);
|
|
179
291
|
}
|
|
292
|
+
const parent = oldChild.parent;
|
|
293
|
+
if (parent !== undefined)
|
|
294
|
+
removeChild(parent, oldChild);
|
|
295
|
+
else
|
|
296
|
+
this.surface.removeChild(oldChild);
|
|
180
297
|
this.surface.requestCommit();
|
|
181
298
|
}
|
|
182
299
|
// FlatList/VirtualizedList cells are content projected into a component host (our
|
|
@@ -212,7 +329,7 @@ export class SymbioteRenderer {
|
|
|
212
329
|
return;
|
|
213
330
|
countAngular('rendererWrites');
|
|
214
331
|
noteAngularWrite(name);
|
|
215
|
-
routeProp(el, name, value);
|
|
332
|
+
routeProp(el, aliasedPropName(name), value);
|
|
216
333
|
this.surface.requestCommit();
|
|
217
334
|
}
|
|
218
335
|
removeAttribute(el, name) {
|
|
@@ -220,7 +337,8 @@ export class SymbioteRenderer {
|
|
|
220
337
|
return;
|
|
221
338
|
countAngular('rendererWrites');
|
|
222
339
|
noteAngularWrite(name);
|
|
223
|
-
|
|
340
|
+
const aliased = aliasedPropName(name);
|
|
341
|
+
routeProp(el, aliased, textDefaultFor(el, aliased));
|
|
224
342
|
this.surface.requestCommit();
|
|
225
343
|
}
|
|
226
344
|
// Ivy compiles every class= / [class.foo] / [ngClass] form down to per-token addClass/
|
|
@@ -288,7 +406,8 @@ export class SymbioteRenderer {
|
|
|
288
406
|
return;
|
|
289
407
|
countAngular('rendererWrites');
|
|
290
408
|
noteAngularWrite(name);
|
|
291
|
-
|
|
409
|
+
const aliased = aliasedPropName(name);
|
|
410
|
+
routeProp(el, aliased, value === undefined ? textDefaultFor(el, aliased) : value);
|
|
292
411
|
this.surface.requestCommit();
|
|
293
412
|
}
|
|
294
413
|
setValue(node, value) {
|
|
@@ -296,7 +415,9 @@ export class SymbioteRenderer {
|
|
|
296
415
|
noteAngularWrite('#text');
|
|
297
416
|
// A useful permanent seam: text mutations are low-frequency and the one place a stale
|
|
298
417
|
// `{{binding}}` (a change-detection gap) shows up as "the setValue never fired".
|
|
299
|
-
|
|
418
|
+
if (isDebug()) {
|
|
419
|
+
dlog(`Angular renderer setValue "${value}" on ${describeHost(node)}`);
|
|
420
|
+
}
|
|
300
421
|
setText(node, value);
|
|
301
422
|
this.surface.requestCommit();
|
|
302
423
|
}
|
|
@@ -307,7 +428,36 @@ export class SymbioteRenderer {
|
|
|
307
428
|
listen(target, eventName, callback) {
|
|
308
429
|
if (!isSymbioteNode(target))
|
|
309
430
|
return () => { };
|
|
310
|
-
|
|
431
|
+
// `[(value)]` desugars to `(valueChange)`, which is the spelling every Angular template writes
|
|
432
|
+
// for a Switch or a TextInput. On the COMPONENT path it is an `@Output()` the wrapper derives
|
|
433
|
+
// from the raw `change` payload; on a LOWERED element there is no component, and registering
|
|
434
|
+
// `valueChange` as an engine event would wait forever for a Fabric event of that name.
|
|
435
|
+
//
|
|
436
|
+
// The lowered path already carries the same fold under RN's own spelling: both behaviors call
|
|
437
|
+
// `node.props.onValueChange(event)` — a plain function PROP, not an event
|
|
438
|
+
// (`behaviors/switch.ts`, `behaviors/text-input.ts`), with `text`/`value` carried as a FIELD on
|
|
439
|
+
// the event object rather than a second argument (Svelte forces every individual `on*` prop
|
|
440
|
+
// through a native listener that calls with exactly one argument, always a real object). So
|
|
441
|
+
// Angular's own `[(value)]` sugar needs one extra step its React/Vue/Solid counterparts do not:
|
|
442
|
+
// unwrap that field back to a bare value before handing it to Angular's callback, or `text =
|
|
443
|
+
// $event` would assign the whole event object instead of the typed string/boolean.
|
|
444
|
+
if (eventName === VALUE_CHANGE_EVENT) {
|
|
445
|
+
const forwardValue = withChangeDetection(target, (event) => {
|
|
446
|
+
if (isSymbioteEvent(event)) {
|
|
447
|
+
if ('text' in event)
|
|
448
|
+
return callback(event.text);
|
|
449
|
+
if ('value' in event)
|
|
450
|
+
return callback(event.value);
|
|
451
|
+
}
|
|
452
|
+
return callback(event);
|
|
453
|
+
});
|
|
454
|
+
routeProp(target, VALUE_CHANGE_PROP, forwardValue);
|
|
455
|
+
return () => routeProp(target, VALUE_CHANGE_PROP, undefined);
|
|
456
|
+
}
|
|
457
|
+
const listener = READ_BACK_EVENTS.has(eventName)
|
|
458
|
+
? withChangeDetection(target, callback)
|
|
459
|
+
: callback;
|
|
460
|
+
setEventListener(target, eventName, listener);
|
|
311
461
|
return () => setEventListener(target, eventName, undefined);
|
|
312
462
|
}
|
|
313
463
|
}
|
|
@@ -323,14 +473,11 @@ export class SymbioteRendererFactory {
|
|
|
323
473
|
createRenderer(_hostElement, _type) {
|
|
324
474
|
return (this.renderer ??= new SymbioteRenderer(this.surface));
|
|
325
475
|
}
|
|
326
|
-
// Not commit coalescing (requestCommit owns that) —
|
|
327
|
-
//
|
|
328
|
-
// the
|
|
329
|
-
// commit is still only queued. Sticky projection reconciles are batched to here for both reasons;
|
|
330
|
-
// see flushScrollViewProjections.
|
|
476
|
+
// Not commit coalescing (requestCommit owns that) — a per-CD-pass counter only, now that the
|
|
477
|
+
// ScrollView projection bridge this used to also flush is gone (`../register.ts`'s
|
|
478
|
+
// `registerScrollViewBehavior` owns the content node and the sticky seam for every adapter).
|
|
331
479
|
end() {
|
|
332
480
|
countAngular('cdPasses');
|
|
333
|
-
flushScrollViewProjections();
|
|
334
481
|
}
|
|
335
482
|
}
|
|
336
483
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderer/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// The two names Angular's `[(value)]` sugar rides on, in a dependency-free LEAF so `elements.ts`
|
|
2
|
+
// can name the event without importing the require-cyclic `renderer/index.ts` (same reasoning as
|
|
3
|
+
// `anchor-host-registry.ts`).
|
|
4
|
+
//
|
|
5
|
+
// `[(value)]` desugars to a `(valueChange)` binding, which is no Fabric event — the renderer
|
|
6
|
+
// translates it to the `onValueChange` PROP both behaviors already call.
|
|
7
|
+
export const VALUE_CHANGE_EVENT = 'valueChange';
|
|
8
|
+
export const VALUE_CHANGE_PROP = 'onValueChange';
|
|
9
|
+
//# sourceMappingURL=value-change.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-change.js","sourceRoot":"","sources":["../../../src/renderer/value-change.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,iGAAiG;AACjG,8BAA8B;AAC9B,EAAE;AACF,6FAA6F;AAC7F,yEAAyE;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAChD,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC"}
|
package/metro-config.cjs
CHANGED
|
@@ -17,7 +17,11 @@
|
|
|
17
17
|
const fs = require('node:fs');
|
|
18
18
|
const path = require('node:path');
|
|
19
19
|
|
|
20
|
-
function withSymbioteAngularMetroConfig(
|
|
20
|
+
function withSymbioteAngularMetroConfig(
|
|
21
|
+
defaultConfig,
|
|
22
|
+
projectRoot,
|
|
23
|
+
{ outDir = 'build/angular' } = {},
|
|
24
|
+
) {
|
|
21
25
|
const buildRoot = path.join(projectRoot, ...outDir.split('/'));
|
|
22
26
|
|
|
23
27
|
return {
|
|
@@ -25,14 +29,28 @@ function withSymbioteAngularMetroConfig(defaultConfig, projectRoot, { outDir = '
|
|
|
25
29
|
// Teach Metro that a style file is a source file (the transformer above turns it into a
|
|
26
30
|
// module). scss/sass/less/styl are optional preprocessor sources, reduced to plain CSS
|
|
27
31
|
// before the same transformer runs.
|
|
28
|
-
sourceExts: [
|
|
32
|
+
sourceExts: [
|
|
33
|
+
...defaultConfig.resolver.sourceExts,
|
|
34
|
+
'css',
|
|
35
|
+
'scss',
|
|
36
|
+
'sass',
|
|
37
|
+
'less',
|
|
38
|
+
'styl',
|
|
39
|
+
],
|
|
29
40
|
resolveRequest: (context, moduleName, platform) => {
|
|
30
41
|
const isRelativeStyleImport =
|
|
31
|
-
/^\.\.?\//.test(moduleName) &&
|
|
42
|
+
/^\.\.?\//.test(moduleName) &&
|
|
43
|
+
/\.(css|scss|sass|less|styl)$/.test(moduleName);
|
|
32
44
|
if (isRelativeStyleImport) {
|
|
33
45
|
const originDir = path.dirname(context.originModulePath);
|
|
34
|
-
if (
|
|
35
|
-
|
|
46
|
+
if (
|
|
47
|
+
originDir === buildRoot ||
|
|
48
|
+
originDir.startsWith(buildRoot + path.sep)
|
|
49
|
+
) {
|
|
50
|
+
const sourceDir = path.join(
|
|
51
|
+
projectRoot,
|
|
52
|
+
path.relative(buildRoot, originDir),
|
|
53
|
+
);
|
|
36
54
|
const sourceFile = path.resolve(sourceDir, moduleName);
|
|
37
55
|
if (fs.existsSync(sourceFile)) {
|
|
38
56
|
return { type: 'sourceFile', filePath: sourceFile };
|
package/metro-css-parser.cjs
CHANGED
|
@@ -10,4 +10,5 @@
|
|
|
10
10
|
// createCssMetroTransformer is a factory, not a ready transformer — Metro's
|
|
11
11
|
// babelTransformerPath needs the actual {transform, getCacheKey} object it returns,
|
|
12
12
|
// not the css-parser package barrel.
|
|
13
|
-
module.exports =
|
|
13
|
+
module.exports =
|
|
14
|
+
require('@symbiote-native/css-parser').createCssMetroTransformer();
|
package/package.json
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@symbiote-native/angular",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "SymbioteNative's Angular adapter — a Renderer2/RendererFactory2 with DOM-less bootstrap driving real native iOS/Android views through the same engine as the other adapters.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"react-native",
|
|
7
|
+
"symbiote-native",
|
|
8
|
+
"angular",
|
|
9
|
+
"renderer2",
|
|
10
|
+
"fabric",
|
|
11
|
+
"cross-platform",
|
|
12
|
+
"ios",
|
|
13
|
+
"android"
|
|
14
|
+
],
|
|
5
15
|
"license": "MIT",
|
|
6
16
|
"repository": {
|
|
7
17
|
"type": "git",
|
|
@@ -56,14 +66,14 @@
|
|
|
56
66
|
"dependencies": {
|
|
57
67
|
"@angular/compiler-cli": "~22.0.8",
|
|
58
68
|
"@react-native/typescript-config": "0.86.0",
|
|
59
|
-
"@symbiote-native/components": "0.
|
|
60
|
-
"@symbiote-native/css-parser": "0.
|
|
69
|
+
"@symbiote-native/components": "2.0.0",
|
|
70
|
+
"@symbiote-native/css-parser": "0.5.0"
|
|
61
71
|
},
|
|
62
72
|
"peerDependencies": {
|
|
63
73
|
"@angular/core": ">=20",
|
|
64
74
|
"@angular/forms": ">=20",
|
|
65
|
-
"
|
|
66
|
-
"
|
|
75
|
+
"react-native": ">=0.86",
|
|
76
|
+
"@symbiote-native/engine": "^0.5.0"
|
|
67
77
|
},
|
|
68
78
|
"devDependencies": {
|
|
69
79
|
"@angular/compiler": "~22.0.8",
|
|
@@ -73,8 +83,8 @@
|
|
|
73
83
|
"@types/babel__core": "^7.20.5",
|
|
74
84
|
"@types/node": "^26.0.0",
|
|
75
85
|
"typescript": "~6.0.0",
|
|
76
|
-
"@symbiote-native/engine": "0.
|
|
77
|
-
"@symbiote-native/test-utils": "0.
|
|
86
|
+
"@symbiote-native/engine": "0.5.0",
|
|
87
|
+
"@symbiote-native/test-utils": "0.3.0"
|
|
78
88
|
},
|
|
79
89
|
"scripts": {
|
|
80
90
|
"clean": "rm -rf build",
|
|
@@ -34,7 +34,6 @@ const ANCHOR_HOST_COMPONENTS: Set<string> = new Set(
|
|
|
34
34
|
// view instead (a real device-visible bug, not a silent no-op). This Set holds only
|
|
35
35
|
// adapter/engine-owned selectors; app code and third-party packages self-register their own
|
|
36
36
|
// composed components through registerComposedComponent instead of being hardcoded here.
|
|
37
|
-
'ActivityIndicator',
|
|
38
37
|
'Button',
|
|
39
38
|
'FlatList',
|
|
40
39
|
'AnimatedView',
|
|
@@ -48,28 +47,15 @@ const ANCHOR_HOST_COMPONENTS: Set<string> = new Set(
|
|
|
48
47
|
'symbiote-descriptor-outlet',
|
|
49
48
|
'tunnel-out',
|
|
50
49
|
'Image',
|
|
51
|
-
'ImageBackground',
|
|
52
|
-
'InputAccessoryView',
|
|
53
50
|
'KeyboardAvoidingView',
|
|
54
51
|
'Modal',
|
|
55
|
-
'Pressable',
|
|
56
|
-
'RefreshControl',
|
|
57
|
-
'SafeAreaView',
|
|
58
|
-
'ScrollView',
|
|
59
|
-
'ScrollViewStickyHeader',
|
|
60
52
|
'SectionList',
|
|
61
|
-
'
|
|
53
|
+
'sticky-header',
|
|
62
54
|
'StatusBar',
|
|
63
55
|
'Switch',
|
|
64
56
|
'Text',
|
|
65
|
-
'TextInput',
|
|
66
|
-
'TouchableHighlight',
|
|
67
|
-
'TouchableNativeFeedback',
|
|
68
|
-
'TouchableOpacity',
|
|
69
|
-
'TouchableWithoutFeedback',
|
|
70
57
|
'VirtualizedList',
|
|
71
58
|
'VirtualizedSectionList',
|
|
72
|
-
'symbiote-pressable',
|
|
73
59
|
].map(selector => selector.toLowerCase()),
|
|
74
60
|
);
|
|
75
61
|
|