@deriv-com/dds-marketing 0.1.0 → 0.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/.llm/components/accordion.md +193 -0
- package/.llm/components/accordionitem.md +236 -0
- package/.llm/components/aspectratio.md +212 -0
- package/.llm/components/badge.md +231 -0
- package/.llm/components/bottomsheet.md +404 -0
- package/.llm/components/breadcrumb.md +197 -0
- package/.llm/components/breadcrumbitem.md +178 -0
- package/.llm/components/button.md +271 -0
- package/.llm/components/buttonicon.md +313 -0
- package/.llm/components/card.md +313 -0
- package/.llm/components/cardbody.md +409 -0
- package/.llm/components/cardbutton.md +259 -0
- package/.llm/components/checkbox.md +285 -0
- package/.llm/components/divider.md +230 -0
- package/.llm/components/dropdownmenu.md +453 -0
- package/.llm/components/filterchip.md +314 -0
- package/.llm/components/footer.md +408 -0
- package/.llm/components/footergroup.md +241 -0
- package/.llm/components/grid.md +659 -0
- package/.llm/components/icon.md +194 -0
- package/.llm/components/link.md +354 -0
- package/.llm/components/menuitem.md +218 -0
- package/.llm/components/navbar.md +458 -0
- package/.llm/components/navbaritem.md +238 -0
- package/.llm/components/navbarmenu.md +319 -0
- package/.llm/components/navbarmenugroup.md +184 -0
- package/.llm/components/navbarpanel.md +255 -0
- package/.llm/components/navbarswitcher.md +343 -0
- package/.llm/components/navbarswitcheroption.md +156 -0
- package/.llm/components/option.md +268 -0
- package/.llm/components/pagination.md +361 -0
- package/.llm/components/removablechip.md +247 -0
- package/.llm/components/row.md +381 -0
- package/.llm/components/scroller.md +470 -0
- package/.llm/components/searchinput.md +279 -0
- package/.llm/components/segmentedcontrol.md +358 -0
- package/.llm/components/segmentedcontrolitem.md +272 -0
- package/.llm/components/select.md +509 -0
- package/.llm/components/selectchip.md +334 -0
- package/.llm/components/spinner.md +222 -0
- package/.llm/components/stack.md +334 -0
- package/.llm/components/statusdot.md +205 -0
- package/.llm/components/subdomainnavbar.md +327 -0
- package/.llm/components/tab.md +291 -0
- package/.llm/components/table.md +660 -0
- package/.llm/components/tablebody.md +258 -0
- package/.llm/components/tablecell.md +248 -0
- package/.llm/components/tablehead.md +248 -0
- package/.llm/components/tableheadercell.md +298 -0
- package/.llm/components/tablerow.md +285 -0
- package/.llm/components/tablist.md +210 -0
- package/.llm/components/textarea.md +362 -0
- package/.llm/components/textinput.md +467 -0
- package/.llm/components/tooltip.md +267 -0
- package/.llm/components/typography.md +245 -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 +48 -0
- package/.llm/digest/buttonicon.md +61 -0
- package/.llm/digest/card.md +50 -0
- package/.llm/digest/cardbody.md +68 -0
- package/.llm/digest/cardbutton.md +49 -0
- package/.llm/digest/checkbox.md +63 -0
- package/.llm/digest/divider.md +52 -0
- package/.llm/digest/dropdownmenu.md +67 -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/link.md +59 -0
- package/.llm/digest/menuitem.md +46 -0
- package/.llm/digest/navbar.md +60 -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/pagination.md +71 -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 +68 -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/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 +86 -0
- package/.llm/rules.md +122 -0
- package/.llm/tokens.md +341 -0
- package/AGENTS.md +164 -0
- package/LICENSE +21 -0
- package/README.md +63 -15
- 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 +98 -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 +141 -0
- package/dist/components/core/button/Button.d.ts +25 -0
- package/dist/components/core/button/Button.js +28 -0
- package/dist/components/core/button/Button.types.d.ts +40 -0
- package/dist/components/core/button/Button.types.js +9 -0
- package/dist/components/core/button/button-impl.css +46 -0
- package/dist/components/core/button-icon/ButtonIcon.css +135 -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 +65 -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 +33 -0
- package/dist/components/core/card/Card.types.js +7 -0
- package/dist/components/core/card-body/CardBody.css +139 -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 +61 -0
- package/dist/components/core/card-body/CardBody.types.js +15 -0
- package/dist/components/core/card-body/card-body-impl.css +87 -0
- package/dist/components/core/card-button/CardButton.css +73 -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 +24 -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 +149 -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 +146 -0
- package/dist/components/core/dropdown-menu/DropdownMenu.d.ts +22 -0
- package/dist/components/core/dropdown-menu/DropdownMenu.js +309 -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 +149 -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 +90 -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 +135 -0
- package/dist/components/core/navbar/Navbar.d.ts +36 -0
- package/dist/components/core/navbar/Navbar.js +371 -0
- package/dist/components/core/navbar/Navbar.types.d.ts +49 -0
- package/dist/components/core/navbar/Navbar.types.js +17 -0
- package/dist/components/core/navbar/navbar-impl.css +590 -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 +128 -0
- package/dist/components/core/navbar-menu/NavbarMenu.d.ts +5 -0
- package/dist/components/core/navbar-menu/NavbarMenu.js +186 -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 +117 -0
- package/dist/components/core/navbar-switcher/NavbarSwitcher.d.ts +20 -0
- package/dist/components/core/navbar-switcher/NavbarSwitcher.js +90 -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 +237 -0
- package/dist/components/core/pagination/Pagination.d.ts +30 -0
- package/dist/components/core/pagination/Pagination.js +406 -0
- package/dist/components/core/pagination/Pagination.types.d.ts +59 -0
- package/dist/components/core/pagination/Pagination.types.js +14 -0
- package/dist/components/core/pagination/pagination-impl.css +17 -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 +400 -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 +155 -0
- package/dist/components/core/select-chip/SelectChip.d.ts +20 -0
- package/dist/components/core/select-chip/SelectChip.js +273 -0
- package/dist/components/core/select-chip/SelectChip.types.d.ts +56 -0
- package/dist/components/core/select-chip/SelectChip.types.js +14 -0
- package/dist/components/core/select-chip/select-chip-impl.css +38 -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 +75 -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 +114 -1
- package/dist/components/index.js +115 -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/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 +289 -241
- package/package.json +18 -4
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Scoped to this package, like the generated sheet beside it.
|
|
3
|
+
*
|
|
4
|
+
* `:where([data-dds-context="marketing"])` confines this rule without contributing
|
|
5
|
+
* specificity, so the override below still ties or beats exactly what it did before —
|
|
6
|
+
* it is written a class deeper than it looks in order to match generated CSS, and a
|
|
7
|
+
* scope that carried weight would break it.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/*
|
|
11
|
+
* Implementation CSS the contract cannot express.
|
|
12
|
+
*
|
|
13
|
+
* A `structure` rule's `when` must name a styling axis, and `description` is not one.
|
|
14
|
+
* Making it one would emit a rule per value and multiply every cell of the variant grid
|
|
15
|
+
* for a single alignment declaration.
|
|
16
|
+
*
|
|
17
|
+
* What it decides is where the box sits against the words, and the answer differs by what
|
|
18
|
+
* the second line is. Flush with the first line is right when the label wrapped: a box
|
|
19
|
+
* floating to the middle of three lines is level with none of them, and the line it names
|
|
20
|
+
* is the first. Centred is right when the second line is a description, because then the
|
|
21
|
+
* box belongs to the pair rather than to the first half of it.
|
|
22
|
+
*
|
|
23
|
+
* `:has()` is what makes that possible and also the limit of it. CSS can see that a
|
|
24
|
+
* description exists; it cannot see that the label took two lines. So a wrapping label
|
|
25
|
+
* that *also* carries a description centres, which is the one arrangement of the four
|
|
26
|
+
* this rule gets wrong. Written down because it is a known edge rather than an oversight
|
|
27
|
+
* — the fix would be a line count, and there is no such selector.
|
|
28
|
+
*
|
|
29
|
+
* Three classes deep deliberately. The generated rule that sets flex-start is two, and
|
|
30
|
+
* `:has()` takes the specificity of its argument, so a two-class selector here would tie
|
|
31
|
+
* and leave source order to decide it.
|
|
32
|
+
*/
|
|
33
|
+
:where([data-dds-context='marketing'])
|
|
34
|
+
.dds-checkbox
|
|
35
|
+
.dds-checkbox__control:has(.dds-checkbox__description-text) {
|
|
36
|
+
align-items: center;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/*
|
|
40
|
+
* And where the box sits on the line, which is the other thing no token can say.
|
|
41
|
+
*
|
|
42
|
+
* Product's label is font.body.md at fourteen, so its line box is twenty-one and the
|
|
43
|
+
* twenty-pixel square is half a pixel off the middle of it — near enough that nothing
|
|
44
|
+
* carries the difference. Marketing's body.md is sixteen. The line is twenty-four, the
|
|
45
|
+
* square is still twenty, and `align-items: flex-start` puts the box's top edge on the
|
|
46
|
+
* line box's top edge, which leaves it two pixels above the letters it belongs to.
|
|
47
|
+
*
|
|
48
|
+
* The square stays twenty because that is the mark's size, not the line's: at
|
|
49
|
+
* twenty-four it filled the line and read as a panel beside the words rather than a box
|
|
50
|
+
* in front of them. So the measure is left alone and the position is corrected.
|
|
51
|
+
*
|
|
52
|
+
* Half the difference between the line and the box, taken from the two of them rather
|
|
53
|
+
* than written down: `1lh` is the box's own computed line-height, which it inherits from
|
|
54
|
+
* the row and which is the label's, and the token is the box's own. Retune either and
|
|
55
|
+
* this follows. A browser without `lh` drops the declaration and gets the two pixels
|
|
56
|
+
* back, which is the behaviour this replaces rather than something worse.
|
|
57
|
+
*
|
|
58
|
+
* Only where the row is not already centred. With a description the control centres the
|
|
59
|
+
* box on the pair, and an offset on top of that would push it below the middle it was
|
|
60
|
+
* just put in.
|
|
61
|
+
*/
|
|
62
|
+
:where([data-dds-context='marketing'])
|
|
63
|
+
.dds-checkbox
|
|
64
|
+
.dds-checkbox__control:not(:has(.dds-checkbox__description-text))
|
|
65
|
+
> .dds-checkbox__box {
|
|
66
|
+
margin-block-start: calc((1lh - var(--size-checkbox-box)) / 2);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/*
|
|
70
|
+
* And the same correction for the mark beside the message, for the same reason.
|
|
71
|
+
*
|
|
72
|
+
* `align-items: flex-start` on the message is the contract's, and right: a message that
|
|
73
|
+
* runs to two lines wants its glyph on the first of them rather than floating to the
|
|
74
|
+
* middle of the pair. What it aligns is the top edges, though, and the glyph is sixteen
|
|
75
|
+
* against a line box of twenty-one — so the mark sat two and a half pixels above the
|
|
76
|
+
* words it belongs to, on every status.
|
|
77
|
+
*
|
|
78
|
+
* Product's message is font.body-strong.sm at twelve, an eighteen-pixel line, so the
|
|
79
|
+
* same glyph is a pixel out there and nobody reads it. This package sets the message in
|
|
80
|
+
* font.body.sm at fourteen, which is what makes the difference visible — the same step
|
|
81
|
+
* up that put the box two pixels off its label.
|
|
82
|
+
*
|
|
83
|
+
* `1lh` is the line the glyph is sitting in, read from the message it inherits from.
|
|
84
|
+
* `--icon-size-xs` is the step the component asks Icon for a few lines above; the two
|
|
85
|
+
* have to be changed together, which is worth saying out loud because nothing here
|
|
86
|
+
* enforces it.
|
|
87
|
+
*/
|
|
88
|
+
:where([data-dds-context='marketing']) .dds-checkbox .dds-checkbox__message > .dds-icon {
|
|
89
|
+
margin-block-start: calc((1lh - var(--icon-size-xs)) / 2);
|
|
90
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/* GENERATED from divider.contract.json. Do not edit. */
|
|
2
|
+
|
|
3
|
+
:where([data-dds-context="marketing"]) .dds-divider {
|
|
4
|
+
align-items: center;
|
|
5
|
+
display: flex;
|
|
6
|
+
gap: var(--space-gap-sm);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
:where([data-dds-context="marketing"]) .dds-divider .dds-divider__line {
|
|
10
|
+
flex: auto;
|
|
11
|
+
flex-basis: 0;
|
|
12
|
+
background-color: var(--color-border-subtle);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
:where([data-dds-context="marketing"]) .dds-divider .dds-divider__label {
|
|
16
|
+
white-space: nowrap;
|
|
17
|
+
color: var(--color-fg-tertiary);
|
|
18
|
+
font-family: var(--font-label-sm-family);
|
|
19
|
+
font-size: var(--font-label-sm-size);
|
|
20
|
+
font-weight: var(--font-label-sm-weight);
|
|
21
|
+
letter-spacing: var(--font-label-sm-letter-spacing);
|
|
22
|
+
line-height: var(--font-label-sm-line-height);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
:where([data-dds-context="marketing"]) .dds-divider[data-orientation="horizontal"] {
|
|
26
|
+
inline-size: 100%;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
:where([data-dds-context="marketing"]) .dds-divider[data-orientation="vertical"] {
|
|
30
|
+
align-self: stretch;
|
|
31
|
+
flex-direction: column;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
:where([data-dds-context="marketing"]) .dds-divider[data-orientation="horizontal"] .dds-divider__line {
|
|
35
|
+
block-size: var(--border-width-default);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
:where([data-dds-context="marketing"]) .dds-divider[data-orientation="vertical"] .dds-divider__line {
|
|
39
|
+
inline-size: var(--border-width-default);
|
|
40
|
+
}
|
|
41
|
+
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import './Divider.css';
|
|
2
|
+
import { type DividerProps } from './Divider.types.js';
|
|
3
|
+
export type { DividerProps };
|
|
4
|
+
/**
|
|
5
|
+
* A rule between two groups, and one shape for both the bare case and the labelled one.
|
|
6
|
+
*
|
|
7
|
+
* The line is a child rather than a border on the root, because a labelled divider
|
|
8
|
+
* needs two of them and a border cannot be halved. That makes the bare case one
|
|
9
|
+
* element more than an `<hr>` would be, and buys a component whose ink and thickness
|
|
10
|
+
* are bound in exactly one place — and a labelled divider that is this component
|
|
11
|
+
* rather than a second one wearing the same name.
|
|
12
|
+
*
|
|
13
|
+
* Three renderings, and the difference between them is entirely what reaches the
|
|
14
|
+
* accessibility tree:
|
|
15
|
+
*
|
|
16
|
+
* A bare divider is `role="separator"`, which is what says the groups either side of
|
|
17
|
+
* it are different groups. Vertical adds `aria-orientation`, and horizontal
|
|
18
|
+
* deliberately does not: a separator is horizontal by default, so writing it there
|
|
19
|
+
* would be stating the default out loud.
|
|
20
|
+
*
|
|
21
|
+
* A labelled divider is not a separator at all. A non-focusable separator's children
|
|
22
|
+
* are presentational to a screen reader — the ARIA spec's own list — so a word inside
|
|
23
|
+
* one is drawn and never announced, which is the exact opposite of why anybody puts a
|
|
24
|
+
* word in a divider. With the role dropped, the word is ordinary text on the page and
|
|
25
|
+
* is read as such, and the two lines either side of it are decoration, which is all
|
|
26
|
+
* they ever were. `aria-orientation` goes with the role rather than staying behind: an
|
|
27
|
+
* orientation on a box that is not a separator describes nothing.
|
|
28
|
+
*
|
|
29
|
+
* A decorative divider is hidden outright. `aria-hidden` rather than
|
|
30
|
+
* `role="presentation"`: the bare case has no children to worry about, so the two
|
|
31
|
+
* would be equivalent here — but this component can hold a child, and
|
|
32
|
+
* `role="presentation"` does not travel to one. The type makes that pairing
|
|
33
|
+
* impossible, and the attribute that survives a future where it is not is the one to
|
|
34
|
+
* write now.
|
|
35
|
+
*
|
|
36
|
+
* The label is read for truth rather than for presence. `presentWhen` in the contract
|
|
37
|
+
* names the prop, and the generated test renders `label=""` and asserts the part is
|
|
38
|
+
* *not* there — an empty string is a word nobody typed, and a span holding nothing
|
|
39
|
+
* would still open the root's gap on both sides of it and split the rule in two
|
|
40
|
+
* around a space.
|
|
41
|
+
*
|
|
42
|
+
* The spread goes first, so a consumer can override what is not load-bearing and
|
|
43
|
+
* cannot override what is. Everything this component decides about semantics is
|
|
44
|
+
* written after it.
|
|
45
|
+
*/
|
|
46
|
+
export declare function Divider({ orientation, decorative, label, ...rest }: DividerProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import './Divider.css';
|
|
3
|
+
import { dividerDefaults, dividerParts } from './Divider.types.js';
|
|
4
|
+
/**
|
|
5
|
+
* A rule between two groups, and one shape for both the bare case and the labelled one.
|
|
6
|
+
*
|
|
7
|
+
* The line is a child rather than a border on the root, because a labelled divider
|
|
8
|
+
* needs two of them and a border cannot be halved. That makes the bare case one
|
|
9
|
+
* element more than an `<hr>` would be, and buys a component whose ink and thickness
|
|
10
|
+
* are bound in exactly one place — and a labelled divider that is this component
|
|
11
|
+
* rather than a second one wearing the same name.
|
|
12
|
+
*
|
|
13
|
+
* Three renderings, and the difference between them is entirely what reaches the
|
|
14
|
+
* accessibility tree:
|
|
15
|
+
*
|
|
16
|
+
* A bare divider is `role="separator"`, which is what says the groups either side of
|
|
17
|
+
* it are different groups. Vertical adds `aria-orientation`, and horizontal
|
|
18
|
+
* deliberately does not: a separator is horizontal by default, so writing it there
|
|
19
|
+
* would be stating the default out loud.
|
|
20
|
+
*
|
|
21
|
+
* A labelled divider is not a separator at all. A non-focusable separator's children
|
|
22
|
+
* are presentational to a screen reader — the ARIA spec's own list — so a word inside
|
|
23
|
+
* one is drawn and never announced, which is the exact opposite of why anybody puts a
|
|
24
|
+
* word in a divider. With the role dropped, the word is ordinary text on the page and
|
|
25
|
+
* is read as such, and the two lines either side of it are decoration, which is all
|
|
26
|
+
* they ever were. `aria-orientation` goes with the role rather than staying behind: an
|
|
27
|
+
* orientation on a box that is not a separator describes nothing.
|
|
28
|
+
*
|
|
29
|
+
* A decorative divider is hidden outright. `aria-hidden` rather than
|
|
30
|
+
* `role="presentation"`: the bare case has no children to worry about, so the two
|
|
31
|
+
* would be equivalent here — but this component can hold a child, and
|
|
32
|
+
* `role="presentation"` does not travel to one. The type makes that pairing
|
|
33
|
+
* impossible, and the attribute that survives a future where it is not is the one to
|
|
34
|
+
* write now.
|
|
35
|
+
*
|
|
36
|
+
* The label is read for truth rather than for presence. `presentWhen` in the contract
|
|
37
|
+
* names the prop, and the generated test renders `label=""` and asserts the part is
|
|
38
|
+
* *not* there — an empty string is a word nobody typed, and a span holding nothing
|
|
39
|
+
* would still open the root's gap on both sides of it and split the rule in two
|
|
40
|
+
* around a space.
|
|
41
|
+
*
|
|
42
|
+
* The spread goes first, so a consumer can override what is not load-bearing and
|
|
43
|
+
* cannot override what is. Everything this component decides about semantics is
|
|
44
|
+
* written after it.
|
|
45
|
+
*/
|
|
46
|
+
export function Divider({ orientation = dividerDefaults.orientation, decorative = dividerDefaults.decorative, label, ...rest }) {
|
|
47
|
+
// A word, rather than a prop that was passed. See above: "" is not a label.
|
|
48
|
+
const labelled = typeof label === 'string' && label !== '';
|
|
49
|
+
const separator = !decorative && !labelled;
|
|
50
|
+
return (_jsxs("div", { ...rest, className: dividerParts.root, "data-orientation": orientation, role: separator ? 'separator' : undefined, "aria-orientation": separator && orientation === 'vertical' ? 'vertical' : undefined, "aria-hidden": decorative ? true : undefined, children: [_jsx("span", { className: dividerParts.line }), labelled ? (_jsxs(_Fragment, { children: [_jsx("span", { className: dividerParts.label, children: label }), _jsx("span", { className: dividerParts.line })] })) : null] }));
|
|
51
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface DividerOwnProps {
|
|
2
|
+
/**
|
|
3
|
+
* `horizontal` — The default, and nearly every divider: a rule across a stack, separating what is above it from what is below. It takes all of whatever contains it rather than waiting to be stretched, so it spans a block, a flex column and a centred grid cell alike — and in a flex row, where it has no business being, it takes the row's whole width rather than a share of it, which is the sign that the rule wanted the other axis
|
|
4
|
+
* `vertical` — A rule down a row, separating items beside one another. It stretches to the height of the row rather than declaring one, so it is exactly as tall as what it stands between — and in a container with no height of its own it draws nothing, which is the mirror of the horizontal case and the same thing to check first
|
|
5
|
+
*/
|
|
6
|
+
orientation?: 'horizontal' | 'vertical';
|
|
7
|
+
}
|
|
8
|
+
export type DividerProps = DividerOwnProps & ({
|
|
9
|
+
decorative?: boolean;
|
|
10
|
+
label?: undefined;
|
|
11
|
+
} | {
|
|
12
|
+
decorative?: false;
|
|
13
|
+
label?: string;
|
|
14
|
+
});
|
|
15
|
+
/** The class each part carries. Apply these — do not retype them. */
|
|
16
|
+
export declare const dividerParts: {
|
|
17
|
+
readonly root: "dds-divider";
|
|
18
|
+
readonly line: "dds-divider__line";
|
|
19
|
+
readonly label: "dds-divider__label";
|
|
20
|
+
};
|
|
21
|
+
/** Generated so defaults cannot drift from the contract. */
|
|
22
|
+
export declare const dividerDefaults: {
|
|
23
|
+
readonly orientation: "horizontal";
|
|
24
|
+
readonly decorative: false;
|
|
25
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// GENERATED from divider.contract.json. Do not edit.
|
|
2
|
+
/** The class each part carries. Apply these — do not retype them. */
|
|
3
|
+
export const dividerParts = {
|
|
4
|
+
root: 'dds-divider',
|
|
5
|
+
line: 'dds-divider__line',
|
|
6
|
+
label: 'dds-divider__label',
|
|
7
|
+
};
|
|
8
|
+
/** Generated so defaults cannot drift from the contract. */
|
|
9
|
+
export const dividerDefaults = { orientation: 'horizontal', decorative: false };
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/* GENERATED from dropdownmenu.contract.json. Do not edit. */
|
|
2
|
+
|
|
3
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu {
|
|
4
|
+
display: inline-flex;
|
|
5
|
+
position: relative;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu .dds-dropdownmenu__trigger {
|
|
9
|
+
transition-property: background-color, outline-color, outline-width;
|
|
10
|
+
align-items: center;
|
|
11
|
+
background-color: transparent;
|
|
12
|
+
border-style: solid;
|
|
13
|
+
box-sizing: border-box;
|
|
14
|
+
cursor: pointer;
|
|
15
|
+
display: inline-flex;
|
|
16
|
+
flex-direction: row;
|
|
17
|
+
justify-content: center;
|
|
18
|
+
outline-style: solid;
|
|
19
|
+
position: relative;
|
|
20
|
+
white-space: nowrap;
|
|
21
|
+
block-size: var(--size-control-md);
|
|
22
|
+
border-color: var(--color-border-strong);
|
|
23
|
+
border-radius: var(--radius-pill);
|
|
24
|
+
border-width: var(--border-width-emphasis);
|
|
25
|
+
color: var(--color-fg-default);
|
|
26
|
+
gap: var(--space-gap-sm);
|
|
27
|
+
outline-width: var(--border-width-none);
|
|
28
|
+
padding-inline: var(--space-control-md);
|
|
29
|
+
transition-duration: var(--motion-duration-normal);
|
|
30
|
+
transition-timing-function: var(--motion-easing-standard);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu .dds-dropdownmenu__surface {
|
|
34
|
+
border-style: solid;
|
|
35
|
+
box-sizing: border-box;
|
|
36
|
+
inline-size: max-content;
|
|
37
|
+
inset-block-start: 100%;
|
|
38
|
+
list-style: none;
|
|
39
|
+
margin: 0;
|
|
40
|
+
min-inline-size: 100%;
|
|
41
|
+
overflow-y: auto;
|
|
42
|
+
position: absolute;
|
|
43
|
+
background-color: var(--color-bg-surface-raised);
|
|
44
|
+
border-color: var(--color-border-subtle);
|
|
45
|
+
border-radius: var(--radius-menu);
|
|
46
|
+
border-width: var(--border-width-default);
|
|
47
|
+
box-shadow: var(--elevation-surface-floating);
|
|
48
|
+
margin-block-start: var(--space-gap-sm);
|
|
49
|
+
max-block-size: var(--size-menu-max);
|
|
50
|
+
padding-block: var(--space-inset-2xs);
|
|
51
|
+
padding-inline: var(--space-inset-2xs);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu[data-variant="plain"] .dds-dropdownmenu__trigger {
|
|
55
|
+
color: inherit;
|
|
56
|
+
border-width: var(--border-width-none);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu[data-alignment="end"] .dds-dropdownmenu__surface {
|
|
60
|
+
inset-inline-end: 0;
|
|
61
|
+
inset-inline-start: auto;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu[data-alignment="start"] .dds-dropdownmenu__surface {
|
|
65
|
+
inset-inline-end: auto;
|
|
66
|
+
inset-inline-start: 0;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu .dds-dropdownmenu__chevron {
|
|
70
|
+
block-size: var(--icon-control-lg);
|
|
71
|
+
color: var(--color-fg-muted);
|
|
72
|
+
inline-size: var(--icon-control-lg);
|
|
73
|
+
transition-duration: var(--motion-duration-fast);
|
|
74
|
+
transition-timing-function: var(--motion-easing-standard);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu .dds-dropdownmenu__icon {
|
|
78
|
+
block-size: var(--icon-control-lg);
|
|
79
|
+
inline-size: var(--icon-control-lg);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu .dds-dropdownmenu__label {
|
|
83
|
+
font-family: var(--font-label-md-family);
|
|
84
|
+
font-size: var(--font-label-md-size);
|
|
85
|
+
font-weight: var(--font-label-md-weight);
|
|
86
|
+
letter-spacing: var(--font-label-md-letter-spacing);
|
|
87
|
+
line-height: var(--font-label-md-line-height);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu .dds-dropdownmenu__trigger:hover:where(:not(:disabled)) {
|
|
91
|
+
background-color: var(--color-bg-hover);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu .dds-dropdownmenu__trigger:active {
|
|
95
|
+
background-color: var(--color-bg-active);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu .dds-dropdownmenu__trigger:focus-visible {
|
|
99
|
+
outline-color: var(--color-border-focus);
|
|
100
|
+
outline-width: var(--border-width-focus);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu[data-size="sm"] .dds-dropdownmenu__chevron {
|
|
104
|
+
block-size: var(--icon-control-md);
|
|
105
|
+
inline-size: var(--icon-control-md);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu[data-size="sm"] .dds-dropdownmenu__icon {
|
|
109
|
+
block-size: var(--icon-control-md);
|
|
110
|
+
inline-size: var(--icon-control-md);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu[data-size="sm"] .dds-dropdownmenu__label {
|
|
114
|
+
font-family: var(--font-label-sm-family);
|
|
115
|
+
font-size: var(--font-label-sm-size);
|
|
116
|
+
font-weight: var(--font-label-sm-weight);
|
|
117
|
+
letter-spacing: var(--font-label-sm-letter-spacing);
|
|
118
|
+
line-height: var(--font-label-sm-line-height);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu[data-size="sm"] .dds-dropdownmenu__trigger {
|
|
122
|
+
block-size: var(--size-control-sm);
|
|
123
|
+
padding-inline: var(--space-control-sm);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu[data-tone="inverse"] .dds-dropdownmenu__trigger:hover:where(:not(:disabled)) {
|
|
127
|
+
background-color: var(--color-bg-hover-inverse);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu[data-tone="inverse"] .dds-dropdownmenu__trigger:active {
|
|
131
|
+
background-color: var(--color-bg-active-inverse);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu[data-tone="inverse"] .dds-dropdownmenu__trigger:focus-visible {
|
|
135
|
+
outline-color: var(--color-border-focus-inverse);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu[data-variant="plain"][data-size="sm"] .dds-dropdownmenu__trigger {
|
|
139
|
+
block-size: var(--size-control-md);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
@media (prefers-reduced-motion: reduce) {
|
|
143
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu,
|
|
144
|
+
:where([data-dds-context="marketing"]) .dds-dropdownmenu * { transition: none; }
|
|
145
|
+
}
|
|
146
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import './DropdownMenu.css';
|
|
2
|
+
import './dropdown-menu-impl.css';
|
|
3
|
+
import { type DropdownMenuProps } from './DropdownMenu.types.js';
|
|
4
|
+
export type { DropdownMenuProps };
|
|
5
|
+
/**
|
|
6
|
+
* A button that opens a short set of destinations.
|
|
7
|
+
*
|
|
8
|
+
* It is the host MenuItem was written against: a row whose role is `menuitem` announces wrong
|
|
9
|
+
* outside an element whose role is `menu`, so what this adds is everything a row cannot know about
|
|
10
|
+
* itself — that there is a set, how long it is, which one the visitor is on, and that Escape puts
|
|
11
|
+
* them back on the button they pressed.
|
|
12
|
+
*
|
|
13
|
+
* The trigger is drawn here rather than passed in, which is where this parts company with product's
|
|
14
|
+
* menu of the same name. That is forced rather than chosen: this package's Button is an anchor with
|
|
15
|
+
* a required `href`, so it is a link and a link that opens a menu does not navigate; ButtonIcon is a
|
|
16
|
+
* real button and takes no words. A set of destinations is chosen by reading it, so the trigger
|
|
17
|
+
* needs words, and nothing here draws a button with words.
|
|
18
|
+
*
|
|
19
|
+
* Focus moves to the rows themselves rather than being described from the trigger. A menu's rows are
|
|
20
|
+
* things to take, and a visitor pressing Enter should be pressing the thing they are on.
|
|
21
|
+
*/
|
|
22
|
+
export declare function DropdownMenu(props: DropdownMenuProps): import("react").JSX.Element;
|