@dta-au/civictheme-twig 1.13.1

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 (667) hide show
  1. package/assets/backgrounds/civictheme_background_1.png +0 -0
  2. package/assets/backgrounds/civictheme_background_2.png +0 -0
  3. package/assets/backgrounds/civictheme_background_3.png +0 -0
  4. package/assets/backgrounds/civictheme_background_4.png +0 -0
  5. package/assets/backgrounds/civictheme_background_5.png +0 -0
  6. package/assets/backgrounds/civictheme_background_6.png +0 -0
  7. package/assets/backgrounds/civictheme_background_7.png +0 -0
  8. package/assets/fonts/.gitkeep +0 -0
  9. package/assets/icons/account.svg +3 -0
  10. package/assets/icons/approve.svg +3 -0
  11. package/assets/icons/bars.svg +3 -0
  12. package/assets/icons/bullet.svg +3 -0
  13. package/assets/icons/calendar-1.svg +3 -0
  14. package/assets/icons/calendar-2.svg +3 -0
  15. package/assets/icons/call.svg +3 -0
  16. package/assets/icons/cancel.svg +3 -0
  17. package/assets/icons/checked.svg +4 -0
  18. package/assets/icons/close-outline.svg +3 -0
  19. package/assets/icons/close.svg +3 -0
  20. package/assets/icons/document.svg +4 -0
  21. package/assets/icons/down-arrow-1.svg +3 -0
  22. package/assets/icons/down-arrow-2.svg +3 -0
  23. package/assets/icons/download-file.svg +3 -0
  24. package/assets/icons/download.svg +3 -0
  25. package/assets/icons/exclamation-mark-1.svg +3 -0
  26. package/assets/icons/exclamation-mark-2.svg +3 -0
  27. package/assets/icons/exclamation-mark-3.svg +3 -0
  28. package/assets/icons/eye.svg +3 -0
  29. package/assets/icons/facebook.svg +3 -0
  30. package/assets/icons/help.svg +3 -0
  31. package/assets/icons/image.svg +5 -0
  32. package/assets/icons/information-mark.svg +3 -0
  33. package/assets/icons/instagram.svg +3 -0
  34. package/assets/icons/layer.svg +4 -0
  35. package/assets/icons/layers.svg +4 -0
  36. package/assets/icons/left-arrow-outline.svg +3 -0
  37. package/assets/icons/left-arrow.svg +3 -0
  38. package/assets/icons/linkedin.svg +3 -0
  39. package/assets/icons/lock-file.svg +4 -0
  40. package/assets/icons/lock-gallery.svg +4 -0
  41. package/assets/icons/magnifier.svg +3 -0
  42. package/assets/icons/map.svg +3 -0
  43. package/assets/icons/megaphone.svg +3 -0
  44. package/assets/icons/message.svg +3 -0
  45. package/assets/icons/mobile.svg +4 -0
  46. package/assets/icons/mortarboard.svg +3 -0
  47. package/assets/icons/newspaper.svg +3 -0
  48. package/assets/icons/open-source.svg +3 -0
  49. package/assets/icons/pdf-file.svg +4 -0
  50. package/assets/icons/progress.svg +3 -0
  51. package/assets/icons/right-arrow-1.svg +3 -0
  52. package/assets/icons/right-arrow-2.svg +3 -0
  53. package/assets/icons/select-box.svg +4 -0
  54. package/assets/icons/share.svg +3 -0
  55. package/assets/icons/square.svg +3 -0
  56. package/assets/icons/to-do.svg +3 -0
  57. package/assets/icons/twitter.svg +3 -0
  58. package/assets/icons/up-arrow.svg +3 -0
  59. package/assets/icons/upper-arrow.svg +3 -0
  60. package/assets/icons/upper-right-arrow.svg +3 -0
  61. package/assets/icons/users.svg +4 -0
  62. package/assets/icons/watch.svg +3 -0
  63. package/assets/icons/water-drop.svg +4 -0
  64. package/assets/icons/web.svg +4 -0
  65. package/assets/icons/word-file.svg +4 -0
  66. package/assets/icons/x.svg +3 -0
  67. package/assets/icons/youtube.svg +3 -0
  68. package/assets/logos/logo_custom_light_desktop_civictheme.svg +32 -0
  69. package/assets/logos/logo_custom_light_mobile_civictheme.svg +32 -0
  70. package/assets/logos/logo_primary_dark_desktop.png +0 -0
  71. package/assets/logos/logo_primary_dark_mobile.png +0 -0
  72. package/assets/logos/logo_primary_light_desktop.png +0 -0
  73. package/assets/logos/logo_primary_light_mobile.png +0 -0
  74. package/assets/logos/logo_secondary_dark_desktop.png +0 -0
  75. package/assets/logos/logo_secondary_dark_mobile.png +0 -0
  76. package/assets/logos/logo_secondary_light_desktop.png +0 -0
  77. package/assets/logos/logo_secondary_light_mobile.png +0 -0
  78. package/components/00-base/_variables.base.scss +482 -0
  79. package/components/00-base/_variables.components.scss +1315 -0
  80. package/components/00-base/about-civictheme/about-civictheme.stories.js +37 -0
  81. package/components/00-base/about-civictheme/about-civictheme.stories.scss +37 -0
  82. package/components/00-base/about-civictheme/about-civictheme.stories.twig +219 -0
  83. package/components/00-base/background/background.scss +12 -0
  84. package/components/00-base/background/background.stories.js +33 -0
  85. package/components/00-base/background/background.stories.scss +16 -0
  86. package/components/00-base/background/background.stories.twig +6 -0
  87. package/components/00-base/background/background.utils.js +23 -0
  88. package/components/00-base/collapsible/collapsible.js +452 -0
  89. package/components/00-base/collapsible/collapsible.scss +80 -0
  90. package/components/00-base/collapsible/collapsible.stories.js +17 -0
  91. package/components/00-base/collapsible/collapsible.stories.scss +38 -0
  92. package/components/00-base/collapsible/collapsible.stories.twig +497 -0
  93. package/components/00-base/collapsible/collapsible.test.js +186 -0
  94. package/components/00-base/colors/colors.stories.js +142 -0
  95. package/components/00-base/colors/colors.stories.scss +78 -0
  96. package/components/00-base/colors/colors.stories.twig +42 -0
  97. package/components/00-base/datetime/__snapshots__/datetime.test.js.snap +114 -0
  98. package/components/00-base/datetime/datetime.stories.js +47 -0
  99. package/components/00-base/datetime/datetime.test.js +75 -0
  100. package/components/00-base/datetime/datetime.twig +24 -0
  101. package/components/00-base/debug/_index.scss +24 -0
  102. package/components/00-base/elevation/elevation.stories.js +14 -0
  103. package/components/00-base/elevation/elevation.stories.scss +21 -0
  104. package/components/00-base/elevation/elevation.stories.twig +8 -0
  105. package/components/00-base/flex/_index.scss +37 -0
  106. package/components/00-base/flyout/flyout.js +207 -0
  107. package/components/00-base/flyout/flyout.scss +47 -0
  108. package/components/00-base/flyout/flyout.stories.js +34 -0
  109. package/components/00-base/flyout/flyout.stories.scss +38 -0
  110. package/components/00-base/flyout/flyout.stories.twig +101 -0
  111. package/components/00-base/fonts/_index.scss +15 -0
  112. package/components/00-base/fonts/fonts.stories.js +40 -0
  113. package/components/00-base/fonts/fonts.stories.scss +28 -0
  114. package/components/00-base/fonts/fonts.stories.twig +15 -0
  115. package/components/00-base/grid/__snapshots__/grid.test.js.snap +2113 -0
  116. package/components/00-base/grid/grid.scss +164 -0
  117. package/components/00-base/grid/grid.stories.js +570 -0
  118. package/components/00-base/grid/grid.stories.scss +184 -0
  119. package/components/00-base/grid/grid.test.js +386 -0
  120. package/components/00-base/grid/grid.twig +96 -0
  121. package/components/00-base/icon/__snapshots__/icon.test.js.snap +76 -0
  122. package/components/00-base/icon/icon.scss +21 -0
  123. package/components/00-base/icon/icon.stories.js +46 -0
  124. package/components/00-base/icon/icon.test.js +53 -0
  125. package/components/00-base/icon/icon.twig +35 -0
  126. package/components/00-base/icon/icon.utils.js +35 -0
  127. package/components/00-base/item-list/__snapshots__/item-list.test.js.snap +255 -0
  128. package/components/00-base/item-list/item-list.scss +66 -0
  129. package/components/00-base/item-list/item-list.stories.js +49 -0
  130. package/components/00-base/item-list/item-list.test.js +96 -0
  131. package/components/00-base/item-list/item-list.twig +35 -0
  132. package/components/00-base/layout/__snapshots__/layout.test.js.snap +520 -0
  133. package/components/00-base/layout/layout.js +97 -0
  134. package/components/00-base/layout/layout.scss +329 -0
  135. package/components/00-base/layout/layout.stories.data.js +22 -0
  136. package/components/00-base/layout/layout.stories.js +120 -0
  137. package/components/00-base/layout/layout.stories.scss +55 -0
  138. package/components/00-base/layout/layout.test.js +166 -0
  139. package/components/00-base/layout/layout.twig +115 -0
  140. package/components/00-base/menu/__snapshots__/menu.test.js.snap +1028 -0
  141. package/components/00-base/menu/menu.stories.js +107 -0
  142. package/components/00-base/menu/menu.stories.scss +11 -0
  143. package/components/00-base/menu/menu.test.js +231 -0
  144. package/components/00-base/menu/menu.twig +133 -0
  145. package/components/00-base/mixins/_background.scss +11 -0
  146. package/components/00-base/mixins/_breakpoint.scss +75 -0
  147. package/components/00-base/mixins/_button.scss +312 -0
  148. package/components/00-base/mixins/_color.scss +137 -0
  149. package/components/00-base/mixins/_component.scss +39 -0
  150. package/components/00-base/mixins/_content-link.scss +58 -0
  151. package/components/00-base/mixins/_content.scss +369 -0
  152. package/components/00-base/mixins/_cssgrid.scss +106 -0
  153. package/components/00-base/mixins/_debug.scss +29 -0
  154. package/components/00-base/mixins/_deprecations.scss +21 -0
  155. package/components/00-base/mixins/_disabled.scss +11 -0
  156. package/components/00-base/mixins/_elevation.scss +37 -0
  157. package/components/00-base/mixins/_font.scss +140 -0
  158. package/components/00-base/mixins/_form.scss +30 -0
  159. package/components/00-base/mixins/_generator.scss +35 -0
  160. package/components/00-base/mixins/_grid.scss +223 -0
  161. package/components/00-base/mixins/_highlight.scss +84 -0
  162. package/components/00-base/mixins/_icon.scss +118 -0
  163. package/components/00-base/mixins/_image.scss +149 -0
  164. package/components/00-base/mixins/_index.scss +25 -0
  165. package/components/00-base/mixins/_link.scss +163 -0
  166. package/components/00-base/mixins/_map.scss +90 -0
  167. package/components/00-base/mixins/_message.scss +11 -0
  168. package/components/00-base/mixins/_outline.scss +32 -0
  169. package/components/00-base/mixins/_particle.scss +40 -0
  170. package/components/00-base/mixins/_print.scss +26 -0
  171. package/components/00-base/mixins/_rem.scss +20 -0
  172. package/components/00-base/mixins/_reset.scss +85 -0
  173. package/components/00-base/mixins/_spacing.scss +57 -0
  174. package/components/00-base/mixins/_string.scss +76 -0
  175. package/components/00-base/mixins/_table.scss +254 -0
  176. package/components/00-base/mixins/_typography.scss +193 -0
  177. package/components/00-base/mixins/_visibility.scss +27 -0
  178. package/components/00-base/platform/platform.js +27 -0
  179. package/components/00-base/responsive/responsive.js +186 -0
  180. package/components/00-base/responsive/responsive.stories.js +17 -0
  181. package/components/00-base/responsive/responsive.stories.twig +121 -0
  182. package/components/00-base/scrollspy/scrollspy.js +36 -0
  183. package/components/00-base/scrollspy/scrollspy.scss +11 -0
  184. package/components/00-base/scrollspy/scrollspy.stories.js +18 -0
  185. package/components/00-base/scrollspy/scrollspy.stories.scss +51 -0
  186. package/components/00-base/scrollspy/scrollspy.stories.twig +9 -0
  187. package/components/00-base/skip-to-target/skip-to-target.js +27 -0
  188. package/components/00-base/spacing/spacing.scss +29 -0
  189. package/components/00-base/spacing/spacing.stories.js +16 -0
  190. package/components/00-base/spacing/spacing.stories.scss +51 -0
  191. package/components/00-base/spacing/spacing.stories.twig +64 -0
  192. package/components/00-base/storybook/storybook.container.utils.stories.scss +105 -0
  193. package/components/00-base/storybook/storybook.docs.utils.js +37 -0
  194. package/components/00-base/storybook/storybook.docs.utils.stories.scss +70 -0
  195. package/components/00-base/storybook/storybook.generators.utils.js +19 -0
  196. package/components/00-base/storybook/storybook.layout.utils.stories.scss +90 -0
  197. package/components/00-base/storybook/storybook.placeholder.utils.stories.scss +75 -0
  198. package/components/00-base/storybook/storybook.stories.scss +8 -0
  199. package/components/00-base/text-icon/text-icon.scss +9 -0
  200. package/components/00-base/text-icon/text-icon.stories.js +57 -0
  201. package/components/00-base/text-icon/text-icon.twig +81 -0
  202. package/components/00-base/typography/typography.scss +81 -0
  203. package/components/00-base/typography/typography.stories.js +17 -0
  204. package/components/00-base/typography/typography.stories.twig +228 -0
  205. package/components/00-base/variables.scss +41 -0
  206. package/components/00-base/visibility/_index.scss +42 -0
  207. package/components/00-base/welcome/welcome.stories.js +37 -0
  208. package/components/00-base/welcome/welcome.stories.scss +30 -0
  209. package/components/00-base/welcome/welcome.stories.twig +41 -0
  210. package/components/01-atoms/button/__snapshots__/button.test.js.snap +205 -0
  211. package/components/01-atoms/button/button.js +127 -0
  212. package/components/01-atoms/button/button.scss +82 -0
  213. package/components/01-atoms/button/button.stories.js +86 -0
  214. package/components/01-atoms/button/button.test.js +103 -0
  215. package/components/01-atoms/button/button.twig +82 -0
  216. package/components/01-atoms/checkbox/__snapshots__/checkbox.test.js.snap +65 -0
  217. package/components/01-atoms/checkbox/checkbox.scss +176 -0
  218. package/components/01-atoms/checkbox/checkbox.stories.js +63 -0
  219. package/components/01-atoms/checkbox/checkbox.test.js +67 -0
  220. package/components/01-atoms/checkbox/checkbox.twig +47 -0
  221. package/components/01-atoms/chip/__snapshots__/chip.test.js.snap +90 -0
  222. package/components/01-atoms/chip/chip.event.stories.js +25 -0
  223. package/components/01-atoms/chip/chip.js +104 -0
  224. package/components/01-atoms/chip/chip.scss +144 -0
  225. package/components/01-atoms/chip/chip.stories.js +74 -0
  226. package/components/01-atoms/chip/chip.test.js +53 -0
  227. package/components/01-atoms/chip/chip.twig +73 -0
  228. package/components/01-atoms/content-link/__snapshots__/content-link.test.js.snap +91 -0
  229. package/components/01-atoms/content-link/content-link.scss +16 -0
  230. package/components/01-atoms/content-link/content-link.stories.js +50 -0
  231. package/components/01-atoms/content-link/content-link.test.js +50 -0
  232. package/components/01-atoms/content-link/content-link.twig +40 -0
  233. package/components/01-atoms/field-description/__snapshots__/field-description.test.js.snap +49 -0
  234. package/components/01-atoms/field-description/field-description.scss +24 -0
  235. package/components/01-atoms/field-description/field-description.stories.js +41 -0
  236. package/components/01-atoms/field-description/field-description.test.js +51 -0
  237. package/components/01-atoms/field-description/field-description.twig +24 -0
  238. package/components/01-atoms/field-message/__snapshots__/field-message.test.js.snap +142 -0
  239. package/components/01-atoms/field-message/field-message.scss +108 -0
  240. package/components/01-atoms/field-message/field-message.stories.js +41 -0
  241. package/components/01-atoms/field-message/field-message.test.js +64 -0
  242. package/components/01-atoms/field-message/field-message.twig +37 -0
  243. package/components/01-atoms/fieldset/__snapshots__/fieldset.test.js.snap +358 -0
  244. package/components/01-atoms/fieldset/fieldset.scss +44 -0
  245. package/components/01-atoms/fieldset/fieldset.stories.js +79 -0
  246. package/components/01-atoms/fieldset/fieldset.test.js +102 -0
  247. package/components/01-atoms/fieldset/fieldset.twig +91 -0
  248. package/components/01-atoms/heading/__snapshots__/heading.test.js.snap +43 -0
  249. package/components/01-atoms/heading/heading.scss +13 -0
  250. package/components/01-atoms/heading/heading.stories.js +41 -0
  251. package/components/01-atoms/heading/heading.test.js +42 -0
  252. package/components/01-atoms/heading/heading.twig +24 -0
  253. package/components/01-atoms/iframe/__snapshots__/iframe.test.js.snap +34 -0
  254. package/components/01-atoms/iframe/iframe.scss +29 -0
  255. package/components/01-atoms/iframe/iframe.stories.js +53 -0
  256. package/components/01-atoms/iframe/iframe.test.js +37 -0
  257. package/components/01-atoms/iframe/iframe.twig +29 -0
  258. package/components/01-atoms/image/__snapshots__/image.test.js.snap +45 -0
  259. package/components/01-atoms/image/image.stories.js +48 -0
  260. package/components/01-atoms/image/image.test.js +45 -0
  261. package/components/01-atoms/image/image.twig +31 -0
  262. package/components/01-atoms/input/__snapshots__/input.test.js.snap +64 -0
  263. package/components/01-atoms/input/input.scss +112 -0
  264. package/components/01-atoms/input/input.stories.js +81 -0
  265. package/components/01-atoms/input/input.test.js +71 -0
  266. package/components/01-atoms/input/input.twig +38 -0
  267. package/components/01-atoms/label/__snapshots__/label.test.js.snap +69 -0
  268. package/components/01-atoms/label/label.scss +34 -0
  269. package/components/01-atoms/label/label.stories.js +65 -0
  270. package/components/01-atoms/label/label.test.js +76 -0
  271. package/components/01-atoms/label/label.twig +35 -0
  272. package/components/01-atoms/link/__snapshots__/link.test.js.snap +138 -0
  273. package/components/01-atoms/link/link.scss +53 -0
  274. package/components/01-atoms/link/link.stories.js +82 -0
  275. package/components/01-atoms/link/link.test.js +84 -0
  276. package/components/01-atoms/link/link.twig +62 -0
  277. package/components/01-atoms/paragraph/__snapshots__/paragraph.test.js.snap +36 -0
  278. package/components/01-atoms/paragraph/paragraph.scss +31 -0
  279. package/components/01-atoms/paragraph/paragraph.stories.js +45 -0
  280. package/components/01-atoms/paragraph/paragraph.test.js +40 -0
  281. package/components/01-atoms/paragraph/paragraph.twig +25 -0
  282. package/components/01-atoms/popover/__snapshots__/popover.test.js.snap +129 -0
  283. package/components/01-atoms/popover/popover.scss +44 -0
  284. package/components/01-atoms/popover/popover.stories.js +52 -0
  285. package/components/01-atoms/popover/popover.test.js +57 -0
  286. package/components/01-atoms/popover/popover.twig +69 -0
  287. package/components/01-atoms/radio/__snapshots__/radio.test.js.snap +83 -0
  288. package/components/01-atoms/radio/radio.scss +176 -0
  289. package/components/01-atoms/radio/radio.stories.js +64 -0
  290. package/components/01-atoms/radio/radio.test.js +76 -0
  291. package/components/01-atoms/radio/radio.twig +47 -0
  292. package/components/01-atoms/select/__snapshots__/select.test.js.snap +165 -0
  293. package/components/01-atoms/select/select.scss +105 -0
  294. package/components/01-atoms/select/select.stories.js +81 -0
  295. package/components/01-atoms/select/select.test.js +117 -0
  296. package/components/01-atoms/select/select.twig +63 -0
  297. package/components/01-atoms/table/__snapshots__/table.test.js.snap +206 -0
  298. package/components/01-atoms/table/table.js +79 -0
  299. package/components/01-atoms/table/table.scss +18 -0
  300. package/components/01-atoms/table/table.stories.js +129 -0
  301. package/components/01-atoms/table/table.test.js +60 -0
  302. package/components/01-atoms/table/table.twig +104 -0
  303. package/components/01-atoms/tag/__snapshots__/tag.test.js.snap +97 -0
  304. package/components/01-atoms/tag/tag.scss +63 -0
  305. package/components/01-atoms/tag/tag.stories.js +55 -0
  306. package/components/01-atoms/tag/tag.test.js +49 -0
  307. package/components/01-atoms/tag/tag.twig +74 -0
  308. package/components/01-atoms/textarea/__snapshots__/textarea.test.js.snap +64 -0
  309. package/components/01-atoms/textarea/textarea.scss +72 -0
  310. package/components/01-atoms/textarea/textarea.stories.js +64 -0
  311. package/components/01-atoms/textarea/textarea.test.js +68 -0
  312. package/components/01-atoms/textarea/textarea.twig +37 -0
  313. package/components/01-atoms/textfield/__snapshots__/textfield.test.js.snap +63 -0
  314. package/components/01-atoms/textfield/textfield.scss +70 -0
  315. package/components/01-atoms/textfield/textfield.stories.js +60 -0
  316. package/components/01-atoms/textfield/textfield.test.js +64 -0
  317. package/components/01-atoms/textfield/textfield.twig +37 -0
  318. package/components/01-atoms/video/__snapshots__/video.test.js.snap +75 -0
  319. package/components/01-atoms/video/video.stories.js +69 -0
  320. package/components/01-atoms/video/video.test.js +57 -0
  321. package/components/01-atoms/video/video.twig +59 -0
  322. package/components/02-molecules/accordion/__snapshots__/accordion.test.js.snap +651 -0
  323. package/components/02-molecules/accordion/accordion.scss +109 -0
  324. package/components/02-molecules/accordion/accordion.stories.js +73 -0
  325. package/components/02-molecules/accordion/accordion.test.js +84 -0
  326. package/components/02-molecules/accordion/accordion.twig +86 -0
  327. package/components/02-molecules/attachment/__snapshots__/attachment.test.js.snap +694 -0
  328. package/components/02-molecules/attachment/attachment.scss +54 -0
  329. package/components/02-molecules/attachment/attachment.stories.js +125 -0
  330. package/components/02-molecules/attachment/attachment.test.js +84 -0
  331. package/components/02-molecules/attachment/attachment.twig +139 -0
  332. package/components/02-molecules/back-to-top/__snapshots__/back-to-top.test.js.snap +172 -0
  333. package/components/02-molecules/back-to-top/back-to-top.scss +39 -0
  334. package/components/02-molecules/back-to-top/back-to-top.stories.js +26 -0
  335. package/components/02-molecules/back-to-top/back-to-top.stories.scss +20 -0
  336. package/components/02-molecules/back-to-top/back-to-top.stories.twig +6 -0
  337. package/components/02-molecules/back-to-top/back-to-top.test.js +31 -0
  338. package/components/02-molecules/back-to-top/back-to-top.twig +32 -0
  339. package/components/02-molecules/basic-content/__snapshots__/basic-content.test.js.snap +110 -0
  340. package/components/02-molecules/basic-content/basic-content.scss +39 -0
  341. package/components/02-molecules/basic-content/basic-content.stories.data.js +157 -0
  342. package/components/02-molecules/basic-content/basic-content.stories.js +56 -0
  343. package/components/02-molecules/basic-content/basic-content.test.js +59 -0
  344. package/components/02-molecules/basic-content/basic-content.twig +42 -0
  345. package/components/02-molecules/breadcrumb/__snapshots__/breadcrumb.test.js.snap +553 -0
  346. package/components/02-molecules/breadcrumb/breadcrumb.scss +23 -0
  347. package/components/02-molecules/breadcrumb/breadcrumb.stories.js +53 -0
  348. package/components/02-molecules/breadcrumb/breadcrumb.test.js +82 -0
  349. package/components/02-molecules/breadcrumb/breadcrumb.twig +85 -0
  350. package/components/02-molecules/callout/__snapshots__/callout.test.js.snap +384 -0
  351. package/components/02-molecules/callout/callout.scss +35 -0
  352. package/components/02-molecules/callout/callout.stories.js +70 -0
  353. package/components/02-molecules/callout/callout.test.js +73 -0
  354. package/components/02-molecules/callout/callout.twig +108 -0
  355. package/components/02-molecules/event-card/__snapshots__/event-card.test.js.snap +382 -0
  356. package/components/02-molecules/event-card/event-card.scss +153 -0
  357. package/components/02-molecules/event-card/event-card.stories.data.js +31 -0
  358. package/components/02-molecules/event-card/event-card.stories.js +68 -0
  359. package/components/02-molecules/event-card/event-card.test.js +74 -0
  360. package/components/02-molecules/event-card/event-card.twig +195 -0
  361. package/components/02-molecules/fast-fact-card/__snapshots__/fast-fact-card.test.js.snap +186 -0
  362. package/components/02-molecules/fast-fact-card/fast-fact-card.scss +104 -0
  363. package/components/02-molecules/fast-fact-card/fast-fact-card.stories.data.js +18 -0
  364. package/components/02-molecules/fast-fact-card/fast-fact-card.stories.js +44 -0
  365. package/components/02-molecules/fast-fact-card/fast-fact-card.test.js +90 -0
  366. package/components/02-molecules/fast-fact-card/fast-fact-card.twig +74 -0
  367. package/components/02-molecules/field/__snapshots__/field.test.js.snap +1526 -0
  368. package/components/02-molecules/field/field.scss +92 -0
  369. package/components/02-molecules/field/field.stories.data.js +52 -0
  370. package/components/02-molecules/field/field.stories.js +117 -0
  371. package/components/02-molecules/field/field.test.js +530 -0
  372. package/components/02-molecules/field/field.twig +206 -0
  373. package/components/02-molecules/figure/__snapshots__/figure.test.js.snap +104 -0
  374. package/components/02-molecules/figure/figure.scss +27 -0
  375. package/components/02-molecules/figure/figure.stories.js +52 -0
  376. package/components/02-molecules/figure/figure.test.js +60 -0
  377. package/components/02-molecules/figure/figure.twig +43 -0
  378. package/components/02-molecules/group-filter/__snapshots__/group-filter.test.js.snap +1466 -0
  379. package/components/02-molecules/group-filter/group-filter.js +33 -0
  380. package/components/02-molecules/group-filter/group-filter.scss +111 -0
  381. package/components/02-molecules/group-filter/group-filter.stories.data.js +83 -0
  382. package/components/02-molecules/group-filter/group-filter.stories.js +81 -0
  383. package/components/02-molecules/group-filter/group-filter.test.js +104 -0
  384. package/components/02-molecules/group-filter/group-filter.twig +192 -0
  385. package/components/02-molecules/inline-filter/inline-filter.scss +58 -0
  386. package/components/02-molecules/inline-filter/inline-filter.stories.data.js +24 -0
  387. package/components/02-molecules/inline-filter/inline-filter.stories.js +52 -0
  388. package/components/02-molecules/inline-filter/inline-filter.twig +48 -0
  389. package/components/02-molecules/logo/__snapshots__/logo.test.js.snap +191 -0
  390. package/components/02-molecules/logo/logo.scss +60 -0
  391. package/components/02-molecules/logo/logo.stories.data.js +34 -0
  392. package/components/02-molecules/logo/logo.stories.js +56 -0
  393. package/components/02-molecules/logo/logo.test.js +111 -0
  394. package/components/02-molecules/logo/logo.twig +71 -0
  395. package/components/02-molecules/logo/logo.utils.js +57 -0
  396. package/components/02-molecules/map/__snapshots__/map.test.js.snap +310 -0
  397. package/components/02-molecules/map/map.scss +35 -0
  398. package/components/02-molecules/map/map.stories.js +65 -0
  399. package/components/02-molecules/map/map.test.js +78 -0
  400. package/components/02-molecules/map/map.twig +86 -0
  401. package/components/02-molecules/navigation-card/__snapshots__/navigation-card.test.js.snap +507 -0
  402. package/components/02-molecules/navigation-card/navigation-card.scss +164 -0
  403. package/components/02-molecules/navigation-card/navigation-card.stories.data.js +26 -0
  404. package/components/02-molecules/navigation-card/navigation-card.stories.js +64 -0
  405. package/components/02-molecules/navigation-card/navigation-card.test.js +146 -0
  406. package/components/02-molecules/navigation-card/navigation-card.twig +165 -0
  407. package/components/02-molecules/next-step/__snapshots__/next-step.test.js.snap +331 -0
  408. package/components/02-molecules/next-step/next-step.scss +46 -0
  409. package/components/02-molecules/next-step/next-step.stories.js +61 -0
  410. package/components/02-molecules/next-step/next-step.test.js +74 -0
  411. package/components/02-molecules/next-step/next-step.twig +104 -0
  412. package/components/02-molecules/pagination/__snapshots__/pagination.test.js.snap +863 -0
  413. package/components/02-molecules/pagination/pagination.scss +103 -0
  414. package/components/02-molecules/pagination/pagination.stories.data.js +55 -0
  415. package/components/02-molecules/pagination/pagination.stories.js +56 -0
  416. package/components/02-molecules/pagination/pagination.test.js +121 -0
  417. package/components/02-molecules/pagination/pagination.twig +177 -0
  418. package/components/02-molecules/promo-card/__snapshots__/promo-card.test.js.snap +407 -0
  419. package/components/02-molecules/promo-card/promo-card.scss +149 -0
  420. package/components/02-molecules/promo-card/promo-card.stories.data.js +32 -0
  421. package/components/02-molecules/promo-card/promo-card.stories.js +62 -0
  422. package/components/02-molecules/promo-card/promo-card.test.js +98 -0
  423. package/components/02-molecules/promo-card/promo-card.twig +198 -0
  424. package/components/02-molecules/publication-card/__snapshots__/publication-card.test.js.snap +342 -0
  425. package/components/02-molecules/publication-card/publication-card.scss +148 -0
  426. package/components/02-molecules/publication-card/publication-card.stories.js +83 -0
  427. package/components/02-molecules/publication-card/publication-card.test.js +113 -0
  428. package/components/02-molecules/publication-card/publication-card.twig +162 -0
  429. package/components/02-molecules/search/__snapshots__/search.test.js.snap +161 -0
  430. package/components/02-molecules/search/search.scss +74 -0
  431. package/components/02-molecules/search/search.stories.js +40 -0
  432. package/components/02-molecules/search/search.test.js +58 -0
  433. package/components/02-molecules/search/search.twig +33 -0
  434. package/components/02-molecules/service-card/__snapshots__/service-card.test.js.snap +324 -0
  435. package/components/02-molecules/service-card/service-card.scss +42 -0
  436. package/components/02-molecules/service-card/service-card.stories.js +65 -0
  437. package/components/02-molecules/service-card/service-card.test.js +91 -0
  438. package/components/02-molecules/service-card/service-card.twig +89 -0
  439. package/components/02-molecules/single-filter/__snapshots__/single-filter.test.js.snap +694 -0
  440. package/components/02-molecules/single-filter/single-filter.js +33 -0
  441. package/components/02-molecules/single-filter/single-filter.scss +70 -0
  442. package/components/02-molecules/single-filter/single-filter.stories.data.js +35 -0
  443. package/components/02-molecules/single-filter/single-filter.stories.js +53 -0
  444. package/components/02-molecules/single-filter/single-filter.test.js +102 -0
  445. package/components/02-molecules/single-filter/single-filter.twig +139 -0
  446. package/components/02-molecules/snippet/__snapshots__/snippet.test.js.snap +367 -0
  447. package/components/02-molecules/snippet/snippet.scss +60 -0
  448. package/components/02-molecules/snippet/snippet.stories.data.js +20 -0
  449. package/components/02-molecules/snippet/snippet.stories.js +50 -0
  450. package/components/02-molecules/snippet/snippet.test.js +108 -0
  451. package/components/02-molecules/snippet/snippet.twig +109 -0
  452. package/components/02-molecules/social-links/__snapshots__/social-links.test.js.snap +311 -0
  453. package/components/02-molecules/social-links/social-links.scss +23 -0
  454. package/components/02-molecules/social-links/social-links.stories.js +77 -0
  455. package/components/02-molecules/social-links/social-links.test.js +82 -0
  456. package/components/02-molecules/social-links/social-links.twig +58 -0
  457. package/components/02-molecules/subject-card/__snapshots__/subject-card.test.js.snap +219 -0
  458. package/components/02-molecules/subject-card/subject-card.scss +112 -0
  459. package/components/02-molecules/subject-card/subject-card.stories.js +58 -0
  460. package/components/02-molecules/subject-card/subject-card.test.js +102 -0
  461. package/components/02-molecules/subject-card/subject-card.twig +81 -0
  462. package/components/02-molecules/table-of-contents/table-of-contents.js +152 -0
  463. package/components/02-molecules/table-of-contents/table-of-contents.scss +115 -0
  464. package/components/02-molecules/table-of-contents/table-of-contents.stories.js +88 -0
  465. package/components/02-molecules/table-of-contents/table-of-contents.twig +63 -0
  466. package/components/02-molecules/tabs/__snapshots__/tabs.test.js.snap +346 -0
  467. package/components/02-molecules/tabs/tabs.js +75 -0
  468. package/components/02-molecules/tabs/tabs.scss +66 -0
  469. package/components/02-molecules/tabs/tabs.stories.js +80 -0
  470. package/components/02-molecules/tabs/tabs.test.js +75 -0
  471. package/components/02-molecules/tabs/tabs.twig +81 -0
  472. package/components/02-molecules/tag-list/__snapshots__/tag-list.test.js.snap +255 -0
  473. package/components/02-molecules/tag-list/tag-list.stories.js +53 -0
  474. package/components/02-molecules/tag-list/tag-list.test.js +64 -0
  475. package/components/02-molecules/tag-list/tag-list.twig +68 -0
  476. package/components/02-molecules/tooltip/__snapshots__/tooltip.test.js.snap +321 -0
  477. package/components/02-molecules/tooltip/tooltip.js +143 -0
  478. package/components/02-molecules/tooltip/tooltip.scss +165 -0
  479. package/components/02-molecules/tooltip/tooltip.stories.js +59 -0
  480. package/components/02-molecules/tooltip/tooltip.test.js +59 -0
  481. package/components/02-molecules/tooltip/tooltip.twig +48 -0
  482. package/components/02-molecules/video-player/__snapshots__/video-player.test.js.snap +244 -0
  483. package/components/02-molecules/video-player/video-player.scss +75 -0
  484. package/components/02-molecules/video-player/video-player.stories.js +180 -0
  485. package/components/02-molecules/video-player/video-player.test.js +81 -0
  486. package/components/02-molecules/video-player/video-player.twig +130 -0
  487. package/components/03-organisms/alert/__snapshots__/alert.test.js.snap +356 -0
  488. package/components/03-organisms/alert/alert.js +268 -0
  489. package/components/03-organisms/alert/alert.scss +90 -0
  490. package/components/03-organisms/alert/alert.stories.js +104 -0
  491. package/components/03-organisms/alert/alert.test.js +59 -0
  492. package/components/03-organisms/alert/alert.twig +76 -0
  493. package/components/03-organisms/banner/__snapshots__/banner.test.js.snap +621 -0
  494. package/components/03-organisms/banner/banner.scss +118 -0
  495. package/components/03-organisms/banner/banner.stories.data.js +88 -0
  496. package/components/03-organisms/banner/banner.stories.js +87 -0
  497. package/components/03-organisms/banner/banner.test.js +94 -0
  498. package/components/03-organisms/banner/banner.twig +218 -0
  499. package/components/03-organisms/campaign/__snapshots__/campaign.test.js.snap +489 -0
  500. package/components/03-organisms/campaign/campaign.scss +64 -0
  501. package/components/03-organisms/campaign/campaign.stories.js +92 -0
  502. package/components/03-organisms/campaign/campaign.test.js +81 -0
  503. package/components/03-organisms/campaign/campaign.twig +152 -0
  504. package/components/03-organisms/footer/__snapshots__/footer.test.js.snap +354 -0
  505. package/components/03-organisms/footer/footer.scss +114 -0
  506. package/components/03-organisms/footer/footer.stories.data.js +42 -0
  507. package/components/03-organisms/footer/footer.stories.js +75 -0
  508. package/components/03-organisms/footer/footer.test.js +85 -0
  509. package/components/03-organisms/footer/footer.twig +157 -0
  510. package/components/03-organisms/header/__snapshots__/header.test.js.snap +411 -0
  511. package/components/03-organisms/header/header.scss +59 -0
  512. package/components/03-organisms/header/header.stories.data.js +132 -0
  513. package/components/03-organisms/header/header.stories.js +78 -0
  514. package/components/03-organisms/header/header.test.js +72 -0
  515. package/components/03-organisms/header/header.twig +141 -0
  516. package/components/03-organisms/list/__snapshots__/list.test.js.snap +454 -0
  517. package/components/03-organisms/list/list.scss +83 -0
  518. package/components/03-organisms/list/list.stories.data.js +98 -0
  519. package/components/03-organisms/list/list.stories.js +223 -0
  520. package/components/03-organisms/list/list.test.js +93 -0
  521. package/components/03-organisms/list/list.twig +263 -0
  522. package/components/03-organisms/message/__snapshots__/message.test.js.snap +517 -0
  523. package/components/03-organisms/message/message.scss +69 -0
  524. package/components/03-organisms/message/message.stories.js +58 -0
  525. package/components/03-organisms/message/message.test.js +158 -0
  526. package/components/03-organisms/message/message.twig +69 -0
  527. package/components/03-organisms/mobile-navigation/__snapshots__/mobile-navigation.test.js.snap +928 -0
  528. package/components/03-organisms/mobile-navigation/mobile-navigation-close.twig +31 -0
  529. package/components/03-organisms/mobile-navigation/mobile-navigation-menu.twig +138 -0
  530. package/components/03-organisms/mobile-navigation/mobile-navigation-trigger.twig +28 -0
  531. package/components/03-organisms/mobile-navigation/mobile-navigation.scss +236 -0
  532. package/components/03-organisms/mobile-navigation/mobile-navigation.stories.js +123 -0
  533. package/components/03-organisms/mobile-navigation/mobile-navigation.stories.scss +21 -0
  534. package/components/03-organisms/mobile-navigation/mobile-navigation.test.js +143 -0
  535. package/components/03-organisms/mobile-navigation/mobile-navigation.twig +86 -0
  536. package/components/03-organisms/navigation/__snapshots__/navigation.test.js.snap +561 -0
  537. package/components/03-organisms/navigation/navigation.scss +433 -0
  538. package/components/03-organisms/navigation/navigation.stories.data.js +60 -0
  539. package/components/03-organisms/navigation/navigation.stories.js +58 -0
  540. package/components/03-organisms/navigation/navigation.test.js +122 -0
  541. package/components/03-organisms/navigation/navigation.twig +106 -0
  542. package/components/03-organisms/promo/__snapshots__/promo.test.js.snap +415 -0
  543. package/components/03-organisms/promo/promo.scss +65 -0
  544. package/components/03-organisms/promo/promo.stories.js +70 -0
  545. package/components/03-organisms/promo/promo.test.js +125 -0
  546. package/components/03-organisms/promo/promo.twig +113 -0
  547. package/components/03-organisms/side-navigation/__snapshots__/side-navigation.test.js.snap +393 -0
  548. package/components/03-organisms/side-navigation/side-navigation.scss +215 -0
  549. package/components/03-organisms/side-navigation/side-navigation.stories.data.js +54 -0
  550. package/components/03-organisms/side-navigation/side-navigation.stories.js +39 -0
  551. package/components/03-organisms/side-navigation/side-navigation.test.js +87 -0
  552. package/components/03-organisms/side-navigation/side-navigation.twig +54 -0
  553. package/components/03-organisms/skip-link/__snapshots__/skip-link.test.js.snap +94 -0
  554. package/components/03-organisms/skip-link/skip-link.scss +28 -0
  555. package/components/03-organisms/skip-link/skip-link.stories.js +42 -0
  556. package/components/03-organisms/skip-link/skip-link.test.js +48 -0
  557. package/components/03-organisms/skip-link/skip-link.twig +31 -0
  558. package/components/03-organisms/slider/__snapshots__/slide.test.js.snap +265 -0
  559. package/components/03-organisms/slider/__snapshots__/slider.test.js.snap +638 -0
  560. package/components/03-organisms/slider/slide.test.js +55 -0
  561. package/components/03-organisms/slider/slide.twig +168 -0
  562. package/components/03-organisms/slider/slider.js +159 -0
  563. package/components/03-organisms/slider/slider.scss +158 -0
  564. package/components/03-organisms/slider/slider.stories.js +90 -0
  565. package/components/03-organisms/slider/slider.test.js +84 -0
  566. package/components/03-organisms/slider/slider.twig +116 -0
  567. package/components/03-organisms/webform/__snapshots__/webform.test.js.snap +145 -0
  568. package/components/03-organisms/webform/webform.js +36 -0
  569. package/components/03-organisms/webform/webform.scss +17 -0
  570. package/components/03-organisms/webform/webform.stories.js +45 -0
  571. package/components/03-organisms/webform/webform.test.js +63 -0
  572. package/components/03-organisms/webform/webform.twig +33 -0
  573. package/components/04-templates/event/.gitkeep +0 -0
  574. package/components/04-templates/page/__snapshots__/page.test.js.snap +1503 -0
  575. package/components/04-templates/page/page.scss +11 -0
  576. package/components/04-templates/page/page.stories.data.js +166 -0
  577. package/components/04-templates/page/page.stories.js +163 -0
  578. package/components/04-templates/page/page.test.js +170 -0
  579. package/components/04-templates/page/page.twig +138 -0
  580. package/components/style.css_variables.scss +129 -0
  581. package/components/style.scss +13 -0
  582. package/components/style.stories.scss +15 -0
  583. package/components/variables.base.scss +33 -0
  584. package/components/variables.components.scss +6 -0
  585. package/dist/assets/backgrounds/civictheme_background_1.png +0 -0
  586. package/dist/assets/backgrounds/civictheme_background_2.png +0 -0
  587. package/dist/assets/backgrounds/civictheme_background_3.png +0 -0
  588. package/dist/assets/backgrounds/civictheme_background_4.png +0 -0
  589. package/dist/assets/backgrounds/civictheme_background_5.png +0 -0
  590. package/dist/assets/backgrounds/civictheme_background_6.png +0 -0
  591. package/dist/assets/backgrounds/civictheme_background_7.png +0 -0
  592. package/dist/assets/icons/account.svg +3 -0
  593. package/dist/assets/icons/approve.svg +3 -0
  594. package/dist/assets/icons/bars.svg +3 -0
  595. package/dist/assets/icons/bullet.svg +3 -0
  596. package/dist/assets/icons/calendar-1.svg +3 -0
  597. package/dist/assets/icons/calendar-2.svg +3 -0
  598. package/dist/assets/icons/call.svg +3 -0
  599. package/dist/assets/icons/cancel.svg +3 -0
  600. package/dist/assets/icons/checked.svg +4 -0
  601. package/dist/assets/icons/close-outline.svg +3 -0
  602. package/dist/assets/icons/close.svg +3 -0
  603. package/dist/assets/icons/document.svg +4 -0
  604. package/dist/assets/icons/down-arrow-1.svg +3 -0
  605. package/dist/assets/icons/down-arrow-2.svg +3 -0
  606. package/dist/assets/icons/download-file.svg +3 -0
  607. package/dist/assets/icons/download.svg +3 -0
  608. package/dist/assets/icons/exclamation-mark-1.svg +3 -0
  609. package/dist/assets/icons/exclamation-mark-2.svg +3 -0
  610. package/dist/assets/icons/exclamation-mark-3.svg +3 -0
  611. package/dist/assets/icons/eye.svg +3 -0
  612. package/dist/assets/icons/facebook.svg +3 -0
  613. package/dist/assets/icons/help.svg +3 -0
  614. package/dist/assets/icons/image.svg +5 -0
  615. package/dist/assets/icons/information-mark.svg +3 -0
  616. package/dist/assets/icons/instagram.svg +3 -0
  617. package/dist/assets/icons/layer.svg +4 -0
  618. package/dist/assets/icons/layers.svg +4 -0
  619. package/dist/assets/icons/left-arrow-outline.svg +3 -0
  620. package/dist/assets/icons/left-arrow.svg +3 -0
  621. package/dist/assets/icons/linkedin.svg +3 -0
  622. package/dist/assets/icons/lock-file.svg +4 -0
  623. package/dist/assets/icons/lock-gallery.svg +4 -0
  624. package/dist/assets/icons/magnifier.svg +3 -0
  625. package/dist/assets/icons/map.svg +3 -0
  626. package/dist/assets/icons/megaphone.svg +3 -0
  627. package/dist/assets/icons/message.svg +3 -0
  628. package/dist/assets/icons/mobile.svg +4 -0
  629. package/dist/assets/icons/mortarboard.svg +3 -0
  630. package/dist/assets/icons/newspaper.svg +3 -0
  631. package/dist/assets/icons/open-source.svg +3 -0
  632. package/dist/assets/icons/pdf-file.svg +4 -0
  633. package/dist/assets/icons/progress.svg +3 -0
  634. package/dist/assets/icons/right-arrow-1.svg +3 -0
  635. package/dist/assets/icons/right-arrow-2.svg +3 -0
  636. package/dist/assets/icons/select-box.svg +4 -0
  637. package/dist/assets/icons/share.svg +3 -0
  638. package/dist/assets/icons/square.svg +3 -0
  639. package/dist/assets/icons/to-do.svg +3 -0
  640. package/dist/assets/icons/twitter.svg +3 -0
  641. package/dist/assets/icons/up-arrow.svg +3 -0
  642. package/dist/assets/icons/upper-arrow.svg +3 -0
  643. package/dist/assets/icons/upper-right-arrow.svg +3 -0
  644. package/dist/assets/icons/users.svg +4 -0
  645. package/dist/assets/icons/watch.svg +3 -0
  646. package/dist/assets/icons/water-drop.svg +4 -0
  647. package/dist/assets/icons/web.svg +4 -0
  648. package/dist/assets/icons/word-file.svg +4 -0
  649. package/dist/assets/icons/x.svg +3 -0
  650. package/dist/assets/icons/youtube.svg +3 -0
  651. package/dist/assets/logos/logo_custom_light_desktop_civictheme.svg +32 -0
  652. package/dist/assets/logos/logo_custom_light_mobile_civictheme.svg +32 -0
  653. package/dist/assets/logos/logo_primary_dark_desktop.png +0 -0
  654. package/dist/assets/logos/logo_primary_dark_mobile.png +0 -0
  655. package/dist/assets/logos/logo_primary_light_desktop.png +0 -0
  656. package/dist/assets/logos/logo_primary_light_mobile.png +0 -0
  657. package/dist/assets/logos/logo_secondary_dark_desktop.png +0 -0
  658. package/dist/assets/logos/logo_secondary_dark_mobile.png +0 -0
  659. package/dist/assets/logos/logo_secondary_light_desktop.png +0 -0
  660. package/dist/assets/logos/logo_secondary_light_mobile.png +0 -0
  661. package/dist/civictheme.css +12303 -0
  662. package/dist/civictheme.stories.css +2807 -0
  663. package/dist/civictheme.storybook.css +12303 -0
  664. package/dist/civictheme.storybook.js +4122 -0
  665. package/dist/civictheme.variables.css +1148 -0
  666. package/dist/constants.json +1562 -0
  667. package/package.json +80 -0
@@ -0,0 +1,497 @@
1
+ {#
2
+ /**
3
+ * @file
4
+ * Collapsible story template.
5
+ */
6
+ #}
7
+
8
+ <div class="story-container">
9
+ <div class="story-container__title">Initially expanded</div>
10
+
11
+ <div data-collapsible>
12
+ <div data-collapsible-trigger>
13
+ TRIGGER (click me)
14
+ </div>
15
+ <div data-collapsible-panel>
16
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
17
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
18
+ Accusamus
19
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
20
+ quibusdam quis repudiandae veritatis.
21
+ </div>
22
+ </div>
23
+ </div>
24
+
25
+ <div class="story-container">
26
+ <div class="story-container__title">Initially collapsed</div>
27
+
28
+ <div data-collapsible data-collapsible-collapsed>
29
+ <div data-collapsible-trigger>
30
+ TRIGGER (click me)
31
+ </div>
32
+ <div data-collapsible-panel>
33
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
34
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
35
+ Accusamus
36
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
37
+ quibusdam quis repudiandae veritatis.
38
+ </div>
39
+ </div>
40
+ </div>
41
+
42
+ <div class="story-container">
43
+ <div class="story-container__title">Long animation</div>
44
+
45
+ <div data-collapsible data-collapsible-collapsed data-collapsible-duration="2000">
46
+ <div data-collapsible-trigger>
47
+ TRIGGER (click me)
48
+ </div>
49
+ <div data-collapsible-panel>
50
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
51
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
52
+ Accusamus
53
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
54
+ quibusdam quis repudiandae veritatis.
55
+ </div>
56
+ </div>
57
+ </div>
58
+
59
+ <div class="story-container">
60
+ <div class="story-container__title">No animation</div>
61
+
62
+ <div data-collapsible data-collapsible-collapsed data-collapsible-duration="0">
63
+ <div data-collapsible-trigger>
64
+ TRIGGER (click me)
65
+ </div>
66
+ <div data-collapsible-panel>
67
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
68
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
69
+ Accusamus
70
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
71
+ quibusdam quis repudiandae veritatis.
72
+ </div>
73
+ </div>
74
+ </div>
75
+
76
+ <div class="story-container">
77
+ <div class="story-container__title">Minimal data attributes</div>
78
+
79
+ <div data-collapsible>
80
+ <div>
81
+ TRIGGER (click me)
82
+ </div>
83
+ <div>
84
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
85
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
86
+ Accusamus
87
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
88
+ quibusdam quis repudiandae veritatis.
89
+ </div>
90
+ </div>
91
+ </div>
92
+
93
+ <div class="story-container">
94
+ <div class="story-container__title">No trigger icon</div>
95
+
96
+ <div data-collapsible>
97
+ <div data-collapsible-trigger>
98
+ TRIGGER (click me)
99
+ </div>
100
+ <div data-collapsible-panel data-collapsible-trigger-no-icon>
101
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
102
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
103
+ Accusamus
104
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
105
+ quibusdam quis repudiandae veritatis.
106
+ </div>
107
+ </div>
108
+ </div>
109
+
110
+ <div class="story-container">
111
+ <div class="story-container__title">Trigger icon which wraps with last word</div>
112
+
113
+ <div data-collapsible data-collapsible-icon-group>
114
+ <div data-collapsible-trigger>
115
+ TRIGGER with long text Lorem ipsum est in labore do laboris dolor dolor labore labore do dolor adipisicing.
116
+ </div>
117
+ <div data-collapsible-panel>
118
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
119
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
120
+ Accusamus
121
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
122
+ quibusdam quis repudiandae veritatis.
123
+ </div>
124
+ </div>
125
+ </div>
126
+
127
+ <div class="story-container">
128
+ <div class="story-container__title">Wide trigger icon</div>
129
+
130
+ <div data-collapsible data-collapsible-trigger-wide>
131
+ <div>
132
+ TRIGGER (click me)
133
+ </div>
134
+ <div>
135
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
136
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
137
+ Accusamus
138
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
139
+ quibusdam quis repudiandae veritatis.
140
+ </div>
141
+ </div>
142
+ </div>
143
+
144
+ <div class="story-container">
145
+ <div class="story-container__title">Themed</div>
146
+
147
+ <div data-collapsible class="{{ theme_class }}">
148
+ <div>
149
+ TRIGGER (click me)
150
+ </div>
151
+ <div>
152
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
153
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
154
+ Accusamus
155
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
156
+ quibusdam quis repudiandae veritatis.
157
+ </div>
158
+ </div>
159
+ </div>
160
+
161
+ <div class="story-container">
162
+ <div class="story-container__title">Trigger is a link - Initially expanded</div>
163
+
164
+ <div data-collapsible>
165
+ <a href="#" data-collapsible-trigger>
166
+ TRIGGER (click me)
167
+ </a>
168
+ <div data-collapsible-panel>
169
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
170
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
171
+ Accusamus
172
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
173
+ quibusdam quis repudiandae veritatis.
174
+ </div>
175
+ </div>
176
+ </div>
177
+
178
+ <div class="story-container">
179
+ <div class="story-container__title">Trigger is a button - Initially expanded</div>
180
+
181
+ <div data-collapsible>
182
+ <button data-collapsible-trigger>
183
+ TRIGGER (click me)
184
+ </button>
185
+ <div data-collapsible-panel>
186
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
187
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
188
+ Accusamus
189
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
190
+ quibusdam quis repudiandae veritatis.
191
+ </div>
192
+ </div>
193
+ </div>
194
+
195
+ <div class="story-container">
196
+ <div class="story-container__title">Inline trigger</div>
197
+
198
+ <div data-collapsible>
199
+ <span data-collapsible-trigger>
200
+ TRIGGER (click me)
201
+ </span>
202
+ <div data-collapsible-panel>
203
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
204
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
205
+ Accusamus
206
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
207
+ quibusdam quis repudiandae veritatis.
208
+ </div>
209
+ </div>
210
+ </div>
211
+
212
+ <div class="story-container" style="height: 300px">
213
+ <div class="story-container__title">Absolute panel</div>
214
+
215
+ <div data-collapsible style="position: relative">
216
+ <span data-collapsible-trigger>
217
+ TRIGGER (click me)
218
+ </span>
219
+ <div data-collapsible-panel style="position: absolute; background-color: rgba(200,200,200, 0.8);">
220
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
221
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
222
+ Accusamus
223
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
224
+ quibusdam quis repudiandae veritatis.
225
+ </div>
226
+ </div>
227
+
228
+ Text behind absolutely positioned panel.
229
+ </div>
230
+
231
+ <div class="story-container story-menu-multiple-inline-with-absolute-panels" style="height: 300px">
232
+ <div class="story-container__title">
233
+ Multiple inline with absolute panels
234
+ </div>
235
+
236
+ <ul style="display: flex;">
237
+ <li data-collapsible data-collapsible-collapsed data-collapsible-group="menu1" style="display: flex;">
238
+ <a href="#" data-collapsible-trigger>Item 1</a>
239
+ <ul data-collapsible-panel style="position: absolute; background-color: rgba(150,200,200, 0.8);">
240
+ <li>
241
+ <a href="#">Item 11</a>
242
+ </li>
243
+ <li>
244
+ <a href="#">Item 12</a>
245
+ </li>
246
+ <li>
247
+ <a href="#">Item 13</a>
248
+ </li>
249
+ </ul>
250
+ </li>
251
+ <li data-collapsible data-collapsible-collapsed data-collapsible-group="menu1" style="display: flex;">
252
+ <a href="#" data-collapsible-trigger>Item 2</a>
253
+ <ul data-collapsible-panel style="position: absolute; background-color: rgba(150,200,200, 0.8);">
254
+ <li>
255
+ <a href="#">Item 21</a>
256
+ </li>
257
+ <li>
258
+ <a href="#">Item 22</a>
259
+ </li>
260
+ <li>
261
+ <a href="#">Item 23</a>
262
+ </li>
263
+ </ul>
264
+ </li>
265
+ <li data-collapsible data-collapsible-collapsed data-collapsible-group="menu1" style="display: flex;">
266
+ <a href="#" data-collapsible-trigger>Item 3</a>
267
+ <ul data-collapsible-panel style="position: absolute; background-color: rgba(150,200,200, 0.8);">
268
+ <li>
269
+ <a href="#">Item 31</a>
270
+ </li>
271
+ <li>
272
+ <a href="#">Item 32</a>
273
+ </li>
274
+ <li>
275
+ <a href="#">Item 33</a>
276
+ </li>
277
+ </ul>
278
+ </li>
279
+ </ul>
280
+
281
+ Text behind absolutely positioned panels.
282
+ </div>
283
+
284
+ <div class="story-container story-menu-multiple-inline-with-absolute-panels story-menu-focus" style="height: 300px">
285
+ <div class="story-container__title">
286
+ Multiple inline with absolute panels and focus
287
+ </div>
288
+
289
+ <div>
290
+ <button>Example button before</button>
291
+ </div>
292
+
293
+ <ul style="display: flex;">
294
+ <li data-collapsible data-collapsible-collapsed data-collapsible-group="menu2" style="display: flex;">
295
+ <a href="#" data-collapsible-trigger>Item 1</a>
296
+ <ul data-collapsible-panel style="position: absolute; background-color: rgba(150,200,200, 0.8);">
297
+ <li>
298
+ <a href="#">Item 11</a>
299
+ </li>
300
+ <li>
301
+ <a href="#">Item 12</a>
302
+ </li>
303
+ <li>
304
+ <a href="#">Item 13</a>
305
+ </li>
306
+ </ul>
307
+ </li>
308
+ <li data-collapsible data-collapsible-collapsed data-collapsible-group="menu2" style="display: flex;">
309
+ <a href="#" data-collapsible-trigger>Item 2</a>
310
+ <ul data-collapsible-panel style="position: absolute; background-color: rgba(150,200,200, 0.8);">
311
+ <li>
312
+ <a href="#">Item 21</a>
313
+ </li>
314
+ <li>
315
+ <a href="#">Item 22</a>
316
+ </li>
317
+ <li>
318
+ <a href="#">Item 23</a>
319
+ </li>
320
+ </ul>
321
+ </li>
322
+ <li data-collapsible data-collapsible-collapsed data-collapsible-group="menu2" style="display: flex;">
323
+ <a href="#" data-collapsible-trigger>Item 3</a>
324
+ <ul data-collapsible-panel style="position: absolute; background-color: rgba(150,200,200, 0.8);">
325
+ <li>
326
+ <a href="#">Item 31</a>
327
+ </li>
328
+ <li>
329
+ <a href="#">Item 32</a>
330
+ </li>
331
+ <li>
332
+ <a href="#">Item 33</a>
333
+ </li>
334
+ </ul>
335
+ </li>
336
+ </ul>
337
+
338
+ Text behind absolutely positioned panels.
339
+
340
+ <div>
341
+ <button>Example button after</button>
342
+ </div>
343
+ </div>
344
+
345
+ <div class="story-container">
346
+ <div class="story-container__title">Test Nested Collapsible Closed</div>
347
+
348
+ <div data-collapsible data-collapsible-collapsed>
349
+ <div data-collapsible-trigger>
350
+ TRIGGER (click me)
351
+ </div>
352
+ <div data-collapsible-panel>
353
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
354
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
355
+ Accusamus
356
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
357
+ quibusdam quis repudiandae veritatis.
358
+ <div data-collapsible data-collapsible-collapsed>
359
+ <div data-collapsible-trigger>
360
+ TRIGGER (click me) 1
361
+ </div>
362
+ <div data-collapsible-panel>
363
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
364
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
365
+ Accusamus
366
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
367
+ quibusdam quis repudiandae veritatis.
368
+ </div>
369
+ </div>
370
+ <div data-collapsible data-collapsible-collapsed>
371
+ <div data-collapsible-trigger>
372
+ TRIGGER (click me) 2
373
+ </div>
374
+ <div data-collapsible-panel>
375
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
376
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
377
+ Accusamus
378
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
379
+ quibusdam quis repudiandae veritatis.
380
+ <div data-collapsible data-collapsible-collapsed>
381
+ <div data-collapsible-trigger>
382
+ TRIGGER (click me) 2:1
383
+ </div>
384
+ <div data-collapsible-panel>
385
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
386
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
387
+ Accusamus
388
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
389
+ quibusdam quis repudiandae veritatis.
390
+ </div>
391
+ </div>
392
+ <div data-collapsible data-collapsible-collapsed>
393
+ <div data-collapsible-trigger>
394
+ TRIGGER (click me) 2:2
395
+ </div>
396
+ <div data-collapsible-panel>
397
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
398
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
399
+ Accusamus
400
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
401
+ quibusdam quis repudiandae veritatis.
402
+ </div>
403
+ </div>
404
+ </div>
405
+ </div>
406
+ <div data-collapsible data-collapsible-collapsed>
407
+ <div data-collapsible-trigger>
408
+ TRIGGER (click me) 3
409
+ </div>
410
+ <div data-collapsible-panel>
411
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
412
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
413
+ Accusamus
414
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
415
+ quibusdam quis repudiandae veritatis.
416
+ </div>
417
+ </div>
418
+ </div>
419
+ </div>
420
+ </div>
421
+
422
+ <div class="story-container">
423
+ <div class="story-container__title">Test Nested Collapsible Expanded</div>
424
+
425
+ <div data-collapsible>
426
+ <div data-collapsible-trigger>
427
+ TRIGGER (click me)
428
+ </div>
429
+ <div data-collapsible-panel>
430
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
431
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
432
+ Accusamus
433
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
434
+ quibusdam quis repudiandae veritatis.
435
+ <div data-collapsible>
436
+ <div data-collapsible-trigger>
437
+ TRIGGER (click me) 1
438
+ </div>
439
+ <div data-collapsible-panel>
440
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
441
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
442
+ Accusamus
443
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
444
+ quibusdam quis repudiandae veritatis.
445
+ </div>
446
+ </div>
447
+ <div data-collapsible>
448
+ <div data-collapsible-trigger>
449
+ TRIGGER (click me) 2
450
+ </div>
451
+ <div data-collapsible-panel>
452
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
453
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
454
+ Accusamus
455
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
456
+ quibusdam quis repudiandae veritatis.
457
+ <div data-collapsible>
458
+ <div data-collapsible-trigger>
459
+ TRIGGER (click me) 2:1
460
+ </div>
461
+ <div data-collapsible-panel>
462
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
463
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
464
+ Accusamus
465
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
466
+ quibusdam quis repudiandae veritatis.
467
+ </div>
468
+ </div>
469
+ <div data-collapsible>
470
+ <div data-collapsible-trigger>
471
+ TRIGGER (click me) 2:2
472
+ </div>
473
+ <div data-collapsible-panel>
474
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
475
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
476
+ Accusamus
477
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
478
+ quibusdam quis repudiandae veritatis.
479
+ </div>
480
+ </div>
481
+ </div>
482
+ </div>
483
+ <div data-collapsible>
484
+ <div data-collapsible-trigger>
485
+ TRIGGER (click me) 3
486
+ </div>
487
+ <div data-collapsible-panel>
488
+ Collapsible demo panel Lorem ipsum dolor sit amet, consectetur adipisicing
489
+ elit. Consectetur harum magnam modi obcaecati vitae voluptatibus!
490
+ Accusamus
491
+ atque deleniti, distinctio esse facere, nam odio officiis omnis porro
492
+ quibusdam quis repudiandae veritatis.
493
+ </div>
494
+ </div>
495
+ </div>
496
+ </div>
497
+ </div>
@@ -0,0 +1,186 @@
1
+ import { jest } from '@jest/globals';
2
+
3
+ describe('Collapsible utility', () => {
4
+ beforeAll(() => {
5
+ // jsdom doesn't support innerText by default.
6
+ // https://github.com/jsdom/jsdom/issues/1245
7
+ Object.defineProperty(HTMLDivElement.prototype, 'innerText', {
8
+ get() {
9
+ return this.textContent;
10
+ },
11
+ set(value) {
12
+ this.textContent = value;
13
+ },
14
+ });
15
+ });
16
+
17
+ beforeEach(() => {
18
+ jest.resetModules();
19
+ jest.spyOn(window, 'requestAnimationFrame').mockImplementation((cb) => cb());
20
+ });
21
+
22
+ afterEach(() => {
23
+ window.requestAnimationFrame.mockRestore();
24
+ });
25
+
26
+ test('expands when clicking on the trigger', async () => {
27
+ document.body.innerHTML = `
28
+ <div data-collapsible data-collapsible-collapsed data-collapsible-duration="0">
29
+ <div data-collapsible-trigger>
30
+ My trigger
31
+ </div>
32
+ <div data-collapsible-panel>
33
+ My panel
34
+ </div>
35
+ </div>
36
+ `;
37
+
38
+ // eslint-disable-next-line global-require
39
+ await import('./collapsible');
40
+
41
+ document.querySelector('[data-collapsible-trigger]').click();
42
+
43
+ expect(document.querySelector('[data-collapsible-trigger]').getAttribute('aria-expanded')).toEqual('true');
44
+ expect(document.querySelector('[data-collapsible-panel]').getAttribute('aria-hidden')).toEqual('false');
45
+
46
+ document.querySelector('[data-collapsible-trigger]').click();
47
+
48
+ expect(document.querySelector('[data-collapsible-trigger]').getAttribute('aria-expanded')).toEqual('false');
49
+ expect(document.querySelector('[data-collapsible-panel]').getAttribute('aria-hidden')).toEqual('true');
50
+ });
51
+
52
+ test('renders icons when using icon group', async () => {
53
+ document.body.innerHTML = `
54
+ <div data-collapsible data-collapsible-icon-group>
55
+ <div data-collapsible-trigger>
56
+ My trigger
57
+ </div>
58
+ <div data-collapsible-panel>
59
+ My panel
60
+ </div>
61
+ </div>
62
+ `;
63
+
64
+ // eslint-disable-next-line global-require
65
+ await import('./collapsible');
66
+
67
+ expect(document.querySelectorAll('[data-collapsible-trigger] .ct-text-icon__group')).toHaveLength(1);
68
+ expect(document.querySelector('[data-collapsible-trigger] .ct-text-icon__group').textContent.trim()).toEqual('trigger');
69
+ });
70
+
71
+ test('renders no icon correctly when set', async () => {
72
+ document.body.innerHTML = `
73
+ <div data-collapsible>
74
+ <div data-collapsible-trigger>
75
+ My trigger
76
+ </div>
77
+ <div data-collapsible-panel data-collapsible-trigger-no-icon>
78
+ My panel
79
+ </div>
80
+ </div>
81
+ `;
82
+
83
+ // eslint-disable-next-line global-require
84
+ await import('./collapsible');
85
+
86
+ expect(document.querySelectorAll('.ct-icon')).toHaveLength(0);
87
+ });
88
+
89
+ test('renders in a group when set', async () => {
90
+ document.body.innerHTML = `
91
+ <div class="group-a" data-collapsible data-collapsible-collapsed data-collapsible-duration="0" data-collapsible-group="group_test">
92
+ <div data-collapsible-trigger>
93
+ My trigger
94
+ </div>
95
+ <div data-collapsible-panel data-collapsible-trigger-no-icon>
96
+ My panel
97
+ </div>
98
+ </div>
99
+ <div class="group-b" data-collapsible data-collapsible-collapsed data-collapsible-duration="0" data-collapsible-group="group_test">
100
+ <div data-collapsible-trigger>
101
+ My trigger
102
+ </div>
103
+ <div data-collapsible-panel data-collapsible-trigger-no-icon>
104
+ My panel
105
+ </div>
106
+ </div>
107
+ `;
108
+
109
+ // eslint-disable-next-line global-require
110
+ await import('./collapsible');
111
+
112
+ // Both closed.
113
+ expect(document.querySelector('.group-a [data-collapsible-trigger]').getAttribute('aria-expanded')).toEqual('false');
114
+ expect(document.querySelector('.group-b [data-collapsible-trigger]').getAttribute('aria-expanded')).toEqual('false');
115
+
116
+ // Click A and check A opens, B remains closed.
117
+ document.querySelector('.group-a [data-collapsible-trigger]').click();
118
+ expect(document.querySelector('.group-a [data-collapsible-trigger]').getAttribute('aria-expanded')).toEqual('true');
119
+ expect(document.querySelector('.group-b [data-collapsible-trigger]').getAttribute('aria-expanded')).toEqual('false');
120
+
121
+ // Click B and check B opens, A closes.
122
+ document.querySelector('.group-b [data-collapsible-trigger]').click();
123
+ expect(document.querySelector('.group-a [data-collapsible-trigger]').getAttribute('aria-expanded')).toEqual('false');
124
+ expect(document.querySelector('.group-b [data-collapsible-trigger]').getAttribute('aria-expanded')).toEqual('true');
125
+
126
+ // Click A and check A opens, B closes.
127
+ document.querySelector('.group-a [data-collapsible-trigger]').click();
128
+ expect(document.querySelector('.group-a [data-collapsible-trigger]').getAttribute('aria-expanded')).toEqual('true');
129
+ expect(document.querySelector('.group-b [data-collapsible-trigger]').getAttribute('aria-expanded')).toEqual('false');
130
+
131
+ // Click A and check A and B close.
132
+ document.querySelector('.group-a [data-collapsible-trigger]').click();
133
+ expect(document.querySelector('.group-a [data-collapsible-trigger]').getAttribute('aria-expanded')).toEqual('false');
134
+ expect(document.querySelector('.group-b [data-collapsible-trigger]').getAttribute('aria-expanded')).toEqual('false');
135
+ });
136
+
137
+ test('renders transition style when using animation', async () => {
138
+ document.body.innerHTML = `
139
+ <div data-collapsible data-collapsible-collapsed data-collapsible-duration="100">
140
+ <div data-collapsible-trigger>
141
+ My trigger
142
+ </div>
143
+ <div data-collapsible-panel>
144
+ My panel
145
+ </div>
146
+ </div>
147
+ `;
148
+
149
+ // eslint-disable-next-line global-require
150
+ await import('./collapsible');
151
+
152
+ document.querySelector('[data-collapsible-trigger]').click();
153
+ expect(document.querySelector('[data-collapsible-collapsing]')).not.toBe(undefined);
154
+ expect(document.querySelector('[data-collapsible-panel]').style.transition).toEqual(`height 100ms ease-out`);
155
+ });
156
+
157
+ test('does not initialize when collapsible is true', async () => {
158
+ document.body.innerHTML = `
159
+ <div data-collapsible="true">
160
+ <div data-collapsible-trigger>
161
+ My trigger
162
+ </div>
163
+ <div data-collapsible-panel>
164
+ My panel
165
+ </div>
166
+ </div>
167
+ `;
168
+
169
+ // eslint-disable-next-line global-require
170
+ await import('./collapsible');
171
+
172
+ expect(document.querySelector('[data-collapsible-trigger]').getAttribute('aria-expanded')).toEqual(null);
173
+ });
174
+
175
+ test('does not initialize when no inner elements available', async () => {
176
+ document.body.innerHTML = `
177
+ <div data-collapsible>
178
+ </div>
179
+ `;
180
+
181
+ // eslint-disable-next-line global-require
182
+ await import('./collapsible');
183
+
184
+ expect(document.querySelector('[data-collapsible]').getAttribute('data-collapsible')).toEqual('');
185
+ });
186
+ });