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
@@ -77,7 +77,7 @@ pageItem {{itemName}} (
77
77
  # Conditional Rendering Rules
78
78
 
79
79
  - Show optional defaults only when the generator needs them visible in the final output.
80
- - Remove family-specific settings that are not relevant to the requested prompt.
80
+ - Emit native combobox `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
81
81
 
82
82
  ---
83
83
 
@@ -104,7 +104,7 @@ pageItem {{itemName}} (
104
104
  - Omit `source {}` when the item is not bound to persisted data or a form region.
105
105
  - Emit `validation {}` only when the scenario requires declarative checks.
106
106
  - Keep width, placeholder, and format-mask attributes absent unless the scenario explicitly asks for them.
107
- - Keep the settings block lean and emit only the family-specific properties that are actually needed.
107
+ - Emit native date-picker `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
108
108
 
109
109
  ---
110
110
 
@@ -77,7 +77,7 @@ pageItem {{itemName}} (
77
77
  # Conditional Rendering Rules
78
78
 
79
79
  - Show optional defaults only when the generator needs them visible in the final output.
80
- - Remove family-specific settings that are not relevant to the requested prompt.
80
+ - Emit native date-picker `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
81
81
 
82
82
  ---
83
83
 
@@ -36,15 +36,20 @@ Define the canonical contract, conditional rules, and output skeleton for `file-
36
36
  | layout.alignment | optional | enum | Item alignment inside the slot. |
37
37
  | appearance.template | yes | alias | Family-appropriate template alias. |
38
38
  | appearance.templateOptions | optional | array/string | Template modifiers such as `#DEFAULT#` or compact options. |
39
- | settings.* | optional | variant | Normalized family settings such as `storageType`, `displayAs`, `allowMultipleFiles`, `fileTypes`, `maxFileSize`, `displayDownloadLink`, `downloadLinkText`, `contentDisposition`, `purgeFileAt`, `dropzoneTitle`, `dropzoneDescription`, and `captureUsing`. |
39
+ | appearance.icon | optional | string | Font APEX icon class such as `fa-file`. |
40
+ | display.displayAs | yes | enum | Upload UI mode: `blockDropzone`, `inlineDropzone`, or `nativeFileBrowse`. Emit `blockDropzone` when the user does not request another supported mode. |
41
+ | display.dropzoneTitle | conditional | string | Required for dropzone modes; use `Drop files here` when custom copy is unavailable. |
42
+ | display.dropzoneDesc | conditional | string | Required for dropzone modes; use `or click to browse` when custom copy is unavailable. |
43
+ | display.allowCopyPaste | optional | boolean | Allows file copy/paste into supported dropzone UIs. |
44
+ | display.captureUsing | optional | enum | Device capture source: `selfieCamera` or `mainCamera`. Omit when no capture source is required. |
45
+ | storage.type | optional | enum | Proven storage type: `appTempFiles`. |
46
+ | storage.allowMultipleFiles | optional | boolean | Allows multiple files. |
47
+ | storage.fileTypes | optional | string | Free-form comma-delimited file type list such as `image/png,video/*`; do not emit as an array. |
48
+ | storage.maxFileSize | optional | number | Maximum file size in KB. |
40
49
  | validation.valueRequired | optional | boolean | Set when the item value is mandatory. |
41
50
  | source.formRegion | conditional | alias | Required for form-bound upload items. |
42
51
  | source.column | conditional | string | Primary file payload column. |
43
52
  | source.dataType | conditional | enum | Data type for the stored payload, typically BLOB. |
44
- | source.mimeTypeColumn | optional | string | Column storing the MIME type. |
45
- | source.filenameColumn | optional | string | Column storing the uploaded file name. |
46
- | source.characterSetColumn | optional | string | Column storing the character set when applicable. |
47
- | source.blobLastUpdatedColumn | optional | string | Column storing the last-updated timestamp. |
48
53
  | help.helpText | required by default | string | Builder help text or assistive guidance for visible user-facing file-upload items; omit only for hidden items or a documented exemption. |
49
54
  | security.sessionStateProtection | optional | enum | Session state protection policy. |
50
55
  | security.authorizationScheme | optional | alias | Authorization scheme alias when the item is conditionally visible. |
@@ -69,20 +74,20 @@ pageItem {{itemName}} (
69
74
  appearance {
70
75
  template: {{appearance.template}}
71
76
  templateOptions: {{appearance.templateOptions}}
77
+ icon: {{appearance.icon}}
72
78
  }
73
- settings {
74
- storageType: {{settings.storageType}}
75
- displayAs: {{settings.displayAs}}
76
- allowMultipleFiles: {{settings.allowMultipleFiles}}
77
- fileTypes: {{settings.fileTypes}}
78
- maxFileSize: {{settings.maxFileSize}}
79
- displayDownloadLink: {{settings.displayDownloadLink}}
80
- downloadLinkText: {{settings.downloadLinkText}}
81
- contentDisposition: {{settings.contentDisposition}}
82
- purgeFileAt: {{settings.purgeFileAt}}
83
- dropzoneTitle: {{settings.dropzoneTitle}}
84
- dropzoneDescription: {{settings.dropzoneDescription}}
85
- captureUsing: {{settings.captureUsing}}
79
+ display {
80
+ displayAs: {{display.displayAs}}
81
+ dropzoneTitle: {{display.dropzoneTitle}}
82
+ dropzoneDesc: {{display.dropzoneDesc}}
83
+ allowCopyPaste: {{display.allowCopyPaste}}
84
+ captureUsing: {{display.captureUsing}}
85
+ }
86
+ storage {
87
+ type: {{storage.type}}
88
+ allowMultipleFiles: {{storage.allowMultipleFiles}}
89
+ fileTypes: {{storage.fileTypes}}
90
+ maxFileSize: {{storage.maxFileSize}}
86
91
  }
87
92
  validation {
88
93
  valueRequired: {{validation.valueRequired}}
@@ -91,10 +96,6 @@ pageItem {{itemName}} (
91
96
  formRegion: @{{source.formRegion}}
92
97
  column: {{source.column}}
93
98
  dataType: {{source.dataType}}
94
- mimeTypeColumn: {{source.mimeTypeColumn}}
95
- filenameColumn: {{source.filenameColumn}}
96
- characterSetColumn: {{source.characterSetColumn}}
97
- blobLastUpdatedColumn: {{source.blobLastUpdatedColumn}}
98
99
  }
99
100
  help {
100
101
  helpText: {{help.helpText}}
@@ -113,7 +114,11 @@ pageItem {{itemName}} (
113
114
  - Remove unsupported or unused blocks before finalizing the DSL.
114
115
  - Omit `source {}` when the item is not bound to persisted data or a form region.
115
116
  - Emit `validation {}` only when the scenario requires declarative checks.
116
- - Keep the settings block lean and emit only the family-specific properties that are actually needed.
117
+ - Always emit a grouped `display {}` block with an explicit `displayAs` value.
118
+ - Use `displayAs: blockDropzone` when the user does not request `inlineDropzone` or `nativeFileBrowse`.
119
+ - For dropzone modes, provide `dropzoneTitle` and `dropzoneDesc` when user-specific copy is available; otherwise emit `Drop files here` and `or click to browse`.
120
+ - Keep `storage.fileTypes` as one free-form comma-delimited text scalar, for example `image/png,video/*`.
121
+ - Keep `storage.maxFileSize` as a positive integer number of KB.
117
122
 
118
123
  ---
119
124
 
@@ -122,4 +127,5 @@ pageItem {{itemName}} (
122
127
  - Follow guardrails in `references/policies/memory-bank/00-guard/ai.guard.md`.
123
128
  - Do not invent unsupported attributes or UT classes.
124
129
  - Keep placeholder names aligned with `templates/items/items._common.md`.
125
- - Validate the storage strategy and metadata column mappings before finalizing upload items.
130
+ - Validate the storage strategy before finalizing upload items.
131
+ - Do not reintroduce legacy flat `settings.storageType`, `settings.displayAs`, or related file-upload settings.
@@ -57,6 +57,11 @@ pageItem {{itemName}} (
57
57
  template: {{appearance.template}}
58
58
  templateOptions: {{appearance.templateOptions}}
59
59
  }
60
+ display {
61
+ displayAs: blockDropzone
62
+ dropzoneTitle: Drop files here
63
+ dropzoneDesc: or click to browse
64
+ }
60
65
  security {
61
66
  sessionStateProtection: {{security.sessionStateProtection}}
62
67
  }
@@ -69,6 +74,7 @@ pageItem {{itemName}} (
69
74
 
70
75
  - Use `appearance.templateOptions` only when the requested control needs compact or condensed rendering.
71
76
  - Keep the rest of the item aligned with the inherited family contract.
77
+ - Keep the explicit `blockDropzone` display block unless the user requests another supported upload mode.
72
78
 
73
79
  ---
74
80
 
@@ -35,10 +35,14 @@ Inherits the full family contract from `file-upload._common.md`. Base family req
35
35
  - `layout.slot`
36
36
  - `layout.alignment`
37
37
  - `appearance.templateOptions`
38
+ - `appearance.icon`
38
39
  - `security.sessionStateProtection`
39
- - `settings.storageType`
40
- - `settings.displayAs`
41
- - `settings.allowMultipleFiles`
40
+ - `display.allowCopyPaste`
41
+ - `display.captureUsing`
42
+ - `storage.type`
43
+ - `storage.allowMultipleFiles`
44
+ - `storage.fileTypes`
45
+ - `storage.maxFileSize`
42
46
 
43
47
  ---
44
48
 
@@ -60,11 +64,20 @@ pageItem {{itemName}} (
60
64
  appearance {
61
65
  template: {{appearance.template}}
62
66
  templateOptions: {{appearance.templateOptions}}
67
+ icon: {{appearance.icon}}
63
68
  }
64
- settings {
65
- storageType: {{settings.storageType}}
66
- displayAs: {{settings.displayAs}}
67
- allowMultipleFiles: {{settings.allowMultipleFiles}}
69
+ display {
70
+ displayAs: blockDropzone
71
+ dropzoneTitle: Drop files here
72
+ dropzoneDesc: or click to browse
73
+ allowCopyPaste: {{display.allowCopyPaste}}
74
+ captureUsing: {{display.captureUsing}}
75
+ }
76
+ storage {
77
+ type: {{storage.type}}
78
+ allowMultipleFiles: {{storage.allowMultipleFiles}}
79
+ fileTypes: {{storage.fileTypes}}
80
+ maxFileSize: {{storage.maxFileSize}}
68
81
  }
69
82
  security {
70
83
  sessionStateProtection: {{security.sessionStateProtection}}
@@ -77,7 +90,9 @@ pageItem {{itemName}} (
77
90
  # Conditional Rendering Rules
78
91
 
79
92
  - Show optional defaults only when the generator needs them visible in the final output.
80
- - Remove family-specific settings that are not relevant to the requested prompt.
93
+ - Always emit the `display {}` block. Keep its explicit `blockDropzone` defaults unless the user requests another supported mode or custom dropzone copy.
94
+ - Emit `storage {}` only when the generator needs those file-upload plugin attributes visible in the final output.
95
+ - Keep `storage.fileTypes` as one free-form comma-delimited text scalar and `storage.maxFileSize` as a positive integer number of KB.
81
96
 
82
97
  ---
83
98
 
@@ -51,6 +51,11 @@ pageItem {{itemName}} (
51
51
  appearance {
52
52
  template: {{appearance.template}}
53
53
  }
54
+ display {
55
+ displayAs: blockDropzone
56
+ dropzoneTitle: Drop files here
57
+ dropzoneDesc: or click to browse
58
+ }
54
59
  security {
55
60
  sessionStateProtection: {{security.sessionStateProtection}}
56
61
  }
@@ -62,6 +67,7 @@ pageItem {{itemName}} (
62
67
  # Conditional Rendering Rules
63
68
 
64
69
  - Keep the item block minimal and rely on the inherited family contract for anything not shown here.
70
+ - Keep the explicit `blockDropzone` display block unless the user requests another supported upload mode.
65
71
  - Remove optional blocks that are not populated by the final prompt.
66
72
 
67
73
  ---
@@ -81,7 +81,7 @@ pageItem {{itemName}} (
81
81
  - If a hidden item appears in dynamic-action `itemsToReturn` or as a `setValue` target, treat that as a hard signal that the item is client-owned post-render state rather than protected hidden data.
82
82
  - Remove unsupported or unused blocks before finalizing the DSL.
83
83
  - Omit `source {}` when the item is not bound to persisted data or a form region.
84
- - Keep the settings block lean and emit only the family-specific properties that are actually needed.
84
+ - Emit native hidden-item `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
85
85
 
86
86
  ---
87
87
 
@@ -64,7 +64,7 @@ pageItem {{itemName}} (
64
64
  # Conditional Rendering Rules
65
65
 
66
66
  - Show optional defaults only when the generator needs them visible in the final output.
67
- - Remove family-specific settings that are not relevant to the requested prompt.
67
+ - Emit native hidden-item `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
68
68
 
69
69
  ---
70
70
 
@@ -31,7 +31,7 @@ Define the shared variable contract, guardrails, and base `pageItem` skeleton us
31
31
  | type | yes | enum | Family-specific item type token such as `textField`, `selectList`, or `displayOnly`. |
32
32
  | label.* | conditional | variant | Label attributes when the family supports visible labels. |
33
33
  | layout.* | yes | variant | Placement attributes such as `region`, `sequence`, `slot`, and alignment. When `layout.region` is present, `layout.slot` should usually be the host region slot such as `regionBody`, not a page-level slot like `body`. `layout.labelColumnSpan` is an optional deliberate override when label-grid width must be controlled explicitly. |
34
- | appearance.* | conditional | variant | Template, template options, size hints, placeholder text, and format masks when supported. |
34
+ | appearance.* | conditional | variant | Template, template options, icon, size hints, placeholder text, and format masks when supported. |
35
35
  | lov.* | conditional | variant | LOV source attributes for LOV-based item families. |
36
36
  | settings.* | optional | variant | Family-specific settings emitted by the routed family template. |
37
37
  | validation.* | optional | variant | Declarative validation attributes supported by the selected family. |
@@ -60,6 +60,7 @@ pageItem {{itemName}} (
60
60
  appearance {
61
61
  template: {{appearance.template}}
62
62
  templateOptions: {{appearance.templateOptions}}
63
+ icon: {{appearance.icon}}
63
64
  width: {{appearance.width}}
64
65
  height: {{appearance.height}}
65
66
  valuePlaceholder: {{appearance.valuePlaceholder}}
@@ -115,7 +116,7 @@ pageItem {{itemName}} (
115
116
  order by ...
116
117
  ```
117
118
  - Emit `source {}` only for form-bound or persisted items.
118
- - Keep `settings {}` reserved for family-specific attributes exposed by the routed family template.
119
+ - Keep `settings {}` reserved for family-specific attributes exposed by the routed family template and backed by compiler/export evidence.
119
120
  - When `layout.region` is present, use the host region slot rather than a page-level slot. The default for items rendered inside a standard host region is usually `regionBody`, not `body` or `BODY`.
120
121
  - Only apply validation.maxLength to text fields
121
122
  - Emit `help { helpText: ... }` by default for visible editable, filter/control, and other user-facing items unless the item is hidden or a documented exemption applies.
@@ -75,7 +75,7 @@ pageItem {{itemName}} (
75
75
  # Conditional Rendering Rules
76
76
 
77
77
  - Show optional defaults only when the generator needs them visible in the final output.
78
- - Remove family-specific settings that are not relevant to the requested prompt.
78
+ - Emit native list-manager `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
79
79
 
80
80
  ---
81
81
 
@@ -95,7 +95,7 @@ pageItem {{itemName}} (
95
95
  - Remove unsupported or unused blocks before finalizing the DSL.
96
96
  - Omit `source {}` when the item is not bound to persisted data or a form region.
97
97
  - Emit `validation {}` only when the scenario requires declarative checks.
98
- - Keep the settings block lean and emit only the family-specific properties that are actually needed.
98
+ - Emit native markdown-editor `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
99
99
 
100
100
  ---
101
101
 
@@ -75,7 +75,7 @@ pageItem {{itemName}} (
75
75
  # Conditional Rendering Rules
76
76
 
77
77
  - Show optional defaults only when the generator needs them visible in the final output.
78
- - Remove family-specific settings that are not relevant to the requested prompt.
78
+ - Emit native markdown-editor `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
79
79
 
80
80
  ---
81
81
 
@@ -39,10 +39,12 @@ Define the canonical contract, conditional rules, and output skeleton for `numbe
39
39
  | appearance.width | optional | number | Width or character width when the family supports it. |
40
40
  | appearance.valuePlaceholder | optional | string | Placeholder or helper text shown before a value is entered. |
41
41
  | appearance.formatMask | optional | string | Format mask used when the family supports formatted input or display. |
42
- | settings.* | optional | variant | Normalized family settings such as `minValue`, `maxValue`, `numberAlignment`, and `virtualKeyboard`. |
42
+ | appearance.icon | optional | string | Font APEX icon class such as `fa-american-sign-language-interpreting` when an icon is intentionally shown. |
43
+ | settings.minValue | optional | number | Minimum accepted value when compiler/export evidence proves number-field settings are available. |
44
+ | settings.maxValue | optional | number | Maximum accepted value when compiler/export evidence proves number-field settings are available. |
45
+ | settings.numberAlignment | optional | enum | Text alignment for numeric values, for example `start`, `end`, or `left` as accepted by the active compiler/export evidence. |
46
+ | settings.virtualKeyboard | optional | boolean | Controls numeric virtual keyboard behavior when compiler/export evidence proves the setting is available. |
43
47
  | validation.valueRequired | optional | boolean | Set when the item value is mandatory. |
44
- | validation.minimumValue | optional | number | Minimum numeric value when the scenario enforces it. |
45
- | validation.maximumValue | optional | number | Maximum numeric value when the scenario enforces it. |
46
48
  | source.formRegion | conditional | alias | Required for form-bound items. |
47
49
  | source.column | conditional | string | Target column for form-bound items. |
48
50
  | source.dataType | conditional | enum | Data type for DML binding. |
@@ -70,6 +72,7 @@ pageItem {{itemName}} (
70
72
  appearance {
71
73
  template: {{appearance.template}}
72
74
  templateOptions: {{appearance.templateOptions}}
75
+ icon: {{appearance.icon}}
73
76
  width: {{appearance.width}}
74
77
  valuePlaceholder: {{appearance.valuePlaceholder}}
75
78
  formatMask: {{appearance.formatMask}}
@@ -82,8 +85,6 @@ pageItem {{itemName}} (
82
85
  }
83
86
  validation {
84
87
  valueRequired: {{validation.valueRequired}}
85
- minimumValue: {{validation.minimumValue}}
86
- maximumValue: {{validation.maximumValue}}
87
88
  }
88
89
  source {
89
90
  formRegion: @{{source.formRegion}}
@@ -108,7 +109,8 @@ pageItem {{itemName}} (
108
109
  - Omit `source {}` when the item is not bound to persisted data or a form region.
109
110
  - Emit `validation {}` only when the scenario requires declarative checks.
110
111
  - Keep width, placeholder, and format-mask attributes absent unless the scenario explicitly asks for them.
111
- - Keep the settings block lean and emit only the family-specific properties that are actually needed.
112
+ - Emit native number-field `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
113
+ - Do not emit `validation.minimumValue` or `validation.maximumValue`; current item validation supports `valueRequired` and `maxLength`.
112
114
 
113
115
  ---
114
116
 
@@ -35,10 +35,15 @@ Inherits the full family contract from `number-field._common.md`. Base family re
35
35
  - `layout.slot`
36
36
  - `layout.alignment`
37
37
  - `appearance.templateOptions`
38
- - `security.sessionStateProtection`
38
+ - `appearance.icon`
39
+ - `appearance.formatMask`
40
+ - `appearance.width`
41
+ - `appearance.valuePlaceholder`
39
42
  - `settings.minValue`
40
43
  - `settings.maxValue`
41
44
  - `settings.numberAlignment`
45
+ - `settings.virtualKeyboard`
46
+ - `security.sessionStateProtection`
42
47
 
43
48
  ---
44
49
 
@@ -60,11 +65,16 @@ pageItem {{itemName}} (
60
65
  appearance {
61
66
  template: {{appearance.template}}
62
67
  templateOptions: {{appearance.templateOptions}}
68
+ icon: {{appearance.icon}}
69
+ formatMask: {{appearance.formatMask}}
70
+ width: {{appearance.width}}
71
+ valuePlaceholder: {{appearance.valuePlaceholder}}
63
72
  }
64
73
  settings {
65
74
  minValue: {{settings.minValue}}
66
75
  maxValue: {{settings.maxValue}}
67
76
  numberAlignment: {{settings.numberAlignment}}
77
+ virtualKeyboard: {{settings.virtualKeyboard}}
68
78
  }
69
79
  security {
70
80
  sessionStateProtection: {{security.sessionStateProtection}}
@@ -77,7 +87,7 @@ pageItem {{itemName}} (
77
87
  # Conditional Rendering Rules
78
88
 
79
89
  - Show optional defaults only when the generator needs them visible in the final output.
80
- - Remove family-specific settings that are not relevant to the requested prompt.
90
+ - Emit native number-field `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
81
91
 
82
92
  ---
83
93
 
@@ -77,7 +77,7 @@ pageItem {{itemName}} (
77
77
  # Conditional Rendering Rules
78
78
 
79
79
  - Show optional defaults only when the generator needs them visible in the final output.
80
- - Remove family-specific settings that are not relevant to the requested prompt.
80
+ - Emit native popup LOV `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
81
81
 
82
82
  ---
83
83
 
@@ -100,7 +100,7 @@ pageItem {{itemName}} (
100
100
  - Remove unsupported or unused blocks before finalizing the DSL.
101
101
  - Omit `source {}` when the item is not bound to persisted data or a form region.
102
102
  - Emit `validation {}` only when the scenario requires declarative checks.
103
- - Keep the settings block lean and emit only the family-specific properties that are actually needed.
103
+ - Emit native rich-text-editor `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
104
104
 
105
105
  ---
106
106
 
@@ -77,7 +77,7 @@ pageItem {{itemName}} (
77
77
  # Conditional Rendering Rules
78
78
 
79
79
  - Show optional defaults only when the generator needs them visible in the final output.
80
- - Remove family-specific settings that are not relevant to the requested prompt.
80
+ - Emit native rich-text-editor `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
81
81
 
82
82
  ---
83
83
 
@@ -138,7 +138,7 @@ pageItem {{itemName}} (
138
138
  # Conditional Rendering Rules
139
139
 
140
140
  - Choose one LOV source per item and remove the unused LOV attributes.
141
- - Keep `settings.display` aligned with the interaction pattern requested by the prompt.
141
+ - Emit native select-many display settings only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
142
142
 
143
143
  ---
144
144
 
@@ -73,7 +73,7 @@ pageItem {{itemName}} (
73
73
  # Conditional Rendering Rules
74
74
 
75
75
  - Show optional defaults only when the generator needs them visible in the final output.
76
- - Remove family-specific settings that are not relevant to the requested prompt.
76
+ - Emit native shuttle `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
77
77
 
78
78
  ---
79
79
 
@@ -67,12 +67,12 @@ pageItem {{itemName}} (
67
67
  templateOptions: {{appearance.templateOptions}}
68
68
  }
69
69
  settings {
70
- useDefaults: {{settings.useDefaults}}
71
- onValue: {{settings.onValue}}
72
- onLabel: {{settings.onLabel}}
73
- offValue: {{settings.offValue}}
74
- offLabel: {{settings.offLabel}}
75
- }
70
+ useDefaults: {{settings.useDefaults}}
71
+ onValue: {{settings.onValue}}
72
+ onLabel: {{settings.onLabel}}
73
+ offValue: {{settings.offValue}}
74
+ offLabel: {{settings.offLabel}}
75
+ }
76
76
  validation {
77
77
  valueRequired: {{validation.valueRequired}}
78
78
  }
@@ -98,8 +98,8 @@ pageItem {{itemName}} (
98
98
  - Remove unsupported or unused blocks before finalizing the DSL.
99
99
  - Omit `source {}` when the item is not bound to persisted data or a form region.
100
100
  - Emit `validation {}` only when the scenario requires declarative checks.
101
- - Keep the settings block lean and emit only the family-specific properties that are actually needed.
102
- - Use `useDefaults:false` always unless you are asked not to. Determine on/off value based on the table or source. can be `Yes`/`No` or `0`/`1`
101
+ - Emit native switch `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
102
+ - Use `useDefaults: false` when custom on/off values or labels are intentionally emitted and backed by compiler/export evidence.
103
103
 
104
104
  ---
105
105
 
@@ -77,7 +77,7 @@ pageItem {{itemName}} (
77
77
  # Conditional Rendering Rules
78
78
 
79
79
  - Show optional defaults only when the generator needs them visible in the final output.
80
- - Remove family-specific settings that are not relevant to the requested prompt.
80
+ - Emit native switch `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
81
81
 
82
82
  ---
83
83
 
@@ -40,7 +40,6 @@ Define the canonical contract, conditional rules, and output skeleton for `text-
40
40
  | appearance.valuePlaceholder | optional | string | Placeholder or helper text shown before a value is entered. |
41
41
  | settings.* | optional | variant | Normalized family settings such as `resizable`, `autoHeight`, `characterCounter`, and `trimSpaces`. |
42
42
  | validation.valueRequired | optional | boolean | Set when the item value is mandatory. |
43
- | validation.minLength | optional | number | Minimum character length when the scenario enforces it. |
44
43
  | validation.maxLength | optional | number | Maximum character length when the scenario enforces it. |
45
44
  | source.formRegion | conditional | alias | Required for form-bound items. |
46
45
  | source.column | conditional | string | Target column for form-bound items. |
@@ -80,7 +79,6 @@ pageItem {{itemName}} (
80
79
  }
81
80
  validation {
82
81
  valueRequired: {{validation.valueRequired}}
83
- minLength: {{validation.minLength}}
84
82
  maxLength: {{validation.maxLength}}
85
83
  }
86
84
  source {
@@ -107,7 +105,8 @@ pageItem {{itemName}} (
107
105
  - Emit `validation {}` only when the scenario requires declarative checks.
108
106
  - For form-bound textual columns, `validation.maxLength` should match the bound column length exactly.
109
107
  - Keep width, placeholder, and format-mask attributes absent unless the scenario explicitly asks for them.
110
- - Keep the settings block lean and emit only the family-specific properties that are actually needed.
108
+ - Emit native text-area `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
109
+ - Do not emit `validation.minLength`; current item validation supports `valueRequired` and `maxLength`.
111
110
 
112
111
  ---
113
112
 
@@ -77,7 +77,7 @@ pageItem {{itemName}} (
77
77
  # Conditional Rendering Rules
78
78
 
79
79
  - Show optional defaults only when the generator needs them visible in the final output.
80
- - Remove family-specific settings that are not relevant to the requested prompt.
80
+ - Emit native text-area `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
81
81
 
82
82
  ---
83
83
 
@@ -32,7 +32,6 @@ Inherits the full family contract from `text-area._common.md`. Base family requi
32
32
 
33
33
  ## Optional Variables
34
34
 
35
- - `validation.minLength`
36
35
  - `appearance.templateOptions`
37
36
  - `security.sessionStateProtection`
38
37
 
@@ -59,7 +58,6 @@ pageItem {{itemName}} (
59
58
  }
60
59
  validation {
61
60
  valueRequired: {{validation.valueRequired}}
62
- minLength: {{validation.minLength}}
63
61
  maxLength: {{validation.maxLength}}
64
62
  }
65
63
  security {
@@ -73,7 +71,7 @@ pageItem {{itemName}} (
73
71
  # Conditional Rendering Rules
74
72
 
75
73
  - Use this overlay only for textual families where declarative length checks are relevant.
76
- - Keep validation limited to the requested length requirements.
74
+ - Keep validation limited to `valueRequired` and `maxLength` under the current grammar.
77
75
 
78
76
  ---
79
77
 
@@ -85,7 +85,7 @@ pageItem {{itemName}} (
85
85
  # Conditional Rendering Rules
86
86
 
87
87
  - Show optional defaults only when the generator needs them visible in the final output.
88
- - Remove family-specific `settings` and `search` properties that are not relevant to the requested prompt.
88
+ - Emit native text-autocomplete `settings {}` or `search {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
89
89
 
90
90
  ---
91
91
 
@@ -32,7 +32,6 @@ Inherits the full family contract from `text-autocomplete._common.md`. Base fami
32
32
 
33
33
  ## Optional Variables
34
34
 
35
- - `validation.minLength`
36
35
  - `appearance.templateOptions`
37
36
  - `security.sessionStateProtection`
38
37
 
@@ -59,7 +58,6 @@ pageItem {{itemName}} (
59
58
  }
60
59
  validation {
61
60
  valueRequired: {{validation.valueRequired}}
62
- minLength: {{validation.minLength}}
63
61
  maxLength: {{validation.maxLength}}
64
62
  }
65
63
  security {
@@ -73,7 +71,7 @@ pageItem {{itemName}} (
73
71
  # Conditional Rendering Rules
74
72
 
75
73
  - Use this overlay only for textual families where declarative length checks are relevant.
76
- - Keep validation limited to the requested length requirements.
74
+ - Keep validation limited to `valueRequired` and `maxLength` under the current grammar.
77
75
 
78
76
  ---
79
77
 
@@ -40,7 +40,6 @@ Define the canonical contract, conditional rules, and output skeleton for `text-
40
40
  | appearance.valuePlaceholder | optional | string | Placeholder or helper text shown before a value is entered. |
41
41
  | settings.* | optional | variant | Normalized family settings such as `submitWhenEnterPressed`, `disabled`, `sendOnPageSubmit`, `subtype`, `trimSpaces`, and `textCase`. |
42
42
  | validation.valueRequired | optional | boolean | Set when the item value is mandatory. |
43
- | validation.minLength | optional | number | Minimum character length when the scenario enforces it. |
44
43
  | validation.maxLength | optional | number | Maximum character length when the scenario enforces it. |
45
44
  | source.formRegion | conditional | alias | Required for form-bound items. |
46
45
  | source.column | conditional | string | Target column for form-bound items. |
@@ -82,7 +81,6 @@ pageItem {{itemName}} (
82
81
  }
83
82
  validation {
84
83
  valueRequired: {{validation.valueRequired}}
85
- minLength: {{validation.minLength}}
86
84
  maxLength: {{validation.maxLength}}
87
85
  }
88
86
  source {
@@ -109,7 +107,8 @@ pageItem {{itemName}} (
109
107
  - Emit `validation {}` only when the scenario requires declarative checks.
110
108
  - For form-bound textual columns, `validation.maxLength` is not optional in practice: set it to the bound column length exactly.
111
109
  - Keep width, placeholder, and format-mask attributes absent unless the scenario explicitly asks for them.
112
- - Keep the settings block lean and emit only the family-specific properties that are actually needed.
110
+ - Emit native text-field `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
111
+ - Do not emit `validation.minLength`; current item validation supports `valueRequired` and `maxLength`.
113
112
 
114
113
  ---
115
114
 
@@ -77,7 +77,7 @@ pageItem {{itemName}} (
77
77
  # Conditional Rendering Rules
78
78
 
79
79
  - Show optional defaults only when the generator needs them visible in the final output.
80
- - Remove family-specific settings that are not relevant to the requested prompt.
80
+ - Emit native text-field `settings {}` properties only when compiler/export evidence proves the specific plugin attributes; absence from the generic page-item grammar is not a rejection.
81
81
 
82
82
  ---
83
83