@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
|
@@ -0,0 +1,622 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"components": [
|
|
4
|
+
{
|
|
5
|
+
"id": "css-button",
|
|
6
|
+
"kind": "css-component",
|
|
7
|
+
"classPrefix": "velin-btn",
|
|
8
|
+
"category": "actions",
|
|
9
|
+
"subcategory": "button",
|
|
10
|
+
"purpose": "Primary interactive control for actions and form submit.",
|
|
11
|
+
"family": "actions",
|
|
12
|
+
"maturity": "core",
|
|
13
|
+
"recommendedPages": ["landing", "saas", "dashboard", "shop"],
|
|
14
|
+
"recommendedSections": ["hero", "cta", "contact", "pricing"],
|
|
15
|
+
"compatibleWith": ["css-card", "css-input", "velin-form-summary"],
|
|
16
|
+
"incompatibleWith": [],
|
|
17
|
+
"accessibility": { "role": "native button/link", "keyboard": "Enter/Space on button" },
|
|
18
|
+
"seo": { "impact": "low", "notes": "CTA copy affects conversion, not crawl structure" },
|
|
19
|
+
"performance": { "cost": "css-only" },
|
|
20
|
+
"variants": ["primary", "secondary", "ghost", "danger", "sm", "lg"],
|
|
21
|
+
"density": ["comfortable", "default", "compact"],
|
|
22
|
+
"themeSupport": ["light", "dark", "system"],
|
|
23
|
+
"motion": { "hover": true, "reducedMotionSafe": true },
|
|
24
|
+
"examples": ["<button class=\"velin-btn velin-btn--primary\">Save</button>"],
|
|
25
|
+
"promptKeywords": ["button", "cta", "call to action", "submit"],
|
|
26
|
+
"designIntelligence": {
|
|
27
|
+
"visualWeight": 4,
|
|
28
|
+
"importance": "primary",
|
|
29
|
+
"hierarchy": "action",
|
|
30
|
+
"spacingRules": ["pair with gap-3 or gap-4 in CTA groups"],
|
|
31
|
+
"typographyRules": ["label ≤ 3 words preferred"],
|
|
32
|
+
"animationRules": ["no infinite pulse on primary CTA"],
|
|
33
|
+
"colorRules": ["primary uses --velin-color-primary + on-primary text"],
|
|
34
|
+
"eyeFlow": "place primary CTA after supporting copy",
|
|
35
|
+
"compositionRules": ["max 2 CTAs in hero"],
|
|
36
|
+
"commonMistakes": ["three equal CTAs", "low contrast ghost on muted"],
|
|
37
|
+
"bestPractices": ["one primary + optional secondary"]
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "css-card",
|
|
42
|
+
"kind": "css-component",
|
|
43
|
+
"classPrefix": "velin-card",
|
|
44
|
+
"category": "content",
|
|
45
|
+
"subcategory": "card",
|
|
46
|
+
"purpose": "Grouped content surface for features, services, pricing tiers.",
|
|
47
|
+
"family": "surfaces",
|
|
48
|
+
"maturity": "core",
|
|
49
|
+
"recommendedPages": ["landing", "saas", "agency", "portfolio"],
|
|
50
|
+
"recommendedSections": ["services", "benefits", "pricing"],
|
|
51
|
+
"compatibleWith": ["css-button", "css-badge", "velin-icon"],
|
|
52
|
+
"incompatibleWith": [],
|
|
53
|
+
"accessibility": { "notes": "Heading inside card; don't nest interactive without care" },
|
|
54
|
+
"seo": { "impact": "medium", "notes": "Card headings help section semantics" },
|
|
55
|
+
"performance": { "cost": "css-only" },
|
|
56
|
+
"variants": ["raised", "bordered"],
|
|
57
|
+
"density": ["comfortable", "default", "compact"],
|
|
58
|
+
"themeSupport": ["light", "dark"],
|
|
59
|
+
"motion": { "reducedMotionSafe": true },
|
|
60
|
+
"examples": ["<article class=\"velin-card\">…</article>"],
|
|
61
|
+
"promptKeywords": ["card", "feature", "service", "tile"],
|
|
62
|
+
"designIntelligence": {
|
|
63
|
+
"visualWeight": 3,
|
|
64
|
+
"importance": "secondary",
|
|
65
|
+
"hierarchy": "section-item",
|
|
66
|
+
"spacingRules": ["grid gap-4 or gap-6"],
|
|
67
|
+
"typographyRules": ["H3 title + short body"],
|
|
68
|
+
"animationRules": ["optional entrance; respect reduced motion"],
|
|
69
|
+
"colorRules": ["raised surface + text tokens"],
|
|
70
|
+
"eyeFlow": "scan titles across grid first",
|
|
71
|
+
"compositionRules": ["2–4 columns desktop; 1 mobile"],
|
|
72
|
+
"commonMistakes": ["uneven card heights with sparse content", "too many cards above fold"],
|
|
73
|
+
"bestPractices": ["equal structure: icon, title, text, optional link"]
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "css-input",
|
|
78
|
+
"kind": "css-component",
|
|
79
|
+
"classPrefix": "velin-input",
|
|
80
|
+
"category": "forms",
|
|
81
|
+
"subcategory": "field",
|
|
82
|
+
"purpose": "Text entry fields with labels for forms.",
|
|
83
|
+
"family": "forms",
|
|
84
|
+
"maturity": "core",
|
|
85
|
+
"recommendedPages": ["landing", "saas", "dashboard", "shop"],
|
|
86
|
+
"recommendedSections": ["contact", "login"],
|
|
87
|
+
"compatibleWith": ["velin-form-summary", "css-button"],
|
|
88
|
+
"incompatibleWith": [],
|
|
89
|
+
"accessibility": { "notes": "Visible label required; wire aria-invalid via form-summary" },
|
|
90
|
+
"seo": { "impact": "low" },
|
|
91
|
+
"performance": { "cost": "css-only" },
|
|
92
|
+
"variants": ["default", "invalid"],
|
|
93
|
+
"density": ["default", "compact", "data-dense"],
|
|
94
|
+
"themeSupport": ["light", "dark"],
|
|
95
|
+
"motion": {},
|
|
96
|
+
"examples": ["<label>Name<input class=\"velin-input\"></label>"],
|
|
97
|
+
"promptKeywords": ["input", "form field", "text field"],
|
|
98
|
+
"designIntelligence": {
|
|
99
|
+
"visualWeight": 2,
|
|
100
|
+
"importance": "primary",
|
|
101
|
+
"hierarchy": "form-control",
|
|
102
|
+
"spacingRules": ["stack fields with gap-4"],
|
|
103
|
+
"typographyRules": ["label above field"],
|
|
104
|
+
"animationRules": [],
|
|
105
|
+
"colorRules": ["invalid uses danger tokens"],
|
|
106
|
+
"eyeFlow": "label → field → help → errors summary",
|
|
107
|
+
"compositionRules": ["group related fields"],
|
|
108
|
+
"commonMistakes": ["placeholder-only labels"],
|
|
109
|
+
"bestPractices": ["pair with velin-form-summary"]
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"id": "css-alert",
|
|
114
|
+
"kind": "css-component",
|
|
115
|
+
"classPrefix": "velin-alert",
|
|
116
|
+
"category": "feedback",
|
|
117
|
+
"subcategory": "alert",
|
|
118
|
+
"purpose": "Inline status messages.",
|
|
119
|
+
"family": "feedback",
|
|
120
|
+
"maturity": "core",
|
|
121
|
+
"recommendedPages": ["dashboard", "saas", "docs"],
|
|
122
|
+
"recommendedSections": ["contact", "onboarding"],
|
|
123
|
+
"compatibleWith": ["velin-form-summary"],
|
|
124
|
+
"incompatibleWith": [],
|
|
125
|
+
"accessibility": { "role": "status/alert depending on urgency" },
|
|
126
|
+
"seo": { "impact": "none" },
|
|
127
|
+
"performance": { "cost": "css-only" },
|
|
128
|
+
"variants": ["info", "success", "warning", "danger"],
|
|
129
|
+
"density": ["default", "compact"],
|
|
130
|
+
"themeSupport": ["light", "dark"],
|
|
131
|
+
"motion": {},
|
|
132
|
+
"examples": ["<div class=\"velin-alert velin-alert--info\">…</div>"],
|
|
133
|
+
"promptKeywords": ["alert", "banner", "notice"],
|
|
134
|
+
"designIntelligence": {
|
|
135
|
+
"visualWeight": 3,
|
|
136
|
+
"importance": "secondary",
|
|
137
|
+
"hierarchy": "feedback",
|
|
138
|
+
"spacingRules": ["margin-block before forms"],
|
|
139
|
+
"typographyRules": ["concise message"],
|
|
140
|
+
"animationRules": [],
|
|
141
|
+
"colorRules": ["semantic status tokens"],
|
|
142
|
+
"eyeFlow": "near the related control",
|
|
143
|
+
"compositionRules": ["one alert per concern"],
|
|
144
|
+
"commonMistakes": ["using alert for marketing hero"],
|
|
145
|
+
"bestPractices": ["pair with actionable next step"]
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"id": "css-nav",
|
|
150
|
+
"kind": "css-component",
|
|
151
|
+
"classPrefix": "velin-nav",
|
|
152
|
+
"category": "navigation",
|
|
153
|
+
"subcategory": "nav",
|
|
154
|
+
"purpose": "Site or app navigation chrome.",
|
|
155
|
+
"family": "navigation",
|
|
156
|
+
"maturity": "core",
|
|
157
|
+
"recommendedPages": ["landing", "corporate", "docs", "dashboard"],
|
|
158
|
+
"recommendedSections": ["navbar"],
|
|
159
|
+
"compatibleWith": ["velin-theme-toggle", "velin-search"],
|
|
160
|
+
"incompatibleWith": [],
|
|
161
|
+
"accessibility": { "notes": "Landmark nav; skip link on pages" },
|
|
162
|
+
"seo": { "impact": "high", "notes": "Primary internal links" },
|
|
163
|
+
"performance": { "cost": "css-only" },
|
|
164
|
+
"variants": ["header", "pills"],
|
|
165
|
+
"density": ["comfortable", "default", "compact"],
|
|
166
|
+
"themeSupport": ["light", "dark"],
|
|
167
|
+
"motion": {},
|
|
168
|
+
"examples": ["<nav class=\"velin-nav\">…</nav>"],
|
|
169
|
+
"promptKeywords": ["navbar", "navigation", "header menu"],
|
|
170
|
+
"designIntelligence": {
|
|
171
|
+
"visualWeight": 3,
|
|
172
|
+
"importance": "primary",
|
|
173
|
+
"hierarchy": "chrome",
|
|
174
|
+
"spacingRules": ["sticky optional; padding-inline token"],
|
|
175
|
+
"typographyRules": ["short labels"],
|
|
176
|
+
"animationRules": [],
|
|
177
|
+
"colorRules": ["base or raised surface"],
|
|
178
|
+
"eyeFlow": "logo → links → CTA",
|
|
179
|
+
"compositionRules": ["one primary nav CTA max"],
|
|
180
|
+
"commonMistakes": ["too many top-level items"],
|
|
181
|
+
"bestPractices": ["5–7 primary links"]
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"id": "velin-modal",
|
|
186
|
+
"kind": "web-component",
|
|
187
|
+
"tag": "velin-modal",
|
|
188
|
+
"category": "overlays",
|
|
189
|
+
"subcategory": "modal",
|
|
190
|
+
"purpose": "Blocking dialog overlay for focused tasks.",
|
|
191
|
+
"family": "overlays",
|
|
192
|
+
"maturity": "core",
|
|
193
|
+
"recommendedPages": ["saas", "dashboard", "shop"],
|
|
194
|
+
"recommendedSections": [],
|
|
195
|
+
"compatibleWith": ["css-button", "velin-form-summary"],
|
|
196
|
+
"incompatibleWith": ["velin-drawer", "velin-sheet"],
|
|
197
|
+
"accessibility": { "focusTrap": true, "escapeCloses": true, "inertBackground": true },
|
|
198
|
+
"seo": { "impact": "none", "notes": "Do not put primary SEO content only in modal" },
|
|
199
|
+
"performance": { "cost": "lazy-ok" },
|
|
200
|
+
"variants": ["open"],
|
|
201
|
+
"density": ["default"],
|
|
202
|
+
"themeSupport": ["light", "dark"],
|
|
203
|
+
"motion": { "reducedMotionSafe": true },
|
|
204
|
+
"examples": ["<velin-modal><h2 slot=\"title\">…</h2></velin-modal>"],
|
|
205
|
+
"promptKeywords": ["modal", "dialog overlay", "popup"],
|
|
206
|
+
"designIntelligence": {
|
|
207
|
+
"visualWeight": 5,
|
|
208
|
+
"importance": "primary",
|
|
209
|
+
"hierarchy": "overlay",
|
|
210
|
+
"spacingRules": ["comfortable body padding"],
|
|
211
|
+
"typographyRules": ["clear title"],
|
|
212
|
+
"animationRules": ["short open/close; respect reduced motion"],
|
|
213
|
+
"colorRules": ["overlay surface + dimmed backdrop"],
|
|
214
|
+
"eyeFlow": "title → body → actions",
|
|
215
|
+
"compositionRules": ["prefer modal for blocking confirmations"],
|
|
216
|
+
"commonMistakes": ["stacking multiple modals", "missing close affordance"],
|
|
217
|
+
"bestPractices": ["use focus-manager lifecycle"]
|
|
218
|
+
},
|
|
219
|
+
"api": { "events": ["velin-close"], "methods": ["open", "close"] }
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"id": "velin-dialog",
|
|
223
|
+
"kind": "web-component",
|
|
224
|
+
"tag": "velin-dialog",
|
|
225
|
+
"category": "overlays",
|
|
226
|
+
"subcategory": "dialog",
|
|
227
|
+
"purpose": "Native dialog-based prompts and confirms.",
|
|
228
|
+
"family": "overlays",
|
|
229
|
+
"maturity": "core",
|
|
230
|
+
"recommendedPages": ["saas", "dashboard"],
|
|
231
|
+
"recommendedSections": [],
|
|
232
|
+
"compatibleWith": ["css-button"],
|
|
233
|
+
"incompatibleWith": [],
|
|
234
|
+
"accessibility": { "nativeDialog": true },
|
|
235
|
+
"seo": { "impact": "none" },
|
|
236
|
+
"performance": { "cost": "lazy-ok" },
|
|
237
|
+
"variants": [],
|
|
238
|
+
"density": ["default"],
|
|
239
|
+
"themeSupport": ["light", "dark"],
|
|
240
|
+
"motion": {},
|
|
241
|
+
"examples": ["<velin-dialog></velin-dialog>"],
|
|
242
|
+
"promptKeywords": ["confirm dialog", "prompt dialog"],
|
|
243
|
+
"designIntelligence": {
|
|
244
|
+
"visualWeight": 5,
|
|
245
|
+
"importance": "primary",
|
|
246
|
+
"hierarchy": "overlay",
|
|
247
|
+
"spacingRules": [],
|
|
248
|
+
"typographyRules": [],
|
|
249
|
+
"animationRules": [],
|
|
250
|
+
"colorRules": [],
|
|
251
|
+
"eyeFlow": "message → actions",
|
|
252
|
+
"compositionRules": ["use for confirm/prompt; modal for richer layouts"],
|
|
253
|
+
"commonMistakes": ["listening only to deprecated velin-dialog-close"],
|
|
254
|
+
"bestPractices": ["listen to velin-close"]
|
|
255
|
+
},
|
|
256
|
+
"api": { "events": ["velin-close", "velin-dialog-close"] }
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"id": "velin-accordion",
|
|
260
|
+
"kind": "web-component",
|
|
261
|
+
"tag": "velin-accordion",
|
|
262
|
+
"category": "disclosure",
|
|
263
|
+
"subcategory": "accordion",
|
|
264
|
+
"purpose": "FAQ and progressive disclosure of related panels.",
|
|
265
|
+
"family": "disclosure",
|
|
266
|
+
"maturity": "core",
|
|
267
|
+
"recommendedPages": ["landing", "docs", "saas", "lawyer", "healthcare"],
|
|
268
|
+
"recommendedSections": ["faq"],
|
|
269
|
+
"compatibleWith": ["css-card"],
|
|
270
|
+
"incompatibleWith": [],
|
|
271
|
+
"accessibility": { "keyboard": "arrow keys / enter within pattern" },
|
|
272
|
+
"seo": { "impact": "medium", "notes": "Keep question text in light DOM when possible" },
|
|
273
|
+
"performance": { "cost": "lazy-ok" },
|
|
274
|
+
"variants": [],
|
|
275
|
+
"density": ["comfortable", "default"],
|
|
276
|
+
"themeSupport": ["light", "dark"],
|
|
277
|
+
"motion": { "reducedMotionSafe": true },
|
|
278
|
+
"examples": ["<velin-accordion>…</velin-accordion>"],
|
|
279
|
+
"promptKeywords": ["faq", "accordion", "disclosure"],
|
|
280
|
+
"designIntelligence": {
|
|
281
|
+
"visualWeight": 2,
|
|
282
|
+
"importance": "secondary",
|
|
283
|
+
"hierarchy": "section-body",
|
|
284
|
+
"spacingRules": ["stack items tightly"],
|
|
285
|
+
"typographyRules": ["questions as clear interrogatives"],
|
|
286
|
+
"animationRules": ["expand/collapse brief"],
|
|
287
|
+
"colorRules": ["base/raised"],
|
|
288
|
+
"eyeFlow": "scan questions vertically",
|
|
289
|
+
"compositionRules": ["use in FAQ section after social proof"],
|
|
290
|
+
"commonMistakes": ["marketing paragraphs as 'questions'"],
|
|
291
|
+
"bestPractices": ["5–8 high-intent FAQs"]
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"id": "velin-form-summary",
|
|
296
|
+
"kind": "web-component",
|
|
297
|
+
"tag": "velin-form-summary",
|
|
298
|
+
"category": "forms",
|
|
299
|
+
"subcategory": "validation",
|
|
300
|
+
"purpose": "Accessible error summary for forms.",
|
|
301
|
+
"family": "forms",
|
|
302
|
+
"maturity": "core",
|
|
303
|
+
"recommendedPages": ["landing", "saas", "shop"],
|
|
304
|
+
"recommendedSections": ["contact"],
|
|
305
|
+
"compatibleWith": ["css-input", "css-button"],
|
|
306
|
+
"incompatibleWith": [],
|
|
307
|
+
"accessibility": { "role": "alert", "wcag": ["3.3.1", "3.3.3"] },
|
|
308
|
+
"seo": { "impact": "none" },
|
|
309
|
+
"performance": { "cost": "lazy-ok" },
|
|
310
|
+
"variants": [],
|
|
311
|
+
"density": ["default"],
|
|
312
|
+
"themeSupport": ["light", "dark"],
|
|
313
|
+
"motion": {},
|
|
314
|
+
"examples": ["<velin-form-summary></velin-form-summary>"],
|
|
315
|
+
"promptKeywords": ["form errors", "validation summary", "contact form"],
|
|
316
|
+
"designIntelligence": {
|
|
317
|
+
"visualWeight": 4,
|
|
318
|
+
"importance": "primary",
|
|
319
|
+
"hierarchy": "form-feedback",
|
|
320
|
+
"spacingRules": ["place before fields or at top of form"],
|
|
321
|
+
"typographyRules": ["list each invalid field"],
|
|
322
|
+
"animationRules": [],
|
|
323
|
+
"colorRules": ["danger tokens"],
|
|
324
|
+
"eyeFlow": "summary → first invalid field",
|
|
325
|
+
"compositionRules": ["required on contact/checkout forms"],
|
|
326
|
+
"commonMistakes": ["native-only bubbles without summary"],
|
|
327
|
+
"bestPractices": ["wire aria-invalid via component"]
|
|
328
|
+
}
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"id": "velin-theme-toggle",
|
|
332
|
+
"kind": "web-component",
|
|
333
|
+
"tag": "velin-theme-toggle",
|
|
334
|
+
"category": "theming",
|
|
335
|
+
"subcategory": "toggle",
|
|
336
|
+
"purpose": "Switch light/dark theme via data-velin-theme.",
|
|
337
|
+
"family": "theming",
|
|
338
|
+
"maturity": "core",
|
|
339
|
+
"recommendedPages": ["docs", "saas", "dashboard"],
|
|
340
|
+
"recommendedSections": ["navbar"],
|
|
341
|
+
"compatibleWith": ["css-nav"],
|
|
342
|
+
"incompatibleWith": [],
|
|
343
|
+
"accessibility": { "notes": "Accessible name for toggle" },
|
|
344
|
+
"seo": { "impact": "none" },
|
|
345
|
+
"performance": { "cost": "lazy-ok" },
|
|
346
|
+
"variants": [],
|
|
347
|
+
"density": ["default", "compact"],
|
|
348
|
+
"themeSupport": ["light", "dark", "system"],
|
|
349
|
+
"motion": {},
|
|
350
|
+
"examples": ["<velin-theme-toggle></velin-theme-toggle>"],
|
|
351
|
+
"promptKeywords": ["dark mode", "theme toggle"],
|
|
352
|
+
"designIntelligence": {
|
|
353
|
+
"visualWeight": 1,
|
|
354
|
+
"importance": "tertiary",
|
|
355
|
+
"hierarchy": "chrome",
|
|
356
|
+
"spacingRules": [],
|
|
357
|
+
"typographyRules": [],
|
|
358
|
+
"animationRules": [],
|
|
359
|
+
"colorRules": [],
|
|
360
|
+
"eyeFlow": "corner of header",
|
|
361
|
+
"compositionRules": ["header actions cluster"],
|
|
362
|
+
"commonMistakes": ["forcing dark without attribute contract"],
|
|
363
|
+
"bestPractices": ["follow ADR 0011 precedence"]
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"id": "velin-data-table",
|
|
368
|
+
"kind": "web-component",
|
|
369
|
+
"tag": "velin-data-table",
|
|
370
|
+
"category": "data",
|
|
371
|
+
"subcategory": "table",
|
|
372
|
+
"purpose": "Progressive enhancement for sortable, filterable, paginated tables.",
|
|
373
|
+
"family": "data-display",
|
|
374
|
+
"maturity": "core",
|
|
375
|
+
"recommendedPages": ["dashboard", "crm", "erp", "docs"],
|
|
376
|
+
"recommendedSections": ["navbar"],
|
|
377
|
+
"compatibleWith": ["css-input", "css-badge", "velin-form-summary"],
|
|
378
|
+
"incompatibleWith": [],
|
|
379
|
+
"accessibility": { "notes": "Requires caption/aria-label; aria-sort on headers" },
|
|
380
|
+
"seo": { "impact": "low", "notes": "Often noindex app surfaces" },
|
|
381
|
+
"performance": { "cost": "dom-rows" },
|
|
382
|
+
"variants": ["sortable", "filterable", "paginated"],
|
|
383
|
+
"density": ["default", "compact", "data-dense"],
|
|
384
|
+
"themeSupport": ["light", "dark"],
|
|
385
|
+
"motion": { "reducedMotionSafe": true },
|
|
386
|
+
"examples": ["<velin-data-table><table>…</table></velin-data-table>"],
|
|
387
|
+
"promptKeywords": ["data table", "sortable table", "filter table"],
|
|
388
|
+
"designIntelligence": {
|
|
389
|
+
"visualWeight": 4,
|
|
390
|
+
"importance": "primary",
|
|
391
|
+
"hierarchy": "main",
|
|
392
|
+
"spacingRules": ["full-bleed in content column"],
|
|
393
|
+
"typographyRules": ["tabular nums for numeric columns"],
|
|
394
|
+
"animationRules": [],
|
|
395
|
+
"colorRules": ["zebra optional via tokens"],
|
|
396
|
+
"eyeFlow": "toolbar → headers → rows",
|
|
397
|
+
"compositionRules": ["pair filter input above table"],
|
|
398
|
+
"commonMistakes": ["missing caption", "icon-only sort without name"],
|
|
399
|
+
"bestPractices": ["announce sort/filter changes"]
|
|
400
|
+
}
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
"id": "velin-search",
|
|
404
|
+
"kind": "web-component",
|
|
405
|
+
"tag": "velin-search",
|
|
406
|
+
"category": "navigation",
|
|
407
|
+
"subcategory": "search",
|
|
408
|
+
"purpose": "Documentation and site search against a JSON index.",
|
|
409
|
+
"family": "navigation",
|
|
410
|
+
"maturity": "core",
|
|
411
|
+
"recommendedPages": ["docs", "saas", "corporate"],
|
|
412
|
+
"recommendedSections": ["navbar"],
|
|
413
|
+
"compatibleWith": ["css-nav", "velin-theme-toggle"],
|
|
414
|
+
"incompatibleWith": [],
|
|
415
|
+
"accessibility": { "notes": "Combobox pattern; keyboard results" },
|
|
416
|
+
"seo": { "impact": "low" },
|
|
417
|
+
"performance": { "cost": "index-load" },
|
|
418
|
+
"variants": [],
|
|
419
|
+
"density": ["default", "compact"],
|
|
420
|
+
"themeSupport": ["light", "dark"],
|
|
421
|
+
"motion": {},
|
|
422
|
+
"examples": ["<velin-search index-url=\"/dist/search-index.json\"></velin-search>"],
|
|
423
|
+
"promptKeywords": ["search", "docs search", "site search"],
|
|
424
|
+
"designIntelligence": {
|
|
425
|
+
"visualWeight": 2,
|
|
426
|
+
"importance": "secondary",
|
|
427
|
+
"hierarchy": "chrome",
|
|
428
|
+
"spacingRules": ["header cluster"],
|
|
429
|
+
"typographyRules": [],
|
|
430
|
+
"animationRules": [],
|
|
431
|
+
"colorRules": ["surface raised for results"],
|
|
432
|
+
"eyeFlow": "header center/right",
|
|
433
|
+
"compositionRules": ["one search per chrome"],
|
|
434
|
+
"commonMistakes": ["blocking main thread with huge index"],
|
|
435
|
+
"bestPractices": ["relative URLs in index"]
|
|
436
|
+
}
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
"id": "css-badge",
|
|
440
|
+
"kind": "css-component",
|
|
441
|
+
"classPrefix": "velin-badge",
|
|
442
|
+
"category": "feedback",
|
|
443
|
+
"subcategory": "badge",
|
|
444
|
+
"purpose": "Compact status and count labels.",
|
|
445
|
+
"family": "feedback",
|
|
446
|
+
"maturity": "core",
|
|
447
|
+
"recommendedPages": ["dashboard", "saas", "shop"],
|
|
448
|
+
"recommendedSections": ["services", "pricing", "navbar"],
|
|
449
|
+
"compatibleWith": ["css-card", "css-nav", "css-button"],
|
|
450
|
+
"incompatibleWith": [],
|
|
451
|
+
"accessibility": { "notes": "Do not rely on color alone" },
|
|
452
|
+
"seo": { "impact": "none" },
|
|
453
|
+
"performance": { "cost": "css-only" },
|
|
454
|
+
"variants": ["success", "warning", "danger", "info"],
|
|
455
|
+
"density": ["default", "compact"],
|
|
456
|
+
"themeSupport": ["light", "dark"],
|
|
457
|
+
"motion": {},
|
|
458
|
+
"examples": ["<span class=\"velin-badge\">New</span>"],
|
|
459
|
+
"promptKeywords": ["badge", "status label", "pill"],
|
|
460
|
+
"designIntelligence": {
|
|
461
|
+
"visualWeight": 1,
|
|
462
|
+
"importance": "tertiary",
|
|
463
|
+
"hierarchy": "meta",
|
|
464
|
+
"spacingRules": ["inline with title"],
|
|
465
|
+
"typographyRules": ["short labels"],
|
|
466
|
+
"animationRules": [],
|
|
467
|
+
"colorRules": ["semantic tokens"],
|
|
468
|
+
"eyeFlow": "adjacent to title",
|
|
469
|
+
"compositionRules": ["one badge cluster per card"],
|
|
470
|
+
"commonMistakes": ["color-only meaning"],
|
|
471
|
+
"bestPractices": ["pair with text"]
|
|
472
|
+
}
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
"id": "velin-drawer",
|
|
476
|
+
"kind": "web-component",
|
|
477
|
+
"tag": "velin-drawer",
|
|
478
|
+
"category": "overlays",
|
|
479
|
+
"subcategory": "drawer",
|
|
480
|
+
"purpose": "Side panel overlay for navigation or secondary tasks without blocking the whole viewport like a modal.",
|
|
481
|
+
"family": "overlays",
|
|
482
|
+
"maturity": "core",
|
|
483
|
+
"recommendedPages": ["dashboard", "saas", "docs", "shop"],
|
|
484
|
+
"recommendedSections": ["navbar"],
|
|
485
|
+
"compatibleWith": ["css-nav", "css-button", "velin-form-summary"],
|
|
486
|
+
"incompatibleWith": ["velin-modal", "velin-sheet"],
|
|
487
|
+
"accessibility": { "focusTrap": true, "escapeCloses": true, "inertBackground": true },
|
|
488
|
+
"seo": { "impact": "none" },
|
|
489
|
+
"performance": { "cost": "lazy-ok" },
|
|
490
|
+
"variants": ["start", "end"],
|
|
491
|
+
"density": ["default", "compact"],
|
|
492
|
+
"themeSupport": ["light", "dark"],
|
|
493
|
+
"motion": { "reducedMotionSafe": true },
|
|
494
|
+
"examples": ["<velin-drawer></velin-drawer>"],
|
|
495
|
+
"promptKeywords": ["drawer", "side panel", "sidebar overlay"],
|
|
496
|
+
"designIntelligence": {
|
|
497
|
+
"visualWeight": 4,
|
|
498
|
+
"importance": "secondary",
|
|
499
|
+
"hierarchy": "overlay",
|
|
500
|
+
"spacingRules": ["comfortable body padding"],
|
|
501
|
+
"typographyRules": ["clear title"],
|
|
502
|
+
"animationRules": ["slide in/out; respect reduced motion"],
|
|
503
|
+
"colorRules": ["overlay surface + dimmed backdrop"],
|
|
504
|
+
"eyeFlow": "title → body → actions",
|
|
505
|
+
"compositionRules": ["prefer drawer for filters/nav; modal for blocking confirms"],
|
|
506
|
+
"commonMistakes": ["using drawer and modal interchangeably"],
|
|
507
|
+
"bestPractices": ["use focus-manager lifecycle"]
|
|
508
|
+
},
|
|
509
|
+
"api": { "events": ["velin-close"], "methods": ["open", "close"] }
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
"id": "velin-sheet",
|
|
513
|
+
"kind": "web-component",
|
|
514
|
+
"tag": "velin-sheet",
|
|
515
|
+
"category": "overlays",
|
|
516
|
+
"subcategory": "sheet",
|
|
517
|
+
"purpose": "Bottom or edge sheet for mobile-first actions and pickers.",
|
|
518
|
+
"family": "overlays",
|
|
519
|
+
"maturity": "core",
|
|
520
|
+
"recommendedPages": ["shop", "saas", "dashboard", "event"],
|
|
521
|
+
"recommendedSections": [],
|
|
522
|
+
"compatibleWith": ["css-button", "velin-form-summary"],
|
|
523
|
+
"incompatibleWith": ["velin-modal", "velin-drawer"],
|
|
524
|
+
"accessibility": { "focusTrap": true, "escapeCloses": true, "inertBackground": true },
|
|
525
|
+
"seo": { "impact": "none" },
|
|
526
|
+
"performance": { "cost": "lazy-ok" },
|
|
527
|
+
"variants": ["bottom"],
|
|
528
|
+
"density": ["default", "compact"],
|
|
529
|
+
"themeSupport": ["light", "dark"],
|
|
530
|
+
"motion": { "reducedMotionSafe": true },
|
|
531
|
+
"examples": ["<velin-sheet></velin-sheet>"],
|
|
532
|
+
"promptKeywords": ["sheet", "bottom sheet", "action sheet"],
|
|
533
|
+
"designIntelligence": {
|
|
534
|
+
"visualWeight": 4,
|
|
535
|
+
"importance": "secondary",
|
|
536
|
+
"hierarchy": "overlay",
|
|
537
|
+
"spacingRules": ["thumb-friendly action spacing"],
|
|
538
|
+
"typographyRules": ["short action labels"],
|
|
539
|
+
"animationRules": ["slide from edge; reduced-motion safe"],
|
|
540
|
+
"colorRules": ["raised overlay surface"],
|
|
541
|
+
"eyeFlow": "handle/title → actions",
|
|
542
|
+
"compositionRules": ["prefer sheet on small viewports for actions"],
|
|
543
|
+
"commonMistakes": ["tiny hit targets", "missing dismiss control"],
|
|
544
|
+
"bestPractices": ["use focus-manager lifecycle"]
|
|
545
|
+
},
|
|
546
|
+
"api": { "events": ["velin-close"], "methods": ["open", "close"] }
|
|
547
|
+
},
|
|
548
|
+
{
|
|
549
|
+
"id": "velin-lightbox",
|
|
550
|
+
"kind": "web-component",
|
|
551
|
+
"tag": "velin-lightbox",
|
|
552
|
+
"category": "overlays",
|
|
553
|
+
"subcategory": "lightbox",
|
|
554
|
+
"purpose": "Media-focused overlay for images and galleries.",
|
|
555
|
+
"family": "overlays",
|
|
556
|
+
"maturity": "advanced",
|
|
557
|
+
"recommendedPages": ["portfolio", "shop", "agency", "event"],
|
|
558
|
+
"recommendedSections": ["services", "gallery"],
|
|
559
|
+
"compatibleWith": ["css-card", "css-button"],
|
|
560
|
+
"incompatibleWith": [],
|
|
561
|
+
"accessibility": { "focusTrap": true, "escapeCloses": true, "inertBackground": true },
|
|
562
|
+
"seo": { "impact": "low", "notes": "Keep meaningful alt text in light DOM when possible" },
|
|
563
|
+
"performance": { "cost": "lazy-ok" },
|
|
564
|
+
"variants": [],
|
|
565
|
+
"density": ["default"],
|
|
566
|
+
"themeSupport": ["light", "dark"],
|
|
567
|
+
"motion": { "reducedMotionSafe": true },
|
|
568
|
+
"examples": ["<velin-lightbox></velin-lightbox>"],
|
|
569
|
+
"promptKeywords": ["lightbox", "image gallery overlay", "media viewer"],
|
|
570
|
+
"designIntelligence": {
|
|
571
|
+
"visualWeight": 5,
|
|
572
|
+
"importance": "primary",
|
|
573
|
+
"hierarchy": "overlay",
|
|
574
|
+
"spacingRules": [],
|
|
575
|
+
"typographyRules": ["captions concise"],
|
|
576
|
+
"animationRules": ["fade/zoom brief"],
|
|
577
|
+
"colorRules": ["dark dim backdrop"],
|
|
578
|
+
"eyeFlow": "media → caption → close",
|
|
579
|
+
"compositionRules": ["use for media, not forms"],
|
|
580
|
+
"commonMistakes": ["forms inside lightbox", "missing close"],
|
|
581
|
+
"bestPractices": ["use focus-manager lifecycle"]
|
|
582
|
+
},
|
|
583
|
+
"api": { "events": ["velin-close"], "methods": ["open", "close"] }
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
"id": "velin-toast",
|
|
587
|
+
"kind": "web-component",
|
|
588
|
+
"tag": "velin-toast",
|
|
589
|
+
"category": "feedback",
|
|
590
|
+
"subcategory": "toast",
|
|
591
|
+
"purpose": "Transient status messages that do not block the page.",
|
|
592
|
+
"family": "feedback",
|
|
593
|
+
"maturity": "core",
|
|
594
|
+
"recommendedPages": ["saas", "dashboard", "shop"],
|
|
595
|
+
"recommendedSections": [],
|
|
596
|
+
"compatibleWith": ["css-button", "css-alert"],
|
|
597
|
+
"incompatibleWith": [],
|
|
598
|
+
"accessibility": { "role": "status", "notes": "Prefer polite live region; do not replace form-summary" },
|
|
599
|
+
"seo": { "impact": "none" },
|
|
600
|
+
"performance": { "cost": "lazy-ok" },
|
|
601
|
+
"variants": ["success", "warning", "danger", "info"],
|
|
602
|
+
"density": ["default", "compact"],
|
|
603
|
+
"themeSupport": ["light", "dark"],
|
|
604
|
+
"motion": { "reducedMotionSafe": true },
|
|
605
|
+
"examples": ["<velin-toast></velin-toast>"],
|
|
606
|
+
"promptKeywords": ["toast", "snackbar", "notification"],
|
|
607
|
+
"designIntelligence": {
|
|
608
|
+
"visualWeight": 3,
|
|
609
|
+
"importance": "secondary",
|
|
610
|
+
"hierarchy": "feedback",
|
|
611
|
+
"spacingRules": ["stack toasts with gap-2"],
|
|
612
|
+
"typographyRules": ["one short sentence"],
|
|
613
|
+
"animationRules": ["brief enter/exit"],
|
|
614
|
+
"colorRules": ["semantic status tokens"],
|
|
615
|
+
"eyeFlow": "corner/edge of viewport",
|
|
616
|
+
"compositionRules": ["use for transient status; form errors use form-summary"],
|
|
617
|
+
"commonMistakes": ["toasts for persistent form errors"],
|
|
618
|
+
"bestPractices": ["auto-dismiss with pause on focus/hover"]
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
]
|
|
622
|
+
}
|