@helsenorge/designsystem-react 13.5.0 → 13.6.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 (583) hide show
  1. package/lib/AnchorLink.js +2 -2
  2. package/lib/AnchorLink.js.map +1 -1
  3. package/lib/Avatar.js +2 -2
  4. package/lib/Avatar.js.map +1 -1
  5. package/lib/Badge.js +2 -2
  6. package/lib/Badge.js.map +1 -1
  7. package/lib/Button.js +6 -6
  8. package/lib/Button.js.map +1 -1
  9. package/lib/CHANGELOG.md +24 -1
  10. package/lib/Checkbox.js +6 -6
  11. package/lib/Checkbox.js.map +1 -1
  12. package/lib/Close.js +3 -3
  13. package/lib/Close.js.map +1 -1
  14. package/lib/DictionaryTrigger.js +2 -2
  15. package/lib/DictionaryTrigger.js.map +1 -1
  16. package/lib/Drawer.js +5 -5
  17. package/lib/Drawer.js.map +1 -1
  18. package/lib/Duolist.js +8 -5
  19. package/lib/Duolist.js.map +1 -1
  20. package/lib/ElementHeader.js +9 -9
  21. package/lib/ElementHeader.js.map +1 -1
  22. package/lib/ElementHeaderText.js +4 -4
  23. package/lib/ElementHeaderText.js.map +1 -1
  24. package/lib/ErrorWrapper.js +2 -2
  25. package/lib/ErrorWrapper.js.map +1 -1
  26. package/lib/Expander.js +12 -8
  27. package/lib/Expander.js.map +1 -1
  28. package/lib/FormFieldTag.js +2 -2
  29. package/lib/FormFieldTag.js.map +1 -1
  30. package/lib/FormGroup.js +9 -8
  31. package/lib/FormGroup.js.map +1 -1
  32. package/lib/FormLayout.js +3 -3
  33. package/lib/FormLayout.js.map +1 -1
  34. package/lib/HelpDetails.js +3 -3
  35. package/lib/HelpDetails.js.map +1 -1
  36. package/lib/HelpTriggerIcon.js +2 -2
  37. package/lib/HelpTriggerIcon.js.map +1 -1
  38. package/lib/HelpTriggerStandalone.js +2 -2
  39. package/lib/HelpTriggerStandalone.js.map +1 -1
  40. package/lib/HighlightPanel.js +3 -3
  41. package/lib/HighlightPanel.js.map +1 -1
  42. package/lib/HorizontalScroll.js +4 -4
  43. package/lib/HorizontalScroll.js.map +1 -1
  44. package/lib/Icon.js +2 -2
  45. package/lib/Icon.js.map +1 -1
  46. package/lib/InfoTeaser.js +5 -4
  47. package/lib/InfoTeaser.js.map +1 -1
  48. package/lib/Input.js +4 -4
  49. package/lib/Input.js.map +1 -1
  50. package/lib/Label.js +5 -5
  51. package/lib/Label.js.map +1 -1
  52. package/lib/LinkList.js +5 -5
  53. package/lib/LinkList.js.map +1 -1
  54. package/lib/List.js +2 -2
  55. package/lib/List.js.map +1 -1
  56. package/lib/ListEditMode.js +4 -4
  57. package/lib/ListEditMode.js.map +1 -1
  58. package/lib/MaxCharacters.js +2 -2
  59. package/lib/MaxCharacters.js.map +1 -1
  60. package/lib/Panel.js +63 -39
  61. package/lib/Panel.js.map +1 -1
  62. package/lib/PanelOld.js +14 -14
  63. package/lib/PanelOld.js.map +1 -1
  64. package/lib/PanelTitle.js +2 -2
  65. package/lib/PanelTitle.js.map +1 -1
  66. package/lib/PopOver.js +2 -2
  67. package/lib/PopOver.js.map +1 -1
  68. package/lib/RadioButton.js +5 -5
  69. package/lib/RadioButton.js.map +1 -1
  70. package/lib/Select.js +4 -4
  71. package/lib/Select.js.map +1 -1
  72. package/lib/SingleSelectItem.js +3 -3
  73. package/lib/SingleSelectItem.js.map +1 -1
  74. package/lib/Slider.js +4 -4
  75. package/lib/Slider.js.map +1 -1
  76. package/lib/Spacer.js +2 -2
  77. package/lib/Spacer.js.map +1 -1
  78. package/lib/StatusDot.js +4 -4
  79. package/lib/StatusDot.js.map +1 -1
  80. package/lib/StatusDotList.js +2 -2
  81. package/lib/StatusDotList.js.map +1 -1
  82. package/lib/StepButtons.js +5 -5
  83. package/lib/StepButtons.js.map +1 -1
  84. package/lib/TabList.js +8 -8
  85. package/lib/TabList.js.map +1 -1
  86. package/lib/TabPanel.js +2 -2
  87. package/lib/TabPanel.js.map +1 -1
  88. package/lib/Table.js +2 -2
  89. package/lib/Table.js.map +1 -1
  90. package/lib/TableBody.js +2 -2
  91. package/lib/TableBody.js.map +1 -1
  92. package/lib/TableCell.js +2 -2
  93. package/lib/TableCell.js.map +1 -1
  94. package/lib/TableExpandedRow.js +4 -4
  95. package/lib/TableExpandedRow.js.map +1 -1
  96. package/lib/TableExpanderCell.js +2 -2
  97. package/lib/TableExpanderCell.js.map +1 -1
  98. package/lib/TableHead.js +2 -2
  99. package/lib/TableHead.js.map +1 -1
  100. package/lib/TableHeadCell.js +3 -3
  101. package/lib/TableHeadCell.js.map +1 -1
  102. package/lib/TableRow.js +3 -3
  103. package/lib/TableRow.js.map +1 -1
  104. package/lib/Textarea.js +4 -4
  105. package/lib/Textarea.js.map +1 -1
  106. package/lib/Title.js +2 -2
  107. package/lib/Title.js.map +1 -1
  108. package/lib/Toast.js +3 -3
  109. package/lib/Toast.js.map +1 -1
  110. package/lib/__mocks__/uuid.js +0 -1
  111. package/lib/__mocks__/uuid.js.map +1 -1
  112. package/lib/components/AnchorLink/index.js +0 -13
  113. package/lib/components/ArticleTeaser/index.js +4 -4
  114. package/lib/components/ArticleTeaser/index.js.map +1 -1
  115. package/lib/components/AsChildSlot/index.js +0 -1
  116. package/lib/components/Avatar/index.js +0 -4
  117. package/lib/components/Badge/index.js +0 -8
  118. package/lib/components/Button/index.js +0 -17
  119. package/lib/components/Checkbox/index.js +0 -44
  120. package/lib/components/Chip/index.js +2 -2
  121. package/lib/components/Chip/index.js.map +1 -1
  122. package/lib/components/Close/index.js +0 -8
  123. package/lib/components/DictionaryTrigger/index.js +0 -1
  124. package/lib/components/Drawer/index.js +0 -37
  125. package/lib/components/Drawer/styles.module.scss +6 -0
  126. package/lib/components/Dropdown/SingleSelect/index.js +0 -2
  127. package/lib/components/Dropdown/SingleSelect/index.js.map +1 -1
  128. package/lib/components/Dropdown/index.js +5 -42
  129. package/lib/components/Dropdown/index.js.map +1 -1
  130. package/lib/components/DropdownOld/index.js +3 -31
  131. package/lib/components/DropdownOld/index.js.map +1 -1
  132. package/lib/components/Duolist/Duolist.d.ts +3 -1
  133. package/lib/components/Duolist/index.js +0 -4
  134. package/lib/components/ElementHeader/ElementHeaderText/index.js +0 -9
  135. package/lib/components/ElementHeader/ElementHeaderText/index.js.map +1 -1
  136. package/lib/components/ElementHeader/StatusDotList/index.js +0 -34
  137. package/lib/components/ElementHeader/index.js +0 -48
  138. package/lib/components/ElementHeader/index.js.map +1 -1
  139. package/lib/components/EmptyState/index.js +2 -4
  140. package/lib/components/EmptyState/index.js.map +1 -1
  141. package/lib/components/Expander/index.js +0 -24
  142. package/lib/components/Expander/styles.module.scss +16 -7
  143. package/lib/components/Expander/styles.module.scss.d.ts +2 -1
  144. package/lib/components/ExpanderHierarchy/index.js +7 -8
  145. package/lib/components/ExpanderHierarchy/index.js.map +1 -1
  146. package/lib/components/ExpanderList/index.js +6 -52
  147. package/lib/components/ExpanderList/index.js.map +1 -1
  148. package/lib/components/EyebrowHeader/index.js +0 -1
  149. package/lib/components/EyebrowHeader/index.js.map +1 -1
  150. package/lib/components/FavoriteButton/index.js +2 -3
  151. package/lib/components/FavoriteButton/index.js.map +1 -1
  152. package/lib/components/FormFieldTag/index.js +0 -2
  153. package/lib/components/FormGroup/FormGroup.d.ts +5 -0
  154. package/lib/components/FormGroup/index.js +0 -55
  155. package/lib/components/FormGroup/index.js.map +1 -1
  156. package/lib/components/FormLayout/index.js +0 -1
  157. package/lib/components/HelpBubble/index.js +3 -20
  158. package/lib/components/HelpBubble/index.js.map +1 -1
  159. package/lib/components/HelpDrawer/index.js +0 -36
  160. package/lib/components/HelpDrawer/index.js.map +1 -1
  161. package/lib/components/HelpExpanderInline/index.js +0 -2
  162. package/lib/components/HelpExpanderInline/index.js.map +1 -1
  163. package/lib/components/HelpExpanderStandalone/index.js +0 -6
  164. package/lib/components/HelpExpanderStandalone/index.js.map +1 -1
  165. package/lib/components/HelpPanel/index.js +2 -34
  166. package/lib/components/HelpPanel/index.js.map +1 -1
  167. package/lib/components/HelpTeaser/HelpTeaser.d.ts +2 -0
  168. package/lib/components/HelpTeaser/index.js +2 -9
  169. package/lib/components/HelpTeaser/index.js.map +1 -1
  170. package/lib/components/HelpTooltip/index.js +0 -2
  171. package/lib/components/HelpTooltip/index.js.map +1 -1
  172. package/lib/components/HelpTriggerIcon/index.js +0 -4
  173. package/lib/components/HelpTriggerInline/index.js +2 -2
  174. package/lib/components/HelpTriggerInline/index.js.map +1 -1
  175. package/lib/components/HelpTriggerStandalone/index.js +0 -8
  176. package/lib/components/HighlightPanel/index.js +0 -32
  177. package/lib/components/Highlighter/index.js +0 -8
  178. package/lib/components/HorizontalScroll/index.js +0 -5
  179. package/lib/components/Icons/AlarmClock.js +0 -1
  180. package/lib/components/Icons/AlarmClock.js.map +1 -1
  181. package/lib/components/Icons/AlertSignFill.js +0 -2
  182. package/lib/components/Icons/AlertSignStroke.js +0 -2
  183. package/lib/components/Icons/Archive.js +0 -1
  184. package/lib/components/Icons/Archive.js.map +1 -1
  185. package/lib/components/Icons/ArrowDown.js +0 -2
  186. package/lib/components/Icons/ArrowLeft.js +0 -1
  187. package/lib/components/Icons/ArrowLeft.js.map +1 -1
  188. package/lib/components/Icons/ArrowRight.js +0 -2
  189. package/lib/components/Icons/ArrowUp.js +0 -2
  190. package/lib/components/Icons/ArrowUpRight.js +0 -2
  191. package/lib/components/Icons/Attachment.js +0 -1
  192. package/lib/components/Icons/Attachment.js.map +1 -1
  193. package/lib/components/Icons/Avatar.js +0 -1
  194. package/lib/components/Icons/Avatar.js.map +1 -1
  195. package/lib/components/Icons/Braille.js +0 -1
  196. package/lib/components/Icons/Braille.js.map +1 -1
  197. package/lib/components/Icons/Bus.js +0 -1
  198. package/lib/components/Icons/Bus.js.map +1 -1
  199. package/lib/components/Icons/Calendar.js +0 -2
  200. package/lib/components/Icons/CalendarChange.js +0 -1
  201. package/lib/components/Icons/CalendarChange.js.map +1 -1
  202. package/lib/components/Icons/CalendarCheck.js +0 -1
  203. package/lib/components/Icons/CalendarCheck.js.map +1 -1
  204. package/lib/components/Icons/CalendarSave.js +0 -1
  205. package/lib/components/Icons/CalendarSave.js.map +1 -1
  206. package/lib/components/Icons/Candle.js +0 -1
  207. package/lib/components/Icons/Candle.js.map +1 -1
  208. package/lib/components/Icons/Change.js +0 -1
  209. package/lib/components/Icons/Change.js.map +1 -1
  210. package/lib/components/Icons/Check.js +0 -2
  211. package/lib/components/Icons/CheckFill.js +0 -2
  212. package/lib/components/Icons/ChevronDown.js +0 -2
  213. package/lib/components/Icons/ChevronLeft.js +0 -2
  214. package/lib/components/Icons/ChevronRight.js +0 -2
  215. package/lib/components/Icons/ChevronUp.js +0 -2
  216. package/lib/components/Icons/ChevronsDown.js +0 -1
  217. package/lib/components/Icons/ChevronsDown.js.map +1 -1
  218. package/lib/components/Icons/ChevronsUp.js +0 -1
  219. package/lib/components/Icons/ChevronsUp.js.map +1 -1
  220. package/lib/components/Icons/Contacts.js +0 -1
  221. package/lib/components/Icons/Contacts.js.map +1 -1
  222. package/lib/components/Icons/Copy.js +0 -1
  223. package/lib/components/Icons/Copy.js.map +1 -1
  224. package/lib/components/Icons/DotActive.js +0 -1
  225. package/lib/components/Icons/DotActive.js.map +1 -1
  226. package/lib/components/Icons/DotAlert.js +0 -1
  227. package/lib/components/Icons/DotAlert.js.map +1 -1
  228. package/lib/components/Icons/DotCancelled.js +0 -1
  229. package/lib/components/Icons/DotCancelled.js.map +1 -1
  230. package/lib/components/Icons/DotHalfDisc.js +0 -1
  231. package/lib/components/Icons/DotHalfDisc.js.map +1 -1
  232. package/lib/components/Icons/DotInactive.js +0 -1
  233. package/lib/components/Icons/DotInactive.js.map +1 -1
  234. package/lib/components/Icons/DotInfo.js +0 -1
  235. package/lib/components/Icons/DotInfo.js.map +1 -1
  236. package/lib/components/Icons/DotLookingGlass.js +0 -1
  237. package/lib/components/Icons/DotLookingGlass.js.map +1 -1
  238. package/lib/components/Icons/DotPending.js +0 -1
  239. package/lib/components/Icons/DotPending.js.map +1 -1
  240. package/lib/components/Icons/DotQuestionMark.js +0 -1
  241. package/lib/components/Icons/DotQuestionMark.js.map +1 -1
  242. package/lib/components/Icons/DotSuccess.js +0 -1
  243. package/lib/components/Icons/DotSuccess.js.map +1 -1
  244. package/lib/components/Icons/DotTransparent.js +0 -1
  245. package/lib/components/Icons/DotTransparent.js.map +1 -1
  246. package/lib/components/Icons/DotWarningTriangle.js +0 -1
  247. package/lib/components/Icons/DotWarningTriangle.js.map +1 -1
  248. package/lib/components/Icons/Download.js +0 -1
  249. package/lib/components/Icons/Download.js.map +1 -1
  250. package/lib/components/Icons/Drag.js +0 -1
  251. package/lib/components/Icons/Drag.js.map +1 -1
  252. package/lib/components/Icons/EChat.js +0 -1
  253. package/lib/components/Icons/EChat.js.map +1 -1
  254. package/lib/components/Icons/Ear.js +0 -1
  255. package/lib/components/Icons/Ear.js.map +1 -1
  256. package/lib/components/Icons/EarDeaf.js +0 -1
  257. package/lib/components/Icons/EarDeaf.js.map +1 -1
  258. package/lib/components/Icons/EarHearingAid.js +0 -1
  259. package/lib/components/Icons/EarHearingAid.js.map +1 -1
  260. package/lib/components/Icons/EarVolume.js +0 -1
  261. package/lib/components/Icons/EarVolume.js.map +1 -1
  262. package/lib/components/Icons/Edit.js +0 -1
  263. package/lib/components/Icons/Edit.js.map +1 -1
  264. package/lib/components/Icons/EmergencyCall.js +0 -1
  265. package/lib/components/Icons/EmergencyCall.js.map +1 -1
  266. package/lib/components/Icons/EmoticonAnnoyed.js +0 -1
  267. package/lib/components/Icons/EmoticonAnnoyed.js.map +1 -1
  268. package/lib/components/Icons/EmoticonDelighted.js +0 -1
  269. package/lib/components/Icons/EmoticonDelighted.js.map +1 -1
  270. package/lib/components/Icons/EmoticonDisappointed.js +0 -1
  271. package/lib/components/Icons/EmoticonDisappointed.js.map +1 -1
  272. package/lib/components/Icons/EmoticonHappy.js +0 -1
  273. package/lib/components/Icons/EmoticonHappy.js.map +1 -1
  274. package/lib/components/Icons/EmoticonMeh.js +0 -1
  275. package/lib/components/Icons/EmoticonMeh.js.map +1 -1
  276. package/lib/components/Icons/EnterFullScreen.js +0 -1
  277. package/lib/components/Icons/EnterFullScreen.js.map +1 -1
  278. package/lib/components/Icons/Envelope.js +0 -1
  279. package/lib/components/Icons/Envelope.js.map +1 -1
  280. package/lib/components/Icons/Eraser.js +0 -1
  281. package/lib/components/Icons/Eraser.js.map +1 -1
  282. package/lib/components/Icons/ErrorSignFill.js +0 -2
  283. package/lib/components/Icons/ErrorSignStroke.js +0 -1
  284. package/lib/components/Icons/ErrorSignStroke.js.map +1 -1
  285. package/lib/components/Icons/ExitFullScreen.js +0 -1
  286. package/lib/components/Icons/ExitFullScreen.js.map +1 -1
  287. package/lib/components/Icons/Eye.js +0 -1
  288. package/lib/components/Icons/Eye.js.map +1 -1
  289. package/lib/components/Icons/FallingLeaf.js +0 -1
  290. package/lib/components/Icons/FallingLeaf.js.map +1 -1
  291. package/lib/components/Icons/File.js +0 -1
  292. package/lib/components/Icons/File.js.map +1 -1
  293. package/lib/components/Icons/Filter.js +0 -1
  294. package/lib/components/Icons/Filter.js.map +1 -1
  295. package/lib/components/Icons/Form.js +0 -1
  296. package/lib/components/Icons/Form.js.map +1 -1
  297. package/lib/components/Icons/Forward.js +0 -2
  298. package/lib/components/Icons/Gallery.js +0 -1
  299. package/lib/components/Icons/Gallery.js.map +1 -1
  300. package/lib/components/Icons/Glasses.js +0 -1
  301. package/lib/components/Icons/Glasses.js.map +1 -1
  302. package/lib/components/Icons/Globe.js +0 -1
  303. package/lib/components/Icons/Globe.js.map +1 -1
  304. package/lib/components/Icons/Graph.js +0 -1
  305. package/lib/components/Icons/Graph.js.map +1 -1
  306. package/lib/components/Icons/Group.js +0 -1
  307. package/lib/components/Icons/Group.js.map +1 -1
  308. package/lib/components/Icons/GroupTwins.js +0 -1
  309. package/lib/components/Icons/GroupTwins.js.map +1 -1
  310. package/lib/components/Icons/HTMLFile.js +0 -1
  311. package/lib/components/Icons/HTMLFile.js.map +1 -1
  312. package/lib/components/Icons/HandsAndHeart.js +0 -1
  313. package/lib/components/Icons/HandsAndHeart.js.map +1 -1
  314. package/lib/components/Icons/HealthcarePerson.js +0 -1
  315. package/lib/components/Icons/HealthcarePerson.js.map +1 -1
  316. package/lib/components/Icons/HealthcarePersonell.js +0 -1
  317. package/lib/components/Icons/HealthcarePersonell.js.map +1 -1
  318. package/lib/components/Icons/HearingProtection.js +0 -1
  319. package/lib/components/Icons/HearingProtection.js.map +1 -1
  320. package/lib/components/Icons/Heart.js +0 -1
  321. package/lib/components/Icons/Heart.js.map +1 -1
  322. package/lib/components/Icons/HelpSign.js +0 -1
  323. package/lib/components/Icons/HelpSign.js.map +1 -1
  324. package/lib/components/Icons/History.js +0 -1
  325. package/lib/components/Icons/History.js.map +1 -1
  326. package/lib/components/Icons/Home.js +0 -1
  327. package/lib/components/Icons/Home.js.map +1 -1
  328. package/lib/components/Icons/HomeFill.js +0 -1
  329. package/lib/components/Icons/HomeFill.js.map +1 -1
  330. package/lib/components/Icons/Hospital.js +0 -1
  331. package/lib/components/Icons/Hospital.js.map +1 -1
  332. package/lib/components/Icons/Hourglass.js +0 -1
  333. package/lib/components/Icons/Hourglass.js.map +1 -1
  334. package/lib/components/Icons/InfoSignFill.js +0 -2
  335. package/lib/components/Icons/InfoSignStroke.js +0 -1
  336. package/lib/components/Icons/InfoSignStroke.js.map +1 -1
  337. package/lib/components/Icons/Journal.js +0 -1
  338. package/lib/components/Icons/Journal.js.map +1 -1
  339. package/lib/components/Icons/LegalDocument.js +0 -1
  340. package/lib/components/Icons/LegalDocument.js.map +1 -1
  341. package/lib/components/Icons/List.js +0 -1
  342. package/lib/components/Icons/List.js.map +1 -1
  343. package/lib/components/Icons/Location.js +0 -1
  344. package/lib/components/Icons/Location.js.map +1 -1
  345. package/lib/components/Icons/LocationFill.js +0 -1
  346. package/lib/components/Icons/LocationFill.js.map +1 -1
  347. package/lib/components/Icons/Lock.js +0 -1
  348. package/lib/components/Icons/Lock.js.map +1 -1
  349. package/lib/components/Icons/Login.js +0 -1
  350. package/lib/components/Icons/Login.js.map +1 -1
  351. package/lib/components/Icons/Logout.js +0 -1
  352. package/lib/components/Icons/Logout.js.map +1 -1
  353. package/lib/components/Icons/MaleDoctorCompact.js +0 -1
  354. package/lib/components/Icons/MaleDoctorCompact.js.map +1 -1
  355. package/lib/components/Icons/MaleDoctorCompactFill.js +0 -1
  356. package/lib/components/Icons/MaleDoctorCompactFill.js.map +1 -1
  357. package/lib/components/Icons/Medicine.js +0 -1
  358. package/lib/components/Icons/Medicine.js.map +1 -1
  359. package/lib/components/Icons/Menu.js +0 -1
  360. package/lib/components/Icons/Menu.js.map +1 -1
  361. package/lib/components/Icons/Minus.js +0 -1
  362. package/lib/components/Icons/Minus.js.map +1 -1
  363. package/lib/components/Icons/MobilePhone.js +0 -1
  364. package/lib/components/Icons/MobilePhone.js.map +1 -1
  365. package/lib/components/Icons/NoAccess.js +0 -1
  366. package/lib/components/Icons/NoAccess.js.map +1 -1
  367. package/lib/components/Icons/NoEye.js +0 -1
  368. package/lib/components/Icons/NoEye.js.map +1 -1
  369. package/lib/components/Icons/NoFilter.js +0 -1
  370. package/lib/components/Icons/NoFilter.js.map +1 -1
  371. package/lib/components/Icons/PaperPlane.js +0 -1
  372. package/lib/components/Icons/PaperPlane.js.map +1 -1
  373. package/lib/components/Icons/Pause.js +0 -1
  374. package/lib/components/Icons/Pause.js.map +1 -1
  375. package/lib/components/Icons/Pencil.js +0 -2
  376. package/lib/components/Icons/PersonCancel.js +0 -1
  377. package/lib/components/Icons/PersonCancel.js.map +1 -1
  378. package/lib/components/Icons/PersonalPlan.js +0 -1
  379. package/lib/components/Icons/PersonalPlan.js.map +1 -1
  380. package/lib/components/Icons/Play.js +0 -1
  381. package/lib/components/Icons/Play.js.map +1 -1
  382. package/lib/components/Icons/PlusLarge.js +0 -1
  383. package/lib/components/Icons/PlusLarge.js.map +1 -1
  384. package/lib/components/Icons/PlusSmall.js +0 -2
  385. package/lib/components/Icons/Printer.js +0 -1
  386. package/lib/components/Icons/Printer.js.map +1 -1
  387. package/lib/components/Icons/QrCode.js +0 -1
  388. package/lib/components/Icons/QrCode.js.map +1 -1
  389. package/lib/components/Icons/Receptionist.js +0 -1
  390. package/lib/components/Icons/Receptionist.js.map +1 -1
  391. package/lib/components/Icons/Referral.js +0 -1
  392. package/lib/components/Icons/Referral.js.map +1 -1
  393. package/lib/components/Icons/Refresh.js +0 -1
  394. package/lib/components/Icons/Refresh.js.map +1 -1
  395. package/lib/components/Icons/Reply.js +0 -1
  396. package/lib/components/Icons/Reply.js.map +1 -1
  397. package/lib/components/Icons/Save.js +0 -1
  398. package/lib/components/Icons/Save.js.map +1 -1
  399. package/lib/components/Icons/ScreenReader.js +0 -1
  400. package/lib/components/Icons/ScreenReader.js.map +1 -1
  401. package/lib/components/Icons/Search.js +0 -1
  402. package/lib/components/Icons/Search.js.map +1 -1
  403. package/lib/components/Icons/SectionSign.js +0 -1
  404. package/lib/components/Icons/SectionSign.js.map +1 -1
  405. package/lib/components/Icons/Settings.js +0 -1
  406. package/lib/components/Icons/Settings.js.map +1 -1
  407. package/lib/components/Icons/SettingsFill.js +0 -1
  408. package/lib/components/Icons/SettingsFill.js.map +1 -1
  409. package/lib/components/Icons/Share.js +0 -1
  410. package/lib/components/Icons/Share.js.map +1 -1
  411. package/lib/components/Icons/SortDown.js +0 -1
  412. package/lib/components/Icons/SortDown.js.map +1 -1
  413. package/lib/components/Icons/SortUp.js +0 -1
  414. package/lib/components/Icons/SortUp.js.map +1 -1
  415. package/lib/components/Icons/SpeechBubble.js +0 -1
  416. package/lib/components/Icons/SpeechBubble.js.map +1 -1
  417. package/lib/components/Icons/Stopwatch.js +0 -1
  418. package/lib/components/Icons/Stopwatch.js.map +1 -1
  419. package/lib/components/Icons/Sun.js +0 -1
  420. package/lib/components/Icons/Sun.js.map +1 -1
  421. package/lib/components/Icons/SupportingPerson.js +0 -1
  422. package/lib/components/Icons/SupportingPerson.js.map +1 -1
  423. package/lib/components/Icons/TimePassing.js +0 -1
  424. package/lib/components/Icons/TimePassing.js.map +1 -1
  425. package/lib/components/Icons/Tombstone.js +0 -1
  426. package/lib/components/Icons/Tombstone.js.map +1 -1
  427. package/lib/components/Icons/Toolbox.js +0 -1
  428. package/lib/components/Icons/Toolbox.js.map +1 -1
  429. package/lib/components/Icons/TrashCan.js +0 -1
  430. package/lib/components/Icons/TrashCan.js.map +1 -1
  431. package/lib/components/Icons/TreatmentAids.js +0 -1
  432. package/lib/components/Icons/TreatmentAids.js.map +1 -1
  433. package/lib/components/Icons/TriangleX.js +0 -2
  434. package/lib/components/Icons/Undo.js +0 -2
  435. package/lib/components/Icons/Upload.js +0 -1
  436. package/lib/components/Icons/Upload.js.map +1 -1
  437. package/lib/components/Icons/Vaccine.js +0 -1
  438. package/lib/components/Icons/Vaccine.js.map +1 -1
  439. package/lib/components/Icons/VerticalDots.js +0 -2
  440. package/lib/components/Icons/VideoCamera.js +0 -1
  441. package/lib/components/Icons/VideoCamera.js.map +1 -1
  442. package/lib/components/Icons/VideoChat.js +0 -1
  443. package/lib/components/Icons/VideoChat.js.map +1 -1
  444. package/lib/components/Icons/Wallet.js +0 -1
  445. package/lib/components/Icons/Wallet.js.map +1 -1
  446. package/lib/components/Icons/Watch.js +0 -2
  447. package/lib/components/Icons/X.js +0 -2
  448. package/lib/components/Icons/Zoom.js +0 -1
  449. package/lib/components/Icons/Zoom.js.map +1 -1
  450. package/lib/components/Icons/ZoomInLeft.js +0 -1
  451. package/lib/components/Icons/ZoomInLeft.js.map +1 -1
  452. package/lib/components/Icons/ZoomOutLeft.js +0 -1
  453. package/lib/components/Icons/ZoomOutLeft.js.map +1 -1
  454. package/lib/components/Illustration/index.js +0 -2
  455. package/lib/components/Illustrations/BabyMobile.js +0 -2
  456. package/lib/components/Illustrations/BabyMobile.js.map +1 -1
  457. package/lib/components/Illustrations/BabyMobileMedium.js +0 -3
  458. package/lib/components/Illustrations/Child.js +0 -2
  459. package/lib/components/Illustrations/Child.js.map +1 -1
  460. package/lib/components/Illustrations/ChildMedium.js +0 -3
  461. package/lib/components/Illustrations/FacialRecognitionFingerprint.js +0 -2
  462. package/lib/components/Illustrations/FacialRecognitionFingerprint.js.map +1 -1
  463. package/lib/components/Illustrations/FacialRecognitionFingerprintMedium.js +0 -3
  464. package/lib/components/Illustrations/GiveBabyFood.js +0 -2
  465. package/lib/components/Illustrations/GiveBabyFood.js.map +1 -1
  466. package/lib/components/Illustrations/GiveBabyFoodMedium.js +0 -3
  467. package/lib/components/Illustrations/ReadLetters.js +0 -2
  468. package/lib/components/Illustrations/ReadLetters.js.map +1 -1
  469. package/lib/components/Illustrations/ReadLettersMedium.js +0 -3
  470. package/lib/components/Illustrations/Stroller.js +0 -2
  471. package/lib/components/Illustrations/Stroller.js.map +1 -1
  472. package/lib/components/Illustrations/StrollerMedium.js +0 -3
  473. package/lib/components/Illustrations/Support2.js +0 -2
  474. package/lib/components/Illustrations/Support2.js.map +1 -1
  475. package/lib/components/Illustrations/Support2Medium.js +0 -3
  476. package/lib/components/InfoTeaser/InfoTeaser.d.ts +2 -0
  477. package/lib/components/InfoTeaser/index.js +0 -8
  478. package/lib/components/InfoTeaser/styles.module.scss +0 -2
  479. package/lib/components/Input/Input.d.ts +2 -2
  480. package/lib/components/Input/index.js +0 -44
  481. package/lib/components/Label/index.js +0 -38
  482. package/lib/components/LazyIcon/index.js +0 -4
  483. package/lib/components/LazyIllustration/index.js +0 -6
  484. package/lib/components/LinkList/index.js +0 -54
  485. package/lib/components/List/index.js +0 -1
  486. package/lib/components/ListEditMode/index.js +0 -4
  487. package/lib/components/Loader/index.js +4 -5
  488. package/lib/components/Loader/index.js.map +1 -1
  489. package/lib/components/Logo/index.js +0 -4
  490. package/lib/components/Logo/index.js.map +1 -1
  491. package/lib/components/Modal/index.js +9 -30
  492. package/lib/components/Modal/index.js.map +1 -1
  493. package/lib/components/NotificationPanel/index.js +6 -34
  494. package/lib/components/NotificationPanel/index.js.map +1 -1
  495. package/lib/components/Panel/PanelTitle/index.js +0 -11
  496. package/lib/components/Panel/index.js +0 -31
  497. package/lib/components/Panel/index.js.map +1 -1
  498. package/lib/components/PanelList/PanelList.d.ts +6 -0
  499. package/lib/components/PanelList/index.js +3 -53
  500. package/lib/components/PanelList/index.js.map +1 -1
  501. package/lib/components/PanelListOld/index.js +2 -36
  502. package/lib/components/PanelListOld/index.js.map +1 -1
  503. package/lib/components/PanelOld/index.js +0 -35
  504. package/lib/components/PopMenu/index.js +3 -54
  505. package/lib/components/PopMenu/index.js.map +1 -1
  506. package/lib/components/PopOver/index.js +0 -3
  507. package/lib/components/Portal/index.js +0 -1
  508. package/lib/components/Progressbar/index.js +2 -2
  509. package/lib/components/Progressbar/index.js.map +1 -1
  510. package/lib/components/PromoPanel/index.js +2 -12
  511. package/lib/components/PromoPanel/index.js.map +1 -1
  512. package/lib/components/RadioButton/index.js +0 -43
  513. package/lib/components/Select/index.js +0 -43
  514. package/lib/components/Select/styles.module.scss +2 -0
  515. package/lib/components/ServiceMessage/index.js +5 -48
  516. package/lib/components/ServiceMessage/index.js.map +1 -1
  517. package/lib/components/SharingStatus/index.js +4 -4
  518. package/lib/components/SharingStatus/index.js.map +1 -1
  519. package/lib/components/Slider/index.js +0 -10
  520. package/lib/components/Spacer/index.js +0 -1
  521. package/lib/components/StatusDot/index.js +0 -33
  522. package/lib/components/Step/index.js +2 -2
  523. package/lib/components/Step/index.js.map +1 -1
  524. package/lib/components/StepButtons/index.js +0 -1
  525. package/lib/components/Stepper/index.js +2 -3
  526. package/lib/components/Stepper/index.js.map +1 -1
  527. package/lib/components/StickyNote/index.js +8 -11
  528. package/lib/components/StickyNote/index.js.map +1 -1
  529. package/lib/components/Table/TableBody/index.js +0 -13
  530. package/lib/components/Table/TableCell/index.js +0 -13
  531. package/lib/components/Table/TableExpandedRow/index.js +0 -29
  532. package/lib/components/Table/TableExpanderCell/index.js +0 -30
  533. package/lib/components/Table/TableHead/index.js +0 -13
  534. package/lib/components/Table/TableHeadCell/index.js +0 -16
  535. package/lib/components/Table/TableRow/index.js +0 -30
  536. package/lib/components/Table/index.js +0 -31
  537. package/lib/components/Table/index.js.map +1 -1
  538. package/lib/components/Tabs/TabList/index.js +0 -14
  539. package/lib/components/Tabs/index.js +4 -17
  540. package/lib/components/Tabs/index.js.map +1 -1
  541. package/lib/components/Tag/index.js +2 -4
  542. package/lib/components/Tag/index.js.map +1 -1
  543. package/lib/components/Textarea/Textarea.d.ts +1 -1
  544. package/lib/components/Textarea/index.js +0 -43
  545. package/lib/components/Tile/index.js +4 -6
  546. package/lib/components/Tile/index.js.map +1 -1
  547. package/lib/components/Title/index.js +0 -1
  548. package/lib/components/Toast/index.js +0 -10
  549. package/lib/components/Toast/index.js.map +1 -1
  550. package/lib/components/ToastList/index.js +0 -9
  551. package/lib/components/ToastList/index.js.map +1 -1
  552. package/lib/components/Toggle/index.js +10 -10
  553. package/lib/components/Toggle/index.js.map +1 -1
  554. package/lib/components/Validation/index.js +2 -53
  555. package/lib/components/Validation/index.js.map +1 -1
  556. package/lib/floating-ui.react.js +65 -61
  557. package/lib/floating-ui.react.js.map +1 -1
  558. package/lib/hoc/withBreakpoint/index.js +0 -2
  559. package/lib/hoc/withBreakpoint/index.js.map +1 -1
  560. package/lib/hoc/withBreakpoint/withBreakpoint.js +0 -2
  561. package/lib/hooks/useBreakpoint.js +0 -1
  562. package/lib/hooks/useExpand.js +0 -1
  563. package/lib/hooks/useFocusToggle.js +0 -2
  564. package/lib/hooks/useFocusTrap.js +0 -3
  565. package/lib/hooks/useFocusableElements.js +0 -1
  566. package/lib/hooks/useIcons.js +0 -6
  567. package/lib/hooks/useIsMobileBreakpoint.js +0 -2
  568. package/lib/hooks/useIsVisible.js +0 -1
  569. package/lib/hooks/useLayoutEvent.js +0 -1
  570. package/lib/hooks/useReturnFocusOnUnmount.js +0 -2
  571. package/lib/hooks/useRovingFocus.js +0 -2
  572. package/lib/hooks/useSize.js +0 -1
  573. package/lib/hooks/useToggle.js +0 -1
  574. package/lib/index.js +0 -9
  575. package/lib/theme/currys/color.js +0 -4
  576. package/lib/theme/currys/index.js +0 -5
  577. package/lib/theme/currys/spacing.js +0 -1
  578. package/lib/theme/index.js +0 -3
  579. package/lib/utils/uuid.js +0 -1
  580. package/lib/uuid.js +1 -1
  581. package/package.json +3 -8
  582. package/lib/scss/_figma-tokens.scss +0 -68
  583. package/scss/_figma-tokens.scss +0 -68
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["ArticleTeaser: React.FC<ArticleTeaserProps>","mergedResources: HNDesignsystemArticleTeaser"],"sources":["../../../src/resources/HN.Designsystem.ArticleTeaser.en-GB.json","../../../src/resources/HN.Designsystem.ArticleTeaser.nb-NO.json","../../../src/components/ArticleTeaser/resourceHelper.ts","../../../src/components/ArticleTeaser/ArticleTeaser.tsx","../../../src/components/ArticleTeaser/index.ts"],"sourcesContent":["{\n \"expandButtonClose\": \"Show more\",\n \"expandButtonOpen\": \"Show less\"\n}\n","{\n \"expandButtonClose\": \"Vis mer\",\n \"expandButtonOpen\": \"Vis mindre\"\n}\n","import { LanguageLocales } from '../../constants';\nimport enGB from '../../resources/HN.Designsystem.ArticleTeaser.en-GB.json';\nimport nbNO from '../../resources/HN.Designsystem.ArticleTeaser.nb-NO.json';\nimport { HNDesignsystemArticleTeaser } from '../../resources/Resources';\n\nexport const getResources = (language: LanguageLocales): HNDesignsystemArticleTeaser => {\n switch (language) {\n case LanguageLocales.ENGLISH:\n return enGB;\n case LanguageLocales.NORWEGIAN:\n default:\n return nbNO;\n }\n};\n","import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { getResources } from './resourceHelper';\nimport { AnalyticsId, LanguageLocales } from '../../constants';\nimport { HNDesignsystemArticleTeaser } from '../../resources/Resources';\nimport { useLanguage } from '../../utils/language';\n\nimport styles from './styles.module.scss';\n\nexport type ArticleTeaserTags = 'div' | 'section' | 'aside' | 'article';\n\nexport interface ArticleTeaserProps {\n /** Callback for the button. Should be used for setting the expanded boolean */\n onExpand: () => void;\n /** What's in the box? */\n children: React.ReactNode;\n /** Id of the content, used to set aria-controls */\n contentId: string;\n /** If the component is expanded or not */\n expanded: boolean;\n /** For overriding the height of the collapsed teaser */\n heightCollapsed?: string;\n /** Changes the underlying element of the wrapper */\n htmlMarkup?: ArticleTeaserTags;\n /** Resources for component */\n resources?: Partial<HNDesignsystemArticleTeaser>;\n /** Sets the data-testid attribute */\n testId?: string;\n}\n\nconst ArticleTeaser: React.FC<ArticleTeaserProps> = props => {\n const { onExpand, children, contentId, expanded, htmlMarkup = 'div', resources, testId } = props;\n const WrapperTag = htmlMarkup;\n\n const { language } = useLanguage<LanguageLocales>(LanguageLocales.NORWEGIAN);\n const defaultResources = getResources(language);\n\n const mergedResources: HNDesignsystemArticleTeaser = {\n ...defaultResources,\n ...resources,\n };\n\n return (\n <WrapperTag className={classNames(styles.articleteaser)} data-testid={testId} data-analyticsid={AnalyticsId.ArticleTeaser}>\n <div\n className={classNames(styles['articleteaser__content'], {\n [styles['articleteaser__content--collapsed']]: !expanded,\n })}\n style={{\n maxHeight: expanded ? 'none' : props.heightCollapsed,\n }}\n >\n {children}\n </div>\n <button\n type=\"button\"\n className={classNames(styles['articleteaser__button'], {\n [styles['articleteaser__button--expanded']]: expanded,\n })}\n onClick={onExpand}\n aria-expanded={expanded}\n aria-controls={contentId}\n >\n {expanded ? mergedResources.expandButtonOpen : mergedResources.expandButtonClose}\n </button>\n </WrapperTag>\n );\n};\n\nexport default ArticleTeaser;\n","import ArticleTeaser from './ArticleTeaser';\nexport * from './ArticleTeaser';\nexport default ArticleTeaser;\n"],"mappings":";;;;;;;;;;;;;;AEKA,MAAa,gBAAgB,aAA2D;AACtF,SAAQ,UAAR;EACE,KAAK,gBAAgB,QACnB,QAAO;EACT,KAAK,gBAAgB;EACrB,QACE,QAAO;;;ACqBb,IAAMA,iBAA8C,UAAS;CAC3D,MAAM,EAAE,UAAU,UAAU,WAAW,UAAU,aAAa,OAAO,WAAW,WAAW;CAC3F,MAAM,aAAa;CAEnB,MAAM,EAAE,aAAa,YAA6B,gBAAgB,UAAU;CAG5E,MAAMC,kBAA+C;EACnD,GAHuB,aAAa,SAAS;EAI7C,GAAG;EACJ;AAED,QACE,qBAAC,YAAA;EAAW,WAAW,GAAW,OAAO,cAAc;EAAE,eAAa;EAAQ,oBAAkB,YAAY;aAC1G,oBAAC,OAAA;GACC,WAAW,GAAW,OAAO,2BAA2B,GACrD,OAAO,uCAAuC,CAAC,UACjD,CAAC;GACF,OAAO,EACL,WAAW,WAAW,SAAS,MAAM,iBACtC;GAEA;IACG,EACN,oBAAC,UAAA;GACC,MAAK;GACL,WAAW,GAAW,OAAO,0BAA0B,GACpD,OAAO,qCAAqC,UAC9C,CAAC;GACF,SAAS;GACT,iBAAe;GACf,iBAAe;aAEd,WAAW,gBAAgB,mBAAmB,gBAAgB;IACxD,CAAA;GACE;;ACjEjB,IAAA,wBDqEe"}
1
+ {"version":3,"file":"index.js","names":["ArticleTeaser: React.FC<ArticleTeaserProps>","mergedResources: HNDesignsystemArticleTeaser"],"sources":["../../../src/resources/HN.Designsystem.ArticleTeaser.en-GB.json","../../../src/resources/HN.Designsystem.ArticleTeaser.nb-NO.json","../../../src/components/ArticleTeaser/resourceHelper.ts","../../../src/components/ArticleTeaser/ArticleTeaser.tsx","../../../src/components/ArticleTeaser/index.ts"],"sourcesContent":["{\n \"expandButtonClose\": \"Show more\",\n \"expandButtonOpen\": \"Show less\"\n}\n","{\n \"expandButtonClose\": \"Vis mer\",\n \"expandButtonOpen\": \"Vis mindre\"\n}\n","import { LanguageLocales } from '../../constants';\nimport enGB from '../../resources/HN.Designsystem.ArticleTeaser.en-GB.json';\nimport nbNO from '../../resources/HN.Designsystem.ArticleTeaser.nb-NO.json';\nimport { HNDesignsystemArticleTeaser } from '../../resources/Resources';\n\nexport const getResources = (language: LanguageLocales): HNDesignsystemArticleTeaser => {\n switch (language) {\n case LanguageLocales.ENGLISH:\n return enGB;\n case LanguageLocales.NORWEGIAN:\n default:\n return nbNO;\n }\n};\n","import React from 'react';\n\nimport classNames from 'classnames';\n\nimport { getResources } from './resourceHelper';\nimport { AnalyticsId, LanguageLocales } from '../../constants';\nimport { HNDesignsystemArticleTeaser } from '../../resources/Resources';\nimport { useLanguage } from '../../utils/language';\n\nimport styles from './styles.module.scss';\n\nexport type ArticleTeaserTags = 'div' | 'section' | 'aside' | 'article';\n\nexport interface ArticleTeaserProps {\n /** Callback for the button. Should be used for setting the expanded boolean */\n onExpand: () => void;\n /** What's in the box? */\n children: React.ReactNode;\n /** Id of the content, used to set aria-controls */\n contentId: string;\n /** If the component is expanded or not */\n expanded: boolean;\n /** For overriding the height of the collapsed teaser */\n heightCollapsed?: string;\n /** Changes the underlying element of the wrapper */\n htmlMarkup?: ArticleTeaserTags;\n /** Resources for component */\n resources?: Partial<HNDesignsystemArticleTeaser>;\n /** Sets the data-testid attribute */\n testId?: string;\n}\n\nconst ArticleTeaser: React.FC<ArticleTeaserProps> = props => {\n const { onExpand, children, contentId, expanded, htmlMarkup = 'div', resources, testId } = props;\n const WrapperTag = htmlMarkup;\n\n const { language } = useLanguage<LanguageLocales>(LanguageLocales.NORWEGIAN);\n const defaultResources = getResources(language);\n\n const mergedResources: HNDesignsystemArticleTeaser = {\n ...defaultResources,\n ...resources,\n };\n\n return (\n <WrapperTag className={classNames(styles.articleteaser)} data-testid={testId} data-analyticsid={AnalyticsId.ArticleTeaser}>\n <div\n className={classNames(styles['articleteaser__content'], {\n [styles['articleteaser__content--collapsed']]: !expanded,\n })}\n style={{\n maxHeight: expanded ? 'none' : props.heightCollapsed,\n }}\n >\n {children}\n </div>\n <button\n type=\"button\"\n className={classNames(styles['articleteaser__button'], {\n [styles['articleteaser__button--expanded']]: expanded,\n })}\n onClick={onExpand}\n aria-expanded={expanded}\n aria-controls={contentId}\n >\n {expanded ? mergedResources.expandButtonOpen : mergedResources.expandButtonClose}\n </button>\n </WrapperTag>\n );\n};\n\nexport default ArticleTeaser;\n","import ArticleTeaser from './ArticleTeaser';\nexport * from './ArticleTeaser';\nexport default ArticleTeaser;\n"],"mappings":";;;;;;;;;;;;;;AEKA,MAAa,gBAAgB,aAA2D;AACtF,SAAQ,UAAR;EACE,KAAK,gBAAgB,QACnB,QAAO;EACT,KAAK,gBAAgB;EACrB,QACE,QAAO;;;ACqBb,IAAMA,iBAA8C,UAAS;CAC3D,MAAM,EAAE,UAAU,UAAU,WAAW,UAAU,aAAa,OAAO,WAAW,WAAW;CAC3F,MAAM,aAAa;CAEnB,MAAM,EAAE,aAAa,YAA6B,gBAAgB,UAAU;CAG5E,MAAMC,kBAA+C;EACnD,GAHuB,aAAa,SAAS;EAI7C,GAAG;EACJ;AAED,QACE,qBAAC,YAAA;EAAW,WAAW,WAAW,OAAO,cAAc;EAAE,eAAa;EAAQ,oBAAkB,YAAY;aAC1G,oBAAC,OAAA;GACC,WAAW,WAAW,OAAO,2BAA2B,GACrD,OAAO,uCAAuC,CAAC,UACjD,CAAC;GACF,OAAO,EACL,WAAW,WAAW,SAAS,MAAM,iBACtC;GAEA;IACG,EACN,oBAAC,UAAA;GACC,MAAK;GACL,WAAW,WAAW,OAAO,0BAA0B,GACpD,OAAO,qCAAqC,UAC9C,CAAC;GACF,SAAS;GACT,iBAAe;GACf,iBAAe;aAEd,WAAW,gBAAgB,mBAAmB,gBAAgB;IACxD,CAAA;GACE;;ACjEjB,IAAA,wBDqEe"}
@@ -1,3 +1,2 @@
1
- import "../../refs.js";
2
1
  import { n as AsChildSlot, t as AsChildSlot_default } from "../../AsChildSlot.js";
3
2
  export { AsChildSlot, AsChildSlot_default as default };
@@ -1,6 +1,2 @@
1
- import "../../constants2.js";
2
- import "../../palette.js";
3
- import "../../Icon.js";
4
- import "../../Check.js";
5
1
  import { n as AvatarSize, t as Avatar_default } from "../../Avatar.js";
6
2
  export { AvatarSize, Avatar_default as default };
@@ -1,10 +1,2 @@
1
- import "../../constants2.js";
2
- import "../../palette.js";
3
- import "../../Icon.js";
4
- import "../../CheckFill.js";
5
- import "../../ErrorSignFill.js";
6
- import "../../InfoSignFill.js";
7
- import "../../TriangleX.js";
8
- import "../../NotificationBadge.js";
9
1
  import { t as Badge_default } from "../../Badge.js";
10
2
  export { Badge_default as default };
@@ -1,19 +1,2 @@
1
- import "../../environment.js";
2
- import "../../constants2.js";
3
- import "../../usePseudoClasses.js";
4
- import "../../grid.js";
5
- import "../../palette.js";
6
- import "../../spacers.js";
7
- import "../../theme.js";
8
- import "../../color.js";
9
- import "../../Icon.js";
10
- import "../../_rolldown_dynamic_import_helper.js";
11
- import "../../useIsServerSide.js";
12
- import "../../LazyIcon.js";
13
- import "../../component.js";
14
- import "../../useIcons.js";
15
- import "../../useBreakpoint.js";
16
- import "../../useIsMobileBreakpoint.js";
17
- import "../../ArrowRight.js";
18
1
  import { t as Button_default } from "../../Button.js";
19
2
  export { Button_default as default };
@@ -1,47 +1,3 @@
1
- import "../../uuid.js";
2
- import "../../environment.js";
3
- import "../../constants2.js";
4
- import "../../usePseudoClasses.js";
5
- import "../../grid.js";
6
- import "../../palette.js";
7
- import "../../spacers.js";
8
- import "../../theme.js";
9
- import "../../color.js";
10
- import "../../spacing.js";
11
- import "../../currys.js";
12
- import "../../refs.js";
13
- import "../../Icon.js";
14
- import "../../language.js";
15
- import "../../Check.js";
16
- import "../../_rolldown_dynamic_import_helper.js";
17
- import "../../useIsServerSide.js";
18
- import "../../LazyIcon.js";
19
- import "../../component.js";
20
- import "../../useBreakpoint.js";
21
- import "../../useIdWithFallback.js";
22
- import "../../accessibility.js";
23
- import "../../ErrorWrapper.js";
24
- import "../../Spacer.js";
25
- import "../../Label.js";
26
- import "../../FormFieldTag.js";
27
- import "../../useElementList.js";
28
- import "../../useFocusableElements.js";
29
- import "../../useFocusToggle.js";
30
- import "../../focus.js";
31
- import "../../useFocusTrap.js";
32
- import "../../useIntersectionObserver.js";
33
- import "../../useIsVisible.js";
34
- import "../../debounce.js";
35
- import "../../useLayoutEvent.js";
36
- import "../../usePrevious.js";
37
- import "../../useSize.js";
38
- import "../../useResizeObserver.js";
39
- import "../../useToggle.js";
40
- import "../../useKeyboardEvent.js";
41
- import "../../useOutsideEvent.js";
42
- import "../../mobile.js";
43
- import "../../src.js";
44
- import "../../StatusDot.js";
45
1
  import { t as Checkbox } from "../../Checkbox.js";
46
2
  import { t as Checkbox_default } from "../../Checkbox2.js";
47
3
  export { Checkbox, Checkbox_default as default };
@@ -5,7 +5,7 @@ import { t as Icon_default } from "../../Icon.js";
5
5
  import { t as Undo_default } from "../../Undo.js";
6
6
  import { t as X_default } from "../../X.js";
7
7
  import React from "react";
8
- import cn from "classnames";
8
+ import classNames from "classnames";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
10
  import styles from "./styles.module.scss";
11
11
  let ChipSize = /* @__PURE__ */ function(ChipSize$1) {
@@ -27,7 +27,7 @@ let ChipVariant = /* @__PURE__ */ function(ChipVariant$1) {
27
27
  var Chip = (props) => {
28
28
  const { children, size = ChipSize.medium, color = "blueberry", variant = "normal", action, onClick, testId } = props;
29
29
  const { refObject, isHovered } = usePseudoClasses();
30
- const chipClasses = cn(styles.chip, styles[`chip--${size}`], styles[`chip--${color}`], styles[`chip--${variant}`], { [styles[`chip--undo`]]: action === "undo" });
30
+ const chipClasses = classNames(styles.chip, styles[`chip--${size}`], styles[`chip--${color}`], styles[`chip--${variant}`], { [styles[`chip--undo`]]: action === "undo" });
31
31
  const getActionIcon = () => {
32
32
  switch (action) {
33
33
  case "undo": return Undo_default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Chip: React.FC<ChipProps>"],"sources":["../../../src/components/Chip/Chip.tsx","../../../src/components/Chip/index.ts"],"sourcesContent":["import React from 'react';\n\nimport cn from 'classnames';\n\nimport { AnalyticsId } from '../../constants';\nimport { usePseudoClasses } from '../../hooks/usePseudoClasses';\nimport { palette, PaletteNames } from '../../theme/palette';\nimport Icon, { IconSize, SvgIcon } from '../Icon';\nimport Undo from '../Icons/Undo';\nimport X from '../Icons/X';\n\nimport styles from './styles.module.scss';\n\nexport enum ChipSize {\n medium = 'medium',\n large = 'large',\n}\n\nexport enum ChipAction {\n remove = 'remove',\n undo = 'undo',\n}\n\nexport enum ChipVariant {\n normal = 'normal',\n oncolor = 'oncolor',\n emphasised = 'emphasised',\n}\n\nexport type ChipColors = Extract<PaletteNames, 'blueberry' | 'neutral' | 'cherry' | 'banana' | 'kiwi' | 'plum'>;\n\nexport interface ChipProps {\n /** Sets the text of the chip */\n children: string;\n /** Sets the size of the chip. Default: medium */\n size?: keyof typeof ChipSize;\n /** Sets the background of the chip. Not used if action is \"undo\". Default: blueberry */\n color?: ChipColors;\n /* Changes the appearance of the chip. Not used if action is \"undo\". Default: normal */\n variant?: keyof typeof ChipVariant;\n /* Makes the chip a clickable button that performs an action. onClick must also be set. */\n action: keyof typeof ChipAction;\n /* Called when action is set and the chip is clicked on. action must also be set. */\n onClick: () => void;\n /** Sets the data-testid attribute on the expander button. */\n testId?: string;\n}\n\nconst Chip: React.FC<ChipProps> = props => {\n const { children, size = ChipSize.medium, color = 'blueberry', variant = 'normal', action, onClick, testId } = props;\n\n const { refObject, isHovered } = usePseudoClasses<HTMLButtonElement>();\n\n const chipClasses = cn(styles.chip, styles[`chip--${size}`], styles[`chip--${color}`], styles[`chip--${variant}`], {\n [styles[`chip--undo`]]: action === 'undo',\n });\n\n const getActionIcon = (): SvgIcon => {\n switch (action) {\n case 'undo':\n return Undo;\n case 'remove':\n return X;\n }\n };\n\n return (\n <button className={chipClasses} onClick={onClick} ref={refObject} type=\"button\" data-testid={testId} data-analyticsid={AnalyticsId.Tag}>\n {children}\n <Icon svgIcon={getActionIcon()} size={IconSize.XXSmall} color={palette[`${color}800`]} isHovered={isHovered} />\n </button>\n );\n};\n\nexport default Chip;\n","import Chip from './Chip';\nexport * from './Chip';\nexport default Chip;\n"],"mappings":";;;;;;;;;;AAaA,IAAY,WAAA,yBAAA,YAAL;AACL,YAAA,YAAA;AACA,YAAA,WAAA;;;AAGF,IAAY,aAAA,yBAAA,cAAL;AACL,cAAA,YAAA;AACA,cAAA,UAAA;;;AAGF,IAAY,cAAA,yBAAA,eAAL;AACL,eAAA,YAAA;AACA,eAAA,aAAA;AACA,eAAA,gBAAA;;;AAsBF,IAAMA,QAA4B,UAAS;CACzC,MAAM,EAAE,UAAU,OAAO,SAAS,QAAQ,QAAQ,aAAa,UAAU,UAAU,QAAQ,SAAS,WAAW;CAE/G,MAAM,EAAE,WAAW,cAAc,kBAAqC;CAEtE,MAAM,cAAc,GAAG,OAAO,MAAM,OAAO,SAAS,SAAS,OAAO,SAAS,UAAU,OAAO,SAAS,YAAY,GAChH,OAAO,gBAAgB,WAAW,QACpC,CAAC;CAEF,MAAM,sBAA+B;AACnC,UAAQ,QAAR;GACE,KAAK,OACH,QAAO;GACT,KAAK,SACH,QAAO;;;AAIb,QACE,qBAAC,UAAA;EAAO,WAAW;EAAsB;EAAS,KAAK;EAAW,MAAK;EAAS,eAAa;EAAQ,oBAAkB,YAAY;aAChI,UACD,oBAAC,cAAA;GAAK,SAAS,eAAe;GAAE,MAAM,SAAS;GAAS,OAAO,QAAQ,GAAG,MAAM;GAAkB;IAAa,CAAA;GACxG;;ACpEb,IAAA,eDwEe"}
1
+ {"version":3,"file":"index.js","names":["Chip: React.FC<ChipProps>"],"sources":["../../../src/components/Chip/Chip.tsx","../../../src/components/Chip/index.ts"],"sourcesContent":["import React from 'react';\n\nimport cn from 'classnames';\n\nimport { AnalyticsId } from '../../constants';\nimport { usePseudoClasses } from '../../hooks/usePseudoClasses';\nimport { palette, PaletteNames } from '../../theme/palette';\nimport Icon, { IconSize, SvgIcon } from '../Icon';\nimport Undo from '../Icons/Undo';\nimport X from '../Icons/X';\n\nimport styles from './styles.module.scss';\n\nexport enum ChipSize {\n medium = 'medium',\n large = 'large',\n}\n\nexport enum ChipAction {\n remove = 'remove',\n undo = 'undo',\n}\n\nexport enum ChipVariant {\n normal = 'normal',\n oncolor = 'oncolor',\n emphasised = 'emphasised',\n}\n\nexport type ChipColors = Extract<PaletteNames, 'blueberry' | 'neutral' | 'cherry' | 'banana' | 'kiwi' | 'plum'>;\n\nexport interface ChipProps {\n /** Sets the text of the chip */\n children: string;\n /** Sets the size of the chip. Default: medium */\n size?: keyof typeof ChipSize;\n /** Sets the background of the chip. Not used if action is \"undo\". Default: blueberry */\n color?: ChipColors;\n /* Changes the appearance of the chip. Not used if action is \"undo\". Default: normal */\n variant?: keyof typeof ChipVariant;\n /* Makes the chip a clickable button that performs an action. onClick must also be set. */\n action: keyof typeof ChipAction;\n /* Called when action is set and the chip is clicked on. action must also be set. */\n onClick: () => void;\n /** Sets the data-testid attribute on the expander button. */\n testId?: string;\n}\n\nconst Chip: React.FC<ChipProps> = props => {\n const { children, size = ChipSize.medium, color = 'blueberry', variant = 'normal', action, onClick, testId } = props;\n\n const { refObject, isHovered } = usePseudoClasses<HTMLButtonElement>();\n\n const chipClasses = cn(styles.chip, styles[`chip--${size}`], styles[`chip--${color}`], styles[`chip--${variant}`], {\n [styles[`chip--undo`]]: action === 'undo',\n });\n\n const getActionIcon = (): SvgIcon => {\n switch (action) {\n case 'undo':\n return Undo;\n case 'remove':\n return X;\n }\n };\n\n return (\n <button className={chipClasses} onClick={onClick} ref={refObject} type=\"button\" data-testid={testId} data-analyticsid={AnalyticsId.Tag}>\n {children}\n <Icon svgIcon={getActionIcon()} size={IconSize.XXSmall} color={palette[`${color}800`]} isHovered={isHovered} />\n </button>\n );\n};\n\nexport default Chip;\n","import Chip from './Chip';\nexport * from './Chip';\nexport default Chip;\n"],"mappings":";;;;;;;;;;AAaA,IAAY,WAAA,yBAAA,YAAL;AACL,YAAA,YAAA;AACA,YAAA,WAAA;;;AAGF,IAAY,aAAA,yBAAA,cAAL;AACL,cAAA,YAAA;AACA,cAAA,UAAA;;;AAGF,IAAY,cAAA,yBAAA,eAAL;AACL,eAAA,YAAA;AACA,eAAA,aAAA;AACA,eAAA,gBAAA;;;AAsBF,IAAMA,QAA4B,UAAS;CACzC,MAAM,EAAE,UAAU,OAAO,SAAS,QAAQ,QAAQ,aAAa,UAAU,UAAU,QAAQ,SAAS,WAAW;CAE/G,MAAM,EAAE,WAAW,cAAc,kBAAqC;CAEtE,MAAM,cAAc,WAAG,OAAO,MAAM,OAAO,SAAS,SAAS,OAAO,SAAS,UAAU,OAAO,SAAS,YAAY,GAChH,OAAO,gBAAgB,WAAW,QACpC,CAAC;CAEF,MAAM,sBAA+B;AACnC,UAAQ,QAAR;GACE,KAAK,OACH,QAAO;GACT,KAAK,SACH,QAAO;;;AAIb,QACE,qBAAC,UAAA;EAAO,WAAW;EAAsB;EAAS,KAAK;EAAW,MAAK;EAAS,eAAa;EAAQ,oBAAkB,YAAY;aAChI,UACD,oBAAC,cAAA;GAAK,SAAS,eAAe;GAAE,MAAM,SAAS;GAAS,OAAO,QAAQ,GAAG,MAAM;GAAkB;IAAa,CAAA;GACxG;;ACpEb,IAAA,eDwEe"}
@@ -1,10 +1,2 @@
1
- import "../../constants2.js";
2
- import "../../usePseudoClasses.js";
3
- import "../../grid.js";
4
- import "../../refs.js";
5
- import "../../Icon.js";
6
- import "../../useBreakpoint.js";
7
- import "../../useIsMobileBreakpoint.js";
8
- import "../../X.js";
9
1
  import { t as Close_default } from "../../Close.js";
10
2
  export { Close_default as default };
@@ -1,3 +1,2 @@
1
- import "../../constants2.js";
2
1
  import { t as DictionaryTrigger_default } from "../../DictionaryTrigger.js";
3
2
  export { DictionaryTrigger_default as default };
@@ -1,39 +1,2 @@
1
- import "../../uuid.js";
2
- import "../../environment.js";
3
- import "../../constants2.js";
4
- import "../../usePseudoClasses.js";
5
- import "../../grid.js";
6
- import "../../palette.js";
7
- import "../../spacers.js";
8
- import "../../theme.js";
9
- import "../../color.js";
10
- import "../../refs.js";
11
- import "../../Icon.js";
12
- import "../../language.js";
13
- import "../../_rolldown_dynamic_import_helper.js";
14
- import "../../useIsServerSide.js";
15
- import "../../LazyIcon.js";
16
- import "../../component.js";
17
- import "../../useIcons.js";
18
- import "../../useBreakpoint.js";
19
- import "../../useIsMobileBreakpoint.js";
20
- import "../../ArrowRight.js";
21
- import "../../Button.js";
22
- import "../../accessibility.js";
23
- import "../../useElementList.js";
24
- import "../../useFocusableElements.js";
25
- import "../../focus.js";
26
- import "../../useFocusTrap.js";
27
- import "../../useIntersectionObserver.js";
28
- import "../../useIsVisible.js";
29
- import "../../useKeyboardEvent.js";
30
- import "../../useOutsideEvent.js";
31
- import "../../X.js";
32
- import "../../Close.js";
33
1
  import { t as Drawer_default } from "../../Drawer.js";
34
- import "../../deepContains.js";
35
- import "../../useReturnFocusOnUnmount.js";
36
- import "../../scroll.js";
37
- import "../../Title.js";
38
- import "../../Title2.js";
39
2
  export { Drawer_default as default };
@@ -182,5 +182,11 @@
182
182
  column-gap: var(--core-space-2xs) 0;
183
183
  padding: var(--core-space-2xs) 0;
184
184
  }
185
+
186
+ // Hack in order to not cut the buttons on iOS in app browser from iOS 26
187
+ // Selector targets iOS
188
+ @supports (font: -apple-system-body) and (-webkit-appearance: none) {
189
+ padding-bottom: 2.5rem;
190
+ }
185
191
  }
186
192
  }
@@ -1,5 +1,3 @@
1
- import "../../../refs.js";
2
- import "../../../AsChildSlot.js";
3
1
  import { n as SingleSelectItem_default, t as SingleSelectItem } from "../../../SingleSelectItem.js";
4
2
  var SingleSelect_default = SingleSelectItem_default;
5
3
  export { SingleSelectItem, SingleSelect_default as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/Dropdown/SingleSelect/index.ts"],"sourcesContent":["import SingleSelectItem from './SingleSelectItem';\nexport * from './SingleSelectItem';\nexport default SingleSelectItem;\n"],"mappings":";;;AAEA,IAAA,uBAAe"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/Dropdown/SingleSelect/index.ts"],"sourcesContent":["import SingleSelectItem from './SingleSelectItem';\nexport * from './SingleSelectItem';\nexport default SingleSelectItem;\n"],"mappings":";AAEA,IAAA,uBAAe"}
@@ -1,53 +1,16 @@
1
- import "../../uuid.js";
2
- import "../../environment.js";
3
1
  import { a as IconSize, c as ZIndex, n as AnalyticsId, o as KeyboardEventKey, s as LanguageLocales } from "../../constants2.js";
4
2
  import { t as usePseudoClasses } from "../../usePseudoClasses.js";
5
- import "../../grid.js";
6
- import "../../palette.js";
7
- import "../../spacers.js";
8
- import "../../theme.js";
9
- import "../../color.js";
10
- import "../../spacing.js";
11
- import "../../currys.js";
12
3
  import { n as mergeRefs } from "../../refs.js";
13
- import "../../AsChildSlot.js";
14
4
  import { t as Icon_default } from "../../Icon.js";
15
5
  import { r as useLanguage } from "../../language.js";
16
- import "../../Check.js";
17
- import "../../_rolldown_dynamic_import_helper.js";
18
- import "../../useIsServerSide.js";
19
6
  import { t as LazyIcon_default } from "../../LazyIcon.js";
20
7
  import { t as isComponent } from "../../component.js";
21
- import "../../useIcons.js";
22
- import "../../useBreakpoint.js";
23
8
  import { t as useIsMobileBreakpoint } from "../../useIsMobileBreakpoint.js";
24
- import "../../ArrowRight.js";
25
9
  import { t as Button_default } from "../../Button.js";
26
- import "../../useIdWithFallback.js";
27
- import "../../accessibility.js";
28
- import "../../ErrorWrapper.js";
29
- import "../../Spacer.js";
30
10
  import { t as Label_default } from "../../Label.js";
31
- import "../../FormFieldTag.js";
32
- import "../../useElementList.js";
33
- import "../../useFocusableElements.js";
34
- import "../../useFocusToggle.js";
35
- import "../../focus.js";
36
- import "../../useFocusTrap.js";
37
- import "../../useIntersectionObserver.js";
38
- import "../../useIsVisible.js";
39
- import "../../debounce.js";
40
- import "../../useLayoutEvent.js";
41
- import "../../usePrevious.js";
42
- import "../../useSize.js";
43
- import "../../useResizeObserver.js";
44
11
  import { t as useToggle } from "../../useToggle.js";
45
12
  import { t as useKeyboardEvent } from "../../useKeyboardEvent.js";
46
13
  import { t as useOutsideEvent } from "../../useOutsideEvent.js";
47
- import "../../mobile.js";
48
- import "../../src.js";
49
- import "../../StatusDot.js";
50
- import "../../Checkbox.js";
51
14
  import { t as Checkbox_default } from "../../Checkbox2.js";
52
15
  import { _ as autoUpdate, f as flip, g as size, h as shift, m as offset, o as useFloating } from "../../floating-ui.react.js";
53
16
  import { n as HN_Designsystem_Dropdown_en_GB_default, t as HN_Designsystem_Dropdown_nb_NO_default } from "../../HN.Designsystem.Dropdown.nb-NO.js";
@@ -56,7 +19,7 @@ import { t as ChevronDown_default } from "../../ChevronDown.js";
56
19
  import { t as ChevronUp_default } from "../../ChevronUp.js";
57
20
  import { t as PlusSmall_default } from "../../PlusSmall.js";
58
21
  import React, { useEffect, useId, useRef } from "react";
59
- import cn from "classnames";
22
+ import classNames from "classnames";
60
23
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
61
24
  import { clamp } from "motion/react";
62
25
  import styles from "./styles.module.scss";
@@ -97,14 +60,14 @@ const DropdownBase = (props) => {
97
60
  ...getResources(language),
98
61
  ...resources
99
62
  };
100
- const toggleClasses = cn(styles.dropdown__toggle, {
63
+ const toggleClasses = classNames(styles.dropdown__toggle, {
101
64
  [styles["dropdown__toggle--open"]]: isOpen && !disabled,
102
65
  [styles["dropdown__toggle--with-icon"]]: typeof svgIcon !== "undefined",
103
66
  [styles["dropdown__toggle--transparent"]]: variant === "transparent",
104
67
  [styles["dropdown__toggle--borderless"]]: variant === "borderless"
105
68
  });
106
- const contentClasses = cn(styles.dropdown__content, isOpen && styles["dropdown__content--open"]);
107
- const listItemClasses = cn(styles["dropdown__list-item"], { [styles["dropdown__list-item--single-select"]]: isSingleSelect });
69
+ const contentClasses = classNames(styles.dropdown__content, isOpen && styles["dropdown__content--open"]);
70
+ const listItemClasses = classNames(styles["dropdown__list-item"], { [styles["dropdown__list-item--single-select"]]: isSingleSelect });
108
71
  const { refs, floatingStyles } = useFloating({
109
72
  strategy: "fixed",
110
73
  placement: "bottom-start",
@@ -201,7 +164,7 @@ const DropdownBase = (props) => {
201
164
  const label = child.props.label;
202
165
  if (React.isValidElement(label) && isComponent(label, Label_default)) return React.cloneElement(child, {
203
166
  ...baseProps,
204
- label: React.cloneElement(label, { labelClassName: cn(label.props?.labelClassName, styles["dropdown__multiselect-item"]) })
167
+ label: React.cloneElement(label, { labelClassName: classNames(label.props?.labelClassName, styles["dropdown__multiselect-item"]) })
205
168
  });
206
169
  }
207
170
  return React.cloneElement(child, baseProps);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DropdownBase: React.FC<DropdownProps>","mergedResources: HNDesignsystemDropdown","baseProps: { ref: React.Ref<HTMLElement> }"],"sources":["../../../src/components/Dropdown/resourceHelper.ts","../../../src/components/Dropdown/Dropdown.tsx","../../../src/components/Dropdown/index.ts"],"sourcesContent":["import { LanguageLocales } from '../../constants';\nimport enGB from '../../resources/HN.Designsystem.Dropdown.en-GB.json';\nimport nbNO from '../../resources/HN.Designsystem.Dropdown.nb-NO.json';\nimport { HNDesignsystemDropdown } from '../../resources/Resources';\n\nexport const getResources = (language: LanguageLocales): HNDesignsystemDropdown => {\n switch (language) {\n case LanguageLocales.ENGLISH:\n return enGB;\n case LanguageLocales.NORWEGIAN:\n default:\n return nbNO;\n }\n};\n","import React, { useEffect, useRef, useId, ComponentType } from 'react';\n\nimport { autoUpdate, offset, shift, size, useFloating, flip } from '@floating-ui/react';\nimport classNames from 'classnames';\nimport { clamp } from 'motion/react';\n\nimport {\n AnalyticsId,\n IconSize,\n KeyboardEventKey,\n LanguageLocales,\n ZIndex,\n usePseudoClasses,\n useKeyboardEvent,\n useOutsideEvent,\n useToggle,\n} from '../..';\nimport { getResources } from './resourceHelper';\nimport { SingleSelectItem, SingleSelectItemProps } from './SingleSelect/SingleSelectItem';\nimport { useIsMobileBreakpoint } from '../../hooks/useIsMobileBreakpoint';\nimport { HNDesignsystemDropdown } from '../../resources/Resources';\nimport { isComponent } from '../../utils/component';\nimport { useLanguage } from '../../utils/language';\nimport { mergeRefs } from '../../utils/refs';\nimport Button from '../Button';\nimport Checkbox, { CheckboxProps } from '../Checkbox';\nimport Icon, { SvgIcon } from '../Icon';\nimport ChevronDown from '../Icons/ChevronDown';\nimport ChevronUp from '../Icons/ChevronUp';\nimport { IconName } from '../Icons/IconNames';\nimport PlusSmall from '../Icons/PlusSmall';\nimport Label, { LabelProps } from '../Label';\nimport LazyIcon from '../LazyIcon';\nimport { SingleSelect } from './SingleSelect/SingleSelect';\n\nimport styles from './styles.module.scss';\n\ntype DropdownVariants = 'fill' | 'transparent' | 'borderless';\n\nexport interface DropdownProps {\n /** Text on the trigger button that opens the dropdown */\n triggerText: string;\n /** Sets the dropdown content */\n children: React.ReactNode;\n /** Minimum width for the dropdown in pixels. Does not affect trigger button. */\n dropdownMinWidth?: number;\n /** Minimum width for the trigger in pixels. Does not apply for borderless variant */\n triggerMinWidth?: number;\n /** Disables rendring of the close button in the list */\n noCloseButton?: boolean;\n /** Called when dropdown is open/closed */\n onToggle?: (isOpen: boolean) => void;\n /** Whether the dropdown is open or not */\n open?: boolean;\n /** Makes the dropdown disabled */\n disabled?: boolean;\n /** Sets the data-testid attribute on the dropdown button */\n testId?: string;\n /** Overrides the default z-index of the DropDownContent */\n zIndex?: number;\n /** Resources for component */\n resources?: Partial<HNDesignsystemDropdown>;\n /** Adds an icon to the trigger */\n svgIcon?: SvgIcon | IconName;\n /** Sets the visual variant of the Dropdown */\n variant?: DropdownVariants;\n}\n\nexport const DropdownBase: React.FC<DropdownProps> = props => {\n const {\n triggerText,\n noCloseButton = false,\n onToggle,\n dropdownMinWidth,\n triggerMinWidth,\n open = false,\n children,\n testId,\n disabled,\n zIndex = ZIndex.PopOver,\n resources,\n svgIcon,\n variant = 'fill',\n } = props;\n\n const dropdownRef = useRef<HTMLDivElement>(null);\n const optionsRef = useRef<HTMLUListElement>(null);\n const childrenRefList = useRef(React.Children.map(children, () => React.createRef<HTMLElement>()));\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const { isHovered } = usePseudoClasses<HTMLButtonElement>(buttonRef);\n const openedByKeyboard = useRef<boolean>(false);\n const { value: isOpen, toggleValue: toggleIsOpen } = useToggle(!disabled && open, onToggle);\n const isMobile = useIsMobileBreakpoint();\n const triggerActualMinWidth = variant !== 'borderless' && typeof triggerMinWidth != 'undefined' ? `${triggerMinWidth}px` : 'auto';\n const triggerMinWidthLimit = isMobile ? 96 : 112;\n const dropdownFloatingPadding = 15;\n const maxWidth = isMobile ? 384 : 400;\n const maxHeight = isMobile ? 384 : 464;\n const toggleTextId = useId();\n const optionIdPrefix = useId();\n const contentId = useId();\n const leftIconProps = {\n className: styles['dropdown__left-icon'],\n size: IconSize.XSmall,\n isHovered: !disabled && isHovered,\n };\n\n const isSingleSelect = React.Children.toArray(children).every(\n child => React.isValidElement(child) && isComponent<SingleSelectItemProps>(child, SingleSelectItem)\n );\n const isMultiSelect = React.Children.toArray(children).every(\n child => React.isValidElement(child) && isComponent<CheckboxProps>(child, Checkbox)\n );\n\n const { language } = useLanguage<LanguageLocales>(LanguageLocales.NORWEGIAN);\n const defaultResources = getResources(language);\n const mergedResources: HNDesignsystemDropdown = {\n ...defaultResources,\n ...resources,\n };\n\n const toggleClasses = classNames(styles.dropdown__toggle, {\n [styles['dropdown__toggle--open']]: isOpen && !disabled,\n [styles['dropdown__toggle--with-icon']]: typeof svgIcon !== 'undefined',\n [styles['dropdown__toggle--transparent']]: variant === 'transparent',\n [styles['dropdown__toggle--borderless']]: variant === 'borderless',\n });\n const contentClasses = classNames(styles.dropdown__content, isOpen && styles['dropdown__content--open']);\n const listItemClasses = classNames(styles['dropdown__list-item'], { [styles['dropdown__list-item--single-select']]: isSingleSelect });\n\n const { refs, floatingStyles } = useFloating({\n strategy: 'fixed',\n placement: 'bottom-start',\n middleware: [\n offset(8),\n // Hvis det ikke er plass på høyre side flipper vi dropdownlisten fra bottom-start til bottom-end\n flip({ mainAxis: false, fallbackPlacements: ['bottom-end'], padding: dropdownFloatingPadding }),\n // Shift fungerer som en fallback for flip og unngår at availableWidth ikke oppdaterer seg ved skjermbreddeendring\n shift({ padding: dropdownFloatingPadding }),\n // Hvis det ikke er plass på noen av sidene krymper vi bredden på listen med size\n size({\n padding: dropdownFloatingPadding,\n apply({ availableWidth, availableHeight, elements, rects }) {\n const triggerW = rects.reference.width;\n const minProp = typeof dropdownMinWidth !== 'undefined' ? clamp(0, maxWidth, dropdownMinWidth) : 0;\n const targetW = Math.max(triggerW, minProp);\n\n Object.assign(elements.floating.style, {\n maxWidth: `${Math.min(targetW, availableWidth)}px`,\n maxHeight: `${Math.min(maxHeight, availableHeight)}px`,\n overflowY: 'auto',\n overflowX: 'hidden',\n });\n },\n }),\n ],\n whileElementsMounted: isOpen ? autoUpdate : undefined,\n });\n\n const handleOpen = (isKeyboard: boolean): void => {\n openedByKeyboard.current = isKeyboard;\n toggleIsOpen();\n };\n\n const handleClose = (): void => {\n if (!isOpen) return;\n\n toggleIsOpen();\n buttonRef.current?.focus();\n };\n\n useEffect(() => {\n if (isOpen && openedByKeyboard.current) {\n const firstEnabled = childrenRefList.current?.find(r => r.current && !r.current.hasAttribute('disabled'));\n firstEnabled?.current?.focus();\n openedByKeyboard.current = false;\n }\n }, [isOpen]);\n\n const focusByIndex = (nextIndex: number): void => {\n childrenRefList.current?.[nextIndex]?.current?.focus();\n };\n\n const isListNavKey = (key: string): boolean =>\n key === KeyboardEventKey.ArrowDown || key === KeyboardEventKey.ArrowUp || key === KeyboardEventKey.Home || key === KeyboardEventKey.End;\n\n const handleKeyboardNavigation = (event: KeyboardEvent): void => {\n if (!childrenRefList.current) return;\n\n const key = event.key as KeyboardEventKey;\n\n if (key === KeyboardEventKey.Escape) {\n if (isOpen) {\n event.preventDefault();\n handleClose();\n }\n return;\n }\n\n if (!isOpen) {\n if (isListNavKey(key)) {\n event.preventDefault();\n handleOpen(true);\n }\n return;\n }\n\n if (!isListNavKey(key)) {\n return;\n }\n\n const index = childrenRefList.current.findIndex(x => x.current === (event.target as HTMLElement));\n let nextIndex = index;\n\n if (key === KeyboardEventKey.Home) {\n nextIndex = 0;\n } else if (key === KeyboardEventKey.End) {\n nextIndex = childrenRefList.current.length - 1;\n } else if (key === KeyboardEventKey.ArrowDown && index < childrenRefList.current.length - 1) {\n nextIndex = index + 1;\n } else if (key === KeyboardEventKey.ArrowUp && index > 0) {\n nextIndex = index - 1;\n }\n\n if (nextIndex !== -1) {\n event.preventDefault();\n focusByIndex(nextIndex);\n }\n };\n\n useKeyboardEvent(dropdownRef, handleKeyboardNavigation, [\n KeyboardEventKey.ArrowDown,\n KeyboardEventKey.ArrowUp,\n KeyboardEventKey.End,\n KeyboardEventKey.Enter,\n KeyboardEventKey.Escape,\n KeyboardEventKey.Home,\n KeyboardEventKey.Space,\n ]);\n\n useOutsideEvent(dropdownRef, () => isOpen && handleClose());\n\n const renderChildren = React.Children.map(children, (child, index) => {\n return (\n <li className={listItemClasses} id={`${optionIdPrefix}-${index}`}>\n {React.isValidElement(child) && childrenRefList.current && childrenRefList.current[index]\n ? ((): React.ReactElement => {\n const baseProps: { ref: React.Ref<HTMLElement> } = {\n ref: mergeRefs([child.props.ref, childrenRefList.current[index]]),\n };\n\n if (isMultiSelect) {\n const label = (child.props as CheckboxProps).label as React.ReactNode;\n if (React.isValidElement(label) && isComponent<LabelProps>(label, Label)) {\n return React.cloneElement(child as React.ReactElement<CheckboxProps>, {\n ...baseProps,\n label: React.cloneElement(label, {\n labelClassName: classNames((label.props as LabelProps)?.labelClassName, styles['dropdown__multiselect-item']),\n }),\n });\n }\n }\n\n return React.cloneElement(child as React.ReactElement<Record<string, unknown>>, baseProps);\n })()\n : child}\n </li>\n );\n });\n\n return (\n <div className={styles.dropdown} ref={dropdownRef}>\n <button\n type=\"button\"\n onClick={(): false | void => handleOpen(false)}\n className={toggleClasses}\n ref={mergeRefs([buttonRef, refs.setReference])}\n data-testid={testId}\n data-analyticsid={AnalyticsId.Dropdown}\n disabled={disabled}\n aria-labelledby={toggleTextId}\n aria-haspopup={true}\n aria-controls={contentId}\n aria-expanded={isOpen}\n style={{\n width: triggerActualMinWidth,\n maxWidth: '100%',\n minWidth: `${triggerMinWidthLimit}px`,\n }}\n >\n {svgIcon && (\n <>\n {typeof svgIcon === 'string' ? (\n <LazyIcon {...leftIconProps} iconName={svgIcon} />\n ) : (\n <Icon {...leftIconProps} svgIcon={svgIcon} />\n )}\n </>\n )}\n <span id={toggleTextId} className={styles.dropdown__toggle__text}>\n {triggerText}\n </span>\n <Icon\n svgIcon={!isSingleSelect ? PlusSmall : isOpen ? ChevronUp : ChevronDown}\n className={styles['dropdown__right-icon']}\n isHovered={!disabled && isHovered}\n size={IconSize.XSmall}\n />\n </button>\n <div\n key={dropdownMinWidth ?? 'auto'}\n id={contentId}\n className={contentClasses}\n ref={refs.setFloating}\n style={{\n ...floatingStyles,\n zIndex: zIndex,\n }}\n >\n <ul className={styles.dropdown__options} role=\"group\" aria-labelledby={toggleTextId} tabIndex={-1} ref={optionsRef}>\n {isSingleSelect && <SingleSelect onValueChange={() => handleClose()}>{renderChildren}</SingleSelect>}\n {isMultiSelect && renderChildren}\n </ul>\n {!isSingleSelect && !noCloseButton && (\n <div className={styles.dropdown__close}>\n <Button onClick={handleClose}>{mergedResources.closeText}</Button>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport interface DropdownCompound extends React.FC<DropdownProps> {\n SingleSelectItem: ComponentType<SingleSelectItemProps>;\n}\nconst Dropdown = DropdownBase as DropdownCompound;\nDropdown.SingleSelectItem = SingleSelectItem;\nDropdownBase.displayName = 'Dropdown';\n\nexport default Dropdown;\n","import Dropdown from './Dropdown';\nexport * from './Dropdown';\nexport default Dropdown;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["DropdownBase: React.FC<DropdownProps>","mergedResources: HNDesignsystemDropdown","baseProps: { ref: React.Ref<HTMLElement> }"],"sources":["../../../src/components/Dropdown/resourceHelper.ts","../../../src/components/Dropdown/Dropdown.tsx","../../../src/components/Dropdown/index.ts"],"sourcesContent":["import { LanguageLocales } from '../../constants';\nimport enGB from '../../resources/HN.Designsystem.Dropdown.en-GB.json';\nimport nbNO from '../../resources/HN.Designsystem.Dropdown.nb-NO.json';\nimport { HNDesignsystemDropdown } from '../../resources/Resources';\n\nexport const getResources = (language: LanguageLocales): HNDesignsystemDropdown => {\n switch (language) {\n case LanguageLocales.ENGLISH:\n return enGB;\n case LanguageLocales.NORWEGIAN:\n default:\n return nbNO;\n }\n};\n","import React, { useEffect, useRef, useId, ComponentType } from 'react';\n\nimport { autoUpdate, offset, shift, size, useFloating, flip } from '@floating-ui/react';\nimport classNames from 'classnames';\nimport { clamp } from 'motion/react';\n\nimport {\n AnalyticsId,\n IconSize,\n KeyboardEventKey,\n LanguageLocales,\n ZIndex,\n usePseudoClasses,\n useKeyboardEvent,\n useOutsideEvent,\n useToggle,\n} from '../..';\nimport { getResources } from './resourceHelper';\nimport { SingleSelectItem, SingleSelectItemProps } from './SingleSelect/SingleSelectItem';\nimport { useIsMobileBreakpoint } from '../../hooks/useIsMobileBreakpoint';\nimport { HNDesignsystemDropdown } from '../../resources/Resources';\nimport { isComponent } from '../../utils/component';\nimport { useLanguage } from '../../utils/language';\nimport { mergeRefs } from '../../utils/refs';\nimport Button from '../Button';\nimport Checkbox, { CheckboxProps } from '../Checkbox';\nimport Icon, { SvgIcon } from '../Icon';\nimport ChevronDown from '../Icons/ChevronDown';\nimport ChevronUp from '../Icons/ChevronUp';\nimport { IconName } from '../Icons/IconNames';\nimport PlusSmall from '../Icons/PlusSmall';\nimport Label, { LabelProps } from '../Label';\nimport LazyIcon from '../LazyIcon';\nimport { SingleSelect } from './SingleSelect/SingleSelect';\n\nimport styles from './styles.module.scss';\n\ntype DropdownVariants = 'fill' | 'transparent' | 'borderless';\n\nexport interface DropdownProps {\n /** Text on the trigger button that opens the dropdown */\n triggerText: string;\n /** Sets the dropdown content */\n children: React.ReactNode;\n /** Minimum width for the dropdown in pixels. Does not affect trigger button. */\n dropdownMinWidth?: number;\n /** Minimum width for the trigger in pixels. Does not apply for borderless variant */\n triggerMinWidth?: number;\n /** Disables rendring of the close button in the list */\n noCloseButton?: boolean;\n /** Called when dropdown is open/closed */\n onToggle?: (isOpen: boolean) => void;\n /** Whether the dropdown is open or not */\n open?: boolean;\n /** Makes the dropdown disabled */\n disabled?: boolean;\n /** Sets the data-testid attribute on the dropdown button */\n testId?: string;\n /** Overrides the default z-index of the DropDownContent */\n zIndex?: number;\n /** Resources for component */\n resources?: Partial<HNDesignsystemDropdown>;\n /** Adds an icon to the trigger */\n svgIcon?: SvgIcon | IconName;\n /** Sets the visual variant of the Dropdown */\n variant?: DropdownVariants;\n}\n\nexport const DropdownBase: React.FC<DropdownProps> = props => {\n const {\n triggerText,\n noCloseButton = false,\n onToggle,\n dropdownMinWidth,\n triggerMinWidth,\n open = false,\n children,\n testId,\n disabled,\n zIndex = ZIndex.PopOver,\n resources,\n svgIcon,\n variant = 'fill',\n } = props;\n\n const dropdownRef = useRef<HTMLDivElement>(null);\n const optionsRef = useRef<HTMLUListElement>(null);\n const childrenRefList = useRef(React.Children.map(children, () => React.createRef<HTMLElement>()));\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const { isHovered } = usePseudoClasses<HTMLButtonElement>(buttonRef);\n const openedByKeyboard = useRef<boolean>(false);\n const { value: isOpen, toggleValue: toggleIsOpen } = useToggle(!disabled && open, onToggle);\n const isMobile = useIsMobileBreakpoint();\n const triggerActualMinWidth = variant !== 'borderless' && typeof triggerMinWidth != 'undefined' ? `${triggerMinWidth}px` : 'auto';\n const triggerMinWidthLimit = isMobile ? 96 : 112;\n const dropdownFloatingPadding = 15;\n const maxWidth = isMobile ? 384 : 400;\n const maxHeight = isMobile ? 384 : 464;\n const toggleTextId = useId();\n const optionIdPrefix = useId();\n const contentId = useId();\n const leftIconProps = {\n className: styles['dropdown__left-icon'],\n size: IconSize.XSmall,\n isHovered: !disabled && isHovered,\n };\n\n const isSingleSelect = React.Children.toArray(children).every(\n child => React.isValidElement(child) && isComponent<SingleSelectItemProps>(child, SingleSelectItem)\n );\n const isMultiSelect = React.Children.toArray(children).every(\n child => React.isValidElement(child) && isComponent<CheckboxProps>(child, Checkbox)\n );\n\n const { language } = useLanguage<LanguageLocales>(LanguageLocales.NORWEGIAN);\n const defaultResources = getResources(language);\n const mergedResources: HNDesignsystemDropdown = {\n ...defaultResources,\n ...resources,\n };\n\n const toggleClasses = classNames(styles.dropdown__toggle, {\n [styles['dropdown__toggle--open']]: isOpen && !disabled,\n [styles['dropdown__toggle--with-icon']]: typeof svgIcon !== 'undefined',\n [styles['dropdown__toggle--transparent']]: variant === 'transparent',\n [styles['dropdown__toggle--borderless']]: variant === 'borderless',\n });\n const contentClasses = classNames(styles.dropdown__content, isOpen && styles['dropdown__content--open']);\n const listItemClasses = classNames(styles['dropdown__list-item'], { [styles['dropdown__list-item--single-select']]: isSingleSelect });\n\n const { refs, floatingStyles } = useFloating({\n strategy: 'fixed',\n placement: 'bottom-start',\n middleware: [\n offset(8),\n // Hvis det ikke er plass på høyre side flipper vi dropdownlisten fra bottom-start til bottom-end\n flip({ mainAxis: false, fallbackPlacements: ['bottom-end'], padding: dropdownFloatingPadding }),\n // Shift fungerer som en fallback for flip og unngår at availableWidth ikke oppdaterer seg ved skjermbreddeendring\n shift({ padding: dropdownFloatingPadding }),\n // Hvis det ikke er plass på noen av sidene krymper vi bredden på listen med size\n size({\n padding: dropdownFloatingPadding,\n apply({ availableWidth, availableHeight, elements, rects }) {\n const triggerW = rects.reference.width;\n const minProp = typeof dropdownMinWidth !== 'undefined' ? clamp(0, maxWidth, dropdownMinWidth) : 0;\n const targetW = Math.max(triggerW, minProp);\n\n Object.assign(elements.floating.style, {\n maxWidth: `${Math.min(targetW, availableWidth)}px`,\n maxHeight: `${Math.min(maxHeight, availableHeight)}px`,\n overflowY: 'auto',\n overflowX: 'hidden',\n });\n },\n }),\n ],\n whileElementsMounted: isOpen ? autoUpdate : undefined,\n });\n\n const handleOpen = (isKeyboard: boolean): void => {\n openedByKeyboard.current = isKeyboard;\n toggleIsOpen();\n };\n\n const handleClose = (): void => {\n if (!isOpen) return;\n\n toggleIsOpen();\n buttonRef.current?.focus();\n };\n\n useEffect(() => {\n if (isOpen && openedByKeyboard.current) {\n const firstEnabled = childrenRefList.current?.find(r => r.current && !r.current.hasAttribute('disabled'));\n firstEnabled?.current?.focus();\n openedByKeyboard.current = false;\n }\n }, [isOpen]);\n\n const focusByIndex = (nextIndex: number): void => {\n childrenRefList.current?.[nextIndex]?.current?.focus();\n };\n\n const isListNavKey = (key: string): boolean =>\n key === KeyboardEventKey.ArrowDown || key === KeyboardEventKey.ArrowUp || key === KeyboardEventKey.Home || key === KeyboardEventKey.End;\n\n const handleKeyboardNavigation = (event: KeyboardEvent): void => {\n if (!childrenRefList.current) return;\n\n const key = event.key as KeyboardEventKey;\n\n if (key === KeyboardEventKey.Escape) {\n if (isOpen) {\n event.preventDefault();\n handleClose();\n }\n return;\n }\n\n if (!isOpen) {\n if (isListNavKey(key)) {\n event.preventDefault();\n handleOpen(true);\n }\n return;\n }\n\n if (!isListNavKey(key)) {\n return;\n }\n\n const index = childrenRefList.current.findIndex(x => x.current === (event.target as HTMLElement));\n let nextIndex = index;\n\n if (key === KeyboardEventKey.Home) {\n nextIndex = 0;\n } else if (key === KeyboardEventKey.End) {\n nextIndex = childrenRefList.current.length - 1;\n } else if (key === KeyboardEventKey.ArrowDown && index < childrenRefList.current.length - 1) {\n nextIndex = index + 1;\n } else if (key === KeyboardEventKey.ArrowUp && index > 0) {\n nextIndex = index - 1;\n }\n\n if (nextIndex !== -1) {\n event.preventDefault();\n focusByIndex(nextIndex);\n }\n };\n\n useKeyboardEvent(dropdownRef, handleKeyboardNavigation, [\n KeyboardEventKey.ArrowDown,\n KeyboardEventKey.ArrowUp,\n KeyboardEventKey.End,\n KeyboardEventKey.Enter,\n KeyboardEventKey.Escape,\n KeyboardEventKey.Home,\n KeyboardEventKey.Space,\n ]);\n\n useOutsideEvent(dropdownRef, () => isOpen && handleClose());\n\n const renderChildren = React.Children.map(children, (child, index) => {\n return (\n <li className={listItemClasses} id={`${optionIdPrefix}-${index}`}>\n {React.isValidElement(child) && childrenRefList.current && childrenRefList.current[index]\n ? ((): React.ReactElement => {\n const baseProps: { ref: React.Ref<HTMLElement> } = {\n ref: mergeRefs([child.props.ref, childrenRefList.current[index]]),\n };\n\n if (isMultiSelect) {\n const label = (child.props as CheckboxProps).label as React.ReactNode;\n if (React.isValidElement(label) && isComponent<LabelProps>(label, Label)) {\n return React.cloneElement(child as React.ReactElement<CheckboxProps>, {\n ...baseProps,\n label: React.cloneElement(label, {\n labelClassName: classNames((label.props as LabelProps)?.labelClassName, styles['dropdown__multiselect-item']),\n }),\n });\n }\n }\n\n return React.cloneElement(child as React.ReactElement<Record<string, unknown>>, baseProps);\n })()\n : child}\n </li>\n );\n });\n\n return (\n <div className={styles.dropdown} ref={dropdownRef}>\n <button\n type=\"button\"\n onClick={(): false | void => handleOpen(false)}\n className={toggleClasses}\n ref={mergeRefs([buttonRef, refs.setReference])}\n data-testid={testId}\n data-analyticsid={AnalyticsId.Dropdown}\n disabled={disabled}\n aria-labelledby={toggleTextId}\n aria-haspopup={true}\n aria-controls={contentId}\n aria-expanded={isOpen}\n style={{\n width: triggerActualMinWidth,\n maxWidth: '100%',\n minWidth: `${triggerMinWidthLimit}px`,\n }}\n >\n {svgIcon && (\n <>\n {typeof svgIcon === 'string' ? (\n <LazyIcon {...leftIconProps} iconName={svgIcon} />\n ) : (\n <Icon {...leftIconProps} svgIcon={svgIcon} />\n )}\n </>\n )}\n <span id={toggleTextId} className={styles.dropdown__toggle__text}>\n {triggerText}\n </span>\n <Icon\n svgIcon={!isSingleSelect ? PlusSmall : isOpen ? ChevronUp : ChevronDown}\n className={styles['dropdown__right-icon']}\n isHovered={!disabled && isHovered}\n size={IconSize.XSmall}\n />\n </button>\n <div\n key={dropdownMinWidth ?? 'auto'}\n id={contentId}\n className={contentClasses}\n ref={refs.setFloating}\n style={{\n ...floatingStyles,\n zIndex: zIndex,\n }}\n >\n <ul className={styles.dropdown__options} role=\"group\" aria-labelledby={toggleTextId} tabIndex={-1} ref={optionsRef}>\n {isSingleSelect && <SingleSelect onValueChange={() => handleClose()}>{renderChildren}</SingleSelect>}\n {isMultiSelect && renderChildren}\n </ul>\n {!isSingleSelect && !noCloseButton && (\n <div className={styles.dropdown__close}>\n <Button onClick={handleClose}>{mergedResources.closeText}</Button>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport interface DropdownCompound extends React.FC<DropdownProps> {\n SingleSelectItem: ComponentType<SingleSelectItemProps>;\n}\nconst Dropdown = DropdownBase as DropdownCompound;\nDropdown.SingleSelectItem = SingleSelectItem;\nDropdownBase.displayName = 'Dropdown';\n\nexport default Dropdown;\n","import Dropdown from './Dropdown';\nexport * from './Dropdown';\nexport default Dropdown;\n"],"mappings":"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"}
@@ -1,45 +1,17 @@
1
- import "../../uuid.js";
2
- import "../../environment.js";
3
1
  import { a as IconSize, c as ZIndex, n as AnalyticsId, o as KeyboardEventKey, s as LanguageLocales } from "../../constants2.js";
4
2
  import { t as usePseudoClasses } from "../../usePseudoClasses.js";
5
- import "../../grid.js";
6
- import "../../palette.js";
7
- import "../../spacers.js";
8
3
  import { t as theme } from "../../theme.js";
9
- import "../../color.js";
10
4
  import { n as mergeRefs } from "../../refs.js";
11
5
  import { t as Icon_default } from "../../Icon.js";
12
6
  import { r as useLanguage } from "../../language.js";
13
- import "../../_rolldown_dynamic_import_helper.js";
14
- import "../../useIsServerSide.js";
15
- import "../../LazyIcon.js";
16
- import "../../component.js";
17
- import "../../useIcons.js";
18
- import "../../useBreakpoint.js";
19
- import "../../useIsMobileBreakpoint.js";
20
- import "../../ArrowRight.js";
21
7
  import { t as Button_default } from "../../Button.js";
22
- import "../../useElementList.js";
23
- import "../../useFocusableElements.js";
24
- import "../../useFocusToggle.js";
25
- import "../../focus.js";
26
- import "../../useFocusTrap.js";
27
- import "../../useIntersectionObserver.js";
28
- import "../../useIsVisible.js";
29
- import "../../debounce.js";
30
- import "../../useLayoutEvent.js";
31
- import "../../usePrevious.js";
32
- import "../../useSize.js";
33
- import "../../useResizeObserver.js";
34
8
  import { t as useToggle } from "../../useToggle.js";
35
9
  import { t as useKeyboardEvent } from "../../useKeyboardEvent.js";
36
10
  import { t as useOutsideEvent } from "../../useOutsideEvent.js";
37
- import "../../mobile.js";
38
- import "../../src.js";
39
11
  import { n as HN_Designsystem_Dropdown_en_GB_default, t as HN_Designsystem_Dropdown_nb_NO_default } from "../../HN.Designsystem.Dropdown.nb-NO.js";
40
12
  import { t as PlusSmall_default } from "../../PlusSmall.js";
41
13
  import React, { useEffect, useId, useRef } from "react";
42
- import cn from "classnames";
14
+ import classNames from "classnames";
43
15
  import { jsx, jsxs } from "react/jsx-runtime";
44
16
  import styles from "./styles.module.scss";
45
17
  const getResources = (language) => {
@@ -122,7 +94,7 @@ var DropdownOld = (props) => {
122
94
  KeyboardEventKey.Space
123
95
  ]);
124
96
  useOutsideEvent(dropdownRef, () => isOpen && handleClose());
125
- const toggleClasses = cn(styles.dropdown__toggle, !disabled && {
97
+ const toggleClasses = classNames(styles.dropdown__toggle, !disabled && {
126
98
  [styles["dropdown__toggle--on-white"]]: onColor === DropdownOldOnColor.onwhite,
127
99
  [styles["dropdown__toggle--on-grey"]]: onColor === DropdownOldOnColor.ongrey,
128
100
  [styles["dropdown__toggle--on-blueberry"]]: onColor === DropdownOldOnColor.onblueberry,
@@ -131,7 +103,7 @@ var DropdownOld = (props) => {
131
103
  [styles["dropdown__toggle--fluid"]]: fluid,
132
104
  [styles["dropdown__toggle--open"]]: isOpen
133
105
  });
134
- const contentClasses = cn(styles.dropdown__content, isOpen && styles["dropdown__content--open"]);
106
+ const contentClasses = classNames(styles.dropdown__content, isOpen && styles["dropdown__content--open"]);
135
107
  const renderChildren = React.Children.map(children, (child, index) => {
136
108
  return /* @__PURE__ */ jsx("li", {
137
109
  className: styles.dropdown__input,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DropdownOld: React.FC<DropdownOldProps>","mergedResources: HNDesignsystemDropdown"],"sources":["../../../src/components/DropdownOld/resourceHelper.ts","../../../src/components/DropdownOld/DropdownOld.tsx","../../../src/components/DropdownOld/index.ts"],"sourcesContent":["import { LanguageLocales } from '../../constants';\nimport enGB from '../../resources/HN.Designsystem.Dropdown.en-GB.json';\nimport nbNO from '../../resources/HN.Designsystem.Dropdown.nb-NO.json';\nimport { HNDesignsystemDropdown } from '../../resources/Resources';\n\nexport const getResources = (language: LanguageLocales): HNDesignsystemDropdown => {\n switch (language) {\n case LanguageLocales.ENGLISH:\n return enGB;\n case LanguageLocales.NORWEGIAN:\n default:\n return nbNO;\n }\n};\n","import React, { useEffect, useRef, useId } from 'react';\n\nimport classNames from 'classnames';\n\nimport {\n AnalyticsId,\n IconSize,\n KeyboardEventKey,\n LanguageLocales,\n ZIndex,\n theme,\n usePseudoClasses,\n useKeyboardEvent,\n useOutsideEvent,\n useToggle,\n} from '../..';\nimport { getResources } from './resourceHelper';\nimport { HNDesignsystemDropdown } from '../../resources/Resources';\nimport { useLanguage } from '../../utils/language';\nimport { mergeRefs } from '../../utils/refs';\nimport Button from '../Button';\nimport Icon from '../Icon';\nimport PlusSmall from '../Icons/PlusSmall';\n\nimport styles from './styles.module.scss';\n\nexport enum DropdownOldOnColor {\n onwhite = 'onwhite',\n ongrey = 'ongrey',\n onblueberry = 'onblueberry',\n oncherry = 'oncherry',\n}\n\nexport interface DropdownOldProps {\n /** Label for dropdown. Visible for screen readers */\n label: string;\n /** Text on the trigger button that opens the dropdown */\n placeholder: string;\n /** Sets the dropdown content */\n children: React.ReactNode;\n /** @deprecated Close button text */\n closeText?: string;\n /** Minimum width for the dropdown in pixels. Does not affect trigger button */\n dropdownMinWidth?: number;\n /** No close button */\n noCloseButton?: boolean;\n /** Called when dropdown is open/closed */\n onToggle?: (isOpen: boolean) => void;\n /** Whether the dropdown is open or not */\n open?: boolean;\n /** Changes the visuals of the dropdown */\n onColor?: keyof typeof DropdownOldOnColor;\n /** Makes the background of the trigger transparent */\n transparent?: boolean;\n /** Makes the width of the full component adjust to its parent */\n fluid?: boolean;\n /** Makes the dropdown disabled */\n disabled?: boolean;\n /** Sets the data-testid attribute on the dropdown button */\n testId?: string;\n /** Overrides the default z-index of the DropDownContent */\n zIndex?: number;\n /** Resources for component */\n resources?: Partial<HNDesignsystemDropdown>;\n}\n\nconst DropdownOld: React.FC<DropdownOldProps> = props => {\n const {\n label,\n placeholder,\n noCloseButton = false,\n onToggle,\n dropdownMinWidth,\n open = false,\n children,\n onColor = DropdownOldOnColor.onwhite,\n transparent = false,\n fluid = false,\n testId,\n disabled,\n zIndex = ZIndex.PopOver,\n resources,\n } = props;\n\n const dropdownRef = useRef<HTMLDivElement>(null);\n const optionsRef = useRef<HTMLUListElement>(null);\n const { refObject: buttonRef, isHovered } = usePseudoClasses<HTMLButtonElement>();\n const openedByKeyboard = useRef<boolean>(false);\n const { value: isOpen, toggleValue: toggleIsOpen } = useToggle(!disabled && open, onToggle);\n const inputRefList = useRef(React.Children.map(children, () => React.createRef<HTMLElement>()));\n const labelId = useId();\n const toggleLabelId = useId();\n const optionIdPrefix = useId();\n const contentId = useId();\n const { language } = useLanguage<LanguageLocales>(LanguageLocales.NORWEGIAN);\n const defaultResources = getResources(language);\n\n const mergedResources: HNDesignsystemDropdown = {\n ...defaultResources,\n ...resources,\n closeText: props.closeText ?? resources?.closeText ?? defaultResources.closeText,\n };\n\n const handleOpen = (isKeyboard: boolean): void => {\n openedByKeyboard.current = isKeyboard;\n toggleIsOpen();\n };\n\n const handleClose = (): void => {\n toggleIsOpen();\n buttonRef.current?.focus();\n };\n\n useEffect(() => {\n if (isOpen && openedByKeyboard.current) {\n const firstEnabled = inputRefList.current?.find(r => r.current && !r.current.hasAttribute('disabled'));\n firstEnabled?.current?.focus();\n openedByKeyboard.current = false;\n }\n }, [isOpen]);\n\n const handleKeyboardNavigation = (event: KeyboardEvent): void => {\n if (!inputRefList.current) {\n return;\n }\n\n if (event.key === KeyboardEventKey.Escape) {\n if (isOpen) handleClose();\n return;\n }\n\n if (!isOpen) {\n handleOpen(true);\n event.preventDefault();\n return;\n }\n\n const index = inputRefList.current.findIndex(x => x.current === event.target);\n let nextIndex = index;\n\n if (event.key === KeyboardEventKey.Home) {\n nextIndex = 0;\n } else if (event.key === KeyboardEventKey.End) {\n nextIndex = inputRefList.current.length - 1;\n } else if (event.key === KeyboardEventKey.ArrowDown && index < inputRefList.current.length - 1) {\n nextIndex = index + 1;\n } else if (event.key === KeyboardEventKey.ArrowUp && index > 0) {\n nextIndex = index - 1;\n } else if (event.key === KeyboardEventKey.Enter && index !== -1) {\n nextIndex = index;\n }\n\n if (nextIndex !== -1 && event.key !== KeyboardEventKey.Space) {\n event.preventDefault();\n\n inputRefList.current[nextIndex].current?.focus();\n }\n };\n\n useKeyboardEvent(dropdownRef, handleKeyboardNavigation, [\n KeyboardEventKey.ArrowDown,\n KeyboardEventKey.ArrowUp,\n KeyboardEventKey.End,\n KeyboardEventKey.Enter,\n KeyboardEventKey.Escape,\n KeyboardEventKey.Home,\n KeyboardEventKey.Space,\n ]);\n\n useOutsideEvent(dropdownRef, () => isOpen && handleClose());\n\n const toggleClasses = classNames(\n styles.dropdown__toggle,\n !disabled && {\n [styles['dropdown__toggle--on-white']]: onColor === DropdownOldOnColor.onwhite,\n [styles['dropdown__toggle--on-grey']]: onColor === DropdownOldOnColor.ongrey,\n [styles['dropdown__toggle--on-blueberry']]: onColor === DropdownOldOnColor.onblueberry,\n [styles['dropdown__toggle--on-cherry']]: onColor === DropdownOldOnColor.oncherry,\n [styles['dropdown__toggle--transparent']]: transparent,\n [styles['dropdown__toggle--fluid']]: fluid,\n [styles['dropdown__toggle--open']]: isOpen,\n }\n );\n\n const contentClasses = classNames(styles.dropdown__content, isOpen && styles['dropdown__content--open']);\n\n const renderChildren = React.Children.map(children, (child, index) => {\n return (\n <li className={styles.dropdown__input} id={`${optionIdPrefix}-${index}`}>\n {React.isValidElement(child) && inputRefList.current && inputRefList.current[index]\n ? React.cloneElement(child as React.ReactElement, {\n ref: mergeRefs([child.props.ref, inputRefList.current[index]]),\n })\n : child}\n </li>\n );\n });\n\n return (\n <div className={styles.dropdown} ref={dropdownRef}>\n <span id={labelId} className={styles.dropdown__label}>\n {label}\n </span>\n <button\n type=\"button\"\n onClick={(): false | void => handleOpen(false)}\n className={toggleClasses}\n ref={buttonRef}\n data-testid={testId}\n data-analyticsid={AnalyticsId.Dropdown}\n disabled={disabled}\n aria-labelledby={toggleLabelId}\n aria-haspopup={true}\n aria-controls={contentId}\n aria-expanded={isOpen}\n >\n <span id={toggleLabelId} className={styles.dropdown__toggle__label}>\n {placeholder}\n </span>\n <Icon\n color={disabled ? theme.palette.neutral700 : theme.palette.blueberry600}\n svgIcon={PlusSmall}\n className={styles.dropdown__icon}\n isHovered={!disabled && isHovered}\n size={IconSize.XSmall}\n />\n </button>\n <div\n id={contentId}\n className={contentClasses}\n style={{ width: fluid ? '100%' : `auto`, minWidth: dropdownMinWidth ?? 'auto', zIndex: zIndex }}\n >\n <ul className={styles.dropdown__options} role=\"group\" aria-labelledby={labelId} tabIndex={-1} ref={optionsRef}>\n {renderChildren}\n </ul>\n {!noCloseButton && (\n <div className={styles.dropdown__close}>\n <Button onClick={handleClose}>{mergedResources.closeText}</Button>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default DropdownOld;\n","import DropdownOld from './DropdownOld';\nexport * from './DropdownOld';\nexport default DropdownOld;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["DropdownOld: React.FC<DropdownOldProps>","mergedResources: HNDesignsystemDropdown"],"sources":["../../../src/components/DropdownOld/resourceHelper.ts","../../../src/components/DropdownOld/DropdownOld.tsx","../../../src/components/DropdownOld/index.ts"],"sourcesContent":["import { LanguageLocales } from '../../constants';\nimport enGB from '../../resources/HN.Designsystem.Dropdown.en-GB.json';\nimport nbNO from '../../resources/HN.Designsystem.Dropdown.nb-NO.json';\nimport { HNDesignsystemDropdown } from '../../resources/Resources';\n\nexport const getResources = (language: LanguageLocales): HNDesignsystemDropdown => {\n switch (language) {\n case LanguageLocales.ENGLISH:\n return enGB;\n case LanguageLocales.NORWEGIAN:\n default:\n return nbNO;\n }\n};\n","import React, { useEffect, useRef, useId } from 'react';\n\nimport classNames from 'classnames';\n\nimport {\n AnalyticsId,\n IconSize,\n KeyboardEventKey,\n LanguageLocales,\n ZIndex,\n theme,\n usePseudoClasses,\n useKeyboardEvent,\n useOutsideEvent,\n useToggle,\n} from '../..';\nimport { getResources } from './resourceHelper';\nimport { HNDesignsystemDropdown } from '../../resources/Resources';\nimport { useLanguage } from '../../utils/language';\nimport { mergeRefs } from '../../utils/refs';\nimport Button from '../Button';\nimport Icon from '../Icon';\nimport PlusSmall from '../Icons/PlusSmall';\n\nimport styles from './styles.module.scss';\n\nexport enum DropdownOldOnColor {\n onwhite = 'onwhite',\n ongrey = 'ongrey',\n onblueberry = 'onblueberry',\n oncherry = 'oncherry',\n}\n\nexport interface DropdownOldProps {\n /** Label for dropdown. Visible for screen readers */\n label: string;\n /** Text on the trigger button that opens the dropdown */\n placeholder: string;\n /** Sets the dropdown content */\n children: React.ReactNode;\n /** @deprecated Close button text */\n closeText?: string;\n /** Minimum width for the dropdown in pixels. Does not affect trigger button */\n dropdownMinWidth?: number;\n /** No close button */\n noCloseButton?: boolean;\n /** Called when dropdown is open/closed */\n onToggle?: (isOpen: boolean) => void;\n /** Whether the dropdown is open or not */\n open?: boolean;\n /** Changes the visuals of the dropdown */\n onColor?: keyof typeof DropdownOldOnColor;\n /** Makes the background of the trigger transparent */\n transparent?: boolean;\n /** Makes the width of the full component adjust to its parent */\n fluid?: boolean;\n /** Makes the dropdown disabled */\n disabled?: boolean;\n /** Sets the data-testid attribute on the dropdown button */\n testId?: string;\n /** Overrides the default z-index of the DropDownContent */\n zIndex?: number;\n /** Resources for component */\n resources?: Partial<HNDesignsystemDropdown>;\n}\n\nconst DropdownOld: React.FC<DropdownOldProps> = props => {\n const {\n label,\n placeholder,\n noCloseButton = false,\n onToggle,\n dropdownMinWidth,\n open = false,\n children,\n onColor = DropdownOldOnColor.onwhite,\n transparent = false,\n fluid = false,\n testId,\n disabled,\n zIndex = ZIndex.PopOver,\n resources,\n } = props;\n\n const dropdownRef = useRef<HTMLDivElement>(null);\n const optionsRef = useRef<HTMLUListElement>(null);\n const { refObject: buttonRef, isHovered } = usePseudoClasses<HTMLButtonElement>();\n const openedByKeyboard = useRef<boolean>(false);\n const { value: isOpen, toggleValue: toggleIsOpen } = useToggle(!disabled && open, onToggle);\n const inputRefList = useRef(React.Children.map(children, () => React.createRef<HTMLElement>()));\n const labelId = useId();\n const toggleLabelId = useId();\n const optionIdPrefix = useId();\n const contentId = useId();\n const { language } = useLanguage<LanguageLocales>(LanguageLocales.NORWEGIAN);\n const defaultResources = getResources(language);\n\n const mergedResources: HNDesignsystemDropdown = {\n ...defaultResources,\n ...resources,\n closeText: props.closeText ?? resources?.closeText ?? defaultResources.closeText,\n };\n\n const handleOpen = (isKeyboard: boolean): void => {\n openedByKeyboard.current = isKeyboard;\n toggleIsOpen();\n };\n\n const handleClose = (): void => {\n toggleIsOpen();\n buttonRef.current?.focus();\n };\n\n useEffect(() => {\n if (isOpen && openedByKeyboard.current) {\n const firstEnabled = inputRefList.current?.find(r => r.current && !r.current.hasAttribute('disabled'));\n firstEnabled?.current?.focus();\n openedByKeyboard.current = false;\n }\n }, [isOpen]);\n\n const handleKeyboardNavigation = (event: KeyboardEvent): void => {\n if (!inputRefList.current) {\n return;\n }\n\n if (event.key === KeyboardEventKey.Escape) {\n if (isOpen) handleClose();\n return;\n }\n\n if (!isOpen) {\n handleOpen(true);\n event.preventDefault();\n return;\n }\n\n const index = inputRefList.current.findIndex(x => x.current === event.target);\n let nextIndex = index;\n\n if (event.key === KeyboardEventKey.Home) {\n nextIndex = 0;\n } else if (event.key === KeyboardEventKey.End) {\n nextIndex = inputRefList.current.length - 1;\n } else if (event.key === KeyboardEventKey.ArrowDown && index < inputRefList.current.length - 1) {\n nextIndex = index + 1;\n } else if (event.key === KeyboardEventKey.ArrowUp && index > 0) {\n nextIndex = index - 1;\n } else if (event.key === KeyboardEventKey.Enter && index !== -1) {\n nextIndex = index;\n }\n\n if (nextIndex !== -1 && event.key !== KeyboardEventKey.Space) {\n event.preventDefault();\n\n inputRefList.current[nextIndex].current?.focus();\n }\n };\n\n useKeyboardEvent(dropdownRef, handleKeyboardNavigation, [\n KeyboardEventKey.ArrowDown,\n KeyboardEventKey.ArrowUp,\n KeyboardEventKey.End,\n KeyboardEventKey.Enter,\n KeyboardEventKey.Escape,\n KeyboardEventKey.Home,\n KeyboardEventKey.Space,\n ]);\n\n useOutsideEvent(dropdownRef, () => isOpen && handleClose());\n\n const toggleClasses = classNames(\n styles.dropdown__toggle,\n !disabled && {\n [styles['dropdown__toggle--on-white']]: onColor === DropdownOldOnColor.onwhite,\n [styles['dropdown__toggle--on-grey']]: onColor === DropdownOldOnColor.ongrey,\n [styles['dropdown__toggle--on-blueberry']]: onColor === DropdownOldOnColor.onblueberry,\n [styles['dropdown__toggle--on-cherry']]: onColor === DropdownOldOnColor.oncherry,\n [styles['dropdown__toggle--transparent']]: transparent,\n [styles['dropdown__toggle--fluid']]: fluid,\n [styles['dropdown__toggle--open']]: isOpen,\n }\n );\n\n const contentClasses = classNames(styles.dropdown__content, isOpen && styles['dropdown__content--open']);\n\n const renderChildren = React.Children.map(children, (child, index) => {\n return (\n <li className={styles.dropdown__input} id={`${optionIdPrefix}-${index}`}>\n {React.isValidElement(child) && inputRefList.current && inputRefList.current[index]\n ? React.cloneElement(child as React.ReactElement, {\n ref: mergeRefs([child.props.ref, inputRefList.current[index]]),\n })\n : child}\n </li>\n );\n });\n\n return (\n <div className={styles.dropdown} ref={dropdownRef}>\n <span id={labelId} className={styles.dropdown__label}>\n {label}\n </span>\n <button\n type=\"button\"\n onClick={(): false | void => handleOpen(false)}\n className={toggleClasses}\n ref={buttonRef}\n data-testid={testId}\n data-analyticsid={AnalyticsId.Dropdown}\n disabled={disabled}\n aria-labelledby={toggleLabelId}\n aria-haspopup={true}\n aria-controls={contentId}\n aria-expanded={isOpen}\n >\n <span id={toggleLabelId} className={styles.dropdown__toggle__label}>\n {placeholder}\n </span>\n <Icon\n color={disabled ? theme.palette.neutral700 : theme.palette.blueberry600}\n svgIcon={PlusSmall}\n className={styles.dropdown__icon}\n isHovered={!disabled && isHovered}\n size={IconSize.XSmall}\n />\n </button>\n <div\n id={contentId}\n className={contentClasses}\n style={{ width: fluid ? '100%' : `auto`, minWidth: dropdownMinWidth ?? 'auto', zIndex: zIndex }}\n >\n <ul className={styles.dropdown__options} role=\"group\" aria-labelledby={labelId} tabIndex={-1} ref={optionsRef}>\n {renderChildren}\n </ul>\n {!noCloseButton && (\n <div className={styles.dropdown__close}>\n <Button onClick={handleClose}>{mergedResources.closeText}</Button>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default DropdownOld;\n","import DropdownOld from './DropdownOld';\nexport * from './DropdownOld';\nexport default DropdownOld;\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { default as React } from 'react';
2
- import { Breakpoint } from '../../hooks/useBreakpoint';
3
2
  import { TitleProps } from '../Title';
3
+ import { Breakpoint } from '../../hooks/useBreakpoint';
4
4
  export type DuolistVariants = 'normal' | 'line';
5
5
  export type BoldColumn = 'first' | 'second' | 'none';
6
6
  export type Border = 'no-border' | 'border';
@@ -40,6 +40,8 @@ export interface DuolistGroupProps {
40
40
  separator?: string;
41
41
  /** Sets content of the <dt> tag. */
42
42
  term: React.ReactNode;
43
+ /** Sets the data-testid attribute. */
44
+ testId?: string;
43
45
  }
44
46
  export declare const DuolistGroup: React.FC<DuolistGroupProps>;
45
47
  export declare const Duolist: React.FC<DuolistProps>;
@@ -1,6 +1,2 @@
1
- import "../../constants2.js";
2
- import "../../grid.js";
3
- import "../../useBreakpoint.js";
4
- import "../../Spacer.js";
5
1
  import { n as Duolist, r as DuolistGroup, t as Duolist_default } from "../../Duolist.js";
6
2
  export { Duolist, DuolistGroup, Duolist_default as default };
@@ -1,12 +1,3 @@
1
- import "../../../uuid.js";
2
- import "../../../environment.js";
3
- import "../../../constants2.js";
4
- import "../../../grid.js";
5
- import "../../../component.js";
6
- import "../../../useBreakpoint.js";
7
- import "../../../Spacer.js";
8
- import "../../../Duolist.js";
9
- import "../../../Highlighter.js";
10
1
  import { n as ElementHeaderText_default$1, t as ElementHeaderText } from "../../../ElementHeaderText.js";
11
2
  var ElementHeaderText_default = ElementHeaderText_default$1;
12
3
  export { ElementHeaderText, ElementHeaderText_default as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/ElementHeader/ElementHeaderText/index.ts"],"sourcesContent":["import ElementHeaderText from './ElementHeaderText';\nexport * from './ElementHeaderText';\nexport default ElementHeaderText;\n"],"mappings":";;;;;;;;;;AAEA,IAAA,4BAAe"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/ElementHeader/ElementHeaderText/index.ts"],"sourcesContent":["import ElementHeaderText from './ElementHeaderText';\nexport * from './ElementHeaderText';\nexport default ElementHeaderText;\n"],"mappings":";AAEA,IAAA,4BAAe"}