@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
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feature sheets for the evidence widgets. `evidence` covers the benchmark
|
|
3
|
+
* comparison, the metric breakdown and the references list; `annotated-image`
|
|
4
|
+
* is separate because it is the only one that positions pins over media.
|
|
5
|
+
*
|
|
6
|
+
* Every value comes from theme tokens. Positions and widths are static rules
|
|
7
|
+
* keyed by quantized attributes (`data-ak-pct`, `data-x`, `data-y`), so the
|
|
8
|
+
* page needs no inline style and no script to lay them out.
|
|
9
|
+
*/
|
|
10
|
+
import { TRANSITION, UNIT } from '../../render/style-units.js';
|
|
11
|
+
import { PIN_STEP } from './annotated-image.js';
|
|
12
|
+
import { BREAKDOWN_SERIES } from './metric-breakdown.js';
|
|
13
|
+
const MONO_LABEL = 'font-family:var(--ak-font-mono);font-size:.7rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ak-color-text-muted)';
|
|
14
|
+
/** One rule per value of an integer attribute, e.g. `[data-ak-pct="42"]{width:42%}`. */
|
|
15
|
+
function steppedRules(selector, attribute, property, step) {
|
|
16
|
+
const rules = [];
|
|
17
|
+
for (let value = 0; value <= 100; value += step) {
|
|
18
|
+
rules.push(`${selector}[${attribute}="${value}"]{${property}:${value}%}`);
|
|
19
|
+
}
|
|
20
|
+
return rules.join('');
|
|
21
|
+
}
|
|
22
|
+
const BENCHMARK_CSS = `.ak-bench{display:flex;flex-direction:column;gap:${UNIT(1.5)}}
|
|
23
|
+
.ak-bench-summary{display:flex;flex-wrap:wrap;align-items:center;gap:.5em 1em;margin:0;font-family:var(--ak-font-mono);font-size:.78rem;letter-spacing:.03em;color:var(--ak-color-text-muted)}
|
|
24
|
+
.ak-bench-summary strong{color:var(--ak-color-text);font-weight:600}
|
|
25
|
+
.ak-bench-tally{padding:.2em .75em;border-radius:999px;background:var(--ak-tint);color:var(--ak-color-text);border:var(--ak-border-width) solid color-mix(in srgb,var(--ak-color-accent) 22%,var(--ak-color-border))}
|
|
26
|
+
.ak-bench-metric{display:block;overflow-wrap:anywhere}
|
|
27
|
+
.ak-bench-better{display:block;margin-top:.2em;${MONO_LABEL};font-size:.64rem;white-space:nowrap}
|
|
28
|
+
.ak-bench-delta{white-space:nowrap;font-weight:600}
|
|
29
|
+
.ak-bench-pct{display:block;margin-top:.15em;font-family:var(--ak-font-mono);font-size:.76em;font-weight:500;color:var(--ak-color-text-muted)}
|
|
30
|
+
.ak-bench tr[data-verdict="improved"] .ak-bench-delta{color:color-mix(in srgb,var(--ak-color-success) 78%,var(--ak-color-text))}
|
|
31
|
+
.ak-bench tr[data-verdict="regressed"] .ak-bench-delta{color:color-mix(in srgb,var(--ak-color-danger) 78%,var(--ak-color-text))}
|
|
32
|
+
.ak-bench-notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:${UNIT(1.5)} ${UNIT(3)};margin:0;padding-top:${UNIT(1.5)};border-top:var(--ak-border-width) solid var(--ak-color-border)}
|
|
33
|
+
.ak-bench-notes div{min-width:0}
|
|
34
|
+
.ak-bench-notes dt{${MONO_LABEL}}
|
|
35
|
+
.ak-bench-notes dd{margin:.35em 0 0;font-size:.92rem;color:var(--ak-color-text-muted);overflow-wrap:anywhere}
|
|
36
|
+
@media (max-width:560px){.ak-bench .ak-table-wrap table{min-width:0}.ak-bench thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ak-bench tbody{display:block}.ak-bench tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:${UNIT(1)} ${UNIT(2)};padding:${UNIT(1.75)} ${UNIT(2)};border-bottom:var(--ak-border-width) solid var(--ak-color-border)}.ak-bench tbody tr:last-child{border-bottom:0}.ak-bench tbody tr > *{display:block;padding:0;border:0;text-align:left}.ak-bench tbody th{grid-column:1 / -1}.ak-bench td::before{content:attr(data-label);display:block;margin-bottom:.2em;${MONO_LABEL};font-size:.64rem}.ak-bench-delta{white-space:normal}}`;
|
|
37
|
+
const SERIES_RULES = Array.from({ length: BREAKDOWN_SERIES }, (_, index) => `.ak-breakdown [data-series="${index}"]{--ak-part:var(--ak-c${index})}`).join('\n');
|
|
38
|
+
const BREAKDOWN_CSS = `.ak-breakdown{display:flex;flex-direction:column;gap:${UNIT(1.5)};--ak-c0:var(--ak-color-accent);--ak-c1:var(--ak-color-info);--ak-c2:var(--ak-color-success);--ak-c3:var(--ak-color-warning);--ak-c4:var(--ak-color-danger);--ak-c5:var(--ak-color-text-muted)}
|
|
39
|
+
@supports (color:oklch(from red l c h)){.ak-breakdown{--ak-c1:oklch(from var(--ak-color-accent) l max(c,.1) calc(h + 210));--ak-c2:oklch(from var(--ak-color-accent) l max(c,.1) calc(h + 120));--ak-c3:oklch(from var(--ak-color-accent) l max(c,.1) calc(h + 60));--ak-c4:oklch(from var(--ak-color-accent) l max(c,.1) calc(h + 290));--ak-c5:oklch(from var(--ak-color-accent) l max(c,.1) calc(h + 165))}}
|
|
40
|
+
${SERIES_RULES}
|
|
41
|
+
.ak-breakdown [data-tone="neutral"]{--ak-part:var(--ak-color-text-muted)}
|
|
42
|
+
.ak-breakdown [data-tone="info"]{--ak-part:var(--ak-color-info)}
|
|
43
|
+
.ak-breakdown [data-tone="success"]{--ak-part:var(--ak-color-success)}
|
|
44
|
+
.ak-breakdown [data-tone="warning"]{--ak-part:var(--ak-color-warning)}
|
|
45
|
+
.ak-breakdown [data-tone="danger"]{--ak-part:var(--ak-color-danger)}
|
|
46
|
+
.ak-breakdown-total{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25em 1em;margin:0}
|
|
47
|
+
.ak-breakdown-total strong{font-family:var(--ak-font-heading);font-size:calc(var(--ak-font-size-base) * 1.6);font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ak-color-text)}
|
|
48
|
+
.ak-breakdown-bar{display:flex;height:14px;border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--ak-color-text) 7%,transparent);print-color-adjust:exact;-webkit-print-color-adjust:exact}
|
|
49
|
+
.ak-breakdown-seg{flex:none;box-sizing:border-box;height:100%;background-color:var(--ak-part);background-clip:padding-box}
|
|
50
|
+
.ak-breakdown-seg + .ak-breakdown-seg{border-left:2px solid transparent}
|
|
51
|
+
.ak-breakdown-seg[data-ak-pct="0"]{display:none}
|
|
52
|
+
${steppedRules('.ak-breakdown-seg', 'data-ak-pct', 'width', 1)}
|
|
53
|
+
.ak-breakdown [data-hatch] .ak-breakdown-swatch,.ak-breakdown-seg[data-hatch]{background-image:repeating-linear-gradient(135deg,transparent 0 3px,color-mix(in srgb,var(--ak-color-surface) 55%,transparent) 3px 5px)}
|
|
54
|
+
.ak-breakdown-list{list-style:none;margin:0;padding:0}
|
|
55
|
+
.ak-breakdown-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto 3.4em;align-items:baseline;gap:.75em;padding:.6em 0;border-bottom:var(--ak-border-width) solid var(--ak-color-border)}
|
|
56
|
+
.ak-breakdown-list li:last-child{border-bottom:0}
|
|
57
|
+
.ak-breakdown-swatch{align-self:center;width:.75em;height:.75em;border-radius:3px;background-color:var(--ak-part);print-color-adjust:exact;-webkit-print-color-adjust:exact}
|
|
58
|
+
.ak-breakdown-label{overflow-wrap:anywhere}
|
|
59
|
+
.ak-breakdown-value{font-variant-numeric:tabular-nums;text-align:right;font-weight:600}
|
|
60
|
+
.ak-breakdown-share{font-family:var(--ak-font-mono);font-size:.8rem;font-variant-numeric:tabular-nums;text-align:right;color:var(--ak-color-text-muted)}`;
|
|
61
|
+
const REFERENCES_CSS = `.ak-ref-list{margin:0;padding-left:2.4em;display:flex;flex-direction:column;gap:${UNIT(1.25)}}
|
|
62
|
+
.ak-ref{padding-left:.35em;border-radius:var(--ak-radius-small);scroll-margin-top:${UNIT(4)};${TRANSITION}}
|
|
63
|
+
.ak-ref::marker{font-family:var(--ak-font-mono);font-size:.8rem;color:var(--ak-color-text-muted)}
|
|
64
|
+
.ak-ref p{margin:0}
|
|
65
|
+
.ak-ref-title cite{font-style:normal;font-weight:600;color:var(--ak-color-text);overflow-wrap:anywhere}
|
|
66
|
+
.ak-ref .ak-ref-meta{margin-top:.2em;font-size:.84rem;color:var(--ak-color-text-muted);overflow-wrap:anywhere}
|
|
67
|
+
.ak-ref .ak-ref-note{margin-top:.3em;font-size:.92rem;color:var(--ak-color-text-muted);max-width:var(--ak-measure)}
|
|
68
|
+
.ak-ref:target{background:var(--ak-tint);box-shadow:0 0 0 ${UNIT(0.75)} var(--ak-tint)}
|
|
69
|
+
@media print{.ak-ref-title a[href^="http"]::after{content:" <" attr(href) ">";font-weight:400;font-size:.84em;overflow-wrap:anywhere}.ak-ref{break-inside:avoid}.ak-ref:target{background:none;box-shadow:none}}`;
|
|
70
|
+
export const EVIDENCE_CSS = [BENCHMARK_CSS, BREAKDOWN_CSS, REFERENCES_CSS].join('\n');
|
|
71
|
+
const PIN = `display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--ak-color-accent);color:var(--ak-color-accent-contrast);font-family:var(--ak-font-mono);font-size:.74rem;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;print-color-adjust:exact;-webkit-print-color-adjust:exact`;
|
|
72
|
+
export const ANNOTATED_IMAGE_CSS = `.ak-annotated{display:flex;flex-direction:column;gap:${UNIT(1.5)}}
|
|
73
|
+
.ak-annotated-stage{position:relative;align-self:flex-start;max-width:100%;overflow:hidden;border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);background:var(--ak-color-surface-raised);box-shadow:var(--ak-elevation-card)}
|
|
74
|
+
.ak-annotated-stage img{display:block;max-width:100%;height:auto}
|
|
75
|
+
.ak-annotated-blocked{display:block;padding:${UNIT(2.5)}}
|
|
76
|
+
.ak-annotated-pins{position:absolute;inset:0;list-style:none;margin:0;padding:0;pointer-events:none}
|
|
77
|
+
.ak-pin{position:absolute;translate:-50% -50%;${PIN};box-shadow:0 0 0 2px var(--ak-color-accent-contrast),0 4px 12px color-mix(in srgb,var(--ak-color-text) 32%,transparent)}
|
|
78
|
+
${steppedRules('.ak-pin', 'data-x', 'left', PIN_STEP)}
|
|
79
|
+
${steppedRules('.ak-pin', 'data-y', 'top', PIN_STEP)}
|
|
80
|
+
.ak-annotated figcaption{font-size:.84rem;color:var(--ak-color-text-muted)}
|
|
81
|
+
.ak-annotated-notes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:${UNIT(1)}}
|
|
82
|
+
.ak-annotated-notes li{display:flex;align-items:flex-start;gap:.75em}
|
|
83
|
+
.ak-pin-number{flex:none;${PIN};width:22px;height:22px;font-size:.68rem;margin-top:.1em}
|
|
84
|
+
.ak-annotated-notes p{margin:0;min-width:0;overflow-wrap:anywhere;max-width:var(--ak-measure)}
|
|
85
|
+
.ak-annotated-notes strong{font-weight:600;color:var(--ak-color-text)}
|
|
86
|
+
@media (max-width:480px){.ak-pin{width:22px;height:22px;font-size:.66rem}}
|
|
87
|
+
@media print{.ak-annotated-stage{box-shadow:none;break-inside:avoid}.ak-annotated-notes li{break-inside:avoid}}`;
|
|
88
|
+
//# sourceMappingURL=evidence-styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence-styles.js","sourceRoot":"","sources":["../../../src/blocks/evidence/evidence-styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,UAAU,GACd,gJAAgJ,CAAC;AAEnJ,wFAAwF;AACxF,SAAS,YAAY,CAAC,QAAgB,EAAE,SAAiB,EAAE,QAAgB,EAAE,IAAY;IACvF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,SAAS,KAAK,KAAK,MAAM,QAAQ,IAAI,KAAK,IAAI,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,aAAa,GAAG,oDAAoD,IAAI,CAAC,GAAG,CAAC;;;;;iDAKlC,UAAU;;;;;sGAK2C,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,yBAAyB,IAAI,CAAC,GAAG,CAAC;;qBAEvI,UAAU;;mSAEoQ,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,iTAAiT,UAAU,wDAAwD,CAAC;AAE1sB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAC7B,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAC5B,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,+BAA+B,KAAK,0BAA0B,KAAK,IAAI,CACtF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,aAAa,GAAG,wDAAwD,IAAI,CAAC,GAAG,CAAC;;EAErF,YAAY;;;;;;;;;;;;EAYZ,YAAY,CAAC,mBAAmB,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;;;;;;;;yJAQ2F,CAAC;AAE1J,MAAM,cAAc,GAAG,mFAAmF,IAAI,CAAC,IAAI,CAAC;oFAChC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU;;;;;;4DAM7C,IAAI,CAAC,IAAI,CAAC;iNAC2I,CAAC;AAElN,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEtF,MAAM,GAAG,GAAG,6TAA6T,CAAC;AAE1U,MAAM,CAAC,MAAM,mBAAmB,GAAG,wDAAwD,IAAI,CAAC,GAAG,CAAC;;;8CAGtD,IAAI,CAAC,GAAG,CAAC;;gDAEP,GAAG;EACjD,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;EACnD,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;;gGAE4C,IAAI,CAAC,CAAC,CAAC;;2BAE5E,GAAG;;;;gHAIkF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/evidence/index.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAE1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAOjE,eAAO,MAAM,cAAc,EAAE,UAO5B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Evidence widgets: measured comparisons, breakdowns, annotated captures and sources. */
|
|
2
|
+
import { annotatedImageBlock } from './annotated-image.js';
|
|
3
|
+
import { benchmarkComparisonBlock } from './benchmark-comparison.js';
|
|
4
|
+
import { ANNOTATED_IMAGE_CSS, EVIDENCE_CSS } from './evidence-styles.js';
|
|
5
|
+
import { metricBreakdownBlock } from './metric-breakdown.js';
|
|
6
|
+
import { referencesBlock } from './references.js';
|
|
7
|
+
export const EVIDENCE_GROUP = {
|
|
8
|
+
name: 'evidence',
|
|
9
|
+
blocks: [benchmarkComparisonBlock, metricBreakdownBlock, annotatedImageBlock, referencesBlock],
|
|
10
|
+
features: [
|
|
11
|
+
{ name: 'evidence', marker: '.ak-bench', css: EVIDENCE_CSS },
|
|
12
|
+
{ name: 'annotated-image', marker: '.ak-annotated', css: ANNOTATED_IMAGE_CSS },
|
|
13
|
+
],
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/blocks/evidence/index.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAG1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,eAAe,CAAC;IAC9F,QAAQ,EAAE;QACR,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE;QAC5D,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,mBAAmB,EAAE;KAC/E;CACF,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metric breakdown: how a total splits into parts. A stacked bar shows the
|
|
3
|
+
* shares at a glance and a list states each part's value and share, so the
|
|
4
|
+
* list alone carries everything the bar shows.
|
|
5
|
+
*/
|
|
6
|
+
import type { BlockModule } from '../../registry/block-module.js';
|
|
7
|
+
export declare const BREAKDOWN_LIMITS: {
|
|
8
|
+
readonly minParts: 2;
|
|
9
|
+
readonly maxParts: 12;
|
|
10
|
+
};
|
|
11
|
+
export declare const PART_TONES: readonly ["neutral", "info", "success", "warning", "danger"];
|
|
12
|
+
/** Distinct series colours before the bar repeats them with a hatch. */
|
|
13
|
+
export declare const BREAKDOWN_SERIES = 6;
|
|
14
|
+
/**
|
|
15
|
+
* Whole-percent shares of `denominator` that never sum past what the parts
|
|
16
|
+
* cover: each share is floored, then the points left over go to the largest
|
|
17
|
+
* remainders (earlier parts win ties), so the bar and the list always agree
|
|
18
|
+
* and the bar never overflows.
|
|
19
|
+
*/
|
|
20
|
+
export declare function quantizeShares(values: readonly number[], denominator: number): number[];
|
|
21
|
+
export declare const metricBreakdownBlock: BlockModule;
|
|
22
|
+
//# sourceMappingURL=metric-breakdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metric-breakdown.d.ts","sourceRoot":"","sources":["../../../src/blocks/evidence/metric-breakdown.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,gCAAgC,CAAC;AA6BhF,eAAO,MAAM,gBAAgB;;;CAAyC,CAAC;AACvE,eAAO,MAAM,UAAU,8DAA+D,CAAC;AACvF,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAUlC;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAevF;AA0JD,eAAO,MAAM,oBAAoB,EAAE,WA2ClC,CAAC"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metric breakdown: how a total splits into parts. A stacked bar shows the
|
|
3
|
+
* shares at a glance and a list states each part's value and share, so the
|
|
4
|
+
* list alone carries everything the bar shows.
|
|
5
|
+
*/
|
|
6
|
+
import { FORMAT_FIELDS } from '../../data/format-value.js';
|
|
7
|
+
import { pathIndex, pathKey } from '../../diagnostics.js';
|
|
8
|
+
import { isPlainObject } from '../../json.js';
|
|
9
|
+
import { anchorProps, enumStr, LABEL, list, num, OPTIONAL_TITLE, obj, semantic, str as strProp, } from '../../registry/define-helpers.js';
|
|
10
|
+
import { element, nodeAttributes, objectListProp, str, titleHeader, } from '../../render/block-helpers.js';
|
|
11
|
+
import { escapeText } from '../../render/escape.js';
|
|
12
|
+
import { checkFieldMap, dataBindingFailed, fieldMap, formatMeasure, formatSpecOf, projectRow, } from './evidence-helpers.js';
|
|
13
|
+
export const BREAKDOWN_LIMITS = { minParts: 2, maxParts: 12 };
|
|
14
|
+
export const PART_TONES = ['neutral', 'info', 'success', 'warning', 'danger'];
|
|
15
|
+
/** Distinct series colours before the bar repeats them with a hatch. */
|
|
16
|
+
export const BREAKDOWN_SERIES = 6;
|
|
17
|
+
const DATA_FIELDS = { label: 'label', value: 'value' };
|
|
18
|
+
/**
|
|
19
|
+
* Whole-percent shares of `denominator` that never sum past what the parts
|
|
20
|
+
* cover: each share is floored, then the points left over go to the largest
|
|
21
|
+
* remainders (earlier parts win ties), so the bar and the list always agree
|
|
22
|
+
* and the bar never overflows.
|
|
23
|
+
*/
|
|
24
|
+
export function quantizeShares(values, denominator) {
|
|
25
|
+
if (denominator <= 0)
|
|
26
|
+
return values.map(() => 0);
|
|
27
|
+
const exact = values.map((value) => (Math.max(value, 0) / denominator) * 100);
|
|
28
|
+
const floors = exact.map((share) => Math.floor(share));
|
|
29
|
+
const covered = exact.reduce((sum, share) => sum + share, 0);
|
|
30
|
+
let spare = Math.min(100, Math.round(covered)) - floors.reduce((sum, share) => sum + share, 0);
|
|
31
|
+
const order = exact
|
|
32
|
+
.map((share, index) => ({ index, remainder: share - Math.floor(share) }))
|
|
33
|
+
.sort((a, b) => b.remainder - a.remainder || a.index - b.index);
|
|
34
|
+
for (const { index } of order) {
|
|
35
|
+
if (spare <= 0)
|
|
36
|
+
break;
|
|
37
|
+
floors[index] = (floors[index] ?? 0) + 1;
|
|
38
|
+
spare -= 1;
|
|
39
|
+
}
|
|
40
|
+
return floors;
|
|
41
|
+
}
|
|
42
|
+
function isMeasure(value) {
|
|
43
|
+
return typeof value === 'number' && Number.isFinite(value);
|
|
44
|
+
}
|
|
45
|
+
function readParts(node) {
|
|
46
|
+
if (node.data === undefined) {
|
|
47
|
+
return objectListProp(node, 'parts').flatMap((item) => isMeasure(item.value) && item.value >= 0
|
|
48
|
+
? [{ label: str(item.label), value: item.value, tone: str(item.tone) }]
|
|
49
|
+
: []);
|
|
50
|
+
}
|
|
51
|
+
const map = fieldMap(node, DATA_FIELDS);
|
|
52
|
+
return node.data.rows.slice(0, BREAKDOWN_LIMITS.maxParts).flatMap((row) => {
|
|
53
|
+
const value = projectRow(row, map);
|
|
54
|
+
if (!isMeasure(value.value) || value.value < 0)
|
|
55
|
+
return [];
|
|
56
|
+
return [
|
|
57
|
+
{ label: value.label === null ? '' : String(value.label), value: value.value, tone: '' },
|
|
58
|
+
];
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function authoredTotal(node) {
|
|
62
|
+
const total = node.props.total;
|
|
63
|
+
if (!isPlainObject(total) || !isMeasure(total.value))
|
|
64
|
+
return undefined;
|
|
65
|
+
return { label: str(total.label), value: total.value };
|
|
66
|
+
}
|
|
67
|
+
function checkData(node, { bag }) {
|
|
68
|
+
const data = node.data;
|
|
69
|
+
if (data === undefined)
|
|
70
|
+
return;
|
|
71
|
+
const map = fieldMap(node, DATA_FIELDS);
|
|
72
|
+
if (!checkFieldMap(node, data, map, [], bag))
|
|
73
|
+
return;
|
|
74
|
+
const path = pathKey(node.path, data.source === null ? 'data' : 'dataRef');
|
|
75
|
+
if (data.rows.length < BREAKDOWN_LIMITS.minParts ||
|
|
76
|
+
data.rows.length > BREAKDOWN_LIMITS.maxParts) {
|
|
77
|
+
bag.add({
|
|
78
|
+
code: data.rows.length > BREAKDOWN_LIMITS.maxParts
|
|
79
|
+
? 'SPEC_BOUNDS_ERROR'
|
|
80
|
+
: 'SPEC_VALIDATION_ERROR',
|
|
81
|
+
path,
|
|
82
|
+
nodeId: node.id,
|
|
83
|
+
message: `metric-breakdown has ${data.rows.length} rows; it takes ${BREAKDOWN_LIMITS.minParts}-${BREAKDOWN_LIMITS.maxParts} parts`,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
data.rows.forEach((row, index) => {
|
|
87
|
+
const value = projectRow(row, map).value;
|
|
88
|
+
if (isMeasure(value) && value >= 0)
|
|
89
|
+
return;
|
|
90
|
+
bag.add({
|
|
91
|
+
code: 'SPEC_VALIDATION_ERROR',
|
|
92
|
+
path: pathKey(pathKey(node.path, 'fields'), 'value'),
|
|
93
|
+
nodeId: node.id,
|
|
94
|
+
message: `row ${index}: value field "${map.value}" must hold a non-negative number`,
|
|
95
|
+
details: { row: index, field: map.value },
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
function check(node, context) {
|
|
100
|
+
const { bag } = context;
|
|
101
|
+
const parts = objectListProp(node, 'parts');
|
|
102
|
+
if (node.data !== undefined && parts.length > 0) {
|
|
103
|
+
bag.add({
|
|
104
|
+
code: 'SPEC_VALIDATION_ERROR',
|
|
105
|
+
path: pathKey(node.path, 'parts'),
|
|
106
|
+
nodeId: node.id,
|
|
107
|
+
message: 'use either parts or bound data (dataRef/data), not both',
|
|
108
|
+
});
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (node.data === undefined && parts.length === 0) {
|
|
112
|
+
if (dataBindingFailed(node, bag))
|
|
113
|
+
return;
|
|
114
|
+
bag.add({
|
|
115
|
+
code: 'SPEC_VALIDATION_ERROR',
|
|
116
|
+
path: pathKey(node.path, 'parts'),
|
|
117
|
+
nodeId: node.id,
|
|
118
|
+
message: 'metric-breakdown needs parts, or dataRef/data with fields',
|
|
119
|
+
});
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
parts.forEach((part, index) => {
|
|
123
|
+
if (!isMeasure(part.value) || part.value >= 0)
|
|
124
|
+
return;
|
|
125
|
+
bag.add({
|
|
126
|
+
code: 'SPEC_VALIDATION_ERROR',
|
|
127
|
+
path: pathKey(pathIndex(pathKey(node.path, 'parts'), index), 'value'),
|
|
128
|
+
nodeId: node.id,
|
|
129
|
+
message: 'a part value must not be negative',
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
checkData(node, context);
|
|
133
|
+
const total = authoredTotal(node);
|
|
134
|
+
if (total === undefined)
|
|
135
|
+
return;
|
|
136
|
+
const sum = readParts(node).reduce((acc, part) => acc + part.value, 0);
|
|
137
|
+
if (sum > total.value) {
|
|
138
|
+
bag.add({
|
|
139
|
+
code: 'SPEC_VALIDATION_ERROR',
|
|
140
|
+
severity: 'warning',
|
|
141
|
+
path: pathKey(pathKey(node.path, 'total'), 'value'),
|
|
142
|
+
nodeId: node.id,
|
|
143
|
+
message: `the parts sum to ${sum}, more than the total ${total.value}; shares use the sum`,
|
|
144
|
+
details: { sum, total: total.value },
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
function render(node) {
|
|
149
|
+
const format = formatSpecOf(node.props);
|
|
150
|
+
const parts = readParts(node);
|
|
151
|
+
const sum = parts.reduce((acc, part) => acc + part.value, 0);
|
|
152
|
+
const authored = authoredTotal(node);
|
|
153
|
+
const total = authored ?? { label: 'Total', value: sum };
|
|
154
|
+
const shares = quantizeShares(parts.map((part) => part.value), Math.max(total.value, sum));
|
|
155
|
+
const attributes = (part, index) => `data-series="${index % BREAKDOWN_SERIES}"${index >= BREAKDOWN_SERIES ? ' data-hatch' : ''}${part.tone === '' ? '' : ` data-tone="${part.tone}"`}`;
|
|
156
|
+
const bar = `<div class="ak-breakdown-bar" aria-hidden="true">${parts
|
|
157
|
+
.map((part, index) => `<span class="ak-breakdown-seg" data-ak-pct="${shares[index] ?? 0}" ${attributes(part, index)}></span>`)
|
|
158
|
+
.join('')}</div>`;
|
|
159
|
+
const items = parts
|
|
160
|
+
.map((part, index) => `<li ${attributes(part, index)}><span class="ak-breakdown-swatch" aria-hidden="true"></span><span class="ak-breakdown-label">${escapeText(part.label)}</span><span class="ak-breakdown-value">${escapeText(formatMeasure(part.value, format))}</span><span class="ak-breakdown-share">${shares[index] ?? 0}%</span></li>`)
|
|
161
|
+
.join('');
|
|
162
|
+
return element('section', nodeAttributes(node, { class: 'ak-block ak-breakdown' }), [
|
|
163
|
+
titleHeader(node),
|
|
164
|
+
`<p class="ak-breakdown-total"><span class="ak-label">${escapeText(total.label)}</span><strong>${escapeText(formatMeasure(total.value, format))}</strong></p>`,
|
|
165
|
+
bar,
|
|
166
|
+
`<ol class="ak-breakdown-list">${items}</ol>`,
|
|
167
|
+
].join(''));
|
|
168
|
+
}
|
|
169
|
+
export const metricBreakdownBlock = {
|
|
170
|
+
definition: semantic({
|
|
171
|
+
type: 'metric-breakdown',
|
|
172
|
+
category: 'data',
|
|
173
|
+
tags: ['share', 'composition', 'stacked-bar', 'budget', 'evidence'],
|
|
174
|
+
useCases: ['cost breakdown', 'latency budget', 'share of total'],
|
|
175
|
+
purpose: 'A total split into parts, as a stacked bar plus a list with shares.',
|
|
176
|
+
summary: 'Metric breakdown: parts of a total as a stacked bar and a list with value and share %.',
|
|
177
|
+
props: {
|
|
178
|
+
title: OPTIONAL_TITLE,
|
|
179
|
+
total: obj({ label: LABEL, value: num({ required: true, min: 0 }) }, { description: 'Omit to use the sum of the parts.' }),
|
|
180
|
+
parts: list(obj({
|
|
181
|
+
label: LABEL,
|
|
182
|
+
value: num({ required: true, min: 0 }),
|
|
183
|
+
tone: enumStr(PART_TONES, { description: 'Status colour instead of a series colour.' }),
|
|
184
|
+
}), {
|
|
185
|
+
minItems: BREAKDOWN_LIMITS.minParts,
|
|
186
|
+
maxItems: BREAKDOWN_LIMITS.maxParts,
|
|
187
|
+
description: 'Omit when the rows come from dataRef or data.',
|
|
188
|
+
}),
|
|
189
|
+
fields: obj({
|
|
190
|
+
label: strProp({ maxLength: 64, default: DATA_FIELDS.label }),
|
|
191
|
+
value: strProp({ maxLength: 64, default: DATA_FIELDS.value }),
|
|
192
|
+
}, { description: 'Data fields for the part label and value.' }),
|
|
193
|
+
...FORMAT_FIELDS,
|
|
194
|
+
...anchorProps,
|
|
195
|
+
},
|
|
196
|
+
data: { required: false, description: 'Rows with a label and a non-negative value field.' },
|
|
197
|
+
runtimeFeatures: ['evidence'],
|
|
198
|
+
a11y: 'The bar is decorative; the list states every part, its value and its share in text.',
|
|
199
|
+
}),
|
|
200
|
+
render,
|
|
201
|
+
check,
|
|
202
|
+
};
|
|
203
|
+
//# sourceMappingURL=metric-breakdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metric-breakdown.js","sourceRoot":"","sources":["../../../src/blocks/evidence/metric-breakdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* References: a numbered source list with a stable anchor per entry, so any
|
|
3
|
+
* link on the page can point at `#ref-<id>`. Links are emitted as plain
|
|
4
|
+
* anchors; the compiler never fetches them.
|
|
5
|
+
*/
|
|
6
|
+
import type { BlockModule } from '../../registry/block-module.js';
|
|
7
|
+
export declare const REFERENCE_LIMITS: {
|
|
8
|
+
readonly maxItems: 60;
|
|
9
|
+
};
|
|
10
|
+
/** The element id of a reference entry: the anchor other text links to. */
|
|
11
|
+
export declare function referenceAnchor(id: string): string;
|
|
12
|
+
export declare const referencesBlock: BlockModule;
|
|
13
|
+
//# sourceMappingURL=references.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../../src/blocks/evidence/references.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,gCAAgC,CAAC;AAsBhF,eAAO,MAAM,gBAAgB;;CAA4B,CAAC;AAE1D,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAElD;AAmED,eAAO,MAAM,eAAe,EAAE,WA8B7B,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* References: a numbered source list with a stable anchor per entry, so any
|
|
3
|
+
* link on the page can point at `#ref-<id>`. Links are emitted as plain
|
|
4
|
+
* anchors; the compiler never fetches them.
|
|
5
|
+
*/
|
|
6
|
+
import { pathIndex, pathKey } from '../../diagnostics.js';
|
|
7
|
+
import { anchorProps, idProp, itemsOf, LABEL, num, OPTIONAL_TITLE, semantic, str as strProp, txt, urlProp, } from '../../registry/define-helpers.js';
|
|
8
|
+
import { element, nodeAttributes, objectListProp, str, titleHeader, } from '../../render/block-helpers.js';
|
|
9
|
+
import { escapeAttribute, escapeInlineText, escapeText, escapeUrl } from '../../render/escape.js';
|
|
10
|
+
export const REFERENCE_LIMITS = { maxItems: 60 };
|
|
11
|
+
/** The element id of a reference entry: the anchor other text links to. */
|
|
12
|
+
export function referenceAnchor(id) {
|
|
13
|
+
return `ref-${id}`;
|
|
14
|
+
}
|
|
15
|
+
function referenceIds(node) {
|
|
16
|
+
return objectListProp(node, 'items').map((item) => str(item.id));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Entry ids must be unique across every references block on the page, because
|
|
20
|
+
* each becomes a document-level anchor. The first occurrence wins; each later
|
|
21
|
+
* one is reported where it is written.
|
|
22
|
+
*/
|
|
23
|
+
function check(node, { bag, byId }) {
|
|
24
|
+
const seen = new Map();
|
|
25
|
+
for (const other of byId.values()) {
|
|
26
|
+
if (other === node)
|
|
27
|
+
break;
|
|
28
|
+
if (other.type !== 'references')
|
|
29
|
+
continue;
|
|
30
|
+
for (const id of referenceIds(other))
|
|
31
|
+
if (!seen.has(id))
|
|
32
|
+
seen.set(id, other.id);
|
|
33
|
+
}
|
|
34
|
+
referenceIds(node).forEach((id, index) => {
|
|
35
|
+
if (id === '')
|
|
36
|
+
return;
|
|
37
|
+
const owner = seen.get(id);
|
|
38
|
+
if (owner !== undefined) {
|
|
39
|
+
bag.add({
|
|
40
|
+
code: 'SPEC_VALIDATION_ERROR',
|
|
41
|
+
path: pathKey(pathIndex(pathKey(node.path, 'items'), index), 'id'),
|
|
42
|
+
nodeId: node.id,
|
|
43
|
+
message: `reference id "${id}" is already used${owner === node.id ? ' in this list' : ` by block "${owner}"`}; anchors must be unique`,
|
|
44
|
+
details: { id, anchor: referenceAnchor(id) },
|
|
45
|
+
});
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
seen.set(id, node.id);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function entry(item) {
|
|
52
|
+
const title = escapeText(str(item.title));
|
|
53
|
+
const href = str(item.href);
|
|
54
|
+
const heading = href === ''
|
|
55
|
+
? `<cite>${title}</cite>`
|
|
56
|
+
: `<cite><a href="${escapeAttribute(escapeUrl(href))}" rel="noreferrer noopener">${title}</a></cite>`;
|
|
57
|
+
const meta = [
|
|
58
|
+
str(item.authors),
|
|
59
|
+
str(item.source),
|
|
60
|
+
typeof item.year === 'number' ? String(item.year) : '',
|
|
61
|
+
].filter((part) => part !== '');
|
|
62
|
+
const note = str(item.note);
|
|
63
|
+
return [
|
|
64
|
+
`<li id="${escapeAttribute(referenceAnchor(str(item.id)))}" class="ak-ref">`,
|
|
65
|
+
`<p class="ak-ref-title">${heading}</p>`,
|
|
66
|
+
meta.length === 0 ? '' : `<p class="ak-ref-meta">${escapeText(meta.join(' · '))}</p>`,
|
|
67
|
+
note === '' ? '' : `<p class="ak-ref-note">${escapeInlineText(note)}</p>`,
|
|
68
|
+
'</li>',
|
|
69
|
+
].join('');
|
|
70
|
+
}
|
|
71
|
+
function render(node) {
|
|
72
|
+
return element('section', nodeAttributes(node, { class: 'ak-block ak-refs' }), `${titleHeader(node)}<ol class="ak-ref-list">${objectListProp(node, 'items')
|
|
73
|
+
.map(entry)
|
|
74
|
+
.join('')}</ol>`);
|
|
75
|
+
}
|
|
76
|
+
export const referencesBlock = {
|
|
77
|
+
definition: semantic({
|
|
78
|
+
type: 'references',
|
|
79
|
+
category: 'content',
|
|
80
|
+
tags: ['citations', 'sources', 'bibliography', 'evidence'],
|
|
81
|
+
useCases: ['research report sources', 'benchmark evidence'],
|
|
82
|
+
purpose: 'Numbered sources with stable anchors (#ref-<id>).',
|
|
83
|
+
summary: 'References: numbered citations with title, authors, source, year, link and note; anchor #ref-<id>.',
|
|
84
|
+
props: {
|
|
85
|
+
title: OPTIONAL_TITLE,
|
|
86
|
+
items: itemsOf({
|
|
87
|
+
id: { ...idProp('Anchor id; the entry is reachable at #ref-<id>.'), required: true },
|
|
88
|
+
title: LABEL,
|
|
89
|
+
href: urlProp({ description: 'Link to the source; never fetched.' }),
|
|
90
|
+
authors: strProp({ maxLength: 200 }),
|
|
91
|
+
source: strProp({ maxLength: 200, description: 'Publisher, venue or site.' }),
|
|
92
|
+
year: num({ integer: true, min: 1, max: 9999 }),
|
|
93
|
+
note: txt({ maxLength: 600 }),
|
|
94
|
+
}, { maxItems: REFERENCE_LIMITS.maxItems }),
|
|
95
|
+
...anchorProps,
|
|
96
|
+
},
|
|
97
|
+
runtimeFeatures: ['evidence'],
|
|
98
|
+
a11y: 'An ordered list of <cite> titles; each entry has a stable id, so in-page links land on it.',
|
|
99
|
+
}),
|
|
100
|
+
render,
|
|
101
|
+
check,
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=references.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"references.js","sourceRoot":"","sources":["../../../src/blocks/evidence/references.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block groups, in their fixed registration order. The order decides where a
|
|
3
|
+
* group's blocks appear in the catalog and where its feature CSS and runtime
|
|
4
|
+
* parts are emitted, so it never depends on discovery.
|
|
5
|
+
*/
|
|
6
|
+
import type { BlockGroup } from '../registry/block-module.js';
|
|
7
|
+
export declare const BLOCK_GROUPS: readonly BlockGroup[];
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/blocks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAU9D,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAS7C,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block groups, in their fixed registration order. The order decides where a
|
|
3
|
+
* group's blocks appear in the catalog and where its feature CSS and runtime
|
|
4
|
+
* parts are emitted, so it never depends on discovery.
|
|
5
|
+
*/
|
|
6
|
+
import { CHART_GROUP } from './chart/index.js';
|
|
7
|
+
import { COMPOSITION_GROUP } from './composition/index.js';
|
|
8
|
+
import { CONTROLS_GROUP } from './controls/index.js';
|
|
9
|
+
import { DATA_TABLE_GROUP } from './data-table/index.js';
|
|
10
|
+
import { ENGINEERING_GROUP } from './engineering/index.js';
|
|
11
|
+
import { EVIDENCE_GROUP } from './evidence/index.js';
|
|
12
|
+
import { LAYOUT_GROUP } from './layout/index.js';
|
|
13
|
+
import { PRODUCT_GROUP } from './product/index.js';
|
|
14
|
+
export const BLOCK_GROUPS = [
|
|
15
|
+
COMPOSITION_GROUP,
|
|
16
|
+
LAYOUT_GROUP,
|
|
17
|
+
DATA_TABLE_GROUP,
|
|
18
|
+
CHART_GROUP,
|
|
19
|
+
ENGINEERING_GROUP,
|
|
20
|
+
EVIDENCE_GROUP,
|
|
21
|
+
PRODUCT_GROUP,
|
|
22
|
+
CONTROLS_GROUP,
|
|
23
|
+
];
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/blocks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,MAAM,YAAY,GAA0B;IACjD,iBAAiB;IACjB,YAAY;IACZ,gBAAgB;IAChB,WAAW;IACX,iBAAiB;IACjB,cAAc;IACd,aAAa;IACb,cAAc;CACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid-item.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/grid-item.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAGlF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAalE,eAAO,MAAM,aAAa,EAAE,WAyD3B,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/** Grid item block: explicit placement of child blocks inside a 12-track grid. */
|
|
2
|
+
import { pathKey } from '../../diagnostics.js';
|
|
3
|
+
import { define, enumStr, num } from '../../registry/define-helpers.js';
|
|
4
|
+
import { element, nodeAttributes } from '../../render/block-helpers.js';
|
|
5
|
+
import { defaultTrackSpan } from './grid.js';
|
|
6
|
+
import { GRID_TRACKS, LAYOUT_TRACKS_FEATURE } from './layout-styles.js';
|
|
7
|
+
const track = (description) => num({ integer: true, min: 1, max: GRID_TRACKS, description });
|
|
8
|
+
/** An integer prop as an attribute value, or undefined when unset. */
|
|
9
|
+
const attribute = (value) => typeof value === 'number' ? String(value) : undefined;
|
|
10
|
+
export const gridItemBlock = {
|
|
11
|
+
definition: define({
|
|
12
|
+
type: 'grid-item',
|
|
13
|
+
category: 'layout',
|
|
14
|
+
tags: ['span', 'columns', 'responsive', 'dashboard'],
|
|
15
|
+
useCases: ['8/4 dashboard split', 'wide chart beside a narrow list'],
|
|
16
|
+
parents: ['grid'],
|
|
17
|
+
purpose: 'Places its child blocks across tracks of a 12-track grid.',
|
|
18
|
+
summary: 'Grid item: spans 1–12 tracks of its grid, with tablet and mobile spans.',
|
|
19
|
+
runtimeFeatures: [LAYOUT_TRACKS_FEATURE],
|
|
20
|
+
props: {
|
|
21
|
+
span: track('Tracks of 12 to span. Default 12 / the grid columns.'),
|
|
22
|
+
tabletSpan: track('Span at 768px and below. Default: span.'),
|
|
23
|
+
mobileSpan: track('Span at 480px and below. Default 12 (full width).'),
|
|
24
|
+
rowSpan: num({
|
|
25
|
+
integer: true,
|
|
26
|
+
min: 1,
|
|
27
|
+
max: 4,
|
|
28
|
+
description: 'Rows to span; wide screens only.',
|
|
29
|
+
}),
|
|
30
|
+
start: track('First track; wide screens only.'),
|
|
31
|
+
align: enumStr(['start', 'center', 'end', 'stretch']),
|
|
32
|
+
},
|
|
33
|
+
slots: { children: { accepts: '*', min: 1, max: 40 } },
|
|
34
|
+
}),
|
|
35
|
+
render: (node, context) => {
|
|
36
|
+
const parent = node.parentId === null ? undefined : context.byId(node.parentId);
|
|
37
|
+
const span = typeof node.props.span === 'number' ? node.props.span : defaultTrackSpan(parent);
|
|
38
|
+
return element('div', nodeAttributes(node, {
|
|
39
|
+
class: 'ak-block ak-grid-item',
|
|
40
|
+
'data-ak-span': String(span),
|
|
41
|
+
'data-ak-tablet-span': attribute(node.props.tabletSpan),
|
|
42
|
+
'data-ak-mobile-span': attribute(node.props.mobileSpan),
|
|
43
|
+
'data-ak-row-span': attribute(node.props.rowSpan),
|
|
44
|
+
'data-ak-start': attribute(node.props.start),
|
|
45
|
+
'data-align': typeof node.props.align === 'string' ? node.props.align : undefined,
|
|
46
|
+
}), context.renderChildren(node));
|
|
47
|
+
},
|
|
48
|
+
check: (node, { bag, byId }) => {
|
|
49
|
+
const start = node.props.start;
|
|
50
|
+
if (typeof start !== 'number')
|
|
51
|
+
return;
|
|
52
|
+
const parent = node.parentId === null ? undefined : byId.get(node.parentId);
|
|
53
|
+
const span = typeof node.props.span === 'number' ? node.props.span : defaultTrackSpan(parent);
|
|
54
|
+
if (start + span - 1 > GRID_TRACKS) {
|
|
55
|
+
bag.add({
|
|
56
|
+
code: 'SPEC_VALIDATION_ERROR',
|
|
57
|
+
path: pathKey(node.path, 'start'),
|
|
58
|
+
nodeId: node.id,
|
|
59
|
+
message: `"start: ${start}" with a span of ${span} runs past track ${GRID_TRACKS}`,
|
|
60
|
+
details: { start, span, maxStart: GRID_TRACKS - span + 1 },
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=grid-item.js.map
|