@bestagentkits/render 0.2.0 → 0.3.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/CHANGELOG.md +100 -1
- package/README.md +157 -32
- package/dist/blocks/chart/chart-check-kind-rules.d.ts +10 -0
- package/dist/blocks/chart/chart-check-kind-rules.d.ts.map +1 -0
- package/dist/blocks/chart/chart-check-kind-rules.js +151 -0
- package/dist/blocks/chart/chart-check-kind-rules.js.map +1 -0
- package/dist/blocks/chart/chart-check.d.ts +15 -0
- package/dist/blocks/chart/chart-check.d.ts.map +1 -0
- package/dist/blocks/chart/chart-check.js +196 -0
- package/dist/blocks/chart/chart-check.js.map +1 -0
- package/dist/blocks/chart/chart-encoding-schema.d.ts +7 -0
- package/dist/blocks/chart/chart-encoding-schema.d.ts.map +1 -0
- package/dist/blocks/chart/chart-encoding-schema.js +39 -0
- package/dist/blocks/chart/chart-encoding-schema.js.map +1 -0
- package/dist/blocks/chart/chart-encodings.d.ts +29 -0
- package/dist/blocks/chart/chart-encodings.d.ts.map +1 -0
- package/dist/blocks/chart/chart-encodings.js +59 -0
- package/dist/blocks/chart/chart-encodings.js.map +1 -0
- package/dist/blocks/chart/chart-kinds.d.ts +18 -0
- package/dist/blocks/chart/chart-kinds.d.ts.map +1 -0
- package/dist/blocks/chart/chart-kinds.js +60 -0
- package/dist/blocks/chart/chart-kinds.js.map +1 -0
- package/dist/blocks/chart/chart-model-rows.d.ts +23 -0
- package/dist/blocks/chart/chart-model-rows.d.ts.map +1 -0
- package/dist/blocks/chart/chart-model-rows.js +153 -0
- package/dist/blocks/chart/chart-model-rows.js.map +1 -0
- package/dist/blocks/chart/chart-model.d.ts +17 -0
- package/dist/blocks/chart/chart-model.d.ts.map +1 -0
- package/dist/blocks/chart/chart-model.js +131 -0
- package/dist/blocks/chart/chart-model.js.map +1 -0
- package/dist/blocks/chart/chart-styles.d.ts +3 -0
- package/dist/blocks/chart/chart-styles.d.ts.map +1 -0
- package/dist/blocks/chart/chart-styles.js +76 -0
- package/dist/blocks/chart/chart-styles.js.map +1 -0
- package/dist/blocks/chart/chart.d.ts +12 -0
- package/dist/blocks/chart/chart.d.ts.map +1 -0
- package/dist/blocks/chart/chart.js +73 -0
- package/dist/blocks/chart/chart.js.map +1 -0
- package/dist/blocks/chart/index.d.ts +4 -0
- package/dist/blocks/chart/index.d.ts.map +1 -0
- package/dist/blocks/chart/index.js +8 -0
- package/dist/blocks/chart/index.js.map +1 -0
- package/dist/blocks/composition/accordion.d.ts +4 -0
- package/dist/blocks/composition/accordion.d.ts.map +1 -0
- package/dist/blocks/composition/accordion.js +45 -0
- package/dist/blocks/composition/accordion.js.map +1 -0
- package/dist/blocks/composition/bento.d.ts +4 -0
- package/dist/blocks/composition/bento.d.ts.map +1 -0
- package/dist/blocks/composition/bento.js +91 -0
- package/dist/blocks/composition/bento.js.map +1 -0
- package/dist/blocks/composition/carousel.d.ts +4 -0
- package/dist/blocks/composition/carousel.d.ts.map +1 -0
- package/dist/blocks/composition/carousel.js +51 -0
- package/dist/blocks/composition/carousel.js.map +1 -0
- package/dist/blocks/composition/composition-runtime.d.ts +14 -0
- package/dist/blocks/composition/composition-runtime.d.ts.map +1 -0
- package/dist/blocks/composition/composition-runtime.js +136 -0
- package/dist/blocks/composition/composition-runtime.js.map +1 -0
- package/dist/blocks/composition/composition-styles.d.ts +10 -0
- package/dist/blocks/composition/composition-styles.d.ts.map +1 -0
- package/dist/blocks/composition/composition-styles.js +80 -0
- package/dist/blocks/composition/composition-styles.js.map +1 -0
- package/dist/blocks/composition/index.d.ts +4 -0
- package/dist/blocks/composition/index.d.ts.map +1 -0
- package/dist/blocks/composition/index.js +11 -0
- package/dist/blocks/composition/index.js.map +1 -0
- package/dist/blocks/composition/nestable-blocks.d.ts +37 -0
- package/dist/blocks/composition/nestable-blocks.d.ts.map +1 -0
- package/dist/blocks/composition/nestable-blocks.js +92 -0
- package/dist/blocks/composition/nestable-blocks.js.map +1 -0
- package/dist/blocks/composition/tabs.d.ts +4 -0
- package/dist/blocks/composition/tabs.d.ts.map +1 -0
- package/dist/blocks/composition/tabs.js +48 -0
- package/dist/blocks/composition/tabs.js.map +1 -0
- package/dist/blocks/controls/checkbox.d.ts +12 -0
- package/dist/blocks/controls/checkbox.d.ts.map +1 -0
- package/dist/blocks/controls/checkbox.js +43 -0
- package/dist/blocks/controls/checkbox.js.map +1 -0
- package/dist/blocks/controls/choice-options.d.ts +24 -0
- package/dist/blocks/controls/choice-options.d.ts.map +1 -0
- package/dist/blocks/controls/choice-options.js +117 -0
- package/dist/blocks/controls/choice-options.js.map +1 -0
- package/dist/blocks/controls/control-shared.d.ts +66 -0
- package/dist/blocks/controls/control-shared.d.ts.map +1 -0
- package/dist/blocks/controls/control-shared.js +241 -0
- package/dist/blocks/controls/control-shared.js.map +1 -0
- package/dist/blocks/controls/controls-runtime.d.ts +17 -0
- package/dist/blocks/controls/controls-runtime.d.ts.map +1 -0
- package/dist/blocks/controls/controls-runtime.js +180 -0
- package/dist/blocks/controls/controls-runtime.js.map +1 -0
- package/dist/blocks/controls/controls-styles.d.ts +14 -0
- package/dist/blocks/controls/controls-styles.d.ts.map +1 -0
- package/dist/blocks/controls/controls-styles.js +54 -0
- package/dist/blocks/controls/controls-styles.js.map +1 -0
- package/dist/blocks/controls/date-input.d.ts +6 -0
- package/dist/blocks/controls/date-input.d.ts.map +1 -0
- package/dist/blocks/controls/date-input.js +58 -0
- package/dist/blocks/controls/date-input.js.map +1 -0
- package/dist/blocks/controls/field-input.d.ts +10 -0
- package/dist/blocks/controls/field-input.d.ts.map +1 -0
- package/dist/blocks/controls/field-input.js +20 -0
- package/dist/blocks/controls/field-input.js.map +1 -0
- package/dist/blocks/controls/filter-bar.d.ts +11 -0
- package/dist/blocks/controls/filter-bar.d.ts.map +1 -0
- package/dist/blocks/controls/filter-bar.js +115 -0
- package/dist/blocks/controls/filter-bar.js.map +1 -0
- package/dist/blocks/controls/index.d.ts +4 -0
- package/dist/blocks/controls/index.d.ts.map +1 -0
- package/dist/blocks/controls/index.js +41 -0
- package/dist/blocks/controls/index.js.map +1 -0
- package/dist/blocks/controls/number-input.d.ts +4 -0
- package/dist/blocks/controls/number-input.d.ts.map +1 -0
- package/dist/blocks/controls/number-input.js +62 -0
- package/dist/blocks/controls/number-input.js.map +1 -0
- package/dist/blocks/controls/radio-group.d.ts +4 -0
- package/dist/blocks/controls/radio-group.d.ts.map +1 -0
- package/dist/blocks/controls/radio-group.js +56 -0
- package/dist/blocks/controls/radio-group.js.map +1 -0
- package/dist/blocks/controls/select.d.ts +4 -0
- package/dist/blocks/controls/select.d.ts.map +1 -0
- package/dist/blocks/controls/select.js +49 -0
- package/dist/blocks/controls/select.js.map +1 -0
- package/dist/blocks/controls/switch.d.ts +4 -0
- package/dist/blocks/controls/switch.d.ts.map +1 -0
- package/dist/blocks/controls/switch.js +22 -0
- package/dist/blocks/controls/switch.js.map +1 -0
- package/dist/blocks/controls/text-input.d.ts +4 -0
- package/dist/blocks/controls/text-input.d.ts.map +1 -0
- package/dist/blocks/controls/text-input.js +42 -0
- package/dist/blocks/controls/text-input.js.map +1 -0
- package/dist/blocks/data-table/data-table-cells.d.ts +26 -0
- package/dist/blocks/data-table/data-table-cells.d.ts.map +1 -0
- package/dist/blocks/data-table/data-table-cells.js +154 -0
- package/dist/blocks/data-table/data-table-cells.js.map +1 -0
- package/dist/blocks/data-table/data-table-check.d.ts +10 -0
- package/dist/blocks/data-table/data-table-check.d.ts.map +1 -0
- package/dist/blocks/data-table/data-table-check.js +99 -0
- package/dist/blocks/data-table/data-table-check.js.map +1 -0
- package/dist/blocks/data-table/data-table-columns.d.ts +41 -0
- package/dist/blocks/data-table/data-table-columns.d.ts.map +1 -0
- package/dist/blocks/data-table/data-table-columns.js +155 -0
- package/dist/blocks/data-table/data-table-columns.js.map +1 -0
- package/dist/blocks/data-table/data-table-runtime.d.ts +15 -0
- package/dist/blocks/data-table/data-table-runtime.d.ts.map +1 -0
- package/dist/blocks/data-table/data-table-runtime.js +106 -0
- package/dist/blocks/data-table/data-table-runtime.js.map +1 -0
- package/dist/blocks/data-table/data-table-styles.d.ts +11 -0
- package/dist/blocks/data-table/data-table-styles.d.ts.map +1 -0
- package/dist/blocks/data-table/data-table-styles.js +74 -0
- package/dist/blocks/data-table/data-table-styles.js.map +1 -0
- package/dist/blocks/data-table/data-table.d.ts +17 -0
- package/dist/blocks/data-table/data-table.d.ts.map +1 -0
- package/dist/blocks/data-table/data-table.js +159 -0
- package/dist/blocks/data-table/data-table.js.map +1 -0
- package/dist/blocks/data-table/index.d.ts +4 -0
- package/dist/blocks/data-table/index.d.ts.map +1 -0
- package/dist/blocks/data-table/index.js +18 -0
- package/dist/blocks/data-table/index.js.map +1 -0
- package/dist/blocks/engineering/api-endpoint.d.ts +12 -0
- package/dist/blocks/engineering/api-endpoint.d.ts.map +1 -0
- package/dist/blocks/engineering/api-endpoint.js +174 -0
- package/dist/blocks/engineering/api-endpoint.js.map +1 -0
- package/dist/blocks/engineering/engineering-helpers.d.ts +49 -0
- package/dist/blocks/engineering/engineering-helpers.d.ts.map +1 -0
- package/dist/blocks/engineering/engineering-helpers.js +156 -0
- package/dist/blocks/engineering/engineering-helpers.js.map +1 -0
- package/dist/blocks/engineering/engineering-styles.d.ts +12 -0
- package/dist/blocks/engineering/engineering-styles.d.ts.map +1 -0
- package/dist/blocks/engineering/engineering-styles.js +174 -0
- package/dist/blocks/engineering/engineering-styles.js.map +1 -0
- package/dist/blocks/engineering/index.d.ts +4 -0
- package/dist/blocks/engineering/index.d.ts.map +1 -0
- package/dist/blocks/engineering/index.js +30 -0
- package/dist/blocks/engineering/index.js.map +1 -0
- package/dist/blocks/engineering/kanban.d.ts +11 -0
- package/dist/blocks/engineering/kanban.d.ts.map +1 -0
- package/dist/blocks/engineering/kanban.js +162 -0
- package/dist/blocks/engineering/kanban.js.map +1 -0
- package/dist/blocks/engineering/log-viewer.d.ts +14 -0
- package/dist/blocks/engineering/log-viewer.d.ts.map +1 -0
- package/dist/blocks/engineering/log-viewer.js +158 -0
- package/dist/blocks/engineering/log-viewer.js.map +1 -0
- package/dist/blocks/engineering/roadmap.d.ts +13 -0
- package/dist/blocks/engineering/roadmap.d.ts.map +1 -0
- package/dist/blocks/engineering/roadmap.js +197 -0
- package/dist/blocks/engineering/roadmap.js.map +1 -0
- package/dist/blocks/engineering/schema-viewer.d.ts +25 -0
- package/dist/blocks/engineering/schema-viewer.d.ts.map +1 -0
- package/dist/blocks/engineering/schema-viewer.js +124 -0
- package/dist/blocks/engineering/schema-viewer.js.map +1 -0
- package/dist/blocks/engineering/test-results.d.ts +12 -0
- package/dist/blocks/engineering/test-results.d.ts.map +1 -0
- package/dist/blocks/engineering/test-results.js +180 -0
- package/dist/blocks/engineering/test-results.js.map +1 -0
- package/dist/blocks/evidence/annotated-image.d.ts +15 -0
- package/dist/blocks/evidence/annotated-image.d.ts.map +1 -0
- package/dist/blocks/evidence/annotated-image.js +99 -0
- package/dist/blocks/evidence/annotated-image.js.map +1 -0
- package/dist/blocks/evidence/benchmark-comparison.d.ts +11 -0
- package/dist/blocks/evidence/benchmark-comparison.d.ts.map +1 -0
- package/dist/blocks/evidence/benchmark-comparison.js +262 -0
- package/dist/blocks/evidence/benchmark-comparison.js.map +1 -0
- package/dist/blocks/evidence/benchmark-verdict.d.ts +26 -0
- package/dist/blocks/evidence/benchmark-verdict.d.ts.map +1 -0
- package/dist/blocks/evidence/benchmark-verdict.js +31 -0
- package/dist/blocks/evidence/benchmark-verdict.js.map +1 -0
- package/dist/blocks/evidence/evidence-helpers.d.ts +39 -0
- package/dist/blocks/evidence/evidence-helpers.d.ts.map +1 -0
- package/dist/blocks/evidence/evidence-helpers.js +87 -0
- package/dist/blocks/evidence/evidence-helpers.js.map +1 -0
- package/dist/blocks/evidence/evidence-styles.d.ts +12 -0
- package/dist/blocks/evidence/evidence-styles.d.ts.map +1 -0
- package/dist/blocks/evidence/evidence-styles.js +88 -0
- package/dist/blocks/evidence/evidence-styles.js.map +1 -0
- package/dist/blocks/evidence/index.d.ts +4 -0
- package/dist/blocks/evidence/index.d.ts.map +1 -0
- package/dist/blocks/evidence/index.js +15 -0
- package/dist/blocks/evidence/index.js.map +1 -0
- package/dist/blocks/evidence/metric-breakdown.d.ts +22 -0
- package/dist/blocks/evidence/metric-breakdown.d.ts.map +1 -0
- package/dist/blocks/evidence/metric-breakdown.js +203 -0
- package/dist/blocks/evidence/metric-breakdown.js.map +1 -0
- package/dist/blocks/evidence/references.d.ts +13 -0
- package/dist/blocks/evidence/references.d.ts.map +1 -0
- package/dist/blocks/evidence/references.js +103 -0
- package/dist/blocks/evidence/references.js.map +1 -0
- package/dist/blocks/index.d.ts +8 -0
- package/dist/blocks/index.d.ts.map +1 -0
- package/dist/blocks/index.js +24 -0
- package/dist/blocks/index.js.map +1 -0
- package/dist/blocks/layout/grid-item.d.ts +4 -0
- package/dist/blocks/layout/grid-item.d.ts.map +1 -0
- package/dist/blocks/layout/grid-item.js +65 -0
- package/dist/blocks/layout/grid-item.js.map +1 -0
- package/dist/blocks/layout/grid.d.ts +9 -0
- package/dist/blocks/layout/grid.d.ts.map +1 -0
- package/dist/blocks/layout/grid.js +99 -0
- package/dist/blocks/layout/grid.js.map +1 -0
- package/dist/blocks/layout/index.d.ts +4 -0
- package/dist/blocks/layout/index.d.ts.map +1 -0
- package/dist/blocks/layout/index.js +23 -0
- package/dist/blocks/layout/index.js.map +1 -0
- package/dist/blocks/layout/layout-styles.d.ts +40 -0
- package/dist/blocks/layout/layout-styles.d.ts.map +1 -0
- package/dist/blocks/layout/layout-styles.js +110 -0
- package/dist/blocks/layout/layout-styles.js.map +1 -0
- package/dist/blocks/layout/main-aside.d.ts +4 -0
- package/dist/blocks/layout/main-aside.d.ts.map +1 -0
- package/dist/blocks/layout/main-aside.js +21 -0
- package/dist/blocks/layout/main-aside.js.map +1 -0
- package/dist/blocks/layout/rail-layout.d.ts +4 -0
- package/dist/blocks/layout/rail-layout.d.ts.map +1 -0
- package/dist/blocks/layout/rail-layout.js +33 -0
- package/dist/blocks/layout/rail-layout.js.map +1 -0
- package/dist/blocks/layout/semantic-layout-parts.d.ts +14 -0
- package/dist/blocks/layout/semantic-layout-parts.d.ts.map +1 -0
- package/dist/blocks/layout/semantic-layout-parts.js +9 -0
- package/dist/blocks/layout/semantic-layout-parts.js.map +1 -0
- package/dist/blocks/layout/sidebar-layout.d.ts +4 -0
- package/dist/blocks/layout/sidebar-layout.d.ts.map +1 -0
- package/dist/blocks/layout/sidebar-layout.js +30 -0
- package/dist/blocks/layout/sidebar-layout.js.map +1 -0
- package/dist/blocks/layout/split.d.ts +4 -0
- package/dist/blocks/layout/split.d.ts.map +1 -0
- package/dist/blocks/layout/split.js +23 -0
- package/dist/blocks/layout/split.js.map +1 -0
- package/dist/blocks/layout/stack.d.ts +4 -0
- package/dist/blocks/layout/stack.d.ts.map +1 -0
- package/dist/blocks/layout/stack.js +36 -0
- package/dist/blocks/layout/stack.js.map +1 -0
- package/dist/blocks/product/calendar-dates.d.ts +59 -0
- package/dist/blocks/product/calendar-dates.d.ts.map +1 -0
- package/dist/blocks/product/calendar-dates.js +100 -0
- package/dist/blocks/product/calendar-dates.js.map +1 -0
- package/dist/blocks/product/calendar.d.ts +12 -0
- package/dist/blocks/product/calendar.d.ts.map +1 -0
- package/dist/blocks/product/calendar.js +125 -0
- package/dist/blocks/product/calendar.js.map +1 -0
- package/dist/blocks/product/feature-matrix.d.ts +4 -0
- package/dist/blocks/product/feature-matrix.d.ts.map +1 -0
- package/dist/blocks/product/feature-matrix.js +72 -0
- package/dist/blocks/product/feature-matrix.js.map +1 -0
- package/dist/blocks/product/gallery.d.ts +14 -0
- package/dist/blocks/product/gallery.d.ts.map +1 -0
- package/dist/blocks/product/gallery.js +86 -0
- package/dist/blocks/product/gallery.js.map +1 -0
- package/dist/blocks/product/index.d.ts +4 -0
- package/dist/blocks/product/index.d.ts.map +1 -0
- package/dist/blocks/product/index.js +40 -0
- package/dist/blocks/product/index.js.map +1 -0
- package/dist/blocks/product/logo-cloud.d.ts +4 -0
- package/dist/blocks/product/logo-cloud.d.ts.map +1 -0
- package/dist/blocks/product/logo-cloud.js +42 -0
- package/dist/blocks/product/logo-cloud.js.map +1 -0
- package/dist/blocks/product/people.d.ts +4 -0
- package/dist/blocks/product/people.d.ts.map +1 -0
- package/dist/blocks/product/people.js +53 -0
- package/dist/blocks/product/people.js.map +1 -0
- package/dist/blocks/product/pricing.d.ts +4 -0
- package/dist/blocks/product/pricing.d.ts.map +1 -0
- package/dist/blocks/product/pricing.js +86 -0
- package/dist/blocks/product/pricing.js.map +1 -0
- package/dist/blocks/product/product-helpers.d.ts +22 -0
- package/dist/blocks/product/product-helpers.d.ts.map +1 -0
- package/dist/blocks/product/product-helpers.js +48 -0
- package/dist/blocks/product/product-helpers.js.map +1 -0
- package/dist/blocks/product/product-runtime.d.ts +15 -0
- package/dist/blocks/product/product-runtime.d.ts.map +1 -0
- package/dist/blocks/product/product-runtime.js +97 -0
- package/dist/blocks/product/product-runtime.js.map +1 -0
- package/dist/blocks/product/product-styles.d.ts +14 -0
- package/dist/blocks/product/product-styles.d.ts.map +1 -0
- package/dist/blocks/product/product-styles.js +120 -0
- package/dist/blocks/product/product-styles.js.map +1 -0
- package/dist/blocks/product/testimonial.d.ts +8 -0
- package/dist/blocks/product/testimonial.d.ts.map +1 -0
- package/dist/blocks/product/testimonial.js +67 -0
- package/dist/blocks/product/testimonial.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +143 -30
- package/dist/cli.js.map +1 -1
- package/dist/data/data-json-schema.d.ts +9 -0
- package/dist/data/data-json-schema.d.ts.map +1 -0
- package/dist/data/data-json-schema.js +48 -0
- package/dist/data/data-json-schema.js.map +1 -0
- package/dist/data/dataset-types.d.ts +47 -0
- package/dist/data/dataset-types.d.ts.map +1 -0
- package/dist/data/dataset-types.js +49 -0
- package/dist/data/dataset-types.js.map +1 -0
- package/dist/data/format-value.d.ts +39 -0
- package/dist/data/format-value.d.ts.map +1 -0
- package/dist/data/format-value.js +214 -0
- package/dist/data/format-value.js.map +1 -0
- package/dist/data/resolve-block-data.d.ts +24 -0
- package/dist/data/resolve-block-data.d.ts.map +1 -0
- package/dist/data/resolve-block-data.js +190 -0
- package/dist/data/resolve-block-data.js.map +1 -0
- package/dist/data/transform-pipeline.d.ts +65 -0
- package/dist/data/transform-pipeline.d.ts.map +1 -0
- package/dist/data/transform-pipeline.js +234 -0
- package/dist/data/transform-pipeline.js.map +1 -0
- package/dist/data/validate-datasets.d.ts +22 -0
- package/dist/data/validate-datasets.d.ts.map +1 -0
- package/dist/data/validate-datasets.js +137 -0
- package/dist/data/validate-datasets.js.map +1 -0
- package/dist/diagram/adapter-markup-fit.d.ts +44 -0
- package/dist/diagram/adapter-markup-fit.d.ts.map +1 -0
- package/dist/diagram/adapter-markup-fit.js +292 -0
- package/dist/diagram/adapter-markup-fit.js.map +1 -0
- package/dist/diagram/adapter-stylesheet-filter.d.ts +56 -0
- package/dist/diagram/adapter-stylesheet-filter.d.ts.map +1 -0
- package/dist/diagram/adapter-stylesheet-filter.js +245 -0
- package/dist/diagram/adapter-stylesheet-filter.js.map +1 -0
- package/dist/diagram/adapter.d.ts +17 -0
- package/dist/diagram/adapter.d.ts.map +1 -1
- package/dist/diagram/adapter.js +43 -2
- package/dist/diagram/adapter.js.map +1 -1
- package/dist/index.d.ts +14 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/ir.d.ts +18 -0
- package/dist/ir.d.ts.map +1 -1
- package/dist/ir.js.map +1 -1
- package/dist/mcp/mcp-http-transport.d.ts +68 -0
- package/dist/mcp/mcp-http-transport.d.ts.map +1 -0
- package/dist/mcp/mcp-http-transport.js +140 -0
- package/dist/mcp/mcp-http-transport.js.map +1 -0
- package/dist/mcp/mcp-json-rpc-dispatch.d.ts +38 -0
- package/dist/mcp/mcp-json-rpc-dispatch.d.ts.map +1 -0
- package/dist/mcp/mcp-json-rpc-dispatch.js +98 -0
- package/dist/mcp/mcp-json-rpc-dispatch.js.map +1 -0
- package/dist/mcp/mcp-local-tools.d.ts +20 -0
- package/dist/mcp/mcp-local-tools.d.ts.map +1 -0
- package/dist/mcp/mcp-local-tools.js +58 -0
- package/dist/mcp/mcp-local-tools.js.map +1 -0
- package/dist/mcp/mcp-protocol.d.ts +79 -0
- package/dist/mcp/mcp-protocol.d.ts.map +1 -0
- package/dist/mcp/mcp-protocol.js +83 -0
- package/dist/mcp/mcp-protocol.js.map +1 -0
- package/dist/mcp/mcp-stdio-transport.d.ts +28 -0
- package/dist/mcp/mcp-stdio-transport.d.ts.map +1 -0
- package/dist/mcp/mcp-stdio-transport.js +73 -0
- package/dist/mcp/mcp-stdio-transport.js.map +1 -0
- package/dist/mcp/mcp-tool-definitions.d.ts +66 -0
- package/dist/mcp/mcp-tool-definitions.d.ts.map +1 -0
- package/dist/mcp/mcp-tool-definitions.js +246 -0
- package/dist/mcp/mcp-tool-definitions.js.map +1 -0
- package/dist/mcp-server.d.ts +6 -33
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +5 -270
- package/dist/mcp-server.js.map +1 -1
- package/dist/recipes/index.d.ts +27 -0
- package/dist/recipes/index.d.ts.map +1 -0
- package/dist/recipes/index.js +30 -0
- package/dist/recipes/index.js.map +1 -0
- package/dist/recipes/recipes.generated.d.ts +8 -0
- package/dist/recipes/recipes.generated.d.ts.map +1 -0
- package/dist/recipes/recipes.generated.js +704 -0
- package/dist/recipes/recipes.generated.js.map +1 -0
- package/dist/registry/actions.d.ts +2 -0
- package/dist/registry/actions.d.ts.map +1 -1
- package/dist/registry/actions.js +3 -1
- package/dist/registry/actions.js.map +1 -1
- package/dist/registry/block-module.d.ts +65 -0
- package/dist/registry/block-module.d.ts.map +1 -0
- package/dist/registry/block-module.js +19 -0
- package/dist/registry/block-module.js.map +1 -0
- package/dist/registry/catalog-search.d.ts +32 -0
- package/dist/registry/catalog-search.d.ts.map +1 -0
- package/dist/registry/catalog-search.js +122 -0
- package/dist/registry/catalog-search.js.map +1 -0
- package/dist/registry/define-helpers.d.ts +89 -0
- package/dist/registry/define-helpers.d.ts.map +1 -0
- package/dist/registry/define-helpers.js +87 -0
- package/dist/registry/define-helpers.js.map +1 -0
- package/dist/registry/describe-many.d.ts +58 -0
- package/dist/registry/describe-many.d.ts.map +1 -0
- package/dist/registry/describe-many.js +156 -0
- package/dist/registry/describe-many.js.map +1 -0
- package/dist/registry/prop-schema.d.ts +32 -1
- package/dist/registry/prop-schema.d.ts.map +1 -1
- package/dist/registry/prop-schema.js +108 -2
- package/dist/registry/prop-schema.js.map +1 -1
- package/dist/registry/registry-builder.d.ts +17 -0
- package/dist/registry/registry-builder.d.ts.map +1 -0
- package/dist/registry/registry-builder.js +158 -0
- package/dist/registry/registry-builder.js.map +1 -0
- package/dist/registry/registry.d.ts +32 -5
- package/dist/registry/registry.d.ts.map +1 -1
- package/dist/registry/registry.js +67 -14
- package/dist/registry/registry.js.map +1 -1
- package/dist/registry/roster.d.ts +34 -5
- package/dist/registry/roster.d.ts.map +1 -1
- package/dist/registry/roster.js +184 -224
- package/dist/registry/roster.js.map +1 -1
- package/dist/render/block-helpers.d.ts +11 -18
- package/dist/render/block-helpers.d.ts.map +1 -1
- package/dist/render/block-helpers.js +14 -44
- package/dist/render/block-helpers.js.map +1 -1
- package/dist/render/blocks.d.ts +9 -33
- package/dist/render/blocks.d.ts.map +1 -1
- package/dist/render/blocks.js +56 -180
- package/dist/render/blocks.js.map +1 -1
- package/dist/render/chart-figure-encoded.d.ts +11 -0
- package/dist/render/chart-figure-encoded.d.ts.map +1 -0
- package/dist/render/chart-figure-encoded.js +81 -0
- package/dist/render/chart-figure-encoded.js.map +1 -0
- package/dist/render/chart-kinds-cartesian.d.ts +14 -0
- package/dist/render/chart-kinds-cartesian.d.ts.map +1 -0
- package/dist/render/chart-kinds-cartesian.js +122 -0
- package/dist/render/chart-kinds-cartesian.js.map +1 -0
- package/dist/render/chart-kinds-composite.d.ts +16 -0
- package/dist/render/chart-kinds-composite.d.ts.map +1 -0
- package/dist/render/chart-kinds-composite.js +144 -0
- package/dist/render/chart-kinds-composite.js.map +1 -0
- package/dist/render/chart-kinds-gauge-treemap.d.ts +8 -0
- package/dist/render/chart-kinds-gauge-treemap.d.ts.map +1 -0
- package/dist/render/chart-kinds-gauge-treemap.js +101 -0
- package/dist/render/chart-kinds-gauge-treemap.js.map +1 -0
- package/dist/render/chart-kinds-histogram-waterfall.d.ts +17 -0
- package/dist/render/chart-kinds-histogram-waterfall.d.ts.map +1 -0
- package/dist/render/chart-kinds-histogram-waterfall.js +172 -0
- package/dist/render/chart-kinds-histogram-waterfall.js.map +1 -0
- package/dist/render/chart-overlays.d.ts +18 -0
- package/dist/render/chart-overlays.d.ts.map +1 -0
- package/dist/render/chart-overlays.js +58 -0
- package/dist/render/chart-overlays.js.map +1 -0
- package/dist/render/chart-scales.d.ts +83 -0
- package/dist/render/chart-scales.d.ts.map +1 -0
- package/dist/render/chart-scales.js +166 -0
- package/dist/render/chart-scales.js.map +1 -0
- package/dist/render/chart-svg-parts.d.ts +50 -0
- package/dist/render/chart-svg-parts.d.ts.map +1 -0
- package/dist/render/chart-svg-parts.js +125 -0
- package/dist/render/chart-svg-parts.js.map +1 -0
- package/dist/render/chart-text.d.ts +18 -0
- package/dist/render/chart-text.d.ts.map +1 -0
- package/dist/render/chart-text.js +69 -0
- package/dist/render/chart-text.js.map +1 -0
- package/dist/render/chart-treemap-layout.d.ts +17 -0
- package/dist/render/chart-treemap-layout.d.ts.map +1 -0
- package/dist/render/chart-treemap-layout.js +74 -0
- package/dist/render/chart-treemap-layout.js.map +1 -0
- package/dist/render/chart-types.d.ts +107 -0
- package/dist/render/chart-types.d.ts.map +1 -0
- package/dist/render/chart-types.js +11 -0
- package/dist/render/chart-types.js.map +1 -0
- package/dist/render/charts.d.ts +28 -11
- package/dist/render/charts.d.ts.map +1 -1
- package/dist/render/charts.js +38 -117
- package/dist/render/charts.js.map +1 -1
- package/dist/render/derived-variables.d.ts +20 -0
- package/dist/render/derived-variables.d.ts.map +1 -1
- package/dist/render/derived-variables.js +23 -0
- package/dist/render/derived-variables.js.map +1 -1
- package/dist/render/document.d.ts +11 -0
- package/dist/render/document.d.ts.map +1 -1
- package/dist/render/document.js +20 -3
- package/dist/render/document.js.map +1 -1
- package/dist/render/escape.d.ts +10 -0
- package/dist/render/escape.d.ts.map +1 -1
- package/dist/render/escape.js +28 -0
- package/dist/render/escape.js.map +1 -1
- package/dist/render/feature-styles.d.ts.map +1 -1
- package/dist/render/feature-styles.js +42 -80
- package/dist/render/feature-styles.js.map +1 -1
- package/dist/render/outline.d.ts +1 -1
- package/dist/render/outline.d.ts.map +1 -1
- package/dist/render/outline.js +4 -1
- package/dist/render/outline.js.map +1 -1
- package/dist/render/recipe-styles.d.ts +26 -0
- package/dist/render/recipe-styles.d.ts.map +1 -0
- package/dist/render/recipe-styles.js +218 -0
- package/dist/render/recipe-styles.js.map +1 -0
- package/dist/render/render-context.d.ts +40 -0
- package/dist/render/render-context.d.ts.map +1 -0
- package/dist/render/render-context.js +16 -0
- package/dist/render/render-context.js.map +1 -0
- package/dist/render/render.d.ts +7 -0
- package/dist/render/render.d.ts.map +1 -1
- package/dist/render/render.js +68 -44
- package/dist/render/render.js.map +1 -1
- package/dist/render/runtime.d.ts +4 -1
- package/dist/render/runtime.d.ts.map +1 -1
- package/dist/render/runtime.js +91 -118
- package/dist/render/runtime.js.map +1 -1
- package/dist/render/showcase-blocks.d.ts +5 -0
- package/dist/render/showcase-blocks.d.ts.map +1 -1
- package/dist/render/showcase-blocks.js +8 -28
- package/dist/render/showcase-blocks.js.map +1 -1
- package/dist/render/showcase-styles.d.ts.map +1 -1
- package/dist/render/showcase-styles.js +15 -31
- package/dist/render/showcase-styles.js.map +1 -1
- package/dist/render/style-units.d.ts +17 -0
- package/dist/render/style-units.d.ts.map +1 -0
- package/dist/render/style-units.js +24 -0
- package/dist/render/style-units.js.map +1 -0
- package/dist/render/styles.d.ts.map +1 -1
- package/dist/render/styles.js +8 -5
- package/dist/render/styles.js.map +1 -1
- package/dist/render/tone.d.ts +14 -0
- package/dist/render/tone.d.ts.map +1 -0
- package/dist/render/tone.js +40 -0
- package/dist/render/tone.js.map +1 -0
- package/dist/render/verify.d.ts +3 -0
- package/dist/render/verify.d.ts.map +1 -1
- package/dist/render/verify.js +15 -2
- package/dist/render/verify.js.map +1 -1
- package/dist/spec/asset-references.d.ts +35 -0
- package/dist/spec/asset-references.d.ts.map +1 -0
- package/dist/spec/asset-references.js +93 -0
- package/dist/spec/asset-references.js.map +1 -0
- package/dist/spec/bounds.d.ts +6 -0
- package/dist/spec/bounds.d.ts.map +1 -1
- package/dist/spec/bounds.js +7 -0
- package/dist/spec/bounds.js.map +1 -1
- package/dist/spec/conditions.d.ts +43 -0
- package/dist/spec/conditions.d.ts.map +1 -0
- package/dist/spec/conditions.js +179 -0
- package/dist/spec/conditions.js.map +1 -0
- package/dist/spec/network-policy.d.ts +33 -0
- package/dist/spec/network-policy.d.ts.map +1 -0
- package/dist/spec/network-policy.js +57 -0
- package/dist/spec/network-policy.js.map +1 -0
- package/dist/spec/normalize.d.ts +7 -2
- package/dist/spec/normalize.d.ts.map +1 -1
- package/dist/spec/normalize.js +203 -57
- package/dist/spec/normalize.js.map +1 -1
- package/dist/theme/dialect-presets.d.ts +12 -0
- package/dist/theme/dialect-presets.d.ts.map +1 -0
- package/dist/theme/dialect-presets.js +214 -0
- package/dist/theme/dialect-presets.js.map +1 -0
- package/dist/theme/load-theme.d.ts +9 -1
- package/dist/theme/load-theme.d.ts.map +1 -1
- package/dist/theme/load-theme.js +25 -2
- package/dist/theme/load-theme.js.map +1 -1
- package/dist/theme/preset-builder.d.ts +36 -0
- package/dist/theme/preset-builder.d.ts.map +1 -0
- package/dist/theme/preset-builder.js +51 -0
- package/dist/theme/preset-builder.js.map +1 -0
- package/dist/theme/presets.d.ts +4 -7
- package/dist/theme/presets.d.ts.map +1 -1
- package/dist/theme/presets.js +7 -40
- package/dist/theme/presets.js.map +1 -1
- package/dist/theme/recipes.d.ts +38 -0
- package/dist/theme/recipes.d.ts.map +1 -0
- package/dist/theme/recipes.js +96 -0
- package/dist/theme/recipes.js.map +1 -0
- package/dist/theme/theme-catalog.d.ts.map +1 -1
- package/dist/theme/theme-catalog.js +16 -0
- package/dist/theme/theme-catalog.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/llms.txt +9 -5
- package/package.json +6 -2
package/dist/registry/roster.js
CHANGED
|
@@ -12,86 +12,49 @@
|
|
|
12
12
|
* cannot drift apart.
|
|
13
13
|
*/
|
|
14
14
|
import { EMBED_PROVIDER_NAMES } from '../spec/providers.js';
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
});
|
|
47
|
-
const idProp = (description) => ({ kind: 'string', id: true, description });
|
|
48
|
-
const actionMap = (description) => ({
|
|
49
|
-
kind: 'json',
|
|
50
|
-
description,
|
|
51
|
-
maxBytes: 8_000,
|
|
52
|
-
schemaRef: '#/$defs/actionMap',
|
|
53
|
-
});
|
|
54
|
-
/** Reusable prop fragments. */
|
|
55
|
-
const onProp = (description = 'Declarative action bindings for this block.') => actionMap(description);
|
|
56
|
-
const anchorProps = {
|
|
57
|
-
id: idProp('Stable node id. Author-provided ids are used verbatim and must be unique.'),
|
|
58
|
-
};
|
|
59
|
-
const itemsOf = (fields, o = {}) => list(obj(fields), { required: true, minItems: o.minItems ?? 1, maxItems: o.maxItems ?? 200 });
|
|
60
|
-
const TITLE = str({ required: true, maxLength: 200 });
|
|
61
|
-
const OPTIONAL_TITLE = str({ maxLength: 200 });
|
|
62
|
-
const LABEL = str({ required: true, maxLength: 200 });
|
|
63
|
-
/** Chart kinds, SVG-first and deterministic. */
|
|
64
|
-
export const CHART_KINDS = [
|
|
65
|
-
'bar',
|
|
66
|
-
'line',
|
|
67
|
-
'area',
|
|
68
|
-
'pie',
|
|
69
|
-
'donut',
|
|
70
|
-
'sparkline',
|
|
71
|
-
'progress',
|
|
15
|
+
import { anchorProps, bool, define, enumStr, idProp, itemsOf, LABEL, list, num, OPTIONAL_TITLE, obj, oneOf, onProp, semantic, str, TITLE, txt, urlProp, VERBATIM_DESCRIPTION, } from './define-helpers.js';
|
|
16
|
+
export { CHART_KINDS } from '../blocks/chart/chart-kinds.js';
|
|
17
|
+
export * from './define-helpers.js';
|
|
18
|
+
/**
|
|
19
|
+
* Features the core compiler emits. Block groups may add their own features
|
|
20
|
+
* (see `FeatureModule`); the registry rejects any name outside both lists.
|
|
21
|
+
*/
|
|
22
|
+
export const CORE_RUNTIME_FEATURES = [
|
|
23
|
+
'tabs',
|
|
24
|
+
'accordion',
|
|
25
|
+
'carousel',
|
|
26
|
+
'slider',
|
|
27
|
+
'copy',
|
|
28
|
+
'filter',
|
|
29
|
+
'theme',
|
|
30
|
+
'dialog',
|
|
31
|
+
'chart',
|
|
32
|
+
'diagram',
|
|
33
|
+
'media',
|
|
34
|
+
'outline',
|
|
35
|
+
'bento',
|
|
36
|
+
'marquee',
|
|
37
|
+
'terminal',
|
|
38
|
+
'tree',
|
|
39
|
+
'before-after',
|
|
40
|
+
'kpi',
|
|
41
|
+
'showcase',
|
|
42
|
+
'cta',
|
|
43
|
+
'frame',
|
|
44
|
+
'checklist',
|
|
45
|
+
'state',
|
|
72
46
|
];
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
a11y: 'Renders semantic markup; text alternatives come from the authored content.',
|
|
79
|
-
actions: [],
|
|
80
|
-
runtimeFeatures: [],
|
|
81
|
-
assets: [],
|
|
82
|
-
network: 'none',
|
|
83
|
-
migration: DEFAULT_MIGRATION,
|
|
84
|
-
serializer: DEFAULT_SERIALIZER,
|
|
85
|
-
...specification,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
function semantic(specification) {
|
|
89
|
-
return define({ kind: 'semantic', ...specification });
|
|
90
|
-
}
|
|
91
|
-
export const BLOCK_DEFINITIONS = [
|
|
47
|
+
/**
|
|
48
|
+
* Core blocks: the roster entries that have not moved into a block module
|
|
49
|
+
* under `src/blocks/`. The registry appends every module's definition.
|
|
50
|
+
*/
|
|
51
|
+
export const CORE_BLOCK_DEFINITIONS = [
|
|
92
52
|
// --- root ---------------------------------------------------------------
|
|
93
53
|
define({
|
|
94
54
|
type: 'page',
|
|
55
|
+
category: 'layout',
|
|
56
|
+
tags: ['root', 'document'],
|
|
57
|
+
useCases: ['page shell'],
|
|
95
58
|
kind: 'semantic',
|
|
96
59
|
purpose: 'The document root. Synthesized by the normalizer from the spec envelope.',
|
|
97
60
|
summary: 'Page root: title, description, locale, and top-level blocks.',
|
|
@@ -106,6 +69,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
106
69
|
// --- layout primitives --------------------------------------------------
|
|
107
70
|
define({
|
|
108
71
|
type: 'section',
|
|
72
|
+
category: 'layout',
|
|
73
|
+
tags: ['container', 'heading', 'band'],
|
|
74
|
+
useCases: ['group related blocks', 'dark feature band'],
|
|
109
75
|
purpose: 'A titled group of blocks.',
|
|
110
76
|
summary: 'Section with an optional heading wrapping child blocks; an inverse surface sets it on a night band.',
|
|
111
77
|
props: {
|
|
@@ -118,35 +84,11 @@ export const BLOCK_DEFINITIONS = [
|
|
|
118
84
|
},
|
|
119
85
|
slots: { children: { accepts: '*', min: 1, max: 200 } },
|
|
120
86
|
}),
|
|
121
|
-
define({
|
|
122
|
-
type: 'stack',
|
|
123
|
-
purpose: 'Vertical flow container.',
|
|
124
|
-
summary: 'Stack: children flow vertically with a controlled gap.',
|
|
125
|
-
props: { gap: enumStr(['tight', 'normal', 'loose'], { default: 'normal' }), ...anchorProps },
|
|
126
|
-
slots: { children: { accepts: '*', min: 1, max: 200 } },
|
|
127
|
-
}),
|
|
128
|
-
define({
|
|
129
|
-
type: 'grid',
|
|
130
|
-
purpose: 'Responsive grid container.',
|
|
131
|
-
summary: 'Grid: children in N columns that collapse on narrow viewports.',
|
|
132
|
-
props: {
|
|
133
|
-
columns: num({ integer: true, min: 1, max: 6, default: 3 }),
|
|
134
|
-
...anchorProps,
|
|
135
|
-
},
|
|
136
|
-
slots: { children: { accepts: '*', min: 1, max: 200 } },
|
|
137
|
-
}),
|
|
138
|
-
define({
|
|
139
|
-
type: 'split',
|
|
140
|
-
purpose: 'Two-column split container.',
|
|
141
|
-
summary: 'Split: two child groups side by side, stacking when narrow.',
|
|
142
|
-
props: {
|
|
143
|
-
ratio: enumStr(['even', 'wide-left', 'wide-right'], { default: 'even' }),
|
|
144
|
-
...anchorProps,
|
|
145
|
-
},
|
|
146
|
-
slots: { children: { accepts: '*', min: 2, max: 2 } },
|
|
147
|
-
}),
|
|
148
87
|
define({
|
|
149
88
|
type: 'spacer',
|
|
89
|
+
category: 'layout',
|
|
90
|
+
tags: ['spacing'],
|
|
91
|
+
useCases: ['vertical breathing room'],
|
|
150
92
|
purpose: 'Vertical rhythm spacer.',
|
|
151
93
|
summary: 'Spacer: vertical space without content.',
|
|
152
94
|
props: { size: enumStr(['small', 'medium', 'large'], { default: 'medium' }), ...anchorProps },
|
|
@@ -154,6 +96,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
154
96
|
}),
|
|
155
97
|
define({
|
|
156
98
|
type: 'divider',
|
|
99
|
+
category: 'layout',
|
|
100
|
+
tags: ['rule', 'separator'],
|
|
101
|
+
useCases: ['separate sections'],
|
|
157
102
|
purpose: 'Horizontal rule with an optional label.',
|
|
158
103
|
summary: 'Divider: semantic separator with an optional label.',
|
|
159
104
|
props: { label: str({ maxLength: 120 }), ...anchorProps },
|
|
@@ -162,6 +107,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
162
107
|
// --- typography and content --------------------------------------------
|
|
163
108
|
define({
|
|
164
109
|
type: 'heading',
|
|
110
|
+
category: 'content',
|
|
111
|
+
tags: ['title', 'outline'],
|
|
112
|
+
useCases: ['section title'],
|
|
165
113
|
purpose: 'Section heading at a chosen level.',
|
|
166
114
|
summary: 'Heading: h1–h6 with the author-chosen level.',
|
|
167
115
|
props: {
|
|
@@ -173,6 +121,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
173
121
|
}),
|
|
174
122
|
define({
|
|
175
123
|
type: 'text',
|
|
124
|
+
category: 'content',
|
|
125
|
+
tags: ['prose', 'paragraph'],
|
|
126
|
+
useCases: ['body copy'],
|
|
176
127
|
purpose: 'A paragraph, lead sentence, or caption.',
|
|
177
128
|
summary: 'Text: single paragraph with body, lead, or caption treatment.',
|
|
178
129
|
props: {
|
|
@@ -183,24 +134,33 @@ export const BLOCK_DEFINITIONS = [
|
|
|
183
134
|
}),
|
|
184
135
|
define({
|
|
185
136
|
type: 'rich-text',
|
|
137
|
+
category: 'content',
|
|
138
|
+
tags: ['prose', 'inline-marks'],
|
|
139
|
+
useCases: ['formatted paragraphs'],
|
|
186
140
|
purpose: 'Multi-paragraph prose.',
|
|
187
141
|
summary: 'RichText: multiple paragraphs from line breaks.',
|
|
188
142
|
props: { text: txt({ required: true }), ...anchorProps },
|
|
189
143
|
}),
|
|
190
144
|
define({
|
|
191
145
|
type: 'quote',
|
|
146
|
+
category: 'content',
|
|
147
|
+
tags: ['testimonial', 'citation'],
|
|
148
|
+
useCases: ['customer quote', 'pull quote'],
|
|
192
149
|
purpose: 'Pulled quotation.',
|
|
193
150
|
summary: 'Quote: blockquote with an optional attribution.',
|
|
194
151
|
props: { text: txt({ required: true }), cite: str({ maxLength: 200 }), ...anchorProps },
|
|
195
152
|
}),
|
|
196
153
|
define({
|
|
197
154
|
type: 'code',
|
|
155
|
+
category: 'content',
|
|
156
|
+
tags: ['source', 'snippet', 'copy'],
|
|
157
|
+
useCases: ['code sample', 'command to copy'],
|
|
198
158
|
purpose: 'Code or configuration sample.',
|
|
199
159
|
summary: 'Code: preformatted block with optional language and copy target.',
|
|
200
160
|
props: {
|
|
201
161
|
language: str({ maxLength: 32, default: 'text' }),
|
|
202
162
|
title: OPTIONAL_TITLE,
|
|
203
|
-
text: txt({ required: true, maxLength: 100_000 }),
|
|
163
|
+
text: txt({ required: true, maxLength: 100_000, description: VERBATIM_DESCRIPTION }),
|
|
204
164
|
...anchorProps,
|
|
205
165
|
},
|
|
206
166
|
assets: ['code'],
|
|
@@ -210,6 +170,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
210
170
|
}),
|
|
211
171
|
define({
|
|
212
172
|
type: 'badge',
|
|
173
|
+
category: 'content',
|
|
174
|
+
tags: ['label', 'status'],
|
|
175
|
+
useCases: ['status label'],
|
|
213
176
|
purpose: 'Short status or category label.',
|
|
214
177
|
summary: 'Badge: inline status chip.',
|
|
215
178
|
props: {
|
|
@@ -220,6 +183,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
220
183
|
}),
|
|
221
184
|
define({
|
|
222
185
|
type: 'kbd',
|
|
186
|
+
category: 'content',
|
|
187
|
+
tags: ['keyboard', 'shortcut'],
|
|
188
|
+
useCases: ['keyboard shortcut'],
|
|
223
189
|
purpose: 'Keyboard key sequence.',
|
|
224
190
|
summary: 'Kbd: one or more keys rendered as <kbd> elements.',
|
|
225
191
|
props: {
|
|
@@ -230,6 +196,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
230
196
|
}),
|
|
231
197
|
define({
|
|
232
198
|
type: 'key-value',
|
|
199
|
+
category: 'content',
|
|
200
|
+
tags: ['metadata', 'pairs'],
|
|
201
|
+
useCases: ['spec sheet', 'document metadata'],
|
|
233
202
|
purpose: 'Compact definition list.',
|
|
234
203
|
summary: 'KeyValue: label/value pairs rendered as a description list.',
|
|
235
204
|
props: {
|
|
@@ -242,6 +211,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
242
211
|
// --- information --------------------------------------------------------
|
|
243
212
|
define({
|
|
244
213
|
type: 'card',
|
|
214
|
+
category: 'layout',
|
|
215
|
+
tags: ['surface', 'container'],
|
|
216
|
+
useCases: ['boxed summary', 'feature card'],
|
|
245
217
|
purpose: 'Bounded content container.',
|
|
246
218
|
summary: 'Card: titled container that holds child blocks.',
|
|
247
219
|
props: { title: OPTIONAL_TITLE, text: txt(), ...anchorProps },
|
|
@@ -249,6 +221,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
249
221
|
}),
|
|
250
222
|
define({
|
|
251
223
|
type: 'alert',
|
|
224
|
+
category: 'content',
|
|
225
|
+
tags: ['notice', 'status'],
|
|
226
|
+
useCases: ['warning banner', 'status notice'],
|
|
252
227
|
purpose: 'Inline notice.',
|
|
253
228
|
summary: 'Alert: notice with tone and title.',
|
|
254
229
|
props: {
|
|
@@ -261,6 +236,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
261
236
|
}),
|
|
262
237
|
semantic({
|
|
263
238
|
type: 'callout',
|
|
239
|
+
category: 'content',
|
|
240
|
+
tags: ['note', 'aside'],
|
|
241
|
+
useCases: ['tip or note', 'highlighted aside'],
|
|
264
242
|
purpose: 'Emphasized aside for a key point or risk.',
|
|
265
243
|
summary: 'Callout: highlighted aside with tone, title, and body.',
|
|
266
244
|
props: {
|
|
@@ -272,6 +250,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
272
250
|
}),
|
|
273
251
|
semantic({
|
|
274
252
|
type: 'hero',
|
|
253
|
+
category: 'content',
|
|
254
|
+
tags: ['landing', 'headline', 'intro'],
|
|
255
|
+
useCases: ['landing page header', 'report title'],
|
|
275
256
|
purpose: 'Page opener that states the artifact subject.',
|
|
276
257
|
summary: 'Hero: eyebrow, title, and one-line description, optionally over a framed product shot.',
|
|
277
258
|
props: {
|
|
@@ -280,6 +261,7 @@ export const BLOCK_DEFINITIONS = [
|
|
|
280
261
|
description: txt(),
|
|
281
262
|
align: enumStr(['start', 'center'], { default: 'start' }),
|
|
282
263
|
src: urlProp({
|
|
264
|
+
asset: 'images',
|
|
283
265
|
description: 'Optional product shot shown in a browser frame below the copy.',
|
|
284
266
|
}),
|
|
285
267
|
alt: str({ maxLength: 300, description: 'Required when src is set.' }),
|
|
@@ -299,6 +281,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
299
281
|
}),
|
|
300
282
|
semantic({
|
|
301
283
|
type: 'stats',
|
|
284
|
+
category: 'data',
|
|
285
|
+
tags: ['numbers', 'summary'],
|
|
286
|
+
useCases: ['headline numbers', 'report summary'],
|
|
302
287
|
purpose: 'KPI or summary figures.',
|
|
303
288
|
summary: 'Stats: labeled values as a figure list.',
|
|
304
289
|
props: {
|
|
@@ -310,6 +295,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
310
295
|
}),
|
|
311
296
|
define({
|
|
312
297
|
type: 'progress',
|
|
298
|
+
category: 'data',
|
|
299
|
+
tags: ['completion', 'bars'],
|
|
300
|
+
useCases: ['completion status', 'goal tracking'],
|
|
313
301
|
purpose: 'Single progress or completeness value.',
|
|
314
302
|
summary: 'Progress: single bar with an accessible value range.',
|
|
315
303
|
props: {
|
|
@@ -323,6 +311,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
323
311
|
}),
|
|
324
312
|
semantic({
|
|
325
313
|
type: 'steps',
|
|
314
|
+
category: 'content',
|
|
315
|
+
tags: ['process', 'ordered'],
|
|
316
|
+
useCases: ['how-to steps', 'onboarding flow'],
|
|
326
317
|
purpose: 'Ordered procedure.',
|
|
327
318
|
summary: 'Steps: numbered sequence of titled steps.',
|
|
328
319
|
props: {
|
|
@@ -335,6 +326,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
335
326
|
}),
|
|
336
327
|
semantic({
|
|
337
328
|
type: 'timeline',
|
|
329
|
+
category: 'content',
|
|
330
|
+
tags: ['chronology', 'history'],
|
|
331
|
+
useCases: ['release history', 'project milestones'],
|
|
338
332
|
purpose: 'Chronological or staged events.',
|
|
339
333
|
summary: 'Timeline: ordered entries with a when/title/body shape.',
|
|
340
334
|
props: {
|
|
@@ -347,6 +341,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
347
341
|
// --- collections --------------------------------------------------------
|
|
348
342
|
define({
|
|
349
343
|
type: 'list',
|
|
344
|
+
category: 'content',
|
|
345
|
+
tags: ['bullets', 'items'],
|
|
346
|
+
useCases: ['bullet list', 'checklist of points'],
|
|
350
347
|
purpose: 'Short item list with optional badges.',
|
|
351
348
|
summary: 'List: bulleted items with optional status badges.',
|
|
352
349
|
props: {
|
|
@@ -360,6 +357,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
360
357
|
}),
|
|
361
358
|
semantic({
|
|
362
359
|
type: 'card-grid',
|
|
360
|
+
category: 'content',
|
|
361
|
+
tags: ['cards', 'overview'],
|
|
362
|
+
useCases: ['feature overview', 'link directory'],
|
|
363
363
|
purpose: 'Grid of short cards.',
|
|
364
364
|
summary: 'CardGrid: titled cards in a responsive grid.',
|
|
365
365
|
props: {
|
|
@@ -370,6 +370,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
370
370
|
}),
|
|
371
371
|
define({
|
|
372
372
|
type: 'table',
|
|
373
|
+
category: 'data',
|
|
374
|
+
tags: ['tabular', 'rows', 'columns'],
|
|
375
|
+
useCases: ['tabular data', 'comparison rows'],
|
|
373
376
|
purpose: 'Tabular data with a header row.',
|
|
374
377
|
summary: 'Table: columns and rows with a real header row.',
|
|
375
378
|
props: {
|
|
@@ -383,6 +386,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
383
386
|
}),
|
|
384
387
|
semantic({
|
|
385
388
|
type: 'comparison',
|
|
389
|
+
category: 'data',
|
|
390
|
+
tags: ['versus', 'options'],
|
|
391
|
+
useCases: ['compare options', 'plan comparison'],
|
|
386
392
|
purpose: 'Side-by-side comparison of two alternatives.',
|
|
387
393
|
summary: 'Comparison: two labeled columns of points.',
|
|
388
394
|
props: {
|
|
@@ -395,6 +401,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
395
401
|
}),
|
|
396
402
|
semantic({
|
|
397
403
|
type: 'risk-matrix',
|
|
404
|
+
category: 'data',
|
|
405
|
+
tags: ['risk', 'impact', 'likelihood'],
|
|
406
|
+
useCases: ['risk register', 'threat assessment'],
|
|
398
407
|
purpose: 'Impact/likelihood risk table.',
|
|
399
408
|
summary: 'RiskMatrix: risks rated by impact and likelihood.',
|
|
400
409
|
props: {
|
|
@@ -411,50 +420,11 @@ export const BLOCK_DEFINITIONS = [
|
|
|
411
420
|
a11y: 'Ratings are text values in table cells, never colour-only.',
|
|
412
421
|
}),
|
|
413
422
|
// --- interactive collections -------------------------------------------
|
|
414
|
-
define({
|
|
415
|
-
type: 'tabs',
|
|
416
|
-
purpose: 'Tabbed groups of related content.',
|
|
417
|
-
summary: 'Tabs: roving-tabindex tablist with tabpanels.',
|
|
418
|
-
props: {
|
|
419
|
-
title: OPTIONAL_TITLE,
|
|
420
|
-
items: itemsOf({ id: idProp('Tab id.'), title: LABEL, text: txt({ required: true }) }, { minItems: 2 }),
|
|
421
|
-
on: onProp('Optional state binding fired when a tab is selected.'),
|
|
422
|
-
...anchorProps,
|
|
423
|
-
},
|
|
424
|
-
runtimeFeatures: ['tabs'],
|
|
425
|
-
actions: ['select-tab'],
|
|
426
|
-
a11y: 'role="tablist" with arrow-key roving focus, aria-selected, aria-controls, and labelled tabpanels.',
|
|
427
|
-
}),
|
|
428
|
-
define({
|
|
429
|
-
type: 'accordion',
|
|
430
|
-
purpose: 'Collapsible sections.',
|
|
431
|
-
summary: 'Accordion: disclosure sections that expand and collapse.',
|
|
432
|
-
props: {
|
|
433
|
-
title: OPTIONAL_TITLE,
|
|
434
|
-
items: itemsOf({ title: LABEL, text: txt({ required: true }) }),
|
|
435
|
-
on: onProp('Optional state binding fired when a section toggles.'),
|
|
436
|
-
...anchorProps,
|
|
437
|
-
},
|
|
438
|
-
runtimeFeatures: ['accordion'],
|
|
439
|
-
actions: ['toggle', 'expand', 'collapse'],
|
|
440
|
-
a11y: 'Native <details>/<summary> where possible; otherwise button + region with aria-expanded.',
|
|
441
|
-
}),
|
|
442
|
-
define({
|
|
443
|
-
type: 'carousel',
|
|
444
|
-
purpose: 'Sequenced slides with manual navigation.',
|
|
445
|
-
summary: 'Carousel: prev/next, keyboard, and swipe across slides.',
|
|
446
|
-
props: {
|
|
447
|
-
ariaLabel: str({ required: true, maxLength: 120 }),
|
|
448
|
-
items: itemsOf({ title: LABEL, text: txt({ required: true }) }, { minItems: 1 }),
|
|
449
|
-
on: onProp('Optional state binding fired when the active slide changes.'),
|
|
450
|
-
...anchorProps,
|
|
451
|
-
},
|
|
452
|
-
runtimeFeatures: ['carousel'],
|
|
453
|
-
actions: ['next', 'previous'],
|
|
454
|
-
a11y: 'Labeled region with prev/next buttons, arrow-key support, a slide counter, and no autoplay.',
|
|
455
|
-
}),
|
|
456
423
|
semantic({
|
|
457
424
|
type: 'toolbar',
|
|
425
|
+
category: 'interaction',
|
|
426
|
+
tags: ['controls', 'actions'],
|
|
427
|
+
useCases: ['page actions', 'quick links'],
|
|
458
428
|
purpose: 'Row of controls or chips.',
|
|
459
429
|
summary: 'Toolbar: buttons, badges, and links in one accessible row.',
|
|
460
430
|
props: {
|
|
@@ -488,26 +458,12 @@ export const BLOCK_DEFINITIONS = [
|
|
|
488
458
|
a11y: 'role="toolbar" with roving focus order; every control is a real button or link.',
|
|
489
459
|
}),
|
|
490
460
|
// --- data visualization -------------------------------------------------
|
|
491
|
-
define({
|
|
492
|
-
type: 'chart',
|
|
493
|
-
purpose: 'Deterministic SVG chart with a text summary.',
|
|
494
|
-
summary: 'Chart: bar, line, area, pie, donut, sparkline, or progress from labeled series.',
|
|
495
|
-
props: {
|
|
496
|
-
kind: enumStr(CHART_KINDS, { required: true }),
|
|
497
|
-
title: OPTIONAL_TITLE,
|
|
498
|
-
description: txt(),
|
|
499
|
-
labels: list(str({ maxLength: 80 }), { required: true, minItems: 1, maxItems: 200 }),
|
|
500
|
-
series: itemsOf({ label: LABEL, values: list(num(), { required: true, minItems: 1, maxItems: 200 }) }, { minItems: 1 }),
|
|
501
|
-
...anchorProps,
|
|
502
|
-
},
|
|
503
|
-
runtimeFeatures: ['chart'],
|
|
504
|
-
assets: ['chart'],
|
|
505
|
-
a11y: 'SVG carries role="img" plus a generated text summary; the same values are available as a table for assistive technology.',
|
|
506
|
-
serializer: 'Serializes to the labels/series data, never to rendered SVG.',
|
|
507
|
-
}),
|
|
508
461
|
// --- diagrams (adapter) -------------------------------------------------
|
|
509
462
|
semantic({
|
|
510
463
|
type: 'diagram-panel',
|
|
464
|
+
category: 'engineering',
|
|
465
|
+
tags: ['diagram', 'architecture'],
|
|
466
|
+
useCases: ['architecture diagram', 'flow chart'],
|
|
511
467
|
purpose: 'Typed diagram rendered through an adapter.',
|
|
512
468
|
summary: 'DiagramPanel: embeds trusted output from a diagram adapter (ak:diagram when installed).',
|
|
513
469
|
props: {
|
|
@@ -529,39 +485,11 @@ export const BLOCK_DEFINITIONS = [
|
|
|
529
485
|
migration: 'Adapter contract is versioned separately; a spec that no longer compiles degrades to the fallback.',
|
|
530
486
|
}),
|
|
531
487
|
// --- showcase -----------------------------------------------------------
|
|
532
|
-
semantic({
|
|
533
|
-
type: 'bento',
|
|
534
|
-
purpose: 'Feature mosaic: tiles of mixed size that each carry one idea, figure, or image.',
|
|
535
|
-
summary: 'Bento: asymmetric tile grid; a tile can hold an eyebrow, title, text, a large figure, and a local image.',
|
|
536
|
-
props: {
|
|
537
|
-
title: OPTIONAL_TITLE,
|
|
538
|
-
items: itemsOf({
|
|
539
|
-
title: LABEL,
|
|
540
|
-
text: txt(),
|
|
541
|
-
eyebrow: str({ maxLength: 60 }),
|
|
542
|
-
value: str({ maxLength: 40, description: 'A large figure shown above the title.' }),
|
|
543
|
-
size: enumStr(['small', 'wide', 'tall', 'large'], { default: 'small' }),
|
|
544
|
-
src: urlProp({
|
|
545
|
-
description: 'Optional image; remote sources follow the network policy.',
|
|
546
|
-
}),
|
|
547
|
-
alt: str({
|
|
548
|
-
maxLength: 300,
|
|
549
|
-
description: 'Required when src is set; use "" for a decorative image.',
|
|
550
|
-
}),
|
|
551
|
-
}, { minItems: 1, maxItems: 12 }),
|
|
552
|
-
...anchorProps,
|
|
553
|
-
},
|
|
554
|
-
runtimeFeatures: ['bento'],
|
|
555
|
-
network: 'optional',
|
|
556
|
-
sizing: {
|
|
557
|
-
sizes: ['large'],
|
|
558
|
-
default: 'large',
|
|
559
|
-
responsive: 'Four columns on wide screens, two on tablets, one on phones; spans collapse with the grid.',
|
|
560
|
-
},
|
|
561
|
-
a11y: 'A list of tiles; each tile title is a heading-styled paragraph, images keep their alt text.',
|
|
562
|
-
}),
|
|
563
488
|
define({
|
|
564
489
|
type: 'marquee',
|
|
490
|
+
category: 'showcase',
|
|
491
|
+
tags: ['ticker', 'logos'],
|
|
492
|
+
useCases: ['customer logos', 'highlight ticker'],
|
|
565
493
|
purpose: 'Continuously scrolling strip of short highlights.',
|
|
566
494
|
summary: 'Marquee: looping ticker of short items that pauses on hover and stops under reduced motion.',
|
|
567
495
|
props: {
|
|
@@ -579,15 +507,18 @@ export const BLOCK_DEFINITIONS = [
|
|
|
579
507
|
}),
|
|
580
508
|
define({
|
|
581
509
|
type: 'terminal',
|
|
510
|
+
category: 'engineering',
|
|
511
|
+
tags: ['shell', 'commands', 'output'],
|
|
512
|
+
useCases: ['install steps', 'cli session'],
|
|
582
513
|
purpose: 'A command-line session: commands with their output.',
|
|
583
|
-
summary: 'Terminal: window-framed session
|
|
514
|
+
summary: 'Terminal: window-framed session that types in on load; commands, output and errors are styled apart.',
|
|
584
515
|
props: {
|
|
585
516
|
title: str({ maxLength: 120, default: 'Terminal' }),
|
|
586
517
|
lines: itemsOf({
|
|
587
518
|
kind: enumStr(['command', 'output', 'comment', 'success', 'error'], {
|
|
588
519
|
default: 'output',
|
|
589
520
|
}),
|
|
590
|
-
text: txt({ required: true, maxLength: 2_000 }),
|
|
521
|
+
text: txt({ required: true, maxLength: 2_000, description: VERBATIM_DESCRIPTION }),
|
|
591
522
|
}, { minItems: 1, maxItems: 60 }),
|
|
592
523
|
...anchorProps,
|
|
593
524
|
},
|
|
@@ -596,6 +527,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
596
527
|
}),
|
|
597
528
|
semantic({
|
|
598
529
|
type: 'file-tree',
|
|
530
|
+
category: 'engineering',
|
|
531
|
+
tags: ['files', 'paths', 'repository'],
|
|
532
|
+
useCases: ['project layout', 'changed files'],
|
|
599
533
|
purpose: 'Files and folders, optionally with change status, derived from flat paths.',
|
|
600
534
|
summary: 'File tree: nested folders built from slash-separated paths, with per-file status and notes.',
|
|
601
535
|
props: {
|
|
@@ -614,17 +548,20 @@ export const BLOCK_DEFINITIONS = [
|
|
|
614
548
|
}),
|
|
615
549
|
semantic({
|
|
616
550
|
type: 'before-after',
|
|
551
|
+
category: 'media',
|
|
552
|
+
tags: ['comparison', 'slider', 'images'],
|
|
553
|
+
useCases: ['redesign comparison', 'visual diff'],
|
|
617
554
|
purpose: 'Before and after: two images of the same frame, revealed by a draggable divider.',
|
|
618
555
|
summary: 'Compare: before/after image slider driven by a native range input; without script both images stay visible.',
|
|
619
556
|
props: {
|
|
620
557
|
title: OPTIONAL_TITLE,
|
|
621
558
|
before: obj({
|
|
622
|
-
src: urlProp({ required: true }),
|
|
559
|
+
src: urlProp({ required: true, asset: 'images' }),
|
|
623
560
|
alt: str({ required: true, maxLength: 300 }),
|
|
624
561
|
label: str({ maxLength: 40, default: 'Before' }),
|
|
625
562
|
}, { required: true }),
|
|
626
563
|
after: obj({
|
|
627
|
-
src: urlProp({ required: true }),
|
|
564
|
+
src: urlProp({ required: true, asset: 'images' }),
|
|
628
565
|
alt: str({ required: true, maxLength: 300 }),
|
|
629
566
|
label: str({ maxLength: 40, default: 'After' }),
|
|
630
567
|
}, { required: true }),
|
|
@@ -638,6 +575,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
638
575
|
}),
|
|
639
576
|
semantic({
|
|
640
577
|
type: 'kpi',
|
|
578
|
+
category: 'data',
|
|
579
|
+
tags: ['metrics', 'sparkline', 'trend'],
|
|
580
|
+
useCases: ['dashboard metrics', 'performance summary'],
|
|
641
581
|
purpose: 'Headline metrics with direction of change and a small trend line.',
|
|
642
582
|
summary: 'KPI: metric cards with value, signed delta, good/bad direction, and an optional sparkline series.',
|
|
643
583
|
props: {
|
|
@@ -661,6 +601,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
661
601
|
}),
|
|
662
602
|
semantic({
|
|
663
603
|
type: 'showcase',
|
|
604
|
+
category: 'showcase',
|
|
605
|
+
tags: ['spotlight', 'screenshot'],
|
|
606
|
+
useCases: ['feature spotlight', 'product tour'],
|
|
664
607
|
purpose: 'Feature spotlight: copy beside a framed screenshot.',
|
|
665
608
|
summary: 'Showcase: eyebrow, title, text, and bullets beside an image in a browser frame; the image side can flip.',
|
|
666
609
|
props: {
|
|
@@ -668,7 +611,7 @@ export const BLOCK_DEFINITIONS = [
|
|
|
668
611
|
title: TITLE,
|
|
669
612
|
text: txt(),
|
|
670
613
|
bullets: list(str({ required: true, maxLength: 200 }), { maxItems: 8 }),
|
|
671
|
-
src: urlProp({ required: true }),
|
|
614
|
+
src: urlProp({ required: true, asset: 'images' }),
|
|
672
615
|
alt: str({ required: true, maxLength: 300 }),
|
|
673
616
|
frame: enumStr(['browser', 'plain'], { default: 'browser' }),
|
|
674
617
|
address: str({
|
|
@@ -689,6 +632,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
689
632
|
}),
|
|
690
633
|
define({
|
|
691
634
|
type: 'checklist',
|
|
635
|
+
category: 'data',
|
|
636
|
+
tags: ['tasks', 'status'],
|
|
637
|
+
useCases: ['launch checklist', 'review checklist'],
|
|
692
638
|
purpose: 'Task list with done and open items and a completion count.',
|
|
693
639
|
summary: 'Checklist: items marked done or open, with a visible completion count.',
|
|
694
640
|
props: {
|
|
@@ -701,6 +647,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
701
647
|
}),
|
|
702
648
|
semantic({
|
|
703
649
|
type: 'cta',
|
|
650
|
+
category: 'showcase',
|
|
651
|
+
tags: ['conversion', 'action'],
|
|
652
|
+
useCases: ['sign-up prompt', 'closing call to action'],
|
|
704
653
|
purpose: 'Closing call to action that sends the reader somewhere next.',
|
|
705
654
|
summary: 'CTA: eyebrow, oversized title, text, and up to three link actions on a night band.',
|
|
706
655
|
props: {
|
|
@@ -725,10 +674,13 @@ export const BLOCK_DEFINITIONS = [
|
|
|
725
674
|
// --- media --------------------------------------------------------------
|
|
726
675
|
define({
|
|
727
676
|
type: 'image',
|
|
677
|
+
category: 'media',
|
|
678
|
+
tags: ['picture', 'figure'],
|
|
679
|
+
useCases: ['screenshot', 'illustration'],
|
|
728
680
|
purpose: 'Single image or picture.',
|
|
729
681
|
summary: 'Image: local asset or allowlisted URL with required alt text.',
|
|
730
682
|
props: {
|
|
731
|
-
src: urlProp({ required: true }),
|
|
683
|
+
src: urlProp({ required: true, asset: 'images' }),
|
|
732
684
|
alt: str({ required: true, maxLength: 300 }),
|
|
733
685
|
caption: txt(),
|
|
734
686
|
...anchorProps,
|
|
@@ -737,32 +689,17 @@ export const BLOCK_DEFINITIONS = [
|
|
|
737
689
|
assets: ['media'],
|
|
738
690
|
a11y: 'Alt text is required; decorative images must use an empty alt explicitly.',
|
|
739
691
|
}),
|
|
740
|
-
semantic({
|
|
741
|
-
type: 'gallery',
|
|
742
|
-
purpose: 'Image grid.',
|
|
743
|
-
summary: 'Gallery: responsive image grid with captions.',
|
|
744
|
-
props: {
|
|
745
|
-
title: OPTIONAL_TITLE,
|
|
746
|
-
columns: num({ integer: true, min: 1, max: 6, default: 3 }),
|
|
747
|
-
items: itemsOf({
|
|
748
|
-
src: urlProp({ required: true }),
|
|
749
|
-
alt: str({ required: true, maxLength: 300 }),
|
|
750
|
-
caption: txt(),
|
|
751
|
-
}),
|
|
752
|
-
...anchorProps,
|
|
753
|
-
},
|
|
754
|
-
network: 'optional',
|
|
755
|
-
assets: ['media'],
|
|
756
|
-
a11y: 'Every image keeps its alt text; captions are visible text, not tooltips.',
|
|
757
|
-
}),
|
|
758
692
|
define({
|
|
759
693
|
type: 'video',
|
|
694
|
+
category: 'media',
|
|
695
|
+
tags: ['player', 'poster'],
|
|
696
|
+
useCases: ['product demo', 'recorded talk'],
|
|
760
697
|
purpose: 'Local video or a network-denied fallback.',
|
|
761
|
-
summary: 'Video: plays local sources; a provider
|
|
698
|
+
summary: 'Video: plays local sources; a provider or network source degrades to a poster plus link.',
|
|
762
699
|
props: {
|
|
763
700
|
title: LABEL,
|
|
764
|
-
src: urlProp({ required: true }),
|
|
765
|
-
poster: urlProp(),
|
|
701
|
+
src: urlProp({ required: true, asset: 'media' }),
|
|
702
|
+
poster: urlProp({ asset: 'images', rejectBlocked: true }),
|
|
766
703
|
provider: enumStr(EMBED_PROVIDER_NAMES, {
|
|
767
704
|
description: 'Network media provider. Requires the media capability and this provider in the page provider allowlist; the page still links out instead of embedding.',
|
|
768
705
|
}),
|
|
@@ -781,11 +718,14 @@ export const BLOCK_DEFINITIONS = [
|
|
|
781
718
|
}),
|
|
782
719
|
define({
|
|
783
720
|
type: 'audio',
|
|
721
|
+
category: 'media',
|
|
722
|
+
tags: ['player', 'sound'],
|
|
723
|
+
useCases: ['podcast clip', 'voice note'],
|
|
784
724
|
purpose: 'Local audio or a network-denied fallback.',
|
|
785
|
-
summary: 'Audio: plays local sources; a provider
|
|
725
|
+
summary: 'Audio: plays local sources; a provider or network source degrades to metadata plus link.',
|
|
786
726
|
props: {
|
|
787
727
|
title: LABEL,
|
|
788
|
-
src: urlProp({ required: true }),
|
|
728
|
+
src: urlProp({ required: true, asset: 'media' }),
|
|
789
729
|
provider: enumStr(EMBED_PROVIDER_NAMES, {
|
|
790
730
|
description: 'Network media provider. Requires the media capability and this provider in the page provider allowlist; the page still links out instead of embedding.',
|
|
791
731
|
}),
|
|
@@ -805,6 +745,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
805
745
|
// --- controls -----------------------------------------------------------
|
|
806
746
|
define({
|
|
807
747
|
type: 'button',
|
|
748
|
+
category: 'interaction',
|
|
749
|
+
tags: ['action', 'control'],
|
|
750
|
+
useCases: ['trigger an action', 'primary call'],
|
|
808
751
|
purpose: 'Single actionable control.',
|
|
809
752
|
summary: 'Button: clickable control with declarative action bindings.',
|
|
810
753
|
props: {
|
|
@@ -819,6 +762,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
819
762
|
}),
|
|
820
763
|
define({
|
|
821
764
|
type: 'link',
|
|
765
|
+
category: 'interaction',
|
|
766
|
+
tags: ['navigation', 'anchor'],
|
|
767
|
+
useCases: ['external link', 'related page'],
|
|
822
768
|
purpose: 'Navigational link.',
|
|
823
769
|
summary: 'Link: allowlisted URL with descriptive text.',
|
|
824
770
|
props: { label: LABEL, href: urlProp({ required: true }), ...anchorProps },
|
|
@@ -827,6 +773,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
827
773
|
}),
|
|
828
774
|
define({
|
|
829
775
|
type: 'slider',
|
|
776
|
+
category: 'interaction',
|
|
777
|
+
tags: ['range', 'input', 'state'],
|
|
778
|
+
useCases: ['adjust a value', 'what-if input'],
|
|
830
779
|
purpose: 'Bounded numeric input.',
|
|
831
780
|
summary: 'Slider: range input with pointer drag and full keyboard support.',
|
|
832
781
|
props: {
|
|
@@ -844,6 +793,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
844
793
|
}),
|
|
845
794
|
define({
|
|
846
795
|
type: 'search',
|
|
796
|
+
category: 'interaction',
|
|
797
|
+
tags: ['filter', 'input'],
|
|
798
|
+
useCases: ['filter a list', 'find an item'],
|
|
847
799
|
purpose: 'Filter input for a collection.',
|
|
848
800
|
summary: 'Search: labeled filter input bound to a collection.',
|
|
849
801
|
props: {
|
|
@@ -858,6 +810,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
858
810
|
}),
|
|
859
811
|
define({
|
|
860
812
|
type: 'dialog',
|
|
813
|
+
category: 'interaction',
|
|
814
|
+
tags: ['modal', 'overlay'],
|
|
815
|
+
useCases: ['confirmation', 'detail popup'],
|
|
861
816
|
purpose: 'Modal detail surface.',
|
|
862
817
|
summary: 'Dialog: native <dialog> with labeled title and close controls.',
|
|
863
818
|
props: {
|
|
@@ -874,6 +829,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
874
829
|
// --- review-specific semantic blocks ------------------------------------
|
|
875
830
|
semantic({
|
|
876
831
|
type: 'diff-summary',
|
|
832
|
+
category: 'engineering',
|
|
833
|
+
tags: ['diff', 'changes'],
|
|
834
|
+
useCases: ['change summary', 'pull request files'],
|
|
877
835
|
purpose: 'Changed-file summary from a diff.',
|
|
878
836
|
summary: 'DiffSummary: file paths with change status and line counts.',
|
|
879
837
|
props: {
|
|
@@ -890,6 +848,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
890
848
|
}),
|
|
891
849
|
semantic({
|
|
892
850
|
type: 'code-review',
|
|
851
|
+
category: 'engineering',
|
|
852
|
+
tags: ['review', 'findings'],
|
|
853
|
+
useCases: ['review findings', 'audit notes'],
|
|
893
854
|
purpose: 'Structured review findings.',
|
|
894
855
|
summary: 'CodeReview: good/bad/ugly/concern/question findings.',
|
|
895
856
|
props: {
|
|
@@ -904,5 +865,4 @@ export const BLOCK_DEFINITIONS = [
|
|
|
904
865
|
a11y: 'The finding kind is written as text; tone colour is decorative.',
|
|
905
866
|
}),
|
|
906
867
|
];
|
|
907
|
-
export const BLOCKS_BY_TYPE = new Map(BLOCK_DEFINITIONS.map((definition) => [definition.type, definition]));
|
|
908
868
|
//# sourceMappingURL=roster.js.map
|