@ankhorage/studio 2.0.27 → 2.1.1

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 (52) hide show
  1. package/README.md +1 -1
  2. package/dist/app/workspace/WorkspacePrimitives.d.ts +1 -0
  3. package/dist/app/workspace/WorkspacePrimitives.d.ts.map +1 -1
  4. package/dist/host/layout/auth/resolveAuthLayoutPlan.d.ts.map +1 -1
  5. package/dist/host/layout/auth/resolveAuthLayoutPlan.js +18 -7
  6. package/dist/host/layout/auth/resolveAuthLayoutPlan.js.map +1 -1
  7. package/dist/host/layout/layoutGenerator.d.ts +0 -4
  8. package/dist/host/layout/layoutGenerator.d.ts.map +1 -1
  9. package/dist/host/layout/layoutGenerator.js +34 -108
  10. package/dist/host/layout/layoutGenerator.js.map +1 -1
  11. package/dist/host/layout/navigator/createNavigatorGenerationBindings.d.ts +20 -0
  12. package/dist/host/layout/navigator/createNavigatorGenerationBindings.d.ts.map +1 -0
  13. package/dist/host/layout/navigator/createNavigatorGenerationBindings.js +183 -0
  14. package/dist/host/layout/navigator/createNavigatorGenerationBindings.js.map +1 -0
  15. package/dist/host/layout/navigator/generateNavigatorLayoutFiles.d.ts +17 -0
  16. package/dist/host/layout/navigator/generateNavigatorLayoutFiles.d.ts.map +1 -0
  17. package/dist/host/layout/navigator/generateNavigatorLayoutFiles.js +107 -0
  18. package/dist/host/layout/navigator/generateNavigatorLayoutFiles.js.map +1 -0
  19. package/dist/host/layout/templates/index.d.ts +1 -3
  20. package/dist/host/layout/templates/index.d.ts.map +1 -1
  21. package/dist/host/layout/templates/index.js +0 -2
  22. package/dist/host/layout/templates/index.js.map +1 -1
  23. package/dist/host/layout/templates/rootLayout.d.ts +6 -2
  24. package/dist/host/layout/templates/rootLayout.d.ts.map +1 -1
  25. package/dist/host/layout/templates/rootLayout.js +4 -4
  26. package/dist/host/layout/templates/rootLayout.js.map +1 -1
  27. package/dist/host/layout/templates/utils/strings.d.ts +0 -5
  28. package/dist/host/layout/templates/utils/strings.d.ts.map +1 -1
  29. package/dist/host/layout/templates/utils/strings.js +0 -7
  30. package/dist/host/layout/templates/utils/strings.js.map +1 -1
  31. package/dist/host/orchestrator/GeneratedRouteFileOwnership.d.ts.map +1 -1
  32. package/dist/host/orchestrator/GeneratedRouteFileOwnership.js +8 -1
  33. package/dist/host/orchestrator/GeneratedRouteFileOwnership.js.map +1 -1
  34. package/dist/host/orchestrator/templates.d.ts +4 -0
  35. package/dist/host/orchestrator/templates.d.ts.map +1 -1
  36. package/dist/host/orchestrator/templates.js +7 -1
  37. package/dist/host/orchestrator/templates.js.map +1 -1
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +1 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/manifestState.d.ts.map +1 -1
  42. package/dist/manifestState.js +14 -2
  43. package/dist/manifestState.js.map +1 -1
  44. package/package.json +13 -12
  45. package/dist/host/layout/templates/navigation.d.ts +0 -19
  46. package/dist/host/layout/templates/navigation.d.ts.map +0 -1
  47. package/dist/host/layout/templates/navigation.js +0 -392
  48. package/dist/host/layout/templates/navigation.js.map +0 -1
  49. package/dist/host/layout/templates/nestedLayout.d.ts +0 -8
  50. package/dist/host/layout/templates/nestedLayout.d.ts.map +0 -1
  51. package/dist/host/layout/templates/nestedLayout.js +0 -63
  52. package/dist/host/layout/templates/nestedLayout.js.map +0 -1
@@ -1,392 +0,0 @@
1
- import { escapeStringLiteral } from '../utils/escapeStringLiteral';
2
- /***
3
- * Build the generated header-visibility expression for a navigator, hiding headers in Studio development mode when Studio integration is included.
4
- */
5
- function getNavigatorHeaderShownTsx(includeStudio) {
6
- return includeStudio ? '__DEV__ ? false : true' : 'true';
7
- }
8
- /***
9
- * Build generated tab navigator screen options with Studio-aware header visibility and theme-driven colors.
10
- */
11
- function getTabsOptionsTsx(includeStudio) {
12
- return `{
13
- headerShown: ${getNavigatorHeaderShownTsx(includeStudio)},
14
- tabBarActiveTintColor: theme.colors.primary,
15
- tabBarInactiveTintColor: theme.colors.textSecondary,
16
- tabBarStyle: {
17
- backgroundColor: theme.colors.surface,
18
- borderTopColor: theme.colors.border,
19
- },
20
- }`;
21
- }
22
- /***
23
- * Build generated drawer navigator screen options with Studio-aware header visibility and theme-driven colors.
24
- */
25
- function getDrawerOptionsTsx(includeStudio) {
26
- return `{
27
- headerShown: ${getNavigatorHeaderShownTsx(includeStudio)},
28
- drawerActiveTintColor: theme.colors.primary,
29
- drawerInactiveTintColor: theme.colors.textSecondary,
30
- drawerStyle: {
31
- backgroundColor: theme.colors.background,
32
- },
33
- headerStyle: {
34
- backgroundColor: theme.colors.surface,
35
- },
36
- headerTintColor: theme.colors.text,
37
- }`;
38
- }
39
- /***
40
- * Build generated stack navigator screen options with Studio-aware header visibility.
41
- */
42
- function getStackOptionsTsx(includeStudio) {
43
- return `{
44
- headerShown: ${getNavigatorHeaderShownTsx(includeStudio)},
45
- }`;
46
- }
47
- /***
48
- * Generate the declaration and JSX fragments required for the manifest navigator type and report which generated runtime imports it needs.
49
- */
50
- export function buildNavigatorJsx(args) {
51
- const { navigator, manifest, includeStudio } = args;
52
- if (navigator.type === 'tabs') {
53
- return buildTabsNavigatorJsx({ navigator, manifest, includeStudio });
54
- }
55
- if (navigator.type === 'drawer') {
56
- return buildDrawerNavigatorJsx({ navigator, manifest, includeStudio });
57
- }
58
- return buildStackNavigatorJsx({ navigator, manifest, includeStudio });
59
- }
60
- /***
61
- * Generate tab-navigator declarations and JSX, preferring the ZORA route-map integration when every route belongs in primary navigation and falling back to Expo Router options otherwise.
62
- */
63
- function buildTabsNavigatorJsx(args) {
64
- const { navigator, manifest, includeStudio } = args;
65
- const hasHiddenRoutes = navigator.routes.some((route) => route.showInPrimaryNavigation === false);
66
- const headerShown = getNavigatorHeaderShownTsx(includeStudio);
67
- if (!hasHiddenRoutes) {
68
- const routeMapDeclaration = buildRouteMapDeclaration({ routes: navigator.routes, manifest });
69
- const screenTemplates = navigator.routes.map((route, index) => buildTabsScreenJsx(route, manifest, index));
70
- const declarations = [
71
- routeMapDeclaration,
72
- `const tabsNavigatorScreenOptions = {
73
- headerShown: ${headerShown},
74
- };`,
75
- `function renderZoraTabBar(props: BottomTabBarProps) {
76
- return <ZoraTabBar {...props} routeMap={routeMap} />;
77
- }`,
78
- ...screenTemplates.map((screen) => screen.declaration),
79
- ]
80
- .filter(Boolean)
81
- .join('\n');
82
- const screens = screenTemplates.map((screen) => screen.jsx).join('\n');
83
- return {
84
- declarations,
85
- jsx: `<Tabs tabBar={renderZoraTabBar} screenOptions={tabsNavigatorScreenOptions}>
86
- ${screens}
87
- </Tabs>`,
88
- usesTheme: false,
89
- usesIcon: false,
90
- usesZoraTabBar: true,
91
- usesZoraDrawerContent: false,
92
- usesZoraNavigationRouteMap: true,
93
- };
94
- }
95
- const screenTemplates = navigator.routes.map((route, index) => buildTabsScreenFallbackJsx(route, manifest, index));
96
- const declarations = screenTemplates
97
- .map((screen) => screen.declaration)
98
- .filter(Boolean)
99
- .join('\n');
100
- const screens = screenTemplates.map((screen) => screen.jsx).join('\n');
101
- const usesIcon = navigator.routes.some((route) => Boolean(route.icon));
102
- return {
103
- declarations: [
104
- `const tabsNavigatorScreenOptions = ${getTabsOptionsTsx(includeStudio)};`,
105
- declarations,
106
- ]
107
- .filter(Boolean)
108
- .join('\n'),
109
- jsx: `<Tabs screenOptions={tabsNavigatorScreenOptions}>
110
- ${screens}
111
- </Tabs>`,
112
- usesTheme: true,
113
- usesIcon,
114
- usesZoraTabBar: false,
115
- usesZoraDrawerContent: false,
116
- usesZoraNavigationRouteMap: false,
117
- };
118
- }
119
- /***
120
- * Generate drawer-navigator declarations and JSX, preferring the ZORA route-map integration when every route belongs in primary navigation and falling back to Expo Router options otherwise.
121
- */
122
- function buildDrawerNavigatorJsx(args) {
123
- const { navigator, manifest, includeStudio } = args;
124
- const hasHiddenRoutes = navigator.routes.some((route) => route.showInPrimaryNavigation === false);
125
- const headerShown = getNavigatorHeaderShownTsx(includeStudio);
126
- if (!hasHiddenRoutes) {
127
- const routeMapDeclaration = buildRouteMapDeclaration({ routes: navigator.routes, manifest });
128
- const screenTemplates = navigator.routes.map((route, index) => buildDrawerScreenJsx(route, manifest, index));
129
- const declarations = [
130
- routeMapDeclaration,
131
- `const drawerNavigatorScreenOptions = {
132
- headerShown: ${headerShown},
133
- };`,
134
- `function renderZoraDrawerContent(props: DrawerContentComponentProps) {
135
- return <ZoraDrawerContent {...props} routeMap={routeMap} />;
136
- }`,
137
- ...screenTemplates.map((screen) => screen.declaration),
138
- ]
139
- .filter(Boolean)
140
- .join('\n');
141
- const screens = screenTemplates.map((screen) => screen.jsx).join('\n');
142
- return {
143
- declarations,
144
- jsx: `<Drawer drawerContent={renderZoraDrawerContent} screenOptions={drawerNavigatorScreenOptions}>
145
- ${screens}
146
- </Drawer>`,
147
- usesTheme: false,
148
- usesIcon: false,
149
- usesZoraTabBar: false,
150
- usesZoraDrawerContent: true,
151
- usesZoraNavigationRouteMap: true,
152
- };
153
- }
154
- const screenTemplates = navigator.routes.map((route, index) => buildDrawerScreenFallbackJsx(route, manifest, index));
155
- const declarations = screenTemplates
156
- .map((screen) => screen.declaration)
157
- .filter(Boolean)
158
- .join('\n');
159
- const screens = screenTemplates.map((screen) => screen.jsx).join('\n');
160
- const usesIcon = navigator.routes.some((route) => Boolean(route.icon));
161
- return {
162
- declarations: [
163
- `const drawerNavigatorScreenOptions = ${getDrawerOptionsTsx(includeStudio)};`,
164
- declarations,
165
- ]
166
- .filter(Boolean)
167
- .join('\n'),
168
- jsx: `<Drawer screenOptions={drawerNavigatorScreenOptions}>
169
- ${screens}
170
- </Drawer>`,
171
- usesTheme: true,
172
- usesIcon,
173
- usesZoraTabBar: false,
174
- usesZoraDrawerContent: false,
175
- usesZoraNavigationRouteMap: false,
176
- };
177
- }
178
- /***
179
- * Generate stack-navigator declarations and JSX for the manifest routes.
180
- */
181
- function buildStackNavigatorJsx(args) {
182
- const { navigator, manifest, includeStudio } = args;
183
- const screenTemplates = navigator.routes.map((route, index) => buildStackScreenJsx(route, manifest, index));
184
- const declarations = screenTemplates
185
- .map((screen) => screen.declaration)
186
- .filter(Boolean)
187
- .join('\n');
188
- const screens = screenTemplates.map((screen) => screen.jsx).join('\n');
189
- return {
190
- declarations: [
191
- `const stackNavigatorScreenOptions = ${getStackOptionsTsx(includeStudio)};`,
192
- declarations,
193
- ]
194
- .filter(Boolean)
195
- .join('\n'),
196
- jsx: `<Stack screenOptions={stackNavigatorScreenOptions}>
197
- ${screens}
198
- </Stack>`,
199
- usesTheme: false,
200
- usesIcon: false,
201
- usesZoraTabBar: false,
202
- usesZoraDrawerContent: false,
203
- usesZoraNavigationRouteMap: false,
204
- };
205
- }
206
- /***
207
- * Generate one ZORA-integrated tab screen declaration and JSX reference from a manifest route.
208
- */
209
- function buildTabsScreenJsx(route, manifest, index) {
210
- const label = resolveRouteLabel(route, manifest);
211
- const optionsConstName = buildScreenOptionsConstName(route, index);
212
- const headerVisibilityLine = route.navigator ? `\n headerShown: false,` : '';
213
- return {
214
- declaration: `const ${optionsConstName} = {
215
- title: '${label}',
216
- tabBarLabel: '${label}',${headerVisibilityLine}
217
- };`,
218
- jsx: ` <Tabs.Screen key="${route.name}" name="${route.name}" options={${optionsConstName}} />`,
219
- };
220
- }
221
- /***
222
- * Generate one fallback tab screen declaration and JSX reference, including hidden-route and icon options when required.
223
- */
224
- function buildTabsScreenFallbackJsx(route, manifest, index) {
225
- const label = resolveRouteLabel(route, manifest);
226
- const hideHrefOption = route.showInPrimaryNavigation === false ? 'href: null,' : '';
227
- const optionsConstName = buildScreenOptionsConstName(route, index);
228
- const iconFunctionName = buildScreenIconFunctionName(route, index);
229
- const optionLines = [
230
- `title: '${label}',`,
231
- `tabBarLabel: '${label}',`,
232
- route.icon ? `tabBarIcon: ${iconFunctionName},` : '',
233
- hideHrefOption,
234
- ]
235
- .filter(Boolean)
236
- .map((line) => ` ${line}`)
237
- .join('\n');
238
- const iconProvider = route.icon?.provider
239
- ? ` provider="${escapeStringLiteral(resolveIconProvider(route.icon.provider))}"`
240
- : '';
241
- return {
242
- declaration: [
243
- route.icon
244
- ? `function ${iconFunctionName}({ color, size }: { color: string; size: number }) {
245
- return (
246
- <Icon name="${escapeStringLiteral(route.icon.name)}"${iconProvider} color={color} size={size} />
247
- );
248
- }`
249
- : '',
250
- `const ${optionsConstName} = {\n${optionLines}\n};`,
251
- ]
252
- .filter(Boolean)
253
- .join('\n'),
254
- jsx: ` <Tabs.Screen key="${route.name}" name="${route.name}" options={${optionsConstName}} />`,
255
- };
256
- }
257
- /***
258
- * Generate one ZORA-integrated drawer screen declaration and JSX reference from a manifest route.
259
- */
260
- function buildDrawerScreenJsx(route, manifest, index) {
261
- const label = resolveRouteLabel(route, manifest);
262
- const optionsConstName = buildScreenOptionsConstName(route, index);
263
- const headerVisibilityLine = route.navigator ? `\n headerShown: false,` : '';
264
- return {
265
- declaration: `const ${optionsConstName} = {
266
- title: '${label}',
267
- drawerLabel: '${label}',${headerVisibilityLine}
268
- };`,
269
- jsx: ` <Drawer.Screen key="${route.name}" name="${route.name}" options={${optionsConstName}} />`,
270
- };
271
- }
272
- /***
273
- * Generate one fallback drawer screen declaration and JSX reference, including hidden-route and icon options when required.
274
- */
275
- function buildDrawerScreenFallbackJsx(route, manifest, index) {
276
- const label = resolveRouteLabel(route, manifest);
277
- const hideDrawerOption = route.showInPrimaryNavigation === false ? "drawerItemStyle: { display: 'none' }," : '';
278
- const optionsConstName = buildScreenOptionsConstName(route, index);
279
- const iconFunctionName = buildScreenIconFunctionName(route, index);
280
- const optionLines = [
281
- `title: '${label}',`,
282
- `drawerLabel: '${label}',`,
283
- route.icon ? `drawerIcon: ${iconFunctionName},` : '',
284
- hideDrawerOption,
285
- ]
286
- .filter(Boolean)
287
- .map((line) => ` ${line}`)
288
- .join('\n');
289
- return {
290
- declaration: [
291
- route.icon
292
- ? `function ${iconFunctionName}({ color, size }: { color: string; size: number }) {
293
- return (
294
- <Icon name="${escapeStringLiteral(route.icon.name)}"${route.icon.provider ? ` provider="${escapeStringLiteral(route.icon.provider)}"` : ''} color={color} size={size} />
295
- );
296
- }`
297
- : '',
298
- `const ${optionsConstName} = {\n${optionLines}\n};`,
299
- ]
300
- .filter(Boolean)
301
- .join('\n'),
302
- jsx: ` <Drawer.Screen key="${route.name}" name="${route.name}" options={${optionsConstName}} />`,
303
- };
304
- }
305
- /***
306
- * Generate one stack screen declaration and JSX reference, adding only the route-specific options that are required.
307
- */
308
- function buildStackScreenJsx(route, manifest, index) {
309
- const label = resolveRouteLabel(route, manifest);
310
- const options = [];
311
- if (route.name === 'index') {
312
- options.push(`headerTitle: '${label}'`);
313
- }
314
- if (route.navigator) {
315
- options.push('headerShown: false');
316
- }
317
- if (options.length === 0) {
318
- return {
319
- declaration: '',
320
- jsx: ` <Stack.Screen key="${route.name}" name="${route.name}" />`,
321
- };
322
- }
323
- const optionsConstName = buildScreenOptionsConstName(route, index);
324
- return {
325
- declaration: `const ${optionsConstName} = { ${options.join(', ')} };`,
326
- jsx: ` <Stack.Screen key="${route.name}" name="${route.name}" options={${optionsConstName}} />`,
327
- };
328
- }
329
- /***
330
- * Resolve and escape the display label for a route, preferring explicit route metadata before screen metadata and the route name.
331
- */
332
- function resolveRouteLabel(route, manifest) {
333
- const screen = route.screenId ? manifest.screens[route.screenId] : undefined;
334
- return escapeStringLiteral(route.label ?? screen?.title ?? screen?.name ?? route.name);
335
- }
336
- /***
337
- * Generate the ZORA navigation route-map declaration for the manifest routes, including optional icon metadata.
338
- */
339
- function buildRouteMapDeclaration(args) {
340
- const { routes, manifest } = args;
341
- const entries = routes
342
- .map((route) => {
343
- const label = resolveRouteLabel(route, manifest);
344
- const key = escapeStringLiteral(route.name);
345
- const routeKey = /^[A-Za-z_$][A-Za-z0-9_$]*$/u.test(key) ? key : `'${key}'`;
346
- const iconSpec = route.icon ? buildRouteIconLiteral(route.icon) : '';
347
- const iconLine = iconSpec.length > 0 ? `\n icon: ${iconSpec},` : '';
348
- return ` ${routeKey}: {\n label: '${label}',${iconLine}\n }`;
349
- })
350
- .join(',\n');
351
- return `const routeMap: ZoraNavigationRouteMap = {\n${entries},\n};\n`;
352
- }
353
- /***
354
- * Generate a serialized ZORA route-icon object literal from manifest icon metadata.
355
- */
356
- function buildRouteIconLiteral(icon) {
357
- const provider = icon.provider
358
- ? `, provider: '${escapeStringLiteral(resolveIconProvider(icon.provider))}'`
359
- : '';
360
- const size = icon.size === undefined
361
- ? ''
362
- : `, size: ${typeof icon.size === 'number' ? icon.size : `'${escapeStringLiteral(String(icon.size))}'`}`;
363
- const color = icon.color ? `, color: '${escapeStringLiteral(icon.color)}'` : '';
364
- return `{ name: '${escapeStringLiteral(icon.name)}'${provider}${size}${color} }`;
365
- }
366
- /***
367
- * Translate the manifest's legacy material-community provider identifier to the runtime ZORA provider name while preserving every other provider.
368
- * @todo Move provider-name normalization to the icon/navigation owner instead of keeping contract-to-runtime mapping inside a layout template.
369
- */
370
- function resolveIconProvider(provider) {
371
- return provider === 'material-community' ? 'MaterialDesignIcons' : provider;
372
- }
373
- /***
374
- * Build a stable generated screen-options constant name from the route name and route index.
375
- */
376
- function buildScreenOptionsConstName(route, index) {
377
- const normalizedName = route.name.replace(/[^a-zA-Z0-9]+/g, ' ').trim();
378
- const parts = normalizedName.length > 0 ? normalizedName.split(/\s+/) : [];
379
- const [firstPart = 'route', ...remainingParts] = parts;
380
- const camelName = [
381
- firstPart.toLowerCase(),
382
- ...remainingParts.map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()),
383
- ].join('');
384
- return `route${index}${camelName.charAt(0).toUpperCase() + camelName.slice(1)}ScreenOptions`;
385
- }
386
- /***
387
- * Derive the generated route-icon render-function name from the corresponding screen-options constant name.
388
- */
389
- function buildScreenIconFunctionName(route, index) {
390
- return buildScreenOptionsConstName(route, index).replace(/ScreenOptions$/, 'Icon');
391
- }
392
- //# sourceMappingURL=navigation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/host/layout/templates/navigation.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { NavigatorNode } from '@ankhorage/contracts';
2
- import type { BuiltNavigatorJsx } from './navigation';
3
- /*** Generate a nested Expo Router layout around one already-built navigator source fragment. */
4
- export declare function getNestedLayoutTsx(args: {
5
- node: NavigatorNode;
6
- navigator: BuiltNavigatorJsx;
7
- }): string;
8
- //# sourceMappingURL=nestedLayout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nestedLayout.d.ts","sourceRoot":"","sources":["../../../../src/host/layout/templates/nestedLayout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtD,gGAAgG;AAChG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,iBAAiB,CAAA;CAAE,UAqD7F"}
@@ -1,63 +0,0 @@
1
- import { joinNonEmptyLines } from './utils/strings';
2
- /*** Generate a nested Expo Router layout around one already-built navigator source fragment. */
3
- export function getNestedLayoutTsx(args) {
4
- const { node, navigator } = args;
5
- const themeHook = navigator.usesTheme ? ' const { theme } = useZoraTheme();\n' : '';
6
- const moduleDeclarations = navigator.usesTheme ? '' : navigator.declarations;
7
- const scopedDeclarations = navigator.usesTheme
8
- ? navigator.declarations
9
- .split('\n')
10
- .map((line) => (line.length > 0 ? ` ${line}` : line))
11
- .join('\n')
12
- : '';
13
- const imports = joinNonEmptyLines([
14
- navigator.usesZoraNavigationRouteMap
15
- ? `import type { ZoraNavigationRouteMap } from '@ankhorage/zora';`
16
- : '',
17
- navigator.usesTheme ||
18
- navigator.usesIcon ||
19
- navigator.usesZoraTabBar ||
20
- navigator.usesZoraDrawerContent
21
- ? `import { ${[
22
- navigator.usesIcon ? 'Icon' : '',
23
- navigator.usesTheme ? 'useZoraTheme' : '',
24
- navigator.usesZoraTabBar ? 'ZoraTabBar' : '',
25
- navigator.usesZoraDrawerContent ? 'ZoraDrawerContent' : '',
26
- ]
27
- .filter(Boolean)
28
- .join(', ')} } from '@ankhorage/zora';`
29
- : '',
30
- navigator.usesZoraTabBar ? `import type { BottomTabBarProps } from 'expo-router/js-tabs';` : '',
31
- navigator.usesZoraDrawerContent
32
- ? `import type { DrawerContentComponentProps } from 'expo-router/drawer';`
33
- : '',
34
- node.type === 'drawer'
35
- ? `import { Drawer } from 'expo-router/drawer';`
36
- : node.type === 'tabs'
37
- ? `import { Tabs } from 'expo-router/js-tabs';`
38
- : `import { Stack } from 'expo-router';`,
39
- ]);
40
- return `${imports}
41
-
42
- export const unstable_settings = {
43
- initialRouteName: '${resolveGeneratedInitialRouteName(node)}',
44
- };
45
-
46
- ${moduleDeclarations}
47
-
48
- export default function Layout() {
49
- ${themeHook}${scopedDeclarations ? `${scopedDeclarations}\n` : ''} return (
50
- ${navigator.jsx}
51
- );
52
- }
53
- `;
54
- }
55
- /*** Resolve a valid generated initial route from a navigator, falling back to its first route or index. */
56
- function resolveGeneratedInitialRouteName(node) {
57
- const routeNames = new Set(node.routes.map((route) => route.name));
58
- if (node.initialRouteName && routeNames.has(node.initialRouteName)) {
59
- return node.initialRouteName;
60
- }
61
- return node.routes[0]?.name ?? 'index';
62
- }
63
- //# sourceMappingURL=nestedLayout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nestedLayout.js","sourceRoot":"","sources":["../../../../src/host/layout/templates/nestedLayout.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,gGAAgG;AAChG,MAAM,UAAU,kBAAkB,CAAC,IAA2D;IAC5F,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACjC,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,MAAM,kBAAkB,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC;IAC7E,MAAM,kBAAkB,GAAG,SAAS,CAAC,SAAS;QAC5C,CAAC,CAAC,SAAS,CAAC,YAAY;aACnB,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACrD,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,OAAO,GAAG,iBAAiB,CAAC;QAChC,SAAS,CAAC,0BAA0B;YAClC,CAAC,CAAC,gEAAgE;YAClE,CAAC,CAAC,EAAE;QACN,SAAS,CAAC,SAAS;YACnB,SAAS,CAAC,QAAQ;YAClB,SAAS,CAAC,cAAc;YACxB,SAAS,CAAC,qBAAqB;YAC7B,CAAC,CAAC,YAAY;gBACV,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAChC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;gBACzC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;gBAC5C,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE;aAC3D;iBACE,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,4BAA4B;YAC3C,CAAC,CAAC,EAAE;QACN,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC,CAAC,EAAE;QAC/F,SAAS,CAAC,qBAAqB;YAC7B,CAAC,CAAC,wEAAwE;YAC1E,CAAC,CAAC,EAAE;QACN,IAAI,CAAC,IAAI,KAAK,QAAQ;YACpB,CAAC,CAAC,8CAA8C;YAChD,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;gBACpB,CAAC,CAAC,6CAA6C;gBAC/C,CAAC,CAAC,sCAAsC;KAC7C,CAAC,CAAC;IAEH,OAAO,GAAG,OAAO;;;uBAGI,gCAAgC,CAAC,IAAI,CAAC;;;EAG3D,kBAAkB;;;EAGlB,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,kBAAkB,IAAI,CAAC,CAAC,CAAC,EAAE;MAC3D,SAAS,CAAC,GAAG;;;CAGlB,CAAC;AACF,CAAC;AAED,2GAA2G;AAC3G,SAAS,gCAAgC,CAAC,IAAmB;IAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnE,IAAI,IAAI,CAAC,gBAAgB,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,OAAO,CAAC;AACzC,CAAC"}