@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.
Files changed (150) hide show
  1. package/README.md +2 -1
  2. package/dist/app/CreateCategoriesScreen.d.ts +3 -0
  3. package/dist/app/CreateCategoriesScreen.d.ts.map +1 -0
  4. package/dist/app/CreateCategoriesScreen.js +14 -0
  5. package/dist/app/CreateCategoriesScreen.js.map +1 -0
  6. package/dist/app/CreateCategoryTemplatesScreen.d.ts +3 -0
  7. package/dist/app/CreateCategoryTemplatesScreen.d.ts.map +1 -0
  8. package/dist/app/CreateCategoryTemplatesScreen.js +21 -0
  9. package/dist/app/CreateCategoryTemplatesScreen.js.map +1 -0
  10. package/dist/app/CreateProjectFromTemplateScreen.d.ts +3 -0
  11. package/dist/app/CreateProjectFromTemplateScreen.d.ts.map +1 -0
  12. package/dist/app/CreateProjectFromTemplateScreen.js +64 -0
  13. package/dist/app/CreateProjectFromTemplateScreen.js.map +1 -0
  14. package/dist/app/ProjectDetailScreen.d.ts +3 -0
  15. package/dist/app/ProjectDetailScreen.d.ts.map +1 -0
  16. package/dist/app/ProjectDetailScreen.js +83 -0
  17. package/dist/app/ProjectDetailScreen.js.map +1 -0
  18. package/dist/app/ProjectsOverviewScreen.d.ts +3 -0
  19. package/dist/app/ProjectsOverviewScreen.d.ts.map +1 -0
  20. package/dist/app/ProjectsOverviewScreen.js +27 -0
  21. package/dist/app/ProjectsOverviewScreen.js.map +1 -0
  22. package/dist/app/StudioApp.d.ts.map +1 -1
  23. package/dist/app/StudioApp.js +116 -6
  24. package/dist/app/StudioApp.js.map +1 -1
  25. package/dist/app/index.d.ts +5 -1
  26. package/dist/app/index.d.ts.map +1 -1
  27. package/dist/app/index.js +5 -1
  28. package/dist/app/index.js.map +1 -1
  29. package/dist/app/workspace/WorkspacePrimitives.d.ts +263 -0
  30. package/dist/app/workspace/WorkspacePrimitives.d.ts.map +1 -0
  31. package/dist/app/workspace/WorkspacePrimitives.js +340 -0
  32. package/dist/app/workspace/WorkspacePrimitives.js.map +1 -0
  33. package/dist/app/workspace/createProjectFormState.d.ts +16 -0
  34. package/dist/app/workspace/createProjectFormState.d.ts.map +1 -0
  35. package/dist/app/workspace/createProjectFormState.js +22 -0
  36. package/dist/app/workspace/createProjectFormState.js.map +1 -0
  37. package/dist/app/workspace/navigation.d.ts +2 -0
  38. package/dist/app/workspace/navigation.d.ts.map +1 -0
  39. package/dist/app/workspace/navigation.js +23 -0
  40. package/dist/app/workspace/navigation.js.map +1 -0
  41. package/dist/app/workspace/routeParams.d.ts +7 -0
  42. package/dist/app/workspace/routeParams.d.ts.map +1 -0
  43. package/dist/app/workspace/routeParams.js +8 -0
  44. package/dist/app/workspace/routeParams.js.map +1 -0
  45. package/dist/contractGuards.d.ts +6 -0
  46. package/dist/contractGuards.d.ts.map +1 -0
  47. package/dist/contractGuards.js +579 -0
  48. package/dist/contractGuards.js.map +1 -0
  49. package/dist/hooks/useProjects.d.ts +8 -16
  50. package/dist/hooks/useProjects.d.ts.map +1 -1
  51. package/dist/hooks/useProjects.js +65 -28
  52. package/dist/hooks/useProjects.js.map +1 -1
  53. package/dist/hooks/useTemplateCatalog.d.ts +8 -0
  54. package/dist/hooks/useTemplateCatalog.d.ts.map +1 -0
  55. package/dist/hooks/useTemplateCatalog.js +64 -0
  56. package/dist/hooks/useTemplateCatalog.js.map +1 -0
  57. package/dist/hooks/useWorkspaceActions.d.ts +8 -0
  58. package/dist/hooks/useWorkspaceActions.d.ts.map +1 -0
  59. package/dist/hooks/useWorkspaceActions.js +28 -0
  60. package/dist/hooks/useWorkspaceActions.js.map +1 -0
  61. package/dist/host/http/server.d.ts.map +1 -1
  62. package/dist/host/http/server.js +20 -12
  63. package/dist/host/http/server.js.map +1 -1
  64. package/dist/host/index.d.ts +1 -1
  65. package/dist/host/index.d.ts.map +1 -1
  66. package/dist/host/index.js +1 -1
  67. package/dist/host/index.js.map +1 -1
  68. package/dist/host/orchestrator/projectManager.d.ts.map +1 -1
  69. package/dist/host/orchestrator/projectManager.js +12 -11
  70. package/dist/host/orchestrator/projectManager.js.map +1 -1
  71. package/dist/host/orchestrator/projectStore.d.ts +4 -6
  72. package/dist/host/orchestrator/projectStore.d.ts.map +1 -1
  73. package/dist/host/orchestrator/projectStore.js +50 -22
  74. package/dist/host/orchestrator/projectStore.js.map +1 -1
  75. package/dist/host/orchestrator/scaffolder.d.ts +2 -2
  76. package/dist/host/orchestrator/scaffolder.d.ts.map +1 -1
  77. package/dist/host/orchestrator/scaffolder.js +8 -5
  78. package/dist/host/orchestrator/scaffolder.js.map +1 -1
  79. package/dist/host/orchestrator/templates.js +1 -1
  80. package/dist/host/templateRegistry/index.d.ts +2 -9
  81. package/dist/host/templateRegistry/index.d.ts.map +1 -1
  82. package/dist/host/templateRegistry/index.js +29 -15
  83. package/dist/host/templateRegistry/index.js.map +1 -1
  84. package/dist/index.d.ts +3 -0
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +1 -0
  87. package/dist/index.js.map +1 -1
  88. package/dist/projectIdentity.d.ts +11 -0
  89. package/dist/projectIdentity.d.ts.map +1 -0
  90. package/dist/projectIdentity.js +74 -0
  91. package/dist/projectIdentity.js.map +1 -0
  92. package/dist/projectWorkspaceContracts.d.ts +28 -0
  93. package/dist/projectWorkspaceContracts.d.ts.map +1 -0
  94. package/dist/projectWorkspaceContracts.js +2 -0
  95. package/dist/projectWorkspaceContracts.js.map +1 -0
  96. package/dist/root.d.ts +1 -1
  97. package/dist/root.d.ts.map +1 -1
  98. package/dist/root.js +1 -1
  99. package/dist/root.js.map +1 -1
  100. package/dist/templateCatalogContracts.d.ts +25 -0
  101. package/dist/templateCatalogContracts.d.ts.map +1 -0
  102. package/dist/templateCatalogContracts.js +2 -0
  103. package/dist/templateCatalogContracts.js.map +1 -0
  104. package/dist/ui/admin/pages/AuthAdminPage.js +7 -1
  105. package/dist/ui/admin/pages/AuthAdminPage.js.map +1 -1
  106. package/dist/workspacePlatform.d.ts +15 -0
  107. package/dist/workspacePlatform.d.ts.map +1 -0
  108. package/dist/workspacePlatform.js +43 -0
  109. package/dist/workspacePlatform.js.map +1 -0
  110. package/dist/workspaceSearch.d.ts +5 -0
  111. package/dist/workspaceSearch.d.ts.map +1 -0
  112. package/dist/workspaceSearch.js +60 -0
  113. package/dist/workspaceSearch.js.map +1 -0
  114. package/package.json +6 -4
  115. package/dist/app/StudioDashboard.d.ts +0 -3
  116. package/dist/app/StudioDashboard.d.ts.map +0 -1
  117. package/dist/app/StudioDashboard.js +0 -192
  118. package/dist/app/StudioDashboard.js.map +0 -1
  119. package/dist/hooks/useTemplateSummaries.d.ts +0 -8
  120. package/dist/hooks/useTemplateSummaries.d.ts.map +0 -1
  121. package/dist/hooks/useTemplateSummaries.js +0 -54
  122. package/dist/hooks/useTemplateSummaries.js.map +0 -1
  123. package/dist/modules/dashboard/platform.d.ts +0 -4
  124. package/dist/modules/dashboard/platform.d.ts.map +0 -1
  125. package/dist/modules/dashboard/platform.js +0 -24
  126. package/dist/modules/dashboard/platform.js.map +0 -1
  127. package/dist/modules/dashboard/search.d.ts +0 -4
  128. package/dist/modules/dashboard/search.d.ts.map +0 -1
  129. package/dist/modules/dashboard/search.js +0 -49
  130. package/dist/modules/dashboard/search.js.map +0 -1
  131. package/dist/modules/dashboard/templates.d.ts +0 -3
  132. package/dist/modules/dashboard/templates.d.ts.map +0 -1
  133. package/dist/modules/dashboard/templates.js +0 -4
  134. package/dist/modules/dashboard/templates.js.map +0 -1
  135. package/dist/modules/dashboard/types.d.ts +0 -15
  136. package/dist/modules/dashboard/types.d.ts.map +0 -1
  137. package/dist/modules/dashboard/types.js +0 -2
  138. package/dist/modules/dashboard/types.js.map +0 -1
  139. package/dist/modules/dashboard/ui/DashboardSectionHeader.d.ts +0 -6
  140. package/dist/modules/dashboard/ui/DashboardSectionHeader.d.ts.map +0 -1
  141. package/dist/modules/dashboard/ui/DashboardSectionHeader.js +0 -17
  142. package/dist/modules/dashboard/ui/DashboardSectionHeader.js.map +0 -1
  143. package/dist/modules/dashboard/ui/ProjectCard.d.ts +0 -16
  144. package/dist/modules/dashboard/ui/ProjectCard.d.ts.map +0 -1
  145. package/dist/modules/dashboard/ui/ProjectCard.js +0 -76
  146. package/dist/modules/dashboard/ui/ProjectCard.js.map +0 -1
  147. package/dist/modules/dashboard/ui/TemplateCard.d.ts +0 -10
  148. package/dist/modules/dashboard/ui/TemplateCard.d.ts.map +0 -1
  149. package/dist/modules/dashboard/ui/TemplateCard.js +0 -32
  150. package/dist/modules/dashboard/ui/TemplateCard.js.map +0 -1
@@ -0,0 +1,263 @@
1
+ import type { AppCategory } from '@ankhorage/contracts';
2
+ import React from 'react';
3
+ import { type TextInputProps } from 'react-native';
4
+ import type { StudioProjectSummary } from '../../projectWorkspaceContracts';
5
+ import type { TemplateCatalogCategory, TemplateEntry } from '../../templateCatalogContracts';
6
+ export { styles };
7
+ export declare function WorkspaceScreen(props: {
8
+ title: string;
9
+ subtitle: string;
10
+ children: React.ReactNode;
11
+ }): React.JSX.Element;
12
+ export declare function ThemedWorkspaceTextInput(props: TextInputProps): React.JSX.Element;
13
+ export declare function ProjectOverviewCard(props: {
14
+ project: StudioProjectSummary;
15
+ onPress: () => void;
16
+ }): React.JSX.Element;
17
+ export declare function CategoryCard(props: {
18
+ category: TemplateCatalogCategory;
19
+ onPress: () => void;
20
+ }): React.JSX.Element;
21
+ export declare function TemplateCard(props: {
22
+ template: {
23
+ name: string;
24
+ description: string;
25
+ };
26
+ onPress: () => void;
27
+ }): React.JSX.Element;
28
+ export declare function SearchResults(props: {
29
+ query: string;
30
+ results: TemplateEntry[];
31
+ onClear: () => void;
32
+ onPress: (template: TemplateEntry) => void;
33
+ }): React.JSX.Element;
34
+ export declare function LifecycleAction(props: {
35
+ iconName: string;
36
+ label: string;
37
+ detail: string;
38
+ loading: boolean;
39
+ disabled: boolean;
40
+ destructive?: boolean;
41
+ onPress: () => void;
42
+ }): React.JSX.Element;
43
+ export declare function PrimaryAction(props: {
44
+ iconName: string;
45
+ label: string;
46
+ disabled?: boolean;
47
+ onPress: () => void;
48
+ }): React.JSX.Element;
49
+ export declare function SecondaryAction(props: {
50
+ label: string;
51
+ onPress: () => void;
52
+ }): React.JSX.Element;
53
+ export declare function SegmentedControl<TValue extends string>(props: {
54
+ value: TValue;
55
+ options: readonly {
56
+ label: string;
57
+ value: TValue;
58
+ }[];
59
+ onChange: (value: TValue) => void;
60
+ }): React.JSX.Element;
61
+ export declare function MetadataRows(props: {
62
+ rows: readonly (readonly [string, string])[];
63
+ }): React.JSX.Element;
64
+ export declare function InlineMessage(props: {
65
+ tone: 'success' | 'error' | 'info';
66
+ text: string;
67
+ }): React.JSX.Element;
68
+ export declare function LoadingState(props: {
69
+ label: string;
70
+ }): React.JSX.Element;
71
+ export declare function EmptyState(props: {
72
+ title: string;
73
+ detail: string;
74
+ actionLabel?: string;
75
+ onAction?: () => void;
76
+ }): React.JSX.Element;
77
+ export declare function formatCategory(category: AppCategory): string;
78
+ export declare function formatDate(value: string | undefined): string;
79
+ declare const styles: {
80
+ safeArea: {
81
+ flex: number;
82
+ };
83
+ scroll: {
84
+ flex: number;
85
+ };
86
+ screenContent: {
87
+ width: "100%";
88
+ maxWidth: number;
89
+ alignSelf: "center";
90
+ padding: number;
91
+ paddingBottom: number;
92
+ gap: number;
93
+ };
94
+ screenHeader: {
95
+ gap: number;
96
+ };
97
+ toolbar: {
98
+ flexDirection: "row";
99
+ flexWrap: "wrap";
100
+ alignItems: "center";
101
+ gap: number;
102
+ };
103
+ searchInput: {
104
+ minWidth: number;
105
+ minHeight: number;
106
+ flexGrow: number;
107
+ borderWidth: number;
108
+ borderRadius: number;
109
+ paddingHorizontal: number;
110
+ paddingVertical: number;
111
+ };
112
+ segmented: {
113
+ flexDirection: "row";
114
+ borderWidth: number;
115
+ borderRadius: number;
116
+ overflow: "hidden";
117
+ };
118
+ segment: {
119
+ minHeight: number;
120
+ paddingHorizontal: number;
121
+ alignItems: "center";
122
+ justifyContent: "center";
123
+ };
124
+ primaryAction: {
125
+ minHeight: number;
126
+ borderWidth: number;
127
+ borderRadius: number;
128
+ paddingHorizontal: number;
129
+ flexDirection: "row";
130
+ alignItems: "center";
131
+ justifyContent: "center";
132
+ gap: number;
133
+ };
134
+ secondaryAction: {
135
+ minHeight: number;
136
+ borderWidth: number;
137
+ borderRadius: number;
138
+ paddingHorizontal: number;
139
+ alignItems: "center";
140
+ justifyContent: "center";
141
+ };
142
+ projectGrid: {
143
+ flexDirection: "row";
144
+ flexWrap: "wrap";
145
+ gap: number;
146
+ };
147
+ projectCard: {
148
+ width: number;
149
+ minHeight: number;
150
+ borderWidth: number;
151
+ borderRadius: number;
152
+ overflow: "hidden";
153
+ };
154
+ themeStripe: {
155
+ height: number;
156
+ width: "100%";
157
+ };
158
+ cardBody: {
159
+ padding: number;
160
+ gap: number;
161
+ };
162
+ categoryGrid: {
163
+ flexDirection: "row";
164
+ flexWrap: "wrap";
165
+ gap: number;
166
+ };
167
+ categoryCard: {
168
+ width: number;
169
+ minHeight: number;
170
+ borderWidth: number;
171
+ borderRadius: number;
172
+ padding: number;
173
+ gap: number;
174
+ };
175
+ categoryAccent: {
176
+ width: number;
177
+ height: number;
178
+ borderRadius: number;
179
+ };
180
+ templateGrid: {
181
+ flexDirection: "row";
182
+ flexWrap: "wrap";
183
+ gap: number;
184
+ };
185
+ templateCard: {
186
+ width: number;
187
+ minHeight: number;
188
+ borderWidth: number;
189
+ borderRadius: number;
190
+ padding: number;
191
+ gap: number;
192
+ };
193
+ detailLayout: {
194
+ flexDirection: "row";
195
+ flexWrap: "wrap";
196
+ gap: number;
197
+ alignItems: "flex-start";
198
+ };
199
+ createLayout: {
200
+ flexDirection: "row";
201
+ flexWrap: "wrap";
202
+ gap: number;
203
+ alignItems: "flex-start";
204
+ };
205
+ detailPanel: {
206
+ minWidth: number;
207
+ flex: number;
208
+ gap: number;
209
+ };
210
+ lifecyclePanel: {
211
+ minWidth: number;
212
+ flex: number;
213
+ gap: number;
214
+ };
215
+ actionStack: {
216
+ gap: number;
217
+ };
218
+ lifecycleAction: {
219
+ minHeight: number;
220
+ borderWidth: number;
221
+ borderRadius: number;
222
+ padding: number;
223
+ flexDirection: "row";
224
+ alignItems: "center";
225
+ gap: number;
226
+ };
227
+ lifecycleCopy: {
228
+ flex: number;
229
+ gap: number;
230
+ };
231
+ metadata: {
232
+ gap: number;
233
+ };
234
+ metadataRow: {
235
+ gap: number;
236
+ };
237
+ inlineMessage: {
238
+ borderWidth: number;
239
+ borderRadius: number;
240
+ padding: number;
241
+ };
242
+ emptyState: {
243
+ minHeight: number;
244
+ borderWidth: number;
245
+ borderStyle: "dashed";
246
+ borderRadius: number;
247
+ alignItems: "center";
248
+ justifyContent: "center";
249
+ padding: number;
250
+ gap: number;
251
+ };
252
+ fieldGroup: {
253
+ gap: number;
254
+ };
255
+ resultsHeader: {
256
+ flexDirection: "row";
257
+ alignItems: "center";
258
+ justifyContent: "space-between";
259
+ gap: number;
260
+ flexWrap: "wrap";
261
+ };
262
+ };
263
+ //# sourceMappingURL=WorkspacePrimitives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspacePrimitives.d.ts","sourceRoot":"","sources":["../../../src/app/workspace/WorkspacePrimitives.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,340 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Heading, Icon, Text, useZoraTheme } from '@ankhorage/zora';
3
+ import React, { useState } from 'react';
4
+ import { ActivityIndicator, Pressable, ScrollView, StyleSheet, TextInput, View, } from 'react-native';
5
+ import { SafeAreaView } from 'react-native-safe-area-context';
6
+ export { styles };
7
+ export function WorkspaceScreen(props) {
8
+ const { theme } = useZoraTheme();
9
+ return (_jsx(SafeAreaView, { edges: ['left', 'right', 'bottom'], style: [styles.safeArea, { backgroundColor: theme.colors.background }], children: _jsxs(ScrollView, { style: styles.scroll, contentContainerStyle: styles.screenContent, children: [_jsxs(View, { style: styles.screenHeader, children: [_jsx(Heading, { level: 1, text: props.title }), _jsx(Text, { color: "neutral", emphasis: "muted", children: props.subtitle })] }), props.children] }) }));
10
+ }
11
+ export function ThemedWorkspaceTextInput(props) {
12
+ const { theme } = useZoraTheme();
13
+ const [focused, setFocused] = useState(false);
14
+ const { onBlur, onFocus, style, ...inputProps } = props;
15
+ return (_jsx(TextInput, { ...inputProps, onBlur: (event) => {
16
+ setFocused(false);
17
+ onBlur?.(event);
18
+ }, onFocus: (event) => {
19
+ setFocused(true);
20
+ onFocus?.(event);
21
+ }, placeholderTextColor: theme.colors.textMuted, style: [
22
+ styles.searchInput,
23
+ {
24
+ color: theme.colors.text,
25
+ backgroundColor: theme.colors.surface,
26
+ borderColor: focused ? theme.colors.primary : theme.colors.border,
27
+ },
28
+ style,
29
+ ] }));
30
+ }
31
+ export function ProjectOverviewCard(props) {
32
+ const { theme } = useZoraTheme();
33
+ const [focused, setFocused] = useState(false);
34
+ const mode = props.project.activeThemeMode ?? 'light';
35
+ const accent = props.project.activeTheme[mode].primaryColor;
36
+ return (_jsxs(Pressable, { onPress: props.onPress, onFocus: () => setFocused(true), onBlur: () => setFocused(false), accessibilityRole: "button", accessibilityLabel: `Open ${props.project.name}`, style: ({ pressed }) => [
37
+ styles.projectCard,
38
+ {
39
+ borderColor: focused ? theme.colors.primary : theme.colors.border,
40
+ backgroundColor: theme.colors.surface,
41
+ opacity: pressed ? 0.82 : 1,
42
+ },
43
+ ], children: [_jsx(View, { style: [styles.themeStripe, { backgroundColor: accent }] }), _jsxs(View, { style: styles.cardBody, children: [_jsx(Text, { numberOfLines: 1, variant: "bodySmall", weight: "semiBold", children: props.project.name }), _jsxs(Text, { color: "neutral", emphasis: "muted", variant: "caption", children: [props.project.version, " \u00B7 ", formatCategory(props.project.category)] }), _jsxs(Text, { color: "neutral", emphasis: "muted", variant: "caption", children: ["Updated ", formatDate(props.project.updated)] })] })] }));
44
+ }
45
+ export function CategoryCard(props) {
46
+ const { theme } = useZoraTheme();
47
+ const [focused, setFocused] = useState(false);
48
+ return (_jsxs(Pressable, { onPress: props.onPress, onFocus: () => setFocused(true), onBlur: () => setFocused(false), accessibilityRole: "button", accessibilityLabel: `Browse ${props.category.label} templates`, style: ({ pressed }) => [
49
+ styles.categoryCard,
50
+ {
51
+ borderColor: focused ? theme.colors.primary : theme.colors.border,
52
+ backgroundColor: theme.colors.surface,
53
+ opacity: pressed ? 0.82 : 1,
54
+ },
55
+ ], children: [_jsx(View, { style: [styles.categoryAccent, { backgroundColor: props.category.primaryColor }] }), _jsx(Text, { numberOfLines: 1, weight: "semiBold", children: props.category.label }), _jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: props.category.summary }), _jsxs(Text, { color: "neutral", emphasis: "muted", variant: "caption", children: [props.category.templateCount, " templates"] })] }));
56
+ }
57
+ export function TemplateCard(props) {
58
+ const { theme } = useZoraTheme();
59
+ const [focused, setFocused] = useState(false);
60
+ return (_jsxs(Pressable, { onPress: props.onPress, onFocus: () => setFocused(true), onBlur: () => setFocused(false), accessibilityRole: "button", accessibilityLabel: `Select ${props.template.name}`, style: ({ pressed }) => [
61
+ styles.templateCard,
62
+ {
63
+ borderColor: focused ? theme.colors.primary : theme.colors.border,
64
+ backgroundColor: theme.colors.surface,
65
+ opacity: pressed ? 0.82 : 1,
66
+ },
67
+ ], children: [_jsx(Text, { numberOfLines: 1, weight: "semiBold", children: props.template.name }), _jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: props.template.description })] }));
68
+ }
69
+ export function SearchResults(props) {
70
+ return (_jsxs(View, { style: styles.actionStack, children: [_jsxs(View, { style: styles.resultsHeader, children: [_jsxs(Text, { color: "neutral", emphasis: "muted", children: [props.results.length, " results for \"", props.query, "\""] }), _jsx(SecondaryAction, { label: "Clear search", onPress: props.onClear })] }), props.results.length === 0 ? (_jsx(EmptyState, { title: "No matching templates", detail: "Search by template name, description, category label, or category ID.", actionLabel: "Clear search", onAction: props.onClear })) : (_jsx(View, { style: styles.templateGrid, children: props.results.map((template) => (_jsx(TemplateCard, { template: {
71
+ name: template.name,
72
+ description: `${template.categoryLabel}: ${template.description}`,
73
+ }, onPress: () => props.onPress(template) }, template.id))) }))] }));
74
+ }
75
+ export function LifecycleAction(props) {
76
+ const { theme } = useZoraTheme();
77
+ const [focused, setFocused] = useState(false);
78
+ return (_jsxs(Pressable, { onPress: props.onPress, onFocus: () => setFocused(true), onBlur: () => setFocused(false), disabled: props.disabled, accessibilityRole: "button", accessibilityLabel: props.label, style: ({ pressed }) => [
79
+ styles.lifecycleAction,
80
+ {
81
+ borderColor: focused ? theme.colors.primary : theme.colors.border,
82
+ backgroundColor: theme.colors.surface,
83
+ opacity: props.disabled && !props.loading ? 0.55 : pressed ? 0.82 : 1,
84
+ },
85
+ ], children: [props.loading ? (_jsx(ActivityIndicator, {})) : (_jsx(Icon, { name: props.iconName, size: 20, color: props.destructive ? 'error' : 'primary' })), _jsxs(View, { style: styles.lifecycleCopy, children: [_jsx(Text, { weight: "semiBold", children: props.label }), _jsx(Text, { color: "neutral", emphasis: "muted", variant: "caption", children: props.detail })] })] }));
86
+ }
87
+ export function PrimaryAction(props) {
88
+ const { theme } = useZoraTheme();
89
+ const [focused, setFocused] = useState(false);
90
+ return (_jsxs(Pressable, { onPress: props.onPress, onFocus: () => setFocused(true), onBlur: () => setFocused(false), disabled: props.disabled, accessibilityRole: "button", accessibilityLabel: props.label, style: ({ pressed }) => [
91
+ styles.primaryAction,
92
+ {
93
+ backgroundColor: theme.colors.primary,
94
+ borderColor: focused ? theme.colors.text : theme.colors.primary,
95
+ opacity: props.disabled ? 0.48 : pressed ? 0.82 : 1,
96
+ },
97
+ ], children: [_jsx(Icon, { name: props.iconName, size: 18, color: "#fff" }), _jsx(Text, { color: "neutral", emphasis: "inverse", weight: "semiBold", children: props.label })] }));
98
+ }
99
+ export function SecondaryAction(props) {
100
+ const { theme } = useZoraTheme();
101
+ const [focused, setFocused] = useState(false);
102
+ return (_jsx(Pressable, { onPress: props.onPress, onFocus: () => setFocused(true), onBlur: () => setFocused(false), accessibilityRole: "button", accessibilityLabel: props.label, style: ({ pressed }) => [
103
+ styles.secondaryAction,
104
+ {
105
+ borderColor: focused ? theme.colors.primary : theme.colors.border,
106
+ opacity: pressed ? 0.82 : 1,
107
+ },
108
+ ], children: _jsx(Text, { weight: "semiBold", children: props.label }) }));
109
+ }
110
+ export function SegmentedControl(props) {
111
+ const { theme } = useZoraTheme();
112
+ return (_jsx(View, { style: [styles.segmented, { borderColor: theme.colors.border }], children: props.options.map((option) => {
113
+ const selected = option.value === props.value;
114
+ return (_jsx(SegmentedOption, { option: option, selected: selected, onChange: props.onChange }, option.value));
115
+ }) }));
116
+ }
117
+ function SegmentedOption(props) {
118
+ const { theme } = useZoraTheme();
119
+ const [focused, setFocused] = useState(false);
120
+ return (_jsx(Pressable, { onPress: () => props.onChange(props.option.value), onFocus: () => setFocused(true), onBlur: () => setFocused(false), accessibilityRole: "button", accessibilityState: { selected: props.selected }, style: [
121
+ styles.segment,
122
+ props.selected ? { backgroundColor: theme.colors.primary } : undefined,
123
+ focused ? { borderColor: theme.colors.primary, borderWidth: 1 } : undefined,
124
+ ], children: _jsx(Text, { color: props.selected ? 'neutral' : 'neutral', emphasis: props.selected ? 'inverse' : 'default', variant: "bodySmall", weight: "semiBold", children: props.option.label }) }));
125
+ }
126
+ export function MetadataRows(props) {
127
+ return (_jsx(View, { style: styles.metadata, children: props.rows.map(([label, value]) => (_jsxs(View, { style: styles.metadataRow, children: [_jsx(Text, { color: "neutral", emphasis: "muted", variant: "caption", children: label }), _jsx(Text, { selectable: true, variant: "bodySmall", children: value })] }, label))) }));
128
+ }
129
+ export function InlineMessage(props) {
130
+ const { theme } = useZoraTheme();
131
+ const borderColor = props.tone === 'error' ? theme.colors.danger : theme.colors.primary;
132
+ return (_jsx(View, { style: [styles.inlineMessage, { borderColor }], children: _jsx(Text, { color: props.tone === 'error' ? 'danger' : 'primary', variant: "bodySmall", children: props.text }) }));
133
+ }
134
+ export function LoadingState(props) {
135
+ const { theme } = useZoraTheme();
136
+ return (_jsxs(View, { style: styles.emptyState, children: [_jsx(ActivityIndicator, { color: theme.colors.primary }), _jsx(Text, { color: "neutral", emphasis: "muted", children: props.label })] }));
137
+ }
138
+ export function EmptyState(props) {
139
+ const { theme } = useZoraTheme();
140
+ return (_jsxs(View, { style: [styles.emptyState, { borderColor: theme.colors.border }], children: [_jsx(Text, { weight: "semiBold", children: props.title }), _jsx(Text, { align: "center", color: "neutral", emphasis: "muted", children: props.detail }), props.actionLabel && props.onAction ? (_jsx(SecondaryAction, { label: props.actionLabel, onPress: props.onAction })) : null] }));
141
+ }
142
+ export function formatCategory(category) {
143
+ return category
144
+ .split('_')
145
+ .map((part) => `${part.charAt(0).toUpperCase()}${part.slice(1)}`)
146
+ .join(' ');
147
+ }
148
+ export function formatDate(value) {
149
+ if (!value)
150
+ return 'Not recorded';
151
+ const date = new Date(value);
152
+ if (Number.isNaN(date.getTime()))
153
+ return value;
154
+ return date.toLocaleString();
155
+ }
156
+ const styles = StyleSheet.create({
157
+ safeArea: {
158
+ flex: 1,
159
+ },
160
+ scroll: {
161
+ flex: 1,
162
+ },
163
+ screenContent: {
164
+ width: '100%',
165
+ maxWidth: 1180,
166
+ alignSelf: 'center',
167
+ padding: 20,
168
+ paddingBottom: 48,
169
+ gap: 20,
170
+ },
171
+ screenHeader: {
172
+ gap: 4,
173
+ },
174
+ toolbar: {
175
+ flexDirection: 'row',
176
+ flexWrap: 'wrap',
177
+ alignItems: 'center',
178
+ gap: 12,
179
+ },
180
+ searchInput: {
181
+ minWidth: 240,
182
+ minHeight: 42,
183
+ flexGrow: 1,
184
+ borderWidth: 1,
185
+ borderRadius: 8,
186
+ paddingHorizontal: 12,
187
+ paddingVertical: 10,
188
+ },
189
+ segmented: {
190
+ flexDirection: 'row',
191
+ borderWidth: 1,
192
+ borderRadius: 8,
193
+ overflow: 'hidden',
194
+ },
195
+ segment: {
196
+ minHeight: 40,
197
+ paddingHorizontal: 12,
198
+ alignItems: 'center',
199
+ justifyContent: 'center',
200
+ },
201
+ primaryAction: {
202
+ minHeight: 42,
203
+ borderWidth: 1,
204
+ borderRadius: 8,
205
+ paddingHorizontal: 14,
206
+ flexDirection: 'row',
207
+ alignItems: 'center',
208
+ justifyContent: 'center',
209
+ gap: 8,
210
+ },
211
+ secondaryAction: {
212
+ minHeight: 38,
213
+ borderWidth: 1,
214
+ borderRadius: 8,
215
+ paddingHorizontal: 12,
216
+ alignItems: 'center',
217
+ justifyContent: 'center',
218
+ },
219
+ projectGrid: {
220
+ flexDirection: 'row',
221
+ flexWrap: 'wrap',
222
+ gap: 12,
223
+ },
224
+ projectCard: {
225
+ width: 260,
226
+ minHeight: 132,
227
+ borderWidth: 1,
228
+ borderRadius: 8,
229
+ overflow: 'hidden',
230
+ },
231
+ themeStripe: {
232
+ height: 5,
233
+ width: '100%',
234
+ },
235
+ cardBody: {
236
+ padding: 14,
237
+ gap: 8,
238
+ },
239
+ categoryGrid: {
240
+ flexDirection: 'row',
241
+ flexWrap: 'wrap',
242
+ gap: 12,
243
+ },
244
+ categoryCard: {
245
+ width: 260,
246
+ minHeight: 158,
247
+ borderWidth: 1,
248
+ borderRadius: 8,
249
+ padding: 14,
250
+ gap: 8,
251
+ },
252
+ categoryAccent: {
253
+ width: 32,
254
+ height: 4,
255
+ borderRadius: 2,
256
+ },
257
+ templateGrid: {
258
+ flexDirection: 'row',
259
+ flexWrap: 'wrap',
260
+ gap: 12,
261
+ },
262
+ templateCard: {
263
+ width: 280,
264
+ minHeight: 118,
265
+ borderWidth: 1,
266
+ borderRadius: 8,
267
+ padding: 14,
268
+ gap: 8,
269
+ },
270
+ detailLayout: {
271
+ flexDirection: 'row',
272
+ flexWrap: 'wrap',
273
+ gap: 16,
274
+ alignItems: 'flex-start',
275
+ },
276
+ createLayout: {
277
+ flexDirection: 'row',
278
+ flexWrap: 'wrap',
279
+ gap: 16,
280
+ alignItems: 'flex-start',
281
+ },
282
+ detailPanel: {
283
+ minWidth: 300,
284
+ flex: 1,
285
+ gap: 14,
286
+ },
287
+ lifecyclePanel: {
288
+ minWidth: 300,
289
+ flex: 1,
290
+ gap: 14,
291
+ },
292
+ actionStack: {
293
+ gap: 10,
294
+ },
295
+ lifecycleAction: {
296
+ minHeight: 72,
297
+ borderWidth: 1,
298
+ borderRadius: 8,
299
+ padding: 12,
300
+ flexDirection: 'row',
301
+ alignItems: 'center',
302
+ gap: 12,
303
+ },
304
+ lifecycleCopy: {
305
+ flex: 1,
306
+ gap: 2,
307
+ },
308
+ metadata: {
309
+ gap: 8,
310
+ },
311
+ metadataRow: {
312
+ gap: 2,
313
+ },
314
+ inlineMessage: {
315
+ borderWidth: 1,
316
+ borderRadius: 8,
317
+ padding: 10,
318
+ },
319
+ emptyState: {
320
+ minHeight: 160,
321
+ borderWidth: 1,
322
+ borderStyle: 'dashed',
323
+ borderRadius: 8,
324
+ alignItems: 'center',
325
+ justifyContent: 'center',
326
+ padding: 24,
327
+ gap: 12,
328
+ },
329
+ fieldGroup: {
330
+ gap: 8,
331
+ },
332
+ resultsHeader: {
333
+ flexDirection: 'row',
334
+ alignItems: 'center',
335
+ justifyContent: 'space-between',
336
+ gap: 12,
337
+ flexWrap: 'wrap',
338
+ },
339
+ });
340
+ //# sourceMappingURL=WorkspacePrimitives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspacePrimitives.js","sourceRoot":"","sources":["../../../src/app/workspace/WorkspacePrimitives.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ProjectCreationValidationResult, StudioProjectSummary } from '../../projectWorkspaceContracts';
2
+ export interface CreateProjectFormState {
3
+ derivedProjectId: string;
4
+ validation: ProjectCreationValidationResult | null;
5
+ canCreate: boolean;
6
+ projectListState: 'loading' | 'error' | 'ready';
7
+ }
8
+ export declare function resolveCreateProjectFormState(args: {
9
+ projectName: string;
10
+ existingProjects: readonly StudioProjectSummary[];
11
+ projectsLoading: boolean;
12
+ projectsError: string | null;
13
+ templateAvailable: boolean;
14
+ isCreating: boolean;
15
+ }): CreateProjectFormState;
16
+ //# sourceMappingURL=createProjectFormState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createProjectFormState.d.ts","sourceRoot":"","sources":["../../../src/app/workspace/createProjectFormState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,+BAA+B,EAC/B,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,+BAA+B,GAAG,IAAI,CAAC;IACnD,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;CACjD;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAClD,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;CACrB,GAAG,sBAAsB,CAqBzB"}