pi-apexlang 0.2.2 → 0.4.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 (239) hide show
  1. package/README.md +22 -5
  2. package/THIRD_PARTY_NOTICES.md +2 -2
  3. package/UPSTREAM.json +2 -2
  4. package/docs/assets/overview.en.png +0 -0
  5. package/docs/assets/overview.en.svg +89 -0
  6. package/docs/assets/overview.uk.png +0 -0
  7. package/docs/assets/overview.uk.svg +89 -0
  8. package/docs/en/README.md +41 -0
  9. package/docs/en/architecture.md +73 -0
  10. package/docs/en/getting-started.md +77 -0
  11. package/docs/en/maintenance.md +83 -0
  12. package/docs/en/tool-reference.md +85 -0
  13. package/docs/uk/README.md +41 -0
  14. package/docs/uk/architecture.md +73 -0
  15. package/docs/uk/getting-started.md +77 -0
  16. package/docs/uk/maintenance.md +83 -0
  17. package/docs/uk/tool-reference.md +85 -0
  18. package/extensions/apexlang/index.ts +19 -10
  19. package/extensions/lib/apexlang-cli.d.mts +1 -2
  20. package/extensions/lib/apexlang-cli.mjs +18 -13
  21. package/extensions/lib/apexlang-local-validate.mjs +83 -0
  22. package/extensions/lib/apexlang-local-validator.py +116 -0
  23. package/extensions/lib/apexlang-runtime-validate.mjs +76 -0
  24. package/package.json +2 -1
  25. package/skills/apexlang/APEXlang Skills and Workflows.md +325 -0
  26. package/skills/apexlang/README.md +6 -6
  27. package/skills/apexlang/RELEASE-NOTES.md +2 -2
  28. package/skills/apexlang/SKILL.md +24 -19
  29. package/skills/apexlang/agents/openai.yaml +4 -3
  30. package/skills/apexlang/assets/apex-generation/components.registry.json +1001 -16
  31. package/skills/apexlang/assets/apexlang/domains-catalog.json +6 -1
  32. package/skills/apexlang/assets/component-attributes.json +1924 -180
  33. package/skills/apexlang/assets/component-policies.json +19 -10
  34. package/skills/apexlang/assets/contracts/grammar-semantic-rules.json +134 -0
  35. package/skills/apexlang/assets/contracts/package-layers.json +56 -0
  36. package/skills/apexlang/assets/contracts/page-construction-packs.json +154 -0
  37. package/skills/apexlang/assets/contracts/page-patterns.json +119 -0
  38. package/skills/apexlang/assets/grammar/apexlang.ebnf +11743 -0
  39. package/skills/apexlang/assets/indexes/font-apex-icon-index.json +1699 -0
  40. package/skills/apexlang/assets/routing-catalog-main.json +11 -10
  41. package/skills/apexlang/assets/routing-load-policy.json +35 -9
  42. package/skills/apexlang/assets/rules-mapping.json +110 -2
  43. package/skills/apexlang/assets/rules.catalog.json +1298 -0
  44. package/skills/apexlang/assets/validator-fix-recipes.json +372 -17
  45. package/skills/apexlang/assets/workspace-intelligence.json +7 -10
  46. package/skills/apexlang/manifest.json +268 -12
  47. package/skills/apexlang/references/domains/README.md +1 -1
  48. package/skills/apexlang/references/domains/page-components/buttons.md +2 -2
  49. package/skills/apexlang/references/domains/page-components/page-items.md +3 -3
  50. package/skills/apexlang/references/domains/page-components/regions/region-display-selector/workflow-region-display-selector.md +69 -0
  51. package/skills/apexlang/references/domains/page-components/regions.md +1 -0
  52. package/skills/apexlang/references/domains/template-components/comments.md +61 -0
  53. package/skills/apexlang/references/domains/template-components/registry.md +2 -0
  54. package/skills/apexlang/references/domains/template-components/templates.md +47 -0
  55. package/skills/apexlang/references/domains/template-components/timeline.md +51 -0
  56. package/skills/apexlang/references/ops/one-message-router-contract.md +2 -2
  57. package/skills/apexlang/references/ops/runtime-gates/01-direct-sqlcl-import.md +1 -1
  58. package/skills/apexlang/references/ops/runtime-gates/02-direct-sqlcl-validate-gate.md +1 -1
  59. package/skills/apexlang/references/ops/runtime-gates.md +17 -16
  60. package/skills/apexlang/references/ops/sqlcl-agents/00-connection-gate.md +7 -7
  61. package/skills/apexlang/references/ops/sqlcl.md +7 -8
  62. package/skills/apexlang/references/policies/compiler-prop-map.md +6 -4
  63. package/skills/apexlang/references/policies/governance/00-governance.md +2 -2
  64. package/skills/apexlang/references/policies/memory-bank/00-guard/ai.guard.md +126 -922
  65. package/skills/apexlang/references/policies/memory-bank/20-data/apex.logic.md +3 -3
  66. package/skills/apexlang/references/policies/memory-bank/20-data/db.connection.md +9 -11
  67. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.cards-page.md +95 -0
  68. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.page.md +2 -2
  69. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.smart-filter-search.md +145 -74
  70. package/skills/apexlang/references/policies/memory-bank/40-components/apex.region-interactions.md +9 -2
  71. package/skills/apexlang/references/policies/memory-bank/40-components/apex.region-media.md +6 -5
  72. package/skills/apexlang/references/policies/memory-bank/systemPatterns.md +9 -1
  73. package/skills/apexlang/references/workflows/apex-generation/agents/20-agent-draft.md +51 -232
  74. package/skills/apexlang/references/workflows/apex-generation/agents/30-agent-critique.md +49 -449
  75. package/skills/apexlang/references/workflows/apex-generation/agents/40-agent-revision.md +38 -238
  76. package/skills/apexlang/references/workflows/apex-generation/nlu/nlu-routing-test-matrix.md +8 -2
  77. package/skills/apexlang/references/workflows/apex-generation/nlu/nlu-routing-validation-notes.md +19 -3
  78. package/skills/apexlang/references/workflows/apex-generation/registry.md +15 -1
  79. package/skills/apexlang/references/workflows/apex-generation/templates.md +1 -1
  80. package/skills/apexlang/references/workflows/apex-generation.md +1 -1
  81. package/skills/apexlang/references/workflows/apexlang/apexlang-execution-model.md +5 -5
  82. package/skills/apexlang/references/workflows/apexlang/prompt-contracts.md +81 -10
  83. package/skills/apexlang/references/workflows/apexlang/workflow-create-app-from-fr-and-model.md +18 -7
  84. package/skills/apexlang/release-notes.json +156 -0
  85. package/skills/apexlang/runtime/grammar_contract.mjs +1166 -0
  86. package/skills/apexlang/runtime/internal/python/format_apexlang.py +210 -0
  87. package/skills/apexlang/runtime/internal/python/validate_apexlang.py +14142 -5843
  88. package/skills/apexlang/runtime/internal/python/validator_common.py +2 -0
  89. package/skills/apexlang/runtime/lib/catalogs.mjs +1026 -0
  90. package/skills/apexlang/runtime/lib/common.mjs +35 -0
  91. package/skills/apexlang/runtime/runtime.bundle.mjs +457 -57
  92. package/skills/apexlang/templates/items/combobox/combobox.explicit-defaults.md +1 -1
  93. package/skills/apexlang/templates/items/date-picker/date-picker._common.md +1 -1
  94. package/skills/apexlang/templates/items/date-picker/date-picker.explicit-defaults.md +1 -1
  95. package/skills/apexlang/templates/items/file-upload/file-upload._common.md +30 -24
  96. package/skills/apexlang/templates/items/file-upload/file-upload.compact-template.md +6 -0
  97. package/skills/apexlang/templates/items/file-upload/file-upload.explicit-defaults.md +23 -8
  98. package/skills/apexlang/templates/items/file-upload/file-upload.minimal.md +6 -0
  99. package/skills/apexlang/templates/items/hidden-item/hidden-item._common.md +1 -1
  100. package/skills/apexlang/templates/items/hidden-item/hidden-item.explicit-defaults.md +1 -1
  101. package/skills/apexlang/templates/items/items._common.md +3 -2
  102. package/skills/apexlang/templates/items/list-manager/list-manager.explicit-defaults.md +1 -1
  103. package/skills/apexlang/templates/items/markdown-editor/markdown-editor._common.md +1 -1
  104. package/skills/apexlang/templates/items/markdown-editor/markdown-editor.explicit-defaults.md +1 -1
  105. package/skills/apexlang/templates/items/number-field/number-field._common.md +8 -6
  106. package/skills/apexlang/templates/items/number-field/number-field.explicit-defaults.md +12 -2
  107. package/skills/apexlang/templates/items/popup-lov/popup-lov.explicit-defaults.md +1 -1
  108. package/skills/apexlang/templates/items/rich-text-editor/rich-text-editor._common.md +1 -1
  109. package/skills/apexlang/templates/items/rich-text-editor/rich-text-editor.explicit-defaults.md +1 -1
  110. package/skills/apexlang/templates/items/select-many/standard.md +1 -1
  111. package/skills/apexlang/templates/items/shuttle/shuttle.explicit-defaults.md +1 -1
  112. package/skills/apexlang/templates/items/switch/switch._common.md +8 -8
  113. package/skills/apexlang/templates/items/switch/switch.explicit-defaults.md +1 -1
  114. package/skills/apexlang/templates/items/text-area/text-area._common.md +2 -3
  115. package/skills/apexlang/templates/items/text-area/text-area.explicit-defaults.md +1 -1
  116. package/skills/apexlang/templates/items/text-area/text-area.required-length.md +1 -3
  117. package/skills/apexlang/templates/items/text-autocomplete/text-autocomplete.explicit-defaults.md +1 -1
  118. package/skills/apexlang/templates/items/text-autocomplete/text-autocomplete.required-length.md +1 -3
  119. package/skills/apexlang/templates/items/text-field/text-field._common.md +2 -3
  120. package/skills/apexlang/templates/items/text-field/text-field.explicit-defaults.md +1 -1
  121. package/skills/apexlang/templates/items/text-field/text-field.required-length.md +1 -3
  122. package/skills/apexlang/templates/page-examples/faceted-search/faceted-search.example.md +0 -5
  123. package/skills/apexlang/templates/page-examples/form-page/form-page.example.md +0 -9
  124. package/skills/apexlang/templates/page-examples/interactive-report-page/interactive-report-page.example.md +2 -2
  125. package/skills/apexlang/templates/page-examples/login-page/login-page.example.md +0 -8
  126. package/skills/apexlang/templates/page-examples/task-definition-initiated-tasks-page/task-definition-initiated-tasks-page.example.md +7 -17
  127. package/skills/apexlang/templates/page-examples/task-definition-my-tasks-page/task-definition-my-tasks-page.example.md +7 -65
  128. package/skills/apexlang/templates/page-examples/task-definition-task-details/task-definition-task-details.example.md +38 -201
  129. package/skills/apexlang/templates/region-components/calendar/calendar.custom-styling.md +3 -1
  130. package/skills/apexlang/templates/region-components/calendar/calendar.faceted-search.md +3 -2
  131. package/skills/apexlang/templates/region-components/cards/README.md +12 -4
  132. package/skills/apexlang/templates/region-components/cards/cards._common.md +176 -37
  133. package/skills/apexlang/templates/region-components/cards/cards._index.md +2 -1
  134. package/skills/apexlang/templates/region-components/cards/cards.refresh-after-dialog.md +46 -0
  135. package/skills/apexlang/templates/region-components/cards/cards.refresh-on-change.md +58 -0
  136. package/skills/apexlang/templates/region-components/cards/cards.rest-source.md +54 -18
  137. package/skills/apexlang/templates/region-components/cards/cards.standard.md +37 -21
  138. package/skills/apexlang/templates/region-components/chart/chart._series._common.md +1 -4
  139. package/skills/apexlang/templates/region-components/chart/chart.pie.md +6 -2
  140. package/skills/apexlang/templates/region-components/chart/chart.status-meter-gauge.md +1 -1
  141. package/skills/apexlang/templates/region-components/chart/chart.stock.md +2 -0
  142. package/skills/apexlang/templates/region-components/chart/features/chart.feature-chart-links.md +9 -7
  143. package/skills/apexlang/templates/region-components/faceted-search/faceted-search._common.md +1 -14
  144. package/skills/apexlang/templates/region-components/form/form._items._common.md +1 -5
  145. package/skills/apexlang/templates/region-components/interactive-report/interactive-report._columns._common.md +2 -6
  146. package/skills/apexlang/templates/region-components/interactive-report/interactive-report.page-header-actions.md +1 -7
  147. package/skills/apexlang/templates/region-components/list/README.md +1 -1
  148. package/skills/apexlang/templates/region-components/list/list._common.md +1 -1
  149. package/skills/apexlang/templates/region-components/map/map.backgrounds.md +12 -10
  150. package/skills/apexlang/templates/region-components/map/map.layer.extruded-polygons.md +16 -12
  151. package/skills/apexlang/templates/region-components/map/map.layer.heat-map.md +10 -7
  152. package/skills/apexlang/templates/region-components/map/map.layer.lines.md +10 -8
  153. package/skills/apexlang/templates/region-components/map/map.layer.polygons.md +21 -18
  154. package/skills/apexlang/templates/region-components/map/map.region.background-custom.md +25 -19
  155. package/skills/apexlang/templates/region-components/map/map.region.background-shared.md +19 -13
  156. package/skills/apexlang/templates/region-components/map/map.region.bbox-sql.md +13 -13
  157. package/skills/apexlang/templates/region-components/map/map.region.bbox-static.md +2 -2
  158. package/skills/apexlang/templates/region-components/map/map.region.browser-location.md +3 -7
  159. package/skills/apexlang/templates/region-components/map/map.region.init-position-sql.md +7 -7
  160. package/skills/apexlang/templates/region-components/region-display-selector/README.md +5 -2
  161. package/skills/apexlang/templates/region-components/region-display-selector/region-display-selector._common.md +60 -7
  162. package/skills/apexlang/templates/region-components/region-display-selector/region-display-selector._index.md +4 -1
  163. package/skills/apexlang/templates/region-components/region-display-selector/region-display-selector.permutations.md +55 -0
  164. package/skills/apexlang/templates/region-components/region-display-selector/region-display-selector.standard.md +91 -5
  165. package/skills/apexlang/templates/region-components/smart-filter-search/README.md +6 -2
  166. package/skills/apexlang/templates/region-components/smart-filter-search/smart-filter-search._common.md +107 -46
  167. package/skills/apexlang/templates/region-components/smart-filter-search/smart-filter-search._index.md +4 -3
  168. package/skills/apexlang/templates/region-components/smart-filter-search/smart-filter-search.standard.md +33 -17
  169. package/skills/apexlang/templates/shared-components/component-settings/component-settings._common.md +1 -0
  170. package/skills/apexlang/templates/shared-components/component-settings.example.md +1 -0
  171. package/skills/apexlang/templates/shared-components/email-templates.example.md +1 -1
  172. package/skills/apexlang/templates/shared-components/rest-data-sources/example_rest_data_source.example.md +40 -46
  173. package/skills/apexlang/templates/shared-components/task-definitions/action-task.example.md +2 -30
  174. package/skills/apexlang/templates/shared-components/task-definitions/approve-request.example.md +3 -31
  175. package/skills/apexlang/templates/template-components/README.md +27 -15
  176. package/skills/apexlang/templates/template-components/avatar/README.md +56 -0
  177. package/skills/apexlang/templates/template-components/avatar/avatar._common.md +149 -0
  178. package/skills/apexlang/templates/template-components/avatar/avatar._index.md +42 -0
  179. package/skills/apexlang/templates/template-components/{avatar._template_options.md → avatar/avatar._template_options.md} +1 -1
  180. package/skills/apexlang/templates/template-components/avatar/avatar.report-icon.md +48 -0
  181. package/skills/apexlang/templates/template-components/avatar/avatar.report-image-url-column.md +62 -0
  182. package/skills/apexlang/templates/template-components/avatar/avatar.report-initials.md +54 -0
  183. package/skills/apexlang/templates/template-components/badge/README.md +38 -0
  184. package/skills/apexlang/templates/template-components/badge/badge._common.md +183 -0
  185. package/skills/apexlang/templates/template-components/badge/badge._index.md +20 -0
  186. package/skills/apexlang/templates/template-components/badge/badge.report-link.md +66 -0
  187. package/skills/apexlang/templates/template-components/badge/badge.report-minimal.md +76 -0
  188. package/skills/apexlang/templates/template-components/comments/README.md +20 -0
  189. package/skills/apexlang/templates/template-components/comments/comments._common.md +43 -0
  190. package/skills/apexlang/templates/template-components/comments/comments._index.md +25 -0
  191. package/skills/apexlang/templates/template-components/{comments._template_options.md → comments/comments._template_options.md} +2 -1
  192. package/skills/apexlang/templates/template-components/comments/comments.apex-task-comments.md +77 -0
  193. package/skills/apexlang/templates/template-components/comments/comments.partial-column.md +120 -0
  194. package/skills/apexlang/templates/template-components/comments/comments.permutations.md +425 -0
  195. package/skills/apexlang/templates/template-components/content-row/README.md +1 -1
  196. package/skills/apexlang/templates/template-components/content-row/content-row._common.md +1 -1
  197. package/skills/apexlang/templates/template-components/content-row/content-row._index.md +1 -1
  198. package/skills/apexlang/templates/template-components/content-row/content-row._template_options.md +1 -1
  199. package/skills/apexlang/templates/template-components/flexbox-container/README.md +9 -0
  200. package/skills/apexlang/templates/template-components/flexbox-container/flexbox-container._index.md +13 -0
  201. package/skills/apexlang/templates/template-components/media-list/README.md +100 -0
  202. package/skills/apexlang/templates/template-components/media-list/media-list._common.md +174 -0
  203. package/skills/apexlang/templates/template-components/media-list/media-list._index.md +50 -0
  204. package/skills/apexlang/templates/template-components/{media-list._template_options.md → media-list/media-list._template_options.md} +8 -2
  205. package/skills/apexlang/templates/template-components/media-list/media-list.partial.md +50 -0
  206. package/skills/apexlang/templates/template-components/media-list/media-list.report-avatar-badge.md +76 -0
  207. package/skills/apexlang/templates/template-components/media-list/media-list.report-base.md +71 -0
  208. package/skills/apexlang/templates/template-components/media-list/media-list.report-grouped.md +40 -0
  209. package/skills/apexlang/templates/template-components/media-list/media-list.report-layouts.md +50 -0
  210. package/skills/apexlang/templates/template-components/media-list/media-list.report-link.md +53 -0
  211. package/skills/apexlang/templates/template-components/metric-card/README.md +19 -4
  212. package/skills/apexlang/templates/template-components/metric-card/metric-card._common.md +122 -29
  213. package/skills/apexlang/templates/template-components/metric-card/metric-card._index.md +6 -0
  214. package/skills/apexlang/templates/template-components/metric-card/metric-card._template_options.md +47 -2
  215. package/skills/apexlang/templates/template-components/metric-card/metric-card.partial-minimal.md +51 -0
  216. package/skills/apexlang/templates/template-components/metric-card/metric-card.permutations.md +56 -0
  217. package/skills/apexlang/templates/template-components/metric-card/metric-card.report-avatar-badge.md +98 -0
  218. package/skills/apexlang/templates/template-components/metric-card/metric-card.report-grouping-selection.md +131 -0
  219. package/skills/apexlang/templates/template-components/metric-card/metric-card.report-link.md +66 -0
  220. package/skills/apexlang/templates/template-components/metric-card/metric-card.report-minimal.md +97 -0
  221. package/skills/apexlang/templates/template-components/template-components.registry.json +90 -1
  222. package/skills/apexlang/templates/template-components/timeline/README.md +19 -0
  223. package/skills/apexlang/templates/template-components/timeline/timeline._common.md +43 -0
  224. package/skills/apexlang/templates/template-components/timeline/timeline._index.md +24 -0
  225. package/skills/apexlang/templates/template-components/{timeline._template_options.md → timeline/timeline._template_options.md} +2 -1
  226. package/skills/apexlang/templates/template-components/timeline/timeline.permutations.md +399 -0
  227. package/skills/apexlang/templates/template-components/timeline/timeline.report-sample-data.md +168 -0
  228. package/skills/apexlang/templates/workspace-components/credentials/credentials-for-open-ai.example.md +1 -1
  229. package/skills/apexlang/templates/workspace-components/generative-ai-services/open-ai.example.md +8 -6
  230. package/skills/apexlang/tools/apexctl.mjs +167 -4
  231. package/skills/apexlang/tools/compiler-truth-audit.mjs +95 -63
  232. package/skills/apexlang/tools/query-valid-props-context.mjs +30 -0
  233. package/skills/apexlang/tools/query-valid-props-normalize.mjs +1 -0
  234. package/skills/apexlang/tools/query-valid-props-runtime.mjs +13 -8
  235. package/skills/apexlang/tools/query-valid-props-semantics.mjs +391 -0
  236. package/skills/apexlang/tools/query-valid-props-template-components.mjs +15 -1
  237. package/skills/apexlang/tools/query-valid-props.mjs +198 -216
  238. /package/skills/apexlang/templates/template-components/{badge._template_options.md → badge/badge._template_options.md} +0 -0
  239. /package/skills/apexlang/templates/template-components/{flexbox-container._template_options.md → flexbox-container/flexbox-container._template_options.md} +0 -0
@@ -0,0 +1,399 @@
1
+ ---
2
+ templateId: timeline.permutations
3
+ componentType: region
4
+ version: 1.0
5
+ description: Regression fixture covering supported Timeline settings and conditional attribute branches.
6
+ ---
7
+
8
+ # Purpose
9
+
10
+ This is a syntax and contract fixture, not a page layout to copy verbatim. Each region deliberately selects one valid avatar branch; do not combine `icon`, `image`, and `initials` in a single Timeline region. The initials branch requires a projected varchar2 value containing only the first-name and last-name initials (for example, `YB`), not the full display name.
11
+
12
+ The image and initials branches use `SYS.DUAL` only to project deterministic fixture values. `object_evidence_source: user_asserted` records the previously confirmed target-environment validation of this system object. This fixture evidence does not replace a fresh target-build `apex validate` for release completion.
13
+
14
+ ```apexlang
15
+ region timeline_icon_avatar (
16
+ name: Timeline icon avatar
17
+ type: themeTemplateComponent/timeline
18
+ source {
19
+ location: sampleData
20
+ sampleData: tasks
21
+ }
22
+ layout {
23
+ sequence: 10
24
+ slot: regionBody
25
+ }
26
+ appearance {
27
+ template: @/blank-with-attributes-no-grid
28
+ templateOptions: #DEFAULT#
29
+ }
30
+ accessibility {
31
+ landmarkType: region
32
+ }
33
+ componentAppearance {
34
+ display: report
35
+ }
36
+ settings {
37
+ userName: ASSIGNED_TO_NAME
38
+ date: START_DATE
39
+ title: TASK_NAME
40
+ description: WORK_MODE
41
+ displayAvatar: true
42
+ displayBadge: true
43
+ }
44
+ plugin-avatar {
45
+ type: icon
46
+ icon: fa-user
47
+ description: Assignee
48
+ shape: circular
49
+ }
50
+ plugin-badge {
51
+ label: Status
52
+ value: STATUS
53
+ state: STATUS
54
+ icon: fa-flag
55
+ displayLabel: true
56
+ style: outline
57
+ shape: circular
58
+ }
59
+ advanced {
60
+ htmlDomId: timeline-icon-avatar
61
+ }
62
+ column ASSIGNED_TO_NAME (
63
+ layout {
64
+ sequence: 10
65
+ }
66
+ source {
67
+ databaseColumn: ASSIGNED_TO_NAME
68
+ dataType: varchar2
69
+ }
70
+ )
71
+ column START_DATE (
72
+ layout {
73
+ sequence: 20
74
+ }
75
+ source {
76
+ databaseColumn: START_DATE
77
+ dataType: date
78
+ }
79
+ )
80
+ column TASK_NAME (
81
+ layout {
82
+ sequence: 30
83
+ }
84
+ source {
85
+ databaseColumn: TASK_NAME
86
+ dataType: varchar2
87
+ }
88
+ )
89
+ column WORK_MODE (
90
+ layout {
91
+ sequence: 40
92
+ }
93
+ source {
94
+ databaseColumn: WORK_MODE
95
+ dataType: varchar2
96
+ }
97
+ )
98
+ column STATUS (
99
+ layout {
100
+ sequence: 50
101
+ }
102
+ source {
103
+ databaseColumn: STATUS
104
+ dataType: varchar2
105
+ }
106
+ )
107
+ )
108
+
109
+ region timeline_image_avatar (
110
+ name: Timeline image avatar
111
+ type: themeTemplateComponent/timeline
112
+ source {
113
+ location: localDatabase
114
+ type: sqlQuery
115
+ sqlQuery:
116
+ ```sql
117
+ select 'Ada Lovelace' as assigned_to_name,
118
+ date '2026-08-28' as start_date,
119
+ 'Review Timeline fixture' as task_name,
120
+ 'On Track' as status,
121
+ :APP_FILES || 'icons/app-icon-512.png' as avatar_url
122
+ from sys.dual
123
+ ```
124
+ }
125
+ layout {
126
+ sequence: 20
127
+ slot: regionBody
128
+ }
129
+ appearance {
130
+ template: @/blank-with-attributes-no-grid
131
+ templateOptions: #DEFAULT#
132
+ }
133
+ accessibility {
134
+ landmarkType: region
135
+ }
136
+ componentAppearance {
137
+ display: partial
138
+ }
139
+ settings {
140
+ userName: ASSIGNED_TO_NAME
141
+ date: START_DATE
142
+ title: TASK_NAME
143
+ displayAvatar: true
144
+ displayBadge: true
145
+ }
146
+ plugin-avatar {
147
+ type: image
148
+ image: {
149
+ type: urlColumn
150
+ urlColumn: AVATAR_URL
151
+ }
152
+ shape: rounded
153
+ }
154
+ plugin-badge {
155
+ label: Status
156
+ value: STATUS
157
+ style: subtle
158
+ shape: rounded
159
+ }
160
+ column ASSIGNED_TO_NAME (
161
+ layout {
162
+ sequence: 10
163
+ }
164
+ source {
165
+ databaseColumn: ASSIGNED_TO_NAME
166
+ dataType: varchar2
167
+ }
168
+ )
169
+ column AVATAR_URL (
170
+ layout {
171
+ sequence: 15
172
+ }
173
+ source {
174
+ databaseColumn: AVATAR_URL
175
+ dataType: varchar2
176
+ }
177
+ )
178
+ column START_DATE (
179
+ layout {
180
+ sequence: 20
181
+ }
182
+ source {
183
+ databaseColumn: START_DATE
184
+ dataType: date
185
+ }
186
+ )
187
+ column TASK_NAME (
188
+ layout {
189
+ sequence: 30
190
+ }
191
+ source {
192
+ databaseColumn: TASK_NAME
193
+ dataType: varchar2
194
+ }
195
+ )
196
+ column STATUS (
197
+ layout {
198
+ sequence: 50
199
+ }
200
+ source {
201
+ databaseColumn: STATUS
202
+ dataType: varchar2
203
+ }
204
+ )
205
+ )
206
+
207
+ region timeline_initials_avatar (
208
+ name: Timeline initials avatar
209
+ type: themeTemplateComponent/timeline
210
+ source {
211
+ location: localDatabase
212
+ type: sqlQuery
213
+ sqlQuery:
214
+ ```sql
215
+ select 'Ada Lovelace' as assigned_to_name,
216
+ date '2026-08-28' as start_date,
217
+ 'Review Timeline fixture' as task_name,
218
+ 'On Track' as status,
219
+ 'AL' as assigned_to_initials
220
+ from sys.dual
221
+ ```
222
+ }
223
+ layout {
224
+ sequence: 30
225
+ slot: regionBody
226
+ }
227
+ appearance {
228
+ template: @/blank-with-attributes-no-grid
229
+ templateOptions: #DEFAULT#
230
+ }
231
+ accessibility {
232
+ landmarkType: region
233
+ }
234
+ componentAppearance {
235
+ display: report
236
+ }
237
+ settings {
238
+ userName: ASSIGNED_TO_NAME
239
+ date: START_DATE
240
+ title: TASK_NAME
241
+ displayAvatar: true
242
+ displayBadge: true
243
+ }
244
+ plugin-avatar {
245
+ type: initials
246
+ initials: ASSIGNED_TO_INITIALS
247
+ shape: square
248
+ }
249
+ plugin-badge {
250
+ label: Status
251
+ value: STATUS
252
+ shape: square
253
+ }
254
+ column ASSIGNED_TO_NAME (
255
+ layout {
256
+ sequence: 10
257
+ }
258
+ source {
259
+ databaseColumn: ASSIGNED_TO_NAME
260
+ dataType: varchar2
261
+ }
262
+ )
263
+ column ASSIGNED_TO_INITIALS (
264
+ layout {
265
+ sequence: 15
266
+ }
267
+ source {
268
+ databaseColumn: ASSIGNED_TO_INITIALS
269
+ dataType: varchar2
270
+ }
271
+ )
272
+ column START_DATE (
273
+ layout {
274
+ sequence: 20
275
+ }
276
+ source {
277
+ databaseColumn: START_DATE
278
+ dataType: date
279
+ }
280
+ )
281
+ column TASK_NAME (
282
+ layout {
283
+ sequence: 30
284
+ }
285
+ source {
286
+ databaseColumn: TASK_NAME
287
+ dataType: varchar2
288
+ }
289
+ )
290
+ column STATUS (
291
+ layout {
292
+ sequence: 50
293
+ }
294
+ source {
295
+ databaseColumn: STATUS
296
+ dataType: varchar2
297
+ }
298
+ )
299
+ )
300
+
301
+ region timeline_no_shape_avatar (
302
+ name: Timeline no-shape avatar
303
+ type: themeTemplateComponent/timeline
304
+ source {
305
+ location: sampleData
306
+ sampleData: tasks
307
+ }
308
+ layout {
309
+ sequence: 40
310
+ slot: regionBody
311
+ }
312
+ appearance {
313
+ template: @/blank-with-attributes-no-grid
314
+ templateOptions: #DEFAULT#
315
+ }
316
+ accessibility {
317
+ landmarkType: region
318
+ }
319
+ componentAppearance {
320
+ display: partial
321
+ }
322
+ settings {
323
+ userName: ASSIGNED_TO_NAME
324
+ date: START_DATE
325
+ title: TASK_NAME
326
+ displayAvatar: true
327
+ }
328
+ plugin-avatar {
329
+ type: icon
330
+ icon: fa-user
331
+ description: Assignee
332
+ shape: noShape
333
+ }
334
+ column ASSIGNED_TO_NAME (
335
+ layout {
336
+ sequence: 10
337
+ }
338
+ source {
339
+ databaseColumn: ASSIGNED_TO_NAME
340
+ dataType: varchar2
341
+ }
342
+ )
343
+ column START_DATE (
344
+ layout {
345
+ sequence: 20
346
+ }
347
+ source {
348
+ databaseColumn: START_DATE
349
+ dataType: date
350
+ }
351
+ )
352
+ column TASK_NAME (
353
+ layout {
354
+ sequence: 30
355
+ }
356
+ source {
357
+ databaseColumn: TASK_NAME
358
+ dataType: varchar2
359
+ }
360
+ )
361
+ )
362
+
363
+ region timeline_core_only (
364
+ name: Timeline core only
365
+ type: themeTemplateComponent/timeline
366
+ source {
367
+ location: sampleData
368
+ sampleData: tasks
369
+ }
370
+ layout {
371
+ sequence: 50
372
+ slot: regionBody
373
+ }
374
+ appearance {
375
+ template: @/blank-with-attributes-no-grid
376
+ templateOptions: #DEFAULT#
377
+ }
378
+ accessibility {
379
+ landmarkType: region
380
+ }
381
+ componentAppearance {
382
+ display: partial
383
+ }
384
+ settings {
385
+ userName: ASSIGNED_TO_NAME
386
+ date: START_DATE
387
+ title: TASK_NAME
388
+ }
389
+ )
390
+ ```
391
+
392
+ # Coverage Rules
393
+
394
+ - Root settings: required `userName`, `date`, and `title`; optional `description`, `displayAvatar`, and `displayBadge`.
395
+ - Avatar branches: `icon`, `image`, and `initials`; `shape` values `circular`, `noShape`, `rounded`, and `square`. For `type: image`, project a dedicated varchar2 URL column from `:APP_FILES` or `:APEX_FILES` plus a static relative path and map that column to `plugin-avatar.image.urlColumn`; do not repurpose an email or other non-URL field. For `type: initials`, project a varchar2 initials column containing the first character of the first and last name, then map that column to `plugin-avatar.initials`; never map the full `settings.userName` column directly.
396
+ - Badge values: required `label` and `value` when enabled; optional `state`, `icon`, `displayLabel`, `style: outline | subtle`, and `shape: circular | rounded | square`.
397
+ - Region variants: `componentAppearance.display: report | partial`; optional `advanced.htmlDomId`.
398
+ - `timeline_core_only` proves the valid omission path for optional root settings and both optional plugin blocks.
399
+ - Do not emit root appearance, grouping, pagination `type`/`showTotalCount`, or message properties: the APEXlang compiler rejects them for Timeline.
@@ -0,0 +1,168 @@
1
+ ---
2
+ templateId: timeline.report-sample-data
3
+ componentType: region
4
+ version: 1.0
5
+ description: Compiler-truth-backed Timeline report example using the built-in tasks sample data.
6
+ ---
7
+
8
+ # Purpose
9
+
10
+ Render Universal Theme Timeline sample tasks in report mode. This exact example is data-source independent because it uses the documented `sampleData: tasks` source; do not copy its column names into SQL-backed generation without object and column evidence.
11
+
12
+ # Output Template
13
+
14
+ ```apexlang
15
+ region tasks_1 (
16
+ name: Tasks
17
+ type: themeTemplateComponent/timeline
18
+ source {
19
+ location: sampleData
20
+ sampleData: tasks
21
+ }
22
+ layout {
23
+ sequence: 10
24
+ slot: regionBody
25
+ }
26
+ appearance {
27
+ template: @/blank-with-attributes-no-grid
28
+ templateOptions: #DEFAULT#
29
+ }
30
+ accessibility {
31
+ landmarkType: region
32
+ }
33
+ componentAppearance {
34
+ display: report
35
+ }
36
+ settings {
37
+ userName: ASSIGNED_TO_NAME
38
+ date: START_DATE
39
+ title: TASK_NAME
40
+ description: WORK_MODE
41
+ displayBadge: true
42
+ }
43
+ plugin-badge {
44
+ label: Status
45
+ value: STATUS
46
+ state: STATUS
47
+ }
48
+ pagination {
49
+ entitiesPerPage: 50
50
+ }
51
+
52
+ column ASSIGNED_TO_EMAIL (
53
+ layout {
54
+ sequence: 50
55
+ }
56
+ source {
57
+ databaseColumn: ASSIGNED_TO_EMAIL
58
+ dataType: varchar2
59
+ }
60
+ )
61
+ column ASSIGNED_TO_EMPNO (
62
+ layout {
63
+ sequence: 30
64
+ }
65
+ source {
66
+ databaseColumn: ASSIGNED_TO_EMPNO
67
+ dataType: number
68
+ }
69
+ )
70
+ column ASSIGNED_TO_NAME (
71
+ layout {
72
+ sequence: 40
73
+ }
74
+ source {
75
+ databaseColumn: ASSIGNED_TO_NAME
76
+ dataType: varchar2
77
+ }
78
+ )
79
+ column CALENDAR_COLOR (
80
+ layout {
81
+ sequence: 110
82
+ }
83
+ source {
84
+ databaseColumn: CALENDAR_COLOR
85
+ dataType: varchar2
86
+ }
87
+ )
88
+ column END_DATE (
89
+ layout {
90
+ sequence: 90
91
+ }
92
+ source {
93
+ databaseColumn: END_DATE
94
+ dataType: date
95
+ }
96
+ )
97
+ column HOURS_ALLOCATED (
98
+ layout {
99
+ sequence: 60
100
+ }
101
+ source {
102
+ databaseColumn: HOURS_ALLOCATED
103
+ dataType: number
104
+ }
105
+ )
106
+ column ID (
107
+ layout {
108
+ sequence: 10
109
+ }
110
+ source {
111
+ databaseColumn: ID
112
+ dataType: number
113
+ primaryKey: true
114
+ }
115
+ )
116
+ column START_DATE (
117
+ layout {
118
+ sequence: 80
119
+ }
120
+ source {
121
+ databaseColumn: START_DATE
122
+ dataType: date
123
+ }
124
+ )
125
+ column STATUS (
126
+ layout {
127
+ sequence: 100
128
+ }
129
+ source {
130
+ databaseColumn: STATUS
131
+ dataType: varchar2
132
+ }
133
+ )
134
+ column TASK_NAME (
135
+ layout {
136
+ sequence: 20
137
+ }
138
+ source {
139
+ databaseColumn: TASK_NAME
140
+ dataType: varchar2
141
+ }
142
+ )
143
+ column WORK_MODE (
144
+ layout {
145
+ sequence: 70
146
+ }
147
+ source {
148
+ databaseColumn: WORK_MODE
149
+ dataType: varchar2
150
+ }
151
+ )
152
+ )
153
+ ```
154
+
155
+ # Conditional Rendering Rules
156
+
157
+ - Keep `componentAppearance.display: report` for this example.
158
+ - `settings.userName`, `settings.date`, and `settings.title` are required Timeline mappings.
159
+ - Keep `settings.displayBadge: true` and the `plugin-badge` block together. Omit both when the request does not require badges.
160
+ - Load avatar configuration only after the request enables `settings.displayAvatar` and selects a compiler-supported avatar type.
161
+ - For a SQL or table source, replace the complete source and column set only after each referenced object and mapping has evidence.
162
+
163
+ # Validation Checklist
164
+
165
+ - The region type is exactly `themeTemplateComponent/timeline`.
166
+ - The source is exactly `sampleData: tasks` for this sample; it is not a database-object assertion.
167
+ - Every report projection has an explicit `column (...)` block and exact data type.
168
+ - Do not add an action template; Timeline has link positions but no action templates.
@@ -16,8 +16,8 @@ Markdown-preserved APEXlang example. Use this file for syntax and structure only
16
16
  ```apexlang
17
17
  webCredential credentials-for-open-ai (
18
18
  name: Credentials for open ai
19
+ type: httpHeader
19
20
  authentication {
20
- type: httpHeader
21
21
  credentialName: Authorization
22
22
  }
23
23
  )
@@ -16,17 +16,19 @@ Markdown-preserved APEXlang example. Use this file for syntax and structure only
16
16
  ```apexlang
17
17
  genAIService open-ai (
18
18
  name: Open AI
19
- genAIService {
20
- provider: openai
21
- defaultGenAIService: true
22
- defaultForNewApps: true
23
- modelName: gpt-4.1
24
- }
19
+ provider: openai
25
20
  endpointUrl {
26
21
  url: "https://api.openai.com/v1"
27
22
  }
28
23
  authentication {
29
24
  credentials: @credentials-for-open-ai
30
25
  }
26
+ appBuilder {
27
+ usedByAppBuilder: true
28
+ defaultForNewApps: true
29
+ }
30
+ advanced {
31
+ modelName: gpt-4.1
32
+ }
31
33
  )
32
34
  ```