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
@@ -21,19 +21,19 @@ Document the region-level background path where `tileLayerType` uses the built-i
21
21
  - `name`
22
22
  - `layout.sequence`
23
23
  - `layout.slot`
24
- - `tileLayerType` (use `custom`)
25
- - `standardTileLayer`
24
+ - `map.background` (use `builtIn`)
25
+ - `map.standard`
26
26
 
27
27
  ## Optional Variables
28
28
 
29
- - `darkModeTileLayer`
29
+ - `map.darkMode`
30
30
  - `map.height`
31
- - `navigationBarType`
32
- - `navigationBarPosition`
33
- - `mapFeatures`
34
- - `showLegend`
35
- - `legendPosition`
36
- - `lazyLoading`
31
+ - `controls.navigationBar`
32
+ - `controls.navigationBarPosition`
33
+ - `controls.options`
34
+ - `legend.show`
35
+ - `legend.position`
36
+ - `performance.lazyLoading`
37
37
 
38
38
  ---
39
39
 
@@ -44,21 +44,27 @@ region {{regionStaticId}} (
44
44
  name: {{name}}
45
45
  type: map
46
46
  map {
47
+ background: builtIn
48
+ standard: {{map.standard}}
49
+ darkMode: {{map.darkMode}}
47
50
  height: {{map.height}}
48
51
  }
49
52
  layout {
50
53
  sequence: {{layout.sequence}}
51
54
  slot: {{layout.slot}}
52
55
  }
53
- tileLayerType: custom
54
- standardTileLayer: {{standardTileLayer}}
55
- darkModeTileLayer: {{darkModeTileLayer}}
56
- navigationBarType: {{navigationBarType}}
57
- navigationBarPosition: {{navigationBarPosition}}
58
- mapFeatures: {{mapFeatures}}
59
- showLegend: {{showLegend}}
60
- legendPosition: {{legendPosition}}
61
- lazyLoading: {{lazyLoading}}
56
+ controls {
57
+ navigationBar: {{controls.navigationBar}}
58
+ navigationBarPosition: {{controls.navigationBarPosition}}
59
+ options: {{controls.options}}
60
+ }
61
+ legend {
62
+ show: {{legend.show}}
63
+ position: {{legend.position}}
64
+ }
65
+ performance {
66
+ lazyLoading: {{performance.lazyLoading}}
67
+ }
62
68
  )
63
69
  ```
64
70
 
@@ -66,6 +72,6 @@ region {{regionStaticId}} (
66
72
 
67
73
  # Guardrails
68
74
 
69
- - `tileLayerType: custom` selects built-in standard and dark-mode background names, not shared `mapBackground` components.
75
+ - `map.background: builtIn` selects built-in standard and dark-mode background names, not shared `mapBackground` components.
70
76
  - The app/plugin attribute `useVectorTileLayers` still separately controls whether supported built-in backgrounds use vector tile layers behind the scenes.
71
77
  - Load `map.backgrounds.md` only when the request uses shared backgrounds instead of built-in background names.
@@ -22,16 +22,16 @@ Document the region-level background path where `tileLayerType` uses shared `map
22
22
  - `name`
23
23
  - `layout.sequence`
24
24
  - `layout.slot`
25
- - `tileLayerType` (use `shared`)
26
- - `standardTileLayer`
25
+ - `map.background` (use `sharedComponent`)
26
+ - `map.standard`
27
27
 
28
28
  ## Optional Variables
29
29
 
30
- - `darkModeTileLayer`
30
+ - `map.darkMode`
31
31
  - `map.height`
32
- - `mapFeatures`
33
- - `showLegend`
34
- - `lazyLoading`
32
+ - `controls.options`
33
+ - `legend.show`
34
+ - `performance.lazyLoading`
35
35
 
36
36
  ---
37
37
 
@@ -42,18 +42,24 @@ region {{regionStaticId}} (
42
42
  name: {{name}}
43
43
  type: map
44
44
  map {
45
+ background: sharedComponent
46
+ standard: @{{map.standard}}
47
+ darkMode: @{{map.darkMode}}
45
48
  height: {{map.height}}
46
49
  }
47
50
  layout {
48
51
  sequence: {{layout.sequence}}
49
52
  slot: {{layout.slot}}
50
53
  }
51
- tileLayerType: shared
52
- standardTileLayer: @{{standardTileLayer}}
53
- darkModeTileLayer: @{{darkModeTileLayer}}
54
- mapFeatures: {{mapFeatures}}
55
- showLegend: {{showLegend}}
56
- lazyLoading: {{lazyLoading}}
54
+ controls {
55
+ options: {{controls.options}}
56
+ }
57
+ legend {
58
+ show: {{legend.show}}
59
+ }
60
+ performance {
61
+ lazyLoading: {{performance.lazyLoading}}
62
+ }
57
63
  )
58
64
  ```
59
65
 
@@ -61,6 +67,6 @@ region {{regionStaticId}} (
61
67
 
62
68
  # Guardrails
63
69
 
64
- - `standardTileLayer` and `darkModeTileLayer` must reference existing `mapBackground` shared components.
70
+ - `map.standard` and `map.darkMode` must reference existing `mapBackground` shared components.
65
71
  - Use `map.backgrounds.md` for API-key, WMS, raster, and vector background-specific guidance.
66
72
  - Shared backgrounds are the correct path when the request needs custom hosted tiles or shared reuse across multiple regions.
@@ -27,12 +27,12 @@ Document SQL-derived bounding-box authoring for map regions.
27
27
 
28
28
  ## Optional Variables
29
29
 
30
- - `boundingBox.sdoGeometryColumn`
31
- - `boundingBox.minLongitudeColumn`
32
- - `boundingBox.minLatitudeColumn`
33
- - `boundingBox.maxLongitudeColumn`
34
- - `boundingBox.maxLatitudeColumn`
35
- - `mapStatusItem`
30
+ - `boundingBox.geometryColumn`
31
+ - `boundingBox.minLongitude`
32
+ - `boundingBox.minLatitude`
33
+ - `boundingBox.maxLongitude`
34
+ - `boundingBox.maxLatitude`
35
+ - `boundingBox.currentBoundsItem`
36
36
 
37
37
  ---
38
38
 
@@ -53,13 +53,13 @@ region {{regionStaticId}} (
53
53
  {{boundingBox.sqlQuery}}
54
54
  ```
55
55
  geometryColumnDataType: {{boundingBox.geometryColumnDataType}}
56
- sdoGeometryColumn: {{boundingBox.sdoGeometryColumn}}
57
- minLongitudeColumn: {{boundingBox.minLongitudeColumn}}
58
- minLatitudeColumn: {{boundingBox.minLatitudeColumn}}
59
- maxLongitudeColumn: {{boundingBox.maxLongitudeColumn}}
60
- maxLatitudeColumn: {{boundingBox.maxLatitudeColumn}}
56
+ geometryColumn: {{boundingBox.geometryColumn}}
57
+ minLongitude: {{boundingBox.minLongitude}}
58
+ minLatitude: {{boundingBox.minLatitude}}
59
+ maxLongitude: {{boundingBox.maxLongitude}}
60
+ maxLatitude: {{boundingBox.maxLatitude}}
61
+ currentBoundsItem: {{boundingBox.currentBoundsItem}}
61
62
  }
62
- mapStatusItem: {{mapStatusItem}}
63
63
  )
64
64
  ```
65
65
 
@@ -67,7 +67,7 @@ region {{regionStaticId}} (
67
67
 
68
68
  # Guardrails
69
69
 
70
- - `boundingBox.geometryColumnDataType: sdoGeometry` requires `boundingBox.sdoGeometryColumn`.
70
+ - `boundingBox.geometryColumnDataType: sdoGeometry` requires `boundingBox.geometryColumn`.
71
71
  - `boundingBox.geometryColumnDataType: longitudeLatitude` requires the min/max longitude and latitude column set.
72
72
  - Use bbox metadata only when `mapFeatures` does not include `infiniteMap`.
73
73
  - Use this scenario as the default viewport strategy for multi-marker longitude/latitude maps. Source the bounds from the same filtered dataset as the visible layer, for example `min(longitude)`, `min(latitude)`, `max(longitude)`, and `max(latitude)`.
@@ -29,7 +29,7 @@ Document static bounding-box authoring for map regions.
29
29
 
30
30
  ## Optional Variables
31
31
 
32
- - `mapStatusItem`
32
+ - `boundingBox.currentBoundsItem`
33
33
  - `map.height`
34
34
 
35
35
  ---
@@ -53,8 +53,8 @@ region {{regionStaticId}} (
53
53
  minLatitude: {{boundingBox.minLatitude}}
54
54
  maxLongitude: {{boundingBox.maxLongitude}}
55
55
  maxLatitude: {{boundingBox.maxLatitude}}
56
+ currentBoundsItem: {{boundingBox.currentBoundsItem}}
56
57
  }
57
- mapStatusItem: {{mapStatusItem}}
58
58
  )
59
59
  ```
60
60
 
@@ -23,13 +23,11 @@ Document browser-location-assisted initial positioning and the associated sessio
23
23
  - `layout.slot`
24
24
  - `controls.options` (must include `browserLocation`)
25
25
  - `initialPositionAndZoom.type`
26
- - `initialPositionAndZoom.fromBrowser`
26
+ - `initialPositionAndZoom.getPositionFromBrowser`
27
27
 
28
28
  ## Optional Variables
29
29
 
30
- - `initialPositionAndZoom.zoomType`
31
30
  - `map.height`
32
- - `mapStatusItem`
33
31
 
34
32
  ---
35
33
 
@@ -51,10 +49,8 @@ region {{regionStaticId}} (
51
49
  }
52
50
  initialPositionAndZoom {
53
51
  type: {{initialPositionAndZoom.type}}
54
- zoomType: {{initialPositionAndZoom.zoomType}}
55
- fromBrowser: {{initialPositionAndZoom.fromBrowser}}
52
+ getPositionFromBrowser: {{initialPositionAndZoom.getPositionFromBrowser}}
56
53
  }
57
- mapStatusItem: {{mapStatusItem}}
58
54
  )
59
55
  ```
60
56
 
@@ -62,5 +58,5 @@ region {{regionStaticId}} (
62
58
 
63
59
  # Guardrails
64
60
 
65
- - `initialPositionAndZoom.fromBrowser` is available only when `controls.options` includes browser location support.
61
+ - `initialPositionAndZoom.getPositionFromBrowser` is available only when `controls.options` includes browser location support.
66
62
  - Browser-derived initial positioning applies only to the first page load in the APEX session; the widget then remembers position across page requests in the same session.
@@ -26,8 +26,8 @@ Document SQL-driven initial positioning for map regions using the attached `init
26
26
 
27
27
  ## Optional Variables
28
28
 
29
- - `initialPositionAndZoom.initialGeometrySdogeomColumn`
30
- - `initialPositionAndZoom.initialGeometryGeojsonColumn`
29
+ - `initialPositionAndZoom.geometryColumn`
30
+ - `initialPositionAndZoom.geojsonColumn`
31
31
  - `initialPositionAndZoom.initialLongitudeColumn`
32
32
  - `initialPositionAndZoom.initialLatitudeColumn`
33
33
  - `initialPositionAndZoom.initialZoomlevelColumn`
@@ -53,10 +53,10 @@ region {{regionStaticId}} (
53
53
  sqlQuery:
54
54
  ```sql
55
55
  {{initialPositionAndZoom.sqlQuery}}
56
- ```
56
+ ```
57
57
  geometryColumnDataType: {{initialPositionAndZoom.geometryColumnDataType}}
58
- initialGeometrySdogeomColumn: {{initialPositionAndZoom.initialGeometrySdogeomColumn}}
59
- initialGeometryGeojsonColumn: {{initialPositionAndZoom.initialGeometryGeojsonColumn}}
58
+ geometryColumn: {{initialPositionAndZoom.geometryColumn}}
59
+ geojsonColumn: {{initialPositionAndZoom.geojsonColumn}}
60
60
  initialLongitudeColumn: {{initialPositionAndZoom.initialLongitudeColumn}}
61
61
  initialLatitudeColumn: {{initialPositionAndZoom.initialLatitudeColumn}}
62
62
  initialZoomlevelColumn: {{initialPositionAndZoom.initialZoomlevelColumn}}
@@ -68,8 +68,8 @@ region {{regionStaticId}} (
68
68
 
69
69
  # Guardrails
70
70
 
71
- - `geometryColumnDataType: sdoGeometry` requires `initialGeometrySdogeomColumn`.
72
- - `geometryColumnDataType: geojson` requires `initialGeometryGeojsonColumn`.
71
+ - `geometryColumnDataType: sdoGeometry` requires `geometryColumn`.
72
+ - `geometryColumnDataType: geojson` requires `geojsonColumn`.
73
73
  - `geometryColumnDataType: longitudeLatitude` requires `initialLongitudeColumn` and `initialLatitudeColumn`.
74
74
  - For `type: sqlQuery`, the SQL select list must expose aliases that exactly match each configured `initial*Column` property.
75
75
  - `initialZoomlevelColumn` is optional in SQL mode, but when present the SQL must return that alias explicitly.
@@ -1,16 +1,19 @@
1
1
  # Region Display Selector Templates
2
2
 
3
3
  ## Purpose
4
- Canonical guidance for the `region-display-selector` region family, including shared contract loading and supported scenario variants.
4
+ Canonical guidance for the native `regionDisplaySelector` region family. An RDS has no data source; it controls an explicit set of sibling page regions that opt in through `advanced.regionDisplaySelector: true`.
5
5
 
6
6
  ## Usage
7
7
  - Load `region-display-selector._common.md` first to align variable contracts, guardrails, and required inputs.
8
- - Choose a scenario variant matching the requested interaction pattern, data source type, and page composition context.
8
+ - Load `region-display-selector.standard.md` for the canonical View Single Region example.
9
+ - Load `region-display-selector.permutations.md` when selecting or testing mode, icon, Show All, or persistence combinations.
10
+ - Follow `references/domains/page-components/regions/region-display-selector/workflow-region-display-selector.md` for controller/target selection and validation rules.
9
11
  - Preserve canonical path references and markdown-first conventions when updating workflow or registry links.
10
12
 
11
13
  ## Template Catalog
12
14
  - `region-display-selector._common.md`
13
15
  - `region-display-selector.standard.md`
16
+ - `region-display-selector.permutations.md`
14
17
 
15
18
  ## Maintenance
16
19
  - Keep this README synchronized with actual files in the directory.
@@ -5,16 +5,69 @@ version: 1.0
5
5
  description: Shared contract for region display selector patterns.
6
6
  ---
7
7
 
8
+ # Attribute Contract
9
+
10
+ The upstream APEX catalog is reference metadata for this family. Its five settings
11
+ are split by scope: four are component-instance settings and `includeSlider` is an
12
+ application setting. The catalog names and defaults are normalized to the
13
+ APEXlang names below.
14
+
15
+ | Catalog scope | Catalog/native setting | APEXlang name | Valid values | Catalog default | Generation-time policy |
16
+ |------|----------|------|------|------|------|
17
+ | Component | `rds_mode` / `mode` | `settings.mode` | `viewSingleRegion`, `scrollWindow` | `viewSingleRegion` | Emit explicitly. |
18
+ | Component | `display_region_icons` | `settings.displayRegionIcons` | `true`, `false` | not declared | Emit explicitly. |
19
+ | Component | `include_show_all` | `settings.includeShowAll` | `true`, `false` | `true` when active | Emit explicitly for `viewSingleRegion`; omit for `scrollWindow`. |
20
+ | Component | `remember_selection` | `settings.rememberSelection` | `byUser`, `bySession`, `false` | `byUser` | Emit explicitly. |
21
+ | Application | `include_slider` | `componentSetting NATIVE_DISPLAY_SELECTOR` → `settings.attributes.includeSlider` | `true`, `false` | `true` | Optional; emit only when explicitly requested. |
22
+
23
+ Catalog defaults describe upstream metadata; they are not permission to omit
24
+ required instance settings during deterministic generation. `includeSlider` is not
25
+ an RDS controller setting and is not required for ordinary RDS page generation.
26
+
8
27
  # Variable Contract
9
28
 
10
29
  | Name | Required | Type | Notes |
11
30
  |------|----------|------|-------|
12
- | controlRegionStaticId | yes | string | RDS control region id. |
13
- | toggledRegions | yes | array | Regions that set `advanced.regionDisplaySelector: true`. |
14
- | settings.displayRegionIcons | optional | boolean | Displays target region icons. |
15
- | settings.rememberSelection | optional | enum | `bySession`, `byUser`, or `false`. |
31
+ | controllerRegion | yes | object | Exactly one `type: regionDisplaySelector` region on the page. |
32
+ | controllerRegionHtmlDomId | yes | string | Stable RDS controller DOM identifier emitted as `advanced.htmlDomId`. |
33
+ | controlledRegions | yes | array | At least two explicitly selected sibling page regions. |
34
+ | settings.mode | yes | enum | `viewSingleRegion` or `scrollWindow`. |
35
+ | settings.displayRegionIcons | yes | boolean | When `true`, every controlled region supplies a valid `appearance.icon`. |
36
+ | settings.includeShowAll | conditional | boolean | Required only for `viewSingleRegion`; omit for `scrollWindow`. |
37
+ | settings.rememberSelection | yes | enum | `byUser`, `bySession`, or `false`. |
38
+ | applicationSettings.includeSlider | optional | boolean | Application-scoped setting emitted through `componentSetting NATIVE_DISPLAY_SELECTOR`. |
39
+
40
+ # Repository Implementation and Compiler Constraints
41
+
42
+ The following rules are repository generation/validation constraints. They keep
43
+ membership deterministic and must not be read as additional upstream catalog
44
+ requirements.
45
+
46
+ - The controller is a navigation region and must not define `source` or query data.
47
+ - Create one controller per page. The RDS contract has no controller identifier on a target region, so multiple controllers create ambiguous membership.
48
+ - Require at least two controlled regions and set `advanced.regionDisplaySelector: true` only on that explicit list.
49
+ - Controlled regions may mix native and theme template component families when each selected region supports the `advanced.regionDisplaySelector` property in the active compiler contract.
50
+ - Never opt the controller itself, a breadcrumb region, or a region placed in a header/breadcrumb slot into the selector.
51
+ - Leave unrelated page regions at the default (`regionDisplaySelector` omitted or `false`).
52
+ - Keep controlled regions in stable `layout.sequence` order; that order defines the selector order.
53
+ - `viewSingleRegion` shows one selected region. `scrollWindow` leaves all controlled regions visible and scrolls to the selected region.
54
+ - Emit `settings.includeShowAll` only for `viewSingleRegion`.
55
+ - `rememberSelection: byUser` or `bySession` requires stable target-region DOM IDs in this repository's validator; `false` stores no selection.
56
+ - When `displayRegionIcons: true`, reuse the shared `FA_ICON_REQUIRED_001` catalogue rule for every controlled region icon.
57
+ - RDS visibility is presentation only. Preserve each controlled region's own authorization scheme and server-side condition.
58
+
59
+ # Identifier Contract
60
+
61
+ `staticId` and `htmlDomId` are not interchangeable. For `region` declarations in
62
+ this compiler, including the RDS controller and targets, `advanced.htmlDomId` is
63
+ authoritative. Use `advanced.htmlDomId`; `advanced.staticId` is rejected by direct
64
+ target-build validation.
65
+ `staticId` remains available only for component types whose own contracts declare
66
+ it. Do not transfer an identifier property from another component kind to a
67
+ region.
16
68
 
17
- # Guardrails
69
+ # Authority Boundary
18
70
 
19
- - Each toggled region must explicitly set `advanced.regionDisplaySelector: true`.
20
- - Keep toggled regions in stable layout order for deterministic tab behavior.
71
+ - APEX 26.1 native metadata identifies the plugin as `NATIVE_DISPLAY_SELECTOR` and stores `rds_mode` as `STANDARD` or `JUMP`.
72
+ - The upstream catalog records application-scoped `include_slider` with default `true`; this repository exposes it through the shared `componentSetting` contract.
73
+ - APEXlang uses the normalized values documented above. Direct compiler validation and target-build `apex validate` remain authoritative before completion.
@@ -4,6 +4,8 @@ componentType: template
4
4
  version: 1.0
5
5
  imports:
6
6
  - region-display-selector._common.md
7
+ - region-display-selector.standard.md
8
+ - region-display-selector.permutations.md
7
9
  description: Routing entrypoint for region-display-selector templates.
8
10
  ---
9
11
 
@@ -15,4 +17,5 @@ Primary routing entrypoint for `region-display-selector` templates.
15
17
 
16
18
  1. Load this file.
17
19
  2. Load `region-display-selector._common.md`.
18
- 3. Load one scenario template in this folder.
20
+ 3. Load `region-display-selector.standard.md` for generation.
21
+ 4. Load `region-display-selector.permutations.md` only when configuration coverage or a non-default mode is requested.
@@ -0,0 +1,55 @@
1
+ ---
2
+ templateId: region.region-display-selector.permutations
3
+ componentType: region
4
+ version: 1.0
5
+ imports:
6
+ - region-display-selector._common
7
+ description: Complete valid setting matrix for native Region Display Selector generation.
8
+ ---
9
+
10
+ # Valid Configuration Matrix
11
+
12
+ The valid matrix contains 18 combinations:
13
+
14
+ - `viewSingleRegion`: 2 icon values x 2 Show All values x 3 persistence values = 12.
15
+ - `scrollWindow`: 2 icon values x 3 persistence values = 6. `includeShowAll` must be omitted.
16
+
17
+ | Mode | Display Region Icons | Include Show All | Remember Selection |
18
+ |------|----------------------|------------------|--------------------|
19
+ | `viewSingleRegion` | `false` or `true` | `false` or `true` | `false`, `bySession`, or `byUser` |
20
+ | `scrollWindow` | `false` or `true` | omit | `false`, `bySession`, or `byUser` |
21
+
22
+ # Scroll Window Settings
23
+
24
+ Use the same controller and controlled-region structure from `region-display-selector.standard.md`, replacing only the settings block:
25
+
26
+ ```apexlang
27
+ region section_selector (
28
+ name: Section Selector
29
+ type: regionDisplaySelector
30
+ layout {
31
+ sequence: 10
32
+ slot: body
33
+ }
34
+ appearance {
35
+ template: @/blank-with-attributes-no-grid
36
+ templateOptions: #DEFAULT#
37
+ }
38
+ settings {
39
+ mode: scrollWindow
40
+ displayRegionIcons: false
41
+ rememberSelection: bySession
42
+ }
43
+ advanced {
44
+ htmlDomId: section-selector
45
+ }
46
+ )
47
+ ```
48
+
49
+ # Invalid Combinations
50
+
51
+ - Reject `includeShowAll` when `mode: scrollWindow`.
52
+ - Reject a controller with fewer than two controlled regions.
53
+ - Reject a controller that opts itself into RDS.
54
+ - Reject breadcrumb and header-region targets.
55
+ - Reject `displayRegionIcons: true` when any controlled region lacks `appearance.icon`.
@@ -4,11 +4,97 @@ componentType: region
4
4
  version: 1.0
5
5
  imports:
6
6
  - region-display-selector._common
7
- description: Standard RDS control region with multiple toggled content regions.
7
+ description: Standard RDS controller with two explicitly selected content regions.
8
8
  ---
9
9
 
10
- # Pattern
10
+ # View Single Region Pattern
11
11
 
12
- - Create RDS control region (`type: regionDisplaySelector`) in target slot.
13
- - Mark each controlled region with `advanced { regionDisplaySelector: true }`.
14
- - Optionally enable `displayRegionIcons` and `rememberSelection`.
12
+ This data-free example uses two static content regions so it introduces no database-object assumptions.
13
+
14
+ ```apexlang
15
+ page 10 (
16
+ name: Region Display Selector
17
+ alias: REGION-DISPLAY-SELECTOR
18
+ title: Region Display Selector
19
+ appearance {
20
+ pageTemplate: @/standard
21
+ templateOptions: #DEFAULT#
22
+ }
23
+ security {
24
+ authorizationScheme: mustNotBePublicUser
25
+ pageAccessProtection: argumentsMustHaveChecksum
26
+ formAutoComplete: false
27
+ }
28
+
29
+ region section_selector (
30
+ name: Section Selector
31
+ type: regionDisplaySelector
32
+ layout {
33
+ sequence: 10
34
+ slot: body
35
+ }
36
+ appearance {
37
+ template: @/blank-with-attributes-no-grid
38
+ templateOptions: #DEFAULT#
39
+ }
40
+ settings {
41
+ mode: viewSingleRegion
42
+ displayRegionIcons: true
43
+ includeShowAll: true
44
+ rememberSelection: byUser
45
+ }
46
+ advanced {
47
+ htmlDomId: section-selector
48
+ }
49
+ )
50
+
51
+ region summary (
52
+ name: Summary
53
+ type: staticContent
54
+ source {
55
+ htmlCode: Review the current summary.
56
+ }
57
+ layout {
58
+ sequence: 20
59
+ slot: body
60
+ }
61
+ appearance {
62
+ template: @/standard
63
+ templateOptions: #DEFAULT#
64
+ icon: fa-list
65
+ }
66
+ advanced {
67
+ htmlDomId: summary
68
+ regionDisplaySelector: true
69
+ }
70
+ )
71
+
72
+ region details (
73
+ name: Details
74
+ type: staticContent
75
+ source {
76
+ htmlCode: Review the current details.
77
+ }
78
+ layout {
79
+ sequence: 30
80
+ slot: body
81
+ }
82
+ appearance {
83
+ template: @/standard
84
+ templateOptions: #DEFAULT#
85
+ icon: fa-table
86
+ }
87
+ advanced {
88
+ htmlDomId: details
89
+ regionDisplaySelector: true
90
+ }
91
+ )
92
+ )
93
+ ```
94
+
95
+ # Required Behavior
96
+
97
+ - Do not add `advanced.regionDisplaySelector` to `section_selector`.
98
+ - The `summary` and `details` layout sequences determine their tab order.
99
+ - If icons are disabled, the controlled regions may omit `appearance.icon`.
100
+ - Do not use RDS selection as an authorization or server-side-condition replacement.
@@ -4,9 +4,11 @@
4
4
  Canonical guidance for the `smart-filter-search` region family, including shared contract loading and supported scenario variants.
5
5
 
6
6
  ## Usage
7
- - Load `smart-filter-search._common.md` first to align variable contracts, guardrails, and required inputs.
8
- - Choose a scenario variant matching the requested interaction pattern, data source type, and page composition context.
7
+ - Select the `smart-filter-search` construction pack before loading Markdown.
8
+ - Load `smart-filter-search._common.md` to freeze the base-region, search-behavior, settings, security, and performance contracts.
9
+ - Use `smart-filter-search.standard.md` only when its single-base-region and required search-child shape matches the request.
9
10
  - Preserve canonical path references and markdown-first conventions when updating workflow or registry links.
11
+ - Use structured JSON for Generation Plan evidence; templates are not evidence.
10
12
 
11
13
  ## Template Catalog
12
14
  - `smart-filter-search._common.md`
@@ -16,3 +18,5 @@ Canonical guidance for the `smart-filter-search` region family, including shared
16
18
  - Keep this README synchronized with actual files in the directory.
17
19
  - Update catalogs and usage notes whenever templates are added, removed, or renamed.
18
20
  - Keep family guidance aligned with page-level standards in memory-bank rules and with scenario coverage in this folder.
21
+ - Keep ticket settings out of APEXlang output until property-level compiler evidence proves them for the target build.
22
+ - Keep artifact rules, plan evidence, and runtime acceptance as separate layers.