@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,98 @@
1
+ import { Icon } from "../Icon/Icon2.mjs";
2
+ /* empty css */
3
+ import React from "react";
4
+ import { classNames } from "@dsn-starter-kit/core";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/MenuLink/MenuLink.tsx
7
+ /**
8
+ * MenuLink component
9
+ * Navigatielink met niveau-hiërarchie, actieve staat en uitklapbare subnavigatie.
10
+ * Semantisch een `<a>`, visueel consistent met MenuButton.
11
+ *
12
+ * Gebruik in een `<ul>`-element (het `<nav>`-element met lijst).
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * // Basisgebruik (level 1)
17
+ * <MenuLink href="/dashboard">Dashboard</MenuLink>
18
+ *
19
+ * // Actieve pagina
20
+ * <MenuLink href="/rapporten" current>Rapporten</MenuLink>
21
+ *
22
+ * // Level 2 (subpagina)
23
+ * <MenuLink href="/rapporten/maandelijks" level={2}>Maandelijks</MenuLink>
24
+ *
25
+ * // Met icoon en NumberBadge
26
+ * <MenuLink
27
+ * href="/inbox"
28
+ * iconStart={<Icon name="mail" aria-hidden />}
29
+ * numberBadge={<NumberBadge variant="negative">5</NumberBadge>}
30
+ * >
31
+ * Inbox
32
+ * </MenuLink>
33
+ *
34
+ * // Met uitklapknop
35
+ * <MenuLink
36
+ * href="/rapporten"
37
+ * subItems
38
+ * expanded={isExpanded}
39
+ * onExpandToggle={() => setIsExpanded(!isExpanded)}
40
+ * >
41
+ * Rapporten
42
+ * </MenuLink>
43
+ * ```
44
+ */
45
+ const MenuLink = React.forwardRef(({ href, level = 1, current = false, iconStart, iconEnd, numberBadge, subItems = false, expanded = false, onExpandToggle, className, children, ...props }, ref) => {
46
+ const liClasses = classNames("dsn-menu-link", level > 1 && `dsn-menu-link--level-${level}`, className);
47
+ const childrenText = typeof children === "string" ? children : void 0;
48
+ return /* @__PURE__ */ jsxs("li", {
49
+ className: liClasses,
50
+ children: [
51
+ /* @__PURE__ */ jsxs("a", {
52
+ ref,
53
+ className: "dsn-menu-link__link",
54
+ href,
55
+ "aria-current": current ? "page" : void 0,
56
+ ...props,
57
+ children: [
58
+ iconStart,
59
+ /* @__PURE__ */ jsx("span", {
60
+ className: "dsn-menu-link__label",
61
+ children
62
+ }),
63
+ numberBadge,
64
+ iconEnd
65
+ ]
66
+ }),
67
+ subItems && /* @__PURE__ */ jsx("span", {
68
+ className: "dsn-menu-link__divider",
69
+ "aria-hidden": "true"
70
+ }),
71
+ subItems && /* @__PURE__ */ jsxs("button", {
72
+ type: "button",
73
+ className: "dsn-button dsn-button--subtle dsn-button--size-small dsn-button--icon-only dsn-menu-link__expand-button",
74
+ "aria-expanded": expanded,
75
+ onClick: onExpandToggle,
76
+ children: [/* @__PURE__ */ jsx(Icon, {
77
+ name: "chevron-down",
78
+ "aria-hidden": true
79
+ }), /* @__PURE__ */ jsxs("span", {
80
+ className: "dsn-button__label",
81
+ children: [expanded ? "Inklappen" : "Uitklappen", childrenText && /* @__PURE__ */ jsxs("span", {
82
+ className: "dsn-visually-hidden",
83
+ children: [
84
+ " ",
85
+ "voor ",
86
+ childrenText
87
+ ]
88
+ })]
89
+ })]
90
+ })
91
+ ]
92
+ });
93
+ });
94
+ MenuLink.displayName = "MenuLink";
95
+ //#endregion
96
+ export { MenuLink };
97
+
98
+ //# sourceMappingURL=MenuLink2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuLink2.mjs","names":[],"sources":["../../src/MenuLink/MenuLink.tsx"],"sourcesContent":["import React from 'react';\nimport { classNames } from '@dsn-starter-kit/core';\nimport { Icon } from '../Icon';\nimport './MenuLink.css';\n\nexport type MenuLinkLevel = 1 | 2 | 3 | 4;\n\nexport interface MenuLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n /**\n * Navigatie-URL van de link\n */\n href?: string;\n\n /**\n * Hiërarchisch niveau — bepaalt de `padding-inline-start` inspringing\n * @default 1\n */\n level?: MenuLinkLevel;\n\n /**\n * Markeert de actieve/huidige pagina.\n * Voegt `aria-current=\"page\"` toe aan het `<a>`-element.\n * @default false\n */\n current?: boolean;\n\n /**\n * Icoon links van het label\n */\n iconStart?: React.ReactNode;\n\n /**\n * Icoon rechts van het label — gebruik hier bij voorkeur geen NumberBadge (zie `numberBadge`)\n */\n iconEnd?: React.ReactNode;\n\n /**\n * NumberBadge element rechts van het label (naast iconEnd)\n * Verwacht een `<NumberBadge>` component.\n */\n numberBadge?: React.ReactNode;\n\n /**\n * Toont een uitklapknop naast de link (voor subnavigatie).\n * @default false\n */\n subItems?: boolean;\n\n /**\n * Geeft aan of de subnavigatie momenteel uitgevouwen is.\n * Alleen relevant wanneer `subItems` true is.\n * @default false\n */\n expanded?: boolean;\n\n /**\n * Callback die aangeroepen wordt wanneer op de uitklapknop geklikt wordt.\n */\n onExpandToggle?: () => void;\n\n /**\n * Zichtbare linktekst — ook gebruikt voor de toegankelijke naam van de uitklapknop\n */\n children?: React.ReactNode;\n\n /**\n * Aanvullende CSS-klassen voor het `<li>`-element\n */\n className?: string;\n}\n\n/**\n * MenuLink component\n * Navigatielink met niveau-hiërarchie, actieve staat en uitklapbare subnavigatie.\n * Semantisch een `<a>`, visueel consistent met MenuButton.\n *\n * Gebruik in een `<ul>`-element (het `<nav>`-element met lijst).\n *\n * @example\n * ```tsx\n * // Basisgebruik (level 1)\n * <MenuLink href=\"/dashboard\">Dashboard</MenuLink>\n *\n * // Actieve pagina\n * <MenuLink href=\"/rapporten\" current>Rapporten</MenuLink>\n *\n * // Level 2 (subpagina)\n * <MenuLink href=\"/rapporten/maandelijks\" level={2}>Maandelijks</MenuLink>\n *\n * // Met icoon en NumberBadge\n * <MenuLink\n * href=\"/inbox\"\n * iconStart={<Icon name=\"mail\" aria-hidden />}\n * numberBadge={<NumberBadge variant=\"negative\">5</NumberBadge>}\n * >\n * Inbox\n * </MenuLink>\n *\n * // Met uitklapknop\n * <MenuLink\n * href=\"/rapporten\"\n * subItems\n * expanded={isExpanded}\n * onExpandToggle={() => setIsExpanded(!isExpanded)}\n * >\n * Rapporten\n * </MenuLink>\n * ```\n */\nexport const MenuLink = React.forwardRef<HTMLAnchorElement, MenuLinkProps>(\n (\n {\n href,\n level = 1,\n current = false,\n iconStart,\n iconEnd,\n numberBadge,\n subItems = false,\n expanded = false,\n onExpandToggle,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const liClasses = classNames(\n 'dsn-menu-link',\n level > 1 && `dsn-menu-link--level-${level}`,\n className\n );\n\n const childrenText = typeof children === 'string' ? children : undefined;\n\n return (\n <li className={liClasses}>\n <a\n ref={ref}\n className=\"dsn-menu-link__link\"\n href={href}\n aria-current={current ? 'page' : undefined}\n {...props}\n >\n {iconStart}\n <span className=\"dsn-menu-link__label\">{children}</span>\n {numberBadge}\n {iconEnd}\n </a>\n\n {subItems && (\n <span className=\"dsn-menu-link__divider\" aria-hidden=\"true\" />\n )}\n {subItems && (\n <button\n type=\"button\"\n className=\"dsn-button dsn-button--subtle dsn-button--size-small dsn-button--icon-only dsn-menu-link__expand-button\"\n aria-expanded={expanded}\n onClick={onExpandToggle}\n >\n <Icon name=\"chevron-down\" aria-hidden />\n <span className=\"dsn-button__label\">\n {expanded ? 'Inklappen' : 'Uitklappen'}\n {childrenText && (\n <span className=\"dsn-visually-hidden\">\n {' '}\n voor {childrenText}\n </span>\n )}\n </span>\n </button>\n )}\n </li>\n );\n }\n);\n\nMenuLink.displayName = 'MenuLink';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6GA,MAAa,WAAW,MAAM,YAE1B,EACE,MACA,QAAQ,GACR,UAAU,OACV,WACA,SACA,aACA,WAAW,OACX,WAAW,OACX,gBACA,WACA,UACA,GAAG,SAEL,QACG;CACH,MAAM,YAAY,WAChB,iBACA,QAAQ,KAAK,wBAAwB,SACrC,SACF;CAEA,MAAM,eAAe,OAAO,aAAa,WAAW,WAAW,KAAA;CAE/D,OACE,qBAAC,MAAD;EAAI,WAAW;EAAf,UAAA;GACE,qBAAC,KAAD;IACO;IACL,WAAU;IACJ;IACN,gBAAc,UAAU,SAAS,KAAA;IACjC,GAAI;IALN,UAAA;KAOG;KACD,oBAAC,QAAD;MAAM,WAAU;MAAwB;KAAe,CAAA;KACtD;KACA;IACA;;GAEF,YACC,oBAAC,QAAD;IAAM,WAAU;IAAyB,eAAY;GAAQ,CAAA;GAE9D,YACC,qBAAC,UAAD;IACE,MAAK;IACL,WAAU;IACV,iBAAe;IACf,SAAS;IAJX,UAAA,CAME,oBAAC,MAAD;KAAM,MAAK;KAAe,eAAA;IAAa,CAAA,GACvC,qBAAC,QAAD;KAAM,WAAU;KAAhB,UAAA,CACG,WAAW,cAAc,cACzB,gBACC,qBAAC,QAAD;MAAM,WAAU;MAAhB,UAAA;OACG;OAAI;OACC;MACF;KAEJ,CAAA,CAAA;IACA,CAAA,CAAA;;EAER;;AAER,CACF;AAEA,SAAS,cAAc"}
@@ -0,0 +1,2 @@
1
+ import { MenuLink, MenuLinkLevel, MenuLinkProps } from "./MenuLink.mjs";
2
+ export { MenuLink, MenuLinkLevel, MenuLinkProps };
@@ -0,0 +1,97 @@
1
+ import React from "react";
2
+ //#region src/ModalDialog/ModalDialog.d.ts
3
+ interface ModalDialogProps extends Omit<React.HTMLAttributes<HTMLDialogElement>, 'children'> {
4
+ /**
5
+ * Bepaalt of het dialoogvenster getoond wordt.
6
+ * Het dialoogvenster wordt via `.showModal()` geopend — nooit via `.show()`.
7
+ */
8
+ isOpen: boolean;
9
+ /**
10
+ * Callback die wordt aangeroepen wanneer het dialoogvenster sluit
11
+ * (sluitknop, Escape-toets of klik buiten het venster).
12
+ */
13
+ onClose?: () => void;
14
+ /**
15
+ * De subcomponenten van het dialoogvenster:
16
+ * `ModalDialogHeader`, `ModalDialogBody`, `ModalDialogFooter`
17
+ */
18
+ children?: React.ReactNode;
19
+ }
20
+ /**
21
+ * ModalDialog component
22
+ * Modaal dialoogvenster gebaseerd op het native `<dialog>` element.
23
+ *
24
+ * Gebruik altijd `.showModal()` (intern afgehandeld via `isOpen` prop) — nooit `.show()`.
25
+ * Dit garandeert natieve focus-trap, aria-modal semantiek en inert-attribuut op de achtergrond.
26
+ *
27
+ * @example
28
+ * ```tsx
29
+ * <ModalDialog isOpen={isOpen} onClose={() => setIsOpen(false)}>
30
+ * <ModalDialogHeader>
31
+ * <ModalDialogHeading>Bevestig verwijderen</ModalDialogHeading>
32
+ * </ModalDialogHeader>
33
+ * <ModalDialogBody>
34
+ * <Paragraph>Weet u zeker dat u dit item wilt verwijderen?</Paragraph>
35
+ * </ModalDialogBody>
36
+ * <ModalDialogFooter>
37
+ * <ActionGroup>
38
+ * <Button variant="negative" onClick={() => setIsOpen(false)}>Verwijderen</Button>
39
+ * <Button variant="default" onClick={() => setIsOpen(false)}>Annuleren</Button>
40
+ * </ActionGroup>
41
+ * </ModalDialogFooter>
42
+ * </ModalDialog>
43
+ * ```
44
+ */
45
+ declare const ModalDialog: React.ForwardRefExoticComponent<ModalDialogProps & React.RefAttributes<HTMLDialogElement>>;
46
+ interface ModalDialogHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
47
+ /**
48
+ * Inhoud van de header — doorgaans een `ModalDialogHeading`
49
+ */
50
+ children?: React.ReactNode;
51
+ }
52
+ /**
53
+ * ModalDialogHeader
54
+ * De headerstrook van het dialoogvenster met heading en sluitknop.
55
+ */
56
+ declare const ModalDialogHeader: React.ForwardRefExoticComponent<ModalDialogHeaderProps & React.RefAttributes<HTMLDivElement>>;
57
+ interface ModalDialogHeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {
58
+ /**
59
+ * Semantisch heading-niveau. Kies op basis van documenthiërarchie, niet visuele grootte.
60
+ * @default 2
61
+ */
62
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
63
+ /**
64
+ * De zichtbare heading-tekst
65
+ */
66
+ children?: React.ReactNode;
67
+ }
68
+ /**
69
+ * ModalDialogHeading
70
+ * De heading van het dialoogvenster. ID wordt automatisch gegenereerd voor aria-labelledby.
71
+ */
72
+ declare const ModalDialogHeading: React.ForwardRefExoticComponent<ModalDialogHeadingProps & React.RefAttributes<HTMLHeadingElement>>;
73
+ interface ModalDialogBodyProps extends React.HTMLAttributes<HTMLDivElement> {
74
+ /**
75
+ * De hoofdinhoud van het dialoogvenster
76
+ */
77
+ children?: React.ReactNode;
78
+ }
79
+ /**
80
+ * ModalDialogBody
81
+ * De scrollbare inhoudssectie van het dialoogvenster met scroll-affordance schaduw.
82
+ */
83
+ declare const ModalDialogBody: React.ForwardRefExoticComponent<ModalDialogBodyProps & React.RefAttributes<HTMLDivElement>>;
84
+ interface ModalDialogFooterProps extends React.HTMLAttributes<HTMLDivElement> {
85
+ /**
86
+ * De acties van het dialoogvenster — doorgaans een `ActionGroup` met knoppen
87
+ */
88
+ children?: React.ReactNode;
89
+ }
90
+ /**
91
+ * ModalDialogFooter
92
+ * De voettekst van het dialoogvenster met actieknoppen.
93
+ */
94
+ declare const ModalDialogFooter: React.ForwardRefExoticComponent<ModalDialogFooterProps & React.RefAttributes<HTMLDivElement>>;
95
+ //#endregion
96
+ export { ModalDialog, ModalDialogBody, ModalDialogBodyProps, ModalDialogFooter, ModalDialogFooterProps, ModalDialogHeader, ModalDialogHeaderProps, ModalDialogHeading, ModalDialogHeadingProps, ModalDialogProps };
97
+ //# sourceMappingURL=ModalDialog.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalDialog.d.mts","names":[],"sources":["../../src/ModalDialog/ModalDialog.tsx"],"mappings":";;UAuBiB,yBAAyB,KACxC,MAAM,eAAe;;;;;EAOrB;;;;;EAMA;;;;;EAMA,WAAW,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4BN,aAAW,MAAA,0BAAA,mBAAA,MAAA,cAAA;UA+CP,+BAA+B,MAAM,eAAe;;;;EAInE,WAAW,MAAM;;;;;;cAON,mBAAiB,MAAA,0BAAA,yBAAA,MAAA,cAAA;UAgCb,gCAAgC,MAAM,eAAe;;;;;EAKpE;;;;EAKA,WAAW,MAAM;;;;;;cAON,oBAAkB,MAAA,0BAAA,0BAAA,MAAA,cAAA;UAyBd,6BAA6B,MAAM,eAAe;;;;EAIjE,WAAW,MAAM;;;;;;cAON,iBAAe,MAAA,0BAAA,uBAAA,MAAA,cAAA;UAqBX,+BAA+B,MAAM,eAAe;;;;EAInE,WAAW,MAAM;;;;;;cAON,mBAAiB,MAAA,0BAAA,yBAAA,MAAA,cAAA"}
@@ -0,0 +1,134 @@
1
+ import { Icon } from "../Icon/Icon2.mjs";
2
+ import { Button } from "../Button/Button2.mjs";
3
+ /* empty css */
4
+ import React from "react";
5
+ import { classNames } from "@dsn-starter-kit/core";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ //#region src/ModalDialog/ModalDialog.tsx
8
+ const ModalDialogContext = React.createContext({ headingId: "" });
9
+ /**
10
+ * ModalDialog component
11
+ * Modaal dialoogvenster gebaseerd op het native `<dialog>` element.
12
+ *
13
+ * Gebruik altijd `.showModal()` (intern afgehandeld via `isOpen` prop) — nooit `.show()`.
14
+ * Dit garandeert natieve focus-trap, aria-modal semantiek en inert-attribuut op de achtergrond.
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <ModalDialog isOpen={isOpen} onClose={() => setIsOpen(false)}>
19
+ * <ModalDialogHeader>
20
+ * <ModalDialogHeading>Bevestig verwijderen</ModalDialogHeading>
21
+ * </ModalDialogHeader>
22
+ * <ModalDialogBody>
23
+ * <Paragraph>Weet u zeker dat u dit item wilt verwijderen?</Paragraph>
24
+ * </ModalDialogBody>
25
+ * <ModalDialogFooter>
26
+ * <ActionGroup>
27
+ * <Button variant="negative" onClick={() => setIsOpen(false)}>Verwijderen</Button>
28
+ * <Button variant="default" onClick={() => setIsOpen(false)}>Annuleren</Button>
29
+ * </ActionGroup>
30
+ * </ModalDialogFooter>
31
+ * </ModalDialog>
32
+ * ```
33
+ */
34
+ const ModalDialog = React.forwardRef(({ className, isOpen, onClose, children, ...props }, ref) => {
35
+ const internalRef = React.useRef(null);
36
+ const dialogRef = ref ?? internalRef;
37
+ const headingId = React.useId();
38
+ React.useEffect(() => {
39
+ const dialog = dialogRef.current;
40
+ if (!dialog) return;
41
+ if (isOpen && !dialog.open) dialog.showModal();
42
+ else if (!isOpen && dialog.open) dialog.close();
43
+ }, [isOpen, dialogRef]);
44
+ const handleCancel = (event) => {
45
+ event.preventDefault();
46
+ onClose?.();
47
+ };
48
+ const classes = classNames("dsn-modal-dialog", className);
49
+ return /* @__PURE__ */ jsx(ModalDialogContext.Provider, {
50
+ value: {
51
+ headingId,
52
+ onClose
53
+ },
54
+ children: /* @__PURE__ */ jsx("dialog", {
55
+ ref: dialogRef,
56
+ className: classes,
57
+ "aria-labelledby": headingId,
58
+ onCancel: handleCancel,
59
+ ...props,
60
+ children
61
+ })
62
+ });
63
+ });
64
+ ModalDialog.displayName = "ModalDialog";
65
+ /**
66
+ * ModalDialogHeader
67
+ * De headerstrook van het dialoogvenster met heading en sluitknop.
68
+ */
69
+ const ModalDialogHeader = React.forwardRef(({ className, children, ...props }, ref) => {
70
+ const { onClose } = React.useContext(ModalDialogContext);
71
+ return /* @__PURE__ */ jsxs("div", {
72
+ ref,
73
+ className: classNames("dsn-modal-dialog__header", className),
74
+ ...props,
75
+ children: [children, /* @__PURE__ */ jsx(Button, {
76
+ variant: "subtle",
77
+ size: "small",
78
+ iconOnly: true,
79
+ onClick: onClose,
80
+ iconStart: /* @__PURE__ */ jsx(Icon, {
81
+ name: "x",
82
+ "aria-hidden": true
83
+ }),
84
+ children: "Sluiten"
85
+ })]
86
+ });
87
+ });
88
+ ModalDialogHeader.displayName = "ModalDialogHeader";
89
+ /**
90
+ * ModalDialogHeading
91
+ * De heading van het dialoogvenster. ID wordt automatisch gegenereerd voor aria-labelledby.
92
+ */
93
+ const ModalDialogHeading = React.forwardRef(({ className, level = 2, children, ...props }, ref) => {
94
+ const { headingId } = React.useContext(ModalDialogContext);
95
+ const Tag = `h${level}`;
96
+ return /* @__PURE__ */ jsx(Tag, {
97
+ ref,
98
+ id: headingId,
99
+ className: classNames("dsn-modal-dialog-heading", className),
100
+ ...props,
101
+ children
102
+ });
103
+ });
104
+ ModalDialogHeading.displayName = "ModalDialogHeading";
105
+ /**
106
+ * ModalDialogBody
107
+ * De scrollbare inhoudssectie van het dialoogvenster met scroll-affordance schaduw.
108
+ */
109
+ const ModalDialogBody = React.forwardRef(({ className, children, ...props }, ref) => {
110
+ return /* @__PURE__ */ jsx("div", {
111
+ ref,
112
+ className: classNames("dsn-modal-dialog__body", className),
113
+ ...props,
114
+ children
115
+ });
116
+ });
117
+ ModalDialogBody.displayName = "ModalDialogBody";
118
+ /**
119
+ * ModalDialogFooter
120
+ * De voettekst van het dialoogvenster met actieknoppen.
121
+ */
122
+ const ModalDialogFooter = React.forwardRef(({ className, children, ...props }, ref) => {
123
+ return /* @__PURE__ */ jsx("div", {
124
+ ref,
125
+ className: classNames("dsn-modal-dialog__footer", className),
126
+ ...props,
127
+ children
128
+ });
129
+ });
130
+ ModalDialogFooter.displayName = "ModalDialogFooter";
131
+ //#endregion
132
+ export { ModalDialog, ModalDialogBody, ModalDialogFooter, ModalDialogHeader, ModalDialogHeading };
133
+
134
+ //# sourceMappingURL=ModalDialog2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalDialog2.mjs","names":[],"sources":["../../src/ModalDialog/ModalDialog.tsx"],"sourcesContent":["import React from 'react';\nimport { classNames } from '@dsn-starter-kit/core';\nimport { Button } from '../Button';\nimport { Icon } from '../Icon';\nimport './ModalDialog.css';\n\n// =============================================================================\n// Context\n// =============================================================================\n\ninterface ModalDialogContextValue {\n headingId: string;\n onClose?: () => void;\n}\n\nconst ModalDialogContext = React.createContext<ModalDialogContextValue>({\n headingId: '',\n});\n\n// =============================================================================\n// ModalDialog (root)\n// =============================================================================\n\nexport interface ModalDialogProps extends Omit<\n React.HTMLAttributes<HTMLDialogElement>,\n 'children'\n> {\n /**\n * Bepaalt of het dialoogvenster getoond wordt.\n * Het dialoogvenster wordt via `.showModal()` geopend — nooit via `.show()`.\n */\n isOpen: boolean;\n\n /**\n * Callback die wordt aangeroepen wanneer het dialoogvenster sluit\n * (sluitknop, Escape-toets of klik buiten het venster).\n */\n onClose?: () => void;\n\n /**\n * De subcomponenten van het dialoogvenster:\n * `ModalDialogHeader`, `ModalDialogBody`, `ModalDialogFooter`\n */\n children?: React.ReactNode;\n}\n\n/**\n * ModalDialog component\n * Modaal dialoogvenster gebaseerd op het native `<dialog>` element.\n *\n * Gebruik altijd `.showModal()` (intern afgehandeld via `isOpen` prop) — nooit `.show()`.\n * Dit garandeert natieve focus-trap, aria-modal semantiek en inert-attribuut op de achtergrond.\n *\n * @example\n * ```tsx\n * <ModalDialog isOpen={isOpen} onClose={() => setIsOpen(false)}>\n * <ModalDialogHeader>\n * <ModalDialogHeading>Bevestig verwijderen</ModalDialogHeading>\n * </ModalDialogHeader>\n * <ModalDialogBody>\n * <Paragraph>Weet u zeker dat u dit item wilt verwijderen?</Paragraph>\n * </ModalDialogBody>\n * <ModalDialogFooter>\n * <ActionGroup>\n * <Button variant=\"negative\" onClick={() => setIsOpen(false)}>Verwijderen</Button>\n * <Button variant=\"default\" onClick={() => setIsOpen(false)}>Annuleren</Button>\n * </ActionGroup>\n * </ModalDialogFooter>\n * </ModalDialog>\n * ```\n */\nexport const ModalDialog = React.forwardRef<\n HTMLDialogElement,\n ModalDialogProps\n>(({ className, isOpen, onClose, children, ...props }, ref) => {\n const internalRef = React.useRef<HTMLDialogElement>(null);\n const dialogRef = (ref as React.RefObject<HTMLDialogElement>) ?? internalRef;\n const headingId = React.useId();\n\n React.useEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n if (isOpen && !dialog.open) {\n dialog.showModal();\n } else if (!isOpen && dialog.open) {\n dialog.close();\n }\n }, [isOpen, dialogRef]);\n\n const handleCancel = (event: React.SyntheticEvent<HTMLDialogElement>) => {\n event.preventDefault();\n onClose?.();\n };\n\n const classes = classNames('dsn-modal-dialog', className);\n\n return (\n <ModalDialogContext.Provider value={{ headingId, onClose }}>\n <dialog\n ref={dialogRef}\n className={classes}\n aria-labelledby={headingId}\n onCancel={handleCancel}\n {...props}\n >\n {children}\n </dialog>\n </ModalDialogContext.Provider>\n );\n});\n\nModalDialog.displayName = 'ModalDialog';\n\n// =============================================================================\n// ModalDialogHeader\n// =============================================================================\n\nexport interface ModalDialogHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Inhoud van de header — doorgaans een `ModalDialogHeading`\n */\n children?: React.ReactNode;\n}\n\n/**\n * ModalDialogHeader\n * De headerstrook van het dialoogvenster met heading en sluitknop.\n */\nexport const ModalDialogHeader = React.forwardRef<\n HTMLDivElement,\n ModalDialogHeaderProps\n>(({ className, children, ...props }, ref) => {\n const { onClose } = React.useContext(ModalDialogContext);\n\n return (\n <div\n ref={ref}\n className={classNames('dsn-modal-dialog__header', className)}\n {...props}\n >\n {children}\n <Button\n variant=\"subtle\"\n size=\"small\"\n iconOnly\n onClick={onClose}\n iconStart={<Icon name=\"x\" aria-hidden />}\n >\n Sluiten\n </Button>\n </div>\n );\n});\n\nModalDialogHeader.displayName = 'ModalDialogHeader';\n\n// =============================================================================\n// ModalDialogHeading\n// =============================================================================\n\nexport interface ModalDialogHeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {\n /**\n * Semantisch heading-niveau. Kies op basis van documenthiërarchie, niet visuele grootte.\n * @default 2\n */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n\n /**\n * De zichtbare heading-tekst\n */\n children?: React.ReactNode;\n}\n\n/**\n * ModalDialogHeading\n * De heading van het dialoogvenster. ID wordt automatisch gegenereerd voor aria-labelledby.\n */\nexport const ModalDialogHeading = React.forwardRef<\n HTMLHeadingElement,\n ModalDialogHeadingProps\n>(({ className, level = 2, children, ...props }, ref) => {\n const { headingId } = React.useContext(ModalDialogContext);\n const Tag = `h${level}` as React.ElementType;\n\n return (\n <Tag\n ref={ref}\n id={headingId}\n className={classNames('dsn-modal-dialog-heading', className)}\n {...props}\n >\n {children}\n </Tag>\n );\n});\n\nModalDialogHeading.displayName = 'ModalDialogHeading';\n\n// =============================================================================\n// ModalDialogBody\n// =============================================================================\n\nexport interface ModalDialogBodyProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * De hoofdinhoud van het dialoogvenster\n */\n children?: React.ReactNode;\n}\n\n/**\n * ModalDialogBody\n * De scrollbare inhoudssectie van het dialoogvenster met scroll-affordance schaduw.\n */\nexport const ModalDialogBody = React.forwardRef<\n HTMLDivElement,\n ModalDialogBodyProps\n>(({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={classNames('dsn-modal-dialog__body', className)}\n {...props}\n >\n {children}\n </div>\n );\n});\n\nModalDialogBody.displayName = 'ModalDialogBody';\n\n// =============================================================================\n// ModalDialogFooter\n// =============================================================================\n\nexport interface ModalDialogFooterProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * De acties van het dialoogvenster — doorgaans een `ActionGroup` met knoppen\n */\n children?: React.ReactNode;\n}\n\n/**\n * ModalDialogFooter\n * De voettekst van het dialoogvenster met actieknoppen.\n */\nexport const ModalDialogFooter = React.forwardRef<\n HTMLDivElement,\n ModalDialogFooterProps\n>(({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={classNames('dsn-modal-dialog__footer', className)}\n {...props}\n >\n {children}\n </div>\n );\n});\n\nModalDialogFooter.displayName = 'ModalDialogFooter';\n"],"mappings":";;;;;;;AAeA,MAAM,qBAAqB,MAAM,cAAuC,EACtE,WAAW,GACb,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDD,MAAa,cAAc,MAAM,YAG9B,EAAE,WAAW,QAAQ,SAAS,UAAU,GAAG,SAAS,QAAQ;CAC7D,MAAM,cAAc,MAAM,OAA0B,IAAI;CACxD,MAAM,YAAa,OAA8C;CACjE,MAAM,YAAY,MAAM,MAAM;CAE9B,MAAM,gBAAgB;EACpB,MAAM,SAAS,UAAU;EACzB,IAAI,CAAC,QAAQ;EAEb,IAAI,UAAU,CAAC,OAAO,MACpB,OAAO,UAAU;OACZ,IAAI,CAAC,UAAU,OAAO,MAC3B,OAAO,MAAM;CAEjB,GAAG,CAAC,QAAQ,SAAS,CAAC;CAEtB,MAAM,gBAAgB,UAAmD;EACvE,MAAM,eAAe;EACrB,UAAU;CACZ;CAEA,MAAM,UAAU,WAAW,oBAAoB,SAAS;CAExD,OACE,oBAAC,mBAAmB,UAApB;EAA6B,OAAO;GAAE;GAAW;EAAQ;EACvD,UAAA,oBAAC,UAAD;GACE,KAAK;GACL,WAAW;GACX,mBAAiB;GACjB,UAAU;GACV,GAAI;GAEH;EACK,CAAA;CACmB,CAAA;AAEjC,CAAC;AAED,YAAY,cAAc;;;;;AAiB1B,MAAa,oBAAoB,MAAM,YAGpC,EAAE,WAAW,UAAU,GAAG,SAAS,QAAQ;CAC5C,MAAM,EAAE,YAAY,MAAM,WAAW,kBAAkB;CAEvD,OACE,qBAAC,OAAD;EACO;EACL,WAAW,WAAW,4BAA4B,SAAS;EAC3D,GAAI;EAHN,UAAA,CAKG,UACD,oBAAC,QAAD;GACE,SAAQ;GACR,MAAK;GACL,UAAA;GACA,SAAS;GACT,WAAW,oBAAC,MAAD;IAAM,MAAK;IAAI,eAAA;GAAa,CAAA;GACxC,UAAA;EAEO,CAAA,CACL;;AAET,CAAC;AAED,kBAAkB,cAAc;;;;;AAuBhC,MAAa,qBAAqB,MAAM,YAGrC,EAAE,WAAW,QAAQ,GAAG,UAAU,GAAG,SAAS,QAAQ;CACvD,MAAM,EAAE,cAAc,MAAM,WAAW,kBAAkB;CACzD,MAAM,MAAM,IAAI;CAEhB,OACE,oBAAC,KAAD;EACO;EACL,IAAI;EACJ,WAAW,WAAW,4BAA4B,SAAS;EAC3D,GAAI;EAEH;CACE,CAAA;AAET,CAAC;AAED,mBAAmB,cAAc;;;;;AAiBjC,MAAa,kBAAkB,MAAM,YAGlC,EAAE,WAAW,UAAU,GAAG,SAAS,QAAQ;CAC5C,OACE,oBAAC,OAAD;EACO;EACL,WAAW,WAAW,0BAA0B,SAAS;EACzD,GAAI;EAEH;CACE,CAAA;AAET,CAAC;AAED,gBAAgB,cAAc;;;;;AAiB9B,MAAa,oBAAoB,MAAM,YAGpC,EAAE,WAAW,UAAU,GAAG,SAAS,QAAQ;CAC5C,OACE,oBAAC,OAAD;EACO;EACL,WAAW,WAAW,4BAA4B,SAAS;EAC3D,GAAI;EAEH;CACE,CAAA;AAET,CAAC;AAED,kBAAkB,cAAc"}
@@ -0,0 +1,2 @@
1
+ import { ModalDialog, ModalDialogBody, ModalDialogBodyProps, ModalDialogFooter, ModalDialogFooterProps, ModalDialogHeader, ModalDialogHeaderProps, ModalDialogHeading, ModalDialogHeadingProps, ModalDialogProps } from "./ModalDialog.mjs";
2
+ export { ModalDialog, ModalDialogBody, type ModalDialogBodyProps, ModalDialogFooter, type ModalDialogFooterProps, ModalDialogHeader, type ModalDialogHeaderProps, ModalDialogHeading, type ModalDialogHeadingProps, type ModalDialogProps };
@@ -0,0 +1,95 @@
1
+ import React from "react";
2
+ //#region src/Note/Note.d.ts
3
+ type NoteVariant = 'neutral' | 'info' | 'positive' | 'negative' | 'warning';
4
+ type NoteAs = 'div' | 'aside' | 'nav' | 'section';
5
+ interface NoteProps extends React.HTMLAttributes<HTMLElement> {
6
+ /**
7
+ * HTML-element — ontkoppelt semantiek van visuele stijl
8
+ * @default 'div'
9
+ */
10
+ as?: NoteAs;
11
+ /**
12
+ * Semantische variant die de signaalkleur bepaalt
13
+ * @default 'neutral'
14
+ */
15
+ variant?: NoteVariant;
16
+ /**
17
+ * Optionele heading-tekst (renders als `<Heading appearance="heading-3">`)
18
+ */
19
+ heading?: string;
20
+ /**
21
+ * Semantisch heading-niveau — bepaalt het HTML-element (h1–h6)
22
+ * @default 3
23
+ */
24
+ headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;
25
+ /**
26
+ * Icoon vóór de heading.
27
+ * - `undefined` (default) — aanbevolen icoon per variant
28
+ * - `null` — geen icoon
29
+ * - `ReactNode` — aangepast icoon
30
+ */
31
+ iconStart?: React.ReactNode;
32
+ /**
33
+ * Visueel verborgen tekst die de variant benoemt voor screenreadergebruikers
34
+ * (inclusief scheidingsteken en spatie). Komt vóór de heading, of vóór de
35
+ * content als er geen heading is.
36
+ * - `undefined` (default) — standaardtekst per variant:
37
+ * `''` (neutral) / `'Informatie: '` / `'Succes: '` / `'Foutmelding: '` / `'Let op: '`
38
+ * - `''` — geen variant-label (bijv. als de heading de variant al benoemt)
39
+ * - `string` — eigen tekst, bijv. voor een andere taal
40
+ */
41
+ variantLabel?: string;
42
+ /**
43
+ * Body-content: tekst, lijst, links, etc.
44
+ */
45
+ children?: React.ReactNode;
46
+ }
47
+ /**
48
+ * Note component
49
+ * Visueel uitgelicht bericht voor aanvullende of belangrijke informatie.
50
+ * Passieve tegenhanger van Alert — geen live region, wordt alleen voorgelezen bij navigatie.
51
+ *
52
+ * @example
53
+ * ```tsx
54
+ * // Neutral (default), inline tip
55
+ * <Note heading="Let op">
56
+ * <Paragraph>Aanvullende informatie over dit onderwerp.</Paragraph>
57
+ * </Note>
58
+ *
59
+ * // Info variant
60
+ * <Note variant="info" heading="Wist je dat...">
61
+ * <Paragraph>Extra context.</Paragraph>
62
+ * </Note>
63
+ *
64
+ * // Zonder heading — icoon overspant beide rijen
65
+ * <Note variant="warning">
66
+ * <Paragraph>Dit heeft gevolgen voor uw aanvraag.</Paragraph>
67
+ * </Note>
68
+ *
69
+ * // as="aside" — echt aanvullende content
70
+ * <Note as="aside" variant="info" heading="Achtergrondinformatie">
71
+ * <Paragraph>Meer context.</Paragraph>
72
+ * </Note>
73
+ *
74
+ * // as="nav" — eigenstandige navigatiesectie (niet voor een pagina-inhoudsopgave: gebruik TableOfContents)
75
+ * <Note as="nav" variant="neutral" heading="Gerelateerde pagina's" headingLevel={2}>
76
+ * <UnorderedList>
77
+ * <li><Link href="/gerelateerd-1">Gerelateerde pagina 1</Link></li>
78
+ * </UnorderedList>
79
+ * </Note>
80
+ *
81
+ * // Icoon weglaten
82
+ * <Note variant="info" heading="Opmerking" iconStart={null}>
83
+ * <Paragraph>Zonder icoon.</Paragraph>
84
+ * </Note>
85
+ *
86
+ * // Variant-label onderdrukken (heading benoemt de variant al)
87
+ * <Note variant="warning" heading="Waarschuwing" variantLabel="">
88
+ * <Paragraph>Dit heeft gevolgen voor uw aanvraag.</Paragraph>
89
+ * </Note>
90
+ * ```
91
+ */
92
+ declare const Note: React.ForwardRefExoticComponent<NoteProps & React.RefAttributes<HTMLElement>>;
93
+ //#endregion
94
+ export { Note, NoteAs, NoteProps, NoteVariant };
95
+ //# sourceMappingURL=Note.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Note.d.mts","names":[],"sources":["../../src/Note/Note.tsx"],"mappings":";;KAMY;KAMA;UAkBK,kBAAkB,MAAM,eAAe;;;;;EAKtD,KAAK;;;;;EAML,UAAU;;;;EAKV;;;;;EAMA;;;;;;;EAQA,YAAY,MAAM;;;;;;;;;;EAWlB;;;;EAKA,WAAW,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAgDN,MAAI,MAAA,0BAAA,YAAA,MAAA,cAAA"}
@@ -0,0 +1,116 @@
1
+ import { Heading } from "../Heading/Heading2.mjs";
2
+ import { Icon } from "../Icon/Icon2.mjs";
3
+ /* empty css */
4
+ import React, { useId } from "react";
5
+ import { classNames } from "@dsn-starter-kit/core";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ //#region src/Note/Note.tsx
8
+ const PREFERRED_ICONS = {
9
+ neutral: "info-circle",
10
+ info: "info-circle",
11
+ positive: "circle-check",
12
+ negative: "exclamation-circle",
13
+ warning: "alert-triangle"
14
+ };
15
+ const VARIANT_LABELS = {
16
+ neutral: "",
17
+ info: "Informatie: ",
18
+ positive: "Succes: ",
19
+ negative: "Foutmelding: ",
20
+ warning: "Let op: "
21
+ };
22
+ /**
23
+ * Note component
24
+ * Visueel uitgelicht bericht voor aanvullende of belangrijke informatie.
25
+ * Passieve tegenhanger van Alert — geen live region, wordt alleen voorgelezen bij navigatie.
26
+ *
27
+ * @example
28
+ * ```tsx
29
+ * // Neutral (default), inline tip
30
+ * <Note heading="Let op">
31
+ * <Paragraph>Aanvullende informatie over dit onderwerp.</Paragraph>
32
+ * </Note>
33
+ *
34
+ * // Info variant
35
+ * <Note variant="info" heading="Wist je dat...">
36
+ * <Paragraph>Extra context.</Paragraph>
37
+ * </Note>
38
+ *
39
+ * // Zonder heading — icoon overspant beide rijen
40
+ * <Note variant="warning">
41
+ * <Paragraph>Dit heeft gevolgen voor uw aanvraag.</Paragraph>
42
+ * </Note>
43
+ *
44
+ * // as="aside" — echt aanvullende content
45
+ * <Note as="aside" variant="info" heading="Achtergrondinformatie">
46
+ * <Paragraph>Meer context.</Paragraph>
47
+ * </Note>
48
+ *
49
+ * // as="nav" — eigenstandige navigatiesectie (niet voor een pagina-inhoudsopgave: gebruik TableOfContents)
50
+ * <Note as="nav" variant="neutral" heading="Gerelateerde pagina's" headingLevel={2}>
51
+ * <UnorderedList>
52
+ * <li><Link href="/gerelateerd-1">Gerelateerde pagina 1</Link></li>
53
+ * </UnorderedList>
54
+ * </Note>
55
+ *
56
+ * // Icoon weglaten
57
+ * <Note variant="info" heading="Opmerking" iconStart={null}>
58
+ * <Paragraph>Zonder icoon.</Paragraph>
59
+ * </Note>
60
+ *
61
+ * // Variant-label onderdrukken (heading benoemt de variant al)
62
+ * <Note variant="warning" heading="Waarschuwing" variantLabel="">
63
+ * <Paragraph>Dit heeft gevolgen voor uw aanvraag.</Paragraph>
64
+ * </Note>
65
+ * ```
66
+ */
67
+ const Note = React.forwardRef(({ as: As = "div", className, variant = "neutral", heading, headingLevel = 3, iconStart, variantLabel, children, ...props }, ref) => {
68
+ const headingId = useId();
69
+ const noIcon = iconStart === null;
70
+ const noHeading = !heading;
71
+ const resolvedVariantLabel = variantLabel ?? VARIANT_LABELS[variant];
72
+ const resolvedIcon = iconStart === void 0 ? /* @__PURE__ */ jsx(Icon, {
73
+ name: PREFERRED_ICONS[variant],
74
+ size: "xl",
75
+ "aria-hidden": true
76
+ }) : iconStart;
77
+ const classes = classNames("dsn-note", variant !== "neutral" && `dsn-note--${variant}`, noHeading && "dsn-note--no-heading", className);
78
+ const isLandmark = As === "nav" || As === "aside" || As === "section";
79
+ const labelledBy = isLandmark && heading && !props["aria-label"] && !props["aria-labelledby"] ? headingId : void 0;
80
+ return /* @__PURE__ */ jsxs(As, {
81
+ ref,
82
+ className: classes,
83
+ "aria-labelledby": labelledBy,
84
+ ...props,
85
+ children: [
86
+ !noIcon && /* @__PURE__ */ jsx("span", {
87
+ className: "dsn-note__icon",
88
+ "aria-hidden": true,
89
+ children: resolvedIcon
90
+ }),
91
+ heading && /* @__PURE__ */ jsxs(Heading, {
92
+ level: headingLevel,
93
+ appearance: "heading-3",
94
+ className: "dsn-note__heading",
95
+ id: isLandmark ? headingId : void 0,
96
+ children: [resolvedVariantLabel && /* @__PURE__ */ jsx("span", {
97
+ className: "dsn-visually-hidden",
98
+ children: resolvedVariantLabel
99
+ }), heading]
100
+ }),
101
+ noHeading && resolvedVariantLabel && /* @__PURE__ */ jsx("span", {
102
+ className: "dsn-visually-hidden",
103
+ children: resolvedVariantLabel
104
+ }),
105
+ children && /* @__PURE__ */ jsx("div", {
106
+ className: "dsn-note__content",
107
+ children
108
+ })
109
+ ]
110
+ });
111
+ });
112
+ Note.displayName = "Note";
113
+ //#endregion
114
+ export { Note };
115
+
116
+ //# sourceMappingURL=Note2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Note2.mjs","names":[],"sources":["../../src/Note/Note.tsx"],"sourcesContent":["import React, { useId } from 'react';\nimport { classNames } from '@dsn-starter-kit/core';\nimport { Icon } from '../Icon';\nimport { Heading } from '../Heading';\nimport './Note.css';\n\nexport type NoteVariant =\n | 'neutral'\n | 'info'\n | 'positive'\n | 'negative'\n | 'warning';\nexport type NoteAs = 'div' | 'aside' | 'nav' | 'section';\n\nconst PREFERRED_ICONS: Record<NoteVariant, string> = {\n neutral: 'info-circle',\n info: 'info-circle',\n positive: 'circle-check',\n negative: 'exclamation-circle',\n warning: 'alert-triangle',\n};\n\nconst VARIANT_LABELS: Record<NoteVariant, string> = {\n neutral: '',\n info: 'Informatie: ',\n positive: 'Succes: ',\n negative: 'Foutmelding: ',\n warning: 'Let op: ',\n};\n\nexport interface NoteProps extends React.HTMLAttributes<HTMLElement> {\n /**\n * HTML-element — ontkoppelt semantiek van visuele stijl\n * @default 'div'\n */\n as?: NoteAs;\n\n /**\n * Semantische variant die de signaalkleur bepaalt\n * @default 'neutral'\n */\n variant?: NoteVariant;\n\n /**\n * Optionele heading-tekst (renders als `<Heading appearance=\"heading-3\">`)\n */\n heading?: string;\n\n /**\n * Semantisch heading-niveau — bepaalt het HTML-element (h1–h6)\n * @default 3\n */\n headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n\n /**\n * Icoon vóór de heading.\n * - `undefined` (default) — aanbevolen icoon per variant\n * - `null` — geen icoon\n * - `ReactNode` — aangepast icoon\n */\n iconStart?: React.ReactNode;\n\n /**\n * Visueel verborgen tekst die de variant benoemt voor screenreadergebruikers\n * (inclusief scheidingsteken en spatie). Komt vóór de heading, of vóór de\n * content als er geen heading is.\n * - `undefined` (default) — standaardtekst per variant:\n * `''` (neutral) / `'Informatie: '` / `'Succes: '` / `'Foutmelding: '` / `'Let op: '`\n * - `''` — geen variant-label (bijv. als de heading de variant al benoemt)\n * - `string` — eigen tekst, bijv. voor een andere taal\n */\n variantLabel?: string;\n\n /**\n * Body-content: tekst, lijst, links, etc.\n */\n children?: React.ReactNode;\n}\n\n/**\n * Note component\n * Visueel uitgelicht bericht voor aanvullende of belangrijke informatie.\n * Passieve tegenhanger van Alert — geen live region, wordt alleen voorgelezen bij navigatie.\n *\n * @example\n * ```tsx\n * // Neutral (default), inline tip\n * <Note heading=\"Let op\">\n * <Paragraph>Aanvullende informatie over dit onderwerp.</Paragraph>\n * </Note>\n *\n * // Info variant\n * <Note variant=\"info\" heading=\"Wist je dat...\">\n * <Paragraph>Extra context.</Paragraph>\n * </Note>\n *\n * // Zonder heading — icoon overspant beide rijen\n * <Note variant=\"warning\">\n * <Paragraph>Dit heeft gevolgen voor uw aanvraag.</Paragraph>\n * </Note>\n *\n * // as=\"aside\" — echt aanvullende content\n * <Note as=\"aside\" variant=\"info\" heading=\"Achtergrondinformatie\">\n * <Paragraph>Meer context.</Paragraph>\n * </Note>\n *\n * // as=\"nav\" — eigenstandige navigatiesectie (niet voor een pagina-inhoudsopgave: gebruik TableOfContents)\n * <Note as=\"nav\" variant=\"neutral\" heading=\"Gerelateerde pagina's\" headingLevel={2}>\n * <UnorderedList>\n * <li><Link href=\"/gerelateerd-1\">Gerelateerde pagina 1</Link></li>\n * </UnorderedList>\n * </Note>\n *\n * // Icoon weglaten\n * <Note variant=\"info\" heading=\"Opmerking\" iconStart={null}>\n * <Paragraph>Zonder icoon.</Paragraph>\n * </Note>\n *\n * // Variant-label onderdrukken (heading benoemt de variant al)\n * <Note variant=\"warning\" heading=\"Waarschuwing\" variantLabel=\"\">\n * <Paragraph>Dit heeft gevolgen voor uw aanvraag.</Paragraph>\n * </Note>\n * ```\n */\nexport const Note = React.forwardRef<HTMLElement, NoteProps>(\n (\n {\n as: As = 'div',\n className,\n variant = 'neutral',\n heading,\n headingLevel = 3,\n iconStart,\n variantLabel,\n children,\n ...props\n },\n ref\n ) => {\n const headingId = useId();\n const noIcon = iconStart === null;\n const noHeading = !heading;\n const resolvedVariantLabel = variantLabel ?? VARIANT_LABELS[variant];\n\n const resolvedIcon =\n iconStart === undefined ? (\n <Icon\n name={PREFERRED_ICONS[variant] as Parameters<typeof Icon>[0]['name']}\n size=\"xl\"\n aria-hidden\n />\n ) : (\n iconStart\n );\n\n const classes = classNames(\n 'dsn-note',\n variant !== 'neutral' && `dsn-note--${variant}`,\n noHeading && 'dsn-note--no-heading',\n className\n );\n\n // For landmark elements with a heading, add aria-labelledby automatically\n const isLandmark = As === 'nav' || As === 'aside' || As === 'section';\n const labelledBy =\n isLandmark && heading && !props['aria-label'] && !props['aria-labelledby']\n ? headingId\n : undefined;\n\n return (\n <As\n ref={ref as React.Ref<HTMLDivElement>}\n className={classes}\n aria-labelledby={labelledBy}\n {...props}\n >\n {!noIcon && (\n <span className=\"dsn-note__icon\" aria-hidden>\n {resolvedIcon}\n </span>\n )}\n {heading && (\n <Heading\n level={headingLevel}\n appearance=\"heading-3\"\n className=\"dsn-note__heading\"\n id={isLandmark ? headingId : undefined}\n >\n {resolvedVariantLabel && (\n <span className=\"dsn-visually-hidden\">\n {resolvedVariantLabel}\n </span>\n )}\n {heading}\n </Heading>\n )}\n {noHeading && resolvedVariantLabel && (\n <span className=\"dsn-visually-hidden\">{resolvedVariantLabel}</span>\n )}\n {children && <div className=\"dsn-note__content\">{children}</div>}\n </As>\n );\n }\n);\n\nNote.displayName = 'Note';\n"],"mappings":";;;;;;;AAcA,MAAM,kBAA+C;CACnD,SAAS;CACT,MAAM;CACN,UAAU;CACV,UAAU;CACV,SAAS;AACX;AAEA,MAAM,iBAA8C;CAClD,SAAS;CACT,MAAM;CACN,UAAU;CACV,UAAU;CACV,SAAS;AACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgGA,MAAa,OAAO,MAAM,YAEtB,EACE,IAAI,KAAK,OACT,WACA,UAAU,WACV,SACA,eAAe,GACf,WACA,cACA,UACA,GAAG,SAEL,QACG;CACH,MAAM,YAAY,MAAM;CACxB,MAAM,SAAS,cAAc;CAC7B,MAAM,YAAY,CAAC;CACnB,MAAM,uBAAuB,gBAAgB,eAAe;CAE5D,MAAM,eACJ,cAAc,KAAA,IACZ,oBAAC,MAAD;EACE,MAAM,gBAAgB;EACtB,MAAK;EACL,eAAA;CACD,CAAA,IAED;CAGJ,MAAM,UAAU,WACd,YACA,YAAY,aAAa,aAAa,WACtC,aAAa,wBACb,SACF;CAGA,MAAM,aAAa,OAAO,SAAS,OAAO,WAAW,OAAO;CAC5D,MAAM,aACJ,cAAc,WAAW,CAAC,MAAM,iBAAiB,CAAC,MAAM,qBACpD,YACA,KAAA;CAEN,OACE,qBAAC,IAAD;EACO;EACL,WAAW;EACX,mBAAiB;EACjB,GAAI;EAJN,UAAA;GAMG,CAAC,UACA,oBAAC,QAAD;IAAM,WAAU;IAAiB,eAAA;IAC9B,UAAA;GACG,CAAA;GAEP,WACC,qBAAC,SAAD;IACE,OAAO;IACP,YAAW;IACX,WAAU;IACV,IAAI,aAAa,YAAY,KAAA;IAJ/B,UAAA,CAMG,wBACC,oBAAC,QAAD;KAAM,WAAU;KACb,UAAA;IACG,CAAA,GAEP,OACM;;GAEV,aAAa,wBACZ,oBAAC,QAAD;IAAM,WAAU;IAAuB,UAAA;GAA2B,CAAA;GAEnE,YAAY,oBAAC,OAAD;IAAK,WAAU;IAAqB;GAAc,CAAA;EAC7D;;AAER,CACF;AAEA,KAAK,cAAc"}
@@ -0,0 +1,2 @@
1
+ import { Note, NoteAs, NoteProps, NoteVariant } from "./Note.mjs";
2
+ export { Note, type NoteAs, type NoteProps, type NoteVariant };
@@ -0,0 +1,44 @@
1
+ import React from "react";
2
+ //#region src/NumberBadge/NumberBadge.d.ts
3
+ type NumberBadgeVariant = 'negative' | 'positive' | 'warning' | 'info' | 'neutral';
4
+ interface NumberBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
5
+ /**
6
+ * Signaalkleur van de badge
7
+ * @default 'negative'
8
+ */
9
+ variant?: NumberBadgeVariant;
10
+ /**
11
+ * Als `children` als getal groter is dan `maxCount`, wordt `{maxCount}+` getoond.
12
+ * Heeft geen effect als `children` geen getal is.
13
+ */
14
+ maxCount?: number;
15
+ }
16
+ /**
17
+ * NumberBadge component
18
+ * Compact inline-element dat een getal toont — zoals het aantal ongelezen berichten
19
+ * of openstaande taken. Geplaatst binnen een Button of Menu-item, naast het label.
20
+ *
21
+ * Altijd aria-hidden="true" — context via dsn-visually-hidden in de parent.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * // Basis gebruik — inline in een Button
26
+ * <Button variant="subtle" iconStart={<Icon name="inbox" aria-hidden />}>
27
+ * Inbox
28
+ * <NumberBadge variant="negative">5</NumberBadge>
29
+ * </Button>
30
+ *
31
+ * // Afgekapt getal — toont "99+" als count > 99
32
+ * <Button variant="subtle" iconStart={<Icon name="inbox" aria-hidden />}>
33
+ * <span>
34
+ * Inbox
35
+ * <span className="dsn-visually-hidden">, 128 ongelezen berichten</span>
36
+ * </span>
37
+ * <NumberBadge variant="negative" maxCount={99}>128</NumberBadge>
38
+ * </Button>
39
+ * ```
40
+ */
41
+ declare const NumberBadge: React.ForwardRefExoticComponent<NumberBadgeProps & React.RefAttributes<HTMLSpanElement>>;
42
+ //#endregion
43
+ export { NumberBadge, NumberBadgeProps, NumberBadgeVariant };
44
+ //# sourceMappingURL=NumberBadge.d.mts.map