@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,37 @@
1
+ import React from "react";
2
+ //#region src/Paragraph/Paragraph.d.ts
3
+ type ParagraphVariant = 'default' | 'lead' | 'small-print';
4
+ interface ParagraphProps extends React.HTMLAttributes<HTMLParagraphElement> {
5
+ /**
6
+ * Paragraph visual style
7
+ * @default 'default'
8
+ */
9
+ variant?: ParagraphVariant;
10
+ /**
11
+ * Additional CSS class names
12
+ */
13
+ className?: string;
14
+ /**
15
+ * Paragraph content
16
+ */
17
+ children?: React.ReactNode;
18
+ }
19
+ /**
20
+ * Paragraph component with multiple variants
21
+ *
22
+ * @example
23
+ * ```tsx
24
+ * // Basic usage
25
+ * <Paragraph>Body text content</Paragraph>
26
+ *
27
+ * // Lead paragraph
28
+ * <Paragraph variant="lead">Introductory text</Paragraph>
29
+ *
30
+ * // Small print
31
+ * <Paragraph variant="small-print">Terms and conditions apply.</Paragraph>
32
+ * ```
33
+ */
34
+ declare const Paragraph: React.ForwardRefExoticComponent<ParagraphProps & React.RefAttributes<HTMLParagraphElement>>;
35
+ //#endregion
36
+ export { Paragraph, ParagraphProps, ParagraphVariant };
37
+ //# sourceMappingURL=Paragraph.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Paragraph.d.mts","names":[],"sources":["../../src/Paragraph/Paragraph.tsx"],"mappings":";;KAIY;UAEK,uBAAuB,MAAM,eAAe;;;;;EAK3D,UAAU;;;;EAKV;;;;EAKA,WAAW,MAAM;;;;;;;;;;;;;;;;;cAkBN,WAAS,MAAA,0BAAA,iBAAA,MAAA,cAAA"}
@@ -0,0 +1,34 @@
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/Paragraph/Paragraph.tsx
6
+ /**
7
+ * Paragraph component with multiple variants
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * // Basic usage
12
+ * <Paragraph>Body text content</Paragraph>
13
+ *
14
+ * // Lead paragraph
15
+ * <Paragraph variant="lead">Introductory text</Paragraph>
16
+ *
17
+ * // Small print
18
+ * <Paragraph variant="small-print">Terms and conditions apply.</Paragraph>
19
+ * ```
20
+ */
21
+ const Paragraph = React.forwardRef(({ variant = "default", className, children, ...props }, ref) => {
22
+ const classes = classNames("dsn-paragraph", variant !== "default" && `dsn-paragraph--${variant}`, className);
23
+ return /* @__PURE__ */ jsx("p", {
24
+ ref,
25
+ className: classes,
26
+ ...props,
27
+ children
28
+ });
29
+ });
30
+ Paragraph.displayName = "Paragraph";
31
+ //#endregion
32
+ export { Paragraph };
33
+
34
+ //# sourceMappingURL=Paragraph2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Paragraph2.mjs","names":[],"sources":["../../src/Paragraph/Paragraph.tsx"],"sourcesContent":["import React from 'react';\nimport { classNames } from '@dsn-starter-kit/core';\nimport './Paragraph.css';\n\nexport type ParagraphVariant = 'default' | 'lead' | 'small-print';\n\nexport interface ParagraphProps extends React.HTMLAttributes<HTMLParagraphElement> {\n /**\n * Paragraph visual style\n * @default 'default'\n */\n variant?: ParagraphVariant;\n\n /**\n * Additional CSS class names\n */\n className?: string;\n\n /**\n * Paragraph content\n */\n children?: React.ReactNode;\n}\n\n/**\n * Paragraph component with multiple variants\n *\n * @example\n * ```tsx\n * // Basic usage\n * <Paragraph>Body text content</Paragraph>\n *\n * // Lead paragraph\n * <Paragraph variant=\"lead\">Introductory text</Paragraph>\n *\n * // Small print\n * <Paragraph variant=\"small-print\">Terms and conditions apply.</Paragraph>\n * ```\n */\nexport const Paragraph = React.forwardRef<HTMLParagraphElement, ParagraphProps>(\n ({ variant = 'default', className, children, ...props }, ref) => {\n const classes = classNames(\n 'dsn-paragraph',\n variant !== 'default' && `dsn-paragraph--${variant}`,\n className\n );\n\n return (\n <p ref={ref} className={classes} {...props}>\n {children}\n </p>\n );\n }\n);\n\nParagraph.displayName = 'Paragraph';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAuCA,MAAa,YAAY,MAAM,YAC5B,EAAE,UAAU,WAAW,WAAW,UAAU,GAAG,SAAS,QAAQ;CAC/D,MAAM,UAAU,WACd,iBACA,YAAY,aAAa,kBAAkB,WAC3C,SACF;CAEA,OACE,oBAAC,KAAD;EAAQ;EAAK,WAAW;EAAS,GAAI;EAClC;CACA,CAAA;AAEP,CACF;AAEA,UAAU,cAAc"}
@@ -0,0 +1,2 @@
1
+ import { Paragraph, ParagraphProps, ParagraphVariant } from "./Paragraph.mjs";
2
+ export { Paragraph, type ParagraphProps, type ParagraphVariant };
@@ -0,0 +1,54 @@
1
+ import React from "react";
2
+ import { FormControlWidth } from "@dsn-starter-kit/core";
3
+ //#region src/PasswordInput/PasswordInput.d.ts
4
+ type PasswordAutocomplete = 'current-password' | 'new-password' | 'off';
5
+ interface PasswordInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {
6
+ /**
7
+ * Autocomplete hint for password managers
8
+ * - 'current-password': voor inlogformulieren (default)
9
+ * - 'new-password': voor registratie- en wachtwoord wijzigformulieren
10
+ * - 'off': autocomplete uitschakelen
11
+ * @default 'current-password'
12
+ */
13
+ passwordAutocomplete?: PasswordAutocomplete;
14
+ /**
15
+ * Whether the input is in an invalid state
16
+ * @default false
17
+ */
18
+ invalid?: boolean;
19
+ /**
20
+ * Width variant for the input
21
+ * @default undefined (uses default max-width from form-control)
22
+ */
23
+ width?: FormControlWidth;
24
+ /**
25
+ * Additional CSS class names
26
+ */
27
+ className?: string;
28
+ }
29
+ /**
30
+ * Password Input component
31
+ * Uses type="password" for secure text entry.
32
+ * Het tonen/verbergen van het wachtwoord is bewust niet ingebouwd in dit component —
33
+ * dat patroon wordt separaat gedefinieerd via een Button naast het invoerveld.
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * // Login form (current password)
38
+ * <PasswordInput placeholder="Wachtwoord" />
39
+ *
40
+ * // Registration form (new password)
41
+ * <PasswordInput passwordAutocomplete="new-password" placeholder="Nieuw wachtwoord" />
42
+ *
43
+ * // With label
44
+ * <FormFieldLabel htmlFor="password">Wachtwoord</FormFieldLabel>
45
+ * <PasswordInput id="password" />
46
+ *
47
+ * // Invalid state
48
+ * <PasswordInput invalid aria-invalid="true" aria-describedby="error" />
49
+ * ```
50
+ */
51
+ declare const PasswordInput: React.ForwardRefExoticComponent<PasswordInputProps & React.RefAttributes<HTMLInputElement>>;
52
+ //#endregion
53
+ export { PasswordAutocomplete, PasswordInput, PasswordInputProps };
54
+ //# sourceMappingURL=PasswordInput.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasswordInput.d.mts","names":[],"sources":["../../src/PasswordInput/PasswordInput.tsx"],"mappings":";;;KAIY;UAEK,2BAA2B,KAC1C,MAAM,oBAAoB;;;;;;;;EAU1B,uBAAuB;;;;;EAMvB;;;;;EAMA,QAAQ;;;;EAKR;;;;;;;;;;;;;;;;;;;;;;;;cAyBW,eAAa,MAAA,0BAAA,qBAAA,MAAA,cAAA"}
@@ -0,0 +1,43 @@
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/PasswordInput/PasswordInput.tsx
6
+ /**
7
+ * Password Input component
8
+ * Uses type="password" for secure text entry.
9
+ * Het tonen/verbergen van het wachtwoord is bewust niet ingebouwd in dit component —
10
+ * dat patroon wordt separaat gedefinieerd via een Button naast het invoerveld.
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * // Login form (current password)
15
+ * <PasswordInput placeholder="Wachtwoord" />
16
+ *
17
+ * // Registration form (new password)
18
+ * <PasswordInput passwordAutocomplete="new-password" placeholder="Nieuw wachtwoord" />
19
+ *
20
+ * // With label
21
+ * <FormFieldLabel htmlFor="password">Wachtwoord</FormFieldLabel>
22
+ * <PasswordInput id="password" />
23
+ *
24
+ * // Invalid state
25
+ * <PasswordInput invalid aria-invalid="true" aria-describedby="error" />
26
+ * ```
27
+ */
28
+ const PasswordInput = React.forwardRef(({ passwordAutocomplete = "current-password", className, invalid, width, autoComplete, ...props }, ref) => {
29
+ const classes = classNames("dsn-text-input", width && `dsn-text-input--width-${width}`, className);
30
+ return /* @__PURE__ */ jsx("input", {
31
+ ref,
32
+ type: "password",
33
+ className: classes,
34
+ autoComplete: autoComplete || passwordAutocomplete,
35
+ "aria-invalid": invalid || void 0,
36
+ ...props
37
+ });
38
+ });
39
+ PasswordInput.displayName = "PasswordInput";
40
+ //#endregion
41
+ export { PasswordInput };
42
+
43
+ //# sourceMappingURL=PasswordInput.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasswordInput.mjs","names":[],"sources":["../../src/PasswordInput/PasswordInput.tsx"],"sourcesContent":["import React from 'react';\nimport { classNames, FormControlWidth } from '@dsn-starter-kit/core';\nimport '../TextInput/TextInput.css';\n\nexport type PasswordAutocomplete = 'current-password' | 'new-password' | 'off';\n\nexport interface PasswordInputProps extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n 'type'\n> {\n /**\n * Autocomplete hint for password managers\n * - 'current-password': voor inlogformulieren (default)\n * - 'new-password': voor registratie- en wachtwoord wijzigformulieren\n * - 'off': autocomplete uitschakelen\n * @default 'current-password'\n */\n passwordAutocomplete?: PasswordAutocomplete;\n\n /**\n * Whether the input is in an invalid state\n * @default false\n */\n invalid?: boolean;\n\n /**\n * Width variant for the input\n * @default undefined (uses default max-width from form-control)\n */\n width?: FormControlWidth;\n\n /**\n * Additional CSS class names\n */\n className?: string;\n}\n\n/**\n * Password Input component\n * Uses type=\"password\" for secure text entry.\n * Het tonen/verbergen van het wachtwoord is bewust niet ingebouwd in dit component —\n * dat patroon wordt separaat gedefinieerd via een Button naast het invoerveld.\n *\n * @example\n * ```tsx\n * // Login form (current password)\n * <PasswordInput placeholder=\"Wachtwoord\" />\n *\n * // Registration form (new password)\n * <PasswordInput passwordAutocomplete=\"new-password\" placeholder=\"Nieuw wachtwoord\" />\n *\n * // With label\n * <FormFieldLabel htmlFor=\"password\">Wachtwoord</FormFieldLabel>\n * <PasswordInput id=\"password\" />\n *\n * // Invalid state\n * <PasswordInput invalid aria-invalid=\"true\" aria-describedby=\"error\" />\n * ```\n */\nexport const PasswordInput = React.forwardRef<\n HTMLInputElement,\n PasswordInputProps\n>(\n (\n {\n passwordAutocomplete = 'current-password',\n className,\n invalid,\n width,\n autoComplete,\n ...props\n },\n ref\n ) => {\n const classes = classNames(\n 'dsn-text-input',\n width && `dsn-text-input--width-${width}`,\n className\n );\n\n return (\n <input\n ref={ref}\n type=\"password\"\n className={classes}\n autoComplete={autoComplete || passwordAutocomplete}\n aria-invalid={invalid || undefined}\n {...props}\n />\n );\n }\n);\n\nPasswordInput.displayName = 'PasswordInput';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DA,MAAa,gBAAgB,MAAM,YAK/B,EACE,uBAAuB,oBACvB,WACA,SACA,OACA,cACA,GAAG,SAEL,QACG;CACH,MAAM,UAAU,WACd,kBACA,SAAS,yBAAyB,SAClC,SACF;CAEA,OACE,oBAAC,SAAD;EACO;EACL,MAAK;EACL,WAAW;EACX,cAAc,gBAAgB;EAC9B,gBAAc,WAAW,KAAA;EACzB,GAAI;CACL,CAAA;AAEL,CACF;AAEA,cAAc,cAAc"}
@@ -0,0 +1,2 @@
1
+ import { PasswordAutocomplete, PasswordInput, PasswordInputProps } from "./PasswordInput.mjs";
2
+ export { type PasswordAutocomplete, PasswordInput, type PasswordInputProps };
@@ -0,0 +1,118 @@
1
+ import React from "react";
2
+ //#region src/Popover/Popover.d.ts
3
+ declare module 'react' {
4
+ interface HTMLAttributes<T> {
5
+ popover?: 'auto' | 'manual' | '' | undefined;
6
+ popoverTarget?: string | undefined;
7
+ popoverTargetAction?: 'hide' | 'show' | 'toggle' | undefined;
8
+ }
9
+ }
10
+ declare global {
11
+ interface HTMLElement {
12
+ showPopover(): void;
13
+ hidePopover(): void;
14
+ }
15
+ }
16
+ type Placement = 'top' | 'bottom' | 'start' | 'end';
17
+ interface PopoverProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
18
+ /**
19
+ * Bepaalt of de popover getoond wordt.
20
+ */
21
+ isOpen: boolean;
22
+ /**
23
+ * Callback bij sluiten (Escape, klik buiten, sluitknop in header).
24
+ */
25
+ onClose?: () => void;
26
+ /**
27
+ * Referentie naar het triggerelement voor positionering en focus-herstel.
28
+ */
29
+ triggerRef: React.RefObject<HTMLElement>;
30
+ /**
31
+ * Gewenste plaatsing relatief aan het triggerelement.
32
+ * @default 'bottom'
33
+ */
34
+ placement?: Placement;
35
+ /**
36
+ * Toegankelijke naam voor popovers zonder `PopoverHeader`/`PopoverHeading`.
37
+ * Gebruik `aria-labelledby` via context wanneer er wél een heading is.
38
+ */
39
+ label?: string;
40
+ /**
41
+ * Subcomponenten: `PopoverHeader`, `PopoverBody`, `PopoverFooter`
42
+ */
43
+ children?: React.ReactNode;
44
+ }
45
+ /**
46
+ * Popover component
47
+ * Lichtgewicht, contextgebonden overlay verankerd aan een triggerelement.
48
+ *
49
+ * Gebaseerd op de HTML Popover API (`popover="auto"`) voor ingebakken
50
+ * light-dismiss en top-layer gedrag. Positionering via JavaScript.
51
+ *
52
+ * @example
53
+ * ```tsx
54
+ * const triggerRef = useRef<HTMLButtonElement>(null);
55
+ * const [isOpen, setIsOpen] = useState(false);
56
+ *
57
+ * <Button ref={triggerRef} onClick={() => setIsOpen(true)}>Opties</Button>
58
+ * <Popover isOpen={isOpen} onClose={() => setIsOpen(false)} triggerRef={triggerRef} label="Opties">
59
+ * <PopoverBody>
60
+ * <Menu>...</Menu>
61
+ * </PopoverBody>
62
+ * </Popover>
63
+ * ```
64
+ */
65
+ declare const Popover: React.ForwardRefExoticComponent<PopoverProps & React.RefAttributes<HTMLDivElement>>;
66
+ interface PopoverHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
67
+ /**
68
+ * Inhoud van de header — doorgaans een `PopoverHeading`.
69
+ * De sluitknop wordt automatisch geïnjecteerd.
70
+ */
71
+ children?: React.ReactNode;
72
+ }
73
+ /**
74
+ * PopoverHeader
75
+ * De headerstrook van de popover met heading en sluitknop.
76
+ */
77
+ declare const PopoverHeader: React.ForwardRefExoticComponent<PopoverHeaderProps & React.RefAttributes<HTMLDivElement>>;
78
+ interface PopoverHeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {
79
+ /**
80
+ * Semantisch heading-niveau. Kies op basis van documenthiërarchie.
81
+ * @default 2
82
+ */
83
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
84
+ /**
85
+ * De zichtbare heading-tekst.
86
+ */
87
+ children?: React.ReactNode;
88
+ }
89
+ /**
90
+ * PopoverHeading
91
+ * De heading van de popover. ID wordt automatisch gegenereerd voor aria-labelledby.
92
+ */
93
+ declare const PopoverHeading: React.ForwardRefExoticComponent<PopoverHeadingProps & React.RefAttributes<HTMLHeadingElement>>;
94
+ interface PopoverBodyProps extends React.HTMLAttributes<HTMLDivElement> {
95
+ /**
96
+ * De hoofdinhoud van de popover — willekeurige slot-content.
97
+ */
98
+ children?: React.ReactNode;
99
+ }
100
+ /**
101
+ * PopoverBody
102
+ * De inhoudssectie van de popover.
103
+ */
104
+ declare const PopoverBody: React.ForwardRefExoticComponent<PopoverBodyProps & React.RefAttributes<HTMLDivElement>>;
105
+ interface PopoverFooterProps extends React.HTMLAttributes<HTMLDivElement> {
106
+ /**
107
+ * Actieknoppen of slotzin van de popover.
108
+ */
109
+ children?: React.ReactNode;
110
+ }
111
+ /**
112
+ * PopoverFooter
113
+ * De voettekst van de popover met actieknoppen.
114
+ */
115
+ declare const PopoverFooter: React.ForwardRefExoticComponent<PopoverFooterProps & React.RefAttributes<HTMLDivElement>>;
116
+ //#endregion
117
+ export { Popover, PopoverBody, PopoverBodyProps, PopoverFooter, PopoverFooterProps, PopoverHeader, PopoverHeaderProps, PopoverHeading, PopoverHeadingProps, PopoverProps };
118
+ //# sourceMappingURL=Popover.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popover.d.mts","names":[],"sources":["../../src/Popover/Popover.tsx"],"mappings":";;;YAYY,eAAe;IACvB;IACA;IACA;;;QAQI;YACI;IACR;IACA;;;KAQC;UAwGY,qBAAqB,KACpC,MAAM,eAAe;;;;EAMrB;;;;EAKA;;;;EAKA,YAAY,MAAM,UAAU;;;;;EAM5B,YAAY;;;;;EAMZ;;;;EAKA,WAAW,MAAM;;;;;;;;;;;;;;;;;;;;;;cAuBN,SAAO,MAAA,0BAAA,eAAA,MAAA,cAAA;UAmIH,2BAA2B,MAAM,eAAe;;;;;EAK/D,WAAW,MAAM;;;;;;cAON,eAAa,MAAA,0BAAA,qBAAA,MAAA,cAAA;UAgCT,4BAA4B,MAAM,eAAe;;;;;EAKhE;;;;EAKA,WAAW,MAAM;;;;;;cAON,gBAAc,MAAA,0BAAA,sBAAA,MAAA,cAAA;UAyBV,yBAAyB,MAAM,eAAe;;;;EAI7D,WAAW,MAAM;;;;;;cAON,aAAW,MAAA,0BAAA,mBAAA,MAAA,cAAA;UAoBP,2BAA2B,MAAM,eAAe;;;;EAI/D,WAAW,MAAM;;;;;;cAON,eAAa,MAAA,0BAAA,qBAAA,MAAA,cAAA"}
@@ -0,0 +1,235 @@
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/Popover/Popover.tsx
8
+ const GAP = 4;
9
+ function positionPopover(popover, trigger, placement) {
10
+ const triggerRect = trigger.getBoundingClientRect();
11
+ const popoverRect = {
12
+ width: popover.offsetWidth,
13
+ height: popover.offsetHeight
14
+ };
15
+ const isRTL = document.documentElement.dir === "rtl" || getComputedStyle(trigger).direction === "rtl";
16
+ let top;
17
+ let left;
18
+ switch (placement) {
19
+ case "bottom":
20
+ top = triggerRect.bottom + GAP;
21
+ left = isRTL ? triggerRect.right - popoverRect.width : triggerRect.left;
22
+ break;
23
+ case "top":
24
+ top = triggerRect.top - popoverRect.height - GAP;
25
+ left = isRTL ? triggerRect.right - popoverRect.width : triggerRect.left;
26
+ break;
27
+ case "end":
28
+ top = triggerRect.top;
29
+ left = isRTL ? triggerRect.left - popoverRect.width - GAP : triggerRect.right + GAP;
30
+ break;
31
+ case "start":
32
+ top = triggerRect.top;
33
+ left = isRTL ? triggerRect.right + GAP : triggerRect.left - popoverRect.width - GAP;
34
+ break;
35
+ default:
36
+ top = triggerRect.bottom + GAP;
37
+ left = triggerRect.left;
38
+ }
39
+ const margin = 8;
40
+ left = Math.max(margin, Math.min(left, window.innerWidth - popoverRect.width - margin));
41
+ top = Math.max(margin, Math.min(top, window.innerHeight - popoverRect.height - margin));
42
+ popover.style.top = `${top}px`;
43
+ popover.style.left = `${left}px`;
44
+ popover.style.right = "auto";
45
+ popover.style.bottom = "auto";
46
+ }
47
+ function focusFirstInteractive(container) {
48
+ const selector = [
49
+ "button:not(:disabled)",
50
+ "a[href]",
51
+ "input:not(:disabled)",
52
+ "select:not(:disabled)",
53
+ "textarea:not(:disabled)",
54
+ "[tabindex]:not([tabindex=\"-1\"])"
55
+ ].join(", ");
56
+ const first = container.querySelector(selector);
57
+ if (first) first.focus();
58
+ else container.focus();
59
+ }
60
+ const PopoverContext = React.createContext({ headingId: "" });
61
+ /**
62
+ * Popover component
63
+ * Lichtgewicht, contextgebonden overlay verankerd aan een triggerelement.
64
+ *
65
+ * Gebaseerd op de HTML Popover API (`popover="auto"`) voor ingebakken
66
+ * light-dismiss en top-layer gedrag. Positionering via JavaScript.
67
+ *
68
+ * @example
69
+ * ```tsx
70
+ * const triggerRef = useRef<HTMLButtonElement>(null);
71
+ * const [isOpen, setIsOpen] = useState(false);
72
+ *
73
+ * <Button ref={triggerRef} onClick={() => setIsOpen(true)}>Opties</Button>
74
+ * <Popover isOpen={isOpen} onClose={() => setIsOpen(false)} triggerRef={triggerRef} label="Opties">
75
+ * <PopoverBody>
76
+ * <Menu>...</Menu>
77
+ * </PopoverBody>
78
+ * </Popover>
79
+ * ```
80
+ */
81
+ const Popover = React.forwardRef(({ className, isOpen, onClose, triggerRef, placement = "bottom", label, children, ...props }, ref) => {
82
+ const internalRef = React.useRef(null);
83
+ const popoverRef = ref ?? internalRef;
84
+ const headingId = React.useId();
85
+ React.useEffect(() => {
86
+ const el = popoverRef.current;
87
+ if (!el) return;
88
+ if (isOpen) {
89
+ el.showPopover();
90
+ const trigger = triggerRef.current;
91
+ if (trigger) positionPopover(el, trigger, placement);
92
+ focusFirstInteractive(el);
93
+ } else try {
94
+ el.hidePopover();
95
+ } catch {}
96
+ }, [
97
+ isOpen,
98
+ placement,
99
+ triggerRef,
100
+ popoverRef
101
+ ]);
102
+ React.useEffect(() => {
103
+ const trigger = triggerRef.current;
104
+ if (!trigger) return;
105
+ trigger.setAttribute("aria-expanded", isOpen ? "true" : "false");
106
+ return () => {
107
+ trigger.setAttribute("aria-expanded", "false");
108
+ };
109
+ }, [isOpen, triggerRef]);
110
+ const onCloseRef = React.useRef(onClose);
111
+ onCloseRef.current = onClose;
112
+ React.useEffect(() => {
113
+ const el = popoverRef.current;
114
+ if (!el) return;
115
+ const handleToggle = (event) => {
116
+ if (event.newState === "closed") {
117
+ onCloseRef.current?.();
118
+ triggerRef.current?.focus();
119
+ }
120
+ };
121
+ el.addEventListener("toggle", handleToggle);
122
+ return () => {
123
+ el.removeEventListener("toggle", handleToggle);
124
+ };
125
+ }, [triggerRef, popoverRef]);
126
+ React.useEffect(() => {
127
+ if (!isOpen) return;
128
+ const el = popoverRef.current;
129
+ if (!el) return;
130
+ const handlePointerDown = (event) => {
131
+ const target = event.target;
132
+ if (el.contains(target) || triggerRef.current?.contains(target)) return;
133
+ onCloseRef.current?.();
134
+ triggerRef.current?.focus();
135
+ };
136
+ document.addEventListener("pointerdown", handlePointerDown);
137
+ return () => {
138
+ document.removeEventListener("pointerdown", handlePointerDown);
139
+ };
140
+ }, [
141
+ isOpen,
142
+ triggerRef,
143
+ popoverRef
144
+ ]);
145
+ const classes = classNames("dsn-popover", `dsn-popover--placement-${placement}`, className);
146
+ const ariaProps = label ? { "aria-label": label } : { "aria-labelledby": headingId };
147
+ return /* @__PURE__ */ jsx(PopoverContext.Provider, {
148
+ value: {
149
+ headingId,
150
+ onClose
151
+ },
152
+ children: /* @__PURE__ */ jsx("div", {
153
+ ref: popoverRef,
154
+ popover: "auto",
155
+ className: classes,
156
+ role: "dialog",
157
+ "aria-modal": "false",
158
+ tabIndex: -1,
159
+ ...ariaProps,
160
+ ...props,
161
+ children
162
+ })
163
+ });
164
+ });
165
+ Popover.displayName = "Popover";
166
+ /**
167
+ * PopoverHeader
168
+ * De headerstrook van de popover met heading en sluitknop.
169
+ */
170
+ const PopoverHeader = React.forwardRef(({ className, children, ...props }, ref) => {
171
+ const { onClose } = React.useContext(PopoverContext);
172
+ return /* @__PURE__ */ jsxs("div", {
173
+ ref,
174
+ className: classNames("dsn-popover__header", className),
175
+ ...props,
176
+ children: [children, /* @__PURE__ */ jsx(Button, {
177
+ variant: "subtle",
178
+ size: "small",
179
+ iconOnly: true,
180
+ onClick: onClose,
181
+ iconStart: /* @__PURE__ */ jsx(Icon, {
182
+ name: "x",
183
+ "aria-hidden": true
184
+ }),
185
+ children: "Sluiten"
186
+ })]
187
+ });
188
+ });
189
+ PopoverHeader.displayName = "PopoverHeader";
190
+ /**
191
+ * PopoverHeading
192
+ * De heading van de popover. ID wordt automatisch gegenereerd voor aria-labelledby.
193
+ */
194
+ const PopoverHeading = React.forwardRef(({ className, level = 2, children, ...props }, ref) => {
195
+ const { headingId } = React.useContext(PopoverContext);
196
+ const Tag = `h${level}`;
197
+ return /* @__PURE__ */ jsx(Tag, {
198
+ ref,
199
+ id: headingId,
200
+ className: classNames("dsn-popover-heading", className),
201
+ ...props,
202
+ children
203
+ });
204
+ });
205
+ PopoverHeading.displayName = "PopoverHeading";
206
+ /**
207
+ * PopoverBody
208
+ * De inhoudssectie van de popover.
209
+ */
210
+ const PopoverBody = React.forwardRef(({ className, children, ...props }, ref) => {
211
+ return /* @__PURE__ */ jsx("div", {
212
+ ref,
213
+ className: classNames("dsn-popover__body", className),
214
+ ...props,
215
+ children
216
+ });
217
+ });
218
+ PopoverBody.displayName = "PopoverBody";
219
+ /**
220
+ * PopoverFooter
221
+ * De voettekst van de popover met actieknoppen.
222
+ */
223
+ const PopoverFooter = React.forwardRef(({ className, children, ...props }, ref) => {
224
+ return /* @__PURE__ */ jsx("div", {
225
+ ref,
226
+ className: classNames("dsn-popover__footer", className),
227
+ ...props,
228
+ children
229
+ });
230
+ });
231
+ PopoverFooter.displayName = "PopoverFooter";
232
+ //#endregion
233
+ export { Popover, PopoverBody, PopoverFooter, PopoverHeader, PopoverHeading };
234
+
235
+ //# sourceMappingURL=Popover2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popover2.mjs","names":["toggleEvent"],"sources":["../../src/Popover/Popover.tsx"],"sourcesContent":["import React from 'react';\nimport { classNames } from '@dsn-starter-kit/core';\nimport { Button } from '../Button';\nimport { Icon } from '../Icon';\nimport './Popover.css';\n\n/*\n * React 18 ondersteunt het `popover`-attribuut en `onToggle` niet natively in de\n * JSX-types. Module-uitbreiding voegt de ontbrekende types toe.\n */\ndeclare module 'react' {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface HTMLAttributes<T> {\n popover?: 'auto' | 'manual' | '' | undefined;\n popoverTarget?: string | undefined;\n popoverTargetAction?: 'hide' | 'show' | 'toggle' | undefined;\n }\n}\n\n/*\n * HTMLElement.showPopover / hidePopover zijn nog niet in alle TypeScript DOM-libs.\n * Declaratie toegevoegd voor veilig gebruik.\n */\ndeclare global {\n interface HTMLElement {\n showPopover(): void;\n hidePopover(): void;\n }\n}\n\n// =============================================================================\n// Types\n// =============================================================================\n\ntype Placement = 'top' | 'bottom' | 'start' | 'end';\n\n// =============================================================================\n// Positioneringshelper\n// =============================================================================\n\nconst GAP = 4; // px afstand tussen trigger en popover\n\nfunction positionPopover(\n popover: HTMLElement,\n trigger: HTMLElement,\n placement: Placement\n): void {\n const triggerRect = trigger.getBoundingClientRect();\n // offsetWidth/offsetHeight — onaangepast door CSS transforms (zoals @starting-style scale).\n // getBoundingClientRect geeft de getransformeerde afmetingen, wat leidt tot onjuiste clamping.\n const popoverWidth = popover.offsetWidth;\n const popoverHeight = popover.offsetHeight;\n const popoverRect = { width: popoverWidth, height: popoverHeight };\n const isRTL =\n document.documentElement.dir === 'rtl' ||\n getComputedStyle(trigger).direction === 'rtl';\n\n let top: number;\n let left: number;\n\n switch (placement) {\n case 'bottom':\n top = triggerRect.bottom + GAP;\n left = isRTL ? triggerRect.right - popoverRect.width : triggerRect.left;\n break;\n case 'top':\n top = triggerRect.top - popoverRect.height - GAP;\n left = isRTL ? triggerRect.right - popoverRect.width : triggerRect.left;\n break;\n case 'end':\n top = triggerRect.top;\n left = isRTL\n ? triggerRect.left - popoverRect.width - GAP\n : triggerRect.right + GAP;\n break;\n case 'start':\n top = triggerRect.top;\n left = isRTL\n ? triggerRect.right + GAP\n : triggerRect.left - popoverRect.width - GAP;\n break;\n default:\n top = triggerRect.bottom + GAP;\n left = triggerRect.left;\n }\n\n // Klamp binnen het viewport (8px marge)\n const margin = 8;\n left = Math.max(\n margin,\n Math.min(left, window.innerWidth - popoverRect.width - margin)\n );\n top = Math.max(\n margin,\n Math.min(top, window.innerHeight - popoverRect.height - margin)\n );\n\n popover.style.top = `${top}px`;\n popover.style.left = `${left}px`;\n popover.style.right = 'auto';\n popover.style.bottom = 'auto';\n}\n\n// Zet focus op het eerste interactieve element in de popover\nfunction focusFirstInteractive(container: HTMLElement): void {\n const selector = [\n 'button:not(:disabled)',\n 'a[href]',\n 'input:not(:disabled)',\n 'select:not(:disabled)',\n 'textarea:not(:disabled)',\n '[tabindex]:not([tabindex=\"-1\"])',\n ].join(', ');\n const first = container.querySelector<HTMLElement>(selector);\n if (first) {\n first.focus();\n } else {\n container.focus();\n }\n}\n\n// =============================================================================\n// Context\n// =============================================================================\n\ninterface PopoverContextValue {\n headingId: string;\n onClose?: () => void;\n}\n\nconst PopoverContext = React.createContext<PopoverContextValue>({\n headingId: '',\n});\n\n// =============================================================================\n// Popover (root)\n// =============================================================================\n\nexport interface PopoverProps extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'children'\n> {\n /**\n * Bepaalt of de popover getoond wordt.\n */\n isOpen: boolean;\n\n /**\n * Callback bij sluiten (Escape, klik buiten, sluitknop in header).\n */\n onClose?: () => void;\n\n /**\n * Referentie naar het triggerelement voor positionering en focus-herstel.\n */\n triggerRef: React.RefObject<HTMLElement>;\n\n /**\n * Gewenste plaatsing relatief aan het triggerelement.\n * @default 'bottom'\n */\n placement?: Placement;\n\n /**\n * Toegankelijke naam voor popovers zonder `PopoverHeader`/`PopoverHeading`.\n * Gebruik `aria-labelledby` via context wanneer er wél een heading is.\n */\n label?: string;\n\n /**\n * Subcomponenten: `PopoverHeader`, `PopoverBody`, `PopoverFooter`\n */\n children?: React.ReactNode;\n}\n\n/**\n * Popover component\n * Lichtgewicht, contextgebonden overlay verankerd aan een triggerelement.\n *\n * Gebaseerd op de HTML Popover API (`popover=\"auto\"`) voor ingebakken\n * light-dismiss en top-layer gedrag. Positionering via JavaScript.\n *\n * @example\n * ```tsx\n * const triggerRef = useRef<HTMLButtonElement>(null);\n * const [isOpen, setIsOpen] = useState(false);\n *\n * <Button ref={triggerRef} onClick={() => setIsOpen(true)}>Opties</Button>\n * <Popover isOpen={isOpen} onClose={() => setIsOpen(false)} triggerRef={triggerRef} label=\"Opties\">\n * <PopoverBody>\n * <Menu>...</Menu>\n * </PopoverBody>\n * </Popover>\n * ```\n */\nexport const Popover = React.forwardRef<HTMLDivElement, PopoverProps>(\n (\n {\n className,\n isOpen,\n onClose,\n triggerRef,\n placement = 'bottom',\n label,\n children,\n ...props\n },\n ref\n ) => {\n const internalRef = React.useRef<HTMLDivElement>(null);\n const popoverRef = (ref as React.RefObject<HTMLDivElement>) ?? internalRef;\n const headingId = React.useId();\n\n // Toon/verberg popover via de Popover API\n React.useEffect(() => {\n const el = popoverRef.current;\n if (!el) return;\n\n if (isOpen) {\n el.showPopover();\n const trigger = triggerRef.current;\n if (trigger) {\n positionPopover(el, trigger, placement);\n }\n focusFirstInteractive(el);\n } else {\n // hidePopover gooit een fout als de popover al gesloten is\n try {\n el.hidePopover();\n } catch {\n // popover was al gesloten — geen actie nodig\n }\n }\n }, [isOpen, placement, triggerRef, popoverRef]);\n\n // Synchroniseer aria-expanded op het triggerelement\n React.useEffect(() => {\n const trigger = triggerRef.current;\n if (!trigger) return;\n trigger.setAttribute('aria-expanded', isOpen ? 'true' : 'false');\n return () => {\n trigger.setAttribute('aria-expanded', 'false');\n };\n }, [isOpen, triggerRef]);\n\n // Verwerk het toggle-event van de Popover API (Escape / klik buiten binnen hetzelfde document)\n // onToggle is niet beschikbaar als JSX-prop op div in React 18 — gebruik addEventListener.\n // Gebruik een ref voor onClose zodat de listener stabiel blijft en nooit stale is.\n const onCloseRef = React.useRef(onClose);\n onCloseRef.current = onClose;\n\n React.useEffect(() => {\n const el = popoverRef.current;\n if (!el) return;\n\n const handleToggle = (event: Event) => {\n const toggleEvent = event as Event & { newState?: string };\n if (toggleEvent.newState === 'closed') {\n onCloseRef.current?.();\n triggerRef.current?.focus();\n }\n };\n\n el.addEventListener('toggle', handleToggle);\n return () => {\n el.removeEventListener('toggle', handleToggle);\n };\n }, [triggerRef, popoverRef]);\n\n // Fallback light-dismiss via pointerdown — vangt klikken buiten het popover op\n // in contexten waar de Popover API's native light-dismiss niet bereikbaar is\n // (bijv. iframe-grenzen, of oudere browsers zonder Popover API).\n React.useEffect(() => {\n if (!isOpen) return;\n const el = popoverRef.current;\n if (!el) return;\n\n const handlePointerDown = (event: PointerEvent) => {\n const target = event.target as Node;\n // Sluit niet als er op de popover zelf of het triggerelement geklikt wordt\n if (el.contains(target) || triggerRef.current?.contains(target)) return;\n onCloseRef.current?.();\n triggerRef.current?.focus();\n };\n\n document.addEventListener('pointerdown', handlePointerDown);\n return () => {\n document.removeEventListener('pointerdown', handlePointerDown);\n };\n }, [isOpen, triggerRef, popoverRef]);\n\n const classes = classNames(\n 'dsn-popover',\n `dsn-popover--placement-${placement}`,\n className\n );\n\n const ariaProps = label\n ? { 'aria-label': label }\n : { 'aria-labelledby': headingId };\n\n return (\n <PopoverContext.Provider value={{ headingId, onClose }}>\n <div\n ref={popoverRef}\n popover=\"auto\"\n className={classes}\n role=\"dialog\"\n aria-modal=\"false\"\n tabIndex={-1}\n {...ariaProps}\n {...props}\n >\n {children}\n </div>\n </PopoverContext.Provider>\n );\n }\n);\n\nPopover.displayName = 'Popover';\n\n// =============================================================================\n// PopoverHeader\n// =============================================================================\n\nexport interface PopoverHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Inhoud van de header — doorgaans een `PopoverHeading`.\n * De sluitknop wordt automatisch geïnjecteerd.\n */\n children?: React.ReactNode;\n}\n\n/**\n * PopoverHeader\n * De headerstrook van de popover met heading en sluitknop.\n */\nexport const PopoverHeader = React.forwardRef<\n HTMLDivElement,\n PopoverHeaderProps\n>(({ className, children, ...props }, ref) => {\n const { onClose } = React.useContext(PopoverContext);\n\n return (\n <div\n ref={ref}\n className={classNames('dsn-popover__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\nPopoverHeader.displayName = 'PopoverHeader';\n\n// =============================================================================\n// PopoverHeading\n// =============================================================================\n\nexport interface PopoverHeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {\n /**\n * Semantisch heading-niveau. Kies op basis van documenthiërarchie.\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 * PopoverHeading\n * De heading van de popover. ID wordt automatisch gegenereerd voor aria-labelledby.\n */\nexport const PopoverHeading = React.forwardRef<\n HTMLHeadingElement,\n PopoverHeadingProps\n>(({ className, level = 2, children, ...props }, ref) => {\n const { headingId } = React.useContext(PopoverContext);\n const Tag = `h${level}` as React.ElementType;\n\n return (\n <Tag\n ref={ref}\n id={headingId}\n className={classNames('dsn-popover-heading', className)}\n {...props}\n >\n {children}\n </Tag>\n );\n});\n\nPopoverHeading.displayName = 'PopoverHeading';\n\n// =============================================================================\n// PopoverBody\n// =============================================================================\n\nexport interface PopoverBodyProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * De hoofdinhoud van de popover — willekeurige slot-content.\n */\n children?: React.ReactNode;\n}\n\n/**\n * PopoverBody\n * De inhoudssectie van de popover.\n */\nexport const PopoverBody = React.forwardRef<HTMLDivElement, PopoverBodyProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={classNames('dsn-popover__body', className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nPopoverBody.displayName = 'PopoverBody';\n\n// =============================================================================\n// PopoverFooter\n// =============================================================================\n\nexport interface PopoverFooterProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Actieknoppen of slotzin van de popover.\n */\n children?: React.ReactNode;\n}\n\n/**\n * PopoverFooter\n * De voettekst van de popover met actieknoppen.\n */\nexport const PopoverFooter = React.forwardRef<\n HTMLDivElement,\n PopoverFooterProps\n>(({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={classNames('dsn-popover__footer', className)}\n {...props}\n >\n {children}\n </div>\n );\n});\n\nPopoverFooter.displayName = 'PopoverFooter';\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Popover, PopoverBody, PopoverBodyProps, PopoverFooter, PopoverFooterProps, PopoverHeader, PopoverHeaderProps, PopoverHeading, PopoverHeadingProps, PopoverProps } from "./Popover.mjs";
2
+ export { Popover, PopoverBody, type PopoverBodyProps, PopoverFooter, type PopoverFooterProps, PopoverHeader, type PopoverHeaderProps, PopoverHeading, type PopoverHeadingProps, type PopoverProps };
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ //#region src/PreHeading/PreHeading.d.ts
3
+ interface PreHeadingProps extends React.HTMLAttributes<HTMLSpanElement> {
4
+ children?: React.ReactNode;
5
+ className?: string;
6
+ }
7
+ declare const PreHeading: React.ForwardRefExoticComponent<PreHeadingProps & React.RefAttributes<HTMLSpanElement>>;
8
+ //#endregion
9
+ export { PreHeading, PreHeadingProps };
10
+ //# sourceMappingURL=PreHeading.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PreHeading.d.mts","names":[],"sources":["../../src/PreHeading/PreHeading.tsx"],"mappings":";;UAIiB,wBAAwB,MAAM,eAAe;EAC5D,WAAW,MAAM;EACjB;;cAGW,YAAU,MAAA,0BAAA,kBAAA,MAAA,cAAA"}
@@ -0,0 +1,18 @@
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/PreHeading/PreHeading.tsx
6
+ const PreHeading = React.forwardRef(({ children, className, ...props }, ref) => {
7
+ return /* @__PURE__ */ jsx("span", {
8
+ ref,
9
+ className: classNames("dsn-pre-heading", className),
10
+ ...props,
11
+ children
12
+ });
13
+ });
14
+ PreHeading.displayName = "PreHeading";
15
+ //#endregion
16
+ export { PreHeading };
17
+
18
+ //# sourceMappingURL=PreHeading2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PreHeading2.mjs","names":[],"sources":["../../src/PreHeading/PreHeading.tsx"],"sourcesContent":["import React from 'react';\nimport { classNames } from '@dsn-starter-kit/core';\nimport './PreHeading.css';\n\nexport interface PreHeadingProps extends React.HTMLAttributes<HTMLSpanElement> {\n children?: React.ReactNode;\n className?: string;\n}\n\nexport const PreHeading = React.forwardRef<HTMLSpanElement, PreHeadingProps>(\n ({ children, className, ...props }, ref) => {\n return (\n <span\n ref={ref}\n className={classNames('dsn-pre-heading', className)}\n {...props}\n >\n {children}\n </span>\n );\n }\n);\n\nPreHeading.displayName = 'PreHeading';\n"],"mappings":";;;;;AASA,MAAa,aAAa,MAAM,YAC7B,EAAE,UAAU,WAAW,GAAG,SAAS,QAAQ;CAC1C,OACE,oBAAC,QAAD;EACO;EACL,WAAW,WAAW,mBAAmB,SAAS;EAClD,GAAI;EAEH;CACG,CAAA;AAEV,CACF;AAEA,WAAW,cAAc"}
@@ -0,0 +1,2 @@
1
+ import { PreHeading, PreHeadingProps } from "./PreHeading.mjs";
2
+ export { PreHeading, type PreHeadingProps };