@postenbring/hedwig-react 0.0.81 → 0.0.82

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 (523) hide show
  1. package/dist/accordion/accordion-content.d.ts +6 -2
  2. package/dist/accordion/accordion-content.d.ts.map +1 -0
  3. package/dist/accordion/accordion-header.d.ts +6 -2
  4. package/dist/accordion/accordion-header.d.ts.map +1 -0
  5. package/dist/accordion/accordion-item.d.ts +24 -3
  6. package/dist/accordion/accordion-item.d.ts.map +1 -0
  7. package/dist/accordion/accordion.d.ts +44 -2
  8. package/dist/accordion/accordion.d.ts.map +1 -0
  9. package/dist/accordion/accordion.js +102 -4
  10. package/dist/accordion/accordion.js.map +1 -1
  11. package/dist/accordion/accordion.mjs +5 -1
  12. package/dist/accordion/context.d.ts +7 -2
  13. package/dist/accordion/context.d.ts.map +1 -0
  14. package/dist/accordion/index.d.ts +9 -9
  15. package/dist/accordion/index.d.ts.map +1 -0
  16. package/dist/accordion/index.js +52 -53
  17. package/dist/accordion/index.js.map +1 -1
  18. package/dist/accordion/index.mjs +7 -7
  19. package/dist/badge/badge.d.ts +21 -5
  20. package/dist/badge/badge.d.ts.map +1 -0
  21. package/dist/badge/index.d.ts +3 -6
  22. package/dist/badge/index.d.ts.map +1 -0
  23. package/dist/box/box.d.ts +50 -4
  24. package/dist/box/box.d.ts.map +1 -0
  25. package/dist/box/box.js +15 -14
  26. package/dist/box/box.js.map +1 -1
  27. package/dist/box/box.mjs +1 -1
  28. package/dist/box/index.d.ts +3 -4
  29. package/dist/box/index.d.ts.map +1 -0
  30. package/dist/box/index.js +16 -19
  31. package/dist/box/index.js.map +1 -1
  32. package/dist/box/index.mjs +4 -5
  33. package/dist/breadcrumbs/breadcrumbs.d.ts +33 -2
  34. package/dist/breadcrumbs/breadcrumbs.d.ts.map +1 -0
  35. package/dist/breadcrumbs/index.d.ts +3 -2
  36. package/dist/breadcrumbs/index.d.ts.map +1 -0
  37. package/dist/button/button.d.ts +33 -3
  38. package/dist/button/button.d.ts.map +1 -0
  39. package/dist/button/index.d.ts +3 -3
  40. package/dist/button/index.d.ts.map +1 -0
  41. package/dist/card/card.d.ts +69 -12
  42. package/dist/card/card.d.ts.map +1 -0
  43. package/dist/card/card.js +17 -6
  44. package/dist/card/card.js.map +1 -1
  45. package/dist/card/card.mjs +1 -1
  46. package/dist/card/index.d.ts +3 -12
  47. package/dist/card/index.d.ts.map +1 -0
  48. package/dist/card/index.js +18 -19
  49. package/dist/card/index.js.map +1 -1
  50. package/dist/card/index.mjs +4 -5
  51. package/dist/{chunk-XC3UHH2U.mjs → chunk-3WVRY6CC.mjs} +4 -4
  52. package/dist/{chunk-XC3UHH2U.mjs.map → chunk-3WVRY6CC.mjs.map} +1 -1
  53. package/dist/{chunk-GSJPTZT3.mjs → chunk-6AGDK5V3.mjs} +34 -19
  54. package/dist/chunk-6AGDK5V3.mjs.map +1 -0
  55. package/dist/{chunk-3MQKXNZ6.mjs → chunk-7UD72WOC.mjs} +13 -1
  56. package/dist/chunk-7UD72WOC.mjs.map +1 -0
  57. package/dist/chunk-7YWW46R3.mjs +1 -0
  58. package/dist/chunk-7YWW46R3.mjs.map +1 -0
  59. package/dist/{chunk-ENKVTAJB.mjs → chunk-AJWSQEDP.mjs} +18 -17
  60. package/dist/chunk-AJWSQEDP.mjs.map +1 -0
  61. package/dist/chunk-ARHJZUZG.mjs +1 -0
  62. package/dist/chunk-ARHJZUZG.mjs.map +1 -0
  63. package/dist/chunk-BCFV6VOE.mjs +1 -0
  64. package/dist/chunk-BCFV6VOE.mjs.map +1 -0
  65. package/dist/{chunk-7JRS4WEB.mjs → chunk-C34HEQXO.mjs} +33 -29
  66. package/dist/chunk-C34HEQXO.mjs.map +1 -0
  67. package/dist/{chunk-PLXB3TNA.mjs → chunk-D7QPJIUZ.mjs} +5 -5
  68. package/dist/{chunk-PLXB3TNA.mjs.map → chunk-D7QPJIUZ.mjs.map} +1 -1
  69. package/dist/chunk-FYFJ75NX.mjs +1 -0
  70. package/dist/chunk-FYFJ75NX.mjs.map +1 -0
  71. package/dist/chunk-G65EYZFQ.mjs +1 -0
  72. package/dist/chunk-G65EYZFQ.mjs.map +1 -0
  73. package/dist/chunk-H3E546OT.mjs +1 -0
  74. package/dist/chunk-H3E546OT.mjs.map +1 -0
  75. package/dist/chunk-HQVL3ZJ2.mjs +1 -0
  76. package/dist/chunk-HQVL3ZJ2.mjs.map +1 -0
  77. package/dist/{chunk-XUWZ4HGD.mjs → chunk-LCJSUBCZ.mjs} +48 -45
  78. package/dist/chunk-LCJSUBCZ.mjs.map +1 -0
  79. package/dist/{chunk-KPGSRU4I.mjs → chunk-M3Y3XOGC.mjs} +13 -1
  80. package/dist/chunk-M3Y3XOGC.mjs.map +1 -0
  81. package/dist/{chunk-CIHZDFSQ.mjs → chunk-NU6OSFAU.mjs} +20 -9
  82. package/dist/chunk-NU6OSFAU.mjs.map +1 -0
  83. package/dist/chunk-RC76SXBP.mjs +1 -0
  84. package/dist/chunk-RC76SXBP.mjs.map +1 -0
  85. package/dist/{chunk-TQDUBRCZ.mjs → chunk-SQ63E7KM.mjs} +24 -22
  86. package/dist/chunk-SQ63E7KM.mjs.map +1 -0
  87. package/dist/{chunk-ES6ISHOV.mjs → chunk-UP3M3NEZ.mjs} +14 -13
  88. package/dist/{chunk-ES6ISHOV.mjs.map → chunk-UP3M3NEZ.mjs.map} +1 -1
  89. package/dist/chunk-ZKMFJZSH.mjs +1 -0
  90. package/dist/chunk-ZKMFJZSH.mjs.map +1 -0
  91. package/dist/description-list/description-list.d.ts +42 -2
  92. package/dist/description-list/description-list.d.ts.map +1 -0
  93. package/dist/description-list/index.d.ts +3 -2
  94. package/dist/description-list/index.d.ts.map +1 -0
  95. package/dist/footer/footer.d.ts +67 -7
  96. package/dist/footer/footer.d.ts.map +1 -0
  97. package/dist/footer/footer.js +79 -76
  98. package/dist/footer/footer.js.map +1 -1
  99. package/dist/footer/footer.mjs +4 -4
  100. package/dist/footer/index.d.ts +3 -7
  101. package/dist/footer/index.d.ts.map +1 -0
  102. package/dist/footer/index.js +80 -84
  103. package/dist/footer/index.js.map +1 -1
  104. package/dist/footer/index.mjs +7 -8
  105. package/dist/form/checkbox/checkbox.d.ts +28 -2
  106. package/dist/form/checkbox/checkbox.d.ts.map +1 -0
  107. package/dist/form/checkbox/index.d.ts +3 -2
  108. package/dist/form/checkbox/index.d.ts.map +1 -0
  109. package/dist/form/date-picker/date-picker.d.ts +33 -2
  110. package/dist/form/date-picker/date-picker.d.ts.map +1 -0
  111. package/dist/form/date-picker/index.d.ts +3 -2
  112. package/dist/form/date-picker/index.d.ts.map +1 -0
  113. package/dist/form/error-message/error-message.d.ts +8 -2
  114. package/dist/form/error-message/error-message.d.ts.map +1 -0
  115. package/dist/form/error-message/index.d.ts +3 -2
  116. package/dist/form/error-message/index.d.ts.map +1 -0
  117. package/dist/form/fieldset/fieldset.d.ts +22 -3
  118. package/dist/form/fieldset/fieldset.d.ts.map +1 -0
  119. package/dist/form/fieldset/index.d.ts +3 -3
  120. package/dist/form/fieldset/index.d.ts.map +1 -0
  121. package/dist/form/index.d.ts +9 -20
  122. package/dist/form/index.d.ts.map +1 -0
  123. package/dist/form/input/index.d.ts +3 -2
  124. package/dist/form/input/index.d.ts.map +1 -0
  125. package/dist/form/input/input.d.ts +5 -2
  126. package/dist/form/input/input.d.ts.map +1 -0
  127. package/dist/form/input-group/index.d.ts +3 -2
  128. package/dist/form/input-group/index.d.ts.map +1 -0
  129. package/dist/form/input-group/input-group.d.ts +27 -2
  130. package/dist/form/input-group/input-group.d.ts.map +1 -0
  131. package/dist/form/radiobutton/index.d.ts +5 -5
  132. package/dist/form/radiobutton/index.d.ts.map +1 -0
  133. package/dist/form/radiobutton/radiobutton.d.ts +17 -2
  134. package/dist/form/radiobutton/radiobutton.d.ts.map +1 -0
  135. package/dist/form/radiobutton/radiogroup.d.ts +24 -3
  136. package/dist/form/radiobutton/radiogroup.d.ts.map +1 -0
  137. package/dist/form/select/index.d.ts +3 -2
  138. package/dist/form/select/index.d.ts.map +1 -0
  139. package/dist/form/select/select.d.ts +9 -2
  140. package/dist/form/select/select.d.ts.map +1 -0
  141. package/dist/form/textarea/index.d.ts +3 -2
  142. package/dist/form/textarea/index.d.ts.map +1 -0
  143. package/dist/form/textarea/textarea.d.ts +5 -2
  144. package/dist/form/textarea/textarea.d.ts.map +1 -0
  145. package/dist/help-text/help-text.d.ts +51 -1
  146. package/dist/help-text/help-text.d.ts.map +1 -0
  147. package/dist/help-text/help-text.js +17 -20
  148. package/dist/help-text/help-text.js.map +1 -1
  149. package/dist/help-text/help-text.mjs +3 -3
  150. package/dist/help-text/index.d.ts +3 -1
  151. package/dist/help-text/index.d.ts.map +1 -0
  152. package/dist/help-text/index.js +17 -20
  153. package/dist/help-text/index.js.map +1 -1
  154. package/dist/help-text/index.mjs +3 -3
  155. package/dist/index-no-css.d.ts +26 -128
  156. package/dist/index-no-css.d.ts.map +1 -0
  157. package/dist/index-no-css.js +372 -393
  158. package/dist/index-no-css.js.map +1 -1
  159. package/dist/index-no-css.mjs +50 -57
  160. package/dist/index.d.ts +11 -128
  161. package/dist/index.d.ts.map +1 -0
  162. package/dist/index.js +372 -393
  163. package/dist/index.js.map +1 -1
  164. package/dist/index.mjs +50 -57
  165. package/dist/index.mjs.map +1 -1
  166. package/dist/layout/container/container.d.ts +23 -2
  167. package/dist/layout/container/container.d.ts.map +1 -0
  168. package/dist/layout/grid/grid.d.ts +101 -4
  169. package/dist/layout/grid/grid.d.ts.map +1 -0
  170. package/dist/layout/grid/grid.js +11 -10
  171. package/dist/layout/grid/grid.js.map +1 -1
  172. package/dist/layout/grid/grid.mjs +1 -1
  173. package/dist/layout/grid/index.d.ts +3 -4
  174. package/dist/layout/grid/index.d.ts.map +1 -0
  175. package/dist/layout/grid/index.js +12 -15
  176. package/dist/layout/grid/index.js.map +1 -1
  177. package/dist/layout/grid/index.mjs +4 -5
  178. package/dist/layout/index.d.ts +4 -10
  179. package/dist/layout/index.d.ts.map +1 -0
  180. package/dist/layout/index.js +12 -15
  181. package/dist/layout/index.js.map +1 -1
  182. package/dist/layout/index.mjs +4 -5
  183. package/dist/layout/responsive.d.ts +10 -2
  184. package/dist/layout/responsive.d.ts.map +1 -0
  185. package/dist/layout/spacing.d.ts +33 -3
  186. package/dist/layout/spacing.d.ts.map +1 -0
  187. package/dist/layout/stack/index.d.ts +3 -4
  188. package/dist/layout/stack/index.d.ts.map +1 -0
  189. package/dist/layout/stack/stack.d.ts +62 -4
  190. package/dist/layout/stack/stack.d.ts.map +1 -0
  191. package/dist/link/index.d.ts +3 -2
  192. package/dist/link/index.d.ts.map +1 -0
  193. package/dist/link/link.d.ts +20 -2
  194. package/dist/link/link.d.ts.map +1 -0
  195. package/dist/list/index.d.ts +5 -5
  196. package/dist/list/index.d.ts.map +1 -0
  197. package/dist/list/link-list.d.ts +12 -2
  198. package/dist/list/link-list.d.ts.map +1 -0
  199. package/dist/list/list.d.ts +40 -3
  200. package/dist/list/list.d.ts.map +1 -0
  201. package/dist/message/index.d.ts +3 -3
  202. package/dist/message/index.d.ts.map +1 -0
  203. package/dist/message/index.js +36 -38
  204. package/dist/message/index.js.map +1 -1
  205. package/dist/message/index.mjs +5 -6
  206. package/dist/message/message.d.ts +36 -4
  207. package/dist/message/message.d.ts.map +1 -0
  208. package/dist/message/message.js +35 -32
  209. package/dist/message/message.js.map +1 -1
  210. package/dist/message/message.mjs +2 -2
  211. package/dist/modal/index.d.ts +3 -5
  212. package/dist/modal/index.d.ts.map +1 -0
  213. package/dist/modal/index.js +60 -62
  214. package/dist/modal/index.js.map +1 -1
  215. package/dist/modal/index.mjs +5 -6
  216. package/dist/modal/modal.d.ts +81 -5
  217. package/dist/modal/modal.d.ts.map +1 -0
  218. package/dist/modal/modal.js +59 -55
  219. package/dist/modal/modal.js.map +1 -1
  220. package/dist/modal/modal.mjs +2 -2
  221. package/dist/navbar/icons.d.ts +3 -2
  222. package/dist/navbar/icons.d.ts.map +1 -0
  223. package/dist/navbar/index.d.ts +4 -13
  224. package/dist/navbar/index.d.ts.map +1 -0
  225. package/dist/navbar/index.js +144 -145
  226. package/dist/navbar/index.js.map +1 -1
  227. package/dist/navbar/index.mjs +4 -5
  228. package/dist/navbar/navbar-expandable-menu.d.ts +35 -7
  229. package/dist/navbar/navbar-expandable-menu.d.ts.map +1 -0
  230. package/dist/navbar/navbar.d.ts +130 -9
  231. package/dist/navbar/navbar.d.ts.map +1 -0
  232. package/dist/navbar/navbar.js +237 -28
  233. package/dist/navbar/navbar.js.map +1 -1
  234. package/dist/navbar/navbar.mjs +4 -1
  235. package/dist/show-more/index.d.ts +5 -4
  236. package/dist/show-more/index.d.ts.map +1 -0
  237. package/dist/show-more/show-more.d.ts +42 -2
  238. package/dist/show-more/show-more.d.ts.map +1 -0
  239. package/dist/skeleton/index.d.ts +3 -2
  240. package/dist/skeleton/index.d.ts.map +1 -0
  241. package/dist/skeleton/skeleton.d.ts +67 -2
  242. package/dist/skeleton/skeleton.d.ts.map +1 -0
  243. package/dist/step-indicator/index.d.ts +3 -1
  244. package/dist/step-indicator/index.d.ts.map +1 -0
  245. package/dist/step-indicator/step-indicator.d.ts +36 -1
  246. package/dist/step-indicator/step-indicator.d.ts.map +1 -0
  247. package/dist/styled-html/index.d.ts +3 -2
  248. package/dist/styled-html/index.d.ts.map +1 -0
  249. package/dist/styled-html/styled-html.d.ts +36 -2
  250. package/dist/styled-html/styled-html.d.ts.map +1 -0
  251. package/dist/table/index.d.ts +3 -1
  252. package/dist/table/index.d.ts.map +1 -0
  253. package/dist/table/table.d.ts +25 -1
  254. package/dist/table/table.d.ts.map +1 -0
  255. package/dist/tabs/context.d.ts +8 -3
  256. package/dist/tabs/context.d.ts.map +1 -0
  257. package/dist/tabs/index.d.ts +7 -10
  258. package/dist/tabs/index.d.ts.map +1 -0
  259. package/dist/tabs/index.js +34 -37
  260. package/dist/tabs/index.js.map +1 -1
  261. package/dist/tabs/index.mjs +4 -4
  262. package/dist/tabs/tabs-content.d.ts +26 -4
  263. package/dist/tabs/tabs-content.d.ts.map +1 -0
  264. package/dist/tabs/tabs-list.d.ts +21 -4
  265. package/dist/tabs/tabs-list.d.ts.map +1 -0
  266. package/dist/tabs/tabs.d.ts +26 -2
  267. package/dist/tabs/tabs.d.ts.map +1 -0
  268. package/dist/tabs/tabs.js +205 -8
  269. package/dist/tabs/tabs.js.map +1 -1
  270. package/dist/tabs/tabs.mjs +4 -1
  271. package/dist/text/index.d.ts +4 -2
  272. package/dist/text/index.d.ts.map +1 -0
  273. package/dist/text/text.d.ts +58 -2
  274. package/dist/text/text.d.ts.map +1 -0
  275. package/dist/utilities/auto-animate-height.d.ts +33 -2
  276. package/dist/utilities/auto-animate-height.d.ts.map +1 -0
  277. package/dist/utilities/index.d.ts +3 -2
  278. package/dist/utilities/index.d.ts.map +1 -0
  279. package/dist/utils.d.ts +28 -5
  280. package/dist/utils.d.ts.map +1 -0
  281. package/dist/warning-banner/index.d.ts +3 -2
  282. package/dist/warning-banner/index.d.ts.map +1 -0
  283. package/dist/warning-banner/index.js +16 -19
  284. package/dist/warning-banner/index.js.map +1 -1
  285. package/dist/warning-banner/index.mjs +3 -3
  286. package/dist/warning-banner/warning-banner.d.ts +8 -2
  287. package/dist/warning-banner/warning-banner.d.ts.map +1 -0
  288. package/dist/warning-banner/warning-banner.js +16 -19
  289. package/dist/warning-banner/warning-banner.js.map +1 -1
  290. package/dist/warning-banner/warning-banner.mjs +3 -3
  291. package/package.json +9 -5
  292. package/src/accordion/accordion-content.tsx +31 -0
  293. package/src/accordion/accordion-header.tsx +36 -0
  294. package/src/accordion/accordion-item.tsx +62 -0
  295. package/src/accordion/accordion.stories.tsx +154 -0
  296. package/src/accordion/accordion.tsx +68 -0
  297. package/src/accordion/context.ts +8 -0
  298. package/src/accordion/index.tsx +9 -0
  299. package/src/badge/badge.stories.tsx +44 -0
  300. package/src/badge/badge.tsx +63 -0
  301. package/src/badge/index.tsx +3 -0
  302. package/src/box/box.stories.tsx +112 -0
  303. package/src/box/box.tsx +122 -0
  304. package/src/box/index.tsx +3 -0
  305. package/src/breadcrumbs/breadcrumbs.stories.tsx +50 -0
  306. package/src/breadcrumbs/breadcrumbs.tsx +47 -0
  307. package/src/breadcrumbs/index.tsx +3 -0
  308. package/src/button/button.stories.tsx +104 -0
  309. package/src/button/button.tsx +87 -0
  310. package/src/button/index.tsx +3 -0
  311. package/src/card/card.stories.tsx +82 -0
  312. package/src/card/card.tsx +222 -0
  313. package/src/card/index.tsx +14 -0
  314. package/src/description-list/description-list.stories.tsx +95 -0
  315. package/src/description-list/description-list.tsx +61 -0
  316. package/src/description-list/index.tsx +2 -0
  317. package/src/footer/footer.tsx +169 -0
  318. package/src/footer/index.tsx +9 -0
  319. package/src/form/checkbox/checkbox.stories.tsx +104 -0
  320. package/src/form/checkbox/checkbox.tsx +82 -0
  321. package/src/form/checkbox/index.tsx +2 -0
  322. package/src/form/date-picker/date-picker.stories.tsx +27 -0
  323. package/src/form/date-picker/date-picker.tsx +85 -0
  324. package/src/form/date-picker/index.tsx +2 -0
  325. package/src/form/error-message/error-message.stories.tsx +19 -0
  326. package/src/form/error-message/error-message.tsx +25 -0
  327. package/src/form/error-message/index.tsx +2 -0
  328. package/src/form/fieldset/fieldset.stories.tsx +86 -0
  329. package/src/form/fieldset/fieldset.tsx +64 -0
  330. package/src/form/fieldset/index.tsx +2 -0
  331. package/src/form/index.tsx +8 -0
  332. package/src/form/input/index.tsx +2 -0
  333. package/src/form/input/input.stories.tsx +166 -0
  334. package/src/form/input/input.tsx +30 -0
  335. package/src/form/input-group/index.tsx +2 -0
  336. package/src/form/input-group/input-group.tsx +106 -0
  337. package/src/form/radiobutton/index.tsx +4 -0
  338. package/src/form/radiobutton/radiobutton.stories.tsx +93 -0
  339. package/src/form/radiobutton/radiobutton.tsx +85 -0
  340. package/src/form/radiobutton/radiogroup.stories.tsx +39 -0
  341. package/src/form/radiobutton/radiogroup.tsx +52 -0
  342. package/src/form/select/index.tsx +2 -0
  343. package/src/form/select/select.stories.tsx +93 -0
  344. package/src/form/select/select.tsx +33 -0
  345. package/src/form/textarea/index.tsx +2 -0
  346. package/src/form/textarea/textarea.stories.tsx +106 -0
  347. package/src/form/textarea/textarea.tsx +33 -0
  348. package/src/help-text/help-text.tsx +98 -0
  349. package/src/help-text/index.ts +2 -0
  350. package/src/index-no-css.tsx +25 -0
  351. package/src/index.tsx +11 -0
  352. package/src/layout/container/container.stories.tsx +62 -0
  353. package/src/layout/container/container.tsx +47 -0
  354. package/src/layout/grid/grid.tsx +163 -0
  355. package/src/layout/grid/index.tsx +3 -0
  356. package/src/layout/index.tsx +3 -0
  357. package/src/layout/responsive.ts +26 -0
  358. package/src/layout/spacing.ts +37 -0
  359. package/src/layout/stack/index.tsx +2 -0
  360. package/src/layout/stack/stack.tsx +128 -0
  361. package/src/link/index.tsx +3 -0
  362. package/src/link/link.stories.tsx +64 -0
  363. package/src/link/link.tsx +46 -0
  364. package/src/list/index.tsx +5 -0
  365. package/src/list/link-list.stories.tsx +38 -0
  366. package/src/list/link-list.tsx +26 -0
  367. package/src/list/list.stories.tsx +71 -0
  368. package/src/list/list.tsx +65 -0
  369. package/src/message/index.tsx +2 -0
  370. package/src/message/message.stories.tsx +93 -0
  371. package/src/message/message.tsx +89 -0
  372. package/src/modal/index.tsx +3 -0
  373. package/src/modal/modal.stories.tsx +147 -0
  374. package/src/modal/modal.tsx +199 -0
  375. package/src/navbar/icons.tsx +21 -0
  376. package/src/navbar/index.tsx +18 -0
  377. package/src/navbar/navbar-expandable-menu.tsx +176 -0
  378. package/src/navbar/navbar.stories.tsx +99 -0
  379. package/src/navbar/navbar.tsx +264 -0
  380. package/src/show-more/index.ts +5 -0
  381. package/src/show-more/show-more.stories.tsx +119 -0
  382. package/src/show-more/show-more.tsx +66 -0
  383. package/src/skeleton/index.ts +2 -0
  384. package/src/skeleton/skeleton.stories.tsx +152 -0
  385. package/src/skeleton/skeleton.tsx +114 -0
  386. package/src/step-indicator/index.ts +2 -0
  387. package/src/step-indicator/step-indicator.stories.tsx +50 -0
  388. package/src/step-indicator/step-indicator.tsx +116 -0
  389. package/src/styled-html/index.ts +2 -0
  390. package/src/styled-html/styled-html.stories.tsx +189 -0
  391. package/src/styled-html/styled-html.tsx +59 -0
  392. package/src/table/index.ts +2 -0
  393. package/src/table/table.tsx +59 -0
  394. package/src/tabs/context.ts +18 -0
  395. package/src/tabs/index.tsx +7 -0
  396. package/src/tabs/tabs-content.tsx +62 -0
  397. package/src/tabs/tabs-list.tsx +129 -0
  398. package/src/tabs/tabs.stories.tsx +138 -0
  399. package/src/tabs/tabs.tsx +50 -0
  400. package/src/text/index.tsx +4 -0
  401. package/src/text/text.stories.tsx +112 -0
  402. package/src/text/text.tsx +129 -0
  403. package/src/utilities/auto-animate-height.tsx +139 -0
  404. package/src/utilities/index.ts +2 -0
  405. package/src/utils.ts +110 -0
  406. package/src/warning-banner/index.tsx +2 -0
  407. package/src/warning-banner/warning-banner.stories.tsx +43 -0
  408. package/src/warning-banner/warning-banner.tsx +79 -0
  409. package/dist/_tsup-dts-rollup.d.mts +0 -2600
  410. package/dist/_tsup-dts-rollup.d.ts +0 -2600
  411. package/dist/accordion/accordion-content.d.mts +0 -2
  412. package/dist/accordion/accordion-header.d.mts +0 -2
  413. package/dist/accordion/accordion-item.d.mts +0 -3
  414. package/dist/accordion/accordion.d.mts +0 -2
  415. package/dist/accordion/context.d.mts +0 -2
  416. package/dist/accordion/index.d.mts +0 -9
  417. package/dist/badge/badge.d.mts +0 -5
  418. package/dist/badge/index.d.mts +0 -6
  419. package/dist/box/box.d.mts +0 -4
  420. package/dist/box/index.d.mts +0 -4
  421. package/dist/breadcrumbs/breadcrumbs.d.mts +0 -2
  422. package/dist/breadcrumbs/index.d.mts +0 -2
  423. package/dist/button/button.d.mts +0 -3
  424. package/dist/button/index.d.mts +0 -3
  425. package/dist/card/card.d.mts +0 -12
  426. package/dist/card/index.d.mts +0 -12
  427. package/dist/chunk-3MQKXNZ6.mjs.map +0 -1
  428. package/dist/chunk-3NDUE23B.mjs +0 -19
  429. package/dist/chunk-3NDUE23B.mjs.map +0 -1
  430. package/dist/chunk-3NL3TOZF.mjs +0 -13
  431. package/dist/chunk-3NL3TOZF.mjs.map +0 -1
  432. package/dist/chunk-3ZFEUABU.mjs +0 -23
  433. package/dist/chunk-3ZFEUABU.mjs.map +0 -1
  434. package/dist/chunk-722MZPXO.mjs +0 -13
  435. package/dist/chunk-722MZPXO.mjs.map +0 -1
  436. package/dist/chunk-7JRS4WEB.mjs.map +0 -1
  437. package/dist/chunk-CIHZDFSQ.mjs.map +0 -1
  438. package/dist/chunk-CYEYGPRH.mjs +0 -17
  439. package/dist/chunk-CYEYGPRH.mjs.map +0 -1
  440. package/dist/chunk-ENKVTAJB.mjs.map +0 -1
  441. package/dist/chunk-GSJPTZT3.mjs.map +0 -1
  442. package/dist/chunk-IJAX6APL.mjs +0 -23
  443. package/dist/chunk-IJAX6APL.mjs.map +0 -1
  444. package/dist/chunk-IKJJWKXM.mjs +0 -15
  445. package/dist/chunk-IKJJWKXM.mjs.map +0 -1
  446. package/dist/chunk-KPGSRU4I.mjs.map +0 -1
  447. package/dist/chunk-PT5H3QV6.mjs +0 -29
  448. package/dist/chunk-PT5H3QV6.mjs.map +0 -1
  449. package/dist/chunk-TQDUBRCZ.mjs.map +0 -1
  450. package/dist/chunk-V6UKKHKD.mjs +0 -33
  451. package/dist/chunk-V6UKKHKD.mjs.map +0 -1
  452. package/dist/chunk-XUWZ4HGD.mjs.map +0 -1
  453. package/dist/description-list/description-list.d.mts +0 -2
  454. package/dist/description-list/index.d.mts +0 -2
  455. package/dist/footer/footer.d.mts +0 -7
  456. package/dist/footer/index.d.mts +0 -7
  457. package/dist/form/checkbox/checkbox.d.mts +0 -2
  458. package/dist/form/checkbox/index.d.mts +0 -2
  459. package/dist/form/date-picker/date-picker.d.mts +0 -2
  460. package/dist/form/date-picker/index.d.mts +0 -2
  461. package/dist/form/error-message/error-message.d.mts +0 -2
  462. package/dist/form/error-message/index.d.mts +0 -2
  463. package/dist/form/fieldset/fieldset.d.mts +0 -3
  464. package/dist/form/fieldset/index.d.mts +0 -3
  465. package/dist/form/index.d.mts +0 -20
  466. package/dist/form/input/index.d.mts +0 -2
  467. package/dist/form/input/input.d.mts +0 -2
  468. package/dist/form/input-group/index.d.mts +0 -2
  469. package/dist/form/input-group/input-group.d.mts +0 -2
  470. package/dist/form/radiobutton/index.d.mts +0 -5
  471. package/dist/form/radiobutton/radiobutton.d.mts +0 -2
  472. package/dist/form/radiobutton/radiogroup.d.mts +0 -3
  473. package/dist/form/select/index.d.mts +0 -2
  474. package/dist/form/select/select.d.mts +0 -2
  475. package/dist/form/textarea/index.d.mts +0 -2
  476. package/dist/form/textarea/textarea.d.mts +0 -2
  477. package/dist/help-text/help-text.d.mts +0 -1
  478. package/dist/help-text/index.d.mts +0 -1
  479. package/dist/index-no-css.d.mts +0 -128
  480. package/dist/index.d.mts +0 -128
  481. package/dist/layout/container/container.d.mts +0 -2
  482. package/dist/layout/grid/grid.d.mts +0 -4
  483. package/dist/layout/grid/index.d.mts +0 -4
  484. package/dist/layout/index.d.mts +0 -10
  485. package/dist/layout/responsive.d.mts +0 -2
  486. package/dist/layout/spacing.d.mts +0 -3
  487. package/dist/layout/stack/index.d.mts +0 -4
  488. package/dist/layout/stack/stack.d.mts +0 -4
  489. package/dist/link/index.d.mts +0 -2
  490. package/dist/link/link.d.mts +0 -2
  491. package/dist/list/index.d.mts +0 -5
  492. package/dist/list/link-list.d.mts +0 -2
  493. package/dist/list/list.d.mts +0 -3
  494. package/dist/message/index.d.mts +0 -3
  495. package/dist/message/message.d.mts +0 -4
  496. package/dist/modal/index.d.mts +0 -5
  497. package/dist/modal/modal.d.mts +0 -5
  498. package/dist/navbar/icons.d.mts +0 -2
  499. package/dist/navbar/index.d.mts +0 -13
  500. package/dist/navbar/navbar-expandable-menu.d.mts +0 -7
  501. package/dist/navbar/navbar.d.mts +0 -9
  502. package/dist/show-more/index.d.mts +0 -4
  503. package/dist/show-more/show-more.d.mts +0 -2
  504. package/dist/skeleton/index.d.mts +0 -2
  505. package/dist/skeleton/skeleton.d.mts +0 -2
  506. package/dist/step-indicator/index.d.mts +0 -1
  507. package/dist/step-indicator/step-indicator.d.mts +0 -1
  508. package/dist/styled-html/index.d.mts +0 -2
  509. package/dist/styled-html/styled-html.d.mts +0 -2
  510. package/dist/table/index.d.mts +0 -1
  511. package/dist/table/table.d.mts +0 -1
  512. package/dist/tabs/context.d.mts +0 -3
  513. package/dist/tabs/index.d.mts +0 -10
  514. package/dist/tabs/tabs-content.d.mts +0 -4
  515. package/dist/tabs/tabs-list.d.mts +0 -4
  516. package/dist/tabs/tabs.d.mts +0 -2
  517. package/dist/text/index.d.mts +0 -2
  518. package/dist/text/text.d.mts +0 -2
  519. package/dist/utilities/auto-animate-height.d.mts +0 -2
  520. package/dist/utilities/index.d.mts +0 -2
  521. package/dist/utils.d.mts +0 -5
  522. package/dist/warning-banner/index.d.mts +0 -2
  523. package/dist/warning-banner/warning-banner.d.mts +0 -2
@@ -0,0 +1,199 @@
1
+ import { forwardRef, useEffect, useRef } from "react";
2
+ import { clsx } from "@postenbring/hedwig-css/typed-classname";
3
+ import { Slot } from "@radix-ui/react-slot";
4
+ import { Box } from "../box/box";
5
+ import { useMergeRefs } from "../utils";
6
+
7
+ interface ModalHeaderProps extends React.HTMLAttributes<HTMLHeadingElement> {
8
+ /**
9
+ * Change the default rendered element for the one passed as a child, merging their props and behavior.
10
+ *
11
+ * @default false
12
+ */
13
+ asChild?: boolean;
14
+ }
15
+ export const ModalHeader = forwardRef<HTMLHeadingElement, ModalHeaderProps>(
16
+ ({ asChild, className, ...rest }, ref) => {
17
+ const Component = asChild ? Slot : "h1";
18
+ return (
19
+ <Component
20
+ className={clsx("hds-modal__header", className as undefined)}
21
+ ref={ref}
22
+ {...rest}
23
+ />
24
+ );
25
+ },
26
+ );
27
+ ModalHeader.displayName = "Modal.Header";
28
+
29
+ interface ModalContentProps extends React.HTMLAttributes<HTMLDivElement> {
30
+ /**
31
+ * Change the default rendered element for the one passed as a child, merging their props and behavior.
32
+ *
33
+ * @default false
34
+ */
35
+ asChild?: boolean;
36
+ }
37
+ export const ModalContent = forwardRef<HTMLDivElement, ModalContentProps>(
38
+ ({ asChild, className, ...rest }, ref) => {
39
+ const Component = asChild ? Slot : "div";
40
+ return (
41
+ <Component
42
+ className={clsx("hds-modal__content", className as undefined)}
43
+ ref={ref}
44
+ {...rest}
45
+ />
46
+ );
47
+ },
48
+ );
49
+ ModalContent.displayName = "Modal.Content";
50
+
51
+ interface ModalFooterProps extends React.HTMLAttributes<HTMLDivElement> {
52
+ /**
53
+ * Change the default rendered element for the one passed as a child, merging their props and behavior.
54
+ *
55
+ * @default false
56
+ */
57
+ asChild?: boolean;
58
+ }
59
+ export const ModalFooter = forwardRef<HTMLDivElement, ModalFooterProps>(
60
+ ({ asChild, className, ...rest }, ref) => {
61
+ const Component = asChild ? Slot : "footer";
62
+ return (
63
+ <Component
64
+ className={clsx("hds-modal__footer", className as undefined)}
65
+ ref={ref}
66
+ {...rest}
67
+ />
68
+ );
69
+ },
70
+ );
71
+ ModalFooter.displayName = "Modal.Footer";
72
+
73
+ export interface ModalProps extends React.HTMLAttributes<HTMLDialogElement> {
74
+ children: React.ReactNode;
75
+
76
+ /**
77
+ * Controls the open state of the modal
78
+ */
79
+ open?: boolean;
80
+
81
+ /**
82
+ * Whether to close when clicking on the backdrop.
83
+ */
84
+ closeOnBackdropClick?: boolean;
85
+ }
86
+
87
+ /**
88
+ * A modal dialog is a window that forces the user to interact with it before they can return to other parts of the application.
89
+ *
90
+ * Uses the native [`dialog`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog) element.
91
+ *
92
+ * @example
93
+ * ```tsx
94
+ * const modalRef = useRef<HTMLDialogElement>(null);
95
+ * const onClose = () => modalRef.current?.close();
96
+ *
97
+ * return (
98
+ * <>
99
+ * <PrimaryButton onClick={() => modalRef.current?.showModal()}>Open Modal</PrimaryButton>
100
+ * <Modal ref={modalRef}>
101
+ * <Modal.Header>Dialog header</Modal.Header>
102
+ * <Modal.Content>
103
+ * <p>
104
+ * Dialog header Dialog description - a description of what is about to happen and maybe
105
+ * something about the consequences.
106
+ * </p>
107
+ * </Modal.Content>
108
+ * <Modal.Footer>
109
+ * <HStack gap="16" wrap>
110
+ * <PrimaryButton onClick={onMainAction}>Main action</PrimaryButton>
111
+ * <PrimaryButton fill="outline" onClick={onClose}>
112
+ * Cancel
113
+ * </PrimaryButton>
114
+ * </HStack>
115
+ * </Modal.Footer>
116
+ * </Modal>
117
+ * </>
118
+ * );
119
+ * ```
120
+ */
121
+ export const Modal = forwardRef<HTMLDialogElement, ModalProps>(
122
+ ({ children, className, open, closeOnBackdropClick, onClick, ...rest }, ref) => {
123
+ const modalRef = useRef<HTMLDialogElement>(null);
124
+ const mergedRef = useMergeRefs([modalRef, ref]);
125
+
126
+ // The X close button that comes from the `Box` component
127
+ function onCloseButtonClick() {
128
+ modalRef.current?.close();
129
+ return false;
130
+ }
131
+
132
+ // No scroll when modal is open
133
+ useScrollLock(modalRef, "hds-modal-scroll-lock");
134
+
135
+ // `open` prop
136
+ useEffect(() => {
137
+ if (modalRef.current && open !== undefined) {
138
+ if (open && !modalRef.current.open) {
139
+ modalRef.current.showModal();
140
+ } else if (!open && modalRef.current.open) {
141
+ modalRef.current.close();
142
+ }
143
+ }
144
+ }, [modalRef, open]);
145
+
146
+ function onDialogClick(e: React.MouseEvent<HTMLElement>) {
147
+ if (closeOnBackdropClick && e.target === modalRef.current) {
148
+ modalRef.current.close();
149
+ }
150
+ onClick?.(e as React.MouseEvent<HTMLDialogElement>);
151
+ }
152
+
153
+ return (
154
+ <Box
155
+ asChild
156
+ className={clsx("hds-modal", className as undefined)}
157
+ closeable
158
+ onClick={onDialogClick}
159
+ onClose={onCloseButtonClick}
160
+ variant="white"
161
+ >
162
+ <dialog ref={mergedRef} {...rest}>
163
+ {children}
164
+ </dialog>
165
+ </Box>
166
+ );
167
+ },
168
+ ) as ModalType;
169
+ Modal.displayName = "Modal";
170
+
171
+ type ModalType = ReturnType<typeof forwardRef<HTMLDialogElement, ModalProps>> & {
172
+ Header: typeof ModalHeader;
173
+ Content: typeof ModalContent;
174
+ Footer: typeof ModalFooter;
175
+ };
176
+
177
+ Modal.Header = ModalHeader;
178
+ Modal.Content = ModalContent;
179
+ Modal.Footer = ModalFooter;
180
+
181
+ function useScrollLock(modalRef: React.RefObject<HTMLDialogElement>, bodyClass: string) {
182
+ useEffect(() => {
183
+ if (!modalRef.current) return;
184
+ if (modalRef.current.open) document.body.classList.add(bodyClass);
185
+
186
+ const observer = new MutationObserver(() => {
187
+ if (modalRef.current?.open) document.body.classList.add(bodyClass);
188
+ else document.body.classList.remove(bodyClass);
189
+ });
190
+ observer.observe(modalRef.current, {
191
+ attributes: true,
192
+ attributeFilter: ["open"],
193
+ });
194
+ return () => {
195
+ observer.disconnect();
196
+ document.body.classList.remove(bodyClass);
197
+ };
198
+ }, [bodyClass, modalRef]);
199
+ }
@@ -0,0 +1,21 @@
1
+ export function CloseIcon() {
2
+ return (
3
+ <svg aria-hidden xmlns="http://www.w3.org/2000/svg" width={24} height={24}>
4
+ <path
5
+ fill="currentColor"
6
+ d="m13.16 12.25 3.621-3.586.739-.738c.105-.106.105-.281 0-.422l-.774-.774c-.14-.105-.316-.105-.422 0L12 11.09 7.64 6.73c-.105-.105-.28-.105-.421 0l-.774.774c-.105.14-.105.316 0 .422l4.36 4.324-4.36 4.36c-.105.105-.105.28 0 .421l.774.774c.14.105.316.105.422 0L12 13.445l3.586 3.621.738.739c.106.105.281.105.422 0l.774-.774c.105-.14.105-.316 0-.422l-4.36-4.359Z"
7
+ />
8
+ </svg>
9
+ );
10
+ }
11
+
12
+ export function MenuIcon() {
13
+ return (
14
+ <svg aria-hidden xmlns="http://www.w3.org/2000/svg" width={32} height={32}>
15
+ <path
16
+ fill="currentColor"
17
+ d="M25.938 10.146a.57.57 0 0 0 .562-.563v-1.5c0-.281-.281-.562-.563-.562H6.063a.57.57 0 0 0-.562.562v1.5c0 .328.234.563.563.563h19.875Zm0 7.5a.57.57 0 0 0 .562-.563v-1.5c0-.281-.281-.563-.563-.563H6.063a.57.57 0 0 0-.562.563v1.5c0 .328.234.563.563.563h19.875Zm0 7.5a.57.57 0 0 0 .562-.563v-1.5c0-.281-.281-.563-.563-.563H6.063a.57.57 0 0 0-.562.563v1.5c0 .328.234.563.563.563h19.875Z"
18
+ />
19
+ </svg>
20
+ );
21
+ }
@@ -0,0 +1,18 @@
1
+ export {
2
+ Navbar,
3
+ NavbarLogo,
4
+ NavbarItem,
5
+ NavbarButtonItem,
6
+ NavbarLinkItem,
7
+ NavbarItemIcon,
8
+ NavbarNavigation,
9
+ NavbarLogoAndServiceText,
10
+ } from "./navbar";
11
+ export {
12
+ useNavbarExpendableMenuContext,
13
+ NavbarExpandableMenu,
14
+ NavbarExpandableMenuTrigger,
15
+ NavbarExpandableMenuContent,
16
+ } from "./navbar-expandable-menu";
17
+
18
+ export type * from "./navbar";
@@ -0,0 +1,176 @@
1
+ import { createContext, useContext, forwardRef, useState, useEffect, useId } from "react";
2
+ import { clsx } from "@postenbring/hedwig-css/typed-classname";
3
+ import { focusTrap } from "../utils";
4
+ import { CloseIcon, MenuIcon } from "./icons";
5
+
6
+ const expandableMenuContext = createContext([
7
+ false as boolean,
8
+ () => {
9
+ // Empty
10
+ },
11
+ ] as const);
12
+ export const useNavbarExpendableMenuContext = () => useContext(expandableMenuContext);
13
+
14
+ export interface NavbarExpandableMenuProps {
15
+ children: React.ReactNode;
16
+ }
17
+
18
+ /**
19
+ * Expandable Menu Provider
20
+ * Handles scroll and focus locking,
21
+ * as well as scrolling the user to the top of the page.
22
+ *
23
+ * If we want a sticky header in the future the scrolling should be configurable
24
+ */
25
+ export function NavbarExpandableMenu({ children }: NavbarExpandableMenuProps) {
26
+ const [open, setOpen] = useState(false);
27
+ function toggleOpen() {
28
+ setOpen((prev) => !prev);
29
+ }
30
+
31
+ useEffect(() => {
32
+ if (open) {
33
+ window.scrollTo(0, 0);
34
+ document.body.classList.add(clsx("hds-navbar-scroll-lock"));
35
+ const releaseFocusTrap = focusTrap(
36
+ document.getElementsByClassName(clsx("hds-navbar"))[0] as HTMLElement,
37
+ );
38
+
39
+ return () => {
40
+ document.body.classList.remove(clsx("hds-navbar-scroll-lock"));
41
+ releaseFocusTrap();
42
+ };
43
+ }
44
+ }, [open]);
45
+
46
+ return (
47
+ <expandableMenuContext.Provider value={[open, toggleOpen]}>
48
+ {children}
49
+ </expandableMenuContext.Provider>
50
+ );
51
+ }
52
+ NavbarExpandableMenu.displayName = "NavbarExpandableMenu";
53
+
54
+ /**
55
+ * Trigger
56
+ */
57
+ export interface NavbarExpandableMenuTriggerProps
58
+ extends Omit<React.HTMLAttributes<HTMLButtonElement>, "children"> {
59
+ whenClosedText: React.ReactNode;
60
+ whenClosedHelperTitle?: string;
61
+
62
+ whenOpenText: React.ReactNode;
63
+ whenOpenHelperTitle?: string;
64
+ }
65
+ export const NavbarExpandableMenuTrigger = forwardRef<
66
+ HTMLButtonElement,
67
+ NavbarExpandableMenuTriggerProps
68
+ >(
69
+ (
70
+ {
71
+ whenClosedText,
72
+ whenClosedHelperTitle,
73
+
74
+ whenOpenText,
75
+ whenOpenHelperTitle,
76
+
77
+ style,
78
+ className,
79
+ ...rest
80
+ },
81
+ ref,
82
+ ) => {
83
+ const [open, toggleOpen] = useNavbarExpendableMenuContext();
84
+
85
+ // Measure the width of the text when open and closed and choose the widest one
86
+ // This is to ensure that the button doesn't change size when the text changes
87
+ const [textWidth, setTextWidth] = useState<number | undefined>(undefined);
88
+ const measurementId = useId();
89
+ useEffect(() => {
90
+ const widthWhenOpen =
91
+ document.getElementById(`${measurementId}-when-open`)?.getBoundingClientRect().width ?? 0;
92
+ const widthWhenClosed =
93
+ document.getElementById(`${measurementId}-when-closed`)?.getBoundingClientRect().width ?? 0;
94
+
95
+ setTextWidth(widthWhenOpen < widthWhenClosed ? widthWhenClosed : widthWhenOpen);
96
+ }, [measurementId]);
97
+
98
+ const text = open ? whenOpenText : whenClosedText;
99
+ const title = open ? whenOpenHelperTitle : whenClosedHelperTitle;
100
+ const icon = open ? <CloseIcon /> : <MenuIcon />;
101
+
102
+ return (
103
+ <button
104
+ className={clsx("hds-navbar__item", className as undefined)}
105
+ onClick={toggleOpen}
106
+ ref={ref}
107
+ title={title}
108
+ type="button"
109
+ style={{ position: "relative", ...style }}
110
+ {...rest}
111
+ >
112
+ {/* Measurement elements, not shown to the user */}
113
+ <span
114
+ id={`${measurementId}-when-closed`}
115
+ aria-hidden
116
+ style={{
117
+ position: "absolute",
118
+ visibility: "hidden",
119
+ pointerEvents: "none",
120
+ whiteSpace: "nowrap",
121
+ }}
122
+ >
123
+ {whenOpenText}
124
+ </span>
125
+ <span
126
+ id={`${measurementId}-when-open`}
127
+ aria-hidden
128
+ style={{
129
+ position: "absolute",
130
+ visibility: "hidden",
131
+ pointerEvents: "none",
132
+ whiteSpace: "nowrap",
133
+ }}
134
+ >
135
+ {whenClosedText}
136
+ </span>
137
+
138
+ {/* Actual content */}
139
+ <span
140
+ style={{ width: textWidth, whiteSpace: "nowrap" }}
141
+ className={clsx("hds-navbar__item-responsive-text")}
142
+ >
143
+ {text}
144
+ </span>
145
+ <span style={{ width: 32, height: 32 }}>{icon}</span>
146
+ </button>
147
+ );
148
+ },
149
+ );
150
+ NavbarExpandableMenuTrigger.displayName = "Navbar.ExpandableMenuTrigger";
151
+
152
+ /**
153
+ * Content
154
+ */
155
+ export interface NavbarExpandableMenuContentProps {
156
+ children: React.ReactNode;
157
+ className?: string;
158
+ }
159
+ export const NavbarExpandableMenuContent = forwardRef<
160
+ HTMLDivElement,
161
+ NavbarExpandableMenuContentProps
162
+ >(({ children, className, ...rest }, ref) => {
163
+ const [open] = useNavbarExpendableMenuContext();
164
+ return (
165
+ <section
166
+ {...rest}
167
+ className={clsx("hds-navbar__expandable-menu-content", className as undefined)}
168
+ data-state={open ? "open" : "closed"}
169
+ {...{ inert: open ? undefined : "true" }}
170
+ ref={ref}
171
+ >
172
+ <div className={clsx("hds-navbar__expandable-menu-content-inner")}>{children}</div>
173
+ </section>
174
+ );
175
+ });
176
+ NavbarExpandableMenuContent.displayName = "Navbar.ExpandableMenuContent";
@@ -0,0 +1,99 @@
1
+ /* eslint-disable import/no-extraneous-dependencies -- storybook story */
2
+ import type { Meta, StoryObj } from "@storybook/react";
3
+ import { Accordion } from "../accordion";
4
+ import { Link } from "../link";
5
+ import { LinkList } from "../list";
6
+ import { ArticleContent } from "../styled-html/styled-html.stories";
7
+ import { Container } from "../layout";
8
+ import { Navbar } from ".";
9
+
10
+ const meta: Meta<typeof Navbar> = {
11
+ title: "🚧 Navbar",
12
+ component: Navbar,
13
+ parameters: {
14
+ layout: "fullscreen",
15
+ },
16
+ };
17
+
18
+ export default meta;
19
+
20
+ const globeIcon = (
21
+ <svg
22
+ aria-hidden
23
+ fill="none"
24
+ height="24"
25
+ viewBox="0 0 24 24"
26
+ width="24"
27
+ xmlns="http://www.w3.org/2000/svg"
28
+ >
29
+ <path
30
+ d="M12 19.3125C12.2602 19.3125 12.9492 19.0594 13.6734 17.6109C13.9828 16.9887 14.25 16.2328 14.4469 15.375H9.55312C9.75 16.2328 10.0172 16.9887 10.3266 17.6109C11.0508 19.0594 11.7398 19.3125 12 19.3125ZM9.27539 13.6875H14.7246C14.7809 13.1496 14.8125 12.5836 14.8125 12C14.8125 11.4164 14.7809 10.8504 14.7246 10.3125H9.27539C9.21914 10.8504 9.1875 11.4164 9.1875 12C9.1875 12.5836 9.21914 13.1496 9.27539 13.6875ZM9.55312 8.625H14.4469C14.25 7.76719 13.9828 7.01133 13.6734 6.38906C12.9492 4.94063 12.2602 4.6875 12 4.6875C11.7398 4.6875 11.0508 4.94063 10.3266 6.38906C10.0172 7.01133 9.75 7.76719 9.55312 8.625ZM16.4191 10.3125C16.4719 10.8574 16.4965 11.4234 16.4965 12C16.4965 12.5766 16.4684 13.1426 16.4191 13.6875H19.1156C19.2422 13.1461 19.3125 12.5801 19.3125 12C19.3125 11.4199 19.2457 10.8539 19.1156 10.3125H16.4227H16.4191ZM18.4863 8.625C17.734 7.18008 16.5141 6.01992 15.027 5.34141C15.5227 6.24141 15.9164 7.36289 16.173 8.625H18.4898H18.4863ZM7.82344 8.625C8.08008 7.36289 8.47383 6.24492 8.96953 5.34141C7.48242 6.01992 6.2625 7.18008 5.51016 8.625H7.82695H7.82344ZM4.88437 10.3125C4.75781 10.8539 4.6875 11.4199 4.6875 12C4.6875 12.5801 4.7543 13.1461 4.88437 13.6875H7.58086C7.52813 13.1426 7.50352 12.5766 7.50352 12C7.50352 11.4234 7.53164 10.8574 7.58086 10.3125H4.88437ZM15.027 18.6586C16.5141 17.9801 17.734 16.8199 18.4863 15.375H16.173C15.9164 16.6371 15.5227 17.7551 15.027 18.6586ZM8.97305 18.6586C8.47734 17.7586 8.08359 16.6371 7.82695 15.375H5.51016C6.2625 16.8199 7.48242 17.9801 8.96953 18.6586H8.97305ZM12 21C9.61305 21 7.32387 20.0518 5.63604 18.364C3.94821 16.6761 3 14.3869 3 12C3 9.61305 3.94821 7.32387 5.63604 5.63604C7.32387 3.94821 9.61305 3 12 3C14.3869 3 16.6761 3.94821 18.364 5.63604C20.0518 7.32387 21 9.61305 21 12C21 14.3869 20.0518 16.6761 18.364 18.364C16.6761 20.0518 14.3869 21 12 21Z"
31
+ fill="currentColor"
32
+ />
33
+ </svg>
34
+ );
35
+
36
+ const userIcon = (
37
+ <svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
38
+ <path
39
+ d="M368 208A160 160 0 1 0 48 208a160 160 0 1 0 320 0zM337.1 371.1C301.7 399.2 256.8 416 208 416C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208c0 48.8-16.8 93.7-44.9 129.1L505 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L337.1 371.1z"
40
+ fill="currentColor"
41
+ />
42
+ </svg>
43
+ );
44
+
45
+ type Story = StoryObj<typeof Navbar>;
46
+ export const Default: Story = {
47
+ render: () => (
48
+ <>
49
+ <Navbar>
50
+ <Navbar.Logo asChild>
51
+ <a href="https://www.posten.no/" title="Til forsiden" />
52
+ </Navbar.Logo>
53
+ <Navbar.Navigation>
54
+ <Navbar.LinkItem title="Link" href="https://www.posten.no/">
55
+ English
56
+ <Navbar.ItemIcon>{globeIcon}</Navbar.ItemIcon>
57
+ </Navbar.LinkItem>
58
+ <Navbar.ButtonItem title="Button">
59
+ Search
60
+ <Navbar.ItemIcon>{userIcon}</Navbar.ItemIcon>
61
+ </Navbar.ButtonItem>
62
+ <Navbar.ExpandableMenu>
63
+ <Navbar.ExpandableMenuTrigger whenClosedText="Meny" whenOpenText="Close" />
64
+ <Navbar.ExpandableMenuContent>
65
+ <Container>
66
+ <h2>Menu contents</h2>
67
+ <Accordion>
68
+ <Accordion.Item>
69
+ <Accordion.Header>Tjenester</Accordion.Header>
70
+ <Accordion.Content>
71
+ <LinkList>
72
+ <li>
73
+ <Link href="#">Post</Link>
74
+ </li>
75
+ <li>
76
+ <Link href="#">Pakker og gods</Link>
77
+ </li>
78
+ <li>
79
+ <Link href="#">Bud og ekspress</Link>
80
+ </li>
81
+ </LinkList>
82
+ </Accordion.Content>
83
+ </Accordion.Item>
84
+ </Accordion>
85
+ </Container>
86
+ </Navbar.ExpandableMenuContent>
87
+ </Navbar.ExpandableMenu>
88
+ </Navbar.Navigation>
89
+ </Navbar>
90
+ <Container as="main">
91
+ <h1>Some content to be hidden when the menu opens</h1>
92
+ {
93
+ // @ts-expect-error -- It's ok
94
+ ArticleContent.render({})
95
+ }
96
+ </Container>
97
+ </>
98
+ ),
99
+ };