@birdapi/velinstyle 1.0.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 -158
- package/README.md +188 -115
- 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-a11y.js +4 -2
- 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 +535 -46
- 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 +4 -0
- package/components/runtime/component-loaders.js +4 -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 +438 -0
- 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-form-summary.js +348 -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 +35 -1
- package/core/highlight/languages/go.js +28 -0
- package/core/highlight/languages/python.js +29 -0
- package/core/highlight/languages/rust.js +32 -0
- package/core/highlight/languages/yaml.js +23 -0
- package/core/highlight/registry.js +13 -2
- package/core/meta/build.js +126 -6
- 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-TPANLMLF.js → attributes-A423NX5J.js} +3 -3
- package/dist/chunks/{attributes-ADOKLKA7.js → attributes-F6UPIEVP.js} +2 -2
- package/dist/chunks/{attributes-STYCS3O5.js → attributes-GLYXGGAL.js} +3 -3
- package/dist/chunks/{attributes-5Q2WXGRC.js → attributes-UFTYOSAU.js} +20 -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-SRL6EWHP.js → chunk-2LSKX57P.js} +13 -11
- package/dist/chunks/{chunk-RSMRR27R.js → chunk-2TGCVDUL.js} +11 -9
- package/dist/chunks/{chunk-XIET2VSZ.js → chunk-5JWGUAPC.js} +17 -13
- package/dist/chunks/chunk-7YSO2OQ2.js +113 -0
- package/dist/chunks/{chunk-IEHKRARD.js → chunk-BHR3ZG6U.js} +10 -8
- package/dist/chunks/{chunk-J472ERN2.js → chunk-ERF5YVP4.js} +15 -4
- package/dist/chunks/{chunk-XYLJ2GCB.js → chunk-JMSIHEYX.js} +55 -7
- package/dist/chunks/{chunk-MKZP2TBH.js → chunk-L7ZGUU4D.js} +2 -2
- package/dist/chunks/chunk-TUGIPKW5.js +113 -0
- package/dist/chunks/go-HZ6XTFCK.js +31 -0
- package/dist/chunks/{highlight-GJHHV4KM.js → highlight-IBDX4XWS.js} +1 -1
- package/dist/chunks/{highlight-XTHRKBA3.js → highlight-M2ELQNYK.js} +1 -1
- package/dist/chunks/python-BMPKDKNO.js +32 -0
- package/dist/chunks/runtime-entry.js +1 -1
- package/dist/chunks/rust-2BWKI2MN.js +35 -0
- 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-2N2TYWOF.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-ITCLIC6T.js} +1 -1
- package/dist/chunks/{velin-code-block-TSUKPY4C.js → velin-code-block-ZGWG7JI5.js} +12 -3
- 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-KK7IDGTP.js +302 -0
- 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-form-summary-XRQ7COQH.js +273 -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-I75U6JF4.js → velin-lightbox-P725FLTY.js} +15 -5
- 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/chunks/yaml-O67LEQYT.js +26 -0
- package/dist/llms.txt +29 -7
- package/dist/search-index.json +182 -10
- package/dist/velin-agent.json +3997 -26
- package/dist/velinstyle-components.iife.js +1952 -287
- package/dist/velinstyle-components.js +1956 -287
- package/dist/velinstyle-components.min.js +267 -119
- package/dist/velinstyle.css +381 -67
- package/dist/velinstyle.d.ts +4 -0
- package/dist/velinstyle.min.css +1 -1
- package/package.json +26 -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/base/wc-placeholder.css +7 -0
- package/src/components/alert.css +22 -1
- package/src/components/calendar-dropzone.css +5 -0
- package/src/components/data-table.css +93 -0
- package/src/components/form-validation.css +40 -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 +3 -0
- package/dist/chunks/attributes-3BZLI7XF.js +0 -364
- package/dist/chunks/attributes-4N5JP4CG.js +0 -364
- 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-ZPSPKUYD.js +0 -109
- package/dist/chunks/velin-bottom-nav-N3DFQR66.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-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-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
|
@@ -146,7 +146,6 @@ var VelinModal = class extends HTMLElement {
|
|
|
146
146
|
this._previouslyFocused = saveFocus();
|
|
147
147
|
setBackgroundInert(this);
|
|
148
148
|
document.addEventListener("keydown", this._onKeydown);
|
|
149
|
-
document.body.style.overflow = "hidden";
|
|
150
149
|
requestAnimationFrame(() => {
|
|
151
150
|
const focusable = getFocusableElements(this.shadowRoot);
|
|
152
151
|
if (focusable.length > 0) focusable[0].focus();
|
|
@@ -154,8 +153,7 @@ var VelinModal = class extends HTMLElement {
|
|
|
154
153
|
}
|
|
155
154
|
_close() {
|
|
156
155
|
document.removeEventListener("keydown", this._onKeydown);
|
|
157
|
-
|
|
158
|
-
clearBackgroundInert();
|
|
156
|
+
clearBackgroundInert(this);
|
|
159
157
|
restoreFocus(this._previouslyFocused);
|
|
160
158
|
}
|
|
161
159
|
_onKeydown(event) {
|
|
@@ -167,7 +165,7 @@ var VelinModal = class extends HTMLElement {
|
|
|
167
165
|
}
|
|
168
166
|
disconnectedCallback() {
|
|
169
167
|
document.removeEventListener("keydown", this._onKeydown);
|
|
170
|
-
|
|
168
|
+
clearBackgroundInert(this);
|
|
171
169
|
}
|
|
172
170
|
};
|
|
173
171
|
customElements.define("velin-modal", VelinModal);
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-42VVPW6N.js";
|
|
7
7
|
import {
|
|
8
8
|
escapeHTML
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-L7ZGUU4D.js";
|
|
10
10
|
|
|
11
11
|
// components/velin-popover.js
|
|
12
12
|
var styles = `
|
|
@@ -65,23 +65,44 @@ var VelinPopover = class extends HTMLElement {
|
|
|
65
65
|
</div>
|
|
66
66
|
`;
|
|
67
67
|
const popoverEl = this.shadowRoot.querySelector(".popover");
|
|
68
|
-
if (!title) {
|
|
69
|
-
const
|
|
70
|
-
|
|
68
|
+
if (!title && popoverEl) {
|
|
69
|
+
const fallback = this.getAttribute("aria-label") || (role === "tooltip" ? "Tooltip" : "Popover");
|
|
70
|
+
popoverEl.setAttribute("aria-label", fallback);
|
|
71
71
|
}
|
|
72
72
|
const triggerSlot = this.shadowRoot.querySelector('slot[name="trigger"]');
|
|
73
73
|
triggerSlot.addEventListener("slotchange", () => this._wireTrigger(triggerType));
|
|
74
74
|
this._wireTrigger(triggerType);
|
|
75
75
|
}
|
|
76
|
+
_ensureTriggerInteractive(trigger) {
|
|
77
|
+
const tag = trigger.tagName;
|
|
78
|
+
if (tag !== "BUTTON" && tag !== "A" && trigger.getAttribute("role") !== "button") {
|
|
79
|
+
trigger.setAttribute("role", "button");
|
|
80
|
+
if (!trigger.hasAttribute("tabindex")) trigger.setAttribute("tabindex", "0");
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
_onTriggerKey(e) {
|
|
84
|
+
if (e.key === "Escape") {
|
|
85
|
+
this.close();
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
89
|
+
e.preventDefault();
|
|
90
|
+
this.toggle();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
76
93
|
_wireTrigger(triggerType) {
|
|
77
94
|
const trigger = this.shadowRoot.querySelector('slot[name="trigger"]')?.assignedElements()[0];
|
|
78
95
|
if (!trigger) return;
|
|
96
|
+
this._ensureTriggerInteractive(trigger);
|
|
79
97
|
const isHover = triggerType === "hover";
|
|
80
98
|
trigger.setAttribute("aria-haspopup", isHover ? "true" : "dialog");
|
|
81
99
|
trigger.setAttribute("aria-expanded", this.hasAttribute("open") ? "true" : "false");
|
|
82
100
|
if (this._isDialog) {
|
|
83
101
|
trigger.setAttribute("aria-controls", this._popoverId);
|
|
84
102
|
}
|
|
103
|
+
trigger.removeEventListener("keydown", this._onTriggerKeyBound);
|
|
104
|
+
this._onTriggerKeyBound = this._onTriggerKeyBound || this._onTriggerKey.bind(this);
|
|
105
|
+
trigger.addEventListener("keydown", this._onTriggerKeyBound);
|
|
85
106
|
if (triggerType === "click") {
|
|
86
107
|
trigger.onclick = () => this.toggle();
|
|
87
108
|
} else if (triggerType === "hover") {
|
|
@@ -284,7 +284,7 @@ function createSearch(config = {}) {
|
|
|
284
284
|
async function getWorker() {
|
|
285
285
|
if (!wantWorker || workerClient) return workerClient;
|
|
286
286
|
if (typeof Worker === "undefined") return null;
|
|
287
|
-
const { createSearchWorker } = await import("./worker-client-
|
|
287
|
+
const { createSearchWorker } = await import("./worker-client-MPT7PNQ4.js");
|
|
288
288
|
workerClient = createSearchWorker(config.workerUrl);
|
|
289
289
|
return workerClient;
|
|
290
290
|
}
|
|
@@ -427,7 +427,7 @@ var VelinSearch = class extends HTMLElement {
|
|
|
427
427
|
return;
|
|
428
428
|
}
|
|
429
429
|
if (!this._indexLoaded) await this._loadIndex();
|
|
430
|
-
const { groups } = this._search.query(q, {
|
|
430
|
+
const { groups } = await this._search.query(q, {
|
|
431
431
|
minChars: this.minChars,
|
|
432
432
|
fuzzy: this.fuzzy,
|
|
433
433
|
categories: this.categories || void 0,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
escapeHTMLAttribute,
|
|
3
3
|
sanitizeSearchUrl
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-L7ZGUU4D.js";
|
|
5
5
|
|
|
6
6
|
// core/search/types.js
|
|
7
7
|
var SEARCH_CATEGORIES = (
|
|
@@ -284,7 +284,7 @@ function createSearch(config = {}) {
|
|
|
284
284
|
async function getWorker() {
|
|
285
285
|
if (!wantWorker || workerClient) return workerClient;
|
|
286
286
|
if (typeof Worker === "undefined") return null;
|
|
287
|
-
const { createSearchWorker } = await import("./worker-client-
|
|
287
|
+
const { createSearchWorker } = await import("./worker-client-MPT7PNQ4.js");
|
|
288
288
|
workerClient = createSearchWorker(config.workerUrl);
|
|
289
289
|
return workerClient;
|
|
290
290
|
}
|
|
@@ -368,12 +368,13 @@ var VelinSearch = class extends HTMLElement {
|
|
|
368
368
|
_ensureMarkup() {
|
|
369
369
|
if (this.querySelector("[data-velin-search-input]")) return;
|
|
370
370
|
const ph = escapeHTMLAttribute(this.getAttribute("placeholder") || "Search\u2026");
|
|
371
|
+
const label = escapeHTMLAttribute(this.getAttribute("aria-label") || "Search");
|
|
371
372
|
this.innerHTML = `
|
|
372
373
|
<div class="velin-search">
|
|
373
374
|
<div class="velin-search__field">
|
|
374
375
|
<input type="search" class="velin-search__input" data-velin-search-input
|
|
375
376
|
placeholder="${ph}" autocomplete="off" role="combobox" aria-expanded="false"
|
|
376
|
-
aria-controls="${this._listId}" aria-autocomplete="list" />
|
|
377
|
+
aria-label="${label}" aria-controls="${this._listId}" aria-autocomplete="list" />
|
|
377
378
|
</div>
|
|
378
379
|
<div class="velin-search__status velin-visually-hidden" data-velin-search-status aria-live="polite" aria-atomic="true"></div>
|
|
379
380
|
<div class="velin-search__results" data-velin-search-results role="listbox"
|
|
@@ -426,7 +427,7 @@ var VelinSearch = class extends HTMLElement {
|
|
|
426
427
|
return;
|
|
427
428
|
}
|
|
428
429
|
if (!this._indexLoaded) await this._loadIndex();
|
|
429
|
-
const { groups } = this._search.query(q, {
|
|
430
|
+
const { groups } = await this._search.query(q, {
|
|
430
431
|
minChars: this.minChars,
|
|
431
432
|
fuzzy: this.fuzzy,
|
|
432
433
|
categories: this.categories || void 0,
|
|
@@ -88,7 +88,6 @@ var VelinSheet = class extends HTMLElement {
|
|
|
88
88
|
this._prev = saveFocus();
|
|
89
89
|
setBackgroundInert(this);
|
|
90
90
|
document.addEventListener("keydown", this._onKey);
|
|
91
|
-
document.body.style.overflow = "hidden";
|
|
92
91
|
requestAnimationFrame(() => {
|
|
93
92
|
const f = getFocusableElements(this.shadowRoot);
|
|
94
93
|
if (f.length) f[0].focus();
|
|
@@ -96,8 +95,7 @@ var VelinSheet = class extends HTMLElement {
|
|
|
96
95
|
}
|
|
97
96
|
_close() {
|
|
98
97
|
document.removeEventListener("keydown", this._onKey);
|
|
99
|
-
|
|
100
|
-
clearBackgroundInert();
|
|
98
|
+
clearBackgroundInert(this);
|
|
101
99
|
restoreFocus(this._prev);
|
|
102
100
|
}
|
|
103
101
|
_onKey(e) {
|
|
@@ -109,7 +107,7 @@ var VelinSheet = class extends HTMLElement {
|
|
|
109
107
|
}
|
|
110
108
|
disconnectedCallback() {
|
|
111
109
|
document.removeEventListener("keydown", this._onKey);
|
|
112
|
-
|
|
110
|
+
clearBackgroundInert(this);
|
|
113
111
|
}
|
|
114
112
|
};
|
|
115
113
|
customElements.define("velin-sheet", VelinSheet);
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "./chunk-42VVPW6N.js";
|
|
12
12
|
import {
|
|
13
13
|
escapeHTML
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-L7ZGUU4D.js";
|
|
15
15
|
|
|
16
16
|
// components/velin-sheet.js
|
|
17
17
|
var styles = `
|
|
@@ -88,7 +88,6 @@ var VelinSheet = class extends HTMLElement {
|
|
|
88
88
|
this._prev = saveFocus();
|
|
89
89
|
setBackgroundInert(this);
|
|
90
90
|
document.addEventListener("keydown", this._onKey);
|
|
91
|
-
document.body.style.overflow = "hidden";
|
|
92
91
|
requestAnimationFrame(() => {
|
|
93
92
|
const f = getFocusableElements(this.shadowRoot);
|
|
94
93
|
if (f.length) f[0].focus();
|
|
@@ -96,8 +95,7 @@ var VelinSheet = class extends HTMLElement {
|
|
|
96
95
|
}
|
|
97
96
|
_close() {
|
|
98
97
|
document.removeEventListener("keydown", this._onKey);
|
|
99
|
-
|
|
100
|
-
clearBackgroundInert();
|
|
98
|
+
clearBackgroundInert(this);
|
|
101
99
|
restoreFocus(this._prev);
|
|
102
100
|
}
|
|
103
101
|
_onKey(e) {
|
|
@@ -109,7 +107,7 @@ var VelinSheet = class extends HTMLElement {
|
|
|
109
107
|
}
|
|
110
108
|
disconnectedCallback() {
|
|
111
109
|
document.removeEventListener("keydown", this._onKey);
|
|
112
|
-
|
|
110
|
+
clearBackgroundInert(this);
|
|
113
111
|
}
|
|
114
112
|
};
|
|
115
113
|
customElements.define("velin-sheet", VelinSheet);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
escapeHTML
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-L7ZGUU4D.js";
|
|
4
4
|
|
|
5
5
|
// components/velin-stepper.js
|
|
6
6
|
var styles = `
|
|
@@ -52,10 +52,14 @@ var styles = `
|
|
|
52
52
|
.panels ::slotted(*) { display: none; }
|
|
53
53
|
.panels ::slotted([data-active]) { display: block; }
|
|
54
54
|
@media (prefers-reduced-motion: reduce) { .step__marker { transition: none; } }
|
|
55
|
+
.velin-sr-only {
|
|
56
|
+
position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
|
|
57
|
+
overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
|
|
58
|
+
}
|
|
55
59
|
`;
|
|
56
60
|
var VelinStepper = class extends HTMLElement {
|
|
57
61
|
static get observedAttributes() {
|
|
58
|
-
return ["active"];
|
|
62
|
+
return ["active", "aria-label", "labels"];
|
|
59
63
|
}
|
|
60
64
|
constructor() {
|
|
61
65
|
super();
|
|
@@ -68,15 +72,18 @@ var VelinStepper = class extends HTMLElement {
|
|
|
68
72
|
}
|
|
69
73
|
_buildSteps() {
|
|
70
74
|
const labels = (this.getAttribute("labels") || "").split(",").map((s) => s.trim());
|
|
75
|
+
const listLabel = this.getAttribute("aria-label") || "Progress";
|
|
71
76
|
const stepsHTML = labels.map((label, i) => {
|
|
72
77
|
const state = i < this._current ? "completed" : i === this._current ? "active" : "";
|
|
73
|
-
const
|
|
78
|
+
const status = i < this._current ? "completed" : i === this._current ? "current step" : "upcoming";
|
|
79
|
+
const marker = i < this._current ? '<span class="velin-sr-only">Completed</span><span aria-hidden="true">✓</span>' : `<span aria-hidden="true">${i + 1}</span>`;
|
|
74
80
|
const ariaCurrent = i === this._current ? ' aria-current="step"' : "";
|
|
75
|
-
|
|
81
|
+
const itemLabel = label ? `${label}, ${status}` : `Step ${i + 1}, ${status}`;
|
|
82
|
+
return `<div class="step ${state}" role="listitem" aria-label="${escapeHTML(itemLabel)}"${ariaCurrent}><span class="step__marker">${marker}</span><span class="step__label">${escapeHTML(label)}</span></div>`;
|
|
76
83
|
}).join("");
|
|
77
84
|
this.shadowRoot.innerHTML = `
|
|
78
85
|
<style>${styles}</style>
|
|
79
|
-
<div class="steps" role="list" aria-label="
|
|
86
|
+
<div class="steps" role="list" aria-label="${escapeHTML(listLabel)}" part="steps">${stepsHTML}</div>
|
|
80
87
|
<div class="panels" part="panels"><slot></slot></div>
|
|
81
88
|
`;
|
|
82
89
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
escapeHTML
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-L7ZGUU4D.js";
|
|
4
4
|
|
|
5
5
|
// components/velin-toast.js
|
|
6
6
|
var styles = `
|
|
@@ -80,8 +80,12 @@ var VelinToast = class extends HTMLElement {
|
|
|
80
80
|
this.setAttribute("aria-atomic", "true");
|
|
81
81
|
}
|
|
82
82
|
show({ message, type = "info", duration = 5e3 } = {}) {
|
|
83
|
+
const assertive = type === "error" || type === "danger";
|
|
84
|
+
this.setAttribute("role", assertive ? "alert" : "status");
|
|
85
|
+
this.setAttribute("aria-live", assertive ? "assertive" : "polite");
|
|
83
86
|
const toast = document.createElement("div");
|
|
84
87
|
toast.className = `toast toast--${type}`;
|
|
88
|
+
toast.setAttribute("role", assertive ? "alert" : "status");
|
|
85
89
|
toast.innerHTML = `
|
|
86
90
|
<div class="toast-content">${escapeHTML(message)}</div>
|
|
87
91
|
<button class="toast-close" aria-label="Close">×</button>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import {
|
|
2
|
+
tokenize
|
|
3
|
+
} from "./chunk-7FFAMRFV.js";
|
|
4
|
+
|
|
5
|
+
// core/highlight/languages/yaml.js
|
|
6
|
+
var RULES = [
|
|
7
|
+
{ type: "comment", re: /#[^\n]*/y },
|
|
8
|
+
// Document markers and block scalar indicators.
|
|
9
|
+
{ type: "punctuation", re: /^(?:---|\.\.\.)$/my },
|
|
10
|
+
{ type: "string", re: /"(?:\\.|[^"\\])*"/y },
|
|
11
|
+
{ type: "string", re: /'(?:''|[^'])*'/y },
|
|
12
|
+
// Keys are the primary structure in YAML, so they get the attr-name colour.
|
|
13
|
+
{ type: "attr-name", re: /^[ \t]*-?[ \t]*[\w.$-]+(?=[ \t]*:(?:[ \t]|$))/my },
|
|
14
|
+
{ type: "punctuation", re: /^[ \t]*-(?=[ \t]|$)/my },
|
|
15
|
+
{ type: "keyword", re: /\b(?:true|false|null|yes|no|on|off|~)\b/yi },
|
|
16
|
+
{ type: "number", re: /\b-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b/y },
|
|
17
|
+
// Anchors, aliases, tags and block scalar headers.
|
|
18
|
+
{ type: "operator", re: /[&*]\w+|![\w/!-]*|[|>][+-]?\d*(?=\s*$)/my },
|
|
19
|
+
{ type: "punctuation", re: /[:,[\]{}]/y }
|
|
20
|
+
];
|
|
21
|
+
function lexYaml(code) {
|
|
22
|
+
return tokenize(code, RULES);
|
|
23
|
+
}
|
|
24
|
+
export {
|
|
25
|
+
lexYaml as default
|
|
26
|
+
};
|
package/dist/llms.txt
CHANGED
|
@@ -1,30 +1,47 @@
|
|
|
1
|
-
# VelinStyle 1.
|
|
1
|
+
# VelinStyle 1.2.0
|
|
2
2
|
|
|
3
|
-
> VelinStyle is
|
|
3
|
+
> VelinStyle is a CSS framework with WCAG 2.2 AAA-oriented defaults, native JavaScript runtime, and Web Components.
|
|
4
4
|
> Full machine context: https://velinstyle.info/dist/velin-agent.json
|
|
5
5
|
> MIME: application/vnd.velinstyle.meta+json
|
|
6
6
|
|
|
7
7
|
## Framework
|
|
8
8
|
- npm: @birdapi/velinstyle
|
|
9
|
-
- VelinStyle is
|
|
10
|
-
-
|
|
9
|
+
- VelinStyle is a CSS framework with WCAG 2.2 AAA-oriented defaults, native JavaScript runtime, and Web Components.
|
|
10
|
+
- Pipeline: Core Foundation → Design System → Knowledge Graph → Prompt Engine → Review Engine → AI Metadata
|
|
11
|
+
- Maturity: CSS/Web Components/runtime = stable; plan/review, knowledge graph, page/section registry, agent metadata = beta/foundation (seed, expanding); Studio + Utility Engine generator = planned
|
|
12
|
+
- Components: 40 canonical Web Components (`velin-*`); 42 lazy-loader entries
|
|
13
|
+
- Knowledge graph: 17 component nodes, 17 page types, 12 sections, 3 design constraint packs
|
|
11
14
|
- HTML attributes: 27 `velin-*` bridges
|
|
12
|
-
- CLI: velinstyle (scan, scaffold, docs generate, search index, meta)
|
|
15
|
+
- CLI: velinstyle (scan, scaffold, plan, review, docs generate, search index, meta)
|
|
16
|
+
|
|
17
|
+
## Agent briefing
|
|
18
|
+
- Treat plan/review/knowledge graph as beta foundation — usable, not a finished AI design system.
|
|
19
|
+
- Build pages with plan-first flow: analyze prompt → page registry → sections → design constraints → HTML → review.
|
|
20
|
+
- Prefer tokens (`--velin-color-*`, `--velin-space-*`) over raw hex.
|
|
21
|
+
- One H1 per page; form fields need labels + `velin-form-summary` when validating.
|
|
22
|
+
- Hero: max 2 CTAs; FAQ uses disclosure (`velin-accordion` / details).
|
|
23
|
+
- Do not invent non-`velin-*` utility classes.
|
|
24
|
+
- Prefer registry-backed skills/workflows (`velinstyle skills ...`, `velinstyle workflow ...`) before ad-hoc orchestration.
|
|
13
25
|
|
|
14
26
|
## Conventions
|
|
15
|
-
- Positioning: VelinStyle is
|
|
27
|
+
- Positioning: VelinStyle is a CSS framework with WCAG 2.2 AAA-oriented defaults, native JavaScript runtime, and Web Components — not a JS-only library or a utility-only CSS kit.
|
|
16
28
|
- Use only velin-* utility classes and documented Web Components.
|
|
17
29
|
- Prefer data-velin-theme on <html> for theme switching.
|
|
18
30
|
- Run velinstyle scan on generated HTML before shipping.
|
|
31
|
+
- Prefer registry-first skills (`velinstyle skills`) and workflow graphs (`velinstyle workflow`) before inventing custom pipelines.
|
|
32
|
+
- Honor skill status, confidence, compatibility, and onlyIf predicates when automating.
|
|
19
33
|
- Do not put secrets, API keys, or raw emails in velin-meta or page meta.
|
|
20
34
|
- Resolve doc links against docs root (/docs/), not the current page folder.
|
|
21
35
|
|
|
22
36
|
## Key guides
|
|
23
37
|
- [Velin-Meta](https://velinstyle.info/docs/guides/velin-meta.html)
|
|
38
|
+
- [AI Skills](https://velinstyle.info/docs/guides/ai-skills.html)
|
|
24
39
|
- [VelinSearch](https://velinstyle.info/docs/guides/velin-search.html)
|
|
25
40
|
- [Syntax highlighting](https://velinstyle.info/docs/guides/syntax-highlight.html)
|
|
26
41
|
- [Prompt scaffolding](https://velinstyle.info/docs/guides/prompt-scaffolding.html)
|
|
27
42
|
- [API reference (generated)](https://velinstyle.info/docs/guides/api-reference.html)
|
|
43
|
+
- North star: VELINSTYLE_2030.md
|
|
44
|
+
- Architecture: ARCHITECTURE.md
|
|
28
45
|
|
|
29
46
|
## Generated reference
|
|
30
47
|
- [Components index](https://velinstyle.info/docs/generated/components/)
|
|
@@ -34,7 +51,12 @@
|
|
|
34
51
|
|
|
35
52
|
## Usage for agents
|
|
36
53
|
```
|
|
54
|
+
npx velinstyle plan "Steuerberater Landingpage mit Kontaktformular"
|
|
55
|
+
npx velinstyle scaffold "Steuerberater Landingpage mit Kontaktformular" -o out.html --json
|
|
56
|
+
npx velinstyle review out.html --json
|
|
37
57
|
npx velinstyle meta
|
|
38
58
|
npx velinstyle docs generate
|
|
39
|
-
npx velinstyle
|
|
59
|
+
npx velinstyle skills list --capability review
|
|
60
|
+
npx velinstyle skills install frontend
|
|
61
|
+
npx velinstyle workflow landingpage --json
|
|
40
62
|
```
|