@objectstack/spec 2.0.5 → 2.0.7

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 (293) hide show
  1. package/dist/ai/index.d.mts +1 -1
  2. package/dist/ai/index.d.ts +1 -1
  3. package/dist/ai/index.js +230 -3
  4. package/dist/ai/index.js.map +1 -1
  5. package/dist/ai/index.mjs +218 -3
  6. package/dist/ai/index.mjs.map +1 -1
  7. package/dist/api/index.d.mts +2 -2
  8. package/dist/api/index.d.ts +2 -2
  9. package/dist/api/index.js +3409 -2841
  10. package/dist/api/index.js.map +1 -1
  11. package/dist/api/index.mjs +3386 -2841
  12. package/dist/api/index.mjs.map +1 -1
  13. package/dist/automation/index.d.mts +1 -1
  14. package/dist/automation/index.d.ts +1 -1
  15. package/dist/contracts/index.d.mts +2 -2
  16. package/dist/contracts/index.d.ts +2 -2
  17. package/dist/contracts/index.js.map +1 -1
  18. package/dist/data/index.d.mts +2 -2
  19. package/dist/data/index.d.ts +2 -2
  20. package/dist/data/index.js +58 -1
  21. package/dist/data/index.js.map +1 -1
  22. package/dist/data/index.mjs +58 -1
  23. package/dist/data/index.mjs.map +1 -1
  24. package/dist/{driver.zod-E3C6n0W-.d.ts → driver.zod-B3Q0oLlF.d.ts} +1 -1
  25. package/dist/{driver.zod-DnOPgUGi.d.mts → driver.zod-Bf2z72WQ.d.mts} +1 -1
  26. package/dist/{index-DyawwLFZ.d.ts → index-B3C8s_DZ.d.ts} +307 -29
  27. package/dist/{index-DTCkpGMm.d.mts → index-BliYpI46.d.mts} +879 -52
  28. package/dist/{index-BbtSaxHm.d.ts → index-BpE_xfkc.d.ts} +3289 -229
  29. package/dist/{index-E1mP_eoE.d.mts → index-C3cFLYII.d.mts} +307 -29
  30. package/dist/{index-BpP0MwlW.d.ts → index-CXtgLAue.d.ts} +879 -52
  31. package/dist/{index-D-tf4nDV.d.mts → index-CYbdd-mL.d.mts} +27 -1
  32. package/dist/index-CeUUI-ym.d.mts +2102 -0
  33. package/dist/{index-BPhGHW32.d.ts → index-CfvdYFyf.d.ts} +27 -1
  34. package/dist/{index-CDN6TRx9.d.mts → index-ClHj1Tbo.d.mts} +71 -2
  35. package/dist/{index-CDN6TRx9.d.ts → index-ClHj1Tbo.d.ts} +71 -2
  36. package/dist/index-CmY8tgpL.d.ts +2102 -0
  37. package/dist/{index-DRCh2NTZ.d.mts → index-CqDMk0T6.d.mts} +3289 -229
  38. package/dist/{index-d9wYlv-g.d.ts → index-DNKiU_-x.d.mts} +684 -18
  39. package/dist/{index-d9wYlv-g.d.mts → index-DNKiU_-x.d.ts} +684 -18
  40. package/dist/{index-CisfSmuF.d.ts → index-Dm4UfDKG.d.ts} +451 -19
  41. package/dist/index-KhvhiesR.d.mts +6902 -0
  42. package/dist/{index-BV0xBoer.d.mts → index-Onf8hbkX.d.mts} +451 -19
  43. package/dist/index-OqCqQSaH.d.ts +6902 -0
  44. package/dist/index.d.mts +2519 -222
  45. package/dist/index.d.ts +2519 -222
  46. package/dist/index.js +9957 -8069
  47. package/dist/index.js.map +1 -1
  48. package/dist/index.mjs +9957 -8069
  49. package/dist/index.mjs.map +1 -1
  50. package/dist/integration/index.d.mts +1 -1
  51. package/dist/integration/index.d.ts +1 -1
  52. package/dist/integration/index.js +67 -0
  53. package/dist/integration/index.js.map +1 -1
  54. package/dist/integration/index.mjs +61 -0
  55. package/dist/integration/index.mjs.map +1 -1
  56. package/dist/kernel/index.d.mts +2 -2
  57. package/dist/kernel/index.d.ts +2 -2
  58. package/dist/kernel/index.js +1698 -1474
  59. package/dist/kernel/index.js.map +1 -1
  60. package/dist/kernel/index.mjs +1690 -1474
  61. package/dist/kernel/index.mjs.map +1 -1
  62. package/dist/{package-registry.zod-CbS9FKeH.d.mts → package-registry.zod-BJQSiICj.d.mts} +78 -43
  63. package/dist/{package-registry.zod-CbS9FKeH.d.ts → package-registry.zod-BJQSiICj.d.ts} +78 -43
  64. package/dist/security/index.d.mts +1 -1
  65. package/dist/security/index.d.ts +1 -1
  66. package/dist/security/index.js +47 -1
  67. package/dist/security/index.js.map +1 -1
  68. package/dist/security/index.mjs +45 -1
  69. package/dist/security/index.mjs.map +1 -1
  70. package/dist/system/index.d.mts +1 -1
  71. package/dist/system/index.d.ts +1 -1
  72. package/dist/system/index.js +2189 -1821
  73. package/dist/system/index.js.map +1 -1
  74. package/dist/system/index.mjs +2168 -1821
  75. package/dist/system/index.mjs.map +1 -1
  76. package/dist/ui/index.d.mts +1 -1
  77. package/dist/ui/index.d.ts +1 -1
  78. package/dist/ui/index.js +1414 -767
  79. package/dist/ui/index.js.map +1 -1
  80. package/dist/ui/index.mjs +1354 -767
  81. package/dist/ui/index.mjs.map +1 -1
  82. package/json-schema/ai/Agent.json +203 -0
  83. package/json-schema/ai/AgentCommunicationProtocol.json +9 -0
  84. package/json-schema/ai/AgentGroupMember.json +45 -0
  85. package/json-schema/ai/AgentGroupRole.json +10 -0
  86. package/json-schema/ai/DevOpsAgent.json +203 -0
  87. package/json-schema/ai/MCPClientConfig.json +168 -0
  88. package/json-schema/ai/MCPRootEntry.json +23 -0
  89. package/json-schema/ai/MCPRootsConfig.json +49 -0
  90. package/json-schema/ai/MCPSamplingConfig.json +46 -0
  91. package/json-schema/ai/MCPServerConfig.json +120 -0
  92. package/json-schema/ai/MCPStreamingConfig.json +38 -0
  93. package/json-schema/ai/MCPToolApproval.json +39 -0
  94. package/json-schema/ai/MultiAgentGroup.json +137 -0
  95. package/json-schema/ai/StructuredOutputConfig.json +75 -0
  96. package/json-schema/ai/StructuredOutputFormat.json +12 -0
  97. package/json-schema/ai/TransformPipelineStep.json +11 -0
  98. package/json-schema/api/AppDefinitionResponse.json +285 -7
  99. package/json-schema/api/BasePresence.json +40 -0
  100. package/json-schema/api/BatchLoadingStrategy.json +40 -0
  101. package/json-schema/api/Callback.json +39 -0
  102. package/json-schema/api/DataLoaderConfig.json +55 -0
  103. package/json-schema/api/DisablePackageResponse.json +26 -0
  104. package/json-schema/api/Discovery.json +4 -62
  105. package/json-schema/api/EnablePackageResponse.json +26 -0
  106. package/json-schema/api/FederationEntity.json +110 -0
  107. package/json-schema/api/FederationEntityKey.json +20 -0
  108. package/json-schema/api/FederationExternalField.json +18 -0
  109. package/json-schema/api/FederationGateway.json +327 -0
  110. package/json-schema/api/FederationProvides.json +19 -0
  111. package/json-schema/api/FederationRequires.json +19 -0
  112. package/json-schema/api/GetDiscoveryResponse.json +1 -60
  113. package/json-schema/api/GetPackageResponse.json +26 -0
  114. package/json-schema/api/GraphQLConfig.json +327 -0
  115. package/json-schema/api/GraphQLQueryAdapter.json +84 -0
  116. package/json-schema/api/InstallPackageRequest.json +26 -0
  117. package/json-schema/api/InstallPackageResponse.json +26 -0
  118. package/json-schema/api/ListPackagesResponse.json +26 -0
  119. package/json-schema/api/ODataQueryAdapter.json +66 -0
  120. package/json-schema/api/OpenApi31Extensions.json +139 -0
  121. package/json-schema/api/OperatorMapping.json +26 -0
  122. package/json-schema/api/PresenceStatus.json +10 -0
  123. package/json-schema/api/QueryAdapterConfig.json +272 -0
  124. package/json-schema/api/QueryAdapterTarget.json +9 -0
  125. package/json-schema/api/QueryOptimizationConfig.json +126 -0
  126. package/json-schema/api/RealtimeRecordAction.json +9 -0
  127. package/json-schema/api/RestQueryAdapter.json +86 -0
  128. package/json-schema/api/RestServerConfig.json +139 -0
  129. package/json-schema/api/SubgraphConfig.json +183 -0
  130. package/json-schema/api/WebhookConfig.json +129 -0
  131. package/json-schema/api/WebhookEvent.json +64 -0
  132. package/json-schema/data/ExternalLookup.json +128 -0
  133. package/json-schema/identity/SCIMBulkOperation.json +41 -0
  134. package/json-schema/identity/SCIMBulkRequest.json +73 -0
  135. package/json-schema/identity/SCIMBulkResponse.json +61 -0
  136. package/json-schema/identity/SCIMBulkResponseOperation.json +36 -0
  137. package/json-schema/integration/CircuitBreakerConfig.json +49 -0
  138. package/json-schema/integration/Connector.json +223 -0
  139. package/json-schema/integration/ConnectorHealth.json +113 -0
  140. package/json-schema/integration/DatabaseConnector.json +223 -0
  141. package/json-schema/integration/ErrorCategory.json +15 -0
  142. package/json-schema/integration/ErrorMappingConfig.json +112 -0
  143. package/json-schema/integration/ErrorMappingRule.json +66 -0
  144. package/json-schema/integration/FileStorageConnector.json +223 -0
  145. package/json-schema/integration/GitHubConnector.json +223 -0
  146. package/json-schema/integration/HealthCheckConfig.json +58 -0
  147. package/json-schema/integration/MessageQueueConnector.json +223 -0
  148. package/json-schema/integration/SaasConnector.json +223 -0
  149. package/json-schema/integration/VercelConnector.json +223 -0
  150. package/json-schema/kernel/CLICommandContribution.json +23 -0
  151. package/json-schema/kernel/CLIExtensionExport.json +22 -0
  152. package/json-schema/kernel/DevFixtureConfig.json +35 -0
  153. package/json-schema/kernel/DevPluginConfig.json +170 -0
  154. package/json-schema/kernel/DevPluginPreset.json +10 -0
  155. package/json-schema/kernel/DevServiceOverride.json +41 -0
  156. package/json-schema/kernel/DevToolsConfig.json +45 -0
  157. package/json-schema/kernel/DisablePackageResponse.json +26 -0
  158. package/json-schema/kernel/EnablePackageResponse.json +26 -0
  159. package/json-schema/kernel/GetPackageResponse.json +26 -0
  160. package/json-schema/kernel/InstallPackageRequest.json +26 -0
  161. package/json-schema/kernel/InstallPackageResponse.json +26 -0
  162. package/json-schema/kernel/InstalledPackage.json +26 -0
  163. package/json-schema/kernel/ListPackagesResponse.json +26 -0
  164. package/json-schema/kernel/Manifest.json +26 -0
  165. package/json-schema/kernel/MetadataFallbackStrategy.json +9 -0
  166. package/json-schema/kernel/MetadataLoaderContract.json +7 -0
  167. package/json-schema/kernel/MetadataManagerConfig.json +21 -0
  168. package/json-schema/security/RLSAuditConfig.json +62 -0
  169. package/json-schema/security/RLSAuditEvent.json +66 -0
  170. package/json-schema/security/RLSConfig.json +62 -0
  171. package/json-schema/system/AuthConfig.json +83 -0
  172. package/json-schema/system/BackupConfig.json +148 -0
  173. package/json-schema/system/BackupRetention.json +27 -0
  174. package/json-schema/system/BackupStrategy.json +10 -0
  175. package/json-schema/system/CacheAvalanchePrevention.json +77 -0
  176. package/json-schema/system/CacheConsistency.json +11 -0
  177. package/json-schema/system/CacheWarmup.json +44 -0
  178. package/json-schema/system/ComplianceAuditRequirement.json +43 -0
  179. package/json-schema/system/ComplianceEncryptionRequirement.json +58 -0
  180. package/json-schema/system/DataClassificationPolicy.json +46 -0
  181. package/json-schema/system/DisasterRecoveryPlan.json +414 -0
  182. package/json-schema/system/DistributedCacheConfig.json +269 -0
  183. package/json-schema/system/FailoverConfig.json +102 -0
  184. package/json-schema/system/FailoverMode.json +11 -0
  185. package/json-schema/system/MaskingVisibilityRule.json +56 -0
  186. package/json-schema/system/MetadataFallbackStrategy.json +9 -0
  187. package/json-schema/system/MetadataLoaderContract.json +9 -1
  188. package/json-schema/system/MetadataManagerConfig.json +52 -11
  189. package/json-schema/system/MetadataRecord.json +32 -1
  190. package/json-schema/system/MetadataSource.json +10 -0
  191. package/json-schema/system/MutualTLSConfig.json +83 -0
  192. package/json-schema/system/RPO.json +27 -0
  193. package/json-schema/system/RTO.json +27 -0
  194. package/json-schema/system/SecurityContextConfig.json +288 -0
  195. package/json-schema/system/SecurityEventCorrelation.json +40 -0
  196. package/json-schema/ui/Action.json +200 -5
  197. package/json-schema/ui/ActionParam.json +62 -2
  198. package/json-schema/ui/AnimationTrigger.json +14 -0
  199. package/json-schema/ui/App.json +285 -7
  200. package/json-schema/ui/AriaProps.json +49 -0
  201. package/json-schema/ui/BreakpointColumnMap.json +38 -0
  202. package/json-schema/ui/BreakpointName.json +12 -0
  203. package/json-schema/ui/BreakpointOrderMap.json +26 -0
  204. package/json-schema/ui/ChartAnnotation.json +31 -1
  205. package/json-schema/ui/ChartAxis.json +30 -1
  206. package/json-schema/ui/ChartConfig.json +259 -7
  207. package/json-schema/ui/ChartSeries.json +30 -1
  208. package/json-schema/ui/ColumnSummary.json +18 -0
  209. package/json-schema/ui/ComponentAnimation.json +246 -0
  210. package/json-schema/ui/ConflictResolution.json +11 -0
  211. package/json-schema/ui/Dashboard.json +627 -11
  212. package/json-schema/ui/DashboardNavItem.json +30 -1
  213. package/json-schema/ui/DashboardWidget.json +433 -8
  214. package/json-schema/ui/DateFormat.json +36 -0
  215. package/json-schema/ui/DensityMode.json +9 -0
  216. package/json-schema/ui/DndConfig.json +306 -0
  217. package/json-schema/ui/DragConstraint.json +44 -0
  218. package/json-schema/ui/DragHandle.json +10 -0
  219. package/json-schema/ui/DragItem.json +160 -0
  220. package/json-schema/ui/DropEffect.json +11 -0
  221. package/json-schema/ui/DropZone.json +114 -0
  222. package/json-schema/ui/EasingFunction.json +13 -0
  223. package/json-schema/ui/EvictionPolicy.json +10 -0
  224. package/json-schema/ui/FocusManagement.json +69 -0
  225. package/json-schema/ui/FocusTrapConfig.json +32 -0
  226. package/json-schema/ui/FormField.json +90 -3
  227. package/json-schema/ui/GalleryConfig.json +46 -0
  228. package/json-schema/ui/GestureConfig.json +128 -0
  229. package/json-schema/ui/GestureType.json +14 -0
  230. package/json-schema/ui/GroupNavItem.json +30 -1
  231. package/json-schema/ui/GroupingConfig.json +45 -0
  232. package/json-schema/ui/GroupingField.json +30 -0
  233. package/json-schema/ui/I18nLabel.json +34 -0
  234. package/json-schema/ui/I18nObject.json +26 -0
  235. package/json-schema/ui/KeyboardNavigationConfig.json +194 -0
  236. package/json-schema/ui/KeyboardShortcut.json +66 -0
  237. package/json-schema/ui/ListColumn.json +55 -1
  238. package/json-schema/ui/ListView.json +435 -4
  239. package/json-schema/ui/LocaleConfig.json +108 -0
  240. package/json-schema/ui/LongPressGestureConfig.json +20 -0
  241. package/json-schema/ui/MotionConfig.json +405 -0
  242. package/json-schema/ui/NavigationItem.json +150 -5
  243. package/json-schema/ui/Notification.json +232 -0
  244. package/json-schema/ui/NotificationAction.json +60 -0
  245. package/json-schema/ui/NotificationConfig.json +52 -0
  246. package/json-schema/ui/NotificationPosition.json +13 -0
  247. package/json-schema/ui/NotificationSeverity.json +11 -0
  248. package/json-schema/ui/NotificationType.json +12 -0
  249. package/json-schema/ui/NumberFormat.json +42 -0
  250. package/json-schema/ui/ObjectNavItem.json +30 -1
  251. package/json-schema/ui/OfflineCacheConfig.json +40 -0
  252. package/json-schema/ui/OfflineConfig.json +157 -0
  253. package/json-schema/ui/OfflineStrategy.json +12 -0
  254. package/json-schema/ui/Page.json +285 -3
  255. package/json-schema/ui/PageCardProps.json +79 -1
  256. package/json-schema/ui/PageComponent.json +175 -1
  257. package/json-schema/ui/PageHeaderProps.json +108 -2
  258. package/json-schema/ui/PageNavItem.json +30 -1
  259. package/json-schema/ui/PageRegion.json +175 -1
  260. package/json-schema/ui/PageTabsProps.json +79 -1
  261. package/json-schema/ui/PageTransition.json +53 -0
  262. package/json-schema/ui/PerformanceConfig.json +57 -0
  263. package/json-schema/ui/PersistStorage.json +10 -0
  264. package/json-schema/ui/PinchGestureConfig.json +16 -0
  265. package/json-schema/ui/PluralRule.json +40 -0
  266. package/json-schema/ui/Report.json +490 -8
  267. package/json-schema/ui/ReportChart.json +199 -5
  268. package/json-schema/ui/ReportColumn.json +126 -1
  269. package/json-schema/ui/ResponsiveConfig.json +97 -0
  270. package/json-schema/ui/RowColorConfig.json +25 -0
  271. package/json-schema/ui/RowHeight.json +12 -0
  272. package/json-schema/ui/SwipeDirection.json +10 -0
  273. package/json-schema/ui/SwipeGestureConfig.json +32 -0
  274. package/json-schema/ui/SyncConfig.json +47 -0
  275. package/json-schema/ui/Theme.json +137 -0
  276. package/json-schema/ui/TimelineConfig.json +46 -0
  277. package/json-schema/ui/TouchInteraction.json +232 -0
  278. package/json-schema/ui/TouchTargetConfig.json +49 -0
  279. package/json-schema/ui/TransitionConfig.json +47 -0
  280. package/json-schema/ui/TransitionPreset.json +16 -0
  281. package/json-schema/ui/UrlNavItem.json +30 -1
  282. package/json-schema/ui/ViewSharing.json +24 -0
  283. package/json-schema/ui/WcagContrastLevel.json +8 -0
  284. package/json-schema/ui/WidgetEvent.json +60 -2
  285. package/json-schema/ui/WidgetManifest.json +284 -6
  286. package/json-schema/ui/WidgetProperty.json +60 -2
  287. package/package.json +1 -1
  288. package/dist/index-C6p-2KXV.d.ts +0 -767
  289. package/dist/index-CVnGe2b8.d.mts +0 -767
  290. package/dist/index-CZjkpp75.d.mts +0 -3867
  291. package/dist/index-CgkjUheS.d.ts +0 -3867
  292. package/dist/{index-B08s7rEU.d.mts → index-DmhxH5jy.d.mts} +8 -8
  293. package/dist/{index-DqnBqATx.d.ts → index-y5JJvyML.d.ts} +8 -8
@@ -6,7 +6,37 @@
6
6
  "type": "string"
7
7
  },
8
8
  "label": {
9
- "type": "string"
9
+ "anyOf": [
10
+ {
11
+ "type": "string"
12
+ },
13
+ {
14
+ "type": "object",
15
+ "properties": {
16
+ "key": {
17
+ "type": "string",
18
+ "description": "Translation key (e.g., \"views.task_list.label\")"
19
+ },
20
+ "defaultValue": {
21
+ "description": "Fallback value when translation key is not found",
22
+ "type": "string"
23
+ },
24
+ "params": {
25
+ "description": "Interpolation parameters (e.g., { count: 5 })",
26
+ "type": "object",
27
+ "propertyNames": {
28
+ "type": "string"
29
+ },
30
+ "additionalProperties": {}
31
+ }
32
+ },
33
+ "required": [
34
+ "key"
35
+ ],
36
+ "additionalProperties": false
37
+ }
38
+ ],
39
+ "description": "Display label: plain string or i18n translation object"
10
40
  },
11
41
  "type": {
12
42
  "type": "string",
@@ -67,7 +97,37 @@
67
97
  "type": "object",
68
98
  "properties": {
69
99
  "label": {
70
- "type": "string"
100
+ "anyOf": [
101
+ {
102
+ "type": "string"
103
+ },
104
+ {
105
+ "type": "object",
106
+ "properties": {
107
+ "key": {
108
+ "type": "string",
109
+ "description": "Translation key (e.g., \"views.task_list.label\")"
110
+ },
111
+ "defaultValue": {
112
+ "description": "Fallback value when translation key is not found",
113
+ "type": "string"
114
+ },
115
+ "params": {
116
+ "description": "Interpolation parameters (e.g., { count: 5 })",
117
+ "type": "object",
118
+ "propertyNames": {
119
+ "type": "string"
120
+ },
121
+ "additionalProperties": {}
122
+ }
123
+ },
124
+ "required": [
125
+ "key"
126
+ ],
127
+ "additionalProperties": false
128
+ }
129
+ ],
130
+ "description": "Display label: plain string or i18n translation object"
71
131
  },
72
132
  "value": {
73
133
  "type": "string"
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "string",
4
+ "enum": [
5
+ "on_mount",
6
+ "on_unmount",
7
+ "on_hover",
8
+ "on_focus",
9
+ "on_click",
10
+ "on_scroll",
11
+ "on_visible"
12
+ ],
13
+ "description": "Event that triggers the animation"
14
+ }
@@ -9,7 +9,36 @@
9
9
  "description": "App unique machine name (lowercase snake_case)"
10
10
  },
11
11
  "label": {
12
- "type": "string",
12
+ "anyOf": [
13
+ {
14
+ "type": "string"
15
+ },
16
+ {
17
+ "type": "object",
18
+ "properties": {
19
+ "key": {
20
+ "type": "string",
21
+ "description": "Translation key (e.g., \"views.task_list.label\")"
22
+ },
23
+ "defaultValue": {
24
+ "description": "Fallback value when translation key is not found",
25
+ "type": "string"
26
+ },
27
+ "params": {
28
+ "description": "Interpolation parameters (e.g., { count: 5 })",
29
+ "type": "object",
30
+ "propertyNames": {
31
+ "type": "string"
32
+ },
33
+ "additionalProperties": {}
34
+ }
35
+ },
36
+ "required": [
37
+ "key"
38
+ ],
39
+ "additionalProperties": false
40
+ }
41
+ ],
13
42
  "description": "App display label"
14
43
  },
15
44
  "version": {
@@ -18,7 +47,36 @@
18
47
  },
19
48
  "description": {
20
49
  "description": "App description",
21
- "type": "string"
50
+ "anyOf": [
51
+ {
52
+ "type": "string"
53
+ },
54
+ {
55
+ "type": "object",
56
+ "properties": {
57
+ "key": {
58
+ "type": "string",
59
+ "description": "Translation key (e.g., \"views.task_list.label\")"
60
+ },
61
+ "defaultValue": {
62
+ "description": "Fallback value when translation key is not found",
63
+ "type": "string"
64
+ },
65
+ "params": {
66
+ "description": "Interpolation parameters (e.g., { count: 5 })",
67
+ "type": "object",
68
+ "propertyNames": {
69
+ "type": "string"
70
+ },
71
+ "additionalProperties": {}
72
+ }
73
+ },
74
+ "required": [
75
+ "key"
76
+ ],
77
+ "additionalProperties": false
78
+ }
79
+ ]
22
80
  },
23
81
  "icon": {
24
82
  "description": "App icon used in the App Launcher",
@@ -80,6 +138,81 @@
80
138
  "description": "Custom APIs belonging to this app",
81
139
  "type": "array",
82
140
  "items": {}
141
+ },
142
+ "mobileNavigation": {
143
+ "description": "Mobile-specific navigation configuration",
144
+ "type": "object",
145
+ "properties": {
146
+ "mode": {
147
+ "default": "drawer",
148
+ "description": "Mobile navigation mode: drawer sidebar, bottom navigation bar, or hamburger menu",
149
+ "type": "string",
150
+ "enum": [
151
+ "drawer",
152
+ "bottom_nav",
153
+ "hamburger"
154
+ ]
155
+ },
156
+ "bottomNavItems": {
157
+ "description": "Navigation item IDs to show in bottom nav (max 5)",
158
+ "type": "array",
159
+ "items": {
160
+ "type": "string"
161
+ }
162
+ }
163
+ },
164
+ "required": [
165
+ "mode"
166
+ ],
167
+ "additionalProperties": false
168
+ },
169
+ "aria": {
170
+ "description": "ARIA accessibility attributes for the application",
171
+ "type": "object",
172
+ "properties": {
173
+ "ariaLabel": {
174
+ "description": "Accessible label for screen readers (WAI-ARIA aria-label)",
175
+ "anyOf": [
176
+ {
177
+ "type": "string"
178
+ },
179
+ {
180
+ "type": "object",
181
+ "properties": {
182
+ "key": {
183
+ "type": "string",
184
+ "description": "Translation key (e.g., \"views.task_list.label\")"
185
+ },
186
+ "defaultValue": {
187
+ "description": "Fallback value when translation key is not found",
188
+ "type": "string"
189
+ },
190
+ "params": {
191
+ "description": "Interpolation parameters (e.g., { count: 5 })",
192
+ "type": "object",
193
+ "propertyNames": {
194
+ "type": "string"
195
+ },
196
+ "additionalProperties": {}
197
+ }
198
+ },
199
+ "required": [
200
+ "key"
201
+ ],
202
+ "additionalProperties": false
203
+ }
204
+ ]
205
+ },
206
+ "ariaDescribedBy": {
207
+ "description": "ID of element providing additional description (WAI-ARIA aria-describedby)",
208
+ "type": "string"
209
+ },
210
+ "role": {
211
+ "description": "WAI-ARIA role attribute (e.g., \"dialog\", \"navigation\", \"alert\")",
212
+ "type": "string"
213
+ }
214
+ },
215
+ "additionalProperties": false
83
216
  }
84
217
  },
85
218
  "required": [
@@ -102,7 +235,36 @@
102
235
  "description": "Unique identifier for this navigation item (lowercase snake_case)"
103
236
  },
104
237
  "label": {
105
- "type": "string",
238
+ "anyOf": [
239
+ {
240
+ "type": "string"
241
+ },
242
+ {
243
+ "type": "object",
244
+ "properties": {
245
+ "key": {
246
+ "type": "string",
247
+ "description": "Translation key (e.g., \"views.task_list.label\")"
248
+ },
249
+ "defaultValue": {
250
+ "description": "Fallback value when translation key is not found",
251
+ "type": "string"
252
+ },
253
+ "params": {
254
+ "description": "Interpolation parameters (e.g., { count: 5 })",
255
+ "type": "object",
256
+ "propertyNames": {
257
+ "type": "string"
258
+ },
259
+ "additionalProperties": {}
260
+ }
261
+ },
262
+ "required": [
263
+ "key"
264
+ ],
265
+ "additionalProperties": false
266
+ }
267
+ ],
106
268
  "description": "Display proper label"
107
269
  },
108
270
  "icon": {
@@ -151,7 +313,36 @@
151
313
  "description": "Unique identifier for this navigation item (lowercase snake_case)"
152
314
  },
153
315
  "label": {
154
- "type": "string",
316
+ "anyOf": [
317
+ {
318
+ "type": "string"
319
+ },
320
+ {
321
+ "type": "object",
322
+ "properties": {
323
+ "key": {
324
+ "type": "string",
325
+ "description": "Translation key (e.g., \"views.task_list.label\")"
326
+ },
327
+ "defaultValue": {
328
+ "description": "Fallback value when translation key is not found",
329
+ "type": "string"
330
+ },
331
+ "params": {
332
+ "description": "Interpolation parameters (e.g., { count: 5 })",
333
+ "type": "object",
334
+ "propertyNames": {
335
+ "type": "string"
336
+ },
337
+ "additionalProperties": {}
338
+ }
339
+ },
340
+ "required": [
341
+ "key"
342
+ ],
343
+ "additionalProperties": false
344
+ }
345
+ ],
155
346
  "description": "Display proper label"
156
347
  },
157
348
  "icon": {
@@ -189,7 +380,36 @@
189
380
  "description": "Unique identifier for this navigation item (lowercase snake_case)"
190
381
  },
191
382
  "label": {
192
- "type": "string",
383
+ "anyOf": [
384
+ {
385
+ "type": "string"
386
+ },
387
+ {
388
+ "type": "object",
389
+ "properties": {
390
+ "key": {
391
+ "type": "string",
392
+ "description": "Translation key (e.g., \"views.task_list.label\")"
393
+ },
394
+ "defaultValue": {
395
+ "description": "Fallback value when translation key is not found",
396
+ "type": "string"
397
+ },
398
+ "params": {
399
+ "description": "Interpolation parameters (e.g., { count: 5 })",
400
+ "type": "object",
401
+ "propertyNames": {
402
+ "type": "string"
403
+ },
404
+ "additionalProperties": {}
405
+ }
406
+ },
407
+ "required": [
408
+ "key"
409
+ ],
410
+ "additionalProperties": false
411
+ }
412
+ ],
193
413
  "description": "Display proper label"
194
414
  },
195
415
  "icon": {
@@ -235,7 +455,36 @@
235
455
  "description": "Unique identifier for this navigation item (lowercase snake_case)"
236
456
  },
237
457
  "label": {
238
- "type": "string",
458
+ "anyOf": [
459
+ {
460
+ "type": "string"
461
+ },
462
+ {
463
+ "type": "object",
464
+ "properties": {
465
+ "key": {
466
+ "type": "string",
467
+ "description": "Translation key (e.g., \"views.task_list.label\")"
468
+ },
469
+ "defaultValue": {
470
+ "description": "Fallback value when translation key is not found",
471
+ "type": "string"
472
+ },
473
+ "params": {
474
+ "description": "Interpolation parameters (e.g., { count: 5 })",
475
+ "type": "object",
476
+ "propertyNames": {
477
+ "type": "string"
478
+ },
479
+ "additionalProperties": {}
480
+ }
481
+ },
482
+ "required": [
483
+ "key"
484
+ ],
485
+ "additionalProperties": false
486
+ }
487
+ ],
239
488
  "description": "Display proper label"
240
489
  },
241
490
  "icon": {
@@ -283,7 +532,36 @@
283
532
  "description": "Unique identifier for this navigation item (lowercase snake_case)"
284
533
  },
285
534
  "label": {
286
- "type": "string",
535
+ "anyOf": [
536
+ {
537
+ "type": "string"
538
+ },
539
+ {
540
+ "type": "object",
541
+ "properties": {
542
+ "key": {
543
+ "type": "string",
544
+ "description": "Translation key (e.g., \"views.task_list.label\")"
545
+ },
546
+ "defaultValue": {
547
+ "description": "Fallback value when translation key is not found",
548
+ "type": "string"
549
+ },
550
+ "params": {
551
+ "description": "Interpolation parameters (e.g., { count: 5 })",
552
+ "type": "object",
553
+ "propertyNames": {
554
+ "type": "string"
555
+ },
556
+ "additionalProperties": {}
557
+ }
558
+ },
559
+ "required": [
560
+ "key"
561
+ ],
562
+ "additionalProperties": false
563
+ }
564
+ ],
287
565
  "description": "Display proper label"
288
566
  },
289
567
  "icon": {
@@ -0,0 +1,49 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "ariaLabel": {
6
+ "description": "Accessible label for screen readers (WAI-ARIA aria-label)",
7
+ "anyOf": [
8
+ {
9
+ "type": "string"
10
+ },
11
+ {
12
+ "type": "object",
13
+ "properties": {
14
+ "key": {
15
+ "type": "string",
16
+ "description": "Translation key (e.g., \"views.task_list.label\")"
17
+ },
18
+ "defaultValue": {
19
+ "description": "Fallback value when translation key is not found",
20
+ "type": "string"
21
+ },
22
+ "params": {
23
+ "description": "Interpolation parameters (e.g., { count: 5 })",
24
+ "type": "object",
25
+ "propertyNames": {
26
+ "type": "string"
27
+ },
28
+ "additionalProperties": {}
29
+ }
30
+ },
31
+ "required": [
32
+ "key"
33
+ ],
34
+ "additionalProperties": false
35
+ }
36
+ ]
37
+ },
38
+ "ariaDescribedBy": {
39
+ "description": "ID of element providing additional description (WAI-ARIA aria-describedby)",
40
+ "type": "string"
41
+ },
42
+ "role": {
43
+ "description": "WAI-ARIA role attribute (e.g., \"dialog\", \"navigation\", \"alert\")",
44
+ "type": "string"
45
+ }
46
+ },
47
+ "additionalProperties": false,
48
+ "description": "ARIA accessibility attributes"
49
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "xs": {
6
+ "type": "number",
7
+ "minimum": 1,
8
+ "maximum": 12
9
+ },
10
+ "sm": {
11
+ "type": "number",
12
+ "minimum": 1,
13
+ "maximum": 12
14
+ },
15
+ "md": {
16
+ "type": "number",
17
+ "minimum": 1,
18
+ "maximum": 12
19
+ },
20
+ "lg": {
21
+ "type": "number",
22
+ "minimum": 1,
23
+ "maximum": 12
24
+ },
25
+ "xl": {
26
+ "type": "number",
27
+ "minimum": 1,
28
+ "maximum": 12
29
+ },
30
+ "2xl": {
31
+ "type": "number",
32
+ "minimum": 1,
33
+ "maximum": 12
34
+ }
35
+ },
36
+ "additionalProperties": false,
37
+ "description": "Grid columns per breakpoint (1-12)"
38
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "string",
4
+ "enum": [
5
+ "xs",
6
+ "sm",
7
+ "md",
8
+ "lg",
9
+ "xl",
10
+ "2xl"
11
+ ]
12
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "xs": {
6
+ "type": "number"
7
+ },
8
+ "sm": {
9
+ "type": "number"
10
+ },
11
+ "md": {
12
+ "type": "number"
13
+ },
14
+ "lg": {
15
+ "type": "number"
16
+ },
17
+ "xl": {
18
+ "type": "number"
19
+ },
20
+ "2xl": {
21
+ "type": "number"
22
+ }
23
+ },
24
+ "additionalProperties": false,
25
+ "description": "Display order per breakpoint"
26
+ }
@@ -44,7 +44,37 @@
44
44
  "type": "string"
45
45
  },
46
46
  "label": {
47
- "type": "string"
47
+ "anyOf": [
48
+ {
49
+ "type": "string"
50
+ },
51
+ {
52
+ "type": "object",
53
+ "properties": {
54
+ "key": {
55
+ "type": "string",
56
+ "description": "Translation key (e.g., \"views.task_list.label\")"
57
+ },
58
+ "defaultValue": {
59
+ "description": "Fallback value when translation key is not found",
60
+ "type": "string"
61
+ },
62
+ "params": {
63
+ "description": "Interpolation parameters (e.g., { count: 5 })",
64
+ "type": "object",
65
+ "propertyNames": {
66
+ "type": "string"
67
+ },
68
+ "additionalProperties": {}
69
+ }
70
+ },
71
+ "required": [
72
+ "key"
73
+ ],
74
+ "additionalProperties": false
75
+ }
76
+ ],
77
+ "description": "Display label: plain string or i18n translation object"
48
78
  },
49
79
  "style": {
50
80
  "default": "dashed",
@@ -8,7 +8,36 @@
8
8
  },
9
9
  "title": {
10
10
  "description": "Axis display title",
11
- "type": "string"
11
+ "anyOf": [
12
+ {
13
+ "type": "string"
14
+ },
15
+ {
16
+ "type": "object",
17
+ "properties": {
18
+ "key": {
19
+ "type": "string",
20
+ "description": "Translation key (e.g., \"views.task_list.label\")"
21
+ },
22
+ "defaultValue": {
23
+ "description": "Fallback value when translation key is not found",
24
+ "type": "string"
25
+ },
26
+ "params": {
27
+ "description": "Interpolation parameters (e.g., { count: 5 })",
28
+ "type": "object",
29
+ "propertyNames": {
30
+ "type": "string"
31
+ },
32
+ "additionalProperties": {}
33
+ }
34
+ },
35
+ "required": [
36
+ "key"
37
+ ],
38
+ "additionalProperties": false
39
+ }
40
+ ]
12
41
  },
13
42
  "format": {
14
43
  "description": "Value format string (e.g., \"$0,0.00\")",