@deriv-com/dds-marketing 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. package/.llm/components/accordion.md +10 -0
  2. package/.llm/components/accordionitem.md +10 -0
  3. package/.llm/components/aspectratio.md +10 -0
  4. package/.llm/components/awards.md +10 -0
  5. package/.llm/components/background.md +52 -9
  6. package/.llm/components/badge.md +13 -3
  7. package/.llm/components/bottomsheet.md +13 -3
  8. package/.llm/components/breadcrumb.md +10 -0
  9. package/.llm/components/breadcrumbitem.md +10 -0
  10. package/.llm/components/button.md +13 -3
  11. package/.llm/components/buttonicon.md +17 -7
  12. package/.llm/components/card.md +11 -1
  13. package/.llm/components/cardbody.md +12 -2
  14. package/.llm/components/cardbutton.md +10 -0
  15. package/.llm/components/checkbox.md +7 -1
  16. package/.llm/components/comparisoncards.md +13 -3
  17. package/.llm/components/comparisontable.md +10 -0
  18. package/.llm/components/ctabanner.md +10 -0
  19. package/.llm/components/ctabannerslider.md +10 -0
  20. package/.llm/components/datatable.md +10 -0
  21. package/.llm/components/divider.md +10 -0
  22. package/.llm/components/documentlink.md +237 -0
  23. package/.llm/components/documents.md +268 -0
  24. package/.llm/components/downloadbanner.md +11 -1
  25. package/.llm/components/dropdownmenu.md +15 -5
  26. package/.llm/components/estimator.md +342 -0
  27. package/.llm/components/faqaccordion.md +10 -0
  28. package/.llm/components/featurebullets.md +10 -0
  29. package/.llm/components/featurecards.md +47 -3
  30. package/.llm/components/featurecardscarousel.md +11 -1
  31. package/.llm/components/featurescroll.md +10 -0
  32. package/.llm/components/featuresplit.md +10 -0
  33. package/.llm/components/featurestack.md +10 -0
  34. package/.llm/components/featuretabs.md +369 -0
  35. package/.llm/components/filterchip.md +11 -1
  36. package/.llm/components/footer.md +10 -0
  37. package/.llm/components/footergroup.md +10 -0
  38. package/.llm/components/grid.md +34 -1
  39. package/.llm/components/icon.md +15 -5
  40. package/.llm/components/illustrationcard.md +56 -2
  41. package/.llm/components/illustrationcheck.md +193 -0
  42. package/.llm/components/illustrationchoice.md +187 -0
  43. package/.llm/components/illustrationcode.md +192 -0
  44. package/.llm/components/illustrationlist.md +175 -0
  45. package/.llm/components/illustrationscene.md +33 -3
  46. package/.llm/components/imagebanner.md +35 -6
  47. package/.llm/components/landinghero.md +10 -0
  48. package/.llm/components/link.md +12 -2
  49. package/.llm/components/logocolumns.md +11 -1
  50. package/.llm/components/logorows.md +46 -2
  51. package/.llm/components/menuitem.md +12 -2
  52. package/.llm/components/navbar.md +11 -1
  53. package/.llm/components/navbaritem.md +10 -0
  54. package/.llm/components/navbarmenu.md +10 -0
  55. package/.llm/components/navbarmenugroup.md +10 -0
  56. package/.llm/components/navbarpanel.md +10 -0
  57. package/.llm/components/navbarswitcher.md +16 -6
  58. package/.llm/components/navbarswitcheroption.md +10 -0
  59. package/.llm/components/option.md +11 -1
  60. package/.llm/components/pageheader.md +10 -0
  61. package/.llm/components/pagination.md +10 -0
  62. package/.llm/components/paginationdots.md +10 -0
  63. package/.llm/components/producthero.md +33 -4
  64. package/.llm/components/progressbar.md +305 -0
  65. package/.llm/components/removablechip.md +11 -1
  66. package/.llm/components/resourcebanner.md +10 -0
  67. package/.llm/components/row.md +10 -0
  68. package/.llm/components/scenescroll.md +42 -24
  69. package/.llm/components/scenescrollword.md +267 -0
  70. package/.llm/components/scroller.md +10 -0
  71. package/.llm/components/searchinput.md +10 -0
  72. package/.llm/components/segmentedcontrol.md +33 -2
  73. package/.llm/components/segmentedcontrolitem.md +12 -2
  74. package/.llm/components/select.md +10 -0
  75. package/.llm/components/selectchip.md +10 -0
  76. package/.llm/components/spinner.md +10 -0
  77. package/.llm/components/stack.md +10 -0
  78. package/.llm/components/stats.md +50 -1
  79. package/.llm/components/statscarousel.md +227 -0
  80. package/.llm/components/statusdot.md +45 -1
  81. package/.llm/components/steps.md +10 -0
  82. package/.llm/components/stickycards.md +10 -0
  83. package/.llm/components/subdomainnavbar.md +11 -1
  84. package/.llm/components/tab.md +12 -2
  85. package/.llm/components/table.md +10 -0
  86. package/.llm/components/tablebody.md +10 -0
  87. package/.llm/components/tablecell.md +10 -0
  88. package/.llm/components/tablehead.md +10 -0
  89. package/.llm/components/tableheadercell.md +10 -0
  90. package/.llm/components/tablerow.md +10 -0
  91. package/.llm/components/tablist.md +10 -0
  92. package/.llm/components/teamgrid.md +10 -0
  93. package/.llm/components/testimonialrow.md +47 -3
  94. package/.llm/components/testimonialslider.md +12 -2
  95. package/.llm/components/textarea.md +10 -0
  96. package/.llm/components/textinput.md +11 -1
  97. package/.llm/components/textscroll.md +10 -0
  98. package/.llm/components/tiers.md +17 -7
  99. package/.llm/components/tooltip.md +6 -0
  100. package/.llm/components/typography.md +67 -1
  101. package/.llm/digest/accordion.md +1 -1
  102. package/.llm/digest/accordionitem.md +1 -1
  103. package/.llm/digest/aspectratio.md +1 -1
  104. package/.llm/digest/awards.md +1 -1
  105. package/.llm/digest/background.md +14 -6
  106. package/.llm/digest/badge.md +1 -1
  107. package/.llm/digest/bottomsheet.md +1 -1
  108. package/.llm/digest/breadcrumb.md +1 -1
  109. package/.llm/digest/breadcrumbitem.md +1 -1
  110. package/.llm/digest/button.md +2 -2
  111. package/.llm/digest/buttonicon.md +2 -2
  112. package/.llm/digest/card.md +1 -1
  113. package/.llm/digest/cardbody.md +1 -1
  114. package/.llm/digest/cardbutton.md +1 -1
  115. package/.llm/digest/checkbox.md +1 -1
  116. package/.llm/digest/comparisoncards.md +1 -1
  117. package/.llm/digest/comparisontable.md +1 -1
  118. package/.llm/digest/ctabanner.md +1 -1
  119. package/.llm/digest/ctabannerslider.md +1 -1
  120. package/.llm/digest/datatable.md +1 -1
  121. package/.llm/digest/divider.md +1 -1
  122. package/.llm/digest/documentlink.md +52 -0
  123. package/.llm/digest/documents.md +51 -0
  124. package/.llm/digest/downloadbanner.md +2 -2
  125. package/.llm/digest/dropdownmenu.md +1 -1
  126. package/.llm/digest/estimator.md +66 -0
  127. package/.llm/digest/faqaccordion.md +1 -1
  128. package/.llm/digest/featurebullets.md +1 -1
  129. package/.llm/digest/featurecards.md +8 -1
  130. package/.llm/digest/featurecardscarousel.md +1 -1
  131. package/.llm/digest/featurescroll.md +1 -1
  132. package/.llm/digest/featuresplit.md +1 -1
  133. package/.llm/digest/featurestack.md +1 -1
  134. package/.llm/digest/featuretabs.md +50 -0
  135. package/.llm/digest/filterchip.md +1 -1
  136. package/.llm/digest/footer.md +1 -1
  137. package/.llm/digest/footergroup.md +1 -1
  138. package/.llm/digest/grid.md +2 -1
  139. package/.llm/digest/icon.md +1 -1
  140. package/.llm/digest/illustrationcard.md +7 -2
  141. package/.llm/digest/illustrationcheck.md +42 -0
  142. package/.llm/digest/illustrationchoice.md +43 -0
  143. package/.llm/digest/illustrationcode.md +41 -0
  144. package/.llm/digest/illustrationlist.md +38 -0
  145. package/.llm/digest/illustrationscene.md +5 -3
  146. package/.llm/digest/imagebanner.md +11 -5
  147. package/.llm/digest/landinghero.md +1 -1
  148. package/.llm/digest/link.md +1 -1
  149. package/.llm/digest/logocolumns.md +2 -2
  150. package/.llm/digest/logorows.md +9 -2
  151. package/.llm/digest/menuitem.md +1 -1
  152. package/.llm/digest/navbar.md +1 -1
  153. package/.llm/digest/navbaritem.md +1 -1
  154. package/.llm/digest/navbarmenu.md +1 -1
  155. package/.llm/digest/navbarmenugroup.md +1 -1
  156. package/.llm/digest/navbarpanel.md +1 -1
  157. package/.llm/digest/navbarswitcher.md +1 -1
  158. package/.llm/digest/navbarswitcheroption.md +1 -1
  159. package/.llm/digest/option.md +1 -1
  160. package/.llm/digest/pageheader.md +1 -1
  161. package/.llm/digest/pagination.md +1 -1
  162. package/.llm/digest/paginationdots.md +1 -1
  163. package/.llm/digest/producthero.md +9 -3
  164. package/.llm/digest/progressbar.md +56 -0
  165. package/.llm/digest/removablechip.md +1 -1
  166. package/.llm/digest/resourcebanner.md +1 -1
  167. package/.llm/digest/row.md +1 -1
  168. package/.llm/digest/scenescroll.md +7 -6
  169. package/.llm/digest/scenescrollword.md +56 -0
  170. package/.llm/digest/scroller.md +1 -1
  171. package/.llm/digest/searchinput.md +1 -1
  172. package/.llm/digest/segmentedcontrol.md +4 -1
  173. package/.llm/digest/segmentedcontrolitem.md +2 -2
  174. package/.llm/digest/select.md +1 -1
  175. package/.llm/digest/selectchip.md +1 -1
  176. package/.llm/digest/spinner.md +1 -1
  177. package/.llm/digest/stack.md +1 -1
  178. package/.llm/digest/stats.md +9 -1
  179. package/.llm/digest/statscarousel.md +48 -0
  180. package/.llm/digest/statusdot.md +8 -1
  181. package/.llm/digest/steps.md +1 -1
  182. package/.llm/digest/stickycards.md +1 -1
  183. package/.llm/digest/subdomainnavbar.md +1 -1
  184. package/.llm/digest/tab.md +1 -1
  185. package/.llm/digest/table.md +1 -1
  186. package/.llm/digest/tablebody.md +1 -1
  187. package/.llm/digest/tablecell.md +1 -1
  188. package/.llm/digest/tablehead.md +1 -1
  189. package/.llm/digest/tableheadercell.md +1 -1
  190. package/.llm/digest/tablerow.md +1 -1
  191. package/.llm/digest/tablist.md +1 -1
  192. package/.llm/digest/teamgrid.md +1 -1
  193. package/.llm/digest/testimonialrow.md +9 -2
  194. package/.llm/digest/testimonialslider.md +2 -2
  195. package/.llm/digest/textarea.md +1 -1
  196. package/.llm/digest/textinput.md +1 -1
  197. package/.llm/digest/textscroll.md +1 -1
  198. package/.llm/digest/tiers.md +1 -1
  199. package/.llm/digest/typography.md +19 -1
  200. package/.llm/index.md +15 -4
  201. package/.llm/rules.md +10 -0
  202. package/.llm/tokens.md +13 -3
  203. package/AGENTS.md +14 -2
  204. package/README.md +28 -3
  205. package/dist/components/arrival.d.ts +32 -0
  206. package/dist/components/arrival.js +140 -0
  207. package/dist/components/arrives.d.ts +17 -0
  208. package/dist/components/arrives.js +14 -0
  209. package/dist/components/blocks/awards/Awards.js +2 -27
  210. package/dist/components/blocks/block-pattern.css +23 -0
  211. package/dist/components/blocks/comparison-cards/comparison-cards-impl.css +29 -12
  212. package/dist/components/blocks/documents/Documents.css +90 -0
  213. package/dist/components/blocks/documents/Documents.d.ts +22 -0
  214. package/dist/components/blocks/documents/Documents.js +30 -0
  215. package/dist/components/blocks/documents/Documents.types.d.ts +37 -0
  216. package/dist/components/blocks/documents/Documents.types.js +14 -0
  217. package/dist/components/blocks/documents/documents-impl.css +103 -0
  218. package/dist/components/blocks/download-banner/DownloadBanner.css +1 -1
  219. package/dist/components/blocks/download-banner/DownloadBanner.types.d.ts +1 -1
  220. package/dist/components/blocks/estimator/Estimator.css +206 -0
  221. package/dist/components/blocks/estimator/Estimator.d.ts +27 -0
  222. package/dist/components/blocks/estimator/Estimator.js +61 -0
  223. package/dist/components/blocks/estimator/Estimator.types.d.ts +63 -0
  224. package/dist/components/blocks/estimator/Estimator.types.js +25 -0
  225. package/dist/components/blocks/estimator/estimator-impl.css +159 -0
  226. package/dist/components/blocks/feature-cards/FeatureCards.d.ts +2 -1
  227. package/dist/components/blocks/feature-cards/FeatureCards.js +10 -7
  228. package/dist/components/blocks/feature-cards/FeatureCards.types.d.ts +9 -1
  229. package/dist/components/blocks/feature-cards/feature-cards-impl.css +15 -3
  230. package/dist/components/blocks/feature-cards-carousel/FeatureCardsCarousel.types.d.ts +1 -1
  231. package/dist/components/blocks/feature-cards-carousel/feature-cards-carousel-impl.css +12 -0
  232. package/dist/components/blocks/feature-tabs/FeatureTabs.css +100 -0
  233. package/dist/components/blocks/feature-tabs/FeatureTabs.d.ts +23 -0
  234. package/dist/components/blocks/feature-tabs/FeatureTabs.js +38 -0
  235. package/dist/components/blocks/feature-tabs/FeatureTabs.types.d.ts +35 -0
  236. package/dist/components/blocks/feature-tabs/FeatureTabs.types.js +14 -0
  237. package/dist/components/blocks/feature-tabs/feature-tabs-impl.css +53 -0
  238. package/dist/components/blocks/image-banner/ImageBanner.css +1 -1
  239. package/dist/components/blocks/image-banner/ImageBanner.d.ts +2 -1
  240. package/dist/components/blocks/image-banner/ImageBanner.js +3 -2
  241. package/dist/components/blocks/image-banner/ImageBanner.types.d.ts +10 -8
  242. package/dist/components/blocks/image-banner/ImageBanner.types.js +1 -1
  243. package/dist/components/blocks/image-banner/image-banner-impl.css +78 -71
  244. package/dist/components/blocks/laurel.d.ts +16 -0
  245. package/dist/components/blocks/laurel.js +28 -0
  246. package/dist/components/blocks/logo-columns/LogoColumns.css +1 -1
  247. package/dist/components/blocks/logo-columns/LogoColumns.types.d.ts +1 -1
  248. package/dist/components/blocks/logo-rows/LogoRows.css +1 -1
  249. package/dist/components/blocks/logo-rows/LogoRows.d.ts +2 -1
  250. package/dist/components/blocks/logo-rows/LogoRows.js +7 -4
  251. package/dist/components/blocks/logo-rows/LogoRows.types.d.ts +9 -1
  252. package/dist/components/blocks/pattern-tone.d.ts +11 -0
  253. package/dist/components/blocks/pattern-tone.js +7 -0
  254. package/dist/components/blocks/product-hero/ProductHero.d.ts +1 -1
  255. package/dist/components/blocks/product-hero/ProductHero.js +2 -2
  256. package/dist/components/blocks/product-hero/ProductHero.types.d.ts +8 -3
  257. package/dist/components/blocks/product-hero/ProductHero.types.js +1 -1
  258. package/dist/components/blocks/product-hero/product-hero-impl.css +54 -0
  259. package/dist/components/blocks/resource-banner/ResourceBanner.css +1 -1
  260. package/dist/components/blocks/scene-scroll/SceneScroll.css +1 -1
  261. package/dist/components/blocks/scene-scroll/SceneScroll.d.ts +6 -5
  262. package/dist/components/blocks/scene-scroll/SceneScroll.js +8 -7
  263. package/dist/components/blocks/scene-scroll/SceneScroll.types.d.ts +5 -5
  264. package/dist/components/blocks/scene-scroll/SceneScroll.types.js +1 -1
  265. package/dist/components/blocks/scene-scroll/scene-scroll-impl.css +61 -44
  266. package/dist/components/blocks/scene-scroll-word/SceneScrollWord.css +105 -0
  267. package/dist/components/blocks/scene-scroll-word/SceneScrollWord.d.ts +31 -0
  268. package/dist/components/blocks/scene-scroll-word/SceneScrollWord.js +67 -0
  269. package/dist/components/blocks/scene-scroll-word/SceneScrollWord.types.d.ts +39 -0
  270. package/dist/components/blocks/scene-scroll-word/SceneScrollWord.types.js +18 -0
  271. package/dist/components/blocks/scene-scroll-word/scene-scroll-word-impl.css +370 -0
  272. package/dist/components/blocks/stats/Stats.d.ts +2 -1
  273. package/dist/components/blocks/stats/Stats.js +17 -14
  274. package/dist/components/blocks/stats/Stats.types.d.ts +8 -0
  275. package/dist/components/blocks/stats/stats-impl.css +4 -1
  276. package/dist/components/blocks/stats/use-wheel.d.ts +1 -1
  277. package/dist/components/blocks/stats/use-wheel.js +8 -4
  278. package/dist/components/blocks/stats-carousel/StatsCarousel.css +209 -0
  279. package/dist/components/blocks/stats-carousel/StatsCarousel.d.ts +20 -0
  280. package/dist/components/blocks/stats-carousel/StatsCarousel.js +48 -0
  281. package/dist/components/blocks/stats-carousel/StatsCarousel.types.d.ts +43 -0
  282. package/dist/components/blocks/stats-carousel/StatsCarousel.types.js +23 -0
  283. package/dist/components/blocks/stats-carousel/stats-carousel-impl.css +233 -0
  284. package/dist/components/blocks/sticky-cards/sticky-cards-impl.css +8 -0
  285. package/dist/components/blocks/testimonial-row/TestimonialRow.css +1 -1
  286. package/dist/components/blocks/testimonial-row/TestimonialRow.d.ts +2 -1
  287. package/dist/components/blocks/testimonial-row/TestimonialRow.js +16 -13
  288. package/dist/components/blocks/testimonial-row/TestimonialRow.types.d.ts +9 -1
  289. package/dist/components/blocks/testimonial-slider/TestimonialSlider.css +1 -1
  290. package/dist/components/blocks/testimonial-slider/TestimonialSlider.types.d.ts +1 -1
  291. package/dist/components/blocks/tiers/Tiers.types.d.ts +1 -1
  292. package/dist/components/core/background/Background.css +19 -0
  293. package/dist/components/core/background/Background.types.d.ts +2 -1
  294. package/dist/components/core/background/background-impl.css +47 -15
  295. package/dist/components/core/background/halftone.js +1 -1
  296. package/dist/components/core/button/Button.css +5 -5
  297. package/dist/components/core/button-icon/ButtonIcon.types.d.ts +1 -1
  298. package/dist/components/core/card-body/CardBody.css +5 -0
  299. package/dist/components/core/card-body/CardBody.types.d.ts +1 -1
  300. package/dist/components/core/document-link/DocumentLink.css +59 -0
  301. package/dist/components/core/document-link/DocumentLink.d.ts +19 -0
  302. package/dist/components/core/document-link/DocumentLink.js +21 -0
  303. package/dist/components/core/document-link/DocumentLink.types.d.ts +41 -0
  304. package/dist/components/core/document-link/DocumentLink.types.js +11 -0
  305. package/dist/components/core/document-link/document-link-impl.css +23 -0
  306. package/dist/components/core/illustration-card/IllustrationCard.css +7 -0
  307. package/dist/components/core/illustration-card/IllustrationCard.d.ts +5 -1
  308. package/dist/components/core/illustration-card/IllustrationCard.js +34 -8
  309. package/dist/components/core/illustration-card/IllustrationCard.types.d.ts +8 -1
  310. package/dist/components/core/illustration-card/IllustrationCard.types.js +1 -0
  311. package/dist/components/core/illustration-card/illustration-card-impl.css +113 -0
  312. package/dist/components/core/illustration-check/IllustrationCheck.css +25 -0
  313. package/dist/components/core/illustration-check/IllustrationCheck.d.ts +16 -0
  314. package/dist/components/core/illustration-check/IllustrationCheck.js +22 -0
  315. package/dist/components/core/illustration-check/IllustrationCheck.types.d.ts +25 -0
  316. package/dist/components/core/illustration-check/IllustrationCheck.types.js +9 -0
  317. package/dist/components/core/illustration-check/illustration-check-impl.css +76 -0
  318. package/dist/components/core/illustration-choice/IllustrationChoice.css +62 -0
  319. package/dist/components/core/illustration-choice/IllustrationChoice.d.ts +16 -0
  320. package/dist/components/core/illustration-choice/IllustrationChoice.js +31 -0
  321. package/dist/components/core/illustration-choice/IllustrationChoice.types.d.ts +25 -0
  322. package/dist/components/core/illustration-choice/IllustrationChoice.types.js +11 -0
  323. package/dist/components/core/illustration-choice/illustration-choice-impl.css +103 -0
  324. package/dist/components/core/illustration-code/IllustrationCode.css +25 -0
  325. package/dist/components/core/illustration-code/IllustrationCode.d.ts +12 -0
  326. package/dist/components/core/illustration-code/IllustrationCode.js +20 -0
  327. package/dist/components/core/illustration-code/IllustrationCode.types.d.ts +23 -0
  328. package/dist/components/core/illustration-code/IllustrationCode.types.js +8 -0
  329. package/dist/components/core/illustration-code/illustration-code-impl.css +42 -0
  330. package/dist/components/core/illustration-list/IllustrationList.css +19 -0
  331. package/dist/components/core/illustration-list/IllustrationList.d.ts +16 -0
  332. package/dist/components/core/illustration-list/IllustrationList.js +18 -0
  333. package/dist/components/core/illustration-list/IllustrationList.types.d.ts +15 -0
  334. package/dist/components/core/illustration-list/IllustrationList.types.js +6 -0
  335. package/dist/components/core/illustration-list/illustration-list-impl.css +52 -0
  336. package/dist/components/core/illustration-scene/IllustrationScene.css +6 -0
  337. package/dist/components/core/illustration-scene/IllustrationScene.d.ts +3 -2
  338. package/dist/components/core/illustration-scene/IllustrationScene.js +4 -3
  339. package/dist/components/core/illustration-scene/IllustrationScene.types.d.ts +5 -1
  340. package/dist/components/core/illustration-scene/IllustrationScene.types.js +2 -1
  341. package/dist/components/core/illustration-scene/illustration-scene-impl.css +65 -0
  342. package/dist/components/core/link/link-impl.css +5 -19
  343. package/dist/components/core/progress-bar/ProgressBar.css +101 -0
  344. package/dist/components/core/progress-bar/ProgressBar.d.ts +5 -0
  345. package/dist/components/core/progress-bar/ProgressBar.js +34 -0
  346. package/dist/components/core/progress-bar/ProgressBar.types.d.ts +52 -0
  347. package/dist/components/core/progress-bar/ProgressBar.types.js +12 -0
  348. package/dist/components/core/progress-bar/progress-bar-impl.css +45 -0
  349. package/dist/components/core/segmented-control/SegmentedControl.d.ts +1 -1
  350. package/dist/components/core/segmented-control/SegmentedControl.js +13 -5
  351. package/dist/components/core/segmented-control/SegmentedControl.types.d.ts +5 -1
  352. package/dist/components/core/segmented-control/segmented-control-impl.css +35 -0
  353. package/dist/components/core/segmented-control-item/SegmentedControlItem.types.d.ts +1 -1
  354. package/dist/components/core/select/Select.css +2 -0
  355. package/dist/components/core/select/select-impl.css +58 -0
  356. package/dist/components/core/status-dot/StatusDot.d.ts +1 -1
  357. package/dist/components/core/status-dot/StatusDot.js +7 -4
  358. package/dist/components/core/status-dot/StatusDot.types.d.ts +9 -1
  359. package/dist/components/core/status-dot/status-dot-impl.css +101 -0
  360. package/dist/components/core/text-area/TextArea.css +2 -0
  361. package/dist/components/core/text-area/text-area-impl.css +54 -0
  362. package/dist/components/core/text-input/TextInput.css +2 -0
  363. package/dist/components/core/text-input/text-input-impl.css +63 -0
  364. package/dist/components/core/typography/Typography.d.ts +3 -283
  365. package/dist/components/core/typography/Typography.js +9 -1
  366. package/dist/components/core/typography/Typography.types.d.ts +9 -15
  367. package/dist/components/core/typography/TypographyMotion.d.ts +28 -0
  368. package/dist/components/core/typography/TypographyMotion.js +43 -0
  369. package/dist/components/core/typography/typography-impl.css +106 -0
  370. package/dist/components/estimator-data.d.ts +29 -0
  371. package/dist/components/estimator-data.js +12 -0
  372. package/dist/components/illustration-data.d.ts +15 -0
  373. package/dist/components/illustration-data.js +7 -0
  374. package/dist/components/index.d.ts +25 -1
  375. package/dist/components/index.js +22 -0
  376. package/dist/components/layout/grid/Grid.css +5 -0
  377. package/dist/components/layout/grid/Grid.types.d.ts +2 -1
  378. package/dist/components/scene-scroll-data.d.ts +35 -0
  379. package/dist/components/tiers-data.d.ts +3 -2
  380. package/dist/icons/accounts.d.ts +1 -0
  381. package/dist/icons/accounts.js +1 -0
  382. package/dist/icons/app-stores.d.ts +1 -0
  383. package/dist/icons/app-stores.js +1 -0
  384. package/dist/icons/currency.d.ts +1 -0
  385. package/dist/icons/currency.js +1 -0
  386. package/dist/icons/flag.d.ts +1 -0
  387. package/dist/icons/flag.js +1 -0
  388. package/dist/icons/illustrative.d.ts +1 -0
  389. package/dist/icons/illustrative.js +1 -0
  390. package/dist/icons/index.d.ts +1 -0
  391. package/dist/icons/index.js +4 -0
  392. package/dist/icons/markets.d.ts +1 -0
  393. package/dist/icons/markets.js +1 -0
  394. package/dist/icons/social.d.ts +1 -0
  395. package/dist/icons/social.js +1 -0
  396. package/dist/icons/system.d.ts +1 -0
  397. package/dist/icons/system.js +1 -0
  398. package/dist/icons/trade.d.ts +1 -0
  399. package/dist/icons/trade.js +1 -0
  400. package/dist/marketing.css +26 -6
  401. package/package.json +44 -2
@@ -0,0 +1,38 @@
1
+ <!-- GENERATED from illustrationlist.contract.json. Do not edit. -->
2
+
3
+ # IllustrationList
4
+
5
+ A drawn list of rows — a glyph and a name each — for a picture of the product listing things
6
+
7
+ `import { IllustrationList } from '@deriv-com/dds-marketing'`
8
+
9
+ ## Reach for it when
10
+
11
+ - A pane, or any picture of the product, listing a few things — the forex pairs on a platform, the documents a check needs
12
+ - The list arriving is the point of the picture, played once with `motion="arrive"`
13
+
14
+ ## Something else, when
15
+
16
+ - A list of benefits or features the page itself is making → **FeatureBullets**
17
+ - A data table the reader compares across → **Table**
18
+
19
+ ## Never
20
+
21
+ - More than five or six rows. A picture of a long list reads as a list to scroll, and its arrival as a page loading
22
+ - Rows a reader acts on. Nothing in it can be pressed
23
+ - More than one moving thing in a pane. One lead motion per pane
24
+
25
+ ## Props
26
+
27
+ - **motion** `enum` · optional — The list moves once, on arrival — in an IllustrationCard when the pane has landed, otherwise when it is well into view. At rest, and for a reader who asked for less movement, the list is simply there
28
+ - `arrive` — The rows come in one after another, and each glyph pops in as its row lands
29
+ - never: A list beside another moving part in the same pane. One lead motion per pane
30
+
31
+ ## Inside it
32
+
33
+ - 2 components are refused inside it; the list and the reasons are in the long document.
34
+ - Renders 2 parts: root, row.
35
+
36
+ ---
37
+
38
+ The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/illustrationlist.md`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  # IllustrationScene
4
4
 
5
- A photograph with an IllustrationCard laid over it — the product shown in the hands of the people who use it: a trade ticket over a trader on the move, a balance over someone at a desk. …
5
+ A photograph with an IllustrationCard laid over it
6
6
 
7
7
  `import { IllustrationScene } from '@deriv-com/dds-marketing'`
8
8
 
@@ -32,18 +32,20 @@ A photograph with an IllustrationCard laid over it — the product shown in the
32
32
  - **placement** `enum` · default "center" — Where the card sits over the photograph, so the subject of the photograph stays clear of it
33
33
  - `center` — The default: the card in the middle of the frame. For a photograph whose subject frames the middle — a person looking down at what the card shows
34
34
  - `bottom` — The card centred along the foot of the frame, held off it by the card's own inset — for a photograph whose subject fills the top: a face, a person reaching up, a skyline
35
- - never: Anything but keeping the photograph's subject clear. The card's size is fixed by the shape; placement moves it and nothing else
35
+ - never: Anything but keeping the photograph's subject clear. The card's width is fixed by the shape; placement moves it, and at the foot holds it to at most two fifths of the frame's height
36
36
  - **src** `string` · required — Always. The photograph the scene is set in
37
37
  - never: A data URI holding a photograph. A scene's photograph is the heaviest thing on its page and belongs in a file the browser can cache
38
38
  - **alt** `string` · default "" — Empty by default, because the card's `label` describes the whole picture and the photograph is decoration. Write one only where the photograph says something the label does not
39
39
  - never: Repeating the card's label. A screen reader would hear the picture described twice
40
+ - **shade** `boolean` · default false — The photograph is bright where the card sits — a sunny sky, a white wall — so the glass would come out mid-grey and the card's small lines would fall below AA. …
41
+ - never: A photograph already dark where the card sits, or darkening the whole photograph. The shade is for the card's type, and on a dark photograph it only takes light out of the scene
40
42
 
41
43
  ## Inside it
42
44
 
43
45
  - Takes only IllustrationCard.
44
46
  - At least 1, at most 1 — fewer is not this component and more is a different one.
45
47
  - 2 components are refused inside it; the list and the reasons are in the long document.
46
- - Renders 2 parts: root, image.
48
+ - Renders 3 parts: root, image, shade.
47
49
 
48
50
  ---
49
51
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # ImageBanner
4
4
 
5
- A dark card in the middle of a page, pairing a headline and a line under it with a photograph — beside it or behind it, with one action. …
5
+ A dark card pairing a headline and one action with a photograph
6
6
 
7
7
  `import { ImageBanner } from '@deriv-com/dds-marketing'`
8
8
 
@@ -29,12 +29,12 @@ A dark card in the middle of a page, pairing a headline and a line under it with
29
29
  - **ground** `enum` · default "page" — Which of the page's three grounds the band around the card paints. The card is dark whatever this says — that is what the block is — so this is about the rhythm of the page, white, grey or dark, and never about the card. …
30
30
  - `page` — The default, and the page's own white, with the dark card set into it. Most of the time: the card is already the break
31
31
  - `subtle` — The grey band, for a card that follows a white section the page wants told apart from this one. …
32
- - `strong` — `color.bg.brand-strong`, the dark band, with the card a step lighter at color.bg.surface-card-strong so it still reads as a card. …
32
+ - `strong` — `color.bg.brand-strong`, the dark band, with the card a step lighter at color.bg.surface-card-strong-on-brand-strong so it still reads as a card. …
33
33
  - never: Making the card darker. The card is dark on every ground; painting the band dark too spends the page's one dark band on a section that was already one
34
34
  - **variant** `enum` · default "split" — What the photograph does: beside the words, or behind them. Both carry one action — two of the reference design's layouts
35
35
  - `split` — The default. The words in one half and the photograph filling the other, edge to edge, with one action under the words. …
36
- - `cover` — The photograph fills the whole card, with the words over it behind a scrim that darkens the side they are on and leaves the photograph clear on the other. …
37
- - never: Choosing by how busy the page looks. Cover hides part of the photograph under the scrim; it is a decision about the photograph, not decoration
36
+ - `cover` — The photograph fills the whole card, with the words over it on a shade that darkens the words' own column and fades out just past it, leaving the rest of the photograph clear. …
37
+ - never: Choosing by how busy the page looks. Cover lays the words on part of the photograph behind a shade; it is a decision about the photograph, not decoration
38
38
  - **mediaPosition** `enum` · default "end" — Which side the photograph takes, and in cover, which side it shows clear on with the words on the other. Alternating it with the section above is the page's decision, not this one's
39
39
  - `end` — The default. The words lead and the photograph follows, which is the order the card argues in
40
40
  - `start` — The photograph leads — the second of two cards on a page, or a photograph whose subject faces the words. A split card puts it above the words on a phone as well, as the reference design does
@@ -51,8 +51,14 @@ A dark card in the middle of a page, pairing a headline and a line under it with
51
51
  - never: A second action. The card asks for one thing
52
52
  - **media** `node` · required — Always. The page's photograph, through AspectRatio or as an image — people or product. Split and cover crop it to fill the space they give it. Alt text is the page's to give, empty where the photograph is decoration
53
53
  - never: Artwork with words in it. The cover photograph sits under a scrim and the text, and the split crops to fill
54
- - **parallax** `boolean` · default true — The photograph drifts against the scroll as the card passes through the view, by motion.distance.drift over the whole pass, so it reads as further away than the card — the reference design's ParallaxBanner, which this replaces. …
54
+ - **parallax** `boolean` · default true — The photograph drifts against the scroll as the card passes through the view, the drift every block's picture shares — drawn at motion.scale.parallax and moved from motion.translate.parallax-from to motion.translate.parallax-to over the whole pass — so it reads as further away than the card — the reference design's ParallaxBanner, which this replaces. …
55
55
  - never: Holding still for a reader who asked for less motion — it already holds still for them, and in a browser that cannot drive it from the scroll
56
+ - **stackOnPhone** `boolean` · default false — A cover photograph whose subject a phone's crop would put under the words or cut off — a person, a face, hands. …
57
+ - never: A split card, which stacks on a phone already, or a photograph that is setting rather than subject. Stacked, the phone loses the cover look, so keep it for the photograph that would otherwise lose its subject
58
+
59
+ ## The type refuses
60
+
61
+ - variant="split" with stackOnPhone=true — A split card already stacks its words and its photograph on a phone; there is nothing for this to change
56
62
 
57
63
  ## Inside it
58
64
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # LandingHero
4
4
 
5
- The band that opens a main landing page: the one thing the page is about, said once, at the top, over a ground dark enough that nothing above it competes. One of three opening bands, and the widest. …
5
+ Opens a main landing page with its headline over a dark background
6
6
 
7
7
  `import { LandingHero } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Link
4
4
 
5
- A destination named inside a sentence, or standing on its own under one. …
5
+ Takes the visitor to another page, inline or on its own
6
6
 
7
7
  `import { Link } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # LogoColumns
4
4
 
5
- A section that backs one claim with the names behind it: a heading, a line, an optional disclaimer and a way onward, beside a wall of logo tiles in two columns that run in opposite directions as the reader scrolls past — one rising, one falling — fading out at the wall's top and bottom edge so the set reads as longer than the space it is shown in. …
5
+ Backs a claim with two columns of logos that scroll in opposite directions
6
6
 
7
7
  `import { LogoColumns } from '@deriv-com/dds-marketing'`
8
8
 
@@ -28,7 +28,7 @@ A section that backs one claim with the names behind it: a heading, a line, an o
28
28
  - **ground** `enum` · default "strong" — Which of the page's grounds the section paints, and with it the tiles' fill: the recessed surface on the page, the raised white on the grey band, and the strong card on the dark band. …
29
29
  - `page` — The page's own white, with tiles at the recessed gray. For full-colour logos drawn for a light ground
30
30
  - `subtle` — The grey band, with white tiles on it. For full-colour logos, where the section needs setting apart from the ones around it. …
31
- - `strong` — The default. `color.bg.brand-strong`, the dark band, with white words and tiles at color.bg.surface-card-strong — gray.900 in both themes, so the wall is a set of tiles a step lighter than the band. …
31
+ - `strong` — The default. …
32
32
  - never: Marking importance. Every section on a page painted dark is a page with no emphasis left, and a reader stops reading the grounds as meaning anything. Alternating for its own sake is the same mistake more slowly. And never the brand's own coral, `color.bg.brand`, which is not offered here. …
33
33
  - **mediaPosition** `enum` · default "start" — Which side the wall takes at full width. Never a promise about a phone: below the fold the words are always first, because a reader on a phone came for them
34
34
  - `start` — The default, the reference design's: the wall at the start, the claim beside it at the end
@@ -2,7 +2,7 @@
2
2
 
3
3
  # LogoRows
4
4
 
5
- A section that backs one claim with the names behind it, stacked: a heading, a line and a way onward, centred, over two rows of logo tiles across the band's full width that slide sideways in opposite directions as the reader scrolls past — fading out at both of their ends, so the set reads as longer than the band. …
5
+ Backs a claim with two rows of logos that slide in opposite directions
6
6
 
7
7
  `import { LogoRows } from '@deriv-com/dds-marketing'`
8
8
 
@@ -27,8 +27,15 @@ A section that backs one claim with the names behind it, stacked: a heading, a l
27
27
  - **ground** `enum` · default "strong" — Which of the page's grounds the section paints, and with it the tiles' fill: the recessed surface on the page, the raised white on the grey band, and the strong card on the dark band. …
28
28
  - `page` — The page's own white, with tiles at the recessed gray. For full-colour logos drawn for a light ground
29
29
  - `subtle` — The grey band, with white tiles on it. For full-colour logos, where the section needs setting apart from the ones around it. …
30
- - `strong` — The default. `color.bg.brand-strong`, the dark band, with white words and tiles at color.bg.surface-card-strong — gray.900 in both themes, so the row is a set of tiles a step lighter than the band. …
30
+ - `strong` — The default. …
31
31
  - never: Marking importance. Every section on a page painted dark is a page with no emphasis left, and a reader stops reading the grounds as meaning anything. Alternating for its own sake is the same mistake more slowly. And never the brand's own coral, `color.bg.brand`, which is not offered here. …
32
+ - **background** `enum` · optional — The page's one patterned band, between its hero and its closing call to action — a band a reader should stop at. …
33
+ - `halftone` — A field of coral dots that grow towards a soft glow at the band's foot and settle to a fine screen away from it
34
+ - `aurora` — Curtains of the brand's light rising from the band's foot and swaying slowly
35
+ - `mesh` — The band in the brand's reds folded into one another like a liquid — the loudest of the five, for a dark band
36
+ - `grid` — Hairlines a pitch apart rising from a soft bloom at the band's foot — the quietest, and the one to reach for first
37
+ - `rings` — Hairline circles spreading out from the middle of the band's foot
38
+ - never: More than one band on a page, or a band that is already the hero or the call to action — those carry their own patterns. One pattern is what makes a band the one a reader remembers; two make neither, and a page of them is noise. …
32
39
  - **title** `string` · required — Always. The one claim the logos back, in the fewest words that say it — "Trusted by leading platforms worldwide"
33
40
  - never: A list of the names. The logos are the names; the heading says what they prove
34
41
  - **description** `string` · optional — The line under the heading: what the logos mean for the reader — which payment methods they can use, which platforms they can trade on
@@ -2,7 +2,7 @@
2
2
 
3
3
  # MenuItem
4
4
 
5
- One command in a menu. Pressing it does something and the menu shuts — it holds no value and carries no mark, so there is nothing about it to find on reopening. …
5
+ One item in a DropdownMenu
6
6
 
7
7
  `import { MenuItem } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Navbar
4
4
 
5
- The bar across the top of a marketing page, and three regions: the mark that says whose site this is, the places the site has, and the things a reader reaches for rather than navigates to — the language, the theme, and what the site wants them to do. …
5
+ The bar across the top of a marketing page: logo, links and actions
6
6
 
7
7
  `import { Navbar } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # NavbarItem
4
4
 
5
- One place the site has, in the bar across the top of it. An anchor with a target around it, a mark for the section the reader is currently in, and nothing else. …
5
+ One link in the Navbar
6
6
 
7
7
  `import { NavbarItem } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # NavbarMenu
4
4
 
5
- A destination in the bar that opens rather than goes: a named trigger, and a wide panel beneath it holding the section's own destinations in columns, usually with something promotional beside them. …
5
+ A Navbar item that opens a wide panel of links
6
6
 
7
7
  `import { NavbarMenu } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # NavbarMenuGroup
4
4
 
5
- A named handful of destinations inside a section's panel: a word over a short list, so a reader scanning a panel of twenty links is reading four sets of five rather than twenty of anything. …
5
+ A titled list of links inside a NavbarMenu panel
6
6
 
7
7
  `import { NavbarMenuGroup } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # NavbarPanel
4
4
 
5
- The whole of a site's navigation at a width the bar cannot hold it: the mark and a way out across the top, the destinations down the middle, whatever the site wants across the foot. …
5
+ The full site navigation for screens too narrow for the Navbar
6
6
 
7
7
  `import { NavbarPanel } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # NavbarSwitcher
4
4
 
5
- Something a reader sets rather than somewhere they go: the language the page is read in, the region its prices are in, the theme it is drawn in. …
5
+ Sets a site preference from the Navbar, such as language or theme
6
6
 
7
7
  `import { NavbarSwitcher } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # NavbarSwitcherOption
4
4
 
5
- One choice inside a NavbarSwitcher: a language, a region, a theme. …
5
+ One choice in a NavbarSwitcher, such as a language or theme
6
6
 
7
7
  `import { NavbarSwitcherOption } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Option
4
4
 
5
- One answer on offer inside a control that opens a list. …
5
+ One choice in a list that opens from a control
6
6
 
7
7
  `import { Option } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # PageHeader
4
4
 
5
- The band that opens a company or a legal page: the page's name, a line saying what it is, and nothing else. The third of three opening bands and the only one that is not a hero. …
5
+ Opens a company or legal page with its title and one line of context
6
6
 
7
7
  `import { PageHeader } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Pagination
4
4
 
5
- The control that moves a reader through a set too large to show at once. …
5
+ Moves the reader through a set too large to show at once
6
6
 
7
7
  `import { Pagination } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # PaginationDots
4
4
 
5
- A row of marks, one per position in a short sequence — the slides of a slider, the steps of a walkthrough — with the one the reader is on drawn as a longer, solid pill and the rest as small translucent dots. …
5
+ Shows which item of a short sequence is in view
6
6
 
7
7
  `import { PaginationDots } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # ProductHero
4
4
 
5
- The band that opens a product or a market page: the one thing the page is about, centred, over a ground dark enough that nothing above it competes. The second of three opening bands. …
5
+ Opens a product or market page with a centred headline over a dark background
6
6
 
7
7
  `import { ProductHero } from '@deriv-com/dds-marketing'`
8
8
 
@@ -42,8 +42,14 @@ The band that opens a product or a market page: the one thing the page is about,
42
42
  - never: The background — that is `backgroundImage`. And beside `media`: one product, one picture. Given both, `image` is drawn and `media` ignored
43
43
  - **media** `node` · optional — A product picture in a shape the page fixes on purpose — an AspectRatio box, which keeps its ratio across the column. Prefer `image`, which keeps the picture's own shape and adapts to it
44
44
  - never: The background. A photograph filling the band is `backgroundImage`; this sits in front of it, in the column, and is never cropped
45
- - **backgroundImage** `string` · optional — A photograph filling the whole band. It is shown as it is — nothing is painted over it, so choose one already dark enough that the title reads on it
46
- - never: A flat colour, or a bright photograph. The band already paints its ground, and nothing here darkens an image on the page's behalf — a pale one leaves the claim unreadable
45
+ - **backgroundImage** `string` · optional — A photograph filling the whole band. It is shown as it is — nothing is painted over it unless `shade` asks for a shade behind the words, so choose one dark enough where the words sit, or turn `shade` on for a bright one
46
+ - never: A flat colour, or a bright photograph left without `shade`. The band already paints its ground, and a pale photograph with nothing behind the words leaves the claim unreadable
47
+ - **shade** `boolean` · default false — Under `backgroundImage`, when the photograph is bright where the words sit — a daylight sky — and the description or the actions would fall below AA on it. …
48
+ - never: A band with no photograph, or darkening the whole photograph. The band's own ground already carries the words, and a shade over all of it is the gloom a bright photograph was chosen to avoid
49
+
50
+ ## The type refuses
51
+
52
+ - shade=true with backgroundImage=null — A shade is drawn between a photograph and the words; with no photograph it darkens the band's own ground, which the words were already set to read on
47
53
 
48
54
  ## Inside it
49
55
 
@@ -0,0 +1,56 @@
1
+ <!-- GENERATED from progressbar.contract.json. Do not edit. -->
2
+
3
+ # ProgressBar
4
+
5
+ Shows how much of a task is done
6
+
7
+ `import { ProgressBar } from '@deriv-com/dds-marketing'`
8
+
9
+ ## Reach for it when
10
+
11
+ - A task has measurable completion and the user needs to see how much is done
12
+ - A longer operation — uploads, setup, or processing — needs progress feedback to reassure the user
13
+
14
+ ## Something else, when
15
+
16
+ - The work has no measurable end — connecting, waiting on a system that reports nothing → **Spinner**
17
+ - The task finishes as fast as a reader can notice → **nothing in this system does this**
18
+
19
+ ## Never
20
+
21
+ - Placing icons or labels inside the bar. The fill is a measurement: it is the width that carries the meaning, so anything sitting in it is clipped at one value and swimming at another, and the reader is left judging a number against a moving edge. Put them beside the bar, where they hold still
22
+ - Stacking several bars for one operation. A reader sums what they see, and three bars at a third each read as three tasks rather than one — the one number that matters, how much of the whole is done, is the one nobody can work out. One bar, one task, and the value label says the rest
23
+ - Standing in for a result. A bar at full says the work finished, not that it succeeded, and a failed upload that ends at 100% tells the reader the opposite of what happened. What came of it is a message, not a measurement
24
+
25
+ ## Props
26
+
27
+ - **size** `enum` · default "md"
28
+ - `sm` — Dense layouts or inline indicators where vertical space is limited
29
+ - `md` — Default for standalone progress indicators in forms or dialogs
30
+ - **variant** `enum` · default "default"
31
+ - `default` — The default, and neutral: no status and no brand. …
32
+ - `accent` — Brand-coloured, and asked for rather than arrived at. Reach for it where the page is drawing attention to this progress — the one thing on screen a reader is waiting on. …
33
+ - `success` — Indicating completion or a successful process
34
+ - `warning` — Progress that needs attention, such as approaching a limit
35
+ - `error` — Progress of a process that has encountered a problem
36
+ - `info` — Informational progress such as downloads, syncing, or data loading
37
+ - **value** `number` · default 0 — The amount of work completed — a number between 0 and max. Defaults to 0, which is the honest rendering of nothing started
38
+ - never: A number outside the range this bar declares. It is held between nought and max before anything is drawn or announced, so a value past the end reads as full to the eye and to the ear alike — the clamp used to be on the width only, and a bar given 150 of 100 was drawn full while announcing 150 of 100
39
+ - **max** `number` · default 100 — The total amount of work differs from the default of 100
40
+ - never: Nought or less. Nothing can be a fraction of nothing, so there is no percentage to state and the bar reads as empty rather than complete — which is the one answer that is certainly wrong. A task whose size is unknown is ProgressBarIndeterminate
41
+ - **label** `string` · optional — Naming what is in progress, when the bar is not already named by what surrounds it. Omit it for a bar that is part of a labelled flow — an onboarding stepper under its own heading — and name the bar with aria-labelledby instead
42
+ - never: Displaying the numeric value, which belongs in the value label. And never leave the bar with no name at all: a progressbar announced without one is announced as nothing
43
+ - **showLabel** `boolean` · default true — The label is visible. When false, the label is visually hidden but remains accessible to screen readers
44
+ - **showValueLabel** `boolean` · default true — The numeric progress value is visible alongside the bar
45
+ - **description** `string` · optional — Freeform context below the bar, such as a step count, status message, or time remaining
46
+ - **motion** `enum` · optional — The bar moves once, on arrival — in an IllustrationCard when the pane has landed, otherwise when it is well into view. For a bar shown as a picture of progress. …
47
+ - `fill` — The bar fills from empty to its value once, on arrival, over motion.duration.dramatic — an account set-up three steps in, shown in a pane
48
+ - never: A bar reporting real, changing progress — an upload, a form being filled. That bar moves because the task does; filling it on arrival as well would show progress that did not happen
49
+
50
+ ## Inside it
51
+
52
+ - Renders 6 parts: root, track, fill, label, value-label, description-text.
53
+
54
+ ---
55
+
56
+ The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/progressbar.md`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  # RemovableChip
4
4
 
5
- A token standing for one thing that is already in play — a topic the reader has filtered by, a tag on an article, a market they have picked out — which they can take back out. …
5
+ Shows one applied item, such as a filter or tag, that can be removed
6
6
 
7
7
  `import { RemovableChip } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # ResourceBanner
4
4
 
5
- A dark panel at the end of an informational section that points readers at related guides, policies or reference pages — the "here's where to read more" block. …
5
+ A dark panel that points readers to related guides and reference pages
6
6
 
7
7
  `import { ResourceBanner } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Row
4
4
 
5
- A line, and one measure between the things on it. It draws nothing — no ground, no edge, no padding — and owns one decision: how far apart the things beside one another sit. …
5
+ Lays items out in a line with consistent spacing
6
6
 
7
7
  `import { Row } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # SceneScroll
4
4
 
5
- A full-screen section of two scenes — each a photograph filling the band with a heading and a line over it — that change over as the reader scrolls: the screen holds still while the second photograph dissolves in over the first and the first scene's words give way to the second's. …
5
+ Two full-screen photo scenes that cross-fade as the reader scrolls
6
6
 
7
7
  `import { SceneScroll } from '@deriv-com/dds-marketing'`
8
8
 
@@ -14,6 +14,7 @@ A full-screen section of two scenes — each a photograph filling the band with
14
14
 
15
15
  ## Something else, when
16
16
 
17
+ - The two scenes are one claim with one word changed — "Trade all day", "Trade all night" → **SceneScrollWord**
17
18
  - There is one photograph, not two states of something → **ImageBanner**
18
19
  - Three or more things to show, each with a picture → **FeatureScroll**
19
20
  - The page's opening band, with an action to take → **LandingHero**
@@ -23,8 +24,8 @@ A full-screen section of two scenes — each a photograph filling the band with
23
24
 
24
25
  - Words a reader must not miss — a price, a disclaimer, a legal line. Each scene's words are on screen for only part of the pass
25
26
  - Two of these on one page, or one beside another pinned section. Each holds the screen for a screen and a half of scrolling, and two make the page feel stuck
26
- - Photographs with words in them. The words are the headings and the lines, where a screen reader and a translation reach them; a photograph saying them is under a scrim and cropped to fill
27
- - An action. There is no slot for one: a button that dissolves away as the reader scrolls is one they cannot rely on, so the page's next section carries it
27
+ - Photographs with words in them. The words are the headings and the lines, where a screen reader and a translation reach them; a photograph saying them is cropped to fill and has the scene's words set over it
28
+ - Words over a busy or mid-toned stretch of photograph. Nothing lies between the words and the photograph, so the photograph has to leave the words a calm, light or dark stretch to sit on, and the scene's ink has to name which
28
29
 
29
30
  ## Props
30
31
 
@@ -36,13 +37,13 @@ A full-screen section of two scenes — each a photograph filling the band with
36
37
  - never: A scene that says the same as the second with a different picture. The change-over is the argument; two scenes that agree have nothing to change between
37
38
  - **second** `data` · required — Always. The scene the section changes over to, in the same shape as the first. …
38
39
  - never: A continuation of the first scene's sentence. A reader who arrives by heading, or who scrolls past fast, reads each title on its own
39
- - **link** `node` · optional — A way on for the reader who wants more — "See trading hours", "Learn more". …
40
- - never: A button, or a different link per scene. One way on for the section; something to press that changed under the pointer would be the one thing a reader could not rely on
40
+ - **action** `node` · optional — One thing for the reader to do or a way on — "Trade now", "See trading hours" — under the words. …
41
+ - never: Two actions, or a different one per scene. One thing to do for the section; something to press that changed under the pointer would be the one thing a reader could not rely on
41
42
 
42
43
  ## Inside it
43
44
 
44
45
  - 7 components are refused inside it; the list and the reasons are in the long document.
45
- - Renders 9 parts: root, stage, scene, media, image, content, title, description, link.
46
+ - Renders 9 parts: root, stage, scene, media, image, content, title, description, action.
46
47
 
47
48
  ---
48
49
 
@@ -0,0 +1,56 @@
1
+ <!-- GENERATED from scenescrollword.contract.json. Do not edit. -->
2
+
3
+ # SceneScrollWord
4
+
5
+ Two full-screen photo scenes that cross-fade as the reader scrolls, under one title whose last word changes
6
+
7
+ `import { SceneScrollWord } from '@deriv-com/dds-marketing'`
8
+
9
+ ## Reach for it when
10
+
11
+ - Two states of one thing that one claim covers with one word changed — trade all day and all night, markets open and markets closed, before and after
12
+ - One immersive moment on a product or campaign page, where the claim is the argument and the two photographs show its two halves
13
+ - The opening band of a campaign page built around that claim, at headingLevel h1
14
+
15
+ ## Something else, when
16
+
17
+ - The two scenes say different things, each with a title of its own → **SceneScroll**
18
+ - The two scenes are one claim with one word changed — "Trade all day", "Trade all night" → **SceneScrollWord**
19
+ - There is one photograph, not two states of something → **ImageBanner**
20
+ - Three or more things to show, each with a picture → **FeatureScroll**
21
+ - The page's opening band, with an action to take → **LandingHero**
22
+ - One statement on its own, revealed as the reader scrolls → **TextScroll**
23
+
24
+ ## Never
25
+
26
+ - Two titles that only happen to share words. The shared words have to be a claim both words complete; one that reads as a sentence with the second word bolted on is two scenes' worth of title, which SceneScroll draws
27
+ - Words a reader must not miss — a price, a disclaimer, a legal line. Each scene's words are on screen for only part of the pass
28
+ - Two of these on one page, or one beside another pinned section. Each holds the screen for a screen and a half of scrolling, and two make the page feel stuck
29
+ - Photographs with words in them. The words are the headings and the lines, where a screen reader and a translation reach them; a photograph saying them is cropped to fill and has the scene's words set over it
30
+ - Words over a busy or mid-toned stretch of photograph. Nothing lies between the words and the photograph, so the photograph has to leave the words a calm, light or dark stretch to sit on, and the scene's ink has to name which
31
+
32
+ ## Props
33
+
34
+ - **headingLevel** `enum` · default "h2" — Where the first scene's title sits in the page's outline. The second scene's title takes the level under it — h2 under an h1, h3 under an h2 — because it is the second half of the section the first one names, not a section of its own. …
35
+ - `h2` — The default: the section sits under the page's own h1, and the scenes' titles are drawn at font.h2
36
+ - `h1` — The section opens a campaign page and the first scene's title is the page's heading — the reference design's hero use. Drawn at font.h1, the opening band's size
37
+ - never: Making a mid-page section look like a hero. h1 is the page's heading, and a page has one
38
+ - **titleBefore** `string` · optional — The words of the title that come before the changing word, the same in both scenes — "Trade all ", for "Trade all day" and "Trade all night". …
39
+ - never: Words that change between the scenes. Where the grammar makes a shared word agree with the changing one — Spanish "todo el día" and "toda la noche" — the agreeing words are part of each scene's `word`, not of what is shared
40
+ - **titleAfter** `string` · optional — The words of the title that come after the changing word, the same in both scenes — " handeln", for German "Den ganzen Tag handeln" and "Die ganze Nacht handeln"; "取引" for Japanese "一日中取引" and "夜通し取引", with no space. …
41
+ - never: Punctuation alone. A heading takes no full stop, and a mark after the word holds still while the word changes before it, which reads as the mark belonging to neither
42
+ - **first** `data` · required — Always. The scene the section opens on: the word that completes the title, a line under it where the title needs one, and the photograph filling the band behind them. With the shared words around it, it names the section. …
43
+ - never: A word that does not complete the shared words. Read together they are the heading; a word that only makes sense beside the other scene's is not one
44
+ - **second** `data` · required — Always. The scene the section changes over to, in the same shape as the first. …
45
+ - never: The first scene's word again with a different picture. The changed word is the argument; two scenes that agree have nothing to change between
46
+ - **action** `node` · optional — One thing for the reader to do or a way on — "Trade now", "See trading hours" — under the words. …
47
+ - never: Two actions, or a different one per scene. One thing to do for the section; something to press that changed under the pointer would be the one thing a reader could not rely on
48
+
49
+ ## Inside it
50
+
51
+ - 8 components are refused inside it; the list and the reasons are in the long document.
52
+ - Renders 12 parts: root, stage, scene, media, image, content, title, before, word, after, description, action.
53
+
54
+ ---
55
+
56
+ The reasoning behind each of these, the parts this renders, its states and snippets that compile: `.llm/components/scenescrollword.md`.
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Scroller
4
4
 
5
- A rail, and one measure between the things on it. …
5
+ Lays items out in a horizontally scrolling rail
6
6
 
7
7
  `import { Scroller } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # SearchInput
4
4
 
5
- A query a visitor types to find something the page did not put in front of them — a help centre, a blog or docs index, a directory of markets. …
5
+ A field for searching a help centre, blog or directory
6
6
 
7
7
  `import { SearchInput } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # SegmentedControl
4
4
 
5
- A row of joined segments from which exactly one is chosen, drawn from a short set of alternatives that exclude each other. …
5
+ Picks exactly one option from a short set of joined segments
6
6
 
7
7
  `import { SegmentedControl } from '@deriv-com/dds-marketing'`
8
8
 
@@ -46,6 +46,9 @@ A row of joined segments from which exactly one is chosen, drawn from a short se
46
46
  - never: Half of a controlled row. A value passed with no onChange to move it is a control that cannot respond to being pressed, which reads as broken rather than as fixed — and it is the shape a page falls into by adding the value first
47
47
  - **onChange** `callback` · optional — Whenever value is — together they are how a page holds the choice. It is called with the chosen segment's value after that segment's own onSelect, so a segment that reports its own presses keeps doing so inside a row
48
48
  - never: Side effects a choice should not have. This says which value is in force; a row that also navigated, submitted or fetched on it would be doing the thing its intent says it does not
49
+ - **motion** `enum` · optional — The row moves once, on arrival — in an IllustrationCard when the pane has landed, otherwise when it is well into view. For a row shown as a picture of the product making a choice. …
50
+ - `slide` — The pill starts on the first segment and slides to the chosen one once, on arrival — a trade ticket set to Sell showing it was Buy first. …
51
+ - never: A row the reader is about to use. A live control that moves on its own before anyone touches it looks like it has been chosen for them
49
52
 
50
53
  ## Inside it
51
54
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # SegmentedControlItem
4
4
 
5
- One option in a segmented control, and nothing on its own — a segment says it is the chosen one of a set, and a set of one has nothing to be chosen from. …
5
+ One option in a SegmentedControl
6
6
 
7
7
  `import { SegmentedControlItem } from '@deriv-com/dds-marketing'`
8
8
 
@@ -38,7 +38,7 @@ One option in a segmented control, and nothing on its own — a segment says it
38
38
  - never: The words the reader sees. That is label — a value is an identifier the page matches on, and one doubling as copy breaks the moment the copy is reworded
39
39
  - **label** `string` · required — Always — it is the segment's accessible name as well as its words, and a radio with no name is announced as a control with nothing in it. …
40
40
  - never: A sentence, or a value with its unit spelled out. 'Yearly' rather than 'Billed once a year' — the explanation belongs beside the control, where a reader who is not choosing still sees it
41
- - **icon** `node` · optional — The glyph tells the modes apart faster than the words do — a card and a bank beside two payment methods. Import it from @deriv-com/quill-icons-web and pass the element
41
+ - **icon** `node` · optional — The glyph tells the modes apart faster than the words do — a card and a bank beside two payment methods. Import it from @deriv-com/dds-marketing/icons and pass the element
42
42
  - never: Decoration. A row of segments is scanned, and a mark that says nothing the label does not is one more thing to look past on every one of them
43
43
  - **onSelect** `callback` · optional — This segment reports its own presses — logging which plan a visitor looked at, say. It is called with this segment's value, and SegmentedControl chains its own handler after it rather than replacing it
44
44
  - never: Holding which segment is current. That is the group's onChange, which fires once for the row; a page wiring up one handler per segment has written the group's job out by hand
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Select
4
4
 
5
- A control for choosing one answer from a set the reader scans. …
5
+ Chooses one option from a list
6
6
 
7
7
  `import { Select } from '@deriv-com/dds-marketing'`
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # SelectChip
4
4
 
5
- A chip that opens a list of answers and keeps the one chosen, so a filter row shows the current narrowing rather than the name of a filter. …
5
+ A chip that opens a list and shows the option chosen
6
6
 
7
7
  `import { SelectChip } from '@deriv-com/dds-marketing'`
8
8