@dsn-starter-kit/components-react 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/README.md +32 -4
  2. package/dist/ActionGroup/ActionGroup.d.mts +51 -0
  3. package/dist/ActionGroup/ActionGroup.d.mts.map +1 -0
  4. package/dist/ActionGroup/ActionGroup2.mjs +65 -0
  5. package/dist/ActionGroup/ActionGroup2.mjs.map +1 -0
  6. package/dist/ActionGroup/index.d.mts +2 -0
  7. package/dist/Alert/Alert.d.mts +85 -0
  8. package/dist/Alert/Alert.d.mts.map +1 -0
  9. package/dist/Alert/Alert2.mjs +102 -0
  10. package/dist/Alert/Alert2.mjs.map +1 -0
  11. package/dist/Alert/index.d.mts +2 -0
  12. package/dist/Backdrop/Backdrop.d.mts +28 -0
  13. package/dist/Backdrop/Backdrop.d.mts.map +1 -0
  14. package/dist/Backdrop/Backdrop2.mjs +32 -0
  15. package/dist/Backdrop/Backdrop2.mjs.map +1 -0
  16. package/dist/Backdrop/index.d.mts +2 -0
  17. package/dist/Body/Body.d.mts +29 -0
  18. package/dist/Body/Body.d.mts.map +1 -0
  19. package/dist/Body/Body2.mjs +36 -0
  20. package/dist/Body/Body2.mjs.map +1 -0
  21. package/dist/Body/index.d.mts +2 -0
  22. package/dist/BreadcrumbNavigation/BreadcrumbNavigation.d.mts +45 -0
  23. package/dist/BreadcrumbNavigation/BreadcrumbNavigation.d.mts.map +1 -0
  24. package/dist/BreadcrumbNavigation/BreadcrumbNavigation2.mjs +51 -0
  25. package/dist/BreadcrumbNavigation/BreadcrumbNavigation2.mjs.map +1 -0
  26. package/dist/BreadcrumbNavigation/BreadcrumbNavigationItem.d.mts +41 -0
  27. package/dist/BreadcrumbNavigation/BreadcrumbNavigationItem.d.mts.map +1 -0
  28. package/dist/BreadcrumbNavigation/BreadcrumbNavigationItem.mjs +48 -0
  29. package/dist/BreadcrumbNavigation/BreadcrumbNavigationItem.mjs.map +1 -0
  30. package/dist/BreadcrumbNavigation/index.d.mts +3 -0
  31. package/dist/BreakoutSection/BreakoutSection.d.mts +32 -0
  32. package/dist/BreakoutSection/BreakoutSection.d.mts.map +1 -0
  33. package/dist/BreakoutSection/BreakoutSection2.mjs +36 -0
  34. package/dist/BreakoutSection/BreakoutSection2.mjs.map +1 -0
  35. package/dist/BreakoutSection/index.d.mts +2 -0
  36. package/dist/Button/Button.d.mts +92 -0
  37. package/dist/Button/Button.d.mts.map +1 -0
  38. package/dist/Button/Button2.mjs +76 -0
  39. package/dist/Button/Button2.mjs.map +1 -0
  40. package/dist/Button/index.d.mts +2 -0
  41. package/dist/ButtonLink/ButtonLink.d.mts +94 -0
  42. package/dist/ButtonLink/ButtonLink.d.mts.map +1 -0
  43. package/dist/ButtonLink/ButtonLink2.mjs +70 -0
  44. package/dist/ButtonLink/ButtonLink2.mjs.map +1 -0
  45. package/dist/ButtonLink/index.d.mts +2 -0
  46. package/dist/Card/Card.d.mts +107 -0
  47. package/dist/Card/Card.d.mts.map +1 -0
  48. package/dist/Card/Card2.mjs +125 -0
  49. package/dist/Card/Card2.mjs.map +1 -0
  50. package/dist/Card/index.d.mts +2 -0
  51. package/dist/Checkbox/Checkbox.d.mts +20 -0
  52. package/dist/Checkbox/Checkbox.d.mts.map +1 -0
  53. package/dist/Checkbox/Checkbox2.mjs +43 -0
  54. package/dist/Checkbox/Checkbox2.mjs.map +1 -0
  55. package/dist/Checkbox/index.d.mts +2 -0
  56. package/dist/CheckboxGroup/CheckboxGroup.d.mts +39 -0
  57. package/dist/CheckboxGroup/CheckboxGroup.d.mts.map +1 -0
  58. package/dist/CheckboxGroup/CheckboxGroup2.mjs +46 -0
  59. package/dist/CheckboxGroup/CheckboxGroup2.mjs.map +1 -0
  60. package/dist/CheckboxGroup/index.d.mts +2 -0
  61. package/dist/CheckboxOption/CheckboxOption.d.mts +17 -0
  62. package/dist/CheckboxOption/CheckboxOption.d.mts.map +1 -0
  63. package/dist/CheckboxOption/CheckboxOption2.mjs +29 -0
  64. package/dist/CheckboxOption/CheckboxOption2.mjs.map +1 -0
  65. package/dist/CheckboxOption/index.d.mts +2 -0
  66. package/dist/Container/Container.d.mts +43 -0
  67. package/dist/Container/Container.d.mts.map +1 -0
  68. package/dist/Container/Container2.mjs +42 -0
  69. package/dist/Container/Container2.mjs.map +1 -0
  70. package/dist/Container/index.d.mts +2 -0
  71. package/dist/DateInput/DateInput.d.mts +38 -0
  72. package/dist/DateInput/DateInput.d.mts.map +1 -0
  73. package/dist/DateInput/DateInput2.mjs +69 -0
  74. package/dist/DateInput/DateInput2.mjs.map +1 -0
  75. package/dist/DateInput/index.d.mts +2 -0
  76. package/dist/DateInputGroup/DateInputGroup.d.mts +67 -0
  77. package/dist/DateInputGroup/DateInputGroup.d.mts.map +1 -0
  78. package/dist/DateInputGroup/DateInputGroup2.mjs +120 -0
  79. package/dist/DateInputGroup/DateInputGroup2.mjs.map +1 -0
  80. package/dist/DateInputGroup/index.d.mts +2 -0
  81. package/dist/Details/Details.d.mts +48 -0
  82. package/dist/Details/Details.d.mts.map +1 -0
  83. package/dist/Details/Details2.mjs +61 -0
  84. package/dist/Details/Details2.mjs.map +1 -0
  85. package/dist/Details/index.d.mts +2 -0
  86. package/dist/DotBadge/DotBadge.d.mts +44 -0
  87. package/dist/DotBadge/DotBadge.d.mts.map +1 -0
  88. package/dist/DotBadge/DotBadge2.mjs +42 -0
  89. package/dist/DotBadge/DotBadge2.mjs.map +1 -0
  90. package/dist/DotBadge/index.d.mts +2 -0
  91. package/dist/Drawer/Drawer.d.mts +111 -0
  92. package/dist/Drawer/Drawer.d.mts.map +1 -0
  93. package/dist/Drawer/Drawer2.mjs +156 -0
  94. package/dist/Drawer/Drawer2.mjs.map +1 -0
  95. package/dist/Drawer/index.d.mts +2 -0
  96. package/dist/EmailInput/EmailInput.d.mts +40 -0
  97. package/dist/EmailInput/EmailInput.d.mts.map +1 -0
  98. package/dist/EmailInput/EmailInput.mjs +39 -0
  99. package/dist/EmailInput/EmailInput.mjs.map +1 -0
  100. package/dist/EmailInput/index.d.mts +2 -0
  101. package/dist/File/File.d.mts +124 -0
  102. package/dist/File/File.d.mts.map +1 -0
  103. package/dist/File/File2.mjs +196 -0
  104. package/dist/File/File2.mjs.map +1 -0
  105. package/dist/File/index.d.mts +2 -0
  106. package/dist/FileInput/FileInput.d.mts +38 -0
  107. package/dist/FileInput/FileInput.d.mts.map +1 -0
  108. package/dist/FileInput/FileInput2.mjs +41 -0
  109. package/dist/FileInput/FileInput2.mjs.map +1 -0
  110. package/dist/FileInput/index.d.mts +2 -0
  111. package/dist/FormField/FormField.d.mts +103 -0
  112. package/dist/FormField/FormField.d.mts.map +1 -0
  113. package/dist/FormField/FormField2.mjs +101 -0
  114. package/dist/FormField/FormField2.mjs.map +1 -0
  115. package/dist/FormField/index.d.mts +2 -0
  116. package/dist/FormFieldDescription/FormFieldDescription.d.mts +53 -0
  117. package/dist/FormFieldDescription/FormFieldDescription.d.mts.map +1 -0
  118. package/dist/FormFieldDescription/FormFieldDescription2.mjs +49 -0
  119. package/dist/FormFieldDescription/FormFieldDescription2.mjs.map +1 -0
  120. package/dist/FormFieldDescription/index.d.mts +2 -0
  121. package/dist/FormFieldErrorMessage/FormFieldErrorMessage.d.mts +42 -0
  122. package/dist/FormFieldErrorMessage/FormFieldErrorMessage.d.mts.map +1 -0
  123. package/dist/FormFieldErrorMessage/FormFieldErrorMessage2.mjs +44 -0
  124. package/dist/FormFieldErrorMessage/FormFieldErrorMessage2.mjs.map +1 -0
  125. package/dist/FormFieldErrorMessage/index.d.mts +2 -0
  126. package/dist/FormFieldLabel/FormFieldLabel.d.mts +40 -0
  127. package/dist/FormFieldLabel/FormFieldLabel.d.mts.map +1 -0
  128. package/dist/FormFieldLabel/FormFieldLabel2.mjs +42 -0
  129. package/dist/FormFieldLabel/FormFieldLabel2.mjs.map +1 -0
  130. package/dist/FormFieldLabel/index.d.mts +2 -0
  131. package/dist/FormFieldLegend/FormFieldLegend.d.mts +41 -0
  132. package/dist/FormFieldLegend/FormFieldLegend.d.mts.map +1 -0
  133. package/dist/FormFieldLegend/FormFieldLegend2.mjs +43 -0
  134. package/dist/FormFieldLegend/FormFieldLegend2.mjs.map +1 -0
  135. package/dist/FormFieldLegend/index.d.mts +2 -0
  136. package/dist/FormFieldStatus/FormFieldStatus.d.mts +62 -0
  137. package/dist/FormFieldStatus/FormFieldStatus.d.mts.map +1 -0
  138. package/dist/FormFieldStatus/FormFieldStatus2.mjs +54 -0
  139. package/dist/FormFieldStatus/FormFieldStatus2.mjs.map +1 -0
  140. package/dist/FormFieldStatus/index.d.mts +2 -0
  141. package/dist/FormFieldset/FormFieldset.d.mts +100 -0
  142. package/dist/FormFieldset/FormFieldset.d.mts.map +1 -0
  143. package/dist/FormFieldset/FormFieldset2.mjs +100 -0
  144. package/dist/FormFieldset/FormFieldset2.mjs.map +1 -0
  145. package/dist/FormFieldset/index.d.mts +2 -0
  146. package/dist/Grid/Grid.d.mts +37 -0
  147. package/dist/Grid/Grid.d.mts.map +1 -0
  148. package/dist/Grid/Grid2.mjs +38 -0
  149. package/dist/Grid/Grid2.mjs.map +1 -0
  150. package/dist/Grid/GridItem.d.mts +87 -0
  151. package/dist/Grid/GridItem.d.mts.map +1 -0
  152. package/dist/Grid/GridItem.mjs +48 -0
  153. package/dist/Grid/GridItem.mjs.map +1 -0
  154. package/dist/Grid/index.d.mts +3 -0
  155. package/dist/Heading/Heading.d.mts +40 -0
  156. package/dist/Heading/Heading.d.mts.map +1 -0
  157. package/dist/Heading/Heading2.mjs +33 -0
  158. package/dist/Heading/Heading2.mjs.map +1 -0
  159. package/dist/Heading/index.d.mts +2 -0
  160. package/dist/HeadingGroup/HeadingGroup.d.mts +25 -0
  161. package/dist/HeadingGroup/HeadingGroup.d.mts.map +1 -0
  162. package/dist/HeadingGroup/HeadingGroup2.mjs +24 -0
  163. package/dist/HeadingGroup/HeadingGroup2.mjs.map +1 -0
  164. package/dist/HeadingGroup/index.d.mts +2 -0
  165. package/dist/Hero/Hero.d.mts +47 -0
  166. package/dist/Hero/Hero.d.mts.map +1 -0
  167. package/dist/Hero/Hero2.mjs +50 -0
  168. package/dist/Hero/Hero2.mjs.map +1 -0
  169. package/dist/Hero/index.d.mts +2 -0
  170. package/dist/Icon/Icon.d.mts +47 -0
  171. package/dist/Icon/Icon.d.mts.map +1 -0
  172. package/dist/Icon/Icon2.mjs +47 -0
  173. package/dist/Icon/Icon2.mjs.map +1 -0
  174. package/dist/Icon/icon-registry.generated.d.mts +8 -0
  175. package/dist/Icon/icon-registry.generated.d.mts.map +1 -0
  176. package/dist/Icon/icon-registry.generated.mjs +818 -0
  177. package/dist/Icon/icon-registry.generated.mjs.map +1 -0
  178. package/dist/Icon/index.d.mts +3 -0
  179. package/dist/IconList/IconList.d.mts +68 -0
  180. package/dist/IconList/IconList.d.mts.map +1 -0
  181. package/dist/IconList/IconList2.mjs +65 -0
  182. package/dist/IconList/IconList2.mjs.map +1 -0
  183. package/dist/IconList/index.d.mts +2 -0
  184. package/dist/Image/Image.d.mts +56 -0
  185. package/dist/Image/Image.d.mts.map +1 -0
  186. package/dist/Image/Image2.mjs +67 -0
  187. package/dist/Image/Image2.mjs.map +1 -0
  188. package/dist/Image/index.d.mts +2 -0
  189. package/dist/Link/Link.d.mts +82 -0
  190. package/dist/Link/Link.d.mts.map +1 -0
  191. package/dist/Link/Link2.mjs +73 -0
  192. package/dist/Link/Link2.mjs.map +1 -0
  193. package/dist/Link/index.d.mts +2 -0
  194. package/dist/LinkButton/LinkButton.d.mts +54 -0
  195. package/dist/LinkButton/LinkButton.d.mts.map +1 -0
  196. package/dist/LinkButton/LinkButton2.mjs +48 -0
  197. package/dist/LinkButton/LinkButton2.mjs.map +1 -0
  198. package/dist/LinkButton/index.d.mts +2 -0
  199. package/dist/Logo/Logo.d.mts +35 -0
  200. package/dist/Logo/Logo.d.mts.map +1 -0
  201. package/dist/Logo/Logo2.mjs +66 -0
  202. package/dist/Logo/Logo2.mjs.map +1 -0
  203. package/dist/Logo/index.d.mts +2 -0
  204. package/dist/Menu/Menu.d.mts +58 -0
  205. package/dist/Menu/Menu.d.mts.map +1 -0
  206. package/dist/Menu/Menu2.mjs +47 -0
  207. package/dist/Menu/Menu2.mjs.map +1 -0
  208. package/dist/Menu/index.d.mts +2 -0
  209. package/dist/MenuButton/MenuButton.d.mts +56 -0
  210. package/dist/MenuButton/MenuButton.d.mts.map +1 -0
  211. package/dist/MenuButton/MenuButton2.mjs +57 -0
  212. package/dist/MenuButton/MenuButton2.mjs.map +1 -0
  213. package/dist/MenuButton/index.d.mts +2 -0
  214. package/dist/MenuLink/MenuLink.d.mts +98 -0
  215. package/dist/MenuLink/MenuLink.d.mts.map +1 -0
  216. package/dist/MenuLink/MenuLink2.mjs +98 -0
  217. package/dist/MenuLink/MenuLink2.mjs.map +1 -0
  218. package/dist/MenuLink/index.d.mts +2 -0
  219. package/dist/ModalDialog/ModalDialog.d.mts +97 -0
  220. package/dist/ModalDialog/ModalDialog.d.mts.map +1 -0
  221. package/dist/ModalDialog/ModalDialog2.mjs +134 -0
  222. package/dist/ModalDialog/ModalDialog2.mjs.map +1 -0
  223. package/dist/ModalDialog/index.d.mts +2 -0
  224. package/dist/Note/Note.d.mts +95 -0
  225. package/dist/Note/Note.d.mts.map +1 -0
  226. package/dist/Note/Note2.mjs +116 -0
  227. package/dist/Note/Note2.mjs.map +1 -0
  228. package/dist/Note/index.d.mts +2 -0
  229. package/dist/NumberBadge/NumberBadge.d.mts +44 -0
  230. package/dist/NumberBadge/NumberBadge.d.mts.map +1 -0
  231. package/dist/NumberBadge/NumberBadge2.mjs +50 -0
  232. package/dist/NumberBadge/NumberBadge2.mjs.map +1 -0
  233. package/dist/NumberBadge/index.d.mts +2 -0
  234. package/dist/NumberInput/NumberInput.d.mts +47 -0
  235. package/dist/NumberInput/NumberInput.d.mts.map +1 -0
  236. package/dist/NumberInput/NumberInput.mjs +40 -0
  237. package/dist/NumberInput/NumberInput.mjs.map +1 -0
  238. package/dist/NumberInput/index.d.mts +2 -0
  239. package/dist/OptionLabel/OptionLabel.d.mts +15 -0
  240. package/dist/OptionLabel/OptionLabel.d.mts.map +1 -0
  241. package/dist/OptionLabel/OptionLabel2.mjs +22 -0
  242. package/dist/OptionLabel/OptionLabel2.mjs.map +1 -0
  243. package/dist/OptionLabel/index.d.mts +2 -0
  244. package/dist/OrderedList/OrderedList.d.mts +34 -0
  245. package/dist/OrderedList/OrderedList.d.mts.map +1 -0
  246. package/dist/OrderedList/OrderedList2.mjs +37 -0
  247. package/dist/OrderedList/OrderedList2.mjs.map +1 -0
  248. package/dist/OrderedList/index.d.mts +2 -0
  249. package/dist/PageBody/PageBody.d.mts +35 -0
  250. package/dist/PageBody/PageBody.d.mts.map +1 -0
  251. package/dist/PageBody/PageBody2.mjs +40 -0
  252. package/dist/PageBody/PageBody2.mjs.map +1 -0
  253. package/dist/PageBody/index.d.mts +2 -0
  254. package/dist/PageFooter/PageFooter.d.mts +57 -0
  255. package/dist/PageFooter/PageFooter.d.mts.map +1 -0
  256. package/dist/PageFooter/PageFooter2.mjs +78 -0
  257. package/dist/PageFooter/PageFooter2.mjs.map +1 -0
  258. package/dist/PageFooter/index.d.mts +2 -0
  259. package/dist/PageHeader/PageHeader.d.mts +192 -0
  260. package/dist/PageHeader/PageHeader.d.mts.map +1 -0
  261. package/dist/PageHeader/PageHeader2.mjs +275 -0
  262. package/dist/PageHeader/PageHeader2.mjs.map +1 -0
  263. package/dist/PageHeader/index.d.mts +2 -0
  264. package/dist/PageLayout/PageLayout.d.mts +40 -0
  265. package/dist/PageLayout/PageLayout.d.mts.map +1 -0
  266. package/dist/PageLayout/PageLayout2.mjs +42 -0
  267. package/dist/PageLayout/PageLayout2.mjs.map +1 -0
  268. package/dist/PageLayout/index.d.mts +2 -0
  269. package/dist/Paragraph/Paragraph.d.mts +37 -0
  270. package/dist/Paragraph/Paragraph.d.mts.map +1 -0
  271. package/dist/Paragraph/Paragraph2.mjs +34 -0
  272. package/dist/Paragraph/Paragraph2.mjs.map +1 -0
  273. package/dist/Paragraph/index.d.mts +2 -0
  274. package/dist/PasswordInput/PasswordInput.d.mts +54 -0
  275. package/dist/PasswordInput/PasswordInput.d.mts.map +1 -0
  276. package/dist/PasswordInput/PasswordInput.mjs +43 -0
  277. package/dist/PasswordInput/PasswordInput.mjs.map +1 -0
  278. package/dist/PasswordInput/index.d.mts +2 -0
  279. package/dist/Popover/Popover.d.mts +118 -0
  280. package/dist/Popover/Popover.d.mts.map +1 -0
  281. package/dist/Popover/Popover2.mjs +235 -0
  282. package/dist/Popover/Popover2.mjs.map +1 -0
  283. package/dist/Popover/index.d.mts +2 -0
  284. package/dist/PreHeading/PreHeading.d.mts +10 -0
  285. package/dist/PreHeading/PreHeading.d.mts.map +1 -0
  286. package/dist/PreHeading/PreHeading2.mjs +18 -0
  287. package/dist/PreHeading/PreHeading2.mjs.map +1 -0
  288. package/dist/PreHeading/index.d.mts +2 -0
  289. package/dist/ProgressBar/ProgressBar.d.mts +60 -0
  290. package/dist/ProgressBar/ProgressBar.d.mts.map +1 -0
  291. package/dist/ProgressBar/ProgressBar2.mjs +73 -0
  292. package/dist/ProgressBar/ProgressBar2.mjs.map +1 -0
  293. package/dist/ProgressBar/index.d.mts +2 -0
  294. package/dist/Radio/Radio.d.mts +16 -0
  295. package/dist/Radio/Radio.d.mts.map +1 -0
  296. package/dist/Radio/Radio2.mjs +31 -0
  297. package/dist/Radio/Radio2.mjs.map +1 -0
  298. package/dist/Radio/index.d.mts +2 -0
  299. package/dist/RadioGroup/RadioGroup.d.mts +39 -0
  300. package/dist/RadioGroup/RadioGroup.d.mts.map +1 -0
  301. package/dist/RadioGroup/RadioGroup2.mjs +46 -0
  302. package/dist/RadioGroup/RadioGroup2.mjs.map +1 -0
  303. package/dist/RadioGroup/index.d.mts +2 -0
  304. package/dist/RadioOption/RadioOption.d.mts +17 -0
  305. package/dist/RadioOption/RadioOption.d.mts.map +1 -0
  306. package/dist/RadioOption/RadioOption2.mjs +29 -0
  307. package/dist/RadioOption/RadioOption2.mjs.map +1 -0
  308. package/dist/RadioOption/index.d.mts +2 -0
  309. package/dist/SearchInput/SearchInput.d.mts +41 -0
  310. package/dist/SearchInput/SearchInput.d.mts.map +1 -0
  311. package/dist/SearchInput/SearchInput2.mjs +48 -0
  312. package/dist/SearchInput/SearchInput2.mjs.map +1 -0
  313. package/dist/SearchInput/index.d.mts +2 -0
  314. package/dist/Select/Select.d.mts +53 -0
  315. package/dist/Select/Select.d.mts.map +1 -0
  316. package/dist/Select/Select2.mjs +61 -0
  317. package/dist/Select/Select2.mjs.map +1 -0
  318. package/dist/Select/index.d.mts +2 -0
  319. package/dist/SkipLink/SkipLink.d.mts +37 -0
  320. package/dist/SkipLink/SkipLink.d.mts.map +1 -0
  321. package/dist/SkipLink/SkipLink2.mjs +33 -0
  322. package/dist/SkipLink/SkipLink2.mjs.map +1 -0
  323. package/dist/SkipLink/index.d.mts +2 -0
  324. package/dist/Spinner/Spinner.d.mts +45 -0
  325. package/dist/Spinner/Spinner.d.mts.map +1 -0
  326. package/dist/Spinner/Spinner2.mjs +58 -0
  327. package/dist/Spinner/Spinner2.mjs.map +1 -0
  328. package/dist/Spinner/index.d.mts +2 -0
  329. package/dist/Stack/Stack.d.mts +37 -0
  330. package/dist/Stack/Stack.d.mts.map +1 -0
  331. package/dist/Stack/Stack2.mjs +38 -0
  332. package/dist/Stack/Stack2.mjs.map +1 -0
  333. package/dist/Stack/index.d.mts +2 -0
  334. package/dist/StatusBadge/StatusBadge.d.mts +52 -0
  335. package/dist/StatusBadge/StatusBadge.d.mts.map +1 -0
  336. package/dist/StatusBadge/StatusBadge2.mjs +49 -0
  337. package/dist/StatusBadge/StatusBadge2.mjs.map +1 -0
  338. package/dist/StatusBadge/index.d.mts +2 -0
  339. package/dist/SummaryList/SummaryList.d.mts +51 -0
  340. package/dist/SummaryList/SummaryList.d.mts.map +1 -0
  341. package/dist/SummaryList/SummaryList2.mjs +66 -0
  342. package/dist/SummaryList/SummaryList2.mjs.map +1 -0
  343. package/dist/SummaryList/index.d.mts +2 -0
  344. package/dist/Table/Table.d.mts +63 -0
  345. package/dist/Table/Table.d.mts.map +1 -0
  346. package/dist/Table/Table2.mjs +54 -0
  347. package/dist/Table/Table2.mjs.map +1 -0
  348. package/dist/Table/index.d.mts +2 -0
  349. package/dist/TableOfContents/TableOfContents.d.mts +64 -0
  350. package/dist/TableOfContents/TableOfContents.d.mts.map +1 -0
  351. package/dist/TableOfContents/TableOfContents2.mjs +51 -0
  352. package/dist/TableOfContents/TableOfContents2.mjs.map +1 -0
  353. package/dist/TableOfContents/index.d.mts +2 -0
  354. package/dist/TelephoneInput/TelephoneInput.d.mts +40 -0
  355. package/dist/TelephoneInput/TelephoneInput.d.mts.map +1 -0
  356. package/dist/TelephoneInput/TelephoneInput.mjs +39 -0
  357. package/dist/TelephoneInput/TelephoneInput.mjs.map +1 -0
  358. package/dist/TelephoneInput/index.d.mts +2 -0
  359. package/dist/TextArea/TextArea.d.mts +46 -0
  360. package/dist/TextArea/TextArea.d.mts.map +1 -0
  361. package/dist/TextArea/TextArea2.mjs +43 -0
  362. package/dist/TextArea/TextArea2.mjs.map +1 -0
  363. package/dist/TextArea/index.d.mts +2 -0
  364. package/dist/TextInput/TextInput.d.mts +46 -0
  365. package/dist/TextInput/TextInput.d.mts.map +1 -0
  366. package/dist/TextInput/TextInput2.mjs +43 -0
  367. package/dist/TextInput/TextInput2.mjs.map +1 -0
  368. package/dist/TextInput/index.d.mts +2 -0
  369. package/dist/TimeInput/TimeInput.d.mts +38 -0
  370. package/dist/TimeInput/TimeInput.d.mts.map +1 -0
  371. package/dist/TimeInput/TimeInput2.mjs +69 -0
  372. package/dist/TimeInput/TimeInput2.mjs.map +1 -0
  373. package/dist/TimeInput/index.d.mts +2 -0
  374. package/dist/UnorderedList/UnorderedList.d.mts +28 -0
  375. package/dist/UnorderedList/UnorderedList.d.mts.map +1 -0
  376. package/dist/UnorderedList/UnorderedList2.mjs +31 -0
  377. package/dist/UnorderedList/UnorderedList2.mjs.map +1 -0
  378. package/dist/UnorderedList/index.d.mts +2 -0
  379. package/dist/index.css +3470 -3470
  380. package/dist/index.d.mts +150 -3874
  381. package/dist/index.mjs +76 -5006
  382. package/dist/utils/describeControl.mjs +25 -0
  383. package/dist/utils/describeControl.mjs.map +1 -0
  384. package/package.json +4 -3
  385. package/dist/index.d.mts.map +0 -1
  386. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,192 @@
1
+ import React from "react";
2
+ //#region src/PageHeader/PageHeader.d.ts
3
+ type PageHeaderSticky = 'none' | 'sticky' | 'auto-hide';
4
+ type PageHeaderLayout = 'default' | 'compact';
5
+ type PageHeaderColorScheme = 'default' | 'inverse';
6
+ interface PageHeaderProps extends Omit<React.HTMLAttributes<HTMLElement>, 'children'> {
7
+ /**
8
+ * Logo-inhoud — `<svg>`, `<img>`, of een `<a>` die een logo omhult.
9
+ * De CSS past automatisch `max-block-size` toe op de directe child.
10
+ */
11
+ logoSlot: React.ReactNode;
12
+ /**
13
+ * Scrollgedrag van de header.
14
+ * - `none` (standaard): header scrollt mee met de pagina
15
+ * - `sticky`: header blijft bovenaan de viewport vastgeplakt
16
+ * - `auto-hide`: sticky + verbergt bij scroll-down, toont bij scroll-up
17
+ * @default 'none'
18
+ */
19
+ sticky?: PageHeaderSticky;
20
+ /**
21
+ * Lay-out van de header op large viewport (≥ 64em).
22
+ * - `default`: twee horizontale banden — Masthead (logo + servicemenu + zoekveld)
23
+ * en Navigatiebalk (primaire navigatie op accent-1 achtergrond)
24
+ * - `compact`: één enkele rij — logo (inline-start), primaire navigatie (gecentreerd),
25
+ * servicemenu + zoekknop (inline-end). Geeft `primaryNavigationLarge` voorrang
26
+ * boven `primaryNavigation` (en idem voor secondary) zodat de Drawer altijd
27
+ * de verticale variant ontvangt.
28
+ * @default 'default'
29
+ */
30
+ layout?: PageHeaderLayout;
31
+ /**
32
+ * Kleurschema van de header.
33
+ * - `default`: neutrale achtergrond met accent-1 navbar
34
+ * - `inverse`: sterke accent-1-inverse achtergrond op navbar en compact balk
35
+ * voor prominente branding. Het masthead blijft altijd neutraal.
36
+ * Logo-kleuren passen zich automatisch aan via CSS context overrides.
37
+ * @default 'default'
38
+ */
39
+ colorScheme?: PageHeaderColorScheme;
40
+ /**
41
+ * Initiële open-staat van het zoekpaneel (small viewport).
42
+ * Handig voor Storybook en tests — het paneel kan daarna nog steeds
43
+ * worden geopend/gesloten via de knop.
44
+ * @default false
45
+ */
46
+ initialSearchOpen?: boolean;
47
+ /**
48
+ * Primaire navigatie-inhoud in de Drawer (small viewport) — doorgaans een verticale `<Menu>` met
49
+ * `<MenuLink>`-items inclusief uitklapmogelijkheden voor sub-niveaus.
50
+ */
51
+ primaryNavigation?: React.ReactNode;
52
+ /**
53
+ * Primaire navigatie-inhoud in de Navigatiebalk (large viewport) — doorgaans een horizontale
54
+ * `<Menu>` met alleen Level 1 `<MenuLink>`-items. Als niet meegegeven valt de component
55
+ * terug op `primaryNavigation`.
56
+ */
57
+ primaryNavigationLarge?: React.ReactNode;
58
+ /**
59
+ * Servicemenu-inhoud in de Drawer (small viewport) — doorgaans een verticale `<Menu>`.
60
+ */
61
+ secondaryNavigation?: React.ReactNode;
62
+ /**
63
+ * Servicemenu-inhoud in de Masthead (large viewport) — doorgaans een horizontale `<Menu>`.
64
+ * Als niet meegegeven valt de component terug op `secondaryNavigation`.
65
+ */
66
+ secondaryNavigationLarge?: React.ReactNode;
67
+ /**
68
+ * Inline zoekveld voor de Masthead op large viewport (SearchInput + zoekknop).
69
+ * Optioneel — toont geen zoekveld als weggelaten.
70
+ */
71
+ searchSlot?: React.ReactNode;
72
+ /**
73
+ * Visuele badge-indicator bij de menuknop (small viewport), doorgaans een `<DotBadge>`.
74
+ * Gebruik dit om ongelezen meldingen te signaleren. De badge is altijd `aria-hidden` —
75
+ * geef de toegankelijke tekst mee via `menuButtonBadgeLabel`.
76
+ */
77
+ menuButtonBadge?: React.ReactNode;
78
+ /**
79
+ * Toegankelijke tekst die wordt toegevoegd aan het label van de menuknop als er een badge
80
+ * aanwezig is, bijvoorbeeld `"2 nieuwe berichten"`. Wordt visueel verborgen getoond zodat
81
+ * screenreadergebruikers de melding horen: "Menu, 2 nieuwe berichten".
82
+ * Vereist als `menuButtonBadge` is meegegeven.
83
+ */
84
+ menuButtonBadgeLabel?: string;
85
+ /**
86
+ * Callback wanneer de navigatielade opent.
87
+ */
88
+ onMenuOpen?: () => void;
89
+ /**
90
+ * Callback wanneer de navigatielade sluit.
91
+ */
92
+ onMenuClose?: () => void;
93
+ /**
94
+ * Callback wanneer het zoekpaneel opent.
95
+ */
96
+ onSearchOpen?: () => void;
97
+ /**
98
+ * Callback wanneer het zoekpaneel sluit.
99
+ */
100
+ onSearchClose?: () => void;
101
+ /**
102
+ * Label van de menuknop en de Drawer-heading.
103
+ * @default 'Menu'
104
+ */
105
+ menuButtonLabel?: string;
106
+ /**
107
+ * Label van de zoekknop wanneer het zoekpaneel gesloten is.
108
+ * @default 'Zoeken'
109
+ */
110
+ searchButtonLabel?: string;
111
+ /**
112
+ * Label van de zoekknop wanneer het zoekpaneel open is.
113
+ * @default 'Sluiten'
114
+ */
115
+ closeButtonLabel?: string;
116
+ /**
117
+ * Placeholder van het zoekveld in het zoekpaneel (small viewport en compact layout).
118
+ * @default 'Zoeken…'
119
+ */
120
+ searchInputPlaceholder?: string;
121
+ /**
122
+ * `aria-label` van het zoekveld in het zoekpaneel.
123
+ * @default 'Zoekopdracht'
124
+ */
125
+ searchInputAriaLabel?: string;
126
+ /**
127
+ * Label van de zoek-submitknop in het zoekpaneel.
128
+ * @default 'Zoeken'
129
+ */
130
+ searchSubmitLabel?: string;
131
+ /**
132
+ * `aria-label` van de primaire navigatie-`<nav>` (large viewport) en
133
+ * visueel verborgen heading in de Drawer.
134
+ * @default 'Hoofd-navigatie'
135
+ */
136
+ primaryNavAriaLabel?: string;
137
+ /**
138
+ * `aria-label` van het servicemenu-`<nav>` (large viewport) en
139
+ * visueel verborgen heading in de Drawer.
140
+ * @default 'Service-navigatie'
141
+ */
142
+ secondaryNavAriaLabel?: string;
143
+ /**
144
+ * Verbergt de menuknop in de small viewport layout.
145
+ * Gebruik dit wanneer er geen navigatie aanwezig is (bijv. formulierpagina's).
146
+ * @default false
147
+ */
148
+ hideMenuButton?: boolean;
149
+ /**
150
+ * Verbergt de zoekknop in zowel de small viewport als compact layout.
151
+ * Gebruik dit wanneer zoeken niet relevant is (bijv. formulierpagina's).
152
+ * @default false
153
+ */
154
+ hideSearchButton?: boolean;
155
+ className?: string;
156
+ }
157
+ /**
158
+ * PageHeader component
159
+ * Primaire navigatieheader voor een pagina. Mobile-first implementatie.
160
+ *
161
+ * Op mobile toont de header drie elementen:
162
+ * - Menuknop (inline-start) — opent een `Drawer` met primaire en service-navigatie
163
+ * - Logo (gecentreerd, onafhankelijk van knopbreedte via CSS-grid 1fr auto 1fr)
164
+ * - Zoekknop (inline-end) — opent een zoekpaneel direct onder de header
165
+ *
166
+ * @example
167
+ * ```tsx
168
+ * <PageHeader
169
+ * logoSlot={
170
+ * <a href="/">
171
+ * <Logo aria-hidden={true} />
172
+ * <span className="dsn-visually-hidden">Starter Kit — terug naar homepage</span>
173
+ * </a>
174
+ * }
175
+ * primaryNavigation={
176
+ * <Menu orientation="vertical">
177
+ * <MenuLink href="/home" level={1}>Home</MenuLink>
178
+ * <MenuLink href="/over" level={1}>Over ons</MenuLink>
179
+ * </Menu>
180
+ * }
181
+ * secondaryNavigation={
182
+ * <Menu orientation="vertical">
183
+ * <MenuLink href="/contact" level={1}>Contact</MenuLink>
184
+ * </Menu>
185
+ * }
186
+ * />
187
+ * ```
188
+ */
189
+ declare const PageHeader: React.ForwardRefExoticComponent<PageHeaderProps & React.RefAttributes<HTMLElement>>;
190
+ //#endregion
191
+ export { PageHeader, PageHeaderColorScheme, PageHeaderLayout, PageHeaderProps, PageHeaderSticky };
192
+ //# sourceMappingURL=PageHeader.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageHeader.d.mts","names":[],"sources":["../../src/PageHeader/PageHeader.tsx"],"mappings":";;KASY;KACA;KACA;UAEK,wBAAwB,KACvC,MAAM,eAAe;;;;;EAOrB,UAAU,MAAM;;;;;;;;EAShB,SAAS;;;;;;;;;;;EAYT,SAAS;;;;;;;;;EAUT,cAAc;;;;;;;EAQd;;;;;EAMA,oBAAoB,MAAM;;;;;;EAO1B,yBAAyB,MAAM;;;;EAK/B,sBAAsB,MAAM;;;;;EAM5B,2BAA2B,MAAM;;;;;EAMjC,aAAa,MAAM;;;;;;EAOnB,kBAAkB,MAAM;;;;;;;EAQxB;;;;EAKA;;;;EAKA;;;;EAKA;;;;EAKA;;;;;EAQA;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;;EAMA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;;;;;;EAOA;EAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAmCW,YAAU,MAAA,0BAAA,kBAAA,MAAA,cAAA"}
@@ -0,0 +1,275 @@
1
+ import { Stack } from "../Stack/Stack2.mjs";
2
+ import { Icon } from "../Icon/Icon2.mjs";
3
+ import { Button } from "../Button/Button2.mjs";
4
+ import { SearchInput } from "../SearchInput/SearchInput2.mjs";
5
+ import { Drawer, DrawerBody, DrawerHeader, DrawerHeading } from "../Drawer/Drawer2.mjs";
6
+ /* empty css */
7
+ import React from "react";
8
+ import { classNames } from "@dsn-starter-kit/core";
9
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
+ //#region src/PageHeader/PageHeader.tsx
11
+ /**
12
+ * PageHeader component
13
+ * Primaire navigatieheader voor een pagina. Mobile-first implementatie.
14
+ *
15
+ * Op mobile toont de header drie elementen:
16
+ * - Menuknop (inline-start) — opent een `Drawer` met primaire en service-navigatie
17
+ * - Logo (gecentreerd, onafhankelijk van knopbreedte via CSS-grid 1fr auto 1fr)
18
+ * - Zoekknop (inline-end) — opent een zoekpaneel direct onder de header
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * <PageHeader
23
+ * logoSlot={
24
+ * <a href="/">
25
+ * <Logo aria-hidden={true} />
26
+ * <span className="dsn-visually-hidden">Starter Kit — terug naar homepage</span>
27
+ * </a>
28
+ * }
29
+ * primaryNavigation={
30
+ * <Menu orientation="vertical">
31
+ * <MenuLink href="/home" level={1}>Home</MenuLink>
32
+ * <MenuLink href="/over" level={1}>Over ons</MenuLink>
33
+ * </Menu>
34
+ * }
35
+ * secondaryNavigation={
36
+ * <Menu orientation="vertical">
37
+ * <MenuLink href="/contact" level={1}>Contact</MenuLink>
38
+ * </Menu>
39
+ * }
40
+ * />
41
+ * ```
42
+ */
43
+ const PageHeader = React.forwardRef(({ className, logoSlot, sticky = "none", layout = "default", colorScheme = "default", initialSearchOpen = false, primaryNavigation, primaryNavigationLarge, secondaryNavigation, secondaryNavigationLarge, searchSlot, menuButtonBadge, menuButtonBadgeLabel, onMenuOpen, onMenuClose, onSearchOpen, onSearchClose, menuButtonLabel = "Menu", searchButtonLabel = "Zoeken", closeButtonLabel = "Sluiten", searchInputPlaceholder = "Zoeken…", searchInputAriaLabel = "Zoekopdracht", searchSubmitLabel = "Zoeken", primaryNavAriaLabel = "Hoofd-navigatie", secondaryNavAriaLabel = "Service-navigatie", hideMenuButton = false, hideSearchButton = false, ...props }, ref) => {
44
+ const [isMenuOpen, setIsMenuOpen] = React.useState(false);
45
+ const [isSearchOpen, setIsSearchOpen] = React.useState(initialSearchOpen);
46
+ const headerRef = React.useRef(null);
47
+ const combinedRef = ref ?? headerRef;
48
+ const menuButtonRef = React.useRef(null);
49
+ const searchButtonRef = React.useRef(null);
50
+ const searchInputRef = React.useRef(null);
51
+ const compactSearchButtonRef = React.useRef(null);
52
+ const compactSearchInputRef = React.useRef(null);
53
+ const searchPanelId = React.useId();
54
+ const compactSearchPanelId = React.useId();
55
+ React.useEffect(() => {
56
+ if (sticky !== "auto-hide") return;
57
+ let lastScrollY = window.scrollY;
58
+ const handleScroll = () => {
59
+ const currentScrollY = window.scrollY;
60
+ const isScrollingDown = currentScrollY > lastScrollY && currentScrollY > 100;
61
+ combinedRef.current?.setAttribute("data-hidden", String(isScrollingDown));
62
+ lastScrollY = currentScrollY;
63
+ };
64
+ window.addEventListener("scroll", handleScroll, { passive: true });
65
+ return () => window.removeEventListener("scroll", handleScroll);
66
+ }, [sticky, combinedRef]);
67
+ React.useEffect(() => {
68
+ if (sticky === "none") return;
69
+ const updateScrolled = () => {
70
+ combinedRef.current?.setAttribute("data-scrolled", String(window.scrollY > 0));
71
+ };
72
+ updateScrolled();
73
+ window.addEventListener("scroll", updateScrolled, { passive: true });
74
+ return () => window.removeEventListener("scroll", updateScrolled);
75
+ }, [sticky, combinedRef]);
76
+ React.useEffect(() => {
77
+ if (isSearchOpen) {
78
+ searchInputRef.current?.focus();
79
+ compactSearchInputRef.current?.focus();
80
+ }
81
+ }, [isSearchOpen]);
82
+ const handleMenuOpen = () => {
83
+ setIsMenuOpen(true);
84
+ onMenuOpen?.();
85
+ };
86
+ const handleMenuClose = () => {
87
+ setIsMenuOpen(false);
88
+ onMenuClose?.();
89
+ menuButtonRef.current?.focus();
90
+ };
91
+ const handleSearchToggle = () => {
92
+ const opening = !isSearchOpen;
93
+ setIsSearchOpen(opening);
94
+ if (opening) onSearchOpen?.();
95
+ else {
96
+ onSearchClose?.();
97
+ searchButtonRef.current?.focus();
98
+ compactSearchButtonRef.current?.focus();
99
+ }
100
+ };
101
+ const classes = classNames("dsn-page-header", sticky === "sticky" && "dsn-page-header--sticky", sticky === "auto-hide" && "dsn-page-header--auto-hide", layout === "compact" && "dsn-page-header--compact", colorScheme === "inverse" && "dsn-page-header--inverse", className);
102
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("header", {
103
+ ref: combinedRef,
104
+ className: classes,
105
+ ...sticky === "auto-hide" ? { "data-hidden": "false" } : {},
106
+ ...props,
107
+ children: [
108
+ /* @__PURE__ */ jsxs("div", {
109
+ className: "dsn-page-header__small-layout",
110
+ children: [/* @__PURE__ */ jsxs("div", {
111
+ className: "dsn-page-header__inner",
112
+ children: [
113
+ /* @__PURE__ */ jsx("div", {
114
+ className: "dsn-page-header__start",
115
+ children: !hideMenuButton && /* @__PURE__ */ jsxs(Button, {
116
+ ref: menuButtonRef,
117
+ variant: "subtle",
118
+ onClick: handleMenuOpen,
119
+ iconStart: /* @__PURE__ */ jsx(Icon, {
120
+ name: "menu",
121
+ "aria-hidden": true
122
+ }),
123
+ children: [
124
+ menuButtonLabel,
125
+ menuButtonBadgeLabel && /* @__PURE__ */ jsxs("span", {
126
+ className: "dsn-visually-hidden",
127
+ children: [", ", menuButtonBadgeLabel]
128
+ }),
129
+ menuButtonBadge
130
+ ]
131
+ })
132
+ }),
133
+ /* @__PURE__ */ jsx("div", {
134
+ className: "dsn-page-header__logo",
135
+ children: logoSlot
136
+ }),
137
+ /* @__PURE__ */ jsx("div", {
138
+ className: "dsn-page-header__end",
139
+ children: !hideSearchButton && /* @__PURE__ */ jsx(Button, {
140
+ ref: searchButtonRef,
141
+ variant: "subtle",
142
+ "aria-expanded": isSearchOpen,
143
+ "aria-controls": searchPanelId,
144
+ onClick: handleSearchToggle,
145
+ iconStart: /* @__PURE__ */ jsx(Icon, {
146
+ name: isSearchOpen ? "x" : "search",
147
+ "aria-hidden": true
148
+ }),
149
+ children: isSearchOpen ? closeButtonLabel : searchButtonLabel
150
+ })
151
+ })
152
+ ]
153
+ }), /* @__PURE__ */ jsx("div", {
154
+ id: searchPanelId,
155
+ className: "dsn-page-header__search-panel",
156
+ hidden: !isSearchOpen,
157
+ children: /* @__PURE__ */ jsxs("div", {
158
+ className: "dsn-page-header__search-inner",
159
+ children: [/* @__PURE__ */ jsx(SearchInput, {
160
+ ref: searchInputRef,
161
+ placeholder: searchInputPlaceholder,
162
+ "aria-label": searchInputAriaLabel
163
+ }), /* @__PURE__ */ jsx(Button, {
164
+ variant: "strong",
165
+ children: searchSubmitLabel
166
+ })]
167
+ })
168
+ })]
169
+ }),
170
+ layout === "default" && /* @__PURE__ */ jsxs("div", {
171
+ className: "dsn-page-header__large-layout",
172
+ children: [/* @__PURE__ */ jsx("div", {
173
+ className: "dsn-page-header__masthead",
174
+ children: /* @__PURE__ */ jsxs("div", {
175
+ className: "dsn-page-header__masthead-inner",
176
+ children: [/* @__PURE__ */ jsx("div", {
177
+ className: "dsn-page-header__logo",
178
+ children: logoSlot
179
+ }), /* @__PURE__ */ jsxs("div", {
180
+ className: "dsn-page-header__secondary-nav",
181
+ children: [(secondaryNavigationLarge ?? secondaryNavigation) && /* @__PURE__ */ jsx("nav", {
182
+ "aria-label": secondaryNavAriaLabel,
183
+ children: secondaryNavigationLarge ?? secondaryNavigation
184
+ }), searchSlot && /* @__PURE__ */ jsx("div", {
185
+ className: "dsn-page-header__searchbox",
186
+ children: searchSlot
187
+ })]
188
+ })]
189
+ })
190
+ }), /* @__PURE__ */ jsx("div", {
191
+ className: "dsn-page-header__navbar",
192
+ children: /* @__PURE__ */ jsx("div", {
193
+ className: "dsn-page-header__navbar-inner",
194
+ children: (primaryNavigationLarge ?? primaryNavigation) && /* @__PURE__ */ jsx("nav", {
195
+ "aria-label": primaryNavAriaLabel,
196
+ children: primaryNavigationLarge ?? primaryNavigation
197
+ })
198
+ })
199
+ })]
200
+ }),
201
+ layout === "compact" && /* @__PURE__ */ jsxs("div", {
202
+ className: "dsn-page-header__compact-layout",
203
+ children: [/* @__PURE__ */ jsxs("div", {
204
+ className: "dsn-page-header__compact-inner",
205
+ children: [
206
+ /* @__PURE__ */ jsx("div", {
207
+ className: "dsn-page-header__logo",
208
+ children: logoSlot
209
+ }),
210
+ /* @__PURE__ */ jsx("div", {
211
+ className: "dsn-page-header__compact-primary-nav",
212
+ children: (primaryNavigationLarge ?? primaryNavigation) && /* @__PURE__ */ jsx("nav", {
213
+ "aria-label": primaryNavAriaLabel,
214
+ children: primaryNavigationLarge ?? primaryNavigation
215
+ })
216
+ }),
217
+ /* @__PURE__ */ jsxs("div", {
218
+ className: "dsn-page-header__compact-secondary",
219
+ children: [(secondaryNavigationLarge ?? secondaryNavigation) && /* @__PURE__ */ jsx("nav", {
220
+ "aria-label": secondaryNavAriaLabel,
221
+ children: secondaryNavigationLarge ?? secondaryNavigation
222
+ }), !hideSearchButton && /* @__PURE__ */ jsx(Button, {
223
+ ref: compactSearchButtonRef,
224
+ variant: "subtle",
225
+ iconOnly: true,
226
+ "aria-expanded": isSearchOpen,
227
+ "aria-controls": compactSearchPanelId,
228
+ onClick: handleSearchToggle,
229
+ iconStart: /* @__PURE__ */ jsx(Icon, {
230
+ name: isSearchOpen ? "x" : "search",
231
+ "aria-hidden": true
232
+ }),
233
+ children: isSearchOpen ? closeButtonLabel : searchButtonLabel
234
+ })]
235
+ })
236
+ ]
237
+ }), /* @__PURE__ */ jsx("div", {
238
+ id: compactSearchPanelId,
239
+ className: "dsn-page-header__search-panel",
240
+ hidden: !isSearchOpen,
241
+ children: /* @__PURE__ */ jsxs("div", {
242
+ className: "dsn-page-header__search-inner",
243
+ children: [/* @__PURE__ */ jsx(SearchInput, {
244
+ ref: compactSearchInputRef,
245
+ placeholder: searchInputPlaceholder,
246
+ "aria-label": searchInputAriaLabel
247
+ }), /* @__PURE__ */ jsx(Button, {
248
+ variant: "strong",
249
+ children: searchSubmitLabel
250
+ })]
251
+ })
252
+ })]
253
+ })
254
+ ]
255
+ }), /* @__PURE__ */ jsxs(Drawer, {
256
+ isOpen: isMenuOpen,
257
+ onClose: handleMenuClose,
258
+ side: "left",
259
+ children: [/* @__PURE__ */ jsx(DrawerHeader, { children: /* @__PURE__ */ jsx(DrawerHeading, { children: menuButtonLabel }) }), /* @__PURE__ */ jsx(DrawerBody, { children: /* @__PURE__ */ jsxs(Stack, {
260
+ space: "5xl",
261
+ children: [primaryNavigation && /* @__PURE__ */ jsx("nav", {
262
+ "aria-label": primaryNavAriaLabel,
263
+ children: primaryNavigation
264
+ }), secondaryNavigation && /* @__PURE__ */ jsx("nav", {
265
+ "aria-label": secondaryNavAriaLabel,
266
+ children: secondaryNavigation
267
+ })]
268
+ }) })]
269
+ })] });
270
+ });
271
+ PageHeader.displayName = "PageHeader";
272
+ //#endregion
273
+ export { PageHeader };
274
+
275
+ //# sourceMappingURL=PageHeader2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageHeader2.mjs","names":[],"sources":["../../src/PageHeader/PageHeader.tsx"],"sourcesContent":["import React from 'react';\nimport { classNames } from '@dsn-starter-kit/core';\nimport { Button } from '../Button';\nimport { Icon } from '../Icon';\nimport { SearchInput } from '../SearchInput';\nimport { Drawer, DrawerBody, DrawerHeader, DrawerHeading } from '../Drawer';\nimport { Stack } from '../Stack';\nimport './PageHeader.css';\n\nexport type PageHeaderSticky = 'none' | 'sticky' | 'auto-hide';\nexport type PageHeaderLayout = 'default' | 'compact';\nexport type PageHeaderColorScheme = 'default' | 'inverse';\n\nexport interface PageHeaderProps extends Omit<\n React.HTMLAttributes<HTMLElement>,\n 'children'\n> {\n /**\n * Logo-inhoud — `<svg>`, `<img>`, of een `<a>` die een logo omhult.\n * De CSS past automatisch `max-block-size` toe op de directe child.\n */\n logoSlot: React.ReactNode;\n\n /**\n * Scrollgedrag van de header.\n * - `none` (standaard): header scrollt mee met de pagina\n * - `sticky`: header blijft bovenaan de viewport vastgeplakt\n * - `auto-hide`: sticky + verbergt bij scroll-down, toont bij scroll-up\n * @default 'none'\n */\n sticky?: PageHeaderSticky;\n\n /**\n * Lay-out van de header op large viewport (≥ 64em).\n * - `default`: twee horizontale banden — Masthead (logo + servicemenu + zoekveld)\n * en Navigatiebalk (primaire navigatie op accent-1 achtergrond)\n * - `compact`: één enkele rij — logo (inline-start), primaire navigatie (gecentreerd),\n * servicemenu + zoekknop (inline-end). Geeft `primaryNavigationLarge` voorrang\n * boven `primaryNavigation` (en idem voor secondary) zodat de Drawer altijd\n * de verticale variant ontvangt.\n * @default 'default'\n */\n layout?: PageHeaderLayout;\n\n /**\n * Kleurschema van de header.\n * - `default`: neutrale achtergrond met accent-1 navbar\n * - `inverse`: sterke accent-1-inverse achtergrond op navbar en compact balk\n * voor prominente branding. Het masthead blijft altijd neutraal.\n * Logo-kleuren passen zich automatisch aan via CSS context overrides.\n * @default 'default'\n */\n colorScheme?: PageHeaderColorScheme;\n\n /**\n * Initiële open-staat van het zoekpaneel (small viewport).\n * Handig voor Storybook en tests — het paneel kan daarna nog steeds\n * worden geopend/gesloten via de knop.\n * @default false\n */\n initialSearchOpen?: boolean;\n\n /**\n * Primaire navigatie-inhoud in de Drawer (small viewport) — doorgaans een verticale `<Menu>` met\n * `<MenuLink>`-items inclusief uitklapmogelijkheden voor sub-niveaus.\n */\n primaryNavigation?: React.ReactNode;\n\n /**\n * Primaire navigatie-inhoud in de Navigatiebalk (large viewport) — doorgaans een horizontale\n * `<Menu>` met alleen Level 1 `<MenuLink>`-items. Als niet meegegeven valt de component\n * terug op `primaryNavigation`.\n */\n primaryNavigationLarge?: React.ReactNode;\n\n /**\n * Servicemenu-inhoud in de Drawer (small viewport) — doorgaans een verticale `<Menu>`.\n */\n secondaryNavigation?: React.ReactNode;\n\n /**\n * Servicemenu-inhoud in de Masthead (large viewport) — doorgaans een horizontale `<Menu>`.\n * Als niet meegegeven valt de component terug op `secondaryNavigation`.\n */\n secondaryNavigationLarge?: React.ReactNode;\n\n /**\n * Inline zoekveld voor de Masthead op large viewport (SearchInput + zoekknop).\n * Optioneel — toont geen zoekveld als weggelaten.\n */\n searchSlot?: React.ReactNode;\n\n /**\n * Visuele badge-indicator bij de menuknop (small viewport), doorgaans een `<DotBadge>`.\n * Gebruik dit om ongelezen meldingen te signaleren. De badge is altijd `aria-hidden` —\n * geef de toegankelijke tekst mee via `menuButtonBadgeLabel`.\n */\n menuButtonBadge?: React.ReactNode;\n\n /**\n * Toegankelijke tekst die wordt toegevoegd aan het label van de menuknop als er een badge\n * aanwezig is, bijvoorbeeld `\"2 nieuwe berichten\"`. Wordt visueel verborgen getoond zodat\n * screenreadergebruikers de melding horen: \"Menu, 2 nieuwe berichten\".\n * Vereist als `menuButtonBadge` is meegegeven.\n */\n menuButtonBadgeLabel?: string;\n\n /**\n * Callback wanneer de navigatielade opent.\n */\n onMenuOpen?: () => void;\n\n /**\n * Callback wanneer de navigatielade sluit.\n */\n onMenuClose?: () => void;\n\n /**\n * Callback wanneer het zoekpaneel opent.\n */\n onSearchOpen?: () => void;\n\n /**\n * Callback wanneer het zoekpaneel sluit.\n */\n onSearchClose?: () => void;\n\n // ── i18n labels ────────────────────────────────────────────────────────────\n\n /**\n * Label van de menuknop en de Drawer-heading.\n * @default 'Menu'\n */\n menuButtonLabel?: string;\n\n /**\n * Label van de zoekknop wanneer het zoekpaneel gesloten is.\n * @default 'Zoeken'\n */\n searchButtonLabel?: string;\n\n /**\n * Label van de zoekknop wanneer het zoekpaneel open is.\n * @default 'Sluiten'\n */\n closeButtonLabel?: string;\n\n /**\n * Placeholder van het zoekveld in het zoekpaneel (small viewport en compact layout).\n * @default 'Zoeken…'\n */\n searchInputPlaceholder?: string;\n\n /**\n * `aria-label` van het zoekveld in het zoekpaneel.\n * @default 'Zoekopdracht'\n */\n searchInputAriaLabel?: string;\n\n /**\n * Label van de zoek-submitknop in het zoekpaneel.\n * @default 'Zoeken'\n */\n searchSubmitLabel?: string;\n\n /**\n * `aria-label` van de primaire navigatie-`<nav>` (large viewport) en\n * visueel verborgen heading in de Drawer.\n * @default 'Hoofd-navigatie'\n */\n primaryNavAriaLabel?: string;\n\n /**\n * `aria-label` van het servicemenu-`<nav>` (large viewport) en\n * visueel verborgen heading in de Drawer.\n * @default 'Service-navigatie'\n */\n secondaryNavAriaLabel?: string;\n\n /**\n * Verbergt de menuknop in de small viewport layout.\n * Gebruik dit wanneer er geen navigatie aanwezig is (bijv. formulierpagina's).\n * @default false\n */\n hideMenuButton?: boolean;\n\n /**\n * Verbergt de zoekknop in zowel de small viewport als compact layout.\n * Gebruik dit wanneer zoeken niet relevant is (bijv. formulierpagina's).\n * @default false\n */\n hideSearchButton?: boolean;\n\n className?: string;\n}\n\n/**\n * PageHeader component\n * Primaire navigatieheader voor een pagina. Mobile-first implementatie.\n *\n * Op mobile toont de header drie elementen:\n * - Menuknop (inline-start) — opent een `Drawer` met primaire en service-navigatie\n * - Logo (gecentreerd, onafhankelijk van knopbreedte via CSS-grid 1fr auto 1fr)\n * - Zoekknop (inline-end) — opent een zoekpaneel direct onder de header\n *\n * @example\n * ```tsx\n * <PageHeader\n * logoSlot={\n * <a href=\"/\">\n * <Logo aria-hidden={true} />\n * <span className=\"dsn-visually-hidden\">Starter Kit — terug naar homepage</span>\n * </a>\n * }\n * primaryNavigation={\n * <Menu orientation=\"vertical\">\n * <MenuLink href=\"/home\" level={1}>Home</MenuLink>\n * <MenuLink href=\"/over\" level={1}>Over ons</MenuLink>\n * </Menu>\n * }\n * secondaryNavigation={\n * <Menu orientation=\"vertical\">\n * <MenuLink href=\"/contact\" level={1}>Contact</MenuLink>\n * </Menu>\n * }\n * />\n * ```\n */\nexport const PageHeader = React.forwardRef<HTMLElement, PageHeaderProps>(\n (\n {\n className,\n logoSlot,\n sticky = 'none',\n layout = 'default',\n colorScheme = 'default',\n initialSearchOpen = false,\n primaryNavigation,\n primaryNavigationLarge,\n secondaryNavigation,\n secondaryNavigationLarge,\n searchSlot,\n menuButtonBadge,\n menuButtonBadgeLabel,\n onMenuOpen,\n onMenuClose,\n onSearchOpen,\n onSearchClose,\n menuButtonLabel = 'Menu',\n searchButtonLabel = 'Zoeken',\n closeButtonLabel = 'Sluiten',\n searchInputPlaceholder = 'Zoeken…',\n searchInputAriaLabel = 'Zoekopdracht',\n searchSubmitLabel = 'Zoeken',\n primaryNavAriaLabel = 'Hoofd-navigatie',\n secondaryNavAriaLabel = 'Service-navigatie',\n hideMenuButton = false,\n hideSearchButton = false,\n ...props\n },\n ref\n ) => {\n const [isMenuOpen, setIsMenuOpen] = React.useState(false);\n const [isSearchOpen, setIsSearchOpen] = React.useState(initialSearchOpen);\n\n const headerRef = React.useRef<HTMLElement>(null);\n const combinedRef = (ref as React.RefObject<HTMLElement>) ?? headerRef;\n\n const menuButtonRef = React.useRef<HTMLButtonElement>(null);\n const searchButtonRef = React.useRef<HTMLButtonElement>(null);\n const searchInputRef = React.useRef<HTMLInputElement>(null);\n const compactSearchButtonRef = React.useRef<HTMLButtonElement>(null);\n const compactSearchInputRef = React.useRef<HTMLInputElement>(null);\n\n const searchPanelId = React.useId();\n const compactSearchPanelId = React.useId();\n\n // Auto-hide: detecteer scrollrichting en toggle data-hidden attribuut\n React.useEffect(() => {\n if (sticky !== 'auto-hide') return;\n\n let lastScrollY = window.scrollY;\n\n const handleScroll = () => {\n const currentScrollY = window.scrollY;\n const isScrollingDown =\n currentScrollY > lastScrollY && currentScrollY > 100;\n combinedRef.current?.setAttribute(\n 'data-hidden',\n String(isScrollingDown)\n );\n lastScrollY = currentScrollY;\n };\n\n window.addEventListener('scroll', handleScroll, { passive: true });\n return () => window.removeEventListener('scroll', handleScroll);\n }, [sticky, combinedRef]);\n\n // Drop-shadow: zet data-scrolled op \"true\" zodra de pagina gescrolled is.\n // Werkt voor zowel sticky als auto-hide — ongeacht scrollrichting.\n React.useEffect(() => {\n if (sticky === 'none') return;\n\n const updateScrolled = () => {\n combinedRef.current?.setAttribute(\n 'data-scrolled',\n String(window.scrollY > 0)\n );\n };\n\n // Direct bij mount instellen (pagina kan al gescrolled zijn)\n updateScrolled();\n\n window.addEventListener('scroll', updateScrolled, { passive: true });\n return () => window.removeEventListener('scroll', updateScrolled);\n }, [sticky, combinedRef]);\n\n // Focus management: bij openen zoekpaneel → focus naar input (klein of compact)\n React.useEffect(() => {\n if (isSearchOpen) {\n searchInputRef.current?.focus();\n compactSearchInputRef.current?.focus();\n }\n }, [isSearchOpen]);\n\n const handleMenuOpen = () => {\n setIsMenuOpen(true);\n onMenuOpen?.();\n };\n\n const handleMenuClose = () => {\n setIsMenuOpen(false);\n onMenuClose?.();\n // Focus terug naar menuknop\n menuButtonRef.current?.focus();\n };\n\n const handleSearchToggle = () => {\n const opening = !isSearchOpen;\n setIsSearchOpen(opening);\n if (opening) {\n onSearchOpen?.();\n } else {\n onSearchClose?.();\n // Focus terug naar zoek/sluit-knop — afhankelijk van actieve layout\n searchButtonRef.current?.focus();\n compactSearchButtonRef.current?.focus();\n }\n };\n\n const classes = classNames(\n 'dsn-page-header',\n sticky === 'sticky' && 'dsn-page-header--sticky',\n sticky === 'auto-hide' && 'dsn-page-header--auto-hide',\n layout === 'compact' && 'dsn-page-header--compact',\n colorScheme === 'inverse' && 'dsn-page-header--inverse',\n className\n );\n\n return (\n <>\n <header\n ref={combinedRef}\n className={classes}\n {...(sticky === 'auto-hide' ? { 'data-hidden': 'false' } : {})}\n {...props}\n >\n {/* ----------------------------------------------------------------\n Small viewport layout (verborgen boven 64em via CSS display:none)\n ---------------------------------------------------------------- */}\n <div className=\"dsn-page-header__small-layout\">\n <div className=\"dsn-page-header__inner\">\n {/* Inline-start: menuknop */}\n <div className=\"dsn-page-header__start\">\n {!hideMenuButton && (\n <Button\n ref={menuButtonRef}\n variant=\"subtle\"\n onClick={handleMenuOpen}\n iconStart={<Icon name=\"menu\" aria-hidden />}\n >\n {menuButtonLabel}\n {menuButtonBadgeLabel && (\n <span className=\"dsn-visually-hidden\">\n , {menuButtonBadgeLabel}\n </span>\n )}\n {menuButtonBadge}\n </Button>\n )}\n </div>\n\n {/* Gecentreerd logo */}\n <div className=\"dsn-page-header__logo\">{logoSlot}</div>\n\n {/* Inline-end: zoekknop / sluitknop */}\n <div className=\"dsn-page-header__end\">\n {!hideSearchButton && (\n <Button\n ref={searchButtonRef}\n variant=\"subtle\"\n aria-expanded={isSearchOpen}\n aria-controls={searchPanelId}\n onClick={handleSearchToggle}\n iconStart={\n <Icon name={isSearchOpen ? 'x' : 'search'} aria-hidden />\n }\n >\n {isSearchOpen ? closeButtonLabel : searchButtonLabel}\n </Button>\n )}\n </div>\n </div>\n\n {/* Zoekpaneel */}\n <div\n id={searchPanelId}\n className=\"dsn-page-header__search-panel\"\n hidden={!isSearchOpen}\n >\n <div className=\"dsn-page-header__search-inner\">\n <SearchInput\n ref={searchInputRef}\n placeholder={searchInputPlaceholder}\n aria-label={searchInputAriaLabel}\n />\n <Button variant=\"strong\">{searchSubmitLabel}</Button>\n </div>\n </div>\n </div>\n\n {/* ----------------------------------------------------------------\n Large viewport layout (zichtbaar boven 64em, alleen bij layout=\"default\")\n ---------------------------------------------------------------- */}\n {layout === 'default' && (\n <div className=\"dsn-page-header__large-layout\">\n {/* Masthead: neutrale achtergrond — logo + servicemenu + zoek */}\n <div className=\"dsn-page-header__masthead\">\n <div className=\"dsn-page-header__masthead-inner\">\n <div className=\"dsn-page-header__logo\">{logoSlot}</div>\n\n <div className=\"dsn-page-header__secondary-nav\">\n {(secondaryNavigationLarge ?? secondaryNavigation) && (\n <nav aria-label={secondaryNavAriaLabel}>\n {secondaryNavigationLarge ?? secondaryNavigation}\n </nav>\n )}\n {searchSlot && (\n <div className=\"dsn-page-header__searchbox\">\n {searchSlot}\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Navigatiebalk: accent-1 achtergrond — primaire navigatie (large viewport) */}\n <div className=\"dsn-page-header__navbar\">\n <div className=\"dsn-page-header__navbar-inner\">\n {(primaryNavigationLarge ?? primaryNavigation) && (\n <nav aria-label={primaryNavAriaLabel}>\n {primaryNavigationLarge ?? primaryNavigation}\n </nav>\n )}\n </div>\n </div>\n </div>\n )}\n\n {/* ----------------------------------------------------------------\n Compact layout (zichtbaar boven 64em wanneer layout=\"compact\")\n Eén rij: logo (1fr) | primaire navigatie (auto) | servicemenu + zoek (1fr)\n ---------------------------------------------------------------- */}\n {layout === 'compact' && (\n <div className=\"dsn-page-header__compact-layout\">\n <div className=\"dsn-page-header__compact-inner\">\n {/* Logo — inline-start (eerste gridkolom) */}\n <div className=\"dsn-page-header__logo\">{logoSlot}</div>\n\n {/* Primaire navigatie — gecentreerd (middelste gridkolom)\n Gebruikt primaryNavigationLarge als aanwezig, anders primaryNavigation.\n Dit garandeert dat de Drawer altijd de verticale variant ontvangt. */}\n <div className=\"dsn-page-header__compact-primary-nav\">\n {(primaryNavigationLarge ?? primaryNavigation) && (\n <nav aria-label={primaryNavAriaLabel}>\n {primaryNavigationLarge ?? primaryNavigation}\n </nav>\n )}\n </div>\n\n {/* Servicemenu + zoekknop (icon-only) — inline-end (derde gridkolom) */}\n <div className=\"dsn-page-header__compact-secondary\">\n {(secondaryNavigationLarge ?? secondaryNavigation) && (\n <nav aria-label={secondaryNavAriaLabel}>\n {secondaryNavigationLarge ?? secondaryNavigation}\n </nav>\n )}\n {!hideSearchButton && (\n <Button\n ref={compactSearchButtonRef}\n variant=\"subtle\"\n iconOnly\n aria-expanded={isSearchOpen}\n aria-controls={compactSearchPanelId}\n onClick={handleSearchToggle}\n iconStart={\n <Icon\n name={isSearchOpen ? 'x' : 'search'}\n aria-hidden\n />\n }\n >\n {isSearchOpen ? closeButtonLabel : searchButtonLabel}\n </Button>\n )}\n </div>\n </div>\n\n {/* Zoekpaneel compact layout */}\n <div\n id={compactSearchPanelId}\n className=\"dsn-page-header__search-panel\"\n hidden={!isSearchOpen}\n >\n <div className=\"dsn-page-header__search-inner\">\n <SearchInput\n ref={compactSearchInputRef}\n placeholder={searchInputPlaceholder}\n aria-label={searchInputAriaLabel}\n />\n <Button variant=\"strong\">{searchSubmitLabel}</Button>\n </div>\n </div>\n </div>\n )}\n </header>\n\n {/* Navigatielade (sibling aan PageHeader, altijd in DOM) */}\n <Drawer isOpen={isMenuOpen} onClose={handleMenuClose} side=\"left\">\n <DrawerHeader>\n <DrawerHeading>{menuButtonLabel}</DrawerHeading>\n </DrawerHeader>\n <DrawerBody>\n <Stack space=\"5xl\">\n {primaryNavigation && (\n <nav aria-label={primaryNavAriaLabel}>{primaryNavigation}</nav>\n )}\n {secondaryNavigation && (\n <nav aria-label={secondaryNavAriaLabel}>\n {secondaryNavigation}\n </nav>\n )}\n </Stack>\n </DrawerBody>\n </Drawer>\n </>\n );\n }\n);\n\nPageHeader.displayName = 'PageHeader';\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { PageHeader, PageHeaderColorScheme, PageHeaderLayout, PageHeaderProps, PageHeaderSticky } from "./PageHeader.mjs";
2
+ export { PageHeader, PageHeaderColorScheme, PageHeaderLayout, PageHeaderProps, PageHeaderSticky };
@@ -0,0 +1,40 @@
1
+ import React from "react";
2
+ //#region src/PageLayout/PageLayout.d.ts
3
+ interface PageLayoutProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ /**
5
+ * Paginainhoud: doorgaans `PageHeader`, `PageBody` en `PageFooter`.
6
+ */
7
+ children: React.ReactNode;
8
+ /**
9
+ * Extra CSS-klassen
10
+ */
11
+ className?: string;
12
+ }
13
+ /**
14
+ * PageLayout component
15
+ * Structurele wrapper die `PageHeader`, `PageBody` en `PageFooter` verticaal
16
+ * stapelt via flexbox. Garandeert dat de pagina altijd de volledige viewport
17
+ * vult (`min-block-size: 100dvh`) en dat `PageFooter` altijd onderaan staat
18
+ * zodra `PageBody` `flex: 1` heeft.
19
+ *
20
+ * `PageLayout` is een neutrale `<div>` zonder semantische rol. De semantische
21
+ * landmarks komen van de children (`<header>`, `<main>`, `<footer>`).
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * <SkipLink href="#main-content" />
26
+ * <PageLayout>
27
+ * <PageHeader logoSlot={<Logo />} />
28
+ * <PageBody>
29
+ * <main id="main-content" tabIndex={-1}>
30
+ * <Container>...</Container>
31
+ * </main>
32
+ * </PageBody>
33
+ * <PageFooter slot1={<Logo />} />
34
+ * </PageLayout>
35
+ * ```
36
+ */
37
+ declare const PageLayout: React.ForwardRefExoticComponent<PageLayoutProps & React.RefAttributes<HTMLDivElement>>;
38
+ //#endregion
39
+ export { PageLayout, PageLayoutProps };
40
+ //# sourceMappingURL=PageLayout.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageLayout.d.mts","names":[],"sources":["../../src/PageLayout/PageLayout.tsx"],"mappings":";;UAIiB,wBAAwB,MAAM,eAAe;;;;EAI5D,UAAU,MAAM;;;;EAKhB;;;;;;;;;;;;;;;;;;;;;;;;;;cA2BW,YAAU,MAAA,0BAAA,kBAAA,MAAA,cAAA"}
@@ -0,0 +1,42 @@
1
+ /* empty css */
2
+ import React from "react";
3
+ import { classNames } from "@dsn-starter-kit/core";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/PageLayout/PageLayout.tsx
6
+ /**
7
+ * PageLayout component
8
+ * Structurele wrapper die `PageHeader`, `PageBody` en `PageFooter` verticaal
9
+ * stapelt via flexbox. Garandeert dat de pagina altijd de volledige viewport
10
+ * vult (`min-block-size: 100dvh`) en dat `PageFooter` altijd onderaan staat
11
+ * zodra `PageBody` `flex: 1` heeft.
12
+ *
13
+ * `PageLayout` is een neutrale `<div>` zonder semantische rol. De semantische
14
+ * landmarks komen van de children (`<header>`, `<main>`, `<footer>`).
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <SkipLink href="#main-content" />
19
+ * <PageLayout>
20
+ * <PageHeader logoSlot={<Logo />} />
21
+ * <PageBody>
22
+ * <main id="main-content" tabIndex={-1}>
23
+ * <Container>...</Container>
24
+ * </main>
25
+ * </PageBody>
26
+ * <PageFooter slot1={<Logo />} />
27
+ * </PageLayout>
28
+ * ```
29
+ */
30
+ const PageLayout = React.forwardRef(({ className, children, ...props }, ref) => {
31
+ return /* @__PURE__ */ jsx("div", {
32
+ ref,
33
+ className: classNames("dsn-page-layout", className),
34
+ ...props,
35
+ children
36
+ });
37
+ });
38
+ PageLayout.displayName = "PageLayout";
39
+ //#endregion
40
+ export { PageLayout };
41
+
42
+ //# sourceMappingURL=PageLayout2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageLayout2.mjs","names":[],"sources":["../../src/PageLayout/PageLayout.tsx"],"sourcesContent":["import React from 'react';\nimport { classNames } from '@dsn-starter-kit/core';\nimport './PageLayout.css';\n\nexport interface PageLayoutProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Paginainhoud: doorgaans `PageHeader`, `PageBody` en `PageFooter`.\n */\n children: React.ReactNode;\n\n /**\n * Extra CSS-klassen\n */\n className?: string;\n}\n\n/**\n * PageLayout component\n * Structurele wrapper die `PageHeader`, `PageBody` en `PageFooter` verticaal\n * stapelt via flexbox. Garandeert dat de pagina altijd de volledige viewport\n * vult (`min-block-size: 100dvh`) en dat `PageFooter` altijd onderaan staat\n * zodra `PageBody` `flex: 1` heeft.\n *\n * `PageLayout` is een neutrale `<div>` zonder semantische rol. De semantische\n * landmarks komen van de children (`<header>`, `<main>`, `<footer>`).\n *\n * @example\n * ```tsx\n * <SkipLink href=\"#main-content\" />\n * <PageLayout>\n * <PageHeader logoSlot={<Logo />} />\n * <PageBody>\n * <main id=\"main-content\" tabIndex={-1}>\n * <Container>...</Container>\n * </main>\n * </PageBody>\n * <PageFooter slot1={<Logo />} />\n * </PageLayout>\n * ```\n */\nexport const PageLayout = React.forwardRef<HTMLDivElement, PageLayoutProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={classNames('dsn-page-layout', className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nPageLayout.displayName = 'PageLayout';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,MAAa,aAAa,MAAM,YAC7B,EAAE,WAAW,UAAU,GAAG,SAAS,QAAQ;CAC1C,OACE,oBAAC,OAAD;EACO;EACL,WAAW,WAAW,mBAAmB,SAAS;EAClD,GAAI;EAEH;CACE,CAAA;AAET,CACF;AAEA,WAAW,cAAc"}
@@ -0,0 +1,2 @@
1
+ import { PageLayout, PageLayoutProps } from "./PageLayout.mjs";
2
+ export { PageLayout, PageLayoutProps };