@ankhorage/studio 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/README.md +9 -1
  2. package/dist/bindingAuthoringContracts.d.ts +37 -0
  3. package/dist/bindingAuthoringContracts.d.ts.map +1 -0
  4. package/dist/bindingAuthoringContracts.js +2 -0
  5. package/dist/bindingAuthoringContracts.js.map +1 -0
  6. package/dist/bindingAuthoringModel.d.ts +7 -0
  7. package/dist/bindingAuthoringModel.d.ts.map +1 -0
  8. package/dist/bindingAuthoringModel.js +7 -0
  9. package/dist/bindingAuthoringModel.js.map +1 -0
  10. package/dist/bindingDiagnosticsModel.d.ts +10 -0
  11. package/dist/bindingDiagnosticsModel.d.ts.map +1 -0
  12. package/dist/bindingDiagnosticsModel.js +116 -0
  13. package/dist/bindingDiagnosticsModel.js.map +1 -0
  14. package/dist/bindingMetadataModel.d.ts +5 -0
  15. package/dist/bindingMetadataModel.d.ts.map +1 -0
  16. package/dist/bindingMetadataModel.js +17 -0
  17. package/dist/bindingMetadataModel.js.map +1 -0
  18. package/dist/bindingMutationModel.d.ts +6 -0
  19. package/dist/bindingMutationModel.d.ts.map +1 -0
  20. package/dist/bindingMutationModel.js +55 -0
  21. package/dist/bindingMutationModel.js.map +1 -0
  22. package/dist/bindingOperationModel.d.ts +10 -0
  23. package/dist/bindingOperationModel.d.ts.map +1 -0
  24. package/dist/bindingOperationModel.js +69 -0
  25. package/dist/bindingOperationModel.js.map +1 -0
  26. package/dist/bindingSchemaModel.d.ts +6 -0
  27. package/dist/bindingSchemaModel.d.ts.map +1 -0
  28. package/dist/bindingSchemaModel.js +95 -0
  29. package/dist/bindingSchemaModel.js.map +1 -0
  30. package/dist/contractGuards.d.ts.map +1 -1
  31. package/dist/contractGuards.js +78 -89
  32. package/dist/contractGuards.js.map +1 -1
  33. package/dist/core/StudioProvider.d.ts.map +1 -1
  34. package/dist/core/StudioProvider.js +18 -2
  35. package/dist/core/StudioProvider.js.map +1 -1
  36. package/dist/core/studioManifestDraftModel.d.ts +1 -2
  37. package/dist/core/studioManifestDraftModel.d.ts.map +1 -1
  38. package/dist/core/studioManifestDraftModel.js +1 -4
  39. package/dist/core/studioManifestDraftModel.js.map +1 -1
  40. package/dist/externalApiApi.d.ts.map +1 -1
  41. package/dist/externalApiApi.js +2 -9
  42. package/dist/externalApiApi.js.map +1 -1
  43. package/dist/externalApiAuthoringContracts.d.ts +3 -3
  44. package/dist/externalApiAuthoringContracts.d.ts.map +1 -1
  45. package/dist/generatedApiAuthoring.d.ts +14 -0
  46. package/dist/generatedApiAuthoring.d.ts.map +1 -0
  47. package/dist/generatedApiAuthoring.js +64 -0
  48. package/dist/generatedApiAuthoring.js.map +1 -0
  49. package/dist/host/dataSources/studioExternalApiService.d.ts.map +1 -1
  50. package/dist/host/dataSources/studioExternalApiService.js +21 -5
  51. package/dist/host/dataSources/studioExternalApiService.js.map +1 -1
  52. package/dist/host/generatedDatabaseRuntime.d.ts +9 -0
  53. package/dist/host/generatedDatabaseRuntime.d.ts.map +1 -0
  54. package/dist/host/generatedDatabaseRuntime.js +12 -0
  55. package/dist/host/generatedDatabaseRuntime.js.map +1 -0
  56. package/dist/host/layout/generatedDatabaseRuntimeSource.d.ts +5 -0
  57. package/dist/host/layout/generatedDatabaseRuntimeSource.d.ts.map +1 -0
  58. package/dist/host/layout/generatedDatabaseRuntimeSource.js +40 -0
  59. package/dist/host/layout/generatedDatabaseRuntimeSource.js.map +1 -0
  60. package/dist/host/layout/layoutGenerator.d.ts.map +1 -1
  61. package/dist/host/layout/layoutGenerator.js +10 -2
  62. package/dist/host/layout/layoutGenerator.js.map +1 -1
  63. package/dist/host/layout/templates/rootLayout.d.ts +1 -0
  64. package/dist/host/layout/templates/rootLayout.d.ts.map +1 -1
  65. package/dist/host/layout/templates/rootLayout.js +2 -1
  66. package/dist/host/layout/templates/rootLayout.js.map +1 -1
  67. package/dist/host/orchestrator/projectManager.d.ts.map +1 -1
  68. package/dist/host/orchestrator/projectManager.js +3 -0
  69. package/dist/host/orchestrator/projectManager.js.map +1 -1
  70. package/dist/host/orchestrator/scaffolder.d.ts +2 -0
  71. package/dist/host/orchestrator/scaffolder.d.ts.map +1 -1
  72. package/dist/host/orchestrator/scaffolder.js +11 -4
  73. package/dist/host/orchestrator/scaffolder.js.map +1 -1
  74. package/dist/host/orchestrator/templates.d.ts +3 -0
  75. package/dist/host/orchestrator/templates.d.ts.map +1 -1
  76. package/dist/host/orchestrator/templates.js +9 -4
  77. package/dist/host/orchestrator/templates.js.map +1 -1
  78. package/dist/index.d.ts +7 -5
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +4 -0
  81. package/dist/index.js.map +1 -1
  82. package/dist/manifestState.d.ts +1 -2
  83. package/dist/manifestState.d.ts.map +1 -1
  84. package/dist/manifestState.js +1 -4
  85. package/dist/manifestState.js.map +1 -1
  86. package/dist/manifestSync.js +1 -1
  87. package/dist/manifestSync.js.map +1 -1
  88. package/dist/studioAdminRouteModel.d.ts +4 -1
  89. package/dist/studioAdminRouteModel.d.ts.map +1 -1
  90. package/dist/studioAdminRouteModel.js +46 -16
  91. package/dist/studioAdminRouteModel.js.map +1 -1
  92. package/dist/ui/admin/AnkhAdminPage.d.ts.map +1 -1
  93. package/dist/ui/admin/AnkhAdminPage.js +3 -1
  94. package/dist/ui/admin/AnkhAdminPage.js.map +1 -1
  95. package/dist/ui/admin/pages/ApisAdminPage.d.ts.map +1 -1
  96. package/dist/ui/admin/pages/ApisAdminPage.js +2 -1
  97. package/dist/ui/admin/pages/ApisAdminPage.js.map +1 -1
  98. package/dist/ui/admin/pages/BindingsAdminPage.d.ts +5 -0
  99. package/dist/ui/admin/pages/BindingsAdminPage.d.ts.map +1 -0
  100. package/dist/ui/admin/pages/BindingsAdminPage.js +38 -0
  101. package/dist/ui/admin/pages/BindingsAdminPage.js.map +1 -0
  102. package/dist/ui/admin/pages/DataSourceCatalogCard.js +13 -5
  103. package/dist/ui/admin/pages/DataSourceCatalogCard.js.map +1 -1
  104. package/dist/ui/admin/pages/DataSourceOperationsCard.d.ts.map +1 -1
  105. package/dist/ui/admin/pages/DataSourceOperationsCard.js +1 -1
  106. package/dist/ui/admin/pages/DataSourceOperationsCard.js.map +1 -1
  107. package/dist/ui/admin/pages/ExternalApiConnectCard.d.ts.map +1 -1
  108. package/dist/ui/admin/pages/ExternalApiConnectCard.js +2 -2
  109. package/dist/ui/admin/pages/ExternalApiConnectCard.js.map +1 -1
  110. package/dist/ui/admin/pages/GeneratedApiAuthoringCard.d.ts +2 -0
  111. package/dist/ui/admin/pages/GeneratedApiAuthoringCard.d.ts.map +1 -0
  112. package/dist/ui/admin/pages/GeneratedApiAuthoringCard.js +36 -0
  113. package/dist/ui/admin/pages/GeneratedApiAuthoringCard.js.map +1 -0
  114. package/dist/ui/admin/pages/GeneratedApiEditor.d.ts +9 -0
  115. package/dist/ui/admin/pages/GeneratedApiEditor.d.ts.map +1 -0
  116. package/dist/ui/admin/pages/GeneratedApiEditor.js +31 -0
  117. package/dist/ui/admin/pages/GeneratedApiEditor.js.map +1 -0
  118. package/dist/ui/admin/pages/GeneratedApiFieldEditor.d.ts +7 -0
  119. package/dist/ui/admin/pages/GeneratedApiFieldEditor.d.ts.map +1 -0
  120. package/dist/ui/admin/pages/GeneratedApiFieldEditor.js +18 -0
  121. package/dist/ui/admin/pages/GeneratedApiFieldEditor.js.map +1 -0
  122. package/dist/ui/admin/pages/GeneratedApiNormalizedOperations.d.ts +5 -0
  123. package/dist/ui/admin/pages/GeneratedApiNormalizedOperations.d.ts.map +1 -0
  124. package/dist/ui/admin/pages/GeneratedApiNormalizedOperations.js +12 -0
  125. package/dist/ui/admin/pages/GeneratedApiNormalizedOperations.js.map +1 -0
  126. package/dist/ui/admin/pages/GeneratedApiResourceEditor.d.ts +8 -0
  127. package/dist/ui/admin/pages/GeneratedApiResourceEditor.d.ts.map +1 -0
  128. package/dist/ui/admin/pages/GeneratedApiResourceEditor.js +27 -0
  129. package/dist/ui/admin/pages/GeneratedApiResourceEditor.js.map +1 -0
  130. package/dist/ui/admin/pages/GeneratedApiToggle.d.ts +6 -0
  131. package/dist/ui/admin/pages/GeneratedApiToggle.d.ts.map +1 -0
  132. package/dist/ui/admin/pages/GeneratedApiToggle.js +8 -0
  133. package/dist/ui/admin/pages/GeneratedApiToggle.js.map +1 -0
  134. package/dist/ui/admin/pages/ManualRestSourceCard.js +1 -1
  135. package/dist/ui/admin/pages/ManualRestSourceCard.js.map +1 -1
  136. package/dist/ui/admin/pages/adminDataSourceOperations.d.ts +3 -0
  137. package/dist/ui/admin/pages/adminDataSourceOperations.d.ts.map +1 -1
  138. package/dist/ui/admin/pages/adminDataSourceOperations.js +5 -0
  139. package/dist/ui/admin/pages/adminDataSourceOperations.js.map +1 -1
  140. package/dist/ui/admin/pages/bindings/BindingDiagnosticsCard.d.ts +5 -0
  141. package/dist/ui/admin/pages/bindings/BindingDiagnosticsCard.d.ts.map +1 -0
  142. package/dist/ui/admin/pages/bindings/BindingDiagnosticsCard.js +8 -0
  143. package/dist/ui/admin/pages/bindings/BindingDiagnosticsCard.js.map +1 -0
  144. package/dist/ui/admin/pages/bindings/EventBindingComposer.d.ts +8 -0
  145. package/dist/ui/admin/pages/bindings/EventBindingComposer.d.ts.map +1 -0
  146. package/dist/ui/admin/pages/bindings/EventBindingComposer.js +60 -0
  147. package/dist/ui/admin/pages/bindings/EventBindingComposer.js.map +1 -0
  148. package/dist/ui/admin/pages/bindings/EventBindingsCard.d.ts +9 -0
  149. package/dist/ui/admin/pages/bindings/EventBindingsCard.d.ts.map +1 -0
  150. package/dist/ui/admin/pages/bindings/EventBindingsCard.js +27 -0
  151. package/dist/ui/admin/pages/bindings/EventBindingsCard.js.map +1 -0
  152. package/dist/ui/admin/pages/bindings/PropertyBindingEditor.d.ts +10 -0
  153. package/dist/ui/admin/pages/bindings/PropertyBindingEditor.d.ts.map +1 -0
  154. package/dist/ui/admin/pages/bindings/PropertyBindingEditor.js +61 -0
  155. package/dist/ui/admin/pages/bindings/PropertyBindingEditor.js.map +1 -0
  156. package/dist/ui/admin/pages/bindings/PropertyBindingsCard.d.ts +9 -0
  157. package/dist/ui/admin/pages/bindings/PropertyBindingsCard.d.ts.map +1 -0
  158. package/dist/ui/admin/pages/bindings/PropertyBindingsCard.js +13 -0
  159. package/dist/ui/admin/pages/bindings/PropertyBindingsCard.js.map +1 -0
  160. package/dist/ui/admin/pages/bindings/bindingAdminStyles.d.ts +28 -0
  161. package/dist/ui/admin/pages/bindings/bindingAdminStyles.d.ts.map +1 -0
  162. package/dist/ui/admin/pages/bindings/bindingAdminStyles.js +29 -0
  163. package/dist/ui/admin/pages/bindings/bindingAdminStyles.js.map +1 -0
  164. package/dist/ui/admin/pages/bindings/bindingEditorModel.d.ts +30 -0
  165. package/dist/ui/admin/pages/bindings/bindingEditorModel.d.ts.map +1 -0
  166. package/dist/ui/admin/pages/bindings/bindingEditorModel.js +107 -0
  167. package/dist/ui/admin/pages/bindings/bindingEditorModel.js.map +1 -0
  168. package/dist/ui/admin/pages/generatedApiEditorModel.d.ts +39 -0
  169. package/dist/ui/admin/pages/generatedApiEditorModel.d.ts.map +1 -0
  170. package/dist/ui/admin/pages/generatedApiEditorModel.js +226 -0
  171. package/dist/ui/admin/pages/generatedApiEditorModel.js.map +1 -0
  172. package/dist/ui/admin/pages/generatedApiEditorStyles.d.ts +34 -0
  173. package/dist/ui/admin/pages/generatedApiEditorStyles.d.ts.map +1 -0
  174. package/dist/ui/admin/pages/generatedApiEditorStyles.js +35 -0
  175. package/dist/ui/admin/pages/generatedApiEditorStyles.js.map +1 -0
  176. package/dist/ui/studioAppBarModel.d.ts +1 -1
  177. package/dist/ui/studioAppBarModel.d.ts.map +1 -1
  178. package/dist/ui/studioAppBarModel.js +4 -1
  179. package/dist/ui/studioAppBarModel.js.map +1 -1
  180. package/dist/ui/useStudioAppBarAugmentation.d.ts.map +1 -1
  181. package/dist/ui/useStudioAppBarAugmentation.js +16 -7
  182. package/dist/ui/useStudioAppBarAugmentation.js.map +1 -1
  183. package/package.json +13 -8
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalApiConnectCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/pages/ExternalApiConnectCard.tsx"],"names":[],"mappings":"AAsBA,wBAAgB,sBAAsB,gCAyGrC"}
1
+ {"version":3,"file":"ExternalApiConnectCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/pages/ExternalApiConnectCard.tsx"],"names":[],"mappings":"AAsBA,wBAAgB,sBAAsB,gCA2GrC"}
@@ -42,7 +42,7 @@ export function ExternalApiConnectCard() {
42
42
  setResult(next);
43
43
  if (next.ok) {
44
44
  await studio.refetchManifest();
45
- setMessage(`${next.created ? 'Connected' : 'Updated'} ${next.sourceId} as ${next.kind}.`);
45
+ setMessage(`${next.created ? 'Connected' : 'Updated'} ${next.sourceId} as ${next.kind}/${next.protocol}.`);
46
46
  }
47
47
  }
48
48
  catch (error) {
@@ -52,6 +52,6 @@ export function ExternalApiConnectCard() {
52
52
  setBusy(false);
53
53
  }
54
54
  }, [credentialId, credentialKind, credentialScope, name, protocol, sourceId, studio, url]);
55
- return (_jsx(Card, { title: "Connect existing API", children: _jsxs(View, { style: externalApiAdminStyles.stack, children: [_jsxs(View, { style: externalApiAdminStyles.columns, children: [_jsx(ExternalApiField, { label: "Data-source ID", children: _jsx(Input, { value: sourceId, autoCapitalize: "none", onChangeText: setSourceId }) }), _jsx(ExternalApiField, { label: "Protocol discovery", children: _jsx(Select, { value: protocol, options: PROTOCOL_OPTIONS, onValueChange: setProtocol }) })] }), _jsx(ExternalApiField, { label: "Service or schema URL", children: _jsx(Input, { value: url, autoCapitalize: "none", placeholder: "https://api.example.com", onChangeText: setUrl }) }), _jsx(ExternalApiField, { label: "Display name (optional)", children: _jsx(Input, { value: name, onChangeText: setName }) }), _jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: "OpenAPI probes direct and conventional schema locations. GraphQL introspection uses the exact URL. Reusing an ID updates the canonical source." }), _jsxs(View, { style: externalApiAdminStyles.columns, children: [_jsx(ExternalApiField, { label: "Credential secret ref (optional)", children: _jsx(Input, { value: credentialId, autoCapitalize: "none", placeholder: "services/example", onChangeText: setCredentialId }) }), _jsx(ExternalApiField, { label: "Credential kind", children: _jsx(Input, { value: credentialKind, autoCapitalize: "none", onChangeText: setCredentialKind }) }), _jsx(ExternalApiField, { label: "Credential scope (optional)", children: _jsx(Input, { value: credentialScope, autoCapitalize: "none", placeholder: "header:x-api-key", onChangeText: setCredentialScope }) })] }), _jsx(View, { style: externalApiAdminStyles.actions, children: _jsx(Button, { loading: busy, disabled: !sourceId.trim() || !url.trim(), onPress: () => void connect(), children: "Connect API" }) }), message ? _jsx(Text, { variant: "bodySmall", children: message }) : null, result ? (_jsx(ExternalApiDiagnosticList, { diagnostics: result.diagnostics, attempts: result.attempts })) : null] }) }));
55
+ return (_jsx(Card, { title: "Connect external API", children: _jsxs(View, { style: externalApiAdminStyles.stack, children: [_jsxs(View, { style: externalApiAdminStyles.columns, children: [_jsx(ExternalApiField, { label: "Data-source ID", children: _jsx(Input, { value: sourceId, autoCapitalize: "none", onChangeText: setSourceId }) }), _jsx(ExternalApiField, { label: "Protocol discovery", children: _jsx(Select, { value: protocol, options: PROTOCOL_OPTIONS, onValueChange: setProtocol }) })] }), _jsx(ExternalApiField, { label: "Service or schema URL", children: _jsx(Input, { value: url, autoCapitalize: "none", placeholder: "https://api.example.com", onChangeText: setUrl }) }), _jsx(ExternalApiField, { label: "Display name (optional)", children: _jsx(Input, { value: name, onChangeText: setName }) }), _jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: "OpenAPI probes direct and conventional schema locations. GraphQL introspection uses the exact URL. Reusing an ID updates the canonical source." }), _jsxs(View, { style: externalApiAdminStyles.columns, children: [_jsx(ExternalApiField, { label: "Credential secret ref (optional)", children: _jsx(Input, { value: credentialId, autoCapitalize: "none", placeholder: "services/example", onChangeText: setCredentialId }) }), _jsx(ExternalApiField, { label: "Credential kind", children: _jsx(Input, { value: credentialKind, autoCapitalize: "none", onChangeText: setCredentialKind }) }), _jsx(ExternalApiField, { label: "Credential scope (optional)", children: _jsx(Input, { value: credentialScope, autoCapitalize: "none", placeholder: "header:x-api-key", onChangeText: setCredentialScope }) })] }), _jsx(View, { style: externalApiAdminStyles.actions, children: _jsx(Button, { loading: busy, disabled: !sourceId.trim() || !url.trim(), onPress: () => void connect(), children: "Connect API" }) }), message ? _jsx(Text, { variant: "bodySmall", children: message }) : null, result ? (_jsx(ExternalApiDiagnosticList, { diagnostics: result.diagnostics, attempts: result.attempts })) : null] }) }));
56
56
  }
57
57
  //# sourceMappingURL=ExternalApiConnectCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalApiConnectCard.js","sourceRoot":"","sources":["../../../../src/ui/admin/pages/ExternalApiConnectCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExternalApiConnectCard.js","sourceRoot":"","sources":["../../../../src/ui/admin/pages/ExternalApiConnectCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAK7D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EACL,yBAAyB,EACzB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,gBAAgB,GAAG;IACvB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,6BAA6B,EAAE;IACvD,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACtC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,uBAAuB,EAAE;CAC5C,CAAC;AAEX,MAAM,UAAU,sBAAsB;IACpC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAsB,MAAM,CAAC,CAAC;IACtE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAkC,IAAI,CAAC,CAAC;IAC5E,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAAE;gBACtD,QAAQ;gBACR,GAAG;gBACH,QAAQ;gBACR,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,SAAS;gBAC9B,UAAU,EAAE,YAAY,CAAC,IAAI,EAAE;oBAC7B,CAAC,CAAC;wBACE,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE;wBACvB,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,IAAI,QAAQ;wBACvC,KAAK,EAAE,eAAe,CAAC,IAAI,EAAE,IAAI,SAAS;qBAC3C;oBACH,CAAC,CAAC,SAAS;aACd,CAAC,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC/B,UAAU,CACR,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,GAAG,CAC/F,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC;QACzF,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAE3F,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAC,sBAAsB,YAChC,MAAC,IAAI,IAAC,KAAK,EAAE,sBAAsB,CAAC,KAAK,aACvC,MAAC,IAAI,IAAC,KAAK,EAAE,sBAAsB,CAAC,OAAO,aACzC,KAAC,gBAAgB,IAAC,KAAK,EAAC,gBAAgB,YACtC,KAAC,KAAK,IAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAC,MAAM,EAAC,YAAY,EAAE,WAAW,GAAI,GAC1D,EACnB,KAAC,gBAAgB,IAAC,KAAK,EAAC,oBAAoB,YAC1C,KAAC,MAAM,IAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,GAAI,GACjE,IACd,EACP,KAAC,gBAAgB,IAAC,KAAK,EAAC,uBAAuB,YAC7C,KAAC,KAAK,IACJ,KAAK,EAAE,GAAG,EACV,cAAc,EAAC,MAAM,EACrB,WAAW,EAAC,yBAAyB,EACrC,YAAY,EAAE,MAAM,GACpB,GACe,EACnB,KAAC,gBAAgB,IAAC,KAAK,EAAC,yBAAyB,YAC/C,KAAC,KAAK,IAAC,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,GAAI,GAC5B,EACnB,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,EAAC,WAAW,+JAGnD,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,sBAAsB,CAAC,OAAO,aACzC,KAAC,gBAAgB,IAAC,KAAK,EAAC,kCAAkC,YACxD,KAAC,KAAK,IACJ,KAAK,EAAE,YAAY,EACnB,cAAc,EAAC,MAAM,EACrB,WAAW,EAAC,kBAAkB,EAC9B,YAAY,EAAE,eAAe,GAC7B,GACe,EACnB,KAAC,gBAAgB,IAAC,KAAK,EAAC,iBAAiB,YACvC,KAAC,KAAK,IAAC,KAAK,EAAE,cAAc,EAAE,cAAc,EAAC,MAAM,EAAC,YAAY,EAAE,iBAAiB,GAAI,GACtE,EACnB,KAAC,gBAAgB,IAAC,KAAK,EAAC,6BAA6B,YACnD,KAAC,KAAK,IACJ,KAAK,EAAE,eAAe,EACtB,cAAc,EAAC,MAAM,EACrB,WAAW,EAAC,kBAAkB,EAC9B,YAAY,EAAE,kBAAkB,GAChC,GACe,IACd,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,sBAAsB,CAAC,OAAO,YACzC,KAAC,MAAM,IACL,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EACzC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,EAAE,4BAGtB,GACJ,EACN,OAAO,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,OAAO,EAAC,WAAW,YAAE,OAAO,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC3D,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,yBAAyB,IAAC,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAI,CAC1F,CAAC,CAAC,CAAC,IAAI,IACH,GACF,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function GeneratedApiAuthoringCard(): import("react").JSX.Element;
2
+ //# sourceMappingURL=GeneratedApiAuthoringCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneratedApiAuthoringCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/pages/GeneratedApiAuthoringCard.tsx"],"names":[],"mappings":"AAcA,wBAAgB,yBAAyB,gCAiExC"}
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, Card, Text } from '@ankhorage/zora';
3
+ import { useState } from 'react';
4
+ import { View } from 'react-native';
5
+ import { useStudio } from '../../../core/StudioContext';
6
+ import { createGeneratedApiEditorDraft, } from './generatedApiEditorModel';
7
+ import { generatedApiEditorStyles } from './generatedApiEditorStyles';
8
+ import { ExternalApiDiagnosticList } from './ExternalApiAdminPrimitives';
9
+ import { GeneratedApiEditor } from './GeneratedApiEditor';
10
+ export function GeneratedApiAuthoringCard() {
11
+ const studio = useStudio();
12
+ const definitions = Object.values(studio.manifest?.generatedApis ?? {});
13
+ const [draft, setDraft] = useState(null);
14
+ const [diagnostics, setDiagnostics] = useState([]);
15
+ const [message, setMessage] = useState(null);
16
+ const edit = (definition) => {
17
+ setDiagnostics([]);
18
+ setMessage(null);
19
+ setDraft(createGeneratedApiEditorDraft(definition));
20
+ };
21
+ const save = (definition, previousId) => {
22
+ const nextDiagnostics = studio.upsertGeneratedApi(definition, previousId);
23
+ setDiagnostics(nextDiagnostics);
24
+ if (nextDiagnostics.some((entry) => entry.severity === 'error'))
25
+ return;
26
+ setMessage(`${previousId ? 'Updated' : 'Created'} generated API ${definition.id}.`);
27
+ setDraft(null);
28
+ };
29
+ return (_jsx(Card, { title: "Create generated API", children: _jsxs(View, { style: generatedApiEditorStyles.stack, children: [_jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: "Author REST/CRUD desired state. Data Sources owns operation normalization; Infra owns database migrations." }), definitions.map((definition) => (_jsxs(View, { style: generatedApiEditorStyles.bordered, children: [_jsx(Text, { weight: "semiBold", children: definition.name ?? definition.id }), _jsxs(Text, { color: "neutral", variant: "caption", children: [definition.id, " \u00B7 ", definition.basePath, " \u00B7 ", definition.resources.length, " resource(s)"] }), _jsxs(View, { style: generatedApiEditorStyles.actions, children: [_jsx(Button, { variant: "outline", onPress: () => edit(definition), children: "Edit" }), _jsx(Button, { variant: "outline", onPress: () => {
30
+ studio.deleteGeneratedApi(definition.id);
31
+ setMessage(`Deleted generated API ${definition.id}.`);
32
+ if (draft?.originalId === definition.id)
33
+ setDraft(null);
34
+ }, children: "Delete" })] })] }, definition.id))), draft ? (_jsx(GeneratedApiEditor, { draft: draft, onChange: setDraft, onCancel: () => setDraft(null), onSave: save })) : (_jsx(Button, { onPress: () => edit(), children: "Create generated API" })), message ? _jsx(Text, { variant: "bodySmall", children: message }) : null, _jsx(ExternalApiDiagnosticList, { diagnostics: diagnostics })] }) }));
35
+ }
36
+ //# sourceMappingURL=GeneratedApiAuthoringCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneratedApiAuthoringCard.js","sourceRoot":"","sources":["../../../../src/ui/admin/pages/GeneratedApiAuthoringCard.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { GeneratedApiDefinition } from '@ankhorage/contracts';
2
+ import type { GeneratedApiEditorDraft } from './generatedApiEditorModel';
3
+ export declare function GeneratedApiEditor({ draft, onChange, onCancel, onSave, }: {
4
+ readonly draft: GeneratedApiEditorDraft;
5
+ readonly onChange: (draft: GeneratedApiEditorDraft) => void;
6
+ readonly onCancel: () => void;
7
+ readonly onSave: (definition: GeneratedApiDefinition, previousId?: string) => void;
8
+ }): import("react").JSX.Element;
9
+ //# sourceMappingURL=GeneratedApiEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneratedApiEditor.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/pages/GeneratedApiEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAKnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAUzE,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,GACP,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAC5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,sBAAsB,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACpF,+BA4FA"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, Input } from '@ankhorage/zora';
3
+ import { useMemo } from 'react';
4
+ import { View } from 'react-native';
5
+ import { createGeneratedApiResourceDraft, resolveGeneratedApiEditorDraft, } from './generatedApiEditorModel';
6
+ import { generatedApiEditorStyles } from './generatedApiEditorStyles';
7
+ import { ExternalApiDiagnosticList, ExternalApiField } from './ExternalApiAdminPrimitives';
8
+ import { GeneratedApiNormalizedOperations } from './GeneratedApiNormalizedOperations';
9
+ import { GeneratedApiResourceEditor } from './GeneratedApiResourceEditor';
10
+ export function GeneratedApiEditor({ draft, onChange, onCancel, onSave, }) {
11
+ const resolution = useMemo(() => resolveGeneratedApiEditorDraft(draft), [draft]);
12
+ const hasErrors = resolution.diagnostics.some((entry) => entry.severity === 'error');
13
+ const updateResource = (index, resource) => onChange({
14
+ ...draft,
15
+ resources: draft.resources.map((current, currentIndex) => currentIndex === index ? resource : current),
16
+ });
17
+ return (_jsxs(View, { style: generatedApiEditorStyles.stack, children: [_jsxs(View, { style: generatedApiEditorStyles.columns, children: [_jsx(ExternalApiField, { label: "API ID", children: _jsx(Input, { autoCapitalize: "none", value: draft.id, onChangeText: (id) => onChange({ ...draft, id }) }) }), _jsx(ExternalApiField, { label: "Base path", children: _jsx(Input, { autoCapitalize: "none", value: draft.basePath, onChangeText: (basePath) => onChange({ ...draft, basePath }) }) }), _jsx(ExternalApiField, { label: "Database adapter ID", children: _jsx(Input, { autoCapitalize: "none", value: draft.databaseAdapterId, onChangeText: (databaseAdapterId) => onChange({ ...draft, databaseAdapterId }) }) })] }), _jsxs(View, { style: generatedApiEditorStyles.columns, children: [_jsx(ExternalApiField, { label: "Name", children: _jsx(Input, { value: draft.name, onChangeText: (name) => onChange({ ...draft, name }) }) }), _jsx(ExternalApiField, { label: "Description", children: _jsx(Input, { value: draft.description, onChangeText: (description) => onChange({ ...draft, description }) }) })] }), draft.resources.map((resource, index) => (_jsx(GeneratedApiResourceEditor, { resource: resource, canRemove: draft.resources.length > 1, onChange: (next) => updateResource(index, next), onRemove: () => onChange({
18
+ ...draft,
19
+ resources: draft.resources.filter((_, currentIndex) => currentIndex !== index),
20
+ }) }, `${index}:${resource.id}`))), _jsx(Button, { variant: "outline", onPress: () => onChange({
21
+ ...draft,
22
+ resources: [
23
+ ...draft.resources,
24
+ createGeneratedApiResourceDraft(draft.resources.length),
25
+ ],
26
+ }), children: "Add resource" }), _jsx(ExternalApiDiagnosticList, { diagnostics: resolution.diagnostics }), _jsx(GeneratedApiNormalizedOperations, { dataSource: resolution.dataSource }), _jsxs(View, { style: generatedApiEditorStyles.actions, children: [_jsx(Button, { variant: "outline", onPress: onCancel, children: "Cancel" }), _jsx(Button, { disabled: hasErrors || !resolution.definition, onPress: () => {
27
+ if (resolution.definition)
28
+ onSave(resolution.definition, draft.originalId);
29
+ }, children: "Save generated API" })] })] }));
30
+ }
31
+ //# sourceMappingURL=GeneratedApiEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneratedApiEditor.js","sourceRoot":"","sources":["../../../../src/ui/admin/pages/GeneratedApiEditor.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,EACL,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC3F,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,MAAM,UAAU,kBAAkB,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,GAMP;IACC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,8BAA8B,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACjF,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IACrF,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,QAAsD,EAAE,EAAE,CAC/F,QAAQ,CAAC;QACP,GAAG,KAAK;QACR,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,CACvD,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAC5C;KACF,CAAC,CAAC;IAEL,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,wBAAwB,CAAC,KAAK,aACzC,MAAC,IAAI,IAAC,KAAK,EAAE,wBAAwB,CAAC,OAAO,aAC3C,KAAC,gBAAgB,IAAC,KAAK,EAAC,QAAQ,YAC9B,KAAC,KAAK,IACJ,cAAc,EAAC,MAAM,EACrB,KAAK,EAAE,KAAK,CAAC,EAAE,EACf,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,GAChD,GACe,EACnB,KAAC,gBAAgB,IAAC,KAAK,EAAC,WAAW,YACjC,KAAC,KAAK,IACJ,cAAc,EAAC,MAAM,EACrB,KAAK,EAAE,KAAK,CAAC,QAAQ,EACrB,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,GAC5D,GACe,EACnB,KAAC,gBAAgB,IAAC,KAAK,EAAC,qBAAqB,YAC3C,KAAC,KAAK,IACJ,cAAc,EAAC,MAAM,EACrB,KAAK,EAAE,KAAK,CAAC,iBAAiB,EAC9B,YAAY,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,iBAAiB,EAAE,CAAC,GAC9E,GACe,IACd,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,wBAAwB,CAAC,OAAO,aAC3C,KAAC,gBAAgB,IAAC,KAAK,EAAC,MAAM,YAC5B,KAAC,KAAK,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,GAAI,GACjE,EACnB,KAAC,gBAAgB,IAAC,KAAK,EAAC,aAAa,YACnC,KAAC,KAAK,IACJ,KAAK,EAAE,KAAK,CAAC,WAAW,EACxB,YAAY,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC,GAClE,GACe,IACd,EACN,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CACxC,KAAC,0BAA0B,IAEzB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,EAC/C,QAAQ,EAAE,GAAG,EAAE,CACb,QAAQ,CAAC;oBACP,GAAG,KAAK;oBACR,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,KAAK,KAAK,CAAC;iBAC/E,CAAC,IARC,GAAG,KAAK,IAAI,QAAQ,CAAC,EAAE,EAAE,CAU9B,CACH,CAAC,EACF,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,GAAG,EAAE,CACZ,QAAQ,CAAC;oBACP,GAAG,KAAK;oBACR,SAAS,EAAE;wBACT,GAAG,KAAK,CAAC,SAAS;wBAClB,+BAA+B,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;qBACxD;iBACF,CAAC,6BAIG,EACT,KAAC,yBAAyB,IAAC,WAAW,EAAE,UAAU,CAAC,WAAW,GAAI,EAClE,KAAC,gCAAgC,IAAC,UAAU,EAAE,UAAU,CAAC,UAAU,GAAI,EACvE,MAAC,IAAI,IAAC,KAAK,EAAE,wBAAwB,CAAC,OAAO,aAC3C,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,QAAQ,uBAElC,EACT,KAAC,MAAM,IACL,QAAQ,EAAE,SAAS,IAAI,CAAC,UAAU,CAAC,UAAU,EAC7C,OAAO,EAAE,GAAG,EAAE;4BACZ,IAAI,UAAU,CAAC,UAAU;gCAAE,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;wBAC7E,CAAC,mCAGM,IACJ,IACF,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { GeneratedApiFieldDraft } from './generatedApiEditorModel';
2
+ export declare function GeneratedApiFieldEditor({ field, onChange, onRemove, }: {
3
+ readonly field: GeneratedApiFieldDraft;
4
+ readonly onChange: (field: GeneratedApiFieldDraft) => void;
5
+ readonly onRemove: () => void;
6
+ }): import("react").JSX.Element;
7
+ //# sourceMappingURL=GeneratedApiFieldEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneratedApiFieldEditor.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/pages/GeneratedApiFieldEditor.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAcxE,wBAAgB,uBAAuB,CAAC,EACtC,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;CAC/B,+BA0CA"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, Input, Select } from '@ankhorage/zora';
3
+ import { View } from 'react-native';
4
+ import { generatedApiEditorStyles } from './generatedApiEditorStyles';
5
+ import { ExternalApiField } from './ExternalApiAdminPrimitives';
6
+ import { GeneratedApiToggle } from './GeneratedApiToggle';
7
+ const TYPE_OPTIONS = [
8
+ { value: 'uuid', label: 'UUID' },
9
+ { value: 'text', label: 'Text' },
10
+ { value: 'number', label: 'Number' },
11
+ { value: 'boolean', label: 'Boolean' },
12
+ { value: 'datetime', label: 'Datetime' },
13
+ { value: 'json', label: 'JSON' },
14
+ ];
15
+ export function GeneratedApiFieldEditor({ field, onChange, onRemove, }) {
16
+ return (_jsxs(View, { style: generatedApiEditorStyles.bordered, children: [_jsxs(View, { style: generatedApiEditorStyles.columns, children: [_jsx(ExternalApiField, { label: "Field name", children: _jsx(Input, { autoCapitalize: "none", value: field.name, onChangeText: (name) => onChange({ ...field, name }) }) }), _jsx(ExternalApiField, { label: "Type", children: _jsx(Select, { value: field.type, options: TYPE_OPTIONS, onValueChange: (type) => onChange({ ...field, type }) }) }), _jsx(ExternalApiField, { label: "Default", children: _jsx(Input, { value: field.defaultValueText, onChangeText: (defaultValueText) => onChange({ ...field, defaultValueText }) }) })] }), _jsxs(View, { style: generatedApiEditorStyles.actions, children: [_jsx(GeneratedApiToggle, { label: "Required", value: field.required, onValueChange: (required) => onChange({ ...field, required }) }), _jsx(GeneratedApiToggle, { label: "Unique", value: field.unique, onValueChange: (unique) => onChange({ ...field, unique }) }), _jsx(Button, { variant: "outline", onPress: onRemove, children: "Remove field" })] })] }));
17
+ }
18
+ //# sourceMappingURL=GeneratedApiFieldEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneratedApiFieldEditor.js","sourceRoot":"","sources":["../../../../src/ui/admin/pages/GeneratedApiFieldEditor.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,YAAY,GAAqD;IACrE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAChC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAChC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACpC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACtC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;CACjC,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,EACtC,KAAK,EACL,QAAQ,EACR,QAAQ,GAKT;IACC,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,wBAAwB,CAAC,QAAQ,aAC5C,MAAC,IAAI,IAAC,KAAK,EAAE,wBAAwB,CAAC,OAAO,aAC3C,KAAC,gBAAgB,IAAC,KAAK,EAAC,YAAY,YAClC,KAAC,KAAK,IACJ,cAAc,EAAC,MAAM,EACrB,KAAK,EAAE,KAAK,CAAC,IAAI,EACjB,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,GACpD,GACe,EACnB,KAAC,gBAAgB,IAAC,KAAK,EAAC,MAAM,YAC5B,KAAC,MAAM,IACL,KAAK,EAAE,KAAK,CAAC,IAAI,EACjB,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,GACrD,GACe,EACnB,KAAC,gBAAgB,IAAC,KAAK,EAAC,SAAS,YAC/B,KAAC,KAAK,IACJ,KAAK,EAAE,KAAK,CAAC,gBAAgB,EAC7B,YAAY,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,gBAAgB,EAAE,CAAC,GAC5E,GACe,IACd,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,wBAAwB,CAAC,OAAO,aAC3C,KAAC,kBAAkB,IACjB,KAAK,EAAC,UAAU,EAChB,KAAK,EAAE,KAAK,CAAC,QAAQ,EACrB,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,GAC7D,EACF,KAAC,kBAAkB,IACjB,KAAK,EAAC,QAAQ,EACd,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,GACzD,EACF,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,QAAQ,6BAElC,IACJ,IACF,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { GeneratedRestApiDataSourceConfig } from '@ankhorage/contracts';
2
+ export declare function GeneratedApiNormalizedOperations({ dataSource, }: {
3
+ readonly dataSource?: GeneratedRestApiDataSourceConfig;
4
+ }): import("react").JSX.Element | null;
5
+ //# sourceMappingURL=GeneratedApiNormalizedOperations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneratedApiNormalizedOperations.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/pages/GeneratedApiNormalizedOperations.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAO7E,wBAAgB,gCAAgC,CAAC,EAC/C,UAAU,GACX,EAAE;IACD,QAAQ,CAAC,UAAU,CAAC,EAAE,gCAAgC,CAAC;CACxD,sCAeA"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text } from '@ankhorage/zora';
3
+ import { View } from 'react-native';
4
+ import { collectDataSourceOperationRows } from './adminDataSourceOperations';
5
+ import { generatedApiEditorStyles } from './generatedApiEditorStyles';
6
+ export function GeneratedApiNormalizedOperations({ dataSource, }) {
7
+ if (!dataSource)
8
+ return null;
9
+ const rows = collectDataSourceOperationRows({ [dataSource.id]: dataSource });
10
+ return (_jsxs(View, { style: generatedApiEditorStyles.stack, children: [_jsx(Text, { variant: "bodySmall", weight: "semiBold", children: "Normalized operations" }), rows.map((row) => (_jsxs(Text, { color: "neutral", variant: "caption", children: [row.operationId, " \u00B7 ", row.protocol, " \u00B7 ", row.kind, " \u00B7 ", row.path ?? '—'] }, `${row.endpointId}:${row.operationId}`)))] }));
11
+ }
12
+ //# sourceMappingURL=GeneratedApiNormalizedOperations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneratedApiNormalizedOperations.js","sourceRoot":"","sources":["../../../../src/ui/admin/pages/GeneratedApiNormalizedOperations.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,UAAU,gCAAgC,CAAC,EAC/C,UAAU,GAGX;IACC,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,IAAI,GAAG,8BAA8B,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAC7E,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,wBAAwB,CAAC,KAAK,aACzC,KAAC,IAAI,IAAC,OAAO,EAAC,WAAW,EAAC,MAAM,EAAC,UAAU,sCAEpC,EACN,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACjB,MAAC,IAAI,IAA8C,KAAK,EAAC,SAAS,EAAC,OAAO,EAAC,SAAS,aACjF,GAAG,CAAC,WAAW,cAAK,GAAG,CAAC,QAAQ,cAAK,GAAG,CAAC,IAAI,cAAK,GAAG,CAAC,IAAI,IAAI,GAAG,KADzD,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,CAE1C,CACR,CAAC,IACG,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type GeneratedApiResourceDraft } from './generatedApiEditorModel';
2
+ export declare function GeneratedApiResourceEditor({ resource, canRemove, onChange, onRemove, }: {
3
+ readonly resource: GeneratedApiResourceDraft;
4
+ readonly canRemove: boolean;
5
+ readonly onChange: (resource: GeneratedApiResourceDraft) => void;
6
+ readonly onRemove: () => void;
7
+ }): import("react").JSX.Element;
8
+ //# sourceMappingURL=GeneratedApiResourceEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneratedApiResourceEditor.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/pages/GeneratedApiResourceEditor.tsx"],"names":[],"mappings":"AAOA,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,2BAA2B,CAAC;AAMnC,wBAAgB,0BAA0B,CAAC,EACzC,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACjE,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;CAC/B,+BA4HA"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { GENERATED_API_CRUD_OPERATIONS, } from '@ankhorage/contracts';
3
+ import { Button, Input, Text } from '@ankhorage/zora';
4
+ import { View } from 'react-native';
5
+ import { createGeneratedApiFieldDraft, } from './generatedApiEditorModel';
6
+ import { generatedApiEditorStyles } from './generatedApiEditorStyles';
7
+ import { ExternalApiField } from './ExternalApiAdminPrimitives';
8
+ import { GeneratedApiFieldEditor } from './GeneratedApiFieldEditor';
9
+ import { GeneratedApiToggle } from './GeneratedApiToggle';
10
+ export function GeneratedApiResourceEditor({ resource, canRemove, onChange, onRemove, }) {
11
+ const updateField = (index, field) => onChange({
12
+ ...resource,
13
+ fields: resource.fields.map((current, currentIndex) => currentIndex === index ? field : current),
14
+ });
15
+ const removeField = (index) => onChange({
16
+ ...resource,
17
+ fields: resource.fields.filter((_, currentIndex) => currentIndex !== index),
18
+ });
19
+ const toggleOperation = (operation, enabled) => onChange({
20
+ ...resource,
21
+ operations: enabled
22
+ ? [...resource.operations, operation]
23
+ : resource.operations.filter((current) => current !== operation),
24
+ });
25
+ return (_jsxs(View, { style: generatedApiEditorStyles.bordered, children: [_jsx(Text, { weight: "semiBold", children: "Resource" }), _jsxs(View, { style: generatedApiEditorStyles.columns, children: [_jsx(ExternalApiField, { label: "Resource ID", children: _jsx(Input, { autoCapitalize: "none", value: resource.id, onChangeText: (id) => onChange({ ...resource, id }) }) }), _jsx(ExternalApiField, { label: "Path", children: _jsx(Input, { autoCapitalize: "none", value: resource.path, onChangeText: (path) => onChange({ ...resource, path }) }) }), _jsx(ExternalApiField, { label: "Table / collection", children: _jsx(Input, { autoCapitalize: "none", value: resource.collectionName, onChangeText: (collectionName) => onChange({ ...resource, collectionName }) }) }), _jsx(ExternalApiField, { label: "Schema", children: _jsx(Input, { autoCapitalize: "none", value: resource.schema, onChangeText: (schema) => onChange({ ...resource, schema }) }) }), _jsx(ExternalApiField, { label: "Primary key", children: _jsx(Input, { autoCapitalize: "none", value: resource.primaryKey, onChangeText: (primaryKey) => onChange({ ...resource, primaryKey }) }) })] }), _jsxs(View, { style: generatedApiEditorStyles.columns, children: [_jsx(ExternalApiField, { label: "Name", children: _jsx(Input, { value: resource.name, onChangeText: (name) => onChange({ ...resource, name }) }) }), _jsx(ExternalApiField, { label: "Description", children: _jsx(Input, { value: resource.description, onChangeText: (description) => onChange({ ...resource, description }) }) })] }), _jsx(Text, { variant: "bodySmall", weight: "semiBold", children: "CRUD operations" }), _jsx(View, { style: generatedApiEditorStyles.actions, children: GENERATED_API_CRUD_OPERATIONS.map((operation) => (_jsx(GeneratedApiToggle, { label: operation, value: resource.operations.includes(operation), onValueChange: (enabled) => toggleOperation(operation, enabled) }, operation))) }), _jsx(Text, { variant: "bodySmall", weight: "semiBold", children: "Fields" }), _jsxs(View, { style: generatedApiEditorStyles.stack, children: [resource.fields.map((field, index) => (_jsx(GeneratedApiFieldEditor, { field: field, onChange: (next) => updateField(index, next), onRemove: () => removeField(index) }, `${index}:${field.name}`))), _jsx(Button, { variant: "outline", onPress: () => onChange({ ...resource, fields: [...resource.fields, createGeneratedApiFieldDraft()] }), children: "Add field" })] }), _jsx(ExternalApiField, { label: "Starter / seed records (JSON array)", children: _jsx(Input, { multiline: true, numberOfLines: 6, autoCapitalize: "none", value: resource.seedText, onChangeText: (seedText) => onChange({ ...resource, seedText }) }) }), canRemove ? (_jsx(View, { style: generatedApiEditorStyles.actions, children: _jsx(Button, { variant: "outline", onPress: onRemove, children: "Remove resource" }) })) : null] }));
26
+ }
27
+ //# sourceMappingURL=GeneratedApiResourceEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneratedApiResourceEditor.js","sourceRoot":"","sources":["../../../../src/ui/admin/pages/GeneratedApiResourceEditor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function GeneratedApiToggle({ label, value, onValueChange, }: {
2
+ readonly label: string;
3
+ readonly value: boolean;
4
+ readonly onValueChange: (value: boolean) => void;
5
+ }): import("react").JSX.Element;
6
+ //# sourceMappingURL=GeneratedApiToggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneratedApiToggle.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/pages/GeneratedApiToggle.tsx"],"names":[],"mappings":"AAKA,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,KAAK,EACL,aAAa,GACd,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD,+BAOA"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text } from '@ankhorage/zora';
3
+ import { Switch, View } from 'react-native';
4
+ import { generatedApiEditorStyles } from './generatedApiEditorStyles';
5
+ export function GeneratedApiToggle({ label, value, onValueChange, }) {
6
+ return (_jsxs(View, { style: generatedApiEditorStyles.toggle, children: [_jsx(Switch, { value: value, onValueChange: onValueChange }), _jsx(Text, { variant: "bodySmall", children: label })] }));
7
+ }
8
+ //# sourceMappingURL=GeneratedApiToggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneratedApiToggle.js","sourceRoot":"","sources":["../../../../src/ui/admin/pages/GeneratedApiToggle.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,UAAU,kBAAkB,CAAC,EACjC,KAAK,EACL,KAAK,EACL,aAAa,GAKd;IACC,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,wBAAwB,CAAC,MAAM,aAC1C,KAAC,MAAM,IAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,GAAI,EACtD,KAAC,IAAI,IAAC,OAAO,EAAC,WAAW,YAAE,KAAK,GAAQ,IACnC,CACR,CAAC;AACJ,CAAC"}
@@ -54,6 +54,6 @@ export function ManualRestSourceCard() {
54
54
  setBusy(false);
55
55
  }
56
56
  }, [baseUrl, endpointId, intent, method, operationId, path, sourceId, studio]);
57
- return (_jsx(Card, { title: "Manual REST fallback", children: _jsxs(View, { style: externalApiAdminStyles.stack, children: [_jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: "Use this when no OpenAPI document exists. Additional operations can be introduced through the same canonical REST definition architecture." }), _jsxs(View, { style: externalApiAdminStyles.columns, children: [_jsx(ExternalApiField, { label: "Data-source ID", children: _jsx(Input, { value: sourceId, autoCapitalize: "none", onChangeText: setSourceId }) }), _jsx(ExternalApiField, { label: "Base URL", children: _jsx(Input, { value: baseUrl, autoCapitalize: "none", onChangeText: setBaseUrl }) })] }), _jsxs(View, { style: externalApiAdminStyles.columns, children: [_jsx(ExternalApiField, { label: "Endpoint ID", children: _jsx(Input, { value: endpointId, autoCapitalize: "none", onChangeText: setEndpointId }) }), _jsx(ExternalApiField, { label: "Path", children: _jsx(Input, { value: path, autoCapitalize: "none", onChangeText: setPath }) }), _jsx(ExternalApiField, { label: "Operation ID", children: _jsx(Input, { value: operationId, autoCapitalize: "none", onChangeText: setOperationId }) })] }), _jsxs(View, { style: externalApiAdminStyles.columns, children: [_jsx(ExternalApiField, { label: "HTTP method", children: _jsx(Select, { value: method, options: METHOD_OPTIONS, onValueChange: setMethod }) }), _jsx(ExternalApiField, { label: "Intent", children: _jsx(Select, { value: intent, options: INTENT_OPTIONS, onValueChange: setIntent }) })] }), _jsx(View, { style: externalApiAdminStyles.actions, children: _jsx(Button, { loading: busy, disabled: !sourceId.trim() || !baseUrl.trim() || !path.trim(), onPress: () => void save(), children: "Save REST source" }) }), message ? _jsx(Text, { variant: "bodySmall", children: message }) : null, result ? _jsx(ExternalApiDiagnosticList, { diagnostics: result.diagnostics }) : null] }) }));
57
+ return (_jsx(Card, { title: "Manual external REST API", children: _jsxs(View, { style: externalApiAdminStyles.stack, children: [_jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: "Use this when no OpenAPI document exists. Additional operations can be introduced through the same canonical REST definition architecture." }), _jsxs(View, { style: externalApiAdminStyles.columns, children: [_jsx(ExternalApiField, { label: "Data-source ID", children: _jsx(Input, { value: sourceId, autoCapitalize: "none", onChangeText: setSourceId }) }), _jsx(ExternalApiField, { label: "Base URL", children: _jsx(Input, { value: baseUrl, autoCapitalize: "none", onChangeText: setBaseUrl }) })] }), _jsxs(View, { style: externalApiAdminStyles.columns, children: [_jsx(ExternalApiField, { label: "Endpoint ID", children: _jsx(Input, { value: endpointId, autoCapitalize: "none", onChangeText: setEndpointId }) }), _jsx(ExternalApiField, { label: "Path", children: _jsx(Input, { value: path, autoCapitalize: "none", onChangeText: setPath }) }), _jsx(ExternalApiField, { label: "Operation ID", children: _jsx(Input, { value: operationId, autoCapitalize: "none", onChangeText: setOperationId }) })] }), _jsxs(View, { style: externalApiAdminStyles.columns, children: [_jsx(ExternalApiField, { label: "HTTP method", children: _jsx(Select, { value: method, options: METHOD_OPTIONS, onValueChange: setMethod }) }), _jsx(ExternalApiField, { label: "Intent", children: _jsx(Select, { value: intent, options: INTENT_OPTIONS, onValueChange: setIntent }) })] }), _jsx(View, { style: externalApiAdminStyles.actions, children: _jsx(Button, { loading: busy, disabled: !sourceId.trim() || !baseUrl.trim() || !path.trim(), onPress: () => void save(), children: "Save REST source" }) }), message ? _jsx(Text, { variant: "bodySmall", children: message }) : null, result ? _jsx(ExternalApiDiagnosticList, { diagnostics: result.diagnostics }) : null] }) }));
58
58
  }
59
59
  //# sourceMappingURL=ManualRestSourceCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManualRestSourceCard.js","sourceRoot":"","sources":["../../../../src/ui/admin/pages/ManualRestSourceCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ManualRestSourceCard.js","sourceRoot":"","sources":["../../../../src/ui/admin/pages/ManualRestSourceCard.tsx"],"names":[],"mappings":"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"}
@@ -8,6 +8,9 @@ export interface DataSourceOperationRow {
8
8
  readonly protocol: string | null;
9
9
  readonly method: string | null;
10
10
  readonly path: string | null;
11
+ readonly sourceOrigin: 'external' | 'generated' | null;
12
+ readonly sourceProtocol: 'graphql' | 'rest' | null;
13
+ readonly testable: boolean;
11
14
  }
12
15
  export declare function collectDataSourceOperationRows(dataSources: DataSourceRegistry): DataSourceOperationRow[];
13
16
  //# sourceMappingURL=adminDataSourceOperations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adminDataSourceOperations.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/pages/adminDataSourceOperations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,kBAAkB,GAC9B,sBAAsB,EAAE,CAe1B"}
1
+ {"version":3,"file":"adminDataSourceOperations.d.ts","sourceRoot":"","sources":["../../../../src/ui/admin/pages/adminDataSourceOperations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC;IACvD,QAAQ,CAAC,cAAc,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,kBAAkB,GAC9B,sBAAsB,EAAE,CAqB1B"}
@@ -8,6 +8,11 @@ export function collectDataSourceOperationRows(dataSources) {
8
8
  protocol: operation.protocol,
9
9
  method: operation.method ?? null,
10
10
  path: operation.path ?? endpoint.path ?? null,
11
+ sourceOrigin: source.kind === 'api' ? source.origin : null,
12
+ sourceProtocol: source.kind === 'api' ? source.protocol : null,
13
+ testable: source.kind === 'api' &&
14
+ source.origin === 'external' &&
15
+ operation.protocol !== 'database',
11
16
  }))));
12
17
  }
13
18
  //# sourceMappingURL=adminDataSourceOperations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adminDataSourceOperations.js","sourceRoot":"","sources":["../../../../src/ui/admin/pages/adminDataSourceOperations.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,8BAA8B,CAC5C,WAA+B;IAE/B,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAChE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,CAClE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,QAAQ;QACR,UAAU;QACV,WAAW;QACX,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,IAAI,EAAE,SAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,IAAI;QAChC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI;KAC9C,CAAC,CAAC,CACJ,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"adminDataSourceOperations.js","sourceRoot":"","sources":["../../../../src/ui/admin/pages/adminDataSourceOperations.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,8BAA8B,CAC5C,WAA+B;IAE/B,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAChE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,CAClE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,QAAQ;QACR,UAAU;QACV,WAAW;QACX,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,IAAI,EAAE,SAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,IAAI;QAChC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI;QAC7C,YAAY,EAAE,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QAC1D,cAAc,EAAE,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;QAC9D,QAAQ,EACN,MAAM,CAAC,IAAI,KAAK,KAAK;YACrB,MAAM,CAAC,MAAM,KAAK,UAAU;YAC5B,SAAS,CAAC,QAAQ,KAAK,UAAU;KACpC,CAAC,CAAC,CACJ,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { StudioBindingDiagnostic } from '../../../../bindingAuthoringModel';
2
+ export declare function BindingDiagnosticsCard(props: {
3
+ readonly diagnostics: readonly StudioBindingDiagnostic[];
4
+ }): import("react").JSX.Element;
5
+ //# sourceMappingURL=BindingDiagnosticsCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BindingDiagnosticsCard.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/bindings/BindingDiagnosticsCard.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAGjF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,QAAQ,CAAC,WAAW,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAC1D,+BA4BA"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Card, Text } from '@ankhorage/zora';
3
+ import { View } from 'react-native';
4
+ import { bindingAdminStyles } from './bindingAdminStyles';
5
+ export function BindingDiagnosticsCard(props) {
6
+ return (_jsx(Card, { title: "Binding diagnostics", children: _jsx(View, { style: bindingAdminStyles.compactStack, children: props.diagnostics.length === 0 ? (_jsx(Text, { color: "success", variant: "bodySmall", children: "No binding diagnostics for this component." })) : (props.diagnostics.map((diagnostic, index) => (_jsxs(View, { children: [_jsx(Text, { color: diagnostic.severity === 'error' ? 'danger' : 'warning', variant: "bodySmall", children: diagnostic.message }), diagnostic.path ? (_jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: diagnostic.path })) : null] }, `${diagnostic.code}:${diagnostic.path ?? index}`)))) }) }));
7
+ }
8
+ //# sourceMappingURL=BindingDiagnosticsCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BindingDiagnosticsCard.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/bindings/BindingDiagnosticsCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,UAAU,sBAAsB,CAAC,KAEtC;IACC,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAC,qBAAqB,YAC/B,KAAC,IAAI,IAAC,KAAK,EAAE,kBAAkB,CAAC,YAAY,YACzC,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAChC,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,OAAO,EAAC,WAAW,2DAElC,CACR,CAAC,CAAC,CAAC,CACF,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,CAC3C,MAAC,IAAI,eACH,KAAC,IAAI,IACH,KAAK,EAAE,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAC7D,OAAO,EAAC,WAAW,YAElB,UAAU,CAAC,OAAO,GACd,EACN,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CACjB,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,EAAC,WAAW,YACvD,UAAU,CAAC,IAAI,GACX,CACR,CAAC,CAAC,CAAC,IAAI,KAXC,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,IAAI,KAAK,EAAE,CAYpD,CACR,CAAC,CACH,GACI,GACF,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { EventBinding, UiBindableEventMeta } from '@ankhorage/contracts';
2
+ import { type StudioBindingOperationOption } from '../../../../bindingAuthoringModel';
3
+ export declare function EventBindingComposer(props: {
4
+ readonly eventMeta: UiBindableEventMeta;
5
+ readonly operations: readonly StudioBindingOperationOption[];
6
+ readonly onAdd: (binding: EventBinding) => void;
7
+ }): import("react").JSX.Element;
8
+ //# sourceMappingURL=EventBindingComposer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventBindingComposer.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/bindings/EventBindingComposer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAK9E,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,mCAAmC,CAAC;AA0B3C,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAC7D,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;CACjD,+BA4EA"}
@@ -0,0 +1,60 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, Input, Select, Text } from '@ankhorage/zora';
3
+ import { useEffect, useMemo, useState } from 'react';
4
+ import { View } from 'react-native';
5
+ import { createStudioActionInputFields, } from '../../../../bindingAuthoringModel';
6
+ import { ACTION_REGISTRY } from '../../../../index';
7
+ import { Field } from '../../adminPagePrimitives';
8
+ import { bindingAdminStyles } from './bindingAdminStyles';
9
+ import { createStudioEventBinding, createStudioEventInputDrafts, createStudioOperationKey, findStudioOperationByKey, } from './bindingEditorModel';
10
+ const TARGET_OPTIONS = [
11
+ { value: 'action', label: 'Action' },
12
+ { value: 'operation', label: 'Data-source operation' },
13
+ ];
14
+ const INPUT_SOURCE_OPTIONS = [
15
+ { value: 'event', label: 'Event payload' },
16
+ { value: 'literal', label: 'Literal' },
17
+ ];
18
+ const ACTION_OPTIONS = Object.values(ACTION_REGISTRY).map((action) => ({
19
+ value: action.type,
20
+ label: action.label,
21
+ }));
22
+ export function EventBindingComposer(props) {
23
+ const { eventMeta, onAdd, operations } = props;
24
+ const [targetKind, setTargetKind] = useState('action');
25
+ const [actionType, setActionType] = useState(ACTION_OPTIONS[0]?.value ?? 'navigate');
26
+ const [operationKey, setOperationKey] = useState(operations[0] ? createStudioOperationKey(operations[0].operation) : '');
27
+ const selectedOperation = findStudioOperationByKey(operations, operationKey);
28
+ const fields = useMemo(() => targetKind === 'action'
29
+ ? createStudioActionInputFields(ACTION_REGISTRY[actionType]?.payloadSchema)
30
+ : (selectedOperation?.inputFields ?? []), [actionType, selectedOperation?.inputFields, targetKind]);
31
+ const eventFields = useMemo(() => eventMeta.payload?.fields ?? [], [eventMeta.payload?.fields]);
32
+ const [drafts, setDrafts] = useState({});
33
+ useEffect(() => {
34
+ setDrafts(createStudioEventInputDrafts(fields, eventFields));
35
+ }, [eventFields, fields]);
36
+ const add = () => {
37
+ const target = targetKind === 'action'
38
+ ? { kind: 'action', type: actionType }
39
+ : selectedOperation
40
+ ? { kind: 'operation', operation: selectedOperation.operation }
41
+ : null;
42
+ if (!target)
43
+ return;
44
+ onAdd(createStudioEventBinding({ target, fields, drafts }));
45
+ };
46
+ return (_jsxs(View, { style: bindingAdminStyles.stack, children: [_jsxs(View, { style: bindingAdminStyles.row, children: [_jsx(View, { style: bindingAdminStyles.grow, children: _jsx(Field, { label: "Target kind", children: _jsx(Select, { value: targetKind, options: TARGET_OPTIONS, onValueChange: setTargetKind }) }) }), _jsx(View, { style: bindingAdminStyles.grow, children: targetKind === 'action' ? (_jsx(Field, { label: "Action", children: _jsx(Select, { value: actionType, options: ACTION_OPTIONS, onValueChange: setActionType }) })) : (_jsx(Field, { label: "Operation", children: _jsx(Select, { value: operationKey, options: operations.map((operation) => ({
47
+ value: createStudioOperationKey(operation.operation),
48
+ label: operation.label,
49
+ })), onValueChange: setOperationKey }) })) })] }), targetKind === 'operation' && selectedOperation ? (_jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: selectedOperation.sourceLabel })) : null, _jsx(EventInputDrafts, { fields: fields, eventFields: eventFields.map((field) => field.path), drafts: drafts, onChange: setDrafts }), _jsx(Button, { disabled: targetKind === 'operation' && !selectedOperation, onPress: add, children: "Add binding" })] }));
50
+ }
51
+ function EventInputDrafts(props) {
52
+ if (props.fields.length === 0) {
53
+ return (_jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: "This target has no declared inputs." }));
54
+ }
55
+ return (_jsxs(View, { style: bindingAdminStyles.stack, children: [props.fields.map((field) => {
56
+ const draft = props.drafts[field.name] ?? { kind: 'literal', value: '' };
57
+ return (_jsxs(View, { style: bindingAdminStyles.row, children: [_jsx(View, { style: bindingAdminStyles.grow, children: _jsx(Field, { label: `${field.label} · ${field.value.type}${field.required ? ' · required' : ''}`, children: _jsx(Select, { value: draft.kind, options: INPUT_SOURCE_OPTIONS, onValueChange: (kind) => props.onChange({ ...props.drafts, [field.name]: { ...draft, kind } }) }) }) }), _jsx(View, { style: bindingAdminStyles.grow, children: _jsx(Field, { label: draft.kind === 'event' ? 'Payload path' : 'Literal value', children: _jsx(Input, { value: draft.value, placeholder: draft.kind === 'event' ? 'values.name' : undefined, onChangeText: (value) => props.onChange({ ...props.drafts, [field.name]: { ...draft, value } }) }) }) })] }, field.name));
58
+ }), props.eventFields.length > 0 ? (_jsxs(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: ["Known payload paths: ", props.eventFields.join(', '), ". Nested paths may be entered manually."] })) : null] }));
59
+ }
60
+ //# sourceMappingURL=EventBindingComposer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventBindingComposer.js","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/bindings/EventBindingComposer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ComponentDataBindingRegistry, UiNode } from '@ankhorage/contracts';
2
+ import { type StudioBindingOperationOption } from '../../../../bindingAuthoringModel';
3
+ export declare function EventBindingsCard(props: {
4
+ readonly node: UiNode;
5
+ readonly registry: ComponentDataBindingRegistry;
6
+ readonly operations: readonly StudioBindingOperationOption[];
7
+ readonly onChange: (registry: ComponentDataBindingRegistry) => void;
8
+ }): import("react").JSX.Element;
9
+ //# sourceMappingURL=EventBindingsCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventBindingsCard.d.ts","sourceRoot":"","sources":["../../../../../src/ui/admin/pages/bindings/EventBindingsCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAIjF,OAAO,EAIL,KAAK,4BAA4B,EAClC,MAAM,mCAAmC,CAAC;AAI3C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,4BAA4B,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAC7D,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,4BAA4B,KAAK,IAAI,CAAC;CACrE,+BAwDA"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, Card, Text, ZORA_BINDABLE_COMPONENT_META } from '@ankhorage/zora';
3
+ import { View } from 'react-native';
4
+ import { appendStudioEventBinding, removeStudioEventBinding, resolveStudioBindableEvents, } from '../../../../bindingAuthoringModel';
5
+ import { bindingAdminStyles } from './bindingAdminStyles';
6
+ import { EventBindingComposer } from './EventBindingComposer';
7
+ export function EventBindingsCard(props) {
8
+ const options = resolveStudioBindableEvents(props.node, ZORA_BINDABLE_COMPONENT_META);
9
+ const current = props.registry[props.node.id]?.events ?? {};
10
+ return (_jsx(Card, { title: "Event / action bindings", children: _jsxs(View, { style: bindingAdminStyles.stack, children: [_jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: "Component events come from ZORA metadata. Bind them to canonical actions or data-source operations; Runtime remains responsible for execution." }), options.map((option) => (_jsxs(View, { style: bindingAdminStyles.stack, children: [_jsx(Text, { weight: "semiBold", children: option.label }), _jsx(EventPayloadSummary, { fields: option.meta.payload?.fields ?? [] }), (current[option.name] ?? []).map((binding, index) => (_jsxs(View, { style: bindingAdminStyles.row, children: [_jsxs(View, { style: bindingAdminStyles.grow, children: [_jsx(Text, { variant: "bodySmall", children: describeEventBinding(binding) }), _jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: describeBindingInput(binding.input) })] }), _jsx(Button, { variant: "ghost", color: "neutral", onPress: () => props.onChange(removeStudioEventBinding(props.registry, props.node, option.name, index)), children: "Remove" })] }, `${option.name}:${index}`))), _jsx(EventBindingComposer, { eventMeta: option.meta, operations: props.operations, onAdd: (binding) => props.onChange(appendStudioEventBinding(props.registry, props.node, option.name, binding)) }), _jsx(View, { style: bindingAdminStyles.divider })] }, option.name))), options.length === 0 ? (_jsx(Text, { color: "neutral", emphasis: "muted", children: "This component exposes no bindable events." })) : null] }) }));
11
+ }
12
+ function EventPayloadSummary(props) {
13
+ return (_jsx(Text, { color: "neutral", emphasis: "muted", variant: "bodySmall", children: props.fields.length > 0
14
+ ? `Payload: ${props.fields.map((field) => `${field.label ?? field.path} (${field.type})`).join(', ')}`
15
+ : 'Payload: none' }));
16
+ }
17
+ function describeEventBinding(binding) {
18
+ if (binding.target.kind === 'action')
19
+ return `Action · ${binding.target.type}`;
20
+ const { dataSourceId, endpointId, operationId } = binding.target.operation;
21
+ return `Operation · ${dataSourceId} · ${endpointId ?? '<auto>'} · ${operationId}`;
22
+ }
23
+ function describeBindingInput(input) {
24
+ const keys = Object.keys(input ?? {});
25
+ return keys.length > 0 ? `Inputs: ${keys.join(', ')}` : 'No mapped inputs';
26
+ }
27
+ //# sourceMappingURL=EventBindingsCard.js.map