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,425 @@
1
+ ---
2
+ templateId: comments.permutations
3
+ componentType: region
4
+ version: 1.0
5
+ description: Supported Comments settings and nested Avatar permutations using the user-confirmed APEX_TASK_COMMENTS source.
6
+ object_evidence_source: user_asserted
7
+ ---
8
+
9
+ # Supported Permutations
10
+
11
+ Use one branch per generated region. These examples include only compiler-proven selection and action structures; grouping remains unsupported.
12
+
13
+ ```apexlang
14
+ region comments_basic_report (
15
+ name: Basic Comments
16
+ type: themeTemplateComponent/comments
17
+ source {
18
+ location: localDatabase
19
+ type: sqlQuery
20
+ sqlQuery:
21
+ ```sql
22
+ select created_by as user_name,
23
+ text as comment_text,
24
+ created_on as comment_date
25
+ from apex_task_comments
26
+ order by created_on desc
27
+ ```
28
+ }
29
+ layout {
30
+ sequence: 10
31
+ slot: body
32
+ }
33
+ appearance {
34
+ template: @/standard
35
+ templateOptions: #DEFAULT#
36
+ }
37
+ accessibility {
38
+ landmarkType: region
39
+ }
40
+ componentAppearance {
41
+ display: report
42
+ }
43
+ settings {
44
+ userName: USER_NAME
45
+ commentText: COMMENT_TEXT
46
+ date: COMMENT_DATE
47
+ attributes: Posted comment
48
+ commentClass: comment-entry
49
+ displayAvatar: false
50
+ style: basic
51
+ alignment: inbound
52
+ applyThemeColors: true
53
+ }
54
+ performance {
55
+ lazyLoading: false
56
+ }
57
+ pagination {
58
+ type: page
59
+ entitiesPerPage: 15
60
+ showTotalCount: false
61
+ }
62
+ entityTitle {
63
+ singular: Comment
64
+ plural: Comments
65
+ }
66
+ messages {
67
+ whenNoDataFound: No comments found.
68
+ }
69
+ advanced {
70
+ htmlDomId: comments-basic-report
71
+ }
72
+ column USER_NAME (
73
+ layout {
74
+ sequence: 10
75
+ }
76
+ source {
77
+ databaseColumn: USER_NAME
78
+ dataType: varchar2
79
+ }
80
+ )
81
+ column COMMENT_TEXT (
82
+ layout {
83
+ sequence: 20
84
+ }
85
+ source {
86
+ databaseColumn: COMMENT_TEXT
87
+ dataType: varchar2
88
+ }
89
+ )
90
+ column COMMENT_DATE (
91
+ layout {
92
+ sequence: 30
93
+ }
94
+ source {
95
+ databaseColumn: COMMENT_DATE
96
+ dataType: date
97
+ }
98
+ )
99
+ )
100
+
101
+ region comments_chat_icon_avatar (
102
+ name: Chat Comments with Icon Avatar
103
+ type: themeTemplateComponent/comments
104
+ source {
105
+ location: localDatabase
106
+ type: sqlQuery
107
+ sqlQuery:
108
+ ```sql
109
+ select created_by as user_name,
110
+ text as comment_text,
111
+ created_on as comment_date
112
+ from apex_task_comments
113
+ order by created_on desc
114
+ ```
115
+ }
116
+ layout {
117
+ sequence: 20
118
+ slot: body
119
+ }
120
+ appearance {
121
+ template: @/standard
122
+ templateOptions: #DEFAULT#
123
+ }
124
+ accessibility {
125
+ landmarkType: region
126
+ }
127
+ componentAppearance {
128
+ display: report
129
+ }
130
+ settings {
131
+ userName: USER_NAME
132
+ commentText: COMMENT_TEXT
133
+ date: COMMENT_DATE
134
+ displayAvatar: true
135
+ style: chatSpeechBubbles
136
+ alignment: outbound
137
+ applyThemeColors: false
138
+ }
139
+ plugin-avatar {
140
+ type: icon
141
+ icon: fa-user
142
+ description: Comment author
143
+ shape: circular
144
+ }
145
+ column USER_NAME (
146
+ layout {
147
+ sequence: 10
148
+ }
149
+ source {
150
+ databaseColumn: USER_NAME
151
+ dataType: varchar2
152
+ }
153
+ )
154
+ column COMMENT_TEXT (
155
+ layout {
156
+ sequence: 20
157
+ }
158
+ source {
159
+ databaseColumn: COMMENT_TEXT
160
+ dataType: varchar2
161
+ }
162
+ )
163
+ column COMMENT_DATE (
164
+ layout {
165
+ sequence: 30
166
+ }
167
+ source {
168
+ databaseColumn: COMMENT_DATE
169
+ dataType: date
170
+ }
171
+ )
172
+ )
173
+
174
+ region comments_image_avatar (
175
+ name: Comments with Image Avatar
176
+ type: themeTemplateComponent/comments
177
+ source {
178
+ location: localDatabase
179
+ type: sqlQuery
180
+ sqlQuery:
181
+ ```sql
182
+ select created_by as user_name,
183
+ text as comment_text,
184
+ created_on as comment_date,
185
+ :APP_FILES || 'icons/app-icon-512.png' as avatar_url
186
+ from apex_task_comments
187
+ order by created_on desc
188
+ ```
189
+ }
190
+ layout {
191
+ sequence: 30
192
+ slot: body
193
+ }
194
+ appearance {
195
+ template: @/standard
196
+ templateOptions: #DEFAULT#
197
+ }
198
+ accessibility {
199
+ landmarkType: region
200
+ }
201
+ componentAppearance {
202
+ display: report
203
+ }
204
+ settings {
205
+ userName: USER_NAME
206
+ commentText: COMMENT_TEXT
207
+ date: COMMENT_DATE
208
+ displayAvatar: true
209
+ style: basic
210
+ }
211
+ plugin-avatar {
212
+ type: image
213
+ image: {
214
+ type: urlColumn
215
+ urlColumn: AVATAR_URL
216
+ }
217
+ description: Comment author image
218
+ shape: rounded
219
+ }
220
+ column USER_NAME (
221
+ layout {
222
+ sequence: 10
223
+ }
224
+ source {
225
+ databaseColumn: USER_NAME
226
+ dataType: varchar2
227
+ }
228
+ )
229
+ column COMMENT_TEXT (
230
+ layout {
231
+ sequence: 20
232
+ }
233
+ source {
234
+ databaseColumn: COMMENT_TEXT
235
+ dataType: varchar2
236
+ }
237
+ )
238
+ column COMMENT_DATE (
239
+ layout {
240
+ sequence: 30
241
+ }
242
+ source {
243
+ databaseColumn: COMMENT_DATE
244
+ dataType: date
245
+ }
246
+ )
247
+ column AVATAR_URL (
248
+ layout {
249
+ sequence: 40
250
+ }
251
+ source {
252
+ databaseColumn: AVATAR_URL
253
+ dataType: varchar2
254
+ }
255
+ )
256
+ )
257
+
258
+ region comments_initials_avatar (
259
+ name: Comments with Initials Avatar
260
+ type: themeTemplateComponent/comments
261
+ source {
262
+ location: localDatabase
263
+ type: sqlQuery
264
+ sqlQuery:
265
+ ```sql
266
+ select created_by as user_name,
267
+ text as comment_text,
268
+ created_on as comment_date,
269
+ upper(
270
+ substr(trim(created_by), 1, 1) ||
271
+ case
272
+ when instr(trim(created_by), ' ') > 0 then
273
+ substr(trim(created_by), instr(trim(created_by), ' ', -1) + 1, 1)
274
+ end
275
+ ) as avatar_initials
276
+ from apex_task_comments
277
+ order by created_on desc
278
+ ```
279
+ }
280
+ layout {
281
+ sequence: 40
282
+ slot: body
283
+ }
284
+ appearance {
285
+ template: @/standard
286
+ templateOptions: #DEFAULT#
287
+ }
288
+ accessibility {
289
+ landmarkType: region
290
+ }
291
+ componentAppearance {
292
+ display: report
293
+ }
294
+ settings {
295
+ userName: USER_NAME
296
+ commentText: COMMENT_TEXT
297
+ date: COMMENT_DATE
298
+ displayAvatar: true
299
+ style: chatSpeechBubbles
300
+ }
301
+ plugin-avatar {
302
+ type: initials
303
+ initials: AVATAR_INITIALS
304
+ description: Comment author initials
305
+ shape: noShape
306
+ }
307
+ column USER_NAME (
308
+ layout {
309
+ sequence: 10
310
+ }
311
+ source {
312
+ databaseColumn: USER_NAME
313
+ dataType: varchar2
314
+ }
315
+ )
316
+ column COMMENT_TEXT (
317
+ layout {
318
+ sequence: 20
319
+ }
320
+ source {
321
+ databaseColumn: COMMENT_TEXT
322
+ dataType: varchar2
323
+ }
324
+ )
325
+ column COMMENT_DATE (
326
+ layout {
327
+ sequence: 30
328
+ }
329
+ source {
330
+ databaseColumn: COMMENT_DATE
331
+ dataType: date
332
+ }
333
+ )
334
+ column AVATAR_INITIALS (
335
+ layout {
336
+ sequence: 40
337
+ }
338
+ source {
339
+ databaseColumn: AVATAR_INITIALS
340
+ dataType: varchar2
341
+ }
342
+ )
343
+ )
344
+
345
+ region comments_partial_square_avatar (
346
+ name: Partial Comment with Square Avatar
347
+ type: themeTemplateComponent/comments
348
+ source {
349
+ location: localDatabase
350
+ type: sqlQuery
351
+ sqlQuery:
352
+ ```sql
353
+ select created_by as user_name,
354
+ text as comment_text,
355
+ created_on as comment_date
356
+ from apex_task_comments
357
+ order by created_on desc
358
+ fetch first 1 row only
359
+ ```
360
+ }
361
+ layout {
362
+ sequence: 50
363
+ slot: body
364
+ }
365
+ appearance {
366
+ template: @/standard
367
+ templateOptions: #DEFAULT#
368
+ }
369
+ accessibility {
370
+ landmarkType: region
371
+ }
372
+ componentAppearance {
373
+ display: partial
374
+ }
375
+ settings {
376
+ userName: USER_NAME
377
+ commentText: COMMENT_TEXT
378
+ date: COMMENT_DATE
379
+ displayAvatar: true
380
+ }
381
+ plugin-avatar {
382
+ type: icon
383
+ icon: fa-user
384
+ description: Comment author
385
+ shape: square
386
+ cssClasses: avatar-comment-author
387
+ }
388
+ column USER_NAME (
389
+ layout {
390
+ sequence: 10
391
+ }
392
+ source {
393
+ databaseColumn: USER_NAME
394
+ dataType: varchar2
395
+ }
396
+ )
397
+ column COMMENT_TEXT (
398
+ layout {
399
+ sequence: 20
400
+ }
401
+ source {
402
+ databaseColumn: COMMENT_TEXT
403
+ dataType: varchar2
404
+ }
405
+ )
406
+ column COMMENT_DATE (
407
+ layout {
408
+ sequence: 30
409
+ }
410
+ source {
411
+ databaseColumn: COMMENT_DATE
412
+ dataType: date
413
+ }
414
+ )
415
+ )
416
+ ```
417
+
418
+ # Boundaries
419
+
420
+ - `APEX_TASK_COMMENTS(CREATED_BY, TEXT, CREATED_ON)` is user-asserted evidence for these fixtures.
421
+ - The image branch uses an application-managed static-file URL and a declared varchar2 child column.
422
+ - The initials branch derives the first and last author-name initials into a dedicated projected column rather than hardcoding a value or mapping `USER_NAME` directly.
423
+ - Do not combine the icon, image, and initials payloads in one `plugin-avatar` block.
424
+ - Do not add nested Badge or grouping structures from the Universal Theme export. Comments supports the optional nested `plugin-avatar` structure plus compiler-proven `actions`, `avatarLink`, and `userNameLink` actions using a structured `behavior.target`.
425
+ - Keep `settings.attributes` free of executable markup, event handlers, URL schemes, and substitutions. Keep `settings.commentClass` to static CSS tokens or a direct declared `varchar2` Comments column.
@@ -7,7 +7,7 @@ Canonical Content Row template pack for `themeTemplateComponent/contentRow`, usi
7
7
  - Load `content-row._common.md` first for variable contract and generation guardrails.
8
8
  - Use `content-row._index.md` to pick the correct scenario template.
9
9
  - Load `content-row._template_options.md` for Content Row-specific settings, appearance, and grouping values.
10
- - Load `../avatar._template_options.md` and `../badge._template_options.md` for the shared avatar and badge substructures.
10
+ - Load `../avatar/avatar._template_options.md` and `../badge/badge._template_options.md` for the shared avatar and badge substructures.
11
11
  - Avatar-capable Content Row scenarios use `settings.displayAvatar` plus `plugin-avatar` fields for type, initials/description, shape, size, and CSS classes.
12
12
  - Badge-capable Content Row scenarios use `settings.displayBadge` plus `plugin-badge` fields for label, value, state, style, shape, size, icon, position, and width.
13
13
  - SQL-backed template component regions must emit top-level `orderBy {}` and must not embed `ORDER BY` inside `source.sqlQuery`.
@@ -24,7 +24,7 @@ Define the shared variable contract, guardrails, and output skeleton for Content
24
24
  9. Use `plugin-badge.icon` only for badge icon configuration when the prompt explicitly requests an icon.
25
25
  10. Use `plugin-badge.position` only for badge placement configuration when the prompt explicitly requests a start/end placement override.
26
26
  11. Close component blocks declared with parentheses (for example `action ... (` or `column ... (`) using `)` after nested blocks.
27
- 12. Keep plugin attribute names and enumerated values aligned with `content-row._template_options.md`, `../avatar._template_options.md`, and `../badge._template_options.md`.
27
+ 12. Keep plugin attribute names and enumerated values aligned with `content-row._template_options.md`, `../avatar/avatar._template_options.md`, and `../badge/badge._template_options.md`.
28
28
  13. Content Row display settings that map to query columns must use `&COLUMN_NAME.` substitution syntax, for example `title: &ORDER_LABEL.`. Do not emit bare column aliases such as `title: ORDER_LABEL` for `overline`, `title`, `description`, or `miscellaneous`.
29
29
  14. Native row selection uses `rowSelection` in report mode. Use `type: focusOnly` for focus behavior without persisted selection state, `type: singleSelection` with `currentSelectionPageItem` for one selected row, or `type: multipleSelection` with both `currentSelectionPageItem` and `selectAllPageItem` for multi-select. The current-selection item should normally be a same-page hidden item that stores selected row value(s); the select-all item should be a same-page checkbox. `rowSelection.currentSelectionPageItem` is native selection state only and does not satisfy master-detail drill-down or parent-child context setting.
30
30
  15. SQL-backed Content Row regions must use top-level `orderBy {}` for deterministic ordering. Do not put `ORDER BY` inside `source.sqlQuery`.
@@ -18,7 +18,7 @@ Use as the routing index for Content Row templates. Select a scenario based on d
18
18
  - Use avatar, badge, links, primary actions, grouping, and appearance scenario files only when those features are explicitly requested.
19
19
  - Use `content-row.report-grouping-selection.md` when native Content Row focus-only, single-row, or multiple-row selection is requested; it documents `rowSelection.currentSelectionPageItem` and the same-page hidden item that stores native selected row state.
20
20
  - Use `content-row.report-master-detail-full-row-link.md` when a Content Row parent list filters or drives child detail regions. Native `rowSelection.currentSelectionPageItem` alone is not sufficient for parent-child context setting.
21
- - Use `content-row._template_options.md`, `../avatar._template_options.md`, and `../badge._template_options.md` when validating Content Row plugin attribute names or allowed values.
21
+ - Use `content-row._template_options.md`, `../avatar/avatar._template_options.md`, and `../badge/badge._template_options.md` when validating Content Row plugin attribute names or allowed values.
22
22
  - For SQL-backed Content Row scenarios, keep the SQL unordered and emit the region-level `orderBy {}` block from `content-row._common.md`.
23
23
 
24
24
  ## Scenario Routing
@@ -3,7 +3,7 @@
3
3
  These entries come from `create_plugin_attribute` and `create_plugin_attr_value`, not from `wwv_flow_template_options`.
4
4
 
5
5
  Apply these values through `settings`, `plugin-appearance`, and `plugin-grouping`.
6
- Load `../avatar._template_options.md` and `../badge._template_options.md` for the shared avatar and badge substructures used by Content Row.
6
+ Load `../avatar/avatar._template_options.md` and `../badge/badge._template_options.md` for the shared avatar and badge substructures used by Content Row.
7
7
  Emit only exact accepted values from this inventory. Do not concatenate adjacent values into one token and do not substitute labels or implementation details.
8
8
 
9
9
  When a row includes `values=`, pass the left-hand side of each `name=>return_value` pair.
@@ -0,0 +1,9 @@
1
+ # Flexbox Container Templates
2
+
3
+ Option inventory for the Universal Theme Flexbox Container template component.
4
+
5
+ ## Usage
6
+
7
+ - Load `flexbox-container._index.md` before using the inventory.
8
+ - Load `flexbox-container._template_options.md` only when its attributes or enum values are requested.
9
+ - Use the compiler-backed component contract for emitted structure; this directory contains no scenario fixture.
@@ -0,0 +1,13 @@
1
+ ---
2
+ templateId: template-component.flexbox-container.index
3
+ componentType: template-component
4
+ version: 1.0
5
+ imports:
6
+ - flexbox-container._template_options.md
7
+ description: Routing entrypoint for Flexbox Container template-component options.
8
+ ---
9
+
10
+ # Load Order
11
+
12
+ 1. Load `flexbox-container._template_options.md` when validating Flexbox Container options.
13
+ 2. Load the selected component workflow and compiler contract for emitted structure.
@@ -0,0 +1,100 @@
1
+ # Media List Templates
2
+
3
+ ## Purpose
4
+
5
+ Canonical generation pack for the Universal Theme `themeTemplateComponent/mediaList` component in partial and report modes.
6
+
7
+ Natural requests such as `create a Media List template` select this direct component. Generic `create a list template` requests select the shared-list region. Explicit `List-region Media List template` or `Classic Report Media List template` requests retain their named host owner; adding the word `template` alone does not select a different owner. See `media-list._index.md` for scenario selection.
8
+
9
+ ## Supported Surface
10
+
11
+ - Partial mode for one Media List item backed by literals or existing session-state values.
12
+ - Report mode for verified `localDatabase/sqlQuery` sources only. Unsupported REST, JSON, property-graph, function-body, and sample-data requests stop with Missing Inputs until an adapter exists.
13
+ - Required title plus optional description.
14
+ - Optional Avatar using the shared initials, Font APEX icon, or application-managed URL-column image contracts.
15
+ - Optional Badge using a static label, source-backed value, optional semantic state, and optional Font APEX icon.
16
+ - One optional `link` action using a reviewed same-application target.
17
+ - Native `2ColumnGrid`, `3ColumnGrid`, `4ColumnGrid`, `5ColumnGrid`, and `horizontalSpan` layouts, optional `large` sizing, and Universal Theme colors.
18
+ - Deterministic top-level ordering, exact report projection coverage, region/action authorization, and native responsive behavior.
19
+ - Native grouping is not supported by the current curated Media List policy. Enable it only after an authoritative policy refresh exposes a report-group block and exact accepted properties.
20
+
21
+ ## Report-Column Target-Build Gate and Curated Feature Policy
22
+
23
+ Media List uses a composite contract with an explicit authority boundary:
24
+
25
+ - The active compiler/grammar metadata resolves only the report-column declaration, required properties, blocks, and datatypes.
26
+ - The curated Universal Theme component policy governs Media List settings, `plugin-avatar`, `plugin-badge`, actions, and grouping. These capabilities are not inferred from the report-column grammar.
27
+ - Generated `component-contracts/<build>.json` records this boundary in `capability_provenance` so consumers can distinguish `compiler-runtime-metadata` from `curated-component-policy`.
28
+
29
+ Before generating a report:
30
+
31
+ 1. Load the active `component-contracts/<build>.json` produced by runtime preflight/validation.
32
+ 2. Resolve `region.column` with the task-scoped grammar contract under `region.type=themeTemplateComponent/mediaList` and a concrete non-null report-source location such as `region.source.location=localDatabase`.
33
+ 3. Emit exactly the declaration and properties selected by that contract. Named and unnamed column variants are mutually exclusive.
34
+ 4. Emit settings, Avatar/Badge properties, actions, and grouping only when the selected curated policy exposes their exact names and values.
35
+ 5. Treat an optional policy capability that is absent as unsupported. Compiler column resolution alone cannot enable it.
36
+ 6. Stop with Missing Inputs when the report-column contract is unavailable or ambiguous, or when the applicable curated policy cannot be identified.
37
+ 7. Run the grammar/compiler conformance probe for the selected target build. A compiler default is not optionality: emit `source.type: databaseColumn` when the selected column contract marks it required, even when the compiler also records the `DB_COLUMN` default. Any real grammar-versus-requiredness mismatch blocks generation.
38
+
39
+ For nested placement, resolve an existing parent region's exact template and slot from the target catalog. Standard and Content Block parents support `regionBody` and `subRegions`; use `regionBody` by default. Page-level placement remains `body`.
40
+
41
+ Pass the generated contract to local validation with `--component-attributes component-contracts/<build>.json`; do not relabel the repository fallback schema as a target-build contract.
42
+
43
+ The repository baseline was live-validated with named report columns. That result is evidence for that target, not a universal rule:
44
+
45
+ ```apexlang
46
+ column MEDIA_TITLE (
47
+ layout {
48
+ sequence: 20
49
+ }
50
+ source {
51
+ type: databaseColumn
52
+ databaseColumn: MEDIA_TITLE
53
+ dataType: varchar2
54
+ }
55
+ )
56
+ ```
57
+
58
+ For a target that selects this named variant, the declaration identifier and `source.databaseColumn` must match the exact projected alias, and `source.primaryKey: true` is allowed only when exposed by the active contract. If another target selects an unnamed variant, use its required direct properties instead. Never mix variants.
59
+
60
+ ## Usage
61
+
62
+ 1. Load the active target-build report-column contract and the selected curated Media List component policy.
63
+ 2. Load `media-list._common.md`.
64
+ 3. Load `media-list._index.md`.
65
+ 4. Select the narrowest scenario matching the requested mode and feature set.
66
+ 5. Load `media-list._template_options.md` for Media List settings.
67
+ 6. Load `../avatar/avatar._template_options.md` or `../badge/badge._template_options.md` only when that nested feature is enabled.
68
+
69
+ ## Scenario Catalog
70
+
71
+ - `media-list.partial.md`
72
+ - `media-list.report-base.md`
73
+ - `media-list.report-avatar-badge.md`
74
+ - `media-list.report-link.md`
75
+ - `media-list.report-grouped.md` (capability-gated)
76
+ - `media-list.report-layouts.md`
77
+
78
+ ## Design-System and Accessibility Rules
79
+
80
+ - Use native Universal Theme rendering, layouts, shapes, sizes, states, and colors. Do not recreate Media List with Classic Report HTML or custom CSS.
81
+ - Keep the native region heading unless the owning page contract intentionally uses a hidden-heading template option with the correct landmark behavior.
82
+ - Meaningful Avatars require an accessible description; decorative Avatars use the shared `AVATAR_PURPOSE_DECORATIVE` marker and omit the description.
83
+ - Badge color is supplemental. Its value and optional displayed label must communicate meaning without relying on state color alone.
84
+ - Native link actions remain keyboard accessible. Do not add `linkAttributes`, inline handlers, or custom focus behavior.
85
+ - Prefer the default single-column flow in narrow containers. Select multi-column layouts only when the owning page provides sufficient width; reserve `horizontalSpan` for an explicitly wide, non-wrapping presentation.
86
+
87
+ ## Edge-Case Rules
88
+
89
+ - Zero-row sources remain zero rows; do not manufacture placeholder SQL rows. Route an explicit empty-state requirement to a separately supported page/region pattern.
90
+ - Null descriptions are supported by omitting the description mapping when the entire scenario does not need it. Do not create row-dependent DSL structure.
91
+ - Long titles and descriptions rely on Universal Theme wrapping. Do not truncate semantically important content with custom CSS.
92
+ - Omit Avatar, Badge, grouping, layout, size, colors, and actions when they were not requested or the selected curated policy does not expose them.
93
+ - Keep exactly one action. If multiple interactions are required, route to a component family that exposes the required action positions.
94
+ - Stop with Missing Inputs when a source, column, destination, authorization scheme, icon, state mapping, or dynamic accessible description cannot be proven.
95
+
96
+ ## Maintenance
97
+
98
+ - Keep this README, `media-list._index.md`, `media-list._template_options.md`, and `../template-components.registry.json` synchronized.
99
+ - Keep the curated component policy and theme-export option inventory aligned with `query-valid-props.mjs --template-component mediaList`. Keep only report-column structural decisions aligned with the active task-scoped `region.column` grammar contract.
100
+ - Update validator rules and regression coverage whenever the supported Media List surface changes.