@birdapi/velinstyle 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.de.md +87 -162
- package/README.md +188 -119
- package/cli/blueprint.js +98 -5
- package/cli/blueprints/app-chrome.html +18 -0
- package/cli/blueprints/benefits-grid.html +9 -0
- package/cli/blueprints/bottom-nav-mobile.html +2 -1
- package/cli/blueprints/cookie-consent.html +1 -1
- package/cli/blueprints/cta-band.html +6 -0
- package/cli/blueprints/faq-section.html +18 -0
- package/cli/blueprints/filter-bar.html +4 -4
- package/cli/blueprints/form-contact.html +6 -5
- package/cli/blueprints/hero-section.html +3 -3
- package/cli/blueprints/notification-center.html +1 -1
- package/cli/blueprints/onboarding.html +2 -1
- package/cli/blueprints/ops-console.html +29 -0
- package/cli/blueprints/pricing-band.html +37 -0
- package/cli/blueprints/process-steps.html +10 -0
- package/cli/blueprints/services-grid.html +9 -0
- package/cli/blueprints/settings-panel.html +8 -6
- package/cli/blueprints/split-hero.html +25 -0
- package/cli/blueprints/testimonials.html +8 -0
- package/cli/blueprints/trust-bar.html +10 -0
- package/cli/cli-manifest.json +81 -17
- package/cli/contrast-utils.js +97 -0
- package/cli/create.js +370 -0
- package/cli/docgen/extract-attributes.js +126 -10
- package/cli/docgen/extract-cli.js +3 -2
- package/cli/docgen/extract-components.js +61 -2
- package/cli/docgen/extract-utilities.js +10 -10
- package/cli/doctor.js +119 -0
- package/cli/index.js +531 -44
- package/cli/meta.js +84 -1
- package/cli/perf-audit.js +15 -2
- package/cli/prompt-engine.js +243 -0
- package/cli/review.js +268 -0
- package/cli/scaffold.js +119 -4
- package/cli/scanner-rules-data.js +7 -0
- package/cli/scanner.js +357 -4
- package/cli/serve.js +81 -0
- package/cli/skills.js +223 -0
- package/cli/wc-api.js +89 -0
- package/cli/workflow.js +42 -0
- package/components/index.js +2 -0
- package/components/runtime/component-loaders.js +2 -0
- package/components/velin-accordion.js +62 -13
- package/components/velin-bottom-nav.js +10 -0
- package/components/velin-calendar.js +212 -0
- package/components/velin-command.js +18 -2
- package/components/velin-data-table.js +78 -1
- package/components/velin-dialog.js +4 -1
- package/components/velin-drawer.js +2 -4
- package/components/velin-file-dropzone.js +162 -0
- package/components/velin-icon.js +22 -1
- package/components/velin-lightbox.js +5 -3
- package/components/velin-modal.js +2 -4
- package/components/velin-search.js +1 -1
- package/components/velin-sheet.js +2 -4
- package/core/a11y/component-contracts.json +20 -3
- package/core/meta/build.js +125 -5
- package/core/meta/design-constraints/contact.json +9 -0
- package/core/meta/design-constraints/faq.json +9 -0
- package/core/meta/design-constraints/hero.json +13 -0
- package/core/meta/knowledge/components.json +622 -0
- package/core/meta/knowledge/tokens.json +282 -0
- package/core/meta/pages/registry.json +294 -0
- package/core/meta/schema.js +3 -1
- package/core/meta/sections/registry.json +185 -0
- package/dist/chunks/{attributes-STYCS3O5.js → attributes-A423NX5J.js} +3 -3
- package/dist/chunks/{attributes-353XDOAX.js → attributes-F6UPIEVP.js} +1 -1
- package/dist/chunks/{attributes-ADOKLKA7.js → attributes-GLYXGGAL.js} +3 -3
- package/dist/chunks/{attributes-TPANLMLF.js → attributes-UFTYOSAU.js} +3 -3
- package/dist/chunks/attributes-XGLXLR2T.js +391 -0
- package/dist/chunks/attributes-YF4NI2QS.js +391 -0
- package/dist/chunks/browser-AUABBYUK.js +1544 -0
- package/dist/chunks/{chunk-RSMRR27R.js → chunk-2LSKX57P.js} +12 -10
- package/dist/chunks/{chunk-IEHKRARD.js → chunk-2TGCVDUL.js} +11 -9
- package/dist/chunks/{chunk-SRL6EWHP.js → chunk-5JWGUAPC.js} +17 -13
- package/dist/chunks/chunk-7YSO2OQ2.js +113 -0
- package/dist/chunks/{chunk-QVHYL3R4.js → chunk-BHR3ZG6U.js} +6 -6
- package/dist/chunks/{chunk-J472ERN2.js → chunk-JMSIHEYX.js} +15 -4
- package/dist/chunks/{chunk-MKZP2TBH.js → chunk-L7ZGUU4D.js} +2 -2
- package/dist/chunks/chunk-TUGIPKW5.js +113 -0
- package/dist/chunks/{highlight-GJHHV4KM.js → highlight-M2ELQNYK.js} +1 -1
- package/dist/chunks/runtime-entry.js +1 -1
- package/dist/chunks/{velin-accordion-FBIPAEXG.js → velin-accordion-WSY6BMLA.js} +64 -10
- package/dist/chunks/{velin-bottom-nav-7GEMPIM6.js → velin-bottom-nav-5RVRNGIP.js} +25 -0
- package/dist/chunks/{velin-bottom-nav-N3DFQR66.js → velin-bottom-nav-N5F4UO2I.js} +26 -1
- package/dist/chunks/velin-calendar-OFE6THUD.js +210 -0
- package/dist/chunks/velin-calendar-PGVNJTXK.js +217 -0
- package/dist/chunks/velin-calendar-XC7JRDSH.js +217 -0
- package/dist/chunks/{velin-code-block-CIAURDRJ.js → velin-code-block-ZGWG7JI5.js} +1 -1
- package/dist/chunks/{velin-combobox-NXS4QB4R.js → velin-combobox-56V2ZWT5.js} +1 -1
- package/dist/chunks/{velin-command-ONKO2A3J.js → velin-command-2HO2EKR6.js} +29 -2
- package/dist/chunks/{velin-command-TMLSRGIU.js → velin-command-ZJSLPK7B.js} +30 -3
- package/dist/chunks/{velin-copy-NYDBOKXT.js → velin-copy-XDQSV2XU.js} +1 -1
- package/dist/chunks/{velin-countdown-4ZVDGK4R.js → velin-countdown-V4Z5MA63.js} +1 -1
- package/dist/chunks/velin-data-table-UVR42UUM.js +372 -0
- package/dist/chunks/{velin-dialog-GTTZI564.js → velin-dialog-3YK2RPRV.js} +9 -2
- package/dist/chunks/{velin-dialog-ELFOZIXZ.js → velin-dialog-S24KAP4S.js} +3 -1
- package/dist/chunks/{velin-drawer-BE6TYN3H.js → velin-drawer-5PNU624J.js} +2 -4
- package/dist/chunks/{velin-drawer-DLL2GLT6.js → velin-drawer-CCM6S25D.js} +3 -5
- package/dist/chunks/{velin-email-RBX6ZR4S.js → velin-email-TNFONXPW.js} +1 -1
- package/dist/chunks/velin-file-dropzone-QRGF2JNA.js +154 -0
- package/dist/chunks/velin-file-dropzone-XIZMJ3NB.js +154 -0
- package/dist/chunks/{velin-icon-7M76DOPB.js → velin-icon-A6NCXGUK.js} +59 -17
- package/dist/chunks/{velin-icon-ZTSKUOVN.js → velin-icon-EC4B5XCM.js} +18 -5
- package/dist/chunks/{velin-lightbox-6E7CAATP.js → velin-lightbox-FFK4TUUP.js} +7 -6
- package/dist/chunks/{velin-lightbox-NXA3U2FM.js → velin-lightbox-P725FLTY.js} +5 -4
- package/dist/chunks/{velin-menubar-J66JXRWW.js → velin-menubar-6I2LM5HL.js} +1 -1
- package/dist/chunks/{velin-modal-5HYNNNUI.js → velin-modal-ICTMGRSU.js} +7 -8
- package/dist/chunks/{velin-modal-AEOTZ67O.js → velin-modal-JBNODH7D.js} +2 -4
- package/dist/chunks/{velin-popover-T72HK3DF.js → velin-popover-WZG2GHBL.js} +25 -4
- package/dist/chunks/{velin-rating-N4DI2XNL.js → velin-rating-QBBYRRBU.js} +1 -1
- package/dist/chunks/{velin-search-7B4KJ6TX.js → velin-search-B3L6J2RP.js} +2 -2
- package/dist/chunks/{velin-search-2XRQFBCS.js → velin-search-L3UG6NDQ.js} +5 -4
- package/dist/chunks/{velin-secure-field-6PV7RZDJ.js → velin-secure-field-DGYMP7OK.js} +1 -1
- package/dist/chunks/{velin-segmented-control-GYD5BIXQ.js → velin-segmented-control-P74GJPAR.js} +1 -1
- package/dist/chunks/{velin-sheet-R2Y67X6H.js → velin-sheet-M5GZZD7G.js} +2 -4
- package/dist/chunks/{velin-sheet-OUK6572T.js → velin-sheet-X7RXIWKV.js} +3 -5
- package/dist/chunks/{velin-stepper-X54WGHDG.js → velin-stepper-4YQJUHPC.js} +12 -5
- package/dist/chunks/{velin-toast-OMMOA2DK.js → velin-toast-UG5LWTG2.js} +5 -1
- package/dist/chunks/{velin-tooltip-BDHGRTQB.js → velin-tooltip-ZDH5SDLU.js} +1 -1
- package/dist/llms.txt +29 -7
- package/dist/search-index.json +156 -10
- package/dist/velin-agent.json +3973 -28
- package/dist/velinstyle-components.iife.js +1211 -284
- package/dist/velinstyle-components.js +1213 -284
- package/dist/velinstyle-components.min.js +266 -118
- package/dist/velinstyle.css +252 -67
- package/dist/velinstyle.d.ts +2 -0
- package/dist/velinstyle.min.css +1 -1
- package/package.json +20 -6
- package/packages/skill-engine/README.md +24 -0
- package/packages/skill-engine/package.json +7 -0
- package/packages/skill-engine/src/catalog.js +29 -0
- package/packages/skill-engine/src/index.js +5 -0
- package/packages/skill-engine/src/install.js +69 -0
- package/packages/skill-engine/src/registry.js +27 -0
- package/packages/skill-engine/src/resolve.js +68 -0
- package/packages/skill-engine/src/validate.js +40 -0
- package/packages/velinstyle-skills/README.md +6 -0
- package/packages/velinstyle-skills/adapter.json +8 -0
- package/packages/velinstyle-skills/bundles/landing-starter.bundle.yaml +12 -0
- package/packages/velinstyle-skills/bundles/review-suite.bundle.yaml +11 -0
- package/packages/velinstyle-skills/catalog.json +1004 -0
- package/packages/velinstyle-skills/graphs/component-ship.graph.yaml +14 -0
- package/packages/velinstyle-skills/graphs/landingpage.graph.yaml +21 -0
- package/packages/velinstyle-skills/graphs/release-gate.graph.yaml +15 -0
- package/packages/velinstyle-skills/index.js +22 -0
- package/packages/velinstyle-skills/package.json +7 -0
- package/packages/velinstyle-skills/packs/accessibility.pack.yaml +9 -0
- package/packages/velinstyle-skills/packs/design.pack.yaml +10 -0
- package/packages/velinstyle-skills/packs/documentation.pack.yaml +8 -0
- package/packages/velinstyle-skills/packs/enterprise.pack.yaml +10 -0
- package/packages/velinstyle-skills/packs/frontend.pack.yaml +10 -0
- package/packages/velinstyle-skills/packs/review.pack.yaml +9 -0
- package/packages/velinstyle-skills/projects/admin-panel.project.yaml +12 -0
- package/packages/velinstyle-skills/projects/blog.project.yaml +11 -0
- package/packages/velinstyle-skills/projects/documentation-portal.project.yaml +13 -0
- package/packages/velinstyle-skills/projects/ecommerce-shop.project.yaml +12 -0
- package/packages/velinstyle-skills/projects/landing-page.project.yaml +12 -0
- package/packages/velinstyle-skills/projects/laravel-dashboard.project.yaml +12 -0
- package/packages/velinstyle-skills/projects/marketing-website.project.yaml +14 -0
- package/packages/velinstyle-skills/projects/portfolio.project.yaml +12 -0
- package/packages/velinstyle-skills/registry.json +142 -0
- package/packages/velinstyle-skills/scripts/generate-assets.mjs +163 -0
- package/packages/velinstyle-skills/skills/velin-a11y-focus-keyboard/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-a11y-page-checklist/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-a11y-scan-fix/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-ai-agent-briefing/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-ai-plan-scaffold-review/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-ai-skill-authoring/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-components-accessibility-map/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-components-api-contract/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-components-recipe/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-components-select-compose/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-design-hero-compose/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-design-section-rhythm/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-design-surface-roles/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-dev-component-wire/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-dev-page-scaffold/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-dev-plan-first/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-docs-component-guide/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-docs-generate-api/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-dx-doctor-setup/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-dx-project-init/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-migration-legacy-wc/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-migration-prefix-classes/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-motion-reduced-safe/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-motion-reveal-feedback/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-perf-audit-fix/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-perf-runtime-tree-shake/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-release-changelog-sync/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-release-meta-rebuild/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-review-conversion-hero/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-review-page-gate/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-review-seo-meta/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-security-sanitize-html/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-security-scan-pii/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-testing-a11y-suite/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-testing-visual-smoke/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-themes-apply-token/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-themes-contrast-check/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-utilities-layout-apply/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-utilities-prefix-fix/SKILL.md +57 -0
- package/packages/velinstyle-skills/skills/velin-utilities-token-map/SKILL.md +57 -0
- package/packages/velinstyle-skills/templates/admin-panel.template.yaml +12 -0
- package/packages/velinstyle-skills/templates/blog.template.yaml +12 -0
- package/packages/velinstyle-skills/templates/documentation-portal.template.yaml +12 -0
- package/packages/velinstyle-skills/templates/ecommerce-shop.template.yaml +13 -0
- package/packages/velinstyle-skills/templates/landing-page.template.yaml +12 -0
- package/packages/velinstyle-skills/templates/laravel-dashboard.template.yaml +11 -0
- package/packages/velinstyle-skills/templates/marketing-website.template.yaml +13 -0
- package/packages/velinstyle-skills/templates/portfolio.template.yaml +12 -0
- package/schemas/component-knowledge.schema.json +33 -0
- package/schemas/design-constraint.schema.json +15 -0
- package/schemas/design-intelligence.schema.json +19 -0
- package/schemas/design-rule.schema.json +19 -0
- package/schemas/page-template.schema.json +24 -0
- package/schemas/review-report.schema.json +36 -0
- package/schemas/section.schema.json +22 -0
- package/schemas/skill-bundle.schema.json +15 -0
- package/schemas/skill-graph.schema.json +25 -0
- package/schemas/skill-pack.schema.json +14 -0
- package/schemas/skill-project.schema.json +16 -0
- package/schemas/skill-record.schema.json +27 -0
- package/schemas/skill-registry.schema.json +17 -0
- package/schemas/skill-template.schema.json +17 -0
- package/schemas/token-graph.schema.json +27 -0
- package/schemas/utility.schema.json +166 -0
- package/src/components/alert.css +22 -1
- package/src/components/calendar-dropzone.css +5 -0
- package/src/layout/app-shell.css +33 -0
- package/src/tokens/shadow.css +13 -0
- package/src/utilities/border.css +2 -0
- package/src/utilities/display.css +1 -24
- package/src/utilities/responsive.css +16 -1
- package/src/utilities/spacing.css +32 -0
- package/src/velinstyle.css +2 -0
- package/dist/chunks/attributes-3BZLI7XF.js +0 -364
- package/dist/chunks/attributes-4N5JP4CG.js +0 -364
- package/dist/chunks/attributes-5Q2WXGRC.js +0 -374
- package/dist/chunks/attributes-AIR7SVLK.js +0 -364
- package/dist/chunks/attributes-BGRN5XZO.js +0 -364
- package/dist/chunks/attributes-BVSQAYLR.js +0 -364
- package/dist/chunks/attributes-CDYFUY7Y.js +0 -364
- package/dist/chunks/attributes-JMYJZBPE.js +0 -364
- package/dist/chunks/attributes-R5JY3X4O.js +0 -374
- package/dist/chunks/attributes-TNSPQTHX.js +0 -374
- package/dist/chunks/chunk-2354NEBP.js +0 -109
- package/dist/chunks/chunk-2VNA7G7S.js +0 -109
- package/dist/chunks/chunk-AQLRJSGG.js +0 -109
- package/dist/chunks/chunk-EWPSDMQT.js +0 -109
- package/dist/chunks/chunk-LA7264K4.js +0 -85
- package/dist/chunks/chunk-QTJJ3DPO.js +0 -109
- package/dist/chunks/chunk-RZQVWFHW.js +0 -109
- package/dist/chunks/chunk-U4XHMZ7D.js +0 -109
- package/dist/chunks/chunk-V5YIUA6G.js +0 -109
- package/dist/chunks/chunk-XIET2VSZ.js +0 -109
- package/dist/chunks/chunk-XYLJ2GCB.js +0 -205
- package/dist/chunks/chunk-ZPSPKUYD.js +0 -109
- package/dist/chunks/highlight-XTHRKBA3.js +0 -37
- package/dist/chunks/velin-bottom-nav-2N2TYWOF.js +0 -86
- package/dist/chunks/velin-carousel-Y5VCOABZ.js +0 -213
- package/dist/chunks/velin-code-block-ASUBTAQV.js +0 -119
- package/dist/chunks/velin-code-block-TSUKPY4C.js +0 -123
- package/dist/chunks/velin-code-block-Y6CM726Q.js +0 -119
- package/dist/chunks/velin-combobox-2KDTCQ7N.js +0 -155
- package/dist/chunks/velin-command-M7RNHUPR.js +0 -136
- package/dist/chunks/velin-copy-T5KDTDXP.js +0 -81
- package/dist/chunks/velin-countdown-5XSTN3BH.js +0 -101
- package/dist/chunks/velin-counter-ISCTEAHI.js +0 -118
- package/dist/chunks/velin-dialog-D2GUHSCD.js +0 -144
- package/dist/chunks/velin-dialog-IJLFDXAJ.js +0 -144
- package/dist/chunks/velin-dialog-TNS3WXMB.js +0 -144
- package/dist/chunks/velin-drawer-MJS6WCF7.js +0 -130
- package/dist/chunks/velin-email-N5B5ZYTE.js +0 -90
- package/dist/chunks/velin-icon-KZO3IEHG.js +0 -164
- package/dist/chunks/velin-lightbox-I75U6JF4.js +0 -140
- package/dist/chunks/velin-lightbox-QOTB4PRL.js +0 -140
- package/dist/chunks/velin-lightbox-UCD6N7HF.js +0 -140
- package/dist/chunks/velin-live-dot-XHUZCIDZ.js +0 -67
- package/dist/chunks/velin-menubar-SFEXJE56.js +0 -86
- package/dist/chunks/velin-modal-2HOBXE6F.js +0 -176
- package/dist/chunks/velin-modal-GLI2XZZB.js +0 -176
- package/dist/chunks/velin-popover-EXINRIGJ.js +0 -145
- package/dist/chunks/velin-popover-OXX7MRZ6.js +0 -145
- package/dist/chunks/velin-popover-YKCCROJG.js +0 -145
- package/dist/chunks/velin-rating-XRQJV4LO.js +0 -91
- package/dist/chunks/velin-scroll-top-F2FCZNYD.js +0 -58
- package/dist/chunks/velin-search-4YHJWYSS.js +0 -556
- package/dist/chunks/velin-search-LWHY23Q5.js +0 -474
- package/dist/chunks/velin-secure-field-H7FSBUJW.js +0 -95
- package/dist/chunks/velin-segmented-control-PQX6LKOJ.js +0 -109
- package/dist/chunks/velin-sheet-3OGI4HD7.js +0 -119
- package/dist/chunks/velin-sparkline-GVEANJVW.js +0 -184
- package/dist/chunks/velin-sparkline-KDA3GQAN.js +0 -162
- package/dist/chunks/velin-stepper-2ZIHLKGM.js +0 -141
- package/dist/chunks/velin-stepper-FYEUEWE6.js +0 -141
- package/dist/chunks/velin-stepper-wc-QU3KRVQR.js +0 -133
- package/dist/chunks/velin-theme-toggle-BNNS7WLV.js +0 -285
- package/dist/chunks/velin-theme-toggle-NO7V4TWI.js +0 -285
- package/dist/chunks/velin-theme-toggle-QELCJM2Q.js +0 -291
- package/dist/chunks/velin-toast-RCZ4CSUC.js +0 -109
- package/dist/chunks/velin-toast-WEUBTJG6.js +0 -109
- package/dist/chunks/velin-tooltip-664IOHZA.js +0 -112
- package/dist/chunks/velin-tooltip-wc-LXDVT6DE.js +0 -103
- package/dist/chunks/worker-client-R6DBYPFT.js +0 -46
|
@@ -78,7 +78,6 @@ class VelinSheet extends HTMLElement {
|
|
|
78
78
|
this._prev = saveFocus();
|
|
79
79
|
setBackgroundInert(this);
|
|
80
80
|
document.addEventListener('keydown', this._onKey);
|
|
81
|
-
document.body.style.overflow = 'hidden';
|
|
82
81
|
requestAnimationFrame(() => {
|
|
83
82
|
const f = getFocusableElements(this.shadowRoot);
|
|
84
83
|
if (f.length) f[0].focus();
|
|
@@ -87,8 +86,7 @@ class VelinSheet extends HTMLElement {
|
|
|
87
86
|
|
|
88
87
|
_close() {
|
|
89
88
|
document.removeEventListener('keydown', this._onKey);
|
|
90
|
-
|
|
91
|
-
clearBackgroundInert();
|
|
89
|
+
clearBackgroundInert(this);
|
|
92
90
|
restoreFocus(this._prev);
|
|
93
91
|
}
|
|
94
92
|
|
|
@@ -99,7 +97,7 @@ class VelinSheet extends HTMLElement {
|
|
|
99
97
|
|
|
100
98
|
disconnectedCallback() {
|
|
101
99
|
document.removeEventListener('keydown', this._onKey);
|
|
102
|
-
|
|
100
|
+
clearBackgroundInert(this);
|
|
103
101
|
}
|
|
104
102
|
}
|
|
105
103
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"wcagLevel": "AAA",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"components": {
|
|
5
5
|
"velin-accordion": {
|
|
6
6
|
"status": "pass",
|
|
@@ -77,11 +77,28 @@
|
|
|
77
77
|
"velin-data-table": {
|
|
78
78
|
"status": "pass",
|
|
79
79
|
"roles": ["button"],
|
|
80
|
-
"keyboard": "
|
|
80
|
+
"keyboard": "Sort buttons; editable cells: Enter/F2 edit, Escape cancel; pagination",
|
|
81
81
|
"liveRegion": "polite",
|
|
82
82
|
"reducedMotion": true,
|
|
83
83
|
"requiredAttributes": [],
|
|
84
|
-
"notes": "Enhances a light-DOM table.
|
|
84
|
+
"notes": "Enhances a light-DOM table. Optional editable attribute or data-editable cells for inline edit (velin-data-table-edit). No virtualization in v1."
|
|
85
|
+
},
|
|
86
|
+
"velin-calendar": {
|
|
87
|
+
"status": "pass",
|
|
88
|
+
"roles": ["group", "grid", "button"],
|
|
89
|
+
"keyboard": "Arrows, Home/End, PageUp/Down, Enter/Space",
|
|
90
|
+
"reducedMotion": true,
|
|
91
|
+
"requiredAttributes": [],
|
|
92
|
+
"notes": "Month calendar. value ISO date; velin-change event. Optional min/max."
|
|
93
|
+
},
|
|
94
|
+
"velin-file-dropzone": {
|
|
95
|
+
"status": "pass",
|
|
96
|
+
"roles": ["group"],
|
|
97
|
+
"keyboard": "Browse button + native file input",
|
|
98
|
+
"liveRegion": "polite",
|
|
99
|
+
"reducedMotion": true,
|
|
100
|
+
"requiredAttributes": [],
|
|
101
|
+
"notes": "Client-side dropzone. Events velin-files / velin-error. Does not upload to a server."
|
|
85
102
|
},
|
|
86
103
|
"velin-dialog": {
|
|
87
104
|
"status": "pass",
|
package/core/meta/build.js
CHANGED
|
@@ -164,6 +164,35 @@ export async function buildAgentBundle(options) {
|
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
+
const readJsonSafe = (rel) => {
|
|
168
|
+
const p = join(pkgRoot, rel);
|
|
169
|
+
if (!existsSync(p)) return null;
|
|
170
|
+
try {
|
|
171
|
+
return JSON.parse(readFileSync(p, 'utf-8'));
|
|
172
|
+
} catch {
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
const knowledgeComponents = readJsonSafe('core/meta/knowledge/components.json');
|
|
178
|
+
const knowledgeTokens = readJsonSafe('core/meta/knowledge/tokens.json');
|
|
179
|
+
const pageRegistry = readJsonSafe('core/meta/pages/registry.json');
|
|
180
|
+
const sectionRegistry = readJsonSafe('core/meta/sections/registry.json');
|
|
181
|
+
const skillsRegistry = readJsonSafe('packages/velinstyle-skills/registry.json');
|
|
182
|
+
const skillsCatalog = readJsonSafe('packages/velinstyle-skills/catalog.json');
|
|
183
|
+
|
|
184
|
+
const constraintDir = join(pkgRoot, 'core', 'meta', 'design-constraints');
|
|
185
|
+
const designConstraints = [];
|
|
186
|
+
if (existsSync(constraintDir)) {
|
|
187
|
+
for (const file of readdirSync(constraintDir).filter((f) => f.endsWith('.json'))) {
|
|
188
|
+
try {
|
|
189
|
+
designConstraints.push(JSON.parse(readFileSync(join(constraintDir, file), 'utf-8')));
|
|
190
|
+
} catch {
|
|
191
|
+
/* skip bad files */
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
167
196
|
const bundle = {
|
|
168
197
|
schemaVersion: VELIN_AGENT_SCHEMA_VERSION,
|
|
169
198
|
mime: VELIN_META_MIME,
|
|
@@ -174,7 +203,8 @@ export async function buildAgentBundle(options) {
|
|
|
174
203
|
homepage: pkg.homepage,
|
|
175
204
|
repository: pkg.repository,
|
|
176
205
|
tagline:
|
|
177
|
-
'VelinStyle is
|
|
206
|
+
'VelinStyle is a CSS framework with WCAG 2.2 AAA-oriented defaults, native JavaScript runtime, and Web Components.',
|
|
207
|
+
pipeline: 'Core Foundation → Design System → Knowledge Graph → Prompt Engine → Review Engine → AI Metadata',
|
|
178
208
|
},
|
|
179
209
|
packageExports: pkg.exports,
|
|
180
210
|
release: {
|
|
@@ -185,6 +215,7 @@ export async function buildAgentBundle(options) {
|
|
|
185
215
|
migration: [
|
|
186
216
|
'Replace velin-tooltip-wc / velin-stepper-wc with velin-tooltip / velin-stepper.',
|
|
187
217
|
'Point AI tools at velin-agent.json or docs/llms.txt for framework context.',
|
|
218
|
+
'Prefer velinstyle scaffold / plan for page generation (plan → render → review).',
|
|
188
219
|
],
|
|
189
220
|
},
|
|
190
221
|
components: {
|
|
@@ -195,10 +226,73 @@ export async function buildAgentBundle(options) {
|
|
|
195
226
|
legacyAliases,
|
|
196
227
|
helpers,
|
|
197
228
|
},
|
|
229
|
+
knowledgeGraph: {
|
|
230
|
+
components: knowledgeComponents?.components || [],
|
|
231
|
+
componentCount: knowledgeComponents?.components?.length || 0,
|
|
232
|
+
tokens: knowledgeTokens,
|
|
233
|
+
pages: pageRegistry?.pages || [],
|
|
234
|
+
pageCount: pageRegistry?.pages?.length || 0,
|
|
235
|
+
sections: sectionRegistry?.sections || [],
|
|
236
|
+
sectionCount: sectionRegistry?.sections?.length || 0,
|
|
237
|
+
designConstraints,
|
|
238
|
+
schemas: [
|
|
239
|
+
'schemas/component-knowledge.schema.json',
|
|
240
|
+
'schemas/design-intelligence.schema.json',
|
|
241
|
+
'schemas/design-constraint.schema.json',
|
|
242
|
+
'schemas/page-template.schema.json',
|
|
243
|
+
'schemas/section.schema.json',
|
|
244
|
+
'schemas/review-report.schema.json',
|
|
245
|
+
'schemas/token-graph.schema.json',
|
|
246
|
+
'schemas/design-rule.schema.json',
|
|
247
|
+
'schemas/skill-record.schema.json',
|
|
248
|
+
'schemas/skill-registry.schema.json',
|
|
249
|
+
'schemas/skill-pack.schema.json',
|
|
250
|
+
'schemas/skill-graph.schema.json',
|
|
251
|
+
'schemas/skill-bundle.schema.json',
|
|
252
|
+
'schemas/skill-template.schema.json',
|
|
253
|
+
'schemas/skill-project.schema.json',
|
|
254
|
+
],
|
|
255
|
+
},
|
|
256
|
+
skills: {
|
|
257
|
+
count: skillsCatalog?.totals?.skills || skillsRegistry?.skills?.length || 0,
|
|
258
|
+
categories: [...new Set((skillsRegistry?.skills || []).map((item) => item.category))].sort(),
|
|
259
|
+
capabilities: [...new Set((skillsRegistry?.skills || []).flatMap((item) => item.capabilities || []))].sort(),
|
|
260
|
+
items: (skillsRegistry?.skills || []).map((item) => ({
|
|
261
|
+
id: item.id,
|
|
262
|
+
category: item.category,
|
|
263
|
+
priority: item.priority,
|
|
264
|
+
status: item.status,
|
|
265
|
+
confidence: item.confidence,
|
|
266
|
+
capabilities: item.capabilities || [],
|
|
267
|
+
})),
|
|
268
|
+
},
|
|
269
|
+
skillPacks: skillsRegistry?.packs || [],
|
|
270
|
+
workflowGraphs: (skillsRegistry?.workflowGraphs || []).map((graph) => ({
|
|
271
|
+
id: graph.id,
|
|
272
|
+
name: graph.name,
|
|
273
|
+
entry: graph.entry,
|
|
274
|
+
nodeCount: Object.keys(graph.nodes || {}).length,
|
|
275
|
+
edgeCount: (graph.edges || []).length,
|
|
276
|
+
})),
|
|
277
|
+
bundles: skillsRegistry?.bundles || [],
|
|
278
|
+
templates: skillsRegistry?.templates || [],
|
|
279
|
+
projectSkills: skillsRegistry?.projects || [],
|
|
198
280
|
attributes: { names: attributes, count: attributes.length },
|
|
199
281
|
cli: { commands: cliCommands },
|
|
200
282
|
tooling: {
|
|
201
|
-
categories: [
|
|
283
|
+
categories: [
|
|
284
|
+
'scan',
|
|
285
|
+
'prefix',
|
|
286
|
+
'scaffold',
|
|
287
|
+
'plan',
|
|
288
|
+
'review',
|
|
289
|
+
'layout',
|
|
290
|
+
'perf',
|
|
291
|
+
'tokens',
|
|
292
|
+
'docs',
|
|
293
|
+
'search',
|
|
294
|
+
'meta',
|
|
295
|
+
],
|
|
202
296
|
scannerRuleCount,
|
|
203
297
|
},
|
|
204
298
|
a11y: {
|
|
@@ -216,11 +310,17 @@ export async function buildAgentBundle(options) {
|
|
|
216
310
|
generated: 'docs/generated/',
|
|
217
311
|
guides: {
|
|
218
312
|
velinMeta: 'docs/guides/velin-meta.html',
|
|
313
|
+
aiSkills: 'docs/guides/ai-skills.html',
|
|
219
314
|
velinSearch: 'docs/guides/velin-search.html',
|
|
220
315
|
syntaxHighlight: 'docs/guides/syntax-highlight.html',
|
|
221
316
|
promptScaffolding: 'docs/guides/prompt-scaffolding.html',
|
|
222
317
|
apiReference: 'docs/guides/api-reference.html',
|
|
223
318
|
},
|
|
319
|
+
strategy: {
|
|
320
|
+
note: 'Maintainer strategy/ADR docs are not published (monorepo interne_docs/strategy).',
|
|
321
|
+
northStar: 'VELINSTYLE_2030.md',
|
|
322
|
+
architecture: 'ARCHITECTURE.md',
|
|
323
|
+
},
|
|
224
324
|
agentFiles: {
|
|
225
325
|
json: 'dist/velin-agent.json',
|
|
226
326
|
llmsTxt: 'dist/llms.txt',
|
|
@@ -240,7 +340,7 @@ export async function buildAgentBundle(options) {
|
|
|
240
340
|
export function buildLlmsTxt(bundle, baseUrl = 'https://velinstyle.info') {
|
|
241
341
|
const tagline =
|
|
242
342
|
bundle.framework.tagline ||
|
|
243
|
-
'VelinStyle is
|
|
343
|
+
'VelinStyle is a CSS framework with WCAG 2.2 AAA-oriented defaults, native JavaScript runtime, and Web Components.';
|
|
244
344
|
const lines = [
|
|
245
345
|
`# VelinStyle ${bundle.framework.version}`,
|
|
246
346
|
'',
|
|
@@ -251,19 +351,34 @@ export function buildLlmsTxt(bundle, baseUrl = 'https://velinstyle.info') {
|
|
|
251
351
|
'## Framework',
|
|
252
352
|
`- npm: ${bundle.framework.name}`,
|
|
253
353
|
`- ${tagline}`,
|
|
354
|
+
`- Pipeline: ${bundle.framework.pipeline || 'Core → Design → Knowledge → Prompt → Review → AI Metadata'}`,
|
|
355
|
+
`- Maturity: CSS/Web Components/runtime = stable; plan/review, knowledge graph, page/section registry, agent metadata = beta/foundation (seed, expanding); Studio + Utility Engine generator = planned`,
|
|
254
356
|
`- Components: ${bundle.components.count} canonical Web Components (\`velin-*\`); ${bundle.components.loaderCount ?? bundle.components.count} lazy-loader entries`,
|
|
357
|
+
`- Knowledge graph: ${bundle.knowledgeGraph?.componentCount ?? 0} component nodes, ${bundle.knowledgeGraph?.pageCount ?? 0} page types, ${bundle.knowledgeGraph?.sectionCount ?? 0} sections, ${bundle.knowledgeGraph?.designConstraints?.length ?? 0} design constraint packs`,
|
|
255
358
|
`- HTML attributes: ${bundle.attributes.count} \`velin-*\` bridges`,
|
|
256
|
-
`- CLI: velinstyle (scan, scaffold, docs generate, search index, meta)`,
|
|
359
|
+
`- CLI: velinstyle (scan, scaffold, plan, review, docs generate, search index, meta)`,
|
|
360
|
+
'',
|
|
361
|
+
'## Agent briefing',
|
|
362
|
+
'- Treat plan/review/knowledge graph as beta foundation — usable, not a finished AI design system.',
|
|
363
|
+
'- Build pages with plan-first flow: analyze prompt → page registry → sections → design constraints → HTML → review.',
|
|
364
|
+
'- Prefer tokens (`--velin-color-*`, `--velin-space-*`) over raw hex.',
|
|
365
|
+
'- One H1 per page; form fields need labels + `velin-form-summary` when validating.',
|
|
366
|
+
'- Hero: max 2 CTAs; FAQ uses disclosure (`velin-accordion` / details).',
|
|
367
|
+
'- Do not invent non-`velin-*` utility classes.',
|
|
368
|
+
'- Prefer registry-backed skills/workflows (`velinstyle skills ...`, `velinstyle workflow ...`) before ad-hoc orchestration.',
|
|
257
369
|
'',
|
|
258
370
|
'## Conventions',
|
|
259
371
|
...bundle.conventions.map((c) => `- ${c}`),
|
|
260
372
|
'',
|
|
261
373
|
'## Key guides',
|
|
262
374
|
`- [Velin-Meta](${baseUrl}/docs/guides/velin-meta.html)`,
|
|
375
|
+
`- [AI Skills](${baseUrl}/docs/guides/ai-skills.html)`,
|
|
263
376
|
`- [VelinSearch](${baseUrl}/docs/guides/velin-search.html)`,
|
|
264
377
|
`- [Syntax highlighting](${baseUrl}/docs/guides/syntax-highlight.html)`,
|
|
265
378
|
`- [Prompt scaffolding](${baseUrl}/docs/guides/prompt-scaffolding.html)`,
|
|
266
379
|
`- [API reference (generated)](${baseUrl}/docs/guides/api-reference.html)`,
|
|
380
|
+
`- North star: VELINSTYLE_2030.md`,
|
|
381
|
+
`- Architecture: ARCHITECTURE.md`,
|
|
267
382
|
'',
|
|
268
383
|
'## Generated reference',
|
|
269
384
|
`- [Components index](${baseUrl}/docs/generated/components/)`,
|
|
@@ -273,9 +388,14 @@ export function buildLlmsTxt(bundle, baseUrl = 'https://velinstyle.info') {
|
|
|
273
388
|
'',
|
|
274
389
|
'## Usage for agents',
|
|
275
390
|
'```',
|
|
391
|
+
'npx velinstyle plan "Steuerberater Landingpage mit Kontaktformular"',
|
|
392
|
+
'npx velinstyle scaffold "Steuerberater Landingpage mit Kontaktformular" -o out.html --json',
|
|
393
|
+
'npx velinstyle review out.html --json',
|
|
276
394
|
'npx velinstyle meta',
|
|
277
395
|
'npx velinstyle docs generate',
|
|
278
|
-
'npx velinstyle
|
|
396
|
+
'npx velinstyle skills list --capability review',
|
|
397
|
+
'npx velinstyle skills install frontend',
|
|
398
|
+
'npx velinstyle workflow landingpage --json',
|
|
279
399
|
'```',
|
|
280
400
|
'',
|
|
281
401
|
];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "contact",
|
|
3
|
+
"target": "section:contact",
|
|
4
|
+
"rules": [
|
|
5
|
+
{ "id": "contact-labels", "scope": "section", "section": "contact", "rule": "Visible labels on all fields", "severity": "error" },
|
|
6
|
+
{ "id": "contact-summary", "scope": "section", "section": "contact", "rule": "Include velin-form-summary for errors", "severity": "error" },
|
|
7
|
+
{ "id": "contact-submit", "scope": "section", "section": "contact", "rule": "Single primary submit button", "severity": "warning" }
|
|
8
|
+
]
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "faq",
|
|
3
|
+
"target": "section:faq",
|
|
4
|
+
"rules": [
|
|
5
|
+
{ "id": "faq-questions", "scope": "section", "section": "faq", "rule": "Entries must be clear interrogatives", "severity": "error" },
|
|
6
|
+
{ "id": "faq-pattern", "scope": "section", "section": "faq", "rule": "Use accordion/disclosure, not long marketing paragraphs", "severity": "error" },
|
|
7
|
+
{ "id": "faq-count", "scope": "section", "section": "faq", "rule": "Prefer 5–8 high-intent FAQs", "severity": "info" }
|
|
8
|
+
]
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "hero",
|
|
3
|
+
"target": "section:hero",
|
|
4
|
+
"rules": [
|
|
5
|
+
{ "id": "hero-headline-lines", "scope": "section", "section": "hero", "rule": "Headline max 2 lines on desktop", "severity": "error" },
|
|
6
|
+
{ "id": "hero-cta-max", "scope": "section", "section": "hero", "rule": "Maximum 2 CTAs", "severity": "error" },
|
|
7
|
+
{ "id": "hero-image-side", "scope": "section", "section": "hero", "rule": "Image left OR right, not competing dual heroes", "severity": "warning" },
|
|
8
|
+
{ "id": "hero-padding", "scope": "section", "section": "hero", "rule": "Section padding by breakpoint", "breakpoints": { "mobile": "var(--velin-space-8)", "tablet": "var(--velin-space-10)", "desktop": "var(--velin-space-12)" }, "severity": "warning" },
|
|
9
|
+
{ "id": "hero-contrast", "scope": "section", "section": "hero", "rule": "Text/surface pairs must meet contrast contract", "severity": "error" },
|
|
10
|
+
{ "id": "hero-motion", "scope": "section", "section": "hero", "rule": "Animation only when motion-safe", "severity": "warning" },
|
|
11
|
+
{ "id": "hero-container", "scope": "section", "section": "hero", "rule": "Content inside documented container width", "severity": "warning" }
|
|
12
|
+
]
|
|
13
|
+
}
|