@postenbring/hedwig-react 0.0.81 → 0.0.83

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 (580) 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-6R7AXKBR.mjs → chunk-35TXKAUH.mjs} +2 -2
  52. package/dist/chunk-35TXKAUH.mjs.map +1 -0
  53. package/dist/{chunk-XC3UHH2U.mjs → chunk-3WVRY6CC.mjs} +4 -4
  54. package/dist/{chunk-XC3UHH2U.mjs.map → chunk-3WVRY6CC.mjs.map} +1 -1
  55. package/dist/{chunk-67TP3E2D.mjs → chunk-6FBPKLWB.mjs} +3 -3
  56. package/dist/chunk-6FBPKLWB.mjs.map +1 -0
  57. package/dist/chunk-7YWW46R3.mjs +1 -0
  58. package/dist/{chunk-ENKVTAJB.mjs → chunk-AJWSQEDP.mjs} +18 -17
  59. package/dist/chunk-AJWSQEDP.mjs.map +1 -0
  60. package/dist/chunk-ARHJZUZG.mjs +1 -0
  61. package/dist/{chunk-4WQWU5TL.mjs → chunk-AXQCREUJ.mjs} +2 -2
  62. package/dist/chunk-AXQCREUJ.mjs.map +1 -0
  63. package/dist/chunk-BCFV6VOE.mjs +1 -0
  64. package/dist/{chunk-F2C3KZFX.mjs → chunk-BVPSZ3JI.mjs} +2 -2
  65. package/dist/chunk-BVPSZ3JI.mjs.map +1 -0
  66. package/dist/{chunk-7JRS4WEB.mjs → chunk-C34HEQXO.mjs} +33 -29
  67. package/dist/chunk-C34HEQXO.mjs.map +1 -0
  68. package/dist/chunk-CYDWEPFL.mjs +1 -0
  69. package/dist/{chunk-PLXB3TNA.mjs → chunk-D7QPJIUZ.mjs} +5 -5
  70. package/dist/{chunk-PLXB3TNA.mjs.map → chunk-D7QPJIUZ.mjs.map} +1 -1
  71. package/dist/{chunk-GSJPTZT3.mjs → chunk-FC4CEI2V.mjs} +34 -19
  72. package/dist/chunk-FC4CEI2V.mjs.map +1 -0
  73. package/dist/chunk-FYFJ75NX.mjs +1 -0
  74. package/dist/chunk-FYFJ75NX.mjs.map +1 -0
  75. package/dist/chunk-G65EYZFQ.mjs +1 -0
  76. package/dist/chunk-G65EYZFQ.mjs.map +1 -0
  77. package/dist/chunk-H3E546OT.mjs +1 -0
  78. package/dist/chunk-H3E546OT.mjs.map +1 -0
  79. package/dist/chunk-HQVL3ZJ2.mjs +1 -0
  80. package/dist/chunk-HQVL3ZJ2.mjs.map +1 -0
  81. package/dist/{chunk-KPGSRU4I.mjs → chunk-M3Y3XOGC.mjs} +13 -1
  82. package/dist/chunk-M3Y3XOGC.mjs.map +1 -0
  83. package/dist/{chunk-CIHZDFSQ.mjs → chunk-NU6OSFAU.mjs} +20 -9
  84. package/dist/chunk-NU6OSFAU.mjs.map +1 -0
  85. package/dist/{chunk-XUWZ4HGD.mjs → chunk-OGZ2NBMH.mjs} +49 -46
  86. package/dist/chunk-OGZ2NBMH.mjs.map +1 -0
  87. package/dist/{chunk-3MQKXNZ6.mjs → chunk-QZZIOBF4.mjs} +13 -1
  88. package/dist/chunk-QZZIOBF4.mjs.map +1 -0
  89. package/dist/chunk-RC76SXBP.mjs +1 -0
  90. package/dist/chunk-RC76SXBP.mjs.map +1 -0
  91. package/dist/{chunk-TQDUBRCZ.mjs → chunk-SQ63E7KM.mjs} +24 -22
  92. package/dist/chunk-SQ63E7KM.mjs.map +1 -0
  93. package/dist/{chunk-DEX36MFK.mjs → chunk-TDXU2IC6.mjs} +3 -4
  94. package/dist/chunk-TDXU2IC6.mjs.map +1 -0
  95. package/dist/{chunk-ES6ISHOV.mjs → chunk-UP3M3NEZ.mjs} +14 -13
  96. package/dist/{chunk-ES6ISHOV.mjs.map → chunk-UP3M3NEZ.mjs.map} +1 -1
  97. package/dist/chunk-ZKMFJZSH.mjs +1 -0
  98. package/dist/chunk-ZKMFJZSH.mjs.map +1 -0
  99. package/dist/description-list/description-list.d.ts +42 -2
  100. package/dist/description-list/description-list.d.ts.map +1 -0
  101. package/dist/description-list/index.d.ts +3 -2
  102. package/dist/description-list/index.d.ts.map +1 -0
  103. package/dist/footer/footer.d.ts +67 -7
  104. package/dist/footer/footer.d.ts.map +1 -0
  105. package/dist/footer/footer.js +79 -76
  106. package/dist/footer/footer.js.map +1 -1
  107. package/dist/footer/footer.mjs +4 -4
  108. package/dist/footer/index.d.ts +3 -7
  109. package/dist/footer/index.d.ts.map +1 -0
  110. package/dist/footer/index.js +80 -84
  111. package/dist/footer/index.js.map +1 -1
  112. package/dist/footer/index.mjs +7 -8
  113. package/dist/form/checkbox/checkbox.d.ts +28 -2
  114. package/dist/form/checkbox/checkbox.d.ts.map +1 -0
  115. package/dist/form/checkbox/index.d.ts +3 -2
  116. package/dist/form/checkbox/index.d.ts.map +1 -0
  117. package/dist/form/date-picker/date-picker.d.ts +33 -2
  118. package/dist/form/date-picker/date-picker.d.ts.map +1 -0
  119. package/dist/form/date-picker/date-picker.js +1 -1
  120. package/dist/form/date-picker/date-picker.js.map +1 -1
  121. package/dist/form/date-picker/date-picker.mjs +2 -2
  122. package/dist/form/date-picker/index.d.ts +3 -2
  123. package/dist/form/date-picker/index.d.ts.map +1 -0
  124. package/dist/form/date-picker/index.js +1 -1
  125. package/dist/form/date-picker/index.js.map +1 -1
  126. package/dist/form/date-picker/index.mjs +2 -2
  127. package/dist/form/error-message/error-message.d.ts +8 -2
  128. package/dist/form/error-message/error-message.d.ts.map +1 -0
  129. package/dist/form/error-message/index.d.ts +3 -2
  130. package/dist/form/error-message/index.d.ts.map +1 -0
  131. package/dist/form/fieldset/fieldset.d.ts +22 -3
  132. package/dist/form/fieldset/fieldset.d.ts.map +1 -0
  133. package/dist/form/fieldset/index.d.ts +3 -3
  134. package/dist/form/fieldset/index.d.ts.map +1 -0
  135. package/dist/form/index.d.ts +9 -20
  136. package/dist/form/index.d.ts.map +1 -0
  137. package/dist/form/index.js +1 -1
  138. package/dist/form/index.js.map +1 -1
  139. package/dist/form/index.mjs +2 -2
  140. package/dist/form/input/index.d.ts +3 -2
  141. package/dist/form/input/index.d.ts.map +1 -0
  142. package/dist/form/input/input.d.ts +5 -2
  143. package/dist/form/input/input.d.ts.map +1 -0
  144. package/dist/form/input-group/index.d.ts +3 -2
  145. package/dist/form/input-group/index.d.ts.map +1 -0
  146. package/dist/form/input-group/input-group.d.ts +27 -2
  147. package/dist/form/input-group/input-group.d.ts.map +1 -0
  148. package/dist/form/radiobutton/index.d.ts +5 -5
  149. package/dist/form/radiobutton/index.d.ts.map +1 -0
  150. package/dist/form/radiobutton/radiobutton.d.ts +17 -2
  151. package/dist/form/radiobutton/radiobutton.d.ts.map +1 -0
  152. package/dist/form/radiobutton/radiogroup.d.ts +24 -3
  153. package/dist/form/radiobutton/radiogroup.d.ts.map +1 -0
  154. package/dist/form/select/index.d.ts +3 -2
  155. package/dist/form/select/index.d.ts.map +1 -0
  156. package/dist/form/select/select.d.ts +9 -2
  157. package/dist/form/select/select.d.ts.map +1 -0
  158. package/dist/form/textarea/index.d.ts +3 -2
  159. package/dist/form/textarea/index.d.ts.map +1 -0
  160. package/dist/form/textarea/textarea.d.ts +5 -2
  161. package/dist/form/textarea/textarea.d.ts.map +1 -0
  162. package/dist/help-text/help-text.d.ts +51 -1
  163. package/dist/help-text/help-text.d.ts.map +1 -0
  164. package/dist/help-text/help-text.js +17 -20
  165. package/dist/help-text/help-text.js.map +1 -1
  166. package/dist/help-text/help-text.mjs +3 -3
  167. package/dist/help-text/index.d.ts +3 -1
  168. package/dist/help-text/index.d.ts.map +1 -0
  169. package/dist/help-text/index.js +17 -20
  170. package/dist/help-text/index.js.map +1 -1
  171. package/dist/help-text/index.mjs +3 -3
  172. package/dist/index-no-css.d.ts +26 -128
  173. package/dist/index-no-css.d.ts.map +1 -0
  174. package/dist/index-no-css.js +385 -398
  175. package/dist/index-no-css.js.map +1 -1
  176. package/dist/index-no-css.mjs +70 -68
  177. package/dist/index.d.ts +11 -128
  178. package/dist/index.d.ts.map +1 -0
  179. package/dist/index.js +385 -398
  180. package/dist/index.js.map +1 -1
  181. package/dist/index.mjs +70 -68
  182. package/dist/index.mjs.map +1 -1
  183. package/dist/layout/container/container.d.ts +23 -2
  184. package/dist/layout/container/container.d.ts.map +1 -0
  185. package/dist/layout/grid/grid.d.ts +101 -4
  186. package/dist/layout/grid/grid.d.ts.map +1 -0
  187. package/dist/layout/grid/grid.js +11 -10
  188. package/dist/layout/grid/grid.js.map +1 -1
  189. package/dist/layout/grid/grid.mjs +1 -1
  190. package/dist/layout/grid/index.d.ts +3 -4
  191. package/dist/layout/grid/index.d.ts.map +1 -0
  192. package/dist/layout/grid/index.js +12 -15
  193. package/dist/layout/grid/index.js.map +1 -1
  194. package/dist/layout/grid/index.mjs +4 -5
  195. package/dist/layout/index.d.ts +4 -10
  196. package/dist/layout/index.d.ts.map +1 -0
  197. package/dist/layout/index.js +12 -15
  198. package/dist/layout/index.js.map +1 -1
  199. package/dist/layout/index.mjs +4 -5
  200. package/dist/layout/responsive.d.ts +10 -2
  201. package/dist/layout/responsive.d.ts.map +1 -0
  202. package/dist/layout/spacing.d.ts +33 -3
  203. package/dist/layout/spacing.d.ts.map +1 -0
  204. package/dist/layout/stack/index.d.ts +3 -4
  205. package/dist/layout/stack/index.d.ts.map +1 -0
  206. package/dist/layout/stack/stack.d.ts +62 -4
  207. package/dist/layout/stack/stack.d.ts.map +1 -0
  208. package/dist/link/index.d.ts +3 -2
  209. package/dist/link/index.d.ts.map +1 -0
  210. package/dist/link/link.d.ts +20 -2
  211. package/dist/link/link.d.ts.map +1 -0
  212. package/dist/list/index.d.ts +5 -5
  213. package/dist/list/index.d.ts.map +1 -0
  214. package/dist/list/link-list.d.ts +12 -2
  215. package/dist/list/link-list.d.ts.map +1 -0
  216. package/dist/list/list.d.ts +40 -3
  217. package/dist/list/list.d.ts.map +1 -0
  218. package/dist/message/index.d.ts +3 -3
  219. package/dist/message/index.d.ts.map +1 -0
  220. package/dist/message/index.js +36 -38
  221. package/dist/message/index.js.map +1 -1
  222. package/dist/message/index.mjs +5 -6
  223. package/dist/message/message.d.ts +36 -4
  224. package/dist/message/message.d.ts.map +1 -0
  225. package/dist/message/message.js +35 -32
  226. package/dist/message/message.js.map +1 -1
  227. package/dist/message/message.mjs +2 -2
  228. package/dist/modal/index.d.ts +3 -5
  229. package/dist/modal/index.d.ts.map +1 -0
  230. package/dist/modal/index.js +61 -63
  231. package/dist/modal/index.js.map +1 -1
  232. package/dist/modal/index.mjs +6 -7
  233. package/dist/modal/modal.d.ts +81 -5
  234. package/dist/modal/modal.d.ts.map +1 -0
  235. package/dist/modal/modal.js +60 -56
  236. package/dist/modal/modal.js.map +1 -1
  237. package/dist/modal/modal.mjs +3 -3
  238. package/dist/navbar/icons.d.ts +3 -2
  239. package/dist/navbar/icons.d.ts.map +1 -0
  240. package/dist/navbar/index.d.ts +4 -13
  241. package/dist/navbar/index.d.ts.map +1 -0
  242. package/dist/navbar/index.js +145 -146
  243. package/dist/navbar/index.js.map +1 -1
  244. package/dist/navbar/index.mjs +6 -7
  245. package/dist/navbar/navbar-expandable-menu.d.ts +35 -7
  246. package/dist/navbar/navbar-expandable-menu.d.ts.map +1 -0
  247. package/dist/navbar/navbar-expandable-menu.js +1 -1
  248. package/dist/navbar/navbar-expandable-menu.js.map +1 -1
  249. package/dist/navbar/navbar-expandable-menu.mjs +2 -2
  250. package/dist/navbar/navbar.d.ts +130 -9
  251. package/dist/navbar/navbar.d.ts.map +1 -0
  252. package/dist/navbar/navbar.js +237 -28
  253. package/dist/navbar/navbar.js.map +1 -1
  254. package/dist/navbar/navbar.mjs +4 -1
  255. package/dist/show-more/index.d.ts +5 -4
  256. package/dist/show-more/index.d.ts.map +1 -0
  257. package/dist/show-more/index.js +3 -3
  258. package/dist/show-more/index.js.map +1 -1
  259. package/dist/show-more/index.mjs +2 -2
  260. package/dist/show-more/show-more.d.ts +42 -2
  261. package/dist/show-more/show-more.d.ts.map +1 -0
  262. package/dist/skeleton/index.d.ts +3 -2
  263. package/dist/skeleton/index.d.ts.map +1 -0
  264. package/dist/skeleton/skeleton.d.ts +67 -2
  265. package/dist/skeleton/skeleton.d.ts.map +1 -0
  266. package/dist/step-indicator/index.d.ts +3 -1
  267. package/dist/step-indicator/index.d.ts.map +1 -0
  268. package/dist/step-indicator/step-indicator.d.ts +36 -1
  269. package/dist/step-indicator/step-indicator.d.ts.map +1 -0
  270. package/dist/styled-html/index.d.ts +3 -2
  271. package/dist/styled-html/index.d.ts.map +1 -0
  272. package/dist/styled-html/styled-html.d.ts +36 -2
  273. package/dist/styled-html/styled-html.d.ts.map +1 -0
  274. package/dist/table/index.d.ts +3 -1
  275. package/dist/table/index.d.ts.map +1 -0
  276. package/dist/table/table.d.ts +25 -1
  277. package/dist/table/table.d.ts.map +1 -0
  278. package/dist/tabs/context.d.ts +8 -3
  279. package/dist/tabs/context.d.ts.map +1 -0
  280. package/dist/tabs/index.d.ts +7 -10
  281. package/dist/tabs/index.d.ts.map +1 -0
  282. package/dist/tabs/index.js +35 -38
  283. package/dist/tabs/index.js.map +1 -1
  284. package/dist/tabs/index.mjs +6 -6
  285. package/dist/tabs/tabs-content.d.ts +26 -4
  286. package/dist/tabs/tabs-content.d.ts.map +1 -0
  287. package/dist/tabs/tabs-list.d.ts +21 -4
  288. package/dist/tabs/tabs-list.d.ts.map +1 -0
  289. package/dist/tabs/tabs-list.js +1 -1
  290. package/dist/tabs/tabs-list.js.map +1 -1
  291. package/dist/tabs/tabs-list.mjs +2 -2
  292. package/dist/tabs/tabs.d.ts +26 -2
  293. package/dist/tabs/tabs.d.ts.map +1 -0
  294. package/dist/tabs/tabs.js +205 -8
  295. package/dist/tabs/tabs.js.map +1 -1
  296. package/dist/tabs/tabs.mjs +4 -1
  297. package/dist/text/index.d.ts +4 -2
  298. package/dist/text/index.d.ts.map +1 -0
  299. package/dist/text/text.d.ts +58 -2
  300. package/dist/text/text.d.ts.map +1 -0
  301. package/dist/utils/auto-animate-height.d.ts +33 -0
  302. package/dist/utils/auto-animate-height.d.ts.map +1 -0
  303. package/dist/{utilities → utils}/auto-animate-height.js +3 -3
  304. package/dist/utils/auto-animate-height.js.map +1 -0
  305. package/dist/utils/auto-animate-height.mjs +9 -0
  306. package/dist/utils/auto-animate-height.mjs.map +1 -0
  307. package/dist/utils/index.d.ts +4 -0
  308. package/dist/utils/index.d.ts.map +1 -0
  309. package/dist/{utilities → utils}/index.js +81 -11
  310. package/dist/utils/index.js.map +1 -0
  311. package/dist/utils/index.mjs +19 -0
  312. package/dist/utils/index.mjs.map +1 -0
  313. package/dist/utils/utils.d.ts +24 -0
  314. package/dist/utils/utils.d.ts.map +1 -0
  315. package/dist/{utils.js → utils/utils.js} +1 -3
  316. package/dist/utils/utils.js.map +1 -0
  317. package/dist/utils/utils.mjs +14 -0
  318. package/dist/utils/utils.mjs.map +1 -0
  319. package/dist/warning-banner/index.d.ts +3 -2
  320. package/dist/warning-banner/index.d.ts.map +1 -0
  321. package/dist/warning-banner/index.js +16 -19
  322. package/dist/warning-banner/index.js.map +1 -1
  323. package/dist/warning-banner/index.mjs +3 -3
  324. package/dist/warning-banner/warning-banner.d.ts +8 -2
  325. package/dist/warning-banner/warning-banner.d.ts.map +1 -0
  326. package/dist/warning-banner/warning-banner.js +16 -19
  327. package/dist/warning-banner/warning-banner.js.map +1 -1
  328. package/dist/warning-banner/warning-banner.mjs +3 -3
  329. package/package.json +12 -8
  330. package/src/accordion/accordion-content.tsx +31 -0
  331. package/src/accordion/accordion-header.tsx +36 -0
  332. package/src/accordion/accordion-item.tsx +62 -0
  333. package/src/accordion/accordion.stories.tsx +154 -0
  334. package/src/accordion/accordion.tsx +68 -0
  335. package/src/accordion/context.ts +8 -0
  336. package/src/accordion/index.tsx +9 -0
  337. package/src/badge/badge.stories.tsx +44 -0
  338. package/src/badge/badge.tsx +63 -0
  339. package/src/badge/index.tsx +3 -0
  340. package/src/box/box.stories.tsx +112 -0
  341. package/src/box/box.tsx +122 -0
  342. package/src/box/index.tsx +3 -0
  343. package/src/breadcrumbs/breadcrumbs.stories.tsx +50 -0
  344. package/src/breadcrumbs/breadcrumbs.tsx +47 -0
  345. package/src/breadcrumbs/index.tsx +3 -0
  346. package/src/button/button.stories.tsx +104 -0
  347. package/src/button/button.tsx +87 -0
  348. package/src/button/index.tsx +3 -0
  349. package/src/card/card.stories.tsx +82 -0
  350. package/src/card/card.tsx +222 -0
  351. package/src/card/index.tsx +14 -0
  352. package/src/description-list/description-list.stories.tsx +95 -0
  353. package/src/description-list/description-list.tsx +61 -0
  354. package/src/description-list/index.tsx +2 -0
  355. package/src/footer/footer.tsx +169 -0
  356. package/src/footer/index.tsx +9 -0
  357. package/src/form/checkbox/checkbox.stories.tsx +104 -0
  358. package/src/form/checkbox/checkbox.tsx +82 -0
  359. package/src/form/checkbox/index.tsx +2 -0
  360. package/src/form/date-picker/date-picker.stories.tsx +27 -0
  361. package/src/form/date-picker/date-picker.tsx +85 -0
  362. package/src/form/date-picker/index.tsx +2 -0
  363. package/src/form/error-message/error-message.stories.tsx +19 -0
  364. package/src/form/error-message/error-message.tsx +25 -0
  365. package/src/form/error-message/index.tsx +2 -0
  366. package/src/form/fieldset/fieldset.stories.tsx +86 -0
  367. package/src/form/fieldset/fieldset.tsx +64 -0
  368. package/src/form/fieldset/index.tsx +2 -0
  369. package/src/form/index.tsx +8 -0
  370. package/src/form/input/index.tsx +2 -0
  371. package/src/form/input/input.stories.tsx +166 -0
  372. package/src/form/input/input.tsx +30 -0
  373. package/src/form/input-group/index.tsx +2 -0
  374. package/src/form/input-group/input-group.tsx +106 -0
  375. package/src/form/radiobutton/index.tsx +4 -0
  376. package/src/form/radiobutton/radiobutton.stories.tsx +93 -0
  377. package/src/form/radiobutton/radiobutton.tsx +85 -0
  378. package/src/form/radiobutton/radiogroup.stories.tsx +39 -0
  379. package/src/form/radiobutton/radiogroup.tsx +52 -0
  380. package/src/form/select/index.tsx +2 -0
  381. package/src/form/select/select.stories.tsx +93 -0
  382. package/src/form/select/select.tsx +33 -0
  383. package/src/form/textarea/index.tsx +2 -0
  384. package/src/form/textarea/textarea.stories.tsx +106 -0
  385. package/src/form/textarea/textarea.tsx +33 -0
  386. package/src/help-text/help-text.tsx +98 -0
  387. package/src/help-text/index.ts +2 -0
  388. package/src/index-no-css.tsx +25 -0
  389. package/src/index.tsx +11 -0
  390. package/src/layout/container/container.stories.tsx +62 -0
  391. package/src/layout/container/container.tsx +47 -0
  392. package/src/layout/grid/grid.tsx +163 -0
  393. package/src/layout/grid/index.tsx +3 -0
  394. package/src/layout/index.tsx +3 -0
  395. package/src/layout/responsive.ts +26 -0
  396. package/src/layout/spacing.ts +37 -0
  397. package/src/layout/stack/index.tsx +2 -0
  398. package/src/layout/stack/stack.tsx +128 -0
  399. package/src/link/index.tsx +3 -0
  400. package/src/link/link.stories.tsx +64 -0
  401. package/src/link/link.tsx +46 -0
  402. package/src/list/index.tsx +5 -0
  403. package/src/list/link-list.stories.tsx +38 -0
  404. package/src/list/link-list.tsx +26 -0
  405. package/src/list/list.stories.tsx +71 -0
  406. package/src/list/list.tsx +65 -0
  407. package/src/message/index.tsx +2 -0
  408. package/src/message/message.stories.tsx +93 -0
  409. package/src/message/message.tsx +89 -0
  410. package/src/modal/index.tsx +3 -0
  411. package/src/modal/modal.stories.tsx +147 -0
  412. package/src/modal/modal.tsx +199 -0
  413. package/src/navbar/icons.tsx +21 -0
  414. package/src/navbar/index.tsx +18 -0
  415. package/src/navbar/navbar-expandable-menu.tsx +176 -0
  416. package/src/navbar/navbar.stories.tsx +99 -0
  417. package/src/navbar/navbar.tsx +264 -0
  418. package/src/show-more/index.ts +5 -0
  419. package/src/show-more/show-more.stories.tsx +119 -0
  420. package/src/show-more/show-more.tsx +66 -0
  421. package/src/skeleton/index.ts +2 -0
  422. package/src/skeleton/skeleton.stories.tsx +152 -0
  423. package/src/skeleton/skeleton.tsx +114 -0
  424. package/src/step-indicator/index.ts +2 -0
  425. package/src/step-indicator/step-indicator.stories.tsx +50 -0
  426. package/src/step-indicator/step-indicator.tsx +116 -0
  427. package/src/styled-html/index.ts +2 -0
  428. package/src/styled-html/styled-html.stories.tsx +189 -0
  429. package/src/styled-html/styled-html.tsx +59 -0
  430. package/src/table/index.ts +2 -0
  431. package/src/table/table.tsx +59 -0
  432. package/src/tabs/context.ts +18 -0
  433. package/src/tabs/index.tsx +7 -0
  434. package/src/tabs/tabs-content.tsx +62 -0
  435. package/src/tabs/tabs-list.tsx +129 -0
  436. package/src/tabs/tabs.stories.tsx +138 -0
  437. package/src/tabs/tabs.tsx +50 -0
  438. package/src/text/index.tsx +4 -0
  439. package/src/text/text.stories.tsx +112 -0
  440. package/src/text/text.tsx +129 -0
  441. package/src/utils/auto-animate-height.tsx +139 -0
  442. package/src/utils/index.ts +4 -0
  443. package/src/utils/utils.ts +110 -0
  444. package/src/warning-banner/index.tsx +2 -0
  445. package/src/warning-banner/warning-banner.stories.tsx +43 -0
  446. package/src/warning-banner/warning-banner.tsx +79 -0
  447. package/dist/_tsup-dts-rollup.d.mts +0 -2600
  448. package/dist/_tsup-dts-rollup.d.ts +0 -2600
  449. package/dist/accordion/accordion-content.d.mts +0 -2
  450. package/dist/accordion/accordion-header.d.mts +0 -2
  451. package/dist/accordion/accordion-item.d.mts +0 -3
  452. package/dist/accordion/accordion.d.mts +0 -2
  453. package/dist/accordion/context.d.mts +0 -2
  454. package/dist/accordion/index.d.mts +0 -9
  455. package/dist/badge/badge.d.mts +0 -5
  456. package/dist/badge/index.d.mts +0 -6
  457. package/dist/box/box.d.mts +0 -4
  458. package/dist/box/index.d.mts +0 -4
  459. package/dist/breadcrumbs/breadcrumbs.d.mts +0 -2
  460. package/dist/breadcrumbs/index.d.mts +0 -2
  461. package/dist/button/button.d.mts +0 -3
  462. package/dist/button/index.d.mts +0 -3
  463. package/dist/card/card.d.mts +0 -12
  464. package/dist/card/index.d.mts +0 -12
  465. package/dist/chunk-3MQKXNZ6.mjs.map +0 -1
  466. package/dist/chunk-3NDUE23B.mjs +0 -19
  467. package/dist/chunk-3NDUE23B.mjs.map +0 -1
  468. package/dist/chunk-3NL3TOZF.mjs +0 -13
  469. package/dist/chunk-3NL3TOZF.mjs.map +0 -1
  470. package/dist/chunk-3ZFEUABU.mjs +0 -23
  471. package/dist/chunk-3ZFEUABU.mjs.map +0 -1
  472. package/dist/chunk-4WQWU5TL.mjs.map +0 -1
  473. package/dist/chunk-67TP3E2D.mjs.map +0 -1
  474. package/dist/chunk-6R7AXKBR.mjs.map +0 -1
  475. package/dist/chunk-722MZPXO.mjs +0 -13
  476. package/dist/chunk-722MZPXO.mjs.map +0 -1
  477. package/dist/chunk-7JRS4WEB.mjs.map +0 -1
  478. package/dist/chunk-CIHZDFSQ.mjs.map +0 -1
  479. package/dist/chunk-CYEYGPRH.mjs +0 -17
  480. package/dist/chunk-CYEYGPRH.mjs.map +0 -1
  481. package/dist/chunk-DEX36MFK.mjs.map +0 -1
  482. package/dist/chunk-DZNH5JHY.mjs +0 -1
  483. package/dist/chunk-ENKVTAJB.mjs.map +0 -1
  484. package/dist/chunk-F2C3KZFX.mjs.map +0 -1
  485. package/dist/chunk-GSJPTZT3.mjs.map +0 -1
  486. package/dist/chunk-IJAX6APL.mjs +0 -23
  487. package/dist/chunk-IJAX6APL.mjs.map +0 -1
  488. package/dist/chunk-IKJJWKXM.mjs +0 -15
  489. package/dist/chunk-IKJJWKXM.mjs.map +0 -1
  490. package/dist/chunk-KPGSRU4I.mjs.map +0 -1
  491. package/dist/chunk-PT5H3QV6.mjs +0 -29
  492. package/dist/chunk-PT5H3QV6.mjs.map +0 -1
  493. package/dist/chunk-TQDUBRCZ.mjs.map +0 -1
  494. package/dist/chunk-V6UKKHKD.mjs +0 -33
  495. package/dist/chunk-V6UKKHKD.mjs.map +0 -1
  496. package/dist/chunk-XUWZ4HGD.mjs.map +0 -1
  497. package/dist/description-list/description-list.d.mts +0 -2
  498. package/dist/description-list/index.d.mts +0 -2
  499. package/dist/footer/footer.d.mts +0 -7
  500. package/dist/footer/index.d.mts +0 -7
  501. package/dist/form/checkbox/checkbox.d.mts +0 -2
  502. package/dist/form/checkbox/index.d.mts +0 -2
  503. package/dist/form/date-picker/date-picker.d.mts +0 -2
  504. package/dist/form/date-picker/index.d.mts +0 -2
  505. package/dist/form/error-message/error-message.d.mts +0 -2
  506. package/dist/form/error-message/index.d.mts +0 -2
  507. package/dist/form/fieldset/fieldset.d.mts +0 -3
  508. package/dist/form/fieldset/index.d.mts +0 -3
  509. package/dist/form/index.d.mts +0 -20
  510. package/dist/form/input/index.d.mts +0 -2
  511. package/dist/form/input/input.d.mts +0 -2
  512. package/dist/form/input-group/index.d.mts +0 -2
  513. package/dist/form/input-group/input-group.d.mts +0 -2
  514. package/dist/form/radiobutton/index.d.mts +0 -5
  515. package/dist/form/radiobutton/radiobutton.d.mts +0 -2
  516. package/dist/form/radiobutton/radiogroup.d.mts +0 -3
  517. package/dist/form/select/index.d.mts +0 -2
  518. package/dist/form/select/select.d.mts +0 -2
  519. package/dist/form/textarea/index.d.mts +0 -2
  520. package/dist/form/textarea/textarea.d.mts +0 -2
  521. package/dist/help-text/help-text.d.mts +0 -1
  522. package/dist/help-text/index.d.mts +0 -1
  523. package/dist/index-no-css.d.mts +0 -128
  524. package/dist/index.d.mts +0 -128
  525. package/dist/layout/container/container.d.mts +0 -2
  526. package/dist/layout/grid/grid.d.mts +0 -4
  527. package/dist/layout/grid/index.d.mts +0 -4
  528. package/dist/layout/index.d.mts +0 -10
  529. package/dist/layout/responsive.d.mts +0 -2
  530. package/dist/layout/spacing.d.mts +0 -3
  531. package/dist/layout/stack/index.d.mts +0 -4
  532. package/dist/layout/stack/stack.d.mts +0 -4
  533. package/dist/link/index.d.mts +0 -2
  534. package/dist/link/link.d.mts +0 -2
  535. package/dist/list/index.d.mts +0 -5
  536. package/dist/list/link-list.d.mts +0 -2
  537. package/dist/list/list.d.mts +0 -3
  538. package/dist/message/index.d.mts +0 -3
  539. package/dist/message/message.d.mts +0 -4
  540. package/dist/modal/index.d.mts +0 -5
  541. package/dist/modal/modal.d.mts +0 -5
  542. package/dist/navbar/icons.d.mts +0 -2
  543. package/dist/navbar/index.d.mts +0 -13
  544. package/dist/navbar/navbar-expandable-menu.d.mts +0 -7
  545. package/dist/navbar/navbar.d.mts +0 -9
  546. package/dist/show-more/index.d.mts +0 -4
  547. package/dist/show-more/show-more.d.mts +0 -2
  548. package/dist/skeleton/index.d.mts +0 -2
  549. package/dist/skeleton/skeleton.d.mts +0 -2
  550. package/dist/step-indicator/index.d.mts +0 -1
  551. package/dist/step-indicator/step-indicator.d.mts +0 -1
  552. package/dist/styled-html/index.d.mts +0 -2
  553. package/dist/styled-html/styled-html.d.mts +0 -2
  554. package/dist/table/index.d.mts +0 -1
  555. package/dist/table/table.d.mts +0 -1
  556. package/dist/tabs/context.d.mts +0 -3
  557. package/dist/tabs/index.d.mts +0 -10
  558. package/dist/tabs/tabs-content.d.mts +0 -4
  559. package/dist/tabs/tabs-list.d.mts +0 -4
  560. package/dist/tabs/tabs.d.mts +0 -2
  561. package/dist/text/index.d.mts +0 -2
  562. package/dist/text/text.d.mts +0 -2
  563. package/dist/utilities/auto-animate-height.d.mts +0 -2
  564. package/dist/utilities/auto-animate-height.d.ts +0 -2
  565. package/dist/utilities/auto-animate-height.js.map +0 -1
  566. package/dist/utilities/auto-animate-height.mjs +0 -9
  567. package/dist/utilities/index.d.mts +0 -2
  568. package/dist/utilities/index.d.ts +0 -2
  569. package/dist/utilities/index.js.map +0 -1
  570. package/dist/utilities/index.mjs +0 -10
  571. package/dist/utils.d.mts +0 -5
  572. package/dist/utils.d.ts +0 -5
  573. package/dist/utils.js.map +0 -1
  574. package/dist/utils.mjs +0 -16
  575. package/dist/warning-banner/index.d.mts +0 -2
  576. package/dist/warning-banner/warning-banner.d.mts +0 -2
  577. /package/dist/{chunk-DZNH5JHY.mjs.map → chunk-7YWW46R3.mjs.map} +0 -0
  578. /package/dist/{utilities/auto-animate-height.mjs.map → chunk-ARHJZUZG.mjs.map} +0 -0
  579. /package/dist/{utilities/index.mjs.map → chunk-BCFV6VOE.mjs.map} +0 -0
  580. /package/dist/{utils.mjs.map → chunk-CYDWEPFL.mjs.map} +0 -0
@@ -49,7 +49,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
49
49
  // src/card/index.tsx
50
50
  var card_exports = {};
51
51
  __export(card_exports, {
52
- Card: () => CardComponent,
52
+ Card: () => Card,
53
53
  CardBody: () => CardBody,
54
54
  CardBodyAction: () => CardBodyAction,
55
55
  CardBodyActionArrow: () => CardBodyActionArrow,
@@ -67,12 +67,6 @@ var import_react = require("react");
67
67
  var import_typed_classname = require("@postenbring/hedwig-css/typed-classname");
68
68
  var import_react_slot = require("@radix-ui/react-slot");
69
69
  var import_jsx_runtime = require("react/jsx-runtime");
70
- var Card = (0, import_react.forwardRef)((_a, ref) => {
71
- var _b = _a, { as: Tag = "section", asChild, className, children } = _b, rest = __objRest(_b, ["as", "asChild", "className", "children"]);
72
- const Component = asChild ? import_react_slot.Slot : Tag;
73
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, __spreadProps(__spreadValues({}, rest), { className: (0, import_typed_classname.clsx)("hds-card", className), ref, children }));
74
- });
75
- Card.displayName = "Card";
76
70
  var CardMedia = (0, import_react.forwardRef)(
77
71
  (_a, ref) => {
78
72
  var _b = _a, { asChild, className, children } = _b, rest = __objRest(_b, ["asChild", "className", "children"]);
@@ -190,18 +184,23 @@ var CardBodyActionArrow = (0, import_react.forwardRef)(
190
184
  }
191
185
  );
192
186
  CardBodyActionArrow.displayName = "Card.BodyActionArrow";
193
-
194
- // src/card/index.tsx
195
- var CardComponent = Card;
196
- CardComponent.Media = CardMedia;
197
- CardComponent.MediaImg = CardMediaImg;
198
- CardComponent.Body = CardBody;
199
- CardComponent.BodyHeader = CardBodyHeader;
200
- CardComponent.BodyHeaderOverline = CardBodyHeaderOverline;
201
- CardComponent.BodyHeaderTitle = CardBodyHeaderTitle;
202
- CardComponent.BodyDescription = CardBodyDescription;
203
- CardComponent.BodyAction = CardBodyAction;
204
- CardComponent.BodyActionArrow = CardBodyActionArrow;
187
+ var Card = (0, import_react.forwardRef)(
188
+ (_a, ref) => {
189
+ var _b = _a, { as: Tag = "section", asChild, className, children } = _b, rest = __objRest(_b, ["as", "asChild", "className", "children"]);
190
+ const Component = asChild ? import_react_slot.Slot : Tag;
191
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, __spreadProps(__spreadValues({}, rest), { className: (0, import_typed_classname.clsx)("hds-card", className), ref, children }));
192
+ }
193
+ );
194
+ Card.displayName = "Card";
195
+ Card.Media = CardMedia;
196
+ Card.MediaImg = CardMediaImg;
197
+ Card.Body = CardBody;
198
+ Card.BodyHeader = CardBodyHeader;
199
+ Card.BodyHeaderOverline = CardBodyHeaderOverline;
200
+ Card.BodyHeaderTitle = CardBodyHeaderTitle;
201
+ Card.BodyDescription = CardBodyDescription;
202
+ Card.BodyAction = CardBodyAction;
203
+ Card.BodyActionArrow = CardBodyActionArrow;
205
204
  // Annotate the CommonJS export names for ESM import in node:
206
205
  0 && (module.exports = {
207
206
  Card,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/card/index.tsx","../../src/card/card.tsx"],"sourcesContent":["import {\n Card,\n CardMedia,\n CardMediaImg,\n CardBody,\n CardBodyHeader,\n CardBodyHeaderOverline,\n CardBodyHeaderTitle,\n CardBodyDescription,\n CardBodyAction,\n CardBodyActionArrow,\n} from \"./card\";\n\nconst CardComponent = Card as typeof Card & {\n Media: typeof CardMedia;\n MediaImg: typeof CardMediaImg;\n Body: typeof CardBody;\n BodyHeader: typeof CardBodyHeader;\n BodyHeaderOverline: typeof CardBodyHeaderOverline;\n BodyHeaderTitle: typeof CardBodyHeaderTitle;\n BodyDescription: typeof CardBodyDescription;\n BodyAction: typeof CardBodyAction;\n BodyActionArrow: typeof CardBodyActionArrow;\n};\nCardComponent.Media = CardMedia;\nCardComponent.MediaImg = CardMediaImg;\nCardComponent.Body = CardBody;\nCardComponent.BodyHeader = CardBodyHeader;\nCardComponent.BodyHeaderOverline = CardBodyHeaderOverline;\nCardComponent.BodyHeaderTitle = CardBodyHeaderTitle;\nCardComponent.BodyDescription = CardBodyDescription;\nCardComponent.BodyAction = CardBodyAction;\nCardComponent.BodyActionArrow = CardBodyActionArrow;\n\nexport {\n CardComponent as Card,\n CardMedia,\n CardMediaImg,\n CardBody,\n CardBodyHeader,\n CardBodyHeaderOverline,\n CardBodyHeaderTitle,\n CardBodyDescription,\n CardBodyAction,\n CardBodyActionArrow,\n};\n\nexport type * from \"./card\";\n","import type { ReactNode } from \"react\";\nimport { forwardRef } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nexport interface CardBaseProps extends React.HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\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 Card = forwardRef<\n HTMLDivElement,\n CardBaseProps & {\n /**\n * A Card should in most cases appear as a big link,\n * but the actual link should just be the header title.\n * To make life better for those with screen readers we should not make\n * the entire card a link, as that would cause the entire card to be read\n * as a link to the user. That would be perceived as information overload.\n */\n as?: \"section\" | \"div\" | \"article\" | \"aside\";\n }\n>(({ as: Tag = \"section\", asChild, className, children, ...rest }, ref) => {\n const Component = asChild ? Slot : Tag;\n return (\n <Component {...rest} className={clsx(\"hds-card\", className as undefined)} ref={ref}>\n {children}\n </Component>\n );\n});\nCard.displayName = \"Card\";\n\nexport const CardMedia = forwardRef<HTMLDivElement, CardBaseProps>(\n ({ asChild, className, children, ...rest }, ref) => {\n const Component = asChild ? Slot : \"div\";\n return (\n <Component {...rest} className={clsx(\"hds-card__media\", className as undefined)} ref={ref}>\n {children}\n </Component>\n );\n },\n);\nCardMedia.displayName = \"Card.Media\";\n\nexport interface CardImageMediaProps extends React.ImgHTMLAttributes<HTMLImageElement> {\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}\nexport const CardMediaImg = forwardRef<HTMLImageElement, CardImageMediaProps>(\n ({ asChild, className, ...rest }, ref) => {\n const Component = asChild ? Slot : \"img\";\n return (\n <Component\n {...rest}\n className={clsx(\"hds-card__media__img\", className as undefined)}\n ref={ref}\n />\n );\n },\n);\nCardMediaImg.displayName = \"Card.MediaImg\";\n\nexport const CardBody = forwardRef<HTMLDivElement, CardBaseProps>(\n ({ asChild, className, children, ...rest }, ref) => {\n const Component = asChild ? Slot : \"div\";\n return (\n <Component {...rest} className={clsx(\"hds-card__body\", className as undefined)} ref={ref}>\n {children}\n </Component>\n );\n },\n);\nCardBody.displayName = \"Card.Body\";\n\nexport const CardBodyHeader = forwardRef<\n HTMLHeadingElement,\n CardBaseProps &\n (\n | {\n /**\n * Heading level of the card heading\n */\n as: \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n asChild?: never;\n }\n | {\n asChild: true;\n as?: never;\n }\n )\n>(({ as: Tag, asChild, className, children, ...rest }, ref) => {\n const Component = asChild ? Slot : Tag;\n return (\n <Component\n {...rest}\n className={clsx(\"hds-card__body-header\", className as undefined)}\n ref={ref}\n >\n {children}\n </Component>\n );\n});\nCardBodyHeader.displayName = \"Card.BodyHeader\";\n\nexport const CardBodyHeaderOverline = forwardRef<HTMLDivElement, CardBaseProps>(\n ({ asChild, className, children, ...rest }, ref) => {\n const Component = asChild ? Slot : \"span\";\n return (\n <Component\n {...rest}\n className={clsx(\"hds-card__body-header-overline\", className as undefined)}\n ref={ref}\n >\n {children}\n </Component>\n );\n },\n);\nCardBodyHeaderOverline.displayName = \"Card.BodyHeaderOverline\";\n\nexport const CardBodyHeaderTitle = forwardRef<HTMLDivElement, CardBaseProps>(\n ({ asChild, className, children, ...rest }, ref) => {\n const Component = asChild ? Slot : \"div\";\n return (\n <Component\n {...rest}\n className={clsx(\"hds-card__body-header-title\", className as undefined)}\n ref={ref}\n >\n {children}\n </Component>\n );\n },\n);\nCardBodyHeaderTitle.displayName = \"Card.BodyHeaderTitle\";\n\nexport const CardBodyDescription = forwardRef<HTMLParagraphElement, CardBaseProps>(\n ({ asChild, className, children, ...rest }, ref) => {\n const Component = asChild ? Slot : \"p\";\n return (\n <Component\n {...rest}\n className={clsx(\"hds-card__body-description\", className as undefined)}\n ref={ref}\n >\n {children}\n </Component>\n );\n },\n);\nCardBodyDescription.displayName = \"Card.BodyDescription\";\n\nexport const CardBodyAction = forwardRef<HTMLDivElement, CardBaseProps>(\n ({ asChild, className, children, ...rest }, ref) => {\n const Component = asChild ? Slot : \"div\";\n return (\n <Component\n {...rest}\n className={clsx(\"hds-card__body-action\", className as undefined)}\n ref={ref}\n >\n {children}\n </Component>\n );\n },\n);\nCardBodyAction.displayName = \"Card.BodyAction\";\n\ninterface CardBodyActionArrowProps extends React.HTMLAttributes<HTMLSpanElement> {\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}\nexport const CardBodyActionArrow = forwardRef<HTMLSpanElement, CardBodyActionArrowProps>(\n ({ asChild, className, ...rest }, ref) => {\n const Component = asChild ? Slot : \"span\";\n return (\n <Component\n {...rest}\n className={clsx(\"hds-card__body-action-arrow\", className as undefined)}\n ref={ref}\n />\n );\n },\n);\nCardBodyActionArrow.displayName = \"Card.BodyActionArrow\";\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/card/index.tsx","../../src/card/card.tsx"],"sourcesContent":["export {\n Card,\n CardMedia,\n CardMediaImg,\n CardBody,\n CardBodyHeader,\n CardBodyHeaderOverline,\n CardBodyHeaderTitle,\n CardBodyDescription,\n CardBodyAction,\n CardBodyActionArrow,\n} from \"./card\";\n\nexport type * from \"./card\";\n","import type { ReactNode } from \"react\";\nimport { forwardRef } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nexport const CardMedia = forwardRef<HTMLDivElement, CardBaseProps>(\n ({ asChild, className, children, ...rest }, ref) => {\n const Component = asChild ? Slot : \"div\";\n return (\n <Component {...rest} className={clsx(\"hds-card__media\", className as undefined)} ref={ref}>\n {children}\n </Component>\n );\n },\n);\nCardMedia.displayName = \"Card.Media\";\n\nexport interface CardImageMediaProps extends React.ImgHTMLAttributes<HTMLImageElement> {\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}\nexport const CardMediaImg = forwardRef<HTMLImageElement, CardImageMediaProps>(\n ({ asChild, className, ...rest }, ref) => {\n const Component = asChild ? Slot : \"img\";\n return (\n <Component\n {...rest}\n className={clsx(\"hds-card__media__img\", className as undefined)}\n ref={ref}\n />\n );\n },\n);\nCardMediaImg.displayName = \"Card.MediaImg\";\n\nexport const CardBody = forwardRef<HTMLDivElement, CardBaseProps>(\n ({ asChild, className, children, ...rest }, ref) => {\n const Component = asChild ? Slot : \"div\";\n return (\n <Component {...rest} className={clsx(\"hds-card__body\", className as undefined)} ref={ref}>\n {children}\n </Component>\n );\n },\n);\nCardBody.displayName = \"Card.Body\";\n\nexport const CardBodyHeader = forwardRef<\n HTMLHeadingElement,\n CardBaseProps &\n (\n | {\n /**\n * Heading level of the card heading\n */\n as: \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n asChild?: never;\n }\n | {\n asChild: true;\n as?: never;\n }\n )\n>(({ as: Tag, asChild, className, children, ...rest }, ref) => {\n const Component = asChild ? Slot : Tag;\n return (\n <Component\n {...rest}\n className={clsx(\"hds-card__body-header\", className as undefined)}\n ref={ref}\n >\n {children}\n </Component>\n );\n});\nCardBodyHeader.displayName = \"Card.BodyHeader\";\n\nexport const CardBodyHeaderOverline = forwardRef<HTMLDivElement, CardBaseProps>(\n ({ asChild, className, children, ...rest }, ref) => {\n const Component = asChild ? Slot : \"span\";\n return (\n <Component\n {...rest}\n className={clsx(\"hds-card__body-header-overline\", className as undefined)}\n ref={ref}\n >\n {children}\n </Component>\n );\n },\n);\nCardBodyHeaderOverline.displayName = \"Card.BodyHeaderOverline\";\n\nexport const CardBodyHeaderTitle = forwardRef<HTMLDivElement, CardBaseProps>(\n ({ asChild, className, children, ...rest }, ref) => {\n const Component = asChild ? Slot : \"div\";\n return (\n <Component\n {...rest}\n className={clsx(\"hds-card__body-header-title\", className as undefined)}\n ref={ref}\n >\n {children}\n </Component>\n );\n },\n);\nCardBodyHeaderTitle.displayName = \"Card.BodyHeaderTitle\";\n\nexport const CardBodyDescription = forwardRef<HTMLParagraphElement, CardBaseProps>(\n ({ asChild, className, children, ...rest }, ref) => {\n const Component = asChild ? Slot : \"p\";\n return (\n <Component\n {...rest}\n className={clsx(\"hds-card__body-description\", className as undefined)}\n ref={ref}\n >\n {children}\n </Component>\n );\n },\n);\nCardBodyDescription.displayName = \"Card.BodyDescription\";\n\nexport const CardBodyAction = forwardRef<HTMLDivElement, CardBaseProps>(\n ({ asChild, className, children, ...rest }, ref) => {\n const Component = asChild ? Slot : \"div\";\n return (\n <Component\n {...rest}\n className={clsx(\"hds-card__body-action\", className as undefined)}\n ref={ref}\n >\n {children}\n </Component>\n );\n },\n);\nCardBodyAction.displayName = \"Card.BodyAction\";\n\ninterface CardBodyActionArrowProps extends React.HTMLAttributes<HTMLSpanElement> {\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}\nexport const CardBodyActionArrow = forwardRef<HTMLSpanElement, CardBodyActionArrowProps>(\n ({ asChild, className, ...rest }, ref) => {\n const Component = asChild ? Slot : \"span\";\n return (\n <Component\n {...rest}\n className={clsx(\"hds-card__body-action-arrow\", className as undefined)}\n ref={ref}\n />\n );\n },\n);\nCardBodyActionArrow.displayName = \"Card.BodyActionArrow\";\n\nexport interface CardBaseProps extends React.HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\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 interface CardProps extends CardBaseProps {\n /**\n * A Card should in most cases appear as a big link,\n * but the actual link should just be the header title.\n * To make life better for those with screen readers we should not make\n * the entire card a link, as that would cause the entire card to be read\n * as a link to the user. That would be perceived as information overload.\n */\n as?: \"section\" | \"div\" | \"article\" | \"aside\";\n}\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n ({ as: Tag = \"section\", asChild, className, children, ...rest }, ref) => {\n const Component = asChild ? Slot : Tag;\n return (\n <Component {...rest} className={clsx(\"hds-card\", className as undefined)} ref={ref}>\n {children}\n </Component>\n );\n },\n) as CardType;\nCard.displayName = \"Card\";\n\nCard.Media = CardMedia;\nCard.MediaImg = CardMediaImg;\nCard.Body = CardBody;\nCard.BodyHeader = CardBodyHeader;\nCard.BodyHeaderOverline = CardBodyHeaderOverline;\nCard.BodyHeaderTitle = CardBodyHeaderTitle;\nCard.BodyDescription = CardBodyDescription;\nCard.BodyAction = CardBodyAction;\nCard.BodyActionArrow = CardBodyActionArrow;\n\ntype CardType = ReturnType<typeof forwardRef<HTMLDivElement, CardProps>> & {\n Media: typeof CardMedia;\n MediaImg: typeof CardMediaImg;\n Body: typeof CardBody;\n BodyHeader: typeof CardBodyHeader;\n BodyHeaderOverline: typeof CardBodyHeaderOverline;\n BodyHeaderTitle: typeof CardBodyHeaderTitle;\n BodyDescription: typeof CardBodyDescription;\n BodyAction: typeof CardBodyAction;\n BodyActionArrow: typeof CardBodyActionArrow;\n};\n"],"mappings":"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","names":[]}
@@ -1,7 +1,6 @@
1
+ import "../chunk-ARHJZUZG.mjs";
1
2
  import {
2
- CardComponent
3
- } from "../chunk-PT5H3QV6.mjs";
4
- import {
3
+ Card,
5
4
  CardBody,
6
5
  CardBodyAction,
7
6
  CardBodyActionArrow,
@@ -11,10 +10,10 @@ import {
11
10
  CardBodyHeaderTitle,
12
11
  CardMedia,
13
12
  CardMediaImg
14
- } from "../chunk-CIHZDFSQ.mjs";
13
+ } from "../chunk-NU6OSFAU.mjs";
15
14
  import "../chunk-R4SQKVDQ.mjs";
16
15
  export {
17
- CardComponent as Card,
16
+ Card,
18
17
  CardBody,
19
18
  CardBodyAction,
20
19
  CardBodyActionArrow,
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-MOU6WBT2.mjs";
5
5
  import {
6
6
  focusTrap
7
- } from "./chunk-DEX36MFK.mjs";
7
+ } from "./chunk-TDXU2IC6.mjs";
8
8
  import {
9
9
  __objRest,
10
10
  __spreadProps,
@@ -147,4 +147,4 @@ export {
147
147
  NavbarExpandableMenuTrigger,
148
148
  NavbarExpandableMenuContent
149
149
  };
150
- //# sourceMappingURL=chunk-6R7AXKBR.mjs.map
150
+ //# sourceMappingURL=chunk-35TXKAUH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/navbar/navbar-expandable-menu.tsx"],"sourcesContent":["import { createContext, useContext, forwardRef, useState, useEffect, useId } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { focusTrap } from \"../utils/utils\";\nimport { CloseIcon, MenuIcon } from \"./icons\";\n\nconst expandableMenuContext = createContext([\n false as boolean,\n () => {\n // Empty\n },\n] as const);\nexport const useNavbarExpendableMenuContext = () => useContext(expandableMenuContext);\n\nexport interface NavbarExpandableMenuProps {\n children: React.ReactNode;\n}\n\n/**\n * Expandable Menu Provider\n * Handles scroll and focus locking,\n * as well as scrolling the user to the top of the page.\n *\n * If we want a sticky header in the future the scrolling should be configurable\n */\nexport function NavbarExpandableMenu({ children }: NavbarExpandableMenuProps) {\n const [open, setOpen] = useState(false);\n function toggleOpen() {\n setOpen((prev) => !prev);\n }\n\n useEffect(() => {\n if (open) {\n window.scrollTo(0, 0);\n document.body.classList.add(clsx(\"hds-navbar-scroll-lock\"));\n const releaseFocusTrap = focusTrap(\n document.getElementsByClassName(clsx(\"hds-navbar\"))[0] as HTMLElement,\n );\n\n return () => {\n document.body.classList.remove(clsx(\"hds-navbar-scroll-lock\"));\n releaseFocusTrap();\n };\n }\n }, [open]);\n\n return (\n <expandableMenuContext.Provider value={[open, toggleOpen]}>\n {children}\n </expandableMenuContext.Provider>\n );\n}\nNavbarExpandableMenu.displayName = \"NavbarExpandableMenu\";\n\n/**\n * Trigger\n */\nexport interface NavbarExpandableMenuTriggerProps\n extends Omit<React.HTMLAttributes<HTMLButtonElement>, \"children\"> {\n whenClosedText: React.ReactNode;\n whenClosedHelperTitle?: string;\n\n whenOpenText: React.ReactNode;\n whenOpenHelperTitle?: string;\n}\nexport const NavbarExpandableMenuTrigger = forwardRef<\n HTMLButtonElement,\n NavbarExpandableMenuTriggerProps\n>(\n (\n {\n whenClosedText,\n whenClosedHelperTitle,\n\n whenOpenText,\n whenOpenHelperTitle,\n\n style,\n className,\n ...rest\n },\n ref,\n ) => {\n const [open, toggleOpen] = useNavbarExpendableMenuContext();\n\n // Measure the width of the text when open and closed and choose the widest one\n // This is to ensure that the button doesn't change size when the text changes\n const [textWidth, setTextWidth] = useState<number | undefined>(undefined);\n const measurementId = useId();\n useEffect(() => {\n const widthWhenOpen =\n document.getElementById(`${measurementId}-when-open`)?.getBoundingClientRect().width ?? 0;\n const widthWhenClosed =\n document.getElementById(`${measurementId}-when-closed`)?.getBoundingClientRect().width ?? 0;\n\n setTextWidth(widthWhenOpen < widthWhenClosed ? widthWhenClosed : widthWhenOpen);\n }, [measurementId]);\n\n const text = open ? whenOpenText : whenClosedText;\n const title = open ? whenOpenHelperTitle : whenClosedHelperTitle;\n const icon = open ? <CloseIcon /> : <MenuIcon />;\n\n return (\n <button\n className={clsx(\"hds-navbar__item\", className as undefined)}\n onClick={toggleOpen}\n ref={ref}\n title={title}\n type=\"button\"\n style={{ position: \"relative\", ...style }}\n {...rest}\n >\n {/* Measurement elements, not shown to the user */}\n <span\n id={`${measurementId}-when-closed`}\n aria-hidden\n style={{\n position: \"absolute\",\n visibility: \"hidden\",\n pointerEvents: \"none\",\n whiteSpace: \"nowrap\",\n }}\n >\n {whenOpenText}\n </span>\n <span\n id={`${measurementId}-when-open`}\n aria-hidden\n style={{\n position: \"absolute\",\n visibility: \"hidden\",\n pointerEvents: \"none\",\n whiteSpace: \"nowrap\",\n }}\n >\n {whenClosedText}\n </span>\n\n {/* Actual content */}\n <span\n style={{ width: textWidth, whiteSpace: \"nowrap\" }}\n className={clsx(\"hds-navbar__item-responsive-text\")}\n >\n {text}\n </span>\n <span style={{ width: 32, height: 32 }}>{icon}</span>\n </button>\n );\n },\n);\nNavbarExpandableMenuTrigger.displayName = \"Navbar.ExpandableMenuTrigger\";\n\n/**\n * Content\n */\nexport interface NavbarExpandableMenuContentProps {\n children: React.ReactNode;\n className?: string;\n}\nexport const NavbarExpandableMenuContent = forwardRef<\n HTMLDivElement,\n NavbarExpandableMenuContentProps\n>(({ children, className, ...rest }, ref) => {\n const [open] = useNavbarExpendableMenuContext();\n return (\n <section\n {...rest}\n className={clsx(\"hds-navbar__expandable-menu-content\", className as undefined)}\n data-state={open ? \"open\" : \"closed\"}\n {...{ inert: open ? undefined : \"true\" }}\n ref={ref}\n >\n <div className={clsx(\"hds-navbar__expandable-menu-content-inner\")}>{children}</div>\n </section>\n );\n});\nNavbarExpandableMenuContent.displayName = \"Navbar.ExpandableMenuContent\";\n"],"mappings":"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","names":["_a","_b"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
- BoxComponent
3
- } from "./chunk-3NL3TOZF.mjs";
2
+ Box
3
+ } from "./chunk-AJWSQEDP.mjs";
4
4
  import {
5
5
  __objRest,
6
6
  __spreadProps,
@@ -15,7 +15,7 @@ var WarningBanner = forwardRef(
15
15
  (_a, ref) => {
16
16
  var _b = _a, { title, description, className } = _b, rest = __objRest(_b, ["title", "description", "className"]);
17
17
  const expandable = !!description;
18
- return /* @__PURE__ */ jsxs(BoxComponent, __spreadProps(__spreadValues({}, rest), { className: clsx("hds-warning-banner", className), ref, children: [
18
+ return /* @__PURE__ */ jsxs(Box, __spreadProps(__spreadValues({}, rest), { className: clsx("hds-warning-banner", className), ref, children: [
19
19
  /* @__PURE__ */ jsx(WarningBannerTitle, { variant: expandable ? "expandable" : "default", children: title }),
20
20
  expandable ? /* @__PURE__ */ jsx(WarningBannerDescription, { children: description }) : null
21
21
  ] }));
@@ -71,4 +71,4 @@ WarningBannerDescription.displayName = "WarningBannerDescription";
71
71
  export {
72
72
  WarningBanner
73
73
  };
74
- //# sourceMappingURL=chunk-XC3UHH2U.mjs.map
74
+ //# sourceMappingURL=chunk-3WVRY6CC.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/warning-banner/warning-banner.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"],"mappings":";;;;;;;;;;AACA,SAAgB,YAAY,gBAAgB;AAC5C,SAAS,YAAY;AAYf,SACE,KADF;AAJC,IAAM,gBAAgB;AAAA,EAC3B,CAAC,IAA4C,QAAQ;AAApD,iBAAE,SAAO,aAAa,UAXzB,IAWG,IAAoC,iBAApC,IAAoC,CAAlC,SAAO,eAAa;AACrB,UAAM,aAAa,CAAC,CAAC;AACrB,WACE,qBAAC,+CAAQ,OAAR,EAAc,WAAW,KAAK,sBAAsB,SAAsB,GAAG,KAC5E;AAAA,0BAAC,sBAAmB,SAAS,aAAa,eAAe,WACtD,iBACH;AAAA,MACC,aAAa,oBAAC,4BAA0B,uBAAY,IAA8B;AAAA,QACrF;AAAA,EAEJ;AACF;AACA,cAAc,cAAc;AAM5B,IAAM,qBAAqB,WAGzB,CAAC,IAA2C,QAAQ;AAAnD,eAAE,WAAS,UAAU,UAhCxB,IAgCG,IAAmC,iBAAnC,IAAmC,CAAjC,WAAS,YAAU;AACtB,QAAM,CAAC,MAAM,OAAO,IAAI,SAAkB,KAAK;AAC/C,MAAI,YAAY,cAAc;AAC5B,WACE;AAAA,MAAC;AAAA,uCACM,OADN;AAAA,QAEC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA,EAAE,8BAA8B,CAAC,KAAK;AAAA,UACtC;AAAA,QACF;AAAA,QACA,SAAS,MAAM;AACb,kBAAQ,CAAC,SAAS,CAAC,IAAI;AAAA,QACzB;AAAA,QACA;AAAA,QACA,MAAK;AAAA,QAEL,8BAAC,UAAM,UAAS;AAAA;AAAA,IAClB;AAAA,EAEJ;AACA,SACE;AAAA,IAAC;AAAA,qCACM,OADN;AAAA,MAEC,WAAW,KAAK,6BAA6B,SAAsB;AAAA,MACnE;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ,CAAC;AACD,mBAAmB,cAAc;AAGjC,IAAM,2BAA2B;AAAA,EAC/B,CAAC,IAAwB,QAAQ;AAAhC,iBAAE,YApEL,IAoEG,IAAgB,iBAAhB,IAAgB,CAAd;AACD,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,KAAK,mCAAmC,SAAsB;AAAA,QACzE;AAAA,SACI;AAAA,IACN;AAAA,EAEJ;AACF;AACA,yBAAyB,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/warning-banner/warning-banner.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"],"mappings":";;;;;;;;;;AACA,SAAgB,YAAY,gBAAgB;AAC5C,SAAS,YAAY;AAYf,SACE,KADF;AAJC,IAAM,gBAAgB;AAAA,EAC3B,CAAC,IAA4C,QAAQ;AAApD,iBAAE,SAAO,aAAa,UAXzB,IAWG,IAAoC,iBAApC,IAAoC,CAAlC,SAAO,eAAa;AACrB,UAAM,aAAa,CAAC,CAAC;AACrB,WACE,qBAAC,sCAAQ,OAAR,EAAc,WAAW,KAAK,sBAAsB,SAAsB,GAAG,KAC5E;AAAA,0BAAC,sBAAmB,SAAS,aAAa,eAAe,WACtD,iBACH;AAAA,MACC,aAAa,oBAAC,4BAA0B,uBAAY,IAA8B;AAAA,QACrF;AAAA,EAEJ;AACF;AACA,cAAc,cAAc;AAM5B,IAAM,qBAAqB,WAGzB,CAAC,IAA2C,QAAQ;AAAnD,eAAE,WAAS,UAAU,UAhCxB,IAgCG,IAAmC,iBAAnC,IAAmC,CAAjC,WAAS,YAAU;AACtB,QAAM,CAAC,MAAM,OAAO,IAAI,SAAkB,KAAK;AAC/C,MAAI,YAAY,cAAc;AAC5B,WACE;AAAA,MAAC;AAAA,uCACM,OADN;AAAA,QAEC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA,EAAE,8BAA8B,CAAC,KAAK;AAAA,UACtC;AAAA,QACF;AAAA,QACA,SAAS,MAAM;AACb,kBAAQ,CAAC,SAAS,CAAC,IAAI;AAAA,QACzB;AAAA,QACA;AAAA,QACA,MAAK;AAAA,QAEL,8BAAC,UAAM,UAAS;AAAA;AAAA,IAClB;AAAA,EAEJ;AACA,SACE;AAAA,IAAC;AAAA,qCACM,OADN;AAAA,MAEC,WAAW,KAAK,6BAA6B,SAAsB;AAAA,MACnE;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ,CAAC;AACD,mBAAmB,cAAc;AAGjC,IAAM,2BAA2B;AAAA,EAC/B,CAAC,IAAwB,QAAQ;AAAhC,iBAAE,YApEL,IAoEG,IAAgB,iBAAhB,IAAgB,CAAd;AACD,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,KAAK,mCAAmC,SAAsB;AAAA,QACzE;AAAA,SACI;AAAA,IACN;AAAA,EAEJ;AACF;AACA,yBAAyB,cAAc;","names":[]}
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  useMergeRefs
3
- } from "./chunk-DEX36MFK.mjs";
3
+ } from "./chunk-TDXU2IC6.mjs";
4
4
  import {
5
5
  __objRest,
6
6
  __spreadProps,
7
7
  __spreadValues
8
8
  } from "./chunk-R4SQKVDQ.mjs";
9
9
 
10
- // src/utilities/auto-animate-height.tsx
10
+ // src/utils/auto-animate-height.tsx
11
11
  import { cloneElement, forwardRef, useEffect, useRef, useState } from "react";
12
12
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
13
13
  var AutoAnimateHeight = forwardRef(
@@ -114,4 +114,4 @@ AutoAnimateHeight.displayName = "AutoAnimateHeight";
114
114
  export {
115
115
  AutoAnimateHeight
116
116
  };
117
- //# sourceMappingURL=chunk-67TP3E2D.mjs.map
117
+ //# sourceMappingURL=chunk-6FBPKLWB.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/auto-animate-height.tsx"],"sourcesContent":["import { cloneElement, forwardRef, useEffect, useRef, useState } from \"react\";\nimport { useMergeRefs } from \"./utils\";\n\nexport interface AutoAnimateHeightProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Time of the animation, using the hedwig animation tokens\n * quick: 0.1s\n * normal: 0.3s\n * slow: 0.7s\n *\n * default is \"quick\"\n */\n animationDuration?: \"quick\" | \"normal\" | \"slow\";\n\n /**\n * Callback fired when animiation transition ends\n * Use this to do effects after resizing is done, e.g. scrolling to the element\n * using `element.scrollIntoView()`\n */\n onTransitionEnd?: () => void;\n\n /**\n * Which hedwig easing function to use, default is \"normal\"\n */\n animationEasing?: \"in\" | \"out\" | \"normal\";\n children: React.ReactNode;\n style?: React.CSSProperties;\n}\n\n/**\n * Helper component to animate the height of the children when they change\n * It's done by rendering two versions of the passed children,\n * one hidden to measure the height and one visible to only changes after the height is measured.\n *\n * **IMPORTANT** Do not pass any components with effects (like data fetching), as they will trigger twice.\n */\nexport const AutoAnimateHeight = forwardRef<HTMLDivElement, AutoAnimateHeightProps>(\n (\n {\n children,\n style,\n animationDuration = \"quick\",\n animationEasing = \"normal\",\n onTransitionEnd,\n ...rest\n },\n ref,\n ) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs([rootRef, ref]);\n const measurementRef = useRef<HTMLDivElement>(null);\n const [height, setHeight] = useState<{ height: number; shouldAnimate: boolean } | undefined>(\n undefined,\n );\n const [clonedChildren, setClonedChildren] = useState<React.ReactNode>(() =>\n cloneElement(<>{children}</>, {}),\n );\n\n useEffect(() => {\n if (!rootRef.current) return;\n if (!measurementRef.current) return;\n if (document.body.scrollHeight === 0) return;\n const currentMeasurement = measurementRef.current;\n const { height: newHeight } = currentMeasurement.getBoundingClientRect();\n\n // Listen for resize events on the measurement element\n // Keep the children in sync with the height\n // But don't animate it.\n let previouslyObservedHeight = newHeight;\n const resizeObserver = new ResizeObserver(() => {\n const { height: resizedHeight } = currentMeasurement.getBoundingClientRect();\n if (resizedHeight === previouslyObservedHeight) return;\n previouslyObservedHeight = resizedHeight;\n setHeight({ height: resizedHeight, shouldAnimate: false });\n });\n resizeObserver.observe(currentMeasurement); // This is cleaned up down below in the return functions\n\n // Set the new height when children changes\n setHeight({ height: newHeight, shouldAnimate: true });\n\n // Update children\n const nextClonedChildren = cloneElement(<>{children}</>, {});\n\n // When increasing in height update immediately so the new content is shown during the animation\n if (newHeight >= (height?.height ?? 0)) {\n setClonedChildren(nextClonedChildren);\n return () => {\n resizeObserver.disconnect();\n };\n }\n\n // When decreasing in height, wait until the animation is done so that we don't get a sudden flash of empty content\n const currentRoot = rootRef.current;\n function onTransitionEndHandler(e: TransitionEvent) {\n if (e.propertyName !== \"height\") return;\n setClonedChildren(nextClonedChildren);\n }\n currentRoot.addEventListener(\"transitionend\", onTransitionEndHandler);\n return () => {\n resizeObserver.disconnect();\n currentRoot.removeEventListener(\"transitionend\", onTransitionEndHandler);\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps -- I know better\n }, [children]);\n\n return (\n <div\n ref={mergedRef}\n onTransitionEnd={onTransitionEnd}\n style={{\n position: \"relative\",\n overflow: \"hidden\",\n height: height?.height ?? measurementRef.current?.getBoundingClientRect().height,\n transitionProperty: height?.shouldAnimate ? \"height\" : \"none\",\n transitionDuration: `var(--hds-micro-animation-duration-${animationDuration})`,\n transitionTimingFunction: `var(--hds-micro-animation-easing-${animationEasing})`,\n willChange: \"height\",\n ...style,\n }}\n {...rest}\n >\n <div\n aria-hidden\n ref={measurementRef}\n style={{\n position: \"absolute\",\n visibility: \"hidden\",\n pointerEvents: \"none\",\n }}\n >\n {children}\n </div>\n {clonedChildren}\n </div>\n );\n },\n);\nAutoAnimateHeight.displayName = \"AutoAnimateHeight\";\n"],"mappings":";;;;;;;;;;AAAA,SAAS,cAAc,YAAY,WAAW,QAAQ,gBAAgB;AAuDnD,wBAoDb,YApDa;AAnBZ,IAAM,oBAAoB;AAAA,EAC/B,CACE,IAQA,QACG;AATH,iBACE;AAAA;AAAA,MACA;AAAA,MACA,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,MAClB;AAAA,IA3CN,IAsCI,IAMK,iBANL,IAMK;AAAA,MALH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AA3CN,QAAAA,KAAAC;AAgDI,UAAM,UAAU,OAAuB,IAAI;AAC3C,UAAM,YAAY,aAAa,CAAC,SAAS,GAAG,CAAC;AAC7C,UAAM,iBAAiB,OAAuB,IAAI;AAClD,UAAM,CAAC,QAAQ,SAAS,IAAI;AAAA,MAC1B;AAAA,IACF;AACA,UAAM,CAAC,gBAAgB,iBAAiB,IAAI;AAAA,MAA0B,MACpE,aAAa,gCAAG,UAAS,GAAK,CAAC,CAAC;AAAA,IAClC;AAEA,cAAU,MAAM;AA1DpB,UAAAD;AA2DM,UAAI,CAAC,QAAQ;AAAS;AACtB,UAAI,CAAC,eAAe;AAAS;AAC7B,UAAI,SAAS,KAAK,iBAAiB;AAAG;AACtC,YAAM,qBAAqB,eAAe;AAC1C,YAAM,EAAE,QAAQ,UAAU,IAAI,mBAAmB,sBAAsB;AAKvE,UAAI,2BAA2B;AAC/B,YAAM,iBAAiB,IAAI,eAAe,MAAM;AAC9C,cAAM,EAAE,QAAQ,cAAc,IAAI,mBAAmB,sBAAsB;AAC3E,YAAI,kBAAkB;AAA0B;AAChD,mCAA2B;AAC3B,kBAAU,EAAE,QAAQ,eAAe,eAAe,MAAM,CAAC;AAAA,MAC3D,CAAC;AACD,qBAAe,QAAQ,kBAAkB;AAGzC,gBAAU,EAAE,QAAQ,WAAW,eAAe,KAAK,CAAC;AAGpD,YAAM,qBAAqB,aAAa,gCAAG,UAAS,GAAK,CAAC,CAAC;AAG3D,UAAI,eAAcA,MAAA,iCAAQ,WAAR,OAAAA,MAAkB,IAAI;AACtC,0BAAkB,kBAAkB;AACpC,eAAO,MAAM;AACX,yBAAe,WAAW;AAAA,QAC5B;AAAA,MACF;AAGA,YAAM,cAAc,QAAQ;AAC5B,eAAS,uBAAuB,GAAoB;AAClD,YAAI,EAAE,iBAAiB;AAAU;AACjC,0BAAkB,kBAAkB;AAAA,MACtC;AACA,kBAAY,iBAAiB,iBAAiB,sBAAsB;AACpE,aAAO,MAAM;AACX,uBAAe,WAAW;AAC1B,oBAAY,oBAAoB,iBAAiB,sBAAsB;AAAA,MACzE;AAAA,IAGF,GAAG,CAAC,QAAQ,CAAC;AAEb,WACE;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QACL;AAAA,QACA,OAAO;AAAA,UACL,UAAU;AAAA,UACV,UAAU;AAAA,UACV,SAAQC,MAAA,iCAAQ,WAAR,OAAAA,OAAkBD,MAAA,eAAe,YAAf,gBAAAA,IAAwB,wBAAwB;AAAA,UAC1E,qBAAoB,iCAAQ,iBAAgB,WAAW;AAAA,UACvD,oBAAoB,sCAAsC,iBAAiB;AAAA,UAC3E,0BAA0B,oCAAoC,eAAe;AAAA,UAC7E,YAAY;AAAA,WACT;AAAA,SAED,OAbL;AAAA,QAeC;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,eAAW;AAAA,cACX,KAAK;AAAA,cACL,OAAO;AAAA,gBACL,UAAU;AAAA,gBACV,YAAY;AAAA,gBACZ,eAAe;AAAA,cACjB;AAAA,cAEC;AAAA;AAAA,UACH;AAAA,UACC;AAAA;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,kBAAkB,cAAc;","names":["_a","_b"]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-7YWW46R3.mjs.map
@@ -9,6 +9,20 @@ import { forwardRef, useCallback, useState } from "react";
9
9
  import { clsx } from "@postenbring/hedwig-css/typed-classname";
10
10
  import { Slot, Slottable } from "@radix-ui/react-slot";
11
11
  import { jsx, jsxs } from "react/jsx-runtime";
12
+ var BoxCloseButton = forwardRef(
13
+ (_a, ref) => {
14
+ var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
15
+ return /* @__PURE__ */ jsx(
16
+ "button",
17
+ __spreadValues({
18
+ className: clsx("hds-box__close-button", className),
19
+ ref,
20
+ type: "button"
21
+ }, rest)
22
+ );
23
+ }
24
+ );
25
+ BoxCloseButton.displayName = "Box.CloseButton";
12
26
  var Box = forwardRef(
13
27
  (_a, ref) => {
14
28
  var _b = _a, {
@@ -63,23 +77,10 @@ var Box = forwardRef(
63
77
  }
64
78
  );
65
79
  Box.displayName = "Box";
66
- var BoxCloseButton = forwardRef(
67
- (_a, ref) => {
68
- var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
69
- return /* @__PURE__ */ jsx(
70
- "button",
71
- __spreadValues({
72
- className: clsx("hds-box__close-button", className),
73
- ref,
74
- type: "button"
75
- }, rest)
76
- );
77
- }
78
- );
79
- BoxCloseButton.displayName = "Box.CloseButton";
80
+ Box.CloseButton = BoxCloseButton;
80
81
 
81
82
  export {
82
- Box,
83
- BoxCloseButton
83
+ BoxCloseButton,
84
+ Box
84
85
  };
85
- //# sourceMappingURL=chunk-ENKVTAJB.mjs.map
86
+ //# sourceMappingURL=chunk-AJWSQEDP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/box/box.tsx"],"sourcesContent":["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":";;;;;;;AAAA,SAAS,YAAY,aAAa,gBAAgB;AAClD,SAAS,YAAY;AACrB,SAAS,MAAM,iBAAiB;AAM1B,cA2FA,YA3FA;AAHC,IAAM,iBAAiB;AAAA,EAC5B,CAAC,IAAwB,QAAQ;AAAhC,iBAAE,YANL,IAMG,IAAgB,iBAAhB,IAAgB,CAAd;AACD,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,KAAK,yBAAyB,SAAsB;AAAA,QAC/D;AAAA,QACA,MAAK;AAAA,SACD;AAAA,IACN;AAAA,EAEJ;AACF;AACA,eAAe,cAAc;AAmDtB,IAAM,MAAM;AAAA,EACjB,CACE,IAWA,QACG;AAZH,iBACE;AAAA;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IA9EN,IAsEI,IASK,iBATL,IASK;AAAA,MARH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAKF,UAAM,CAAC,aAAa,cAAc,IAAI,SAAS,KAAK;AACpD,UAAM,UAAU,YAAY,MAAM;AAChC,UAAI,aAAa;AACf,cAAM,SAAS,YAAY;AAC3B,YAAI,WAAW,MAAM;AACnB,yBAAe,IAAI;AAAA,QACrB;AAAA,MACF,OAAO;AACL,uBAAe,IAAI;AAAA,MACrB;AAAA,IAEF,GAAG,CAAC,CAAC;AACL,UAAM,SAAS,kCAAc;AAC7B,UAAM,YAAY,UAAU,OAAO;AAEnC,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,WAAW,YAAY,OAAO;AAAA,UAC9B,EAAE,mBAAmB,OAAO;AAAA,UAC5B;AAAA,QACF;AAAA,QACA;AAAA,SACI,OARL;AAAA,QAUE;AAAA,sBAAY,oBAAC,iCAAe,SAAS,WAAa,iBAAkB,IAAK;AAAA,UAC1E,oBAAC,aAAW,UAAS;AAAA;AAAA;AAAA,IACvB;AAAA,EAEJ;AACF;AACA,IAAI,cAAc;AAElB,IAAI,cAAc;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-ARHJZUZG.mjs.map
@@ -5,7 +5,7 @@ import {
5
5
  useHydrated,
6
6
  useMergeRefs,
7
7
  useResize
8
- } from "./chunk-DEX36MFK.mjs";
8
+ } from "./chunk-TDXU2IC6.mjs";
9
9
  import {
10
10
  __objRest,
11
11
  __spreadProps,
@@ -108,4 +108,4 @@ export {
108
108
  TabsList,
109
109
  TabsTab
110
110
  };
111
- //# sourceMappingURL=chunk-4WQWU5TL.mjs.map
111
+ //# sourceMappingURL=chunk-AXQCREUJ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tabs/tabs-list.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactElement, MouseEvent } from \"react\";\nimport { forwardRef, useEffect, useRef } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { useResize, useHydrated, useMergeRefs } from \"../utils/utils\";\nimport { useTabsContext } from \"./context\";\n\nexport interface TabsListProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactElement<TabsTabProps> | ReactElement<TabsTabProps>[];\n\n /**\n * Direction of the tabs. Can either be vertical or horizontal.\n * Horizontal breaks on window width with fallback back to vertical\n *\n * @default \"horizontal\"\n */\n direction?: \"vertical\" | \"horizontal\";\n}\n\nexport const TabsList = forwardRef<HTMLDivElement, TabsListProps>(\n ({ children, direction = \"horizontal\", className, ...rest }, ref) => {\n const { activeTabId } = useTabsContext();\n const tabsListRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs([tabsListRef, ref]);\n const { width: tabsWidth } = useResize(tabsListRef);\n\n const isClientSide = useHydrated();\n const { innerWidth } = isClientSide ? window : { innerWidth: 1000 };\n const wideEnough = innerWidth >= tabsWidth;\n\n const previousTabId = useRef(activeTabId);\n\n // Marker animation\n useEffect(() => {\n const tabList = tabsListRef.current;\n const activeTab = tabList?.querySelector(`[data-tabid=\"${activeTabId}\"]`);\n if (!activeTab || !tabList) return;\n\n const { offsetHeight: containerHeight, offsetWidth: containerWidth } = tabList;\n const { offsetHeight, offsetWidth, offsetTop, offsetLeft } = activeTab as HTMLElement;\n\n // Calculate the height and width of the marker relative to the container\n const height = offsetHeight / containerHeight;\n const width = offsetWidth / containerWidth;\n\n // NOTE: Doing a DOM manipulation here to set the CSS variables for the marker\n // Not really the react idomatic way, but as long as it works we are able to skip some intermidiate `useState`\n tabsListRef.current.style.setProperty(\"--_hds-tabs-marker-height\", String(height));\n tabsListRef.current.style.setProperty(\"--_hds-tabs-marker-width\", String(width));\n tabsListRef.current.style.setProperty(\"--_hds-tabs-marker-top\", `${offsetTop}px`);\n tabsListRef.current.style.setProperty(\"--_hds-tabs-marker-left\", `${offsetLeft}px`);\n\n // Start with border fallback, then switch to the animated marker when the user changes tabs\n // This way the marker is placed immediately to the default tab, then animates smoothly to the next when selected\n if (previousTabId.current !== activeTabId) {\n tabsListRef.current.style.setProperty(\n \"--_hds-tabs-marker-animated-color\",\n \"var(--_hds-tabs-marker-color)\",\n );\n tabsListRef.current.style.setProperty(\n \"--_hds-tabs-marker-border-fallback-color\",\n \"transparent\",\n );\n }\n previousTabId.current = activeTabId;\n }, [activeTabId, innerWidth]);\n\n return (\n <div\n className={clsx(\n \"hds-tabs__list\",\n direction === \"horizontal\"\n ? {\n \"hds-tabs__list--horizontal\": wideEnough,\n \"hds-tabs__list--vertical\": !wideEnough,\n }\n : {\n \"hds-tabs__list--vertical\": true,\n },\n className as undefined,\n )}\n ref={mergedRef}\n role=\"tablist\"\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\nTabsList.displayName = \"Tabs.List\";\n\nexport interface TabsTabProps extends HTMLAttributes<HTMLButtonElement> {\n children: ReactElement<HTMLElement> | string;\n\n /**\n * Identifier for the tab\n */\n tabId: string;\n}\n\nexport const TabsTab = forwardRef<HTMLButtonElement, TabsTabProps>(\n ({ children, tabId, className, onClick, ...rest }, ref) => {\n const context = useTabsContext();\n\n const toggleTab = (e: MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n context.toggleActiveTabId(tabId);\n onClick?.(e);\n };\n return (\n <button\n className={clsx(\n \"hds-tabs__tab\",\n { \"hds-tabs__tab--active\": context.activeTabId === tabId },\n className as undefined,\n )}\n data-tabid={tabId}\n onClick={toggleTab}\n ref={ref}\n type=\"button\"\n role=\"tab\"\n {...rest}\n >\n {children}\n </button>\n );\n },\n);\nTabsTab.displayName = \"Tabs.Tab\";\n"],"mappings":";;;;;;;;;;;;;;;AACA,SAAS,YAAY,WAAW,cAAc;AAC9C,SAAS,YAAY;AAiEf;AAjDC,IAAM,WAAW;AAAA,EACtB,CAAC,IAA4D,QAAQ;AAApE,iBAAE,YAAU,YAAY,cAAc,UAnBzC,IAmBG,IAAoD,iBAApD,IAAoD,CAAlD,YAAU,aAA0B;AACrC,UAAM,EAAE,YAAY,IAAI,eAAe;AACvC,UAAM,cAAc,OAAuB,IAAI;AAC/C,UAAM,YAAY,aAAa,CAAC,aAAa,GAAG,CAAC;AACjD,UAAM,EAAE,OAAO,UAAU,IAAI,UAAU,WAAW;AAElD,UAAM,eAAe,YAAY;AACjC,UAAM,EAAE,WAAW,IAAI,eAAe,SAAS,EAAE,YAAY,IAAK;AAClE,UAAM,aAAa,cAAc;AAEjC,UAAM,gBAAgB,OAAO,WAAW;AAGxC,cAAU,MAAM;AACd,YAAM,UAAU,YAAY;AAC5B,YAAM,YAAY,mCAAS,cAAc,gBAAgB,WAAW;AACpE,UAAI,CAAC,aAAa,CAAC;AAAS;AAE5B,YAAM,EAAE,cAAc,iBAAiB,aAAa,eAAe,IAAI;AACvE,YAAM,EAAE,cAAc,aAAa,WAAW,WAAW,IAAI;AAG7D,YAAM,SAAS,eAAe;AAC9B,YAAM,QAAQ,cAAc;AAI5B,kBAAY,QAAQ,MAAM,YAAY,6BAA6B,OAAO,MAAM,CAAC;AACjF,kBAAY,QAAQ,MAAM,YAAY,4BAA4B,OAAO,KAAK,CAAC;AAC/E,kBAAY,QAAQ,MAAM,YAAY,0BAA0B,GAAG,SAAS,IAAI;AAChF,kBAAY,QAAQ,MAAM,YAAY,2BAA2B,GAAG,UAAU,IAAI;AAIlF,UAAI,cAAc,YAAY,aAAa;AACzC,oBAAY,QAAQ,MAAM;AAAA,UACxB;AAAA,UACA;AAAA,QACF;AACA,oBAAY,QAAQ,MAAM;AAAA,UACxB;AAAA,UACA;AAAA,QACF;AAAA,MACF;AACA,oBAAc,UAAU;AAAA,IAC1B,GAAG,CAAC,aAAa,UAAU,CAAC;AAE5B,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,cAAc,eACV;AAAA,YACE,8BAA8B;AAAA,YAC9B,4BAA4B,CAAC;AAAA,UAC/B,IACA;AAAA,YACE,4BAA4B;AAAA,UAC9B;AAAA,UACJ;AAAA,QACF;AAAA,QACA,KAAK;AAAA,QACL,MAAK;AAAA,SACD,OAfL;AAAA,QAiBE;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,SAAS,cAAc;AAWhB,IAAM,UAAU;AAAA,EACrB,CAAC,IAAkD,QAAQ;AAA1D,iBAAE,YAAU,OAAO,WAAW,QArGjC,IAqGG,IAA0C,iBAA1C,IAA0C,CAAxC,YAAU,SAAO,aAAW;AAC7B,UAAM,UAAU,eAAe;AAE/B,UAAM,YAAY,CAAC,MAAqC;AACtD,QAAE,eAAe;AACjB,cAAQ,kBAAkB,KAAK;AAC/B,yCAAU;AAAA,IACZ;AACA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,EAAE,yBAAyB,QAAQ,gBAAgB,MAAM;AAAA,UACzD;AAAA,QACF;AAAA,QACA,cAAY;AAAA,QACZ,SAAS;AAAA,QACT;AAAA,QACA,MAAK;AAAA,QACL,MAAK;AAAA,SACD,OAXL;AAAA,QAaE;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,QAAQ,cAAc;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-BCFV6VOE.mjs.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-FB5GEZNH.mjs";
4
4
  import {
5
5
  useMergeRefs
6
- } from "./chunk-DEX36MFK.mjs";
6
+ } from "./chunk-TDXU2IC6.mjs";
7
7
  import {
8
8
  __objRest,
9
9
  __spreadProps,
@@ -83,4 +83,4 @@ DatePicker.displayName = "DatePicker";
83
83
  export {
84
84
  DatePicker
85
85
  };
86
- //# sourceMappingURL=chunk-F2C3KZFX.mjs.map
86
+ //# sourceMappingURL=chunk-BVPSZ3JI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/form/date-picker/date-picker.tsx"],"sourcesContent":["import { forwardRef, useRef, type InputHTMLAttributes } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { InputGroup, type InputGroupProps } from \"../input-group\";\nimport { useMergeRefs } from \"../../utils/utils\";\n\nexport type DatePickerProps = Omit<\n InputGroupProps & InputHTMLAttributes<HTMLInputElement>,\n \"children\" | \"type\"\n> & {\n /**\n * Accessible title for the calendar button\n *\n * This button currently only shows in Chrome.\n *\n * @defaultValue \"Åpne kalender\"\n */\n calendarButtonTitle?: string;\n};\n\n/**\n * A basic implementation of a date picker\n *\n * This date picker is an implementation of native date picker, as you get\n * with `<input type=\"date\" />`, where the input field is dressed in Hedwig styling.\n *\n * Due to accessibility concerns you will only see the appropriate Hedwig calendar\n * icon in Chrome. Firefox will show built in icon and Safari will show no icon.\n * Not tested in Edge.\n */\nexport const DatePicker = forwardRef<HTMLInputElement, DatePickerProps>(function DatePicker(\n {\n className,\n variant,\n errorMessage,\n labelProps,\n label,\n id,\n style,\n disabled,\n readOnly,\n calendarButtonTitle = \"Åpne kalender\",\n ...rest\n },\n ref,\n) {\n const inputRef = useRef<HTMLInputElement>(null);\n const mergedRef = useMergeRefs([inputRef, ref]);\n\n return (\n <InputGroup\n className={clsx(\"hds-date-picker\", className as undefined)}\n disabled={disabled}\n errorMessage={errorMessage}\n id={id}\n label={label}\n labelProps={labelProps}\n readOnly={readOnly}\n style={style}\n variant={variant}\n >\n {(inputProps) => (\n <>\n <input\n {...rest}\n {...inputProps}\n disabled={disabled}\n readOnly={readOnly}\n ref={mergedRef}\n type=\"date\"\n />\n <button\n className={clsx(\"hds-date-picker__calendar-button\")}\n type=\"button\"\n title={calendarButtonTitle}\n onClick={() => {\n inputRef.current?.showPicker();\n }}\n />\n </>\n )}\n </InputGroup>\n );\n});\n\nDatePicker.displayName = \"DatePicker\";\n"],"mappings":";;;;;;;;;;;;;AAAA,SAAS,YAAY,cAAwC;AAC7D,SAAS,YAAY;AA4Db,mBACE,KADF;AAhCD,IAAM,aAAa,WAA8C,SAASA,YAC/E,IAaA,KACA;AAdA,eACE;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,sBAAsB;AAAA,EAxC1B,IA8BE,IAWK,iBAXL,IAWK;AAAA,IAVH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAKF,QAAM,WAAW,OAAyB,IAAI;AAC9C,QAAM,YAAY,aAAa,CAAC,UAAU,GAAG,CAAC;AAE9C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,KAAK,mBAAmB,SAAsB;AAAA,MACzD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEC,WAAC,eACA,iCACE;AAAA;AAAA,UAAC;AAAA,0DACK,OACA,aAFL;AAAA,YAGC;AAAA,YACA;AAAA,YACA,KAAK;AAAA,YACL,MAAK;AAAA;AAAA,QACP;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,KAAK,kCAAkC;AAAA,YAClD,MAAK;AAAA,YACL,OAAO;AAAA,YACP,SAAS,MAAM;AA1E3B,kBAAAC;AA2Ec,eAAAA,MAAA,SAAS,YAAT,gBAAAA,IAAkB;AAAA,YACpB;AAAA;AAAA,QACF;AAAA,SACF;AAAA;AAAA,EAEJ;AAEJ,CAAC;AAED,WAAW,cAAc;","names":["DatePicker","_a"]}
@@ -5,8 +5,8 @@ import {
5
5
  PrimaryButton
6
6
  } from "./chunk-KEKPEN2C.mjs";
7
7
  import {
8
- AccordionComponent
9
- } from "./chunk-3ZFEUABU.mjs";
8
+ Accordion
9
+ } from "./chunk-M3Y3XOGC.mjs";
10
10
  import {
11
11
  __objRest,
12
12
  __spreadProps,
@@ -18,26 +18,6 @@ import { forwardRef } from "react";
18
18
  import { clsx } from "@postenbring/hedwig-css/typed-classname";
19
19
  import { Slot } from "@radix-ui/react-slot";
20
20
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
21
- var Footer = forwardRef(
22
- (_a, ref) => {
23
- var _b = _a, { children, className, variant, asChild } = _b, rest = __objRest(_b, ["children", "className", "variant", "asChild"]);
24
- const Component = asChild ? Slot : "footer";
25
- return /* @__PURE__ */ jsx(
26
- Component,
27
- __spreadProps(__spreadValues({
28
- className: clsx(
29
- `hds-footer`,
30
- variant === "slim" && "hds-footer--slim",
31
- className
32
- ),
33
- ref
34
- }, rest), {
35
- children
36
- })
37
- );
38
- }
39
- );
40
- Footer.displayName = "Footer";
41
21
  var FooterLogo = forwardRef(
42
22
  (_a, ref) => {
43
23
  var _b = _a, { children, className, asChild } = _b, rest = __objRest(_b, ["children", "className", "asChild"]);
@@ -58,7 +38,7 @@ var FooterLinkSections = forwardRef(
58
38
  (_a, ref) => {
59
39
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
60
40
  return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
61
- AccordionComponent,
41
+ Accordion,
62
42
  __spreadProps(__spreadValues({
63
43
  className: clsx("hds-footer__link-sections", className),
64
44
  ref
@@ -75,14 +55,14 @@ var FooterLinkSection = forwardRef(
75
55
  const linkListChildren = /* @__PURE__ */ jsx(LinkList, { children });
76
56
  return /* @__PURE__ */ jsxs(Fragment, { children: [
77
57
  /* @__PURE__ */ jsxs(
78
- AccordionComponent.Item,
58
+ Accordion.Item,
79
59
  __spreadProps(__spreadValues({
80
60
  className: clsx(`hds-footer__link-section`, className),
81
61
  ref
82
62
  }, rest), {
83
63
  children: [
84
- /* @__PURE__ */ jsx(AccordionComponent.Header, { children: heading }),
85
- /* @__PURE__ */ jsx(AccordionComponent.Content, { children: linkListChildren })
64
+ /* @__PURE__ */ jsx(Accordion.Header, { children: heading }),
65
+ /* @__PURE__ */ jsx(Accordion.Content, { children: linkListChildren })
86
66
  ]
87
67
  })
88
68
  ),
@@ -94,12 +74,36 @@ var FooterLinkSection = forwardRef(
94
74
  }
95
75
  );
96
76
  FooterLinkSection.displayName = "Footer.LinkSection";
77
+ var Footer = forwardRef(
78
+ (_a, ref) => {
79
+ var _b = _a, { children, className, variant, asChild } = _b, rest = __objRest(_b, ["children", "className", "variant", "asChild"]);
80
+ const Component = asChild ? Slot : "footer";
81
+ return /* @__PURE__ */ jsx(
82
+ Component,
83
+ __spreadProps(__spreadValues({
84
+ className: clsx(
85
+ `hds-footer`,
86
+ variant === "slim" && "hds-footer--slim",
87
+ className
88
+ ),
89
+ ref
90
+ }, rest), {
91
+ children
92
+ })
93
+ );
94
+ }
95
+ );
96
+ Footer.displayName = "Footer";
97
+ Footer.Logo = FooterLogo;
98
+ Footer.ButtonLink = FooterButtonLink;
99
+ Footer.LinkSections = FooterLinkSections;
100
+ Footer.LinkSection = FooterLinkSection;
97
101
 
98
102
  export {
99
- Footer,
100
103
  FooterLogo,
101
104
  FooterButtonLink,
102
105
  FooterLinkSections,
103
- FooterLinkSection
106
+ FooterLinkSection,
107
+ Footer
104
108
  };
105
- //# sourceMappingURL=chunk-7JRS4WEB.mjs.map
109
+ //# sourceMappingURL=chunk-C34HEQXO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/footer/footer.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type ReactElement } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { Accordion } from \"../accordion\";\nimport { LinkList } from \"../list/link-list\";\nimport { PrimaryButton } from \"../button\";\n\ninterface FooterLogoProps extends HTMLAttributes<HTMLDivElement> {\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\n/**\n * A fixed Posten or Bring logo.\n *\n * The logo follows the brand theme, so if the class `hds-theme-bring` is set the Bring logo will be shown instead of the Posten logo\n */\nexport const FooterLogo = forwardRef<HTMLDivElement, FooterLogoProps>(\n ({ children, className, asChild, ...rest }, ref) => {\n const Component = asChild ? Slot : \"div\";\n return (\n <Component className={clsx(`hds-footer__logo`, className as undefined)} ref={ref} {...rest}>\n {children}\n </Component>\n );\n },\n);\nFooterLogo.displayName = \"Footer.Logo\";\n\nexport interface FooterButtonLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\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\n/**\n * 🚨 WORK IN PROGRESS 🚨\n */\nexport const FooterButtonLink = forwardRef<HTMLAnchorElement, FooterButtonLinkProps>(\n ({ children, className, asChild, ...rest }, ref) => {\n const Component = asChild ? Slot : \"a\";\n return (\n <PrimaryButton asChild fill=\"outline\" className={clsx(className as undefined)}>\n <Component ref={ref} {...rest}>\n {children}\n </Component>\n </PrimaryButton>\n );\n },\n);\nFooterButtonLink.displayName = \"FooterButton\";\n\ninterface FooterLinkSectionsProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactElement<FooterLinkSectionProps> | ReactElement<FooterLinkSectionProps>[];\n}\n\n/**\n * Responsive sections of links. Will become an accordion on mobile.\n *\n * Use with {@link FooterLinkSection} for each section.\n */\nexport const FooterLinkSections = forwardRef<HTMLDivElement, FooterLinkSectionsProps>(\n ({ children, className, ...rest }, ref) => {\n return (\n <>\n {/* Mobile and Desktop. The accordion styling gets removed on desktop */}\n <Accordion\n className={clsx(\"hds-footer__link-sections\", className as undefined)}\n ref={ref}\n {...rest}\n >\n {/* @ts-expect-error -- It's ok */}\n {children}\n </Accordion>\n </>\n );\n },\n);\nFooterLinkSections.displayName = \"Footer.LinkSections\";\n\ninterface FooterLinkSectionProps extends HTMLAttributes<HTMLDivElement> {\n heading: React.ReactNode;\n children: React.ReactNode;\n}\n\nexport const FooterLinkSection = forwardRef<HTMLDivElement, FooterLinkSectionProps>(\n ({ heading, children, className, ...rest }, ref) => {\n // @ts-expect-error -- It's ok\n const linkListChildren = <LinkList>{children}</LinkList>;\n return (\n <>\n {/* Mobile */}\n <Accordion.Item\n className={clsx(`hds-footer__link-section`, className as undefined)}\n ref={ref}\n {...rest}\n >\n <Accordion.Header>{heading}</Accordion.Header>\n <Accordion.Content>{linkListChildren}</Accordion.Content>\n </Accordion.Item>\n\n {/* Desktop */}\n <div className={clsx(`hds-footer__link-section`, className as undefined)}>\n <h2>{heading}</h2>\n {linkListChildren}\n </div>\n </>\n );\n },\n);\nFooterLinkSection.displayName = \"Footer.LinkSection\";\n\nexport interface FooterProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Footer variant\n *\n * @default \"default\"\n */\n variant?: \"default\" | \"slim\";\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\n/**\n * 🚨 WORK IN PROGRESS 🚨\n */\nexport const Footer = forwardRef<HTMLDivElement, FooterProps>(\n ({ children, className, variant, asChild, ...rest }, ref) => {\n const Component = asChild ? Slot : \"footer\";\n return (\n <Component\n className={clsx(\n `hds-footer`,\n variant === \"slim\" && \"hds-footer--slim\",\n className as undefined,\n )}\n ref={ref}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n) as FooterType;\nFooter.displayName = \"Footer\";\n\ntype FooterType = ReturnType<typeof forwardRef<HTMLDivElement, FooterProps>> & {\n Logo: typeof FooterLogo;\n ButtonLink: typeof FooterButtonLink;\n LinkSections: typeof FooterLinkSections;\n LinkSection: typeof FooterLinkSection;\n};\n\nFooter.Logo = FooterLogo;\nFooter.ButtonLink = FooterButtonLink;\nFooter.LinkSections = FooterLinkSections;\nFooter.LinkSection = FooterLinkSection;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,SAAS,kBAA0D;AACnE,SAAS,YAAY;AACrB,SAAS,YAAY;AAuBf,SA8CA,UA9CA,KA0EE,YA1EF;AAJC,IAAM,aAAa;AAAA,EACxB,CAAC,IAA2C,QAAQ;AAAnD,iBAAE,YAAU,WAAW,QAtB1B,IAsBG,IAAmC,iBAAnC,IAAmC,CAAjC,YAAU,aAAW;AACtB,UAAM,YAAY,UAAU,OAAO;AACnC,WACE,oBAAC,0CAAU,WAAW,KAAK,oBAAoB,SAAsB,GAAG,OAAc,OAArF,EACE,WACH;AAAA,EAEJ;AACF;AACA,WAAW,cAAc;AAclB,IAAM,mBAAmB;AAAA,EAC9B,CAAC,IAA2C,QAAQ;AAAnD,iBAAE,YAAU,WAAW,QA9C1B,IA8CG,IAAmC,iBAAnC,IAAmC,CAAjC,YAAU,aAAW;AACtB,UAAM,YAAY,UAAU,OAAO;AACnC,WACE,oBAAC,iBAAc,SAAO,MAAC,MAAK,WAAU,WAAW,KAAK,SAAsB,GAC1E,8BAAC,0CAAU,OAAc,OAAxB,EACE,WACH,GACF;AAAA,EAEJ;AACF;AACA,iBAAiB,cAAc;AAWxB,IAAM,qBAAqB;AAAA,EAChC,CAAC,IAAkC,QAAQ;AAA1C,iBAAE,YAAU,UArEf,IAqEG,IAA0B,iBAA1B,IAA0B,CAAxB,YAAU;AACX,WACE,gCAEE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,KAAK,6BAA6B,SAAsB;AAAA,QACnE;AAAA,SACI,OAHL;AAAA,QAME;AAAA;AAAA,IACH,GACF;AAAA,EAEJ;AACF;AACA,mBAAmB,cAAc;AAO1B,IAAM,oBAAoB;AAAA,EAC/B,CAAC,IAA2C,QAAQ;AAAnD,iBAAE,WAAS,UAAU,UA7FxB,IA6FG,IAAmC,iBAAnC,IAAmC,CAAjC,WAAS,YAAU;AAEpB,UAAM,mBAAmB,oBAAC,YAAU,UAAS;AAC7C,WACE,iCAEE;AAAA;AAAA,QAAC,UAAU;AAAA,QAAV;AAAA,UACC,WAAW,KAAK,4BAA4B,SAAsB;AAAA,UAClE;AAAA,WACI,OAHL;AAAA,UAKC;AAAA,gCAAC,UAAU,QAAV,EAAkB,mBAAQ;AAAA,YAC3B,oBAAC,UAAU,SAAV,EAAmB,4BAAiB;AAAA;AAAA;AAAA,MACvC;AAAA,MAGA,qBAAC,SAAI,WAAW,KAAK,4BAA4B,SAAsB,GACrE;AAAA,4BAAC,QAAI,mBAAQ;AAAA,QACZ;AAAA,SACH;AAAA,OACF;AAAA,EAEJ;AACF;AACA,kBAAkB,cAAc;AAqBzB,IAAM,SAAS;AAAA,EACpB,CAAC,IAAoD,QAAQ;AAA5D,iBAAE,YAAU,WAAW,SAAS,QA3InC,IA2IG,IAA4C,iBAA5C,IAA4C,CAA1C,YAAU,aAAW,WAAS;AAC/B,UAAM,YAAY,UAAU,OAAO;AACnC,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,YAAY,UAAU;AAAA,UACtB;AAAA,QACF;AAAA,QACA;AAAA,SACI,OAPL;AAAA,QASE;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,OAAO,cAAc;AASrB,OAAO,OAAO;AACd,OAAO,aAAa;AACpB,OAAO,eAAe;AACtB,OAAO,cAAc;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-CYDWEPFL.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
- BoxComponent
3
- } from "./chunk-3NL3TOZF.mjs";
2
+ Box
3
+ } from "./chunk-AJWSQEDP.mjs";
4
4
  import {
5
5
  __objRest,
6
6
  __spreadProps,
@@ -33,11 +33,11 @@ var HelpText = forwardRef(
33
33
  })
34
34
  ) }),
35
35
  /* @__PURE__ */ jsx(Popover.Portal, { children: /* @__PURE__ */ jsx(Popover.Content, { asChild: true, side, align, children: /* @__PURE__ */ jsxs(
36
- BoxComponent,
36
+ Box,
37
37
  __spreadProps(__spreadValues({}, boxProps), {
38
38
  className: clsx("hds-help-text-box", boxProps == null ? void 0 : boxProps.className),
39
39
  children: [
40
- /* @__PURE__ */ jsx(Popover.Close, { asChild: true, children: /* @__PURE__ */ jsx(BoxComponent.CloseButton, {}) }),
40
+ /* @__PURE__ */ jsx(Popover.Close, { asChild: true, children: /* @__PURE__ */ jsx(Box.CloseButton, {}) }),
41
41
  helpText
42
42
  ]
43
43
  })
@@ -51,4 +51,4 @@ HelpText.displayName = "HelpText";
51
51
  export {
52
52
  HelpText
53
53
  };
54
- //# sourceMappingURL=chunk-PLXB3TNA.mjs.map
54
+ //# sourceMappingURL=chunk-D7QPJIUZ.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/help-text/help-text.tsx"],"sourcesContent":["import * as Popover from \"@radix-ui/react-popover\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { forwardRef } from \"react\";\nimport { Box } from \"../box\";\n\ninterface HelpTextProps extends React.HTMLAttributes<HTMLButtonElement> {\n className?: string;\n\n /**\n * The content of the help text, often a word or phrase that could use some explanation\n */\n children: React.ReactNode;\n\n /**\n * The help text that will be shown when the user clicks the trigger\n */\n helpText: React.ReactNode;\n\n /**\n * The title of the help text. Used by screen readers and if the user hover over the help text\n */\n title?: string;\n\n /**\n * Props for the `Box` that contains the help text\n */\n boxProps?: React.ComponentProps<typeof Box>;\n\n /**\n * The side of the trigger the popover should be attached to\n *\n * @default \"top\"\n */\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n\n /**\n * The alignment of the popover content\n *\n * @default \"start\"\n */\n align?: \"center\" | \"end\" | \"start\";\n}\n\n/**\n * Show a help text for a word or phrase when clicked\n *\n * Useful for providing explanations for domain-specific terms, acronyms or phrases that could do with further elaboration\n *\n * @example\n * ```tsx\n * <p>\n * En annen avgjørende faktor for avgifter er om nettbutikken er registrert i{\" \"}\n * <HelpText helpText={`VOEC er en forkortelse for \"VAT on E-commerce\" (mva. på e-handel).`}>\n * VOEC\n * </HelpText>\n * </p>\n * ```\n */\nexport const HelpText = forwardRef<HTMLButtonElement, HelpTextProps>(\n (\n { children, className, helpText, title, side = \"top\", align = \"start\", boxProps, ...rest },\n ref,\n ) => {\n return (\n // NOTE: Using radix's [Popover component](https://www.radix-ui.com/primitives/docs/components/popover)\n // In the future we can use the native popover api, but as of writing, though all browsers support it\n // it's not far enough back to be used in production\n // https://caniuse.com/mdn-html_elements_input_popovertarget\n <Popover.Root>\n <Popover.Trigger asChild>\n <button\n ref={ref}\n className={clsx(\"hds-help-text-button\", className as undefined)}\n title={title}\n type=\"button\"\n {...rest}\n >\n {children}\n </button>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content asChild side={side} align={align}>\n <Box\n {...boxProps}\n className={clsx(\"hds-help-text-box\", boxProps?.className as undefined)}\n >\n <Popover.Close asChild>\n <Box.CloseButton />\n </Popover.Close>\n {helpText}\n </Box>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n },\n);\nHelpText.displayName = \"HelpText\";\n"],"mappings":";;;;;;;;;;AAAA,YAAY,aAAa;AACzB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAoEjB,cAYE,YAZF;AAZH,IAAM,WAAW;AAAA,EACtB,CACE,IACA,QACG;AAFH,iBAAE,YAAU,WAAW,UAAU,OAAO,OAAO,OAAO,QAAQ,SAAS,SA5D3E,IA4DI,IAAoF,iBAApF,IAAoF,CAAlF,YAAU,aAAW,YAAU,SAAO,QAAc,SAAiB;AAGvE;AAAA;AAAA;AAAA;AAAA;AAAA,MAKE,qBAAS,cAAR,EACC;AAAA,4BAAS,iBAAR,EAAgB,SAAO,MACtB;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,WAAW,KAAK,wBAAwB,SAAsB;AAAA,YAC9D;AAAA,YACA,MAAK;AAAA,aACD,OALL;AAAA,YAOE;AAAA;AAAA,QACH,GACF;AAAA,QACA,oBAAS,gBAAR,EACC,8BAAS,iBAAR,EAAgB,SAAO,MAAC,MAAY,OACnC;AAAA,UAAC;AAAA,2CACK,WADL;AAAA,YAEC,WAAW,KAAK,qBAAqB,qCAAU,SAAsB;AAAA,YAErE;AAAA,kCAAS,eAAR,EAAc,SAAO,MACpB,8BAAC,aAAI,aAAJ,EAAgB,GACnB;AAAA,cACC;AAAA;AAAA;AAAA,QACH,GACF,GACF;AAAA,SACF;AAAA;AAAA,EAEJ;AACF;AACA,SAAS,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/help-text/help-text.tsx"],"sourcesContent":["import * as Popover from \"@radix-ui/react-popover\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { forwardRef } from \"react\";\nimport { Box } from \"../box\";\n\ninterface HelpTextProps extends React.HTMLAttributes<HTMLButtonElement> {\n className?: string;\n\n /**\n * The content of the help text, often a word or phrase that could use some explanation\n */\n children: React.ReactNode;\n\n /**\n * The help text that will be shown when the user clicks the trigger\n */\n helpText: React.ReactNode;\n\n /**\n * The title of the help text. Used by screen readers and if the user hover over the help text\n */\n title?: string;\n\n /**\n * Props for the `Box` that contains the help text\n */\n boxProps?: React.ComponentProps<typeof Box>;\n\n /**\n * The side of the trigger the popover should be attached to\n *\n * @default \"top\"\n */\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n\n /**\n * The alignment of the popover content\n *\n * @default \"start\"\n */\n align?: \"center\" | \"end\" | \"start\";\n}\n\n/**\n * Show a help text for a word or phrase when clicked\n *\n * Useful for providing explanations for domain-specific terms, acronyms or phrases that could do with further elaboration\n *\n * @example\n * ```tsx\n * <p>\n * En annen avgjørende faktor for avgifter er om nettbutikken er registrert i{\" \"}\n * <HelpText helpText={`VOEC er en forkortelse for \"VAT on E-commerce\" (mva. på e-handel).`}>\n * VOEC\n * </HelpText>\n * </p>\n * ```\n */\nexport const HelpText = forwardRef<HTMLButtonElement, HelpTextProps>(\n (\n { children, className, helpText, title, side = \"top\", align = \"start\", boxProps, ...rest },\n ref,\n ) => {\n return (\n // NOTE: Using radix's [Popover component](https://www.radix-ui.com/primitives/docs/components/popover)\n // In the future we can use the native popover api, but as of writing, though all browsers support it\n // it's not far enough back to be used in production\n // https://caniuse.com/mdn-html_elements_input_popovertarget\n <Popover.Root>\n <Popover.Trigger asChild>\n <button\n ref={ref}\n className={clsx(\"hds-help-text-button\", className as undefined)}\n title={title}\n type=\"button\"\n {...rest}\n >\n {children}\n </button>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content asChild side={side} align={align}>\n <Box\n {...boxProps}\n className={clsx(\"hds-help-text-box\", boxProps?.className as undefined)}\n >\n <Popover.Close asChild>\n <Box.CloseButton />\n </Popover.Close>\n {helpText}\n </Box>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n },\n);\nHelpText.displayName = \"HelpText\";\n"],"mappings":";;;;;;;;;;AAAA,YAAY,aAAa;AACzB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAoEjB,cAYE,YAZF;AAZH,IAAM,WAAW;AAAA,EACtB,CACE,IACA,QACG;AAFH,iBAAE,YAAU,WAAW,UAAU,OAAO,OAAO,OAAO,QAAQ,SAAS,SA5D3E,IA4DI,IAAoF,iBAApF,IAAoF,CAAlF,YAAU,aAAW,YAAU,SAAO,QAAc,SAAiB;AAGvE;AAAA;AAAA;AAAA;AAAA;AAAA,MAKE,qBAAS,cAAR,EACC;AAAA,4BAAS,iBAAR,EAAgB,SAAO,MACtB;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,WAAW,KAAK,wBAAwB,SAAsB;AAAA,YAC9D;AAAA,YACA,MAAK;AAAA,aACD,OALL;AAAA,YAOE;AAAA;AAAA,QACH,GACF;AAAA,QACA,oBAAS,gBAAR,EACC,8BAAS,iBAAR,EAAgB,SAAO,MAAC,MAAY,OACnC;AAAA,UAAC;AAAA,2CACK,WADL;AAAA,YAEC,WAAW,KAAK,qBAAqB,qCAAU,SAAsB;AAAA,YAErE;AAAA,kCAAS,eAAR,EAAc,SAAO,MACpB,8BAAC,IAAI,aAAJ,EAAgB,GACnB;AAAA,cACC;AAAA;AAAA;AAAA,QACH,GACF,GACF;AAAA,SACF;AAAA;AAAA,EAEJ;AACF;AACA,SAAS,cAAc;","names":[]}