@helsenorge/designsystem-react 15.0.0-beta.1 → 15.0.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 (712) hide show
  1. package/lib/AnchorLink.js.map +1 -1
  2. package/lib/AsChildSlot.js.map +1 -1
  3. package/lib/Avatar.js.map +1 -1
  4. package/lib/Badge.js.map +1 -1
  5. package/lib/Button.js.map +1 -1
  6. package/lib/CHANGELOG.md +33 -0
  7. package/lib/Checkbox.js +25 -48
  8. package/lib/Checkbox.js.map +1 -1
  9. package/lib/Checkbox2.js +69 -0
  10. package/lib/Checkbox2.js.map +1 -0
  11. package/lib/CheckboxMarker.js +64 -0
  12. package/lib/CheckboxMarker.js.map +1 -0
  13. package/lib/Chip.js.map +1 -1
  14. package/lib/Close.js.map +1 -1
  15. package/lib/DictionaryTrigger.js.map +1 -1
  16. package/lib/Drawer.js.map +1 -1
  17. package/lib/DrawerNavigation.js.map +1 -1
  18. package/lib/Duolist.js.map +1 -1
  19. package/lib/ElementHeader.js.map +1 -1
  20. package/lib/ElementHeaderText.js.map +1 -1
  21. package/lib/ErrorBoundary.js.map +1 -1
  22. package/lib/ErrorWrapper.js.map +1 -1
  23. package/lib/Expander.js.map +1 -1
  24. package/lib/FilterButton.js.map +1 -1
  25. package/lib/FilterButtonAndChipsWrapper.js.map +1 -1
  26. package/lib/FilterDrawer.js +20 -10
  27. package/lib/FilterDrawer.js.map +1 -1
  28. package/lib/FilterLinkList.js.map +1 -1
  29. package/lib/FilterOverviewLinkList.js.map +1 -1
  30. package/lib/FilterOverviewSearch.js.map +1 -1
  31. package/lib/FilterResultCountAndSortWrapper.js.map +1 -1
  32. package/lib/FilterSearch.js.map +1 -1
  33. package/lib/FilterSort.js.map +1 -1
  34. package/lib/FilterStateWrapper.js.map +1 -1
  35. package/lib/FormFieldTag.js.map +1 -1
  36. package/lib/FormGroup.js +5 -5
  37. package/lib/FormGroup.js.map +1 -1
  38. package/lib/FormLayout.js.map +1 -1
  39. package/lib/HelpDetails.js.map +1 -1
  40. package/lib/HelpTriggerIcon.js.map +1 -1
  41. package/lib/HelpTriggerStandalone.js.map +1 -1
  42. package/lib/HighlightPanel.js.map +1 -1
  43. package/lib/Highlighter.js.map +1 -1
  44. package/lib/HorizontalScroll.js.map +1 -1
  45. package/lib/Icon.js.map +1 -1
  46. package/lib/Illustration.js +1 -1
  47. package/lib/Illustration.js.map +1 -1
  48. package/lib/InfoTeaser.js.map +1 -1
  49. package/lib/Input.js.map +1 -1
  50. package/lib/LazyIcon.js +1 -1
  51. package/lib/LazyIcon.js.map +1 -1
  52. package/lib/LazyIllustration.js +6 -2
  53. package/lib/LazyIllustration.js.map +1 -1
  54. package/lib/LinkList.js.map +1 -1
  55. package/lib/List.js.map +1 -1
  56. package/lib/ListEditMode.js.map +1 -1
  57. package/lib/LoaderSpinner.js +61 -0
  58. package/lib/LoaderSpinner.js.map +1 -0
  59. package/lib/MaxCharacters.js.map +1 -1
  60. package/lib/NotificationBadge.js.map +1 -1
  61. package/lib/PanelTitle.js.map +1 -1
  62. package/lib/PopOver.js.map +1 -1
  63. package/lib/Radio.js +74 -0
  64. package/lib/Radio.js.map +1 -0
  65. package/lib/RadioButton.js +84 -0
  66. package/lib/RadioButton.js.map +1 -0
  67. package/lib/RadioMarker.js +35 -0
  68. package/lib/RadioMarker.js.map +1 -0
  69. package/lib/Select.js.map +1 -1
  70. package/lib/SingleSelectItem.js.map +1 -1
  71. package/lib/Slider.js.map +1 -1
  72. package/lib/Spacer.js.map +1 -1
  73. package/lib/StatusDot.js.map +1 -1
  74. package/lib/StatusDotList.js.map +1 -1
  75. package/lib/StepButtons.js.map +1 -1
  76. package/lib/TabList.js.map +1 -1
  77. package/lib/TabPanel.js.map +1 -1
  78. package/lib/TableBody.js +3 -3
  79. package/lib/TableBody.js.map +1 -1
  80. package/lib/TableCell.js +2 -2
  81. package/lib/TableCell.js.map +1 -1
  82. package/lib/TableExpandedRow.js +4 -4
  83. package/lib/TableExpandedRow.js.map +1 -1
  84. package/lib/TableExpanderCell.js +2 -2
  85. package/lib/TableExpanderCell.js.map +1 -1
  86. package/lib/TableHead.js +7 -7
  87. package/lib/TableHead.js.map +1 -1
  88. package/lib/TableHeadCell.js +5 -5
  89. package/lib/TableHeadCell.js.map +1 -1
  90. package/lib/TableRow.js +6 -6
  91. package/lib/TableRow.js.map +1 -1
  92. package/lib/Textarea.js.map +1 -1
  93. package/lib/Title.js.map +1 -1
  94. package/lib/Toast.js.map +1 -1
  95. package/lib/VisualCheckbox.js +79 -0
  96. package/lib/VisualCheckbox.js.map +1 -0
  97. package/lib/VisualRadio.js +64 -0
  98. package/lib/VisualRadio.js.map +1 -0
  99. package/lib/__mocks__/IntersectionObserver.js.map +1 -1
  100. package/lib/__mocks__/MutationObserver.js.map +1 -1
  101. package/lib/__mocks__/ResizeObserver.js.map +1 -1
  102. package/lib/__mocks__/matchMedia.js +3 -2
  103. package/lib/__mocks__/matchMedia.js.map +1 -1
  104. package/lib/__mocks__/useLayoutEvent.js.map +1 -1
  105. package/lib/__mocks__/useOutsideEvent.js.map +1 -1
  106. package/lib/__mocks__/usePseudoClasses.js.map +1 -1
  107. package/lib/__mocks__/useSize.js.map +1 -1
  108. package/lib/__mocks__/uuid.js.map +1 -1
  109. package/lib/components/ArticleTeaser/index.js.map +1 -1
  110. package/lib/components/Checkbox/CheckboxMarker/CheckboxMarker.d.ts +20 -0
  111. package/lib/components/Checkbox/CheckboxMarker/styles.module.scss +309 -0
  112. package/lib/components/Checkbox/CheckboxMarker/styles.module.scss.d.ts +25 -0
  113. package/lib/components/Checkbox/styles.module.scss +9 -269
  114. package/lib/components/Checkbox/styles.module.scss.d.ts +1 -17
  115. package/lib/components/Dropdown/index.js.map +1 -1
  116. package/lib/components/DropdownOld/index.js.map +1 -1
  117. package/lib/components/EmptyState/index.js.map +1 -1
  118. package/lib/components/ExpanderHierarchy/index.js.map +1 -1
  119. package/lib/components/ExpanderList/index.js.map +1 -1
  120. package/lib/components/EyebrowHeader/index.js.map +1 -1
  121. package/lib/components/FavoriteButton/index.js.map +1 -1
  122. package/lib/components/Filter/FilterDrawer/FilterDrawer.d.ts +4 -2
  123. package/lib/components/Filter/FilterDrawer/styles.module.scss +7 -0
  124. package/lib/components/Filter/FilterDrawer/styles.module.scss.d.ts +1 -0
  125. package/lib/components/Filter/LoaderSpinner/LoaderSpinner.d.ts +9 -0
  126. package/lib/components/Filter/LoaderSpinner/index.d.ts +3 -0
  127. package/lib/components/Filter/LoaderSpinner/index.js +7 -0
  128. package/lib/components/Filter/LoaderSpinner/index.js.map +1 -0
  129. package/lib/components/Filter/LoaderSpinner/styles.module.scss +27 -0
  130. package/lib/components/Filter/LoaderSpinner/styles.module.scss.d.ts +11 -0
  131. package/lib/components/Filter/index.d.ts +2 -0
  132. package/lib/components/Filter/index.js +2 -1
  133. package/lib/components/Filter/index.js.map +1 -1
  134. package/lib/components/HelpBubble/index.js.map +1 -1
  135. package/lib/components/HelpDrawer/index.js.map +1 -1
  136. package/lib/components/HelpExpanderInline/index.js.map +1 -1
  137. package/lib/components/HelpExpanderStandalone/index.js.map +1 -1
  138. package/lib/components/HelpPanel/index.js.map +1 -1
  139. package/lib/components/HelpTeaser/index.js.map +1 -1
  140. package/lib/components/HelpTooltip/index.js.map +1 -1
  141. package/lib/components/HelpTriggerInline/index.js.map +1 -1
  142. package/lib/components/Icons/ActiveMonitoring.js.map +1 -1
  143. package/lib/components/Icons/AcupunctureBack.js.map +1 -1
  144. package/lib/components/Icons/AdditionalIconInformation.js.map +1 -1
  145. package/lib/components/Icons/AlarmClock.js.map +1 -1
  146. package/lib/components/Icons/AlertSignFill.js.map +1 -1
  147. package/lib/components/Icons/AlertSignStroke.js.map +1 -1
  148. package/lib/components/Icons/Amputation.js.map +1 -1
  149. package/lib/components/Icons/Anxiety.js.map +1 -1
  150. package/lib/components/Icons/Apple.js.map +1 -1
  151. package/lib/components/Icons/Archive.js.map +1 -1
  152. package/lib/components/Icons/ArmFlexing.js.map +1 -1
  153. package/lib/components/Icons/ArrowDown.js.map +1 -1
  154. package/lib/components/Icons/ArrowLeft.js.map +1 -1
  155. package/lib/components/Icons/ArrowRight.js.map +1 -1
  156. package/lib/components/Icons/ArrowUp.js.map +1 -1
  157. package/lib/components/Icons/ArrowUpRight.js.map +1 -1
  158. package/lib/components/Icons/Attachment.js.map +1 -1
  159. package/lib/components/Icons/Atv.js.map +1 -1
  160. package/lib/components/Icons/Avatar.js.map +1 -1
  161. package/lib/components/Icons/AwakePersonOnPillow.js.map +1 -1
  162. package/lib/components/Icons/Baby.js.map +1 -1
  163. package/lib/components/Icons/BandAid.js.map +1 -1
  164. package/lib/components/Icons/BeerAndPills.js.map +1 -1
  165. package/lib/components/Icons/Bell.js.map +1 -1
  166. package/lib/components/Icons/Bike.js.map +1 -1
  167. package/lib/components/Icons/BirthControl.js.map +1 -1
  168. package/lib/components/Icons/BirthdayCake.js.map +1 -1
  169. package/lib/components/Icons/Boat.js.map +1 -1
  170. package/lib/components/Icons/Body.js.map +1 -1
  171. package/lib/components/Icons/Braille.js.map +1 -1
  172. package/lib/components/Icons/Brain.js.map +1 -1
  173. package/lib/components/Icons/BreastReconstruction.js.map +1 -1
  174. package/lib/components/Icons/BreastRemoval.js.map +1 -1
  175. package/lib/components/Icons/Breasts.js.map +1 -1
  176. package/lib/components/Icons/BrokenHeart.js.map +1 -1
  177. package/lib/components/Icons/BrokenPuzzle.js.map +1 -1
  178. package/lib/components/Icons/Bus.js.map +1 -1
  179. package/lib/components/Icons/Calendar.js.map +1 -1
  180. package/lib/components/Icons/CalendarChange.js.map +1 -1
  181. package/lib/components/Icons/CalendarCheck.js.map +1 -1
  182. package/lib/components/Icons/CalendarEvent.js.map +1 -1
  183. package/lib/components/Icons/CalendarSave.js.map +1 -1
  184. package/lib/components/Icons/Cancer.js.map +1 -1
  185. package/lib/components/Icons/Candle.js.map +1 -1
  186. package/lib/components/Icons/Car.js.map +1 -1
  187. package/lib/components/Icons/Carton.js.map +1 -1
  188. package/lib/components/Icons/Change.js.map +1 -1
  189. package/lib/components/Icons/Check.js.map +1 -1
  190. package/lib/components/Icons/CheckFill.js.map +1 -1
  191. package/lib/components/Icons/CheckOutline.js.map +1 -1
  192. package/lib/components/Icons/Chest.js.map +1 -1
  193. package/lib/components/Icons/ChevronDown.js.map +1 -1
  194. package/lib/components/Icons/ChevronLeft.js.map +1 -1
  195. package/lib/components/Icons/ChevronRight.js.map +1 -1
  196. package/lib/components/Icons/ChevronUp.js.map +1 -1
  197. package/lib/components/Icons/ChevronsDown.js.map +1 -1
  198. package/lib/components/Icons/ChevronsUp.js.map +1 -1
  199. package/lib/components/Icons/ChildPlaying.js.map +1 -1
  200. package/lib/components/Icons/Cigarette.js.map +1 -1
  201. package/lib/components/Icons/Coins.js.map +1 -1
  202. package/lib/components/Icons/Contacts.js.map +1 -1
  203. package/lib/components/Icons/Copy.js.map +1 -1
  204. package/lib/components/Icons/CoronaCertificate.js.map +1 -1
  205. package/lib/components/Icons/Coronavirus.js.map +1 -1
  206. package/lib/components/Icons/Cough.js.map +1 -1
  207. package/lib/components/Icons/CreditCard.js.map +1 -1
  208. package/lib/components/Icons/CriticalHealthInfo.js.map +1 -1
  209. package/lib/components/Icons/Cross.js.map +1 -1
  210. package/lib/components/Icons/DataExchange.js.map +1 -1
  211. package/lib/components/Icons/DataReceived.js.map +1 -1
  212. package/lib/components/Icons/DataSent.js.map +1 -1
  213. package/lib/components/Icons/Depression.js.map +1 -1
  214. package/lib/components/Icons/DigestiveSystem.js.map +1 -1
  215. package/lib/components/Icons/Dizzy.js.map +1 -1
  216. package/lib/components/Icons/Documents.js.map +1 -1
  217. package/lib/components/Icons/Dog.js.map +1 -1
  218. package/lib/components/Icons/DonorCard.js.map +1 -1
  219. package/lib/components/Icons/DotAttachment.js.map +1 -1
  220. package/lib/components/Icons/DotCheckmark.js.map +1 -1
  221. package/lib/components/Icons/DotCircleArrows.js.map +1 -1
  222. package/lib/components/Icons/DotDot.js.map +1 -1
  223. package/lib/components/Icons/DotExclamationMark.js.map +1 -1
  224. package/lib/components/Icons/DotFill.js.map +1 -1
  225. package/lib/components/Icons/DotGroup.js.map +1 -1
  226. package/lib/components/Icons/DotHalfDisc.js.map +1 -1
  227. package/lib/components/Icons/DotInfo.js.map +1 -1
  228. package/lib/components/Icons/DotLogin.js.map +1 -1
  229. package/lib/components/Icons/DotLookingGlass.js.map +1 -1
  230. package/lib/components/Icons/DotNoAccess.js.map +1 -1
  231. package/lib/components/Icons/DotNoEye.js.map +1 -1
  232. package/lib/components/Icons/DotOutline.js.map +1 -1
  233. package/lib/components/Icons/DotPencil.js.map +1 -1
  234. package/lib/components/Icons/DotQuestionMark.js.map +1 -1
  235. package/lib/components/Icons/DotTriangle.js.map +1 -1
  236. package/lib/components/Icons/DotX.js.map +1 -1
  237. package/lib/components/Icons/Download.js.map +1 -1
  238. package/lib/components/Icons/Draft.js.map +1 -1
  239. package/lib/components/Icons/Drag.js.map +1 -1
  240. package/lib/components/Icons/EChat.js.map +1 -1
  241. package/lib/components/Icons/Ear.js.map +1 -1
  242. package/lib/components/Icons/EarDeaf.js.map +1 -1
  243. package/lib/components/Icons/EarHearingAid.js.map +1 -1
  244. package/lib/components/Icons/EarNoseThroat.js.map +1 -1
  245. package/lib/components/Icons/EarVolume.js.map +1 -1
  246. package/lib/components/Icons/Edit.js.map +1 -1
  247. package/lib/components/Icons/ElderlyPerson.js.map +1 -1
  248. package/lib/components/Icons/Embolization.js.map +1 -1
  249. package/lib/components/Icons/EmergencyCall.js.map +1 -1
  250. package/lib/components/Icons/EmoticonAnnoyed.js.map +1 -1
  251. package/lib/components/Icons/EmoticonDelighted.js.map +1 -1
  252. package/lib/components/Icons/EmoticonDisappointed.js.map +1 -1
  253. package/lib/components/Icons/EmoticonHappy.js.map +1 -1
  254. package/lib/components/Icons/EmoticonMeh.js.map +1 -1
  255. package/lib/components/Icons/EmptyBox.js.map +1 -1
  256. package/lib/components/Icons/EnterFullScreen.js.map +1 -1
  257. package/lib/components/Icons/Envelope.js.map +1 -1
  258. package/lib/components/Icons/Epilepsy.js.map +1 -1
  259. package/lib/components/Icons/Eraser.js.map +1 -1
  260. package/lib/components/Icons/ErrorSignFill.js.map +1 -1
  261. package/lib/components/Icons/ErrorSignStroke.js.map +1 -1
  262. package/lib/components/Icons/EuropeanHealthCard.js.map +1 -1
  263. package/lib/components/Icons/ExitFullScreen.js.map +1 -1
  264. package/lib/components/Icons/Eye.js.map +1 -1
  265. package/lib/components/Icons/Facebook.js.map +1 -1
  266. package/lib/components/Icons/FallingLeaf.js.map +1 -1
  267. package/lib/components/Icons/Feedback.js.map +1 -1
  268. package/lib/components/Icons/Female.js.map +1 -1
  269. package/lib/components/Icons/FemaleDoctor.js.map +1 -1
  270. package/lib/components/Icons/Ferry.js.map +1 -1
  271. package/lib/components/Icons/File.js.map +1 -1
  272. package/lib/components/Icons/Filter.js +12 -12
  273. package/lib/components/Icons/Filter.js.map +1 -1
  274. package/lib/components/Icons/FingerBleed.js.map +1 -1
  275. package/lib/components/Icons/FirstAidKit.js.map +1 -1
  276. package/lib/components/Icons/Fish.js.map +1 -1
  277. package/lib/components/Icons/FloppyDisk.js.map +1 -1
  278. package/lib/components/Icons/Football.js.map +1 -1
  279. package/lib/components/Icons/Form.js.map +1 -1
  280. package/lib/components/Icons/Forward.js.map +1 -1
  281. package/lib/components/Icons/Gallery.js.map +1 -1
  282. package/lib/components/Icons/Garden.js.map +1 -1
  283. package/lib/components/Icons/GasCan.js.map +1 -1
  284. package/lib/components/Icons/GenderIdentity.js.map +1 -1
  285. package/lib/components/Icons/GlassWater.js.map +1 -1
  286. package/lib/components/Icons/Glasses.js.map +1 -1
  287. package/lib/components/Icons/Globe.js.map +1 -1
  288. package/lib/components/Icons/Grain.js.map +1 -1
  289. package/lib/components/Icons/Graph.js.map +1 -1
  290. package/lib/components/Icons/Group.js.map +1 -1
  291. package/lib/components/Icons/GroupTwins.js.map +1 -1
  292. package/lib/components/Icons/HTMLFile.js.map +1 -1
  293. package/lib/components/Icons/HandWaving.js.map +1 -1
  294. package/lib/components/Icons/HandWithDisease.js.map +1 -1
  295. package/lib/components/Icons/HandsAndHeart.js.map +1 -1
  296. package/lib/components/Icons/HealthClinic.js.map +1 -1
  297. package/lib/components/Icons/HealthMeasurements.js.map +1 -1
  298. package/lib/components/Icons/HealthWarning.js.map +1 -1
  299. package/lib/components/Icons/HealthcarePerson.js.map +1 -1
  300. package/lib/components/Icons/HealthcarePersonell.js.map +1 -1
  301. package/lib/components/Icons/HearingProtection.js.map +1 -1
  302. package/lib/components/Icons/Heart.js.map +1 -1
  303. package/lib/components/Icons/HeartHands.js.map +1 -1
  304. package/lib/components/Icons/HelpSign.js.map +1 -1
  305. package/lib/components/Icons/HelpingHand.js.map +1 -1
  306. package/lib/components/Icons/Hemodialysis.js.map +1 -1
  307. package/lib/components/Icons/Hiker.js.map +1 -1
  308. package/lib/components/Icons/Hipprosthesis.js.map +1 -1
  309. package/lib/components/Icons/History.js.map +1 -1
  310. package/lib/components/Icons/HivAndAids.js.map +1 -1
  311. package/lib/components/Icons/Home.js.map +1 -1
  312. package/lib/components/Icons/HomeFill.js.map +1 -1
  313. package/lib/components/Icons/Hormone.js.map +1 -1
  314. package/lib/components/Icons/Hospital.js.map +1 -1
  315. package/lib/components/Icons/Hourglass.js.map +1 -1
  316. package/lib/components/Icons/IconNames.js.map +1 -1
  317. package/lib/components/Icons/ImgFile.js.map +1 -1
  318. package/lib/components/Icons/Inbox.js.map +1 -1
  319. package/lib/components/Icons/InfoSignFill.js.map +1 -1
  320. package/lib/components/Icons/InfoSignStroke.js.map +1 -1
  321. package/lib/components/Icons/Instagram.js.map +1 -1
  322. package/lib/components/Icons/Intravenous.js.map +1 -1
  323. package/lib/components/Icons/JointPain.js.map +1 -1
  324. package/lib/components/Icons/Journal.js.map +1 -1
  325. package/lib/components/Icons/JpgFile.js.map +1 -1
  326. package/lib/components/Icons/Kidney.js.map +1 -1
  327. package/lib/components/Icons/KitchenScale.js.map +1 -1
  328. package/lib/components/Icons/Kjernejournal.js.map +1 -1
  329. package/lib/components/Icons/Laboratory.js.map +1 -1
  330. package/lib/components/Icons/LaptopBlog.js.map +1 -1
  331. package/lib/components/Icons/LawBook.js.map +1 -1
  332. package/lib/components/Icons/LegalDocument.js.map +1 -1
  333. package/lib/components/Icons/LightBulb.js.map +1 -1
  334. package/lib/components/Icons/List.js.map +1 -1
  335. package/lib/components/Icons/Location.js.map +1 -1
  336. package/lib/components/Icons/LocationFill.js.map +1 -1
  337. package/lib/components/Icons/Lock.js.map +1 -1
  338. package/lib/components/Icons/Login.js.map +1 -1
  339. package/lib/components/Icons/Logout.js.map +1 -1
  340. package/lib/components/Icons/Lungs.js.map +1 -1
  341. package/lib/components/Icons/Makeup.js.map +1 -1
  342. package/lib/components/Icons/MaleDoctor.js.map +1 -1
  343. package/lib/components/Icons/MaleDoctorAndPerson.js.map +1 -1
  344. package/lib/components/Icons/MaleDoctorCompact.js.map +1 -1
  345. package/lib/components/Icons/MaleDoctorCompactFill.js.map +1 -1
  346. package/lib/components/Icons/MaleGenitalia.js.map +1 -1
  347. package/lib/components/Icons/MeasuringTape.js.map +1 -1
  348. package/lib/components/Icons/Medicine.js.map +1 -1
  349. package/lib/components/Icons/MedicineWarning.js.map +1 -1
  350. package/lib/components/Icons/MentalHealthAdult.js.map +1 -1
  351. package/lib/components/Icons/MentalHealthChild.js.map +1 -1
  352. package/lib/components/Icons/Menu.js.map +1 -1
  353. package/lib/components/Icons/Microscope.js.map +1 -1
  354. package/lib/components/Icons/Minus.js.map +1 -1
  355. package/lib/components/Icons/Mirror.js.map +1 -1
  356. package/lib/components/Icons/MobilePhone.js.map +1 -1
  357. package/lib/components/Icons/MotherHoldingBaby.js.map +1 -1
  358. package/lib/components/Icons/MuscleBack.js.map +1 -1
  359. package/lib/components/Icons/MuscleLeg.js.map +1 -1
  360. package/lib/components/Icons/Mushroom.js.map +1 -1
  361. package/lib/components/Icons/Music.js.map +1 -1
  362. package/lib/components/Icons/MusselsAndSalt.js.map +1 -1
  363. package/lib/components/Icons/NoAccess.js.map +1 -1
  364. package/lib/components/Icons/NoEye.js.map +1 -1
  365. package/lib/components/Icons/NoFilter.js.map +1 -1
  366. package/lib/components/Icons/Notepad.js.map +1 -1
  367. package/lib/components/Icons/Osteotomy.js.map +1 -1
  368. package/lib/components/Icons/PaintRoller.js.map +1 -1
  369. package/lib/components/Icons/PaperPlane.js.map +1 -1
  370. package/lib/components/Icons/PatientAndPerson.js.map +1 -1
  371. package/lib/components/Icons/Pause.js.map +1 -1
  372. package/lib/components/Icons/PdfFile.js.map +1 -1
  373. package/lib/components/Icons/Pencil.js.map +1 -1
  374. package/lib/components/Icons/PeopleTalking.js.map +1 -1
  375. package/lib/components/Icons/Peritonealdialysis.js.map +1 -1
  376. package/lib/components/Icons/Person.js.map +1 -1
  377. package/lib/components/Icons/PersonAndPatient.js.map +1 -1
  378. package/lib/components/Icons/PersonCancel.js.map +1 -1
  379. package/lib/components/Icons/PersonInXRayMachine.js.map +1 -1
  380. package/lib/components/Icons/PersonOverweight.js.map +1 -1
  381. package/lib/components/Icons/PersonRelaxing.js.map +1 -1
  382. package/lib/components/Icons/PersonWithBrain.js.map +1 -1
  383. package/lib/components/Icons/PersonWithBrokenArm.js.map +1 -1
  384. package/lib/components/Icons/PersonWithCrutches.js.map +1 -1
  385. package/lib/components/Icons/PersonWithJaw.js.map +1 -1
  386. package/lib/components/Icons/PersonWithMagnifyingGlass.js.map +1 -1
  387. package/lib/components/Icons/PersonWithSenses.js.map +1 -1
  388. package/lib/components/Icons/PersonWorking.js.map +1 -1
  389. package/lib/components/Icons/PersonalPlan.js.map +1 -1
  390. package/lib/components/Icons/PizzaSlice.js.map +1 -1
  391. package/lib/components/Icons/Plane.js.map +1 -1
  392. package/lib/components/Icons/Plant.js.map +1 -1
  393. package/lib/components/Icons/PlateKnifeFork.js.map +1 -1
  394. package/lib/components/Icons/Play.js.map +1 -1
  395. package/lib/components/Icons/PlusLarge.js.map +1 -1
  396. package/lib/components/Icons/PlusSmall.js.map +1 -1
  397. package/lib/components/Icons/PngFile.js.map +1 -1
  398. package/lib/components/Icons/Podcast.js.map +1 -1
  399. package/lib/components/Icons/PoisonInformation.js.map +1 -1
  400. package/lib/components/Icons/Pregnant.js.map +1 -1
  401. package/lib/components/Icons/Printer.js.map +1 -1
  402. package/lib/components/Icons/Psychosis.js.map +1 -1
  403. package/lib/components/Icons/Publication.js.map +1 -1
  404. package/lib/components/Icons/Puzzle.js.map +1 -1
  405. package/lib/components/Icons/QrCode.js.map +1 -1
  406. package/lib/components/Icons/Quarrel.js.map +1 -1
  407. package/lib/components/Icons/RadioTherapy.js.map +1 -1
  408. package/lib/components/Icons/RadioactiveTreatment.js.map +1 -1
  409. package/lib/components/Icons/Radioiodine.js.map +1 -1
  410. package/lib/components/Icons/Receipt.js.map +1 -1
  411. package/lib/components/Icons/Receptionist.js.map +1 -1
  412. package/lib/components/Icons/Recovery.js.map +1 -1
  413. package/lib/components/Icons/Referral.js.map +1 -1
  414. package/lib/components/Icons/Refresh.js.map +1 -1
  415. package/lib/components/Icons/Refund.js.map +1 -1
  416. package/lib/components/Icons/Reminder.js.map +1 -1
  417. package/lib/components/Icons/Reply.js.map +1 -1
  418. package/lib/components/Icons/Rocket.js.map +1 -1
  419. package/lib/components/Icons/RtfFile.js.map +1 -1
  420. package/lib/components/Icons/STDs.js.map +1 -1
  421. package/lib/components/Icons/Save.js.map +1 -1
  422. package/lib/components/Icons/Scale.js.map +1 -1
  423. package/lib/components/Icons/ScreenReader.js.map +1 -1
  424. package/lib/components/Icons/Search.js +4 -4
  425. package/lib/components/Icons/Search.js.map +1 -1
  426. package/lib/components/Icons/SectionSign.js.map +1 -1
  427. package/lib/components/Icons/Settings.js.map +1 -1
  428. package/lib/components/Icons/SettingsFill.js.map +1 -1
  429. package/lib/components/Icons/Sexualorientation.js.map +1 -1
  430. package/lib/components/Icons/ShakingHand.js.map +1 -1
  431. package/lib/components/Icons/Share.js.map +1 -1
  432. package/lib/components/Icons/SharedHealthData.js.map +1 -1
  433. package/lib/components/Icons/SharedHealthMeasurements.js.map +1 -1
  434. package/lib/components/Icons/Shield.js.map +1 -1
  435. package/lib/components/Icons/ShuntOperation.js.map +1 -1
  436. package/lib/components/Icons/Skeleton.js.map +1 -1
  437. package/lib/components/Icons/Skin.js.map +1 -1
  438. package/lib/components/Icons/Snake.js.map +1 -1
  439. package/lib/components/Icons/Snapchat.js.map +1 -1
  440. package/lib/components/Icons/Sort.js +12 -12
  441. package/lib/components/Icons/Sort.js.map +1 -1
  442. package/lib/components/Icons/SortDown.js.map +1 -1
  443. package/lib/components/Icons/SortUp.js.map +1 -1
  444. package/lib/components/Icons/SpeechBubble.js.map +1 -1
  445. package/lib/components/Icons/Spray.js.map +1 -1
  446. package/lib/components/Icons/StarFill.js.map +1 -1
  447. package/lib/components/Icons/StarStroke.js.map +1 -1
  448. package/lib/components/Icons/StickyNote.js.map +1 -1
  449. package/lib/components/Icons/StickyNotes.js.map +1 -1
  450. package/lib/components/Icons/Stopwatch.js.map +1 -1
  451. package/lib/components/Icons/Sun.js.map +1 -1
  452. package/lib/components/Icons/SupportingPerson.js.map +1 -1
  453. package/lib/components/Icons/Surgery.js.map +1 -1
  454. package/lib/components/Icons/Sweets.js.map +1 -1
  455. package/lib/components/Icons/Syringe.js.map +1 -1
  456. package/lib/components/Icons/Taxi.js.map +1 -1
  457. package/lib/components/Icons/TeddyBear.js.map +1 -1
  458. package/lib/components/Icons/Teenagers.js.map +1 -1
  459. package/lib/components/Icons/ThinkingAboutBaby.js.map +1 -1
  460. package/lib/components/Icons/Ticket.js.map +1 -1
  461. package/lib/components/Icons/TimePassing.js.map +1 -1
  462. package/lib/components/Icons/Toddler.js.map +1 -1
  463. package/lib/components/Icons/Tombstone.js.map +1 -1
  464. package/lib/components/Icons/Toolbox.js.map +1 -1
  465. package/lib/components/Icons/Tooth.js.map +1 -1
  466. package/lib/components/Icons/TotalKneeProsthesis.js.map +1 -1
  467. package/lib/components/Icons/Train.js.map +1 -1
  468. package/lib/components/Icons/Transplantation.js.map +1 -1
  469. package/lib/components/Icons/TrashCan.js.map +1 -1
  470. package/lib/components/Icons/TravelRoute.js.map +1 -1
  471. package/lib/components/Icons/TreatmentAids.js.map +1 -1
  472. package/lib/components/Icons/TriangleX.js.map +1 -1
  473. package/lib/components/Icons/Twitter.js.map +1 -1
  474. package/lib/components/Icons/Undo.js.map +1 -1
  475. package/lib/components/Icons/UniProsthesis.js.map +1 -1
  476. package/lib/components/Icons/Upload.js.map +1 -1
  477. package/lib/components/Icons/UserOrganization.js.map +1 -1
  478. package/lib/components/Icons/Vaccine.js.map +1 -1
  479. package/lib/components/Icons/VerticalDots.js.map +1 -1
  480. package/lib/components/Icons/VideoCamera.js.map +1 -1
  481. package/lib/components/Icons/VideoChat.js.map +1 -1
  482. package/lib/components/Icons/Wallet.js.map +1 -1
  483. package/lib/components/Icons/Watch.js.map +1 -1
  484. package/lib/components/Icons/Website.js.map +1 -1
  485. package/lib/components/Icons/Wheelchair.js.map +1 -1
  486. package/lib/components/Icons/WheelchairActive.js.map +1 -1
  487. package/lib/components/Icons/Window.js.map +1 -1
  488. package/lib/components/Icons/WordDocument.js.map +1 -1
  489. package/lib/components/Icons/WorkSuitcase.js.map +1 -1
  490. package/lib/components/Icons/X.js.map +1 -1
  491. package/lib/components/Icons/XOutline.js.map +1 -1
  492. package/lib/components/Icons/XmlFile.js.map +1 -1
  493. package/lib/components/Icons/YouTube.js.map +1 -1
  494. package/lib/components/Icons/Zoom.js.map +1 -1
  495. package/lib/components/Icons/ZoomInLeft.js.map +1 -1
  496. package/lib/components/Icons/ZoomOutLeft.js.map +1 -1
  497. package/lib/components/Illustration/index.js +1 -1
  498. package/lib/components/Illustrations/BabyMobile.js +1 -1
  499. package/lib/components/Illustrations/BabyMobile.js.map +1 -1
  500. package/lib/components/Illustrations/BabyMobileMedium.js +1 -1
  501. package/lib/components/Illustrations/BabyMobileMedium.js.map +1 -1
  502. package/lib/components/Illustrations/Child.js +1 -1
  503. package/lib/components/Illustrations/Child.js.map +1 -1
  504. package/lib/components/Illustrations/ChildMedium.js +1 -1
  505. package/lib/components/Illustrations/ChildMedium.js.map +1 -1
  506. package/lib/components/Illustrations/Doctor.js +1 -1
  507. package/lib/components/Illustrations/Doctor.js.map +1 -1
  508. package/lib/components/Illustrations/DoctorMedium.js.map +1 -1
  509. package/lib/components/Illustrations/DoctorSmall.js.map +1 -1
  510. package/lib/components/Illustrations/EyeContact.d.ts +8 -0
  511. package/lib/components/Illustrations/EyeContact.js +17 -0
  512. package/lib/components/Illustrations/EyeContact.js.map +1 -0
  513. package/lib/components/Illustrations/EyeContactMedium.d.ts +3 -0
  514. package/lib/components/Illustrations/EyeContactMedium.js +80 -0
  515. package/lib/components/Illustrations/EyeContactMedium.js.map +1 -0
  516. package/lib/components/Illustrations/FacialRecognitionFingerprint.js +1 -1
  517. package/lib/components/Illustrations/FacialRecognitionFingerprint.js.map +1 -1
  518. package/lib/components/Illustrations/FacialRecognitionFingerprintMedium.js +1 -1
  519. package/lib/components/Illustrations/FacialRecognitionFingerprintMedium.js.map +1 -1
  520. package/lib/components/Illustrations/GiveBabyFood.js +1 -1
  521. package/lib/components/Illustrations/GiveBabyFood.js.map +1 -1
  522. package/lib/components/Illustrations/GiveBabyFoodMedium.js +1 -1
  523. package/lib/components/Illustrations/GiveBabyFoodMedium.js.map +1 -1
  524. package/lib/components/Illustrations/HealthcarePersonnel.js +1 -1
  525. package/lib/components/Illustrations/HealthcarePersonnel.js.map +1 -1
  526. package/lib/components/Illustrations/HealthcarePersonnelMedium.js.map +1 -1
  527. package/lib/components/Illustrations/HealthcarePersonnelSmall.js.map +1 -1
  528. package/lib/components/Illustrations/IllustrationNames.d.ts +1 -1
  529. package/lib/components/Illustrations/IllustrationNames.js +4 -0
  530. package/lib/components/Illustrations/IllustrationNames.js.map +1 -1
  531. package/lib/components/Illustrations/ReadLetters.js +1 -1
  532. package/lib/components/Illustrations/ReadLetters.js.map +1 -1
  533. package/lib/components/Illustrations/ReadLettersMedium.js +1 -1
  534. package/lib/components/Illustrations/ReadLettersMedium.js.map +1 -1
  535. package/lib/components/Illustrations/SkinToSkin.d.ts +8 -0
  536. package/lib/components/Illustrations/SkinToSkin.js +17 -0
  537. package/lib/components/Illustrations/SkinToSkin.js.map +1 -0
  538. package/lib/components/Illustrations/SkinToSkinMedium.d.ts +3 -0
  539. package/lib/components/Illustrations/SkinToSkinMedium.js +107 -0
  540. package/lib/components/Illustrations/SkinToSkinMedium.js.map +1 -0
  541. package/lib/components/Illustrations/Stork.js +1 -1
  542. package/lib/components/Illustrations/Stork.js.map +1 -1
  543. package/lib/components/Illustrations/StorkMedium.js +1 -1
  544. package/lib/components/Illustrations/StorkMedium.js.map +1 -1
  545. package/lib/components/Illustrations/Stroller.js +1 -1
  546. package/lib/components/Illustrations/Stroller.js.map +1 -1
  547. package/lib/components/Illustrations/StrollerMedium.js +1 -1
  548. package/lib/components/Illustrations/StrollerMedium.js.map +1 -1
  549. package/lib/components/Illustrations/Support2.js +1 -1
  550. package/lib/components/Illustrations/Support2.js.map +1 -1
  551. package/lib/components/Illustrations/Support2Medium.js +1 -1
  552. package/lib/components/Illustrations/Support2Medium.js.map +1 -1
  553. package/lib/components/Illustrations/Thinking.js +1 -1
  554. package/lib/components/Illustrations/Thinking.js.map +1 -1
  555. package/lib/components/Illustrations/ThinkingMedium.js +1 -1
  556. package/lib/components/Illustrations/ThinkingMedium.js.map +1 -1
  557. package/lib/components/Loader/index.js.map +1 -1
  558. package/lib/components/Logo/index.js.map +1 -1
  559. package/lib/components/Modal/index.js.map +1 -1
  560. package/lib/components/NotificationPanel/index.js.map +1 -1
  561. package/lib/components/Panel/index.js +1 -1
  562. package/lib/components/Panel/index.js.map +1 -1
  563. package/lib/components/PanelList/index.js +1 -1
  564. package/lib/components/PanelList/index.js.map +1 -1
  565. package/lib/components/PopMenu/index.js.map +1 -1
  566. package/lib/components/Portal/index.js.map +1 -1
  567. package/lib/components/Progressbar/index.js.map +1 -1
  568. package/lib/components/PromoPanel/index.js.map +1 -1
  569. package/lib/components/RadioButton/RadioMarker/RadioMarker.d.ts +20 -0
  570. package/lib/components/RadioButton/RadioMarker/styles.module.scss +288 -0
  571. package/lib/components/RadioButton/RadioMarker/styles.module.scss.d.ts +20 -0
  572. package/lib/components/RadioButton/index.d.ts +0 -1
  573. package/lib/components/RadioButton/index.js +2 -2
  574. package/lib/components/RadioButton/index.js.map +1 -1
  575. package/lib/components/RadioButton/styles.module.scss +13 -275
  576. package/lib/components/RadioButton/styles.module.scss.d.ts +2 -12
  577. package/lib/components/ServiceMessage/index.js.map +1 -1
  578. package/lib/components/SharingStatus/index.js.map +1 -1
  579. package/lib/components/Step/index.js.map +1 -1
  580. package/lib/components/Stepper/index.js +1 -5
  581. package/lib/components/Stepper/index.js.map +1 -1
  582. package/lib/components/StickyNote/index.js.map +1 -1
  583. package/lib/components/Table/index.js +3 -3
  584. package/lib/components/Table/index.js.map +1 -1
  585. package/lib/components/Tabs/index.js.map +1 -1
  586. package/lib/components/Tag/index.js.map +1 -1
  587. package/lib/components/TagList/index.js.map +1 -1
  588. package/lib/components/Tile/index.js.map +1 -1
  589. package/lib/components/ToastList/index.js.map +1 -1
  590. package/lib/components/Toggle/index.js.map +1 -1
  591. package/lib/components/Validation/index.js.map +1 -1
  592. package/lib/components/VisualCheckboxCloud/Checkbox/Checkbox.d.ts +21 -0
  593. package/lib/components/VisualCheckboxCloud/Checkbox/index.d.ts +3 -0
  594. package/lib/components/VisualCheckboxCloud/Checkbox/index.js +7 -0
  595. package/lib/components/VisualCheckboxCloud/Checkbox/index.js.map +1 -0
  596. package/lib/components/VisualCheckboxCloud/Checkbox/styles.module.scss +10 -0
  597. package/lib/components/VisualCheckboxCloud/Checkbox/styles.module.scss.d.ts +15 -0
  598. package/lib/components/VisualCheckboxCloud/VisualCheckboxCloud.d.ts +29 -0
  599. package/lib/components/VisualCheckboxCloud/index.d.ts +3 -0
  600. package/lib/components/VisualCheckboxCloud/index.js +42 -0
  601. package/lib/components/VisualCheckboxCloud/index.js.map +1 -0
  602. package/lib/components/VisualCheckboxCloud/styles.module.scss +6 -0
  603. package/lib/components/VisualCheckboxCloud/styles.module.scss.d.ts +9 -0
  604. package/lib/components/VisualCheckboxGroup/VisualCheckbox/VisualCheckbox.d.ts +26 -0
  605. package/lib/components/VisualCheckboxGroup/VisualCheckbox/VisualContent.d.ts +10 -0
  606. package/lib/components/VisualCheckboxGroup/VisualCheckbox/index.d.ts +3 -0
  607. package/lib/components/VisualCheckboxGroup/VisualCheckbox/index.js +7 -0
  608. package/lib/components/VisualCheckboxGroup/VisualCheckbox/index.js.map +1 -0
  609. package/lib/components/VisualCheckboxGroup/VisualCheckbox/styles.module.scss +7 -0
  610. package/lib/components/VisualCheckboxGroup/VisualCheckbox/styles.module.scss.d.ts +18 -0
  611. package/lib/components/VisualCheckboxGroup/VisualCheckboxGroup.d.ts +33 -0
  612. package/lib/components/VisualCheckboxGroup/index.d.ts +3 -0
  613. package/lib/components/VisualCheckboxGroup/index.js +47 -0
  614. package/lib/components/VisualCheckboxGroup/index.js.map +1 -0
  615. package/lib/components/VisualCheckboxGroup/styles.module.scss +6 -0
  616. package/lib/components/VisualCheckboxGroup/styles.module.scss.d.ts +10 -0
  617. package/lib/components/VisualRadioCloud/Radio/Radio.d.ts +23 -0
  618. package/lib/components/VisualRadioCloud/Radio/index.d.ts +3 -0
  619. package/lib/components/VisualRadioCloud/Radio/index.js +7 -0
  620. package/lib/components/VisualRadioCloud/Radio/index.js.map +1 -0
  621. package/lib/components/VisualRadioCloud/Radio/styles.module.scss +7 -0
  622. package/lib/components/VisualRadioCloud/Radio/styles.module.scss.d.ts +15 -0
  623. package/lib/components/VisualRadioCloud/VisualRadioCloud.d.ts +39 -0
  624. package/lib/components/VisualRadioCloud/index.d.ts +3 -0
  625. package/lib/components/VisualRadioCloud/index.js +62 -0
  626. package/lib/components/VisualRadioCloud/index.js.map +1 -0
  627. package/lib/components/VisualRadioCloud/styles.module.scss +6 -0
  628. package/lib/components/VisualRadioCloud/styles.module.scss.d.ts +9 -0
  629. package/lib/components/VisualRadioGroup/VisualRadio/VisualContent.d.ts +10 -0
  630. package/lib/components/VisualRadioGroup/VisualRadio/VisualRadio.d.ts +26 -0
  631. package/lib/components/VisualRadioGroup/VisualRadio/index.d.ts +3 -0
  632. package/lib/components/VisualRadioGroup/VisualRadio/index.js +7 -0
  633. package/lib/components/VisualRadioGroup/VisualRadio/index.js.map +1 -0
  634. package/lib/components/VisualRadioGroup/VisualRadio/styles.module.scss +7 -0
  635. package/lib/components/VisualRadioGroup/VisualRadio/styles.module.scss.d.ts +18 -0
  636. package/lib/components/VisualRadioGroup/VisualRadioGroup.d.ts +39 -0
  637. package/lib/components/VisualRadioGroup/index.d.ts +3 -0
  638. package/lib/components/VisualRadioGroup/index.js +67 -0
  639. package/lib/components/VisualRadioGroup/index.js.map +1 -0
  640. package/lib/components/VisualRadioGroup/styles.module.scss +6 -0
  641. package/lib/components/VisualRadioGroup/styles.module.scss.d.ts +10 -0
  642. package/lib/constants.js.map +1 -1
  643. package/lib/constants2.js +6 -6
  644. package/lib/constants2.js.map +1 -1
  645. package/lib/floating-ui.react.js +30 -30
  646. package/lib/floating-ui.react.js.map +1 -1
  647. package/lib/getFilterChips.js.map +1 -1
  648. package/lib/hoc/withBreakpoint/withBreakpoint.js.map +1 -1
  649. package/lib/hooks/useBreakpoint.js.map +1 -1
  650. package/lib/hooks/useElementList.js.map +1 -1
  651. package/lib/hooks/useEventListenerState.js.map +1 -1
  652. package/lib/hooks/useExpand.js.map +1 -1
  653. package/lib/hooks/useFocusToggle.js.map +1 -1
  654. package/lib/hooks/useFocusTrap.js.map +1 -1
  655. package/lib/hooks/useFocusableElements.js.map +1 -1
  656. package/lib/hooks/useIcons.js.map +1 -1
  657. package/lib/hooks/useIdWithFallback.js.map +1 -1
  658. package/lib/hooks/useIntersectionObserver.js.map +1 -1
  659. package/lib/hooks/useInterval.js.map +1 -1
  660. package/lib/hooks/useIsMobileBreakpoint.js.map +1 -1
  661. package/lib/hooks/useIsServerSide.js.map +1 -1
  662. package/lib/hooks/useIsVisible.js.map +1 -1
  663. package/lib/hooks/useKeyboardEvent.js.map +1 -1
  664. package/lib/hooks/useLanguage.js.map +1 -1
  665. package/lib/hooks/useLayoutEvent.js.map +1 -1
  666. package/lib/hooks/useOutsideEvent.js.map +1 -1
  667. package/lib/hooks/usePrevious.js.map +1 -1
  668. package/lib/hooks/usePseudoClasses.js.map +1 -1
  669. package/lib/hooks/useResizeObserver.js.map +1 -1
  670. package/lib/hooks/useReturnFocusOnUnmount.js.map +1 -1
  671. package/lib/hooks/useRovingFocus.js.map +1 -1
  672. package/lib/hooks/useSize.js.map +1 -1
  673. package/lib/hooks/useToggle.js.map +1 -1
  674. package/lib/hooks/usestopPropagation.js.map +1 -1
  675. package/lib/resourceHelper.js +12 -8
  676. package/lib/resourceHelper.js.map +1 -1
  677. package/lib/resources/HN.Designsystem.Filter.en-GB.json.d.ts +6 -4
  678. package/lib/resources/HN.Designsystem.Filter.nb-NO.json.d.ts +6 -4
  679. package/lib/resources/Resources.d.ts +11 -3
  680. package/lib/scss/_visual-form.scss +357 -0
  681. package/lib/theme/currys/color.js.map +1 -1
  682. package/lib/theme/currys/spacing.js.map +1 -1
  683. package/lib/theme/grid.js.map +1 -1
  684. package/lib/theme/index.js.map +1 -1
  685. package/lib/theme/palette.js.map +1 -1
  686. package/lib/theme/spacers.js.map +1 -1
  687. package/lib/utils/accessibility.js.map +1 -1
  688. package/lib/utils/component.js.map +1 -1
  689. package/lib/utils/debounce.js.map +1 -1
  690. package/lib/utils/deepContains.js.map +1 -1
  691. package/lib/utils/device.js.map +1 -1
  692. package/lib/utils/focus.js.map +1 -1
  693. package/lib/utils/language.js.map +1 -1
  694. package/lib/utils/mobile.js.map +1 -1
  695. package/lib/utils/refs.js.map +1 -1
  696. package/lib/utils/resource.js.map +1 -1
  697. package/lib/utils/scroll.js.map +1 -1
  698. package/lib/utils/viewport.js.map +1 -1
  699. package/lib/utils.js.map +1 -1
  700. package/lib/utils2.js.map +1 -1
  701. package/lib/utils3.js +11 -100
  702. package/lib/utils3.js.map +1 -1
  703. package/lib/utils4.js +31 -12
  704. package/lib/utils4.js.map +1 -1
  705. package/lib/utils5.js +112 -31
  706. package/lib/utils5.js.map +1 -1
  707. package/lib/uuid.js.map +1 -1
  708. package/package.json +115 -1
  709. package/scss/_visual-form.scss +357 -0
  710. package/lib/components/RadioButton/utils.d.ts +0 -2
  711. package/lib/utils6.js +0 -115
  712. package/lib/utils6.js.map +0 -1
@@ -5,7 +5,7 @@ import { useIsVisible } from "../../hooks/useIsVisible.js";
5
5
  import { useLayoutEvent } from "../../hooks/useLayoutEvent.js";
6
6
  import { t as HorizontalScroll_default } from "../../HorizontalScroll.js";
7
7
  import { a as TextAlign, i as SortDirection, n as ModeType, o as defaultConfig, r as ResponsiveTableVariant, s as simpleConfig, t as HeaderCategory } from "../../constants2.js";
8
- import { a as omitProps, i as mapChildrenWithMode, n as getCenteredOverflowTableStyle, r as getCurrentConfig, t as getBreakpointClass } from "../../utils6.js";
8
+ import { a as omitProps, i as mapChildrenWithMode, n as getCenteredOverflowTableStyle, r as getCurrentConfig, t as getBreakpointClass } from "../../utils5.js";
9
9
  import { n as TableBody } from "../../TableBody.js";
10
10
  import { n as TableCell } from "../../TableCell.js";
11
11
  import { n as TableExpandedRow } from "../../TableExpandedRow.js";
@@ -16,7 +16,7 @@ import { n as TableRow } from "../../TableRow.js";
16
16
  import classNames from "classnames";
17
17
  import { useEffect, useRef, useState } from "react";
18
18
  import { jsx } from "react/jsx-runtime";
19
- import styles from "./styles.module.scss";
19
+ import tableStyles from "./styles.module.scss";
20
20
  //#region src/components/Table/Table.tsx
21
21
  var Table = ({ id, testId, className, children, breakpointConfig = defaultConfig, mode = ModeType.normal, scrollAriaLabel, scrollAriaLabelledById, ...rest }) => {
22
22
  const [currentConfig, setCurrentConfig] = useState();
@@ -44,7 +44,7 @@ var Table = ({ id, testId, className, children, breakpointConfig = defaultConfig
44
44
  }, [tableWidth, tableIsVisible]);
45
45
  const tableStyle = currentConfig?.variant === ResponsiveTableVariant.centeredoverflow ? getCenteredOverflowTableStyle(parentWidth, tableWidth) : void 0;
46
46
  const breakpointClass = getBreakpointClass(currentConfig);
47
- const tableClass = classNames(styles.table, breakpointClass, className);
47
+ const tableClass = classNames(tableStyles.table, breakpointClass, className);
48
48
  const domRest = omitProps(rest, [
49
49
  "breakpoint",
50
50
  "variant",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Table/Table.tsx","../../../src/components/Table/index.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport classNames from 'classnames';\n\nimport type { Breakpoint } from '../../hooks/useBreakpoint';\n\nimport { defaultConfig, ModeType, ResponsiveTableVariant } from './constants';\nimport { getCurrentConfig, getBreakpointClass, getCenteredOverflowTableStyle, mapChildrenWithMode, omitProps } from './utils';\nimport { AnalyticsId } from '../../constants';\nimport { useBreakpoint } from '../../hooks/useBreakpoint';\nimport { useIsVisible } from '../../hooks/useIsVisible';\nimport { useLayoutEvent } from '../../hooks/useLayoutEvent';\nimport { getAriaLabelAttributes } from '../../utils/accessibility';\nimport HorizontalScroll from '../HorizontalScroll';\n\nimport styles from './styles.module.scss';\n\nexport interface BreakpointConfig {\n /** Breakpoint at which responsive behaviour will be applied. The table component uses a \"desktop first\" approach. */\n breakpoint: keyof typeof Breakpoint;\n /** Desired behaviour on this breakpoint and all smaller screens. */\n variant: keyof typeof ResponsiveTableVariant;\n /** If variant is horizontallscroll, use a fallback instead of device is not a touch device. */\n fallbackVariant?: keyof typeof ResponsiveTableVariant;\n}\n\nexport interface Props extends Omit<React.ComponentPropsWithoutRef<'table'>, 'style'> {\n /** Unique ID */\n id?: string;\n /** Id used for testing */\n testId?: string;\n /** Customize how the table behaves on various screen widths */\n breakpointConfig?: BreakpointConfig | BreakpointConfig[];\n /** Adds custom classes to the element. */\n className?: string;\n /** Sets the content of the table. Use TableHead and TableBody */\n children: React.ReactNode;\n /** For display with less space. Discouraged to use together with interactive elements. */\n mode?: ModeType;\n /** Sets aria-label of the horizontal scroll container. scrollAriaLabel or scrollAriaLabelledById MUST be set if horizontal scrolling is enabled! */\n scrollAriaLabel?: string;\n /** Sets aria-labelledby of the horizontal scroll container. scrollAriaLabel or scrollAriaLabelledById MUST be set if horizontal scrolling is enabled! */\n scrollAriaLabelledById?: string;\n}\n\nexport const Table: React.FC<Props> = ({\n id,\n testId,\n className,\n children,\n breakpointConfig = defaultConfig,\n mode = ModeType.normal,\n scrollAriaLabel,\n scrollAriaLabelledById,\n ...rest\n}) => {\n const [currentConfig, setCurrentConfig] = useState<BreakpointConfig>();\n const [tableWidth, setTableWidth] = useState<number>(0);\n const [parentWidth, setParentWidth] = useState<number>(0);\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\n const tableRef = useRef<HTMLTableElement>(null);\n const tableIsVisible = useIsVisible(tableRef, 0);\n const breakpoint = useBreakpoint();\n\n useEffect(() => {\n setCurrentConfig(getCurrentConfig(breakpointConfig, breakpoint, tableWidth, windowWidth));\n }, [breakpointConfig, breakpoint, tableWidth, windowWidth]);\n\n useEffect(() => {\n if (\n currentConfig?.variant === ResponsiveTableVariant.centeredoverflow ||\n currentConfig?.variant === ResponsiveTableVariant.horizontalscroll\n ) {\n setTableWidth(tableRef.current?.getBoundingClientRect().width ?? 0);\n }\n if (currentConfig?.variant === ResponsiveTableVariant.centeredoverflow) {\n setParentWidth(tableRef.current?.parentElement?.getBoundingClientRect().width ?? 0);\n }\n }, [currentConfig, breakpoint]);\n\n useLayoutEvent(() => setWindowWidth(window.innerWidth), ['resize'], 100);\n\n useEffect(() => {\n if (tableWidth === 0 && tableIsVisible) {\n setTableWidth(tableRef.current?.getBoundingClientRect().width ?? 0);\n }\n }, [tableWidth, tableIsVisible]);\n\n const tableStyle =\n currentConfig?.variant === ResponsiveTableVariant.centeredoverflow ? getCenteredOverflowTableStyle(parentWidth, tableWidth) : undefined;\n\n const breakpointClass = getBreakpointClass(currentConfig);\n const tableClass = classNames(styles.table, breakpointClass, className);\n const domRest = omitProps(rest as Record<string, unknown>, ['breakpoint', 'variant', 'fallbackVariant', 'headerCategory']);\n\n const table = (\n <table\n className={tableClass}\n id={id}\n data-testid={testId}\n data-analyticsid={AnalyticsId.Table}\n ref={tableRef}\n style={tableStyle}\n {...(domRest as React.ComponentPropsWithoutRef<'table'>)}\n >\n {mapChildrenWithMode(children, mode)}\n </table>\n );\n\n const ariaLabelAttributes = getAriaLabelAttributes({ label: scrollAriaLabel, id: scrollAriaLabelledById });\n\n if (currentConfig?.variant === ResponsiveTableVariant.horizontalscroll) {\n return (\n <HorizontalScroll childWidth={tableWidth} testId=\"horizontal-scroll\" {...ariaLabelAttributes}>\n {table}\n </HorizontalScroll>\n );\n }\n\n return table;\n};\n\nexport default Table;\n","import { Table } from './Table';\n\nexport { TableBody } from './TableBody';\nexport { TableCell } from './TableCell';\nexport { TableExpandedRow } from './TableExpandedRow';\nexport { TableExpanderCell } from './TableExpanderCell';\nexport { TableHead } from './TableHead';\nexport { TableHeadCell } from './TableHeadCell';\nexport { TableRow } from './TableRow';\nexport { SortDirection, HeaderCategory, TextAlign, ResponsiveTableVariant, ModeType, defaultConfig, simpleConfig } from './constants';\n\nexport * from './Table';\nexport * from './utils';\n\nexport default Table;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA6CA,IAAa,SAA0B,EACrC,IACA,QACA,WACA,UACA,mBAAmB,eACnB,OAAO,SAAS,QAChB,iBACA,wBACA,GAAG,WACC;CACJ,MAAM,CAAC,eAAe,oBAAoB,UAA4B;CACtE,MAAM,CAAC,YAAY,iBAAiB,SAAiB,EAAE;CACvD,MAAM,CAAC,aAAa,kBAAkB,SAAiB,EAAE;CACzD,MAAM,CAAC,aAAa,kBAAkB,SAAS,OAAO,WAAW;CACjE,MAAM,WAAW,OAAyB,KAAK;CAC/C,MAAM,iBAAiB,aAAa,UAAU,EAAE;CAChD,MAAM,aAAa,eAAe;CAElC,gBAAgB;EACd,iBAAiB,iBAAiB,kBAAkB,YAAY,YAAY,YAAY,CAAC;IACxF;EAAC;EAAkB;EAAY;EAAY;EAAY,CAAC;CAE3D,gBAAgB;EACd,IACE,eAAe,YAAY,uBAAuB,oBAClD,eAAe,YAAY,uBAAuB,kBAElD,cAAc,SAAS,SAAS,uBAAuB,CAAC,SAAS,EAAE;EAErE,IAAI,eAAe,YAAY,uBAAuB,kBACpD,eAAe,SAAS,SAAS,eAAe,uBAAuB,CAAC,SAAS,EAAE;IAEpF,CAAC,eAAe,WAAW,CAAC;CAE/B,qBAAqB,eAAe,OAAO,WAAW,EAAE,CAAC,SAAS,EAAE,IAAI;CAExE,gBAAgB;EACd,IAAI,eAAe,KAAK,gBACtB,cAAc,SAAS,SAAS,uBAAuB,CAAC,SAAS,EAAE;IAEpE,CAAC,YAAY,eAAe,CAAC;CAEhC,MAAM,aACJ,eAAe,YAAY,uBAAuB,mBAAmB,8BAA8B,aAAa,WAAW,GAAG,KAAA;CAEhI,MAAM,kBAAkB,mBAAmB,cAAc;CACzD,MAAM,aAAa,WAAW,OAAO,OAAO,iBAAiB,UAAU;CACvE,MAAM,UAAU,UAAU,MAAiC;EAAC;EAAc;EAAW;EAAmB;EAAiB,CAAC;CAE1H,MAAM,QACJ,oBAAC,SAAD;EACE,WAAW;EACP;EACJ,eAAa;EACb,oBAAkB,YAAY;EAC9B,KAAK;EACL,OAAO;EACP,GAAK;YAEJ,oBAAoB,UAAU,KAAK;EAC9B,CAAA;CAGV,MAAM,sBAAsB,uBAAuB;EAAE,OAAO;EAAiB,IAAI;EAAwB,CAAC;CAE1G,IAAI,eAAe,YAAY,uBAAuB,kBACpD,OACE,oBAAC,0BAAD;EAAkB,YAAY;EAAY,QAAO;EAAoB,GAAI;YACtE;EACgB,CAAA;CAIvB,OAAO;;;;ACzGT,IAAA,gBAAe"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Table/Table.tsx","../../../src/components/Table/index.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nimport classNames from 'classnames';\n\nimport type { Breakpoint } from '../../hooks/useBreakpoint';\n\nimport { defaultConfig, ModeType, ResponsiveTableVariant } from './constants';\nimport { getCurrentConfig, getBreakpointClass, getCenteredOverflowTableStyle, mapChildrenWithMode, omitProps } from './utils';\nimport { AnalyticsId } from '../../constants';\nimport { useBreakpoint } from '../../hooks/useBreakpoint';\nimport { useIsVisible } from '../../hooks/useIsVisible';\nimport { useLayoutEvent } from '../../hooks/useLayoutEvent';\nimport { getAriaLabelAttributes } from '../../utils/accessibility';\nimport HorizontalScroll from '../HorizontalScroll';\n\nimport styles from './styles.module.scss';\n\nexport interface BreakpointConfig {\n /** Breakpoint at which responsive behaviour will be applied. The table component uses a \"desktop first\" approach. */\n breakpoint: keyof typeof Breakpoint;\n /** Desired behaviour on this breakpoint and all smaller screens. */\n variant: keyof typeof ResponsiveTableVariant;\n /** If variant is horizontallscroll, use a fallback instead of device is not a touch device. */\n fallbackVariant?: keyof typeof ResponsiveTableVariant;\n}\n\nexport interface Props extends Omit<React.ComponentPropsWithoutRef<'table'>, 'style'> {\n /** Unique ID */\n id?: string;\n /** Id used for testing */\n testId?: string;\n /** Customize how the table behaves on various screen widths */\n breakpointConfig?: BreakpointConfig | BreakpointConfig[];\n /** Adds custom classes to the element. */\n className?: string;\n /** Sets the content of the table. Use TableHead and TableBody */\n children: React.ReactNode;\n /** For display with less space. Discouraged to use together with interactive elements. */\n mode?: ModeType;\n /** Sets aria-label of the horizontal scroll container. scrollAriaLabel or scrollAriaLabelledById MUST be set if horizontal scrolling is enabled! */\n scrollAriaLabel?: string;\n /** Sets aria-labelledby of the horizontal scroll container. scrollAriaLabel or scrollAriaLabelledById MUST be set if horizontal scrolling is enabled! */\n scrollAriaLabelledById?: string;\n}\n\nexport const Table: React.FC<Props> = ({\n id,\n testId,\n className,\n children,\n breakpointConfig = defaultConfig,\n mode = ModeType.normal,\n scrollAriaLabel,\n scrollAriaLabelledById,\n ...rest\n}) => {\n const [currentConfig, setCurrentConfig] = useState<BreakpointConfig>();\n const [tableWidth, setTableWidth] = useState<number>(0);\n const [parentWidth, setParentWidth] = useState<number>(0);\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\n const tableRef = useRef<HTMLTableElement>(null);\n const tableIsVisible = useIsVisible(tableRef, 0);\n const breakpoint = useBreakpoint();\n\n useEffect(() => {\n setCurrentConfig(getCurrentConfig(breakpointConfig, breakpoint, tableWidth, windowWidth));\n }, [breakpointConfig, breakpoint, tableWidth, windowWidth]);\n\n useEffect(() => {\n if (\n currentConfig?.variant === ResponsiveTableVariant.centeredoverflow ||\n currentConfig?.variant === ResponsiveTableVariant.horizontalscroll\n ) {\n setTableWidth(tableRef.current?.getBoundingClientRect().width ?? 0);\n }\n if (currentConfig?.variant === ResponsiveTableVariant.centeredoverflow) {\n setParentWidth(tableRef.current?.parentElement?.getBoundingClientRect().width ?? 0);\n }\n }, [currentConfig, breakpoint]);\n\n useLayoutEvent(() => setWindowWidth(window.innerWidth), ['resize'], 100);\n\n useEffect(() => {\n if (tableWidth === 0 && tableIsVisible) {\n setTableWidth(tableRef.current?.getBoundingClientRect().width ?? 0);\n }\n }, [tableWidth, tableIsVisible]);\n\n const tableStyle =\n currentConfig?.variant === ResponsiveTableVariant.centeredoverflow ? getCenteredOverflowTableStyle(parentWidth, tableWidth) : undefined;\n\n const breakpointClass = getBreakpointClass(currentConfig);\n const tableClass = classNames(styles.table, breakpointClass, className);\n const domRest = omitProps(rest as Record<string, unknown>, ['breakpoint', 'variant', 'fallbackVariant', 'headerCategory']);\n\n const table = (\n <table\n className={tableClass}\n id={id}\n data-testid={testId}\n data-analyticsid={AnalyticsId.Table}\n ref={tableRef}\n style={tableStyle}\n {...(domRest as React.ComponentPropsWithoutRef<'table'>)}\n >\n {mapChildrenWithMode(children, mode)}\n </table>\n );\n\n const ariaLabelAttributes = getAriaLabelAttributes({ label: scrollAriaLabel, id: scrollAriaLabelledById });\n\n if (currentConfig?.variant === ResponsiveTableVariant.horizontalscroll) {\n return (\n <HorizontalScroll childWidth={tableWidth} testId=\"horizontal-scroll\" {...ariaLabelAttributes}>\n {table}\n </HorizontalScroll>\n );\n }\n\n return table;\n};\n\nexport default Table;\n","import { Table } from './Table';\n\nexport { TableBody } from './TableBody';\nexport { TableCell } from './TableCell';\nexport { TableExpandedRow } from './TableExpandedRow';\nexport { TableExpanderCell } from './TableExpanderCell';\nexport { TableHead } from './TableHead';\nexport { TableHeadCell } from './TableHeadCell';\nexport { TableRow } from './TableRow';\nexport { SortDirection, HeaderCategory, TextAlign, ResponsiveTableVariant, ModeType, defaultConfig, simpleConfig } from './constants';\n\nexport * from './Table';\nexport * from './utils';\n\nexport default Table;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA6CA,IAAa,SAA0B,EACrC,IACA,QACA,WACA,UACA,mBAAmB,eACnB,OAAO,SAAS,QAChB,iBACA,wBACA,GAAG,WACC;CACJ,MAAM,CAAC,eAAe,oBAAoB,SAA2B;CACrE,MAAM,CAAC,YAAY,iBAAiB,SAAiB,CAAC;CACtD,MAAM,CAAC,aAAa,kBAAkB,SAAiB,CAAC;CACxD,MAAM,CAAC,aAAa,kBAAkB,SAAS,OAAO,UAAU;CAChE,MAAM,WAAW,OAAyB,IAAI;CAC9C,MAAM,iBAAiB,aAAa,UAAU,CAAC;CAC/C,MAAM,aAAa,cAAc;CAEjC,gBAAgB;EACd,iBAAiB,iBAAiB,kBAAkB,YAAY,YAAY,WAAW,CAAC;CAC1F,GAAG;EAAC;EAAkB;EAAY;EAAY;CAAW,CAAC;CAE1D,gBAAgB;EACd,IACE,eAAe,YAAY,uBAAuB,oBAClD,eAAe,YAAY,uBAAuB,kBAElD,cAAc,SAAS,SAAS,sBAAsB,EAAE,SAAS,CAAC;EAEpE,IAAI,eAAe,YAAY,uBAAuB,kBACpD,eAAe,SAAS,SAAS,eAAe,sBAAsB,EAAE,SAAS,CAAC;CAEtF,GAAG,CAAC,eAAe,UAAU,CAAC;CAE9B,qBAAqB,eAAe,OAAO,UAAU,GAAG,CAAC,QAAQ,GAAG,GAAG;CAEvE,gBAAgB;EACd,IAAI,eAAe,KAAK,gBACtB,cAAc,SAAS,SAAS,sBAAsB,EAAE,SAAS,CAAC;CAEtE,GAAG,CAAC,YAAY,cAAc,CAAC;CAE/B,MAAM,aACJ,eAAe,YAAY,uBAAuB,mBAAmB,8BAA8B,aAAa,UAAU,IAAI,KAAA;CAEhI,MAAM,kBAAkB,mBAAmB,aAAa;CACxD,MAAM,aAAa,WAAW,YAAO,OAAO,iBAAiB,SAAS;CACtE,MAAM,UAAU,UAAU,MAAiC;EAAC;EAAc;EAAW;EAAmB;CAAgB,CAAC;CAEzH,MAAM,QACJ,oBAAC,SAAD;EACE,WAAW;EACP;EACJ,eAAa;EACb,oBAAkB,YAAY;EAC9B,KAAK;EACL,OAAO;EACP,GAAK;YAEJ,oBAAoB,UAAU,IAAI;CAC9B,CAAA;CAGT,MAAM,sBAAsB,uBAAuB;EAAE,OAAO;EAAiB,IAAI;CAAuB,CAAC;CAEzG,IAAI,eAAe,YAAY,uBAAuB,kBACpD,OACE,oBAAC,0BAAD;EAAkB,YAAY;EAAY,QAAO;EAAoB,GAAI;YACtE;CACe,CAAA;CAItB,OAAO;AACT;;;AC1GA,IAAA,gBAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/resources/HN.Designsystem.Tabs.en-GB.json","../../../src/resources/HN.Designsystem.Tabs.nb-NO.json","../../../src/components/Tabs/resourceHelper.ts","../../../src/components/Tabs/Tabs.tsx","../../../src/components/Tabs/index.ts"],"sourcesContent":["{\n \"ariaLabelRightButton\": \"Scroll right\",\n \"ariaLabelLeftButton\": \"Scroll left\"\n}\n","{\n \"ariaLabelRightButton\": \"Scroll til høyre\",\n \"ariaLabelLeftButton\": \"Scroll til venstre\"\n}\n","import type { HNDesignsystemTabs } from '../../resources/Resources';\n\nimport { LanguageLocales } from '../../constants';\nimport enGB from '../../resources/HN.Designsystem.Tabs.en-GB.json';\nimport nbNO from '../../resources/HN.Designsystem.Tabs.nb-NO.json';\n\nexport const getResources = (language: LanguageLocales): HNDesignsystemTabs => {\n switch (language) {\n case LanguageLocales.ENGLISH:\n return enGB;\n case LanguageLocales.NORWEGIAN:\n default:\n return nbNO;\n }\n};\n","import React, { useState, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport type { HNDesignsystemTabs } from '../../resources/Resources';\nimport type { PaletteNames } from '../../theme/palette';\n\nimport { getResources } from './resourceHelper';\nimport Tab from './Tab';\nimport TabList from './TabList';\nimport TabPanel from './TabPanel';\nimport { LanguageLocales } from '../../constants';\nimport { useLanguage } from '../../hooks/useLanguage';\nimport designsystemlayout from '../../scss/layout.module.scss';\n\nimport styles from './styles.module.scss';\n\nexport type { TabProps } from './Tab';\nexport type TabsColors = Extract<PaletteNames, 'blueberry' | 'neutral' | 'white'>;\nexport type TabsOnColor = 'onblueberry' | 'onneutral' | 'onwhite';\n\nexport interface TabsProps {\n children?: React.ReactNode;\n /** Controlled state for Tabs component */\n activeTab?: number;\n /** Adds custom classes to the element. */\n className?: string;\n /** Sets the color of the tabs. Default: white */\n color?: TabsColors;\n /** Sets wether the component should use the container-breakout class. Default: true */\n containerBreakout?: boolean;\n /** Sets the background color of the tabs. Can only be used when the color is set to white. Default: onwhite */\n onColor?: TabsOnColor;\n /** Whether the tab list should be sticky */\n sticky?: boolean;\n /** Sets the data-testid attribute. */\n testId?: string;\n /** Resources for component */\n resources?: Partial<HNDesignsystemTabs>;\n /** Overrides the default z-index of the tabs header */\n zIndex?: number;\n}\n\nexport const TabsRoot: React.FC<TabsProps> = ({\n activeTab,\n children,\n className,\n color = 'white',\n containerBreakout = true,\n onColor = 'onwhite',\n sticky = true,\n testId,\n resources,\n zIndex,\n}) => {\n const isControlled = activeTab !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = useState(0);\n const tabsRef = useRef<HTMLDivElement>(null);\n const tabPanelRef = useRef<HTMLDivElement>(null);\n const tabListRef = useRef<HTMLDivElement>(null);\n const { language } = useLanguage<LanguageLocales>(LanguageLocales.NORWEGIAN);\n const defaultResources = getResources(language);\n\n const mergedResources: HNDesignsystemTabs = {\n ...defaultResources,\n ...resources,\n };\n\n let onColorUsed: TabsOnColor = 'onwhite';\n if (color === 'white') {\n onColorUsed = onColor;\n }\n\n const onValueChange = (newValue: number): void => {\n if (!isControlled) {\n setUncontrolledValue(newValue);\n }\n };\n\n const activeTabIndex = isControlled ? activeTab : uncontrolledValue;\n\n return (\n <div className={classNames(className, containerBreakout && designsystemlayout['container-breakout'])} data-testid={testId}>\n <div\n ref={tabListRef}\n className={classNames(styles['tab-list-wrapper'], {\n [styles['tab-list-wrapper--sticky']]: sticky,\n })}\n style={{\n zIndex: zIndex,\n }}\n >\n <TabList\n onTabListClick={(index: number) => onValueChange(index)}\n selectedTab={activeTabIndex}\n color={color}\n onColor={onColorUsed}\n ariaLabelLeftButton={mergedResources.ariaLabelLeftButton}\n ariaLabelRightButton={mergedResources.ariaLabelRightButton}\n >\n {children}\n </TabList>\n <div className={classNames(styles['panel-wrapper'], styles[`panel-wrapper--${color}`])}></div>\n </div>\n <div ref={tabsRef} style={{ marginTop: '-50px' }}>\n <TabPanel ref={tabPanelRef} color={color} isFirst={activeTabIndex == 0}>\n {React.Children.toArray(children)[activeTabIndex]}\n </TabPanel>\n </div>\n </div>\n );\n};\n\ntype TabsComponent = typeof TabsRoot & {\n Tab: typeof Tab;\n};\nconst Tabs = TabsRoot as TabsComponent;\nTabsRoot.displayName = 'Tabs';\nTabs.displayName = 'Tabs';\nTabs.Tab = Tab;\nTabs.Tab.displayName = 'Tabs.Tab';\n\nexport default Tabs;\n","import Tabs from './Tabs';\nexport * from './Tabs';\nexport default Tabs;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AEMA,IAAa,gBAAgB,aAAkD;CAC7E,QAAQ,UAAR;EACE,KAAK,gBAAgB,SACnB,OAAO;EACT,KAAK,gBAAgB;EACrB,SACE,OAAO;;;;;AC+Bb,IAAa,YAAiC,EAC5C,WACA,UACA,WACA,QAAQ,SACR,oBAAoB,MACpB,UAAU,WACV,SAAS,MACT,QACA,WACA,aACI;CACJ,MAAM,eAAe,cAAc,KAAA;CACnC,MAAM,CAAC,mBAAmB,wBAAwB,SAAS,EAAE;CAC7D,MAAM,UAAU,OAAuB,KAAK;CAC5C,MAAM,cAAc,OAAuB,KAAK;CAChD,MAAM,aAAa,OAAuB,KAAK;CAC/C,MAAM,EAAE,aAAa,YAA6B,gBAAgB,UAAU;CAG5E,MAAM,kBAAsC;EAC1C,GAHuB,aAAa,SAGjC;EACH,GAAG;EACJ;CAED,IAAI,cAA2B;CAC/B,IAAI,UAAU,SACZ,cAAc;CAGhB,MAAM,iBAAiB,aAA2B;EAChD,IAAI,CAAC,cACH,qBAAqB,SAAS;;CAIlC,MAAM,iBAAiB,eAAe,YAAY;CAElD,OACE,qBAAC,OAAD;EAAK,WAAW,WAAW,WAAW,qBAAqB,mBAAmB,sBAAsB;EAAE,eAAa;YAAnH,CACE,qBAAC,OAAD;GACE,KAAK;GACL,WAAW,WAAW,OAAO,qBAAqB,GAC/C,OAAO,8BAA8B,QACvC,CAAC;GACF,OAAO,EACG,QACT;aAPH,CASE,oBAAC,iBAAD;IACE,iBAAiB,UAAkB,cAAc,MAAM;IACvD,aAAa;IACN;IACP,SAAS;IACT,qBAAqB,gBAAgB;IACrC,sBAAsB,gBAAgB;IAErC;IACO,CAAA,EACV,oBAAC,OAAD,EAAK,WAAW,WAAW,OAAO,kBAAkB,OAAO,kBAAkB,SAAS,EAAQ,CAAA,CAC1F;MACN,oBAAC,OAAD;GAAK,KAAK;GAAS,OAAO,EAAE,WAAW,SAAS;aAC9C,oBAAC,kBAAD;IAAU,KAAK;IAAoB;IAAO,SAAS,kBAAkB;cAClE,MAAM,SAAS,QAAQ,SAAS,CAAC;IACzB,CAAA;GACP,CAAA,CACF;;;AAOV,IAAM,OAAO;AACb,SAAS,cAAc;AACvB,KAAK,cAAc;AACnB,KAAK,MAAM;AACX,KAAK,IAAI,cAAc;;;ACtHvB,IAAA,eAAe"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/resources/HN.Designsystem.Tabs.en-GB.json","../../../src/resources/HN.Designsystem.Tabs.nb-NO.json","../../../src/components/Tabs/resourceHelper.ts","../../../src/components/Tabs/Tabs.tsx","../../../src/components/Tabs/index.ts"],"sourcesContent":["{\n \"ariaLabelRightButton\": \"Scroll right\",\n \"ariaLabelLeftButton\": \"Scroll left\"\n}\n","{\n \"ariaLabelRightButton\": \"Scroll til høyre\",\n \"ariaLabelLeftButton\": \"Scroll til venstre\"\n}\n","import type { HNDesignsystemTabs } from '../../resources/Resources';\n\nimport { LanguageLocales } from '../../constants';\nimport enGB from '../../resources/HN.Designsystem.Tabs.en-GB.json';\nimport nbNO from '../../resources/HN.Designsystem.Tabs.nb-NO.json';\n\nexport const getResources = (language: LanguageLocales): HNDesignsystemTabs => {\n switch (language) {\n case LanguageLocales.ENGLISH:\n return enGB;\n case LanguageLocales.NORWEGIAN:\n default:\n return nbNO;\n }\n};\n","import React, { useState, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport type { HNDesignsystemTabs } from '../../resources/Resources';\nimport type { PaletteNames } from '../../theme/palette';\n\nimport { getResources } from './resourceHelper';\nimport Tab from './Tab';\nimport TabList from './TabList';\nimport TabPanel from './TabPanel';\nimport { LanguageLocales } from '../../constants';\nimport { useLanguage } from '../../hooks/useLanguage';\nimport designsystemlayout from '../../scss/layout.module.scss';\n\nimport styles from './styles.module.scss';\n\nexport type { TabProps } from './Tab';\nexport type TabsColors = Extract<PaletteNames, 'blueberry' | 'neutral' | 'white'>;\nexport type TabsOnColor = 'onblueberry' | 'onneutral' | 'onwhite';\n\nexport interface TabsProps {\n children?: React.ReactNode;\n /** Controlled state for Tabs component */\n activeTab?: number;\n /** Adds custom classes to the element. */\n className?: string;\n /** Sets the color of the tabs. Default: white */\n color?: TabsColors;\n /** Sets wether the component should use the container-breakout class. Default: true */\n containerBreakout?: boolean;\n /** Sets the background color of the tabs. Can only be used when the color is set to white. Default: onwhite */\n onColor?: TabsOnColor;\n /** Whether the tab list should be sticky */\n sticky?: boolean;\n /** Sets the data-testid attribute. */\n testId?: string;\n /** Resources for component */\n resources?: Partial<HNDesignsystemTabs>;\n /** Overrides the default z-index of the tabs header */\n zIndex?: number;\n}\n\nexport const TabsRoot: React.FC<TabsProps> = ({\n activeTab,\n children,\n className,\n color = 'white',\n containerBreakout = true,\n onColor = 'onwhite',\n sticky = true,\n testId,\n resources,\n zIndex,\n}) => {\n const isControlled = activeTab !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = useState(0);\n const tabsRef = useRef<HTMLDivElement>(null);\n const tabPanelRef = useRef<HTMLDivElement>(null);\n const tabListRef = useRef<HTMLDivElement>(null);\n const { language } = useLanguage<LanguageLocales>(LanguageLocales.NORWEGIAN);\n const defaultResources = getResources(language);\n\n const mergedResources: HNDesignsystemTabs = {\n ...defaultResources,\n ...resources,\n };\n\n let onColorUsed: TabsOnColor = 'onwhite';\n if (color === 'white') {\n onColorUsed = onColor;\n }\n\n const onValueChange = (newValue: number): void => {\n if (!isControlled) {\n setUncontrolledValue(newValue);\n }\n };\n\n const activeTabIndex = isControlled ? activeTab : uncontrolledValue;\n\n return (\n <div className={classNames(className, containerBreakout && designsystemlayout['container-breakout'])} data-testid={testId}>\n <div\n ref={tabListRef}\n className={classNames(styles['tab-list-wrapper'], {\n [styles['tab-list-wrapper--sticky']]: sticky,\n })}\n style={{\n zIndex: zIndex,\n }}\n >\n <TabList\n onTabListClick={(index: number) => onValueChange(index)}\n selectedTab={activeTabIndex}\n color={color}\n onColor={onColorUsed}\n ariaLabelLeftButton={mergedResources.ariaLabelLeftButton}\n ariaLabelRightButton={mergedResources.ariaLabelRightButton}\n >\n {children}\n </TabList>\n <div className={classNames(styles['panel-wrapper'], styles[`panel-wrapper--${color}`])}></div>\n </div>\n <div ref={tabsRef} style={{ marginTop: '-50px' }}>\n <TabPanel ref={tabPanelRef} color={color} isFirst={activeTabIndex == 0}>\n {React.Children.toArray(children)[activeTabIndex]}\n </TabPanel>\n </div>\n </div>\n );\n};\n\ntype TabsComponent = typeof TabsRoot & {\n Tab: typeof Tab;\n};\nconst Tabs = TabsRoot as TabsComponent;\nTabsRoot.displayName = 'Tabs';\nTabs.displayName = 'Tabs';\nTabs.Tab = Tab;\nTabs.Tab.displayName = 'Tabs.Tab';\n\nexport default Tabs;\n","import Tabs from './Tabs';\nexport * from './Tabs';\nexport default Tabs;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AEMA,IAAa,gBAAgB,aAAkD;CAC7E,QAAQ,UAAR;EACE,KAAK,gBAAgB,SACnB,OAAO;EACT,KAAK,gBAAgB;EACrB,SACE,OAAO;CACX;AACF;;;AC6BA,IAAa,YAAiC,EAC5C,WACA,UACA,WACA,QAAQ,SACR,oBAAoB,MACpB,UAAU,WACV,SAAS,MACT,QACA,WACA,aACI;CACJ,MAAM,eAAe,cAAc,KAAA;CACnC,MAAM,CAAC,mBAAmB,wBAAwB,SAAS,CAAC;CAC5D,MAAM,UAAU,OAAuB,IAAI;CAC3C,MAAM,cAAc,OAAuB,IAAI;CAC/C,MAAM,aAAa,OAAuB,IAAI;CAC9C,MAAM,EAAE,aAAa,YAA6B,gBAAgB,SAAS;CAG3E,MAAM,kBAAsC;EAC1C,GAHuB,aAAa,QAGjC;EACH,GAAG;CACL;CAEA,IAAI,cAA2B;CAC/B,IAAI,UAAU,SACZ,cAAc;CAGhB,MAAM,iBAAiB,aAA2B;EAChD,IAAI,CAAC,cACH,qBAAqB,QAAQ;CAEjC;CAEA,MAAM,iBAAiB,eAAe,YAAY;CAElD,OACE,qBAAC,OAAD;EAAK,WAAW,WAAW,WAAW,qBAAqB,mBAAmB,qBAAqB;EAAG,eAAa;YAAnH,CACE,qBAAC,OAAD;GACE,KAAK;GACL,WAAW,WAAW,OAAO,qBAAqB,GAC/C,OAAO,8BAA8B,OACxC,CAAC;GACD,OAAO,EACG,OACV;aAPF,CASE,oBAAC,iBAAD;IACE,iBAAiB,UAAkB,cAAc,KAAK;IACtD,aAAa;IACN;IACP,SAAS;IACT,qBAAqB,gBAAgB;IACrC,sBAAsB,gBAAgB;IAErC;GACM,CAAA,GACT,oBAAC,OAAD,EAAK,WAAW,WAAW,OAAO,kBAAkB,OAAO,kBAAkB,QAAQ,EAAQ,CAAA,CAC1F;MACL,oBAAC,OAAD;GAAK,KAAK;GAAS,OAAO,EAAE,WAAW,QAAQ;aAC7C,oBAAC,kBAAD;IAAU,KAAK;IAAoB;IAAO,SAAS,kBAAkB;cAClE,MAAM,SAAS,QAAQ,QAAQ,EAAE;GAC1B,CAAA;EACP,CAAA,CACF;;AAET;AAKA,IAAM,OAAO;AACb,SAAS,cAAc;AACvB,KAAK,cAAc;AACnB,KAAK,MAAM;AACX,KAAK,IAAI,cAAc;;;ACtHvB,IAAA,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Tag/Tag.tsx","../../../src/components/Tag/constants.ts","../../../src/components/Tag/index.ts"],"sourcesContent":["import cn from 'classnames';\n\nimport type { TagVariant } from './constants';\n\nimport { AnalyticsId } from '../../constants';\n\nimport styles from './styles.module.scss';\n\nexport interface TagProps {\n /** Sets the text of the tag */\n children: string;\n /* Changes the appearance of the tag. Default: normal */\n variant?: keyof typeof TagVariant;\n /** Sets the data-testid attribute on the expander button. */\n testId?: string;\n}\n\nconst Tag: React.FC<TagProps> = props => {\n const { children, variant = 'normal', testId } = props;\n\n const tagClasses = cn(styles.tag, styles[`tag--${variant}`]);\n\n return (\n <span className={tagClasses} data-testid={testId} data-analyticsid={AnalyticsId.Tag}>\n {children}\n </span>\n );\n};\n\nexport default Tag;\n","export enum TagVariant {\n normal = 'normal',\n accent1 = 'accent1',\n accent2 = 'accent2',\n}\n","import Tag from './Tag';\nexport { TagVariant } from './constants';\nexport * from './Tag';\nexport default Tag;\n"],"mappings":";;;;;AAiBA,IAAM,OAA0B,UAAS;CACvC,MAAM,EAAE,UAAU,UAAU,UAAU,WAAW;CAIjD,OACE,oBAAC,QAAD;EAAM,WAHW,WAAG,OAAO,KAAK,OAAO,QAAQ,WAG9B;EAAY,eAAa;EAAQ,oBAAkB,YAAY;EAC7E;EACI,CAAA;;;;ACzBX,IAAY,aAAL,yBAAA,YAAA;CACL,WAAA,YAAS;CACT,WAAA,aAAU;CACV,WAAA,aAAU;;KACX;;;ACDD,IAAA,cAAe"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Tag/Tag.tsx","../../../src/components/Tag/constants.ts","../../../src/components/Tag/index.ts"],"sourcesContent":["import cn from 'classnames';\n\nimport type { TagVariant } from './constants';\n\nimport { AnalyticsId } from '../../constants';\n\nimport styles from './styles.module.scss';\n\nexport interface TagProps {\n /** Sets the text of the tag */\n children: string;\n /* Changes the appearance of the tag. Default: normal */\n variant?: keyof typeof TagVariant;\n /** Sets the data-testid attribute on the expander button. */\n testId?: string;\n}\n\nconst Tag: React.FC<TagProps> = props => {\n const { children, variant = 'normal', testId } = props;\n\n const tagClasses = cn(styles.tag, styles[`tag--${variant}`]);\n\n return (\n <span className={tagClasses} data-testid={testId} data-analyticsid={AnalyticsId.Tag}>\n {children}\n </span>\n );\n};\n\nexport default Tag;\n","export enum TagVariant {\n normal = 'normal',\n accent1 = 'accent1',\n accent2 = 'accent2',\n}\n","import Tag from './Tag';\nexport { TagVariant } from './constants';\nexport * from './Tag';\nexport default Tag;\n"],"mappings":";;;;;AAiBA,IAAM,OAA0B,UAAS;CACvC,MAAM,EAAE,UAAU,UAAU,UAAU,WAAW;CAIjD,OACE,oBAAC,QAAD;EAAM,WAHW,WAAG,OAAO,KAAK,OAAO,QAAQ,UAG9B;EAAY,eAAa;EAAQ,oBAAkB,YAAY;EAC7E;CACG,CAAA;AAEV;;;AC3BA,IAAY,aAAL,yBAAA,YAAA;CACL,WAAA,YAAA;CACA,WAAA,aAAA;CACA,WAAA,aAAA;;AACF,EAAA,CAAA,CAAA;;;ACDA,IAAA,cAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/TagList/TagList.tsx","../../../src/components/TagList/index.ts"],"sourcesContent":["import React from 'react';\n\nimport { AnalyticsId } from '../../constants';\n\nimport styles from './styles.module.scss';\n\nexport interface TagListPropsProps {\n children?: React.ReactNode;\n /** Sets the data-testid attribute on the expander button. */\n testId?: string;\n}\n\nconst TagList: React.FC<TagListPropsProps> = ({ children, testId }) => {\n return (\n <ul className={styles['tag-list']} data-testid={testId} data-analyticsid={AnalyticsId.TagList}>\n {React.Children.map(children, child => (\n <li className={styles['tag-list__item']}>{child}</li>\n ))}\n </ul>\n );\n};\n\nexport default TagList;\n","import TagList from './TagList';\nexport * from './TagList';\nexport default TagList;\n"],"mappings":";;;;;AAYA,IAAM,WAAwC,EAAE,UAAU,aAAa;CACrE,OACE,oBAAC,MAAD;EAAI,WAAW,OAAO;EAAa,eAAa;EAAQ,oBAAkB,YAAY;YACnF,MAAM,SAAS,IAAI,WAAU,UAC5B,oBAAC,MAAD;GAAI,WAAW,OAAO;aAAoB;GAAW,CAAA,CACrD;EACC,CAAA;;;;AChBT,IAAA,kBAAe"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/TagList/TagList.tsx","../../../src/components/TagList/index.ts"],"sourcesContent":["import React from 'react';\n\nimport { AnalyticsId } from '../../constants';\n\nimport styles from './styles.module.scss';\n\nexport interface TagListPropsProps {\n children?: React.ReactNode;\n /** Sets the data-testid attribute on the expander button. */\n testId?: string;\n}\n\nconst TagList: React.FC<TagListPropsProps> = ({ children, testId }) => {\n return (\n <ul className={styles['tag-list']} data-testid={testId} data-analyticsid={AnalyticsId.TagList}>\n {React.Children.map(children, child => (\n <li className={styles['tag-list__item']}>{child}</li>\n ))}\n </ul>\n );\n};\n\nexport default TagList;\n","import TagList from './TagList';\nexport * from './TagList';\nexport default TagList;\n"],"mappings":";;;;;AAYA,IAAM,WAAwC,EAAE,UAAU,aAAa;CACrE,OACE,oBAAC,MAAD;EAAI,WAAW,OAAO;EAAa,eAAa;EAAQ,oBAAkB,YAAY;YACnF,MAAM,SAAS,IAAI,WAAU,UAC5B,oBAAC,MAAD;GAAI,WAAW,OAAO;aAAoB;EAAU,CAAA,CACrD;CACC,CAAA;AAER;;;AClBA,IAAA,kBAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Tile/Tile.tsx","../../../src/components/Tile/index.ts"],"sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\n\nimport type { LazyIconProps } from '../LazyIcon';\nimport type { TitleTags } from './../Title/Title';\n\nimport { AnalyticsId } from '../../constants';\nimport { useBreakpoint, Breakpoint } from '../../hooks/useBreakpoint';\nimport { usePseudoClasses } from '../../hooks/usePseudoClasses';\nimport { isComponent } from '../../utils/component';\nimport { mergeRefs } from '../../utils/refs';\nimport Icon, { IconSize, type BaseIconProps, type IconProps } from '../Icon';\nimport LazyIcon from '../LazyIcon';\n\nimport tileStyles from './styles.module.scss';\n\nexport type TileVariants = 'normal' | 'compact';\n\ninterface TileProps extends Pick<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href' | 'target' | 'onClick' | 'rel'> {\n children?: React.ReactNode;\n /** Adds custom classes to the element. */\n className?: string;\n /**\tSets the icon to be displayed inside the tile. */\n icon: React.ReactElement;\n /**\tSets the title to be displayed inside the tile. */\n title: React.ReactElement;\n /** Toggles the highlighted style of the tile. */\n highlighted?: boolean;\n /** Sets the description to be displayed inside the tile. */\n description?: string;\n /** Sets a fixed max and min width for the tile. */\n fixed?: boolean;\n /** Sets the visual variant of the component */\n variant?: TileVariants;\n /** Sets the data-testid attribute. */\n testId?: string;\n /** Ref passed to the component */\n ref?: React.Ref<HTMLAnchorElement | null>;\n}\n\ninterface TileTitleProps {\n children: React.ReactNode;\n className?: string;\n htmlMarkup?: TitleTags;\n highlighted?: boolean;\n compact?: boolean;\n /** Ref passed to the title element */\n ref?: React.Ref<HTMLHeadingElement | null>;\n}\n\nexport interface TileCompound extends React.FC<TileProps> {\n Title: React.FC<TileTitleProps>;\n}\n\nconst Title: React.FC<TileTitleProps> = props => {\n const { compact, children, className, htmlMarkup = 'span', highlighted, ref } = props;\n const titleClasses = classNames(\n tileStyles['tile__title'],\n {\n [tileStyles['tile__title--highlighted']]: highlighted,\n [tileStyles['tile__title--compact']]: compact,\n },\n className\n );\n const CustomTag = htmlMarkup;\n\n return (\n <CustomTag className={titleClasses} ref={ref}>\n {children}\n </CustomTag>\n );\n};\n\nTitle.displayName = 'Title';\n\nexport const Tile: TileCompound = props => {\n const {\n children,\n icon,\n title,\n className = '',\n description,\n fixed = false,\n highlighted = false,\n testId,\n target,\n rel,\n variant = 'normal',\n href,\n onClick,\n ref,\n } = props;\n const { refObject, isHovered } = usePseudoClasses<HTMLAnchorElement>();\n const breakpoint = useBreakpoint();\n const mobile = breakpoint < Breakpoint.md;\n const compact = variant === 'compact';\n const tileClasses = classNames(\n tileStyles.tile,\n {\n [tileStyles['tile--fixed']]: fixed,\n [tileStyles['tile--compact']]: compact,\n [tileStyles['tile--highlighted']]: highlighted,\n },\n className\n );\n const tileTitleWrapperClasses = classNames(tileStyles['title-wrapper'], {\n [tileStyles['title-wrapper--compact']]: compact,\n });\n\n return (\n <a\n ref={mergeRefs([ref, refObject])}\n href={href}\n target={target}\n rel={target === '_blank' ? 'noopener noreferrer' : rel}\n className={tileClasses}\n data-testid={testId}\n data-analyticsid={AnalyticsId.Tile}\n onClick={onClick}\n >\n <div className={tileTitleWrapperClasses}>\n {(isComponent<IconProps>(icon, Icon) || isComponent<LazyIconProps>(icon, LazyIcon)) &&\n React.cloneElement(icon as React.ReactElement<BaseIconProps>, {\n size: mobile ? IconSize.Small : IconSize.Medium,\n isHovered,\n color: highlighted ? 'white' : 'black',\n })}\n {isComponent<TileTitleProps>(title, Tile.Title) && React.cloneElement(title, { highlighted: highlighted, compact: compact })}\n </div>\n {!compact && !mobile && <p className={tileStyles.tile__description}>{description}</p>}\n {children && <div className={tileStyles.tile__children}>{children}</div>}\n </a>\n );\n};\n\nTile.displayName = 'Tile';\nTile.Title = Title;\n\nexport default Tile;\n","import Tile from './Tile';\nexport * from './Tile';\nexport default Tile;\n"],"mappings":";;;;;;;;;;;;AAuDA,IAAM,SAAkC,UAAS;CAC/C,MAAM,EAAE,SAAS,UAAU,WAAW,aAAa,QAAQ,aAAa,QAAQ;CAWhF,OACE,oBAAC,YAAD;EAAW,WAXQ,WACnB,WAAW,gBACX;IACG,WAAW,8BAA8B;IACzC,WAAW,0BAA0B;GACvC,EACD,UAKsB;EAAmB;EACtC;EACS,CAAA;;AAIhB,MAAM,cAAc;AAEpB,IAAa,QAAqB,UAAS;CACzC,MAAM,EACJ,UACA,MACA,OACA,YAAY,IACZ,aACA,QAAQ,OACR,cAAc,OACd,QACA,QACA,KACA,UAAU,UACV,MACA,SACA,QACE;CACJ,MAAM,EAAE,WAAW,cAAc,kBAAqC;CAEtE,MAAM,SADa,eACJ,GAAa,WAAW;CACvC,MAAM,UAAU,YAAY;CAC5B,MAAM,cAAc,WAClB,WAAW,MACX;GACG,WAAW,iBAAiB;GAC5B,WAAW,mBAAmB;GAC9B,WAAW,uBAAuB;EACpC,EACD,UACD;CACD,MAAM,0BAA0B,WAAW,WAAW,kBAAkB,GACrE,WAAW,4BAA4B,SACzC,CAAC;CAEF,OACE,qBAAC,KAAD;EACE,KAAK,UAAU,CAAC,KAAK,UAAU,CAAC;EAC1B;EACE;EACR,KAAK,WAAW,WAAW,wBAAwB;EACnD,WAAW;EACX,eAAa;EACb,oBAAkB,YAAY;EACrB;YARX;GAUE,qBAAC,OAAD;IAAK,WAAW;cAAhB,EACI,YAAuB,MAAM,aAAK,IAAI,YAA2B,MAAM,iBAAS,KAChF,MAAM,aAAa,MAA2C;KAC5D,MAAM,SAAS,SAAS,QAAQ,SAAS;KACzC;KACA,OAAO,cAAc,UAAU;KAChC,CAAC,EACH,YAA4B,OAAO,KAAK,MAAM,IAAI,MAAM,aAAa,OAAO;KAAe;KAAsB;KAAS,CAAC,CACxH;;GACL,CAAC,WAAW,CAAC,UAAU,oBAAC,KAAD;IAAG,WAAW,WAAW;cAAoB;IAAgB,CAAA;GACpF,YAAY,oBAAC,OAAD;IAAK,WAAW,WAAW;IAAiB;IAAe,CAAA;GACtE;;;AAIR,KAAK,cAAc;AACnB,KAAK,QAAQ;;;ACvIb,IAAA,eAAe"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Tile/Tile.tsx","../../../src/components/Tile/index.ts"],"sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\n\nimport type { LazyIconProps } from '../LazyIcon';\nimport type { TitleTags } from './../Title/Title';\n\nimport { AnalyticsId } from '../../constants';\nimport { useBreakpoint, Breakpoint } from '../../hooks/useBreakpoint';\nimport { usePseudoClasses } from '../../hooks/usePseudoClasses';\nimport { isComponent } from '../../utils/component';\nimport { mergeRefs } from '../../utils/refs';\nimport Icon, { IconSize, type BaseIconProps, type IconProps } from '../Icon';\nimport LazyIcon from '../LazyIcon';\n\nimport tileStyles from './styles.module.scss';\n\nexport type TileVariants = 'normal' | 'compact';\n\ninterface TileProps extends Pick<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href' | 'target' | 'onClick' | 'rel'> {\n children?: React.ReactNode;\n /** Adds custom classes to the element. */\n className?: string;\n /**\tSets the icon to be displayed inside the tile. */\n icon: React.ReactElement;\n /**\tSets the title to be displayed inside the tile. */\n title: React.ReactElement;\n /** Toggles the highlighted style of the tile. */\n highlighted?: boolean;\n /** Sets the description to be displayed inside the tile. */\n description?: string;\n /** Sets a fixed max and min width for the tile. */\n fixed?: boolean;\n /** Sets the visual variant of the component */\n variant?: TileVariants;\n /** Sets the data-testid attribute. */\n testId?: string;\n /** Ref passed to the component */\n ref?: React.Ref<HTMLAnchorElement | null>;\n}\n\ninterface TileTitleProps {\n children: React.ReactNode;\n className?: string;\n htmlMarkup?: TitleTags;\n highlighted?: boolean;\n compact?: boolean;\n /** Ref passed to the title element */\n ref?: React.Ref<HTMLHeadingElement | null>;\n}\n\nexport interface TileCompound extends React.FC<TileProps> {\n Title: React.FC<TileTitleProps>;\n}\n\nconst Title: React.FC<TileTitleProps> = props => {\n const { compact, children, className, htmlMarkup = 'span', highlighted, ref } = props;\n const titleClasses = classNames(\n tileStyles['tile__title'],\n {\n [tileStyles['tile__title--highlighted']]: highlighted,\n [tileStyles['tile__title--compact']]: compact,\n },\n className\n );\n const CustomTag = htmlMarkup;\n\n return (\n <CustomTag className={titleClasses} ref={ref}>\n {children}\n </CustomTag>\n );\n};\n\nTitle.displayName = 'Title';\n\nexport const Tile: TileCompound = props => {\n const {\n children,\n icon,\n title,\n className = '',\n description,\n fixed = false,\n highlighted = false,\n testId,\n target,\n rel,\n variant = 'normal',\n href,\n onClick,\n ref,\n } = props;\n const { refObject, isHovered } = usePseudoClasses<HTMLAnchorElement>();\n const breakpoint = useBreakpoint();\n const mobile = breakpoint < Breakpoint.md;\n const compact = variant === 'compact';\n const tileClasses = classNames(\n tileStyles.tile,\n {\n [tileStyles['tile--fixed']]: fixed,\n [tileStyles['tile--compact']]: compact,\n [tileStyles['tile--highlighted']]: highlighted,\n },\n className\n );\n const tileTitleWrapperClasses = classNames(tileStyles['title-wrapper'], {\n [tileStyles['title-wrapper--compact']]: compact,\n });\n\n return (\n <a\n ref={mergeRefs([ref, refObject])}\n href={href}\n target={target}\n rel={target === '_blank' ? 'noopener noreferrer' : rel}\n className={tileClasses}\n data-testid={testId}\n data-analyticsid={AnalyticsId.Tile}\n onClick={onClick}\n >\n <div className={tileTitleWrapperClasses}>\n {(isComponent<IconProps>(icon, Icon) || isComponent<LazyIconProps>(icon, LazyIcon)) &&\n React.cloneElement(icon as React.ReactElement<BaseIconProps>, {\n size: mobile ? IconSize.Small : IconSize.Medium,\n isHovered,\n color: highlighted ? 'white' : 'black',\n })}\n {isComponent<TileTitleProps>(title, Tile.Title) && React.cloneElement(title, { highlighted: highlighted, compact: compact })}\n </div>\n {!compact && !mobile && <p className={tileStyles.tile__description}>{description}</p>}\n {children && <div className={tileStyles.tile__children}>{children}</div>}\n </a>\n );\n};\n\nTile.displayName = 'Tile';\nTile.Title = Title;\n\nexport default Tile;\n","import Tile from './Tile';\nexport * from './Tile';\nexport default Tile;\n"],"mappings":";;;;;;;;;;;;AAuDA,IAAM,SAAkC,UAAS;CAC/C,MAAM,EAAE,SAAS,UAAU,WAAW,aAAa,QAAQ,aAAa,QAAQ;CAWhF,OACE,oBAAC,YAAD;EAAW,WAXQ,WACnB,WAAW,gBACX;IACG,WAAW,8BAA8B;IACzC,WAAW,0BAA0B;EACxC,GACA,SAKsB;EAAmB;EACtC;CACQ,CAAA;AAEf;AAEA,MAAM,cAAc;AAEpB,IAAa,QAAqB,UAAS;CACzC,MAAM,EACJ,UACA,MACA,OACA,YAAY,IACZ,aACA,QAAQ,OACR,cAAc,OACd,QACA,QACA,KACA,UAAU,UACV,MACA,SACA,QACE;CACJ,MAAM,EAAE,WAAW,cAAc,iBAAoC;CAErE,MAAM,SADa,cACJ,IAAa,WAAW;CACvC,MAAM,UAAU,YAAY;CAC5B,MAAM,cAAc,WAClB,WAAW,MACX;GACG,WAAW,iBAAiB;GAC5B,WAAW,mBAAmB;GAC9B,WAAW,uBAAuB;CACrC,GACA,SACF;CACA,MAAM,0BAA0B,WAAW,WAAW,kBAAkB,GACrE,WAAW,4BAA4B,QAC1C,CAAC;CAED,OACE,qBAAC,KAAD;EACE,KAAK,UAAU,CAAC,KAAK,SAAS,CAAC;EACzB;EACE;EACR,KAAK,WAAW,WAAW,wBAAwB;EACnD,WAAW;EACX,eAAa;EACb,oBAAkB,YAAY;EACrB;YARX;GAUE,qBAAC,OAAD;IAAK,WAAW;cAAhB,EACI,YAAuB,MAAM,YAAI,KAAK,YAA2B,MAAM,gBAAQ,MAC/E,MAAM,aAAa,MAA2C;KAC5D,MAAM,SAAS,SAAS,QAAQ,SAAS;KACzC;KACA,OAAO,cAAc,UAAU;IACjC,CAAC,GACF,YAA4B,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,OAAO;KAAe;KAAsB;IAAQ,CAAC,CACxH;;GACJ,CAAC,WAAW,CAAC,UAAU,oBAAC,KAAD;IAAG,WAAW,WAAW;cAAoB;GAAe,CAAA;GACnF,YAAY,oBAAC,OAAD;IAAK,WAAW,WAAW;IAAiB;GAAc,CAAA;EACtE;;AAEP;AAEA,KAAK,cAAc;AACnB,KAAK,QAAQ;;;ACvIb,IAAA,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/ToastList/ToastList.tsx","../../../src/components/ToastList/index.ts"],"sourcesContent":["import React from 'react';\n\nimport { AnimatePresence, motion } from 'motion/react';\n\nimport { mergeRefs } from '../../utils/refs';\nimport Toast from '../Toast/Toast';\n\nimport styles from './styles.module.scss';\n\nexport interface ToastData {\n id: string;\n title: string;\n message?: string;\n}\n\nexport interface ToastListProps {\n /** Sets the data-testid attribute. */\n testId?: string;\n /** Array of toast data to display */\n toasts?: ToastData[];\n /** Ref passed to the component */\n ref?: React.Ref<HTMLElement | null>;\n}\n\nconst DURATION = 8000;\n\nconst ToastList: React.FC<ToastListProps> = props => {\n const { testId, toasts = [], ref } = props;\n const internalRef = React.useRef<HTMLElement | null>(null);\n const [visibleToasts, setVisibleToasts] = React.useState<ToastData[]>([]);\n const [removedToastIds, setRemovedToastIds] = React.useState<Set<string>>(new Set());\n const timeoutRefs = React.useRef<Map<string, NodeJS.Timeout>>(new Map());\n\n React.useEffect(() => {\n const newToasts = toasts.filter(toast => !visibleToasts.some(vt => vt.id === toast.id) && !removedToastIds.has(toast.id));\n if (newToasts.length > 0) {\n setVisibleToasts(prev => [...prev, ...newToasts]);\n }\n }, [toasts, visibleToasts, removedToastIds]);\n\n // Handles removal of a toast\n const handleRemoveToast = React.useCallback((id: string): void => {\n setVisibleToasts(prev => prev.filter(t => t.id !== id));\n // Add to removed IDs to prevent re-appearance\n setRemovedToastIds(prev => new Set([...prev, id]));\n\n // Clear timeout if exists\n const timeout = timeoutRefs.current.get(id);\n if (timeout) {\n clearTimeout(timeout);\n timeoutRefs.current.delete(id);\n }\n }, []);\n\n // Handle auto-removal of toasts after duration\n React.useEffect(() => {\n const timeouts = timeoutRefs.current;\n\n // Set up timeouts for new visible toasts that don't have timeout yet\n visibleToasts.forEach(toast => {\n if (!timeouts.has(toast.id)) {\n const timeout = setTimeout(() => {\n handleRemoveToast(toast.id);\n }, DURATION);\n\n timeouts.set(toast.id, timeout);\n }\n });\n }, [visibleToasts, handleRemoveToast]);\n\n // Cleanup timeouts for removed toasts\n React.useEffect(() => {\n const timeouts = timeoutRefs.current;\n const currentToastIds = new Set(visibleToasts.map(t => t.id));\n\n timeouts.forEach((timeout, id) => {\n if (!currentToastIds.has(id)) {\n clearTimeout(timeout);\n timeouts.delete(id);\n }\n });\n }, [visibleToasts]);\n\n // Cleanup all timeouts on unmount\n React.useEffect(() => {\n return (): void => {\n timeoutRefs.current.forEach(timeout => clearTimeout(timeout));\n timeoutRefs.current.clear();\n };\n }, []);\n\n const setRefs = mergeRefs([internalRef, ref]);\n\n return (\n <section ref={setRefs} className={styles['toast-list']} data-testid={testId}>\n <AnimatePresence mode=\"popLayout\">\n {visibleToasts.map(toast => (\n <motion.div\n key={toast.id}\n layout\n initial={{ opacity: 0, y: 50 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -20 }}\n transition={{\n layout: { type: 'spring', duration: 0.4, bounce: 0.1 },\n }}\n >\n <Toast\n testId={`${testId}-${toast.id}`}\n title={toast.title}\n message={toast.message}\n onClose={() => handleRemoveToast(toast.id)}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </section>\n );\n};\n\nToastList.displayName = 'ToastList';\n\nexport default ToastList;\n","import ToastList from './ToastList';\nexport * from './ToastList';\nexport default ToastList;\n"],"mappings":";;;;;;;AAwBA,IAAM,WAAW;AAEjB,IAAM,aAAsC,UAAS;CACnD,MAAM,EAAE,QAAQ,SAAS,EAAE,EAAE,QAAQ;CACrC,MAAM,cAAc,MAAM,OAA2B,KAAK;CAC1D,MAAM,CAAC,eAAe,oBAAoB,MAAM,SAAsB,EAAE,CAAC;CACzE,MAAM,CAAC,iBAAiB,sBAAsB,MAAM,yBAAsB,IAAI,KAAK,CAAC;CACpF,MAAM,cAAc,MAAM,uBAAoC,IAAI,KAAK,CAAC;CAExE,MAAM,gBAAgB;EACpB,MAAM,YAAY,OAAO,QAAO,UAAS,CAAC,cAAc,MAAK,OAAM,GAAG,OAAO,MAAM,GAAG,IAAI,CAAC,gBAAgB,IAAI,MAAM,GAAG,CAAC;EACzH,IAAI,UAAU,SAAS,GACrB,kBAAiB,SAAQ,CAAC,GAAG,MAAM,GAAG,UAAU,CAAC;IAElD;EAAC;EAAQ;EAAe;EAAgB,CAAC;CAG5C,MAAM,oBAAoB,MAAM,aAAa,OAAqB;EAChE,kBAAiB,SAAQ,KAAK,QAAO,MAAK,EAAE,OAAO,GAAG,CAAC;EAEvD,oBAAmB,SAAQ,IAAI,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;EAGlD,MAAM,UAAU,YAAY,QAAQ,IAAI,GAAG;EAC3C,IAAI,SAAS;GACX,aAAa,QAAQ;GACrB,YAAY,QAAQ,OAAO,GAAG;;IAE/B,EAAE,CAAC;CAGN,MAAM,gBAAgB;EACpB,MAAM,WAAW,YAAY;EAG7B,cAAc,SAAQ,UAAS;GAC7B,IAAI,CAAC,SAAS,IAAI,MAAM,GAAG,EAAE;IAC3B,MAAM,UAAU,iBAAiB;KAC/B,kBAAkB,MAAM,GAAG;OAC1B,SAAS;IAEZ,SAAS,IAAI,MAAM,IAAI,QAAQ;;IAEjC;IACD,CAAC,eAAe,kBAAkB,CAAC;CAGtC,MAAM,gBAAgB;EACpB,MAAM,WAAW,YAAY;EAC7B,MAAM,kBAAkB,IAAI,IAAI,cAAc,KAAI,MAAK,EAAE,GAAG,CAAC;EAE7D,SAAS,SAAS,SAAS,OAAO;GAChC,IAAI,CAAC,gBAAgB,IAAI,GAAG,EAAE;IAC5B,aAAa,QAAQ;IACrB,SAAS,OAAO,GAAG;;IAErB;IACD,CAAC,cAAc,CAAC;CAGnB,MAAM,gBAAgB;EACpB,aAAmB;GACjB,YAAY,QAAQ,SAAQ,YAAW,aAAa,QAAQ,CAAC;GAC7D,YAAY,QAAQ,OAAO;;IAE5B,EAAE,CAAC;CAIN,OACE,oBAAC,WAAD;EAAS,KAHK,UAAU,CAAC,aAAa,IAAI,CAG5B;EAAS,WAAW,OAAO;EAAe,eAAa;YACnE,oBAAC,iBAAD;GAAiB,MAAK;aACnB,cAAc,KAAI,UACjB,oBAAC,OAAO,KAAR;IAEE,QAAA;IACA,SAAS;KAAE,SAAS;KAAG,GAAG;KAAI;IAC9B,SAAS;KAAE,SAAS;KAAG,GAAG;KAAG;IAC7B,MAAM;KAAE,SAAS;KAAG,GAAG;KAAK;IAC5B,YAAY,EACV,QAAQ;KAAE,MAAM;KAAU,UAAU;KAAK,QAAQ;KAAK,EACvD;cAED,oBAAC,OAAD;KACE,QAAQ,GAAG,OAAO,GAAG,MAAM;KAC3B,OAAO,MAAM;KACb,SAAS,MAAM;KACf,eAAe,kBAAkB,MAAM,GAAG;KAC1C,CAAA;IACS,EAfN,MAAM,GAeA,CACb;GACc,CAAA;EACV,CAAA;;AAId,UAAU,cAAc;;;ACtHxB,IAAA,oBAAe"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/ToastList/ToastList.tsx","../../../src/components/ToastList/index.ts"],"sourcesContent":["import React from 'react';\n\nimport { AnimatePresence, motion } from 'motion/react';\n\nimport { mergeRefs } from '../../utils/refs';\nimport Toast from '../Toast/Toast';\n\nimport styles from './styles.module.scss';\n\nexport interface ToastData {\n id: string;\n title: string;\n message?: string;\n}\n\nexport interface ToastListProps {\n /** Sets the data-testid attribute. */\n testId?: string;\n /** Array of toast data to display */\n toasts?: ToastData[];\n /** Ref passed to the component */\n ref?: React.Ref<HTMLElement | null>;\n}\n\nconst DURATION = 8000;\n\nconst ToastList: React.FC<ToastListProps> = props => {\n const { testId, toasts = [], ref } = props;\n const internalRef = React.useRef<HTMLElement | null>(null);\n const [visibleToasts, setVisibleToasts] = React.useState<ToastData[]>([]);\n const [removedToastIds, setRemovedToastIds] = React.useState<Set<string>>(new Set());\n const timeoutRefs = React.useRef<Map<string, NodeJS.Timeout>>(new Map());\n\n React.useEffect(() => {\n const newToasts = toasts.filter(toast => !visibleToasts.some(vt => vt.id === toast.id) && !removedToastIds.has(toast.id));\n if (newToasts.length > 0) {\n setVisibleToasts(prev => [...prev, ...newToasts]);\n }\n }, [toasts, visibleToasts, removedToastIds]);\n\n // Handles removal of a toast\n const handleRemoveToast = React.useCallback((id: string): void => {\n setVisibleToasts(prev => prev.filter(t => t.id !== id));\n // Add to removed IDs to prevent re-appearance\n setRemovedToastIds(prev => new Set([...prev, id]));\n\n // Clear timeout if exists\n const timeout = timeoutRefs.current.get(id);\n if (timeout) {\n clearTimeout(timeout);\n timeoutRefs.current.delete(id);\n }\n }, []);\n\n // Handle auto-removal of toasts after duration\n React.useEffect(() => {\n const timeouts = timeoutRefs.current;\n\n // Set up timeouts for new visible toasts that don't have timeout yet\n visibleToasts.forEach(toast => {\n if (!timeouts.has(toast.id)) {\n const timeout = setTimeout(() => {\n handleRemoveToast(toast.id);\n }, DURATION);\n\n timeouts.set(toast.id, timeout);\n }\n });\n }, [visibleToasts, handleRemoveToast]);\n\n // Cleanup timeouts for removed toasts\n React.useEffect(() => {\n const timeouts = timeoutRefs.current;\n const currentToastIds = new Set(visibleToasts.map(t => t.id));\n\n timeouts.forEach((timeout, id) => {\n if (!currentToastIds.has(id)) {\n clearTimeout(timeout);\n timeouts.delete(id);\n }\n });\n }, [visibleToasts]);\n\n // Cleanup all timeouts on unmount\n React.useEffect(() => {\n return (): void => {\n timeoutRefs.current.forEach(timeout => clearTimeout(timeout));\n timeoutRefs.current.clear();\n };\n }, []);\n\n const setRefs = mergeRefs([internalRef, ref]);\n\n return (\n <section ref={setRefs} className={styles['toast-list']} data-testid={testId}>\n <AnimatePresence mode=\"popLayout\">\n {visibleToasts.map(toast => (\n <motion.div\n key={toast.id}\n layout\n initial={{ opacity: 0, y: 50 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -20 }}\n transition={{\n layout: { type: 'spring', duration: 0.4, bounce: 0.1 },\n }}\n >\n <Toast\n testId={`${testId}-${toast.id}`}\n title={toast.title}\n message={toast.message}\n onClose={() => handleRemoveToast(toast.id)}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </section>\n );\n};\n\nToastList.displayName = 'ToastList';\n\nexport default ToastList;\n","import ToastList from './ToastList';\nexport * from './ToastList';\nexport default ToastList;\n"],"mappings":";;;;;;;AAwBA,IAAM,WAAW;AAEjB,IAAM,aAAsC,UAAS;CACnD,MAAM,EAAE,QAAQ,SAAS,CAAC,GAAG,QAAQ;CACrC,MAAM,cAAc,MAAM,OAA2B,IAAI;CACzD,MAAM,CAAC,eAAe,oBAAoB,MAAM,SAAsB,CAAC,CAAC;CACxE,MAAM,CAAC,iBAAiB,sBAAsB,MAAM,yBAAsB,IAAI,IAAI,CAAC;CACnF,MAAM,cAAc,MAAM,uBAAoC,IAAI,IAAI,CAAC;CAEvE,MAAM,gBAAgB;EACpB,MAAM,YAAY,OAAO,QAAO,UAAS,CAAC,cAAc,MAAK,OAAM,GAAG,OAAO,MAAM,EAAE,KAAK,CAAC,gBAAgB,IAAI,MAAM,EAAE,CAAC;EACxH,IAAI,UAAU,SAAS,GACrB,kBAAiB,SAAQ,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC;CAEpD,GAAG;EAAC;EAAQ;EAAe;CAAe,CAAC;CAG3C,MAAM,oBAAoB,MAAM,aAAa,OAAqB;EAChE,kBAAiB,SAAQ,KAAK,QAAO,MAAK,EAAE,OAAO,EAAE,CAAC;EAEtD,oBAAmB,SAAQ,IAAI,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;EAGjD,MAAM,UAAU,YAAY,QAAQ,IAAI,EAAE;EAC1C,IAAI,SAAS;GACX,aAAa,OAAO;GACpB,YAAY,QAAQ,OAAO,EAAE;EAC/B;CACF,GAAG,CAAC,CAAC;CAGL,MAAM,gBAAgB;EACpB,MAAM,WAAW,YAAY;EAG7B,cAAc,SAAQ,UAAS;GAC7B,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,GAAG;IAC3B,MAAM,UAAU,iBAAiB;KAC/B,kBAAkB,MAAM,EAAE;IAC5B,GAAG,QAAQ;IAEX,SAAS,IAAI,MAAM,IAAI,OAAO;GAChC;EACF,CAAC;CACH,GAAG,CAAC,eAAe,iBAAiB,CAAC;CAGrC,MAAM,gBAAgB;EACpB,MAAM,WAAW,YAAY;EAC7B,MAAM,kBAAkB,IAAI,IAAI,cAAc,KAAI,MAAK,EAAE,EAAE,CAAC;EAE5D,SAAS,SAAS,SAAS,OAAO;GAChC,IAAI,CAAC,gBAAgB,IAAI,EAAE,GAAG;IAC5B,aAAa,OAAO;IACpB,SAAS,OAAO,EAAE;GACpB;EACF,CAAC;CACH,GAAG,CAAC,aAAa,CAAC;CAGlB,MAAM,gBAAgB;EACpB,aAAmB;GACjB,YAAY,QAAQ,SAAQ,YAAW,aAAa,OAAO,CAAC;GAC5D,YAAY,QAAQ,MAAM;EAC5B;CACF,GAAG,CAAC,CAAC;CAIL,OACE,oBAAC,WAAD;EAAS,KAHK,UAAU,CAAC,aAAa,GAAG,CAG3B;EAAS,WAAW,OAAO;EAAe,eAAa;YACnE,oBAAC,iBAAD;GAAiB,MAAK;aACnB,cAAc,KAAI,UACjB,oBAAC,OAAO,KAAR;IAEE,QAAA;IACA,SAAS;KAAE,SAAS;KAAG,GAAG;IAAG;IAC7B,SAAS;KAAE,SAAS;KAAG,GAAG;IAAE;IAC5B,MAAM;KAAE,SAAS;KAAG,GAAG;IAAI;IAC3B,YAAY,EACV,QAAQ;KAAE,MAAM;KAAU,UAAU;KAAK,QAAQ;IAAI,EACvD;cAEA,oBAAC,OAAD;KACE,QAAQ,GAAG,OAAO,GAAG,MAAM;KAC3B,OAAO,MAAM;KACb,SAAS,MAAM;KACf,eAAe,kBAAkB,MAAM,EAAE;IAC1C,CAAA;GACS,GAfL,MAAM,EAeD,CACb;EACc,CAAA;CACV,CAAA;AAEb;AAEA,UAAU,cAAc;;;ACtHxB,IAAA,oBAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Toggle/constants.ts","../../../src/components/Toggle/Toggle.tsx","../../../src/components/Toggle/index.ts"],"sourcesContent":["export enum TogglePosition {\n left = 'left',\n right = 'right',\n}\n\nexport enum ToggleOnColor {\n onwhite = 'onwhite',\n onneutral = 'onneutral',\n onblueberry = 'onblueberry',\n}\n","import React, { useState, useEffect, useId } from 'react';\n\nimport classNames from 'classnames';\nimport { useAnimate } from 'motion/react';\n\nimport { ToggleOnColor, TogglePosition } from './constants';\nimport { AnalyticsId } from '../../constants';\nimport { usePseudoClasses } from '../../hooks/usePseudoClasses';\n\nimport styles from './styles.module.scss';\n\nimport '../../scss/supernova/styles/colors.css';\n\nexport type LabelText = {\n text: string;\n type?: 'subdued' | 'normal';\n};\n\nexport type StatusTextType = {\n checked: string;\n unchecked: string;\n};\n\nexport interface ToggleProps extends Pick<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'disabled'> {\n /** Determines if the Toggle is checked */\n checked?: boolean;\n /** Sets the label of the Toggle */\n label: LabelText[];\n /** Defines the color of the toggle */\n onColor?: keyof typeof ToggleOnColor;\n /** A text that is shown under the Toggle switch */\n statusText?: StatusTextType;\n /** Sets the sublabel of the Toggle */\n subLabel?: string;\n /** Sets the position of the toggle relative to the label */\n togglePosition?: keyof typeof TogglePosition;\n /** Sets the data-testid attribute. */\n testId?: string;\n}\n\nconst Toggle: React.FC<ToggleProps> = ({\n checked = false,\n disabled,\n label,\n onChange,\n onColor = ToggleOnColor.onwhite,\n statusText,\n subLabel,\n togglePosition = TogglePosition.left,\n testId,\n}: ToggleProps) => {\n const [checkedState, setCheckedState] = useState(checked);\n const [showToggleAnimation, setShowToggleAnimation] = useState(false);\n const [scope, animate] = useAnimate();\n const baseId = useId();\n const toggleId = 'toggle-' + baseId;\n const inputId = 'input-' + baseId;\n const labelId = 'label-' + baseId;\n const subLabelId = 'sublabel-' + baseId;\n const toggleRef = React.useRef<HTMLSpanElement>(null);\n const toggleDotRef = React.useRef<HTMLSpanElement>(null);\n const { refObject, isHovered, isActive } = usePseudoClasses<HTMLLabelElement>(scope);\n const showHoveredStyling = isHovered && !showToggleAnimation;\n const isOnWhite = onColor === ToggleOnColor.onwhite;\n const animationDuration = disabled ? 0 : 0.2;\n const dotBackgroundColor = disabled\n ? 'var(--color-disabled-graphics)'\n : checkedState\n ? 'var(--color-action-graphics-ondark)'\n : 'var(--core-color-neutral-700)';\n\n const getBackgroundColor = (): string => {\n if (disabled) {\n return 'transparent';\n } else if (checkedState && isActive) {\n return 'var(--core-color-blueberry-800)';\n } else if (checkedState) {\n return showHoveredStyling ? 'var(--color-action-graphics-onlight-hover)' : 'var(--color-action-graphics-onlight)';\n } else if (isOnWhite && isActive) {\n return 'var(--core-color-neutral-400)';\n } else if (isOnWhite) {\n return showHoveredStyling ? 'var(--core-color-neutral-200)' : 'var(--core-color-neutral-50)';\n } else if (isActive) {\n return 'var(--core-color-neutral-200)';\n } else {\n return showHoveredStyling ? 'var(--core-color-neutral-50)' : 'var(--core-color-white)';\n }\n };\n\n useEffect(() => {\n if (showToggleAnimation) {\n const timer = setTimeout(() => setShowToggleAnimation(false), 300);\n return (): void => clearTimeout(timer);\n }\n }, [showToggleAnimation]);\n\n useEffect(() => {\n setCheckedState(checked);\n }, [checked]);\n\n useEffect(() => {\n if (!toggleRef.current || !toggleDotRef.current) return;\n animate(toggleRef.current, { background: getBackgroundColor() }, { duration: animationDuration, ease: 'easeInOut' });\n animate(\n toggleDotRef.current,\n {\n background: dotBackgroundColor,\n },\n { duration: animationDuration, ease: 'easeInOut' }\n );\n animate(toggleDotRef.current, { x: checkedState ? 16 : 0 }, { duration: animationDuration, ease: 'easeInOut' });\n animate('svg', { opacity: checkedState ? 1 : 0 }, { duration: animationDuration, ease: 'easeInOut' });\n }, [checkedState, showHoveredStyling, isActive, disabled]);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n setCheckedState(event.target.checked);\n setShowToggleAnimation(true);\n onChange?.(event);\n };\n\n const toggleContainerClassNames = classNames(styles['toggle-container'], {\n [styles['toggle-container--position-right']]: togglePosition === TogglePosition.right,\n [styles['toggle-container--with-status']]: statusText !== undefined && statusText !== null,\n [styles['toggle-container--disabled']]: disabled,\n });\n\n const subLabelClassNames = classNames(styles['toggle-container__sublabel']);\n\n const statusTextClassNames = classNames(styles['toggle-container__status'], {\n [styles['toggle-container__status--checked']]: checkedState,\n });\n\n const toggleClassNames = classNames(styles['toggle-container__toggle'], {\n [styles['toggle-container__toggle--ignore-hover']]: showToggleAnimation,\n [styles['toggle-container__toggle--on-white']]: onColor === ToggleOnColor.onwhite,\n });\n\n const toggleDotClassNames = classNames(styles['toggle-container__toggle__dot'], {\n [styles['toggle-container__toggle__dot--ignore-hover']]: showToggleAnimation,\n });\n\n const renderToggle = (): React.ReactElement => (\n <div className={styles['toggle-container__outer-toggle']}>\n <label ref={refObject} className={styles['toggle-container__toggle-group']}>\n <input\n disabled={disabled}\n id={inputId}\n type=\"checkbox\"\n checked={checkedState}\n onChange={handleChange}\n className={styles['toggle-container__input']}\n aria-label={label.map(l => l.text).join(' ')}\n aria-describedby={[subLabel ? subLabelId : null, statusText ? toggleId + '-status' : null].filter(Boolean).join(' ') || undefined}\n role=\"switch\"\n />\n <span id={toggleId} ref={toggleRef} className={toggleClassNames} aria-hidden=\"true\">\n <span ref={toggleDotRef} className={toggleDotClassNames} aria-hidden=\"true\">\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={styles['toggle-container__toggle__dot__icon']}\n >\n <path d=\"M11 2.65247L4.69877 9.34741L1 5.41836\" strokeWidth=\"2.2\" />\n </svg>\n </span>\n </span>\n </label>\n {statusText && (\n <span className={statusTextClassNames} id={toggleId + '-status'}>\n {checkedState ? statusText.checked : statusText.unchecked}\n </span>\n )}\n </div>\n );\n\n const renderLabelText = (): React.ReactElement => {\n return (\n <div className={styles['toggle-container__outer-label']}>\n <span id={labelId} className={styles['toggle-container__label']}>\n {label.map(labelText => {\n const labelClassNames = classNames({\n [styles['toggle-container__label__text--subdued']]: labelText.type === 'subdued',\n });\n\n return (\n <span key={labelId + labelText.text} className={labelClassNames}>\n {labelText.text}\n </span>\n );\n })}\n </span>\n {subLabel && (\n <div id={subLabelId} className={subLabelClassNames}>\n {subLabel}\n </div>\n )}\n </div>\n );\n };\n\n return (\n <div className={toggleContainerClassNames} data-testid={testId} data-analyticsid={AnalyticsId.Toggle}>\n {togglePosition === TogglePosition.left && (\n <>\n {renderToggle()}\n {renderLabelText()}\n </>\n )}\n {togglePosition === TogglePosition.right && (\n <>\n {renderLabelText()}\n {renderToggle()}\n </>\n )}\n </div>\n );\n};\n\nexport default Toggle;\n","import Toggle from './Toggle';\nexport { TogglePosition, ToggleOnColor } from './constants';\nexport * from './Toggle';\nexport default Toggle;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Toggle/constants.ts","../../../src/components/Toggle/Toggle.tsx","../../../src/components/Toggle/index.ts"],"sourcesContent":["export enum TogglePosition {\n left = 'left',\n right = 'right',\n}\n\nexport enum ToggleOnColor {\n onwhite = 'onwhite',\n onneutral = 'onneutral',\n onblueberry = 'onblueberry',\n}\n","import React, { useState, useEffect, useId } from 'react';\n\nimport classNames from 'classnames';\nimport { useAnimate } from 'motion/react';\n\nimport { ToggleOnColor, TogglePosition } from './constants';\nimport { AnalyticsId } from '../../constants';\nimport { usePseudoClasses } from '../../hooks/usePseudoClasses';\n\nimport styles from './styles.module.scss';\n\nimport '../../scss/supernova/styles/colors.css';\n\nexport type LabelText = {\n text: string;\n type?: 'subdued' | 'normal';\n};\n\nexport type StatusTextType = {\n checked: string;\n unchecked: string;\n};\n\nexport interface ToggleProps extends Pick<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'disabled'> {\n /** Determines if the Toggle is checked */\n checked?: boolean;\n /** Sets the label of the Toggle */\n label: LabelText[];\n /** Defines the color of the toggle */\n onColor?: keyof typeof ToggleOnColor;\n /** A text that is shown under the Toggle switch */\n statusText?: StatusTextType;\n /** Sets the sublabel of the Toggle */\n subLabel?: string;\n /** Sets the position of the toggle relative to the label */\n togglePosition?: keyof typeof TogglePosition;\n /** Sets the data-testid attribute. */\n testId?: string;\n}\n\nconst Toggle: React.FC<ToggleProps> = ({\n checked = false,\n disabled,\n label,\n onChange,\n onColor = ToggleOnColor.onwhite,\n statusText,\n subLabel,\n togglePosition = TogglePosition.left,\n testId,\n}: ToggleProps) => {\n const [checkedState, setCheckedState] = useState(checked);\n const [showToggleAnimation, setShowToggleAnimation] = useState(false);\n const [scope, animate] = useAnimate();\n const baseId = useId();\n const toggleId = 'toggle-' + baseId;\n const inputId = 'input-' + baseId;\n const labelId = 'label-' + baseId;\n const subLabelId = 'sublabel-' + baseId;\n const toggleRef = React.useRef<HTMLSpanElement>(null);\n const toggleDotRef = React.useRef<HTMLSpanElement>(null);\n const { refObject, isHovered, isActive } = usePseudoClasses<HTMLLabelElement>(scope);\n const showHoveredStyling = isHovered && !showToggleAnimation;\n const isOnWhite = onColor === ToggleOnColor.onwhite;\n const animationDuration = disabled ? 0 : 0.2;\n const dotBackgroundColor = disabled\n ? 'var(--color-disabled-graphics)'\n : checkedState\n ? 'var(--color-action-graphics-ondark)'\n : 'var(--core-color-neutral-700)';\n\n const getBackgroundColor = (): string => {\n if (disabled) {\n return 'transparent';\n } else if (checkedState && isActive) {\n return 'var(--core-color-blueberry-800)';\n } else if (checkedState) {\n return showHoveredStyling ? 'var(--color-action-graphics-onlight-hover)' : 'var(--color-action-graphics-onlight)';\n } else if (isOnWhite && isActive) {\n return 'var(--core-color-neutral-400)';\n } else if (isOnWhite) {\n return showHoveredStyling ? 'var(--core-color-neutral-200)' : 'var(--core-color-neutral-50)';\n } else if (isActive) {\n return 'var(--core-color-neutral-200)';\n } else {\n return showHoveredStyling ? 'var(--core-color-neutral-50)' : 'var(--core-color-white)';\n }\n };\n\n useEffect(() => {\n if (showToggleAnimation) {\n const timer = setTimeout(() => setShowToggleAnimation(false), 300);\n return (): void => clearTimeout(timer);\n }\n }, [showToggleAnimation]);\n\n useEffect(() => {\n setCheckedState(checked);\n }, [checked]);\n\n useEffect(() => {\n if (!toggleRef.current || !toggleDotRef.current) return;\n animate(toggleRef.current, { background: getBackgroundColor() }, { duration: animationDuration, ease: 'easeInOut' });\n animate(\n toggleDotRef.current,\n {\n background: dotBackgroundColor,\n },\n { duration: animationDuration, ease: 'easeInOut' }\n );\n animate(toggleDotRef.current, { x: checkedState ? 16 : 0 }, { duration: animationDuration, ease: 'easeInOut' });\n animate('svg', { opacity: checkedState ? 1 : 0 }, { duration: animationDuration, ease: 'easeInOut' });\n }, [checkedState, showHoveredStyling, isActive, disabled]);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n setCheckedState(event.target.checked);\n setShowToggleAnimation(true);\n onChange?.(event);\n };\n\n const toggleContainerClassNames = classNames(styles['toggle-container'], {\n [styles['toggle-container--position-right']]: togglePosition === TogglePosition.right,\n [styles['toggle-container--with-status']]: statusText !== undefined && statusText !== null,\n [styles['toggle-container--disabled']]: disabled,\n });\n\n const subLabelClassNames = classNames(styles['toggle-container__sublabel']);\n\n const statusTextClassNames = classNames(styles['toggle-container__status'], {\n [styles['toggle-container__status--checked']]: checkedState,\n });\n\n const toggleClassNames = classNames(styles['toggle-container__toggle'], {\n [styles['toggle-container__toggle--ignore-hover']]: showToggleAnimation,\n [styles['toggle-container__toggle--on-white']]: onColor === ToggleOnColor.onwhite,\n });\n\n const toggleDotClassNames = classNames(styles['toggle-container__toggle__dot'], {\n [styles['toggle-container__toggle__dot--ignore-hover']]: showToggleAnimation,\n });\n\n const renderToggle = (): React.ReactElement => (\n <div className={styles['toggle-container__outer-toggle']}>\n <label ref={refObject} className={styles['toggle-container__toggle-group']}>\n <input\n disabled={disabled}\n id={inputId}\n type=\"checkbox\"\n checked={checkedState}\n onChange={handleChange}\n className={styles['toggle-container__input']}\n aria-label={label.map(l => l.text).join(' ')}\n aria-describedby={[subLabel ? subLabelId : null, statusText ? toggleId + '-status' : null].filter(Boolean).join(' ') || undefined}\n role=\"switch\"\n />\n <span id={toggleId} ref={toggleRef} className={toggleClassNames} aria-hidden=\"true\">\n <span ref={toggleDotRef} className={toggleDotClassNames} aria-hidden=\"true\">\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={styles['toggle-container__toggle__dot__icon']}\n >\n <path d=\"M11 2.65247L4.69877 9.34741L1 5.41836\" strokeWidth=\"2.2\" />\n </svg>\n </span>\n </span>\n </label>\n {statusText && (\n <span className={statusTextClassNames} id={toggleId + '-status'}>\n {checkedState ? statusText.checked : statusText.unchecked}\n </span>\n )}\n </div>\n );\n\n const renderLabelText = (): React.ReactElement => {\n return (\n <div className={styles['toggle-container__outer-label']}>\n <span id={labelId} className={styles['toggle-container__label']}>\n {label.map(labelText => {\n const labelClassNames = classNames({\n [styles['toggle-container__label__text--subdued']]: labelText.type === 'subdued',\n });\n\n return (\n <span key={labelId + labelText.text} className={labelClassNames}>\n {labelText.text}\n </span>\n );\n })}\n </span>\n {subLabel && (\n <div id={subLabelId} className={subLabelClassNames}>\n {subLabel}\n </div>\n )}\n </div>\n );\n };\n\n return (\n <div className={toggleContainerClassNames} data-testid={testId} data-analyticsid={AnalyticsId.Toggle}>\n {togglePosition === TogglePosition.left && (\n <>\n {renderToggle()}\n {renderLabelText()}\n </>\n )}\n {togglePosition === TogglePosition.right && (\n <>\n {renderLabelText()}\n {renderToggle()}\n </>\n )}\n </div>\n );\n};\n\nexport default Toggle;\n","import Toggle from './Toggle';\nexport { TogglePosition, ToggleOnColor } from './constants';\nexport * from './Toggle';\nexport default Toggle;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Validation/ErrorListItem.tsx","../../../src/components/Validation/ErrorList.tsx","../../../src/components/Validation/ValidationSummary.tsx","../../../src/components/Validation/Validation.tsx","../../../src/components/Validation/index.ts"],"sourcesContent":["import type { ErrorDetails, FocusableElement } from './types';\nimport type { AnchorLinkOnClickEvent } from '../AnchorLink';\n\nimport AnchorLink from '../AnchorLink';\n\ninterface ErrorElementProps {\n name: string;\n error: ErrorDetails;\n}\n\nconst ErrorListItem: React.FC<ErrorElementProps> = props => {\n const handleClick = (event?: AnchorLinkOnClickEvent, element?: FocusableElement): void => {\n event?.preventDefault();\n if (element?.focus) element?.focus();\n };\n\n if (props.error.ref) {\n return (\n <AnchorLink href={`#${props.name}`} onClick={(e): void => handleClick(e, props.error.ref)}>\n {props.error.message}\n </AnchorLink>\n );\n }\n\n return <>{props.error.message}</>;\n};\n\nexport default ErrorListItem;\n","import type { ValidationErrors } from './types';\n\nimport ErrorListItem from './ErrorListItem';\nimport List from '../List';\n\ninterface ErrorListProps {\n errors: ValidationErrors;\n}\n\nconst ErrorList: React.FC<ErrorListProps> = props => (\n <List>\n {Object.entries(props.errors).map(([name, error]) => (\n <List.Item key={name}>\n <ErrorListItem name={name} error={error} />\n </List.Item>\n ))}\n </List>\n);\n\nexport default ErrorList;\n","import { useId } from 'react';\n\nimport classNames from 'classnames';\n\nimport type { ValidationErrors } from './types';\nimport type { TitleTags } from '../Title';\n\nimport ErrorList from './ErrorList';\nimport Title from '../Title';\n\nimport styles from './styles.module.scss';\n\ninterface ValidationSummaryProps {\n /** Error summary title */\n errorTitle?: string;\n /** Error list */\n errors?: ValidationErrors;\n /** Markup props for error summary title. Default: h2 */\n errorTitleHtmlMarkup?: TitleTags;\n /** Will be shown last */\n children?: React.ReactNode;\n /** Hides the list visually - summary is still announced by screen readers */\n visuallyHidden?: boolean;\n}\n\nconst ValidationSummary: React.FC<ValidationSummaryProps> = props => {\n const { errorTitleHtmlMarkup = 'h2' } = props;\n const titleId = useId();\n\n const hasErrors = !!props.errors && Object.entries(props.errors).length > 0;\n const visuallyHidden = props.visuallyHidden;\n\n const summaryClasses = classNames(styles['validation__summary'], {\n [styles['validation__summary--visible']]: hasErrors && !visuallyHidden,\n [styles['validation__summary--sr-only']]: visuallyHidden,\n });\n\n return (\n <div\n role={'status'}\n aria-atomic={'true'}\n aria-live={'polite'}\n aria-relevant={'all'}\n aria-labelledby={hasErrors && props.errorTitle ? titleId : undefined}\n className={summaryClasses}\n >\n {hasErrors && (\n <>\n {props.errorTitle && (\n <Title appearance=\"title4\" id={titleId} htmlMarkup={errorTitleHtmlMarkup} margin={{ marginTop: 0, marginBottom: 1 }}>\n {props.errorTitle}\n </Title>\n )}\n <ErrorList errors={props.errors!} />\n </>\n )}\n {props.children}\n </div>\n );\n};\n\nexport default ValidationSummary;\n","import React from 'react';\n\nimport type { ValidationErrors } from './types';\nimport type { FormSize } from '../../constants';\nimport type { CheckboxProps } from '../Checkbox';\nimport type { ErrorWrapperClassNameProps } from '../ErrorWrapper';\nimport type { FormGroupProps } from '../FormGroup/FormGroup';\nimport type { InputProps } from '../Input';\nimport type { RadioButtonProps } from '../RadioButton';\nimport type { SelectProps } from '../Select';\nimport type { SliderProps } from '../Slider';\nimport type { TextareaProps } from '../Textarea';\n\nimport ValidationSummary from './ValidationSummary';\nimport { AnalyticsId } from '../../constants';\nimport { isComponent, isComponentWithDisplayName } from '../../utils/component';\nimport Checkbox from '../Checkbox';\nimport FormGroup from '../FormGroup/FormGroup';\nimport Input from '../Input';\nimport RadioButton from '../RadioButton';\nimport Select from '../Select';\nimport Slider from '../Slider';\nimport Textarea from '../Textarea';\n\nimport styles from './styles.module.scss';\n\ninterface ValidationProps {\n /** Error summary title */\n errorTitle?: string;\n /** Validation errors. If errors include references to HTML elements, the errors will be rendered as links with an onClick handler to focus the element. */\n errors?: ValidationErrors;\n /** Items in the Validation compontent */\n children?: React.ReactNode;\n /** Adds custom classes to the element. */\n className?: string;\n /** Changes the visuals of the formgroup */\n size?: keyof typeof FormSize;\n /** Sets the data-testid attribute. */\n testId?: string;\n /** Hides the ValidationSummary list visually - summary is still announced by screen readers */\n visuallyHiddenSummary?: boolean;\n /** Ref passed to the component */\n ref?: React.Ref<HTMLDivElement | null>;\n}\n\nexport const Validation: React.FC<ValidationProps> = (props: ValidationProps) => {\n const validationErrorClass = styles['validation__error-wrapper'];\n\n const cloneFormElement = <T extends ErrorWrapperClassNameProps>(child: React.ReactElement<T>): React.ReactElement<T> => {\n return React.cloneElement(child, {\n ...child.props,\n errorWrapperClassName: validationErrorClass,\n });\n };\n\n const renderChild = (child: React.ReactNode): React.ReactNode => {\n if (\n isComponent<FormGroupProps>(child, FormGroup) ||\n isComponent<CheckboxProps>(child, Checkbox) ||\n isComponent<RadioButtonProps>(child, RadioButton) ||\n isComponent<TextareaProps>(child, Textarea) ||\n isComponent<InputProps>(child, Input) ||\n isComponent<SelectProps>(child, Select) ||\n isComponent<SliderProps>(child, Slider) ||\n isComponentWithDisplayName<ErrorWrapperClassNameProps>(child, 'DateTimePickerWrapper') ||\n isComponentWithDisplayName<ErrorWrapperClassNameProps>(child, 'DatePicker') ||\n isComponentWithDisplayName<ErrorWrapperClassNameProps>(child, 'DateTime')\n ) {\n return cloneFormElement<ErrorWrapperClassNameProps>(child);\n }\n if (isComponent<React.FragmentProps>(child, React.Fragment)) {\n return React.Children.map(child.props.children, (child: React.ReactNode) => {\n return renderChild(child);\n });\n }\n\n return child;\n };\n\n return (\n <>\n <div data-testid={props.testId} data-analyticsid={AnalyticsId.Validation} className={props.className} ref={props.ref}>\n {React.Children.map(props.children, (child: React.ReactNode) => renderChild(child))}\n </div>\n <ValidationSummary errorTitle={props.errorTitle} errors={props.errors} visuallyHidden={props.visuallyHiddenSummary} />\n </>\n );\n};\n\nValidation.displayName = 'Validation';\n\nexport default Validation;\n","import Validation from './Validation';\nexport * from './Validation';\nexport default Validation;\n"],"mappings":";;;;;;;;;;;;;;;;;AAUA,IAAM,iBAA6C,UAAS;CAC1D,MAAM,eAAe,OAAgC,YAAqC;EACxF,OAAO,gBAAgB;EACvB,IAAI,SAAS,OAAO,SAAS,OAAO;;CAGtC,IAAI,MAAM,MAAM,KACd,OACE,oBAAC,oBAAD;EAAY,MAAM,IAAI,MAAM;EAAQ,UAAU,MAAY,YAAY,GAAG,MAAM,MAAM,IAAI;YACtF,MAAM,MAAM;EACF,CAAA;CAIjB,OAAO,oBAAA,UAAA,EAAA,UAAG,MAAM,MAAM,SAAW,CAAA;;;;ACfnC,IAAM,aAAsC,UAC1C,oBAAC,cAAD,EAAA,UACG,OAAO,QAAQ,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,WACxC,oBAAC,aAAK,MAAN,EAAA,UACE,oBAAC,eAAD;CAAqB;CAAa;CAAS,CAAA,EACjC,EAFI,KAEJ,CACZ,EACG,CAAA;;;ACST,IAAM,qBAAsD,UAAS;CACnE,MAAM,EAAE,uBAAuB,SAAS;CACxC,MAAM,UAAU,OAAO;CAEvB,MAAM,YAAY,CAAC,CAAC,MAAM,UAAU,OAAO,QAAQ,MAAM,OAAO,CAAC,SAAS;CAC1E,MAAM,iBAAiB,MAAM;CAE7B,MAAM,iBAAiB,WAAW,OAAO,wBAAwB;GAC9D,OAAO,kCAAkC,aAAa,CAAC;GACvD,OAAO,kCAAkC;EAC3C,CAAC;CAEF,OACE,qBAAC,OAAD;EACE,MAAM;EACN,eAAa;EACb,aAAW;EACX,iBAAe;EACf,mBAAiB,aAAa,MAAM,aAAa,UAAU,KAAA;EAC3D,WAAW;YANb,CAQG,aACC,qBAAA,UAAA,EAAA,UAAA,CACG,MAAM,cACL,oBAAC,eAAD;GAAO,YAAW;GAAS,IAAI;GAAS,YAAY;GAAsB,QAAQ;IAAE,WAAW;IAAG,cAAc;IAAG;aAChH,MAAM;GACD,CAAA,EAEV,oBAAC,WAAD,EAAW,QAAQ,MAAM,QAAW,CAAA,CACnC,EAAA,CAAA,EAEJ,MAAM,SACH;;;;;ACZV,IAAa,cAAyC,UAA2B;CAC/E,MAAM,uBAAuB,OAAO;CAEpC,MAAM,oBAA0D,UAAwD;EACtH,OAAO,MAAM,aAAa,OAAO;GAC/B,GAAG,MAAM;GACT,uBAAuB;GACxB,CAAC;;CAGJ,MAAM,eAAe,UAA4C;EAC/D,IACE,YAA4B,OAAO,UAAU,IAC7C,YAA2B,OAAO,iBAAS,IAC3C,YAA8B,OAAO,oBAAY,IACjD,YAA2B,OAAO,iBAAS,IAC3C,YAAwB,OAAO,cAAM,IACrC,YAAyB,OAAO,eAAO,IACvC,YAAyB,OAAO,eAAO,IACvC,2BAAuD,OAAO,wBAAwB,IACtF,2BAAuD,OAAO,aAAa,IAC3E,2BAAuD,OAAO,WAAW,EAEzE,OAAO,iBAA6C,MAAM;EAE5D,IAAI,YAAiC,OAAO,MAAM,SAAS,EACzD,OAAO,MAAM,SAAS,IAAI,MAAM,MAAM,WAAW,UAA2B;GAC1E,OAAO,YAAY,MAAM;IACzB;EAGJ,OAAO;;CAGT,OACE,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,OAAD;EAAK,eAAa,MAAM;EAAQ,oBAAkB,YAAY;EAAY,WAAW,MAAM;EAAW,KAAK,MAAM;YAC9G,MAAM,SAAS,IAAI,MAAM,WAAW,UAA2B,YAAY,MAAM,CAAC;EAC/E,CAAA,EACN,oBAAC,mBAAD;EAAmB,YAAY,MAAM;EAAY,QAAQ,MAAM;EAAQ,gBAAgB,MAAM;EAAyB,CAAA,CACrH,EAAA,CAAA;;AAIP,WAAW,cAAc;;;ACvFzB,IAAA,qBAAe"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Validation/ErrorListItem.tsx","../../../src/components/Validation/ErrorList.tsx","../../../src/components/Validation/ValidationSummary.tsx","../../../src/components/Validation/Validation.tsx","../../../src/components/Validation/index.ts"],"sourcesContent":["import type { ErrorDetails, FocusableElement } from './types';\nimport type { AnchorLinkOnClickEvent } from '../AnchorLink';\n\nimport AnchorLink from '../AnchorLink';\n\ninterface ErrorElementProps {\n name: string;\n error: ErrorDetails;\n}\n\nconst ErrorListItem: React.FC<ErrorElementProps> = props => {\n const handleClick = (event?: AnchorLinkOnClickEvent, element?: FocusableElement): void => {\n event?.preventDefault();\n if (element?.focus) element?.focus();\n };\n\n if (props.error.ref) {\n return (\n <AnchorLink href={`#${props.name}`} onClick={(e): void => handleClick(e, props.error.ref)}>\n {props.error.message}\n </AnchorLink>\n );\n }\n\n return <>{props.error.message}</>;\n};\n\nexport default ErrorListItem;\n","import type { ValidationErrors } from './types';\n\nimport ErrorListItem from './ErrorListItem';\nimport List from '../List';\n\ninterface ErrorListProps {\n errors: ValidationErrors;\n}\n\nconst ErrorList: React.FC<ErrorListProps> = props => (\n <List>\n {Object.entries(props.errors).map(([name, error]) => (\n <List.Item key={name}>\n <ErrorListItem name={name} error={error} />\n </List.Item>\n ))}\n </List>\n);\n\nexport default ErrorList;\n","import { useId } from 'react';\n\nimport classNames from 'classnames';\n\nimport type { ValidationErrors } from './types';\nimport type { TitleTags } from '../Title';\n\nimport ErrorList from './ErrorList';\nimport Title from '../Title';\n\nimport styles from './styles.module.scss';\n\ninterface ValidationSummaryProps {\n /** Error summary title */\n errorTitle?: string;\n /** Error list */\n errors?: ValidationErrors;\n /** Markup props for error summary title. Default: h2 */\n errorTitleHtmlMarkup?: TitleTags;\n /** Will be shown last */\n children?: React.ReactNode;\n /** Hides the list visually - summary is still announced by screen readers */\n visuallyHidden?: boolean;\n}\n\nconst ValidationSummary: React.FC<ValidationSummaryProps> = props => {\n const { errorTitleHtmlMarkup = 'h2' } = props;\n const titleId = useId();\n\n const hasErrors = !!props.errors && Object.entries(props.errors).length > 0;\n const visuallyHidden = props.visuallyHidden;\n\n const summaryClasses = classNames(styles['validation__summary'], {\n [styles['validation__summary--visible']]: hasErrors && !visuallyHidden,\n [styles['validation__summary--sr-only']]: visuallyHidden,\n });\n\n return (\n <div\n role={'status'}\n aria-atomic={'true'}\n aria-live={'polite'}\n aria-relevant={'all'}\n aria-labelledby={hasErrors && props.errorTitle ? titleId : undefined}\n className={summaryClasses}\n >\n {hasErrors && (\n <>\n {props.errorTitle && (\n <Title appearance=\"title4\" id={titleId} htmlMarkup={errorTitleHtmlMarkup} margin={{ marginTop: 0, marginBottom: 1 }}>\n {props.errorTitle}\n </Title>\n )}\n <ErrorList errors={props.errors!} />\n </>\n )}\n {props.children}\n </div>\n );\n};\n\nexport default ValidationSummary;\n","import React from 'react';\n\nimport type { ValidationErrors } from './types';\nimport type { FormSize } from '../../constants';\nimport type { CheckboxProps } from '../Checkbox';\nimport type { ErrorWrapperClassNameProps } from '../ErrorWrapper';\nimport type { FormGroupProps } from '../FormGroup/FormGroup';\nimport type { InputProps } from '../Input';\nimport type { RadioButtonProps } from '../RadioButton';\nimport type { SelectProps } from '../Select';\nimport type { SliderProps } from '../Slider';\nimport type { TextareaProps } from '../Textarea';\n\nimport ValidationSummary from './ValidationSummary';\nimport { AnalyticsId } from '../../constants';\nimport { isComponent, isComponentWithDisplayName } from '../../utils/component';\nimport Checkbox from '../Checkbox';\nimport FormGroup from '../FormGroup/FormGroup';\nimport Input from '../Input';\nimport RadioButton from '../RadioButton';\nimport Select from '../Select';\nimport Slider from '../Slider';\nimport Textarea from '../Textarea';\n\nimport styles from './styles.module.scss';\n\ninterface ValidationProps {\n /** Error summary title */\n errorTitle?: string;\n /** Validation errors. If errors include references to HTML elements, the errors will be rendered as links with an onClick handler to focus the element. */\n errors?: ValidationErrors;\n /** Items in the Validation compontent */\n children?: React.ReactNode;\n /** Adds custom classes to the element. */\n className?: string;\n /** Changes the visuals of the formgroup */\n size?: keyof typeof FormSize;\n /** Sets the data-testid attribute. */\n testId?: string;\n /** Hides the ValidationSummary list visually - summary is still announced by screen readers */\n visuallyHiddenSummary?: boolean;\n /** Ref passed to the component */\n ref?: React.Ref<HTMLDivElement | null>;\n}\n\nexport const Validation: React.FC<ValidationProps> = (props: ValidationProps) => {\n const validationErrorClass = styles['validation__error-wrapper'];\n\n const cloneFormElement = <T extends ErrorWrapperClassNameProps>(child: React.ReactElement<T>): React.ReactElement<T> => {\n return React.cloneElement(child, {\n ...child.props,\n errorWrapperClassName: validationErrorClass,\n });\n };\n\n const renderChild = (child: React.ReactNode): React.ReactNode => {\n if (\n isComponent<FormGroupProps>(child, FormGroup) ||\n isComponent<CheckboxProps>(child, Checkbox) ||\n isComponent<RadioButtonProps>(child, RadioButton) ||\n isComponent<TextareaProps>(child, Textarea) ||\n isComponent<InputProps>(child, Input) ||\n isComponent<SelectProps>(child, Select) ||\n isComponent<SliderProps>(child, Slider) ||\n isComponentWithDisplayName<ErrorWrapperClassNameProps>(child, 'DateTimePickerWrapper') ||\n isComponentWithDisplayName<ErrorWrapperClassNameProps>(child, 'DatePicker') ||\n isComponentWithDisplayName<ErrorWrapperClassNameProps>(child, 'DateTime')\n ) {\n return cloneFormElement<ErrorWrapperClassNameProps>(child);\n }\n if (isComponent<React.FragmentProps>(child, React.Fragment)) {\n return React.Children.map(child.props.children, (child: React.ReactNode) => {\n return renderChild(child);\n });\n }\n\n return child;\n };\n\n return (\n <>\n <div data-testid={props.testId} data-analyticsid={AnalyticsId.Validation} className={props.className} ref={props.ref}>\n {React.Children.map(props.children, (child: React.ReactNode) => renderChild(child))}\n </div>\n <ValidationSummary errorTitle={props.errorTitle} errors={props.errors} visuallyHidden={props.visuallyHiddenSummary} />\n </>\n );\n};\n\nValidation.displayName = 'Validation';\n\nexport default Validation;\n","import Validation from './Validation';\nexport * from './Validation';\nexport default Validation;\n"],"mappings":";;;;;;;;;;;;;;;;;AAUA,IAAM,iBAA6C,UAAS;CAC1D,MAAM,eAAe,OAAgC,YAAqC;EACxF,OAAO,eAAe;EACtB,IAAI,SAAS,OAAO,SAAS,MAAM;CACrC;CAEA,IAAI,MAAM,MAAM,KACd,OACE,oBAAC,oBAAD;EAAY,MAAM,IAAI,MAAM;EAAQ,UAAU,MAAY,YAAY,GAAG,MAAM,MAAM,GAAG;YACrF,MAAM,MAAM;CACH,CAAA;CAIhB,OAAO,oBAAA,UAAA,EAAA,UAAG,MAAM,MAAM,QAAU,CAAA;AAClC;;;AChBA,IAAM,aAAsC,UAC1C,oBAAC,cAAD,EAAA,UACG,OAAO,QAAQ,MAAM,MAAM,EAAE,KAAK,CAAC,MAAM,WACxC,oBAAC,aAAK,MAAN,EAAA,UACE,oBAAC,eAAD;CAAqB;CAAa;AAAQ,CAAA,EACjC,GAFK,IAEL,CACZ,EACG,CAAA;;;ACSR,IAAM,qBAAsD,UAAS;CACnE,MAAM,EAAE,uBAAuB,SAAS;CACxC,MAAM,UAAU,MAAM;CAEtB,MAAM,YAAY,CAAC,CAAC,MAAM,UAAU,OAAO,QAAQ,MAAM,MAAM,EAAE,SAAS;CAC1E,MAAM,iBAAiB,MAAM;CAE7B,MAAM,iBAAiB,WAAW,OAAO,wBAAwB;GAC9D,OAAO,kCAAkC,aAAa,CAAC;GACvD,OAAO,kCAAkC;CAC5C,CAAC;CAED,OACE,qBAAC,OAAD;EACE,MAAM;EACN,eAAa;EACb,aAAW;EACX,iBAAe;EACf,mBAAiB,aAAa,MAAM,aAAa,UAAU,KAAA;EAC3D,WAAW;YANb,CAQG,aACC,qBAAA,UAAA,EAAA,UAAA,CACG,MAAM,cACL,oBAAC,eAAD;GAAO,YAAW;GAAS,IAAI;GAAS,YAAY;GAAsB,QAAQ;IAAE,WAAW;IAAG,cAAc;GAAE;aAC/G,MAAM;EACF,CAAA,GAET,oBAAC,WAAD,EAAW,QAAQ,MAAM,OAAU,CAAA,CACnC,EAAA,CAAA,GAEH,MAAM,QACJ;;AAET;;;ACdA,IAAa,cAAyC,UAA2B;CAC/E,MAAM,uBAAuB,OAAO;CAEpC,MAAM,oBAA0D,UAAwD;EACtH,OAAO,MAAM,aAAa,OAAO;GAC/B,GAAG,MAAM;GACT,uBAAuB;EACzB,CAAC;CACH;CAEA,MAAM,eAAe,UAA4C;EAC/D,IACE,YAA4B,OAAO,SAAS,KAC5C,YAA2B,OAAO,gBAAQ,KAC1C,YAA8B,OAAO,mBAAW,KAChD,YAA2B,OAAO,gBAAQ,KAC1C,YAAwB,OAAO,aAAK,KACpC,YAAyB,OAAO,cAAM,KACtC,YAAyB,OAAO,cAAM,KACtC,2BAAuD,OAAO,uBAAuB,KACrF,2BAAuD,OAAO,YAAY,KAC1E,2BAAuD,OAAO,UAAU,GAExE,OAAO,iBAA6C,KAAK;EAE3D,IAAI,YAAiC,OAAO,MAAM,QAAQ,GACxD,OAAO,MAAM,SAAS,IAAI,MAAM,MAAM,WAAW,UAA2B;GAC1E,OAAO,YAAY,KAAK;EAC1B,CAAC;EAGH,OAAO;CACT;CAEA,OACE,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,OAAD;EAAK,eAAa,MAAM;EAAQ,oBAAkB,YAAY;EAAY,WAAW,MAAM;EAAW,KAAK,MAAM;YAC9G,MAAM,SAAS,IAAI,MAAM,WAAW,UAA2B,YAAY,KAAK,CAAC;CAC/E,CAAA,GACL,oBAAC,mBAAD;EAAmB,YAAY,MAAM;EAAY,QAAQ,MAAM;EAAQ,gBAAgB,MAAM;CAAwB,CAAA,CACrH,EAAA,CAAA;AAEN;AAEA,WAAW,cAAc;;;ACvFzB,IAAA,qBAAe"}
@@ -0,0 +1,21 @@
1
+ import { ErrorWrapperClassNameProps } from '../../ErrorWrapper';
2
+ export interface CheckboxProps extends ErrorWrapperClassNameProps, Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'id' | 'className' | 'children' | 'size'> {
3
+ /** Adds custom classes to the root element. */
4
+ className?: string;
5
+ /** Label text shown inside the pill. */
6
+ children: React.ReactNode;
7
+ /** input id of the underlying checkbox */
8
+ inputId?: string;
9
+ /** Activates error styling. Can be true while errorText is empty (e.g. when used in a FormGroup). */
10
+ error?: boolean;
11
+ /** Error text to show above the component. */
12
+ errorText?: string;
13
+ /** Error text id */
14
+ errorTextId?: string;
15
+ /** Sets the data-testid attribute. */
16
+ testId?: string;
17
+ /** Ref forwarded to the underlying input element. */
18
+ ref?: React.Ref<HTMLInputElement | null>;
19
+ }
20
+ declare const Checkbox: React.FC<CheckboxProps>;
21
+ export default Checkbox;
@@ -0,0 +1,3 @@
1
+ import { default as Checkbox } from './Checkbox';
2
+ export * from './Checkbox';
3
+ export default Checkbox;
@@ -0,0 +1,7 @@
1
+ import { t as Checkbox } from "../../../Checkbox2.js";
2
+ //#region src/components/VisualCheckboxCloud/Checkbox/index.ts
3
+ var Checkbox_default = Checkbox;
4
+ //#endregion
5
+ export { Checkbox_default as default };
6
+
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/VisualCheckboxCloud/Checkbox/index.ts"],"sourcesContent":["import Checkbox from './Checkbox';\nexport * from './Checkbox';\nexport default Checkbox;\n"],"mappings":";;AAEA,IAAA,mBAAe"}
@@ -0,0 +1,10 @@
1
+ @use '../../../scss/visual-form' as visual-form;
2
+ @import '../../../scss/supernova/styles/colors.css';
3
+ @import '../../../scss/supernova/styles/spacers.css';
4
+
5
+ .visual-checkbox {
6
+ @include visual-form.visual-form-pill(
7
+ $pill-padding-mobile: var(--core-space-3xs) 1.75rem,
8
+ $checked-pill-padding-md: var(--core-space-3xs) 1.25rem
9
+ );
10
+ }
@@ -0,0 +1,15 @@
1
+ export type Styles = {
2
+ 'visual-checkbox': string;
3
+ 'visual-checkbox__icon': string;
4
+ 'visual-checkbox__input': string;
5
+ 'visual-checkbox__label': string;
6
+ 'visual-checkbox__pill': string;
7
+ 'visual-checkbox--checked': string;
8
+ 'visual-checkbox--invalid': string;
9
+ };
10
+
11
+ export type ClassNames = keyof Styles;
12
+
13
+ declare const styles: Styles;
14
+
15
+ export default styles;
@@ -0,0 +1,29 @@
1
+ import { default as React } from 'react';
2
+ import { default as Checkbox } from './Checkbox/Checkbox';
3
+ export interface VisualCheckboxCloudProps {
4
+ /** Items in the cloud. Should be VisualCheckboxCloud.Checkbox elements. */
5
+ children?: React.ReactNode;
6
+ /** Name shared by all child Checkbox elements (overridable per child) */
7
+ name?: string;
8
+ /** Error message shown above the cloud */
9
+ error?: string;
10
+ /** Error text id (auto-generated if omitted) */
11
+ errorTextId?: string;
12
+ /** Renders the error component (Default: true) */
13
+ renderError?: boolean;
14
+ /** Ref passed to the error message element */
15
+ errorMessageRef?: React.Ref<HTMLDivElement | null>;
16
+ /** Adds custom classes to the root element. */
17
+ className?: string;
18
+ /** Adds custom classes to the errorWrapper */
19
+ errorWrapperClassName?: string;
20
+ /** Sets the data-testid attribute. */
21
+ testId?: string;
22
+ /** Sets the data-testid attribute for the error wrapper */
23
+ errorWrapperTestId?: string;
24
+ }
25
+ interface VisualCheckboxCloudComponent extends React.FC<VisualCheckboxCloudProps> {
26
+ Checkbox: typeof Checkbox;
27
+ }
28
+ export declare const VisualCheckboxCloud: VisualCheckboxCloudComponent;
29
+ export default VisualCheckboxCloud;
@@ -0,0 +1,3 @@
1
+ import { default as VisualCheckboxCloud } from './VisualCheckboxCloud';
2
+ export * from './VisualCheckboxCloud';
3
+ export default VisualCheckboxCloud;
@@ -0,0 +1,42 @@
1
+ import { isComponent } from "../../utils/component.js";
2
+ import { useIdWithFallback } from "../../hooks/useIdWithFallback.js";
3
+ import { t as ErrorWrapper_default } from "../../ErrorWrapper.js";
4
+ import { t as Checkbox } from "../../Checkbox2.js";
5
+ import classNames from "classnames";
6
+ import React from "react";
7
+ import { jsx } from "react/jsx-runtime";
8
+ import styles from "./styles.module.scss";
9
+ //#region src/components/VisualCheckboxCloud/VisualCheckboxCloud.tsx
10
+ var VisualCheckboxCloud = (props) => {
11
+ const { children, name, error, errorTextId: errorTextIdProp, renderError = true, errorMessageRef, className, errorWrapperClassName, testId, errorWrapperTestId } = props;
12
+ const errorTextId = useIdWithFallback(errorTextIdProp);
13
+ const mapChild = (child) => {
14
+ if (isComponent(child, Checkbox)) return React.cloneElement(child, {
15
+ name: child.props.name ?? name,
16
+ error: !!error || child.props.error,
17
+ errorTextId: child.props.errorTextId ?? errorTextId
18
+ });
19
+ return child;
20
+ };
21
+ return /* @__PURE__ */ jsx(ErrorWrapper_default, {
22
+ className: classNames(errorWrapperClassName, className),
23
+ errorText: error,
24
+ errorTextId,
25
+ renderError,
26
+ errorMessageRef,
27
+ testId: errorWrapperTestId,
28
+ children: /* @__PURE__ */ jsx("div", {
29
+ className: styles["visual-checkbox-cloud"],
30
+ "data-testid": testId,
31
+ children: React.Children.map(children, mapChild)
32
+ })
33
+ });
34
+ };
35
+ VisualCheckboxCloud.Checkbox = Checkbox;
36
+ //#endregion
37
+ //#region src/components/VisualCheckboxCloud/index.ts
38
+ var VisualCheckboxCloud_default = VisualCheckboxCloud;
39
+ //#endregion
40
+ export { VisualCheckboxCloud, VisualCheckboxCloud_default as default };
41
+
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/VisualCheckboxCloud/VisualCheckboxCloud.tsx","../../../src/components/VisualCheckboxCloud/index.ts"],"sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\n\nimport type { CheckboxProps } from './Checkbox/Checkbox';\n\nimport Checkbox from './Checkbox/Checkbox';\nimport { useIdWithFallback } from '../../hooks/useIdWithFallback';\nimport { isComponent } from '../../utils/component';\nimport ErrorWrapper from '../ErrorWrapper';\n\nimport styles from './styles.module.scss';\n\nexport interface VisualCheckboxCloudProps {\n /** Items in the cloud. Should be VisualCheckboxCloud.Checkbox elements. */\n children?: React.ReactNode;\n /** Name shared by all child Checkbox elements (overridable per child) */\n name?: string;\n /** Error message shown above the cloud */\n error?: string;\n /** Error text id (auto-generated if omitted) */\n errorTextId?: string;\n /** Renders the error component (Default: true) */\n renderError?: boolean;\n /** Ref passed to the error message element */\n errorMessageRef?: React.Ref<HTMLDivElement | null>;\n /** Adds custom classes to the root element. */\n className?: string;\n /** Adds custom classes to the errorWrapper */\n errorWrapperClassName?: string;\n /** Sets the data-testid attribute. */\n testId?: string;\n /** Sets the data-testid attribute for the error wrapper */\n errorWrapperTestId?: string;\n}\n\ninterface VisualCheckboxCloudComponent extends React.FC<VisualCheckboxCloudProps> {\n Checkbox: typeof Checkbox;\n}\n\nexport const VisualCheckboxCloud: VisualCheckboxCloudComponent = props => {\n const {\n children,\n name,\n error,\n errorTextId: errorTextIdProp,\n renderError = true,\n errorMessageRef,\n className,\n errorWrapperClassName,\n testId,\n errorWrapperTestId,\n } = props;\n\n const errorTextId = useIdWithFallback(errorTextIdProp);\n\n const mapChild = (child: React.ReactNode): React.ReactNode => {\n if (isComponent<CheckboxProps>(child, Checkbox)) {\n return React.cloneElement(child, {\n name: child.props.name ?? name,\n error: !!error || child.props.error,\n errorTextId: child.props.errorTextId ?? errorTextId,\n });\n }\n return child;\n };\n\n return (\n <ErrorWrapper\n className={classNames(errorWrapperClassName, className)}\n errorText={error}\n errorTextId={errorTextId}\n renderError={renderError}\n errorMessageRef={errorMessageRef}\n testId={errorWrapperTestId}\n >\n <div className={styles['visual-checkbox-cloud']} data-testid={testId}>\n {React.Children.map(children, mapChild)}\n </div>\n </ErrorWrapper>\n );\n};\n\nVisualCheckboxCloud.Checkbox = Checkbox;\n\nexport default VisualCheckboxCloud;\n","import VisualCheckboxCloud from './VisualCheckboxCloud';\nexport * from './VisualCheckboxCloud';\nexport default VisualCheckboxCloud;\n"],"mappings":";;;;;;;;;AAwCA,IAAa,uBAAoD,UAAS;CACxE,MAAM,EACJ,UACA,MACA,OACA,aAAa,iBACb,cAAc,MACd,iBACA,WACA,uBACA,QACA,uBACE;CAEJ,MAAM,cAAc,kBAAkB,eAAe;CAErD,MAAM,YAAY,UAA4C;EAC5D,IAAI,YAA2B,OAAO,QAAQ,GAC5C,OAAO,MAAM,aAAa,OAAO;GAC/B,MAAM,MAAM,MAAM,QAAQ;GAC1B,OAAO,CAAC,CAAC,SAAS,MAAM,MAAM;GAC9B,aAAa,MAAM,MAAM,eAAe;EAC1C,CAAC;EAEH,OAAO;CACT;CAEA,OACE,oBAAC,sBAAD;EACE,WAAW,WAAW,uBAAuB,SAAS;EACtD,WAAW;EACE;EACA;EACI;EACjB,QAAQ;YAER,oBAAC,OAAD;GAAK,WAAW,OAAO;GAA0B,eAAa;aAC3D,MAAM,SAAS,IAAI,UAAU,QAAQ;EACnC,CAAA;CACO,CAAA;AAElB;AAEA,oBAAoB,WAAW;;;ACjF/B,IAAA,8BAAe"}
@@ -0,0 +1,6 @@
1
+ @use '../../scss/visual-form' as visual-form;
2
+ @import '../../scss/supernova/styles/spacers.css';
3
+
4
+ .visual-checkbox-cloud {
5
+ @include visual-form.visual-form-cloud;
6
+ }
@@ -0,0 +1,9 @@
1
+ export type Styles = {
2
+ 'visual-checkbox-cloud': string;
3
+ };
4
+
5
+ export type ClassNames = keyof Styles;
6
+
7
+ declare const styles: Styles;
8
+
9
+ export default styles;
@@ -0,0 +1,26 @@
1
+ import { ErrorWrapperClassNameProps } from '../../ErrorWrapper';
2
+ export type VisualCheckboxVariant = 'line' | 'rectangle';
3
+ export interface VisualCheckboxProps extends ErrorWrapperClassNameProps, Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'id' | 'className' | 'children' | 'size'> {
4
+ /** Adds custom classes to the root element. */
5
+ className?: string;
6
+ /** Label rendered inside the checkbox frame. */
7
+ children: string;
8
+ /** Content rendered inside the circular visual slot. */
9
+ visualContent: React.ReactNode;
10
+ /** Layout variant. `line` is a thin horizontal pill, `rectangle` is a vertical card. */
11
+ variant?: VisualCheckboxVariant;
12
+ /** input id of the underlying checkbox */
13
+ inputId?: string;
14
+ /** Activates error styling. Can be true while errorText is empty (e.g. when used in a FormGroup). */
15
+ error?: boolean;
16
+ /** Error text to show above the component. */
17
+ errorText?: string;
18
+ /** Error text id */
19
+ errorTextId?: string;
20
+ /** Sets the data-testid attribute. */
21
+ testId?: string;
22
+ /** Ref forwarded to the underlying input element. */
23
+ ref?: React.Ref<HTMLInputElement | null>;
24
+ }
25
+ declare const VisualCheckbox: React.FC<VisualCheckboxProps>;
26
+ export default VisualCheckbox;
@@ -0,0 +1,10 @@
1
+ export interface VisualContentProps {
2
+ /** Content rendered inside the circular area – typically an <img> or illustration component. */
3
+ children: React.ReactNode;
4
+ /** Adds custom classes to the root element. */
5
+ className?: string;
6
+ /** Sets the data-testid attribute. */
7
+ testId?: string;
8
+ }
9
+ export declare const VisualContent: React.FC<VisualContentProps>;
10
+ export default VisualContent;
@@ -0,0 +1,3 @@
1
+ import { default as VisualCheckbox } from './VisualCheckbox';
2
+ export * from './VisualCheckbox';
3
+ export default VisualCheckbox;
@@ -0,0 +1,7 @@
1
+ import { t as VisualCheckbox } from "../../../VisualCheckbox.js";
2
+ //#region src/components/VisualCheckboxGroup/VisualCheckbox/index.ts
3
+ var VisualCheckbox_default = VisualCheckbox;
4
+ //#endregion
5
+ export { VisualCheckbox_default as default };
6
+
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/VisualCheckboxGroup/VisualCheckbox/index.ts"],"sourcesContent":["import VisualCheckbox from './VisualCheckbox';\nexport * from './VisualCheckbox';\nexport default VisualCheckbox;\n"],"mappings":";;AAEA,IAAA,yBAAe"}
@@ -0,0 +1,7 @@
1
+ @use '../../../scss/visual-form' as visual-form;
2
+ @import '../../../scss/supernova/styles/colors.css';
3
+ @import '../../../scss/supernova/styles/spacers.css';
4
+
5
+ .visual-checkbox {
6
+ @include visual-form.visual-form-card;
7
+ }
@@ -0,0 +1,18 @@
1
+ export type Styles = {
2
+ 'visual-checkbox': string;
3
+ 'visual-checkbox__frame': string;
4
+ 'visual-checkbox__icon': string;
5
+ 'visual-checkbox__input': string;
6
+ 'visual-checkbox__label': string;
7
+ 'visual-checkbox__visual-content': string;
8
+ 'visual-checkbox--checked': string;
9
+ 'visual-checkbox--invalid': string;
10
+ 'visual-checkbox--variant-line': string;
11
+ 'visual-checkbox--variant-rectangle': string;
12
+ };
13
+
14
+ export type ClassNames = keyof Styles;
15
+
16
+ declare const styles: Styles;
17
+
18
+ export default styles;