@deriv-com/dds-marketing 0.1.0 → 1.0.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/.llm/components/accordion.md +201 -0
- package/.llm/components/accordionitem.md +244 -0
- package/.llm/components/aspectratio.md +220 -0
- package/.llm/components/badge.md +239 -0
- package/.llm/components/bottomsheet.md +412 -0
- package/.llm/components/breadcrumb.md +205 -0
- package/.llm/components/breadcrumbitem.md +186 -0
- package/.llm/components/button.md +295 -0
- package/.llm/components/buttonicon.md +321 -0
- package/.llm/components/card.md +327 -0
- package/.llm/components/cardbody.md +435 -0
- package/.llm/components/cardbutton.md +273 -0
- package/.llm/components/checkbox.md +293 -0
- package/.llm/components/ctabanner.md +186 -0
- package/.llm/components/ctabannerslider.md +204 -0
- package/.llm/components/divider.md +238 -0
- package/.llm/components/dropdownmenu.md +461 -0
- package/.llm/components/faqaccordion.md +217 -0
- package/.llm/components/featurebullets.md +254 -0
- package/.llm/components/featurecards.md +313 -0
- package/.llm/components/featurescroll.md +284 -0
- package/.llm/components/featuresplit.md +249 -0
- package/.llm/components/filterchip.md +322 -0
- package/.llm/components/footer.md +416 -0
- package/.llm/components/footergroup.md +249 -0
- package/.llm/components/grid.md +667 -0
- package/.llm/components/icon.md +202 -0
- package/.llm/components/landinghero.md +254 -0
- package/.llm/components/link.md +362 -0
- package/.llm/components/logocolumns.md +235 -0
- package/.llm/components/logorows.md +212 -0
- package/.llm/components/menuitem.md +226 -0
- package/.llm/components/navbar.md +522 -0
- package/.llm/components/navbaritem.md +246 -0
- package/.llm/components/navbarmenu.md +327 -0
- package/.llm/components/navbarmenugroup.md +192 -0
- package/.llm/components/navbarpanel.md +263 -0
- package/.llm/components/navbarswitcher.md +351 -0
- package/.llm/components/navbarswitcheroption.md +164 -0
- package/.llm/components/option.md +276 -0
- package/.llm/components/pageheader.md +231 -0
- package/.llm/components/pagination.md +298 -0
- package/.llm/components/paginationdots.md +215 -0
- package/.llm/components/producthero.md +248 -0
- package/.llm/components/removablechip.md +255 -0
- package/.llm/components/row.md +389 -0
- package/.llm/components/scroller.md +478 -0
- package/.llm/components/searchinput.md +287 -0
- package/.llm/components/segmentedcontrol.md +366 -0
- package/.llm/components/segmentedcontrolitem.md +280 -0
- package/.llm/components/select.md +517 -0
- package/.llm/components/selectchip.md +375 -0
- package/.llm/components/spinner.md +230 -0
- package/.llm/components/stack.md +342 -0
- package/.llm/components/statusdot.md +213 -0
- package/.llm/components/subdomainnavbar.md +335 -0
- package/.llm/components/tab.md +299 -0
- package/.llm/components/table.md +668 -0
- package/.llm/components/tablebody.md +266 -0
- package/.llm/components/tablecell.md +256 -0
- package/.llm/components/tablehead.md +256 -0
- package/.llm/components/tableheadercell.md +306 -0
- package/.llm/components/tablerow.md +293 -0
- package/.llm/components/tablist.md +218 -0
- package/.llm/components/testimonialrow.md +235 -0
- package/.llm/components/testimonialslider.md +254 -0
- package/.llm/components/textarea.md +370 -0
- package/.llm/components/textinput.md +475 -0
- package/.llm/components/tooltip.md +275 -0
- package/.llm/components/typography.md +253 -0
- package/.llm/digest/accordion.md +43 -0
- package/.llm/digest/accordionitem.md +47 -0
- package/.llm/digest/aspectratio.md +47 -0
- package/.llm/digest/badge.md +45 -0
- package/.llm/digest/bottomsheet.md +69 -0
- package/.llm/digest/breadcrumb.md +38 -0
- package/.llm/digest/breadcrumbitem.md +43 -0
- package/.llm/digest/button.md +53 -0
- package/.llm/digest/buttonicon.md +61 -0
- package/.llm/digest/card.md +51 -0
- package/.llm/digest/cardbody.md +70 -0
- package/.llm/digest/cardbutton.md +50 -0
- package/.llm/digest/checkbox.md +63 -0
- package/.llm/digest/ctabanner.md +44 -0
- package/.llm/digest/ctabannerslider.md +45 -0
- package/.llm/digest/divider.md +52 -0
- package/.llm/digest/dropdownmenu.md +67 -0
- package/.llm/digest/faqaccordion.md +43 -0
- package/.llm/digest/featurebullets.md +52 -0
- package/.llm/digest/featurecards.md +49 -0
- package/.llm/digest/featurescroll.md +52 -0
- package/.llm/digest/featuresplit.md +54 -0
- package/.llm/digest/filterchip.md +68 -0
- package/.llm/digest/footer.md +57 -0
- package/.llm/digest/footergroup.md +42 -0
- package/.llm/digest/grid.md +62 -0
- package/.llm/digest/icon.md +45 -0
- package/.llm/digest/landinghero.md +53 -0
- package/.llm/digest/link.md +59 -0
- package/.llm/digest/logocolumns.md +55 -0
- package/.llm/digest/logorows.md +48 -0
- package/.llm/digest/menuitem.md +46 -0
- package/.llm/digest/navbar.md +75 -0
- package/.llm/digest/navbaritem.md +54 -0
- package/.llm/digest/navbarmenu.md +54 -0
- package/.llm/digest/navbarmenugroup.md +40 -0
- package/.llm/digest/navbarpanel.md +53 -0
- package/.llm/digest/navbarswitcher.md +51 -0
- package/.llm/digest/navbarswitcheroption.md +37 -0
- package/.llm/digest/option.md +54 -0
- package/.llm/digest/pageheader.md +49 -0
- package/.llm/digest/pagination.md +60 -0
- package/.llm/digest/paginationdots.md +43 -0
- package/.llm/digest/producthero.md +53 -0
- package/.llm/digest/removablechip.md +51 -0
- package/.llm/digest/row.md +60 -0
- package/.llm/digest/scroller.md +59 -0
- package/.llm/digest/searchinput.md +56 -0
- package/.llm/digest/segmentedcontrol.md +59 -0
- package/.llm/digest/segmentedcontrolitem.md +59 -0
- package/.llm/digest/select.md +92 -0
- package/.llm/digest/selectchip.md +73 -0
- package/.llm/digest/spinner.md +52 -0
- package/.llm/digest/stack.md +56 -0
- package/.llm/digest/statusdot.md +46 -0
- package/.llm/digest/subdomainnavbar.md +54 -0
- package/.llm/digest/tab.md +60 -0
- package/.llm/digest/table.md +71 -0
- package/.llm/digest/tablebody.md +49 -0
- package/.llm/digest/tablecell.md +55 -0
- package/.llm/digest/tablehead.md +50 -0
- package/.llm/digest/tableheadercell.md +65 -0
- package/.llm/digest/tablerow.md +56 -0
- package/.llm/digest/tablist.md +46 -0
- package/.llm/digest/testimonialrow.md +51 -0
- package/.llm/digest/testimonialslider.md +51 -0
- package/.llm/digest/textarea.md +78 -0
- package/.llm/digest/textinput.md +95 -0
- package/.llm/digest/tooltip.md +58 -0
- package/.llm/digest/typography.md +59 -0
- package/.llm/index.md +107 -0
- package/.llm/rules.md +146 -0
- package/.llm/tokens.md +385 -0
- package/AGENTS.md +189 -0
- package/LICENSE +21 -0
- package/README.md +78 -10
- package/dist/components/banner-data.d.ts +38 -0
- package/dist/components/banner-data.js +15 -0
- package/dist/components/blocks/block-reveal.css +90 -0
- package/dist/components/blocks/cta-banner/CtaBanner.css +66 -0
- package/dist/components/blocks/cta-banner/CtaBanner.d.ts +22 -0
- package/dist/components/blocks/cta-banner/CtaBanner.js +31 -0
- package/dist/components/blocks/cta-banner/CtaBanner.types.d.ts +29 -0
- package/dist/components/blocks/cta-banner/CtaBanner.types.js +13 -0
- package/dist/components/blocks/cta-banner/cta-banner-impl.css +29 -0
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.css +90 -0
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.d.ts +39 -0
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.js +60 -0
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.types.d.ts +41 -0
- package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.types.js +15 -0
- package/dist/components/blocks/cta-banner-slider/cta-banner-slider-impl.css +73 -0
- package/dist/components/blocks/faq-accordion/FaqAccordion.css +54 -0
- package/dist/components/blocks/faq-accordion/FaqAccordion.d.ts +20 -0
- package/dist/components/blocks/faq-accordion/FaqAccordion.js +28 -0
- package/dist/components/blocks/faq-accordion/FaqAccordion.types.d.ts +25 -0
- package/dist/components/blocks/faq-accordion/FaqAccordion.types.js +10 -0
- package/dist/components/blocks/faq-accordion/faq-accordion-impl.css +54 -0
- package/dist/components/blocks/feature-bullets/FeatureBullets.css +139 -0
- package/dist/components/blocks/feature-bullets/FeatureBullets.d.ts +31 -0
- package/dist/components/blocks/feature-bullets/FeatureBullets.js +55 -0
- package/dist/components/blocks/feature-bullets/FeatureBullets.types.d.ts +39 -0
- package/dist/components/blocks/feature-bullets/FeatureBullets.types.js +16 -0
- package/dist/components/blocks/feature-bullets/feature-bullets-impl.css +104 -0
- package/dist/components/blocks/feature-cards/FeatureCards.css +84 -0
- package/dist/components/blocks/feature-cards/FeatureCards.d.ts +24 -0
- package/dist/components/blocks/feature-cards/FeatureCards.js +66 -0
- package/dist/components/blocks/feature-cards/FeatureCards.types.d.ts +33 -0
- package/dist/components/blocks/feature-cards/FeatureCards.types.js +14 -0
- package/dist/components/blocks/feature-cards/feature-cards-impl.css +245 -0
- package/dist/components/blocks/feature-scroll/FeatureScroll.css +137 -0
- package/dist/components/blocks/feature-scroll/FeatureScroll.d.ts +39 -0
- package/dist/components/blocks/feature-scroll/FeatureScroll.js +167 -0
- package/dist/components/blocks/feature-scroll/FeatureScroll.types.d.ts +40 -0
- package/dist/components/blocks/feature-scroll/FeatureScroll.types.js +17 -0
- package/dist/components/blocks/feature-scroll/feature-scroll-impl.css +292 -0
- package/dist/components/blocks/feature-split/FeatureSplit.css +95 -0
- package/dist/components/blocks/feature-split/FeatureSplit.d.ts +30 -0
- package/dist/components/blocks/feature-split/FeatureSplit.js +38 -0
- package/dist/components/blocks/feature-split/FeatureSplit.types.d.ts +39 -0
- package/dist/components/blocks/feature-split/FeatureSplit.types.js +14 -0
- package/dist/components/blocks/feature-split/feature-split-impl.css +83 -0
- package/dist/components/blocks/landing-hero/LandingHero.css +85 -0
- package/dist/components/blocks/landing-hero/LandingHero.d.ts +41 -0
- package/dist/components/blocks/landing-hero/LandingHero.js +54 -0
- package/dist/components/blocks/landing-hero/LandingHero.types.d.ts +37 -0
- package/dist/components/blocks/landing-hero/LandingHero.types.js +15 -0
- package/dist/components/blocks/landing-hero/landing-hero-impl.css +355 -0
- package/dist/components/blocks/logo-columns/LogoColumns.css +161 -0
- package/dist/components/blocks/logo-columns/LogoColumns.d.ts +23 -0
- package/dist/components/blocks/logo-columns/LogoColumns.js +46 -0
- package/dist/components/blocks/logo-columns/LogoColumns.types.d.ts +46 -0
- package/dist/components/blocks/logo-columns/LogoColumns.types.js +18 -0
- package/dist/components/blocks/logo-columns/logo-columns-impl.css +188 -0
- package/dist/components/blocks/logo-rows/LogoRows.css +122 -0
- package/dist/components/blocks/logo-rows/LogoRows.d.ts +20 -0
- package/dist/components/blocks/logo-rows/LogoRows.js +43 -0
- package/dist/components/blocks/logo-rows/LogoRows.types.d.ts +36 -0
- package/dist/components/blocks/logo-rows/LogoRows.types.js +16 -0
- package/dist/components/blocks/logo-rows/logo-rows-impl.css +179 -0
- package/dist/components/blocks/page-header/PageHeader.css +79 -0
- package/dist/components/blocks/page-header/PageHeader.d.ts +34 -0
- package/dist/components/blocks/page-header/PageHeader.js +43 -0
- package/dist/components/blocks/page-header/PageHeader.types.d.ts +32 -0
- package/dist/components/blocks/page-header/PageHeader.types.js +14 -0
- package/dist/components/blocks/page-header/page-header-impl.css +176 -0
- package/dist/components/blocks/product-hero/ProductHero.css +86 -0
- package/dist/components/blocks/product-hero/ProductHero.d.ts +35 -0
- package/dist/components/blocks/product-hero/ProductHero.js +48 -0
- package/dist/components/blocks/product-hero/ProductHero.types.d.ts +37 -0
- package/dist/components/blocks/product-hero/ProductHero.types.js +15 -0
- package/dist/components/blocks/product-hero/product-hero-impl.css +354 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.css +245 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.d.ts +20 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.js +128 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.types.d.ts +54 -0
- package/dist/components/blocks/testimonial-row/TestimonialRow.types.js +26 -0
- package/dist/components/blocks/testimonial-row/testimonial-row-impl.css +195 -0
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.css +181 -0
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.d.ts +22 -0
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.js +36 -0
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.types.d.ts +49 -0
- package/dist/components/blocks/testimonial-slider/TestimonialSlider.types.js +21 -0
- package/dist/components/blocks/testimonial-slider/testimonial-slider-impl.css +202 -0
- package/dist/components/blocks/use-reveal.d.ts +46 -0
- package/dist/components/blocks/use-reveal.js +120 -0
- package/dist/components/blocks/use-rotation.d.ts +62 -0
- package/dist/components/blocks/use-rotation.js +176 -0
- package/dist/components/core/accordion/Accordion.css +10 -0
- package/dist/components/core/accordion/Accordion.d.ts +20 -0
- package/dist/components/core/accordion/Accordion.js +69 -0
- package/dist/components/core/accordion/Accordion.types.d.ts +20 -0
- package/dist/components/core/accordion/Accordion.types.js +7 -0
- package/dist/components/core/accordion-item/AccordionItem.css +99 -0
- package/dist/components/core/accordion-item/AccordionItem.d.ts +44 -0
- package/dist/components/core/accordion-item/AccordionItem.js +63 -0
- package/dist/components/core/accordion-item/AccordionItem.types.d.ts +32 -0
- package/dist/components/core/accordion-item/AccordionItem.types.js +13 -0
- package/dist/components/core/accordion-item/accordion-item-impl.css +107 -0
- package/dist/components/core/badge/Badge.css +37 -0
- package/dist/components/core/badge/Badge.d.ts +37 -0
- package/dist/components/core/badge/Badge.js +40 -0
- package/dist/components/core/badge/Badge.types.d.ts +24 -0
- package/dist/components/core/badge/Badge.types.js +8 -0
- package/dist/components/core/badge/badge-impl.css +32 -0
- package/dist/components/core/bottom-sheet/BottomSheet.css +178 -0
- package/dist/components/core/bottom-sheet/BottomSheet.d.ts +22 -0
- package/dist/components/core/bottom-sheet/BottomSheet.js +359 -0
- package/dist/components/core/bottom-sheet/BottomSheet.types.d.ts +67 -0
- package/dist/components/core/bottom-sheet/BottomSheet.types.js +18 -0
- package/dist/components/core/bottom-sheet/bottom-sheet-impl.css +57 -0
- package/dist/components/core/breadcrumb/Breadcrumb.css +19 -0
- package/dist/components/core/breadcrumb/Breadcrumb.d.ts +16 -0
- package/dist/components/core/breadcrumb/Breadcrumb.js +22 -0
- package/dist/components/core/breadcrumb/Breadcrumb.types.d.ts +18 -0
- package/dist/components/core/breadcrumb/Breadcrumb.types.js +9 -0
- package/dist/components/core/breadcrumb-item/BreadcrumbItem.css +34 -0
- package/dist/components/core/breadcrumb-item/BreadcrumbItem.d.ts +12 -0
- package/dist/components/core/breadcrumb-item/BreadcrumbItem.js +15 -0
- package/dist/components/core/breadcrumb-item/BreadcrumbItem.types.d.ts +22 -0
- package/dist/components/core/breadcrumb-item/BreadcrumbItem.types.js +9 -0
- package/dist/components/core/button/Button.css +188 -0
- package/dist/components/core/button/Button.d.ts +27 -0
- package/dist/components/core/button/Button.js +57 -0
- package/dist/components/core/button/Button.types.d.ts +35 -0
- package/dist/components/core/button/Button.types.js +9 -0
- package/dist/components/core/button/button-impl.css +71 -0
- package/dist/components/core/button-icon/ButtonIcon.css +151 -0
- package/dist/components/core/button-icon/ButtonIcon.d.ts +34 -0
- package/dist/components/core/button-icon/ButtonIcon.js +117 -0
- package/dist/components/core/button-icon/ButtonIcon.types.d.ts +41 -0
- package/dist/components/core/button-icon/ButtonIcon.types.js +8 -0
- package/dist/components/core/card/Card.css +74 -0
- package/dist/components/core/card/Card.d.ts +24 -0
- package/dist/components/core/card/Card.js +26 -0
- package/dist/components/core/card/Card.types.d.ts +34 -0
- package/dist/components/core/card/Card.types.js +7 -0
- package/dist/components/core/card-body/CardBody.css +144 -0
- package/dist/components/core/card-body/CardBody.d.ts +62 -0
- package/dist/components/core/card-body/CardBody.js +97 -0
- package/dist/components/core/card-body/CardBody.types.d.ts +64 -0
- package/dist/components/core/card-body/CardBody.types.js +16 -0
- package/dist/components/core/card-body/card-body-impl.css +87 -0
- package/dist/components/core/card-button/CardButton.css +82 -0
- package/dist/components/core/card-button/CardButton.d.ts +27 -0
- package/dist/components/core/card-button/CardButton.js +37 -0
- package/dist/components/core/card-button/CardButton.types.d.ts +25 -0
- package/dist/components/core/card-button/CardButton.types.js +7 -0
- package/dist/components/core/card-button/card-button-impl.css +39 -0
- package/dist/components/core/checkbox/Checkbox.css +156 -0
- package/dist/components/core/checkbox/Checkbox.d.ts +21 -0
- package/dist/components/core/checkbox/Checkbox.js +97 -0
- package/dist/components/core/checkbox/Checkbox.types.d.ts +46 -0
- package/dist/components/core/checkbox/Checkbox.types.js +15 -0
- package/dist/components/core/checkbox/checkbox-impl.css +90 -0
- package/dist/components/core/divider/Divider.css +41 -0
- package/dist/components/core/divider/Divider.d.ts +46 -0
- package/dist/components/core/divider/Divider.js +51 -0
- package/dist/components/core/divider/Divider.types.d.ts +25 -0
- package/dist/components/core/divider/Divider.types.js +9 -0
- package/dist/components/core/dropdown-menu/DropdownMenu.css +147 -0
- package/dist/components/core/dropdown-menu/DropdownMenu.d.ts +24 -0
- package/dist/components/core/dropdown-menu/DropdownMenu.js +311 -0
- package/dist/components/core/dropdown-menu/DropdownMenu.types.d.ts +62 -0
- package/dist/components/core/dropdown-menu/DropdownMenu.types.js +12 -0
- package/dist/components/core/dropdown-menu/dropdown-menu-impl.css +70 -0
- package/dist/components/core/filter-chip/FilterChip.css +150 -0
- package/dist/components/core/filter-chip/FilterChip.d.ts +23 -0
- package/dist/components/core/filter-chip/FilterChip.js +37 -0
- package/dist/components/core/filter-chip/FilterChip.types.d.ts +53 -0
- package/dist/components/core/filter-chip/FilterChip.types.js +12 -0
- package/dist/components/core/footer/Footer.css +104 -0
- package/dist/components/core/footer/Footer.d.ts +43 -0
- package/dist/components/core/footer/Footer.js +53 -0
- package/dist/components/core/footer/Footer.types.d.ts +47 -0
- package/dist/components/core/footer/Footer.types.js +18 -0
- package/dist/components/core/footer/footer-impl.css +218 -0
- package/dist/components/core/footer-group/FooterGroup.css +91 -0
- package/dist/components/core/footer-group/FooterGroup.d.ts +32 -0
- package/dist/components/core/footer-group/FooterGroup.js +64 -0
- package/dist/components/core/footer-group/FooterGroup.types.d.ts +25 -0
- package/dist/components/core/footer-group/FooterGroup.types.js +12 -0
- package/dist/components/core/footer-group/footer-group-impl.css +78 -0
- package/dist/components/core/icon/Icon.css +40 -0
- package/dist/components/core/icon/Icon.d.ts +23 -0
- package/dist/components/core/icon/Icon.js +79 -0
- package/dist/components/core/icon/Icon.types.d.ts +24 -0
- package/dist/components/core/icon/Icon.types.js +7 -0
- package/dist/components/core/link/Link.css +89 -0
- package/dist/components/core/link/Link.d.ts +37 -0
- package/dist/components/core/link/Link.js +141 -0
- package/dist/components/core/link/Link.types.d.ts +41 -0
- package/dist/components/core/link/Link.types.js +9 -0
- package/dist/components/core/link/link-impl.css +168 -0
- package/dist/components/core/menu-item/MenuItem.css +70 -0
- package/dist/components/core/menu-item/MenuItem.d.ts +11 -0
- package/dist/components/core/menu-item/MenuItem.js +26 -0
- package/dist/components/core/menu-item/MenuItem.types.d.ts +28 -0
- package/dist/components/core/menu-item/MenuItem.types.js +9 -0
- package/dist/components/core/navbar/Navbar.css +134 -0
- package/dist/components/core/navbar/Navbar.d.ts +52 -0
- package/dist/components/core/navbar/Navbar.js +498 -0
- package/dist/components/core/navbar/Navbar.types.d.ts +68 -0
- package/dist/components/core/navbar/Navbar.types.js +17 -0
- package/dist/components/core/navbar/navbar-impl.css +597 -0
- package/dist/components/core/navbar/navbar-material.css +96 -0
- package/dist/components/core/navbar-item/NavbarItem.css +75 -0
- package/dist/components/core/navbar-item/NavbarItem.d.ts +22 -0
- package/dist/components/core/navbar-item/NavbarItem.js +40 -0
- package/dist/components/core/navbar-item/NavbarItem.types.d.ts +34 -0
- package/dist/components/core/navbar-item/NavbarItem.types.js +10 -0
- package/dist/components/core/navbar-menu/NavbarMenu.css +130 -0
- package/dist/components/core/navbar-menu/NavbarMenu.d.ts +6 -0
- package/dist/components/core/navbar-menu/NavbarMenu.js +187 -0
- package/dist/components/core/navbar-menu/NavbarMenu.types.d.ts +45 -0
- package/dist/components/core/navbar-menu/NavbarMenu.types.js +12 -0
- package/dist/components/core/navbar-menu/navbar-menu-impl.css +186 -0
- package/dist/components/core/navbar-menu-group/NavbarMenuGroup.css +26 -0
- package/dist/components/core/navbar-menu-group/NavbarMenuGroup.d.ts +17 -0
- package/dist/components/core/navbar-menu-group/NavbarMenuGroup.js +22 -0
- package/dist/components/core/navbar-menu-group/NavbarMenuGroup.types.d.ts +14 -0
- package/dist/components/core/navbar-menu-group/NavbarMenuGroup.types.js +7 -0
- package/dist/components/core/navbar-panel/NavbarPanel.css +87 -0
- package/dist/components/core/navbar-panel/NavbarPanel.d.ts +34 -0
- package/dist/components/core/navbar-panel/NavbarPanel.js +46 -0
- package/dist/components/core/navbar-panel/NavbarPanel.types.d.ts +29 -0
- package/dist/components/core/navbar-panel/NavbarPanel.types.js +12 -0
- package/dist/components/core/navbar-panel/navbar-panel-impl.css +104 -0
- package/dist/components/core/navbar-panel/use-navbar-panel.d.ts +26 -0
- package/dist/components/core/navbar-panel/use-navbar-panel.js +135 -0
- package/dist/components/core/navbar-switcher/NavbarSwitcher.css +118 -0
- package/dist/components/core/navbar-switcher/NavbarSwitcher.d.ts +21 -0
- package/dist/components/core/navbar-switcher/NavbarSwitcher.js +91 -0
- package/dist/components/core/navbar-switcher/NavbarSwitcher.types.d.ts +46 -0
- package/dist/components/core/navbar-switcher/NavbarSwitcher.types.js +13 -0
- package/dist/components/core/navbar-switcher/navbar-switcher-impl.css +179 -0
- package/dist/components/core/navbar-switcher-option/NavbarSwitcherOption.css +39 -0
- package/dist/components/core/navbar-switcher-option/NavbarSwitcherOption.d.ts +16 -0
- package/dist/components/core/navbar-switcher-option/NavbarSwitcherOption.js +19 -0
- package/dist/components/core/navbar-switcher-option/NavbarSwitcherOption.types.d.ts +18 -0
- package/dist/components/core/navbar-switcher-option/NavbarSwitcherOption.types.js +7 -0
- package/dist/components/core/option/Option.css +133 -0
- package/dist/components/core/option/Option.d.ts +25 -0
- package/dist/components/core/option/Option.js +31 -0
- package/dist/components/core/option/Option.types.d.ts +44 -0
- package/dist/components/core/option/Option.types.js +14 -0
- package/dist/components/core/pagination/Pagination.css +163 -0
- package/dist/components/core/pagination/Pagination.d.ts +30 -0
- package/dist/components/core/pagination/Pagination.js +366 -0
- package/dist/components/core/pagination/Pagination.types.d.ts +47 -0
- package/dist/components/core/pagination/Pagination.types.js +12 -0
- package/dist/components/core/pagination/pagination-impl.css +17 -0
- package/dist/components/core/pagination-dots/PaginationDots.css +60 -0
- package/dist/components/core/pagination-dots/PaginationDots.d.ts +25 -0
- package/dist/components/core/pagination-dots/PaginationDots.js +104 -0
- package/dist/components/core/pagination-dots/PaginationDots.types.d.ts +38 -0
- package/dist/components/core/pagination-dots/PaginationDots.types.js +9 -0
- package/dist/components/core/removable-chip/RemovableChip.css +125 -0
- package/dist/components/core/removable-chip/RemovableChip.d.ts +25 -0
- package/dist/components/core/removable-chip/RemovableChip.js +36 -0
- package/dist/components/core/removable-chip/RemovableChip.types.d.ts +38 -0
- package/dist/components/core/removable-chip/RemovableChip.types.js +13 -0
- package/dist/components/core/search-input/SearchInput.css +205 -0
- package/dist/components/core/search-input/SearchInput.d.ts +5 -0
- package/dist/components/core/search-input/SearchInput.js +81 -0
- package/dist/components/core/search-input/SearchInput.types.d.ts +43 -0
- package/dist/components/core/search-input/SearchInput.types.js +13 -0
- package/dist/components/core/search-input/search-input-impl.css +20 -0
- package/dist/components/core/segmented-control/SegmentedControl.css +57 -0
- package/dist/components/core/segmented-control/SegmentedControl.d.ts +37 -0
- package/dist/components/core/segmented-control/SegmentedControl.js +269 -0
- package/dist/components/core/segmented-control/SegmentedControl.types.d.ts +38 -0
- package/dist/components/core/segmented-control/SegmentedControl.types.js +8 -0
- package/dist/components/core/segmented-control/segmented-control-impl.css +57 -0
- package/dist/components/core/segmented-control-item/SegmentedControlItem.css +151 -0
- package/dist/components/core/segmented-control-item/SegmentedControlItem.d.ts +50 -0
- package/dist/components/core/segmented-control-item/SegmentedControlItem.js +101 -0
- package/dist/components/core/segmented-control-item/SegmentedControlItem.types.d.ts +37 -0
- package/dist/components/core/segmented-control-item/SegmentedControlItem.types.js +10 -0
- package/dist/components/core/segmented-control-item/segmented-control-item-impl.css +69 -0
- package/dist/components/core/select/Select.css +401 -0
- package/dist/components/core/select/Select.d.ts +29 -0
- package/dist/components/core/select/Select.js +524 -0
- package/dist/components/core/select/Select.types.d.ts +96 -0
- package/dist/components/core/select/Select.types.js +26 -0
- package/dist/components/core/select/select-impl.css +114 -0
- package/dist/components/core/select-chip/SelectChip.css +162 -0
- package/dist/components/core/select-chip/SelectChip.d.ts +20 -0
- package/dist/components/core/select-chip/SelectChip.js +276 -0
- package/dist/components/core/select-chip/SelectChip.types.d.ts +62 -0
- package/dist/components/core/select-chip/SelectChip.types.js +14 -0
- package/dist/components/core/select-chip/select-chip-impl.css +49 -0
- package/dist/components/core/spinner/Spinner.css +76 -0
- package/dist/components/core/spinner/Spinner.d.ts +5 -0
- package/dist/components/core/spinner/Spinner.js +29 -0
- package/dist/components/core/spinner/Spinner.types.d.ts +37 -0
- package/dist/components/core/spinner/Spinner.types.js +10 -0
- package/dist/components/core/spinner/spinner-impl.css +27 -0
- package/dist/components/core/status-dot/StatusDot.css +43 -0
- package/dist/components/core/status-dot/StatusDot.d.ts +35 -0
- package/dist/components/core/status-dot/StatusDot.js +46 -0
- package/dist/components/core/status-dot/StatusDot.types.d.ts +29 -0
- package/dist/components/core/status-dot/StatusDot.types.js +7 -0
- package/dist/components/core/status-dot/status-dot-impl.css +42 -0
- package/dist/components/core/subdomain-navbar/SubdomainNavbar.css +89 -0
- package/dist/components/core/subdomain-navbar/SubdomainNavbar.d.ts +21 -0
- package/dist/components/core/subdomain-navbar/SubdomainNavbar.js +127 -0
- package/dist/components/core/subdomain-navbar/SubdomainNavbar.types.d.ts +43 -0
- package/dist/components/core/subdomain-navbar/SubdomainNavbar.types.js +13 -0
- package/dist/components/core/subdomain-navbar/subdomain-navbar-impl.css +147 -0
- package/dist/components/core/tab/Tab.css +113 -0
- package/dist/components/core/tab/Tab.d.ts +36 -0
- package/dist/components/core/tab/Tab.js +53 -0
- package/dist/components/core/tab/Tab.types.d.ts +42 -0
- package/dist/components/core/tab/Tab.types.js +13 -0
- package/dist/components/core/tab/tab-impl.css +49 -0
- package/dist/components/core/tab-list/TabList.css +40 -0
- package/dist/components/core/tab-list/TabList.d.ts +26 -0
- package/dist/components/core/tab-list/TabList.js +124 -0
- package/dist/components/core/tab-list/TabList.types.d.ts +20 -0
- package/dist/components/core/tab-list/TabList.types.js +7 -0
- package/dist/components/core/tab-list/tab-list-impl.css +56 -0
- package/dist/components/core/table/Table.css +40 -0
- package/dist/components/core/table/Table.d.ts +19 -0
- package/dist/components/core/table/Table.js +55 -0
- package/dist/components/core/table/Table.types.d.ts +59 -0
- package/dist/components/core/table/Table.types.js +9 -0
- package/dist/components/core/table/table-impl.css +97 -0
- package/dist/components/core/table/use-table-sort.d.ts +43 -0
- package/dist/components/core/table/use-table-sort.js +51 -0
- package/dist/components/core/table-body/TableBody.css +6 -0
- package/dist/components/core/table-body/TableBody.d.ts +12 -0
- package/dist/components/core/table-body/TableBody.js +26 -0
- package/dist/components/core/table-body/TableBody.types.d.ts +36 -0
- package/dist/components/core/table-body/TableBody.types.js +7 -0
- package/dist/components/core/table-cell/TableCell.css +76 -0
- package/dist/components/core/table-cell/TableCell.d.ts +21 -0
- package/dist/components/core/table-cell/TableCell.js +31 -0
- package/dist/components/core/table-cell/TableCell.types.d.ts +43 -0
- package/dist/components/core/table-cell/TableCell.types.js +7 -0
- package/dist/components/core/table-head/TableHead.css +6 -0
- package/dist/components/core/table-head/TableHead.d.ts +22 -0
- package/dist/components/core/table-head/TableHead.js +52 -0
- package/dist/components/core/table-head/TableHead.types.d.ts +39 -0
- package/dist/components/core/table-head/TableHead.types.js +7 -0
- package/dist/components/core/table-head/table-head-impl.css +51 -0
- package/dist/components/core/table-header-cell/TableHeaderCell.css +126 -0
- package/dist/components/core/table-header-cell/TableHeaderCell.d.ts +21 -0
- package/dist/components/core/table-header-cell/TableHeaderCell.js +34 -0
- package/dist/components/core/table-header-cell/TableHeaderCell.types.d.ts +56 -0
- package/dist/components/core/table-header-cell/TableHeaderCell.types.js +9 -0
- package/dist/components/core/table-header-cell/table-header-cell-impl.css +74 -0
- package/dist/components/core/table-row/TableRow.css +18 -0
- package/dist/components/core/table-row/TableRow.d.ts +17 -0
- package/dist/components/core/table-row/TableRow.js +32 -0
- package/dist/components/core/table-row/TableRow.types.d.ts +45 -0
- package/dist/components/core/table-row/TableRow.types.js +7 -0
- package/dist/components/core/table-row/table-row-impl.css +31 -0
- package/dist/components/core/text-area/TextArea.css +325 -0
- package/dist/components/core/text-area/TextArea.d.ts +13 -0
- package/dist/components/core/text-area/TextArea.js +133 -0
- package/dist/components/core/text-area/TextArea.types.d.ts +67 -0
- package/dist/components/core/text-area/TextArea.types.js +19 -0
- package/dist/components/core/text-area/text-area-impl.css +36 -0
- package/dist/components/core/text-input/TextInput.css +400 -0
- package/dist/components/core/text-input/TextInput.d.ts +5 -0
- package/dist/components/core/text-input/TextInput.js +130 -0
- package/dist/components/core/text-input/TextInput.types.d.ts +96 -0
- package/dist/components/core/text-input/TextInput.types.js +24 -0
- package/dist/components/core/text-input/text-input-impl.css +36 -0
- package/dist/components/core/tooltip/Tooltip.css +101 -0
- package/dist/components/core/tooltip/Tooltip.d.ts +51 -0
- package/dist/components/core/tooltip/Tooltip.js +87 -0
- package/dist/components/core/tooltip/Tooltip.types.d.ts +38 -0
- package/dist/components/core/tooltip/Tooltip.types.js +9 -0
- package/dist/components/core/tooltip/TooltipAnchor.d.ts +52 -0
- package/dist/components/core/tooltip/TooltipAnchor.js +69 -0
- package/dist/components/core/tooltip/tooltip-anchor.css +145 -0
- package/dist/components/core/tooltip/tooltip-impl.css +54 -0
- package/dist/components/core/tooltip/use-tooltip.d.ts +111 -0
- package/dist/components/core/tooltip/use-tooltip.js +189 -0
- package/dist/components/core/typography/Typography.css +96 -0
- package/dist/components/core/typography/Typography.d.ts +297 -0
- package/dist/components/core/typography/Typography.js +28 -0
- package/dist/components/core/typography/Typography.types.d.ts +40 -0
- package/dist/components/core/typography/Typography.types.js +7 -0
- package/dist/components/css-time.d.ts +20 -0
- package/dist/components/css-time.js +30 -0
- package/dist/components/given.d.ts +7 -0
- package/dist/components/given.js +9 -0
- package/dist/components/hover-open.d.ts +34 -0
- package/dist/components/hover-open.js +90 -0
- package/dist/components/index.d.ts +149 -1
- package/dist/components/index.js +145 -2
- package/dist/components/layout/aspect-ratio/AspectRatio.css +29 -0
- package/dist/components/layout/aspect-ratio/AspectRatio.d.ts +24 -0
- package/dist/components/layout/aspect-ratio/AspectRatio.js +26 -0
- package/dist/components/layout/aspect-ratio/AspectRatio.types.d.ts +22 -0
- package/dist/components/layout/aspect-ratio/AspectRatio.types.js +7 -0
- package/dist/components/layout/aspect-ratio/aspect-ratio-impl.css +44 -0
- package/dist/components/layout/grid/Grid.css +76 -0
- package/dist/components/layout/grid/Grid.d.ts +31 -0
- package/dist/components/layout/grid/Grid.js +33 -0
- package/dist/components/layout/grid/Grid.types.d.ts +48 -0
- package/dist/components/layout/grid/Grid.types.js +7 -0
- package/dist/components/layout/grid/grid-impl.css +62 -0
- package/dist/components/layout/row/Row.css +85 -0
- package/dist/components/layout/row/Row.d.ts +32 -0
- package/dist/components/layout/row/Row.js +34 -0
- package/dist/components/layout/row/Row.types.d.ts +45 -0
- package/dist/components/layout/row/Row.types.js +7 -0
- package/dist/components/layout/scroller/Scroller.css +59 -0
- package/dist/components/layout/scroller/Scroller.d.ts +34 -0
- package/dist/components/layout/scroller/Scroller.js +36 -0
- package/dist/components/layout/scroller/Scroller.types.d.ts +38 -0
- package/dist/components/layout/scroller/Scroller.types.js +7 -0
- package/dist/components/layout/scroller/scroller-impl.css +45 -0
- package/dist/components/layout/stack/Stack.css +73 -0
- package/dist/components/layout/stack/Stack.d.ts +28 -0
- package/dist/components/layout/stack/Stack.js +30 -0
- package/dist/components/layout/stack/Stack.types.d.ts +41 -0
- package/dist/components/layout/stack/Stack.types.js +7 -0
- package/dist/components/logo-data.d.ts +24 -0
- package/dist/components/logo-data.js +11 -0
- package/dist/components/scroll-data.d.ts +64 -0
- package/dist/components/scroll-data.js +17 -0
- package/dist/components/testimonial-row-data.d.ts +51 -0
- package/dist/components/testimonial-row-data.js +11 -0
- package/dist/components/testimonial-slider-data.d.ts +26 -0
- package/dist/components/testimonial-slider-data.js +10 -0
- package/dist/components/visually-hidden.d.ts +22 -0
- package/dist/components/visually-hidden.js +31 -0
- package/dist/fonts/LICENSE-inter.txt +93 -0
- package/dist/fonts/LICENSE-red-hat-mono.txt +93 -0
- package/dist/fonts/fonts.css +111 -0
- package/dist/fonts/inter-cyrillic-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/inter-cyrillic-wght-normal.woff2 +0 -0
- package/dist/fonts/inter-greek-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/inter-greek-wght-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/inter-vietnamese-wght-normal.woff2 +0 -0
- package/dist/fonts/red-hat-mono-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/red-hat-mono-latin-wght-normal.woff2 +0 -0
- package/dist/marketing.css +581 -162
- package/package.json +13 -4
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// GENERATED from select-chip.contract.json. Do not edit.
|
|
2
|
+
/** The class each part carries. Apply these — do not retype them. */
|
|
3
|
+
export const selectChipParts = {
|
|
4
|
+
root: 'dds-selectchip',
|
|
5
|
+
trigger: 'dds-selectchip__trigger',
|
|
6
|
+
'trigger-icon': 'dds-selectchip__trigger-icon',
|
|
7
|
+
'trigger-label': 'dds-selectchip__trigger-label',
|
|
8
|
+
chevron: 'dds-selectchip__chevron',
|
|
9
|
+
listbox: 'dds-selectchip__listbox',
|
|
10
|
+
};
|
|
11
|
+
/** Generated so defaults cannot drift from the contract. */
|
|
12
|
+
export const selectChipDefaults = { disabled: false, size: 'sm', alignment: 'start', emphasis: 'highlight' };
|
|
13
|
+
/** The step this component draws a glyph slot at. Generated — do not retype. */
|
|
14
|
+
export const selectChipGlyphStep = { sm: 'xs', md: 'sm' };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Scoped to this package, like the generated sheet beside it.
|
|
3
|
+
*
|
|
4
|
+
* `:where([data-dds-context="marketing"])` confines these rules without contributing
|
|
5
|
+
* specificity, so every override below still ties or beats exactly what it did
|
|
6
|
+
* before — both here are written a class deeper than they look in order to match
|
|
7
|
+
* generated CSS, and a scope that carried weight would break them.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/*
|
|
11
|
+
* Implementation CSS the contract cannot express.
|
|
12
|
+
*
|
|
13
|
+
* A token binding carries one state, and these are two at once. `chosen` is a state rather than
|
|
14
|
+
* an axis because whether an answer has been taken is derived from the value rather than passed
|
|
15
|
+
* in — so it cannot be a `when`, and a binding cannot say "chosen, and hovered" in one breath.
|
|
16
|
+
*
|
|
17
|
+
* Nothing here is a value. Every measure comes from the same tokens the bindings use, which is
|
|
18
|
+
* what keeps these two rules honest: they are the cascade the contract could not reach, not a
|
|
19
|
+
* second opinion about what the chip should look like.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/* The chosen chip's own hover, which would otherwise fall back to the unchosen one and wash the
|
|
23
|
+
fill in the wrong direction — a black alpha over a ground that is already near-black shows
|
|
24
|
+
nothing at all. This is the case color.bg.hover-inverse exists for. */
|
|
25
|
+
:where([data-dds-context="marketing"]) .dds-selectchip[data-emphasis="highlight"] .dds-selectchip__trigger[data-chosen="true"]:hover {
|
|
26
|
+
background-image: linear-gradient(
|
|
27
|
+
var(--color-bg-hover-inverse),
|
|
28
|
+
var(--color-bg-hover-inverse)
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/* An open chip borrows the heavier edge, but only while nothing is chosen. Said of both, it would
|
|
33
|
+
be a second rule as specific as the one it argues with, and the cascade would settle it by
|
|
34
|
+
source order — so the exclusion is written rather than left to whichever sorted last. A chosen
|
|
35
|
+
chip already carries a painted edge, so there is nothing for opening to add — unless it is
|
|
36
|
+
quiet, which never takes that edge, and so borrows this one whether or not anything is chosen. */
|
|
37
|
+
:where([data-dds-context="marketing"]) .dds-selectchip .dds-selectchip__trigger[data-expanded="true"]:not([data-chosen="true"]),
|
|
38
|
+
:where([data-dds-context="marketing"]) .dds-selectchip[data-emphasis="quiet"] .dds-selectchip__trigger[data-expanded="true"] {
|
|
39
|
+
border-color: var(--color-border-strong);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
:where([data-dds-context="marketing"]) .dds-selectchip .dds-selectchip__listbox {
|
|
43
|
+
/* Over whatever follows the chip. An absolutely positioned box already paints above the
|
|
44
|
+
in-flow content of its own stacking context, which is enough until the next thing on the
|
|
45
|
+
page is positioned too — and in a row of chips the next thing is another chip, whose
|
|
46
|
+
relative root painted over this list in source order. `layer.popup`, the role
|
|
47
|
+
DropdownMenu and NavbarMenu already read for a panel that floats over the page. */
|
|
48
|
+
z-index: var(--layer-popup);
|
|
49
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/* GENERATED from spinner.contract.json. Do not edit. */
|
|
2
|
+
|
|
3
|
+
:where([data-dds-context="marketing"]) .dds-spinner {
|
|
4
|
+
align-items: center;
|
|
5
|
+
display: inline-flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
position: relative;
|
|
8
|
+
gap: var(--space-gap-sm);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
:where([data-dds-context="marketing"]) .dds-spinner[data-variant="inherit"] .dds-spinner__circle {
|
|
12
|
+
color: inherit;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
:where([data-dds-context="marketing"]) .dds-spinner[data-variant="inherit"] .dds-spinner__label {
|
|
16
|
+
color: inherit;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
:where([data-dds-context="marketing"]) .dds-spinner .dds-spinner__label {
|
|
20
|
+
color: var(--color-fg-default);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
:where([data-dds-context="marketing"]) .dds-spinner .dds-spinner__track {
|
|
24
|
+
stroke-opacity: var(--opacity-track);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
:where([data-dds-context="marketing"]) .dds-spinner[data-size="lg"] .dds-spinner__circle {
|
|
28
|
+
block-size: var(--size-spinner-lg);
|
|
29
|
+
inline-size: var(--size-spinner-lg);
|
|
30
|
+
stroke-width: var(--size-spinner-stroke-lg);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
:where([data-dds-context="marketing"]) .dds-spinner[data-size="lg"] .dds-spinner__label {
|
|
34
|
+
font-family: var(--font-label-lg-family);
|
|
35
|
+
font-size: var(--font-label-lg-size);
|
|
36
|
+
font-weight: var(--font-label-lg-weight);
|
|
37
|
+
letter-spacing: var(--font-label-lg-letter-spacing);
|
|
38
|
+
line-height: var(--font-label-lg-line-height);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
:where([data-dds-context="marketing"]) .dds-spinner[data-size="md"] .dds-spinner__circle {
|
|
42
|
+
block-size: var(--size-spinner-md);
|
|
43
|
+
inline-size: var(--size-spinner-md);
|
|
44
|
+
stroke-width: var(--size-spinner-stroke-md);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
:where([data-dds-context="marketing"]) .dds-spinner[data-size="md"] .dds-spinner__label {
|
|
48
|
+
font-family: var(--font-label-md-family);
|
|
49
|
+
font-size: var(--font-label-md-size);
|
|
50
|
+
font-weight: var(--font-label-md-weight);
|
|
51
|
+
letter-spacing: var(--font-label-md-letter-spacing);
|
|
52
|
+
line-height: var(--font-label-md-line-height);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
:where([data-dds-context="marketing"]) .dds-spinner[data-size="sm"] .dds-spinner__circle {
|
|
56
|
+
block-size: var(--size-spinner-sm);
|
|
57
|
+
inline-size: var(--size-spinner-sm);
|
|
58
|
+
stroke-width: var(--size-spinner-stroke-sm);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
:where([data-dds-context="marketing"]) .dds-spinner[data-size="sm"] .dds-spinner__label {
|
|
62
|
+
font-family: var(--font-label-sm-family);
|
|
63
|
+
font-size: var(--font-label-sm-size);
|
|
64
|
+
font-weight: var(--font-label-sm-weight);
|
|
65
|
+
letter-spacing: var(--font-label-sm-letter-spacing);
|
|
66
|
+
line-height: var(--font-label-sm-line-height);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
:where([data-dds-context="marketing"]) .dds-spinner[data-variant="accent"] .dds-spinner__circle {
|
|
70
|
+
color: var(--color-bg-brand);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
:where([data-dds-context="marketing"]) .dds-spinner[data-variant="neutral"] .dds-spinner__circle {
|
|
74
|
+
color: var(--color-bg-strong);
|
|
75
|
+
}
|
|
76
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import './Spinner.css';
|
|
3
|
+
import { given } from '../../given.js';
|
|
4
|
+
import { visuallyHidden } from '../../visually-hidden.js';
|
|
5
|
+
import './spinner-impl.css';
|
|
6
|
+
import { spinnerDefaults, spinnerParts } from './Spinner.types.js';
|
|
7
|
+
export function Spinner({ size = spinnerDefaults.size, variant = spinnerDefaults.variant, label, showLabel = spinnerDefaults.showLabel, ...rest }) {
|
|
8
|
+
/**
|
|
9
|
+
* Whether this spinner is the thing being waited on, or part of one.
|
|
10
|
+
*
|
|
11
|
+
* `role="status"` is a live region, so an unnamed one is not a quiet spinner — it is a
|
|
12
|
+
* region that fires with nothing to say. An absent label is therefore the decorative
|
|
13
|
+
* mode, and a real mode rather than a workaround: no role, no name, hidden outright.
|
|
14
|
+
* That is the right one wherever the copy beside the ring already names the wait, which
|
|
15
|
+
* on a marketing page is most of them.
|
|
16
|
+
*/
|
|
17
|
+
const named = given(label);
|
|
18
|
+
return (
|
|
19
|
+
/*
|
|
20
|
+
`rest` first, the way ButtonIcon and CardButton spread theirs.
|
|
21
|
+
|
|
22
|
+
Last, it let a call site pass `role` or `aria-label` and overrule what this component
|
|
23
|
+
just decided — including naming a spinner that had deliberately made itself decorative,
|
|
24
|
+
which is the one state the label guidance exists to protect. Everything a consumer
|
|
25
|
+
legitimately sets (`id`, `style`, handlers, `data-*` of its own) still lands; only the
|
|
26
|
+
four attributes this component owns are now beyond reach.
|
|
27
|
+
*/
|
|
28
|
+
_jsxs("div", { ...rest, className: spinnerParts.root, ...(named ? { role: 'status', 'aria-label': label } : { 'aria-hidden': true }), "data-size": size, "data-variant": variant, children: [_jsxs("svg", { className: spinnerParts.circle, viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [_jsx("circle", { className: spinnerParts.track, cx: "12", cy: "12", r: "10", stroke: "currentColor", vectorEffect: "non-scaling-stroke" }), _jsx("path", { d: "M12 2a10 10 0 0 1 10 10", stroke: "currentColor", strokeLinecap: "round", vectorEffect: "non-scaling-stroke" })] }), named ? (_jsx("span", { className: spinnerParts.label, style: showLabel ? undefined : visuallyHidden, children: label })) : null] }));
|
|
29
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'react';
|
|
2
|
+
export interface SpinnerOwnProps {
|
|
3
|
+
/**
|
|
4
|
+
* `sm` — In a line of body copy, or inside a control the reader has just pressed. Sixteen, the size of the words beside it, so it sits on the line rather than in front of it
|
|
5
|
+
* `md` — The default. A form that has been submitted, a card waiting on the figure it is going to show
|
|
6
|
+
* `lg` — A section holding space for something that arrives separately — an embed, a demo, a band of live figures. Sized to be found from where the reader is looking, which is the whole section rather than one control in it
|
|
7
|
+
*/
|
|
8
|
+
size?: 'sm' | 'md' | 'lg';
|
|
9
|
+
/**
|
|
10
|
+
* `accent` — The default, and what a page nearly always wants. The wait is the one thing happening, and the brand colour is what says the page is doing it rather than failing to
|
|
11
|
+
* `neutral` — The wait is incidental to what the reader came for — a figure refreshing inside a card that is otherwise readable. Brand colour on a wait nobody is watching spends attention the page needs further down
|
|
12
|
+
* `inherit` — Inside something that has already set a colour: a filled button, a dark band, a coloured panel. `currentColor` reaches the ring and the label together.
|
|
13
|
+
|
|
14
|
+
This is also how a spinner on a dark section or a photograph gets its colour. There is no fixed-light or fixed-dark role in this package, and adding one would be asking a second time a question the section has already answered by setting its text colour
|
|
15
|
+
*/
|
|
16
|
+
variant?: 'accent' | 'neutral' | 'inherit';
|
|
17
|
+
}
|
|
18
|
+
export type SpinnerProps = SpinnerOwnProps & Omit<HTMLAttributes<HTMLDivElement>, 'className' | 'size' | 'variant' | 'label' | 'showLabel'> & ({
|
|
19
|
+
showLabel?: boolean;
|
|
20
|
+
label: string;
|
|
21
|
+
} | {
|
|
22
|
+
showLabel?: false;
|
|
23
|
+
label?: string;
|
|
24
|
+
});
|
|
25
|
+
/** The class each part carries. Apply these — do not retype them. */
|
|
26
|
+
export declare const spinnerParts: {
|
|
27
|
+
readonly root: "dds-spinner";
|
|
28
|
+
readonly circle: "dds-spinner__circle";
|
|
29
|
+
readonly track: "dds-spinner__track";
|
|
30
|
+
readonly label: "dds-spinner__label";
|
|
31
|
+
};
|
|
32
|
+
/** Generated so defaults cannot drift from the contract. */
|
|
33
|
+
export declare const spinnerDefaults: {
|
|
34
|
+
readonly size: "md";
|
|
35
|
+
readonly variant: "accent";
|
|
36
|
+
readonly showLabel: false;
|
|
37
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// GENERATED from spinner.contract.json. Do not edit.
|
|
2
|
+
/** The class each part carries. Apply these — do not retype them. */
|
|
3
|
+
export const spinnerParts = {
|
|
4
|
+
root: 'dds-spinner',
|
|
5
|
+
circle: 'dds-spinner__circle',
|
|
6
|
+
track: 'dds-spinner__track',
|
|
7
|
+
label: 'dds-spinner__label',
|
|
8
|
+
};
|
|
9
|
+
/** Generated so defaults cannot drift from the contract. */
|
|
10
|
+
export const spinnerDefaults = { size: 'md', variant: 'accent', showLabel: false };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Scoped to this package, like the generated sheet beside it.
|
|
3
|
+
*
|
|
4
|
+
* `:where([data-dds-context="marketing"])` confines these rules without contributing
|
|
5
|
+
* specificity, so each one still ties or beats exactly what it did before.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/* Implementation CSS that the contract's staticCss cannot express. */
|
|
9
|
+
|
|
10
|
+
@keyframes dds-spinner-rotate {
|
|
11
|
+
to { transform: rotate(360deg); }
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
:where([data-dds-context="marketing"]) .dds-spinner__circle {
|
|
15
|
+
animation: dds-spinner-rotate var(--motion-duration-spinner) var(--motion-easing-spinner) infinite;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/*
|
|
19
|
+
* The ring stands still rather than disappearing. What is left is a full track with one
|
|
20
|
+
* arc drawn over it — still visibly an indicator, and still named by its label, which is
|
|
21
|
+
* what a reader who has turned motion off is relying on.
|
|
22
|
+
*/
|
|
23
|
+
@media (prefers-reduced-motion: reduce) {
|
|
24
|
+
:where([data-dds-context="marketing"]) .dds-spinner__circle {
|
|
25
|
+
animation: none;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/* GENERATED from statusdot.contract.json. Do not edit. */
|
|
2
|
+
|
|
3
|
+
:where([data-dds-context="marketing"]) .dds-statusdot {
|
|
4
|
+
transition-property: outline-color, outline-width;
|
|
5
|
+
display: inline-block;
|
|
6
|
+
outline-style: solid;
|
|
7
|
+
border-radius: var(--radius-pill);
|
|
8
|
+
height: var(--size-dot-diameter);
|
|
9
|
+
outline-width: var(--border-width-none);
|
|
10
|
+
transition-duration: var(--motion-duration-fast);
|
|
11
|
+
transition-timing-function: var(--motion-easing-standard);
|
|
12
|
+
width: var(--size-dot-diameter);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
:where([data-dds-context="marketing"]) .dds-statusdot:focus-visible {
|
|
16
|
+
outline-color: var(--color-border-focus);
|
|
17
|
+
outline-width: var(--border-width-focus);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
:where([data-dds-context="marketing"]) .dds-statusdot[data-variant="accent"] {
|
|
21
|
+
background-color: var(--color-bg-brand);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:where([data-dds-context="marketing"]) .dds-statusdot[data-variant="error"] {
|
|
25
|
+
background-color: var(--color-bg-danger);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
:where([data-dds-context="marketing"]) .dds-statusdot[data-variant="info"] {
|
|
29
|
+
background-color: var(--color-bg-info);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
:where([data-dds-context="marketing"]) .dds-statusdot[data-variant="success"] {
|
|
33
|
+
background-color: var(--color-bg-success);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
:where([data-dds-context="marketing"]) .dds-statusdot[data-variant="warning"] {
|
|
37
|
+
background-color: var(--color-bg-warning);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@media (prefers-reduced-motion: reduce) {
|
|
41
|
+
:where([data-dds-context="marketing"]) .dds-statusdot { transition: none !important; }
|
|
42
|
+
}
|
|
43
|
+
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import './StatusDot.css';
|
|
2
|
+
import './status-dot-impl.css';
|
|
3
|
+
import { type StatusDotProps } from './StatusDot.types.js';
|
|
4
|
+
export type { StatusDotProps };
|
|
5
|
+
/**
|
|
6
|
+
* The dot, and — when it has something to explain — the description attached to it.
|
|
7
|
+
*
|
|
8
|
+
* `tooltip` is the whole of the difference. Without it this renders one span and
|
|
9
|
+
* nothing else, which is what a dot in a list of twenty should cost. With it the dot
|
|
10
|
+
* becomes a tooltip anchor, and that brings two consequences the contract names and
|
|
11
|
+
* this file has to deliver.
|
|
12
|
+
*
|
|
13
|
+
* The first is the tab stop. `TooltipAnchor` reveals on pointer and on focus, and a
|
|
14
|
+
* span is not somewhere focus can rest — so the description would be one only a mouse
|
|
15
|
+
* ever reached. `tabIndex` is therefore set exactly when there is a tooltip to reach,
|
|
16
|
+
* and left alone otherwise: a dot with nothing to say is not a stop on the way to
|
|
17
|
+
* anything. It sits before the spread so a consumer with a reason to move the dot out
|
|
18
|
+
* of the tab order still can.
|
|
19
|
+
*
|
|
20
|
+
* The second is that the outermost element stops being the dot. `TooltipAnchor`'s own
|
|
21
|
+
* positioning wrapper goes around it, which is why the flex guard in
|
|
22
|
+
* status-dot-impl.css has to reach that box as well as this one — the flex child is
|
|
23
|
+
* whichever of the two the parent actually sees.
|
|
24
|
+
*
|
|
25
|
+
* And it carries no role and no name unless it is given one. The contract asks for a
|
|
26
|
+
* visible text label beside every dot and says outright that the text is what states
|
|
27
|
+
* the meaning — so a dot naming itself as well is heard twice. It was `role="status"`
|
|
28
|
+
* with a name defaulting to "Status", which made every dot on a page a live region
|
|
29
|
+
* announcing a word that says nothing: "Status, Online".
|
|
30
|
+
*
|
|
31
|
+
* `label` is the escape hatch for the rare dot standing alone, and it is what a dot
|
|
32
|
+
* carrying a tooltip must have — a tooltip makes it a tab stop, and a focusable thing
|
|
33
|
+
* with no name is announced as nothing at all.
|
|
34
|
+
*/
|
|
35
|
+
export declare function StatusDot({ variant, pulse, label, tooltip, ...rest }: StatusDotProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import './StatusDot.css';
|
|
3
|
+
import './status-dot-impl.css';
|
|
4
|
+
import { TooltipAnchor } from '../tooltip/TooltipAnchor.js';
|
|
5
|
+
import { given } from '../../given.js';
|
|
6
|
+
import { statusDotDefaults, statusDotParts } from './StatusDot.types.js';
|
|
7
|
+
/**
|
|
8
|
+
* The dot, and — when it has something to explain — the description attached to it.
|
|
9
|
+
*
|
|
10
|
+
* `tooltip` is the whole of the difference. Without it this renders one span and
|
|
11
|
+
* nothing else, which is what a dot in a list of twenty should cost. With it the dot
|
|
12
|
+
* becomes a tooltip anchor, and that brings two consequences the contract names and
|
|
13
|
+
* this file has to deliver.
|
|
14
|
+
*
|
|
15
|
+
* The first is the tab stop. `TooltipAnchor` reveals on pointer and on focus, and a
|
|
16
|
+
* span is not somewhere focus can rest — so the description would be one only a mouse
|
|
17
|
+
* ever reached. `tabIndex` is therefore set exactly when there is a tooltip to reach,
|
|
18
|
+
* and left alone otherwise: a dot with nothing to say is not a stop on the way to
|
|
19
|
+
* anything. It sits before the spread so a consumer with a reason to move the dot out
|
|
20
|
+
* of the tab order still can.
|
|
21
|
+
*
|
|
22
|
+
* The second is that the outermost element stops being the dot. `TooltipAnchor`'s own
|
|
23
|
+
* positioning wrapper goes around it, which is why the flex guard in
|
|
24
|
+
* status-dot-impl.css has to reach that box as well as this one — the flex child is
|
|
25
|
+
* whichever of the two the parent actually sees.
|
|
26
|
+
*
|
|
27
|
+
* And it carries no role and no name unless it is given one. The contract asks for a
|
|
28
|
+
* visible text label beside every dot and says outright that the text is what states
|
|
29
|
+
* the meaning — so a dot naming itself as well is heard twice. It was `role="status"`
|
|
30
|
+
* with a name defaulting to "Status", which made every dot on a page a live region
|
|
31
|
+
* announcing a word that says nothing: "Status, Online".
|
|
32
|
+
*
|
|
33
|
+
* `label` is the escape hatch for the rare dot standing alone, and it is what a dot
|
|
34
|
+
* carrying a tooltip must have — a tooltip makes it a tab stop, and a focusable thing
|
|
35
|
+
* with no name is announced as nothing at all.
|
|
36
|
+
*/
|
|
37
|
+
export function StatusDot({ variant = statusDotDefaults.variant, pulse = statusDotDefaults.pulse, label, tooltip, ...rest }) {
|
|
38
|
+
const described = given(tooltip);
|
|
39
|
+
const dot = (_jsx("span", { className: statusDotParts.root, "aria-label": label, "aria-hidden": label === undefined || undefined, "data-variant": variant, "data-pulse": pulse || undefined, tabIndex: described ? 0 : undefined, ...rest }));
|
|
40
|
+
if (!described)
|
|
41
|
+
return dot;
|
|
42
|
+
// The anchor clones the dot to attach its handlers and the aria-describedby, so the
|
|
43
|
+
// description belongs to the element carrying the role — not to the wrapper, which
|
|
44
|
+
// no assistive technology has any reason to visit.
|
|
45
|
+
return _jsx(TooltipAnchor, { content: tooltip, children: dot });
|
|
46
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'react';
|
|
2
|
+
export interface StatusDotOwnProps {
|
|
3
|
+
/**
|
|
4
|
+
* `accent` — A mark in the brand colour, for something worth noticing that is not a state — a feature that is new, an item the page is pointing at. It is the default because most dots on a marketing page are drawing attention rather than reporting a condition, which is the opposite of the balance an application view has.
|
|
5
|
+
* `success` — Available, online, healthy, or passing
|
|
6
|
+
* `warning` — Away, degraded, or approaching a limit
|
|
7
|
+
* `error` — Busy, offline, failed, or critical
|
|
8
|
+
* `info` — In progress, syncing, or informational
|
|
9
|
+
*/
|
|
10
|
+
variant?: 'accent' | 'success' | 'warning' | 'error' | 'info';
|
|
11
|
+
/** The status is live or actively changing — draws attention to an ongoing state */
|
|
12
|
+
pulse?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export type StatusDotProps = StatusDotOwnProps & Omit<HTMLAttributes<HTMLSpanElement>, 'className' | 'variant' | 'pulse' | 'label' | 'tooltip'> & ({
|
|
15
|
+
tooltip?: string;
|
|
16
|
+
label: string;
|
|
17
|
+
} | {
|
|
18
|
+
tooltip?: undefined;
|
|
19
|
+
label?: string;
|
|
20
|
+
});
|
|
21
|
+
/** The class each part carries. Apply these — do not retype them. */
|
|
22
|
+
export declare const statusDotParts: {
|
|
23
|
+
readonly root: "dds-statusdot";
|
|
24
|
+
};
|
|
25
|
+
/** Generated so defaults cannot drift from the contract. */
|
|
26
|
+
export declare const statusDotDefaults: {
|
|
27
|
+
readonly variant: "accent";
|
|
28
|
+
readonly pulse: false;
|
|
29
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// GENERATED from status-dot.contract.json. Do not edit.
|
|
2
|
+
/** The class each part carries. Apply these — do not retype them. */
|
|
3
|
+
export const statusDotParts = {
|
|
4
|
+
root: 'dds-statusdot',
|
|
5
|
+
};
|
|
6
|
+
/** Generated so defaults cannot drift from the contract. */
|
|
7
|
+
export const statusDotDefaults = { variant: 'accent', pulse: false };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Scoped to this package, like the generated sheet beside it.
|
|
3
|
+
*
|
|
4
|
+
* `:where([data-dds-context="marketing"])` confines these rules without contributing
|
|
5
|
+
* specificity, so every override below still ties or beats exactly what it did
|
|
6
|
+
* before — several here are written a class deeper than they look in order to
|
|
7
|
+
* match generated CSS, and a scope that carried weight would break all of them.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/* Implementation CSS that the contract's staticCss cannot express. */
|
|
11
|
+
|
|
12
|
+
:where([data-dds-context="marketing"]) .dds-statusdot {
|
|
13
|
+
flex-shrink: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@keyframes dds-statusdot-pulse {
|
|
17
|
+
0%, 100% { opacity: 1; }
|
|
18
|
+
50% { opacity: 0.5; }
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
:where([data-dds-context="marketing"]) .dds-statusdot[data-pulse] {
|
|
22
|
+
animation: dds-statusdot-pulse var(--motion-duration-pulse) var(--motion-easing-enter) infinite;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@media (prefers-reduced-motion: reduce) {
|
|
26
|
+
:where([data-dds-context="marketing"]) .dds-statusdot[data-pulse] {
|
|
27
|
+
animation: none;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/*
|
|
32
|
+
* The flex guard, again, one box out.
|
|
33
|
+
*
|
|
34
|
+
* A tooltip puts TooltipAnchor's positioning wrapper between the dot and whatever row
|
|
35
|
+
* it sits in, so the flex child stops being the dot and the rule above stops reaching
|
|
36
|
+
* it — a dot beside a long name would be squashed into an ellipse by the text rather
|
|
37
|
+
* than holding its diameter. The wrapper is another module's DOM and carries no class
|
|
38
|
+
* of ours, so it is matched by what it contains.
|
|
39
|
+
*/
|
|
40
|
+
:where([data-dds-context="marketing"]) .dds-tooltip-anchor:has(> .dds-statusdot) {
|
|
41
|
+
flex-shrink: 0;
|
|
42
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/* GENERATED from subdomainnavbar.contract.json. Do not edit. */
|
|
2
|
+
|
|
3
|
+
:where([data-dds-context="marketing"]) .dds-subdomainnavbar {
|
|
4
|
+
align-items: center;
|
|
5
|
+
box-sizing: border-box;
|
|
6
|
+
display: flex;
|
|
7
|
+
inline-size: 100%;
|
|
8
|
+
inset-block-start: 0;
|
|
9
|
+
justify-content: center;
|
|
10
|
+
position: sticky;
|
|
11
|
+
background-color: var(--color-bg-page);
|
|
12
|
+
box-shadow: var(--elevation-edge-bottom);
|
|
13
|
+
color: var(--color-fg-default);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:where([data-dds-context="marketing"]) .dds-subdomainnavbar .dds-subdomainnavbar__inner {
|
|
17
|
+
align-items: center;
|
|
18
|
+
box-sizing: border-box;
|
|
19
|
+
container-type: inline-size;
|
|
20
|
+
display: flex;
|
|
21
|
+
inline-size: 100%;
|
|
22
|
+
justify-content: flex-start;
|
|
23
|
+
min-inline-size: 0;
|
|
24
|
+
block-size: var(--size-bar-height);
|
|
25
|
+
gap: var(--space-gap-xl);
|
|
26
|
+
padding-block: var(--space-inset-2xs);
|
|
27
|
+
padding-inline: var(--space-inset-lg);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
:where([data-dds-context="marketing"]) .dds-subdomainnavbar .dds-subdomainnavbar__brand {
|
|
31
|
+
align-items: center;
|
|
32
|
+
display: flex;
|
|
33
|
+
flex-shrink: 0;
|
|
34
|
+
block-size: var(--icon-size-md);
|
|
35
|
+
gap: var(--space-gap-sm);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
:where([data-dds-context="marketing"]) .dds-subdomainnavbar .dds-subdomainnavbar__nav {
|
|
39
|
+
align-items: center;
|
|
40
|
+
display: flex;
|
|
41
|
+
min-inline-size: 0;
|
|
42
|
+
position: relative;
|
|
43
|
+
gap: var(--space-gap-xs);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
:where([data-dds-context="marketing"]) .dds-subdomainnavbar .dds-subdomainnavbar__utilities {
|
|
47
|
+
align-items: center;
|
|
48
|
+
display: flex;
|
|
49
|
+
flex-shrink: 0;
|
|
50
|
+
gap: var(--space-gap-sm);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
:where([data-dds-context="marketing"]) .dds-subdomainnavbar .dds-subdomainnavbar__trigger {
|
|
54
|
+
align-items: center;
|
|
55
|
+
appearance: none;
|
|
56
|
+
border-style: none;
|
|
57
|
+
color: inherit;
|
|
58
|
+
cursor: pointer;
|
|
59
|
+
display: inline-flex;
|
|
60
|
+
flex-shrink: 0;
|
|
61
|
+
justify-content: center;
|
|
62
|
+
outline-style: solid;
|
|
63
|
+
padding: 0;
|
|
64
|
+
background-color: var(--color-bg-transparent);
|
|
65
|
+
border-radius: var(--radius-control-sm);
|
|
66
|
+
min-block-size: var(--size-target-min);
|
|
67
|
+
min-inline-size: var(--size-target-min);
|
|
68
|
+
outline-width: var(--border-width-none);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
:where([data-dds-context="marketing"]) .dds-subdomainnavbar .dds-subdomainnavbar__panel-host {
|
|
72
|
+
display: contents;
|
|
73
|
+
color: var(--color-fg-default);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
:where([data-dds-context="marketing"]) .dds-subdomainnavbar .dds-subdomainnavbar__trigger:focus-visible {
|
|
77
|
+
outline-color: var(--color-border-focus);
|
|
78
|
+
outline-width: var(--border-width-focus);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
:where([data-dds-context="marketing"]) .dds-subdomainnavbar[data-tone="inverse"] {
|
|
82
|
+
background-color: var(--color-bg-brand-strong);
|
|
83
|
+
color: var(--color-fg-on-brand-strong);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
:where([data-dds-context="marketing"]) .dds-subdomainnavbar[data-tone="inverse"] .dds-subdomainnavbar__trigger:focus-visible {
|
|
87
|
+
outline-color: var(--color-border-focus-on-brand-strong);
|
|
88
|
+
}
|
|
89
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import './SubdomainNavbar.css';
|
|
2
|
+
import './subdomain-navbar-impl.css';
|
|
3
|
+
import { type SubdomainNavbarProps } from './SubdomainNavbar.types.js';
|
|
4
|
+
export type { SubdomainNavbarProps };
|
|
5
|
+
/**
|
|
6
|
+
* The bar across the top of a subdomain, and the plain sibling of Navbar.
|
|
7
|
+
*
|
|
8
|
+
* What it does not do is the point of it. There is no pill, nothing gathers, and nothing here reads
|
|
9
|
+
* the scroll position — a subdomain is somewhere a reader works, and chrome that rearranged itself
|
|
10
|
+
* while they read would be motion answering nothing. The marketing bar's behaviour is that site's
|
|
11
|
+
* signature and belongs to that site.
|
|
12
|
+
*
|
|
13
|
+
* What it shares is everything below the bar itself: the destinations are NavbarItem, the sections
|
|
14
|
+
* that open are NavbarMenu, and the surface it collapses into is NavbarPanel, which brings its own
|
|
15
|
+
* focus trap, its Escape and its scroll lock. That sharing is the argument for this being a second
|
|
16
|
+
* component rather than a variant of the first — the parts that carry the design were already
|
|
17
|
+
* separate, so a second bar costs a contract and a row.
|
|
18
|
+
*
|
|
19
|
+
* No `role="banner"`: a `<header>` outside a sectioning element already is that landmark.
|
|
20
|
+
*/
|
|
21
|
+
export declare function SubdomainNavbar({ tone, label, menuLabel, closeLabel, brand, utilities, menuOpen, onMenuOpenChange, children, ...rest }: SubdomainNavbarProps): import("react").JSX.Element;
|