@deriv-com/dds-marketing 0.2.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.
Files changed (279) hide show
  1. package/.llm/components/accordion.md +8 -0
  2. package/.llm/components/accordionitem.md +8 -0
  3. package/.llm/components/aspectratio.md +8 -0
  4. package/.llm/components/badge.md +8 -0
  5. package/.llm/components/bottomsheet.md +8 -0
  6. package/.llm/components/breadcrumb.md +8 -0
  7. package/.llm/components/breadcrumbitem.md +8 -0
  8. package/.llm/components/button.md +46 -22
  9. package/.llm/components/buttonicon.md +14 -6
  10. package/.llm/components/card.md +15 -1
  11. package/.llm/components/cardbody.md +28 -2
  12. package/.llm/components/cardbutton.md +15 -1
  13. package/.llm/components/checkbox.md +8 -0
  14. package/.llm/components/ctabanner.md +186 -0
  15. package/.llm/components/ctabannerslider.md +204 -0
  16. package/.llm/components/divider.md +8 -0
  17. package/.llm/components/dropdownmenu.md +13 -5
  18. package/.llm/components/faqaccordion.md +217 -0
  19. package/.llm/components/featurebullets.md +254 -0
  20. package/.llm/components/featurecards.md +313 -0
  21. package/.llm/components/featurescroll.md +284 -0
  22. package/.llm/components/featuresplit.md +249 -0
  23. package/.llm/components/filterchip.md +8 -0
  24. package/.llm/components/footer.md +8 -0
  25. package/.llm/components/footergroup.md +8 -0
  26. package/.llm/components/grid.md +8 -0
  27. package/.llm/components/icon.md +8 -0
  28. package/.llm/components/landinghero.md +254 -0
  29. package/.llm/components/link.md +9 -1
  30. package/.llm/components/logocolumns.md +235 -0
  31. package/.llm/components/logorows.md +212 -0
  32. package/.llm/components/menuitem.md +8 -0
  33. package/.llm/components/navbar.md +79 -15
  34. package/.llm/components/navbaritem.md +9 -1
  35. package/.llm/components/navbarmenu.md +8 -0
  36. package/.llm/components/navbarmenugroup.md +8 -0
  37. package/.llm/components/navbarpanel.md +9 -1
  38. package/.llm/components/navbarswitcher.md +9 -1
  39. package/.llm/components/navbarswitcheroption.md +8 -0
  40. package/.llm/components/option.md +8 -0
  41. package/.llm/components/pageheader.md +231 -0
  42. package/.llm/components/pagination.md +26 -89
  43. package/.llm/components/paginationdots.md +215 -0
  44. package/.llm/components/producthero.md +248 -0
  45. package/.llm/components/removablechip.md +8 -0
  46. package/.llm/components/row.md +8 -0
  47. package/.llm/components/scroller.md +8 -0
  48. package/.llm/components/searchinput.md +8 -0
  49. package/.llm/components/segmentedcontrol.md +8 -0
  50. package/.llm/components/segmentedcontrolitem.md +8 -0
  51. package/.llm/components/select.md +8 -0
  52. package/.llm/components/selectchip.md +56 -15
  53. package/.llm/components/spinner.md +8 -0
  54. package/.llm/components/stack.md +8 -0
  55. package/.llm/components/statusdot.md +8 -0
  56. package/.llm/components/subdomainnavbar.md +8 -0
  57. package/.llm/components/tab.md +8 -0
  58. package/.llm/components/table.md +8 -0
  59. package/.llm/components/tablebody.md +8 -0
  60. package/.llm/components/tablecell.md +8 -0
  61. package/.llm/components/tablehead.md +8 -0
  62. package/.llm/components/tableheadercell.md +8 -0
  63. package/.llm/components/tablerow.md +8 -0
  64. package/.llm/components/tablist.md +8 -0
  65. package/.llm/components/testimonialrow.md +235 -0
  66. package/.llm/components/testimonialslider.md +254 -0
  67. package/.llm/components/textarea.md +8 -0
  68. package/.llm/components/textinput.md +8 -0
  69. package/.llm/components/tooltip.md +8 -0
  70. package/.llm/components/typography.md +8 -0
  71. package/.llm/digest/button.md +11 -6
  72. package/.llm/digest/buttonicon.md +2 -2
  73. package/.llm/digest/card.md +1 -0
  74. package/.llm/digest/cardbody.md +3 -1
  75. package/.llm/digest/cardbutton.md +1 -0
  76. package/.llm/digest/ctabanner.md +44 -0
  77. package/.llm/digest/ctabannerslider.md +45 -0
  78. package/.llm/digest/dropdownmenu.md +1 -1
  79. package/.llm/digest/faqaccordion.md +43 -0
  80. package/.llm/digest/featurebullets.md +52 -0
  81. package/.llm/digest/featurecards.md +49 -0
  82. package/.llm/digest/featurescroll.md +52 -0
  83. package/.llm/digest/featuresplit.md +54 -0
  84. package/.llm/digest/landinghero.md +53 -0
  85. package/.llm/digest/logocolumns.md +55 -0
  86. package/.llm/digest/logorows.md +48 -0
  87. package/.llm/digest/navbar.md +18 -3
  88. package/.llm/digest/pageheader.md +49 -0
  89. package/.llm/digest/pagination.md +6 -17
  90. package/.llm/digest/paginationdots.md +43 -0
  91. package/.llm/digest/producthero.md +53 -0
  92. package/.llm/digest/selectchip.md +6 -1
  93. package/.llm/digest/testimonialrow.md +51 -0
  94. package/.llm/digest/testimonialslider.md +51 -0
  95. package/.llm/index.md +24 -3
  96. package/.llm/rules.md +24 -0
  97. package/.llm/tokens.md +56 -12
  98. package/AGENTS.md +28 -3
  99. package/README.md +41 -21
  100. package/dist/components/banner-data.d.ts +38 -0
  101. package/dist/components/banner-data.js +15 -0
  102. package/dist/components/blocks/block-reveal.css +90 -0
  103. package/dist/components/blocks/cta-banner/CtaBanner.css +66 -0
  104. package/dist/components/blocks/cta-banner/CtaBanner.d.ts +22 -0
  105. package/dist/components/blocks/cta-banner/CtaBanner.js +31 -0
  106. package/dist/components/blocks/cta-banner/CtaBanner.types.d.ts +29 -0
  107. package/dist/components/blocks/cta-banner/CtaBanner.types.js +13 -0
  108. package/dist/components/blocks/cta-banner/cta-banner-impl.css +29 -0
  109. package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.css +90 -0
  110. package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.d.ts +39 -0
  111. package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.js +60 -0
  112. package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.types.d.ts +41 -0
  113. package/dist/components/blocks/cta-banner-slider/CtaBannerSlider.types.js +15 -0
  114. package/dist/components/blocks/cta-banner-slider/cta-banner-slider-impl.css +73 -0
  115. package/dist/components/blocks/faq-accordion/FaqAccordion.css +54 -0
  116. package/dist/components/blocks/faq-accordion/FaqAccordion.d.ts +20 -0
  117. package/dist/components/blocks/faq-accordion/FaqAccordion.js +28 -0
  118. package/dist/components/blocks/faq-accordion/FaqAccordion.types.d.ts +25 -0
  119. package/dist/components/blocks/faq-accordion/FaqAccordion.types.js +10 -0
  120. package/dist/components/blocks/faq-accordion/faq-accordion-impl.css +54 -0
  121. package/dist/components/blocks/feature-bullets/FeatureBullets.css +139 -0
  122. package/dist/components/blocks/feature-bullets/FeatureBullets.d.ts +31 -0
  123. package/dist/components/blocks/feature-bullets/FeatureBullets.js +55 -0
  124. package/dist/components/blocks/feature-bullets/FeatureBullets.types.d.ts +39 -0
  125. package/dist/components/blocks/feature-bullets/FeatureBullets.types.js +16 -0
  126. package/dist/components/blocks/feature-bullets/feature-bullets-impl.css +104 -0
  127. package/dist/components/blocks/feature-cards/FeatureCards.css +84 -0
  128. package/dist/components/blocks/feature-cards/FeatureCards.d.ts +24 -0
  129. package/dist/components/blocks/feature-cards/FeatureCards.js +66 -0
  130. package/dist/components/blocks/feature-cards/FeatureCards.types.d.ts +33 -0
  131. package/dist/components/blocks/feature-cards/FeatureCards.types.js +14 -0
  132. package/dist/components/blocks/feature-cards/feature-cards-impl.css +245 -0
  133. package/dist/components/blocks/feature-scroll/FeatureScroll.css +137 -0
  134. package/dist/components/blocks/feature-scroll/FeatureScroll.d.ts +39 -0
  135. package/dist/components/blocks/feature-scroll/FeatureScroll.js +167 -0
  136. package/dist/components/blocks/feature-scroll/FeatureScroll.types.d.ts +40 -0
  137. package/dist/components/blocks/feature-scroll/FeatureScroll.types.js +17 -0
  138. package/dist/components/blocks/feature-scroll/feature-scroll-impl.css +292 -0
  139. package/dist/components/blocks/feature-split/FeatureSplit.css +95 -0
  140. package/dist/components/blocks/feature-split/FeatureSplit.d.ts +30 -0
  141. package/dist/components/blocks/feature-split/FeatureSplit.js +38 -0
  142. package/dist/components/blocks/feature-split/FeatureSplit.types.d.ts +39 -0
  143. package/dist/components/blocks/feature-split/FeatureSplit.types.js +14 -0
  144. package/dist/components/blocks/feature-split/feature-split-impl.css +83 -0
  145. package/dist/components/blocks/landing-hero/LandingHero.css +85 -0
  146. package/dist/components/blocks/landing-hero/LandingHero.d.ts +41 -0
  147. package/dist/components/blocks/landing-hero/LandingHero.js +54 -0
  148. package/dist/components/blocks/landing-hero/LandingHero.types.d.ts +37 -0
  149. package/dist/components/blocks/landing-hero/LandingHero.types.js +15 -0
  150. package/dist/components/blocks/landing-hero/landing-hero-impl.css +355 -0
  151. package/dist/components/blocks/logo-columns/LogoColumns.css +161 -0
  152. package/dist/components/blocks/logo-columns/LogoColumns.d.ts +23 -0
  153. package/dist/components/blocks/logo-columns/LogoColumns.js +46 -0
  154. package/dist/components/blocks/logo-columns/LogoColumns.types.d.ts +46 -0
  155. package/dist/components/blocks/logo-columns/LogoColumns.types.js +18 -0
  156. package/dist/components/blocks/logo-columns/logo-columns-impl.css +188 -0
  157. package/dist/components/blocks/logo-rows/LogoRows.css +122 -0
  158. package/dist/components/blocks/logo-rows/LogoRows.d.ts +20 -0
  159. package/dist/components/blocks/logo-rows/LogoRows.js +43 -0
  160. package/dist/components/blocks/logo-rows/LogoRows.types.d.ts +36 -0
  161. package/dist/components/blocks/logo-rows/LogoRows.types.js +16 -0
  162. package/dist/components/blocks/logo-rows/logo-rows-impl.css +179 -0
  163. package/dist/components/blocks/page-header/PageHeader.css +79 -0
  164. package/dist/components/blocks/page-header/PageHeader.d.ts +34 -0
  165. package/dist/components/blocks/page-header/PageHeader.js +43 -0
  166. package/dist/components/blocks/page-header/PageHeader.types.d.ts +32 -0
  167. package/dist/components/blocks/page-header/PageHeader.types.js +14 -0
  168. package/dist/components/blocks/page-header/page-header-impl.css +176 -0
  169. package/dist/components/blocks/product-hero/ProductHero.css +86 -0
  170. package/dist/components/blocks/product-hero/ProductHero.d.ts +35 -0
  171. package/dist/components/blocks/product-hero/ProductHero.js +48 -0
  172. package/dist/components/blocks/product-hero/ProductHero.types.d.ts +37 -0
  173. package/dist/components/blocks/product-hero/ProductHero.types.js +15 -0
  174. package/dist/components/blocks/product-hero/product-hero-impl.css +354 -0
  175. package/dist/components/blocks/testimonial-row/TestimonialRow.css +245 -0
  176. package/dist/components/blocks/testimonial-row/TestimonialRow.d.ts +20 -0
  177. package/dist/components/blocks/testimonial-row/TestimonialRow.js +128 -0
  178. package/dist/components/blocks/testimonial-row/TestimonialRow.types.d.ts +54 -0
  179. package/dist/components/blocks/testimonial-row/TestimonialRow.types.js +26 -0
  180. package/dist/components/blocks/testimonial-row/testimonial-row-impl.css +195 -0
  181. package/dist/components/blocks/testimonial-slider/TestimonialSlider.css +181 -0
  182. package/dist/components/blocks/testimonial-slider/TestimonialSlider.d.ts +22 -0
  183. package/dist/components/blocks/testimonial-slider/TestimonialSlider.js +36 -0
  184. package/dist/components/blocks/testimonial-slider/TestimonialSlider.types.d.ts +49 -0
  185. package/dist/components/blocks/testimonial-slider/TestimonialSlider.types.js +21 -0
  186. package/dist/components/blocks/testimonial-slider/testimonial-slider-impl.css +202 -0
  187. package/dist/components/blocks/use-reveal.d.ts +46 -0
  188. package/dist/components/blocks/use-reveal.js +120 -0
  189. package/dist/components/blocks/use-rotation.d.ts +62 -0
  190. package/dist/components/blocks/use-rotation.js +176 -0
  191. package/dist/components/core/accordion-item/AccordionItem.css +6 -5
  192. package/dist/components/core/bottom-sheet/BottomSheet.css +1 -1
  193. package/dist/components/core/button/Button.css +63 -16
  194. package/dist/components/core/button/Button.d.ts +14 -12
  195. package/dist/components/core/button/Button.js +43 -14
  196. package/dist/components/core/button/Button.types.d.ts +9 -14
  197. package/dist/components/core/button/button-impl.css +25 -0
  198. package/dist/components/core/button-icon/ButtonIcon.css +31 -15
  199. package/dist/components/core/button-icon/ButtonIcon.d.ts +2 -2
  200. package/dist/components/core/button-icon/ButtonIcon.js +2 -2
  201. package/dist/components/core/button-icon/ButtonIcon.types.d.ts +4 -4
  202. package/dist/components/core/card/Card.css +13 -4
  203. package/dist/components/core/card/Card.types.d.ts +2 -1
  204. package/dist/components/core/card-body/CardBody.css +11 -6
  205. package/dist/components/core/card-body/CardBody.d.ts +1 -1
  206. package/dist/components/core/card-body/CardBody.js +2 -2
  207. package/dist/components/core/card-body/CardBody.types.d.ts +4 -1
  208. package/dist/components/core/card-body/CardBody.types.js +1 -0
  209. package/dist/components/core/card-button/CardButton.css +13 -4
  210. package/dist/components/core/card-button/CardButton.types.d.ts +2 -1
  211. package/dist/components/core/checkbox/Checkbox.css +8 -1
  212. package/dist/components/core/dropdown-menu/DropdownMenu.css +13 -12
  213. package/dist/components/core/dropdown-menu/DropdownMenu.d.ts +5 -3
  214. package/dist/components/core/dropdown-menu/DropdownMenu.js +5 -3
  215. package/dist/components/core/filter-chip/FilterChip.css +2 -1
  216. package/dist/components/core/footer/footer-impl.css +1 -1
  217. package/dist/components/core/footer-group/FooterGroup.css +8 -7
  218. package/dist/components/core/icon/Icon.css +1 -1
  219. package/dist/components/core/link/Link.css +1 -1
  220. package/dist/components/core/menu-item/MenuItem.css +1 -1
  221. package/dist/components/core/navbar/Navbar.css +7 -8
  222. package/dist/components/core/navbar/Navbar.d.ts +17 -1
  223. package/dist/components/core/navbar/Navbar.js +139 -12
  224. package/dist/components/core/navbar/Navbar.types.d.ts +23 -4
  225. package/dist/components/core/navbar/Navbar.types.js +1 -1
  226. package/dist/components/core/navbar/navbar-impl.css +10 -3
  227. package/dist/components/core/navbar/navbar-material.css +96 -0
  228. package/dist/components/core/navbar-item/NavbarItem.css +4 -4
  229. package/dist/components/core/navbar-menu/NavbarMenu.css +7 -5
  230. package/dist/components/core/navbar-menu/NavbarMenu.d.ts +1 -0
  231. package/dist/components/core/navbar-menu/NavbarMenu.js +1 -0
  232. package/dist/components/core/navbar-menu/navbar-menu-impl.css +7 -7
  233. package/dist/components/core/navbar-switcher/NavbarSwitcher.css +6 -5
  234. package/dist/components/core/navbar-switcher/NavbarSwitcher.d.ts +1 -0
  235. package/dist/components/core/navbar-switcher/NavbarSwitcher.js +2 -1
  236. package/dist/components/core/option/Option.css +1 -1
  237. package/dist/components/core/pagination/Pagination.css +1 -75
  238. package/dist/components/core/pagination/Pagination.d.ts +4 -4
  239. package/dist/components/core/pagination/Pagination.js +11 -51
  240. package/dist/components/core/pagination/Pagination.types.d.ts +5 -17
  241. package/dist/components/core/pagination/Pagination.types.js +1 -3
  242. package/dist/components/core/pagination-dots/PaginationDots.css +60 -0
  243. package/dist/components/core/pagination-dots/PaginationDots.d.ts +25 -0
  244. package/dist/components/core/pagination-dots/PaginationDots.js +104 -0
  245. package/dist/components/core/pagination-dots/PaginationDots.types.d.ts +38 -0
  246. package/dist/components/core/pagination-dots/PaginationDots.types.js +9 -0
  247. package/dist/components/core/removable-chip/RemovableChip.css +3 -3
  248. package/dist/components/core/search-input/SearchInput.css +1 -1
  249. package/dist/components/core/segmented-control/SegmentedControl.css +1 -1
  250. package/dist/components/core/segmented-control-item/SegmentedControlItem.css +1 -1
  251. package/dist/components/core/select/Select.css +2 -1
  252. package/dist/components/core/select-chip/SelectChip.css +14 -7
  253. package/dist/components/core/select-chip/SelectChip.d.ts +1 -1
  254. package/dist/components/core/select-chip/SelectChip.js +7 -4
  255. package/dist/components/core/select-chip/SelectChip.types.d.ts +7 -1
  256. package/dist/components/core/select-chip/SelectChip.types.js +1 -1
  257. package/dist/components/core/select-chip/select-chip-impl.css +14 -3
  258. package/dist/components/core/status-dot/StatusDot.css +1 -1
  259. package/dist/components/core/subdomain-navbar/SubdomainNavbar.css +3 -3
  260. package/dist/components/core/tab/Tab.css +1 -1
  261. package/dist/components/core/tab-list/TabList.css +1 -1
  262. package/dist/components/core/table/table-impl.css +36 -14
  263. package/dist/components/core/table-header-cell/TableHeaderCell.css +5 -5
  264. package/dist/components/core/text-area/TextArea.css +1 -1
  265. package/dist/components/core/text-input/TextInput.css +1 -1
  266. package/dist/components/core/tooltip/Tooltip.css +1 -1
  267. package/dist/components/core/typography/Typography.css +5 -5
  268. package/dist/components/index.d.ts +35 -0
  269. package/dist/components/index.js +30 -0
  270. package/dist/components/logo-data.d.ts +24 -0
  271. package/dist/components/logo-data.js +11 -0
  272. package/dist/components/scroll-data.d.ts +64 -0
  273. package/dist/components/scroll-data.js +17 -0
  274. package/dist/components/testimonial-row-data.d.ts +51 -0
  275. package/dist/components/testimonial-row-data.js +11 -0
  276. package/dist/components/testimonial-slider-data.d.ts +26 -0
  277. package/dist/components/testimonial-slider-data.js +10 -0
  278. package/dist/marketing.css +385 -14
  279. package/package.json +1 -6
@@ -0,0 +1,38 @@
1
+ export interface PaginationDotsOwnProps {
2
+ /**
3
+ * `default` — The marks take the ink of whatever the row stands on — white on a coral or dark band, near-black on the page — so the row belongs to its ground. The usual choice, and the only one on a band.
4
+ * `accent` — On the bare page, where the row should carry the brand: the marks are color.fg.brand-accent, the current pill solid coral and the rest the same coral held back. The solid pill clears 3:1 against the page at 3.11:1, just; the resting marks do not, as at the default — so only on the page's own ground, where nothing takes the coral lower.
5
+ */
6
+ variant?: 'default' | 'accent';
7
+ /** Which position the reader is on, counted from 1. The consumer holds it, because the slide or step in view is theirs too and the two are one fact. */
8
+ page?: number;
9
+ /** How many positions there are, which is how many marks the row draws. */
10
+ totalPages?: number;
11
+ /** Whenever the marks should move anything — called with the position pressed. The row does not move itself; the consumer sets page from it. */
12
+ onPageChange?: (page: number) => void;
13
+ /** The sequence should move on its own — a slider of promotions, a hero that rotates. The row advances page through onPageChange every motion.duration.dwell, wrapping from the last position to the first. It holds while `paused` is set, never moves for a reader who asked for less motion, and stops for good once the reader presses a mark. That last is the WAI carousel pattern's rule that a reader who has chosen a position is reading, not watching. That gives a reader a way to stop the rotation, which WCAG 2.2.2 asks for, but not a visible one: nothing says a press will stop it, so a page that needs 2.2.2 met plainly should still offer its own pause, or leave autoplay off. */
14
+ autoplay?: boolean;
15
+ /** Whatever holds the row wants the rotation held for now — while the pointer is over the slide or focus is inside it, so a reader is never moved on mid-sentence. It lets go when this goes false. */
16
+ paused?: boolean;
17
+ /** The name the row is announced by, as a group. Name what the positions are: 'Slides', 'Steps'. Translate it with the page. */
18
+ label?: string;
19
+ /** The word each mark is named by, before its number — 'Slide 2'. Translate it with the page; a language that puts the number first is the reason a sentence template would be better, and the reason this is not yet one. */
20
+ itemLabel?: string;
21
+ }
22
+ export type PaginationDotsProps = PaginationDotsOwnProps;
23
+ /** The class each part carries. Apply these — do not retype them. */
24
+ export declare const paginationDotsParts: {
25
+ readonly root: "dds-paginationdots";
26
+ readonly dot: "dds-paginationdots__dot";
27
+ readonly mark: "dds-paginationdots__mark";
28
+ };
29
+ /** Generated so defaults cannot drift from the contract. */
30
+ export declare const paginationDotsDefaults: {
31
+ readonly variant: "default";
32
+ readonly page: 1;
33
+ readonly totalPages: 1;
34
+ readonly autoplay: false;
35
+ readonly paused: false;
36
+ readonly label: "Slides";
37
+ readonly itemLabel: "Slide";
38
+ };
@@ -0,0 +1,9 @@
1
+ // GENERATED from pagination-dots.contract.json. Do not edit.
2
+ /** The class each part carries. Apply these — do not retype them. */
3
+ export const paginationDotsParts = {
4
+ root: 'dds-paginationdots',
5
+ dot: 'dds-paginationdots__dot',
6
+ mark: 'dds-paginationdots__mark',
7
+ };
8
+ /** Generated so defaults cannot drift from the contract. */
9
+ export const paginationDotsDefaults = { variant: 'default', page: 1, totalPages: 1, autoplay: false, paused: false, label: 'Slides', itemLabel: 'Slide' };
@@ -56,11 +56,11 @@
56
56
  }
57
57
 
58
58
  :where([data-dds-context="marketing"]) .dds-removablechip .dds-removablechip__remove:hover:where(:not(:disabled)) {
59
- background-color: var(--color-bg-hover-inverse);
59
+ background-color: var(--color-bg-hover-on-brand-strong);
60
60
  }
61
61
 
62
62
  :where([data-dds-context="marketing"]) .dds-removablechip .dds-removablechip__remove:active {
63
- background-color: var(--color-bg-active-inverse);
63
+ background-color: var(--color-bg-active-on-brand-strong);
64
64
  }
65
65
 
66
66
  :where([data-dds-context="marketing"]) .dds-removablechip .dds-removablechip__remove:focus-visible {
@@ -120,6 +120,6 @@
120
120
 
121
121
  @media (prefers-reduced-motion: reduce) {
122
122
  :where([data-dds-context="marketing"]) .dds-removablechip,
123
- :where([data-dds-context="marketing"]) .dds-removablechip * { transition: none; }
123
+ :where([data-dds-context="marketing"]) .dds-removablechip * { transition: none !important; }
124
124
  }
125
125
 
@@ -200,6 +200,6 @@
200
200
 
201
201
  @media (prefers-reduced-motion: reduce) {
202
202
  :where([data-dds-context="marketing"]) .dds-searchinput,
203
- :where([data-dds-context="marketing"]) .dds-searchinput * { transition: none; }
203
+ :where([data-dds-context="marketing"]) .dds-searchinput * { transition: none !important; }
204
204
  }
205
205
 
@@ -52,6 +52,6 @@
52
52
 
53
53
  @media (prefers-reduced-motion: reduce) {
54
54
  :where([data-dds-context="marketing"]) .dds-segmentedcontrol,
55
- :where([data-dds-context="marketing"]) .dds-segmentedcontrol * { transition: none; }
55
+ :where([data-dds-context="marketing"]) .dds-segmentedcontrol * { transition: none !important; }
56
56
  }
57
57
 
@@ -146,6 +146,6 @@
146
146
 
147
147
  @media (prefers-reduced-motion: reduce) {
148
148
  :where([data-dds-context="marketing"]) .dds-segmentedcontrolitem,
149
- :where([data-dds-context="marketing"]) .dds-segmentedcontrolitem * { transition: none; }
149
+ :where([data-dds-context="marketing"]) .dds-segmentedcontrolitem * { transition: none !important; }
150
150
  }
151
151
 
@@ -99,6 +99,7 @@
99
99
  align-items: center;
100
100
  display: flex;
101
101
  flex: none;
102
+ transition-property: rotate;
102
103
  color: var(--color-fg-muted);
103
104
  transition-duration: var(--motion-duration-fast);
104
105
  transition-timing-function: var(--motion-easing-standard);
@@ -395,6 +396,6 @@
395
396
 
396
397
  @media (prefers-reduced-motion: reduce) {
397
398
  :where([data-dds-context="marketing"]) .dds-select,
398
- :where([data-dds-context="marketing"]) .dds-select * { transition: none; }
399
+ :where([data-dds-context="marketing"]) .dds-select * { transition: none !important; }
399
400
  }
400
401
 
@@ -46,6 +46,7 @@
46
46
 
47
47
  :where([data-dds-context="marketing"]) .dds-selectchip .dds-selectchip__chevron {
48
48
  flex: none;
49
+ transition-property: rotate;
49
50
  transition-duration: var(--motion-duration-fast);
50
51
  transition-timing-function: var(--motion-easing-standard);
51
52
  }
@@ -94,12 +95,6 @@
94
95
  outline-width: var(--border-width-focus);
95
96
  }
96
97
 
97
- :where([data-dds-context="marketing"]) .dds-selectchip .dds-selectchip__trigger[data-chosen="true"] {
98
- background-color: var(--color-bg-strong);
99
- border-color: var(--color-bg-strong);
100
- color: var(--color-fg-on-strong);
101
- }
102
-
103
98
  :where([data-dds-context="marketing"]) .dds-selectchip[data-disabled="true"] {
104
99
  opacity: var(--opacity-disabled);
105
100
  }
@@ -148,8 +143,20 @@
148
143
  line-height: var(--font-label-sm-line-height);
149
144
  }
150
145
 
146
+ :where([data-dds-context="marketing"]) .dds-selectchip[data-emphasis="highlight"] .dds-selectchip__trigger[data-chosen="true"] {
147
+ background-color: var(--color-bg-strong);
148
+ border-color: var(--color-bg-strong);
149
+ color: var(--color-fg-on-strong);
150
+ }
151
+
152
+ :where([data-dds-context="marketing"]) .dds-selectchip[data-emphasis="quiet"] .dds-selectchip__trigger[data-chosen="true"] {
153
+ background-color: var(--color-bg-surface-raised);
154
+ border-color: var(--color-border-default);
155
+ color: var(--color-fg-default);
156
+ }
157
+
151
158
  @media (prefers-reduced-motion: reduce) {
152
159
  :where([data-dds-context="marketing"]) .dds-selectchip,
153
- :where([data-dds-context="marketing"]) .dds-selectchip * { transition: none; }
160
+ :where([data-dds-context="marketing"]) .dds-selectchip * { transition: none !important; }
154
161
  }
155
162
 
@@ -17,4 +17,4 @@ export type { SelectChipProps };
17
17
  * not a tab stop, and a list of twenty would otherwise be twenty presses on the way to
18
18
  * whatever follows the row.
19
19
  */
20
- export declare function SelectChip({ size, disabled, alignment, label, value, defaultValue, onChange, open, defaultOpen, onOpenChange, leadingIcon, children, ...rest }: SelectChipProps): import("react").JSX.Element;
20
+ export declare function SelectChip({ size, disabled, alignment, emphasis, label, value, defaultValue, onChange, open, defaultOpen, onOpenChange, leadingIcon, children, ...rest }: SelectChipProps): import("react").JSX.Element;
@@ -68,7 +68,7 @@ const TYPING_WINDOW = 500;
68
68
  * not a tab stop, and a list of twenty would otherwise be twenty presses on the way to
69
69
  * whatever follows the row.
70
70
  */
71
- export function SelectChip({ size = selectChipDefaults.size, disabled = selectChipDefaults.disabled, alignment = selectChipDefaults.alignment, label, value, defaultValue, onChange, open, defaultOpen, onOpenChange, leadingIcon, children, ...rest }) {
71
+ export function SelectChip({ size = selectChipDefaults.size, disabled = selectChipDefaults.disabled, alignment = selectChipDefaults.alignment, emphasis = selectChipDefaults.emphasis, label, value, defaultValue, onChange, open, defaultOpen, onOpenChange, leadingIcon, children, ...rest }) {
72
72
  const options = optionsOf(children);
73
73
  const rootId = useId();
74
74
  const listId = `${rootId}-list`;
@@ -250,9 +250,12 @@ export function SelectChip({ size = selectChipDefaults.size, disabled = selectCh
250
250
  const taken = options[indexOf(chosen)];
251
251
  // The chip carries the answer once there is one, and the name of the narrowing until
252
252
  // then — which is what makes a row of these read as a list of decisions rather than a
253
- // list of filters.
254
- const shown = taken === undefined ? label : words(taken.props.children);
255
- return (_jsxs("div", { className: selectChipParts.root, ...rest, ref: root, "data-size": size, "data-alignment": alignment, "data-disabled": String(disabled), children: [_jsxs("button", { type: "button", className: selectChipParts.trigger,
253
+ // list of filters. A quiet chip keeps the name in front of the answer: it has no fill
254
+ // to say a narrowing is on, so the words carry both, as one thing to read — "Sort:
255
+ // Most read".
256
+ const answer = taken === undefined ? undefined : words(taken.props.children);
257
+ const shown = answer === undefined ? label : emphasis === 'quiet' ? `${label}: ${answer}` : answer;
258
+ return (_jsxs("div", { className: selectChipParts.root, ...rest, ref: root, "data-size": size, "data-alignment": alignment, "data-emphasis": emphasis, "data-disabled": String(disabled), children: [_jsxs("button", { type: "button", className: selectChipParts.trigger,
256
259
  // The platform's own, which is the whole of the behaviour: a disabled button
257
260
  // takes no click, answers no key, and is not a tab stop — so there is nothing
258
261
  // here to gate by hand.
@@ -10,7 +10,12 @@ export interface SelectChipOwnProps {
10
10
  * `end` — Its trailing edge lines up instead, for a chip near the end of a row where a list opening the other way would run off the screen
11
11
  */
12
12
  alignment?: 'start' | 'end';
13
- /** Always, and required on that account — it names what is being chosen, and it is what the chip shows until something has been. Short enough to read at a glance in a row of other chips */
13
+ /**
14
+ * `highlight` — A filter. Choosing an answer hides part of the list, like a category, a topic or a product line. The chip fills to show a filter is on
15
+ * `quiet` — A setting that only changes how the page is shown, like a sort order, a language or a layout. Nothing is hidden, so the chip stays plain and reads "Label: Value". Always give it a starting value with value or defaultValue
16
+ */
17
+ emphasis?: 'highlight' | 'quiet';
18
+ /** Always, and required on that account — it names what is being chosen, and it is what the chip shows until something has been, and what a quiet chip goes on showing ahead of the answer. Short enough to read at a glance in a row of other chips */
14
19
  label: string;
15
20
  /** The page owns the answer — it arrives from a URL, is shared with something else on screen, or has to survive the chip unmounting. Passed, this is the answer, and onChange is the only way it moves */
16
21
  value?: string;
@@ -48,6 +53,7 @@ export declare const selectChipDefaults: {
48
53
  readonly disabled: false;
49
54
  readonly size: "sm";
50
55
  readonly alignment: "start";
56
+ readonly emphasis: "highlight";
51
57
  };
52
58
  /** The step this component draws a glyph slot at. Generated — do not retype. */
53
59
  export declare const selectChipGlyphStep: {
@@ -9,6 +9,6 @@ export const selectChipParts = {
9
9
  listbox: 'dds-selectchip__listbox',
10
10
  };
11
11
  /** Generated so defaults cannot drift from the contract. */
12
- export const selectChipDefaults = { disabled: false, size: 'sm', alignment: 'start' };
12
+ export const selectChipDefaults = { disabled: false, size: 'sm', alignment: 'start', emphasis: 'highlight' };
13
13
  /** The step this component draws a glyph slot at. Generated — do not retype. */
14
14
  export const selectChipGlyphStep = { sm: 'xs', md: 'sm' };
@@ -22,7 +22,7 @@
22
22
  /* The chosen chip's own hover, which would otherwise fall back to the unchosen one and wash the
23
23
  fill in the wrong direction — a black alpha over a ground that is already near-black shows
24
24
  nothing at all. This is the case color.bg.hover-inverse exists for. */
25
- :where([data-dds-context="marketing"]) .dds-selectchip .dds-selectchip__trigger[data-chosen="true"]:hover {
25
+ :where([data-dds-context="marketing"]) .dds-selectchip[data-emphasis="highlight"] .dds-selectchip__trigger[data-chosen="true"]:hover {
26
26
  background-image: linear-gradient(
27
27
  var(--color-bg-hover-inverse),
28
28
  var(--color-bg-hover-inverse)
@@ -32,7 +32,18 @@
32
32
  /* An open chip borrows the heavier edge, but only while nothing is chosen. Said of both, it would
33
33
  be a second rule as specific as the one it argues with, and the cascade would settle it by
34
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. */
36
- :where([data-dds-context="marketing"]) .dds-selectchip .dds-selectchip__trigger[data-expanded="true"]:not([data-chosen="true"]) {
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"] {
37
39
  border-color: var(--color-border-strong);
38
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
+ }
@@ -38,6 +38,6 @@
38
38
  }
39
39
 
40
40
  @media (prefers-reduced-motion: reduce) {
41
- :where([data-dds-context="marketing"]) .dds-statusdot { transition: none; }
41
+ :where([data-dds-context="marketing"]) .dds-statusdot { transition: none !important; }
42
42
  }
43
43
 
@@ -79,11 +79,11 @@
79
79
  }
80
80
 
81
81
  :where([data-dds-context="marketing"]) .dds-subdomainnavbar[data-tone="inverse"] {
82
- background-color: var(--color-bg-strong);
83
- color: var(--color-fg-on-strong);
82
+ background-color: var(--color-bg-brand-strong);
83
+ color: var(--color-fg-on-brand-strong);
84
84
  }
85
85
 
86
86
  :where([data-dds-context="marketing"]) .dds-subdomainnavbar[data-tone="inverse"] .dds-subdomainnavbar__trigger:focus-visible {
87
- outline-color: var(--color-border-focus-inverse);
87
+ outline-color: var(--color-border-focus-on-brand-strong);
88
88
  }
89
89
 
@@ -108,6 +108,6 @@
108
108
 
109
109
  @media (prefers-reduced-motion: reduce) {
110
110
  :where([data-dds-context="marketing"]) .dds-tab,
111
- :where([data-dds-context="marketing"]) .dds-tab * { transition: none; }
111
+ :where([data-dds-context="marketing"]) .dds-tab * { transition: none !important; }
112
112
  }
113
113
 
@@ -35,6 +35,6 @@
35
35
 
36
36
  @media (prefers-reduced-motion: reduce) {
37
37
  :where([data-dds-context="marketing"]) .dds-tablist,
38
- :where([data-dds-context="marketing"]) .dds-tablist * { transition: none; }
38
+ :where([data-dds-context="marketing"]) .dds-tablist * { transition: none !important; }
39
39
  }
40
40
 
@@ -41,14 +41,20 @@
41
41
  * It has to be opaque, and that is the whole difficulty. A table paints nothing: the surface
42
42
  * belongs to whatever put it there, which is the right arrangement everywhere except here, where a
43
43
  * cell that stays put while the rest slides under it shows the sliding through itself. So the
44
- * pinned cell paints the ground its card holds — the one colour it can name that a page will have
45
- * put behind it.
44
+ * pinned cell paints the ground its card holds.
46
45
  *
47
- * The row's own states cannot simply be inherited through it, because both are alpha: selected is
48
- * eight percent black and hover is five, and a translucent cell over scrolled content is the same
49
- * failure with a tint on it. So each is restated here over the opaque floor, the selected one as a
50
- * colour and the hover one as an image layered above it. That is the arrangement FilterChip makes
51
- * for exactly the same reason, and the second time this package has needed it.
46
+ * That ground is no longer one colour it can name. A raised card is see-through in dark —
47
+ * color.bg.surface-card-raised is white at six — so what a reader sees is the card over the band
48
+ * it stands on over the page. The cell rebuilds that stack: the page as an opaque floor, then the
49
+ * band and the card laid over it as images, the topmost listed first. It is the arrangement a
50
+ * raised card is documented for — on a color.bg.band-subtle band — and in light all three are
51
+ * opaque, so the stack is simply white. Naming color.bg.surface-raised instead, as this did,
52
+ * painted a solid grey the card no longer is.
53
+ *
54
+ * The row's own states go on top of the stack rather than instead of it, because both are alpha:
55
+ * selected is eight percent and hover four, and either painted as the cell's colour would let the
56
+ * scrolled columns show through the pinned one. That is the layering FilterChip uses, for the
57
+ * same reason.
52
58
  *
53
59
  * The stacking order is an integer with no unit and no token to name it — this package has one
54
60
  * layer role and it is for popups, which this is not. One is enough: the pinned cell has to paint
@@ -58,18 +64,34 @@
58
64
  position: sticky;
59
65
  inset-inline-start: 0;
60
66
  z-index: 1;
61
- background-color: var(--color-bg-surface-raised);
67
+ background-color: var(--color-bg-page);
68
+ background-image:
69
+ linear-gradient(var(--color-bg-surface-card-raised), var(--color-bg-surface-card-raised)),
70
+ linear-gradient(var(--color-bg-band-subtle), var(--color-bg-band-subtle));
62
71
  border-inline-end-width: var(--border-width-hairline);
63
72
  }
64
73
 
65
- /* The chosen row keeps its ground where it is pinned, restated because an alpha cannot be inherited
66
- onto a cell that has scrolled content behind it. */
74
+ /* The chosen row keeps its ground where it is pinned, laid over the stack rather than replacing it. */
67
75
  :where([data-dds-context="marketing"]) .dds-table[data-pin-first-column='true'] .dds-tablerow[data-selected='true'] > :first-child {
68
- background-color: var(--color-bg-selected);
76
+ background-image:
77
+ linear-gradient(var(--color-bg-selected), var(--color-bg-selected)),
78
+ linear-gradient(var(--color-bg-surface-card-raised), var(--color-bg-surface-card-raised)),
79
+ linear-gradient(var(--color-bg-band-subtle), var(--color-bg-band-subtle));
69
80
  }
70
81
 
71
- /* And the pointer's wash, as an image over the floor rather than instead of it — the layering
72
- FilterChip uses, for the same reason: the token tints what it lands on rather than replacing it. */
82
+ /* And the pointer's wash, the same way. */
73
83
  :where([data-dds-context="marketing"]) .dds-table[data-pin-first-column='true'] .dds-tablerow[data-hoverable='true']:hover > :first-child {
74
- background-image: linear-gradient(var(--color-bg-hover), var(--color-bg-hover));
84
+ background-image:
85
+ linear-gradient(var(--color-bg-hover), var(--color-bg-hover)),
86
+ linear-gradient(var(--color-bg-surface-card-raised), var(--color-bg-surface-card-raised)),
87
+ linear-gradient(var(--color-bg-band-subtle), var(--color-bg-band-subtle));
88
+ }
89
+
90
+ /* Both at once: the wash over the chosen ground, over the stack. */
91
+ :where([data-dds-context="marketing"]) .dds-table[data-pin-first-column='true'] .dds-tablerow[data-selected='true'][data-hoverable='true']:hover > :first-child {
92
+ background-image:
93
+ linear-gradient(var(--color-bg-hover), var(--color-bg-hover)),
94
+ linear-gradient(var(--color-bg-selected), var(--color-bg-selected)),
95
+ linear-gradient(var(--color-bg-surface-card-raised), var(--color-bg-surface-card-raised)),
96
+ linear-gradient(var(--color-bg-band-subtle), var(--color-bg-band-subtle));
75
97
  }
@@ -49,11 +49,11 @@
49
49
 
50
50
  :where([data-dds-context="marketing"]) .dds-tableheadercell[data-header-case="upper"] {
51
51
  text-transform: uppercase;
52
- font-family: var(--font-eyebrow-family);
53
- font-size: var(--font-eyebrow-size);
54
- font-weight: var(--font-eyebrow-weight);
55
- letter-spacing: var(--font-eyebrow-letter-spacing);
56
- line-height: var(--font-eyebrow-line-height);
52
+ font-family: var(--font-eyebrow-sm-family);
53
+ font-size: var(--font-eyebrow-sm-size);
54
+ font-weight: var(--font-eyebrow-sm-weight);
55
+ letter-spacing: var(--font-eyebrow-sm-letter-spacing);
56
+ line-height: var(--font-eyebrow-sm-line-height);
57
57
  }
58
58
 
59
59
  :where([data-dds-context="marketing"]) .dds-tableheadercell[data-align="center"] .dds-tableheadercell__trigger {
@@ -320,6 +320,6 @@
320
320
 
321
321
  @media (prefers-reduced-motion: reduce) {
322
322
  :where([data-dds-context="marketing"]) .dds-textarea,
323
- :where([data-dds-context="marketing"]) .dds-textarea * { transition: none; }
323
+ :where([data-dds-context="marketing"]) .dds-textarea * { transition: none !important; }
324
324
  }
325
325
 
@@ -395,6 +395,6 @@
395
395
 
396
396
  @media (prefers-reduced-motion: reduce) {
397
397
  :where([data-dds-context="marketing"]) .dds-textinput,
398
- :where([data-dds-context="marketing"]) .dds-textinput * { transition: none; }
398
+ :where([data-dds-context="marketing"]) .dds-textinput * { transition: none !important; }
399
399
  }
400
400
 
@@ -96,6 +96,6 @@
96
96
 
97
97
  @media (prefers-reduced-motion: reduce) {
98
98
  :where([data-dds-context="marketing"]) .dds-tooltip,
99
- :where([data-dds-context="marketing"]) .dds-tooltip * { transition: none; }
99
+ :where([data-dds-context="marketing"]) .dds-tooltip * { transition: none !important; }
100
100
  }
101
101
 
@@ -6,11 +6,11 @@
6
6
 
7
7
  :where([data-dds-context="marketing"]) .dds-typography[data-variant="eyebrow"] {
8
8
  text-transform: uppercase;
9
- font-family: var(--font-eyebrow-family);
10
- font-size: var(--font-eyebrow-size);
11
- font-weight: var(--font-eyebrow-weight);
12
- letter-spacing: var(--font-eyebrow-letter-spacing);
13
- line-height: var(--font-eyebrow-line-height);
9
+ font-family: var(--font-eyebrow-sm-family);
10
+ font-size: var(--font-eyebrow-sm-size);
11
+ font-weight: var(--font-eyebrow-sm-weight);
12
+ letter-spacing: var(--font-eyebrow-sm-letter-spacing);
13
+ line-height: var(--font-eyebrow-sm-line-height);
14
14
  }
15
15
 
16
16
  :where([data-dds-context="marketing"]) .dds-typography[data-variant="figure"] {
@@ -24,10 +24,24 @@ export { CardButton, type CardButtonProps } from './core/card-button/CardButton.
24
24
  export { cardButtonParts, cardButtonDefaults } from './core/card-button/CardButton.types.js';
25
25
  export { Checkbox, type CheckboxProps } from './core/checkbox/Checkbox.js';
26
26
  export { checkboxParts, checkboxDefaults } from './core/checkbox/Checkbox.types.js';
27
+ export { CtaBanner, type CtaBannerProps } from './blocks/cta-banner/CtaBanner.js';
28
+ export { ctaBannerParts, ctaBannerDefaults } from './blocks/cta-banner/CtaBanner.types.js';
29
+ export { CtaBannerSlider, type CtaBannerSliderProps } from './blocks/cta-banner-slider/CtaBannerSlider.js';
30
+ export { ctaBannerSliderParts, ctaBannerSliderDefaults } from './blocks/cta-banner-slider/CtaBannerSlider.types.js';
27
31
  export { Divider, type DividerProps } from './core/divider/Divider.js';
28
32
  export { dividerParts, dividerDefaults } from './core/divider/Divider.types.js';
29
33
  export { DropdownMenu, type DropdownMenuProps } from './core/dropdown-menu/DropdownMenu.js';
30
34
  export { dropdownMenuParts, dropdownMenuDefaults } from './core/dropdown-menu/DropdownMenu.types.js';
35
+ export { FaqAccordion, type FaqAccordionProps } from './blocks/faq-accordion/FaqAccordion.js';
36
+ export { faqAccordionParts, faqAccordionDefaults } from './blocks/faq-accordion/FaqAccordion.types.js';
37
+ export { FeatureBullets, type FeatureBulletsProps } from './blocks/feature-bullets/FeatureBullets.js';
38
+ export { featureBulletsParts, featureBulletsDefaults } from './blocks/feature-bullets/FeatureBullets.types.js';
39
+ export { FeatureCards, type FeatureCardsProps } from './blocks/feature-cards/FeatureCards.js';
40
+ export { featureCardsParts, featureCardsDefaults } from './blocks/feature-cards/FeatureCards.types.js';
41
+ export { FeatureScroll, type FeatureScrollProps } from './blocks/feature-scroll/FeatureScroll.js';
42
+ export { featureScrollParts, featureScrollDefaults } from './blocks/feature-scroll/FeatureScroll.types.js';
43
+ export { FeatureSplit, type FeatureSplitProps } from './blocks/feature-split/FeatureSplit.js';
44
+ export { featureSplitParts, featureSplitDefaults } from './blocks/feature-split/FeatureSplit.types.js';
31
45
  export { FilterChip, type FilterChipProps } from './core/filter-chip/FilterChip.js';
32
46
  export { filterChipParts, filterChipDefaults } from './core/filter-chip/FilterChip.types.js';
33
47
  export { Footer, type FooterProps } from './core/footer/Footer.js';
@@ -38,8 +52,14 @@ export { Grid, type GridProps } from './layout/grid/Grid.js';
38
52
  export { gridParts, gridDefaults } from './layout/grid/Grid.types.js';
39
53
  export { Icon, type IconProps } from './core/icon/Icon.js';
40
54
  export { iconParts, iconDefaults } from './core/icon/Icon.types.js';
55
+ export { LandingHero, type LandingHeroProps } from './blocks/landing-hero/LandingHero.js';
56
+ export { landingHeroParts, landingHeroDefaults } from './blocks/landing-hero/LandingHero.types.js';
41
57
  export { Link, type LinkProps } from './core/link/Link.js';
42
58
  export { linkParts, linkDefaults } from './core/link/Link.types.js';
59
+ export { LogoColumns, type LogoColumnsProps } from './blocks/logo-columns/LogoColumns.js';
60
+ export { logoColumnsParts, logoColumnsDefaults } from './blocks/logo-columns/LogoColumns.types.js';
61
+ export { LogoRows, type LogoRowsProps } from './blocks/logo-rows/LogoRows.js';
62
+ export { logoRowsParts, logoRowsDefaults } from './blocks/logo-rows/LogoRows.types.js';
43
63
  export { MenuItem, type MenuItemProps } from './core/menu-item/MenuItem.js';
44
64
  export { menuItemParts, menuItemDefaults } from './core/menu-item/MenuItem.types.js';
45
65
  export { Navbar, type NavbarProps } from './core/navbar/Navbar.js';
@@ -59,8 +79,14 @@ export { NavbarSwitcherOption, type NavbarSwitcherOptionProps } from './core/nav
59
79
  export { navbarSwitcherOptionParts, navbarSwitcherOptionDefaults } from './core/navbar-switcher-option/NavbarSwitcherOption.types.js';
60
80
  export { Option, type OptionProps } from './core/option/Option.js';
61
81
  export { optionParts, optionDefaults } from './core/option/Option.types.js';
82
+ export { PageHeader, type PageHeaderProps } from './blocks/page-header/PageHeader.js';
83
+ export { pageHeaderParts, pageHeaderDefaults } from './blocks/page-header/PageHeader.types.js';
62
84
  export { Pagination, type PaginationProps } from './core/pagination/Pagination.js';
63
85
  export { paginationParts, paginationDefaults } from './core/pagination/Pagination.types.js';
86
+ export { PaginationDots, type PaginationDotsProps } from './core/pagination-dots/PaginationDots.js';
87
+ export { paginationDotsParts, paginationDotsDefaults } from './core/pagination-dots/PaginationDots.types.js';
88
+ export { ProductHero, type ProductHeroProps } from './blocks/product-hero/ProductHero.js';
89
+ export { productHeroParts, productHeroDefaults } from './blocks/product-hero/ProductHero.types.js';
64
90
  export { RemovableChip, type RemovableChipProps } from './core/removable-chip/RemovableChip.js';
65
91
  export { removableChipParts, removableChipDefaults } from './core/removable-chip/RemovableChip.types.js';
66
92
  export { Row, type RowProps } from './layout/row/Row.js';
@@ -102,6 +128,10 @@ export { TableRow, type TableRowProps } from './core/table-row/TableRow.js';
102
128
  export { tableRowParts, tableRowDefaults } from './core/table-row/TableRow.types.js';
103
129
  export { TabList, type TabListProps } from './core/tab-list/TabList.js';
104
130
  export { tabListParts } from './core/tab-list/TabList.types.js';
131
+ export { TestimonialRow, type TestimonialRowProps } from './blocks/testimonial-row/TestimonialRow.js';
132
+ export { testimonialRowParts, testimonialRowDefaults } from './blocks/testimonial-row/TestimonialRow.types.js';
133
+ export { TestimonialSlider, type TestimonialSliderProps } from './blocks/testimonial-slider/TestimonialSlider.js';
134
+ export { testimonialSliderParts, testimonialSliderDefaults } from './blocks/testimonial-slider/TestimonialSlider.types.js';
105
135
  export { TextArea, type TextAreaProps } from './core/text-area/TextArea.js';
106
136
  export { textAreaParts, textAreaDefaults } from './core/text-area/TextArea.types.js';
107
137
  export { TextInput, type TextInputProps } from './core/text-input/TextInput.js';
@@ -112,3 +142,8 @@ export { useTooltip, useTooltipDefaults, type UseTooltipOptions, type UseTooltip
112
142
  export { TooltipAnchor, type TooltipAnchorProps } from './core/tooltip/TooltipAnchor.js';
113
143
  export { Typography, type TypographyProps } from './core/typography/Typography.js';
114
144
  export { typographyParts, typographyDefaults } from './core/typography/Typography.types.js';
145
+ export type { CtaBannerSlide } from './banner-data.js';
146
+ export type { LogoTile } from './logo-data.js';
147
+ export type { FeatureScrollStep } from './scroll-data.js';
148
+ export type { TestimonialRowReview, TestimonialRowSummary } from './testimonial-row-data.js';
149
+ export type { TestimonialSliderQuote } from './testimonial-slider-data.js';
@@ -25,10 +25,24 @@ export { CardButton } from './core/card-button/CardButton.js';
25
25
  export { cardButtonParts, cardButtonDefaults } from './core/card-button/CardButton.types.js';
26
26
  export { Checkbox } from './core/checkbox/Checkbox.js';
27
27
  export { checkboxParts, checkboxDefaults } from './core/checkbox/Checkbox.types.js';
28
+ export { CtaBanner } from './blocks/cta-banner/CtaBanner.js';
29
+ export { ctaBannerParts, ctaBannerDefaults } from './blocks/cta-banner/CtaBanner.types.js';
30
+ export { CtaBannerSlider } from './blocks/cta-banner-slider/CtaBannerSlider.js';
31
+ export { ctaBannerSliderParts, ctaBannerSliderDefaults } from './blocks/cta-banner-slider/CtaBannerSlider.types.js';
28
32
  export { Divider } from './core/divider/Divider.js';
29
33
  export { dividerParts, dividerDefaults } from './core/divider/Divider.types.js';
30
34
  export { DropdownMenu } from './core/dropdown-menu/DropdownMenu.js';
31
35
  export { dropdownMenuParts, dropdownMenuDefaults } from './core/dropdown-menu/DropdownMenu.types.js';
36
+ export { FaqAccordion } from './blocks/faq-accordion/FaqAccordion.js';
37
+ export { faqAccordionParts, faqAccordionDefaults } from './blocks/faq-accordion/FaqAccordion.types.js';
38
+ export { FeatureBullets } from './blocks/feature-bullets/FeatureBullets.js';
39
+ export { featureBulletsParts, featureBulletsDefaults } from './blocks/feature-bullets/FeatureBullets.types.js';
40
+ export { FeatureCards } from './blocks/feature-cards/FeatureCards.js';
41
+ export { featureCardsParts, featureCardsDefaults } from './blocks/feature-cards/FeatureCards.types.js';
42
+ export { FeatureScroll } from './blocks/feature-scroll/FeatureScroll.js';
43
+ export { featureScrollParts, featureScrollDefaults } from './blocks/feature-scroll/FeatureScroll.types.js';
44
+ export { FeatureSplit } from './blocks/feature-split/FeatureSplit.js';
45
+ export { featureSplitParts, featureSplitDefaults } from './blocks/feature-split/FeatureSplit.types.js';
32
46
  export { FilterChip } from './core/filter-chip/FilterChip.js';
33
47
  export { filterChipParts, filterChipDefaults } from './core/filter-chip/FilterChip.types.js';
34
48
  export { Footer } from './core/footer/Footer.js';
@@ -39,8 +53,14 @@ export { Grid } from './layout/grid/Grid.js';
39
53
  export { gridParts, gridDefaults } from './layout/grid/Grid.types.js';
40
54
  export { Icon } from './core/icon/Icon.js';
41
55
  export { iconParts, iconDefaults } from './core/icon/Icon.types.js';
56
+ export { LandingHero } from './blocks/landing-hero/LandingHero.js';
57
+ export { landingHeroParts, landingHeroDefaults } from './blocks/landing-hero/LandingHero.types.js';
42
58
  export { Link } from './core/link/Link.js';
43
59
  export { linkParts, linkDefaults } from './core/link/Link.types.js';
60
+ export { LogoColumns } from './blocks/logo-columns/LogoColumns.js';
61
+ export { logoColumnsParts, logoColumnsDefaults } from './blocks/logo-columns/LogoColumns.types.js';
62
+ export { LogoRows } from './blocks/logo-rows/LogoRows.js';
63
+ export { logoRowsParts, logoRowsDefaults } from './blocks/logo-rows/LogoRows.types.js';
44
64
  export { MenuItem } from './core/menu-item/MenuItem.js';
45
65
  export { menuItemParts, menuItemDefaults } from './core/menu-item/MenuItem.types.js';
46
66
  export { Navbar } from './core/navbar/Navbar.js';
@@ -60,8 +80,14 @@ export { NavbarSwitcherOption } from './core/navbar-switcher-option/NavbarSwitch
60
80
  export { navbarSwitcherOptionParts, navbarSwitcherOptionDefaults } from './core/navbar-switcher-option/NavbarSwitcherOption.types.js';
61
81
  export { Option } from './core/option/Option.js';
62
82
  export { optionParts, optionDefaults } from './core/option/Option.types.js';
83
+ export { PageHeader } from './blocks/page-header/PageHeader.js';
84
+ export { pageHeaderParts, pageHeaderDefaults } from './blocks/page-header/PageHeader.types.js';
63
85
  export { Pagination } from './core/pagination/Pagination.js';
64
86
  export { paginationParts, paginationDefaults } from './core/pagination/Pagination.types.js';
87
+ export { PaginationDots } from './core/pagination-dots/PaginationDots.js';
88
+ export { paginationDotsParts, paginationDotsDefaults } from './core/pagination-dots/PaginationDots.types.js';
89
+ export { ProductHero } from './blocks/product-hero/ProductHero.js';
90
+ export { productHeroParts, productHeroDefaults } from './blocks/product-hero/ProductHero.types.js';
65
91
  export { RemovableChip } from './core/removable-chip/RemovableChip.js';
66
92
  export { removableChipParts, removableChipDefaults } from './core/removable-chip/RemovableChip.types.js';
67
93
  export { Row } from './layout/row/Row.js';
@@ -103,6 +129,10 @@ export { TableRow } from './core/table-row/TableRow.js';
103
129
  export { tableRowParts, tableRowDefaults } from './core/table-row/TableRow.types.js';
104
130
  export { TabList } from './core/tab-list/TabList.js';
105
131
  export { tabListParts } from './core/tab-list/TabList.types.js';
132
+ export { TestimonialRow } from './blocks/testimonial-row/TestimonialRow.js';
133
+ export { testimonialRowParts, testimonialRowDefaults } from './blocks/testimonial-row/TestimonialRow.types.js';
134
+ export { TestimonialSlider } from './blocks/testimonial-slider/TestimonialSlider.js';
135
+ export { testimonialSliderParts, testimonialSliderDefaults } from './blocks/testimonial-slider/TestimonialSlider.types.js';
106
136
  export { TextArea } from './core/text-area/TextArea.js';
107
137
  export { textAreaParts, textAreaDefaults } from './core/text-area/TextArea.types.js';
108
138
  export { TextInput } from './core/text-input/TextInput.js';
@@ -0,0 +1,24 @@
1
+ /**
2
+ * The logos a LogoColumns wall or a LogoRows section carries.
3
+ *
4
+ * Exported from the package for the reason `testimonial-row-data.ts` and `banner-data.ts` are: a
5
+ * block whose content is a list is one whose consumer builds a value before passing it.
6
+ *
7
+ * A record rather than a component per logo, because a logo is a picture and the name of whose it
8
+ * is — nothing in it is an element a page composes — and a set of them is what a partner feed or a
9
+ * CMS hands over.
10
+ */
11
+ /** One logo on a LogoColumns wall or a LogoRows row: the mark, and the name it stands for. */
12
+ export interface LogoTile {
13
+ /**
14
+ * Whose mark it is — "Visa", "Skrill". It is the picture's alternative text, so it is what a
15
+ * screen reader hears for the logo, and it has to be the name rather than "logo".
16
+ */
17
+ name: string;
18
+ /**
19
+ * The mark itself, as a path or a URL. Drawn whole inside its tile — contained, never cropped —
20
+ * so a wide wordmark and a square badge both show all of themselves. A mark drawn for the ground
21
+ * it sits on: a white wordmark for the dark band, a full-colour one for a light ground.
22
+ */
23
+ src: string;
24
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The logos a LogoColumns wall or a LogoRows section carries.
3
+ *
4
+ * Exported from the package for the reason `testimonial-row-data.ts` and `banner-data.ts` are: a
5
+ * block whose content is a list is one whose consumer builds a value before passing it.
6
+ *
7
+ * A record rather than a component per logo, because a logo is a picture and the name of whose it
8
+ * is — nothing in it is an element a page composes — and a set of them is what a partner feed or a
9
+ * CMS hands over.
10
+ */
11
+ export {};