@pnx-mixtape/mxds 0.1.0-rc.1 → 0.1.0-rc.3

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 (344) hide show
  1. package/.storybook/decorators.ts +15 -0
  2. package/.storybook/{preview.ts → preview.tsx} +8 -1
  3. package/.storybook/src/docs.tsx +29 -0
  4. package/.storybook/themes/campus-vibrant.css +181 -0
  5. package/.storybook/themes/civic-formal.css +246 -0
  6. package/.storybook/{theme-demo.css → themes/demo.css} +14 -7
  7. package/.storybook/themes/health-services.css +255 -0
  8. package/.storybook/themes/research-faculty.css +169 -0
  9. package/dist/build/accordion.css +1 -1
  10. package/dist/build/accordion.entry.js +1 -1
  11. package/dist/build/autocomplete.css +1 -1
  12. package/dist/build/autocomplete.entry.js +1 -1
  13. package/dist/build/base.css +1 -1
  14. package/dist/build/breadcrumb.css +1 -1
  15. package/dist/build/button.css +1 -1
  16. package/dist/build/card.css +1 -1
  17. package/dist/build/chunks/{Accordion-z-dH6nFH.js → Accordion-GN0sME4W.js} +1 -1
  18. package/dist/build/chunks/{AccordionMobile-BYPPNyf5.js → AccordionMobile-DG5jSe8Q.js} +1 -1
  19. package/dist/build/chunks/{Autocomplete-2L6tLLuh.js → Autocomplete-B4RtkAyh.js} +1 -1
  20. package/dist/build/chunks/{ClosableAlert-DdXbF1J2.js → ClosableAlert-DEhj8Nxm.js} +1 -1
  21. package/dist/build/chunks/{Dialog-Ds8gzhri.js → Dialog-Haahn-Yn.js} +1 -1
  22. package/dist/build/chunks/DropMenu-1baQc8Yc.js +1 -0
  23. package/dist/build/chunks/Gallery-D8NGXy2Q.js +1 -0
  24. package/dist/build/chunks/GlobalToggle-B52fdBQu.js +1 -0
  25. package/dist/build/chunks/InPageNavigation-Dyn2TR-N.js +1 -0
  26. package/dist/build/chunks/Navigation-hOrfLq7h.js +1 -0
  27. package/dist/build/chunks/Popover-Cxg-s5Jn.js +1 -0
  28. package/dist/build/chunks/Sticky-BGCuuEJK.js +1 -0
  29. package/dist/build/chunks/Tabs-DYy1YTdU.js +15 -0
  30. package/dist/build/chunks/enums-DLV_1NAf.js +1 -0
  31. package/dist/build/chunks/polyfills-C7pRt54M.js +1 -0
  32. package/dist/build/chunks/utilities-_Bq3TxAQ.js +1 -0
  33. package/dist/build/constants.css +1 -1
  34. package/dist/build/cookie-consent.css +1 -1
  35. package/dist/build/dialog.entry.js +1 -1
  36. package/dist/build/drop-menu.entry.js +1 -1
  37. package/dist/build/elements.js +1 -1
  38. package/dist/build/filters.css +1 -1
  39. package/dist/build/filters.entry.js +1 -1
  40. package/dist/build/form.css +1 -1
  41. package/dist/build/gallery.entry.js +1 -1
  42. package/dist/build/global-alert.entry.js +1 -1
  43. package/dist/build/grid.css +1 -1
  44. package/dist/build/header.entry.js +1 -1
  45. package/dist/build/icon.css +1 -1
  46. package/dist/build/in-page-alert.css +1 -1
  47. package/dist/build/in-page-navigation.entry.js +1 -1
  48. package/dist/build/list-item.css +1 -1
  49. package/dist/build/navigation.css +1 -1
  50. package/dist/build/navigation.entry.js +1 -1
  51. package/dist/build/one-time-code.css +1 -0
  52. package/dist/build/popover.css +1 -1
  53. package/dist/build/popover.entry.js +1 -1
  54. package/dist/build/print.css +1 -1
  55. package/dist/build/progress-indicator.css +1 -0
  56. package/dist/build/react.js +1 -1
  57. package/dist/build/sidebar.css +1 -1
  58. package/dist/build/steps.css +1 -1
  59. package/dist/build/sticky.entry.js +1 -1
  60. package/dist/build/tabs.css +1 -1
  61. package/dist/build/tabs.entry.js +1 -1
  62. package/dist/build/tag.css +1 -1
  63. package/dist/build/utilities.css +1 -1
  64. package/dist/types/Atom/DefinitionList/DefinitionList.d.ts +3 -2
  65. package/dist/types/Atom/DefinitionList/DefinitionList.d.ts.map +1 -1
  66. package/dist/types/Atom/Heading/Heading.d.ts.map +1 -1
  67. package/dist/types/Atom/Link/Link.d.ts.map +1 -1
  68. package/dist/types/Atom/List/List.d.ts +10 -0
  69. package/dist/types/Atom/List/List.d.ts.map +1 -0
  70. package/dist/types/Component/Accordion/Accordion.d.ts.map +1 -1
  71. package/dist/types/Component/Dialog/Dialog.d.ts.map +1 -1
  72. package/dist/types/Component/DropMenu/Elements/DropMenu.d.ts.map +1 -1
  73. package/dist/types/Component/Filters/Elements/Filters.d.ts +20 -1
  74. package/dist/types/Component/Filters/Elements/Filters.d.ts.map +1 -1
  75. package/dist/types/Component/Filters/Filters.d.ts +7 -2
  76. package/dist/types/Component/Filters/Filters.d.ts.map +1 -1
  77. package/dist/types/Component/Gallery/Gallery.d.ts.map +1 -1
  78. package/dist/types/Component/InPageNavigation/Elements/InPageNavigation.d.ts +2 -2
  79. package/dist/types/Component/InPageNavigation/Elements/InPageNavigation.d.ts.map +1 -1
  80. package/dist/types/Component/InPageNavigation/Hooks/useInPageNavigation.d.ts.map +1 -1
  81. package/dist/types/Component/Pagination/Components/PaginationContext.d.ts.map +1 -1
  82. package/dist/types/Component/ProgressIndicator/ProgressIndicator.d.ts +9 -0
  83. package/dist/types/Component/ProgressIndicator/ProgressIndicator.d.ts.map +1 -0
  84. package/dist/types/Component/Tabs/Elements/Tabs.d.ts.map +1 -1
  85. package/dist/types/Component/Tabs/Tabs.d.ts.map +1 -1
  86. package/dist/types/Component/Tag/Tag.d.ts +4 -2
  87. package/dist/types/Component/Tag/Tag.d.ts.map +1 -1
  88. package/dist/types/Form/Autocomplete/Autocomplete.d.ts +2 -2
  89. package/dist/types/Form/Autocomplete/Autocomplete.d.ts.map +1 -1
  90. package/dist/types/Form/Autocomplete/Elements/Autocomplete.d.ts +10 -0
  91. package/dist/types/Form/Autocomplete/Elements/Autocomplete.d.ts.map +1 -1
  92. package/dist/types/Form/Checkbox/FormCheckbox.d.ts.map +1 -1
  93. package/dist/types/Form/CheckboxCard/CheckboxCard.d.ts +23 -0
  94. package/dist/types/Form/CheckboxCard/CheckboxCard.d.ts.map +1 -0
  95. package/dist/types/Form/OneTimeCode/OneTimeCode.d.ts +12 -0
  96. package/dist/types/Form/OneTimeCode/OneTimeCode.d.ts.map +1 -0
  97. package/dist/types/Form/Radio/FormRadio.d.ts.map +1 -1
  98. package/dist/types/Form/RadioCard/RadioCard.d.ts +16 -0
  99. package/dist/types/Form/RadioCard/RadioCard.d.ts.map +1 -0
  100. package/dist/types/Form/Select/FormSelect.d.ts.map +1 -1
  101. package/dist/types/Form/TextInput/FormText.d.ts.map +1 -1
  102. package/dist/types/Form/Textarea/FormTextarea.d.ts.map +1 -1
  103. package/dist/types/Utility/Hooks/useIsomorphicLayoutEffect.d.ts +4 -0
  104. package/dist/types/Utility/Hooks/useIsomorphicLayoutEffect.d.ts.map +1 -0
  105. package/dist/types/enums.d.ts +19 -0
  106. package/dist/types/enums.d.ts.map +1 -1
  107. package/dist/types/react.d.ts +5 -0
  108. package/dist/types/react.d.ts.map +1 -1
  109. package/package.json +8 -8
  110. package/src/Atom/Background/_background.css +2 -2
  111. package/src/Atom/Blockquote/_blockquote.css +9 -2
  112. package/src/Atom/Button/README.md +1 -0
  113. package/src/Atom/Button/__snapshots__/Button.stories.ts.snap +2 -3
  114. package/src/Atom/Button/_buttons-styles.css +6 -6
  115. package/src/Atom/Button/_buttons.css +21 -3
  116. package/src/Atom/Button/button.twig +4 -1
  117. package/src/Atom/DefinitionList/DefinitionList.stories.ts +42 -2
  118. package/src/Atom/DefinitionList/DefinitionList.stories.tsx +36 -0
  119. package/src/Atom/DefinitionList/DefinitionList.tsx +4 -1
  120. package/src/Atom/DefinitionList/DefinitionListItem.stories.ts +1 -1
  121. package/src/Atom/DefinitionList/README.md +43 -0
  122. package/src/Atom/DefinitionList/__snapshots__/DefinitionList.stories.ts.snap +37 -3
  123. package/src/Atom/DefinitionList/__snapshots__/DefinitionList.stories.tsx.snap +2 -0
  124. package/src/Atom/DefinitionList/__snapshots__/DefinitionListItem.stories.ts.snap +3 -3
  125. package/src/Atom/DefinitionList/definition-list-item.twig +1 -0
  126. package/src/Atom/DefinitionList/definition-list.twig +6 -1
  127. package/src/Atom/Heading/Heading.tsx +6 -0
  128. package/src/Atom/Heading/_headings.css +2 -1
  129. package/src/Atom/Icon/_extended-set.css +30 -30
  130. package/src/Atom/Icon/_icon.css +39 -36
  131. package/src/Atom/Image/README.md +2 -2
  132. package/src/Atom/Image/_image.css +12 -6
  133. package/src/Atom/Link/Link.tsx +16 -3
  134. package/src/Atom/Link/__snapshots__/Link.stories.ts.snap +7 -12
  135. package/src/Atom/Link/__snapshots__/Link.stories.tsx.snap +1 -1
  136. package/src/Atom/Link/_links.css +9 -0
  137. package/src/Atom/Link/link.twig +8 -2
  138. package/src/Atom/LinkedImage/linked-image.twig +1 -2
  139. package/src/Atom/List/List.stories.ts +102 -0
  140. package/src/Atom/List/List.stories.tsx +103 -0
  141. package/src/Atom/List/List.tsx +22 -0
  142. package/src/Atom/List/README.md +150 -0
  143. package/src/Atom/List/__snapshots__/List.stories.ts.snap +43 -0
  144. package/src/Atom/List/__snapshots__/List.stories.tsx.snap +13 -0
  145. package/src/Atom/List/_list.css +123 -0
  146. package/src/Atom/List/list.twig +5 -0
  147. package/src/Atom/Media/Media.stories.ts +1 -1
  148. package/src/Atom/Media/__snapshots__/Media.stories.ts.snap +2 -2
  149. package/src/Atom/Spacing/_spacing.css +24 -24
  150. package/src/Atom/Table/__snapshots__/Table.stories.ts.snap +24 -4
  151. package/src/Atom/Table/_table.css +15 -3
  152. package/src/Atom/Table/table.twig +6 -1
  153. package/src/Atom/Text/__snapshots__/Text.stories.ts.snap +3 -2
  154. package/src/Atom/Text/_text-styles.css +21 -1
  155. package/src/Atom/Text/twig/text-styles-example.twig +3 -2
  156. package/src/Atom/_base.css +6 -0
  157. package/src/Atom/_flow.css +1 -1
  158. package/src/Atom/_generic.css +18 -11
  159. package/src/Component/Accordion/Accordion.stories.ts +31 -0
  160. package/src/Component/Accordion/Accordion.tsx +3 -2
  161. package/src/Component/Accordion/AccordionItem.stories.ts +27 -0
  162. package/src/Component/Accordion/__snapshots__/Accordion.stories.ts.snap +36 -0
  163. package/src/Component/Accordion/__snapshots__/AccordionItem.stories.ts.snap +16 -0
  164. package/src/Component/Accordion/accordion.css +2 -0
  165. package/src/Component/Breadcrumb/__snapshots__/Breadcrumb.stories.ts.snap +3 -6
  166. package/src/Component/Breadcrumb/breadcrumb.css +4 -0
  167. package/src/Component/Card/__snapshots__/Card.stories.ts.snap +13 -24
  168. package/src/Component/Card/card.css +2 -2
  169. package/src/Component/Card/card.twig +1 -1
  170. package/src/Component/Carousel/Carousel.stories.ts +101 -23
  171. package/src/Component/Carousel/Carousel.stories.tsx +74 -0
  172. package/src/Component/Carousel/__snapshots__/Carousel.stories.ts.snap +273 -88
  173. package/src/Component/Carousel/__snapshots__/Carousel.stories.tsx.snap +5 -3
  174. package/src/Component/ContentBlock/__snapshots__/ContentBlock.stories.ts.snap +12 -24
  175. package/src/Component/CookieConsent/cookie-consent.css +3 -1
  176. package/src/Component/Dialog/Dialog.stories.ts +33 -0
  177. package/src/Component/Dialog/Dialog.stories.tsx +25 -0
  178. package/src/Component/Dialog/Dialog.tsx +2 -2
  179. package/src/Component/Dialog/__snapshots__/Dialog.stories.ts.snap +33 -2
  180. package/src/Component/Dialog/__snapshots__/Dialog.stories.tsx.snap +2 -0
  181. package/src/Component/DropMenu/DropMenu.stories.ts +39 -1
  182. package/src/Component/DropMenu/DropMenu.stories.tsx +29 -0
  183. package/src/Component/DropMenu/DropMenu.tsx +1 -1
  184. package/src/Component/DropMenu/Elements/DropMenu.ts +10 -1
  185. package/src/Component/DropMenu/__snapshots__/DropMenu.stories.ts.snap +14 -0
  186. package/src/Component/DropMenu/__snapshots__/DropMenu.stories.tsx.snap +3 -1
  187. package/src/Component/Filters/Elements/Filters.ts +71 -1
  188. package/src/Component/Filters/FilterItem.stories.ts +2 -1
  189. package/src/Component/Filters/FilterItem.tsx +1 -1
  190. package/src/Component/Filters/Filters.figma.ts +1 -1
  191. package/src/Component/Filters/Filters.stories.ts +95 -3
  192. package/src/Component/Filters/Filters.stories.tsx +246 -17
  193. package/src/Component/Filters/Filters.tsx +145 -29
  194. package/src/Component/Filters/README.md +102 -37
  195. package/src/Component/Filters/__snapshots__/FilterItem.stories.tsx.snap +3 -3
  196. package/src/Component/Filters/__snapshots__/Filters.stories.ts.snap +82 -4
  197. package/src/Component/Filters/__snapshots__/Filters.stories.tsx.snap +9 -3
  198. package/src/Component/Filters/filters.css +11 -0
  199. package/src/Component/Gallery/Gallery.tsx +2 -2
  200. package/src/Component/HeroBanner/HeroBanner.stories.ts +1 -1
  201. package/src/Component/HeroBanner/__snapshots__/HeroBanner.stories.ts.snap +4 -8
  202. package/src/Component/HeroSearch/__snapshots__/HeroSearch.stories.ts.snap +5 -10
  203. package/src/Component/InPageAlert/__snapshots__/InPageAlert.stories.ts.snap +6 -12
  204. package/src/Component/InPageAlert/in-page-alert.css +2 -1
  205. package/src/Component/InPageNavigation/Elements/InPageNavigation.ts +10 -5
  206. package/src/Component/InPageNavigation/Hooks/useInPageNavigation.ts +10 -5
  207. package/src/Component/InPageNavigation/InPageNavigation.stories.ts +83 -0
  208. package/src/Component/InPageNavigation/InPageNavigation.stories.tsx +130 -0
  209. package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.ts.snap +61 -1
  210. package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.tsx.snap +4 -0
  211. package/src/Component/InPageNavigation/twig/content-example-duplicate-headings.twig +20 -0
  212. package/src/Component/InPageNavigation/twig/in-page-navigation-story-duplicate-headings.twig +2 -0
  213. package/src/Component/LinkList/__snapshots__/LinkList.stories.ts.snap +6 -12
  214. package/src/Component/ListItem/__snapshots__/ListItem.stories.ts.snap +11 -18
  215. package/src/Component/ListItem/list-item.css +1 -1
  216. package/src/Component/ListItem/list-item.twig +2 -2
  217. package/src/Component/Navigation/Dropdown.stories.tsx +46 -0
  218. package/src/Component/Navigation/Navigation.stories.ts +56 -0
  219. package/src/Component/Navigation/__snapshots__/Dropdown.stories.tsx.snap +2 -0
  220. package/src/Component/Navigation/__snapshots__/Navigation.stories.ts.snap +57 -0
  221. package/src/Component/Navigation/_navigation.css +1 -1
  222. package/src/Component/Pagination/Components/PaginationContext.tsx +2 -1
  223. package/src/Component/Pagination/Components/PaginationItem.tsx +1 -1
  224. package/src/Component/Pagination/Pagination.stories.ts +44 -4
  225. package/src/Component/Pagination/Pagination.stories.tsx +31 -0
  226. package/src/Component/Pagination/__snapshots__/Pagination.stories.ts.snap +69 -12
  227. package/src/Component/Pagination/__snapshots__/Pagination.stories.tsx.snap +3 -1
  228. package/src/Component/Pagination/pagination-item.twig +1 -1
  229. package/src/Component/Pagination/pagination.css +2 -2
  230. package/src/Component/Popover/__snapshots__/Popover.stories.ts.snap +13 -26
  231. package/src/Component/Popover/popover.css +1 -1
  232. package/src/Component/ProgressIndicator/ProgressIndicator.stories.ts +36 -0
  233. package/src/Component/ProgressIndicator/ProgressIndicator.stories.tsx +30 -0
  234. package/src/Component/ProgressIndicator/ProgressIndicator.tsx +60 -0
  235. package/src/Component/ProgressIndicator/README.md +111 -0
  236. package/src/Component/ProgressIndicator/__snapshots__/ProgressIndicator.stories.ts.snap +67 -0
  237. package/src/Component/ProgressIndicator/__snapshots__/ProgressIndicator.stories.tsx.snap +7 -0
  238. package/src/Component/ProgressIndicator/progress-indicator.css +59 -0
  239. package/src/Component/ProgressIndicator/progress-indicator.twig +22 -0
  240. package/src/Component/SideNavigation/__snapshots__/SideNavigation.stories.ts.snap +1 -2
  241. package/src/Component/SocialLinks/__snapshots__/SocialLinks.stories.ts.snap +6 -9
  242. package/src/Component/Steps/Steps.stories.ts +1 -1
  243. package/src/Component/Steps/steps.css +13 -0
  244. package/src/Component/Sticky/Elements/Sticky.ts +1 -1
  245. package/src/Component/Sticky/sticky.css +3 -3
  246. package/src/Component/Tabs/Elements/Tabs.ts +3 -1
  247. package/src/Component/Tabs/Tabs.stories.ts +77 -21
  248. package/src/Component/Tabs/Tabs.stories.tsx +24 -0
  249. package/src/Component/Tabs/Tabs.tsx +2 -2
  250. package/src/Component/Tabs/__snapshots__/Tabs.stories.ts.snap +20 -2
  251. package/src/Component/Tabs/__snapshots__/Tabs.stories.tsx.snap +3 -1
  252. package/src/Component/Tabs/tabs.css +2 -0
  253. package/src/Component/Tag/README.md +52 -26
  254. package/src/Component/Tag/Tag.stories.tsx +24 -0
  255. package/src/Component/Tag/Tag.tsx +12 -2
  256. package/src/Component/Tag/TagItem.stories.ts +25 -0
  257. package/src/Component/Tag/__snapshots__/Tag.stories.ts.snap +2 -2
  258. package/src/Component/Tag/__snapshots__/Tag.stories.tsx.snap +2 -0
  259. package/src/Component/Tag/tag-item.twig +2 -2
  260. package/src/Component/Tag/tag.css +76 -2
  261. package/src/Form/Autocomplete/Autocomplete.stories.ts +89 -7
  262. package/src/Form/Autocomplete/Autocomplete.stories.tsx +85 -1
  263. package/src/Form/Autocomplete/Autocomplete.tsx +20 -10
  264. package/src/Form/Autocomplete/Elements/Autocomplete.ts +24 -1
  265. package/src/Form/Autocomplete/README.md +26 -26
  266. package/src/Form/Autocomplete/__snapshots__/Autocomplete.stories.ts.snap +39 -5
  267. package/src/Form/Autocomplete/__snapshots__/Autocomplete.stories.tsx.snap +8 -4
  268. package/src/Form/Autocomplete/autocomplete.css +12 -1
  269. package/src/Form/Autocomplete/autocomplete.twig +1 -3
  270. package/src/Form/Checkbox/FormCheckbox.tsx +2 -8
  271. package/src/Form/Checkbox/README.md +23 -18
  272. package/src/Form/Checkbox/input-checkbox.twig +0 -2
  273. package/src/Form/CheckboxCard/CheckboxCard.stories.ts +90 -0
  274. package/src/Form/CheckboxCard/CheckboxCard.stories.tsx +43 -0
  275. package/src/Form/CheckboxCard/CheckboxCard.tsx +102 -0
  276. package/src/Form/CheckboxCard/README.md +163 -0
  277. package/src/Form/CheckboxCard/__snapshots__/CheckboxCard.stories.ts.snap +63 -0
  278. package/src/Form/CheckboxCard/__snapshots__/CheckboxCard.stories.tsx.snap +7 -0
  279. package/src/Form/CheckboxCard/checkbox-card.twig +29 -0
  280. package/src/Form/FormItem/__snapshots__/FormItem.stories.ts.snap +2 -2
  281. package/src/Form/OneTimeCode/OneTimeCode.stories.ts +20 -0
  282. package/src/Form/OneTimeCode/OneTimeCode.stories.tsx +18 -0
  283. package/src/Form/OneTimeCode/OneTimeCode.tsx +56 -0
  284. package/src/Form/OneTimeCode/README.md +83 -0
  285. package/src/Form/OneTimeCode/__snapshots__/OneTimeCode.stories.ts.snap +7 -0
  286. package/src/Form/OneTimeCode/__snapshots__/OneTimeCode.stories.tsx.snap +3 -0
  287. package/src/Form/OneTimeCode/one-time-code.css +13 -0
  288. package/src/Form/OneTimeCode/one-time-code.twig +31 -0
  289. package/src/Form/README.md +65 -13
  290. package/src/Form/Radio/FormRadio.tsx +1 -4
  291. package/src/Form/Radio/input-radio.twig +0 -2
  292. package/src/Form/RadioCard/README.md +146 -0
  293. package/src/Form/RadioCard/RadioCard.stories.ts +95 -0
  294. package/src/Form/RadioCard/RadioCard.stories.tsx +26 -0
  295. package/src/Form/RadioCard/RadioCard.tsx +59 -0
  296. package/src/Form/RadioCard/__snapshots__/RadioCard.stories.ts.snap +69 -0
  297. package/src/Form/RadioCard/__snapshots__/RadioCard.stories.tsx.snap +3 -0
  298. package/src/Form/RadioCard/radio-card.twig +20 -0
  299. package/src/Form/Select/FormSelect.tsx +1 -4
  300. package/src/Form/Select/input-select.twig +0 -2
  301. package/src/Form/TextInput/FormText.stories.tsx +14 -0
  302. package/src/Form/TextInput/FormText.tsx +1 -4
  303. package/src/Form/TextInput/__snapshots__/FormText.stories.tsx.snap +2 -0
  304. package/src/Form/TextInput/input-text.twig +0 -2
  305. package/src/Form/Textarea/FormTextarea.tsx +1 -4
  306. package/src/Form/Textarea/input-textarea.twig +0 -2
  307. package/src/Form/Validation.stories.ts +153 -0
  308. package/src/Form/__snapshots__/Validation.stories.ts.snap +130 -0
  309. package/src/Form/form.css +240 -55
  310. package/src/Layout/Footer/__snapshots__/Footer.stories.ts.snap +18 -33
  311. package/src/Layout/Grid/grid.css +4 -4
  312. package/src/Layout/Header/Header.stories.ts +33 -0
  313. package/src/Layout/Header/Header.stories.tsx +31 -0
  314. package/src/Layout/Header/__snapshots__/Header.stories.ts.snap +50 -0
  315. package/src/Layout/Header/__snapshots__/Header.stories.tsx.snap +2 -0
  316. package/src/Layout/Masthead/__snapshots__/Masthead.stories.ts.snap +8 -16
  317. package/src/Layout/Section/__snapshots__/Background.stories.ts.snap +2 -4
  318. package/src/Layout/Section/__snapshots__/Section.stories.ts.snap +4 -8
  319. package/src/Layout/Sidebar/__snapshots__/Sidebar.stories.ts.snap +5 -5
  320. package/src/Layout/Sidebar/sidebar.css +1 -0
  321. package/src/Layout/Sidebar/sidebar.twig +1 -1
  322. package/src/Utility/Hooks/useIsomorphicLayoutEffect.ts +8 -0
  323. package/src/Utility/_layout-utils.css +8 -0
  324. package/src/Utility/_mixins.css +24 -0
  325. package/src/Utility/print.css +51 -29
  326. package/src/Utility/utilities.css +22 -2
  327. package/src/_custom-media.css +1 -0
  328. package/src/constants.css +12 -2
  329. package/src/enums.ts +22 -0
  330. package/src/react.ts +5 -0
  331. package/tools/lib/extract-classnames.mjs +0 -0
  332. package/tools/lint-classnames.mjs +1 -1
  333. package/tools/test-utils/screen-reader.ts +33 -0
  334. package/dist/build/chunks/DropMenu-Co9jZZ4S.js +0 -1
  335. package/dist/build/chunks/Gallery-BT3cxS5m.js +0 -1
  336. package/dist/build/chunks/GlobalToggle-DQHho97V.js +0 -1
  337. package/dist/build/chunks/InPageNavigation-CzR_KZaz.js +0 -1
  338. package/dist/build/chunks/Navigation-B9Wug-ok.js +0 -1
  339. package/dist/build/chunks/Popover-De_CQqcd.js +0 -1
  340. package/dist/build/chunks/Sticky-Kyjykb36.js +0 -1
  341. package/dist/build/chunks/Tabs-Dm8g301e.js +0 -15
  342. package/dist/build/chunks/disclosure-widget-BETzOHLO.js +0 -1
  343. package/dist/build/chunks/polyfills-Dokbkxxk.js +0 -1
  344. package/dist/build/chunks/utilities-C5dAO2YA.js +0 -1
@@ -31,7 +31,12 @@ exports[`Bordered 1`] = `
31
31
  <td>~500px</td>
32
32
  </tr>
33
33
  </tbody>
34
- <caption>Description of table</caption>
34
+ <tfoot>
35
+ <tr>
36
+ <td colspan="5">Footnote for table</td>
37
+ </tr>
38
+ </tfoot>
39
+ <caption>Table 1. Description of table</caption>
35
40
  </table>
36
41
  "
37
42
  `;
@@ -67,7 +72,12 @@ exports[`Striped 1`] = `
67
72
  <td>~500px</td>
68
73
  </tr>
69
74
  </tbody>
70
- <caption>Description of table</caption>
75
+ <tfoot>
76
+ <tr>
77
+ <td colspan="5">Footnote for table</td>
78
+ </tr>
79
+ </tfoot>
80
+ <caption>Table 1. Description of table</caption>
71
81
  </table>
72
82
  "
73
83
  `;
@@ -103,7 +113,12 @@ exports[`Striped And Bordered 1`] = `
103
113
  <td>~500px</td>
104
114
  </tr>
105
115
  </tbody>
106
- <caption>Description of table</caption>
116
+ <tfoot>
117
+ <tr>
118
+ <td colspan="5">Footnote for table</td>
119
+ </tr>
120
+ </tfoot>
121
+ <caption>Table 1. Description of table</caption>
107
122
  </table>
108
123
  "
109
124
  `;
@@ -139,7 +154,12 @@ exports[`Table 1`] = `
139
154
  <td>~500px</td>
140
155
  </tr>
141
156
  </tbody>
142
- <caption>Description of table</caption>
157
+ <tfoot>
158
+ <tr>
159
+ <td colspan="5">Footnote for table</td>
160
+ </tr>
161
+ </tfoot>
162
+ <caption>Table 1. Description of table</caption>
143
163
  </table>
144
164
  "
145
165
  `;
@@ -1,7 +1,9 @@
1
1
  @layer design-system.defaults {
2
2
  table {
3
+ font-size: var(--font-size-s);
3
4
  inline-size: 100%;
4
5
  border-collapse: collapse;
6
+ font-variant-numeric: tabular-nums lining-nums;
5
7
  margin: 0;
6
8
 
7
9
  & th {
@@ -12,20 +14,30 @@
12
14
  & :is(td, th) {
13
15
  padding: var(--spacing-xxs);
14
16
  border-block-end: var(--line-width, 1px) solid var(--line-colour, var(--colour-border));
17
+ font-family: var(--font-family-ui, var(--font-family));
15
18
  vertical-align: top;
16
19
  }
17
20
 
18
21
  & thead :is(td, th) {
19
- border-block-end-color: currentcolor;
22
+ border-block-end: var(--line-width, 1.5px) solid currentcolor;
20
23
  }
21
24
 
22
25
  & caption {
23
26
  padding: var(--spacing-xxs);
24
27
  text-align: start;
25
- font-size: var(--caption-font-size, var(--font-size-xs));
26
- line-height: var(--caption-line-height, var(--line-height-h));
28
+ font-family: var(--font-family-ui, var(--font-family));
29
+ font-size: var(--font-size-ui, var(--font-size-xs));
30
+ line-height: var(--line-height-ui, var(--line-height-h));
31
+ color: var(--colour-foreground-alt);
27
32
  caption-side: bottom;
28
33
  }
34
+
35
+ & tfoot :is(td, th) {
36
+ border-block-start: var(--line-width, 1.5px) solid currentcolor;
37
+ font-family: var(--font-family-ui, var(--font-family));
38
+ font-size: var(--font-size-ui, var(--font-size-xs));
39
+ line-height: var(--line-height-ui, var(--line-height-h));
40
+ }
29
41
  }
30
42
 
31
43
  .mx-table--flush {
@@ -34,5 +34,10 @@
34
34
  <td>~500px</td>
35
35
  </tr>
36
36
  </tbody>
37
- <caption>Description of table</caption>
37
+ <tfoot>
38
+ <tr>
39
+ <td colspan="5">Footnote for table</td>
40
+ </tr>
41
+ </tfoot>
42
+ <caption>Table 1. Description of table</caption>
38
43
  </table>
@@ -10,6 +10,7 @@ exports[`Center 1`] = `
10
10
  exports[`Example 1`] = `
11
11
  "<div class="mx-rich-text mx-vertical-flow"><p class="mx-text--eyebrow mx-text--embellished">Embellished eyebrow</p>
12
12
  <p class="mx-text--eyebrow">Normal eyebrow</p>
13
+ <p class="mx-text--meta">Meta text</p>
13
14
 
14
15
  <p class="mx-text--xxxl">Text xxxl: Headliner size</p>
15
16
  <p class="mx-text--xxl">Text xxl: Heading 1 size</p>
@@ -26,9 +27,9 @@ exports[`Example 1`] = `
26
27
  <p class="mx-text--m mx-background--alt"><span>Background colours can be added combined with the text classes (and a span) to have inline backgrounds on text. <br>The background should wrap with the text when it folds instead of creating a rectangle.</span></p>
27
28
  <p class="mx-text--accent mx-background--reverse"><span>Text accent: Some colours need different backgrounds to ensure sufficient contrast.</span></p>
28
29
 
29
- <blockquote class="mx-vertical-flow-flex">
30
+ <blockquote>
30
31
  <q class="mx-text--xxl mx-background--alt"><span>Blockquotes can be styled however <u>you</u> like</span></q>
31
- <cite class="mx-text--s">Source: Rikki's infinite wisdom</cite>
32
+ <cite>Source: Rikki's infinite wisdom</cite>
32
33
  </blockquote>
33
34
  </div>"
34
35
  `;
@@ -4,6 +4,7 @@
4
4
  .mx-text--section-headline,
5
5
  .mx-text--embellished-headline,
6
6
  .mx-text--lede,
7
+ .mx-text--meta,
7
8
  .mx-text--xs,
8
9
  .mx-text--s,
9
10
  .mx-text--m,
@@ -21,6 +22,7 @@
21
22
  .mx-text--eyebrow,
22
23
  .mx-text--section-headline,
23
24
  .mx-text--embellished-headline,
25
+ .mx-text--meta,
24
26
  .mx-text--xs,
25
27
  .mx-text--s,
26
28
  .mx-text--lede,
@@ -47,7 +49,8 @@
47
49
 
48
50
  text-transform: var(--heading-transform, uppercase);
49
51
  font-weight: var(--heading-font-weight, var(--font-weight-bold));
50
- font-family: var(--heading-font-family);
52
+ font-family: var(--font-family-ui, var(--font-family));
53
+ letter-spacing: var(--heading-letter-spacing, 0);
51
54
  line-height: var(--line-height-h);
52
55
  text-wrap: balance;
53
56
  }
@@ -130,6 +133,15 @@
130
133
  --font-size: var(--font-size-xs);
131
134
  }
132
135
 
136
+ .mx-text--meta {
137
+ --font-size: var(--font-size-xs);
138
+ --foreground: var(--foreground-alt, var(--colour-foreground-alt));
139
+
140
+ color: var(--foreground);
141
+ display: grid;
142
+ gap: 0.2rem;
143
+ }
144
+
133
145
  .mx-text--alt {
134
146
  --foreground: var(--foreground-alt, var(--colour-foreground-alt));
135
147
 
@@ -162,4 +174,12 @@
162
174
  color-scheme: var(--scheme, var(--colour-scheme));
163
175
  }
164
176
  }
177
+
178
+ .mx-rich-text {
179
+ font-family: var(--font-family-prose, var(--font-family));
180
+
181
+ & :is(p, li) {
182
+ max-inline-size: var(--prose-measure, var(--container-max-width));
183
+ }
184
+ }
165
185
  }
@@ -1,5 +1,6 @@
1
1
  <p class="mx-text--eyebrow mx-text--embellished">Embellished eyebrow</p>
2
2
  <p class="mx-text--eyebrow">Normal eyebrow</p>
3
+ <p class="mx-text--meta">Meta text</p>
3
4
 
4
5
  <p class="mx-text--xxxl">Text xxxl: Headliner size</p>
5
6
  <p class="mx-text--xxl">Text xxl: Heading 1 size</p>
@@ -16,7 +17,7 @@
16
17
  <p class="mx-text--m mx-background--alt"><span>Background colours can be added combined with the text classes (and a span) to have inline backgrounds on text. <br />The background should wrap with the text when it folds instead of creating a rectangle.</span></p>
17
18
  <p class="mx-text--accent mx-background--reverse"><span>Text accent: Some colours need different backgrounds to ensure sufficient contrast.</span></p>
18
19
 
19
- <blockquote class="mx-vertical-flow-flex">
20
+ <blockquote>
20
21
  <q class="mx-text--xxl mx-background--alt"><span>Blockquotes can be styled however <u>you</u> like</span></q>
21
- <cite class="mx-text--s">Source: Rikki's infinite wisdom</cite>
22
+ <cite>Source: Rikki's infinite wisdom</cite>
22
23
  </blockquote>
@@ -54,3 +54,9 @@
54
54
  */
55
55
 
56
56
  @import "./Table/_table.css";
57
+
58
+ /**
59
+ * List
60
+ */
61
+
62
+ @import "./List/_list.css";
@@ -1,4 +1,4 @@
1
- @layer design-system.utilities {
1
+ @layer design-system.defaults {
2
2
  .mx-vertical-flow {
3
3
  /* Default vertical flow. */
4
4
 
@@ -82,9 +82,9 @@
82
82
 
83
83
  dl {
84
84
  display: grid;
85
- grid-template-columns: min(100%, var(--grid-min, 20ch)) 1fr;
86
85
  grid-template-rows: 1fr;
87
86
  gap: var(--spacing-xs);
87
+ inline-size: 100%;
88
88
 
89
89
  &:has(> div) {
90
90
  container-type: inline-size;
@@ -92,21 +92,28 @@
92
92
 
93
93
  & div {
94
94
  display: grid;
95
- grid-template-columns: subgrid;
96
- grid-column: span 2;
97
-
98
- @container (max-width: 60ch) {
99
- gap: var(--spacing-xxxs);
100
-
101
- & > :is(dt, dd) {
102
- grid-column: span 2;
103
- }
104
- }
95
+ gap: var(--spacing-xxxs);
96
+ align-content: start;
105
97
  }
106
98
 
107
99
  & dt {
108
100
  font-weight: var(--font-weight-bold);
109
101
  }
102
+
103
+ &:where(:not(.mx-list--columns)) {
104
+ grid-template-columns: min(100%, var(--grid-min, 20ch)) 1fr;
105
+
106
+ & div {
107
+ grid-template-columns: subgrid;
108
+ grid-column: span 2;
109
+
110
+ @container (max-width: 60ch) {
111
+ & > :is(dt, dd) {
112
+ grid-column: span 2;
113
+ }
114
+ }
115
+ }
116
+ }
110
117
  }
111
118
 
112
119
  p {
@@ -8,6 +8,7 @@ import "./Elements/AccordionGroup"
8
8
  import "./Elements/AccordionMobile"
9
9
  import "./accordion.css"
10
10
  import { Accordion as AccordionType, HeadingTypes } from "@pnx-mixtape/ids-shape"
11
+ import { runScreenReaderWalkthrough } from "../../../tools/test-utils/screen-reader"
11
12
 
12
13
  const meta: Meta<AccordionType> = {
13
14
  tags: ["autodocs", "ids-mvp"],
@@ -87,6 +88,36 @@ export const ToggleAll: Story = {
87
88
  },
88
89
  }
89
90
 
91
+ /**
92
+ * Steps a virtual screen reader through the page with one item open, and asserts on what it announces.
93
+ */
94
+ export const ScreenReaderAnnouncements: Story = {
95
+ play: async ({ canvas, userEvent }) => {
96
+ const summary = canvas.getByText("Music")
97
+ const [accordion] = canvas.getAllByRole("group")
98
+
99
+ await userEvent.click(summary)
100
+ await expect(accordion).toHaveAttribute("open")
101
+
102
+ const log = await runScreenReaderWalkthrough()
103
+ await expect(log).toEqual([
104
+ "document",
105
+ "heading, Accordion group, level 2",
106
+ "group",
107
+ "Music",
108
+ "I'm baby air plant hashtag letterpress blue bottle. Cloud bread dreamcatcher everyday carry lumbersexual, iceland cardigan swag chicharrones lo-fi fanny pack affogato freegan XOXO shaman. Shoreditch cloud bread waistcoat tbh XOXO. Chillwave pour-over umami pug glossier health goth.",
109
+ "end of group",
110
+ "group",
111
+ "Performances",
112
+ "end of group",
113
+ "end of document",
114
+ ])
115
+
116
+ await userEvent.click(summary)
117
+ await expect(accordion).not.toHaveAttribute("open")
118
+ },
119
+ }
120
+
90
121
  export const Test: Story = {
91
122
  parameters: {
92
123
  docs: {
@@ -1,6 +1,7 @@
1
- import { JSX, PropsWithChildren, useEffect, useId, createContext, use, useMemo } from "react"
1
+ import { JSX, PropsWithChildren, useId, createContext, use, useMemo } from "react"
2
2
  import classNames from "classnames"
3
3
  import { useDisclosureState } from "react-stately"
4
+ import useIsomorphicLayoutEffect from "../../Utility/Hooks/useIsomorphicLayoutEffect"
4
5
 
5
6
  type AccordionContextValues = {
6
7
  toggle: (value?: boolean) => void
@@ -28,7 +29,7 @@ const Accordion = ({
28
29
  const rId = useId()
29
30
  const accordionId: string = id || rId
30
31
 
31
- useEffect(() => {
32
+ useIsomorphicLayoutEffect(() => {
32
33
  if (typeof window === "undefined") return
33
34
  if (window.location.hash && window.location.hash === `#${accordionId}`) {
34
35
  expand()
@@ -1,6 +1,7 @@
1
1
  import { Meta, StoryObj } from "@storybook/html-vite"
2
2
  import { expect } from "storybook/test"
3
3
  import { modes } from "../../../.storybook/modes"
4
+ import { runScreenReaderWalkthrough } from "../../../tools/test-utils/screen-reader"
4
5
  import Component from "./accordion-item.twig"
5
6
  import AccordionMobile from "./twig/accordion-mobile.twig"
6
7
  import AccordionDiv from "./twig/accordion-div.twig"
@@ -72,6 +73,32 @@ type Story = StoryObj<AccordionItemType>
72
73
 
73
74
  export const AccordionItem: Story = {}
74
75
 
76
+ /**
77
+ * Steps a virtual screen reader through the page with the item open, and asserts on what it announces.
78
+ */
79
+ export const ScreenReaderAnnouncements: Story = {
80
+ play: async ({ canvas, userEvent }) => {
81
+ const summary = canvas.getByText("Music")
82
+ const accordion = canvas.getByRole("group")
83
+
84
+ await userEvent.click(summary)
85
+ await expect(accordion).toHaveAttribute("open")
86
+
87
+ const log = await runScreenReaderWalkthrough()
88
+ await expect(log).toEqual([
89
+ "document",
90
+ "group",
91
+ "Music",
92
+ "I'm baby air plant hashtag letterpress blue bottle. Cloud bread dreamcatcher everyday carry lumbersexual, iceland cardigan swag chicharrones lo-fi fanny pack affogato freegan XOXO shaman. Shoreditch cloud bread waistcoat tbh XOXO. Chillwave pour-over umami pug glossier health goth.",
93
+ "end of group",
94
+ "end of document",
95
+ ])
96
+
97
+ await userEvent.click(summary)
98
+ await expect(accordion).not.toHaveAttribute("open")
99
+ },
100
+ }
101
+
75
102
  /**
76
103
  * Open by default accordion.
77
104
  */
@@ -72,6 +72,42 @@ exports[`Default Open 1`] = `
72
72
  "
73
73
  `;
74
74
 
75
+ exports[`Screen Reader Announcements 1`] = `
76
+ "<div class="mx-accordions">
77
+ <div class="mx-accordion__title">
78
+
79
+ <h2>Accordion group</h2>
80
+
81
+ </div>
82
+
83
+ <mx-accordion>
84
+ <details class="mx-accordion mx-accordion--divided" id="music">
85
+ <summary class="mx-accordion__toggle">
86
+ Music
87
+ <span class="mx-button mx-icon mx-button--small mx-button--icon-only mx-icon--chevron-down" aria-hidden="true"></span>
88
+ </summary>
89
+ <div class="mx-accordion__content mx-rich-text mx-vertical-flow">
90
+ I'm baby air plant hashtag letterpress blue bottle. Cloud bread dreamcatcher everyday carry lumbersexual, iceland cardigan swag chicharrones lo-fi fanny pack affogato freegan XOXO shaman. Shoreditch cloud bread waistcoat tbh XOXO. Chillwave pour-over umami pug glossier health goth.
91
+ </div>
92
+ </details>
93
+ </mx-accordion>
94
+
95
+ <mx-accordion>
96
+ <details class="mx-accordion mx-accordion--divided" id="performances">
97
+ <summary class="mx-accordion__toggle">
98
+ Performances
99
+ <span class="mx-button mx-icon mx-button--small mx-button--icon-only mx-icon--chevron-down" aria-hidden="true"></span>
100
+ </summary>
101
+ <div class="mx-accordion__content mx-rich-text mx-vertical-flow">
102
+ I'm baby air plant hashtag letterpress blue bottle. Cloud bread dreamcatcher everyday carry lumbersexual, iceland cardigan swag chicharrones lo-fi fanny pack affogato freegan XOXO shaman. Shoreditch cloud bread waistcoat tbh XOXO. Chillwave pour-over umami pug glossier health goth.
103
+ </div>
104
+ </details>
105
+ </mx-accordion>
106
+
107
+ </div>
108
+ "
109
+ `;
110
+
75
111
  exports[`Test 1`] = `
76
112
  "<div class="mx-accordions">
77
113
  <mx-accordion-group>
@@ -59,3 +59,19 @@ exports[`Open 1`] = `
59
59
  </mx-accordion>
60
60
  "
61
61
  `;
62
+
63
+ exports[`Screen Reader Announcements 1`] = `
64
+ "
65
+ <mx-accordion>
66
+ <details class="mx-accordion mx-accordion--divided" id="music-accordion">
67
+ <summary class="mx-accordion__toggle">
68
+ Music
69
+ <span class="mx-button mx-icon mx-button--small mx-button--icon-only mx-icon--chevron-down" aria-hidden="true"></span>
70
+ </summary>
71
+ <div class="mx-accordion__content mx-rich-text mx-vertical-flow">
72
+ I'm baby air plant hashtag letterpress blue bottle. Cloud bread dreamcatcher everyday carry lumbersexual, iceland cardigan swag chicharrones lo-fi fanny pack affogato freegan XOXO shaman. Shoreditch cloud bread waistcoat tbh XOXO. Chillwave pour-over umami pug glossier health goth.
73
+ </div>
74
+ </details>
75
+ </mx-accordion>
76
+ "
77
+ `;
@@ -93,6 +93,8 @@
93
93
  justify-content: space-between;
94
94
  align-items: center;
95
95
  gap: var(--spacing-xxs);
96
+ font-size: var(--font-size);
97
+ font-weight: var(--font-weight-normal);
96
98
 
97
99
  & .mx-icon {
98
100
  margin-inline-start: auto;
@@ -7,22 +7,19 @@ exports[`Breadcrumb 1`] = `
7
7
  <li>
8
8
  <a href="#">
9
9
 
10
- <span>Home</span>
11
-
10
+ Home
12
11
  </a>
13
12
  </li>
14
13
  <li>
15
14
  <a href="#">
16
15
 
17
- <span>About</span>
18
-
16
+ About
19
17
  </a>
20
18
  </li>
21
19
  <li>
22
20
  <a href="#" aria-current="page">
23
21
 
24
- <span>Join the team</span>
25
-
22
+ Join the team
26
23
  </a>
27
24
  </li>
28
25
  </ul>
@@ -1,3 +1,5 @@
1
+ @import "../../Utility/_mixins.css";
2
+
1
3
  /**
2
4
  * Breadcrumb Navigation
3
5
  */
@@ -35,6 +37,8 @@
35
37
  block-size: var(--spacing-m);
36
38
  inline-size: var(--spacing-m);
37
39
  background-color: currentcolor;
40
+
41
+ @add-mixin forced-colors-paint;
38
42
  }
39
43
  }
40
44
 
@@ -14,8 +14,7 @@ exports[`Block Link 1`] = `
14
14
 
15
15
  <a href="#" class="mx-link--more">
16
16
 
17
- <span>Find out more</span>
18
-
17
+ Find out more
19
18
  </a>
20
19
 
21
20
  </div>
@@ -44,8 +43,7 @@ exports[`Card 1`] = `
44
43
 
45
44
  <a href="#" class="mx-link--more">
46
45
 
47
- <span>Find out more</span>
48
-
46
+ Find out more
49
47
  </a>
50
48
 
51
49
  </div>
@@ -66,7 +64,7 @@ exports[`Collapse 1`] = `
66
64
  <article class="mx-card mx-card--collapse">
67
65
  <div class="mx-card__content mx-vertical-flow-flex">
68
66
 
69
- <div class="mx-text--s">25 May 2025</div>
67
+ <div class="mx-text--meta">25 May 2025</div>
70
68
 
71
69
  <h3>Card title</h3>
72
70
 
@@ -75,8 +73,7 @@ exports[`Collapse 1`] = `
75
73
 
76
74
  <a href="#" class="mx-link--more">
77
75
 
78
- <span>Find out more</span>
79
-
76
+ Find out more
80
77
  </a>
81
78
 
82
79
  </div>
@@ -97,7 +94,7 @@ exports[`Date 1`] = `
97
94
  <article class="mx-card">
98
95
  <div class="mx-card__content mx-vertical-flow-flex">
99
96
 
100
- <div class="mx-text--s">25 May 2025</div>
97
+ <div class="mx-text--meta">25 May 2025</div>
101
98
 
102
99
  <h3>Card title</h3>
103
100
 
@@ -106,8 +103,7 @@ exports[`Date 1`] = `
106
103
 
107
104
  <a href="#" class="mx-link--more">
108
105
 
109
- <span>Find out more</span>
110
-
106
+ Find out more
111
107
  </a>
112
108
 
113
109
  </div>
@@ -141,8 +137,7 @@ exports[`Icon Tile 1`] = `
141
137
 
142
138
  <a href="#" class="mx-link--more">
143
139
 
144
- <span>Find out more</span>
145
-
140
+ Find out more
146
141
  </a>
147
142
 
148
143
  </div>
@@ -165,8 +160,7 @@ exports[`Reverse 1`] = `
165
160
 
166
161
  <a href="#" class="mx-link--more">
167
162
 
168
- <span>Find out more</span>
169
-
163
+ Find out more
170
164
  </a>
171
165
 
172
166
  </div>
@@ -195,8 +189,7 @@ exports[`Tile 1`] = `
195
189
 
196
190
  <a href="#" class="mx-link--more">
197
191
 
198
- <span>Find out more</span>
199
-
192
+ Find out more
200
193
  </a>
201
194
 
202
195
  </div>
@@ -221,24 +214,21 @@ exports[`With Link List 1`] = `
221
214
 
222
215
  <li><a href="#">
223
216
 
224
- <span>Link one</span>
225
-
217
+ Link one
226
218
  <span class="mx-icon mx-icon--chevron-right"></span>
227
219
 
228
220
  </a>
229
221
  </li>
230
222
  <li><a href="#">
231
223
 
232
- <span>Link two</span>
233
-
224
+ Link two
234
225
  <span class="mx-icon mx-icon--chevron-right"></span>
235
226
 
236
227
  </a>
237
228
  </li>
238
229
  <li><a href="#">
239
230
 
240
- <span>Link three</span>
241
-
231
+ Link three
242
232
  <span class="mx-icon mx-icon--chevron-right"></span>
243
233
 
244
234
  </a>
@@ -286,8 +276,7 @@ exports[`With Tags 1`] = `
286
276
 
287
277
  <a href="#" class="mx-link--more">
288
278
 
289
- <span>Find out more</span>
290
-
279
+ Find out more
291
280
  </a>
292
281
 
293
282
  </div>
@@ -145,8 +145,8 @@
145
145
  }
146
146
  }
147
147
 
148
- &:has(a .sr-only:only-child) {
149
- & a {
148
+ &:has(a[aria-label]) {
149
+ & a:not(:has(.mx-icon)) {
150
150
  margin-block-start: calc(var(--flow-gap, var(--gap)) * -1);
151
151
  }
152
152
 
@@ -30,7 +30,7 @@
30
30
  <div class="mx-card__content mx-vertical-flow-flex">
31
31
  {{ tags }}
32
32
  {% if date is not empty %}
33
- <div class="mx-text--s">{{ date }}</div>
33
+ <div class="mx-text--meta">{{ date }}</div>
34
34
  {% endif %}
35
35
  {{ title }}
36
36
  {% if content is not empty %}