@bestagentkits/render 0.1.1-next.1 → 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 +209 -1
- package/README.md +324 -44
- package/assets/fonts/bricolage-grotesque/OFL.txt +93 -0
- package/assets/fonts/fraunces/OFL.txt +93 -0
- package/assets/fonts/geist/OFL.txt +93 -0
- package/assets/fonts/inter-tight/OFL.txt +93 -0
- package/assets/fonts/jetbrains-mono/OFL.txt +93 -0
- package/assets/fonts/plus-jakarta-sans/OFL.txt +93 -0
- 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 +2 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +193 -39
- 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 +10 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +9 -0
- package/dist/mcp-server.js.map +1 -0
- 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 +360 -184
- package/dist/registry/roster.js.map +1 -1
- package/dist/render/block-helpers.d.ts +45 -0
- package/dist/render/block-helpers.d.ts.map +1 -0
- package/dist/render/block-helpers.js +83 -0
- package/dist/render/block-helpers.js.map +1 -0
- package/dist/render/blocks.d.ts +10 -35
- package/dist/render/blocks.d.ts.map +1 -1
- package/dist/render/blocks.js +144 -263
- 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 +33 -11
- package/dist/render/charts.d.ts.map +1 -1
- package/dist/render/charts.js +145 -109
- package/dist/render/charts.js.map +1 -1
- package/dist/render/derived-variables.d.ts +37 -0
- package/dist/render/derived-variables.d.ts.map +1 -0
- package/dist/render/derived-variables.js +40 -0
- package/dist/render/derived-variables.js.map +1 -0
- package/dist/render/diagram-fallback.d.ts +25 -0
- package/dist/render/diagram-fallback.d.ts.map +1 -0
- package/dist/render/diagram-fallback.js +86 -0
- package/dist/render/diagram-fallback.js.map +1 -0
- package/dist/render/document.d.ts +15 -0
- package/dist/render/document.d.ts.map +1 -1
- package/dist/render/document.js +53 -8
- package/dist/render/document.js.map +1 -1
- package/dist/render/effects-styles.d.ts +14 -0
- package/dist/render/effects-styles.d.ts.map +1 -0
- package/dist/render/effects-styles.js +39 -0
- package/dist/render/effects-styles.js.map +1 -0
- package/dist/render/embedded-fonts.generated.d.ts +22 -0
- package/dist/render/embedded-fonts.generated.d.ts.map +1 -0
- package/dist/render/embedded-fonts.generated.js +59 -0
- package/dist/render/embedded-fonts.generated.js.map +1 -0
- 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 +14 -0
- package/dist/render/feature-styles.d.ts.map +1 -0
- package/dist/render/feature-styles.js +123 -0
- package/dist/render/feature-styles.js.map +1 -0
- package/dist/render/font-faces.d.ts +22 -0
- package/dist/render/font-faces.d.ts.map +1 -0
- package/dist/render/font-faces.js +60 -0
- package/dist/render/font-faces.js.map +1 -0
- package/dist/render/outline.d.ts +21 -0
- package/dist/render/outline.d.ts.map +1 -0
- package/dist/render/outline.js +47 -0
- package/dist/render/outline.js.map +1 -0
- 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 +108 -41
- 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 +275 -128
- package/dist/render/runtime.js.map +1 -1
- package/dist/render/showcase-blocks.d.ts +52 -0
- package/dist/render/showcase-blocks.d.ts.map +1 -0
- package/dist/render/showcase-blocks.js +329 -0
- package/dist/render/showcase-blocks.js.map +1 -0
- package/dist/render/showcase-styles.d.ts +15 -0
- package/dist/render/showcase-styles.d.ts.map +1 -0
- package/dist/render/showcase-styles.js +201 -0
- package/dist/render/showcase-styles.js.map +1 -0
- package/dist/render/signature-styles.d.ts +18 -0
- package/dist/render/signature-styles.d.ts.map +1 -0
- package/dist/render/signature-styles.js +41 -0
- package/dist/render/signature-styles.js.map +1 -0
- 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 +18 -9
- package/dist/render/styles.d.ts.map +1 -1
- package/dist/render/styles.js +228 -129
- package/dist/render/styles.js.map +1 -1
- package/dist/render/surface-styles.d.ts +24 -0
- package/dist/render/surface-styles.d.ts.map +1 -0
- package/dist/render/surface-styles.js +41 -0
- package/dist/render/surface-styles.js.map +1 -0
- 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 +45 -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 +219 -41
- 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 +11 -3
- package/dist/theme/load-theme.d.ts.map +1 -1
- package/dist/theme/load-theme.js +71 -12
- 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 +8 -10
- package/dist/theme/presets.d.ts.map +1 -1
- package/dist/theme/presets.js +40 -56
- 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/theme/tokens.d.ts.map +1 -1
- package/dist/theme/tokens.js +4 -4
- package/dist/theme/tokens.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/llms.txt +29 -0
- package/package.json +13 -3
package/dist/registry/roster.js
CHANGED
|
@@ -12,82 +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
|
-
description,
|
|
47
|
-
maxBytes: 8_000,
|
|
48
|
-
schemaRef: '#/$defs/actionMap',
|
|
49
|
-
});
|
|
50
|
-
/** Reusable prop fragments. */
|
|
51
|
-
const onProp = (description = 'Declarative action bindings for this block.') => actionMap(description);
|
|
52
|
-
const anchorProps = {
|
|
53
|
-
id: idProp('Stable node id. Author-provided ids are used verbatim and must be unique.'),
|
|
54
|
-
};
|
|
55
|
-
const itemsOf = (fields, o = {}) => list(obj(fields), { required: true, minItems: o.minItems ?? 1, maxItems: o.maxItems ?? 200 });
|
|
56
|
-
const TITLE = str({ required: true, maxLength: 200 });
|
|
57
|
-
const OPTIONAL_TITLE = str({ maxLength: 200 });
|
|
58
|
-
const LABEL = str({ required: true, maxLength: 200 });
|
|
59
|
-
/** Chart kinds, SVG-first and deterministic. */
|
|
60
|
-
export const CHART_KINDS = [
|
|
61
|
-
'bar',
|
|
62
|
-
'line',
|
|
63
|
-
'area',
|
|
64
|
-
'pie',
|
|
65
|
-
'donut',
|
|
66
|
-
'sparkline',
|
|
67
|
-
'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',
|
|
68
46
|
];
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
a11y: 'Renders semantic markup; text alternatives come from the authored content.',
|
|
75
|
-
actions: [],
|
|
76
|
-
runtimeFeatures: [],
|
|
77
|
-
assets: [],
|
|
78
|
-
network: 'none',
|
|
79
|
-
migration: DEFAULT_MIGRATION,
|
|
80
|
-
serializer: DEFAULT_SERIALIZER,
|
|
81
|
-
...specification,
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
function semantic(specification) {
|
|
85
|
-
return define({ kind: 'semantic', ...specification });
|
|
86
|
-
}
|
|
87
|
-
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 = [
|
|
88
52
|
// --- root ---------------------------------------------------------------
|
|
89
53
|
define({
|
|
90
54
|
type: 'page',
|
|
55
|
+
category: 'layout',
|
|
56
|
+
tags: ['root', 'document'],
|
|
57
|
+
useCases: ['page shell'],
|
|
91
58
|
kind: 'semantic',
|
|
92
59
|
purpose: 'The document root. Synthesized by the normalizer from the spec envelope.',
|
|
93
60
|
summary: 'Page root: title, description, locale, and top-level blocks.',
|
|
@@ -102,40 +69,26 @@ export const BLOCK_DEFINITIONS = [
|
|
|
102
69
|
// --- layout primitives --------------------------------------------------
|
|
103
70
|
define({
|
|
104
71
|
type: 'section',
|
|
72
|
+
category: 'layout',
|
|
73
|
+
tags: ['container', 'heading', 'band'],
|
|
74
|
+
useCases: ['group related blocks', 'dark feature band'],
|
|
105
75
|
purpose: 'A titled group of blocks.',
|
|
106
|
-
summary: 'Section with an optional heading wrapping child blocks.',
|
|
107
|
-
props: { title: OPTIONAL_TITLE, ...anchorProps },
|
|
108
|
-
slots: { children: { accepts: '*', min: 1, max: 200 } },
|
|
109
|
-
}),
|
|
110
|
-
define({
|
|
111
|
-
type: 'stack',
|
|
112
|
-
purpose: 'Vertical flow container.',
|
|
113
|
-
summary: 'Stack: children flow vertically with a controlled gap.',
|
|
114
|
-
props: { gap: enumStr(['tight', 'normal', 'loose'], { default: 'normal' }), ...anchorProps },
|
|
115
|
-
slots: { children: { accepts: '*', min: 1, max: 200 } },
|
|
116
|
-
}),
|
|
117
|
-
define({
|
|
118
|
-
type: 'grid',
|
|
119
|
-
purpose: 'Responsive grid container.',
|
|
120
|
-
summary: 'Grid: children in N columns that collapse on narrow viewports.',
|
|
76
|
+
summary: 'Section with an optional heading wrapping child blocks; an inverse surface sets it on a night band.',
|
|
121
77
|
props: {
|
|
122
|
-
|
|
78
|
+
title: OPTIONAL_TITLE,
|
|
79
|
+
surface: enumStr(['plain', 'inverse'], {
|
|
80
|
+
default: 'plain',
|
|
81
|
+
description: 'inverse renders the section on a dark band using the theme dark palette, in both schemes.',
|
|
82
|
+
}),
|
|
123
83
|
...anchorProps,
|
|
124
84
|
},
|
|
125
85
|
slots: { children: { accepts: '*', min: 1, max: 200 } },
|
|
126
86
|
}),
|
|
127
|
-
define({
|
|
128
|
-
type: 'split',
|
|
129
|
-
purpose: 'Two-column split container.',
|
|
130
|
-
summary: 'Split: two child groups side by side, stacking when narrow.',
|
|
131
|
-
props: {
|
|
132
|
-
ratio: enumStr(['even', 'wide-left', 'wide-right'], { default: 'even' }),
|
|
133
|
-
...anchorProps,
|
|
134
|
-
},
|
|
135
|
-
slots: { children: { accepts: '*', min: 2, max: 2 } },
|
|
136
|
-
}),
|
|
137
87
|
define({
|
|
138
88
|
type: 'spacer',
|
|
89
|
+
category: 'layout',
|
|
90
|
+
tags: ['spacing'],
|
|
91
|
+
useCases: ['vertical breathing room'],
|
|
139
92
|
purpose: 'Vertical rhythm spacer.',
|
|
140
93
|
summary: 'Spacer: vertical space without content.',
|
|
141
94
|
props: { size: enumStr(['small', 'medium', 'large'], { default: 'medium' }), ...anchorProps },
|
|
@@ -143,6 +96,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
143
96
|
}),
|
|
144
97
|
define({
|
|
145
98
|
type: 'divider',
|
|
99
|
+
category: 'layout',
|
|
100
|
+
tags: ['rule', 'separator'],
|
|
101
|
+
useCases: ['separate sections'],
|
|
146
102
|
purpose: 'Horizontal rule with an optional label.',
|
|
147
103
|
summary: 'Divider: semantic separator with an optional label.',
|
|
148
104
|
props: { label: str({ maxLength: 120 }), ...anchorProps },
|
|
@@ -151,6 +107,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
151
107
|
// --- typography and content --------------------------------------------
|
|
152
108
|
define({
|
|
153
109
|
type: 'heading',
|
|
110
|
+
category: 'content',
|
|
111
|
+
tags: ['title', 'outline'],
|
|
112
|
+
useCases: ['section title'],
|
|
154
113
|
purpose: 'Section heading at a chosen level.',
|
|
155
114
|
summary: 'Heading: h1–h6 with the author-chosen level.',
|
|
156
115
|
props: {
|
|
@@ -162,6 +121,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
162
121
|
}),
|
|
163
122
|
define({
|
|
164
123
|
type: 'text',
|
|
124
|
+
category: 'content',
|
|
125
|
+
tags: ['prose', 'paragraph'],
|
|
126
|
+
useCases: ['body copy'],
|
|
165
127
|
purpose: 'A paragraph, lead sentence, or caption.',
|
|
166
128
|
summary: 'Text: single paragraph with body, lead, or caption treatment.',
|
|
167
129
|
props: {
|
|
@@ -172,32 +134,45 @@ export const BLOCK_DEFINITIONS = [
|
|
|
172
134
|
}),
|
|
173
135
|
define({
|
|
174
136
|
type: 'rich-text',
|
|
137
|
+
category: 'content',
|
|
138
|
+
tags: ['prose', 'inline-marks'],
|
|
139
|
+
useCases: ['formatted paragraphs'],
|
|
175
140
|
purpose: 'Multi-paragraph prose.',
|
|
176
141
|
summary: 'RichText: multiple paragraphs from line breaks.',
|
|
177
142
|
props: { text: txt({ required: true }), ...anchorProps },
|
|
178
143
|
}),
|
|
179
144
|
define({
|
|
180
145
|
type: 'quote',
|
|
146
|
+
category: 'content',
|
|
147
|
+
tags: ['testimonial', 'citation'],
|
|
148
|
+
useCases: ['customer quote', 'pull quote'],
|
|
181
149
|
purpose: 'Pulled quotation.',
|
|
182
150
|
summary: 'Quote: blockquote with an optional attribution.',
|
|
183
151
|
props: { text: txt({ required: true }), cite: str({ maxLength: 200 }), ...anchorProps },
|
|
184
152
|
}),
|
|
185
153
|
define({
|
|
186
154
|
type: 'code',
|
|
155
|
+
category: 'content',
|
|
156
|
+
tags: ['source', 'snippet', 'copy'],
|
|
157
|
+
useCases: ['code sample', 'command to copy'],
|
|
187
158
|
purpose: 'Code or configuration sample.',
|
|
188
159
|
summary: 'Code: preformatted block with optional language and copy target.',
|
|
189
160
|
props: {
|
|
190
161
|
language: str({ maxLength: 32, default: 'text' }),
|
|
191
162
|
title: OPTIONAL_TITLE,
|
|
192
|
-
text: txt({ required: true, maxLength: 100_000 }),
|
|
163
|
+
text: txt({ required: true, maxLength: 100_000, description: VERBATIM_DESCRIPTION }),
|
|
193
164
|
...anchorProps,
|
|
194
165
|
},
|
|
195
166
|
assets: ['code'],
|
|
196
|
-
|
|
167
|
+
runtimeFeatures: ['copy'],
|
|
168
|
+
a11y: 'Renders <pre><code> with the authored text and a labelled Copy button; no syntax highlighting requires network access.',
|
|
197
169
|
serializer: 'Emits the code text verbatim inside the fenced block when serialized back to Markdown.',
|
|
198
170
|
}),
|
|
199
171
|
define({
|
|
200
172
|
type: 'badge',
|
|
173
|
+
category: 'content',
|
|
174
|
+
tags: ['label', 'status'],
|
|
175
|
+
useCases: ['status label'],
|
|
201
176
|
purpose: 'Short status or category label.',
|
|
202
177
|
summary: 'Badge: inline status chip.',
|
|
203
178
|
props: {
|
|
@@ -208,6 +183,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
208
183
|
}),
|
|
209
184
|
define({
|
|
210
185
|
type: 'kbd',
|
|
186
|
+
category: 'content',
|
|
187
|
+
tags: ['keyboard', 'shortcut'],
|
|
188
|
+
useCases: ['keyboard shortcut'],
|
|
211
189
|
purpose: 'Keyboard key sequence.',
|
|
212
190
|
summary: 'Kbd: one or more keys rendered as <kbd> elements.',
|
|
213
191
|
props: {
|
|
@@ -218,6 +196,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
218
196
|
}),
|
|
219
197
|
define({
|
|
220
198
|
type: 'key-value',
|
|
199
|
+
category: 'content',
|
|
200
|
+
tags: ['metadata', 'pairs'],
|
|
201
|
+
useCases: ['spec sheet', 'document metadata'],
|
|
221
202
|
purpose: 'Compact definition list.',
|
|
222
203
|
summary: 'KeyValue: label/value pairs rendered as a description list.',
|
|
223
204
|
props: {
|
|
@@ -230,6 +211,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
230
211
|
// --- information --------------------------------------------------------
|
|
231
212
|
define({
|
|
232
213
|
type: 'card',
|
|
214
|
+
category: 'layout',
|
|
215
|
+
tags: ['surface', 'container'],
|
|
216
|
+
useCases: ['boxed summary', 'feature card'],
|
|
233
217
|
purpose: 'Bounded content container.',
|
|
234
218
|
summary: 'Card: titled container that holds child blocks.',
|
|
235
219
|
props: { title: OPTIONAL_TITLE, text: txt(), ...anchorProps },
|
|
@@ -237,6 +221,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
237
221
|
}),
|
|
238
222
|
define({
|
|
239
223
|
type: 'alert',
|
|
224
|
+
category: 'content',
|
|
225
|
+
tags: ['notice', 'status'],
|
|
226
|
+
useCases: ['warning banner', 'status notice'],
|
|
240
227
|
purpose: 'Inline notice.',
|
|
241
228
|
summary: 'Alert: notice with tone and title.',
|
|
242
229
|
props: {
|
|
@@ -249,6 +236,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
249
236
|
}),
|
|
250
237
|
semantic({
|
|
251
238
|
type: 'callout',
|
|
239
|
+
category: 'content',
|
|
240
|
+
tags: ['note', 'aside'],
|
|
241
|
+
useCases: ['tip or note', 'highlighted aside'],
|
|
252
242
|
purpose: 'Emphasized aside for a key point or risk.',
|
|
253
243
|
summary: 'Callout: highlighted aside with tone, title, and body.',
|
|
254
244
|
props: {
|
|
@@ -260,23 +250,40 @@ export const BLOCK_DEFINITIONS = [
|
|
|
260
250
|
}),
|
|
261
251
|
semantic({
|
|
262
252
|
type: 'hero',
|
|
253
|
+
category: 'content',
|
|
254
|
+
tags: ['landing', 'headline', 'intro'],
|
|
255
|
+
useCases: ['landing page header', 'report title'],
|
|
263
256
|
purpose: 'Page opener that states the artifact subject.',
|
|
264
|
-
summary: 'Hero: eyebrow, title, and one-line description.',
|
|
257
|
+
summary: 'Hero: eyebrow, title, and one-line description, optionally over a framed product shot.',
|
|
265
258
|
props: {
|
|
266
259
|
eyebrow: str({ maxLength: 80 }),
|
|
267
260
|
title: TITLE,
|
|
268
261
|
description: txt(),
|
|
262
|
+
align: enumStr(['start', 'center'], { default: 'start' }),
|
|
263
|
+
src: urlProp({
|
|
264
|
+
asset: 'images',
|
|
265
|
+
description: 'Optional product shot shown in a browser frame below the copy.',
|
|
266
|
+
}),
|
|
267
|
+
alt: str({ maxLength: 300, description: 'Required when src is set.' }),
|
|
268
|
+
address: str({
|
|
269
|
+
maxLength: 120,
|
|
270
|
+
description: 'Text shown in the frame address bar; not a link.',
|
|
271
|
+
}),
|
|
269
272
|
...anchorProps,
|
|
270
273
|
},
|
|
274
|
+
network: 'optional',
|
|
271
275
|
sizing: {
|
|
272
276
|
sizes: ['medium', 'large'],
|
|
273
277
|
default: 'large',
|
|
274
|
-
responsive: 'Full width; text reflows.',
|
|
278
|
+
responsive: 'Full width; text reflows and the product shot scales to the column without cropping.',
|
|
275
279
|
},
|
|
276
|
-
a11y: 'The hero title is an <h1>; the eyebrow is supporting text, not a heading.',
|
|
280
|
+
a11y: 'The hero title is an <h1>; the eyebrow is supporting text, not a heading. The shot keeps its alt text and its frame is decorative.',
|
|
277
281
|
}),
|
|
278
282
|
semantic({
|
|
279
283
|
type: 'stats',
|
|
284
|
+
category: 'data',
|
|
285
|
+
tags: ['numbers', 'summary'],
|
|
286
|
+
useCases: ['headline numbers', 'report summary'],
|
|
280
287
|
purpose: 'KPI or summary figures.',
|
|
281
288
|
summary: 'Stats: labeled values as a figure list.',
|
|
282
289
|
props: {
|
|
@@ -288,6 +295,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
288
295
|
}),
|
|
289
296
|
define({
|
|
290
297
|
type: 'progress',
|
|
298
|
+
category: 'data',
|
|
299
|
+
tags: ['completion', 'bars'],
|
|
300
|
+
useCases: ['completion status', 'goal tracking'],
|
|
291
301
|
purpose: 'Single progress or completeness value.',
|
|
292
302
|
summary: 'Progress: single bar with an accessible value range.',
|
|
293
303
|
props: {
|
|
@@ -301,6 +311,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
301
311
|
}),
|
|
302
312
|
semantic({
|
|
303
313
|
type: 'steps',
|
|
314
|
+
category: 'content',
|
|
315
|
+
tags: ['process', 'ordered'],
|
|
316
|
+
useCases: ['how-to steps', 'onboarding flow'],
|
|
304
317
|
purpose: 'Ordered procedure.',
|
|
305
318
|
summary: 'Steps: numbered sequence of titled steps.',
|
|
306
319
|
props: {
|
|
@@ -313,6 +326,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
313
326
|
}),
|
|
314
327
|
semantic({
|
|
315
328
|
type: 'timeline',
|
|
329
|
+
category: 'content',
|
|
330
|
+
tags: ['chronology', 'history'],
|
|
331
|
+
useCases: ['release history', 'project milestones'],
|
|
316
332
|
purpose: 'Chronological or staged events.',
|
|
317
333
|
summary: 'Timeline: ordered entries with a when/title/body shape.',
|
|
318
334
|
props: {
|
|
@@ -325,6 +341,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
325
341
|
// --- collections --------------------------------------------------------
|
|
326
342
|
define({
|
|
327
343
|
type: 'list',
|
|
344
|
+
category: 'content',
|
|
345
|
+
tags: ['bullets', 'items'],
|
|
346
|
+
useCases: ['bullet list', 'checklist of points'],
|
|
328
347
|
purpose: 'Short item list with optional badges.',
|
|
329
348
|
summary: 'List: bulleted items with optional status badges.',
|
|
330
349
|
props: {
|
|
@@ -338,6 +357,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
338
357
|
}),
|
|
339
358
|
semantic({
|
|
340
359
|
type: 'card-grid',
|
|
360
|
+
category: 'content',
|
|
361
|
+
tags: ['cards', 'overview'],
|
|
362
|
+
useCases: ['feature overview', 'link directory'],
|
|
341
363
|
purpose: 'Grid of short cards.',
|
|
342
364
|
summary: 'CardGrid: titled cards in a responsive grid.',
|
|
343
365
|
props: {
|
|
@@ -348,6 +370,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
348
370
|
}),
|
|
349
371
|
define({
|
|
350
372
|
type: 'table',
|
|
373
|
+
category: 'data',
|
|
374
|
+
tags: ['tabular', 'rows', 'columns'],
|
|
375
|
+
useCases: ['tabular data', 'comparison rows'],
|
|
351
376
|
purpose: 'Tabular data with a header row.',
|
|
352
377
|
summary: 'Table: columns and rows with a real header row.',
|
|
353
378
|
props: {
|
|
@@ -361,6 +386,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
361
386
|
}),
|
|
362
387
|
semantic({
|
|
363
388
|
type: 'comparison',
|
|
389
|
+
category: 'data',
|
|
390
|
+
tags: ['versus', 'options'],
|
|
391
|
+
useCases: ['compare options', 'plan comparison'],
|
|
364
392
|
purpose: 'Side-by-side comparison of two alternatives.',
|
|
365
393
|
summary: 'Comparison: two labeled columns of points.',
|
|
366
394
|
props: {
|
|
@@ -373,6 +401,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
373
401
|
}),
|
|
374
402
|
semantic({
|
|
375
403
|
type: 'risk-matrix',
|
|
404
|
+
category: 'data',
|
|
405
|
+
tags: ['risk', 'impact', 'likelihood'],
|
|
406
|
+
useCases: ['risk register', 'threat assessment'],
|
|
376
407
|
purpose: 'Impact/likelihood risk table.',
|
|
377
408
|
summary: 'RiskMatrix: risks rated by impact and likelihood.',
|
|
378
409
|
props: {
|
|
@@ -389,50 +420,11 @@ export const BLOCK_DEFINITIONS = [
|
|
|
389
420
|
a11y: 'Ratings are text values in table cells, never colour-only.',
|
|
390
421
|
}),
|
|
391
422
|
// --- interactive collections -------------------------------------------
|
|
392
|
-
define({
|
|
393
|
-
type: 'tabs',
|
|
394
|
-
purpose: 'Tabbed groups of related content.',
|
|
395
|
-
summary: 'Tabs: roving-tabindex tablist with tabpanels.',
|
|
396
|
-
props: {
|
|
397
|
-
title: OPTIONAL_TITLE,
|
|
398
|
-
items: itemsOf({ id: idProp('Tab id.'), title: LABEL, text: txt({ required: true }) }, { minItems: 2 }),
|
|
399
|
-
on: onProp('Optional state binding fired when a tab is selected.'),
|
|
400
|
-
...anchorProps,
|
|
401
|
-
},
|
|
402
|
-
runtimeFeatures: ['tabs'],
|
|
403
|
-
actions: ['select-tab'],
|
|
404
|
-
a11y: 'role="tablist" with arrow-key roving focus, aria-selected, aria-controls, and labelled tabpanels.',
|
|
405
|
-
}),
|
|
406
|
-
define({
|
|
407
|
-
type: 'accordion',
|
|
408
|
-
purpose: 'Collapsible sections.',
|
|
409
|
-
summary: 'Accordion: disclosure sections that expand and collapse.',
|
|
410
|
-
props: {
|
|
411
|
-
title: OPTIONAL_TITLE,
|
|
412
|
-
items: itemsOf({ title: LABEL, text: txt({ required: true }) }),
|
|
413
|
-
on: onProp('Optional state binding fired when a section toggles.'),
|
|
414
|
-
...anchorProps,
|
|
415
|
-
},
|
|
416
|
-
runtimeFeatures: ['accordion'],
|
|
417
|
-
actions: ['toggle', 'expand', 'collapse'],
|
|
418
|
-
a11y: 'Native <details>/<summary> where possible; otherwise button + region with aria-expanded.',
|
|
419
|
-
}),
|
|
420
|
-
define({
|
|
421
|
-
type: 'carousel',
|
|
422
|
-
purpose: 'Sequenced slides with manual navigation.',
|
|
423
|
-
summary: 'Carousel: prev/next, keyboard, and swipe across slides.',
|
|
424
|
-
props: {
|
|
425
|
-
ariaLabel: str({ required: true, maxLength: 120 }),
|
|
426
|
-
items: itemsOf({ title: LABEL, text: txt({ required: true }) }, { minItems: 1 }),
|
|
427
|
-
on: onProp('Optional state binding fired when the active slide changes.'),
|
|
428
|
-
...anchorProps,
|
|
429
|
-
},
|
|
430
|
-
runtimeFeatures: ['carousel'],
|
|
431
|
-
actions: ['next', 'previous'],
|
|
432
|
-
a11y: 'Labeled region with prev/next buttons, arrow-key support, a slide counter, and no autoplay.',
|
|
433
|
-
}),
|
|
434
423
|
semantic({
|
|
435
424
|
type: 'toolbar',
|
|
425
|
+
category: 'interaction',
|
|
426
|
+
tags: ['controls', 'actions'],
|
|
427
|
+
useCases: ['page actions', 'quick links'],
|
|
436
428
|
purpose: 'Row of controls or chips.',
|
|
437
429
|
summary: 'Toolbar: buttons, badges, and links in one accessible row.',
|
|
438
430
|
props: {
|
|
@@ -466,26 +458,12 @@ export const BLOCK_DEFINITIONS = [
|
|
|
466
458
|
a11y: 'role="toolbar" with roving focus order; every control is a real button or link.',
|
|
467
459
|
}),
|
|
468
460
|
// --- data visualization -------------------------------------------------
|
|
469
|
-
define({
|
|
470
|
-
type: 'chart',
|
|
471
|
-
purpose: 'Deterministic SVG chart with a text summary.',
|
|
472
|
-
summary: 'Chart: bar, line, area, pie, donut, sparkline, or progress from labeled series.',
|
|
473
|
-
props: {
|
|
474
|
-
kind: enumStr(CHART_KINDS, { required: true }),
|
|
475
|
-
title: OPTIONAL_TITLE,
|
|
476
|
-
description: txt(),
|
|
477
|
-
labels: list(str({ maxLength: 80 }), { required: true, minItems: 1, maxItems: 200 }),
|
|
478
|
-
series: itemsOf({ label: LABEL, values: list(num(), { required: true, minItems: 1, maxItems: 200 }) }, { minItems: 1 }),
|
|
479
|
-
...anchorProps,
|
|
480
|
-
},
|
|
481
|
-
runtimeFeatures: ['chart'],
|
|
482
|
-
assets: ['chart'],
|
|
483
|
-
a11y: 'SVG carries role="img" plus a generated text summary; the same values are available as a table for assistive technology.',
|
|
484
|
-
serializer: 'Serializes to the labels/series data, never to rendered SVG.',
|
|
485
|
-
}),
|
|
486
461
|
// --- diagrams (adapter) -------------------------------------------------
|
|
487
462
|
semantic({
|
|
488
463
|
type: 'diagram-panel',
|
|
464
|
+
category: 'engineering',
|
|
465
|
+
tags: ['diagram', 'architecture'],
|
|
466
|
+
useCases: ['architecture diagram', 'flow chart'],
|
|
489
467
|
purpose: 'Typed diagram rendered through an adapter.',
|
|
490
468
|
summary: 'DiagramPanel: embeds trusted output from a diagram adapter (ak:diagram when installed).',
|
|
491
469
|
props: {
|
|
@@ -506,47 +484,222 @@ export const BLOCK_DEFINITIONS = [
|
|
|
506
484
|
a11y: 'Requires a textual fallback summary when the adapter cannot render; the fallback is always emitted.',
|
|
507
485
|
migration: 'Adapter contract is versioned separately; a spec that no longer compiles degrades to the fallback.',
|
|
508
486
|
}),
|
|
509
|
-
// ---
|
|
487
|
+
// --- showcase -----------------------------------------------------------
|
|
510
488
|
define({
|
|
511
|
-
type: '
|
|
512
|
-
|
|
513
|
-
|
|
489
|
+
type: 'marquee',
|
|
490
|
+
category: 'showcase',
|
|
491
|
+
tags: ['ticker', 'logos'],
|
|
492
|
+
useCases: ['customer logos', 'highlight ticker'],
|
|
493
|
+
purpose: 'Continuously scrolling strip of short highlights.',
|
|
494
|
+
summary: 'Marquee: looping ticker of short items that pauses on hover and stops under reduced motion.',
|
|
514
495
|
props: {
|
|
515
|
-
|
|
516
|
-
|
|
496
|
+
label: str({ maxLength: 120, default: 'Highlights' }),
|
|
497
|
+
items: list(str({ required: true, maxLength: 80 }), {
|
|
498
|
+
required: true,
|
|
499
|
+
minItems: 1,
|
|
500
|
+
maxItems: 30,
|
|
501
|
+
}),
|
|
502
|
+
speed: enumStr(['slow', 'normal', 'fast'], { default: 'normal' }),
|
|
503
|
+
...anchorProps,
|
|
504
|
+
},
|
|
505
|
+
runtimeFeatures: ['marquee'],
|
|
506
|
+
a11y: 'Screen readers get one static list; the duplicated scrolling track is aria-hidden, and motion stops under prefers-reduced-motion.',
|
|
507
|
+
}),
|
|
508
|
+
define({
|
|
509
|
+
type: 'terminal',
|
|
510
|
+
category: 'engineering',
|
|
511
|
+
tags: ['shell', 'commands', 'output'],
|
|
512
|
+
useCases: ['install steps', 'cli session'],
|
|
513
|
+
purpose: 'A command-line session: commands with their output.',
|
|
514
|
+
summary: 'Terminal: window-framed session that types in on load; commands, output and errors are styled apart.',
|
|
515
|
+
props: {
|
|
516
|
+
title: str({ maxLength: 120, default: 'Terminal' }),
|
|
517
|
+
lines: itemsOf({
|
|
518
|
+
kind: enumStr(['command', 'output', 'comment', 'success', 'error'], {
|
|
519
|
+
default: 'output',
|
|
520
|
+
}),
|
|
521
|
+
text: txt({ required: true, maxLength: 2_000, description: VERBATIM_DESCRIPTION }),
|
|
522
|
+
}, { minItems: 1, maxItems: 60 }),
|
|
523
|
+
...anchorProps,
|
|
524
|
+
},
|
|
525
|
+
runtimeFeatures: ['terminal', 'copy'],
|
|
526
|
+
a11y: 'Renders <pre> text; the prompt glyph is decorative, and the line reveal is skipped under reduced motion.',
|
|
527
|
+
}),
|
|
528
|
+
semantic({
|
|
529
|
+
type: 'file-tree',
|
|
530
|
+
category: 'engineering',
|
|
531
|
+
tags: ['files', 'paths', 'repository'],
|
|
532
|
+
useCases: ['project layout', 'changed files'],
|
|
533
|
+
purpose: 'Files and folders, optionally with change status, derived from flat paths.',
|
|
534
|
+
summary: 'File tree: nested folders built from slash-separated paths, with per-file status and notes.',
|
|
535
|
+
props: {
|
|
536
|
+
title: OPTIONAL_TITLE,
|
|
537
|
+
items: itemsOf({
|
|
538
|
+
path: str({ required: true, maxLength: 300 }),
|
|
539
|
+
status: enumStr(['added', 'modified', 'deleted', 'renamed', 'unchanged'], {
|
|
540
|
+
default: 'unchanged',
|
|
541
|
+
}),
|
|
542
|
+
note: str({ maxLength: 200 }),
|
|
543
|
+
}, { minItems: 1, maxItems: 200 }),
|
|
544
|
+
...anchorProps,
|
|
545
|
+
},
|
|
546
|
+
runtimeFeatures: ['tree'],
|
|
547
|
+
a11y: 'Nested lists mirror the folder structure; status is written as text, not only color.',
|
|
548
|
+
}),
|
|
549
|
+
semantic({
|
|
550
|
+
type: 'before-after',
|
|
551
|
+
category: 'media',
|
|
552
|
+
tags: ['comparison', 'slider', 'images'],
|
|
553
|
+
useCases: ['redesign comparison', 'visual diff'],
|
|
554
|
+
purpose: 'Before and after: two images of the same frame, revealed by a draggable divider.',
|
|
555
|
+
summary: 'Compare: before/after image slider driven by a native range input; without script both images stay visible.',
|
|
556
|
+
props: {
|
|
557
|
+
title: OPTIONAL_TITLE,
|
|
558
|
+
before: obj({
|
|
559
|
+
src: urlProp({ required: true, asset: 'images' }),
|
|
560
|
+
alt: str({ required: true, maxLength: 300 }),
|
|
561
|
+
label: str({ maxLength: 40, default: 'Before' }),
|
|
562
|
+
}, { required: true }),
|
|
563
|
+
after: obj({
|
|
564
|
+
src: urlProp({ required: true, asset: 'images' }),
|
|
565
|
+
alt: str({ required: true, maxLength: 300 }),
|
|
566
|
+
label: str({ maxLength: 40, default: 'After' }),
|
|
567
|
+
}, { required: true }),
|
|
568
|
+
start: num({ min: 0, max: 100, default: 50 }),
|
|
517
569
|
caption: txt(),
|
|
518
570
|
...anchorProps,
|
|
519
571
|
},
|
|
572
|
+
runtimeFeatures: ['before-after'],
|
|
520
573
|
network: 'optional',
|
|
521
|
-
|
|
522
|
-
a11y: 'Alt text is required; decorative images must use an empty alt explicitly.',
|
|
574
|
+
a11y: 'The divider is a labelled <input type="range">: keyboard, pointer, and touch all move it, and both images keep their alt text.',
|
|
523
575
|
}),
|
|
524
576
|
semantic({
|
|
525
|
-
type: '
|
|
526
|
-
|
|
527
|
-
|
|
577
|
+
type: 'kpi',
|
|
578
|
+
category: 'data',
|
|
579
|
+
tags: ['metrics', 'sparkline', 'trend'],
|
|
580
|
+
useCases: ['dashboard metrics', 'performance summary'],
|
|
581
|
+
purpose: 'Headline metrics with direction of change and a small trend line.',
|
|
582
|
+
summary: 'KPI: metric cards with value, signed delta, good/bad direction, and an optional sparkline series.',
|
|
528
583
|
props: {
|
|
529
584
|
title: OPTIONAL_TITLE,
|
|
530
|
-
columns: num({ integer: true, min: 1, max: 6, default: 3 }),
|
|
531
585
|
items: itemsOf({
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
586
|
+
label: LABEL,
|
|
587
|
+
value: str({ required: true, maxLength: 40 }),
|
|
588
|
+
delta: str({ maxLength: 24 }),
|
|
589
|
+
trend: enumStr(['up', 'down', 'flat'], { default: 'flat' }),
|
|
590
|
+
good: enumStr(['up', 'down'], {
|
|
591
|
+
default: 'up',
|
|
592
|
+
description: 'Which direction counts as an improvement for this metric.',
|
|
593
|
+
}),
|
|
594
|
+
series: list(num({ required: true, min: -1e12, max: 1e12 }), { maxItems: 60 }),
|
|
595
|
+
caption: str({ maxLength: 120 }),
|
|
596
|
+
}, { minItems: 1, maxItems: 8 }),
|
|
597
|
+
...anchorProps,
|
|
598
|
+
},
|
|
599
|
+
runtimeFeatures: ['kpi'],
|
|
600
|
+
a11y: 'Value, delta, and direction are text; the sparkline is decorative and aria-hidden.',
|
|
601
|
+
}),
|
|
602
|
+
semantic({
|
|
603
|
+
type: 'showcase',
|
|
604
|
+
category: 'showcase',
|
|
605
|
+
tags: ['spotlight', 'screenshot'],
|
|
606
|
+
useCases: ['feature spotlight', 'product tour'],
|
|
607
|
+
purpose: 'Feature spotlight: copy beside a framed screenshot.',
|
|
608
|
+
summary: 'Showcase: eyebrow, title, text, and bullets beside an image in a browser frame; the image side can flip.',
|
|
609
|
+
props: {
|
|
610
|
+
eyebrow: str({ maxLength: 60 }),
|
|
611
|
+
title: TITLE,
|
|
612
|
+
text: txt(),
|
|
613
|
+
bullets: list(str({ required: true, maxLength: 200 }), { maxItems: 8 }),
|
|
614
|
+
src: urlProp({ required: true, asset: 'images' }),
|
|
615
|
+
alt: str({ required: true, maxLength: 300 }),
|
|
616
|
+
frame: enumStr(['browser', 'plain'], { default: 'browser' }),
|
|
617
|
+
address: str({
|
|
618
|
+
maxLength: 120,
|
|
619
|
+
description: 'Text shown in the browser frame address bar; not a link.',
|
|
535
620
|
}),
|
|
621
|
+
align: enumStr(['media-right', 'media-left'], { default: 'media-right' }),
|
|
622
|
+
...anchorProps,
|
|
623
|
+
},
|
|
624
|
+
runtimeFeatures: ['showcase'],
|
|
625
|
+
network: 'optional',
|
|
626
|
+
sizing: {
|
|
627
|
+
sizes: ['large'],
|
|
628
|
+
default: 'large',
|
|
629
|
+
responsive: 'Copy and media sit side by side on wide screens and stack, media last, on narrow ones.',
|
|
630
|
+
},
|
|
631
|
+
a11y: 'The title is a heading; the frame chrome is decorative and the image keeps its alt text.',
|
|
632
|
+
}),
|
|
633
|
+
define({
|
|
634
|
+
type: 'checklist',
|
|
635
|
+
category: 'data',
|
|
636
|
+
tags: ['tasks', 'status'],
|
|
637
|
+
useCases: ['launch checklist', 'review checklist'],
|
|
638
|
+
purpose: 'Task list with done and open items and a completion count.',
|
|
639
|
+
summary: 'Checklist: items marked done or open, with a visible completion count.',
|
|
640
|
+
props: {
|
|
641
|
+
title: OPTIONAL_TITLE,
|
|
642
|
+
items: itemsOf({ text: LABEL, done: bool({ default: false }) }, { maxItems: 100 }),
|
|
643
|
+
...anchorProps,
|
|
644
|
+
},
|
|
645
|
+
a11y: 'Each item states "done" or "open" in text; the check glyph is decorative.',
|
|
646
|
+
runtimeFeatures: ['checklist'],
|
|
647
|
+
}),
|
|
648
|
+
semantic({
|
|
649
|
+
type: 'cta',
|
|
650
|
+
category: 'showcase',
|
|
651
|
+
tags: ['conversion', 'action'],
|
|
652
|
+
useCases: ['sign-up prompt', 'closing call to action'],
|
|
653
|
+
purpose: 'Closing call to action that sends the reader somewhere next.',
|
|
654
|
+
summary: 'CTA: eyebrow, oversized title, text, and up to three link actions on a night band.',
|
|
655
|
+
props: {
|
|
656
|
+
eyebrow: str({ maxLength: 60 }),
|
|
657
|
+
title: TITLE,
|
|
658
|
+
text: txt(),
|
|
659
|
+
actions: list(obj({
|
|
660
|
+
label: LABEL,
|
|
661
|
+
href: urlProp({ required: true }),
|
|
662
|
+
variant: enumStr(['primary', 'secondary'], { default: 'secondary' }),
|
|
663
|
+
}), { maxItems: 3 }),
|
|
664
|
+
...anchorProps,
|
|
665
|
+
},
|
|
666
|
+
runtimeFeatures: ['cta'],
|
|
667
|
+
sizing: {
|
|
668
|
+
sizes: ['large'],
|
|
669
|
+
default: 'large',
|
|
670
|
+
responsive: 'Full width; the title scales with the viewport and the actions wrap.',
|
|
671
|
+
},
|
|
672
|
+
a11y: 'The title is an <h2>; every action is a real link with its own text.',
|
|
673
|
+
}),
|
|
674
|
+
// --- media --------------------------------------------------------------
|
|
675
|
+
define({
|
|
676
|
+
type: 'image',
|
|
677
|
+
category: 'media',
|
|
678
|
+
tags: ['picture', 'figure'],
|
|
679
|
+
useCases: ['screenshot', 'illustration'],
|
|
680
|
+
purpose: 'Single image or picture.',
|
|
681
|
+
summary: 'Image: local asset or allowlisted URL with required alt text.',
|
|
682
|
+
props: {
|
|
683
|
+
src: urlProp({ required: true, asset: 'images' }),
|
|
684
|
+
alt: str({ required: true, maxLength: 300 }),
|
|
685
|
+
caption: txt(),
|
|
536
686
|
...anchorProps,
|
|
537
687
|
},
|
|
538
688
|
network: 'optional',
|
|
539
689
|
assets: ['media'],
|
|
540
|
-
a11y: '
|
|
690
|
+
a11y: 'Alt text is required; decorative images must use an empty alt explicitly.',
|
|
541
691
|
}),
|
|
542
692
|
define({
|
|
543
693
|
type: 'video',
|
|
694
|
+
category: 'media',
|
|
695
|
+
tags: ['player', 'poster'],
|
|
696
|
+
useCases: ['product demo', 'recorded talk'],
|
|
544
697
|
purpose: 'Local video or a network-denied fallback.',
|
|
545
|
-
summary: 'Video: plays local sources; a provider
|
|
698
|
+
summary: 'Video: plays local sources; a provider or network source degrades to a poster plus link.',
|
|
546
699
|
props: {
|
|
547
700
|
title: LABEL,
|
|
548
|
-
src: urlProp({ required: true }),
|
|
549
|
-
poster: urlProp(),
|
|
701
|
+
src: urlProp({ required: true, asset: 'media' }),
|
|
702
|
+
poster: urlProp({ asset: 'images', rejectBlocked: true }),
|
|
550
703
|
provider: enumStr(EMBED_PROVIDER_NAMES, {
|
|
551
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.',
|
|
552
705
|
}),
|
|
@@ -565,11 +718,14 @@ export const BLOCK_DEFINITIONS = [
|
|
|
565
718
|
}),
|
|
566
719
|
define({
|
|
567
720
|
type: 'audio',
|
|
721
|
+
category: 'media',
|
|
722
|
+
tags: ['player', 'sound'],
|
|
723
|
+
useCases: ['podcast clip', 'voice note'],
|
|
568
724
|
purpose: 'Local audio or a network-denied fallback.',
|
|
569
|
-
summary: 'Audio: plays local sources; a provider
|
|
725
|
+
summary: 'Audio: plays local sources; a provider or network source degrades to metadata plus link.',
|
|
570
726
|
props: {
|
|
571
727
|
title: LABEL,
|
|
572
|
-
src: urlProp({ required: true }),
|
|
728
|
+
src: urlProp({ required: true, asset: 'media' }),
|
|
573
729
|
provider: enumStr(EMBED_PROVIDER_NAMES, {
|
|
574
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.',
|
|
575
731
|
}),
|
|
@@ -589,6 +745,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
589
745
|
// --- controls -----------------------------------------------------------
|
|
590
746
|
define({
|
|
591
747
|
type: 'button',
|
|
748
|
+
category: 'interaction',
|
|
749
|
+
tags: ['action', 'control'],
|
|
750
|
+
useCases: ['trigger an action', 'primary call'],
|
|
592
751
|
purpose: 'Single actionable control.',
|
|
593
752
|
summary: 'Button: clickable control with declarative action bindings.',
|
|
594
753
|
props: {
|
|
@@ -603,6 +762,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
603
762
|
}),
|
|
604
763
|
define({
|
|
605
764
|
type: 'link',
|
|
765
|
+
category: 'interaction',
|
|
766
|
+
tags: ['navigation', 'anchor'],
|
|
767
|
+
useCases: ['external link', 'related page'],
|
|
606
768
|
purpose: 'Navigational link.',
|
|
607
769
|
summary: 'Link: allowlisted URL with descriptive text.',
|
|
608
770
|
props: { label: LABEL, href: urlProp({ required: true }), ...anchorProps },
|
|
@@ -611,6 +773,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
611
773
|
}),
|
|
612
774
|
define({
|
|
613
775
|
type: 'slider',
|
|
776
|
+
category: 'interaction',
|
|
777
|
+
tags: ['range', 'input', 'state'],
|
|
778
|
+
useCases: ['adjust a value', 'what-if input'],
|
|
614
779
|
purpose: 'Bounded numeric input.',
|
|
615
780
|
summary: 'Slider: range input with pointer drag and full keyboard support.',
|
|
616
781
|
props: {
|
|
@@ -628,6 +793,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
628
793
|
}),
|
|
629
794
|
define({
|
|
630
795
|
type: 'search',
|
|
796
|
+
category: 'interaction',
|
|
797
|
+
tags: ['filter', 'input'],
|
|
798
|
+
useCases: ['filter a list', 'find an item'],
|
|
631
799
|
purpose: 'Filter input for a collection.',
|
|
632
800
|
summary: 'Search: labeled filter input bound to a collection.',
|
|
633
801
|
props: {
|
|
@@ -642,6 +810,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
642
810
|
}),
|
|
643
811
|
define({
|
|
644
812
|
type: 'dialog',
|
|
813
|
+
category: 'interaction',
|
|
814
|
+
tags: ['modal', 'overlay'],
|
|
815
|
+
useCases: ['confirmation', 'detail popup'],
|
|
645
816
|
purpose: 'Modal detail surface.',
|
|
646
817
|
summary: 'Dialog: native <dialog> with labeled title and close controls.',
|
|
647
818
|
props: {
|
|
@@ -658,6 +829,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
658
829
|
// --- review-specific semantic blocks ------------------------------------
|
|
659
830
|
semantic({
|
|
660
831
|
type: 'diff-summary',
|
|
832
|
+
category: 'engineering',
|
|
833
|
+
tags: ['diff', 'changes'],
|
|
834
|
+
useCases: ['change summary', 'pull request files'],
|
|
661
835
|
purpose: 'Changed-file summary from a diff.',
|
|
662
836
|
summary: 'DiffSummary: file paths with change status and line counts.',
|
|
663
837
|
props: {
|
|
@@ -674,6 +848,9 @@ export const BLOCK_DEFINITIONS = [
|
|
|
674
848
|
}),
|
|
675
849
|
semantic({
|
|
676
850
|
type: 'code-review',
|
|
851
|
+
category: 'engineering',
|
|
852
|
+
tags: ['review', 'findings'],
|
|
853
|
+
useCases: ['review findings', 'audit notes'],
|
|
677
854
|
purpose: 'Structured review findings.',
|
|
678
855
|
summary: 'CodeReview: good/bad/ugly/concern/question findings.',
|
|
679
856
|
props: {
|
|
@@ -688,5 +865,4 @@ export const BLOCK_DEFINITIONS = [
|
|
|
688
865
|
a11y: 'The finding kind is written as text; tone colour is decorative.',
|
|
689
866
|
}),
|
|
690
867
|
];
|
|
691
|
-
export const BLOCKS_BY_TYPE = new Map(BLOCK_DEFINITIONS.map((definition) => [definition.type, definition]));
|
|
692
868
|
//# sourceMappingURL=roster.js.map
|