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.
- package/README.md +22 -5
- package/THIRD_PARTY_NOTICES.md +2 -2
- package/UPSTREAM.json +2 -2
- package/docs/assets/overview.en.png +0 -0
- package/docs/assets/overview.en.svg +89 -0
- package/docs/assets/overview.uk.png +0 -0
- package/docs/assets/overview.uk.svg +89 -0
- package/docs/en/README.md +41 -0
- package/docs/en/architecture.md +73 -0
- package/docs/en/getting-started.md +77 -0
- package/docs/en/maintenance.md +83 -0
- package/docs/en/tool-reference.md +85 -0
- package/docs/uk/README.md +41 -0
- package/docs/uk/architecture.md +73 -0
- package/docs/uk/getting-started.md +77 -0
- package/docs/uk/maintenance.md +83 -0
- package/docs/uk/tool-reference.md +85 -0
- package/extensions/apexlang/index.ts +19 -10
- package/extensions/lib/apexlang-cli.d.mts +1 -2
- package/extensions/lib/apexlang-cli.mjs +18 -13
- package/extensions/lib/apexlang-local-validate.mjs +83 -0
- package/extensions/lib/apexlang-local-validator.py +116 -0
- package/extensions/lib/apexlang-runtime-validate.mjs +76 -0
- package/package.json +2 -1
- package/skills/apexlang/APEXlang Skills and Workflows.md +325 -0
- package/skills/apexlang/README.md +6 -6
- package/skills/apexlang/RELEASE-NOTES.md +2 -2
- package/skills/apexlang/SKILL.md +24 -19
- package/skills/apexlang/agents/openai.yaml +4 -3
- package/skills/apexlang/assets/apex-generation/components.registry.json +1001 -16
- package/skills/apexlang/assets/apexlang/domains-catalog.json +6 -1
- package/skills/apexlang/assets/component-attributes.json +1924 -180
- package/skills/apexlang/assets/component-policies.json +19 -10
- package/skills/apexlang/assets/contracts/grammar-semantic-rules.json +134 -0
- package/skills/apexlang/assets/contracts/package-layers.json +56 -0
- package/skills/apexlang/assets/contracts/page-construction-packs.json +154 -0
- package/skills/apexlang/assets/contracts/page-patterns.json +119 -0
- package/skills/apexlang/assets/grammar/apexlang.ebnf +11743 -0
- package/skills/apexlang/assets/indexes/font-apex-icon-index.json +1699 -0
- package/skills/apexlang/assets/routing-catalog-main.json +11 -10
- package/skills/apexlang/assets/routing-load-policy.json +35 -9
- package/skills/apexlang/assets/rules-mapping.json +110 -2
- package/skills/apexlang/assets/rules.catalog.json +1298 -0
- package/skills/apexlang/assets/validator-fix-recipes.json +372 -17
- package/skills/apexlang/assets/workspace-intelligence.json +7 -10
- package/skills/apexlang/manifest.json +268 -12
- package/skills/apexlang/references/domains/README.md +1 -1
- package/skills/apexlang/references/domains/page-components/buttons.md +2 -2
- package/skills/apexlang/references/domains/page-components/page-items.md +3 -3
- package/skills/apexlang/references/domains/page-components/regions/region-display-selector/workflow-region-display-selector.md +69 -0
- package/skills/apexlang/references/domains/page-components/regions.md +1 -0
- package/skills/apexlang/references/domains/template-components/comments.md +61 -0
- package/skills/apexlang/references/domains/template-components/registry.md +2 -0
- package/skills/apexlang/references/domains/template-components/templates.md +47 -0
- package/skills/apexlang/references/domains/template-components/timeline.md +51 -0
- package/skills/apexlang/references/ops/one-message-router-contract.md +2 -2
- package/skills/apexlang/references/ops/runtime-gates/01-direct-sqlcl-import.md +1 -1
- package/skills/apexlang/references/ops/runtime-gates/02-direct-sqlcl-validate-gate.md +1 -1
- package/skills/apexlang/references/ops/runtime-gates.md +17 -16
- package/skills/apexlang/references/ops/sqlcl-agents/00-connection-gate.md +7 -7
- package/skills/apexlang/references/ops/sqlcl.md +7 -8
- package/skills/apexlang/references/policies/compiler-prop-map.md +6 -4
- package/skills/apexlang/references/policies/governance/00-governance.md +2 -2
- package/skills/apexlang/references/policies/memory-bank/00-guard/ai.guard.md +126 -922
- package/skills/apexlang/references/policies/memory-bank/20-data/apex.logic.md +3 -3
- package/skills/apexlang/references/policies/memory-bank/20-data/db.connection.md +9 -11
- package/skills/apexlang/references/policies/memory-bank/30-pages/apex.cards-page.md +95 -0
- package/skills/apexlang/references/policies/memory-bank/30-pages/apex.page.md +2 -2
- package/skills/apexlang/references/policies/memory-bank/30-pages/apex.smart-filter-search.md +145 -74
- package/skills/apexlang/references/policies/memory-bank/40-components/apex.region-interactions.md +9 -2
- package/skills/apexlang/references/policies/memory-bank/40-components/apex.region-media.md +6 -5
- package/skills/apexlang/references/policies/memory-bank/systemPatterns.md +9 -1
- package/skills/apexlang/references/workflows/apex-generation/agents/20-agent-draft.md +51 -232
- package/skills/apexlang/references/workflows/apex-generation/agents/30-agent-critique.md +49 -449
- package/skills/apexlang/references/workflows/apex-generation/agents/40-agent-revision.md +38 -238
- package/skills/apexlang/references/workflows/apex-generation/nlu/nlu-routing-test-matrix.md +8 -2
- package/skills/apexlang/references/workflows/apex-generation/nlu/nlu-routing-validation-notes.md +19 -3
- package/skills/apexlang/references/workflows/apex-generation/registry.md +15 -1
- package/skills/apexlang/references/workflows/apex-generation/templates.md +1 -1
- package/skills/apexlang/references/workflows/apex-generation.md +1 -1
- package/skills/apexlang/references/workflows/apexlang/apexlang-execution-model.md +5 -5
- package/skills/apexlang/references/workflows/apexlang/prompt-contracts.md +81 -10
- package/skills/apexlang/references/workflows/apexlang/workflow-create-app-from-fr-and-model.md +18 -7
- package/skills/apexlang/release-notes.json +156 -0
- package/skills/apexlang/runtime/grammar_contract.mjs +1166 -0
- package/skills/apexlang/runtime/internal/python/format_apexlang.py +210 -0
- package/skills/apexlang/runtime/internal/python/validate_apexlang.py +14142 -5843
- package/skills/apexlang/runtime/internal/python/validator_common.py +2 -0
- package/skills/apexlang/runtime/lib/catalogs.mjs +1026 -0
- package/skills/apexlang/runtime/lib/common.mjs +35 -0
- package/skills/apexlang/runtime/runtime.bundle.mjs +457 -57
- package/skills/apexlang/templates/items/combobox/combobox.explicit-defaults.md +1 -1
- package/skills/apexlang/templates/items/date-picker/date-picker._common.md +1 -1
- package/skills/apexlang/templates/items/date-picker/date-picker.explicit-defaults.md +1 -1
- package/skills/apexlang/templates/items/file-upload/file-upload._common.md +30 -24
- package/skills/apexlang/templates/items/file-upload/file-upload.compact-template.md +6 -0
- package/skills/apexlang/templates/items/file-upload/file-upload.explicit-defaults.md +23 -8
- package/skills/apexlang/templates/items/file-upload/file-upload.minimal.md +6 -0
- package/skills/apexlang/templates/items/hidden-item/hidden-item._common.md +1 -1
- package/skills/apexlang/templates/items/hidden-item/hidden-item.explicit-defaults.md +1 -1
- package/skills/apexlang/templates/items/items._common.md +3 -2
- package/skills/apexlang/templates/items/list-manager/list-manager.explicit-defaults.md +1 -1
- package/skills/apexlang/templates/items/markdown-editor/markdown-editor._common.md +1 -1
- package/skills/apexlang/templates/items/markdown-editor/markdown-editor.explicit-defaults.md +1 -1
- package/skills/apexlang/templates/items/number-field/number-field._common.md +8 -6
- package/skills/apexlang/templates/items/number-field/number-field.explicit-defaults.md +12 -2
- package/skills/apexlang/templates/items/popup-lov/popup-lov.explicit-defaults.md +1 -1
- package/skills/apexlang/templates/items/rich-text-editor/rich-text-editor._common.md +1 -1
- package/skills/apexlang/templates/items/rich-text-editor/rich-text-editor.explicit-defaults.md +1 -1
- package/skills/apexlang/templates/items/select-many/standard.md +1 -1
- package/skills/apexlang/templates/items/shuttle/shuttle.explicit-defaults.md +1 -1
- package/skills/apexlang/templates/items/switch/switch._common.md +8 -8
- package/skills/apexlang/templates/items/switch/switch.explicit-defaults.md +1 -1
- package/skills/apexlang/templates/items/text-area/text-area._common.md +2 -3
- package/skills/apexlang/templates/items/text-area/text-area.explicit-defaults.md +1 -1
- package/skills/apexlang/templates/items/text-area/text-area.required-length.md +1 -3
- package/skills/apexlang/templates/items/text-autocomplete/text-autocomplete.explicit-defaults.md +1 -1
- package/skills/apexlang/templates/items/text-autocomplete/text-autocomplete.required-length.md +1 -3
- package/skills/apexlang/templates/items/text-field/text-field._common.md +2 -3
- package/skills/apexlang/templates/items/text-field/text-field.explicit-defaults.md +1 -1
- package/skills/apexlang/templates/items/text-field/text-field.required-length.md +1 -3
- package/skills/apexlang/templates/page-examples/faceted-search/faceted-search.example.md +0 -5
- package/skills/apexlang/templates/page-examples/form-page/form-page.example.md +0 -9
- package/skills/apexlang/templates/page-examples/interactive-report-page/interactive-report-page.example.md +2 -2
- package/skills/apexlang/templates/page-examples/login-page/login-page.example.md +0 -8
- package/skills/apexlang/templates/page-examples/task-definition-initiated-tasks-page/task-definition-initiated-tasks-page.example.md +7 -17
- package/skills/apexlang/templates/page-examples/task-definition-my-tasks-page/task-definition-my-tasks-page.example.md +7 -65
- package/skills/apexlang/templates/page-examples/task-definition-task-details/task-definition-task-details.example.md +38 -201
- package/skills/apexlang/templates/region-components/calendar/calendar.custom-styling.md +3 -1
- package/skills/apexlang/templates/region-components/calendar/calendar.faceted-search.md +3 -2
- package/skills/apexlang/templates/region-components/cards/README.md +12 -4
- package/skills/apexlang/templates/region-components/cards/cards._common.md +176 -37
- package/skills/apexlang/templates/region-components/cards/cards._index.md +2 -1
- package/skills/apexlang/templates/region-components/cards/cards.refresh-after-dialog.md +46 -0
- package/skills/apexlang/templates/region-components/cards/cards.refresh-on-change.md +58 -0
- package/skills/apexlang/templates/region-components/cards/cards.rest-source.md +54 -18
- package/skills/apexlang/templates/region-components/cards/cards.standard.md +37 -21
- package/skills/apexlang/templates/region-components/chart/chart._series._common.md +1 -4
- package/skills/apexlang/templates/region-components/chart/chart.pie.md +6 -2
- package/skills/apexlang/templates/region-components/chart/chart.status-meter-gauge.md +1 -1
- package/skills/apexlang/templates/region-components/chart/chart.stock.md +2 -0
- package/skills/apexlang/templates/region-components/chart/features/chart.feature-chart-links.md +9 -7
- package/skills/apexlang/templates/region-components/faceted-search/faceted-search._common.md +1 -14
- package/skills/apexlang/templates/region-components/form/form._items._common.md +1 -5
- package/skills/apexlang/templates/region-components/interactive-report/interactive-report._columns._common.md +2 -6
- package/skills/apexlang/templates/region-components/interactive-report/interactive-report.page-header-actions.md +1 -7
- package/skills/apexlang/templates/region-components/list/README.md +1 -1
- package/skills/apexlang/templates/region-components/list/list._common.md +1 -1
- package/skills/apexlang/templates/region-components/map/map.backgrounds.md +12 -10
- package/skills/apexlang/templates/region-components/map/map.layer.extruded-polygons.md +16 -12
- package/skills/apexlang/templates/region-components/map/map.layer.heat-map.md +10 -7
- package/skills/apexlang/templates/region-components/map/map.layer.lines.md +10 -8
- package/skills/apexlang/templates/region-components/map/map.layer.polygons.md +21 -18
- package/skills/apexlang/templates/region-components/map/map.region.background-custom.md +25 -19
- package/skills/apexlang/templates/region-components/map/map.region.background-shared.md +19 -13
- package/skills/apexlang/templates/region-components/map/map.region.bbox-sql.md +13 -13
- package/skills/apexlang/templates/region-components/map/map.region.bbox-static.md +2 -2
- package/skills/apexlang/templates/region-components/map/map.region.browser-location.md +3 -7
- package/skills/apexlang/templates/region-components/map/map.region.init-position-sql.md +7 -7
- package/skills/apexlang/templates/region-components/region-display-selector/README.md +5 -2
- package/skills/apexlang/templates/region-components/region-display-selector/region-display-selector._common.md +60 -7
- package/skills/apexlang/templates/region-components/region-display-selector/region-display-selector._index.md +4 -1
- package/skills/apexlang/templates/region-components/region-display-selector/region-display-selector.permutations.md +55 -0
- package/skills/apexlang/templates/region-components/region-display-selector/region-display-selector.standard.md +91 -5
- package/skills/apexlang/templates/region-components/smart-filter-search/README.md +6 -2
- package/skills/apexlang/templates/region-components/smart-filter-search/smart-filter-search._common.md +107 -46
- package/skills/apexlang/templates/region-components/smart-filter-search/smart-filter-search._index.md +4 -3
- package/skills/apexlang/templates/region-components/smart-filter-search/smart-filter-search.standard.md +33 -17
- package/skills/apexlang/templates/shared-components/component-settings/component-settings._common.md +1 -0
- package/skills/apexlang/templates/shared-components/component-settings.example.md +1 -0
- package/skills/apexlang/templates/shared-components/email-templates.example.md +1 -1
- package/skills/apexlang/templates/shared-components/rest-data-sources/example_rest_data_source.example.md +40 -46
- package/skills/apexlang/templates/shared-components/task-definitions/action-task.example.md +2 -30
- package/skills/apexlang/templates/shared-components/task-definitions/approve-request.example.md +3 -31
- package/skills/apexlang/templates/template-components/README.md +27 -15
- package/skills/apexlang/templates/template-components/avatar/README.md +56 -0
- package/skills/apexlang/templates/template-components/avatar/avatar._common.md +149 -0
- package/skills/apexlang/templates/template-components/avatar/avatar._index.md +42 -0
- package/skills/apexlang/templates/template-components/{avatar._template_options.md → avatar/avatar._template_options.md} +1 -1
- package/skills/apexlang/templates/template-components/avatar/avatar.report-icon.md +48 -0
- package/skills/apexlang/templates/template-components/avatar/avatar.report-image-url-column.md +62 -0
- package/skills/apexlang/templates/template-components/avatar/avatar.report-initials.md +54 -0
- package/skills/apexlang/templates/template-components/badge/README.md +38 -0
- package/skills/apexlang/templates/template-components/badge/badge._common.md +183 -0
- package/skills/apexlang/templates/template-components/badge/badge._index.md +20 -0
- package/skills/apexlang/templates/template-components/badge/badge.report-link.md +66 -0
- package/skills/apexlang/templates/template-components/badge/badge.report-minimal.md +76 -0
- package/skills/apexlang/templates/template-components/comments/README.md +20 -0
- package/skills/apexlang/templates/template-components/comments/comments._common.md +43 -0
- package/skills/apexlang/templates/template-components/comments/comments._index.md +25 -0
- package/skills/apexlang/templates/template-components/{comments._template_options.md → comments/comments._template_options.md} +2 -1
- package/skills/apexlang/templates/template-components/comments/comments.apex-task-comments.md +77 -0
- package/skills/apexlang/templates/template-components/comments/comments.partial-column.md +120 -0
- package/skills/apexlang/templates/template-components/comments/comments.permutations.md +425 -0
- package/skills/apexlang/templates/template-components/content-row/README.md +1 -1
- package/skills/apexlang/templates/template-components/content-row/content-row._common.md +1 -1
- package/skills/apexlang/templates/template-components/content-row/content-row._index.md +1 -1
- package/skills/apexlang/templates/template-components/content-row/content-row._template_options.md +1 -1
- package/skills/apexlang/templates/template-components/flexbox-container/README.md +9 -0
- package/skills/apexlang/templates/template-components/flexbox-container/flexbox-container._index.md +13 -0
- package/skills/apexlang/templates/template-components/media-list/README.md +100 -0
- package/skills/apexlang/templates/template-components/media-list/media-list._common.md +174 -0
- package/skills/apexlang/templates/template-components/media-list/media-list._index.md +50 -0
- package/skills/apexlang/templates/template-components/{media-list._template_options.md → media-list/media-list._template_options.md} +8 -2
- package/skills/apexlang/templates/template-components/media-list/media-list.partial.md +50 -0
- package/skills/apexlang/templates/template-components/media-list/media-list.report-avatar-badge.md +76 -0
- package/skills/apexlang/templates/template-components/media-list/media-list.report-base.md +71 -0
- package/skills/apexlang/templates/template-components/media-list/media-list.report-grouped.md +40 -0
- package/skills/apexlang/templates/template-components/media-list/media-list.report-layouts.md +50 -0
- package/skills/apexlang/templates/template-components/media-list/media-list.report-link.md +53 -0
- package/skills/apexlang/templates/template-components/metric-card/README.md +19 -4
- package/skills/apexlang/templates/template-components/metric-card/metric-card._common.md +122 -29
- package/skills/apexlang/templates/template-components/metric-card/metric-card._index.md +6 -0
- package/skills/apexlang/templates/template-components/metric-card/metric-card._template_options.md +47 -2
- package/skills/apexlang/templates/template-components/metric-card/metric-card.partial-minimal.md +51 -0
- package/skills/apexlang/templates/template-components/metric-card/metric-card.permutations.md +56 -0
- package/skills/apexlang/templates/template-components/metric-card/metric-card.report-avatar-badge.md +98 -0
- package/skills/apexlang/templates/template-components/metric-card/metric-card.report-grouping-selection.md +131 -0
- package/skills/apexlang/templates/template-components/metric-card/metric-card.report-link.md +66 -0
- package/skills/apexlang/templates/template-components/metric-card/metric-card.report-minimal.md +97 -0
- package/skills/apexlang/templates/template-components/template-components.registry.json +90 -1
- package/skills/apexlang/templates/template-components/timeline/README.md +19 -0
- package/skills/apexlang/templates/template-components/timeline/timeline._common.md +43 -0
- package/skills/apexlang/templates/template-components/timeline/timeline._index.md +24 -0
- package/skills/apexlang/templates/template-components/{timeline._template_options.md → timeline/timeline._template_options.md} +2 -1
- package/skills/apexlang/templates/template-components/timeline/timeline.permutations.md +399 -0
- package/skills/apexlang/templates/template-components/timeline/timeline.report-sample-data.md +168 -0
- package/skills/apexlang/templates/workspace-components/credentials/credentials-for-open-ai.example.md +1 -1
- package/skills/apexlang/templates/workspace-components/generative-ai-services/open-ai.example.md +8 -6
- package/skills/apexlang/tools/apexctl.mjs +167 -4
- package/skills/apexlang/tools/compiler-truth-audit.mjs +95 -63
- package/skills/apexlang/tools/query-valid-props-context.mjs +30 -0
- package/skills/apexlang/tools/query-valid-props-normalize.mjs +1 -0
- package/skills/apexlang/tools/query-valid-props-runtime.mjs +13 -8
- package/skills/apexlang/tools/query-valid-props-semantics.mjs +391 -0
- package/skills/apexlang/tools/query-valid-props-template-components.mjs +15 -1
- package/skills/apexlang/tools/query-valid-props.mjs +198 -216
- /package/skills/apexlang/templates/template-components/{badge._template_options.md → badge/badge._template_options.md} +0 -0
- /package/skills/apexlang/templates/template-components/{flexbox-container._template_options.md → flexbox-container/flexbox-container._template_options.md} +0 -0
|
@@ -292,21 +292,30 @@
|
|
|
292
292
|
},
|
|
293
293
|
{
|
|
294
294
|
"id": "REGION_RULE_006",
|
|
295
|
-
"scope": "region.
|
|
296
|
-
"
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
},
|
|
300
|
-
{
|
|
301
|
-
"regionType": "Chart"
|
|
302
|
-
}
|
|
303
|
-
],
|
|
295
|
+
"scope": "region.chart.interactions",
|
|
296
|
+
"when": {
|
|
297
|
+
"regionType": "Chart"
|
|
298
|
+
},
|
|
304
299
|
"forbid": [
|
|
305
300
|
"links",
|
|
306
301
|
"actions"
|
|
307
302
|
],
|
|
308
303
|
"severity": "error",
|
|
309
|
-
"message": "
|
|
304
|
+
"message": "Chart regions must not own links or actions; model navigation through adjacent components."
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"id": "REGION_RULE_019",
|
|
308
|
+
"scope": "region.metricCard.interactions",
|
|
309
|
+
"when": {
|
|
310
|
+
"regionType": "Metric Card"
|
|
311
|
+
},
|
|
312
|
+
"requireValues": {
|
|
313
|
+
"actions.position": [
|
|
314
|
+
"link"
|
|
315
|
+
]
|
|
316
|
+
},
|
|
317
|
+
"severity": "error",
|
|
318
|
+
"message": "Metric Card row actions use the compiler-backed link position and do not use action templates."
|
|
310
319
|
},
|
|
311
320
|
{
|
|
312
321
|
"id": "REGION_RULE_007",
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"purpose": "Compact renderer requirements selected by grammar components and variant conditions.",
|
|
4
|
+
"rules": [
|
|
5
|
+
{
|
|
6
|
+
"id": "canonical-page-identity",
|
|
7
|
+
"match": { "components": ["page"] },
|
|
8
|
+
"level": "must",
|
|
9
|
+
"scope": "page-local",
|
|
10
|
+
"check": "canonical-page-identity",
|
|
11
|
+
"requirements": [
|
|
12
|
+
"Declare the numeric page id in both `page <id> (` and `page: <id>`.",
|
|
13
|
+
"For pNNNNN-<slug>.apx, set alias to the uppercase slug with hyphens preserved."
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "normal-static-content-slot",
|
|
18
|
+
"match": { "conditions": ["page.pageMode=normal", "region.type=staticContent"] },
|
|
19
|
+
"level": "must",
|
|
20
|
+
"scope": "page-local",
|
|
21
|
+
"check": "normal-static-content-slot",
|
|
22
|
+
"requirements": [
|
|
23
|
+
"Place static-content regions in `layout.slot: body`; `contentBody` is for modal-dialog content."
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "normal-page-breadcrumb-region",
|
|
28
|
+
"match": { "conditions": ["page.pageMode=normal"] },
|
|
29
|
+
"level": "must",
|
|
30
|
+
"scope": "page-local",
|
|
31
|
+
"check": "normal-page-breadcrumb-region",
|
|
32
|
+
"requirements": [
|
|
33
|
+
"Render a named `region breadcrumb (` block with `type: breadcrumb`, `source.breadcrumb: @breadcrumb`, and `layout.slot: breadcrumbBar`."
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "normal-page-breadcrumb-entry",
|
|
38
|
+
"match": { "conditions": ["page.pageMode=normal"] },
|
|
39
|
+
"level": "must",
|
|
40
|
+
"scope": "app-local",
|
|
41
|
+
"check": "shared-breadcrumb-entry",
|
|
42
|
+
"requirements": [
|
|
43
|
+
"Add a shared breadcrumb entry whose pageNumber matches this non-modal page."
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "normal-page-body-regions",
|
|
48
|
+
"match": { "components": ["region"], "conditions": ["page.pageMode=normal"] },
|
|
49
|
+
"level": "must",
|
|
50
|
+
"scope": "page-local",
|
|
51
|
+
"check": "normal-page-body-regions",
|
|
52
|
+
"requirements": [
|
|
53
|
+
"Place every non-breadcrumb region on a normal page in `layout.slot: body`; reserve `contentBody` for modal-dialog content."
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "normal-page-template-decision",
|
|
58
|
+
"match": { "conditions": ["page.pageMode=normal"] },
|
|
59
|
+
"level": "decision",
|
|
60
|
+
"scope": "page-local",
|
|
61
|
+
"requirements": ["Do not invent page template references."],
|
|
62
|
+
"decisions": [
|
|
63
|
+
{
|
|
64
|
+
"when": "No special page layout is requested or selected.",
|
|
65
|
+
"use": "appearance.pageTemplate: @/standard"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"when": "A special page layout is requested.",
|
|
69
|
+
"use": "Its compiler- or contract-verified template; stop if unavailable."
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"id": "static-content-region",
|
|
75
|
+
"match": { "conditions": ["region.type=staticContent"] },
|
|
76
|
+
"level": "decision",
|
|
77
|
+
"scope": "page-local",
|
|
78
|
+
"requirements": [
|
|
79
|
+
"Use `source.text` for plain text or `source.htmlCode` only when HTML is requested; do not add SQL.",
|
|
80
|
+
"Do not invent region template references."
|
|
81
|
+
],
|
|
82
|
+
"decisions": [
|
|
83
|
+
{
|
|
84
|
+
"when": "Ordinary body content with no special shell.",
|
|
85
|
+
"use": "appearance.template: @/standard"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"when": "A special shell or interaction pattern is requested.",
|
|
89
|
+
"use": "A compiler- or contract-verified region template; stop if unavailable."
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "same-app-button-target",
|
|
95
|
+
"match": { "conditions": ["button.action=redirectThisApp"] },
|
|
96
|
+
"level": "must",
|
|
97
|
+
"scope": "page-local",
|
|
98
|
+
"check": "same-app-button-target",
|
|
99
|
+
"requirements": [
|
|
100
|
+
"Use an object-valued `behavior.target` property; scalar page numbers and f?p URL strings are invalid."
|
|
101
|
+
],
|
|
102
|
+
"shape": "target: {\n page: <task-page-number>\n clearCache: <task-page-number-if-needed>\n}"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"id": "button-presentation-evidence",
|
|
106
|
+
"match": { "components": ["button"] },
|
|
107
|
+
"level": "decision",
|
|
108
|
+
"scope": "page-local",
|
|
109
|
+
"requirements": [
|
|
110
|
+
"Derive `layout.slot` from the verified parent region template; do not infer it from the region type alone.",
|
|
111
|
+
"Emit alignment, row/column flags, `hot`, icons, and template options only from explicit task intent or a selected construction contract.",
|
|
112
|
+
"Do not invent button template references or presentation choices."
|
|
113
|
+
],
|
|
114
|
+
"decisions": [
|
|
115
|
+
{
|
|
116
|
+
"when": "Text-only button with no specialized template.",
|
|
117
|
+
"use": "appearance.buttonTemplate: @/text"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"when": "The task explicitly marks the button primary.",
|
|
121
|
+
"use": "appearance.hot: true"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"when": "The task requests an icon.",
|
|
125
|
+
"use": "Select @/text-with-icon or @/icon from label intent; do not guess."
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"when": "Unsaved-change behavior is relevant.",
|
|
129
|
+
"use": "Apply workflow or app policy; do not force doNotCheck globally."
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
}
|
|
133
|
+
]
|
|
134
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"purpose": "Progressive public-package layer contract. The public skill keeps one entrypoint while assets are grouped by load responsibility.",
|
|
4
|
+
"decision_order": [
|
|
5
|
+
"apexlang-core",
|
|
6
|
+
"apexlang-metadata",
|
|
7
|
+
"apexlang-patterns",
|
|
8
|
+
"apexlang-runtime"
|
|
9
|
+
],
|
|
10
|
+
"trace_required": true,
|
|
11
|
+
"layers": [
|
|
12
|
+
{
|
|
13
|
+
"id": "apexlang-core",
|
|
14
|
+
"summary": "Router, workflow entrypoints, local context discovery, stop conditions, and import approval rules.",
|
|
15
|
+
"required_paths": ["SKILL.md", "assets/routing-catalog-main.json", "assets/routing-load-policy.json", "assets/workspace-intelligence.json"],
|
|
16
|
+
"load_policy": "always_first"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "apexlang-metadata",
|
|
20
|
+
"summary": "Grammar, compiler property lookup tools, compiler-truth audit, and curated fallback component attributes.",
|
|
21
|
+
"required_paths": [
|
|
22
|
+
"assets/grammar/apexlang.ebnf",
|
|
23
|
+
"assets/contracts/grammar-semantic-rules.json",
|
|
24
|
+
"runtime/grammar_contract.mjs",
|
|
25
|
+
"tools/query-valid-props.mjs",
|
|
26
|
+
"tools/compiler-truth-audit.mjs",
|
|
27
|
+
"assets/component-attributes.json"
|
|
28
|
+
],
|
|
29
|
+
"load_policy": "when_structural_legality_or_validation_is_needed",
|
|
30
|
+
"model_context_policy": "tool_results_only",
|
|
31
|
+
"runtime_only_paths": ["assets/grammar/apexlang.ebnf", "assets/component-attributes.json"],
|
|
32
|
+
"model_interfaces": ["tools/query-valid-props.mjs", "tools/compiler-truth-audit.mjs"]
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "apexlang-patterns",
|
|
36
|
+
"summary": "Structured page construction packs plus selected templates and domain references.",
|
|
37
|
+
"required_paths": [
|
|
38
|
+
"assets/contracts/page-patterns.json",
|
|
39
|
+
"assets/contracts/page-construction-packs.json",
|
|
40
|
+
"assets/apex-generation/components.registry.json",
|
|
41
|
+
"templates",
|
|
42
|
+
"references/domains/README.md"
|
|
43
|
+
],
|
|
44
|
+
"load_policy": "when_generation_requires_page_or_app_pattern_selection",
|
|
45
|
+
"model_context_policy": "resolver_projection_only",
|
|
46
|
+
"model_interfaces": ["tools/apexctl.mjs context resolve"]
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "apexlang-runtime",
|
|
50
|
+
"summary": "SQLcl preflight, live validate/import gates, and failure repair loop references.",
|
|
51
|
+
"required_paths": ["references/ops/sqlcl.md", "references/ops/runtime-gates.md", "runtime/runtime.bundle.mjs", "assets/validator-fix-recipes.json"],
|
|
52
|
+
"load_policy": "when_live_db_or_runtime_validation_is_requested_or_required",
|
|
53
|
+
"model_context_policy": "projected_repair_results_only"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"purpose": "Renderer-facing construction packs for common page workflows. Each pack declares inputs, emitted components, validation gates, and follow-on references.",
|
|
4
|
+
"selection_order": ["visual-summary-cards", "report-modal-form", "dashboard", "master-detail", "smart-filter-search", "faceted-search", "carousel-static-content", "lov-backed-form"],
|
|
5
|
+
"packs": [
|
|
6
|
+
{
|
|
7
|
+
"id": "visual-summary-cards",
|
|
8
|
+
"pattern_id": "visual-summary-cards",
|
|
9
|
+
"inputs": {
|
|
10
|
+
"required": ["app_path", "page_id", "cards_source", "source_mode", "title_mapping"],
|
|
11
|
+
"optional": ["subtitle_mapping", "body_mapping", "secondary_body_mapping", "primary_key_mapping", "icon_mapping", "media_mapping", "badge_mapping", "conditional_style_mapping", "card_target", "refresh_trigger", "page_items_to_submit", "fixed_grid_columns", "authorization_scheme", "rest_web_credential", "rest_allowed_url_prefixes"]
|
|
12
|
+
},
|
|
13
|
+
"components": ["page:visualSummary", "region:cards", "action:cardNavigationWhenRequested", "dynamicAction:cardsRefreshWhenRequested"],
|
|
14
|
+
"renderer_rules": ["emit_cards_source_mapping_first", "select_exact_sql_or_rest_source_shape", "prefer_native_icon_media_badge_and_action_blocks", "emit_component_appearance_layout_grid", "omit_only_fixed_grid_columns_for_ut_responsive_auto_layout", "project_only_allowlisted_conditional_css_tokens", "emit_exact_refresh_dynamic_action_when_requested", "apply_page_region_action_and_rest_security", "exclude_filter_and_search_orchestration", "validate_generated_apx"],
|
|
15
|
+
"validation_rules": ["CARDS_VISUAL_SUMMARY_PATTERN_REQUIRED_001", "CARDS_SOURCE_MAPPING_REQUIRED_001", "CARDS_INTERACTION_BOUNDARY_REQUIRED_001", "CARDS_SECURITY_REQUIRED_001", "CARDS_CONDITIONAL_STYLE_ALLOWLIST_REQUIRED_001", "DEFAULT_GUIDANCE_LAYER_REQUIRED_001"]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "report-modal-form",
|
|
19
|
+
"pattern_id": "report-modal-form",
|
|
20
|
+
"inputs": {
|
|
21
|
+
"required": ["app_path", "report_page_id", "form_page_id", "source_table_or_query", "primary_key", "report_columns", "form_items"],
|
|
22
|
+
"optional": ["authorization_scheme", "breadcrumb_parent", "create_button_label", "edit_action_label"]
|
|
23
|
+
},
|
|
24
|
+
"components": ["page:report", "region:interactiveReport", "button:create", "page:modalForm", "process:formAutomaticRowProcessing"],
|
|
25
|
+
"renderer_rules": ["emit_ir_first", "query_property_mapper_for_non_exact_shapes", "validate_generated_apx"],
|
|
26
|
+
"validation_rules": ["INTERACTIVE_REPORT_COLUMN_COVERAGE_001", "FORM_DRAWER_DEFAULT_END_REQUIRED_001"]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "dashboard",
|
|
30
|
+
"pattern_id": "dashboard",
|
|
31
|
+
"inputs": {
|
|
32
|
+
"required": ["app_path", "page_id", "metrics", "chart_series"],
|
|
33
|
+
"optional": ["supporting_report_source", "time_filter_item", "drill_targets"]
|
|
34
|
+
},
|
|
35
|
+
"components": ["page:dashboard", "templateComponent:metricCard", "region:chart", "region:reportOrCards"],
|
|
36
|
+
"renderer_rules": ["emit_ir_first", "prefer_metric_card_template_components", "validate_generated_apx"],
|
|
37
|
+
"validation_rules": ["DASHBOARD_KPI_METRIC_CARD_REQUIRED_001", "DEFAULT_GUIDANCE_LAYER_REQUIRED_001"]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "master-detail",
|
|
41
|
+
"pattern_id": "master-detail",
|
|
42
|
+
"inputs": {
|
|
43
|
+
"required": ["app_path", "page_id", "master_source", "detail_source", "join_key"],
|
|
44
|
+
"optional": ["modal_detail_target", "map_layer_target", "refresh_behavior"]
|
|
45
|
+
},
|
|
46
|
+
"components": ["region:masterResults", "region:detailResults", "dynamicAction:selectionRefresh"],
|
|
47
|
+
"renderer_rules": ["emit_ir_first", "explicit_refresh_for_child_context", "validate_generated_apx"],
|
|
48
|
+
"validation_rules": ["MASTER_DETAIL_DYNAMIC_ACTION_REQUIRED_001", "MAP_LAYER_CONTEXT_BIND_REQUIRED_001"]
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"id": "smart-filter-search",
|
|
52
|
+
"pattern_id": "smart-filter-search",
|
|
53
|
+
"inputs": {
|
|
54
|
+
"required": ["app_path", "page_id", "results_source", "base_region_static_id", "searchable_attributes", "match_semantics", "min_chars", "max_len", "tokenization_policy", "settings_contract", "security_scope", "performance_readiness", "generation_plan"],
|
|
55
|
+
"optional": ["results_region_alias", "results_region_type", "authorization_scheme"]
|
|
56
|
+
},
|
|
57
|
+
"contract": {
|
|
58
|
+
"base_region": {
|
|
59
|
+
"count": 1,
|
|
60
|
+
"static_id_required": true,
|
|
61
|
+
"allowed_source_modes": ["secured_view", "canonical_sql"],
|
|
62
|
+
"apex_version": "24.2",
|
|
63
|
+
"allowed_region_types": ["classicReport", "cards", "map", "calendar"],
|
|
64
|
+
"canonical_sql_snapshot_required": true,
|
|
65
|
+
"object_evidence_must_match_source": true,
|
|
66
|
+
"secured_view_evidence": ["object", "source", "object_type:view", "secured:true"],
|
|
67
|
+
"allow_sql_auto_modification": false
|
|
68
|
+
},
|
|
69
|
+
"search": {
|
|
70
|
+
"searchable_attributes_allowlist_required": true,
|
|
71
|
+
"match_semantics": ["contains", "starts", "exact"],
|
|
72
|
+
"match_semantics_count": 1,
|
|
73
|
+
"match_semantic_definitions": {
|
|
74
|
+
"contains": "normalized_token_within_value",
|
|
75
|
+
"starts": "normalized_value_starts_with_token",
|
|
76
|
+
"exact": "normalized_value_equals_token"
|
|
77
|
+
},
|
|
78
|
+
"min_chars_required": true,
|
|
79
|
+
"min_chars": {"type": "positive_integer", "minimum": 1},
|
|
80
|
+
"max_len_required": true,
|
|
81
|
+
"max_len": {"type": "positive_integer", "minimum": 1, "greater_than_or_equal_to": "min_chars"},
|
|
82
|
+
"tokenization_policy_required": true,
|
|
83
|
+
"tokenization_policy": {
|
|
84
|
+
"required_decisions": ["trimming", "repeated_whitespace", "punctuation_boundaries", "case_normalization", "accent_normalization", "duplicate_tokens", "token_order"],
|
|
85
|
+
"consistency_scope": ["search", "suggestions", "refinements"]
|
|
86
|
+
},
|
|
87
|
+
"compiler_evidence_required": true,
|
|
88
|
+
"unsupported_behavior_outcome": "stop_missing_inputs",
|
|
89
|
+
"allow_base_sql_rewrite": false
|
|
90
|
+
},
|
|
91
|
+
"settings": {
|
|
92
|
+
"compiler_evidence_required": true,
|
|
93
|
+
"required_properties": ["maxSuggestionChips", "moreFiltersSuggestionChip", "compactNosThreshold", "showTotalRowCount"],
|
|
94
|
+
"maxSuggestionChips": 100,
|
|
95
|
+
"moreFiltersSuggestionChip": true,
|
|
96
|
+
"compactNosThreshold": 10000,
|
|
97
|
+
"showTotalRowCount": "explicit_boolean",
|
|
98
|
+
"totalRowCountLabel": {
|
|
99
|
+
"when": {"showTotalRowCount": true},
|
|
100
|
+
"value": "Results"
|
|
101
|
+
},
|
|
102
|
+
"unsupported_property_outcome": "stop_missing_inputs"
|
|
103
|
+
},
|
|
104
|
+
"security": {
|
|
105
|
+
"suggestions_use_base_dataset": true,
|
|
106
|
+
"authorization_and_condition_match_base": true
|
|
107
|
+
},
|
|
108
|
+
"performance": {
|
|
109
|
+
"required_evidence": ["index_strategy", "statistics_status", "expected_cardinality"]
|
|
110
|
+
},
|
|
111
|
+
"generation_plan": {
|
|
112
|
+
"required_sections": ["base_source", "search", "settings_contract", "security_scope", "performance_readiness", "runtime_acceptance"],
|
|
113
|
+
"compiler_evidence": ["match_semantics", "min_chars", "max_len", "tokenization_policy"]
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"components": ["region:smartFilters", "filter:search", "region:filteredResults"],
|
|
117
|
+
"renderer_rules": ["emit_smart_filters_before_results", "target_exactly_one_base_region", "require_proven_base_source_contract", "query_compiler_truth_for_settings", "stop_on_unrepresentable_search_behavior", "enforce_compiler_supported_ticket_settings", "require_performance_readiness_evidence", "validate_generated_apx"],
|
|
118
|
+
"validation_rules": ["SMART_FILTER_TOPOLOGY_REQUIRED_001", "SMART_FILTER_RESULTS_REGION_REQUIRED_001", "SMART_FILTER_RESULTS_REGION_ORDER_REQUIRED_001", "SMART_FILTER_BASE_SOURCE_CONTRACT_REQUIRED_001", "SMART_FILTER_SEARCH_SOURCE_REQUIRED_001", "SMART_FILTER_SEARCHABLE_COLUMNS_BASE_PROJECTION_REQUIRED_001", "SMART_FILTER_SECURITY_SCOPE_MATCH_REQUIRED_001", "SMART_FILTER_REFINEMENT_SOURCE_SCOPE_REQUIRED_001", "SMART_FILTER_SEARCH_BEHAVIOR_CONTRACT_REQUIRED_001", "SMART_FILTER_SETTINGS_VALUE_REQUIRED_001", "SMART_FILTER_PERFORMANCE_READINESS_REQUIRED_001", "SMART_FILTER_ACCESSIBILITY_GUIDANCE_REQUIRED_001", "SMART_FILTER_RUNTIME_ACCEPTANCE_REQUIRED_001"]
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"id": "faceted-search",
|
|
122
|
+
"pattern_id": "faceted-search",
|
|
123
|
+
"inputs": {
|
|
124
|
+
"required": ["app_path", "page_id", "results_source", "facet_columns"],
|
|
125
|
+
"optional": ["results_region_alias", "default_filters", "saved_report"]
|
|
126
|
+
},
|
|
127
|
+
"components": ["region:facetedSearch", "region:results", "facet:items"],
|
|
128
|
+
"renderer_rules": ["emit_ir_first", "target_results_region_only", "validate_generated_apx"],
|
|
129
|
+
"validation_rules": ["FACET_SOURCE_DATA_TYPE_REQUIRED_001"]
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"id": "carousel-static-content",
|
|
133
|
+
"pattern_id": "carousel-static-content",
|
|
134
|
+
"inputs": {
|
|
135
|
+
"required": ["app_path", "page_id", "content_items"],
|
|
136
|
+
"optional": ["action_targets", "template_variant", "empty_state"]
|
|
137
|
+
},
|
|
138
|
+
"components": ["region:staticContent", "templateComponent:contentRowOrCards"],
|
|
139
|
+
"renderer_rules": ["emit_ir_first", "avoid_unsupported_custom_html", "validate_generated_apx"],
|
|
140
|
+
"validation_rules": ["GENERATION_PLAN_REQUIRED_001"]
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"id": "lov-backed-form",
|
|
144
|
+
"pattern_id": "lov-backed-form",
|
|
145
|
+
"inputs": {
|
|
146
|
+
"required": ["app_path", "page_id", "form_source", "lov_source", "display_column", "return_column", "target_item"],
|
|
147
|
+
"optional": ["display_null", "cascading_parent_item", "authorization_scheme"]
|
|
148
|
+
},
|
|
149
|
+
"components": ["sharedComponent:lov", "item:selectListOrPopupLov", "process:formAutomaticRowProcessing"],
|
|
150
|
+
"renderer_rules": ["emit_ir_first", "verify_lov_columns", "query_property_mapper_for_item_variant", "validate_generated_apx"],
|
|
151
|
+
"validation_rules": ["COMPILER_TRUTH_EVIDENCE_REQUIRED_001"]
|
|
152
|
+
}
|
|
153
|
+
]
|
|
154
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"purpose": "Compact selector catalog for supported APEX page patterns. Use this before Markdown templates when choosing a page construction path.",
|
|
4
|
+
"authority": {
|
|
5
|
+
"syntax": "assets/grammar/apexlang.ebnf",
|
|
6
|
+
"semantics": "tools/query-valid-props.mjs and compiler-truth audit",
|
|
7
|
+
"fallback_policy": "assets/component-attributes.json is curated fallback context only"
|
|
8
|
+
},
|
|
9
|
+
"patterns": [
|
|
10
|
+
{
|
|
11
|
+
"id": "visual-summary-cards",
|
|
12
|
+
"name": "Visual summary cards",
|
|
13
|
+
"intent_keywords": ["visual summary", "people cards", "person cards", "product cards", "status cards", "status tiles", "entity cards", "cards region", "cards"],
|
|
14
|
+
"selection_require_any": ["visual summary", "people cards", "person cards", "product cards", "status cards", "status tiles", "entity cards", "cards region", "cards"],
|
|
15
|
+
"selection_exclude_any": ["faceted search", "facets", "filters", "filtering", "smart filters", "search page", "search cards", "cards search"],
|
|
16
|
+
"required_inputs": ["cards_source", "source_mode", "title_mapping"],
|
|
17
|
+
"generated_components": ["cards_region"],
|
|
18
|
+
"validation_rules": [
|
|
19
|
+
"CARDS_VISUAL_SUMMARY_PATTERN_REQUIRED_001",
|
|
20
|
+
"CARDS_SOURCE_MAPPING_REQUIRED_001",
|
|
21
|
+
"CARDS_INTERACTION_BOUNDARY_REQUIRED_001",
|
|
22
|
+
"CARDS_SECURITY_REQUIRED_001",
|
|
23
|
+
"CARDS_CONDITIONAL_STYLE_ALLOWLIST_REQUIRED_001"
|
|
24
|
+
],
|
|
25
|
+
"reference_paths": [
|
|
26
|
+
"references/policies/memory-bank/30-pages/apex.cards-page.md",
|
|
27
|
+
"templates/region-components/cards/cards._common.md"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"id": "report-modal-form",
|
|
32
|
+
"name": "Report plus modal form",
|
|
33
|
+
"intent_keywords": ["report", "interactive report", "crud", "modal form", "drawer form", "create edit"],
|
|
34
|
+
"selection_require_any": ["crud", "modal form", "drawer form", "create edit"],
|
|
35
|
+
"required_inputs": ["source_table_or_query", "primary_key", "report_columns", "form_items", "target_page_ids"],
|
|
36
|
+
"generated_components": ["interactive_report_region", "modal_form_page", "create_button", "edit_link_or_row_action", "automatic_row_processing"],
|
|
37
|
+
"validation_rules": [
|
|
38
|
+
"FORM_DRAWER_DEFAULT_END_REQUIRED_001",
|
|
39
|
+
"INTERACTIVE_REPORT_COLUMN_COVERAGE_001",
|
|
40
|
+
"DECLARATIVE_BUTTON_TARGET_REQUIRED"
|
|
41
|
+
],
|
|
42
|
+
"reference_paths": [
|
|
43
|
+
"templates/page-examples/interactive-report-page/interactive-report-page.example.md",
|
|
44
|
+
"templates/page-examples/form-page/form-page.example.md",
|
|
45
|
+
"references/domains/page-components/regions/form/workflow-modal-crud-form.md"
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "dashboard",
|
|
50
|
+
"name": "Dashboard",
|
|
51
|
+
"intent_keywords": ["dashboard", "kpi", "metric", "chart", "operations summary"],
|
|
52
|
+
"required_inputs": ["metrics", "chart_series", "supporting_report_or_cards_region"],
|
|
53
|
+
"generated_components": ["metric_card_template_components", "chart_region", "supporting_results_region"],
|
|
54
|
+
"validation_rules": ["DASHBOARD_KPI_METRIC_CARD_REQUIRED_001", "DEFAULT_GUIDANCE_LAYER_REQUIRED_001"],
|
|
55
|
+
"reference_paths": [
|
|
56
|
+
"references/policies/memory-bank/30-pages/apex.dashboard.md",
|
|
57
|
+
"templates/template-components/metric-card/metric-card._common.md",
|
|
58
|
+
"references/domains/page-components/regions/dashboard/workflow-dashboard.md"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "master-detail",
|
|
63
|
+
"name": "Master detail",
|
|
64
|
+
"intent_keywords": ["master detail", "parent child", "detail region", "selected row"],
|
|
65
|
+
"required_inputs": ["master_source", "detail_source", "join_key", "selection_behavior"],
|
|
66
|
+
"generated_components": ["master_results_region", "detail_results_or_form_region", "selection_dynamic_action"],
|
|
67
|
+
"validation_rules": ["MASTER_DETAIL_DYNAMIC_ACTION_REQUIRED_001", "GENERATION_PLAN_REQUIRED_001"],
|
|
68
|
+
"reference_paths": ["references/domains/README.md", "references/workflows/apexlang/application-spec.template.md"]
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": "smart-filter-search",
|
|
72
|
+
"name": "Smart Filter Search",
|
|
73
|
+
"intent_keywords": ["smart filter", "smart filters", "smart filter search", "smart filters region"],
|
|
74
|
+
"required_inputs": ["results_source", "base_region_static_id", "searchable_attributes", "match_semantics", "min_chars", "max_len", "tokenization_policy", "settings_contract", "security_scope", "performance_readiness", "generation_plan"],
|
|
75
|
+
"readiness_required_inputs": ["results_source", "base_region_static_id", "searchable_attributes", "match_semantics", "min_chars", "max_len", "tokenization_policy", "settings_contract", "security_scope", "performance_readiness", "generation_plan"],
|
|
76
|
+
"generated_components": ["smart_filters_region", "search_filter", "filtered_results_region"],
|
|
77
|
+
"validation_rules": ["SMART_FILTER_TOPOLOGY_REQUIRED_001", "SMART_FILTER_RESULTS_REGION_REQUIRED_001", "SMART_FILTER_RESULTS_REGION_ORDER_REQUIRED_001", "SMART_FILTER_BASE_SOURCE_CONTRACT_REQUIRED_001", "SMART_FILTER_SEARCH_SOURCE_REQUIRED_001", "SMART_FILTER_SEARCHABLE_COLUMNS_BASE_PROJECTION_REQUIRED_001", "SMART_FILTER_SECURITY_SCOPE_MATCH_REQUIRED_001", "SMART_FILTER_REFINEMENT_SOURCE_SCOPE_REQUIRED_001", "SMART_FILTER_SEARCH_BEHAVIOR_CONTRACT_REQUIRED_001", "SMART_FILTER_SETTINGS_VALUE_REQUIRED_001", "SMART_FILTER_PERFORMANCE_READINESS_REQUIRED_001", "SMART_FILTER_ACCESSIBILITY_GUIDANCE_REQUIRED_001", "SMART_FILTER_RUNTIME_ACCEPTANCE_REQUIRED_001"],
|
|
78
|
+
"reference_paths": [
|
|
79
|
+
"references/policies/memory-bank/30-pages/apex.smart-filter-search.md",
|
|
80
|
+
"templates/region-components/smart-filter-search/smart-filter-search._common.md"
|
|
81
|
+
]
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "faceted-search",
|
|
85
|
+
"name": "Faceted search",
|
|
86
|
+
"intent_keywords": ["faceted search", "facets", "filters", "filtering", "smart filters", "search page", "search cards", "cards search"],
|
|
87
|
+
"required_inputs": ["results_source", "facet_columns", "results_region_alias"],
|
|
88
|
+
"generated_components": ["faceted_search_region", "filtered_results_region", "facet_items"],
|
|
89
|
+
"validation_rules": ["FACET_SOURCE_DATA_TYPE_REQUIRED_001"],
|
|
90
|
+
"reference_paths": [
|
|
91
|
+
"templates/page-examples/faceted-search/faceted-search.example.md",
|
|
92
|
+
"templates/region-components/faceted-search/faceted-search._common.md"
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"id": "carousel-static-content",
|
|
97
|
+
"name": "Carousel or static content",
|
|
98
|
+
"intent_keywords": ["carousel", "static content", "empty state", "cards", "content band"],
|
|
99
|
+
"selection_require_any": ["carousel", "static content", "empty state", "content band"],
|
|
100
|
+
"required_inputs": ["content_items", "region_purpose", "navigation_or_action_targets"],
|
|
101
|
+
"generated_components": ["static_content_region", "template_component_or_cards_region"],
|
|
102
|
+
"validation_rules": ["GENERATION_PLAN_REQUIRED_001", "DEFAULT_GUIDANCE_LAYER_REQUIRED_001"],
|
|
103
|
+
"reference_paths": ["templates/region-components/static-content/README.md"]
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"id": "lov-backed-form",
|
|
107
|
+
"name": "LOV-backed form",
|
|
108
|
+
"intent_keywords": ["lov", "select list", "popup lov", "lookup", "reference data"],
|
|
109
|
+
"required_inputs": ["form_source", "lov_source", "display_column", "return_column", "target_item"],
|
|
110
|
+
"generated_components": ["shared_lov", "form_item", "form_process"],
|
|
111
|
+
"validation_rules": ["COMPILER_TRUTH_EVIDENCE_REQUIRED_001", "DEFAULT_GUIDANCE_LAYER_REQUIRED_001"],
|
|
112
|
+
"reference_paths": [
|
|
113
|
+
"templates/shared-components/lovs/lovs.dynamic.query.md",
|
|
114
|
+
"templates/items/select-list/select-list.lov-shared.md",
|
|
115
|
+
"references/domains/README.md"
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
}
|