@qhealth-design-system/core 1.21.0 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (359) hide show
  1. package/.prettierignore +14 -0
  2. package/.storybook/assets/storybook.scss +39 -39
  3. package/.storybook/decorators.js +36 -0
  4. package/.storybook/globals.js +196 -128
  5. package/.storybook/helper-functions.js +48 -9
  6. package/.storybook/main.js +20 -13
  7. package/.storybook/prepare-storybook.js +14 -14
  8. package/.storybook/preview-head.html +4 -1
  9. package/.storybook/preview.js +84 -98
  10. package/.storybook/vite-plugin-hbs.js +13 -13
  11. package/.stylelintrc.json +23 -23
  12. package/CHANGELOG.md +4 -0
  13. package/README.md +56 -520
  14. package/chromatic.config.json +5 -0
  15. package/eslint.config.mjs +72 -47
  16. package/package.json +95 -87
  17. package/prettier.config.js +10 -14
  18. package/src/component-loader.js +39 -15
  19. package/src/components/_global/css/admin/component.scss +112 -112
  20. package/src/components/_global/css/body/component.scss +944 -924
  21. package/src/components/_global/css/btn/component.scss +518 -512
  22. package/src/components/_global/css/cta_links/component.scss +192 -192
  23. package/src/components/_global/css/direction_links/component.scss +98 -98
  24. package/src/components/_global/css/example/component.scss +43 -37
  25. package/src/components/_global/css/flex/flexbox-utility-classes.scss +586 -594
  26. package/src/components/_global/css/forms/control_inputs/component.scss +269 -266
  27. package/src/components/_global/css/forms/general/component.scss +210 -210
  28. package/src/components/_global/css/forms/select/component.scss +324 -312
  29. package/src/components/_global/css/forms/text/component.scss +358 -348
  30. package/src/components/_global/css/global.scss +14 -15
  31. package/src/components/_global/css/grid-12/component.scss +254 -260
  32. package/src/components/_global/css/headings/component.scss +153 -153
  33. package/src/components/_global/css/icons/component.scss +115 -115
  34. package/src/components/_global/css/img/images.scss +64 -62
  35. package/src/components/_global/css/link_columns/component.scss +199 -199
  36. package/src/components/_global/css/link_list/component.scss +33 -33
  37. package/src/components/_global/css/links/components.scss +61 -57
  38. package/src/components/_global/css/modal/component.scss +162 -162
  39. package/src/components/_global/css/table/component.scss +274 -272
  40. package/src/components/_global/css/tabs/component.scss +26 -26
  41. package/src/components/_global/css/tags/component.scss +307 -307
  42. package/src/components/_global/css/toggle_and_tool_tip/component.scss +199 -195
  43. package/src/components/_global/css/user_location/component.scss +35 -33
  44. package/src/components/_global/css/version/component.scss +37 -37
  45. package/src/components/_global/html/component.hbs +130 -77
  46. package/src/components/_global/html/ds_component.hbs +21 -24
  47. package/src/components/_global/html/head.html +16 -5
  48. package/src/components/_global/html/scripts.html +15 -15
  49. package/src/components/_global/js/_polyfills/global.js +12 -11
  50. package/src/components/_global/js/animate/global.js +303 -319
  51. package/src/components/_global/js/collapsible.js +203 -0
  52. package/src/components/_global/js/cta_links/global.js +19 -14
  53. package/src/components/_global/js/global.js +316 -309
  54. package/src/components/_global/js/manifest.json +9 -10
  55. package/src/components/_global/js/modal/global.js +241 -224
  56. package/src/components/_global/js/popover/controller.js +168 -0
  57. package/src/components/_global/js/popover/position.js +372 -0
  58. package/src/components/_global/js/select_boxes/global.js +21 -18
  59. package/src/components/_global/js/tabs/global.js +305 -301
  60. package/src/components/_template/css/component.scss +10 -15
  61. package/src/components/_template/html/component-page.html +57 -61
  62. package/src/components/_template/html/component.hbs +3 -3
  63. package/src/components/_template/js/global.js +2 -5
  64. package/src/components/_template/js/manifest.json +39 -39
  65. package/src/components/a-z_listing/css/component.scss +124 -127
  66. package/src/components/a-z_listing/html/component.hbs +15 -13
  67. package/src/components/a-z_listing/js/global.js +93 -75
  68. package/src/components/a-z_listing/js/manifest.json +13594 -13553
  69. package/src/components/abstract/css/component.scss +63 -65
  70. package/src/components/abstract/html/component.hbs +8 -7
  71. package/src/components/abstract/js/manifest.json +28 -28
  72. package/src/components/accordion/css/component.scss +253 -247
  73. package/src/components/accordion/html/accordion-group.html +158 -152
  74. package/src/components/accordion/html/component.hbs +43 -30
  75. package/src/components/accordion/html/default.html +94 -87
  76. package/src/components/accordion/js/global.js +171 -449
  77. package/src/components/accordion/js/manifest.json +475 -440
  78. package/src/components/banner/css/component.scss +450 -434
  79. package/src/components/banner/html/component.hbs +148 -97
  80. package/src/components/banner/js/manifest.json +9 -10
  81. package/src/components/banner_advanced/css/component.scss +210 -226
  82. package/src/components/banner_advanced/html/component.hbs +425 -233
  83. package/src/components/banner_advanced/js/global.js +13 -4
  84. package/src/components/banner_advanced/js/manifest.json +1502 -1502
  85. package/src/components/banner_basic/css/component.scss +34 -40
  86. package/src/components/banner_basic/html/component.hbs +214 -132
  87. package/src/components/banner_basic/js/global.js +2 -5
  88. package/src/components/banner_basic/js/manifest.json +92 -92
  89. package/src/components/basic_search/css/component.scss +208 -202
  90. package/src/components/basic_search/html/component.hbs +724 -366
  91. package/src/components/basic_search/js/global.js +80 -63
  92. package/src/components/basic_search/js/manifest.json +771 -797
  93. package/src/components/body/css/component.scss +7 -8
  94. package/src/components/body/html/component.hbs +13 -4
  95. package/src/components/body/js/manifest.json +47 -47
  96. package/src/components/breadcrumbs/css/component.scss +176 -171
  97. package/src/components/breadcrumbs/html/component.hbs +82 -50
  98. package/src/components/breadcrumbs/js/global.js +279 -219
  99. package/src/components/breadcrumbs/js/manifest.json +8 -8
  100. package/src/components/callout/css/component.scss +124 -120
  101. package/src/components/callout/html/component.hbs +36 -25
  102. package/src/components/callout/js/manifest.json +126 -126
  103. package/src/components/card_feature/css/component.scss +66 -66
  104. package/src/components/card_feature/html/component.hbs +179 -104
  105. package/src/components/card_feature/js/manifest.json +1487 -1456
  106. package/src/components/card_multi_action/css/component.scss +234 -208
  107. package/src/components/card_multi_action/html/component.hbs +315 -177
  108. package/src/components/card_multi_action/js/manifest.json +1372 -1312
  109. package/src/components/card_no_action/css/component.scss +536 -524
  110. package/src/components/card_no_action/html/component.hbs +134 -114
  111. package/src/components/card_no_action/js/global.js +15 -0
  112. package/src/components/card_no_action/js/manifest.json +1314 -1277
  113. package/src/components/card_single_action/css/component.scss +111 -104
  114. package/src/components/card_single_action/html/component.hbs +285 -139
  115. package/src/components/card_single_action/js/manifest.json +1317 -1284
  116. package/src/components/code/css/component.scss +365 -353
  117. package/src/components/code/html/component.hbs +430 -157
  118. package/src/components/code/js/global.js +243 -180
  119. package/src/components/code/js/manifest.json +189 -177
  120. package/src/components/file_upload/css/component.scss +387 -387
  121. package/src/components/file_upload/html/component.hbs +86 -41
  122. package/src/components/file_upload/js/global.js +960 -813
  123. package/src/components/file_upload/js/manifest.json +61 -61
  124. package/src/components/footer/css/component.scss +428 -420
  125. package/src/components/footer/html/component.hbs +314 -191
  126. package/src/components/footer/js/manifest.json +8 -8
  127. package/src/components/global_alert/css/component.scss +210 -210
  128. package/src/components/global_alert/html/component.hbs +278 -125
  129. package/src/components/global_alert/js/global.js +32 -27
  130. package/src/components/global_alert/js/manifest.json +8 -8
  131. package/src/components/header/css/component.scss +518 -516
  132. package/src/components/header/html/component.hbs +281 -132
  133. package/src/components/header/js/global.js +157 -141
  134. package/src/components/header/js/manifest.json +8 -9
  135. package/src/components/horizontal_rule/css/component.scss +52 -52
  136. package/src/components/horizontal_rule/html/component.hbs +21 -5
  137. package/src/components/horizontal_rule/js/manifest.json +69 -69
  138. package/src/components/in_page_navigation/css/component.scss +42 -42
  139. package/src/components/in_page_navigation/html/component.hbs +13 -9
  140. package/src/components/in_page_navigation/js/global.js +78 -57
  141. package/src/components/in_page_navigation/js/manifest.json +34 -34
  142. package/src/components/internal_navigation/css/component.scss +294 -286
  143. package/src/components/internal_navigation/html/component.hbs +70 -51
  144. package/src/components/internal_navigation/js/global.js +36 -27
  145. package/src/components/internal_navigation/js/manifest.json +9 -10
  146. package/src/components/left_hand_navigation/css/component.scss +322 -309
  147. package/src/components/left_hand_navigation/html/component.hbs +136 -81
  148. package/src/components/left_hand_navigation/js/global.js +44 -30
  149. package/src/components/left_hand_navigation/js/manifest.json +39 -39
  150. package/src/components/loading_spinner/css/component.scss +57 -66
  151. package/src/components/loading_spinner/html/component.hbs +20 -4
  152. package/src/components/loading_spinner/js/global.js +2 -5
  153. package/src/components/loading_spinner/js/manifest.json +48 -48
  154. package/src/components/main_navigation/css/component.scss +713 -675
  155. package/src/components/main_navigation/html/component.hbs +222 -85
  156. package/src/components/main_navigation/js/global.js +355 -372
  157. package/src/components/main_navigation/js/manifest.json +9 -10
  158. package/src/components/mega_main_navigation/css/component.scss +504 -485
  159. package/src/components/mega_main_navigation/html/component.hbs +337 -145
  160. package/src/components/mega_main_navigation/js/global.js +133 -113
  161. package/src/components/mega_main_navigation/js/manifest.json +8 -8
  162. package/src/components/multi_column/css/component.scss +5 -5
  163. package/src/components/multi_column/html/component.hbs +404 -399
  164. package/src/components/multi_column/js/manifest.json +1203 -1203
  165. package/src/components/overflow_menu/css/component.scss +153 -152
  166. package/src/components/overflow_menu/html/component.hbs +82 -39
  167. package/src/components/overflow_menu/js/global.js +90 -5
  168. package/src/components/overflow_menu/js/manifest.json +39 -39
  169. package/src/components/page_alert/css/component.scss +127 -127
  170. package/src/components/page_alert/html/component.hbs +78 -32
  171. package/src/components/page_alert/js/manifest.json +77 -77
  172. package/src/components/pagination/css/component.scss +261 -250
  173. package/src/components/pagination/html/component.hbs +79 -38
  174. package/src/components/pagination/html/default.html +31 -22
  175. package/src/components/pagination/js/manifest.json +51 -51
  176. package/src/components/prefooter/css/component.scss +52 -45
  177. package/src/components/prefooter/html/component.hbs +97 -90
  178. package/src/components/prefooter/js/manifest.json +7 -7
  179. package/src/components/promo_panel/css/component.scss +810 -754
  180. package/src/components/promo_panel/html/component.hbs +173 -101
  181. package/src/components/promo_panel/js/global.js +23 -20
  182. package/src/components/promo_panel/js/manifest.json +223 -223
  183. package/src/components/search_box/css/component.scss +80 -79
  184. package/src/components/search_box/html/component.html +24 -12
  185. package/src/components/search_box/js/manifest.json +72 -72
  186. package/src/components/tab/css/component.scss +924 -814
  187. package/src/components/tab/html/component.hbs +576 -153
  188. package/src/components/tab/js/global.js +203 -297
  189. package/src/components/tab/js/manifest.json +917 -892
  190. package/src/components/toggle_tip/css/component.scss +3 -3
  191. package/src/components/toggle_tip/js/global.js +136 -137
  192. package/src/components/tool_tip/css/component.scss +3 -3
  193. package/src/components/tool_tip/js/global.js +95 -98
  194. package/src/components/video_player/css/component.scss +204 -211
  195. package/src/components/video_player/html/component.hbs +250 -138
  196. package/src/components/video_player/js/global.js +31 -14
  197. package/src/components/video_player/js/manifest.json +207 -207
  198. package/src/data/current.json +385 -433
  199. package/src/data/current_admin.json +13 -13
  200. package/src/data/model_component.js +13 -13
  201. package/src/data/site.json +967 -967
  202. package/src/helpers/Handlebars/appendIf.js +5 -5
  203. package/src/helpers/Handlebars/arrayLength.js +2 -2
  204. package/src/helpers/Handlebars/arrayWith.js +9 -11
  205. package/src/helpers/Handlebars/capitaliseFirst.js +8 -8
  206. package/src/helpers/Handlebars/charMax.js +6 -7
  207. package/src/helpers/Handlebars/checkIf.js +38 -18
  208. package/src/helpers/Handlebars/columnWidth.js +32 -35
  209. package/src/helpers/Handlebars/contains.js +4 -4
  210. package/src/helpers/Handlebars/createMap.js +15 -15
  211. package/src/helpers/Handlebars/dsMapFromID.js +8 -8
  212. package/src/helpers/Handlebars/dsMapFromProp.js +8 -8
  213. package/src/helpers/Handlebars/eachByName.js +19 -15
  214. package/src/helpers/Handlebars/eachDS.js +7 -7
  215. package/src/helpers/Handlebars/eachFrom.js +12 -12
  216. package/src/helpers/Handlebars/eachUpTo.js +7 -7
  217. package/src/helpers/Handlebars/eachWhen.js +30 -29
  218. package/src/helpers/Handlebars/formatDate.js +53 -53
  219. package/src/helpers/Handlebars/generateDates.js +75 -61
  220. package/src/helpers/Handlebars/getDistance.js +33 -32
  221. package/src/helpers/Handlebars/getObject.js +2 -2
  222. package/src/helpers/Handlebars/getParamaterByName.js +11 -11
  223. package/src/helpers/Handlebars/getPossibleValues.js +11 -11
  224. package/src/helpers/Handlebars/getProp.js +2 -2
  225. package/src/helpers/Handlebars/getTags.js +15 -16
  226. package/src/helpers/Handlebars/getThumbnailAlt.js +6 -4
  227. package/src/helpers/Handlebars/getTitle.js +3 -3
  228. package/src/helpers/Handlebars/iconSwitch.js +17 -0
  229. package/src/helpers/Handlebars/ifAny.js +6 -6
  230. package/src/helpers/Handlebars/ifArray.js +2 -2
  231. package/src/helpers/Handlebars/ifCond.js +30 -29
  232. package/src/helpers/Handlebars/ifEqualsOrChained.js +10 -10
  233. package/src/helpers/Handlebars/ifProp.js +2 -2
  234. package/src/helpers/Handlebars/if_eq.js +7 -7
  235. package/src/helpers/Handlebars/inArray.js +7 -7
  236. package/src/helpers/Handlebars/isPage.js +12 -7
  237. package/src/helpers/Handlebars/itemAt.js +8 -8
  238. package/src/helpers/Handlebars/jsonParse.js +7 -8
  239. package/src/helpers/Handlebars/jsonStringify.js +3 -3
  240. package/src/helpers/Handlebars/listAZ.js +74 -50
  241. package/src/helpers/Handlebars/listAZOptions.js +36 -29
  242. package/src/helpers/Handlebars/listByClosest.js +59 -53
  243. package/src/helpers/Handlebars/listByClosestWithOffset.js +58 -52
  244. package/src/helpers/Handlebars/math.js +11 -11
  245. package/src/helpers/Handlebars/newLineToBreak.js +3 -4
  246. package/src/helpers/Handlebars/nonBreakingSpaces.js +5 -6
  247. package/src/helpers/Handlebars/objectFromSelect.js +23 -16
  248. package/src/helpers/Handlebars/partialReplace.js +5 -6
  249. package/src/helpers/Handlebars/printAccordion.js +20 -20
  250. package/src/helpers/Handlebars/renderEncoded.js +14 -6
  251. package/src/helpers/Handlebars/renderSpecialChar.js +13 -11
  252. package/src/helpers/Handlebars/replace.js +5 -6
  253. package/src/helpers/Handlebars/replaceMany.js +3 -3
  254. package/src/helpers/Handlebars/sizeFormat.js +3 -3
  255. package/src/helpers/Handlebars/split.js +5 -6
  256. package/src/helpers/Handlebars/toUpperCase.js +4 -4
  257. package/src/helpers/Handlebars/urldecode.js +1 -1
  258. package/src/helpers/Handlebars/urlencode.js +1 -1
  259. package/src/helpers/Handlebars/withinObject.js +4 -4
  260. package/src/helpers/global-helpers.js +74 -48
  261. package/src/stories/AZListing/a-z_listing.stories.js +53 -53
  262. package/src/stories/Abstract/abstract.stories.js +48 -47
  263. package/src/stories/Accordion/accordion.stories.js +191 -0
  264. package/src/stories/BackToTop/BackToTop.stories.js +6 -6
  265. package/src/stories/Banner/banner.stories.js +68 -53
  266. package/src/stories/Banner/bannerAdvanced.stories.js +255 -190
  267. package/src/stories/Banner/bannerBasic.stories.js +105 -80
  268. package/src/stories/BasicSearch/BasicSearch.stories.js +160 -0
  269. package/src/stories/BlockQuote/BlockQuote.stories.js +72 -0
  270. package/src/stories/Body/body.stories.js +73 -66
  271. package/src/stories/Breadcrumbs/Breadcrumbs.stories.js +116 -93
  272. package/src/stories/Button/Button.stories.js +54 -45
  273. package/src/stories/CTALink/CTALink.stories.js +113 -159
  274. package/src/stories/Callout/Callout.stories.js +144 -110
  275. package/src/stories/Cards/CardFeature.stories.js +190 -120
  276. package/src/stories/Cards/CardMultiAction.stories.js +280 -152
  277. package/src/stories/Cards/CardNoAction.stories.js +262 -144
  278. package/src/stories/Cards/CardSingleAction.stories.js +245 -140
  279. package/src/stories/Code/Code.stories.js +239 -0
  280. package/src/stories/Colours/Colours.stories.js +98 -0
  281. package/src/stories/Colours/colours.js +135 -0
  282. package/src/stories/DirectionLinks/DirectionLinks.js +1 -1
  283. package/src/stories/DirectionLinks/DirectionLinks.stories.js +51 -44
  284. package/src/stories/Footer/Footer.stories.js +181 -159
  285. package/src/stories/Forms/Checkboxes/Checkboxes.js +41 -26
  286. package/src/stories/Forms/Checkboxes/Checkboxes.stories.js +245 -123
  287. package/src/stories/Forms/FileUpload/FileUpload.stories.js +214 -0
  288. package/src/stories/Forms/RadioButtons/RadioButtons.js +41 -26
  289. package/src/stories/Forms/RadioButtons/RadioButtons.stories.js +245 -123
  290. package/src/stories/Forms/SelectBox/SelectBox.js +45 -29
  291. package/src/stories/Forms/SelectBox/SelectBox.stories.js +253 -139
  292. package/src/stories/Forms/forms.stories.js +195 -158
  293. package/src/stories/Forms/numberInput.stories.js +55 -53
  294. package/src/stories/Forms/textInput.stories.js +135 -109
  295. package/src/stories/Forms/textarea.stories.js +136 -109
  296. package/src/stories/GlobalAlert/GlobalAlert.stories.js +115 -106
  297. package/src/stories/GlobalNavigation/LeftHandNavigation/LeftHandNavigation.stories.js +206 -0
  298. package/src/stories/GlobalNavigation/MegaMainNavigation/mega_main_navigation.a11y.stories.js +154 -0
  299. package/src/stories/GlobalNavigation/MegaMainNavigation/mega_main_navigation.stories.js +428 -0
  300. package/src/stories/Header/Header.js +83 -67
  301. package/src/stories/Header/Header.stories.js +389 -377
  302. package/src/stories/Horizontal/Horizontal.stories.js +185 -0
  303. package/src/stories/Iconography/Iconography.js +1 -1
  304. package/src/stories/Iconography/Iconography.stories.js +90 -74
  305. package/src/stories/Image/Image.stories.js +102 -0
  306. package/src/stories/InPageAlert/InPageAlert.stories.js +73 -65
  307. package/src/stories/Link/Link.stories.js +136 -0
  308. package/src/stories/LinkColumns/LinkColumns.js +21 -13
  309. package/src/stories/LinkColumns/LinkColumns.stories.js +97 -87
  310. package/src/stories/LoadingSpinner/LoadingSpinner.stories.js +47 -44
  311. package/src/stories/MultiColumn/MultiColumn.stories.js +320 -0
  312. package/src/stories/Navigation/InPageNavigation/InPageNavigation.stories.js +212 -0
  313. package/src/stories/Navigation/InternalNavigation/InternalNavigation.stories.js +158 -0
  314. package/src/stories/Pagination/Pagination.stories.js +195 -195
  315. package/src/stories/Prefooter/Prefooter.stories.js +107 -0
  316. package/src/stories/PromoPanel/PromoPanel.stories.js +193 -144
  317. package/src/stories/SearchInput/SearchInput.stories.js +176 -0
  318. package/src/stories/SkipLinks/SkipLinks.stories.js +106 -0
  319. package/src/stories/Table/table.stories.js +68 -50
  320. package/src/stories/Tabs/Tabs.stories.js +319 -0
  321. package/src/stories/Tags/Tags.js +24 -22
  322. package/src/stories/Tags/Tags.stories.js +83 -73
  323. package/src/stories/ToggleTip/ToggleTip.a11y.stories.js +130 -0
  324. package/src/stories/ToggleTip/ToggleTip.stories.js +213 -0
  325. package/src/stories/ToolTip/ToolTip.a11y.stories.js +85 -0
  326. package/src/stories/ToolTip/ToolTip.stories.js +187 -0
  327. package/src/stories/Typography/Typography.stories.js +218 -0
  328. package/src/stories/Typography/typography.js +94 -0
  329. package/src/stories/VideoPlayer/VideoPlayer.stories.js +246 -131
  330. package/src/styles/banner_contained/globals.scss +228 -232
  331. package/src/styles/core-styles.scss +32 -32
  332. package/src/styles/imports/cssbackup.css +498 -577
  333. package/src/styles/imports/functions.scss +348 -343
  334. package/src/styles/imports/mixins.scss +639 -565
  335. package/src/styles/imports/placeholders.scss +41 -39
  336. package/src/styles/imports/utilities.scss +376 -374
  337. package/src/styles/imports/variables.scss +178 -134
  338. package/src/styles/postcss.config.js +1 -2
  339. package/thankyou.md +26 -0
  340. package/vitest.config.js +34 -0
  341. package/.storybook/assets/accordion-js.js +0 -344
  342. package/.storybook/assets/animate-js.js +0 -247
  343. package/.storybook/assets/breadcrumbs-js.js +0 -216
  344. package/.storybook/assets/index.js +0 -23
  345. package/src/components/_global/js/toggle_and_tool_tip/global.js +0 -319
  346. package/src/html/component-accordion.html +0 -583
  347. package/src/html/component-basic_search.html +0 -42
  348. package/src/html/component-code.html +0 -57
  349. package/src/html/component-file_upload.html +0 -57
  350. package/src/html/component-mega_main_navigation.html +0 -583
  351. package/src/html/component-tab.html +0 -57
  352. package/src/html/component-toggle_tip.html +0 -569
  353. package/src/html/component-tool_tip.html +0 -294
  354. package/src/stories/CTALink/CTALink.js +0 -5
  355. package/src/stories/InPageNavigation/InPageNavigation.stories.js +0 -89
  356. package/src/stories/MegaMainNavigation/mega_main_navigation.a11y.stories.js +0 -138
  357. package/src/stories/MegaMainNavigation/mega_main_navigation.stories.js +0 -245
  358. package/src/stories/Navbar/Navbar.js +0 -117
  359. package/src/stories/Navbar/Navbar.stories.js +0 -80
@@ -1,2 +1,5 @@
1
1
  <!-- Add external links here, such as cdn scripts -->
2
- <script src="https://kit.fontawesome.com/1402b3ed47.js" crossorigin="anonymous"></script>
2
+ <script
3
+ src="https://kit.fontawesome.com/66722b4f34.js"
4
+ crossorigin="anonymous"
5
+ ></script>
@@ -1,115 +1,101 @@
1
- import "./assets/index.js"; // Storybook JS import
1
+ import "./core-assets/handlebar-helpers.js";
2
2
  import "./assets/index.scss"; // Storybook styles import from core
3
3
  import "./assets/storybook.scss"; // Storybook specific styles
4
4
  import { INITIAL_VIEWPORTS } from "storybook/viewport";
5
- import { viewports, themes, themeColours } from "./globals.js";
6
- import { getSvgPath } from "./helper-functions.js";
7
-
8
- const iconsIds = fetch(getSvgPath())
9
- .then((res) => res.text())
10
- .then((svgText) => {
11
- // Parse the text as XML
12
- const parser = new DOMParser();
13
- const svgDoc = parser.parseFromString(svgText, "image/svg+xml");
14
-
15
- // Select all <symbol> elements
16
- const symbols = svgDoc.querySelectorAll("symbol");
17
-
18
- // Map their IDs
19
- return Array.from(symbols).map((sym) => sym.id);
20
- });
5
+ import { viewports, themes, themeColours, iconSpritePath } from "./globals.js";
6
+ import { formatHtmlSource } from "./helper-functions.js";
21
7
 
22
8
  /** @type { import('@storybook/html-vite').Preview } */
23
9
  const preview = {
24
- tags: ["autodocs"],
25
- parameters: {
26
- controls: {
27
- matchers: {
28
- color: /(background|color)$/i,
29
- date: /Date$/i,
30
- },
31
- },
32
- a11y: {
33
- config: {
34
- rules: [
35
- {
36
- id: "color-contrast",
37
- enabled: true,
38
- },
39
- ],
40
- },
10
+ tags: ["autodocs"],
11
+ parameters: {
12
+ controls: {
13
+ matchers: {
14
+ color: /(background|color)$/i,
15
+ date: /Date$/i,
16
+ },
17
+ },
18
+ a11y: {
19
+ config: {
20
+ rules: [
21
+ {
22
+ id: "color-contrast",
23
+ enabled: true,
24
+ },
25
+ ],
26
+ },
27
+ },
28
+ viewport: {
29
+ options: {
30
+ ...viewports,
31
+ ...INITIAL_VIEWPORTS,
32
+ },
33
+ },
34
+ docs: {
35
+ source: {
36
+ excludeDecorators: true,
37
+ // Pretty-print the rendered HTML in the code panel. Storybook's built-in
38
+ // `format` only dedents, so we re-indent the markup ourselves.
39
+ transform: (code) => formatHtmlSource(code),
40
+ },
41
+ },
42
+ backgrounds: {
43
+ options: {
44
+ white: {
45
+ name: "White",
46
+ value: themeColours["white"],
41
47
  },
42
- viewport: {
43
- options: {
44
- ...viewports,
45
- ...INITIAL_VIEWPORTS,
46
- },
48
+ light: {
49
+ name: "Light",
50
+ value: themeColours["light"],
47
51
  },
48
- docs: {
49
- source: {
50
- excludeDecorators: true,
51
- },
52
+ "light alt": {
53
+ name: "Light Alternate",
54
+ value: themeColours["light alt"],
52
55
  },
53
- backgrounds: {
54
- options: {
55
- white: {
56
- name: "White",
57
- value: themeColours["white"],
58
- },
59
- light: {
60
- name: "Light",
61
- value: themeColours["light"],
62
- },
63
- light_alternate: {
64
- name: "Light Alternate",
65
- value: themeColours["light alt"],
66
- },
67
- dark: {
68
- name: "Dark",
69
- value: themeColours["dark"],
70
- },
71
- dark_alternate: {
72
- name: "Dark Alternate",
73
- value: themeColours["dark alt"],
74
- },
75
- },
56
+ dark: {
57
+ name: "Dark",
58
+ value: themeColours["dark"],
76
59
  },
77
- options: {
78
- storySort: {
79
- // Force SB to load Introduction page first
80
- order: ["Introduction", "1. Core Styles", "2. Layout", "3. Components"],
81
- },
60
+ "dark alt": {
61
+ name: "Dark Alternate",
62
+ value: themeColours["dark alt"],
82
63
  },
64
+ },
83
65
  },
84
- args: {
85
- // Ensure GitHub hosted page uses correct icon path
86
- site: { metadata: { coreSiteIcons: { value: getSvgPath() } } },
87
- iconIDs: await iconsIds,
66
+ options: {
67
+ storySort: {
68
+ // Force SB to load Introduction page first
69
+ order: ["Introduction", "1. Core Styles", "2. Layout", "3. Components"],
70
+ },
88
71
  },
89
- argTypes: {
90
- // Remove the site metadata from the controls
91
- site: { table: { disable: true } },
92
- iconIDs: { table: { disable: true } },
72
+ },
73
+ args: {
74
+ // Ensure GitHub hosted page uses correct icon path
75
+ site: { metadata: { coreSiteIcons: { value: iconSpritePath } } },
76
+ },
77
+ argTypes: {
78
+ // Remove the site metadata from the controls
79
+ site: { table: { disable: true } },
80
+ },
81
+ decorators: [
82
+ (storyFn, context) => {
83
+ // Manual flag passed from the story to avoid the following parent wrapping
84
+ if (context.parameters.skipDecorator) {
85
+ return storyFn();
86
+ }
87
+ const wrapper = document.createElement("div");
88
+ wrapper.className =
89
+ themes[context.globals.backgrounds?.value] || themes["white"];
90
+ const story = storyFn();
91
+ if (typeof story === "string") {
92
+ wrapper.innerHTML = story;
93
+ } else if (story instanceof HTMLElement) {
94
+ wrapper.appendChild(story);
95
+ }
96
+ return wrapper;
93
97
  },
94
- decorators: [
95
- (storyFn, context) => {
96
- // Skip wrapper for Navbar story
97
- if (context.kind === "Components/Navbar") {
98
- return storyFn();
99
- }
100
- // Get the theme key from the background, to use within the decorator
101
- const themeKey = Object.keys(themeColours).find((key) => key === context.globals.backgrounds?.value);
102
- const wrapper = document.createElement("div");
103
- wrapper.className = themes[themeKey] || themes["white"];
104
- const story = storyFn();
105
- if (typeof story === "string") {
106
- wrapper.innerHTML = story;
107
- } else if (story instanceof HTMLElement) {
108
- wrapper.appendChild(story);
109
- }
110
- return wrapper;
111
- },
112
- ],
98
+ ],
113
99
  };
114
100
 
115
101
  export default preview;
@@ -1,4 +1,4 @@
1
- import Handlebars from 'handlebars';
1
+ import Handlebars from "handlebars";
2
2
 
3
3
  /**
4
4
  * Vite plugin that transforms Handlebars component templates (.hbs)
@@ -29,24 +29,24 @@ import Handlebars from 'handlebars';
29
29
  * @returns {import('vite').Plugin}
30
30
  */
31
31
  export default function hbsPlugin() {
32
- return {
33
- name: 'vite-plugin-hbs',
32
+ return {
33
+ name: "vite-plugin-hbs",
34
34
 
35
- transform(src, id) {
36
- if (!id.endsWith('.hbs')) return;
35
+ transform(src, id) {
36
+ if (!id.endsWith(".hbs")) return;
37
37
 
38
- const templateSpec = Handlebars.precompile(src);
38
+ const templateSpec = Handlebars.precompile(src);
39
39
 
40
- const code = `
40
+ const code = `
41
41
  import Handlebars from 'handlebars';
42
42
  const template = Handlebars.template(${templateSpec});
43
43
  export default template;
44
44
  `;
45
45
 
46
- return {
47
- code,
48
- map: null,
49
- };
50
- },
51
- };
46
+ return {
47
+ code,
48
+ map: null,
49
+ };
50
+ },
51
+ };
52
52
  }
package/.stylelintrc.json CHANGED
@@ -1,24 +1,24 @@
1
1
  {
2
- "extends": ["stylelint-config-standard"],
3
- "plugins": ["stylelint-scss"],
4
- "rules": {
5
- "selector-class-pattern": [
6
- "^[a-z][a-z0-9-]*(__[a-z0-9][a-z0-9_-]*)*(--[a-z0-9][a-z0-9-]*)?$",
7
- { "message": "Expected class selector to use BEM naming convention" }
8
- ],
9
- "custom-property-pattern": null
10
- },
11
- "overrides": [
12
- {
13
- "files": ["**/*.scss"],
14
- "customSyntax": "postcss-scss",
15
- "rules": {
16
- "at-rule-no-unknown": null,
17
- "scss/at-rule-no-unknown": true,
18
- "function-no-unknown": null,
19
- "no-descending-specificity": null,
20
- "annotation-no-unknown": null
21
- }
22
- }
23
- ]
24
- }
2
+ "extends": ["stylelint-config-standard"],
3
+ "plugins": ["stylelint-scss"],
4
+ "rules": {
5
+ "selector-class-pattern": [
6
+ "^[a-z][a-z0-9-]*(__[a-z0-9][a-z0-9_-]*)*(--[a-z0-9][a-z0-9-]*)?$",
7
+ { "message": "Expected class selector to use BEM naming convention" }
8
+ ],
9
+ "custom-property-pattern": null
10
+ },
11
+ "overrides": [
12
+ {
13
+ "files": ["**/*.scss"],
14
+ "customSyntax": "postcss-scss",
15
+ "rules": {
16
+ "at-rule-no-unknown": null,
17
+ "scss/at-rule-no-unknown": true,
18
+ "function-no-unknown": null,
19
+ "no-descending-specificity": null,
20
+ "annotation-no-unknown": null
21
+ }
22
+ }
23
+ ]
24
+ }
package/CHANGELOG.md CHANGED
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## Unreleased
9
9
 
10
+ ## 1.22.0 - 2026-06-30
11
+
12
+ ## 1.21.1 - 2026-06-10
13
+
10
14
  ## 1.21.0 - 2026-06-09
11
15
 
12
16
  ## 1.20.2 - 2026-03-12