@ankhorage/studio 0.7.1 → 0.8.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.
- package/README.md +2 -1
- package/dist/app/CreateCategoriesScreen.d.ts +3 -0
- package/dist/app/CreateCategoriesScreen.d.ts.map +1 -0
- package/dist/app/CreateCategoriesScreen.js +14 -0
- package/dist/app/CreateCategoriesScreen.js.map +1 -0
- package/dist/app/CreateCategoryTemplatesScreen.d.ts +3 -0
- package/dist/app/CreateCategoryTemplatesScreen.d.ts.map +1 -0
- package/dist/app/CreateCategoryTemplatesScreen.js +21 -0
- package/dist/app/CreateCategoryTemplatesScreen.js.map +1 -0
- package/dist/app/CreateProjectFromTemplateScreen.d.ts +3 -0
- package/dist/app/CreateProjectFromTemplateScreen.d.ts.map +1 -0
- package/dist/app/CreateProjectFromTemplateScreen.js +64 -0
- package/dist/app/CreateProjectFromTemplateScreen.js.map +1 -0
- package/dist/app/ProjectDetailScreen.d.ts +3 -0
- package/dist/app/ProjectDetailScreen.d.ts.map +1 -0
- package/dist/app/ProjectDetailScreen.js +83 -0
- package/dist/app/ProjectDetailScreen.js.map +1 -0
- package/dist/app/ProjectsOverviewScreen.d.ts +3 -0
- package/dist/app/ProjectsOverviewScreen.d.ts.map +1 -0
- package/dist/app/ProjectsOverviewScreen.js +27 -0
- package/dist/app/ProjectsOverviewScreen.js.map +1 -0
- package/dist/app/StudioApp.d.ts.map +1 -1
- package/dist/app/StudioApp.js +116 -6
- package/dist/app/StudioApp.js.map +1 -1
- package/dist/app/index.d.ts +5 -1
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/index.js +5 -1
- package/dist/app/index.js.map +1 -1
- package/dist/app/workspace/WorkspacePrimitives.d.ts +263 -0
- package/dist/app/workspace/WorkspacePrimitives.d.ts.map +1 -0
- package/dist/app/workspace/WorkspacePrimitives.js +340 -0
- package/dist/app/workspace/WorkspacePrimitives.js.map +1 -0
- package/dist/app/workspace/createProjectFormState.d.ts +16 -0
- package/dist/app/workspace/createProjectFormState.d.ts.map +1 -0
- package/dist/app/workspace/createProjectFormState.js +22 -0
- package/dist/app/workspace/createProjectFormState.js.map +1 -0
- package/dist/app/workspace/navigation.d.ts +2 -0
- package/dist/app/workspace/navigation.d.ts.map +1 -0
- package/dist/app/workspace/navigation.js +23 -0
- package/dist/app/workspace/navigation.js.map +1 -0
- package/dist/app/workspace/routeParams.d.ts +7 -0
- package/dist/app/workspace/routeParams.d.ts.map +1 -0
- package/dist/app/workspace/routeParams.js +8 -0
- package/dist/app/workspace/routeParams.js.map +1 -0
- package/dist/contractGuards.d.ts +6 -0
- package/dist/contractGuards.d.ts.map +1 -0
- package/dist/contractGuards.js +579 -0
- package/dist/contractGuards.js.map +1 -0
- package/dist/hooks/useProjects.d.ts +8 -16
- package/dist/hooks/useProjects.d.ts.map +1 -1
- package/dist/hooks/useProjects.js +65 -28
- package/dist/hooks/useProjects.js.map +1 -1
- package/dist/hooks/useTemplateCatalog.d.ts +8 -0
- package/dist/hooks/useTemplateCatalog.d.ts.map +1 -0
- package/dist/hooks/useTemplateCatalog.js +64 -0
- package/dist/hooks/useTemplateCatalog.js.map +1 -0
- package/dist/hooks/useWorkspaceActions.d.ts +8 -0
- package/dist/hooks/useWorkspaceActions.d.ts.map +1 -0
- package/dist/hooks/useWorkspaceActions.js +28 -0
- package/dist/hooks/useWorkspaceActions.js.map +1 -0
- package/dist/host/http/server.d.ts.map +1 -1
- package/dist/host/http/server.js +20 -12
- package/dist/host/http/server.js.map +1 -1
- package/dist/host/index.d.ts +1 -1
- package/dist/host/index.d.ts.map +1 -1
- package/dist/host/index.js +1 -1
- package/dist/host/index.js.map +1 -1
- package/dist/host/orchestrator/projectManager.d.ts.map +1 -1
- package/dist/host/orchestrator/projectManager.js +12 -11
- package/dist/host/orchestrator/projectManager.js.map +1 -1
- package/dist/host/orchestrator/projectStore.d.ts +4 -6
- package/dist/host/orchestrator/projectStore.d.ts.map +1 -1
- package/dist/host/orchestrator/projectStore.js +50 -22
- package/dist/host/orchestrator/projectStore.js.map +1 -1
- package/dist/host/orchestrator/scaffolder.d.ts +2 -2
- package/dist/host/orchestrator/scaffolder.d.ts.map +1 -1
- package/dist/host/orchestrator/scaffolder.js +8 -5
- package/dist/host/orchestrator/scaffolder.js.map +1 -1
- package/dist/host/orchestrator/templates.js +1 -1
- package/dist/host/templateRegistry/index.d.ts +2 -9
- package/dist/host/templateRegistry/index.d.ts.map +1 -1
- package/dist/host/templateRegistry/index.js +29 -15
- package/dist/host/templateRegistry/index.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/projectIdentity.d.ts +11 -0
- package/dist/projectIdentity.d.ts.map +1 -0
- package/dist/projectIdentity.js +74 -0
- package/dist/projectIdentity.js.map +1 -0
- package/dist/projectWorkspaceContracts.d.ts +28 -0
- package/dist/projectWorkspaceContracts.d.ts.map +1 -0
- package/dist/projectWorkspaceContracts.js +2 -0
- package/dist/projectWorkspaceContracts.js.map +1 -0
- package/dist/root.d.ts +1 -1
- package/dist/root.d.ts.map +1 -1
- package/dist/root.js +1 -1
- package/dist/root.js.map +1 -1
- package/dist/templateCatalogContracts.d.ts +25 -0
- package/dist/templateCatalogContracts.d.ts.map +1 -0
- package/dist/templateCatalogContracts.js +2 -0
- package/dist/templateCatalogContracts.js.map +1 -0
- package/dist/ui/admin/pages/AuthAdminPage.js +7 -1
- package/dist/ui/admin/pages/AuthAdminPage.js.map +1 -1
- package/dist/workspacePlatform.d.ts +15 -0
- package/dist/workspacePlatform.d.ts.map +1 -0
- package/dist/workspacePlatform.js +43 -0
- package/dist/workspacePlatform.js.map +1 -0
- package/dist/workspaceSearch.d.ts +5 -0
- package/dist/workspaceSearch.d.ts.map +1 -0
- package/dist/workspaceSearch.js +60 -0
- package/dist/workspaceSearch.js.map +1 -0
- package/package.json +6 -4
- package/dist/app/StudioDashboard.d.ts +0 -3
- package/dist/app/StudioDashboard.d.ts.map +0 -1
- package/dist/app/StudioDashboard.js +0 -192
- package/dist/app/StudioDashboard.js.map +0 -1
- package/dist/hooks/useTemplateSummaries.d.ts +0 -8
- package/dist/hooks/useTemplateSummaries.d.ts.map +0 -1
- package/dist/hooks/useTemplateSummaries.js +0 -54
- package/dist/hooks/useTemplateSummaries.js.map +0 -1
- package/dist/modules/dashboard/platform.d.ts +0 -4
- package/dist/modules/dashboard/platform.d.ts.map +0 -1
- package/dist/modules/dashboard/platform.js +0 -24
- package/dist/modules/dashboard/platform.js.map +0 -1
- package/dist/modules/dashboard/search.d.ts +0 -4
- package/dist/modules/dashboard/search.d.ts.map +0 -1
- package/dist/modules/dashboard/search.js +0 -49
- package/dist/modules/dashboard/search.js.map +0 -1
- package/dist/modules/dashboard/templates.d.ts +0 -3
- package/dist/modules/dashboard/templates.d.ts.map +0 -1
- package/dist/modules/dashboard/templates.js +0 -4
- package/dist/modules/dashboard/templates.js.map +0 -1
- package/dist/modules/dashboard/types.d.ts +0 -15
- package/dist/modules/dashboard/types.d.ts.map +0 -1
- package/dist/modules/dashboard/types.js +0 -2
- package/dist/modules/dashboard/types.js.map +0 -1
- package/dist/modules/dashboard/ui/DashboardSectionHeader.d.ts +0 -6
- package/dist/modules/dashboard/ui/DashboardSectionHeader.d.ts.map +0 -1
- package/dist/modules/dashboard/ui/DashboardSectionHeader.js +0 -17
- package/dist/modules/dashboard/ui/DashboardSectionHeader.js.map +0 -1
- package/dist/modules/dashboard/ui/ProjectCard.d.ts +0 -16
- package/dist/modules/dashboard/ui/ProjectCard.d.ts.map +0 -1
- package/dist/modules/dashboard/ui/ProjectCard.js +0 -76
- package/dist/modules/dashboard/ui/ProjectCard.js.map +0 -1
- package/dist/modules/dashboard/ui/TemplateCard.d.ts +0 -10
- package/dist/modules/dashboard/ui/TemplateCard.d.ts.map +0 -1
- package/dist/modules/dashboard/ui/TemplateCard.js +0 -32
- package/dist/modules/dashboard/ui/TemplateCard.js.map +0 -1
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
# @ankhorage/studio
|
|
5
5
|
|
|
6
|
-
         
|
|
7
7
|
|
|
8
8
|
Standalone Studio authoring package for Ankhorage apps.
|
|
9
9
|
|
|
@@ -38,3 +38,4 @@ Manage Studio development and projects through the Ankh CLI.
|
|
|
38
38
|
- [updateNodeInTree sequence](././paradox/diagrams/sequences/update-node-in-tree.mmd)
|
|
39
39
|
- [validateInsertRecipe sequence](././paradox/diagrams/sequences/validate-insert-recipe.mmd)
|
|
40
40
|
- [validateNodePlacement sequence](././paradox/diagrams/sequences/validate-node-placement.mmd)
|
|
41
|
+
- [validateProjectCreationInput sequence](././paradox/diagrams/sequences/validate-project-creation-input.mmd)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateCategoriesScreen.d.ts","sourceRoot":"","sources":["../../src/app/CreateCategoriesScreen.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAejD,wBAAgB,sBAAsB,sBAgDrC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { router } from 'expo-router';
|
|
3
|
+
import React, { useMemo, useState } from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { useTemplateCatalog } from '../hooks/useTemplateCatalog';
|
|
6
|
+
import { filterAndSortTemplates } from '../workspaceSearch';
|
|
7
|
+
import { CategoryCard, EmptyState, LoadingState, SearchResults, styles, ThemedWorkspaceTextInput, WorkspaceScreen, } from './workspace/WorkspacePrimitives';
|
|
8
|
+
export function CreateCategoriesScreen() {
|
|
9
|
+
const { catalog, isLoading, error, refresh } = useTemplateCatalog();
|
|
10
|
+
const [searchQuery, setSearchQuery] = useState('');
|
|
11
|
+
const results = useMemo(() => (searchQuery.trim() ? filterAndSortTemplates(catalog, searchQuery) : []), [catalog, searchQuery]);
|
|
12
|
+
return (_jsxs(WorkspaceScreen, { title: "New Project", subtitle: "Choose a category first.", children: [_jsx(View, { style: styles.toolbar, children: _jsx(ThemedWorkspaceTextInput, { value: searchQuery, onChangeText: setSearchQuery, placeholder: "Search templates globally", accessibilityLabel: "Search templates globally" }) }), isLoading ? (_jsx(LoadingState, { label: "Loading template catalog" })) : error ? (_jsx(EmptyState, { title: "Catalog load failed", detail: error, actionLabel: "Retry", onAction: refresh })) : searchQuery.trim() ? (_jsx(SearchResults, { query: searchQuery, results: results, onClear: () => setSearchQuery(''), onPress: (template) => router.push(`/create/${template.category}/${template.templateId}`) })) : (_jsx(View, { style: styles.categoryGrid, children: catalog.categories.map((category) => (_jsx(CategoryCard, { category: category, onPress: () => router.push(`/create/${category.id}`) }, category.id))) }))] }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=CreateCategoriesScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateCategoriesScreen.js","sourceRoot":"","sources":["../../src/app/CreateCategoriesScreen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,aAAa,EACb,MAAM,EACN,wBAAwB,EACxB,eAAe,GAChB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,UAAU,sBAAsB;IACpC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,kBAAkB,EAAE,CAAC;IACpE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAC9E,CAAC,OAAO,EAAE,WAAW,CAAC,CACvB,CAAC;IAEF,OAAO,CACL,MAAC,eAAe,IAAC,KAAK,EAAC,aAAa,EAAC,QAAQ,EAAC,0BAA0B,aACtE,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,YACzB,KAAC,wBAAwB,IACvB,KAAK,EAAE,WAAW,EAClB,YAAY,EAAE,cAAc,EAC5B,WAAW,EAAC,2BAA2B,EACvC,kBAAkB,EAAC,2BAA2B,GAC9C,GACG,EAEN,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,YAAY,IAAC,KAAK,EAAC,0BAA0B,GAAG,CAClD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACV,KAAC,UAAU,IACT,KAAK,EAAC,qBAAqB,EAC3B,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,OAAO,EACnB,QAAQ,EAAE,OAAO,GACjB,CACH,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACvB,KAAC,aAAa,IACZ,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,EACjC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,GACzF,CACH,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,YAC7B,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACpC,KAAC,YAAY,IAEX,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,EAAE,EAAE,CAAC,IAF/C,QAAQ,CAAC,EAAE,CAGhB,CACH,CAAC,GACG,CACR,IACe,CACnB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateCategoryTemplatesScreen.d.ts","sourceRoot":"","sources":["../../src/app/CreateCategoryTemplatesScreen.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,wBAAgB,6BAA6B,sBA2C5C"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { router, useLocalSearchParams } from 'expo-router';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { useTemplateCatalog } from '../hooks/useTemplateCatalog';
|
|
6
|
+
import { EmptyState, LoadingState, styles, TemplateCard, WorkspaceScreen, } from './workspace/WorkspacePrimitives';
|
|
7
|
+
import { resolveWorkspaceCategoryParam } from './workspace/routeParams';
|
|
8
|
+
export function CreateCategoryTemplatesScreen() {
|
|
9
|
+
const { category, categoryParam } = useCategoryRouteParams();
|
|
10
|
+
const { catalog, isLoading, error, refresh } = useTemplateCatalog();
|
|
11
|
+
const selected = category ? catalog.categories.find((entry) => entry.id === category) : undefined;
|
|
12
|
+
return (_jsx(WorkspaceScreen, { title: selected?.label ?? 'Templates', subtitle: categoryParam, children: isLoading ? (_jsx(LoadingState, { label: "Loading templates" })) : error ? (_jsx(EmptyState, { title: "Catalog load failed", detail: error, actionLabel: "Retry", onAction: refresh })) : !selected ? (_jsx(EmptyState, { title: "Category not found", detail: `The requested template category "${categoryParam}" is not available.`, actionLabel: "Back to categories", onAction: () => router.replace('/create') })) : selected.templates.length === 0 ? (_jsx(EmptyState, { title: "No templates in this category", detail: "Choose a different category.", actionLabel: "Back to categories", onAction: () => router.push('/create') })) : (_jsx(View, { style: styles.templateGrid, children: selected.templates.map((template) => (_jsx(TemplateCard, { template: template, onPress: () => router.push(`/create/${category}/${template.templateId}`) }, template.id))) })) }));
|
|
13
|
+
}
|
|
14
|
+
function useCategoryRouteParams() {
|
|
15
|
+
const params = useLocalSearchParams();
|
|
16
|
+
return resolveWorkspaceCategoryParam(firstParam(params.category));
|
|
17
|
+
}
|
|
18
|
+
function firstParam(value) {
|
|
19
|
+
return Array.isArray(value) ? (value[0] ?? '') : (value ?? '');
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=CreateCategoryTemplatesScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateCategoryTemplatesScreen.js","sourceRoot":"","sources":["../../src/app/CreateCategoryTemplatesScreen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EACL,UAAU,EACV,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,eAAe,GAChB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAExE,MAAM,UAAU,6BAA6B;IAC3C,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAC7D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,kBAAkB,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAElG,OAAO,CACL,KAAC,eAAe,IAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,WAAW,EAAE,QAAQ,EAAE,aAAa,YAC5E,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,YAAY,IAAC,KAAK,EAAC,mBAAmB,GAAG,CAC3C,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACV,KAAC,UAAU,IACT,KAAK,EAAC,qBAAqB,EAC3B,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,OAAO,EACnB,QAAQ,EAAE,OAAO,GACjB,CACH,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CACd,KAAC,UAAU,IACT,KAAK,EAAC,oBAAoB,EAC1B,MAAM,EAAE,oCAAoC,aAAa,qBAAqB,EAC9E,WAAW,EAAC,oBAAoB,EAChC,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GACzC,CACH,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACpC,KAAC,UAAU,IACT,KAAK,EAAC,+BAA+B,EACrC,MAAM,EAAC,8BAA8B,EACrC,WAAW,EAAC,oBAAoB,EAChC,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GACtC,CACH,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,YAC7B,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACpC,KAAC,YAAY,IAEX,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,QAAQ,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,IAFnE,QAAQ,CAAC,EAAE,CAGhB,CACH,CAAC,GACG,CACR,GACe,CACnB,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,MAAM,GAAG,oBAAoB,EAAyB,CAAC;IAC7D,OAAO,6BAA6B,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,UAAU,CAAC,KAAoC;IACtD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateProjectFromTemplateScreen.d.ts","sourceRoot":"","sources":["../../src/app/CreateProjectFromTemplateScreen.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAmBjD,wBAAgB,+BAA+B,sBA6H9C"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Heading, Text } from '@ankhorage/zora';
|
|
3
|
+
import { router, useLocalSearchParams } from 'expo-router';
|
|
4
|
+
import React, { useMemo, useState } from 'react';
|
|
5
|
+
import { View } from 'react-native';
|
|
6
|
+
import { ProjectCreationError, useProjects } from '../hooks/useProjects';
|
|
7
|
+
import { useTemplateCatalog } from '../hooks/useTemplateCatalog';
|
|
8
|
+
import { EmptyState, InlineMessage, LoadingState, MetadataRows, PrimaryAction, SecondaryAction, styles, ThemedWorkspaceTextInput, WorkspaceScreen, } from './workspace/WorkspacePrimitives';
|
|
9
|
+
import { resolveCreateProjectFormState } from './workspace/createProjectFormState';
|
|
10
|
+
import { resolveWorkspaceCategoryParam } from './workspace/routeParams';
|
|
11
|
+
export function CreateProjectFromTemplateScreen() {
|
|
12
|
+
const { category, categoryParam, templateId } = useTemplateRouteParams();
|
|
13
|
+
const { catalog, isLoading, error, refresh } = useTemplateCatalog();
|
|
14
|
+
const { projects, isLoading: projectsLoading, error: projectsError, refresh: refreshProjects, createProject, } = useProjects();
|
|
15
|
+
const selectedCategory = category
|
|
16
|
+
? catalog.categories.find((entry) => entry.id === category)
|
|
17
|
+
: undefined;
|
|
18
|
+
const template = selectedCategory?.templates.find((entry) => entry.templateId === templateId);
|
|
19
|
+
const [projectName, setProjectName] = useState('');
|
|
20
|
+
const [isCreating, setIsCreating] = useState(false);
|
|
21
|
+
const [submitError, setSubmitError] = useState(null);
|
|
22
|
+
const formState = useMemo(() => resolveCreateProjectFormState({
|
|
23
|
+
projectName,
|
|
24
|
+
existingProjects: projects,
|
|
25
|
+
projectsLoading,
|
|
26
|
+
projectsError,
|
|
27
|
+
templateAvailable: template !== undefined,
|
|
28
|
+
isCreating,
|
|
29
|
+
}), [projectName, projects, projectsLoading, projectsError, template, isCreating]);
|
|
30
|
+
async function handleCreate() {
|
|
31
|
+
if (!category || !template || formState.validation?.ok !== true)
|
|
32
|
+
return;
|
|
33
|
+
setIsCreating(true);
|
|
34
|
+
setSubmitError(null);
|
|
35
|
+
try {
|
|
36
|
+
const result = await createProject({
|
|
37
|
+
category,
|
|
38
|
+
templateId: template.templateId,
|
|
39
|
+
name: projectName,
|
|
40
|
+
});
|
|
41
|
+
router.replace(`/projects/${result.id}`);
|
|
42
|
+
}
|
|
43
|
+
catch (caught) {
|
|
44
|
+
console.error(caught);
|
|
45
|
+
setSubmitError(caught instanceof ProjectCreationError ? caught.reason.message : 'Project creation failed.');
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
setIsCreating(false);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return (_jsx(WorkspaceScreen, { title: "Create Project", subtitle: selectedCategory?.label ?? categoryParam, children: isLoading ? (_jsx(LoadingState, { label: "Loading template" })) : error ? (_jsx(EmptyState, { title: "Catalog load failed", detail: error, actionLabel: "Retry", onAction: refresh })) : !selectedCategory ? (_jsx(EmptyState, { title: "Category not found", detail: `The requested template category "${categoryParam}" is not available.`, actionLabel: "Back to categories", onAction: () => router.replace('/create') })) : !template ? (_jsx(EmptyState, { title: "Template not found", detail: "The selected template is not available.", actionLabel: "Back to templates", onAction: () => router.replace(`/create/${selectedCategory.id}`) })) : (_jsxs(View, { style: styles.createLayout, children: [_jsxs(View, { style: styles.detailPanel, children: [_jsx(Text, { color: "neutral", emphasis: "muted", variant: "caption", children: "Template" }), _jsx(Heading, { level: 2, text: template.name }), _jsx(Text, { color: "neutral", emphasis: "muted", children: template.description })] }), _jsxs(View, { style: styles.lifecyclePanel, children: [_jsx(Heading, { level: 3, text: "Project" }), _jsxs(View, { style: styles.fieldGroup, children: [_jsx(Text, { weight: "semiBold", children: "Project name" }), _jsx(ThemedWorkspaceTextInput, { value: projectName, onChangeText: setProjectName, placeholder: "Release Monitor", accessibilityLabel: "Project name" })] }), _jsx(MetadataRows, { rows: [['Project ID', formState.derivedProjectId || 'Derived from project name']] }), projectsLoading ? (_jsx(InlineMessage, { tone: "info", text: "Loading existing projects." })) : null, projectsError ? (_jsxs(View, { style: styles.actionStack, children: [_jsx(InlineMessage, { tone: "error", text: projectsError }), _jsx(SecondaryAction, { label: "Retry projects", onPress: refreshProjects })] })) : null, formState.validation?.ok === false && projectName.trim() ? (_jsx(InlineMessage, { tone: "error", text: formState.validation.reason.message })) : null, submitError ? _jsx(InlineMessage, { tone: "error", text: submitError }) : null, _jsx(PrimaryAction, { iconName: "checkmark-outline", label: isCreating ? 'Creating' : 'Create project', disabled: !formState.canCreate, onPress: () => void handleCreate() })] })] })) }));
|
|
52
|
+
}
|
|
53
|
+
function useTemplateRouteParams() {
|
|
54
|
+
const params = useLocalSearchParams();
|
|
55
|
+
const category = resolveWorkspaceCategoryParam(firstParam(params.category));
|
|
56
|
+
return {
|
|
57
|
+
...category,
|
|
58
|
+
templateId: firstParam(params.templateId),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function firstParam(value) {
|
|
62
|
+
return Array.isArray(value) ? (value[0] ?? '') : (value ?? '');
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=CreateProjectFromTemplateScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateProjectFromTemplateScreen.js","sourceRoot":"","sources":["../../src/app/CreateProjectFromTemplateScreen.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectDetailScreen.d.ts","sourceRoot":"","sources":["../../src/app/ProjectDetailScreen.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAiBxC,wBAAgB,mBAAmB,sBA+JlC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Heading } from '@ankhorage/zora';
|
|
3
|
+
import { router, useLocalSearchParams } from 'expo-router';
|
|
4
|
+
import React, { useState } from 'react';
|
|
5
|
+
import { Alert, Linking, View } from 'react-native';
|
|
6
|
+
import { useProjects } from '../hooks/useProjects';
|
|
7
|
+
import { confirmDelete, openProjectUrl } from '../workspacePlatform';
|
|
8
|
+
import { EmptyState, formatCategory, formatDate, InlineMessage, LifecycleAction, LoadingState, MetadataRows, styles, WorkspaceScreen, } from './workspace/WorkspacePrimitives';
|
|
9
|
+
export function ProjectDetailScreen() {
|
|
10
|
+
const { projectId } = useProjectRouteParams();
|
|
11
|
+
const { projects, isLoading, error, refresh, deleteProject, syncProject, upProjectInfrastructure, launchProject, } = useProjects();
|
|
12
|
+
const project = projects.find((candidate) => candidate.id === projectId);
|
|
13
|
+
const [activeAction, setActiveAction] = useState(null);
|
|
14
|
+
const [message, setMessage] = useState(null);
|
|
15
|
+
async function runAction(label, action) {
|
|
16
|
+
setActiveAction(label);
|
|
17
|
+
setMessage(null);
|
|
18
|
+
try {
|
|
19
|
+
const text = await action();
|
|
20
|
+
setMessage({ tone: 'success', text });
|
|
21
|
+
await refresh();
|
|
22
|
+
}
|
|
23
|
+
catch (caught) {
|
|
24
|
+
console.error(caught);
|
|
25
|
+
setMessage({
|
|
26
|
+
tone: 'error',
|
|
27
|
+
text: caught instanceof Error ? caught.message : `${label} failed.`,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
finally {
|
|
31
|
+
setActiveAction(null);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const handleOpenRunningApp = () => runAction('Open running app', async () => {
|
|
35
|
+
const response = await launchProject(projectId);
|
|
36
|
+
const url = response.url ?? '';
|
|
37
|
+
if (!url) {
|
|
38
|
+
throw new Error('The host did not return a running app URL.');
|
|
39
|
+
}
|
|
40
|
+
if (!openProjectUrl(url)) {
|
|
41
|
+
await Linking.openURL(url);
|
|
42
|
+
}
|
|
43
|
+
return response.started === false
|
|
44
|
+
? `Running app already available at ${url}.`
|
|
45
|
+
: `Running app opened at ${url}.`;
|
|
46
|
+
});
|
|
47
|
+
const handleDelete = () => {
|
|
48
|
+
if (!project)
|
|
49
|
+
return;
|
|
50
|
+
confirmDelete(project.name, () => {
|
|
51
|
+
void runAction('Delete project', async () => {
|
|
52
|
+
await deleteProject(project.id);
|
|
53
|
+
router.replace('/');
|
|
54
|
+
return `Deleted ${project.name}.`;
|
|
55
|
+
});
|
|
56
|
+
}, Alert.alert);
|
|
57
|
+
};
|
|
58
|
+
return (_jsx(WorkspaceScreen, { title: "Project Detail", subtitle: projectId, children: isLoading ? (_jsx(LoadingState, { label: "Loading project" })) : error ? (_jsx(EmptyState, { title: "Host connection failed", detail: error, actionLabel: "Retry", onAction: refresh })) : !project ? (_jsx(EmptyState, { title: "Project not found", detail: "The requested project is not available in this workspace.", actionLabel: "Back to projects", onAction: () => router.replace('/') })) : (_jsxs(View, { style: styles.detailLayout, children: [_jsxs(View, { style: styles.detailPanel, children: [_jsx(View, { style: [
|
|
59
|
+
styles.themeStripe,
|
|
60
|
+
{ backgroundColor: project.activeTheme.light.primaryColor },
|
|
61
|
+
] }), _jsx(Heading, { level: 2, text: project.name }), _jsx(MetadataRows, { rows: [
|
|
62
|
+
['Project ID', project.id],
|
|
63
|
+
['Version', project.version],
|
|
64
|
+
['Category', formatCategory(project.category)],
|
|
65
|
+
['Path', project.path],
|
|
66
|
+
['Created', formatDate(project.created)],
|
|
67
|
+
['Updated', formatDate(project.updated)],
|
|
68
|
+
] })] }), _jsxs(View, { style: styles.lifecyclePanel, children: [_jsx(Heading, { level: 3, text: "Lifecycle" }), message ? _jsx(InlineMessage, { tone: message.tone, text: message.text }) : null, _jsxs(View, { style: styles.actionStack, children: [_jsx(LifecycleAction, { iconName: "refresh-outline", label: "Sync", detail: "Synchronize the current Studio manifest and generated files.", loading: activeAction === 'Sync', disabled: activeAction !== null, onPress: () => void runAction('Sync', async () => {
|
|
69
|
+
await syncProject(project.id);
|
|
70
|
+
return 'Project synchronized.';
|
|
71
|
+
}) }), _jsx(LifecycleAction, { iconName: "cloud-upload-outline", label: "Infrastructure Up", detail: "Regenerate artifacts and start the generated infrastructure lifecycle.", loading: activeAction === 'Infrastructure Up', disabled: activeAction !== null, onPress: () => void runAction('Infrastructure Up', async () => {
|
|
72
|
+
await upProjectInfrastructure(project.id);
|
|
73
|
+
return 'Infrastructure up lifecycle completed.';
|
|
74
|
+
}) }), _jsx(LifecycleAction, { iconName: "open-outline", label: "Open running app", detail: "Open the infrastructure-hosted app through the active port-forward.", loading: activeAction === 'Open running app', disabled: activeAction !== null, onPress: handleOpenRunningApp }), _jsx(LifecycleAction, { iconName: "trash-outline", label: "Delete project", detail: "Delete generated project files after confirmation.", loading: activeAction === 'Delete project', disabled: activeAction !== null, destructive: true, onPress: handleDelete })] })] })] })) }));
|
|
75
|
+
}
|
|
76
|
+
function useProjectRouteParams() {
|
|
77
|
+
const params = useLocalSearchParams();
|
|
78
|
+
return { projectId: firstParam(params.projectId) };
|
|
79
|
+
}
|
|
80
|
+
function firstParam(value) {
|
|
81
|
+
return Array.isArray(value) ? (value[0] ?? '') : (value ?? '');
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=ProjectDetailScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectDetailScreen.js","sourceRoot":"","sources":["../../src/app/ProjectDetailScreen.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectsOverviewScreen.d.ts","sourceRoot":"","sources":["../../src/app/ProjectsOverviewScreen.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAiBjD,wBAAgB,sBAAsB,sBAyErC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { router } from 'expo-router';
|
|
3
|
+
import React, { useMemo, useState } from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { useProjects } from '../hooks/useProjects';
|
|
6
|
+
import { filterAndSortProjects } from '../workspaceSearch';
|
|
7
|
+
import { EmptyState, LoadingState, PrimaryAction, ProjectOverviewCard, SegmentedControl, styles, ThemedWorkspaceTextInput, WorkspaceScreen, } from './workspace/WorkspacePrimitives';
|
|
8
|
+
export function ProjectsOverviewScreen() {
|
|
9
|
+
const { projects, isLoading, error, refresh } = useProjects();
|
|
10
|
+
const [searchQuery, setSearchQuery] = useState('');
|
|
11
|
+
const [sort, setSort] = useState('updated-desc');
|
|
12
|
+
const filteredProjects = useMemo(() => filterAndSortProjects(projects, searchQuery, sort), [projects, searchQuery, sort]);
|
|
13
|
+
return (_jsxs(WorkspaceScreen, { title: "Projects", subtitle: "Choose a workspace project.", children: [_jsxs(View, { style: styles.toolbar, children: [_jsx(ThemedWorkspaceTextInput, { value: searchQuery, onChangeText: setSearchQuery, placeholder: "Search projects", accessibilityLabel: "Search projects" }), _jsx(SegmentedControl, { value: sort, options: [
|
|
14
|
+
{ label: 'Updated', value: 'updated-desc' },
|
|
15
|
+
{ label: 'Name', value: 'name-asc' },
|
|
16
|
+
], onChange: (value) => setSort(value) }), _jsx(PrimaryAction, { iconName: "add-outline", label: "New project", onPress: () => router.push('/create') })] }), isLoading ? (_jsx(LoadingState, { label: "Loading projects" })) : error ? (_jsx(EmptyState, { title: "Host connection failed", detail: error, actionLabel: "Retry", onAction: refresh })) : filteredProjects.length === 0 ? (_jsx(EmptyState, { title: searchQuery.trim() ? 'No matching projects' : 'No projects yet', detail: searchQuery.trim()
|
|
17
|
+
? 'Clear search or choose a different project query.'
|
|
18
|
+
: 'Create the first generated app for this workspace.', actionLabel: searchQuery.trim() ? 'Clear search' : 'New project', onAction: () => {
|
|
19
|
+
if (searchQuery.trim()) {
|
|
20
|
+
setSearchQuery('');
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
router.push('/create');
|
|
24
|
+
}
|
|
25
|
+
} })) : (_jsx(View, { style: styles.projectGrid, children: filteredProjects.map((project) => (_jsx(ProjectOverviewCard, { project: project, onPress: () => router.push(`/projects/${project.id}`) }, project.id))) }))] }));
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=ProjectsOverviewScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectsOverviewScreen.js","sourceRoot":"","sources":["../../src/app/ProjectsOverviewScreen.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StudioApp.d.ts","sourceRoot":"","sources":["../../src/app/StudioApp.tsx"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"StudioApp.d.ts","sourceRoot":"","sources":["../../src/app/StudioApp.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAOxC,wBAAgB,SAAS,sBAoBxB"}
|
package/dist/app/StudioApp.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useZoraTheme, ZoraProvider } from '@ankhorage/zora';
|
|
2
|
+
import { Icon, Text, useZoraTheme, ZoraProvider } from '@ankhorage/zora';
|
|
3
3
|
import { Ionicons } from '@expo/vector-icons';
|
|
4
4
|
import { useFonts } from 'expo-font';
|
|
5
|
-
import {
|
|
5
|
+
import { Stack, router, usePathname } from 'expo-router';
|
|
6
6
|
import { StatusBar } from 'expo-status-bar';
|
|
7
|
-
import React from 'react';
|
|
8
|
-
import { ActivityIndicator, StyleSheet, View } from 'react-native';
|
|
9
|
-
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
|
7
|
+
import React, { useState } from 'react';
|
|
8
|
+
import { ActivityIndicator, Pressable, StyleSheet, View } from 'react-native';
|
|
9
|
+
import { SafeAreaProvider, SafeAreaView } from 'react-native-safe-area-context';
|
|
10
|
+
import { useWorkspaceActions } from '../hooks/useWorkspaceActions';
|
|
11
|
+
import { resolveWorkspaceParentPath } from './workspace/navigation';
|
|
10
12
|
export function StudioApp() {
|
|
11
13
|
const [fontsLoaded] = useFonts({
|
|
12
14
|
...Ionicons.font,
|
|
@@ -17,8 +19,64 @@ export function StudioApp() {
|
|
|
17
19
|
return (_jsx(SafeAreaProvider, { children: _jsx(ZoraProvider, { initialMode: "dark", children: _jsx(StudioAppRootContent, {}) }) }));
|
|
18
20
|
}
|
|
19
21
|
function StudioAppRootContent() {
|
|
22
|
+
const { theme, mode, setMode } = useZoraTheme();
|
|
23
|
+
const { installWorkspacePackages } = useWorkspaceActions();
|
|
24
|
+
const pathname = usePathname();
|
|
25
|
+
const parentPath = resolveWorkspaceParentPath(pathname);
|
|
26
|
+
const [menuOpen, setMenuOpen] = useState(false);
|
|
27
|
+
const [installState, setInstallState] = useState('idle');
|
|
28
|
+
async function handleInstallWorkspacePackages() {
|
|
29
|
+
setInstallState('running');
|
|
30
|
+
setMenuOpen(false);
|
|
31
|
+
try {
|
|
32
|
+
await installWorkspacePackages();
|
|
33
|
+
setInstallState('success');
|
|
34
|
+
}
|
|
35
|
+
catch (caught) {
|
|
36
|
+
console.error(caught);
|
|
37
|
+
setInstallState('error');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function handleBack() {
|
|
41
|
+
if (!parentPath)
|
|
42
|
+
return;
|
|
43
|
+
if (router.canGoBack()) {
|
|
44
|
+
router.back();
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
router.replace(parentPath);
|
|
48
|
+
}
|
|
49
|
+
return (_jsxs(View, { style: [styles.root, { backgroundColor: theme.colors.background }], children: [_jsxs(SafeAreaView, { edges: ['top', 'left', 'right'], style: [
|
|
50
|
+
styles.appBar,
|
|
51
|
+
{ backgroundColor: theme.colors.surface, borderBottomColor: theme.colors.border },
|
|
52
|
+
], children: [parentPath ? (_jsx(IconButton, { label: "Back", iconName: "chevron-back", onPress: handleBack })) : null, _jsx(AppBarBrand, {}), _jsxs(View, { style: styles.appBarActions, children: [installState === 'running' ? (_jsx(ActivityIndicator, { color: theme.colors.primary })) : installState === 'success' ? (_jsx(Text, { color: "primary", variant: "caption", children: "Packages installed" })) : installState === 'error' ? (_jsx(Text, { color: "danger", variant: "caption", children: "Install failed" })) : null, _jsx(IconButton, { label: mode === 'dark' ? 'Use light mode' : 'Use dark mode', iconName: mode === 'dark' ? 'sunny-outline' : 'moon-outline', onPress: () => setMode(mode === 'dark' ? 'light' : 'dark') }), _jsxs(View, { children: [_jsx(IconButton, { label: "Workspace menu", iconName: "ellipsis-horizontal", onPress: () => setMenuOpen((open) => !open) }), menuOpen ? (_jsx(View, { style: [
|
|
53
|
+
styles.workspaceMenu,
|
|
54
|
+
{ backgroundColor: theme.colors.surface, borderColor: theme.colors.border },
|
|
55
|
+
], children: _jsx(WorkspaceMenuItem, { onPress: () => void handleInstallWorkspacePackages(), disabled: installState === 'running' }) })) : null] })] })] }), _jsx(Stack, { screenOptions: { headerShown: false } }), _jsx(StatusBar, { style: mode === 'dark' ? 'light' : 'dark' })] }));
|
|
56
|
+
}
|
|
57
|
+
function AppBarBrand() {
|
|
58
|
+
const { theme } = useZoraTheme();
|
|
59
|
+
const [focused, setFocused] = useState(false);
|
|
60
|
+
return (_jsxs(Pressable, { onPress: () => router.replace('/'), onFocus: () => setFocused(true), onBlur: () => setFocused(false), accessibilityRole: "button", accessibilityLabel: "Go to projects", style: [styles.brand, { borderColor: focused ? theme.colors.primary : 'transparent' }], children: [_jsx(Icon, { name: "cube-outline", provider: "Ionicons", size: 22, color: "primary" }), _jsx(Text, { weight: "semiBold", children: "Ankh Studio" })] }));
|
|
61
|
+
}
|
|
62
|
+
function IconButton(props) {
|
|
20
63
|
const { theme } = useZoraTheme();
|
|
21
|
-
|
|
64
|
+
const [focused, setFocused] = useState(false);
|
|
65
|
+
return (_jsx(Pressable, { onPress: props.onPress, onFocus: () => setFocused(true), onBlur: () => setFocused(false), accessibilityRole: "button", accessibilityLabel: props.label, style: ({ pressed }) => [
|
|
66
|
+
styles.iconButton,
|
|
67
|
+
{
|
|
68
|
+
borderColor: focused ? theme.colors.primary : theme.colors.border,
|
|
69
|
+
opacity: pressed ? 0.82 : 1,
|
|
70
|
+
},
|
|
71
|
+
], children: _jsx(Icon, { name: props.iconName, provider: "Ionicons", size: 18, color: "text" }) }));
|
|
72
|
+
}
|
|
73
|
+
function WorkspaceMenuItem(props) {
|
|
74
|
+
const { theme } = useZoraTheme();
|
|
75
|
+
const [focused, setFocused] = useState(false);
|
|
76
|
+
return (_jsxs(Pressable, { onPress: props.onPress, onFocus: () => setFocused(true), onBlur: () => setFocused(false), disabled: props.disabled, accessibilityRole: "button", accessibilityLabel: "Install workspace packages", style: [
|
|
77
|
+
styles.workspaceMenuItem,
|
|
78
|
+
{ borderColor: focused ? theme.colors.primary : 'transparent' },
|
|
79
|
+
], children: [_jsx(Icon, { name: "download-outline", provider: "Ionicons", size: 16, color: "primary" }), _jsx(Text, { variant: "bodySmall", weight: "semiBold", children: "Install workspace packages" })] }));
|
|
22
80
|
}
|
|
23
81
|
const styles = StyleSheet.create({
|
|
24
82
|
loadingContainer: {
|
|
@@ -32,5 +90,57 @@ const styles = StyleSheet.create({
|
|
|
32
90
|
flex: 1,
|
|
33
91
|
elevation: 0,
|
|
34
92
|
},
|
|
93
|
+
appBar: {
|
|
94
|
+
minHeight: 56,
|
|
95
|
+
borderBottomWidth: 1,
|
|
96
|
+
paddingHorizontal: 16,
|
|
97
|
+
flexDirection: 'row',
|
|
98
|
+
alignItems: 'center',
|
|
99
|
+
justifyContent: 'space-between',
|
|
100
|
+
gap: 12,
|
|
101
|
+
zIndex: 2,
|
|
102
|
+
},
|
|
103
|
+
brand: {
|
|
104
|
+
borderWidth: 1,
|
|
105
|
+
borderRadius: 8,
|
|
106
|
+
flexDirection: 'row',
|
|
107
|
+
alignItems: 'center',
|
|
108
|
+
gap: 8,
|
|
109
|
+
minHeight: 42,
|
|
110
|
+
paddingHorizontal: 8,
|
|
111
|
+
flexShrink: 1,
|
|
112
|
+
},
|
|
113
|
+
appBarActions: {
|
|
114
|
+
flexDirection: 'row',
|
|
115
|
+
alignItems: 'center',
|
|
116
|
+
gap: 10,
|
|
117
|
+
},
|
|
118
|
+
iconButton: {
|
|
119
|
+
width: 38,
|
|
120
|
+
height: 38,
|
|
121
|
+
borderRadius: 8,
|
|
122
|
+
borderWidth: 1,
|
|
123
|
+
alignItems: 'center',
|
|
124
|
+
justifyContent: 'center',
|
|
125
|
+
},
|
|
126
|
+
workspaceMenu: {
|
|
127
|
+
position: 'absolute',
|
|
128
|
+
right: 0,
|
|
129
|
+
top: 44,
|
|
130
|
+
minWidth: 230,
|
|
131
|
+
borderWidth: 1,
|
|
132
|
+
borderRadius: 8,
|
|
133
|
+
padding: 6,
|
|
134
|
+
zIndex: 3,
|
|
135
|
+
},
|
|
136
|
+
workspaceMenuItem: {
|
|
137
|
+
minHeight: 38,
|
|
138
|
+
borderWidth: 1,
|
|
139
|
+
borderRadius: 6,
|
|
140
|
+
flexDirection: 'row',
|
|
141
|
+
alignItems: 'center',
|
|
142
|
+
gap: 8,
|
|
143
|
+
paddingHorizontal: 10,
|
|
144
|
+
},
|
|
35
145
|
});
|
|
36
146
|
//# sourceMappingURL=StudioApp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StudioApp.js","sourceRoot":"","sources":["../../src/app/StudioApp.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"StudioApp.js","sourceRoot":"","sources":["../../src/app/StudioApp.tsx"],"names":[],"mappings":"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"}
|
package/dist/app/index.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
export { CreateCategoriesScreen } from './CreateCategoriesScreen';
|
|
2
|
+
export { CreateCategoryTemplatesScreen } from './CreateCategoryTemplatesScreen';
|
|
3
|
+
export { CreateProjectFromTemplateScreen } from './CreateProjectFromTemplateScreen';
|
|
4
|
+
export { ProjectDetailScreen } from './ProjectDetailScreen';
|
|
5
|
+
export { ProjectsOverviewScreen } from './ProjectsOverviewScreen';
|
|
1
6
|
export { StudioApp } from './StudioApp';
|
|
2
|
-
export { StudioDashboard } from './StudioDashboard';
|
|
3
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/app/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/app/index.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
export { CreateCategoriesScreen } from './CreateCategoriesScreen';
|
|
2
|
+
export { CreateCategoryTemplatesScreen } from './CreateCategoryTemplatesScreen';
|
|
3
|
+
export { CreateProjectFromTemplateScreen } from './CreateProjectFromTemplateScreen';
|
|
4
|
+
export { ProjectDetailScreen } from './ProjectDetailScreen';
|
|
5
|
+
export { ProjectsOverviewScreen } from './ProjectsOverviewScreen';
|
|
1
6
|
export { StudioApp } from './StudioApp';
|
|
2
|
-
export { StudioDashboard } from './StudioDashboard';
|
|
3
7
|
//# sourceMappingURL=index.js.map
|
package/dist/app/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|