@objectstack/spec 0.3.3 → 0.4.2

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 (304) hide show
  1. package/dist/ai/conversation.zod.d.ts +14 -14
  2. package/dist/ai/cost.zod.d.ts +112 -112
  3. package/dist/ai/model-registry.zod.d.ts +44 -44
  4. package/dist/ai/nlq.zod.d.ts +2 -2
  5. package/dist/ai/orchestration.zod.d.ts +6 -6
  6. package/dist/ai/predictive.zod.d.ts +8 -8
  7. package/dist/ai/rag-pipeline.zod.d.ts +62 -62
  8. package/dist/api/contract.zod.d.ts +92 -92
  9. package/dist/api/discovery.zod.d.ts +2 -2
  10. package/dist/api/index.d.ts +2 -0
  11. package/dist/api/index.d.ts.map +1 -1
  12. package/dist/api/index.js +2 -0
  13. package/dist/api/odata.zod.d.ts +482 -0
  14. package/dist/api/odata.zod.d.ts.map +1 -0
  15. package/dist/api/odata.zod.js +401 -0
  16. package/dist/api/router.zod.d.ts +4 -4
  17. package/dist/auth/config.zod.d.ts +21 -21
  18. package/dist/auth/index.d.ts +1 -0
  19. package/dist/auth/index.d.ts.map +1 -1
  20. package/dist/auth/index.js +1 -0
  21. package/dist/auth/organization.zod.d.ts +2 -2
  22. package/dist/auth/role.zod.d.ts +14 -0
  23. package/dist/auth/role.zod.d.ts.map +1 -1
  24. package/dist/auth/role.zod.js +16 -1
  25. package/dist/auth/scim.zod.d.ts +2732 -0
  26. package/dist/auth/scim.zod.d.ts.map +1 -0
  27. package/dist/auth/scim.zod.js +811 -0
  28. package/dist/automation/approval.zod.d.ts +643 -0
  29. package/dist/automation/approval.zod.d.ts.map +1 -0
  30. package/dist/automation/approval.zod.js +84 -0
  31. package/dist/automation/connector.zod.d.ts +1284 -0
  32. package/dist/automation/connector.zod.d.ts.map +1 -0
  33. package/dist/automation/connector.zod.js +500 -0
  34. package/dist/automation/etl.zod.d.ts +623 -0
  35. package/dist/automation/etl.zod.d.ts.map +1 -0
  36. package/dist/automation/etl.zod.js +359 -0
  37. package/dist/automation/flow.zod.d.ts +6 -6
  38. package/dist/automation/index.d.ts +4 -0
  39. package/dist/automation/index.d.ts.map +1 -1
  40. package/dist/automation/index.js +4 -0
  41. package/dist/automation/sync.zod.d.ts +854 -0
  42. package/dist/automation/sync.zod.d.ts.map +1 -0
  43. package/dist/automation/sync.zod.js +444 -0
  44. package/dist/automation/webhook.zod.d.ts +24 -1
  45. package/dist/automation/webhook.zod.d.ts.map +1 -1
  46. package/dist/automation/webhook.zod.js +27 -3
  47. package/dist/automation/workflow.zod.d.ts +14 -0
  48. package/dist/automation/workflow.zod.d.ts.map +1 -1
  49. package/dist/automation/workflow.zod.js +16 -1
  50. package/dist/data/field.zod.d.ts +338 -8
  51. package/dist/data/field.zod.d.ts.map +1 -1
  52. package/dist/data/field.zod.js +100 -16
  53. package/dist/data/mapping.zod.d.ts +22 -10
  54. package/dist/data/mapping.zod.d.ts.map +1 -1
  55. package/dist/data/mapping.zod.js +16 -3
  56. package/dist/data/object.zod.d.ts +116 -22
  57. package/dist/data/object.zod.d.ts.map +1 -1
  58. package/dist/data/object.zod.js +4 -4
  59. package/dist/data/validation.zod.d.ts +18 -18
  60. package/dist/hub/composer.zod.d.ts +43 -1940
  61. package/dist/hub/composer.zod.d.ts.map +1 -1
  62. package/dist/hub/composer.zod.js +1 -1
  63. package/dist/hub/license.zod.d.ts +2 -2
  64. package/dist/hub/marketplace.zod.d.ts +6 -6
  65. package/dist/index.d.ts +2 -2
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +6 -3
  68. package/dist/permission/index.d.ts +7 -5
  69. package/dist/permission/index.d.ts.map +1 -1
  70. package/dist/permission/index.js +7 -5
  71. package/dist/permission/permission.zod.d.ts +14 -0
  72. package/dist/permission/permission.zod.d.ts.map +1 -1
  73. package/dist/permission/permission.zod.js +16 -1
  74. package/dist/permission/rls.zod.d.ts +605 -0
  75. package/dist/permission/rls.zod.d.ts.map +1 -0
  76. package/dist/permission/rls.zod.js +615 -0
  77. package/dist/permission/territory.zod.d.ts +13 -0
  78. package/dist/permission/territory.zod.d.ts.map +1 -1
  79. package/dist/permission/territory.zod.js +15 -1
  80. package/dist/shared/identifiers.zod.d.ts +87 -0
  81. package/dist/shared/identifiers.zod.d.ts.map +1 -0
  82. package/dist/shared/identifiers.zod.js +101 -0
  83. package/dist/shared/index.d.ts +6 -0
  84. package/dist/shared/index.d.ts.map +1 -0
  85. package/dist/{driver → shared}/index.js +5 -4
  86. package/dist/stack.zod.d.ts +19869 -0
  87. package/dist/stack.zod.d.ts.map +1 -0
  88. package/dist/stack.zod.js +248 -0
  89. package/dist/system/audit.zod.d.ts +12 -12
  90. package/dist/{kernel → system}/context.zod.d.ts.map +1 -1
  91. package/dist/{driver → system}/datasource.zod.d.ts +2 -2
  92. package/dist/{driver → system}/datasource.zod.d.ts.map +1 -1
  93. package/dist/{driver → system/driver}/mongo.zod.d.ts +2 -2
  94. package/dist/system/driver/mongo.zod.d.ts.map +1 -0
  95. package/dist/{driver → system/driver}/postgres.zod.d.ts +4 -4
  96. package/dist/system/driver/postgres.zod.d.ts.map +1 -0
  97. package/dist/{driver → system}/driver.zod.d.ts +14 -14
  98. package/dist/{driver → system}/driver.zod.d.ts.map +1 -1
  99. package/dist/system/events.zod.d.ts +15 -12
  100. package/dist/system/events.zod.d.ts.map +1 -1
  101. package/dist/system/events.zod.js +5 -1
  102. package/dist/system/feature.zod.d.ts +131 -0
  103. package/dist/system/feature.zod.d.ts.map +1 -0
  104. package/dist/system/feature.zod.js +45 -0
  105. package/dist/system/index.d.ts +10 -0
  106. package/dist/system/index.d.ts.map +1 -1
  107. package/dist/system/index.js +12 -0
  108. package/dist/system/job.zod.d.ts +8 -8
  109. package/dist/{kernel → system}/logger.zod.d.ts +4 -4
  110. package/dist/{kernel → system}/logger.zod.d.ts.map +1 -1
  111. package/dist/system/manifest.zod.d.ts +518 -0
  112. package/dist/system/manifest.zod.d.ts.map +1 -0
  113. package/dist/{kernel → system}/manifest.zod.js +8 -17
  114. package/dist/{kernel → system}/plugin.zod.d.ts.map +1 -1
  115. package/dist/{kernel → system}/scoped-storage.zod.d.ts +2 -2
  116. package/dist/{kernel → system}/scoped-storage.zod.d.ts.map +1 -1
  117. package/dist/ui/action.zod.d.ts +35 -10
  118. package/dist/ui/action.zod.d.ts.map +1 -1
  119. package/dist/ui/action.zod.js +30 -1
  120. package/dist/ui/app.zod.d.ts +23 -8
  121. package/dist/ui/app.zod.d.ts.map +1 -1
  122. package/dist/ui/app.zod.js +32 -4
  123. package/dist/ui/block.zod.d.ts +265 -0
  124. package/dist/ui/block.zod.d.ts.map +1 -0
  125. package/dist/ui/block.zod.js +90 -0
  126. package/dist/ui/component.zod.d.ts +265 -0
  127. package/dist/ui/component.zod.d.ts.map +1 -0
  128. package/dist/ui/component.zod.js +90 -0
  129. package/dist/ui/dashboard.zod.d.ts +15 -15
  130. package/dist/ui/dashboard.zod.d.ts.map +1 -1
  131. package/dist/ui/dashboard.zod.js +18 -8
  132. package/dist/ui/index.d.ts +1 -0
  133. package/dist/ui/index.d.ts.map +1 -1
  134. package/dist/ui/index.js +1 -0
  135. package/dist/ui/page.zod.d.ts +21 -3
  136. package/dist/ui/page.zod.d.ts.map +1 -1
  137. package/dist/ui/page.zod.js +37 -4
  138. package/dist/ui/report.zod.d.ts +7 -7
  139. package/dist/ui/view.zod.d.ts +252 -240
  140. package/dist/ui/view.zod.d.ts.map +1 -1
  141. package/dist/ui/view.zod.js +32 -3
  142. package/dist/ui/widget.zod.d.ts +673 -5
  143. package/dist/ui/widget.zod.d.ts.map +1 -1
  144. package/dist/ui/widget.zod.js +294 -1
  145. package/json-schema/api/ODataError.json +65 -0
  146. package/json-schema/api/ODataFilterFunction.json +39 -0
  147. package/json-schema/api/ODataFilterOperator.json +24 -0
  148. package/json-schema/api/ODataMetadata.json +115 -0
  149. package/json-schema/api/ODataQuery.json +89 -0
  150. package/json-schema/api/ODataResponse.json +37 -0
  151. package/json-schema/auth/Role.json +3 -2
  152. package/json-schema/auth/SCIMAddress.json +50 -0
  153. package/json-schema/auth/SCIMEmail.json +38 -0
  154. package/json-schema/auth/SCIMEnterpriseUser.json +55 -0
  155. package/json-schema/auth/SCIMError.json +52 -0
  156. package/json-schema/auth/SCIMGroup.json +102 -0
  157. package/json-schema/auth/SCIMGroupReference.json +36 -0
  158. package/json-schema/auth/SCIMListResponse.json +606 -0
  159. package/json-schema/auth/SCIMMemberReference.json +36 -0
  160. package/json-schema/auth/SCIMMeta.json +35 -0
  161. package/json-schema/auth/SCIMName.json +36 -0
  162. package/json-schema/auth/SCIMPatchOperation.json +31 -0
  163. package/json-schema/auth/SCIMPatchRequest.json +56 -0
  164. package/json-schema/auth/SCIMPhoneNumber.json +40 -0
  165. package/json-schema/auth/SCIMUser.json +462 -0
  166. package/json-schema/automation/ApprovalAction.json +35 -0
  167. package/json-schema/automation/ApprovalActionType.json +15 -0
  168. package/json-schema/automation/ApprovalProcess.json +326 -0
  169. package/json-schema/automation/ApprovalStep.json +147 -0
  170. package/json-schema/automation/ApproverType.json +16 -0
  171. package/json-schema/automation/AuthField.json +73 -0
  172. package/json-schema/automation/Authentication.json +159 -0
  173. package/json-schema/automation/AuthenticationType.json +18 -0
  174. package/json-schema/automation/ConflictResolution.json +16 -0
  175. package/json-schema/automation/Connector.json +440 -0
  176. package/json-schema/automation/ConnectorCategory.json +26 -0
  177. package/json-schema/automation/ConnectorInstance.json +69 -0
  178. package/json-schema/automation/ConnectorOperation.json +117 -0
  179. package/json-schema/automation/ConnectorTrigger.json +54 -0
  180. package/json-schema/automation/DataDestinationConfig.json +89 -0
  181. package/json-schema/automation/DataSourceConfig.json +34 -0
  182. package/json-schema/automation/DataSyncConfig.json +355 -0
  183. package/json-schema/automation/ETLDestination.json +57 -0
  184. package/json-schema/automation/ETLEndpointType.json +19 -0
  185. package/json-schema/automation/ETLPipeline.json +252 -0
  186. package/json-schema/automation/ETLPipelineRun.json +107 -0
  187. package/json-schema/automation/ETLRunStatus.json +17 -0
  188. package/json-schema/automation/ETLSource.json +60 -0
  189. package/json-schema/automation/ETLSyncMode.json +14 -0
  190. package/json-schema/automation/ETLTransformation.json +46 -0
  191. package/json-schema/automation/ETLTransformationType.json +21 -0
  192. package/json-schema/automation/FieldMapping.json +36 -0
  193. package/json-schema/automation/OAuth2Config.json +43 -0
  194. package/json-schema/automation/OperationParameter.json +59 -0
  195. package/json-schema/automation/OperationType.json +17 -0
  196. package/json-schema/automation/SyncDirection.json +14 -0
  197. package/json-schema/automation/SyncExecutionResult.json +135 -0
  198. package/json-schema/automation/SyncExecutionStatus.json +17 -0
  199. package/json-schema/automation/SyncMode.json +14 -0
  200. package/json-schema/automation/Webhook.json +3 -1
  201. package/json-schema/automation/WebhookReceiver.json +3 -1
  202. package/json-schema/automation/WorkflowRule.json +3 -2
  203. package/json-schema/data/Field.json +62 -4
  204. package/json-schema/data/FieldType.json +12 -2
  205. package/json-schema/data/Object.json +62 -4
  206. package/json-schema/data/SelectOption.json +4 -2
  207. package/json-schema/data/VectorConfig.json +51 -0
  208. package/json-schema/hub/ComposerResponse.json +4 -2163
  209. package/json-schema/permission/PermissionSet.json +3 -1
  210. package/json-schema/permission/RLSConfig.json +59 -0
  211. package/json-schema/permission/RLSEvaluationResult.json +40 -0
  212. package/json-schema/permission/RLSOperation.json +16 -0
  213. package/json-schema/permission/RLSUserContext.json +51 -0
  214. package/json-schema/permission/RowLevelSecurityPolicy.json +77 -0
  215. package/json-schema/permission/Territory.json +3 -1
  216. package/json-schema/shared/EventName.json +12 -0
  217. package/json-schema/shared/SnakeCaseIdentifier.json +12 -0
  218. package/json-schema/shared/SystemIdentifier.json +12 -0
  219. package/json-schema/system/Event.json +3 -2
  220. package/json-schema/system/FeatureFlag.json +87 -0
  221. package/json-schema/system/FeatureStrategy.json +16 -0
  222. package/json-schema/system/Manifest.json +398 -0
  223. package/json-schema/ui/Action.json +25 -4
  224. package/json-schema/ui/ActionParam.json +12 -2
  225. package/json-schema/ui/App.json +18 -7
  226. package/json-schema/ui/ChartType.json +9 -1
  227. package/json-schema/ui/Dashboard.json +9 -1
  228. package/json-schema/ui/DashboardNavItem.json +3 -1
  229. package/json-schema/ui/DashboardWidget.json +9 -1
  230. package/json-schema/ui/FieldWidgetProps.json +62 -4
  231. package/json-schema/ui/FormView.json +4 -1
  232. package/json-schema/ui/GroupNavItem.json +3 -1
  233. package/json-schema/ui/ListView.json +7 -1
  234. package/json-schema/ui/NavigationItem.json +15 -5
  235. package/json-schema/ui/ObjectNavItem.json +3 -1
  236. package/json-schema/ui/Page.json +36 -4
  237. package/json-schema/ui/PageCardProps.json +32 -0
  238. package/json-schema/ui/PageComponent.json +33 -3
  239. package/json-schema/ui/PageComponentType.json +32 -0
  240. package/json-schema/ui/PageHeaderProps.json +39 -0
  241. package/json-schema/ui/PageNavItem.json +3 -1
  242. package/json-schema/ui/PageRegion.json +33 -3
  243. package/json-schema/ui/PageTabsProps.json +55 -0
  244. package/json-schema/ui/RecordDetailsProps.json +37 -0
  245. package/json-schema/ui/RecordHighlightsProps.json +24 -0
  246. package/json-schema/ui/RecordRelatedListProps.json +39 -0
  247. package/json-schema/ui/UrlNavItem.json +3 -1
  248. package/json-schema/ui/View.json +22 -4
  249. package/json-schema/ui/WidgetEvent.json +42 -0
  250. package/json-schema/ui/WidgetLifecycle.json +40 -0
  251. package/json-schema/ui/WidgetManifest.json +262 -0
  252. package/json-schema/ui/WidgetProperty.json +58 -0
  253. package/package.json +1 -1
  254. package/prompts/architecture.md +5 -5
  255. package/prompts/create-new-project.md +85 -0
  256. package/dist/driver/index.d.ts +0 -5
  257. package/dist/driver/index.d.ts.map +0 -1
  258. package/dist/driver/mongo.zod.d.ts.map +0 -1
  259. package/dist/driver/postgres.zod.d.ts.map +0 -1
  260. package/dist/kernel/index.d.ts +0 -12
  261. package/dist/kernel/index.d.ts.map +0 -1
  262. package/dist/kernel/index.js +0 -27
  263. package/dist/kernel/manifest.zod.d.ts +0 -2153
  264. package/dist/kernel/manifest.zod.d.ts.map +0 -1
  265. package/json-schema/kernel/Manifest.json +0 -2557
  266. /package/dist/{kernel → system}/context.zod.d.ts +0 -0
  267. /package/dist/{kernel → system}/context.zod.js +0 -0
  268. /package/dist/{driver → system}/datasource.zod.js +0 -0
  269. /package/dist/{driver → system/driver}/mongo.zod.js +0 -0
  270. /package/dist/{driver → system/driver}/postgres.zod.js +0 -0
  271. /package/dist/{driver → system}/driver.zod.js +0 -0
  272. /package/dist/{kernel → system}/logger.zod.js +0 -0
  273. /package/dist/{kernel → system}/plugin.zod.d.ts +0 -0
  274. /package/dist/{kernel → system}/plugin.zod.js +0 -0
  275. /package/dist/{kernel → system}/scoped-storage.zod.js +0 -0
  276. /package/json-schema/{driver → system}/Datasource.json +0 -0
  277. /package/json-schema/{driver → system}/DatasourceCapabilities.json +0 -0
  278. /package/json-schema/{driver → system}/DriverCapabilities.json +0 -0
  279. /package/json-schema/{driver → system}/DriverDefinition.json +0 -0
  280. /package/json-schema/{driver → system}/DriverInterface.json +0 -0
  281. /package/json-schema/{driver → system}/DriverOptions.json +0 -0
  282. /package/json-schema/{driver → system}/DriverType.json +0 -0
  283. /package/json-schema/{kernel → system}/FileMetadata.json +0 -0
  284. /package/json-schema/{kernel → system}/I18nContext.json +0 -0
  285. /package/json-schema/{kernel → system}/KernelContext.json +0 -0
  286. /package/json-schema/{kernel → system}/LogEntry.json +0 -0
  287. /package/json-schema/{kernel → system}/LogFormat.json +0 -0
  288. /package/json-schema/{kernel → system}/LogLevel.json +0 -0
  289. /package/json-schema/{kernel → system}/Logger.json +0 -0
  290. /package/json-schema/{kernel → system}/LoggerConfig.json +0 -0
  291. /package/json-schema/{driver → system}/MongoConfig.json +0 -0
  292. /package/json-schema/{kernel → system}/ObjectQLClient.json +0 -0
  293. /package/json-schema/{kernel → system}/Plugin.json +0 -0
  294. /package/json-schema/{kernel → system}/PluginContext.json +0 -0
  295. /package/json-schema/{kernel → system}/PluginLifecycle.json +0 -0
  296. /package/json-schema/{driver → system}/PostgresConfig.json +0 -0
  297. /package/json-schema/{kernel → system}/Router.json +0 -0
  298. /package/json-schema/{kernel → system}/RuntimeMode.json +0 -0
  299. /package/json-schema/{kernel → system}/Scheduler.json +0 -0
  300. /package/json-schema/{kernel → system}/ScopedStorage.json +0 -0
  301. /package/json-schema/{kernel → system}/ScopedStorageConfig.json +0 -0
  302. /package/json-schema/{kernel → system}/StorageAdapterType.json +0 -0
  303. /package/json-schema/{kernel → system}/StorageScope.json +0 -0
  304. /package/json-schema/{kernel → system}/SystemAPI.json +0 -0
@@ -6,7 +6,7 @@ import { z } from 'zod';
6
6
  export declare const ActionParamSchema: z.ZodObject<{
7
7
  name: z.ZodString;
8
8
  label: z.ZodString;
9
- type: z.ZodEnum<["text", "textarea", "email", "url", "phone", "password", "markdown", "html", "richtext", "number", "currency", "percent", "date", "datetime", "time", "boolean", "select", "lookup", "master_detail", "image", "file", "avatar", "formula", "summary", "autonumber", "location", "geolocation", "address", "code", "color", "rating", "slider", "signature", "qrcode"]>;
9
+ type: z.ZodEnum<["text", "textarea", "email", "url", "phone", "password", "markdown", "html", "richtext", "number", "currency", "percent", "date", "datetime", "time", "boolean", "toggle", "select", "multiselect", "radio", "checkboxes", "lookup", "master_detail", "tree", "image", "file", "avatar", "video", "audio", "formula", "summary", "autonumber", "location", "address", "code", "json", "color", "rating", "slider", "signature", "qrcode", "progress", "tags", "vector"]>;
10
10
  required: z.ZodDefault<z.ZodBoolean>;
11
11
  options: z.ZodOptional<z.ZodArray<z.ZodObject<{
12
12
  label: z.ZodString;
@@ -19,7 +19,7 @@ export declare const ActionParamSchema: z.ZodObject<{
19
19
  label: string;
20
20
  }>, "many">>;
21
21
  }, "strip", z.ZodTypeAny, {
22
- type: "number" | "boolean" | "code" | "date" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "datetime" | "time" | "select" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber" | "location" | "geolocation" | "address" | "color" | "rating" | "slider" | "signature" | "qrcode";
22
+ type: "number" | "boolean" | "code" | "date" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "datetime" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "file" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "signature" | "qrcode" | "progress" | "tags" | "vector";
23
23
  required: boolean;
24
24
  label: string;
25
25
  name: string;
@@ -28,7 +28,7 @@ export declare const ActionParamSchema: z.ZodObject<{
28
28
  label: string;
29
29
  }[] | undefined;
30
30
  }, {
31
- type: "number" | "boolean" | "code" | "date" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "datetime" | "time" | "select" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber" | "location" | "geolocation" | "address" | "color" | "rating" | "slider" | "signature" | "qrcode";
31
+ type: "number" | "boolean" | "code" | "date" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "datetime" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "file" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "signature" | "qrcode" | "progress" | "tags" | "vector";
32
32
  label: string;
33
33
  name: string;
34
34
  options?: {
@@ -39,6 +39,23 @@ export declare const ActionParamSchema: z.ZodObject<{
39
39
  }>;
40
40
  /**
41
41
  * Action Schema
42
+ *
43
+ * **NAMING CONVENTION:**
44
+ * Action names are machine identifiers used in code and must be lowercase snake_case.
45
+ *
46
+ * @example Good action names
47
+ * - 'on_close_deal'
48
+ * - 'send_welcome_email'
49
+ * - 'approve_contract'
50
+ * - 'export_report'
51
+ *
52
+ * @example Bad action names (will be rejected)
53
+ * - 'OnCloseDeal' (PascalCase)
54
+ * - 'sendEmail' (camelCase)
55
+ * - 'Send Email' (spaces)
56
+ *
57
+ * Note: The action name is the configuration ID. JavaScript function names can use camelCase,
58
+ * but the metadata ID must be lowercase snake_case.
42
59
  */
43
60
  export declare const ActionSchema: z.ZodObject<{
44
61
  /** Machine name of the action */
@@ -49,6 +66,12 @@ export declare const ActionSchema: z.ZodObject<{
49
66
  icon: z.ZodOptional<z.ZodString>;
50
67
  /** Where does this action appear? */
51
68
  locations: z.ZodOptional<z.ZodArray<z.ZodEnum<["list_toolbar", "list_item", "record_header", "record_more", "record_related", "global_nav"]>, "many">>;
69
+ /**
70
+ * Visual Component Type
71
+ * Defaults to 'button' or 'menu_item' based on location,
72
+ * but can be overridden.
73
+ */
74
+ component: z.ZodOptional<z.ZodEnum<["action:button", "action:icon", "action:menu", "action:group"]>>;
52
75
  /** Legacy location support */
53
76
  location: z.ZodOptional<z.ZodAny>;
54
77
  /** What type of interaction? */
@@ -60,7 +83,7 @@ export declare const ActionSchema: z.ZodObject<{
60
83
  params: z.ZodOptional<z.ZodArray<z.ZodObject<{
61
84
  name: z.ZodString;
62
85
  label: z.ZodString;
63
- type: z.ZodEnum<["text", "textarea", "email", "url", "phone", "password", "markdown", "html", "richtext", "number", "currency", "percent", "date", "datetime", "time", "boolean", "select", "lookup", "master_detail", "image", "file", "avatar", "formula", "summary", "autonumber", "location", "geolocation", "address", "code", "color", "rating", "slider", "signature", "qrcode"]>;
86
+ type: z.ZodEnum<["text", "textarea", "email", "url", "phone", "password", "markdown", "html", "richtext", "number", "currency", "percent", "date", "datetime", "time", "boolean", "toggle", "select", "multiselect", "radio", "checkboxes", "lookup", "master_detail", "tree", "image", "file", "avatar", "video", "audio", "formula", "summary", "autonumber", "location", "address", "code", "json", "color", "rating", "slider", "signature", "qrcode", "progress", "tags", "vector"]>;
64
87
  required: z.ZodDefault<z.ZodBoolean>;
65
88
  options: z.ZodOptional<z.ZodArray<z.ZodObject<{
66
89
  label: z.ZodString;
@@ -73,7 +96,7 @@ export declare const ActionSchema: z.ZodObject<{
73
96
  label: string;
74
97
  }>, "many">>;
75
98
  }, "strip", z.ZodTypeAny, {
76
- type: "number" | "boolean" | "code" | "date" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "datetime" | "time" | "select" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber" | "location" | "geolocation" | "address" | "color" | "rating" | "slider" | "signature" | "qrcode";
99
+ type: "number" | "boolean" | "code" | "date" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "datetime" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "file" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "signature" | "qrcode" | "progress" | "tags" | "vector";
77
100
  required: boolean;
78
101
  label: string;
79
102
  name: string;
@@ -82,7 +105,7 @@ export declare const ActionSchema: z.ZodObject<{
82
105
  label: string;
83
106
  }[] | undefined;
84
107
  }, {
85
- type: "number" | "boolean" | "code" | "date" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "datetime" | "time" | "select" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber" | "location" | "geolocation" | "address" | "color" | "rating" | "slider" | "signature" | "qrcode";
108
+ type: "number" | "boolean" | "code" | "date" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "datetime" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "file" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "signature" | "qrcode" | "progress" | "tags" | "vector";
86
109
  label: string;
87
110
  name: string;
88
111
  options?: {
@@ -103,7 +126,7 @@ export declare const ActionSchema: z.ZodObject<{
103
126
  name: string;
104
127
  refreshAfter: boolean;
105
128
  params?: {
106
- type: "number" | "boolean" | "code" | "date" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "datetime" | "time" | "select" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber" | "location" | "geolocation" | "address" | "color" | "rating" | "slider" | "signature" | "qrcode";
129
+ type: "number" | "boolean" | "code" | "date" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "datetime" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "file" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "signature" | "qrcode" | "progress" | "tags" | "vector";
107
130
  required: boolean;
108
131
  label: string;
109
132
  name: string;
@@ -114,17 +137,18 @@ export declare const ActionSchema: z.ZodObject<{
114
137
  }[] | undefined;
115
138
  location?: any;
116
139
  icon?: string | undefined;
117
- execute?: string | undefined;
118
140
  visible?: string | undefined;
119
141
  target?: string | undefined;
120
142
  locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
143
+ component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
144
+ execute?: string | undefined;
121
145
  confirmText?: string | undefined;
122
146
  successMessage?: string | undefined;
123
147
  }, {
124
148
  label: string;
125
149
  name: string;
126
150
  params?: {
127
- type: "number" | "boolean" | "code" | "date" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "datetime" | "time" | "select" | "lookup" | "master_detail" | "image" | "file" | "avatar" | "formula" | "summary" | "autonumber" | "location" | "geolocation" | "address" | "color" | "rating" | "slider" | "signature" | "qrcode";
151
+ type: "number" | "boolean" | "code" | "date" | "text" | "textarea" | "email" | "url" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "datetime" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "file" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "signature" | "qrcode" | "progress" | "tags" | "vector";
128
152
  label: string;
129
153
  name: string;
130
154
  options?: {
@@ -136,10 +160,11 @@ export declare const ActionSchema: z.ZodObject<{
136
160
  type?: "url" | "script" | "api" | "modal" | "flow" | undefined;
137
161
  location?: any;
138
162
  icon?: string | undefined;
139
- execute?: string | undefined;
140
163
  visible?: string | undefined;
141
164
  target?: string | undefined;
142
165
  locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
166
+ component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
167
+ execute?: string | undefined;
143
168
  confirmText?: string | undefined;
144
169
  successMessage?: string | undefined;
145
170
  refreshAfter?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"action.zod.d.ts","sourceRoot":"","sources":["../../src/ui/action.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB,iCAAiC;;IAGjC,oBAAoB;;IAGpB,yBAAyB;;IAGzB,qCAAqC;;IAOrC,8BAA8B;;IAG9B,gCAAgC;;IAGhC,uBAAuB;;;IAIvB,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAG9B,kBAAkB;;;;IAKlB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEb,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,MAAM;8BACA,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,KAAG,MAAM;CAC9C,CAAC"}
1
+ {"version":3,"file":"action.zod.d.ts","sourceRoot":"","sources":["../../src/ui/action.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM5B,CAAC;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,YAAY;IACvB,iCAAiC;;IAGjC,oBAAoB;;IAGpB,yBAAyB;;IAGzB,qCAAqC;;IAOrC;;;;OAIG;;IAQH,8BAA8B;;IAG9B,gCAAgC;;IAGhC,uBAAuB;;;IAIvB,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAG9B,kBAAkB;;;;IAKlB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEb,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,MAAM;8BACA,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,KAAG,MAAM;CAC9C,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Action = exports.ActionSchema = exports.ActionParamSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const field_zod_1 = require("../data/field.zod");
6
+ const identifiers_zod_1 = require("../shared/identifiers.zod");
6
7
  /**
7
8
  * Action Parameter Schema
8
9
  * Defines inputs required before executing an action.
@@ -16,10 +17,27 @@ exports.ActionParamSchema = zod_1.z.object({
16
17
  });
17
18
  /**
18
19
  * Action Schema
20
+ *
21
+ * **NAMING CONVENTION:**
22
+ * Action names are machine identifiers used in code and must be lowercase snake_case.
23
+ *
24
+ * @example Good action names
25
+ * - 'on_close_deal'
26
+ * - 'send_welcome_email'
27
+ * - 'approve_contract'
28
+ * - 'export_report'
29
+ *
30
+ * @example Bad action names (will be rejected)
31
+ * - 'OnCloseDeal' (PascalCase)
32
+ * - 'sendEmail' (camelCase)
33
+ * - 'Send Email' (spaces)
34
+ *
35
+ * Note: The action name is the configuration ID. JavaScript function names can use camelCase,
36
+ * but the metadata ID must be lowercase snake_case.
19
37
  */
20
38
  exports.ActionSchema = zod_1.z.object({
21
39
  /** Machine name of the action */
22
- name: zod_1.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Machine name (snake_case)'),
40
+ name: identifiers_zod_1.SnakeCaseIdentifierSchema.describe('Machine name (lowercase snake_case)'),
23
41
  /** Display label */
24
42
  label: zod_1.z.string().describe('Display label'),
25
43
  /** Icon name (Lucide) */
@@ -30,6 +48,17 @@ exports.ActionSchema = zod_1.z.object({
30
48
  'record_header', 'record_more', 'record_related',
31
49
  'global_nav'
32
50
  ])).optional().describe('Locations where this action is visible'),
51
+ /**
52
+ * Visual Component Type
53
+ * Defaults to 'button' or 'menu_item' based on location,
54
+ * but can be overridden.
55
+ */
56
+ component: zod_1.z.enum([
57
+ 'action:button', // Standard Button
58
+ 'action:icon', // Icon only
59
+ 'action:menu', // Dropdown menu
60
+ 'action:group' // Button Group
61
+ ]).optional().describe('Visual component override'),
33
62
  /** Legacy location support */
34
63
  location: zod_1.z.any().optional(),
35
64
  /** What type of interaction? */
@@ -209,6 +209,21 @@ export declare const AppBrandingSchema: z.ZodObject<{
209
209
  /**
210
210
  * Schema for Applications (Apps).
211
211
  * A logical container for business functionality (e.g., "Sales CRM", "HR Portal").
212
+ *
213
+ * **NAMING CONVENTION:**
214
+ * App names are used in URLs and routing and must be lowercase snake_case.
215
+ * Prefix with 'app_' is recommended for clarity.
216
+ *
217
+ * @example Good app names
218
+ * - 'app_crm'
219
+ * - 'app_finance'
220
+ * - 'app_portal'
221
+ * - 'sales_app'
222
+ *
223
+ * @example Bad app names (will be rejected)
224
+ * - 'CRM' (uppercase)
225
+ * - 'FinanceApp' (mixed case)
226
+ * - 'Sales App' (spaces)
212
227
  */
213
228
  export declare const AppSchema: z.ZodObject<{
214
229
  /** Machine name (id) */
@@ -236,9 +251,9 @@ export declare const AppSchema: z.ZodObject<{
236
251
  favicon?: string | undefined;
237
252
  }>>;
238
253
  /** Application status */
239
- active: z.ZodDefault<z.ZodBoolean>;
254
+ active: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
240
255
  /** Is this the default app for new users? */
241
- isDefault: z.ZodDefault<z.ZodBoolean>;
256
+ isDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
242
257
  /**
243
258
  * Navigation Tree Structure.
244
259
  * Replaces the old flat 'tabs' list with a structured menu.
@@ -270,8 +285,8 @@ export declare const AppSchema: z.ZodObject<{
270
285
  isDefault: boolean;
271
286
  description?: string | undefined;
272
287
  icon?: string | undefined;
273
- version?: string | undefined;
274
288
  objects?: any[] | undefined;
289
+ version?: string | undefined;
275
290
  branding?: {
276
291
  primaryColor?: string | undefined;
277
292
  logo?: string | undefined;
@@ -287,8 +302,8 @@ export declare const AppSchema: z.ZodObject<{
287
302
  description?: string | undefined;
288
303
  active?: boolean | undefined;
289
304
  icon?: string | undefined;
290
- version?: string | undefined;
291
305
  objects?: any[] | undefined;
306
+ version?: string | undefined;
292
307
  branding?: {
293
308
  primaryColor?: string | undefined;
294
309
  logo?: string | undefined;
@@ -326,9 +341,9 @@ export declare const App: z.ZodObject<{
326
341
  favicon?: string | undefined;
327
342
  }>>;
328
343
  /** Application status */
329
- active: z.ZodDefault<z.ZodBoolean>;
344
+ active: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
330
345
  /** Is this the default app for new users? */
331
- isDefault: z.ZodDefault<z.ZodBoolean>;
346
+ isDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
332
347
  /**
333
348
  * Navigation Tree Structure.
334
349
  * Replaces the old flat 'tabs' list with a structured menu.
@@ -360,8 +375,8 @@ export declare const App: z.ZodObject<{
360
375
  isDefault: boolean;
361
376
  description?: string | undefined;
362
377
  icon?: string | undefined;
363
- version?: string | undefined;
364
378
  objects?: any[] | undefined;
379
+ version?: string | undefined;
365
380
  branding?: {
366
381
  primaryColor?: string | undefined;
367
382
  logo?: string | undefined;
@@ -377,8 +392,8 @@ export declare const App: z.ZodObject<{
377
392
  description?: string | undefined;
378
393
  active?: boolean | undefined;
379
394
  icon?: string | undefined;
380
- version?: string | undefined;
381
395
  objects?: any[] | undefined;
396
+ version?: string | undefined;
382
397
  branding?: {
383
398
  primaryColor?: string | undefined;
384
399
  logo?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"app.zod.d.ts","sourceRoot":"","sources":["../../src/ui/app.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwBxB;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IArB9B,qCAAqC;;IAGrC,oBAAoB;;IAGpB,yBAAyB;;IAGzB;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;EAYH,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB;IA/BjC,qCAAqC;;IAGrC,oBAAoB;;IAGpB,yBAAyB;;IAGzB;;;;OAIG;;;;;;;;;;;;;;;;;;;EAqBH,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB;IAxC5B,qCAAqC;;IAGrC,oBAAoB;;IAGpB,yBAAyB;;IAGzB;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;EA+BH,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB;IAlD3B,qCAAqC;;IAGrC,oBAAoB;;IAGpB,yBAAyB;;IAGzB;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;EAyCH,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;IA7D7B,qCAAqC;;IAGrC,oBAAoB;;IAGpB,yBAAyB;;IAGzB;;;;OAIG;;;;;;;;;;;;;;;;;;;EAoDH,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAU/C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAI5B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS;IACpB,wBAAwB;;IAGxB,oBAAoB;;IAGpB,kBAAkB;;IAGlB,kBAAkB;;IAGlB,yBAAyB;;IAGzB,qCAAqC;;;;;;;;;;;;;;IAGrC,yBAAyB;;IAGzB,6CAA6C;;IAG7C;;;OAGG;;IAGH;;;;OAIG;;IAGH;;;;;OAKG;;IAGH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGH,CAAC;AAEH,eAAO,MAAM,GAAG;IArDd,wBAAwB;;IAGxB,oBAAoB;;IAGpB,kBAAkB;;IAGlB,kBAAkB;;IAGlB,yBAAyB;;IAGzB,qCAAqC;;;;;;;;;;;;;;IAGrC,yBAAyB;;IAGzB,6CAA6C;;IAG7C;;;OAGG;;IAGH;;;;OAIG;;IAGH;;;;;OAKG;;IAGH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAMM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,UAAU,CAAC;CACvD,CAAC;AAGH,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAC5C,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAGlE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,GAAG;IAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"app.zod.d.ts","sourceRoot":"","sources":["../../src/ui/app.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqCxB;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IArB9B,qCAAqC;;IAGrC,oBAAoB;;IAGpB,yBAAyB;;IAGzB;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;EAYH,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB;IA/BjC,qCAAqC;;IAGrC,oBAAoB;;IAGpB,yBAAyB;;IAGzB;;;;OAIG;;;;;;;;;;;;;;;;;;;EAqBH,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB;IAxC5B,qCAAqC;;IAGrC,oBAAoB;;IAGpB,yBAAyB;;IAGzB;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;EA+BH,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB;IAlD3B,qCAAqC;;IAGrC,oBAAoB;;IAGpB,yBAAyB;;IAGzB;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;EAyCH,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;IA7D7B,qCAAqC;;IAGrC,oBAAoB;;IAGpB,yBAAyB;;IAGzB;;;;OAIG;;;;;;;;;;;;;;;;;;;EAoDH,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAU/C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAI5B,CAAC;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,SAAS;IACpB,wBAAwB;;IAGxB,oBAAoB;;IAGpB,kBAAkB;;IAGlB,kBAAkB;;IAGlB,yBAAyB;;IAGzB,qCAAqC;;;;;;;;;;;;;;IAGrC,yBAAyB;;IAGzB,6CAA6C;;IAG7C;;;OAGG;;IAGH;;;;OAIG;;IAGH;;;;;OAKG;;IAGH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGH,CAAC;AAEH,eAAO,MAAM,GAAG;IArDd,wBAAwB;;IAGxB,oBAAoB;;IAGpB,kBAAkB;;IAGlB,kBAAkB;;IAGlB,yBAAyB;;IAGzB,qCAAqC;;;;;;;;;;;;;;IAGrC,yBAAyB;;IAGzB,6CAA6C;;IAG7C;;;OAGG;;IAGH;;;;OAIG;;IAGH;;;;;OAKG;;IAGH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAMM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,UAAU,CAAC;CACvD,CAAC;AAGH,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAC5C,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAGlE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,GAAG;IAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC"}
@@ -2,13 +2,26 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.App = exports.AppSchema = exports.AppBrandingSchema = exports.NavigationItemSchema = exports.GroupNavItemSchema = exports.UrlNavItemSchema = exports.PageNavItemSchema = exports.DashboardNavItemSchema = exports.ObjectNavItemSchema = void 0;
4
4
  const zod_1 = require("zod");
5
+ const identifiers_zod_1 = require("../shared/identifiers.zod");
5
6
  /**
6
7
  * Base Navigation Item Schema
7
8
  * Shared properties for all navigation types.
9
+ *
10
+ * **NAMING CONVENTION:**
11
+ * Navigation item IDs are used in URLs and configuration and must be lowercase snake_case.
12
+ *
13
+ * @example Good IDs
14
+ * - 'menu_accounts'
15
+ * - 'page_dashboard'
16
+ * - 'nav_settings'
17
+ *
18
+ * @example Bad IDs (will be rejected)
19
+ * - 'MenuAccounts' (PascalCase)
20
+ * - 'Page Dashboard' (spaces)
8
21
  */
9
22
  const BaseNavItemSchema = zod_1.z.object({
10
23
  /** Unique identifier for the item */
11
- id: zod_1.z.string().describe('Unique identifier for this navigation item'),
24
+ id: identifiers_zod_1.SnakeCaseIdentifierSchema.describe('Unique identifier for this navigation item (lowercase snake_case)'),
12
25
  /** Display label */
13
26
  label: zod_1.z.string().describe('Display proper label'),
14
27
  /** Icon name (Lucide) */
@@ -90,10 +103,25 @@ exports.AppBrandingSchema = zod_1.z.object({
90
103
  /**
91
104
  * Schema for Applications (Apps).
92
105
  * A logical container for business functionality (e.g., "Sales CRM", "HR Portal").
106
+ *
107
+ * **NAMING CONVENTION:**
108
+ * App names are used in URLs and routing and must be lowercase snake_case.
109
+ * Prefix with 'app_' is recommended for clarity.
110
+ *
111
+ * @example Good app names
112
+ * - 'app_crm'
113
+ * - 'app_finance'
114
+ * - 'app_portal'
115
+ * - 'sales_app'
116
+ *
117
+ * @example Bad app names (will be rejected)
118
+ * - 'CRM' (uppercase)
119
+ * - 'FinanceApp' (mixed case)
120
+ * - 'Sales App' (spaces)
93
121
  */
94
122
  exports.AppSchema = zod_1.z.object({
95
123
  /** Machine name (id) */
96
- name: zod_1.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('App unique machine name'),
124
+ name: identifiers_zod_1.SnakeCaseIdentifierSchema.describe('App unique machine name (lowercase snake_case)'),
97
125
  /** Display label */
98
126
  label: zod_1.z.string().describe('App display label'),
99
127
  /** App version */
@@ -105,9 +133,9 @@ exports.AppSchema = zod_1.z.object({
105
133
  /** Branding/Theming Configuration */
106
134
  branding: exports.AppBrandingSchema.optional().describe('App-specific branding'),
107
135
  /** Application status */
108
- active: zod_1.z.boolean().default(true).describe('Whether the app is enabled'),
136
+ active: zod_1.z.boolean().optional().default(true).describe('Whether the app is enabled'),
109
137
  /** Is this the default app for new users? */
110
- isDefault: zod_1.z.boolean().default(false).describe('Is default app'),
138
+ isDefault: zod_1.z.boolean().optional().default(false).describe('Is default app'),
111
139
  /**
112
140
  * Navigation Tree Structure.
113
141
  * Replaces the old flat 'tabs' list with a structured menu.
@@ -0,0 +1,265 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * ----------------------------------------------------------------------
4
+ * 1. Structure Components
5
+ * ----------------------------------------------------------------------
6
+ */
7
+ export declare const PageHeaderProps: z.ZodObject<{
8
+ title: z.ZodString;
9
+ subtitle: z.ZodOptional<z.ZodString>;
10
+ icon: z.ZodOptional<z.ZodString>;
11
+ breadcrumb: z.ZodDefault<z.ZodBoolean>;
12
+ actions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ title: string;
15
+ breadcrumb: boolean;
16
+ icon?: string | undefined;
17
+ subtitle?: string | undefined;
18
+ actions?: string[] | undefined;
19
+ }, {
20
+ title: string;
21
+ icon?: string | undefined;
22
+ subtitle?: string | undefined;
23
+ breadcrumb?: boolean | undefined;
24
+ actions?: string[] | undefined;
25
+ }>;
26
+ export declare const PageTabsProps: z.ZodObject<{
27
+ type: z.ZodDefault<z.ZodEnum<["line", "card", "pill"]>>;
28
+ position: z.ZodDefault<z.ZodEnum<["top", "left"]>>;
29
+ items: z.ZodArray<z.ZodObject<{
30
+ label: z.ZodString;
31
+ icon: z.ZodOptional<z.ZodString>;
32
+ children: z.ZodArray<z.ZodAny, "many">;
33
+ }, "strip", z.ZodTypeAny, {
34
+ label: string;
35
+ children: any[];
36
+ icon?: string | undefined;
37
+ }, {
38
+ label: string;
39
+ children: any[];
40
+ icon?: string | undefined;
41
+ }>, "many">;
42
+ }, "strip", z.ZodTypeAny, {
43
+ type: "line" | "card" | "pill";
44
+ items: {
45
+ label: string;
46
+ children: any[];
47
+ icon?: string | undefined;
48
+ }[];
49
+ position: "left" | "top";
50
+ }, {
51
+ items: {
52
+ label: string;
53
+ children: any[];
54
+ icon?: string | undefined;
55
+ }[];
56
+ type?: "line" | "card" | "pill" | undefined;
57
+ position?: "left" | "top" | undefined;
58
+ }>;
59
+ export declare const PageCardProps: z.ZodObject<{
60
+ title: z.ZodOptional<z.ZodString>;
61
+ bordered: z.ZodDefault<z.ZodBoolean>;
62
+ actions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
63
+ children: z.ZodArray<z.ZodAny, "many">;
64
+ }, "strip", z.ZodTypeAny, {
65
+ children: any[];
66
+ bordered: boolean;
67
+ title?: string | undefined;
68
+ actions?: string[] | undefined;
69
+ }, {
70
+ children: any[];
71
+ bordered?: boolean | undefined;
72
+ title?: string | undefined;
73
+ actions?: string[] | undefined;
74
+ }>;
75
+ /**
76
+ * ----------------------------------------------------------------------
77
+ * 2. Record Context Components
78
+ * ----------------------------------------------------------------------
79
+ */
80
+ export declare const RecordDetailsProps: z.ZodObject<{
81
+ columns: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4"]>>;
82
+ layout: z.ZodDefault<z.ZodEnum<["auto", "custom"]>>;
83
+ sections: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
84
+ }, "strip", z.ZodTypeAny, {
85
+ columns: "1" | "2" | "3" | "4";
86
+ layout: "custom" | "auto";
87
+ sections?: string[] | undefined;
88
+ }, {
89
+ columns?: "1" | "2" | "3" | "4" | undefined;
90
+ sections?: string[] | undefined;
91
+ layout?: "custom" | "auto" | undefined;
92
+ }>;
93
+ export declare const RecordRelatedListProps: z.ZodObject<{
94
+ objectName: z.ZodString;
95
+ relationshipField: z.ZodString;
96
+ columns: z.ZodArray<z.ZodString, "many">;
97
+ sort: z.ZodOptional<z.ZodString>;
98
+ limit: z.ZodDefault<z.ZodNumber>;
99
+ }, "strip", z.ZodTypeAny, {
100
+ limit: number;
101
+ objectName: string;
102
+ columns: string[];
103
+ relationshipField: string;
104
+ sort?: string | undefined;
105
+ }, {
106
+ objectName: string;
107
+ columns: string[];
108
+ relationshipField: string;
109
+ sort?: string | undefined;
110
+ limit?: number | undefined;
111
+ }>;
112
+ export declare const RecordHighlightsProps: z.ZodObject<{
113
+ fields: z.ZodArray<z.ZodString, "many">;
114
+ }, "strip", z.ZodTypeAny, {
115
+ fields: string[];
116
+ }, {
117
+ fields: string[];
118
+ }>;
119
+ /**
120
+ * ----------------------------------------------------------------------
121
+ * Component Props Map
122
+ * Maps Component Type to its Property Schema
123
+ * ----------------------------------------------------------------------
124
+ */
125
+ export declare const ComponentPropsMap: {
126
+ readonly 'page:header': z.ZodObject<{
127
+ title: z.ZodString;
128
+ subtitle: z.ZodOptional<z.ZodString>;
129
+ icon: z.ZodOptional<z.ZodString>;
130
+ breadcrumb: z.ZodDefault<z.ZodBoolean>;
131
+ actions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
132
+ }, "strip", z.ZodTypeAny, {
133
+ title: string;
134
+ breadcrumb: boolean;
135
+ icon?: string | undefined;
136
+ subtitle?: string | undefined;
137
+ actions?: string[] | undefined;
138
+ }, {
139
+ title: string;
140
+ icon?: string | undefined;
141
+ subtitle?: string | undefined;
142
+ breadcrumb?: boolean | undefined;
143
+ actions?: string[] | undefined;
144
+ }>;
145
+ readonly 'page:tabs': z.ZodObject<{
146
+ type: z.ZodDefault<z.ZodEnum<["line", "card", "pill"]>>;
147
+ position: z.ZodDefault<z.ZodEnum<["top", "left"]>>;
148
+ items: z.ZodArray<z.ZodObject<{
149
+ label: z.ZodString;
150
+ icon: z.ZodOptional<z.ZodString>;
151
+ children: z.ZodArray<z.ZodAny, "many">;
152
+ }, "strip", z.ZodTypeAny, {
153
+ label: string;
154
+ children: any[];
155
+ icon?: string | undefined;
156
+ }, {
157
+ label: string;
158
+ children: any[];
159
+ icon?: string | undefined;
160
+ }>, "many">;
161
+ }, "strip", z.ZodTypeAny, {
162
+ type: "line" | "card" | "pill";
163
+ items: {
164
+ label: string;
165
+ children: any[];
166
+ icon?: string | undefined;
167
+ }[];
168
+ position: "left" | "top";
169
+ }, {
170
+ items: {
171
+ label: string;
172
+ children: any[];
173
+ icon?: string | undefined;
174
+ }[];
175
+ type?: "line" | "card" | "pill" | undefined;
176
+ position?: "left" | "top" | undefined;
177
+ }>;
178
+ readonly 'page:card': z.ZodObject<{
179
+ title: z.ZodOptional<z.ZodString>;
180
+ bordered: z.ZodDefault<z.ZodBoolean>;
181
+ actions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
182
+ children: z.ZodArray<z.ZodAny, "many">;
183
+ }, "strip", z.ZodTypeAny, {
184
+ children: any[];
185
+ bordered: boolean;
186
+ title?: string | undefined;
187
+ actions?: string[] | undefined;
188
+ }, {
189
+ children: any[];
190
+ bordered?: boolean | undefined;
191
+ title?: string | undefined;
192
+ actions?: string[] | undefined;
193
+ }>;
194
+ readonly 'page:footer': z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
195
+ readonly 'page:sidebar': z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
196
+ readonly 'page:accordion': z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
197
+ readonly 'page:section': z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
198
+ readonly 'record:details': z.ZodObject<{
199
+ columns: z.ZodDefault<z.ZodEnum<["1", "2", "3", "4"]>>;
200
+ layout: z.ZodDefault<z.ZodEnum<["auto", "custom"]>>;
201
+ sections: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
202
+ }, "strip", z.ZodTypeAny, {
203
+ columns: "1" | "2" | "3" | "4";
204
+ layout: "custom" | "auto";
205
+ sections?: string[] | undefined;
206
+ }, {
207
+ columns?: "1" | "2" | "3" | "4" | undefined;
208
+ sections?: string[] | undefined;
209
+ layout?: "custom" | "auto" | undefined;
210
+ }>;
211
+ readonly 'record:related_list': z.ZodObject<{
212
+ objectName: z.ZodString;
213
+ relationshipField: z.ZodString;
214
+ columns: z.ZodArray<z.ZodString, "many">;
215
+ sort: z.ZodOptional<z.ZodString>;
216
+ limit: z.ZodDefault<z.ZodNumber>;
217
+ }, "strip", z.ZodTypeAny, {
218
+ limit: number;
219
+ objectName: string;
220
+ columns: string[];
221
+ relationshipField: string;
222
+ sort?: string | undefined;
223
+ }, {
224
+ objectName: string;
225
+ columns: string[];
226
+ relationshipField: string;
227
+ sort?: string | undefined;
228
+ limit?: number | undefined;
229
+ }>;
230
+ readonly 'record:highlights': z.ZodObject<{
231
+ fields: z.ZodArray<z.ZodString, "many">;
232
+ }, "strip", z.ZodTypeAny, {
233
+ fields: string[];
234
+ }, {
235
+ fields: string[];
236
+ }>;
237
+ readonly 'record:activity': z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
238
+ readonly 'record:chatter': z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
239
+ readonly 'record:path': z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
240
+ readonly 'app:launcher': z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
241
+ readonly 'nav:menu': z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
242
+ readonly 'nav:breadcrumb': z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
243
+ readonly 'global:search': z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
244
+ readonly 'global:notifications': z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
245
+ readonly 'user:profile': z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
246
+ readonly 'ai:chat_window': z.ZodObject<{
247
+ mode: z.ZodDefault<z.ZodEnum<["float", "sidebar", "inline"]>>;
248
+ }, "strip", z.ZodTypeAny, {
249
+ mode: "float" | "inline" | "sidebar";
250
+ }, {
251
+ mode?: "float" | "inline" | "sidebar" | undefined;
252
+ }>;
253
+ readonly 'ai:suggestion': z.ZodObject<{
254
+ context: z.ZodOptional<z.ZodString>;
255
+ }, "strip", z.ZodTypeAny, {
256
+ context?: string | undefined;
257
+ }, {
258
+ context?: string | undefined;
259
+ }>;
260
+ };
261
+ /**
262
+ * Type Helper to extract props from map
263
+ */
264
+ export type ComponentProps<T extends keyof typeof ComponentPropsMap> = z.infer<typeof ComponentPropsMap[T]>;
265
+ //# sourceMappingURL=block.zod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block.zod.d.ts","sourceRoot":"","sources":["../../src/ui/block.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;;;GAIG;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;EAM1B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQxB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EAKxB,CAAC;AAEH;;;;GAIG;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAK7B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;EAMjC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;EAEhC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BpB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,OAAO,iBAAiB,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC"}