@pnx-mixtape/mxds 0.0.22 → 0.0.23

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 (375) hide show
  1. package/dist/build/accordion.entry.js +32 -43
  2. package/dist/build/accordion.entry.js.map +1 -1
  3. package/dist/build/base.css +17 -39
  4. package/dist/build/button.css +9 -10
  5. package/dist/build/chunks/{Accordion-O-huO4At.js → Accordion-D1HQ0FDq.js} +23 -21
  6. package/dist/build/chunks/{Accordion-O-huO4At.js.map → Accordion-D1HQ0FDq.js.map} +1 -1
  7. package/dist/build/chunks/disclosure-widget-CdjCdx7t.js +129 -0
  8. package/dist/build/chunks/disclosure-widget-CdjCdx7t.js.map +1 -0
  9. package/dist/build/chunks/drop-menu.entry-fzV-_VFl.js +70 -0
  10. package/dist/build/chunks/drop-menu.entry-fzV-_VFl.js.map +1 -0
  11. package/dist/build/chunks/{polyfills-C-B7iqDG.js → polyfills-DnrsypYs.js} +35 -26
  12. package/dist/build/chunks/polyfills-DnrsypYs.js.map +1 -0
  13. package/dist/build/chunks/popover.entry-BQvyR0d5.js +38 -0
  14. package/dist/build/chunks/popover.entry-BQvyR0d5.js.map +1 -0
  15. package/dist/build/chunks/{utilities-DXELy_An.js → utilities-Ci7wwNeg.js} +9 -106
  16. package/dist/build/chunks/utilities-Ci7wwNeg.js.map +1 -0
  17. package/dist/build/constants.css +10 -31
  18. package/dist/build/dialog.entry.js +23 -31
  19. package/dist/build/dialog.entry.js.map +1 -1
  20. package/dist/build/drop-menu.entry.js +1 -1
  21. package/dist/build/drupal.css +5 -9
  22. package/dist/build/filters.entry.js +54 -50
  23. package/dist/build/filters.entry.js.map +1 -1
  24. package/dist/build/form.css +12 -26
  25. package/dist/build/global-alert.entry.js +26 -19
  26. package/dist/build/global-alert.entry.js.map +1 -1
  27. package/dist/build/grid.css +3 -9
  28. package/dist/build/header.entry.js +93 -88
  29. package/dist/build/header.entry.js.map +1 -1
  30. package/dist/build/icon.css +3 -3
  31. package/dist/build/in-page-navigation.entry.js +16 -12
  32. package/dist/build/in-page-navigation.entry.js.map +1 -1
  33. package/dist/build/navigation.css +9 -23
  34. package/dist/build/navigation.entry.js +148 -50
  35. package/dist/build/navigation.entry.js.map +1 -1
  36. package/dist/build/page.css +1 -1
  37. package/dist/build/popover.css +119 -0
  38. package/dist/build/popover.entry.js +2 -0
  39. package/dist/build/popover.entry.js.map +1 -0
  40. package/dist/build/section.css +1 -1
  41. package/dist/build/sticky.entry.js +11 -12
  42. package/dist/build/sticky.entry.js.map +1 -1
  43. package/dist/build/tabs.entry.js +108 -91
  44. package/dist/build/tabs.entry.js.map +1 -1
  45. package/dist/build/utility-list.css +43 -0
  46. package/dist/build/utility-list.entry.js +80 -0
  47. package/dist/build/utility-list.entry.js.map +1 -0
  48. package/package.json +9 -10
  49. package/src/Atom/{Base.mdx → Atom.mdx} +1 -1
  50. package/src/Atom/Background/Backgrounds.stories.ts +21 -4
  51. package/src/Atom/Background/__snapshots__/Backgrounds.stories.ts.snap +1 -1
  52. package/src/Atom/Background/_background.css +1 -2
  53. package/src/Atom/Blockquote/_blockquote.css +1 -2
  54. package/src/Atom/Button/Button.stories.ts +128 -19
  55. package/src/Atom/Button/__snapshots__/Button.stories.ts.snap +75 -11
  56. package/src/Atom/Button/__snapshots__/Button.stories.tsx.snap +1 -1
  57. package/src/Atom/Button/_buttons.css +4 -5
  58. package/src/Atom/DefinitionList/DefinitionList.stories.ts +20 -3
  59. package/src/Atom/DefinitionList/DefinitionList.stories.tsx +3 -9
  60. package/src/Atom/DefinitionList/DefinitionList.tsx +3 -4
  61. package/src/Atom/DefinitionList/__snapshots__/DefinitionList.stories.ts.snap +1 -1
  62. package/src/Atom/DefinitionList/__snapshots__/DefinitionList.stories.tsx.snap +1 -1
  63. package/src/Atom/Heading/Heading.stories.ts +49 -7
  64. package/src/Atom/Heading/Heading.tsx +1 -6
  65. package/src/Atom/Heading/__snapshots__/Heading.stories.ts.snap +9 -1
  66. package/src/Atom/Heading/__snapshots__/Heading.stories.tsx.snap +1 -1
  67. package/src/Atom/Heading/_headings.css +1 -2
  68. package/src/Atom/Icon/Icon.mdx +5 -1
  69. package/src/Atom/Icon/Icon.stories.ts +76 -6
  70. package/src/Atom/Icon/Icon.tsx +1 -8
  71. package/src/Atom/Icon/__snapshots__/Icon.stories.ts.snap +18 -4
  72. package/src/Atom/Icon/__snapshots__/Icon.stories.tsx.snap +1 -1
  73. package/src/Atom/Icon/_icon.css +1 -1
  74. package/src/Atom/Image/Image.stories.ts +4 -3
  75. package/src/Atom/Image/__snapshots__/Image.stories.ts.snap +1 -1
  76. package/src/Atom/Link/Link.stories.ts +74 -7
  77. package/src/Atom/Link/__snapshots__/Link.stories.ts.snap +4 -4
  78. package/src/Atom/Link/__snapshots__/Link.stories.tsx.snap +1 -1
  79. package/src/Atom/Media/Media.stories.ts +34 -5
  80. package/src/Atom/Media/Media.tsx +1 -6
  81. package/src/Atom/Media/__snapshots__/Media.stories.ts.snap +2 -2
  82. package/src/Atom/Media/__snapshots__/Media.stories.tsx.snap +1 -1
  83. package/src/Atom/Media/_media.css +2 -10
  84. package/src/Atom/Spacing/Spacing.stories.ts +45 -31
  85. package/src/Atom/Spacing/__snapshots__/Spacing.stories.ts.snap +5 -4
  86. package/src/Atom/Spacing/spacing.twig +5 -2
  87. package/src/Atom/Table/__snapshots__/Table.stories.ts.snap +1 -1
  88. package/src/Atom/Table/__snapshots__/TableResponsive.stories.ts.snap +1 -1
  89. package/src/Atom/Table/_table.css +1 -2
  90. package/src/Atom/Text/Text.stories.ts +62 -0
  91. package/src/Atom/Text/__snapshots__/{TextSizes.stories.ts.snap → Text.stories.ts.snap} +14 -27
  92. package/src/Atom/Text/__snapshots__/Text.stories.tsx.snap +1 -1
  93. package/src/Atom/Text/_text-sizes.css +2 -4
  94. package/src/Atom/Text/text-style.twig +11 -1
  95. package/src/Atom/Text/text-styles-example.twig +2 -16
  96. package/src/Atom/Video/Video.stories.ts +6 -4
  97. package/src/Atom/Video/Video.tsx +1 -5
  98. package/src/Atom/Video/__snapshots__/Video.stories.ts.snap +1 -1
  99. package/src/Atom/_generic.css +2 -4
  100. package/src/Atom/_hr.css +1 -2
  101. package/src/Component/Accordion/Accordion.stories.ts +26 -8
  102. package/src/Component/Accordion/Accordion.stories.tsx +8 -10
  103. package/src/Component/Accordion/Accordion.tsx +2 -13
  104. package/src/Component/Accordion/AccordionItem.stories.ts +90 -0
  105. package/src/Component/Accordion/Components/AccordionContent.tsx +1 -5
  106. package/src/Component/Accordion/Components/AccordionTitle.tsx +1 -4
  107. package/src/Component/Accordion/Elements/Accordion.ts +1 -1
  108. package/src/Component/Accordion/Elements/AccordionDiv.ts +4 -11
  109. package/src/Component/Accordion/Elements/AccordionGroup.ts +10 -24
  110. package/src/Component/Accordion/Elements/AccordionMobile.ts +4 -4
  111. package/src/Component/Accordion/__snapshots__/Accordion.stories.ts.snap +17 -6
  112. package/src/Component/Accordion/__snapshots__/Accordion.stories.tsx.snap +1 -1
  113. package/src/Component/Accordion/__snapshots__/AccordionItem.stories.ts.snap +90 -0
  114. package/src/Component/Accordion/accordion.css +7 -5
  115. package/src/Component/Accordion/twig/accordion-div.twig +13 -11
  116. package/src/Component/Accordion/twig/accordion-mobile.twig +13 -11
  117. package/src/Component/Breadcrumb/Breadcrumb.stories.ts +14 -0
  118. package/src/Component/Breadcrumb/Breadcrumb.tsx +2 -12
  119. package/src/Component/Breadcrumb/__snapshots__/Breadcrumb.stories.ts.snap +1 -1
  120. package/src/Component/Breadcrumb/__snapshots__/Breadcrumb.stories.tsx.snap +1 -1
  121. package/src/Component/Breadcrumb/breadcrumb.css +1 -4
  122. package/src/Component/Callout/Callout.stories.ts +20 -0
  123. package/src/Component/Callout/__snapshots__/Callout.stories.ts.snap +1 -1
  124. package/src/Component/Callout/callout.css +1 -2
  125. package/src/Component/Card/Card.stories.ts +129 -14
  126. package/src/Component/Card/Card.stories.tsx +2 -2
  127. package/src/Component/Card/Components/CardContent.tsx +1 -5
  128. package/src/Component/Card/__snapshots__/Card.stories.ts.snap +16 -16
  129. package/src/Component/Card/__snapshots__/Card.stories.tsx.snap +1 -1
  130. package/src/Component/Card/card.css +2 -6
  131. package/src/Component/Carousel/Carousel.stories.ts +61 -8
  132. package/src/Component/Carousel/Elements/Carousel.ts +10 -19
  133. package/src/Component/Carousel/__snapshots__/Carousel.stories.ts.snap +288 -2
  134. package/src/Component/Carousel/carousel.css +1 -2
  135. package/src/Component/ContentBlock/Components/ContentBlockContent.tsx +1 -5
  136. package/src/Component/ContentBlock/Components/ContentBlockMedia.tsx +1 -4
  137. package/src/Component/ContentBlock/ContentBlock.stories.ts +63 -13
  138. package/src/Component/ContentBlock/ContentBlock.stories.tsx +2 -2
  139. package/src/Component/ContentBlock/ContentBlock.tsx +1 -5
  140. package/src/Component/ContentBlock/__snapshots__/ContentBlock.stories.ts.snap +11 -11
  141. package/src/Component/ContentBlock/__snapshots__/ContentBlock.stories.tsx.snap +1 -1
  142. package/src/Component/Dialog/Dialog.stories.ts +78 -21
  143. package/src/Component/Dialog/Dialog.stories.tsx +2 -3
  144. package/src/Component/Dialog/Elements/Dialog.ts +7 -16
  145. package/src/Component/Dialog/__snapshots__/Dialog.stories.ts.snap +8 -11
  146. package/src/Component/Dialog/__snapshots__/Dialog.stories.tsx.snap +1 -1
  147. package/src/Component/Dialog/dialog.css +1 -2
  148. package/src/Component/Dialog/dialog.twig +1 -1
  149. package/src/Component/DropMenu/Components/DropMenuContext.tsx +4 -12
  150. package/src/Component/DropMenu/DropMenu.stories.ts +60 -1
  151. package/src/Component/DropMenu/DropMenu.tsx +2 -7
  152. package/src/Component/DropMenu/Elements/DropMenu.ts +21 -91
  153. package/src/Component/DropMenu/__snapshots__/DropMenu.stories.ts.snap +53 -11
  154. package/src/Component/DropMenu/__snapshots__/DropMenu.stories.tsx.snap +1 -1
  155. package/src/Component/DropMenu/drop-menu.css +13 -41
  156. package/src/Component/DropMenu/drop-menu.twig +8 -6
  157. package/src/Component/Filters/Elements/Filters.ts +7 -11
  158. package/src/Component/Filters/FilterItem.stories.ts +180 -0
  159. package/src/Component/Filters/Filters.stories.ts +83 -8
  160. package/src/Component/Filters/__snapshots__/FilterItem.stories.ts.snap +135 -0
  161. package/src/Component/Filters/__snapshots__/Filters.stories.ts.snap +43 -41
  162. package/src/Component/Filters/filter-item.twig +1 -1
  163. package/src/Component/Filters/filters.css +33 -17
  164. package/src/Component/GlobalAlert/Elements/ClosableAlert.ts +8 -7
  165. package/src/Component/GlobalAlert/GlobalAlert.stories.ts +60 -12
  166. package/src/Component/GlobalAlert/GlobalAlert.stories.tsx +1 -2
  167. package/src/Component/GlobalAlert/__snapshots__/GlobalAlert.stories.ts.snap +8 -6
  168. package/src/Component/GlobalAlert/__snapshots__/GlobalAlert.stories.tsx.snap +3 -3
  169. package/src/Component/HeroBanner/HeroBanner.stories.ts +84 -7
  170. package/src/Component/HeroBanner/HeroBanner.stories.tsx +4 -4
  171. package/src/Component/HeroBanner/__snapshots__/HeroBanner.stories.ts.snap +91 -99
  172. package/src/Component/HeroBanner/__snapshots__/HeroBanner.stories.tsx.snap +1 -1
  173. package/src/Component/HeroSearch/HeroSearch.stories.ts +23 -4
  174. package/src/Component/HeroSearch/HeroSearch.stories.tsx +4 -4
  175. package/src/Component/HeroSearch/__snapshots__/HeroSearch.stories.ts.snap +10 -10
  176. package/src/Component/HeroSearch/__snapshots__/HeroSearch.stories.tsx.snap +1 -1
  177. package/src/Component/InPageAlert/InPageAlert.stories.ts +76 -8
  178. package/src/Component/InPageAlert/InPageAlert.stories.tsx +1 -2
  179. package/src/Component/InPageAlert/InPageAlert.tsx +1 -4
  180. package/src/Component/InPageAlert/__snapshots__/InPageAlert.stories.ts.snap +80 -2
  181. package/src/Component/InPageAlert/__snapshots__/InPageAlert.stories.tsx.snap +1 -1
  182. package/src/Component/InPageNavigation/Elements/InPageNavigation.ts +7 -9
  183. package/src/Component/InPageNavigation/Hooks/useInPageNavigation.ts +3 -5
  184. package/src/Component/InPageNavigation/InPageNavigation.stories.ts +44 -9
  185. package/src/Component/InPageNavigation/InPageNavigation.stories.tsx +32 -40
  186. package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.ts.snap +152 -5
  187. package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.tsx.snap +1 -1
  188. package/src/Component/LinkList/LinkList.stories.ts +23 -0
  189. package/src/Component/LinkList/__snapshots__/LinkList.stories.ts.snap +8 -8
  190. package/src/Component/LinkList/__snapshots__/LinkList.stories.tsx.snap +1 -1
  191. package/src/Component/LinkList/link-list.css +1 -2
  192. package/src/Component/ListItem/Components/ListItemContent.tsx +1 -5
  193. package/src/Component/ListItem/Components/ListItemMedia.tsx +1 -4
  194. package/src/Component/ListItem/ListItem.stories.ts +91 -11
  195. package/src/Component/ListItem/ListItem.stories.tsx +6 -7
  196. package/src/Component/ListItem/__snapshots__/ListItem.stories.ts.snap +1 -1
  197. package/src/Component/ListItem/__snapshots__/ListItem.stories.tsx.snap +1 -1
  198. package/src/Component/ListItem/list-item.css +1 -2
  199. package/src/Component/Navigation/Components/DropdownLevel.tsx +5 -13
  200. package/src/Component/Navigation/Elements/Navigation.ts +6 -13
  201. package/src/Component/Navigation/Navigation.stories.ts +48 -0
  202. package/src/Component/Navigation/__snapshots__/Dropdown.stories.tsx.snap +1 -1
  203. package/src/Component/Navigation/__snapshots__/Navigation.stories.ts.snap +1 -1
  204. package/src/Component/Navigation/__snapshots__/Navigation.stories.tsx.snap +1 -1
  205. package/src/Component/Navigation/_navigation-collapsible.css +2 -4
  206. package/src/Component/Navigation/_navigation-dropdown.css +2 -6
  207. package/src/Component/Navigation/_navigation-mega.css +1 -4
  208. package/src/Component/Navigation/_navigation.css +1 -4
  209. package/src/Component/Pagination/Components/PaginationContext.tsx +5 -19
  210. package/src/Component/Pagination/Components/PaginationItem.tsx +1 -5
  211. package/src/Component/Pagination/Pagination.stories.ts +28 -0
  212. package/src/Component/Pagination/Pagination.tsx +3 -11
  213. package/src/Component/Pagination/__snapshots__/Pagination.stories.ts.snap +3 -3
  214. package/src/Component/Pagination/__snapshots__/Pagination.stories.tsx.snap +1 -1
  215. package/src/Component/Pagination/pagination.css +1 -4
  216. package/src/Component/Popover/Elements/Popover.ts +55 -0
  217. package/src/Component/Popover/Popover.stories.ts +259 -0
  218. package/src/Component/Popover/__snapshots__/Popover.stories.ts.snap +508 -0
  219. package/src/Component/{DropMenu → Popover}/polyfills.js +6 -4
  220. package/src/Component/Popover/popover.css +113 -0
  221. package/src/Component/Popover/popover.entry.js +1 -0
  222. package/src/Component/Popover/popover.twig +27 -0
  223. package/src/Component/ResultsBar/Components/ResultsBarInfo.tsx +2 -7
  224. package/src/Component/ResultsBar/Components/ResultsBarSort.tsx +1 -6
  225. package/src/Component/ResultsBar/ResultsBar.stories.ts +34 -4
  226. package/src/Component/ResultsBar/__snapshots__/ResultsBar.stories.ts.snap +3 -3
  227. package/src/Component/ResultsBar/__snapshots__/ResultsBar.stories.tsx.snap +1 -1
  228. package/src/Component/SideNavigation/SideNavigation.stories.ts +40 -0
  229. package/src/Component/SideNavigation/__snapshots__/SideNavigation.stories.ts.snap +1 -1
  230. package/src/Component/SideNavigation/side-navigation.css +3 -6
  231. package/src/Component/SocialLinks/SocialLinks.stories.ts +20 -0
  232. package/src/Component/SocialLinks/__snapshots__/SocialLinks.stories.ts.snap +5 -5
  233. package/src/Component/SocialShare/SocialShare.stories.ts +37 -0
  234. package/src/Component/SocialShare/SocialShare.tsx +2 -4
  235. package/src/Component/SocialShare/__snapshots__/SocialShare.stories.ts.snap +40 -0
  236. package/src/Component/SocialShare/__snapshots__/SocialShare.stories.tsx.snap +1 -1
  237. package/src/Component/SocialShare/social-share.twig +34 -0
  238. package/src/Component/Steps/StepItem.stories.ts +48 -0
  239. package/src/Component/Steps/Steps.stories.ts +82 -13
  240. package/src/Component/Steps/__snapshots__/StepItem.stories.ts.snap +31 -0
  241. package/src/Component/Steps/__snapshots__/Steps.stories.ts.snap +97 -16
  242. package/src/Component/Steps/steps.css +4 -11
  243. package/src/Component/Sticky/Elements/Sticky.ts +3 -8
  244. package/src/Component/Sticky/Sticky.stories.ts +35 -3
  245. package/src/Component/Sticky/__snapshots__/Sticky.stories.ts.snap +1 -1
  246. package/src/Component/Sticky/__snapshots__/Sticky.stories.tsx.snap +1 -1
  247. package/src/Component/Sticky/sticky.twig +1 -1
  248. package/src/Component/Tabs/Components/Tab.tsx +2 -8
  249. package/src/Component/Tabs/Components/TabPanel.tsx +1 -5
  250. package/src/Component/Tabs/Elements/Tabs.ts +21 -31
  251. package/src/Component/Tabs/TabItem.stories.ts +52 -0
  252. package/src/Component/Tabs/Tabs.stories.ts +51 -8
  253. package/src/Component/Tabs/Tabs.tsx +6 -22
  254. package/src/Component/Tabs/__snapshots__/TabItem.stories.ts.snap +12 -0
  255. package/src/Component/Tabs/__snapshots__/Tabs.stories.ts.snap +127 -11
  256. package/src/Component/Tabs/__snapshots__/Tabs.stories.tsx.snap +1 -1
  257. package/src/Component/Tabs/tab-item.twig +1 -2
  258. package/src/Component/Tabs/tabs.css +56 -59
  259. package/src/Component/Tag/Tag.stories.ts +30 -0
  260. package/src/Component/Tag/Tag.tsx +1 -5
  261. package/src/Component/Tag/__snapshots__/Tag.stories.ts.snap +1 -1
  262. package/src/Component/Tag/__snapshots__/Tag.stories.tsx.snap +1 -1
  263. package/src/Component/Tag/tag.css +1 -4
  264. package/src/Component/UtilityList/Elements/UtilityList.ts +110 -0
  265. package/src/Component/UtilityList/UtilityList.stories.ts +72 -0
  266. package/src/Component/UtilityList/__snapshots__/UtilityList.stories.ts.snap +274 -0
  267. package/src/Component/UtilityList/utility-list.css +40 -0
  268. package/src/Component/UtilityList/utility-list.entry.js +1 -0
  269. package/src/Component/UtilityList/utility-list.twig +66 -0
  270. package/src/Form/Checkbox/FormCheckbox.stories.tsx +1 -3
  271. package/src/Form/Checkbox/FormCheckbox.tsx +4 -25
  272. package/src/Form/Checkbox/__snapshots__/Checkbox.stories.ts.snap +3 -3
  273. package/src/Form/Description/Description.stories.ts +1 -2
  274. package/src/Form/Description/FormStatus.stories.ts +1 -4
  275. package/src/Form/Description/__snapshots__/Description.stories.ts.snap +1 -1
  276. package/src/Form/Description/__snapshots__/FormDescription.stories.tsx.snap +1 -1
  277. package/src/Form/Description/__snapshots__/FormStatus.stories.ts.snap +3 -3
  278. package/src/Form/Form/Form.tsx +1 -3
  279. package/src/Form/Form/__snapshots__/Form.stories.tsx.snap +1 -1
  280. package/src/Form/Form/__snapshots__/FormTitle.stories.tsx.snap +1 -1
  281. package/src/Form/FormItem/FormItem.stories.ts +3 -9
  282. package/src/Form/FormItem/__snapshots__/FormItem.stories.ts.snap +18 -18
  283. package/src/Form/FormItem/__snapshots__/FormItem.stories.tsx.snap +1 -1
  284. package/src/Form/Label/FormLabel.tsx +1 -5
  285. package/src/Form/Label/__snapshots__/FormLabel.stories.tsx.snap +1 -1
  286. package/src/Form/Label/__snapshots__/Label.stories.ts.snap +3 -3
  287. package/src/Form/Radio/FormRadio.stories.tsx +1 -3
  288. package/src/Form/Radio/FormRadio.tsx +4 -25
  289. package/src/Form/Radio/__snapshots__/Radio.stories.ts.snap +9 -9
  290. package/src/Form/Search/__snapshots__/Search.stories.ts.snap +1 -1
  291. package/src/Form/Select/FormSelect.tsx +3 -9
  292. package/src/Form/Select/__snapshots__/FormSelect.stories.tsx.snap +1 -1
  293. package/src/Form/Select/__snapshots__/Select.stories.ts.snap +2 -2
  294. package/src/Form/TextInput/FormText.tsx +3 -9
  295. package/src/Form/TextInput/TextInput.stories.ts +1 -4
  296. package/src/Form/TextInput/__snapshots__/FormText.stories.tsx.snap +1 -1
  297. package/src/Form/TextInput/__snapshots__/InputDivider.stories.ts.snap +1 -1
  298. package/src/Form/TextInput/__snapshots__/TextInput.stories.ts.snap +3 -3
  299. package/src/Form/Textarea/FormTextarea.tsx +3 -9
  300. package/src/Form/Textarea/__snapshots__/FormTextarea.stories.tsx.snap +1 -1
  301. package/src/Form/Textarea/__snapshots__/Textarea.stories.ts.snap +2 -2
  302. package/src/Form/form.css +6 -14
  303. package/src/Introduction.mdx +1 -2
  304. package/src/Layout/Footer/Footer.stories.ts +1 -5
  305. package/src/Layout/Footer/Footer.stories.tsx +2 -3
  306. package/src/Layout/Footer/Footer.tsx +3 -12
  307. package/src/Layout/Footer/__snapshots__/Footer.stories.ts.snap +4 -4
  308. package/src/Layout/Footer/__snapshots__/Footer.stories.tsx.snap +1 -1
  309. package/src/Layout/Grid/Grid.stories.ts +40 -8
  310. package/src/Layout/Grid/Grid.tsx +1 -2
  311. package/src/Layout/Grid/GridItem.stories.ts +63 -0
  312. package/src/Layout/Grid/__snapshots__/Grid.stories.ts.snap +29 -4
  313. package/src/Layout/Grid/__snapshots__/Grid.stories.tsx.snap +1 -1
  314. package/src/Layout/Grid/__snapshots__/GridItem.stories.ts.snap +19 -0
  315. package/src/Layout/Grid/grid-item.twig +3 -9
  316. package/src/Layout/Grid/grid.css +1 -4
  317. package/src/Layout/Header/Elements/GlobalToggle.ts +9 -29
  318. package/src/Layout/Header/__snapshots__/Header.stories.ts.snap +5 -5
  319. package/src/Layout/Header/__snapshots__/Header.stories.tsx.snap +3 -3
  320. package/src/Layout/Masthead/Masthead.stories.ts +1 -4
  321. package/src/Layout/Masthead/__snapshots__/Masthead.stories.ts.snap +3 -3
  322. package/src/Layout/Page/Page.stories.tsx +2 -2
  323. package/src/Layout/Page/__snapshots__/Page.stories.tsx.snap +3 -3
  324. package/src/Layout/Page/page.css +2 -10
  325. package/src/Layout/Section/Background.stories.ts +14 -39
  326. package/src/Layout/Section/Breakouts.stories.ts +3 -0
  327. package/src/Layout/Section/Flow.stories.ts +3 -0
  328. package/src/Layout/Section/Section.stories.ts +93 -11
  329. package/src/Layout/Section/Section.tsx +3 -13
  330. package/src/Layout/Section/SectionGrid.tsx +2 -9
  331. package/src/Layout/Section/__snapshots__/Background.stories.ts.snap +4 -4
  332. package/src/Layout/Section/__snapshots__/Breakouts.stories.ts.snap +1 -1
  333. package/src/Layout/Section/__snapshots__/Flow.stories.ts.snap +1 -1
  334. package/src/Layout/Section/__snapshots__/Section.stories.ts.snap +93 -3
  335. package/src/Layout/Section/__snapshots__/Section.stories.tsx.snap +1 -1
  336. package/src/Layout/Section/__snapshots__/SectionGrid.stories.tsx.snap +1 -1
  337. package/src/Layout/Section/section.css +2 -5
  338. package/src/Layout/Section/section.twig +1 -3
  339. package/src/Layout/Sidebar/Sidebar.stories.ts +46 -4
  340. package/src/Layout/Sidebar/Sidebar.tsx +1 -3
  341. package/src/Layout/Sidebar/__snapshots__/Sidebar.stories.ts.snap +4 -4
  342. package/src/Layout/Sidebar/__snapshots__/Sidebar.stories.tsx.snap +1 -1
  343. package/src/Utility/Context/ImageComponent.tsx +4 -8
  344. package/src/Utility/Context/LinkComponent.tsx +1 -5
  345. package/src/Utility/Drupal/drupal.css +2 -4
  346. package/src/Utility/Elements/breakpoint-loader.ts +4 -10
  347. package/src/Utility/Elements/cookie-compliance.ts +2 -8
  348. package/src/Utility/Elements/disclosure-widget.ts +11 -18
  349. package/src/Utility/Elements/io-loader.ts +4 -6
  350. package/src/Utility/Elements/keyboard.ts +4 -14
  351. package/src/Utility/Hooks/useLocalStorage.ts +5 -18
  352. package/src/Utility/Hooks/useMediaQuery.ts +1 -4
  353. package/src/Utility/Hooks/useToggle.ts +1 -3
  354. package/src/Utility/global.d.ts +1 -5
  355. package/src/Utility/utilities.ts +20 -45
  356. package/src/constants.css +7 -28
  357. package/src/enums.ts +3 -1
  358. package/src/react.ts +5 -21
  359. package/src/tokens.js +2 -2
  360. package/dist/build/chunks/disclosure-widget-DVpnRsTI.js +0 -126
  361. package/dist/build/chunks/disclosure-widget-DVpnRsTI.js.map +0 -1
  362. package/dist/build/chunks/drop-menu.entry-B4TtnC50.js +0 -132
  363. package/dist/build/chunks/drop-menu.entry-B4TtnC50.js.map +0 -1
  364. package/dist/build/chunks/keyboard-rvZ4dfGF.js +0 -104
  365. package/dist/build/chunks/keyboard-rvZ4dfGF.js.map +0 -1
  366. package/dist/build/chunks/polyfills-C-B7iqDG.js.map +0 -1
  367. package/dist/build/chunks/utilities-DXELy_An.js.map +0 -1
  368. package/src/Atom/Text/TextSizes.stories.ts +0 -25
  369. package/src/Atom/Text/text-alignment.twig +0 -5
  370. package/src/Component/Accordion/twig/accordion-example.twig +0 -36
  371. package/src/Component/Tile/README.md +0 -3
  372. package/src/Component/Tile/Tile.stories.ts +0 -49
  373. package/src/Component/Tile/Tile.stories.tsx +0 -35
  374. package/src/Component/Tile/__snapshots__/Tile.stories.ts.snap +0 -57
  375. package/src/Component/Tile/__snapshots__/Tile.stories.tsx.snap +0 -23
@@ -1,48 +1,62 @@
1
1
  import { Meta, StoryObj } from "@storybook/html-vite"
2
2
  import Component from "./spacing.twig"
3
- import "../_base.css"
4
3
 
5
4
  const modifierOptions: string[] = [
6
- "spacing--xs",
7
- "spacing--s",
8
- "spacing--m",
9
- "spacing--l",
10
- "spacing--xl",
11
- "spacing--top-xs",
12
- "spacing--top-s",
13
- "spacing--top-m",
14
- "spacing--top-l",
15
- "spacing--top-xl",
16
- "spacing--bottom-xs",
17
- "spacing--bottom-s",
18
- "spacing--bottom-m",
19
- "spacing--bottom-l",
20
- "spacing--bottom-xl",
21
- "spacing--left-xs",
22
- "spacing--left-s",
23
- "spacing--left-m",
24
- "spacing--left-l",
25
- "spacing--left-xl",
26
- "spacing--right-xs",
27
- "spacing--right-s",
28
- "spacing--right-m",
29
- "spacing--right-l",
30
- "spacing--right-xl",
5
+ "xs",
6
+ "s",
7
+ "m",
8
+ "l",
9
+ "xl",
10
+ "top-xs",
11
+ "top-s",
12
+ "top-m",
13
+ "top-l",
14
+ "top-xl",
15
+ "bottom-xs",
16
+ "bottom-s",
17
+ "bottom-m",
18
+ "bottom-l",
19
+ "bottom-xl",
20
+ "left-xs",
21
+ "left-s",
22
+ "left-m",
23
+ "left-l",
24
+ "left-xl",
25
+ "right-xs",
26
+ "right-s",
27
+ "right-m",
28
+ "right-l",
29
+ "right-xl",
30
+ "reset",
31
+ "reset-top",
32
+ "reset-bottom",
33
+ "reset-left",
34
+ "reset-right",
31
35
  ]
32
36
 
33
37
  type SpacingType = {
34
- modifier_class?: (typeof modifierOptions)[number]
38
+ modifier?: (typeof modifierOptions)[number]
35
39
  }
36
40
 
41
+ /**
42
+ * Demonstration of the spacing helper classes that are available to add padding to an element.
43
+ */
37
44
  const meta: Meta<SpacingType> = {
38
- title: "Atom/Spacing",
39
45
  tags: ["autodocs"],
40
46
  component: Component,
47
+ args: {
48
+ modifier: modifierOptions[0],
49
+ },
50
+ argTypes: {
51
+ modifier: {
52
+ description: "The spacing option",
53
+ options: modifierOptions,
54
+ control: "select",
55
+ },
56
+ },
41
57
  }
42
58
 
43
59
  export default meta
44
60
  type Story = StoryObj<SpacingType>
45
61
 
46
- export const Spacing: Story = {
47
- args: {},
48
- }
62
+ export const Spacing: Story = {}
@@ -1,10 +1,11 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
1
+ // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
2
2
 
3
3
  exports[`Atom/Spacing Spacing smoke-test 1`] = `
4
4
  <div class="mx-page default">
5
- <div class="mx-spacing ">
6
- <p>
7
- </p>
5
+ <div class="mx-spacing--xs">
6
+ <div>
7
+ mx-spacing--xs
8
+ </div>
8
9
  </div>
9
10
  </div>
10
11
  `;
@@ -1,3 +1,6 @@
1
- <div class="mx-spacing {{ modifier_class }}">
2
- <p>{{ modifier_class }}</p>
1
+ {% set baseClass = "mx-spacing" %}
2
+ {% set class = baseClass ~ '--' ~ modifier %}
3
+ {% set attributes = (attributes ?? create_attribute()).addClass(class) %}
4
+ <div{{ attributes }}>
5
+ <div>{{ class }}</div>
3
6
  </div>
@@ -1,4 +1,4 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
1
+ // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
2
2
 
3
3
  exports[`Atom/Table Flush smoke-test 1`] = `
4
4
  <div class="mx-page default">
@@ -1,4 +1,4 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
1
+ // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
2
2
 
3
3
  exports[`Atom/Table/Responsive TableResponsive smoke-test 1`] = `
4
4
  <div class="mx-page default">
@@ -11,8 +11,7 @@
11
11
 
12
12
  & :is(td, th) {
13
13
  padding: var(--spacing-xxs);
14
- border-block-end: var(--line-width, 1px) solid
15
- var(--line-colour, var(--colour-border));
14
+ border-block-end: var(--line-width, 1px) solid var(--line-colour, var(--colour-border));
16
15
  vertical-align: top;
17
16
  }
18
17
 
@@ -0,0 +1,62 @@
1
+ import { Meta, StoryObj } from "@storybook/html-vite"
2
+ import Component from "./text-style.twig"
3
+ import ExampleComponent from "./text-styles-example.twig"
4
+ import "../_base.css"
5
+ import { TextStyles } from "../../enums"
6
+
7
+ enum TextAlign {
8
+ LEFT = "mx-text--left",
9
+ RIGHT = "mx-text--right",
10
+ CENTER = "mx-text--center",
11
+ }
12
+
13
+ type TextProps = {
14
+ modifier?: TextStyles
15
+ alignment?: TextAlign
16
+ content: string
17
+ }
18
+
19
+ /**
20
+ * Demonstration of the text helper classes that are available to control typographic sizes.
21
+ */
22
+ const meta: Meta<TextProps> = {
23
+ tags: ["autodocs"],
24
+ component: Component,
25
+ args: {
26
+ content:
27
+ "In publishing and graphic design, lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document without relying on meaningful content (also called greeking). Replacing the actual content with placeholder text allows designers to design the form of the content before the content itself has been produced.",
28
+ },
29
+ argTypes: {
30
+ modifier: {
31
+ description: "Set the size of the text",
32
+ options: Object.values(TextStyles),
33
+ control: "select",
34
+ table: {
35
+ type: { summary: "enum" },
36
+ },
37
+ },
38
+ alignment: {
39
+ description: "Set the alignment of the text",
40
+ options: Object.values(TextAlign),
41
+ control: "select",
42
+ table: {
43
+ type: { summary: "enum" },
44
+ },
45
+ },
46
+ },
47
+ }
48
+
49
+ export default meta
50
+ type Story = StoryObj<TextProps>
51
+
52
+ export const Text: Story = {}
53
+
54
+ export const Center: Story = {
55
+ args: {
56
+ alignment: TextAlign.CENTER,
57
+ },
58
+ }
59
+
60
+ export const Example: Story = {
61
+ render: args => `<div class="mx-rich-text mx-vertical-flow">${ExampleComponent(args)}</div>`,
62
+ }
@@ -1,35 +1,22 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
1
+ // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
2
2
 
3
- exports[`Atom/Typography/Text Sizes Example smoke-test 1`] = `
3
+ exports[`Atom/Text Center smoke-test 1`] = `
4
4
  <div class="mx-page default">
5
- <div class="vertical-flow">
5
+ <div class="mx-rich-text mx-vertical-flow mx-section--narrow mx-text--center">
6
+ In publishing and graphic design, lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document without relying on meaningful content (also called greeking). Replacing the actual content with placeholder text allows designers to design the form of the content before the content itself has been produced.
7
+ </div>
8
+ </div>
9
+ `;
10
+
11
+ exports[`Atom/Text Example smoke-test 1`] = `
12
+ <div class="mx-page default">
13
+ <div class="mx-rich-text mx-vertical-flow">
6
14
  <p class="mx-text--embellished-headline">
7
15
  Embelished headline: Lorem ipsum dolor sit amet consectetur
8
16
  </p>
9
17
  <p class="mx-text--section-headline">
10
18
  Section headline: Lorem ipsum dolor sit amet consectetur
11
19
  </p>
12
- <h2 class="mx-headline">
13
- Headline: Lorem ipsum dolor sit amet consectetur
14
- </h2>
15
- <p class="mx-heading--xxl">
16
- Heading xxl: Lorem ipsum dolor sit amet consectetur
17
- </p>
18
- <p class="mx-heading--xl">
19
- Heading xl: Lorem ipsum dolor sit amet consectetur
20
- </p>
21
- <p class="mx-heading--l">
22
- Heading l: Lorem ipsum dolor sit amet consectetur
23
- </p>
24
- <p class="mx-heading--m">
25
- Heading m: Lorem ipsum dolor sit amet consectetur
26
- </p>
27
- <p class="mx-heading--s">
28
- Heading s: Lorem ipsum dolor sit amet consectetur
29
- </p>
30
- <p class="mx-heading--xs">
31
- Heading xs: Lorem ipsum dolor sit amet consectetur
32
- </p>
33
20
  <p class="mx-text--xxxl">
34
21
  Text xxxl: Lorem ipsum dolor sit amet consectetur
35
22
  </p>
@@ -58,10 +45,10 @@ exports[`Atom/Typography/Text Sizes Example smoke-test 1`] = `
58
45
  </div>
59
46
  `;
60
47
 
61
- exports[`Atom/Typography/Text Sizes TextSizes smoke-test 1`] = `
48
+ exports[`Atom/Text Text smoke-test 1`] = `
62
49
  <div class="mx-page default">
63
- <p class>
50
+ <div class="mx-rich-text mx-vertical-flow mx-section--narrow">
64
51
  In publishing and graphic design, lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document without relying on meaningful content (also called greeking). Replacing the actual content with placeholder text allows designers to design the form of the content before the content itself has been produced.
65
- </p>
52
+ </div>
66
53
  </div>
67
54
  `;
@@ -1,4 +1,4 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
1
+ // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
2
2
 
3
3
  exports[`Atom/Typography/Text Text smoke-test 1`] = `
4
4
  <p class>
@@ -26,9 +26,7 @@
26
26
  .mx-text--xxxl,
27
27
  .mx-text--fluid
28
28
  ) {
29
- --font-min: calc(
30
- var(--font-size) - var(--font-size) * var(--font-size-diff, 0.3)
31
- );
29
+ --font-min: calc(var(--font-size) - var(--font-size) * var(--font-size-diff, 0.3));
32
30
 
33
31
  font-size: clamp(
34
32
  max(var(--base-font-size), var(--font-min)),
@@ -71,7 +69,7 @@
71
69
  inline-size: var(--spacing-xxxl);
72
70
  block-size: 3px;
73
71
  background-color: var(--colour-primary);
74
- inset-block-start: var(--gap);
72
+ inset-block-end: -8px;
75
73
  }
76
74
  }
77
75
 
@@ -1 +1,11 @@
1
- <p class="{{ modifier }}">In publishing and graphic design, lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document without relying on meaningful content (also called greeking). Replacing the actual content with placeholder text allows designers to design the form of the content before the content itself has been produced.</p>
1
+ {% set classes = [
2
+ "mx-rich-text",
3
+ "mx-vertical-flow",
4
+ "mx-section--narrow",
5
+ modifier,
6
+ alignment
7
+ ] %}
8
+ {% set attributes = (attributes ?? create_attribute()).addClass(classes) %}
9
+ <div{{ attributes }}>
10
+ {{ content }}
11
+ </div>
@@ -1,22 +1,8 @@
1
- <div class="vertical-flow">
1
+
2
2
  <p class="mx-text--embellished-headline">Embelished headline: Lorem ipsum dolor sit amet consectetur</p>
3
3
 
4
4
  <p class="mx-text--section-headline">Section headline: Lorem ipsum dolor sit amet consectetur</p>
5
5
 
6
- <h2 class="mx-headline">Headline: Lorem ipsum dolor sit amet consectetur</h2>
7
-
8
- <p class="mx-heading--xxl">Heading xxl: Lorem ipsum dolor sit amet consectetur</p>
9
-
10
- <p class="mx-heading--xl">Heading xl: Lorem ipsum dolor sit amet consectetur</p>
11
-
12
- <p class="mx-heading--l">Heading l: Lorem ipsum dolor sit amet consectetur</p>
13
-
14
- <p class="mx-heading--m">Heading m: Lorem ipsum dolor sit amet consectetur</p>
15
-
16
- <p class="mx-heading--s">Heading s: Lorem ipsum dolor sit amet consectetur</p>
17
-
18
- <p class="mx-heading--xs">Heading xs: Lorem ipsum dolor sit amet consectetur</p>
19
-
20
6
  <p class="mx-text--xxxl">Text xxxl: Lorem ipsum dolor sit amet consectetur</p>
21
7
 
22
8
  <p class="mx-text--xxl">Text xxl: Lorem ipsum dolor sit amet consectetur</p>
@@ -32,4 +18,4 @@
32
18
  <p class="mx-text--s">Text s: Lorem ipsum dolor sit amet consectetur</p>
33
19
 
34
20
  <p class="mx-text--xs">Text xs: Lorem ipsum dolor sit amet consectetur</p>
35
- </div>
21
+
@@ -1,9 +1,11 @@
1
1
  import { Meta, StoryObj } from "@storybook/html-vite"
2
2
  import Component from "./video.twig"
3
- import "../_base.css"
3
+ import { Video as VideoType } from "@pnx-mixtape/ids-shape"
4
4
 
5
- const meta: Meta<typeof Component> = {
6
- title: "Atom/Video",
5
+ /**
6
+ * A simple video embed atom.
7
+ */
8
+ const meta: Meta<VideoType> = {
7
9
  tags: ["autodocs"],
8
10
  component: Component,
9
11
  args: {
@@ -13,6 +15,6 @@ const meta: Meta<typeof Component> = {
13
15
  }
14
16
 
15
17
  export default meta
16
- type Story = StoryObj<typeof meta>
18
+ type Story = StoryObj<VideoType>
17
19
 
18
20
  export const Video: Story = {}
@@ -4,11 +4,7 @@ import classNames from "classnames"
4
4
 
5
5
  type VideoProps = ComponentPropsWithoutRef<"iframe">
6
6
 
7
- const Video = ({
8
- title,
9
- className = null,
10
- ...props
11
- }: VideoProps): JSX.Element => (
7
+ const Video = ({ title, className = null, ...props }: VideoProps): JSX.Element => (
12
8
  <figure className={classNames("mx-video", className)}>
13
9
  <iframe title={title} {...props} />
14
10
  </figure>
@@ -1,4 +1,4 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
1
+ // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
2
2
 
3
3
  exports[`Atom/Video Video smoke-test 1`] = `
4
4
  <div class="mx-page default">
@@ -11,8 +11,7 @@
11
11
  margin: 0;
12
12
  opacity: 1;
13
13
  transition-property:
14
- opacity, color, background-color, border-color, transform, rotate,
15
- display, overlay;
14
+ opacity, color, background-color, border-color, transform, rotate, display, overlay;
16
15
  transition-duration: 0.5s;
17
16
  transition-timing-function: var(--ease);
18
17
  transition-behavior: allow-discrete;
@@ -27,8 +26,7 @@
27
26
  }
28
27
 
29
28
  :focus-visible {
30
- outline: var(--outline-size, 2px) var(--outline-style, solid)
31
- var(--outline-color, currentcolor);
29
+ outline: var(--outline-size, 2px) var(--outline-style, solid) var(--outline-color, currentcolor);
32
30
  outline-offset: var(--outline-offset, var(--outline-size, 2px));
33
31
  }
34
32
 
package/src/Atom/_hr.css CHANGED
@@ -3,8 +3,7 @@
3
3
  display: block;
4
4
  block-size: 0;
5
5
  border: 0;
6
- border-block-start: var(--line-width, 1px) solid
7
- var(--line-colour, var(--colour-border));
6
+ border-block-start: var(--line-width, 1px) solid var(--line-colour, var(--colour-border));
8
7
  margin-block: var(--line-gap, var(--spacing-m));
9
8
  }
10
9
  }
@@ -2,12 +2,11 @@ import { Meta, StoryObj } from "@storybook/html-vite"
2
2
  import Component from "./accordion.twig"
3
3
  import AccordionItem from "./accordion-item.twig"
4
4
  import Heading from "../../Atom/Heading/heading.twig"
5
+ import "./Elements/Accordion"
5
6
  import "./Elements/AccordionGroup"
7
+ import "./Elements/AccordionMobile"
6
8
  import "./accordion.css"
7
- import {
8
- Accordion as AccordionType,
9
- HeadingTypes,
10
- } from "@pnx-mixtape/ids-shape"
9
+ import { Accordion as AccordionType, HeadingTypes } from "@pnx-mixtape/ids-shape"
11
10
 
12
11
  const meta: Meta<AccordionType> = {
13
12
  tags: ["autodocs", "ids-mvp"],
@@ -31,10 +30,29 @@ const meta: Meta<AccordionType> = {
31
30
  ],
32
31
  },
33
32
  argTypes: {
34
- toggleAll: { control: "boolean" },
35
- // @ts-expect-error The controls follow the shape
36
- "title.title": { control: "text" },
37
- "title.as": { options: Object.values(HeadingTypes), control: "select" },
33
+ toggleAll: {
34
+ control: "boolean",
35
+ description: "Include the **Expand all / Collapse all** behaviour.",
36
+ table: { defaultValue: { summary: "false" } },
37
+ type: "boolean",
38
+ },
39
+ title: {
40
+ description:
41
+ "Optional [Heading](/?path=/docs/atom-heading--docs) component, displayed above the accordions.",
42
+ control: "text",
43
+ },
44
+ items: {
45
+ description:
46
+ "A list of [AccordionItem](/?path=/docs/component-accordion-accordionitem--docs) objects.",
47
+ type: {
48
+ name: "other",
49
+ required: true,
50
+ value: "array",
51
+ },
52
+ table: {
53
+ type: { summary: "AccordionItem[]" },
54
+ },
55
+ },
38
56
  },
39
57
  }
40
58
 
@@ -17,11 +17,10 @@ const meta: Meta<typeof Component> = {
17
17
  <AccordionTitleIcon />
18
18
  </AccordionTitle>
19
19
  <AccordionContent>
20
- I'm baby air plant hashtag letterpress blue bottle. Cloud bread
21
- dreamcatcher everyday carry lumbersexual, iceland cardigan swag
22
- chicharrones lo-fi fanny pack affogato freegan XOXO shaman. Shoreditch
23
- cloud bread waistcoat tbh XOXO. Chillwave pour-over umami pug glossier
24
- health goth.
20
+ I'm baby air plant hashtag letterpress blue bottle. Cloud bread dreamcatcher everyday
21
+ carry lumbersexual, iceland cardigan swag chicharrones lo-fi fanny pack affogato freegan
22
+ XOXO shaman. Shoreditch cloud bread waistcoat tbh XOXO. Chillwave pour-over umami pug
23
+ glossier health goth.
25
24
  </AccordionContent>
26
25
  </>
27
26
  ),
@@ -39,11 +38,10 @@ export const HeadingLevel: StoryObj<typeof meta> = {
39
38
  <AccordionTitleIcon />
40
39
  </AccordionTitle>
41
40
  <AccordionContent>
42
- I'm baby air plant hashtag letterpress blue bottle. Cloud bread
43
- dreamcatcher everyday carry lumbersexual, iceland cardigan swag
44
- chicharrones lo-fi fanny pack affogato freegan XOXO shaman. Shoreditch
45
- cloud bread waistcoat tbh XOXO. Chillwave pour-over umami pug glossier
46
- health goth.
41
+ I'm baby air plant hashtag letterpress blue bottle. Cloud bread dreamcatcher everyday
42
+ carry lumbersexual, iceland cardigan swag chicharrones lo-fi fanny pack affogato freegan
43
+ XOXO shaman. Shoreditch cloud bread waistcoat tbh XOXO. Chillwave pour-over umami pug
44
+ glossier health goth.
47
45
  </AccordionContent>
48
46
  </>
49
47
  ),
@@ -1,12 +1,4 @@
1
- import {
2
- JSX,
3
- PropsWithChildren,
4
- useEffect,
5
- useId,
6
- createContext,
7
- use,
8
- useMemo,
9
- } from "react"
1
+ import { JSX, PropsWithChildren, useEffect, useId, createContext, use, useMemo } from "react"
10
2
  import classNames from "classnames"
11
3
  import useToggle from "../../Utility/Hooks/useToggle"
12
4
 
@@ -40,10 +32,7 @@ const Accordion = ({
40
32
  }
41
33
  }, [accordionId])
42
34
 
43
- const values = useMemo(
44
- () => ({ on, toggle, id: accordionId }),
45
- [on, toggle, accordionId],
46
- )
35
+ const values = useMemo(() => ({ on, toggle, id: accordionId }), [on, toggle, accordionId])
47
36
 
48
37
  return (
49
38
  <AccordionContext value={values}>
@@ -0,0 +1,90 @@
1
+ import { Meta, StoryObj } from "@storybook/html-vite"
2
+ import Component from "./accordion-item.twig"
3
+ import AccordionMobile from "./twig/accordion-mobile.twig"
4
+ import AccordionDiv from "./twig/accordion-div.twig"
5
+
6
+ import "./Elements/Accordion"
7
+ import "./Elements/AccordionMobile"
8
+ import "./Elements/AccordionDiv"
9
+ import "./accordion.css"
10
+ import { AccordionItem as AccordionItemType } from "@pnx-mixtape/ids-shape"
11
+
12
+ /**
13
+ * An HTML Details based accordion.
14
+ * For extra features like anchor opening, include the `Accordion` custom element javascript.
15
+ */
16
+ const meta: Meta<AccordionItemType> = {
17
+ tags: ["autodocs", "ids-mvp"],
18
+ component: Component,
19
+ args: {
20
+ title: "Music",
21
+ content:
22
+ "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.",
23
+ id: "music-accordion",
24
+ open: false,
25
+ },
26
+ argTypes: {
27
+ title: {
28
+ description: "The accordion title, shown as the toggle",
29
+ control: "text",
30
+ type: {
31
+ name: "string",
32
+ required: true,
33
+ },
34
+ },
35
+ content: {
36
+ description: "Content.",
37
+ control: "text",
38
+ type: {
39
+ name: "string",
40
+ required: true,
41
+ },
42
+ table: { type: { summary: "WysiwygText" } },
43
+ },
44
+ id: {
45
+ description: "The AccordionItem id",
46
+ type: {
47
+ name: "string",
48
+ required: true,
49
+ },
50
+ },
51
+ open: {
52
+ description: "Option to set the accordion as open by default.",
53
+ type: "boolean",
54
+ table: {
55
+ defaultValue: { summary: "false" },
56
+ },
57
+ },
58
+ },
59
+ }
60
+
61
+ export default meta
62
+ type Story = StoryObj<AccordionItemType>
63
+
64
+ export const AccordionItem: Story = {}
65
+
66
+ /**
67
+ * Open by default accordion.
68
+ */
69
+ export const Open: Story = {
70
+ args: {
71
+ open: true,
72
+ id: "open-accordion-item",
73
+ },
74
+ }
75
+
76
+ /**
77
+ * A special version that is only collapsed on mobile viewports (used in the [Filters](/?path=/docs/component-filters--docs)).
78
+ * It requires the `AccordionMobile` custom element javascript, to toggle the `[open]` attributes based on viewport/resize.
79
+ */
80
+ export const MobileOnly: Story = {
81
+ render: args => AccordionMobile({ ...args }),
82
+ }
83
+
84
+ /**
85
+ * A variant which used a Div rather than the HTML Details elements (should be avoided).
86
+ * It requires the `AccordionDiv` custom element javascript.
87
+ */
88
+ export const Div: Story = {
89
+ render: args => AccordionDiv({ ...args }),
90
+ }
@@ -8,11 +8,7 @@ const AccordionContent = ({ children }: PropsWithChildren): JSX.Element => {
8
8
  <div
9
9
  role="region"
10
10
  aria-labelledby={id}
11
- className={classNames(
12
- "mx-accordion__content",
13
- "mx-rich-text",
14
- "mx-vertical-flow",
15
- )}
11
+ className={classNames("mx-accordion__content", "mx-rich-text", "mx-vertical-flow")}
16
12
  // @ts-expect-error inert is allowed.
17
13
  inert={!on ? "" : null}
18
14
  >
@@ -6,10 +6,7 @@ type AccordionTitleProps = PropsWithChildren & {
6
6
  headingLevel?: HeadingTypes
7
7
  }
8
8
 
9
- const AccordionTitle = ({
10
- children,
11
- headingLevel = null,
12
- }: AccordionTitleProps): JSX.Element => {
9
+ const AccordionTitle = ({ children, headingLevel = null }: AccordionTitleProps): JSX.Element => {
13
10
  const { id, on, toggle } = useAccordion()
14
11
  const Heading = headingLevel ? headingLevel : Fragment
15
12
 
@@ -73,7 +73,7 @@ export default class Accordion extends HTMLElement {
73
73
  }
74
74
  }
75
75
 
76
- customElements.define("mx-accordion", Accordion)
76
+ if (!customElements.get("mx-accordion")) customElements.define("mx-accordion", Accordion)
77
77
 
78
78
  declare global {
79
79
  interface HTMLElementTagNameMap {