@symbiote-native/navigation 3.0.0 → 4.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 +10 -2
- package/build/angular/drawer/index.js +2 -2
- package/build/angular/tabs/index.js +5 -5
- package/build/core/render-drawer.js +4 -4
- package/build/core/render-tabs.js +5 -5
- package/build/react/drawer/index.js +1 -1
- package/build/react/tabs/index.js +2 -2
- package/build/solid/drawer/index.js +17 -14
- package/build/solid/tabs/index.js +3 -3
- package/build/svelte/drawer/index.svelte +23 -24
- package/build/svelte/registry-host.js +2 -2
- package/build/svelte/stack/index.svelte +5 -5
- package/build/svelte/tabs/index.svelte +9 -9
- package/build/vue/drawer/index.js +1 -1
- package/build/vue/tabs/index.js +3 -3
- package/build-ngc/angular/drawer/index.js +5 -5
- package/build-ngc/angular/drawer/index.js.map +1 -1
- package/build-ngc/angular/tabs/index.js +10 -10
- package/build-ngc/angular/tabs/index.js.map +1 -1
- package/build-ngc/core/render-drawer.js +4 -4
- package/build-ngc/core/render-drawer.js.map +1 -1
- package/build-ngc/core/render-tabs.js +5 -5
- package/build-ngc/core/render-tabs.js.map +1 -1
- package/package.json +14 -14
- package/src/angular/drawer/index.ts +2 -2
- package/src/angular/tabs/index.ts +5 -5
- package/src/core/render-drawer.ts +4 -4
- package/src/core/render-tabs.ts +5 -7
- package/src/react/drawer/index.ts +1 -1
- package/src/react/tabs/index.ts +3 -3
- package/src/solid/drawer/index.ts +18 -20
- package/src/solid/tabs/index.ts +3 -3
- package/src/svelte/drawer/index.svelte +23 -24
- package/src/svelte/registry-host.ts +2 -2
- package/src/svelte/stack/index.svelte +5 -5
- package/src/svelte/tabs/index.svelte +9 -9
- package/src/vue/drawer/index.ts +1 -1
- package/src/vue/tabs/index.ts +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/angular/tabs/index.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,kGAAkG;AAClG,kGAAkG;AAClG,8FAA8F;AAC9F,+FAA+F;AAC/F,+FAA+F;AAC/F,kGAAkG;AAClG,6DAA6D;AAC7D
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/angular/tabs/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,14 +68,14 @@ function panelBaseStyle(options) {
|
|
|
68
68
|
}
|
|
69
69
|
export function renderDrawer(view, options) {
|
|
70
70
|
const type = resolveDrawerType(options);
|
|
71
|
-
const content = el('
|
|
72
|
-
const panel = el('
|
|
71
|
+
const content = el('view', { ...view.contentPassthrough, style: CONTENT_STYLE }, []);
|
|
72
|
+
const panel = el('view', {
|
|
73
73
|
...view.panelPassthrough,
|
|
74
74
|
style: [panelBaseStyle(options), view.drawerStyle],
|
|
75
75
|
}, []);
|
|
76
76
|
const slots = { content, panel };
|
|
77
77
|
if (isDrawerOverlayVisible(options)) {
|
|
78
|
-
slots.overlay = el('
|
|
78
|
+
slots.overlay = el('view', {
|
|
79
79
|
...view.overlayPassthrough,
|
|
80
80
|
style: [OVERLAY_BASE_STYLE, { backgroundColor: view.overlayColor }],
|
|
81
81
|
}, []);
|
|
@@ -87,6 +87,6 @@ export function renderDrawer(view, options) {
|
|
|
87
87
|
return acc;
|
|
88
88
|
}, []);
|
|
89
89
|
const rootStyle = type === 'permanent' ? { ...ROOT_STYLE, flexDirection: 'row' } : ROOT_STYLE;
|
|
90
|
-
return el('
|
|
90
|
+
return el('view', { style: rootStyle }, children);
|
|
91
91
|
}
|
|
92
92
|
//# sourceMappingURL=render-drawer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-drawer.js","sourceRoot":"","sources":["../../src/core/render-drawer.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,4FAA4F;AAC5F,kGAAkG;AAClG,8FAA8F;AAC9F,gGAAgG;AAChG,mGAAmG;AACnG,4FAA4F;AAC5F,gEAAgE;AAChE,EAAE;AACF,iGAAiG;AACjG,gGAAgG;AAChG,iGAAiG;AACjG,4FAA4F;AAC5F,uFAAuF;AACvF,kCAAkC;AAElC,OAAO,EAAE,EAAE,EAAoB,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,kBAAkB,CAAC;AAI1B,iFAAiF;AACjF,8FAA8F;AAC9F,yFAAyF;AACzF,kGAAkG;AAClG,6FAA6F;AAC7F,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAC9B,OAAuB;IAEvB,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC9B,KAAK,OAAO;YACV,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACzC,KAAK,WAAW;YACd,OAAO,qBAAqB,CAAC,OAAO,CAAC,KAAK,MAAM;gBAC9C,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC;gBACtB,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3B,KAAK,OAAO,CAAC;QACb;YACE,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAUD,MAAM,UAAU,GAAyB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACrD,MAAM,aAAa,GAAyB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACxD,6FAA6F;AAC7F,kFAAkF;AAClF,MAAM,kBAAkB,GAAyB;IAC/C,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,MAAM,qCAAqC,GAAG,OAAO,CAAC;AAEtD,SAAS,cAAc,CAAC,OAAuB;IAC7C,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,mFAAmF;QACnF,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,qCAAqC,EAAE,CAAC;IAC3E,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,CAAC;QACN,MAAM,EAAE,CAAC;QACT,KAAK;QACL,eAAe,EAAE,qCAAqC;QACtD,CAAC,IAAI,CAAC,EAAE,CAAC;KACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,IAAsB,EACtB,OAAuB;IAEvB,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,EAAE,CAChB,
|
|
1
|
+
{"version":3,"file":"render-drawer.js","sourceRoot":"","sources":["../../src/core/render-drawer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// TabBar: the render half (framework-agnostic). A bottom-tabs bar is a PURE-JS UI - unlike
|
|
2
2
|
// Stack, which drives real native RNSScreen/RNSScreenStack views, this paints ordinary
|
|
3
|
-
// `
|
|
3
|
+
// `view`/`text` primitives, so it needs no react-native-screens ViewConfig
|
|
4
4
|
// work at all (see the task brief in packages/navigation's skill notes). Mirrors renderSwitch's
|
|
5
5
|
// shape: pure prop-driven functions building a `Descriptor` tree from pre-resolved view props;
|
|
6
6
|
// the adapter supplies focus state, tint-color resolution inputs, and the press wiring via
|
|
@@ -72,7 +72,7 @@ function renderIcon(icon, color) {
|
|
|
72
72
|
function renderBadge(badge) {
|
|
73
73
|
if (badge === undefined)
|
|
74
74
|
return undefined;
|
|
75
|
-
return el('
|
|
75
|
+
return el('view', { style: BADGE_STYLE }, [
|
|
76
76
|
txt({ style: BADGE_TEXT_STYLE }, [String(badge)]),
|
|
77
77
|
]);
|
|
78
78
|
}
|
|
@@ -87,12 +87,12 @@ export function renderTabBarItem(item) {
|
|
|
87
87
|
iconChildren.push(badge);
|
|
88
88
|
const children = [];
|
|
89
89
|
if (iconChildren.length > 0)
|
|
90
|
-
children.push(el('
|
|
90
|
+
children.push(el('view', { style: ICON_WRAPPER_STYLE }, iconChildren));
|
|
91
91
|
children.push(txt({ style: { color, fontSize: TAB_LABEL_FONT_SIZE } }, [item.label]));
|
|
92
|
-
return el('
|
|
92
|
+
return el('view', { ...item.passthrough, style: TAB_ITEM_STYLE, accessibilityRole: 'tab' }, children, item.key);
|
|
93
93
|
}
|
|
94
94
|
export function renderTabBar(view) {
|
|
95
95
|
const items = view.items.map(renderTabBarItem);
|
|
96
|
-
return el('
|
|
96
|
+
return el('view', { ...view.passthrough, style: [TAB_BAR_STYLE, view.style] }, items);
|
|
97
97
|
}
|
|
98
98
|
//# sourceMappingURL=render-tabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-tabs.js","sourceRoot":"","sources":["../../src/core/render-tabs.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,uFAAuF;AACvF,
|
|
1
|
+
{"version":3,"file":"render-tabs.js","sourceRoot":"","sources":["../../src/core/render-tabs.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@symbiote-native/navigation",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Native stack navigator for SymbioteNative, built on react-native-screens' native view primitives (RNSScreen/RNSScreenStack) — one framework-agnostic core, reachable from the React, Vue, Svelte, Solid, and Angular adapters.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native",
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
},
|
|
161
161
|
"dependencies": {
|
|
162
162
|
"react-native-screens": "4.26.0",
|
|
163
|
-
"@symbiote-native/components": "
|
|
163
|
+
"@symbiote-native/components": "2.0.0"
|
|
164
164
|
},
|
|
165
165
|
"peerDependencies": {
|
|
166
166
|
"@angular/common": ">=20",
|
|
@@ -171,12 +171,12 @@
|
|
|
171
171
|
"solid-js": ">=1.9.0",
|
|
172
172
|
"svelte": ">=5.56.0",
|
|
173
173
|
"vue": ">=3.5.0",
|
|
174
|
-
"@symbiote-native/angular": "^
|
|
175
|
-
"@symbiote-native/engine": "^0.
|
|
176
|
-
"@symbiote-native/react": "^
|
|
177
|
-
"@symbiote-native/solid": "^
|
|
178
|
-
"@symbiote-native/svelte": "^
|
|
179
|
-
"@symbiote-native/vue": "^
|
|
174
|
+
"@symbiote-native/angular": "^2.0.0",
|
|
175
|
+
"@symbiote-native/engine": "^0.5.0",
|
|
176
|
+
"@symbiote-native/react": "^2.0.0",
|
|
177
|
+
"@symbiote-native/solid": "^2.0.0",
|
|
178
|
+
"@symbiote-native/svelte": "^2.0.0",
|
|
179
|
+
"@symbiote-native/vue": "^2.0.0"
|
|
180
180
|
},
|
|
181
181
|
"peerDependenciesMeta": {
|
|
182
182
|
"@angular/common": {
|
|
@@ -228,13 +228,13 @@
|
|
|
228
228
|
"solid-js": "^1.9.14",
|
|
229
229
|
"svelte": "^5.56.0",
|
|
230
230
|
"typescript": "~6.0.0",
|
|
231
|
-
"@symbiote-native/angular": "
|
|
232
|
-
"@symbiote-native/engine": "0.
|
|
233
|
-
"@symbiote-native/react": "
|
|
234
|
-
"@symbiote-native/solid": "
|
|
235
|
-
"@symbiote-native/svelte": "
|
|
231
|
+
"@symbiote-native/angular": "2.0.0",
|
|
232
|
+
"@symbiote-native/engine": "0.5.0",
|
|
233
|
+
"@symbiote-native/react": "2.0.0",
|
|
234
|
+
"@symbiote-native/solid": "2.0.0",
|
|
235
|
+
"@symbiote-native/svelte": "2.0.0",
|
|
236
236
|
"@symbiote-native/test-utils": "0.3.0",
|
|
237
|
-
"@symbiote-native/vue": "
|
|
237
|
+
"@symbiote-native/vue": "2.0.0"
|
|
238
238
|
},
|
|
239
239
|
"scripts": {
|
|
240
240
|
"clean": "rm -rf build-ngc",
|
|
@@ -131,7 +131,7 @@ let drawerInstanceCounter = 0;
|
|
|
131
131
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
132
132
|
template: `
|
|
133
133
|
@if (state(); as currentState) {
|
|
134
|
-
<
|
|
134
|
+
<view [style]="rootStyle()" [symbioteHostProps]="rootPanHandlers()">
|
|
135
135
|
@for (slot of slotOrder(); track slot) {
|
|
136
136
|
@switch (slot) {
|
|
137
137
|
@case ('content') {
|
|
@@ -175,7 +175,7 @@ let drawerInstanceCounter = 0;
|
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
|
-
</
|
|
178
|
+
</view>
|
|
179
179
|
}
|
|
180
180
|
`,
|
|
181
181
|
})
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
// implements ITabNavigatorHandle`) - plus the descriptor bridge (`symbiote-descriptor-outlet`,
|
|
7
7
|
// `@symbiote-native/angular`) for the tab-bar leaf, exactly like Stack bridges its header config.
|
|
8
8
|
// Unlike Stack, a bottom-tabs bar is a PURE-JS UI: it paints
|
|
9
|
-
// ordinary `
|
|
9
|
+
// ordinary `view`/`text` primitives via the shared render fn, so there is no
|
|
10
10
|
// react-native-screens ViewConfig to register - Tab needs no `../register` import. Every tag this
|
|
11
11
|
// template names (`View`, `symbiote-descriptor-outlet`) is a REAL imported Angular component (no
|
|
12
12
|
// raw non-dashed native tag names the way stack.ts needs `NO_ERRORS_SCHEMA` for), so no loosened
|
|
@@ -74,8 +74,8 @@ let tabInstanceCounter = 0;
|
|
|
74
74
|
],
|
|
75
75
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
76
76
|
template: `
|
|
77
|
-
<
|
|
78
|
-
<
|
|
77
|
+
<view [style]="rootStyle">
|
|
78
|
+
<view [style]="contentStyle">
|
|
79
79
|
@if (focusedRoute(); as route) {
|
|
80
80
|
@if (componentForRoute(route); as component) {
|
|
81
81
|
<ng-container
|
|
@@ -87,9 +87,9 @@ let tabInstanceCounter = 0;
|
|
|
87
87
|
</ng-container>
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
|
-
</
|
|
90
|
+
</view>
|
|
91
91
|
<symbiote-descriptor-outlet [node]="tabBarDescriptor()" />
|
|
92
|
-
</
|
|
92
|
+
</view>
|
|
93
93
|
`,
|
|
94
94
|
})
|
|
95
95
|
export class Tab implements AfterContentInit, OnDestroy, ITabNavigatorHandle {
|
|
@@ -97,12 +97,12 @@ export function renderDrawer(
|
|
|
97
97
|
): IDescriptor {
|
|
98
98
|
const type = resolveDrawerType(options);
|
|
99
99
|
const content = el(
|
|
100
|
-
'
|
|
100
|
+
'view',
|
|
101
101
|
{ ...view.contentPassthrough, style: CONTENT_STYLE },
|
|
102
102
|
[],
|
|
103
103
|
);
|
|
104
104
|
const panel = el(
|
|
105
|
-
'
|
|
105
|
+
'view',
|
|
106
106
|
{
|
|
107
107
|
...view.panelPassthrough,
|
|
108
108
|
style: [panelBaseStyle(options), view.drawerStyle],
|
|
@@ -113,7 +113,7 @@ export function renderDrawer(
|
|
|
113
113
|
const slots: Partial<Record<IDrawerSlot, IDescriptor>> = { content, panel };
|
|
114
114
|
if (isDrawerOverlayVisible(options)) {
|
|
115
115
|
slots.overlay = el(
|
|
116
|
-
'
|
|
116
|
+
'view',
|
|
117
117
|
{
|
|
118
118
|
...view.overlayPassthrough,
|
|
119
119
|
style: [OVERLAY_BASE_STYLE, { backgroundColor: view.overlayColor }],
|
|
@@ -134,5 +134,5 @@ export function renderDrawer(
|
|
|
134
134
|
const rootStyle: IViewStyle =
|
|
135
135
|
type === 'permanent' ? { ...ROOT_STYLE, flexDirection: 'row' } : ROOT_STYLE;
|
|
136
136
|
|
|
137
|
-
return el('
|
|
137
|
+
return el('view', { style: rootStyle }, children);
|
|
138
138
|
}
|
package/src/core/render-tabs.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// TabBar: the render half (framework-agnostic). A bottom-tabs bar is a PURE-JS UI - unlike
|
|
2
2
|
// Stack, which drives real native RNSScreen/RNSScreenStack views, this paints ordinary
|
|
3
|
-
// `
|
|
3
|
+
// `view`/`text` primitives, so it needs no react-native-screens ViewConfig
|
|
4
4
|
// work at all (see the task brief in packages/navigation's skill notes). Mirrors renderSwitch's
|
|
5
5
|
// shape: pure prop-driven functions building a `Descriptor` tree from pre-resolved view props;
|
|
6
6
|
// the adapter supplies focus state, tint-color resolution inputs, and the press wiring via
|
|
@@ -115,7 +115,7 @@ function renderBadge(
|
|
|
115
115
|
badge: string | number | undefined,
|
|
116
116
|
): IDescriptor | undefined {
|
|
117
117
|
if (badge === undefined) return undefined;
|
|
118
|
-
return el('
|
|
118
|
+
return el('view', { style: BADGE_STYLE }, [
|
|
119
119
|
txt({ style: BADGE_TEXT_STYLE }, [String(badge)]),
|
|
120
120
|
]);
|
|
121
121
|
}
|
|
@@ -131,15 +131,13 @@ export function renderTabBarItem(item: ITabBarItemView): IDescriptor {
|
|
|
131
131
|
|
|
132
132
|
const children: IDescriptor[] = [];
|
|
133
133
|
if (iconChildren.length > 0)
|
|
134
|
-
children.push(
|
|
135
|
-
el('symbiote-view', { style: ICON_WRAPPER_STYLE }, iconChildren),
|
|
136
|
-
);
|
|
134
|
+
children.push(el('view', { style: ICON_WRAPPER_STYLE }, iconChildren));
|
|
137
135
|
children.push(
|
|
138
136
|
txt({ style: { color, fontSize: TAB_LABEL_FONT_SIZE } }, [item.label]),
|
|
139
137
|
);
|
|
140
138
|
|
|
141
139
|
return el(
|
|
142
|
-
'
|
|
140
|
+
'view',
|
|
143
141
|
{ ...item.passthrough, style: TAB_ITEM_STYLE, accessibilityRole: 'tab' },
|
|
144
142
|
children,
|
|
145
143
|
item.key,
|
|
@@ -149,7 +147,7 @@ export function renderTabBarItem(item: ITabBarItemView): IDescriptor {
|
|
|
149
147
|
export function renderTabBar(view: ITabBarViewProps): IDescriptor {
|
|
150
148
|
const items = view.items.map(renderTabBarItem);
|
|
151
149
|
return el(
|
|
152
|
-
'
|
|
150
|
+
'view',
|
|
153
151
|
{ ...view.passthrough, style: [TAB_BAR_STYLE, view.style] },
|
|
154
152
|
items,
|
|
155
153
|
);
|
|
@@ -504,7 +504,7 @@ const DrawerImpl = forwardRef<IDrawerNavigatorHandle, IDrawerProps>(
|
|
|
504
504
|
.filter((element): element is ReactElement => element !== null);
|
|
505
505
|
|
|
506
506
|
return createElement(
|
|
507
|
-
'
|
|
507
|
+
'view',
|
|
508
508
|
{ style: root.props.style, ...panResponder.panHandlers },
|
|
509
509
|
...drawerChildren,
|
|
510
510
|
);
|
package/src/react/tabs/index.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// router state, useId for route-key generation, useImperativeHandle for the jumpTo/setParams
|
|
5
5
|
// handle - plus the descriptor bridge for the tab-bar leaf, exactly like Stack bridges its header
|
|
6
6
|
// config (react/stack.ts). Unlike Stack, a bottom-tabs bar is a PURE-JS UI: it paints ordinary
|
|
7
|
-
// `
|
|
7
|
+
// `view`/`text` primitives via the shared render fn, so there is no
|
|
8
8
|
// react-native-screens ViewConfig to register here - Tab needs no `../register` import.
|
|
9
9
|
|
|
10
10
|
import {
|
|
@@ -256,9 +256,9 @@ const TabImpl = forwardRef<ITabNavigatorHandle, ITabProps>(
|
|
|
256
256
|
: null;
|
|
257
257
|
|
|
258
258
|
return createElement(
|
|
259
|
-
'
|
|
259
|
+
'view',
|
|
260
260
|
{ style: TAB_ROOT_STYLE },
|
|
261
|
-
createElement('
|
|
261
|
+
createElement('view', { style: TAB_CONTENT_STYLE }, content),
|
|
262
262
|
tabBar,
|
|
263
263
|
);
|
|
264
264
|
},
|
|
@@ -29,13 +29,11 @@ import {
|
|
|
29
29
|
createEffect,
|
|
30
30
|
createMemo,
|
|
31
31
|
createSignal,
|
|
32
|
-
mergeProps,
|
|
33
32
|
onCleanup,
|
|
34
33
|
untrack,
|
|
35
34
|
} from 'solid-js';
|
|
36
35
|
import type { Accessor } from 'solid-js';
|
|
37
36
|
import { Animated, createWindowDimensions } from '@symbiote-native/solid';
|
|
38
|
-
import type { IAnimatedComponentProps } from '@symbiote-native/solid';
|
|
39
37
|
import type { JSX } from '@symbiote-native/solid/jsx-runtime';
|
|
40
38
|
// createComponent from solid-js, insert from the renderer - see stack/index.ts's note.
|
|
41
39
|
import { createComponent } from 'solid-js';
|
|
@@ -509,25 +507,25 @@ function DrawerImpl(props: IDrawerProps): JSX.Element {
|
|
|
509
507
|
if (children !== undefined) insert(node, children);
|
|
510
508
|
return node;
|
|
511
509
|
}
|
|
512
|
-
// ONE source, never a spread followed by an explicit prop: mergeProps
|
|
513
|
-
// NON-undefined value scanning back-to-front, so a later `undefined` silently
|
|
514
|
-
// earlier
|
|
515
|
-
//
|
|
516
|
-
//
|
|
517
|
-
//
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
510
|
+
// ONE source, never a spread followed by an explicit prop: mergeProps took the first
|
|
511
|
+
// NON-undefined value scanning back-to-front, so a later `undefined` silently lost to an
|
|
512
|
+
// earlier one (.claude/rules/solid-descriptor-bridge.md §6). A single bag removes the
|
|
513
|
+
// question, and the thunk is what keeps the slot's props live without rebuilding the node.
|
|
514
|
+
//
|
|
515
|
+
// No Animated.View: the engine resolves an AnimatedNode written into any prop of any host
|
|
516
|
+
// node, so the interpolation in `animatedStyle` binds from a plain `view`.
|
|
517
|
+
const animated = hostElement('view', () => ({
|
|
518
|
+
...slotDescriptor(slot).props,
|
|
519
|
+
style: [slotDescriptor(slot).props.style, animatedStyle(slot)],
|
|
520
|
+
}));
|
|
521
|
+
// An ACCESSOR, not a value: the slot's children are the focused screen, which mounts after
|
|
522
|
+
// this node is built. Reading once here yields the pre-mount slot and the screen never
|
|
523
|
+
// arrives — where the branch above may read eagerly, because its children are already built.
|
|
524
|
+
insert(animated, () => slotChildren(slot));
|
|
525
|
+
return animated;
|
|
528
526
|
}
|
|
529
527
|
|
|
530
|
-
const root = hostElement('
|
|
528
|
+
const root = hostElement('view', () => ({
|
|
531
529
|
...rootDescriptor().props,
|
|
532
530
|
...panResponder.panHandlers,
|
|
533
531
|
}));
|
|
@@ -540,7 +538,7 @@ function DrawerImpl(props: IDrawerProps): JSX.Element {
|
|
|
540
538
|
return untrack(() => buildDrawer(current));
|
|
541
539
|
});
|
|
542
540
|
|
|
543
|
-
const host = hostElement('
|
|
541
|
+
const host = hostElement('view', () => ({ style: { flex: 1 } }));
|
|
544
542
|
insert(host, drawer);
|
|
545
543
|
|
|
546
544
|
return createComponent(ScreenCollectorProvider, {
|
package/src/solid/tabs/index.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// every other adapter; here Solid supplies the lifecycle - a signal for the dispatched router
|
|
4
4
|
// state, a callback `ref` for the jumpTo/setParams handle - plus the descriptor bridge for the
|
|
5
5
|
// tab-bar leaf. Unlike Stack, a bottom-tabs bar is a PURE-JS UI painting ordinary
|
|
6
|
-
// `
|
|
6
|
+
// `view`/`text` primitives, so there is no react-native-screens ViewConfig to
|
|
7
7
|
// register here.
|
|
8
8
|
//
|
|
9
9
|
// TWO SOLID-ONLY REBUILD BOUNDARIES, both invisible in every other adapter:
|
|
@@ -305,12 +305,12 @@ function TabImpl(props: ITabProps): JSX.Element {
|
|
|
305
305
|
return found ?? { key: routeKey, name: '', params: undefined };
|
|
306
306
|
}
|
|
307
307
|
|
|
308
|
-
const contentHost = hostElement('
|
|
308
|
+
const contentHost = hostElement('view', () => ({
|
|
309
309
|
style: TAB_CONTENT_STYLE,
|
|
310
310
|
}));
|
|
311
311
|
insert(contentHost, content);
|
|
312
312
|
|
|
313
|
-
const root = hostElement('
|
|
313
|
+
const root = hostElement('view', () => ({ style: TAB_ROOT_STYLE }));
|
|
314
314
|
// ONE array insert rather than two: a second `insert` on the same parent would find the first
|
|
315
315
|
// child already there and REPLACE it (solid-js/universal's insertExpression), while an array is
|
|
316
316
|
// reconciled by identity - contentHost keeps its node, only the bar is swapped when it rebuilds.
|
|
@@ -35,10 +35,6 @@
|
|
|
35
35
|
IPanResponderGestureState,
|
|
36
36
|
ISymbioteEvent,
|
|
37
37
|
} from '@symbiote-native/engine';
|
|
38
|
-
// The ONLY import from the adapter's main barrel: `Animated.View` is a compiled `.svelte`
|
|
39
|
-
// component, so unlike PanResponder/Dimensions/AnimatedValue (pure engine re-exports, taken
|
|
40
|
-
// from the engine directly here) it has no `.svelte`-free home to import from.
|
|
41
|
-
import { Animated } from '@symbiote-native/svelte';
|
|
42
38
|
import {
|
|
43
39
|
DRAWER_DEFAULT_OVERLAY_COLOR,
|
|
44
40
|
NAVIGATION_EVENT_BLUR,
|
|
@@ -471,16 +467,18 @@
|
|
|
471
467
|
{@const descriptor = slotDescriptors.content}
|
|
472
468
|
{#if descriptor !== undefined}
|
|
473
469
|
{#if contentStyle !== undefined}
|
|
474
|
-
<
|
|
475
|
-
{
|
|
476
|
-
|
|
470
|
+
<view
|
|
471
|
+
p={{
|
|
472
|
+
...descriptor.props,
|
|
473
|
+
style: [descriptor.props.style, contentStyle],
|
|
474
|
+
}}
|
|
477
475
|
>
|
|
478
476
|
{@render screenContent()}
|
|
479
|
-
</
|
|
477
|
+
</view>
|
|
480
478
|
{:else}
|
|
481
|
-
<
|
|
479
|
+
<view p={descriptor.props}>
|
|
482
480
|
{@render screenContent()}
|
|
483
|
-
</
|
|
481
|
+
</view>
|
|
484
482
|
{/if}
|
|
485
483
|
{/if}
|
|
486
484
|
{/snippet}
|
|
@@ -489,12 +487,14 @@
|
|
|
489
487
|
{@const descriptor = slotDescriptors.overlay}
|
|
490
488
|
{#if descriptor !== undefined}
|
|
491
489
|
{#if overlayStyle !== undefined}
|
|
492
|
-
<
|
|
493
|
-
{
|
|
494
|
-
|
|
490
|
+
<view
|
|
491
|
+
p={{
|
|
492
|
+
...descriptor.props,
|
|
493
|
+
style: [descriptor.props.style, overlayStyle],
|
|
494
|
+
}}
|
|
495
495
|
/>
|
|
496
496
|
{:else}
|
|
497
|
-
<
|
|
497
|
+
<view p={descriptor.props} />
|
|
498
498
|
{/if}
|
|
499
499
|
{/if}
|
|
500
500
|
{/snippet}
|
|
@@ -503,32 +503,31 @@
|
|
|
503
503
|
{@const descriptor = slotDescriptors.panel}
|
|
504
504
|
{#if descriptor !== undefined}
|
|
505
505
|
{#if panelStyle !== undefined}
|
|
506
|
-
<
|
|
507
|
-
{...descriptor.props}
|
|
508
|
-
style={[descriptor.props.style, panelStyle]}
|
|
506
|
+
<view
|
|
507
|
+
p={{ ...descriptor.props, style: [descriptor.props.style, panelStyle] }}
|
|
509
508
|
>
|
|
510
509
|
{@render drawerContent?.({
|
|
511
510
|
state,
|
|
512
511
|
descriptors,
|
|
513
512
|
navigation: handle,
|
|
514
513
|
})}
|
|
515
|
-
</
|
|
514
|
+
</view>
|
|
516
515
|
{:else}
|
|
517
|
-
<
|
|
516
|
+
<view p={descriptor.props}>
|
|
518
517
|
{@render drawerContent?.({
|
|
519
518
|
state,
|
|
520
519
|
descriptors,
|
|
521
520
|
navigation: handle,
|
|
522
521
|
})}
|
|
523
|
-
</
|
|
522
|
+
</view>
|
|
524
523
|
{/if}
|
|
525
524
|
{/if}
|
|
526
525
|
{/snippet}
|
|
527
526
|
|
|
528
|
-
<
|
|
529
|
-
<
|
|
527
|
+
<view p={rootProps}>
|
|
528
|
+
<text p={SCREEN_REGISTRY_HOST_PROPS}>
|
|
530
529
|
{@render children?.()}
|
|
531
|
-
</
|
|
530
|
+
</text>
|
|
532
531
|
{#each order as slot (slot)}
|
|
533
532
|
{#if slot === 'content'}
|
|
534
533
|
{@render contentSlot()}
|
|
@@ -538,7 +537,7 @@
|
|
|
538
537
|
{@render panelSlot()}
|
|
539
538
|
{/if}
|
|
540
539
|
{/each}
|
|
541
|
-
</
|
|
540
|
+
</view>
|
|
542
541
|
|
|
543
542
|
<!-- --- Explicit gap list vs the real react-native-gesture-handler + react-native-reanimated
|
|
544
543
|
@react-navigation/drawer (confirmed against its current docs, mirrored verbatim from the
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
//
|
|
13
13
|
// therefore compiles to `from_tree([marker, ' ', marker])`, and each ' ' becomes an RCTRawText
|
|
14
14
|
// engine node parented to whatever host tag holds the `{@render children?.()}` call. Inside a
|
|
15
|
-
// plain `
|
|
15
|
+
// plain `view` that is the invalid "text outside a <text> component" shape; inside
|
|
16
16
|
// RNSScreenStack it is worse, since react-native-screens' native side expects only RNSScreen
|
|
17
17
|
// children there.
|
|
18
18
|
//
|
|
19
|
-
// So the markers are rendered inside a zero-size `
|
|
19
|
+
// So the markers are rendered inside a zero-size `text` instead: raw text inside an
|
|
20
20
|
// RCTText is LEGAL, which turns the hazard from a device crash into a no-op and makes it
|
|
21
21
|
// structurally impossible rather than a rule app authors have to remember. The cost is one
|
|
22
22
|
// collapsed, non-interactive RCTText per navigator.
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// HOW SCREENS ARE DISCOVERED: not by reading `children`, which Svelte hands over as an opaque
|
|
16
16
|
// Snippet - the markers register themselves through the context collector (../screen-registry.ts)
|
|
17
17
|
// while the snippet renders, and the route list derives from that. The snippet is rendered
|
|
18
|
-
// inside a collapsed `
|
|
18
|
+
// inside a collapsed `text` (../registry-host.ts) so whitespace between two markers
|
|
19
19
|
// can never become an illegal raw-text child of a native view.
|
|
20
20
|
|
|
21
21
|
// Route keys must be unique per Stack INSTANCE (Svelte has no useId); a module counter is the
|
|
@@ -233,10 +233,10 @@
|
|
|
233
233
|
}
|
|
234
234
|
</script>
|
|
235
235
|
|
|
236
|
-
<
|
|
237
|
-
<
|
|
236
|
+
<view p={STACK_ROOT_PROPS}>
|
|
237
|
+
<text p={SCREEN_REGISTRY_HOST_PROPS}>
|
|
238
238
|
{@render children?.()}
|
|
239
|
-
</
|
|
239
|
+
</text>
|
|
240
240
|
<svelte:element
|
|
241
241
|
this={RNS_SCREEN_STACK_VIEW_NAME}
|
|
242
242
|
{@attach hostProps(stackProps)}
|
|
@@ -258,4 +258,4 @@
|
|
|
258
258
|
{/if}
|
|
259
259
|
{/each}
|
|
260
260
|
</svelte:element>
|
|
261
|
-
</
|
|
261
|
+
</view>
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
// with the React/Vue/Angular entries; here Svelte supplies the lifecycle - `$state.raw` for the
|
|
5
5
|
// router (its twin of useReducer), a module counter for route-key generation, `export
|
|
6
6
|
// function`s for the jumpTo/setParams handle - plus the Descriptor bridge for the tab-bar leaf.
|
|
7
|
-
// Unlike Stack, a bottom-tabs bar is a PURE-JS UI: it paints ordinary `
|
|
8
|
-
// `
|
|
7
|
+
// Unlike Stack, a bottom-tabs bar is a PURE-JS UI: it paints ordinary `view`/
|
|
8
|
+
// `text` primitives via the shared render fn, so there is no react-native-screens
|
|
9
9
|
// ViewConfig to register here - Tab needs no `../../register` import.
|
|
10
10
|
//
|
|
11
11
|
// Screens are discovered through the context collector (../screen-registry.ts), not by reading
|
|
@@ -253,17 +253,17 @@
|
|
|
253
253
|
});
|
|
254
254
|
</script>
|
|
255
255
|
|
|
256
|
-
<
|
|
257
|
-
<
|
|
256
|
+
<view p={TAB_ROOT_PROPS}>
|
|
257
|
+
<text p={SCREEN_REGISTRY_HOST_PROPS}>
|
|
258
258
|
{@render children?.()}
|
|
259
|
-
</
|
|
260
|
-
<
|
|
259
|
+
</text>
|
|
260
|
+
<view p={TAB_CONTENT_PROPS}>
|
|
261
261
|
{#if focusedScreen !== undefined}
|
|
262
262
|
{@const FocusedComponent = focusedScreen.component}
|
|
263
263
|
<NavigationScope value={focusedScreen.scope}>
|
|
264
264
|
<FocusedComponent />
|
|
265
265
|
</NavigationScope>
|
|
266
266
|
{/if}
|
|
267
|
-
</
|
|
268
|
-
<
|
|
269
|
-
</
|
|
267
|
+
</view>
|
|
268
|
+
<view p={tabBar.props} bind:this={tabBarHost} />
|
|
269
|
+
</view>
|
package/src/vue/drawer/index.ts
CHANGED