@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
@@ -1,9 +1,9 @@
1
1
  import "../chunk-3D2MWIEX.mjs";
2
2
  import {
3
3
  WarningBanner
4
- } from "../chunk-XC3UHH2U.mjs";
5
- import "../chunk-3NL3TOZF.mjs";
6
- import "../chunk-ENKVTAJB.mjs";
4
+ } from "../chunk-3WVRY6CC.mjs";
5
+ import "../chunk-BCFV6VOE.mjs";
6
+ import "../chunk-AJWSQEDP.mjs";
7
7
  import "../chunk-R4SQKVDQ.mjs";
8
8
  export {
9
9
  WarningBanner
@@ -1,2 +1,8 @@
1
- export { WarningBannerProps_alias_3 as WarningBannerProps } from '../_tsup-dts-rollup';
2
- export { WarningBanner_alias_3 as WarningBanner } from '../_tsup-dts-rollup';
1
+ import type { ReactNode } from "react";
2
+ import React from "react";
3
+ export interface WarningBannerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
4
+ title: ReactNode;
5
+ description?: ReactNode;
6
+ }
7
+ export declare const WarningBanner: React.ForwardRefExoticComponent<WarningBannerProps & React.RefAttributes<HTMLDivElement>>;
8
+ //# sourceMappingURL=warning-banner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warning-banner.d.ts","sourceRoot":"","sources":["../../src/warning-banner/warning-banner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAA+B,MAAM,OAAO,CAAC;AAIpD,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAC7F,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,eAAO,MAAM,aAAa,2FAYzB,CAAC"}
@@ -60,6 +60,20 @@ var import_react = require("react");
60
60
  var import_typed_classname = require("@postenbring/hedwig-css/typed-classname");
61
61
  var import_react_slot = require("@radix-ui/react-slot");
62
62
  var import_jsx_runtime = require("react/jsx-runtime");
63
+ var BoxCloseButton = (0, import_react.forwardRef)(
64
+ (_a, ref) => {
65
+ var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
66
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
67
+ "button",
68
+ __spreadValues({
69
+ className: (0, import_typed_classname.clsx)("hds-box__close-button", className),
70
+ ref,
71
+ type: "button"
72
+ }, rest)
73
+ );
74
+ }
75
+ );
76
+ BoxCloseButton.displayName = "Box.CloseButton";
63
77
  var Box = (0, import_react.forwardRef)(
64
78
  (_a, ref) => {
65
79
  var _b = _a, {
@@ -114,24 +128,7 @@ var Box = (0, import_react.forwardRef)(
114
128
  }
115
129
  );
116
130
  Box.displayName = "Box";
117
- var BoxCloseButton = (0, import_react.forwardRef)(
118
- (_a, ref) => {
119
- var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
120
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
121
- "button",
122
- __spreadValues({
123
- className: (0, import_typed_classname.clsx)("hds-box__close-button", className),
124
- ref,
125
- type: "button"
126
- }, rest)
127
- );
128
- }
129
- );
130
- BoxCloseButton.displayName = "Box.CloseButton";
131
-
132
- // src/box/index.tsx
133
- var BoxComponent = Box;
134
- BoxComponent.CloseButton = BoxCloseButton;
131
+ Box.CloseButton = BoxCloseButton;
135
132
 
136
133
  // src/warning-banner/warning-banner.tsx
137
134
  var import_jsx_runtime2 = require("react/jsx-runtime");
@@ -139,7 +136,7 @@ var WarningBanner = (0, import_react2.forwardRef)(
139
136
  (_a, ref) => {
140
137
  var _b = _a, { title, description, className } = _b, rest = __objRest(_b, ["title", "description", "className"]);
141
138
  const expandable = !!description;
142
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(BoxComponent, __spreadProps(__spreadValues({}, rest), { className: (0, import_typed_classname2.clsx)("hds-warning-banner", className), ref, children: [
139
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(Box, __spreadProps(__spreadValues({}, rest), { className: (0, import_typed_classname2.clsx)("hds-warning-banner", className), ref, children: [
143
140
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(WarningBannerTitle, { variant: expandable ? "expandable" : "default", children: title }),
144
141
  expandable ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(WarningBannerDescription, { children: description }) : null
145
142
  ] }));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/warning-banner/warning-banner.tsx","../../src/box/box.tsx","../../src/box/index.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport React, { forwardRef, useState } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { Box } from \"../box\";\n\nexport interface WarningBannerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\"> {\n title: ReactNode;\n description?: ReactNode;\n}\n\nexport const WarningBanner = forwardRef<HTMLDivElement, WarningBannerProps>(\n ({ title, description, className, ...rest }, ref) => {\n const expandable = !!description;\n return (\n <Box {...rest} className={clsx(\"hds-warning-banner\", className as undefined)} ref={ref}>\n <WarningBannerTitle variant={expandable ? \"expandable\" : \"default\"}>\n {title}\n </WarningBannerTitle>\n {expandable ? <WarningBannerDescription>{description}</WarningBannerDescription> : null}\n </Box>\n );\n },\n);\nWarningBanner.displayName = \"WarningBanner\";\n\ntype WarningBannerTitleProps =\n | ({ variant: \"expandable\" } & React.ButtonHTMLAttributes<HTMLButtonElement>)\n | ({ variant: \"default\" } & React.HTMLAttributes<HTMLParagraphElement>);\n\nconst WarningBannerTitle = forwardRef<\n HTMLButtonElement | HTMLParagraphElement,\n WarningBannerTitleProps\n>(({ variant, children, className, ...rest }, ref) => {\n const [open, setOpen] = useState<boolean>(false);\n if (variant === \"expandable\") {\n return (\n <button\n {...(rest as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n className={clsx(\n \"hds-warning-banner__title\",\n \"hds-warning-banner__title-trigger\",\n { \"hds-warning-banner--closed\": !open },\n className as undefined,\n )}\n onClick={() => {\n setOpen((prev) => !prev);\n }}\n ref={ref as React.Ref<HTMLButtonElement>}\n type=\"button\"\n >\n <span>{children}</span>\n </button>\n );\n }\n return (\n <p\n {...(rest as React.HTMLAttributes<HTMLParagraphElement>)}\n className={clsx(\"hds-warning-banner__title\", className as undefined)}\n ref={ref as React.Ref<HTMLParagraphElement>}\n >\n {children}\n </p>\n );\n});\nWarningBannerTitle.displayName = \"WarningBannerTitle\";\n\ntype WarningBannerDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\nconst WarningBannerDescription = forwardRef<HTMLParagraphElement, WarningBannerDescriptionProps>(\n ({ className, ...rest }, ref) => {\n return (\n <p\n className={clsx(\"hds-warning-banner__description\", className as undefined)}\n ref={ref}\n {...rest}\n />\n );\n },\n);\nWarningBannerDescription.displayName = \"WarningBannerDescription\";\n","import { forwardRef, useCallback, useState } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { Slot, Slottable } from \"@radix-ui/react-slot\";\n\nexport interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode;\n\n /**\n * Color variant of the box\n *\n * @default \"light-grey\"\n */\n variant?: \"light-grey\" | \"lighter\" | \"white\" | \"warning\";\n\n /**\n * If `true`, a close button will be shown.\n * Use when you want to control the close button using the BoxCloseButton component.\n *\n * @default false\n */\n closeable?: boolean;\n\n /**\n * Callback fired when the component requests to be closed.\n * If not set, the component will be closed without any user interaction.\n *\n * If set, and the handler returns non-true value, the component will not be closed.\n * Use this if you want to control the closing of the component, using the `closed` prop\n *\n * If set, and the handler returns the true, the component will be closed.\n * Use this with `window.confirm()` to ask the user to confirm closing the component.\n */\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents -- It's fine, I want to have the boolean in the type\n onClose?: () => boolean | unknown;\n\n /**\n * If `true`, the box will be closed and hidden from view\n */\n closed?: boolean;\n\n /**\n * Props applied to the close button element.\n */\n closeButtonProps?: BoxCloseButtonProps;\n\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n *\n * @default false\n */\n asChild?: boolean;\n}\n\nexport const Box = forwardRef<HTMLDivElement, BoxProps>(\n (\n {\n asChild,\n variant,\n closeable = false,\n onClose: onCloseProp,\n closed: closedProp,\n closeButtonProps,\n children,\n className,\n ...rest\n },\n ref,\n ) => {\n const [closedState, setClosedState] = useState(false);\n const onClose = useCallback(() => {\n if (onCloseProp) {\n const result = onCloseProp();\n if (result === true) {\n setClosedState(true);\n }\n } else {\n setClosedState(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- I know better\n }, []);\n const closed = closedProp ?? closedState;\n const Component = asChild ? Slot : \"div\";\n\n return (\n <Component\n className={clsx(\n \"hds-box\",\n variant && `hds-box--${variant}`,\n { \"hds-box--closed\": closed },\n className as undefined,\n )}\n ref={ref}\n {...rest}\n >\n {closeable ? <BoxCloseButton onClick={onClose} {...closeButtonProps} /> : null}\n <Slottable>{children}</Slottable>\n </Component>\n );\n },\n);\nBox.displayName = \"Box\";\n\nexport type BoxCloseButtonProps = Omit<React.HTMLAttributes<HTMLButtonElement>, \"children\">;\nexport const BoxCloseButton = forwardRef<HTMLButtonElement, BoxCloseButtonProps>(\n ({ className, ...rest }, ref) => {\n return (\n <button\n className={clsx(\"hds-box__close-button\", className as undefined)}\n ref={ref}\n type=\"button\"\n {...rest}\n />\n );\n },\n);\nBoxCloseButton.displayName = \"Box.CloseButton\";\n","import { Box, BoxCloseButton } from \"./box\";\n\nconst BoxComponent = Box as typeof Box & {\n CloseButton: typeof BoxCloseButton;\n};\nBoxComponent.CloseButton = BoxCloseButton;\n\nexport { BoxComponent as Box, BoxCloseButton };\n\nexport type * from \"./box\";\n"],"mappings":"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","names":["import_react","import_typed_classname","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../src/warning-banner/warning-banner.tsx","../../src/box/box.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport React, { forwardRef, useState } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { Box } from \"../box\";\n\nexport interface WarningBannerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\"> {\n title: ReactNode;\n description?: ReactNode;\n}\n\nexport const WarningBanner = forwardRef<HTMLDivElement, WarningBannerProps>(\n ({ title, description, className, ...rest }, ref) => {\n const expandable = !!description;\n return (\n <Box {...rest} className={clsx(\"hds-warning-banner\", className as undefined)} ref={ref}>\n <WarningBannerTitle variant={expandable ? \"expandable\" : \"default\"}>\n {title}\n </WarningBannerTitle>\n {expandable ? <WarningBannerDescription>{description}</WarningBannerDescription> : null}\n </Box>\n );\n },\n);\nWarningBanner.displayName = \"WarningBanner\";\n\ntype WarningBannerTitleProps =\n | ({ variant: \"expandable\" } & React.ButtonHTMLAttributes<HTMLButtonElement>)\n | ({ variant: \"default\" } & React.HTMLAttributes<HTMLParagraphElement>);\n\nconst WarningBannerTitle = forwardRef<\n HTMLButtonElement | HTMLParagraphElement,\n WarningBannerTitleProps\n>(({ variant, children, className, ...rest }, ref) => {\n const [open, setOpen] = useState<boolean>(false);\n if (variant === \"expandable\") {\n return (\n <button\n {...(rest as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n className={clsx(\n \"hds-warning-banner__title\",\n \"hds-warning-banner__title-trigger\",\n { \"hds-warning-banner--closed\": !open },\n className as undefined,\n )}\n onClick={() => {\n setOpen((prev) => !prev);\n }}\n ref={ref as React.Ref<HTMLButtonElement>}\n type=\"button\"\n >\n <span>{children}</span>\n </button>\n );\n }\n return (\n <p\n {...(rest as React.HTMLAttributes<HTMLParagraphElement>)}\n className={clsx(\"hds-warning-banner__title\", className as undefined)}\n ref={ref as React.Ref<HTMLParagraphElement>}\n >\n {children}\n </p>\n );\n});\nWarningBannerTitle.displayName = \"WarningBannerTitle\";\n\ntype WarningBannerDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\nconst WarningBannerDescription = forwardRef<HTMLParagraphElement, WarningBannerDescriptionProps>(\n ({ className, ...rest }, ref) => {\n return (\n <p\n className={clsx(\"hds-warning-banner__description\", className as undefined)}\n ref={ref}\n {...rest}\n />\n );\n },\n);\nWarningBannerDescription.displayName = \"WarningBannerDescription\";\n","import { forwardRef, useCallback, useState } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { Slot, Slottable } from \"@radix-ui/react-slot\";\n\nexport type BoxCloseButtonProps = Omit<React.HTMLAttributes<HTMLButtonElement>, \"children\">;\nexport const BoxCloseButton = forwardRef<HTMLButtonElement, BoxCloseButtonProps>(\n ({ className, ...rest }, ref) => {\n return (\n <button\n className={clsx(\"hds-box__close-button\", className as undefined)}\n ref={ref}\n type=\"button\"\n {...rest}\n />\n );\n },\n);\nBoxCloseButton.displayName = \"Box.CloseButton\";\n\nexport interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode;\n\n /**\n * Color variant of the box\n *\n * @default \"light-grey\"\n */\n variant?: \"light-grey\" | \"lighter\" | \"white\" | \"warning\";\n\n /**\n * If `true`, a close button will be shown.\n * Use when you want to control the close button using the BoxCloseButton component.\n *\n * @default false\n */\n closeable?: boolean;\n\n /**\n * Callback fired when the component requests to be closed.\n * If not set, the component will be closed without any user interaction.\n *\n * If set, and the handler returns non-true value, the component will not be closed.\n * Use this if you want to control the closing of the component, using the `closed` prop\n *\n * If set, and the handler returns the true, the component will be closed.\n * Use this with `window.confirm()` to ask the user to confirm closing the component.\n */\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents -- It's fine, I want to have the boolean in the type\n onClose?: () => boolean | unknown;\n\n /**\n * If `true`, the box will be closed and hidden from view\n */\n closed?: boolean;\n\n /**\n * Props applied to the close button element.\n */\n closeButtonProps?: BoxCloseButtonProps;\n\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n *\n * @default false\n */\n asChild?: boolean;\n}\n\nexport const Box = forwardRef<HTMLDivElement, BoxProps>(\n (\n {\n asChild,\n variant,\n closeable = false,\n onClose: onCloseProp,\n closed: closedProp,\n closeButtonProps,\n children,\n className,\n ...rest\n },\n ref,\n ) => {\n const [closedState, setClosedState] = useState(false);\n const onClose = useCallback(() => {\n if (onCloseProp) {\n const result = onCloseProp();\n if (result === true) {\n setClosedState(true);\n }\n } else {\n setClosedState(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- I know better\n }, []);\n const closed = closedProp ?? closedState;\n const Component = asChild ? Slot : \"div\";\n\n return (\n <Component\n className={clsx(\n \"hds-box\",\n variant && `hds-box--${variant}`,\n { \"hds-box--closed\": closed },\n className as undefined,\n )}\n ref={ref}\n {...rest}\n >\n {closeable ? <BoxCloseButton onClick={onClose} {...closeButtonProps} /> : null}\n <Slottable>{children}</Slottable>\n </Component>\n );\n },\n) as BoxType;\nBox.displayName = \"Box\";\n\nBox.CloseButton = BoxCloseButton;\n\ntype BoxType = ReturnType<typeof forwardRef<HTMLDivElement, BoxProps>> & {\n CloseButton: typeof BoxCloseButton;\n};\n"],"mappings":"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","names":["import_react","import_typed_classname","import_jsx_runtime"]}
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  WarningBanner
3
- } from "../chunk-XC3UHH2U.mjs";
4
- import "../chunk-3NL3TOZF.mjs";
5
- import "../chunk-ENKVTAJB.mjs";
3
+ } from "../chunk-3WVRY6CC.mjs";
4
+ import "../chunk-BCFV6VOE.mjs";
5
+ import "../chunk-AJWSQEDP.mjs";
6
6
  import "../chunk-R4SQKVDQ.mjs";
7
7
  export {
8
8
  WarningBanner
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@postenbring/hedwig-react",
3
- "version": "0.0.81",
3
+ "version": "0.0.82",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",
@@ -9,10 +9,10 @@
9
9
  ],
10
10
  "license": "MIT",
11
11
  "files": [
12
- "dist/**"
12
+ "dist/**",
13
+ "src/**"
13
14
  ],
14
15
  "devDependencies": {
15
- "@microsoft/api-extractor": "7.43.2",
16
16
  "@types/react": "^18.3.1",
17
17
  "@types/react-dom": "^18.3.0",
18
18
  "react": "^18.3.1",
@@ -48,8 +48,12 @@
48
48
  "react"
49
49
  ],
50
50
  "scripts": {
51
- "build": "tsup",
52
- "dev": "tsup --watch",
51
+ "build": "pnpm run --sequential /^build:.*/",
52
+ "build:bundle": "tsup",
53
+ "build:types": "tsc -p tsconfig.types.json",
54
+ "dev": "pnpm run --parallel /^dev:.*/",
55
+ "dev:bundle": "tsup --watch",
56
+ "dev:types": "tsc -p tsconfig.types.json --watch",
53
57
  "lint": "eslint src/",
54
58
  "typecheck": "tsc --noEmit",
55
59
  "clean": "rm -rf .turbo node_modules dist"
@@ -0,0 +1,31 @@
1
+ import type { ReactNode } from "react";
2
+ import { forwardRef, useContext } from "react";
3
+ import { clsx } from "@postenbring/hedwig-css/typed-classname";
4
+ import { AccordionItemContext } from "./context";
5
+
6
+ export interface AccordionContentProps extends React.HTMLAttributes<HTMLDivElement> {
7
+ children: ReactNode;
8
+ }
9
+
10
+ export const AccordionContent = forwardRef<HTMLDivElement, AccordionContentProps>(
11
+ ({ children, className, ...rest }, ref) => {
12
+ const context = useContext(AccordionItemContext);
13
+ if (context === null) {
14
+ return null;
15
+ }
16
+ return (
17
+ <div
18
+ aria-hidden={!context.open}
19
+ data-state={context.open ? "open" : "closed"}
20
+ {...{ inert: context.open ? undefined : "true" }}
21
+ className={clsx("hds-accordion-item-content", className as undefined)}
22
+ ref={ref}
23
+ {...rest}
24
+ >
25
+ <div className={clsx("hds-accordion-item-content-inner")}>{children}</div>
26
+ </div>
27
+ );
28
+ },
29
+ );
30
+
31
+ AccordionContent.displayName = "Accordion.Content";
@@ -0,0 +1,36 @@
1
+ import type { MouseEvent, ReactNode } from "react";
2
+ import { forwardRef, useContext } from "react";
3
+ import { clsx } from "@postenbring/hedwig-css/typed-classname";
4
+ import { AccordionItemContext } from "./context";
5
+
6
+ export interface AccordionHeaderProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
7
+ children: ReactNode;
8
+ }
9
+
10
+ export const AccordionHeader = forwardRef<HTMLButtonElement, AccordionHeaderProps>(
11
+ ({ children, className, onClick, ...rest }, ref) => {
12
+ const context = useContext(AccordionItemContext);
13
+ if (context === null) {
14
+ return null;
15
+ }
16
+ const expandOrCollapse = (e: MouseEvent<HTMLButtonElement>) => {
17
+ context.setOpen(!context.open);
18
+ onClick?.(e);
19
+ };
20
+ return (
21
+ <button
22
+ {...rest}
23
+ aria-expanded={context.open}
24
+ data-state={context.open ? "open" : "closed"}
25
+ className={clsx("hds-accordion-item-header", className as undefined)}
26
+ onClick={expandOrCollapse}
27
+ ref={ref}
28
+ type="button"
29
+ >
30
+ <span>{children}</span>
31
+ </button>
32
+ );
33
+ },
34
+ );
35
+
36
+ AccordionHeader.displayName = "Accordion.Header";
@@ -0,0 +1,62 @@
1
+ import type { ReactElement } from "react";
2
+ import { forwardRef, useState } from "react";
3
+ import { clsx } from "@postenbring/hedwig-css/typed-classname";
4
+ import { AccordionItemContext } from "./context";
5
+ import type { AccordionHeaderProps } from "./accordion-header";
6
+ import type { AccordionContentProps } from "./accordion-content";
7
+
8
+ export type AccordionItemChildrenType =
9
+ | ReactElement<AccordionHeaderProps>
10
+ | ReactElement<AccordionContentProps>;
11
+
12
+ export interface AccordionItemProps extends React.HTMLAttributes<HTMLDivElement> {
13
+ /**
14
+ * Control the open state of the accordion manually
15
+ */
16
+ open?: boolean;
17
+
18
+ /**
19
+ * Use with open to control the open state of the accordion manually
20
+ */
21
+ onOpenChange?: (open: boolean) => void;
22
+
23
+ /**
24
+ * If the accordion should be open by default
25
+ */
26
+ defaultOpen?: boolean;
27
+
28
+ /**
29
+ * Accepts type of Accordion.Content and Accordion.Header
30
+ */
31
+ children: AccordionItemChildrenType[];
32
+ }
33
+
34
+ export const AccordionItem = forwardRef<HTMLDivElement, AccordionItemProps>(
35
+ ({ children, defaultOpen, open: outerOpen, onOpenChange, className, ...rest }, ref) => {
36
+ const [innerOpen, setInnerOpen] = useState(defaultOpen ?? false);
37
+ const open = outerOpen ?? innerOpen;
38
+
39
+ const handleOpen = () => {
40
+ if (outerOpen !== undefined) {
41
+ onOpenChange && onOpenChange(!open);
42
+ } else {
43
+ setInnerOpen(!open);
44
+ }
45
+ };
46
+
47
+ return (
48
+ <div
49
+ {...rest}
50
+ data-state={open ? "open" : "closed"}
51
+ className={clsx("hds-accordion-item", className as undefined)}
52
+ ref={ref}
53
+ >
54
+ <AccordionItemContext.Provider value={{ open, setOpen: handleOpen }}>
55
+ {children}
56
+ </AccordionItemContext.Provider>
57
+ </div>
58
+ );
59
+ },
60
+ );
61
+
62
+ AccordionItem.displayName = "Accordion.Item";
@@ -0,0 +1,154 @@
1
+ /* eslint-disable import/no-extraneous-dependencies -- storybook story */
2
+ import type { Meta, StoryObj } from "@storybook/react";
3
+ import { useState } from "react";
4
+ import { Link } from "../link";
5
+ import { UnorderedList } from "../list";
6
+ import { Accordion } from ".";
7
+
8
+ const meta: Meta<typeof Accordion> = {
9
+ title: "Accordion",
10
+ component: Accordion,
11
+ args: {
12
+ children: (
13
+ <>
14
+ <Accordion.Item>
15
+ <Accordion.Header>Professional accordion title</Accordion.Header>
16
+ <Accordion.Content>
17
+ This is the simplest form of accordion body. Can be extensive.
18
+ </Accordion.Content>
19
+ </Accordion.Item>
20
+ <Accordion.Item>
21
+ <Accordion.Header>Yet another POAT with &laquo;advanced&raquo; content</Accordion.Header>
22
+ <Accordion.Content>
23
+ <h4>Hello</h4>
24
+ <div>
25
+ <p>
26
+ This is some really, really exciting stuff with{" "}
27
+ <Link href="https://www.posten.no">a link</Link> and all sorts of things like a
28
+ list, even!
29
+ </p>
30
+ <UnorderedList>
31
+ <li>Unordered</li>
32
+ <li>Like</li>
33
+ <li>You have</li>
34
+ <li>Never seen</li>
35
+ </UnorderedList>
36
+ </div>
37
+ </Accordion.Content>
38
+ </Accordion.Item>
39
+ </>
40
+ ),
41
+ },
42
+ };
43
+
44
+ type Story = StoryObj<typeof Accordion>;
45
+
46
+ export const MultipleItems: Story = {
47
+ name: "Multiple items",
48
+ };
49
+
50
+ export const JustOneItem: Story = {
51
+ name: "Just one item",
52
+ args: {
53
+ children: (
54
+ <Accordion.Item>
55
+ <Accordion.Header>Professional accordion title</Accordion.Header>
56
+ <Accordion.Content>
57
+ This is the simplest form of accordion body. Can be extensive.
58
+ </Accordion.Content>
59
+ </Accordion.Item>
60
+ ),
61
+ },
62
+ };
63
+
64
+ export const NoIndent: Story = {
65
+ args: {
66
+ indent: false,
67
+ children: (
68
+ <Accordion.Item>
69
+ <Accordion.Header>Professional accordion title</Accordion.Header>
70
+ <Accordion.Content>
71
+ This is the simplest form of accordion body. Can be extensive.
72
+ </Accordion.Content>
73
+ </Accordion.Item>
74
+ ),
75
+ },
76
+ };
77
+
78
+ export const DefaultOpen: Story = {
79
+ args: {
80
+ children: (
81
+ <>
82
+ <Accordion.Item defaultOpen>
83
+ <Accordion.Header>Professional accordion title</Accordion.Header>
84
+ <Accordion.Content>
85
+ This is the simplest form of accordion body. Can be extensive.
86
+ </Accordion.Content>
87
+ </Accordion.Item>
88
+ <Accordion.Item>
89
+ <Accordion.Header>Professional accordion title</Accordion.Header>
90
+ <Accordion.Content>
91
+ This is the simplest form of accordion body. Can be extensive.
92
+ </Accordion.Content>
93
+ </Accordion.Item>
94
+ </>
95
+ ),
96
+ },
97
+ };
98
+
99
+ export const SingleAccordion: Story = {
100
+ name: "Only one open at the same time",
101
+ render: () => {
102
+ // eslint-disable-next-line react-hooks/rules-of-hooks -- it's ok
103
+ const [state, setState] = useState({ one: false, two: false, three: false });
104
+ function toggle(key: keyof typeof state) {
105
+ setState((prev) => {
106
+ return {
107
+ one: key === "one" ? !prev.one : false,
108
+ two: key === "two" ? !prev.two : false,
109
+ three: key === "three" ? !prev.three : false,
110
+ };
111
+ });
112
+ }
113
+
114
+ return (
115
+ <Accordion>
116
+ <Accordion.Item
117
+ onOpenChange={() => {
118
+ toggle("one");
119
+ }}
120
+ open={state.one}
121
+ >
122
+ <Accordion.Header>One</Accordion.Header>
123
+ <Accordion.Content>
124
+ Lorum ipsum dolor sit amet, consectetur adipiscing elit. Donec euismod, nisl eget
125
+ </Accordion.Content>
126
+ </Accordion.Item>
127
+ <Accordion.Item
128
+ onOpenChange={() => {
129
+ toggle("two");
130
+ }}
131
+ open={state.two}
132
+ >
133
+ <Accordion.Header>Two</Accordion.Header>
134
+ <Accordion.Content>
135
+ Lorum ipsum dolor sit amet, consectetur adipiscing elit. Donec euismod, nisl eget
136
+ </Accordion.Content>
137
+ </Accordion.Item>
138
+ <Accordion.Item
139
+ onOpenChange={() => {
140
+ toggle("three");
141
+ }}
142
+ open={state.three}
143
+ >
144
+ <Accordion.Header>Three</Accordion.Header>
145
+ <Accordion.Content>
146
+ Lorum ipsum dolor sit amet, consectetur adipiscing elit. Donec euismod, nisl eget
147
+ </Accordion.Content>
148
+ </Accordion.Item>
149
+ </Accordion>
150
+ );
151
+ },
152
+ };
153
+
154
+ export default meta;
@@ -0,0 +1,68 @@
1
+ import type { ReactElement } from "react";
2
+ import { forwardRef } from "react";
3
+ import { clsx } from "@postenbring/hedwig-css/typed-classname";
4
+ import { AccordionItem, type AccordionItemProps } from "./accordion-item";
5
+ import { AccordionHeader } from "./accordion-header";
6
+ import { AccordionContent } from "./accordion-content";
7
+
8
+ export interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {
9
+ /**
10
+ * Accepts type of <AccordionItem/>
11
+ */
12
+ children: ReactElement<AccordionItemProps> | ReactElement<AccordionItemProps>[];
13
+
14
+ /**
15
+ * Adds padding to the left of the accordion
16
+ */
17
+ indent?: boolean;
18
+ }
19
+
20
+ /**
21
+ * Displays collapsible content sections
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * <Accordion>
26
+ * <Accordion.Item defaultOpen>
27
+ * <Accordion.Header>Item one</Accordion.Header>
28
+ * <Accordion.Content>
29
+ * Some content
30
+ * </Accordion.Content>
31
+ * </Accordion.Item>
32
+ * <Accordion.Item>
33
+ * <Accordion.Header>Item two</Accordion.Header>
34
+ * <Accordion.Content>
35
+ * Some more content
36
+ * </Accordion.Content>
37
+ * </Accordion.Item>
38
+ * </Accordion>
39
+ * ```
40
+ */
41
+ export const Accordion = forwardRef<HTMLDivElement, AccordionProps>(
42
+ ({ children, className, indent = true, ...rest }, ref) => {
43
+ return (
44
+ <div
45
+ {...rest}
46
+ className={clsx(
47
+ "hds-accordion",
48
+ !indent && "hds-accordion--no-indent",
49
+ className as undefined,
50
+ )}
51
+ ref={ref}
52
+ >
53
+ {children}
54
+ </div>
55
+ );
56
+ },
57
+ ) as AccordionType;
58
+ Accordion.displayName = "Accordion";
59
+
60
+ Accordion.Item = AccordionItem;
61
+ Accordion.Header = AccordionHeader;
62
+ Accordion.Content = AccordionContent;
63
+
64
+ type AccordionType = ReturnType<typeof forwardRef<HTMLDivElement, AccordionProps>> & {
65
+ Item: typeof AccordionItem;
66
+ Header: typeof AccordionHeader;
67
+ Content: typeof AccordionContent;
68
+ };
@@ -0,0 +1,8 @@
1
+ import { createContext } from "react";
2
+
3
+ export interface AccordionItemContextProps {
4
+ open: boolean;
5
+ setOpen: (open: boolean) => void;
6
+ }
7
+
8
+ export const AccordionItemContext = createContext<AccordionItemContextProps | null>(null);
@@ -0,0 +1,9 @@
1
+ export { Accordion } from "./accordion";
2
+ export { AccordionItem } from "./accordion-item";
3
+ export { AccordionHeader } from "./accordion-header";
4
+ export { AccordionContent } from "./accordion-content";
5
+
6
+ export type * from "./accordion";
7
+ export type * from "./accordion-item";
8
+ export type * from "./accordion-header";
9
+ export type * from "./accordion-content";
@@ -0,0 +1,44 @@
1
+ /* eslint-disable import/no-extraneous-dependencies -- storybook story */
2
+ import type { Meta, StoryObj } from "@storybook/react";
3
+ import { Box } from "../box";
4
+ import { Badge, DarkBadge, WhiteBadge, WarningBadge } from ".";
5
+
6
+ const meta: Meta<typeof Badge> = {
7
+ title: "Badge",
8
+ component: Badge,
9
+ };
10
+
11
+ export default meta;
12
+
13
+ type Story = StoryObj<typeof Badge>;
14
+
15
+ export const Lighter: Story = {
16
+ args: {
17
+ children: "Default badge",
18
+ },
19
+ };
20
+
21
+ export const Dark: Story = {
22
+ args: {
23
+ children: "Dark badge",
24
+ },
25
+ render: (props) => <DarkBadge {...props} />,
26
+ };
27
+
28
+ export const White: Story = {
29
+ args: {
30
+ children: "White badge",
31
+ },
32
+ render: (props) => (
33
+ <Box>
34
+ <WhiteBadge {...props} />
35
+ </Box>
36
+ ),
37
+ };
38
+
39
+ export const Warning: Story = {
40
+ args: {
41
+ children: "Warning badge",
42
+ },
43
+ render: (props) => <WarningBadge {...props} />,
44
+ };
@@ -0,0 +1,63 @@
1
+ import { clsx } from "@postenbring/hedwig-css/typed-classname";
2
+ import { Slot } from "@radix-ui/react-slot";
3
+ import { forwardRef } from "react";
4
+
5
+ export interface BadgeProps extends React.AnchorHTMLAttributes<HTMLSpanElement> {
6
+ children: React.ReactNode;
7
+
8
+ /**
9
+ * Font size of the badge
10
+ *
11
+ * @default "small"
12
+ */
13
+ size?: "small" | "smaller";
14
+
15
+ /**
16
+ * Change the default rendered element for the one passed as a child, merging their props and behavior.
17
+ *
18
+ * @default false
19
+ */
20
+ asChild?: boolean;
21
+ }
22
+
23
+ const Badge = forwardRef<
24
+ HTMLSpanElement,
25
+ BadgeProps & { variant: "lighter" | "dark" | "white" | "warning" }
26
+ >(({ children, asChild, variant, size = "small", className, ...rest }, ref) => {
27
+ const Component = asChild ? Slot : "span";
28
+ return (
29
+ <Component
30
+ ref={ref}
31
+ className={clsx(
32
+ "hds-badge",
33
+ `hds-badge--${size}`,
34
+ `hds-badge--${variant}`,
35
+ className as undefined,
36
+ )}
37
+ {...rest}
38
+ >
39
+ {children}
40
+ </Component>
41
+ );
42
+ });
43
+ Badge.displayName = "Badge";
44
+
45
+ export const LighterBadge = forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {
46
+ return <Badge {...props} ref={ref} variant="lighter" />;
47
+ });
48
+ LighterBadge.displayName = "LighterBadge";
49
+
50
+ export const DarkBadge = forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {
51
+ return <Badge {...props} ref={ref} variant="dark" />;
52
+ });
53
+ DarkBadge.displayName = "DarkBadge";
54
+
55
+ export const WhiteBadge = forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {
56
+ return <Badge {...props} ref={ref} variant="white" />;
57
+ });
58
+ WhiteBadge.displayName = "WhiteBadge";
59
+
60
+ export const WarningBadge = forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {
61
+ return <Badge {...props} ref={ref} variant="warning" />;
62
+ });
63
+ WarningBadge.displayName = "WarningBadge";
@@ -0,0 +1,3 @@
1
+ export { LighterBadge as Badge, DarkBadge, WarningBadge, WhiteBadge } from "./badge";
2
+
3
+ export type * from "./badge";