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
@@ -31,30 +31,32 @@ region {{regionStaticId}} (
31
31
  }
32
32
  card {
33
33
  primaryKeyColumn1: {{card.primaryKeyColumn1}}
34
+ primaryKeyColumn2: {{card.primaryKeyColumn2}}
35
+ cssClasses: {{card.cssClasses}}
34
36
  }
35
37
  title {
36
- column: {{title.column}}
37
- htmlExpression: {{title.htmlExpression}}
38
38
  advancedFormatting: {{title.advancedFormatting}}
39
+ {{title.valueProperty}}: {{title.value}}
39
40
  }
40
41
  subtitle {
41
- column: {{subtitle.column}}
42
- htmlExpression: {{subtitle.htmlExpression}}
43
42
  advancedFormatting: {{subtitle.advancedFormatting}}
43
+ {{subtitle.valueProperty}}: {{subtitle.value}}
44
44
  }
45
45
  body {
46
- column: {{body.column}}
47
- htmlExpression: {{body.htmlExpression}}
48
46
  advancedFormatting: {{body.advancedFormatting}}
47
+ {{body.valueProperty}}: {{body.value}}
49
48
  }
50
49
  secondaryBody {
51
- column: {{secondaryBody.column}}
52
- htmlExpression: {{secondaryBody.htmlExpression}}
53
50
  advancedFormatting: {{secondaryBody.advancedFormatting}}
51
+ {{secondaryBody.valueProperty}}: {{secondaryBody.value}}
54
52
  }
55
53
  media {
54
+ advancedFormatting: false
56
55
  source: {{media.source}}
57
56
  {{media.sourceValueProperty}}: {{media.sourceValue}}
57
+ position: {{media.position}}
58
+ sizing: {{media.sizing}}
59
+ imageDescription: {{media.imageDescription}}
58
60
  }
59
61
  blobAttributes {
60
62
  mimeTypeColumn: {{blobAttributes.mimeTypeColumn}}
@@ -62,8 +64,8 @@ region {{regionStaticId}} (
62
64
  }
63
65
  iconAndBadge {
64
66
  iconSource: {{iconAndBadge.iconSource}}
65
- iconColumn: {{iconAndBadge.iconColumn}}
66
- iconCssClasses: {{iconAndBadge.iconCssClasses}}
67
+ {{iconAndBadge.sourceValueProperty}}: {{iconAndBadge.sourceValue}}
68
+ iconPosition: {{iconAndBadge.iconPosition}}
67
69
  iconDescription: {{iconAndBadge.iconDescription}}
68
70
  badgeColumn: {{iconAndBadge.badgeColumn}}
69
71
  badgeLabel: {{iconAndBadge.badgeLabel}}
@@ -74,12 +76,14 @@ region {{regionStaticId}} (
74
76
  noDataFoundIcon: {{messages.noDataFoundIcon}}
75
77
  }
76
78
  componentAppearance {
79
+ layout: {{componentAppearance.layout}}
77
80
  gridColumns: {{componentAppearance.gridColumns}}
81
+ cssClasses: {{componentAppearance.cssClasses}}
78
82
  }
79
83
  )
80
84
  ```
81
85
 
82
- In the template above, `{{media.sourceValueProperty}}` / `{{media.sourceValue}}` is schematic. Emit exactly one concrete source-value property according to this mapping:
86
+ The `valueProperty` placeholders are schematic. For title, subtitle, body, and secondary body, emit exactly one pair: `advancedFormatting: false` plus `column`, or `advancedFormatting: true` plus `htmlExpression`. For actions, append the native action shape from `cards._common.md`; button actions may add `appearance`, `advanced`, and `serverSideCondition`, while `behavior.type: triggerAction` requires a nested `triggerAction` child and omits navigation targets. For media, emit exactly one concrete source-value property according to this mapping:
83
87
 
84
88
  | media.source | Required value property |
85
89
  |--------------|-------------------------|
@@ -93,8 +97,11 @@ Use exactly one of these source-specific shapes when a Cards region needs media:
93
97
 
94
98
  ```apexlang
95
99
  media {
100
+ advancedFormatting: false
96
101
  source: blobColumn
97
102
  blobColumn: <BLOB_COLUMN_ALIAS>
103
+ position: first
104
+ sizing: cover
98
105
  }
99
106
  blobAttributes {
100
107
  mimeTypeColumn: <MIME_TYPE_COLUMN_ALIAS>
@@ -104,21 +111,27 @@ blobAttributes {
104
111
 
105
112
  ```apexlang
106
113
  media {
114
+ advancedFormatting: false
107
115
  source: urlColumn
108
116
  urlColumn: <URL_COLUMN_ALIAS>
117
+ position: first
118
+ sizing: cover
109
119
  }
110
120
  ```
111
121
 
112
122
  ```apexlang
113
123
  media {
124
+ advancedFormatting: false
114
125
  source: imageUrl
115
126
  url: <STATIC_IMAGE_URL_OR_COLUMN_SUBSTITUTION>
127
+ position: first
128
+ sizing: cover
116
129
  }
117
130
  ```
118
131
 
119
132
  ## Non-Default Media Presentation
120
133
 
121
- Default media presentation is represented by omission: do not emit any APEXlang-side `position`, `appearance`, or `sizing` property for default Cards media. Emit these properties only when the user or spec explicitly asks for a non-default media presentation. Never emit `position: first`, `appearance: square`, or `sizing: cover` just to mirror APEX defaults.
134
+ Every direct-source media block emits `advancedFormatting: false`, required `position`, and required `sizing`. Use `position: first` and `sizing: cover` as deterministic defaults; emit optional `appearance` only when requested.
122
135
 
123
136
  When a non-default presentation is required, add only the needed supported properties inside the same `media` block:
124
137
 
@@ -130,13 +143,17 @@ sizing: cover
130
143
 
131
144
  # Conditional Rendering Rules
132
145
 
133
- - If `title.column` is emitted, omit `title.htmlExpression` and omit `title.advancedFormatting`.
146
+ - Every title, subtitle, body, secondary-body, primary-key, icon, media, badge, link, or conditional-style alias used by the region must be projected by `source.sqlQuery` and proven by schema/live/user-asserted object evidence.
147
+ - Omit `card.cssClasses` unless conditional per-row styling is explicitly requested. When used, map a projected alias whose values are restricted to an active-build allowlist of semantic Universal Theme classes.
148
+ - When refreshed SQL binds page items, emit every bind item in `source.pageItemsToSubmit` and target the region static ID with the native Refresh dynamic-action capability.
149
+
150
+ - If `title.column` is emitted, set `title.advancedFormatting: false` and omit `title.htmlExpression`.
134
151
  - If `title.htmlExpression` is emitted, `title.advancedFormatting` must also be emitted with value `true`, and `title.column` must be omitted.
135
- - If `subtitle.column` is emitted, omit `subtitle.htmlExpression` and omit `subtitle.advancedFormatting`.
152
+ - If `subtitle.column` is emitted, set `subtitle.advancedFormatting: false` and omit `subtitle.htmlExpression`.
136
153
  - If `subtitle.htmlExpression` is emitted, `subtitle.advancedFormatting` must also be emitted with value `true`, and `subtitle.column` must be omitted.
137
- - If `body.column` is emitted, omit `body.htmlExpression` and omit `body.advancedFormatting`.
154
+ - If `body.column` is emitted, set `body.advancedFormatting: false` and omit `body.htmlExpression`.
138
155
  - If `body.htmlExpression` is emitted, `body.advancedFormatting` must also be emitted with value `true`, and `body.column` must be omitted.
139
- - If `secondaryBody.column` is emitted, omit `secondaryBody.htmlExpression` and omit `secondaryBody.advancedFormatting`.
156
+ - If `secondaryBody.column` is emitted, set `secondaryBody.advancedFormatting: false` and omit `secondaryBody.htmlExpression`.
140
157
  - If `secondaryBody.htmlExpression` is emitted, `secondaryBody.advancedFormatting` must also be emitted with value `true`, and `secondaryBody.column` must be omitted.
141
158
  - If the Cards region displays a BLOB image, project the raw BLOB column in SQL for display only, define `card.primaryKeyColumn1`, and emit `media { source: blobColumn blobColumn: <BLOB_COLUMN_ALIAS> }`.
142
159
  - Do not use the raw BLOB alias as a comparison key; sorting, grouping, distincting, joining, analytic keys, and filter comparisons must follow `SQL_PLSQL_LOB_COMPARISON_KEY_FORBIDDEN_001` in `20-data/apex.sql.md`.
@@ -145,12 +162,11 @@ sizing: cover
145
162
  - If the Cards region displays images from a URL column, project that URL alias in SQL and emit `media { source: urlColumn urlColumn: <URL_COLUMN_ALIAS> }`.
146
163
  - If the Cards region displays a static image URL or column substitution URL, emit `media { source: imageUrl url: <STATIC_IMAGE_URL_OR_COLUMN_SUBSTITUTION> }`; substitution values use APEX syntax such as `&IMAGE_URL_COLUMN.`.
147
164
  - In any Cards `media` block, emit at most one source-specific value property: `blobColumn` with `source: blobColumn`, `urlColumn` with `source: urlColumn`, or `url` with `source: imageUrl`.
148
- - Default media presentation emits no APEXlang-side `position`, `appearance`, or `sizing` property.
149
- - Emit `position`, `appearance`, and `sizing` only for explicit non-default media presentation requirements. Accepted values are `position: first | background`, `appearance: square | widescreen`, and `sizing: cover`.
150
- - Never emit `position: first`, `appearance: square`, or `sizing: cover` just to mirror APEX defaults.
165
+ - Direct-source media always emits `advancedFormatting: false`, `position: first | body | background`, and `sizing: fit | cover`; default to `first` and `cover`. `appearance: square | widescreen` remains optional.
151
166
  - Do not emit additional `media` or `blobAttributes` properties unless compiler-backed truth proves them.
152
167
  - Do not add report-style child `column (...)` blocks for Cards BLOB display.
153
168
  - Inside cards `title.htmlExpression`, `subtitle.htmlExpression`, `body.htmlExpression`, and `secondaryBody.htmlExpression`, use `&COLUMN.` substitution strings, not `#COLUMN#`.
154
- - Omit the `componentAppearance` block by default.
155
- - Emit `componentAppearance.gridColumns` only when the prompt explicitly specifies a fixed card column count.
169
+ - Emit `componentAppearance.layout: grid`, `float`, or `horizontal` from explicit layout intent. Emit `gridColumns` only with `layout: grid` and an explicit fixed card column count; otherwise omit it. Use `componentAppearance.cssClasses` only for a proven Cards-container class.
156
170
  - If emitted, `componentAppearance.gridColumns` must be one of `2`, `3`, `4`, or `5`.
171
+ - If full-card and decision-button actions coexist, document interaction precedence and evidence-backed business conditions rather than inferring exclusivity.
172
+ - Do not add filtering/search regions or filter orchestration in this Cards template. Route that composition to its owning Faceted Search or Smart Filters pattern.
@@ -36,7 +36,6 @@ Standardize reusable series contracts across all chart scenarios.
36
36
  - `series.label.*`
37
37
  - `series.marker.*`
38
38
  - `series.line.*`
39
- - `series.tooltip.*`
40
39
  - `series.advanced.*`
41
40
 
42
41
  ---
@@ -73,9 +72,6 @@ series {{series.staticId}} (
73
72
  label {
74
73
  {{series.label}}
75
74
  }
76
- tooltip {
77
- {{series.tooltip}}
78
- }
79
75
  advanced {
80
76
  {{series.advanced}}
81
77
  }
@@ -90,3 +86,4 @@ series {{series.staticId}} (
90
86
  - Keep alias mappings deterministic and schema-valid.
91
87
  - SQL output aliases referenced by `columnMapping` must match the returned query metadata exactly, including case.
92
88
  - For generated SQL-backed charts, prefer uppercase aliases in both the SQL and `columnMapping` (for example `LABEL`, `VALUE`, `STORE_LABEL`, `TOTAL_VALUE`) to avoid runtime column-resolution mismatches.
89
+ - Use `columnMapping.customTooltip`, `columnMapping.legendTooltip`, or `columnMapping.labelTooltip` for tooltip columns; do not emit a `series.tooltip` group.
@@ -46,9 +46,12 @@ region {{chartRegion.staticId}} (
46
46
  }
47
47
  chart {
48
48
  type: {{chart.type}}
49
+ }
50
+ settings {
49
51
  pieSelectionEffect: {{chart.pieSelectionEffect}}
50
- style: {{chart.style}}
51
- otherThreshold: {{chart.otherThreshold}}
52
+ }
53
+ value {
54
+ pieChartOtherThreshold: {{chart.otherThreshold}}
52
55
  }
53
56
  chartLayout {
54
57
  {{chartLayout}}
@@ -70,3 +73,4 @@ region {{chartRegion.staticId}} (
70
73
  - Render `{{seriesBlocks}}` using `chart._series._common.md`.
71
74
  - Omit pie-only options when using non-pie chart types.
72
75
  - Suppress axis guidance for pie charts.
76
+ - Do not emit `chart.style`; the current grammar has no pie chart style property.
@@ -30,10 +30,10 @@ region {{chartRegion.staticId}} (
30
30
  }
31
31
  chart {
32
32
  type: {{chart.type}}
33
- orientation: {{chart.orientation}}
34
33
  {{chart.options}}
35
34
  }
36
35
  gauge {
36
+ orientation: {{chart.orientation}}
37
37
  {{gauge}}
38
38
  }
39
39
 
@@ -31,6 +31,8 @@ region {{chartRegion.staticId}} (
31
31
  }
32
32
  chart {
33
33
  type: {{chart.type}}
34
+ }
35
+ settings {
34
36
  initialZooming: {{chart.initialZooming}}
35
37
  {{chart.options}}
36
38
  }
@@ -13,7 +13,7 @@ description: Adds link targets to chart data points using SQL-generated URLs.
13
13
  # Usage
14
14
 
15
15
  1. Add a SQL column that returns the desired URL (e.g., `apex_page.get_url`).
16
- 2. Map the column through `columnMapping.link`.
16
+ 2. Enable the series `link` block using `type: redirectUrlReturnedByFirstCol`.
17
17
  3. Ensure navigation targets respect security (checksums, authorization).
18
18
 
19
19
  # Example Snippet
@@ -26,11 +26,11 @@ series FEATURE_CHART_LINKS (
26
26
  type: sqlQuery
27
27
  sqlQuery:
28
28
  ```sql
29
- select product_name,
30
- sum(quantity) total_quantity,
31
- apex_page.get_url(p_page => 10,
29
+ select apex_page.get_url(p_page => 10,
32
30
  p_items => 'P10_PRODUCT',
33
- p_values => product_name) as detail_link
31
+ p_values => product_name) as detail_link,
32
+ product_name,
33
+ sum(quantity) total_quantity,
34
34
  from eba_demo_chart_orders
35
35
  group by product_name
36
36
  ```
@@ -39,7 +39,10 @@ series FEATURE_CHART_LINKS (
39
39
  columnMapping {
40
40
  label: PRODUCT_NAME
41
41
  value: TOTAL_QUANTITY
42
- link: DETAIL_LINK
42
+ }
43
+
44
+ link {
45
+ type: redirectUrlReturnedByFirstCol
43
46
  }
44
47
  )
45
48
  ```
@@ -50,4 +53,3 @@ series FEATURE_CHART_LINKS (
50
53
  - Combine with region actions (refresh, modal launch) to keep navigation consistent with UX guidelines.
51
54
 
52
55
  # References
53
-
@@ -30,11 +30,6 @@ Document the native faceted-search region shell and its filter child metadata bo
30
30
  | source.filteredRegion | yes | ref | Must reference results region id. |
31
31
  | layout.slot | optional | string | Default to `leftColumn` for the standard pattern. |
32
32
  | appearance.template | optional | string | Default to `@/standard`. |
33
- | compactNosThreshold setting | yes | number | Standard default is `10000`. |
34
- | showCurrentFacets setting | yes | boolean/string | Standard default is `true`; use `selector` only for explicit selector-mode requests. |
35
- | showTotalRowCount setting | yes | boolean | Standard default is `true`. |
36
- | displayChartForTopNValues setting | optional | positive integer | Opt-in only for explicit chart/top-N requests; common value is `10`. |
37
- | currentFacetsSelector setting | conditional | selector | Required only when `showCurrentFacets: selector` is emitted. |
38
33
  | facets | optional | array | Facet definitions and LOV/source metadata. |
39
34
  | searchFacet.enabled | optional | boolean | Enables free-text facet search. |
40
35
 
@@ -143,21 +138,13 @@ region {{regionStaticId}} (
143
138
  template: {{appearance.template}}
144
139
  templateOptions: #DEFAULT#
145
140
  }
146
- settings {
147
- compactNosThreshold: 10000
148
- showCurrentFacets: true
149
- showTotalRowCount: true
150
- }
151
141
  {{facets}}
152
142
  )
153
143
  ```
154
144
 
155
145
  # Conditional Rendering Rules
156
146
 
157
- - Emit the standard three-property `settings` block by default: `compactNosThreshold: 10000`, `showCurrentFacets: true`, and `showTotalRowCount: true`.
158
- - Keep current-facets selector configuration in `settings`, but only for explicit selector-mode requests.
159
- - When selector mode is requested, emit both `showCurrentFacets: selector` and a concrete `currentFacetsSelector` value. Do not invent an external target unless the generated page also creates a clearly named target.
160
- - Emit `displayChartForTopNValues` only for explicit chart/top-N requests; use a positive integer such as `10`.
147
+ - Do not emit faceted-search `settings` properties unless the grammar exposes them; the current region grammar does not allow the prior `compactNosThreshold`, `showCurrentFacets`, or `showTotalRowCount` properties.
161
148
  - Do not merge facet child definitions into the region shell description.
162
149
  - The standard page-level composition for this region family is breadcrumb in `breadcrumbBar`, results in `body`, and faceted search in `leftColumn`.
163
150
  - When the request calls for Product, Store, Status, or other discrete value filters, start from `selectList`, `checkboxGroup`, or `radioGroup` plus `lov { type: distinctValues }` instead of internal `NATIVE_*` token guessing.
@@ -38,7 +38,6 @@ Standardize reusable form item blocks so scenario templates can render item defi
38
38
  - `item.label.*`
39
39
  - `item.layout.*`
40
40
  - `item.appearance.*`
41
- - `item.settings.*`
42
41
  - `item.validation.*`
43
42
  - `item.lov.*`
44
43
  - `item.security.*`
@@ -65,9 +64,6 @@ pageItem {{item.staticId}} (
65
64
  templateOptions: {{item.appearance.templateOptions}}
66
65
  width: {{item.appearance.width}}
67
66
  }
68
- settings {
69
- sendOnPageSubmit: {{item.settings.sendOnPageSubmit}}
70
- }
71
67
  validation {
72
68
  valueRequired: {{item.validation.valueRequired}}
73
69
  }
@@ -93,7 +89,7 @@ pageItem {{item.staticId}} (
93
89
 
94
90
  - Omit optional blocks when values are not provided.
95
91
  - Do not emit `appearance.width` for item types whose schema forbids it; `displayOnly` supports only `appearance.template` and `appearance.templateOptions`.
96
- - For `displayOnly`, always emit `settings { sendOnPageSubmit: false }` by default.
92
+ - Do not emit page-item `settings` blocks; the current grammar does not expose a pageItem settings group.
97
93
  - Keep each item mapped to exactly one form region via `item.region`.
98
94
  - For items rendered inside the main form region body, emit `layout.slot: regionBody` instead of `BODY`.
99
95
  - Every form region must have at least one source-mapped primary-key item; emit `primaryKey: true` on each PK item.
@@ -42,7 +42,6 @@ Standardize `column` variable contracts, output shape, and guardrails for all in
42
42
  | column.link.linkAttributes | optional | string | HTML attributes for the rendered link. |
43
43
  | column.comments | required by default | string | Descriptive metadata string for `comments { comments: ... }` on business-significant, derived, status, and action columns; include the required attributes `Display Label`, `Display in Report`, `Display in Form`, `Format Mask`, `Value Required`, `Read Only`, `Primary Display Column`, and `Authorization Scheme`, with optional leading `Summary`. |
44
44
  | column.genAI.columnContext | optional | string | NL2IR column context from column annotation `column_context`, else `ai_context`, else `description`, else column comment. |
45
- | column.advanced.columnAlias | optional | string | APEX alias for REST/NL2IR scenarios. |
46
45
 
47
46
  ---
48
47
 
@@ -71,7 +70,7 @@ column {{column.name}} (
71
70
  }
72
71
  lov {
73
72
  type: {{column.lov.type}}
74
- listOfValues: @{{column.lov.sharedComponent}}
73
+ lov: @{{column.lov.sharedComponent}}
75
74
  }
76
75
  security {
77
76
  authorizationScheme: @{{column.security.authorizationScheme}}
@@ -93,9 +92,6 @@ column {{column.name}} (
93
92
  genAI {
94
93
  columnContext: {{column.genAI.columnContext}}
95
94
  }
96
- advanced {
97
- columnAlias: {{column.advanced.columnAlias}}
98
- }
99
95
  )
100
96
  ```
101
97
 
@@ -115,7 +111,7 @@ column {{column.name}} (
115
111
  - Omit `link` unless column-level navigation is explicitly requested and target page/item mappings are known.
116
112
  - Omit `comments` only for hidden technical columns or when a documented exemption applies.
117
113
  - Omit `genAI` unless NL2IR context is required.
118
- - Omit `advanced` unless `column.advanced.colAlias` is provided.
114
+ - Do not emit `advanced.columnAlias`; the current grammar does not allow that property for Interactive Report columns.
119
115
 
120
116
  ---
121
117
 
@@ -130,13 +130,6 @@ dynamicAction {{dynamicAction.staticId}} (
130
130
 
131
131
  action {{dynamicAction.action.staticId}} (
132
132
  action: {{dynamicAction.action.type}}
133
- settings {
134
- title: {{dynamicAction.action.title}}
135
- message: {{dynamicAction.action.message}}
136
- style: {{dynamicAction.action.style}}
137
- icon: {{dynamicAction.action.icon}}
138
- okLabel: {{dynamicAction.action.okLabel}}
139
- }
140
133
  execution {
141
134
  sequence: {{dynamicAction.action.sequence}}
142
135
  event: @{{dynamicAction.staticId}}
@@ -152,3 +145,4 @@ dynamicAction {{dynamicAction.staticId}} (
152
145
 
153
146
  - Replace theme template references with valid aliases.
154
147
  - Remove button and dynamic action blocks when no custom action is required.
148
+ - Do not emit a dynamic-action `action.settings` block; action-specific dialog text must wait for a grammar-backed property path.
@@ -7,7 +7,7 @@ Catalog of canonical list region templates for the `list` region family, includi
7
7
  - Load `list._index.md` first as the routing entrypoint.
8
8
  - Load `list._common.md` to align variable contracts, guardrails, and required inputs.
9
9
  - Choose a qualifier file matching the intended list template appearance (`cards` or `mediaList`).
10
- - For `mediaList`, align report-level attribute names and values with `../../template-components/media-list._template_options.md`, plus `../../template-components/avatar._template_options.md` and `../../template-components/badge._template_options.md` for shared substructures.
10
+ - For `mediaList`, align report-level attribute names and values with `../../template-components/media-list/media-list._template_options.md`, plus `../../template-components/avatar/avatar._template_options.md` and `../../template-components/badge/badge._template_options.md` for shared substructures.
11
11
  - Preserve canonical path references and markdown-first conventions when updating workflow or registry links.
12
12
 
13
13
  ## Template Catalog
@@ -14,7 +14,7 @@ Document the native list region shell and qualifier-dependent list-template appe
14
14
  1. Use the dedicated `region-list` template.
15
15
  2. Treat the qualifier as mandatory design intent: `cards` or `mediaList`.
16
16
  3. Keep the list shared-component reference in the source block.
17
- 4. When the qualifier is `mediaList`, align the report-level appearance values with `../../template-components/media-list._template_options.md`, plus the shared `../../template-components/avatar._template_options.md` and `../../template-components/badge._template_options.md` owner files.
17
+ 4. When the qualifier is `mediaList`, align the report-level appearance values with `../../template-components/media-list/media-list._template_options.md`, plus the shared `../../template-components/avatar/avatar._template_options.md` and `../../template-components/badge/badge._template_options.md` owner files.
18
18
 
19
19
  # Variable Contract
20
20
 
@@ -20,9 +20,9 @@ Document the `mapBackground` shared component family: raster XYZ tile layers, ve
20
20
  | `type` | yes | enum | `raster`, `vector`, or OGC WMS. |
21
21
  | `url` | yes | string | Background URL. |
22
22
  | `attribution` | conditional | text | Used for raster and OGC WMS backgrounds. |
23
- | `apiKeyType` | optional | enum | none, static value, or web credential. |
24
- | `apiKey` | conditional | string | Static API-key value. |
25
- | `apiKeyCredential` | conditional | credential ref | URL Query String Web Credential. |
23
+ | `apiKey.type` | optional | enum | `staticValue` or `webCredential`. |
24
+ | `apiKey.staticValue` | conditional | string | Static API-key value. |
25
+ | `apiKey.webCredential` | conditional | credential ref | URL Query String Web Credential. |
26
26
  | `httpHeaders` | optional | text | Key-value pairs, one per line. |
27
27
  | `minZoomLevel` / `maxZoomLevel` | optional | number | Background zoom limits. |
28
28
  | subscription fields | optional | subscription | Shared-component subscription metadata. |
@@ -34,16 +34,18 @@ Document the `mapBackground` shared component family: raster XYZ tile layers, ve
34
34
  ```apexlang
35
35
  mapBackground {{staticId}} (
36
36
  name: {{name}}
37
- staticId: {{staticId}}
38
37
  type: {{type}}
39
38
  url: {{url}}
40
39
  attribution: {{attribution}}
41
- apiKeyType: {{apiKeyType}}
42
- apiKey: {{apiKey}}
43
- apiKeyCredential: {{apiKeyCredential}}
40
+ apiKey: {{apiKey.type}}
41
+ staticValue: {{apiKey.staticValue}}
42
+ webCredential: @{{apiKey.webCredential}}
44
43
  httpHeaders: {{httpHeaders}}
45
- minZoomLevel: {{minZoomLevel}}
46
- maxZoomLevel: {{maxZoomLevel}}
44
+ advanced {
45
+ staticId: {{staticId}}
46
+ minZoomLevel: {{minZoomLevel}}
47
+ maxZoomLevel: {{maxZoomLevel}}
48
+ }
47
49
  )
48
50
  ```
49
51
 
@@ -64,7 +66,7 @@ Use shared backgrounds from a map region when `tileLayerType` selects the shared
64
66
  - OGC WMS
65
67
  - Provide the URL with the required WMS parameters except `BBOX`, `WIDTH`, `HEIGHT`, `REQUEST`, `FORMAT`, and `SRS/CRS`; the map region adds those automatically.
66
68
  - `attribution` only applies to raster and OGC WMS backgrounds in the current seed metadata.
67
- - `apiKeyType: webCredential`
69
+ - `apiKey: webCredential`
68
70
  - The credential must be a URL Query String Web Credential.
69
71
  - Background vector-tile usage is still subject to the application-scoped native plugin setting `useVectorTileLayers`.
70
72
 
@@ -24,15 +24,15 @@ Document 3D polygon-layer behavior for Maps: extruded polygon geometry, height-b
24
24
  - `layer.layout.sequence`
25
25
  - `layer.source.tableName`
26
26
  - `layer.columnMapping.geometryColumnDataType`
27
- - `layer.feature3dValueColumn`
28
- - `layer.feature3dValueUnit`
27
+ - `layer.appearance.extrusionValueColumn`
28
+ - `layer.appearance.unit`
29
29
 
30
30
  ## Optional Variables
31
31
 
32
- - `layer.featureFillColor`
33
- - `layer.featureFillOpacity`
34
- - `layer.featureStrokeColor`
35
- - `layer.featureStrokeWidth`
32
+ - `layer.appearance.fillColor`
33
+ - `layer.appearance.fillOpacity`
34
+ - `layer.appearance.strokeColor`
35
+ - `layer.appearance.strokeWidth`
36
36
 
37
37
  ---
38
38
 
@@ -57,10 +57,14 @@ layer {{layer.staticId}} (
57
57
  geometryColumn: {{layer.columnMapping.geometryColumn}}
58
58
  primaryKeyColumn: {{layer.columnMapping.primaryKeyColumn}}
59
59
  }
60
- feature3dValueColumn: {{layer.feature3dValueColumn}}
61
- feature3dValueUnit: {{layer.feature3dValueUnit}}
62
- featureFillColor: {{layer.featureFillColor}}
63
- featureFillOpacity: {{layer.featureFillOpacity}}
60
+ appearance {
61
+ extrusionValueColumn: {{layer.appearance.extrusionValueColumn}}
62
+ unit: {{layer.appearance.unit}}
63
+ fillColor: {{layer.appearance.fillColor}}
64
+ fillOpacity: {{layer.appearance.fillOpacity}}
65
+ strokeColor: {{layer.appearance.strokeColor}}
66
+ strokeWidth: {{layer.appearance.strokeWidth}}
67
+ }
64
68
  )
65
69
  ```
66
70
 
@@ -68,7 +72,7 @@ layer {{layer.staticId}} (
68
72
 
69
73
  # Guardrails
70
74
 
71
- - `feature3dValueColumn` is required for `POLYGON_3D`.
72
- - `feature3dValueUnit` becomes required once the extrusion value column is set.
75
+ - `appearance.extrusionValueColumn` is required for extruded polygons.
76
+ - `appearance.unit` becomes required once the extrusion value column is set.
73
77
  - Use polygon geometry for the layer source; extrusion metadata is not a substitute for valid polygon geometry.
74
78
  - Extruded polygons share the same fill-color-spectrum rules as normal polygon layers.
@@ -27,10 +27,10 @@ Document heat-map behavior for Maps: point-density rendering, heat-map color sch
27
27
 
28
28
  ## Optional Variables
29
29
 
30
- - `layer.featureHeatmapValueColumn`
31
- - `layer.layerHeatmapSpectrumType`
30
+ - `layer.appearance.valueColumn`
31
+ - `layer.appearance.colorScheme`
32
32
  - `layer.layerHeatmap*Name`
33
- - `layer.layerHeatmapCustomSpectrum`
33
+ - `layer.appearance.customColorList`
34
34
 
35
35
  ---
36
36
 
@@ -57,9 +57,12 @@ layer {{layer.staticId}} (
57
57
  latitudeColumn: {{layer.columnMapping.latitudeColumn}}
58
58
  primaryKeyColumn: {{layer.columnMapping.primaryKeyColumn}}
59
59
  }
60
- featureHeatmapValueColumn: {{layer.featureHeatmapValueColumn}}
61
- layerHeatmapSpectrumType: {{layer.layerHeatmapSpectrumType}}
62
- layerHeatmapCustomSpectrum: {{layer.layerHeatmapCustomSpectrum}}
60
+ appearance {
61
+ valueColumn: {{layer.appearance.valueColumn}}
62
+ colorScheme: {{layer.appearance.colorScheme}}
63
+ schemeName: {{layer.appearance.schemeName}}
64
+ customColorList: {{layer.appearance.customColorList}}
65
+ }
63
66
  )
64
67
  ```
65
68
 
@@ -69,5 +72,5 @@ layer {{layer.staticId}} (
69
72
 
70
73
  - Heat maps are point-only in practice. If the source uses `sdoGeometry` or `geojson`, it must still return point objects.
71
74
  - Heat-map layers do not expose the normal tooltip, link-target, or info-window metadata paths.
72
- - `featureHeatmapValueColumn` is optional. Without it, the widget derives color intensity from point density alone.
75
+ - `appearance.valueColumn` is optional. Without it, the widget derives color intensity from point density alone.
73
76
  - Use high-contrast color ramps and avoid problematic red-green-only schemes.
@@ -27,10 +27,10 @@ Document line-layer behavior for Maps: line geometry mapping, stroke styling, co
27
27
 
28
28
  ## Optional Variables
29
29
 
30
- - `layer.featureStrokeColor`
31
- - `layer.featureStrokeWidth`
32
- - `layer.featureStrokeStyle`
33
- - `layer.featureFillColorValueColumn`
30
+ - `layer.appearance.strokeColor`
31
+ - `layer.appearance.strokeWidth`
32
+ - `layer.appearance.strokeStyle`
33
+ - `layer.appearance.colorValueColumn`
34
34
 
35
35
  ---
36
36
 
@@ -55,10 +55,12 @@ layer {{layer.staticId}} (
55
55
  geometryColumn: {{layer.columnMapping.geometryColumn}}
56
56
  primaryKeyColumn: {{layer.columnMapping.primaryKeyColumn}}
57
57
  }
58
- featureStrokeColor: {{layer.featureStrokeColor}}
59
- featureStrokeWidth: {{layer.featureStrokeWidth}}
60
- featureStrokeStyle: {{layer.featureStrokeStyle}}
61
- featureFillColorValueColumn: {{layer.featureFillColorValueColumn}}
58
+ appearance {
59
+ strokeColor: {{layer.appearance.strokeColor}}
60
+ strokeWidth: {{layer.appearance.strokeWidth}}
61
+ strokeStyle: {{layer.appearance.strokeStyle}}
62
+ colorValueColumn: {{layer.appearance.colorValueColumn}}
63
+ }
62
64
  )
63
65
  ```
64
66
 
@@ -27,16 +27,16 @@ Document 2D polygon-layer behavior for Maps: polygon geometry, static fill and s
27
27
 
28
28
  ## Optional Variables
29
29
 
30
- - `layer.featureFillColorIsSpectrum`
31
- - `layer.layerColorSpectrumType`
30
+ - `layer.appearance.useColorScheme`
31
+ - `layer.appearance.colorScheme`
32
32
  - `layer.layerColorSpectrum*Name`
33
33
  - `layer.featureFillColorSpectrum`
34
- - `layer.featureFillColorValueColumn`
35
- - `layer.featureFillColor`
36
- - `layer.featureFillOpacity`
37
- - `layer.featureStrokeColor`
38
- - `layer.featureStrokeWidth`
39
- - `layer.featureStrokeStyle`
34
+ - `layer.appearance.colorValueColumn`
35
+ - `layer.appearance.fillColor`
36
+ - `layer.appearance.fillOpacity`
37
+ - `layer.appearance.strokeColor`
38
+ - `layer.appearance.strokeWidth`
39
+ - `layer.appearance.strokeStyle`
40
40
  - `layer.mapFeatureLegendAdvFormatting`
41
41
  - `layer.mapFeatureLegendHtmlExpr`
42
42
 
@@ -63,14 +63,17 @@ layer {{layer.staticId}} (
63
63
  geometryColumn: {{layer.columnMapping.geometryColumn}}
64
64
  primaryKeyColumn: {{layer.columnMapping.primaryKeyColumn}}
65
65
  }
66
- featureFillColorIsSpectrum: {{layer.featureFillColorIsSpectrum}}
67
- layerColorSpectrumType: {{layer.layerColorSpectrumType}}
68
- featureFillColorValueColumn: {{layer.featureFillColorValueColumn}}
69
- featureFillColor: {{layer.featureFillColor}}
70
- featureFillOpacity: {{layer.featureFillOpacity}}
71
- featureStrokeColor: {{layer.featureStrokeColor}}
72
- featureStrokeWidth: {{layer.featureStrokeWidth}}
73
- featureStrokeStyle: {{layer.featureStrokeStyle}}
66
+ appearance {
67
+ useColorScheme: {{layer.appearance.useColorScheme}}
68
+ colorScheme: {{layer.appearance.colorScheme}}
69
+ schemeName: {{layer.appearance.schemeName}}
70
+ colorValueColumn: {{layer.appearance.colorValueColumn}}
71
+ fillColor: {{layer.appearance.fillColor}}
72
+ fillOpacity: {{layer.appearance.fillOpacity}}
73
+ strokeColor: {{layer.appearance.strokeColor}}
74
+ strokeWidth: {{layer.appearance.strokeWidth}}
75
+ strokeStyle: {{layer.appearance.strokeStyle}}
76
+ }
74
77
  )
75
78
  ```
76
79
 
@@ -78,6 +81,6 @@ layer {{layer.staticId}} (
78
81
 
79
82
  # Guardrails
80
83
 
81
- - Spectrum-driven fill on polygons requires a numeric `featureFillColorValueColumn`.
82
- - When spectrum mode is off, the layer falls back to static `featureFillColor`.
84
+ - Spectrum-driven fill on polygons requires a numeric `appearance.colorValueColumn`.
85
+ - When spectrum mode is off, the layer falls back to static `appearance.fillColor`.
83
86
  - Keep contrast between polygon fill, stroke, and the underlying basemap high enough for clear differentiation.