@postenbring/hedwig-react 0.0.81 → 0.0.82

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (523) hide show
  1. package/dist/accordion/accordion-content.d.ts +6 -2
  2. package/dist/accordion/accordion-content.d.ts.map +1 -0
  3. package/dist/accordion/accordion-header.d.ts +6 -2
  4. package/dist/accordion/accordion-header.d.ts.map +1 -0
  5. package/dist/accordion/accordion-item.d.ts +24 -3
  6. package/dist/accordion/accordion-item.d.ts.map +1 -0
  7. package/dist/accordion/accordion.d.ts +44 -2
  8. package/dist/accordion/accordion.d.ts.map +1 -0
  9. package/dist/accordion/accordion.js +102 -4
  10. package/dist/accordion/accordion.js.map +1 -1
  11. package/dist/accordion/accordion.mjs +5 -1
  12. package/dist/accordion/context.d.ts +7 -2
  13. package/dist/accordion/context.d.ts.map +1 -0
  14. package/dist/accordion/index.d.ts +9 -9
  15. package/dist/accordion/index.d.ts.map +1 -0
  16. package/dist/accordion/index.js +52 -53
  17. package/dist/accordion/index.js.map +1 -1
  18. package/dist/accordion/index.mjs +7 -7
  19. package/dist/badge/badge.d.ts +21 -5
  20. package/dist/badge/badge.d.ts.map +1 -0
  21. package/dist/badge/index.d.ts +3 -6
  22. package/dist/badge/index.d.ts.map +1 -0
  23. package/dist/box/box.d.ts +50 -4
  24. package/dist/box/box.d.ts.map +1 -0
  25. package/dist/box/box.js +15 -14
  26. package/dist/box/box.js.map +1 -1
  27. package/dist/box/box.mjs +1 -1
  28. package/dist/box/index.d.ts +3 -4
  29. package/dist/box/index.d.ts.map +1 -0
  30. package/dist/box/index.js +16 -19
  31. package/dist/box/index.js.map +1 -1
  32. package/dist/box/index.mjs +4 -5
  33. package/dist/breadcrumbs/breadcrumbs.d.ts +33 -2
  34. package/dist/breadcrumbs/breadcrumbs.d.ts.map +1 -0
  35. package/dist/breadcrumbs/index.d.ts +3 -2
  36. package/dist/breadcrumbs/index.d.ts.map +1 -0
  37. package/dist/button/button.d.ts +33 -3
  38. package/dist/button/button.d.ts.map +1 -0
  39. package/dist/button/index.d.ts +3 -3
  40. package/dist/button/index.d.ts.map +1 -0
  41. package/dist/card/card.d.ts +69 -12
  42. package/dist/card/card.d.ts.map +1 -0
  43. package/dist/card/card.js +17 -6
  44. package/dist/card/card.js.map +1 -1
  45. package/dist/card/card.mjs +1 -1
  46. package/dist/card/index.d.ts +3 -12
  47. package/dist/card/index.d.ts.map +1 -0
  48. package/dist/card/index.js +18 -19
  49. package/dist/card/index.js.map +1 -1
  50. package/dist/card/index.mjs +4 -5
  51. package/dist/{chunk-XC3UHH2U.mjs → chunk-3WVRY6CC.mjs} +4 -4
  52. package/dist/{chunk-XC3UHH2U.mjs.map → chunk-3WVRY6CC.mjs.map} +1 -1
  53. package/dist/{chunk-GSJPTZT3.mjs → chunk-6AGDK5V3.mjs} +34 -19
  54. package/dist/chunk-6AGDK5V3.mjs.map +1 -0
  55. package/dist/{chunk-3MQKXNZ6.mjs → chunk-7UD72WOC.mjs} +13 -1
  56. package/dist/chunk-7UD72WOC.mjs.map +1 -0
  57. package/dist/chunk-7YWW46R3.mjs +1 -0
  58. package/dist/chunk-7YWW46R3.mjs.map +1 -0
  59. package/dist/{chunk-ENKVTAJB.mjs → chunk-AJWSQEDP.mjs} +18 -17
  60. package/dist/chunk-AJWSQEDP.mjs.map +1 -0
  61. package/dist/chunk-ARHJZUZG.mjs +1 -0
  62. package/dist/chunk-ARHJZUZG.mjs.map +1 -0
  63. package/dist/chunk-BCFV6VOE.mjs +1 -0
  64. package/dist/chunk-BCFV6VOE.mjs.map +1 -0
  65. package/dist/{chunk-7JRS4WEB.mjs → chunk-C34HEQXO.mjs} +33 -29
  66. package/dist/chunk-C34HEQXO.mjs.map +1 -0
  67. package/dist/{chunk-PLXB3TNA.mjs → chunk-D7QPJIUZ.mjs} +5 -5
  68. package/dist/{chunk-PLXB3TNA.mjs.map → chunk-D7QPJIUZ.mjs.map} +1 -1
  69. package/dist/chunk-FYFJ75NX.mjs +1 -0
  70. package/dist/chunk-FYFJ75NX.mjs.map +1 -0
  71. package/dist/chunk-G65EYZFQ.mjs +1 -0
  72. package/dist/chunk-G65EYZFQ.mjs.map +1 -0
  73. package/dist/chunk-H3E546OT.mjs +1 -0
  74. package/dist/chunk-H3E546OT.mjs.map +1 -0
  75. package/dist/chunk-HQVL3ZJ2.mjs +1 -0
  76. package/dist/chunk-HQVL3ZJ2.mjs.map +1 -0
  77. package/dist/{chunk-XUWZ4HGD.mjs → chunk-LCJSUBCZ.mjs} +48 -45
  78. package/dist/chunk-LCJSUBCZ.mjs.map +1 -0
  79. package/dist/{chunk-KPGSRU4I.mjs → chunk-M3Y3XOGC.mjs} +13 -1
  80. package/dist/chunk-M3Y3XOGC.mjs.map +1 -0
  81. package/dist/{chunk-CIHZDFSQ.mjs → chunk-NU6OSFAU.mjs} +20 -9
  82. package/dist/chunk-NU6OSFAU.mjs.map +1 -0
  83. package/dist/chunk-RC76SXBP.mjs +1 -0
  84. package/dist/chunk-RC76SXBP.mjs.map +1 -0
  85. package/dist/{chunk-TQDUBRCZ.mjs → chunk-SQ63E7KM.mjs} +24 -22
  86. package/dist/chunk-SQ63E7KM.mjs.map +1 -0
  87. package/dist/{chunk-ES6ISHOV.mjs → chunk-UP3M3NEZ.mjs} +14 -13
  88. package/dist/{chunk-ES6ISHOV.mjs.map → chunk-UP3M3NEZ.mjs.map} +1 -1
  89. package/dist/chunk-ZKMFJZSH.mjs +1 -0
  90. package/dist/chunk-ZKMFJZSH.mjs.map +1 -0
  91. package/dist/description-list/description-list.d.ts +42 -2
  92. package/dist/description-list/description-list.d.ts.map +1 -0
  93. package/dist/description-list/index.d.ts +3 -2
  94. package/dist/description-list/index.d.ts.map +1 -0
  95. package/dist/footer/footer.d.ts +67 -7
  96. package/dist/footer/footer.d.ts.map +1 -0
  97. package/dist/footer/footer.js +79 -76
  98. package/dist/footer/footer.js.map +1 -1
  99. package/dist/footer/footer.mjs +4 -4
  100. package/dist/footer/index.d.ts +3 -7
  101. package/dist/footer/index.d.ts.map +1 -0
  102. package/dist/footer/index.js +80 -84
  103. package/dist/footer/index.js.map +1 -1
  104. package/dist/footer/index.mjs +7 -8
  105. package/dist/form/checkbox/checkbox.d.ts +28 -2
  106. package/dist/form/checkbox/checkbox.d.ts.map +1 -0
  107. package/dist/form/checkbox/index.d.ts +3 -2
  108. package/dist/form/checkbox/index.d.ts.map +1 -0
  109. package/dist/form/date-picker/date-picker.d.ts +33 -2
  110. package/dist/form/date-picker/date-picker.d.ts.map +1 -0
  111. package/dist/form/date-picker/index.d.ts +3 -2
  112. package/dist/form/date-picker/index.d.ts.map +1 -0
  113. package/dist/form/error-message/error-message.d.ts +8 -2
  114. package/dist/form/error-message/error-message.d.ts.map +1 -0
  115. package/dist/form/error-message/index.d.ts +3 -2
  116. package/dist/form/error-message/index.d.ts.map +1 -0
  117. package/dist/form/fieldset/fieldset.d.ts +22 -3
  118. package/dist/form/fieldset/fieldset.d.ts.map +1 -0
  119. package/dist/form/fieldset/index.d.ts +3 -3
  120. package/dist/form/fieldset/index.d.ts.map +1 -0
  121. package/dist/form/index.d.ts +9 -20
  122. package/dist/form/index.d.ts.map +1 -0
  123. package/dist/form/input/index.d.ts +3 -2
  124. package/dist/form/input/index.d.ts.map +1 -0
  125. package/dist/form/input/input.d.ts +5 -2
  126. package/dist/form/input/input.d.ts.map +1 -0
  127. package/dist/form/input-group/index.d.ts +3 -2
  128. package/dist/form/input-group/index.d.ts.map +1 -0
  129. package/dist/form/input-group/input-group.d.ts +27 -2
  130. package/dist/form/input-group/input-group.d.ts.map +1 -0
  131. package/dist/form/radiobutton/index.d.ts +5 -5
  132. package/dist/form/radiobutton/index.d.ts.map +1 -0
  133. package/dist/form/radiobutton/radiobutton.d.ts +17 -2
  134. package/dist/form/radiobutton/radiobutton.d.ts.map +1 -0
  135. package/dist/form/radiobutton/radiogroup.d.ts +24 -3
  136. package/dist/form/radiobutton/radiogroup.d.ts.map +1 -0
  137. package/dist/form/select/index.d.ts +3 -2
  138. package/dist/form/select/index.d.ts.map +1 -0
  139. package/dist/form/select/select.d.ts +9 -2
  140. package/dist/form/select/select.d.ts.map +1 -0
  141. package/dist/form/textarea/index.d.ts +3 -2
  142. package/dist/form/textarea/index.d.ts.map +1 -0
  143. package/dist/form/textarea/textarea.d.ts +5 -2
  144. package/dist/form/textarea/textarea.d.ts.map +1 -0
  145. package/dist/help-text/help-text.d.ts +51 -1
  146. package/dist/help-text/help-text.d.ts.map +1 -0
  147. package/dist/help-text/help-text.js +17 -20
  148. package/dist/help-text/help-text.js.map +1 -1
  149. package/dist/help-text/help-text.mjs +3 -3
  150. package/dist/help-text/index.d.ts +3 -1
  151. package/dist/help-text/index.d.ts.map +1 -0
  152. package/dist/help-text/index.js +17 -20
  153. package/dist/help-text/index.js.map +1 -1
  154. package/dist/help-text/index.mjs +3 -3
  155. package/dist/index-no-css.d.ts +26 -128
  156. package/dist/index-no-css.d.ts.map +1 -0
  157. package/dist/index-no-css.js +372 -393
  158. package/dist/index-no-css.js.map +1 -1
  159. package/dist/index-no-css.mjs +50 -57
  160. package/dist/index.d.ts +11 -128
  161. package/dist/index.d.ts.map +1 -0
  162. package/dist/index.js +372 -393
  163. package/dist/index.js.map +1 -1
  164. package/dist/index.mjs +50 -57
  165. package/dist/index.mjs.map +1 -1
  166. package/dist/layout/container/container.d.ts +23 -2
  167. package/dist/layout/container/container.d.ts.map +1 -0
  168. package/dist/layout/grid/grid.d.ts +101 -4
  169. package/dist/layout/grid/grid.d.ts.map +1 -0
  170. package/dist/layout/grid/grid.js +11 -10
  171. package/dist/layout/grid/grid.js.map +1 -1
  172. package/dist/layout/grid/grid.mjs +1 -1
  173. package/dist/layout/grid/index.d.ts +3 -4
  174. package/dist/layout/grid/index.d.ts.map +1 -0
  175. package/dist/layout/grid/index.js +12 -15
  176. package/dist/layout/grid/index.js.map +1 -1
  177. package/dist/layout/grid/index.mjs +4 -5
  178. package/dist/layout/index.d.ts +4 -10
  179. package/dist/layout/index.d.ts.map +1 -0
  180. package/dist/layout/index.js +12 -15
  181. package/dist/layout/index.js.map +1 -1
  182. package/dist/layout/index.mjs +4 -5
  183. package/dist/layout/responsive.d.ts +10 -2
  184. package/dist/layout/responsive.d.ts.map +1 -0
  185. package/dist/layout/spacing.d.ts +33 -3
  186. package/dist/layout/spacing.d.ts.map +1 -0
  187. package/dist/layout/stack/index.d.ts +3 -4
  188. package/dist/layout/stack/index.d.ts.map +1 -0
  189. package/dist/layout/stack/stack.d.ts +62 -4
  190. package/dist/layout/stack/stack.d.ts.map +1 -0
  191. package/dist/link/index.d.ts +3 -2
  192. package/dist/link/index.d.ts.map +1 -0
  193. package/dist/link/link.d.ts +20 -2
  194. package/dist/link/link.d.ts.map +1 -0
  195. package/dist/list/index.d.ts +5 -5
  196. package/dist/list/index.d.ts.map +1 -0
  197. package/dist/list/link-list.d.ts +12 -2
  198. package/dist/list/link-list.d.ts.map +1 -0
  199. package/dist/list/list.d.ts +40 -3
  200. package/dist/list/list.d.ts.map +1 -0
  201. package/dist/message/index.d.ts +3 -3
  202. package/dist/message/index.d.ts.map +1 -0
  203. package/dist/message/index.js +36 -38
  204. package/dist/message/index.js.map +1 -1
  205. package/dist/message/index.mjs +5 -6
  206. package/dist/message/message.d.ts +36 -4
  207. package/dist/message/message.d.ts.map +1 -0
  208. package/dist/message/message.js +35 -32
  209. package/dist/message/message.js.map +1 -1
  210. package/dist/message/message.mjs +2 -2
  211. package/dist/modal/index.d.ts +3 -5
  212. package/dist/modal/index.d.ts.map +1 -0
  213. package/dist/modal/index.js +60 -62
  214. package/dist/modal/index.js.map +1 -1
  215. package/dist/modal/index.mjs +5 -6
  216. package/dist/modal/modal.d.ts +81 -5
  217. package/dist/modal/modal.d.ts.map +1 -0
  218. package/dist/modal/modal.js +59 -55
  219. package/dist/modal/modal.js.map +1 -1
  220. package/dist/modal/modal.mjs +2 -2
  221. package/dist/navbar/icons.d.ts +3 -2
  222. package/dist/navbar/icons.d.ts.map +1 -0
  223. package/dist/navbar/index.d.ts +4 -13
  224. package/dist/navbar/index.d.ts.map +1 -0
  225. package/dist/navbar/index.js +144 -145
  226. package/dist/navbar/index.js.map +1 -1
  227. package/dist/navbar/index.mjs +4 -5
  228. package/dist/navbar/navbar-expandable-menu.d.ts +35 -7
  229. package/dist/navbar/navbar-expandable-menu.d.ts.map +1 -0
  230. package/dist/navbar/navbar.d.ts +130 -9
  231. package/dist/navbar/navbar.d.ts.map +1 -0
  232. package/dist/navbar/navbar.js +237 -28
  233. package/dist/navbar/navbar.js.map +1 -1
  234. package/dist/navbar/navbar.mjs +4 -1
  235. package/dist/show-more/index.d.ts +5 -4
  236. package/dist/show-more/index.d.ts.map +1 -0
  237. package/dist/show-more/show-more.d.ts +42 -2
  238. package/dist/show-more/show-more.d.ts.map +1 -0
  239. package/dist/skeleton/index.d.ts +3 -2
  240. package/dist/skeleton/index.d.ts.map +1 -0
  241. package/dist/skeleton/skeleton.d.ts +67 -2
  242. package/dist/skeleton/skeleton.d.ts.map +1 -0
  243. package/dist/step-indicator/index.d.ts +3 -1
  244. package/dist/step-indicator/index.d.ts.map +1 -0
  245. package/dist/step-indicator/step-indicator.d.ts +36 -1
  246. package/dist/step-indicator/step-indicator.d.ts.map +1 -0
  247. package/dist/styled-html/index.d.ts +3 -2
  248. package/dist/styled-html/index.d.ts.map +1 -0
  249. package/dist/styled-html/styled-html.d.ts +36 -2
  250. package/dist/styled-html/styled-html.d.ts.map +1 -0
  251. package/dist/table/index.d.ts +3 -1
  252. package/dist/table/index.d.ts.map +1 -0
  253. package/dist/table/table.d.ts +25 -1
  254. package/dist/table/table.d.ts.map +1 -0
  255. package/dist/tabs/context.d.ts +8 -3
  256. package/dist/tabs/context.d.ts.map +1 -0
  257. package/dist/tabs/index.d.ts +7 -10
  258. package/dist/tabs/index.d.ts.map +1 -0
  259. package/dist/tabs/index.js +34 -37
  260. package/dist/tabs/index.js.map +1 -1
  261. package/dist/tabs/index.mjs +4 -4
  262. package/dist/tabs/tabs-content.d.ts +26 -4
  263. package/dist/tabs/tabs-content.d.ts.map +1 -0
  264. package/dist/tabs/tabs-list.d.ts +21 -4
  265. package/dist/tabs/tabs-list.d.ts.map +1 -0
  266. package/dist/tabs/tabs.d.ts +26 -2
  267. package/dist/tabs/tabs.d.ts.map +1 -0
  268. package/dist/tabs/tabs.js +205 -8
  269. package/dist/tabs/tabs.js.map +1 -1
  270. package/dist/tabs/tabs.mjs +4 -1
  271. package/dist/text/index.d.ts +4 -2
  272. package/dist/text/index.d.ts.map +1 -0
  273. package/dist/text/text.d.ts +58 -2
  274. package/dist/text/text.d.ts.map +1 -0
  275. package/dist/utilities/auto-animate-height.d.ts +33 -2
  276. package/dist/utilities/auto-animate-height.d.ts.map +1 -0
  277. package/dist/utilities/index.d.ts +3 -2
  278. package/dist/utilities/index.d.ts.map +1 -0
  279. package/dist/utils.d.ts +28 -5
  280. package/dist/utils.d.ts.map +1 -0
  281. package/dist/warning-banner/index.d.ts +3 -2
  282. package/dist/warning-banner/index.d.ts.map +1 -0
  283. package/dist/warning-banner/index.js +16 -19
  284. package/dist/warning-banner/index.js.map +1 -1
  285. package/dist/warning-banner/index.mjs +3 -3
  286. package/dist/warning-banner/warning-banner.d.ts +8 -2
  287. package/dist/warning-banner/warning-banner.d.ts.map +1 -0
  288. package/dist/warning-banner/warning-banner.js +16 -19
  289. package/dist/warning-banner/warning-banner.js.map +1 -1
  290. package/dist/warning-banner/warning-banner.mjs +3 -3
  291. package/package.json +9 -5
  292. package/src/accordion/accordion-content.tsx +31 -0
  293. package/src/accordion/accordion-header.tsx +36 -0
  294. package/src/accordion/accordion-item.tsx +62 -0
  295. package/src/accordion/accordion.stories.tsx +154 -0
  296. package/src/accordion/accordion.tsx +68 -0
  297. package/src/accordion/context.ts +8 -0
  298. package/src/accordion/index.tsx +9 -0
  299. package/src/badge/badge.stories.tsx +44 -0
  300. package/src/badge/badge.tsx +63 -0
  301. package/src/badge/index.tsx +3 -0
  302. package/src/box/box.stories.tsx +112 -0
  303. package/src/box/box.tsx +122 -0
  304. package/src/box/index.tsx +3 -0
  305. package/src/breadcrumbs/breadcrumbs.stories.tsx +50 -0
  306. package/src/breadcrumbs/breadcrumbs.tsx +47 -0
  307. package/src/breadcrumbs/index.tsx +3 -0
  308. package/src/button/button.stories.tsx +104 -0
  309. package/src/button/button.tsx +87 -0
  310. package/src/button/index.tsx +3 -0
  311. package/src/card/card.stories.tsx +82 -0
  312. package/src/card/card.tsx +222 -0
  313. package/src/card/index.tsx +14 -0
  314. package/src/description-list/description-list.stories.tsx +95 -0
  315. package/src/description-list/description-list.tsx +61 -0
  316. package/src/description-list/index.tsx +2 -0
  317. package/src/footer/footer.tsx +169 -0
  318. package/src/footer/index.tsx +9 -0
  319. package/src/form/checkbox/checkbox.stories.tsx +104 -0
  320. package/src/form/checkbox/checkbox.tsx +82 -0
  321. package/src/form/checkbox/index.tsx +2 -0
  322. package/src/form/date-picker/date-picker.stories.tsx +27 -0
  323. package/src/form/date-picker/date-picker.tsx +85 -0
  324. package/src/form/date-picker/index.tsx +2 -0
  325. package/src/form/error-message/error-message.stories.tsx +19 -0
  326. package/src/form/error-message/error-message.tsx +25 -0
  327. package/src/form/error-message/index.tsx +2 -0
  328. package/src/form/fieldset/fieldset.stories.tsx +86 -0
  329. package/src/form/fieldset/fieldset.tsx +64 -0
  330. package/src/form/fieldset/index.tsx +2 -0
  331. package/src/form/index.tsx +8 -0
  332. package/src/form/input/index.tsx +2 -0
  333. package/src/form/input/input.stories.tsx +166 -0
  334. package/src/form/input/input.tsx +30 -0
  335. package/src/form/input-group/index.tsx +2 -0
  336. package/src/form/input-group/input-group.tsx +106 -0
  337. package/src/form/radiobutton/index.tsx +4 -0
  338. package/src/form/radiobutton/radiobutton.stories.tsx +93 -0
  339. package/src/form/radiobutton/radiobutton.tsx +85 -0
  340. package/src/form/radiobutton/radiogroup.stories.tsx +39 -0
  341. package/src/form/radiobutton/radiogroup.tsx +52 -0
  342. package/src/form/select/index.tsx +2 -0
  343. package/src/form/select/select.stories.tsx +93 -0
  344. package/src/form/select/select.tsx +33 -0
  345. package/src/form/textarea/index.tsx +2 -0
  346. package/src/form/textarea/textarea.stories.tsx +106 -0
  347. package/src/form/textarea/textarea.tsx +33 -0
  348. package/src/help-text/help-text.tsx +98 -0
  349. package/src/help-text/index.ts +2 -0
  350. package/src/index-no-css.tsx +25 -0
  351. package/src/index.tsx +11 -0
  352. package/src/layout/container/container.stories.tsx +62 -0
  353. package/src/layout/container/container.tsx +47 -0
  354. package/src/layout/grid/grid.tsx +163 -0
  355. package/src/layout/grid/index.tsx +3 -0
  356. package/src/layout/index.tsx +3 -0
  357. package/src/layout/responsive.ts +26 -0
  358. package/src/layout/spacing.ts +37 -0
  359. package/src/layout/stack/index.tsx +2 -0
  360. package/src/layout/stack/stack.tsx +128 -0
  361. package/src/link/index.tsx +3 -0
  362. package/src/link/link.stories.tsx +64 -0
  363. package/src/link/link.tsx +46 -0
  364. package/src/list/index.tsx +5 -0
  365. package/src/list/link-list.stories.tsx +38 -0
  366. package/src/list/link-list.tsx +26 -0
  367. package/src/list/list.stories.tsx +71 -0
  368. package/src/list/list.tsx +65 -0
  369. package/src/message/index.tsx +2 -0
  370. package/src/message/message.stories.tsx +93 -0
  371. package/src/message/message.tsx +89 -0
  372. package/src/modal/index.tsx +3 -0
  373. package/src/modal/modal.stories.tsx +147 -0
  374. package/src/modal/modal.tsx +199 -0
  375. package/src/navbar/icons.tsx +21 -0
  376. package/src/navbar/index.tsx +18 -0
  377. package/src/navbar/navbar-expandable-menu.tsx +176 -0
  378. package/src/navbar/navbar.stories.tsx +99 -0
  379. package/src/navbar/navbar.tsx +264 -0
  380. package/src/show-more/index.ts +5 -0
  381. package/src/show-more/show-more.stories.tsx +119 -0
  382. package/src/show-more/show-more.tsx +66 -0
  383. package/src/skeleton/index.ts +2 -0
  384. package/src/skeleton/skeleton.stories.tsx +152 -0
  385. package/src/skeleton/skeleton.tsx +114 -0
  386. package/src/step-indicator/index.ts +2 -0
  387. package/src/step-indicator/step-indicator.stories.tsx +50 -0
  388. package/src/step-indicator/step-indicator.tsx +116 -0
  389. package/src/styled-html/index.ts +2 -0
  390. package/src/styled-html/styled-html.stories.tsx +189 -0
  391. package/src/styled-html/styled-html.tsx +59 -0
  392. package/src/table/index.ts +2 -0
  393. package/src/table/table.tsx +59 -0
  394. package/src/tabs/context.ts +18 -0
  395. package/src/tabs/index.tsx +7 -0
  396. package/src/tabs/tabs-content.tsx +62 -0
  397. package/src/tabs/tabs-list.tsx +129 -0
  398. package/src/tabs/tabs.stories.tsx +138 -0
  399. package/src/tabs/tabs.tsx +50 -0
  400. package/src/text/index.tsx +4 -0
  401. package/src/text/text.stories.tsx +112 -0
  402. package/src/text/text.tsx +129 -0
  403. package/src/utilities/auto-animate-height.tsx +139 -0
  404. package/src/utilities/index.ts +2 -0
  405. package/src/utils.ts +110 -0
  406. package/src/warning-banner/index.tsx +2 -0
  407. package/src/warning-banner/warning-banner.stories.tsx +43 -0
  408. package/src/warning-banner/warning-banner.tsx +79 -0
  409. package/dist/_tsup-dts-rollup.d.mts +0 -2600
  410. package/dist/_tsup-dts-rollup.d.ts +0 -2600
  411. package/dist/accordion/accordion-content.d.mts +0 -2
  412. package/dist/accordion/accordion-header.d.mts +0 -2
  413. package/dist/accordion/accordion-item.d.mts +0 -3
  414. package/dist/accordion/accordion.d.mts +0 -2
  415. package/dist/accordion/context.d.mts +0 -2
  416. package/dist/accordion/index.d.mts +0 -9
  417. package/dist/badge/badge.d.mts +0 -5
  418. package/dist/badge/index.d.mts +0 -6
  419. package/dist/box/box.d.mts +0 -4
  420. package/dist/box/index.d.mts +0 -4
  421. package/dist/breadcrumbs/breadcrumbs.d.mts +0 -2
  422. package/dist/breadcrumbs/index.d.mts +0 -2
  423. package/dist/button/button.d.mts +0 -3
  424. package/dist/button/index.d.mts +0 -3
  425. package/dist/card/card.d.mts +0 -12
  426. package/dist/card/index.d.mts +0 -12
  427. package/dist/chunk-3MQKXNZ6.mjs.map +0 -1
  428. package/dist/chunk-3NDUE23B.mjs +0 -19
  429. package/dist/chunk-3NDUE23B.mjs.map +0 -1
  430. package/dist/chunk-3NL3TOZF.mjs +0 -13
  431. package/dist/chunk-3NL3TOZF.mjs.map +0 -1
  432. package/dist/chunk-3ZFEUABU.mjs +0 -23
  433. package/dist/chunk-3ZFEUABU.mjs.map +0 -1
  434. package/dist/chunk-722MZPXO.mjs +0 -13
  435. package/dist/chunk-722MZPXO.mjs.map +0 -1
  436. package/dist/chunk-7JRS4WEB.mjs.map +0 -1
  437. package/dist/chunk-CIHZDFSQ.mjs.map +0 -1
  438. package/dist/chunk-CYEYGPRH.mjs +0 -17
  439. package/dist/chunk-CYEYGPRH.mjs.map +0 -1
  440. package/dist/chunk-ENKVTAJB.mjs.map +0 -1
  441. package/dist/chunk-GSJPTZT3.mjs.map +0 -1
  442. package/dist/chunk-IJAX6APL.mjs +0 -23
  443. package/dist/chunk-IJAX6APL.mjs.map +0 -1
  444. package/dist/chunk-IKJJWKXM.mjs +0 -15
  445. package/dist/chunk-IKJJWKXM.mjs.map +0 -1
  446. package/dist/chunk-KPGSRU4I.mjs.map +0 -1
  447. package/dist/chunk-PT5H3QV6.mjs +0 -29
  448. package/dist/chunk-PT5H3QV6.mjs.map +0 -1
  449. package/dist/chunk-TQDUBRCZ.mjs.map +0 -1
  450. package/dist/chunk-V6UKKHKD.mjs +0 -33
  451. package/dist/chunk-V6UKKHKD.mjs.map +0 -1
  452. package/dist/chunk-XUWZ4HGD.mjs.map +0 -1
  453. package/dist/description-list/description-list.d.mts +0 -2
  454. package/dist/description-list/index.d.mts +0 -2
  455. package/dist/footer/footer.d.mts +0 -7
  456. package/dist/footer/index.d.mts +0 -7
  457. package/dist/form/checkbox/checkbox.d.mts +0 -2
  458. package/dist/form/checkbox/index.d.mts +0 -2
  459. package/dist/form/date-picker/date-picker.d.mts +0 -2
  460. package/dist/form/date-picker/index.d.mts +0 -2
  461. package/dist/form/error-message/error-message.d.mts +0 -2
  462. package/dist/form/error-message/index.d.mts +0 -2
  463. package/dist/form/fieldset/fieldset.d.mts +0 -3
  464. package/dist/form/fieldset/index.d.mts +0 -3
  465. package/dist/form/index.d.mts +0 -20
  466. package/dist/form/input/index.d.mts +0 -2
  467. package/dist/form/input/input.d.mts +0 -2
  468. package/dist/form/input-group/index.d.mts +0 -2
  469. package/dist/form/input-group/input-group.d.mts +0 -2
  470. package/dist/form/radiobutton/index.d.mts +0 -5
  471. package/dist/form/radiobutton/radiobutton.d.mts +0 -2
  472. package/dist/form/radiobutton/radiogroup.d.mts +0 -3
  473. package/dist/form/select/index.d.mts +0 -2
  474. package/dist/form/select/select.d.mts +0 -2
  475. package/dist/form/textarea/index.d.mts +0 -2
  476. package/dist/form/textarea/textarea.d.mts +0 -2
  477. package/dist/help-text/help-text.d.mts +0 -1
  478. package/dist/help-text/index.d.mts +0 -1
  479. package/dist/index-no-css.d.mts +0 -128
  480. package/dist/index.d.mts +0 -128
  481. package/dist/layout/container/container.d.mts +0 -2
  482. package/dist/layout/grid/grid.d.mts +0 -4
  483. package/dist/layout/grid/index.d.mts +0 -4
  484. package/dist/layout/index.d.mts +0 -10
  485. package/dist/layout/responsive.d.mts +0 -2
  486. package/dist/layout/spacing.d.mts +0 -3
  487. package/dist/layout/stack/index.d.mts +0 -4
  488. package/dist/layout/stack/stack.d.mts +0 -4
  489. package/dist/link/index.d.mts +0 -2
  490. package/dist/link/link.d.mts +0 -2
  491. package/dist/list/index.d.mts +0 -5
  492. package/dist/list/link-list.d.mts +0 -2
  493. package/dist/list/list.d.mts +0 -3
  494. package/dist/message/index.d.mts +0 -3
  495. package/dist/message/message.d.mts +0 -4
  496. package/dist/modal/index.d.mts +0 -5
  497. package/dist/modal/modal.d.mts +0 -5
  498. package/dist/navbar/icons.d.mts +0 -2
  499. package/dist/navbar/index.d.mts +0 -13
  500. package/dist/navbar/navbar-expandable-menu.d.mts +0 -7
  501. package/dist/navbar/navbar.d.mts +0 -9
  502. package/dist/show-more/index.d.mts +0 -4
  503. package/dist/show-more/show-more.d.mts +0 -2
  504. package/dist/skeleton/index.d.mts +0 -2
  505. package/dist/skeleton/skeleton.d.mts +0 -2
  506. package/dist/step-indicator/index.d.mts +0 -1
  507. package/dist/step-indicator/step-indicator.d.mts +0 -1
  508. package/dist/styled-html/index.d.mts +0 -2
  509. package/dist/styled-html/styled-html.d.mts +0 -2
  510. package/dist/table/index.d.mts +0 -1
  511. package/dist/table/table.d.mts +0 -1
  512. package/dist/tabs/context.d.mts +0 -3
  513. package/dist/tabs/index.d.mts +0 -10
  514. package/dist/tabs/tabs-content.d.mts +0 -4
  515. package/dist/tabs/tabs-list.d.mts +0 -4
  516. package/dist/tabs/tabs.d.mts +0 -2
  517. package/dist/text/index.d.mts +0 -2
  518. package/dist/text/text.d.mts +0 -2
  519. package/dist/utilities/auto-animate-height.d.mts +0 -2
  520. package/dist/utilities/index.d.mts +0 -2
  521. package/dist/utils.d.mts +0 -5
  522. package/dist/warning-banner/index.d.mts +0 -2
  523. package/dist/warning-banner/warning-banner.d.mts +0 -2
@@ -0,0 +1,82 @@
1
+ import { forwardRef, useId, type InputHTMLAttributes, type ReactNode } from "react";
2
+ import { clsx } from "@postenbring/hedwig-css/typed-classname";
3
+ import { ErrorMessage } from "../error-message";
4
+ import { useFieldsetContext } from "../fieldset";
5
+
6
+ export type CheckboxProps = Omit<InputHTMLAttributes<HTMLInputElement>, "defaultValue"> & {
7
+ children: ReactNode;
8
+ variant?: "plain" | "bounding-box";
9
+ title?: string;
10
+ } & (
11
+ | {
12
+ /**
13
+ * Set to `true` to add error styling. The component will take care of aria to indicate invalid state.
14
+ *
15
+ * Normally you don't need this, as you should wrap your Checkboxes in the Fieldset component.
16
+ * When providing an errorMessage to Fieldset, all contained Checkboxes will get correct hasError state.
17
+ *
18
+ * You can use this when your checkbox is part of a non-HDS fieldset which shows an error message.
19
+ */
20
+ hasError?: boolean;
21
+ errorMessage?: never;
22
+ }
23
+ | {
24
+ hasError?: never;
25
+ /**
26
+ * Set an error message to add error styling, and display the error message.
27
+ * The component will take care of aria to connect the error message to the checkbox.
28
+ *
29
+ * Use this when your checkbox is standalone (not part of a fieldset).
30
+ */
31
+ errorMessage?: ReactNode;
32
+ }
33
+ );
34
+
35
+ export const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(
36
+ (
37
+ {
38
+ variant = "plain",
39
+ hasError: hasErrorProp,
40
+ errorMessage,
41
+ title,
42
+ children,
43
+ className,
44
+ ...rest
45
+ },
46
+ ref,
47
+ ) => {
48
+ const errorMessageId = useId();
49
+ const { hasError: hasFieldsetError } = useFieldsetContext();
50
+ const hasError = !!errorMessage || hasFieldsetError || hasErrorProp;
51
+
52
+ return (
53
+ <div className={clsx("hds-checkbox-wrapper")}>
54
+ <div
55
+ className={clsx(
56
+ "hds-checkbox",
57
+ {
58
+ [`hds-checkbox--${variant}`]: variant === "bounding-box",
59
+ "hds-checkbox--error": hasError,
60
+ },
61
+ className as undefined,
62
+ )}
63
+ >
64
+ <label>
65
+ <input
66
+ {...rest}
67
+ aria-invalid={hasError ? true : undefined}
68
+ aria-describedby={errorMessage ? errorMessageId : undefined}
69
+ ref={ref}
70
+ type="checkbox"
71
+ />
72
+ <span aria-hidden className="hds-checkbox__checkmark" />
73
+ {title ? <p className="hds-checkbox__title">{title}</p> : children}
74
+ </label>
75
+ {title ? children : null}
76
+ </div>
77
+ {errorMessage ? <ErrorMessage id={errorMessageId}>{errorMessage}</ErrorMessage> : null}
78
+ </div>
79
+ );
80
+ },
81
+ );
82
+ Checkbox.displayName = "Checkbox";
@@ -0,0 +1,2 @@
1
+ export { Checkbox } from "./checkbox";
2
+ export type * from "./checkbox";
@@ -0,0 +1,27 @@
1
+ /* eslint-disable import/no-extraneous-dependencies -- storybook story */
2
+ import type { Meta, StoryObj } from "@storybook/react";
3
+ import { DatePicker } from ".";
4
+
5
+ const meta: Meta<typeof DatePicker> = {
6
+ title: "Form/DatePicker",
7
+ component: DatePicker,
8
+ };
9
+
10
+ export default meta;
11
+
12
+ type Story = StoryObj<typeof DatePicker>;
13
+
14
+ export const PlainDatePicker: Story = {
15
+ args: {
16
+ label: "Some kind of date picker",
17
+ errorMessage: "",
18
+ readOnly: false,
19
+ variant: "default",
20
+ min: "2024-04-05",
21
+ max: "2026-04-04",
22
+ calendarButtonTitle: "Åpne kalender",
23
+ },
24
+ argTypes: {
25
+ variant: { control: "inline-radio", options: ["default", "white"] },
26
+ },
27
+ };
@@ -0,0 +1,85 @@
1
+ import { forwardRef, useRef, type InputHTMLAttributes } from "react";
2
+ import { clsx } from "@postenbring/hedwig-css/typed-classname";
3
+ import { InputGroup, type InputGroupProps } from "../input-group";
4
+ import { useMergeRefs } from "../../utils";
5
+
6
+ export type DatePickerProps = Omit<
7
+ InputGroupProps & InputHTMLAttributes<HTMLInputElement>,
8
+ "children" | "type"
9
+ > & {
10
+ /**
11
+ * Accessible title for the calendar button
12
+ *
13
+ * This button currently only shows in Chrome.
14
+ *
15
+ * @defaultValue "Åpne kalender"
16
+ */
17
+ calendarButtonTitle?: string;
18
+ };
19
+
20
+ /**
21
+ * A basic implementation of a date picker
22
+ *
23
+ * This date picker is an implementation of native date picker, as you get
24
+ * with `<input type="date" />`, where the input field is dressed in Hedwig styling.
25
+ *
26
+ * Due to accessibility concerns you will only see the appropriate Hedwig calendar
27
+ * icon in Chrome. Firefox will show built in icon and Safari will show no icon.
28
+ * Not tested in Edge.
29
+ */
30
+ export const DatePicker = forwardRef<HTMLInputElement, DatePickerProps>(function DatePicker(
31
+ {
32
+ className,
33
+ variant,
34
+ errorMessage,
35
+ labelProps,
36
+ label,
37
+ id,
38
+ style,
39
+ disabled,
40
+ readOnly,
41
+ calendarButtonTitle = "Åpne kalender",
42
+ ...rest
43
+ },
44
+ ref,
45
+ ) {
46
+ const inputRef = useRef<HTMLInputElement>(null);
47
+ const mergedRef = useMergeRefs([inputRef, ref]);
48
+
49
+ return (
50
+ <InputGroup
51
+ className={clsx("hds-date-picker", className as undefined)}
52
+ disabled={disabled}
53
+ errorMessage={errorMessage}
54
+ id={id}
55
+ label={label}
56
+ labelProps={labelProps}
57
+ readOnly={readOnly}
58
+ style={style}
59
+ variant={variant}
60
+ >
61
+ {(inputProps) => (
62
+ <>
63
+ <input
64
+ {...rest}
65
+ {...inputProps}
66
+ disabled={disabled}
67
+ readOnly={readOnly}
68
+ ref={mergedRef}
69
+ type="date"
70
+ />
71
+ <button
72
+ className={clsx("hds-date-picker__calendar-button")}
73
+ type="button"
74
+ title={calendarButtonTitle}
75
+ onClick={() => {
76
+ inputRef.current?.showPicker();
77
+ }}
78
+ />
79
+ </>
80
+ )}
81
+ </InputGroup>
82
+ );
83
+ });
84
+
85
+ DatePicker.displayName = "DatePicker";
@@ -0,0 +1,2 @@
1
+ export { DatePicker } from "./date-picker";
2
+ export type * from "./date-picker";
@@ -0,0 +1,19 @@
1
+ /* eslint-disable import/no-extraneous-dependencies -- storybook story */
2
+ import type { Meta, StoryObj } from "@storybook/react";
3
+ import { ErrorMessage } from ".";
4
+
5
+ const meta: Meta<typeof ErrorMessage> = {
6
+ title: "Form/ErrorMessage",
7
+ component: ErrorMessage,
8
+ };
9
+
10
+ export default meta;
11
+
12
+ type Story = StoryObj<typeof ErrorMessage>;
13
+
14
+ export const Default: Story = {
15
+ args: {
16
+ id: "id",
17
+ children: "This is an error message for use with form input components",
18
+ },
19
+ };
@@ -0,0 +1,25 @@
1
+ import { clsx } from "@postenbring/hedwig-css/typed-classname";
2
+ import { forwardRef, type ReactNode } from "react";
3
+
4
+ export interface ErrorMessageProps extends React.HTMLAttributes<HTMLDivElement> {
5
+ children: ReactNode;
6
+ id: string;
7
+ className?: string;
8
+ }
9
+
10
+ export const ErrorMessage = forwardRef<HTMLDivElement, ErrorMessageProps>(
11
+ ({ children, id, className, ...rest }, ref) => {
12
+ return (
13
+ <div
14
+ aria-live="assertive"
15
+ className={clsx("hds-error-message", className as undefined)}
16
+ id={id}
17
+ ref={ref}
18
+ {...rest}
19
+ >
20
+ {children}
21
+ </div>
22
+ );
23
+ },
24
+ );
25
+ ErrorMessage.displayName = "ErrorMessage";
@@ -0,0 +1,2 @@
1
+ export { ErrorMessage } from "./error-message";
2
+ export type * from "./error-message";
@@ -0,0 +1,86 @@
1
+ /* eslint-disable import/no-extraneous-dependencies -- storybook story */
2
+ import type { Meta, StoryObj } from "@storybook/react";
3
+ import { Checkbox } from "../checkbox";
4
+ import { Radiobutton } from "../radiobutton";
5
+ import { Fieldset } from ".";
6
+
7
+ const meta: Meta<typeof Fieldset> = {
8
+ title: "Form/Fieldset",
9
+ component: Fieldset,
10
+ };
11
+
12
+ export default meta;
13
+
14
+ type Story = StoryObj<typeof Fieldset>;
15
+
16
+ export const Default: Story = {
17
+ args: {
18
+ legend: "Default fieldset",
19
+ errorMessage: "",
20
+ },
21
+ render: (props) => (
22
+ <Fieldset {...props}>
23
+ <Checkbox defaultChecked value="Hello">
24
+ Hello
25
+ </Checkbox>
26
+ <Checkbox value="Hello">Hello</Checkbox>
27
+ <Checkbox value="Hello">Hello</Checkbox>
28
+ </Fieldset>
29
+ ),
30
+ };
31
+
32
+ export const LargeLegend: Story = {
33
+ args: {
34
+ legend: "Fieldset with large legend",
35
+ legendProps: { size: "large" },
36
+ },
37
+ render: (props) => (
38
+ <Fieldset {...props}>
39
+ <Checkbox defaultChecked value="Hello">
40
+ Hello
41
+ </Checkbox>
42
+ <Checkbox value="Hello">Hello</Checkbox>
43
+ <Checkbox value="Hello">Hello</Checkbox>
44
+ </Fieldset>
45
+ ),
46
+ };
47
+
48
+ export const FieldsetErrorCheckboxes: Story = {
49
+ args: {
50
+ legend: "Checkboxes wrapped in Fieldset will get error styling when Fieldset has errorMessage",
51
+ errorMessage: "Something's wrong",
52
+ },
53
+ render: (props) => (
54
+ <Fieldset {...props}>
55
+ <Checkbox value="Hello">Hello</Checkbox>
56
+ <Checkbox value="Hello">Hello</Checkbox>
57
+ <Checkbox value="Hello">Hello</Checkbox>
58
+ </Fieldset>
59
+ ),
60
+ };
61
+
62
+ export const FieldsetErrorRadiobuttons: Story = {
63
+ args: {
64
+ legend: (
65
+ <>
66
+ Radiobuttons wrapped in Fieldset will get error styling when Fieldset has errorMessage
67
+ <br />
68
+ However, you should probably use RadioGroup instead of Fieldset for Radiobuttons
69
+ </>
70
+ ),
71
+ errorMessage: "Something's wrong",
72
+ },
73
+ render: (props) => (
74
+ <Fieldset {...props}>
75
+ <Radiobutton value="Hello" name="radiogroup">
76
+ Hello
77
+ </Radiobutton>
78
+ <Radiobutton value="Hello" name="radiogroup">
79
+ Hello
80
+ </Radiobutton>
81
+ <Radiobutton value="Hello" name="radiogroup">
82
+ Hello
83
+ </Radiobutton>
84
+ </Fieldset>
85
+ ),
86
+ };
@@ -0,0 +1,64 @@
1
+ import { useId, forwardRef, createContext, useContext } from "react";
2
+ import type { FieldsetHTMLAttributes, HTMLAttributes, ReactNode, CSSProperties } from "react";
3
+ import { clsx } from "@postenbring/hedwig-css/typed-classname";
4
+ import { ErrorMessage } from "../error-message";
5
+
6
+ export interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElement> {
7
+ className?: string;
8
+ style?: CSSProperties;
9
+ /**
10
+ * Providing an errorMessage will also give contained Checkboxes or Radiobuttons
11
+ * error styling and aria to indicate invalid state.
12
+ *
13
+ * For Radiobuttons you are even better off using RadioGroup.
14
+ */
15
+ errorMessage?: ReactNode;
16
+ legendProps?: HTMLAttributes<HTMLElement> & { size: "default" | "large" };
17
+ legend: ReactNode;
18
+ children: ReactNode;
19
+ }
20
+
21
+ const FieldsetContext = createContext<{ hasError: boolean }>({ hasError: false });
22
+
23
+ export const useFieldsetContext = () => useContext(FieldsetContext);
24
+
25
+ export const Fieldset = forwardRef<HTMLFieldSetElement, FieldsetProps>(function Fieldset(
26
+ {
27
+ className,
28
+ style,
29
+ errorMessage,
30
+ legendProps: { size: legendSize = "default", className: legendClassName, ...legendProps } = {},
31
+ legend,
32
+ children,
33
+ ...rest
34
+ },
35
+ ref,
36
+ ) {
37
+ const errorMessageId = useId();
38
+
39
+ return (
40
+ <fieldset
41
+ aria-describedby={errorMessage ? errorMessageId : undefined}
42
+ aria-invalid={errorMessage ? true : undefined}
43
+ className={clsx("hds-fieldset", className as undefined)}
44
+ ref={ref}
45
+ style={style}
46
+ {...rest}
47
+ >
48
+ <legend
49
+ className={clsx(
50
+ "hds-fieldset__legend",
51
+ { [`hds-fieldset__legend--${legendSize}`]: legendSize },
52
+ legendClassName as undefined,
53
+ )}
54
+ {...legendProps}
55
+ >
56
+ {legend}
57
+ </legend>
58
+ <FieldsetContext.Provider value={{ hasError: Boolean(errorMessage) }}>
59
+ {children}
60
+ </FieldsetContext.Provider>
61
+ <ErrorMessage id={errorMessageId}>{errorMessage}</ErrorMessage>
62
+ </fieldset>
63
+ );
64
+ });
@@ -0,0 +1,2 @@
1
+ export { Fieldset, useFieldsetContext } from "./fieldset";
2
+ export type * from "./fieldset";
@@ -0,0 +1,8 @@
1
+ export * from "./checkbox";
2
+ export * from "./date-picker";
3
+ export * from "./error-message";
4
+ export * from "./fieldset";
5
+ export * from "./input";
6
+ export * from "./radiobutton";
7
+ export * from "./select";
8
+ export * from "./textarea";
@@ -0,0 +1,2 @@
1
+ export { Input } from "./input";
2
+ export type * from "./input";
@@ -0,0 +1,166 @@
1
+ /* eslint-disable import/no-extraneous-dependencies -- storybook story */
2
+ import type { Meta, StoryObj } from "@storybook/react";
3
+ import { useState } from "react";
4
+ import { PrimaryButton, SecondaryButton } from "../../button";
5
+ import { HStack, VStack } from "../../layout";
6
+ import { Input } from ".";
7
+
8
+ const meta: Meta<typeof Input> = {
9
+ title: "Form/Input",
10
+ component: Input,
11
+ };
12
+
13
+ export default meta;
14
+
15
+ type Story = StoryObj<typeof Input>;
16
+
17
+ export const PlainInput: Story = {
18
+ args: {
19
+ label: "Some kind of input",
20
+ placeholder: "I am a placeholder",
21
+ errorMessage: "",
22
+ readOnly: false,
23
+ variant: "default",
24
+ },
25
+ argTypes: {
26
+ variant: { control: "inline-radio", options: ["default", "white"] },
27
+ },
28
+ };
29
+
30
+ export const PlainInputWithError: Story = {
31
+ args: {
32
+ label: "Some kind of input with error",
33
+ errorMessage: "This is invalid",
34
+ placeholder: "I am a placeholder",
35
+ },
36
+ };
37
+
38
+ export const ReadonlyInput: Story = {
39
+ args: {
40
+ label: "Some kind of readonly input",
41
+ readOnly: true,
42
+ value: "This is a read-only value",
43
+ },
44
+ };
45
+
46
+ export const ReadonlyInputWithError: Story = {
47
+ args: {
48
+ label: "Some kind of readonly input",
49
+ readOnly: true,
50
+ value: "This is a read-only value",
51
+ errorMessage: "This is invalid",
52
+ },
53
+ };
54
+
55
+ export const WhiteInput: Story = {
56
+ args: {
57
+ label: "Some kind of white input",
58
+ variant: "white",
59
+ placeholder: "I am a placeholder",
60
+ },
61
+ render: (props) => (
62
+ <div style={{ background: "var(--hds-ui-colors-light-grey-fill)", padding: "1em" }}>
63
+ <Input {...props} />
64
+ </div>
65
+ ),
66
+ };
67
+
68
+ export const WhiteInputWithError: Story = {
69
+ args: {
70
+ label: "Some kind of white input",
71
+ variant: "white",
72
+ placeholder: "I am a placeholder",
73
+ errorMessage: "This is invalid",
74
+ },
75
+ render: (props) => (
76
+ <div style={{ background: "var(--hds-ui-colors-light-grey-fill)", padding: "1em" }}>
77
+ <Input {...props} />
78
+ </div>
79
+ ),
80
+ };
81
+
82
+ export const WhiteReadonlyInput: Story = {
83
+ args: {
84
+ label: "Some kind of readonly input",
85
+ variant: "white",
86
+ readOnly: true,
87
+ value: "This is a read-only value",
88
+ },
89
+ render: (props) => (
90
+ <div style={{ background: "var(--hds-ui-colors-light-grey-fill)", padding: "1em" }}>
91
+ <Input {...props} />
92
+ </div>
93
+ ),
94
+ };
95
+
96
+ export const WhiteReadonlyInputWithError: Story = {
97
+ args: {
98
+ label: "Some kind of readonly input",
99
+ variant: "white",
100
+ readOnly: true,
101
+ value: "This is a read-only value",
102
+ errorMessage: "This is invalid",
103
+ },
104
+ render: (props) => (
105
+ <div style={{ background: "var(--hds-ui-colors-light-grey-fill)", padding: "1em" }}>
106
+ <Input {...props} />
107
+ </div>
108
+ ),
109
+ };
110
+
111
+ export const TrackingNumberSearch: Story = {
112
+ render: () => (
113
+ <HStack
114
+ gap="4"
115
+ align="end"
116
+ style={{
117
+ maxWidth: 556,
118
+ }}
119
+ >
120
+ <Input label="Sporingsnummer" style={{ width: "100%" }} />
121
+ <PrimaryButton size="large">Spor</PrimaryButton>
122
+ </HStack>
123
+ ),
124
+ };
125
+
126
+ export const FormWithErrorsOnSubmit: Story = {
127
+ render: () => {
128
+ // eslint-disable-next-line react-hooks/rules-of-hooks -- It's ok
129
+ const [errors, setErrors] = useState<Record<string, string>>({});
130
+ return (
131
+ <VStack gap="16" asChild>
132
+ <form
133
+ lang="en"
134
+ onSubmit={(e) => {
135
+ e.preventDefault();
136
+ const formData = new FormData(e.currentTarget);
137
+ const newErrors: Record<string, string> = {};
138
+ for (const [key, value] of formData) {
139
+ if (!value) {
140
+ newErrors[key] = `${key} is required`;
141
+ }
142
+ }
143
+ setErrors(newErrors);
144
+ }}
145
+ >
146
+ <p>Fields without input will give an error</p>
147
+ <Input errorMessage={errors.One} label="One" name="One" />
148
+ <Input errorMessage={errors.Two} label="Two" name="Two" />
149
+ <Input errorMessage={errors.Three} label="Three" name="Three" />
150
+ <VStack gap="4">
151
+ <PrimaryButton type="submit">Submit</PrimaryButton>
152
+ <SecondaryButton
153
+ fill="outline"
154
+ onClick={() => {
155
+ setErrors({});
156
+ }}
157
+ type="reset"
158
+ >
159
+ Reset
160
+ </SecondaryButton>
161
+ </VStack>
162
+ </form>
163
+ </VStack>
164
+ );
165
+ },
166
+ };
@@ -0,0 +1,30 @@
1
+ import { forwardRef } from "react";
2
+ import type { InputHTMLAttributes } from "react";
3
+ import { clsx } from "@postenbring/hedwig-css/typed-classname";
4
+ import { InputGroup } from "../input-group";
5
+ import type { InputGroupProps } from "../input-group";
6
+
7
+ export type InputProps = Omit<InputGroupProps & InputHTMLAttributes<HTMLInputElement>, "children">;
8
+
9
+ export const Input = forwardRef<HTMLInputElement, InputProps>(function Input(
10
+ { className, variant, errorMessage, labelProps, label, id, style, disabled, readOnly, ...rest },
11
+ ref,
12
+ ) {
13
+ return (
14
+ <InputGroup
15
+ className={clsx("hds-input", className as undefined)}
16
+ disabled={disabled}
17
+ errorMessage={errorMessage}
18
+ id={id}
19
+ label={label}
20
+ labelProps={labelProps}
21
+ readOnly={readOnly}
22
+ style={style}
23
+ variant={variant}
24
+ >
25
+ <input {...rest} disabled={disabled} readOnly={readOnly} ref={ref} />
26
+ </InputGroup>
27
+ );
28
+ });
29
+
30
+ Input.displayName = "Input";
@@ -0,0 +1,2 @@
1
+ export { InputGroup } from "./input-group";
2
+ export type * from "./input-group";