@fremtind/jokul 0.12.1 → 0.14.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 (418) hide show
  1. package/build/ExpandableTableRow-BJSqC_Jo.js +2 -0
  2. package/build/ExpandableTableRow-BJSqC_Jo.js.map +1 -0
  3. package/build/ExpandableTableRow-BQjBxKCX.cjs +2 -0
  4. package/build/ExpandableTableRow-BQjBxKCX.cjs.map +1 -0
  5. package/build/build-stats.html +1 -1
  6. package/build/cjs/components/description-list/DescriptionList.js +2 -0
  7. package/build/cjs/components/description-list/DescriptionList.js.map +1 -0
  8. package/build/cjs/components/description-list/index.js +2 -0
  9. package/build/cjs/components/description-list/index.js.map +1 -0
  10. package/build/cjs/components/expander/ExpandSection.js +2 -0
  11. package/build/cjs/components/expander/ExpandSection.js.map +1 -0
  12. package/build/cjs/components/expander/Expander.js +2 -0
  13. package/build/cjs/components/expander/Expander.js.map +1 -0
  14. package/build/cjs/components/expander/index.js +2 -0
  15. package/build/cjs/components/expander/index.js.map +1 -0
  16. package/build/cjs/components/feedback/Feedback.js +1 -1
  17. package/build/cjs/components/feedback/Feedback.js.map +1 -1
  18. package/build/cjs/components/feedback/feedbackContext.js.map +1 -1
  19. package/build/cjs/components/feedback/followup/Followup.js +1 -1
  20. package/build/cjs/components/feedback/followup/Followup.js.map +1 -1
  21. package/build/cjs/components/feedback/main-question/MainQuestion.js +1 -1
  22. package/build/cjs/components/feedback/main-question/MainQuestion.js.map +1 -1
  23. package/build/cjs/components/feedback/main-question/useMainQuestion.js +1 -1
  24. package/build/cjs/components/feedback/main-question/useMainQuestion.js.map +1 -1
  25. package/build/cjs/components/feedback/questions/ContactQuestion.js +1 -1
  26. package/build/cjs/components/feedback/questions/ContactQuestion.js.map +1 -1
  27. package/build/cjs/components/index.js +1 -1
  28. package/build/cjs/components/logo/Logo.js +2 -0
  29. package/build/cjs/components/logo/Logo.js.map +1 -0
  30. package/build/cjs/components/logo/LogoStamp.js +2 -0
  31. package/build/cjs/components/logo/LogoStamp.js.map +1 -0
  32. package/build/cjs/components/logo/index.js +2 -0
  33. package/build/cjs/components/logo/index.js.map +1 -0
  34. package/build/cjs/components/logo/text-paths/ForsikringLevertAvFremtind.js +2 -0
  35. package/build/cjs/components/logo/text-paths/ForsikringLevertAvFremtind.js.map +1 -0
  36. package/build/cjs/components/logo/text-paths/FraSB1ogDNB.js +2 -0
  37. package/build/cjs/components/logo/text-paths/FraSB1ogDNB.js.map +1 -0
  38. package/build/cjs/components/logo/text-paths/InnovasjonFraFremtind.js +2 -0
  39. package/build/cjs/components/logo/text-paths/InnovasjonFraFremtind.js.map +1 -0
  40. package/build/cjs/components/logo/text-paths/TeknologiFraFremtind.js +2 -0
  41. package/build/cjs/components/logo/text-paths/TeknologiFraFremtind.js.map +1 -0
  42. package/build/cjs/components/logo/text-paths/VartEgetForsikringsselskap.js +2 -0
  43. package/build/cjs/components/logo/text-paths/VartEgetForsikringsselskap.js.map +1 -0
  44. package/build/cjs/components/logo/text-paths/VartForsikringsselskap.js +2 -0
  45. package/build/cjs/components/logo/text-paths/VartForsikringsselskap.js.map +1 -0
  46. package/build/cjs/components/logo/text-paths/index.js +2 -0
  47. package/build/cjs/components/logo/text-paths/index.js.map +1 -0
  48. package/build/cjs/components/logo/useTextSpinner.js +2 -0
  49. package/build/cjs/components/logo/useTextSpinner.js.map +1 -0
  50. package/build/cjs/components/progress-bar/Countdown.js +2 -0
  51. package/build/cjs/components/progress-bar/Countdown.js.map +1 -0
  52. package/build/cjs/components/progress-bar/ProgressBar.js +2 -0
  53. package/build/cjs/components/progress-bar/ProgressBar.js.map +1 -0
  54. package/build/cjs/components/progress-bar/index.js +2 -0
  55. package/build/cjs/components/progress-bar/index.js.map +1 -0
  56. package/build/cjs/components/select/NativeSelect.js +1 -1
  57. package/build/cjs/components/select/Select.js +1 -1
  58. package/build/cjs/components/select/index.js +1 -1
  59. package/build/cjs/components/summary-table/SummaryTable.js +2 -0
  60. package/build/cjs/components/summary-table/SummaryTable.js.map +1 -0
  61. package/build/cjs/components/summary-table/SummaryTableRow.js +2 -0
  62. package/build/cjs/components/summary-table/SummaryTableRow.js.map +1 -0
  63. package/build/cjs/components/summary-table/index.js +2 -0
  64. package/build/cjs/components/summary-table/index.js.map +1 -0
  65. package/build/cjs/components/summary-table/mocks/index.js +2 -0
  66. package/build/cjs/components/summary-table/mocks/index.js.map +1 -0
  67. package/build/cjs/components/system-message/SystemMessage.js +2 -0
  68. package/build/cjs/components/system-message/SystemMessage.js.map +1 -0
  69. package/build/cjs/components/system-message/common/DismissButton.js +2 -0
  70. package/build/cjs/components/system-message/common/DismissButton.js.map +1 -0
  71. package/build/cjs/components/system-message/common/MessageIcon.js +2 -0
  72. package/build/cjs/components/system-message/common/MessageIcon.js.map +1 -0
  73. package/build/cjs/components/system-message/index.js +2 -0
  74. package/build/cjs/components/system-message/index.js.map +1 -0
  75. package/build/cjs/components/table/DataTable.js +2 -0
  76. package/build/cjs/components/table/DataTable.js.map +1 -0
  77. package/build/cjs/components/table/ExpandableTableRow.js +2 -0
  78. package/build/cjs/components/table/ExpandableTableRow.js.map +1 -0
  79. package/build/cjs/components/table/ExpandableTableRowController.js +2 -0
  80. package/build/cjs/components/table/ExpandableTableRowController.js.map +1 -0
  81. package/build/cjs/components/table/Table.js +2 -0
  82. package/build/cjs/components/table/Table.js.map +1 -0
  83. package/build/cjs/components/table/TableBody.js +2 -0
  84. package/build/cjs/components/table/TableBody.js.map +1 -0
  85. package/build/cjs/components/table/TableCaption.js +2 -0
  86. package/build/cjs/components/table/TableCaption.js.map +1 -0
  87. package/build/cjs/components/table/TableCell.js +2 -0
  88. package/build/cjs/components/table/TableCell.js.map +1 -0
  89. package/build/cjs/components/table/TableColumn.js +2 -0
  90. package/build/cjs/components/table/TableColumn.js.map +1 -0
  91. package/build/cjs/components/table/TableColumnGroup.js +2 -0
  92. package/build/cjs/components/table/TableColumnGroup.js.map +1 -0
  93. package/build/cjs/components/table/TableFooter.js +2 -0
  94. package/build/cjs/components/table/TableFooter.js.map +1 -0
  95. package/build/cjs/components/table/TableHead.js +2 -0
  96. package/build/cjs/components/table/TableHead.js.map +1 -0
  97. package/build/cjs/components/table/TableHeader.js +2 -0
  98. package/build/cjs/components/table/TableHeader.js.map +1 -0
  99. package/build/cjs/components/table/TablePagination.js +2 -0
  100. package/build/cjs/components/table/TablePagination.js.map +1 -0
  101. package/build/cjs/components/table/TableRow.js +2 -0
  102. package/build/cjs/components/table/TableRow.js.map +1 -0
  103. package/build/cjs/components/table/index.js +2 -0
  104. package/build/cjs/components/table/index.js.map +1 -0
  105. package/build/cjs/components/table/tableContext.js +2 -0
  106. package/build/cjs/components/table/tableContext.js.map +1 -0
  107. package/build/cjs/components/table/tableSectionContext.js +2 -0
  108. package/build/cjs/components/table/tableSectionContext.js.map +1 -0
  109. package/build/cjs/components/table/utils.js +2 -0
  110. package/build/cjs/components/table/utils.js.map +1 -0
  111. package/build/cjs/components/tabs/NavTab.js +2 -0
  112. package/build/cjs/components/tabs/NavTab.js.map +1 -0
  113. package/build/cjs/components/tabs/NavTabs.js +2 -0
  114. package/build/cjs/components/tabs/NavTabs.js.map +1 -0
  115. package/build/cjs/components/tabs/Tab.js +2 -0
  116. package/build/cjs/components/tabs/Tab.js.map +1 -0
  117. package/build/cjs/components/tabs/TabList.js +2 -0
  118. package/build/cjs/components/tabs/TabList.js.map +1 -0
  119. package/build/cjs/components/tabs/TabPanel.js +2 -0
  120. package/build/cjs/components/tabs/TabPanel.js.map +1 -0
  121. package/build/cjs/components/tabs/Tabs.js +2 -0
  122. package/build/cjs/components/tabs/Tabs.js.map +1 -0
  123. package/build/cjs/components/tabs/index.js +2 -0
  124. package/build/cjs/components/tabs/index.js.map +1 -0
  125. package/build/cjs/components/tabs/tabsContext.js +2 -0
  126. package/build/cjs/components/tabs/tabsContext.js.map +1 -0
  127. package/build/cjs/components/toast/Toast.js +2 -0
  128. package/build/cjs/components/toast/Toast.js.map +1 -0
  129. package/build/cjs/components/toast/ToastRegion.js +2 -0
  130. package/build/cjs/components/toast/ToastRegion.js.map +1 -0
  131. package/build/cjs/components/toast/index.js +2 -0
  132. package/build/cjs/components/toast/index.js.map +1 -0
  133. package/build/cjs/components/toast/toastContext.js +2 -0
  134. package/build/cjs/components/toast/toastContext.js.map +1 -0
  135. package/build/cjs/components/toast/types.js +2 -0
  136. package/build/cjs/components/toast/types.js.map +1 -0
  137. package/build/cjs/components/toggle-switch/ToggleSlider.js +2 -0
  138. package/build/cjs/components/toggle-switch/ToggleSlider.js.map +1 -0
  139. package/build/cjs/components/toggle-switch/ToggleSwitch.js +2 -0
  140. package/build/cjs/components/toggle-switch/ToggleSwitch.js.map +1 -0
  141. package/build/cjs/components/toggle-switch/index.js +2 -0
  142. package/build/cjs/components/toggle-switch/index.js.map +1 -0
  143. package/build/cjs/components/toggle-switch/usePillStyles.js +2 -0
  144. package/build/cjs/components/toggle-switch/usePillStyles.js.map +1 -0
  145. package/build/cjs/index.js +1 -1
  146. package/build/components/description-list/DescriptionList.d.ts +14 -0
  147. package/build/components/description-list/index.d.ts +1 -0
  148. package/build/components/expander/ExpandSection.d.ts +22 -0
  149. package/build/components/expander/Expander.d.ts +28 -0
  150. package/build/components/expander/index.d.ts +4 -0
  151. package/build/components/feedback/Feedback.d.ts +9 -1
  152. package/build/components/feedback/feedbackContext.d.ts +1 -0
  153. package/build/components/feedback/main-question/useMainQuestion.d.ts +2 -2
  154. package/build/components/feedback/types.d.ts +2 -2
  155. package/build/components/index.d.ts +10 -0
  156. package/build/components/logo/Logo.d.ts +15 -0
  157. package/build/components/logo/LogoStamp.d.ts +16 -0
  158. package/build/components/logo/index.d.ts +5 -0
  159. package/build/components/logo/text-paths/ForsikringLevertAvFremtind.d.ts +2 -0
  160. package/build/components/logo/text-paths/FraSB1ogDNB.d.ts +2 -0
  161. package/build/components/logo/text-paths/InnovasjonFraFremtind.d.ts +2 -0
  162. package/build/components/logo/text-paths/TeknologiFraFremtind.d.ts +2 -0
  163. package/build/components/logo/text-paths/VartEgetForsikringsselskap.d.ts +2 -0
  164. package/build/components/logo/text-paths/VartForsikringsselskap.d.ts +2 -0
  165. package/build/components/logo/text-paths/index.d.ts +6 -0
  166. package/build/components/logo/useTextSpinner.d.ts +5 -0
  167. package/build/components/progress-bar/Countdown.d.ts +12 -0
  168. package/build/components/progress-bar/ProgressBar.d.ts +22 -0
  169. package/build/components/progress-bar/index.d.ts +4 -0
  170. package/build/components/summary-table/SummaryTable.d.ts +9 -0
  171. package/build/components/summary-table/SummaryTableRow.d.ts +7 -0
  172. package/build/components/summary-table/index.d.ts +2 -0
  173. package/build/components/summary-table/mocks/index.d.ts +10 -0
  174. package/build/components/system-message/SystemMessage.d.ts +21 -0
  175. package/build/components/system-message/common/DismissButton.d.ts +5 -0
  176. package/build/components/system-message/common/MessageIcon.d.ts +7 -0
  177. package/build/components/system-message/index.d.ts +1 -0
  178. package/build/components/table/DataTable.d.ts +18 -0
  179. package/build/components/table/ExpandableTableRow.d.ts +17 -0
  180. package/build/components/table/ExpandableTableRowController.d.ts +10 -0
  181. package/build/components/table/Table.d.ts +11 -0
  182. package/build/components/table/TableBody.d.ts +5 -0
  183. package/build/components/table/TableCaption.d.ts +7 -0
  184. package/build/components/table/TableCell.d.ts +17 -0
  185. package/build/components/table/TableColumn.d.ts +5 -0
  186. package/build/components/table/TableColumnGroup.d.ts +5 -0
  187. package/build/components/table/TableFooter.d.ts +5 -0
  188. package/build/components/table/TableHead.d.ts +7 -0
  189. package/build/components/table/TableHeader.d.ts +22 -0
  190. package/build/components/table/TablePagination.d.ts +43 -0
  191. package/build/components/table/TableRow.d.ts +15 -0
  192. package/build/components/table/index.d.ts +34 -0
  193. package/build/components/table/tableContext.d.ts +12 -0
  194. package/build/components/table/tableSectionContext.d.ts +13 -0
  195. package/build/components/table/utils.d.ts +10 -0
  196. package/build/components/tabs/NavTab.d.ts +25 -0
  197. package/build/components/tabs/NavTabs.d.ts +9 -0
  198. package/build/components/tabs/Tab.d.ts +11 -0
  199. package/build/components/tabs/TabList.d.ts +18 -0
  200. package/build/components/tabs/TabPanel.d.ts +11 -0
  201. package/build/components/tabs/Tabs.d.ts +15 -0
  202. package/build/components/tabs/index.d.ts +6 -0
  203. package/build/components/tabs/tabsContext.d.ts +11 -0
  204. package/build/components/toast/Toast.d.ts +11 -0
  205. package/build/components/toast/ToastRegion.d.ts +7 -0
  206. package/build/components/toast/index.d.ts +2 -0
  207. package/build/components/toast/toastContext.d.ts +16 -0
  208. package/build/components/toast/types.d.ts +10 -0
  209. package/build/components/toggle-switch/ToggleSlider.d.ts +12 -0
  210. package/build/components/toggle-switch/ToggleSwitch.d.ts +32 -0
  211. package/build/components/toggle-switch/index.d.ts +2 -0
  212. package/build/components/toggle-switch/usePillStyles.d.ts +5 -0
  213. package/build/es/components/description-list/DescriptionList.js +2 -0
  214. package/build/es/components/description-list/DescriptionList.js.map +1 -0
  215. package/build/es/components/description-list/index.js +2 -0
  216. package/build/es/components/description-list/index.js.map +1 -0
  217. package/build/es/components/expander/ExpandSection.js +2 -0
  218. package/build/es/components/expander/ExpandSection.js.map +1 -0
  219. package/build/es/components/expander/Expander.js +2 -0
  220. package/build/es/components/expander/Expander.js.map +1 -0
  221. package/build/es/components/expander/index.js +2 -0
  222. package/build/es/components/expander/index.js.map +1 -0
  223. package/build/es/components/feedback/Feedback.js +1 -1
  224. package/build/es/components/feedback/Feedback.js.map +1 -1
  225. package/build/es/components/feedback/feedbackContext.js.map +1 -1
  226. package/build/es/components/feedback/followup/Followup.js +1 -1
  227. package/build/es/components/feedback/followup/Followup.js.map +1 -1
  228. package/build/es/components/feedback/main-question/MainQuestion.js +1 -1
  229. package/build/es/components/feedback/main-question/MainQuestion.js.map +1 -1
  230. package/build/es/components/feedback/main-question/useMainQuestion.js +1 -1
  231. package/build/es/components/feedback/main-question/useMainQuestion.js.map +1 -1
  232. package/build/es/components/feedback/questions/ContactQuestion.js +1 -1
  233. package/build/es/components/feedback/questions/ContactQuestion.js.map +1 -1
  234. package/build/es/components/index.js +1 -1
  235. package/build/es/components/logo/Logo.js +2 -0
  236. package/build/es/components/logo/Logo.js.map +1 -0
  237. package/build/es/components/logo/LogoStamp.js +2 -0
  238. package/build/es/components/logo/LogoStamp.js.map +1 -0
  239. package/build/es/components/logo/index.js +2 -0
  240. package/build/es/components/logo/index.js.map +1 -0
  241. package/build/es/components/logo/text-paths/ForsikringLevertAvFremtind.js +2 -0
  242. package/build/es/components/logo/text-paths/ForsikringLevertAvFremtind.js.map +1 -0
  243. package/build/es/components/logo/text-paths/FraSB1ogDNB.js +2 -0
  244. package/build/es/components/logo/text-paths/FraSB1ogDNB.js.map +1 -0
  245. package/build/es/components/logo/text-paths/InnovasjonFraFremtind.js +2 -0
  246. package/build/es/components/logo/text-paths/InnovasjonFraFremtind.js.map +1 -0
  247. package/build/es/components/logo/text-paths/TeknologiFraFremtind.js +2 -0
  248. package/build/es/components/logo/text-paths/TeknologiFraFremtind.js.map +1 -0
  249. package/build/es/components/logo/text-paths/VartEgetForsikringsselskap.js +2 -0
  250. package/build/es/components/logo/text-paths/VartEgetForsikringsselskap.js.map +1 -0
  251. package/build/es/components/logo/text-paths/VartForsikringsselskap.js +2 -0
  252. package/build/es/components/logo/text-paths/VartForsikringsselskap.js.map +1 -0
  253. package/build/es/components/logo/text-paths/index.js +2 -0
  254. package/build/es/components/logo/text-paths/index.js.map +1 -0
  255. package/build/es/components/logo/useTextSpinner.js +2 -0
  256. package/build/es/components/logo/useTextSpinner.js.map +1 -0
  257. package/build/es/components/progress-bar/Countdown.js +2 -0
  258. package/build/es/components/progress-bar/Countdown.js.map +1 -0
  259. package/build/es/components/progress-bar/ProgressBar.js +2 -0
  260. package/build/es/components/progress-bar/ProgressBar.js.map +1 -0
  261. package/build/es/components/progress-bar/index.js +2 -0
  262. package/build/es/components/progress-bar/index.js.map +1 -0
  263. package/build/es/components/select/NativeSelect.js +1 -1
  264. package/build/es/components/select/Select.js +1 -1
  265. package/build/es/components/select/index.js +1 -1
  266. package/build/es/components/summary-table/SummaryTable.js +2 -0
  267. package/build/es/components/summary-table/SummaryTable.js.map +1 -0
  268. package/build/es/components/summary-table/SummaryTableRow.js +2 -0
  269. package/build/es/components/summary-table/SummaryTableRow.js.map +1 -0
  270. package/build/es/components/summary-table/index.js +2 -0
  271. package/build/es/components/summary-table/index.js.map +1 -0
  272. package/build/es/components/summary-table/mocks/index.js +2 -0
  273. package/build/es/components/summary-table/mocks/index.js.map +1 -0
  274. package/build/es/components/system-message/SystemMessage.js +2 -0
  275. package/build/es/components/system-message/SystemMessage.js.map +1 -0
  276. package/build/es/components/system-message/common/DismissButton.js +2 -0
  277. package/build/es/components/system-message/common/DismissButton.js.map +1 -0
  278. package/build/es/components/system-message/common/MessageIcon.js +2 -0
  279. package/build/es/components/system-message/common/MessageIcon.js.map +1 -0
  280. package/build/es/components/system-message/index.js +2 -0
  281. package/build/es/components/system-message/index.js.map +1 -0
  282. package/build/es/components/table/DataTable.js +2 -0
  283. package/build/es/components/table/DataTable.js.map +1 -0
  284. package/build/es/components/table/ExpandableTableRow.js +2 -0
  285. package/build/es/components/table/ExpandableTableRow.js.map +1 -0
  286. package/build/es/components/table/ExpandableTableRowController.js +2 -0
  287. package/build/es/components/table/ExpandableTableRowController.js.map +1 -0
  288. package/build/es/components/table/Table.js +2 -0
  289. package/build/es/components/table/Table.js.map +1 -0
  290. package/build/es/components/table/TableBody.js +2 -0
  291. package/build/es/components/table/TableBody.js.map +1 -0
  292. package/build/es/components/table/TableCaption.js +2 -0
  293. package/build/es/components/table/TableCaption.js.map +1 -0
  294. package/build/es/components/table/TableCell.js +2 -0
  295. package/build/es/components/table/TableCell.js.map +1 -0
  296. package/build/es/components/table/TableColumn.js +2 -0
  297. package/build/es/components/table/TableColumn.js.map +1 -0
  298. package/build/es/components/table/TableColumnGroup.js +2 -0
  299. package/build/es/components/table/TableColumnGroup.js.map +1 -0
  300. package/build/es/components/table/TableFooter.js +2 -0
  301. package/build/es/components/table/TableFooter.js.map +1 -0
  302. package/build/es/components/table/TableHead.js +2 -0
  303. package/build/es/components/table/TableHead.js.map +1 -0
  304. package/build/es/components/table/TableHeader.js +2 -0
  305. package/build/es/components/table/TableHeader.js.map +1 -0
  306. package/build/es/components/table/TablePagination.js +2 -0
  307. package/build/es/components/table/TablePagination.js.map +1 -0
  308. package/build/es/components/table/TableRow.js +2 -0
  309. package/build/es/components/table/TableRow.js.map +1 -0
  310. package/build/es/components/table/index.js +2 -0
  311. package/build/es/components/table/index.js.map +1 -0
  312. package/build/es/components/table/tableContext.js +2 -0
  313. package/build/es/components/table/tableContext.js.map +1 -0
  314. package/build/es/components/table/tableSectionContext.js +2 -0
  315. package/build/es/components/table/tableSectionContext.js.map +1 -0
  316. package/build/es/components/table/utils.js +2 -0
  317. package/build/es/components/table/utils.js.map +1 -0
  318. package/build/es/components/tabs/NavTab.js +2 -0
  319. package/build/es/components/tabs/NavTab.js.map +1 -0
  320. package/build/es/components/tabs/NavTabs.js +2 -0
  321. package/build/es/components/tabs/NavTabs.js.map +1 -0
  322. package/build/es/components/tabs/Tab.js +2 -0
  323. package/build/es/components/tabs/Tab.js.map +1 -0
  324. package/build/es/components/tabs/TabList.js +2 -0
  325. package/build/es/components/tabs/TabList.js.map +1 -0
  326. package/build/es/components/tabs/TabPanel.js +2 -0
  327. package/build/es/components/tabs/TabPanel.js.map +1 -0
  328. package/build/es/components/tabs/Tabs.js +2 -0
  329. package/build/es/components/tabs/Tabs.js.map +1 -0
  330. package/build/es/components/tabs/index.js +2 -0
  331. package/build/es/components/tabs/index.js.map +1 -0
  332. package/build/es/components/tabs/tabsContext.js +2 -0
  333. package/build/es/components/tabs/tabsContext.js.map +1 -0
  334. package/build/es/components/toast/Toast.js +2 -0
  335. package/build/es/components/toast/Toast.js.map +1 -0
  336. package/build/es/components/toast/ToastRegion.js +2 -0
  337. package/build/es/components/toast/ToastRegion.js.map +1 -0
  338. package/build/es/components/toast/index.js +2 -0
  339. package/build/es/components/toast/index.js.map +1 -0
  340. package/build/es/components/toast/toastContext.js +2 -0
  341. package/build/es/components/toast/toastContext.js.map +1 -0
  342. package/build/es/components/toast/types.js +2 -0
  343. package/build/es/components/toast/types.js.map +1 -0
  344. package/build/es/components/toggle-switch/ToggleSlider.js +2 -0
  345. package/build/es/components/toggle-switch/ToggleSlider.js.map +1 -0
  346. package/build/es/components/toggle-switch/ToggleSwitch.js +2 -0
  347. package/build/es/components/toggle-switch/ToggleSwitch.js.map +1 -0
  348. package/build/es/components/toggle-switch/index.js +2 -0
  349. package/build/es/components/toggle-switch/index.js.map +1 -0
  350. package/build/es/components/toggle-switch/usePillStyles.js +2 -0
  351. package/build/es/components/toggle-switch/usePillStyles.js.map +1 -0
  352. package/build/es/index.js +1 -1
  353. package/package.json +26 -2
  354. package/src/components/button/styles/button.css +4 -4
  355. package/src/components/button/styles/button.min.css +1 -1
  356. package/src/components/checkbox/styles/checkbox.css +4 -4
  357. package/src/components/checkbox/styles/checkbox.min.css +1 -1
  358. package/src/components/description-list/styles/_index.scss +1 -0
  359. package/src/components/description-list/styles/description-list.css +42 -0
  360. package/src/components/description-list/styles/description-list.min.css +1 -0
  361. package/src/components/description-list/styles/description-list.scss +56 -0
  362. package/src/components/expander/styles/_index.scss +1 -0
  363. package/src/components/expander/styles/expander.css +80 -0
  364. package/src/components/expander/styles/expander.min.css +1 -0
  365. package/src/components/expander/styles/expander.scss +84 -0
  366. package/src/components/feedback/styles/feedback.css +2 -2
  367. package/src/components/feedback/styles/feedback.min.css +1 -1
  368. package/src/components/input-group/styles/_field-group.scss +5 -0
  369. package/src/components/input-group/styles/_index.scss +1 -0
  370. package/src/components/input-group/styles/_labels.scss +142 -0
  371. package/src/components/input-group/styles/input-group.css +189 -0
  372. package/src/components/input-group/styles/input-group.min.css +1 -0
  373. package/src/components/input-group/styles/input-group.scss +9 -0
  374. package/src/components/loader/styles/loader.css +6 -6
  375. package/src/components/loader/styles/loader.min.css +1 -1
  376. package/src/components/loader/styles/skeleton-loader.css +5 -5
  377. package/src/components/loader/styles/skeleton-loader.min.css +1 -1
  378. package/src/components/logo/styles/_index.scss +1 -0
  379. package/src/components/logo/styles/logo.css +92 -0
  380. package/src/components/logo/styles/logo.min.css +1 -0
  381. package/src/components/logo/styles/logo.scss +89 -0
  382. package/src/components/message/styles/message.css +2 -2
  383. package/src/components/message/styles/message.min.css +1 -1
  384. package/src/components/progress-bar/styles/_index.scss +1 -0
  385. package/src/components/progress-bar/styles/progress-bar.css +51 -0
  386. package/src/components/progress-bar/styles/progress-bar.min.css +1 -0
  387. package/src/components/progress-bar/styles/progress-bar.scss +55 -0
  388. package/src/components/radio-button/styles/radio-button.css +2 -2
  389. package/src/components/radio-button/styles/radio-button.min.css +1 -1
  390. package/src/components/summary-table/styles/_index.scss +1 -0
  391. package/src/components/summary-table/styles/summary-table.css +61 -0
  392. package/src/components/summary-table/styles/summary-table.min.css +1 -0
  393. package/src/components/summary-table/styles/summary-table.scss +56 -0
  394. package/src/components/system-message/styles/_index.scss +1 -0
  395. package/src/components/system-message/styles/system-message.css +179 -0
  396. package/src/components/system-message/styles/system-message.min.css +1 -0
  397. package/src/components/system-message/styles/system-message.scss +158 -0
  398. package/src/components/table/styles/_index.scss +1 -0
  399. package/src/components/table/styles/_table-caption.scss +7 -0
  400. package/src/components/table/styles/_table-cell.scss +83 -0
  401. package/src/components/table/styles/_table-head.scss +35 -0
  402. package/src/components/table/styles/_table-header.scss +76 -0
  403. package/src/components/table/styles/_table-pagination.scss +121 -0
  404. package/src/components/table/styles/_table-row.scss +183 -0
  405. package/src/components/tabs/styles/_index.scss +1 -0
  406. package/src/components/tabs/styles/tabs.css +116 -0
  407. package/src/components/tabs/styles/tabs.min.css +1 -0
  408. package/src/components/tabs/styles/tabs.scss +89 -0
  409. package/src/components/toast/styles/_index.scss +1 -0
  410. package/src/components/toast/styles/toast.css +222 -0
  411. package/src/components/toast/styles/toast.min.css +1 -0
  412. package/src/components/toast/styles/toast.scss +214 -0
  413. package/src/components/toggle-switch/styles/_index.scss +1 -0
  414. package/src/components/toggle-switch/styles/_toggle-slider.scss +132 -0
  415. package/build/NativeSelect-CNcZmpDZ.cjs +0 -2
  416. package/build/NativeSelect-CNcZmpDZ.cjs.map +0 -1
  417. package/build/NativeSelect-CfNZEQF0.js +0 -2
  418. package/build/NativeSelect-CfNZEQF0.js.map +0 -1
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ import { Density, WithChildren } from '../..';
3
+ type TabsContext = {
4
+ density?: Density;
5
+ };
6
+ export declare const useTabsContext: () => TabsContext;
7
+ interface Props extends WithChildren {
8
+ state: TabsContext;
9
+ }
10
+ export declare const TabsContextProvider: React.FC<Props>;
11
+ export {};
@@ -0,0 +1,11 @@
1
+ import { AriaToastProps } from '@react-aria/toast';
2
+ import { QueuedToast, ToastState } from '@react-stately/toast';
3
+ import { default as React } from 'react';
4
+ import { ToastContent, ToastOptions } from './types';
5
+ interface ToastProps<T extends ToastContent> extends AriaToastProps<T> {
6
+ className?: string;
7
+ state: ToastState<T>;
8
+ toast: QueuedToast<T> & ToastOptions;
9
+ }
10
+ export declare function Toast<T extends ToastContent>({ className, state, ...props }: ToastProps<T>): React.JSX.Element;
11
+ export {};
@@ -0,0 +1,7 @@
1
+ import { ToastQueue } from '@react-stately/toast';
2
+ import { default as React } from 'react';
3
+ import { ToastContent } from './types';
4
+ export declare function ToastRegion({ queue, placement }: {
5
+ queue: ToastQueue<ToastContent>;
6
+ placement: "center" | "left";
7
+ }): React.ReactPortal | null;
@@ -0,0 +1,2 @@
1
+ export { ToastProvider, useToast } from './toastContext';
2
+ export { type ToastContent } from './types';
@@ -0,0 +1,16 @@
1
+ import { FC } from 'react';
2
+ import { WithChildren } from '../..';
3
+ import { ToastContent, ToastOptions } from './types';
4
+ interface ToastContextProviderProps extends WithChildren {
5
+ maxVisibleToasts?: number;
6
+ /**
7
+ * @default "center"
8
+ */
9
+ placement?: "center" | "left";
10
+ }
11
+ type ToastContext = {
12
+ add: (toast: ToastContent, options?: ToastOptions) => string;
13
+ };
14
+ export declare const useToast: () => ToastContext;
15
+ export declare const ToastProvider: FC<ToastContextProviderProps>;
16
+ export {};
@@ -0,0 +1,10 @@
1
+ import { ToastOptions as StatelyToastOptions } from '@react-stately/toast';
2
+ import { ReactNode } from 'react';
3
+ export type ToastContent = {
4
+ content: ReactNode;
5
+ title?: string;
6
+ } | string;
7
+ export type ToastOptions = Omit<StatelyToastOptions, "timeout"> & {
8
+ variant?: "info" | "success" | "warning" | "error";
9
+ timeout?: number | null | "off";
10
+ };
@@ -0,0 +1,12 @@
1
+ import { FC } from 'react';
2
+ import { Density, WithChildren } from '../..';
3
+ interface Props extends WithChildren {
4
+ labels: [string, string];
5
+ onToggle: (value: string) => void;
6
+ defaultValue?: string;
7
+ className?: string;
8
+ hideLegend?: boolean;
9
+ density?: Density;
10
+ }
11
+ export declare const ToggleSlider: FC<Props>;
12
+ export {};
@@ -0,0 +1,32 @@
1
+ import { default as React, ButtonHTMLAttributes } from 'react';
2
+ import { Density } from '../..';
3
+ import { SwipeChangeHandler } from '../../hooks';
4
+ export type ToggleChangeHandler<T extends HTMLElement> = SwipeChangeHandler<T>;
5
+ export type ToggleProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "onChange"> & {
6
+ density?: Density;
7
+ /**
8
+ * Handler for å håndtere toggling av knappen. Tar inn en boolean som indikerer om knappen er er togglet på
9
+ * eller ikke, samt en MouseEvent eller en PointerEvent avhengig av om togglingen skjedde via klikk eller swipe.
10
+ * @example
11
+ * ```js
12
+ * function handleChange(event, pressed) {
13
+ * console.log(`ToggleSwitch er ${pressed ? "på" : "av"}`);
14
+ * }
15
+ * ```
16
+ */
17
+ onChange?: ToggleChangeHandler<HTMLButtonElement>;
18
+ };
19
+ export declare const ToggleSwitch: React.ForwardRefExoticComponent<Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onChange"> & {
20
+ density?: Density | undefined;
21
+ /**
22
+ * Handler for å håndtere toggling av knappen. Tar inn en boolean som indikerer om knappen er er togglet på
23
+ * eller ikke, samt en MouseEvent eller en PointerEvent avhengig av om togglingen skjedde via klikk eller swipe.
24
+ * @example
25
+ * ```js
26
+ * function handleChange(event, pressed) {
27
+ * console.log(`ToggleSwitch er ${pressed ? "på" : "av"}`);
28
+ * }
29
+ * ```
30
+ */
31
+ onChange?: ToggleChangeHandler<HTMLButtonElement> | undefined;
32
+ } & React.RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,2 @@
1
+ export { ToggleSwitch, type ToggleChangeHandler } from './ToggleSwitch';
2
+ export { ToggleSlider } from './ToggleSlider';
@@ -0,0 +1,5 @@
1
+ import { RefObject } from 'react';
2
+ export declare const usePillStyles: (ref: RefObject<HTMLLabelElement>, shouldTransform: boolean, dependencies: unknown[]) => {
3
+ width: number;
4
+ transform: string;
5
+ };
@@ -0,0 +1,2 @@
1
+ import{jsx as s}from"react/jsx-runtime";import{c as i}from"../../../clsx-BeLtu-UY.js";const e=({children:e,className:c,...l})=>s("dl",{...l,className:i("jkl-description-list",c),children:e}),c=({children:e,className:c,...l})=>s("dt",{...l,className:i("jkl-description-list__term",c),children:e}),l=({children:e,className:c,...l})=>s("dd",{...l,className:i("jkl-description-list__detail",c),children:e});export{l as DescriptionDetail,e as DescriptionList,c as DescriptionTerm};
2
+ //# sourceMappingURL=DescriptionList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DescriptionList.js","sources":["../../../../src/components/description-list/DescriptionList.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { FC } from \"react\";\nimport { WithChildren } from \"../..\";\n\nexport interface DescriptionListProps extends WithChildren {\n className?: string;\n}\n\nexport const DescriptionList: FC<DescriptionListProps> = ({ children, className, ...rest }) => {\n return (\n <dl {...rest} className={clsx(\"jkl-description-list\", className)}>\n {children}\n </dl>\n );\n};\n\nexport interface DescriptionTermProps extends WithChildren {\n className?: string;\n}\n\nexport const DescriptionTerm: FC<DescriptionTermProps> = ({ children, className, ...rest }) => {\n return (\n <dt {...rest} className={clsx(\"jkl-description-list__term\", className)}>\n {children}\n </dt>\n );\n};\n\nexport interface DescriptionDetailProps extends WithChildren {\n className?: string;\n}\n\nexport const DescriptionDetail: FC<DescriptionDetailProps> = ({ children, className, ...rest }) => {\n return (\n <dd {...rest} className={clsx(\"jkl-description-list__detail\", className)}>\n {children}\n </dd>\n );\n};\n"],"names":["DescriptionList","children","className","rest","jsx","clsx","DescriptionTerm","DescriptionDetail"],"mappings":"sFAQO,MAAMA,EAA4C,EAAGC,SAAAA,EAAUC,UAAAA,KAAcC,KAE5EC,EAAC,SAAOD,EAAMD,UAAWG,EAAK,uBAAwBH,GACjDD,SAAAA,IASAK,EAA4C,EAAGL,SAAAA,EAAUC,UAAAA,KAAcC,KAE5EC,EAAC,SAAOD,EAAMD,UAAWG,EAAK,6BAA8BH,GACvDD,SAAAA,IASAM,EAAgD,EAAGN,SAAAA,EAAUC,UAAAA,KAAcC,KAEhFC,EAAC,SAAOD,EAAMD,UAAWG,EAAK,+BAAgCH,GACzDD,SAAAA"}
@@ -0,0 +1,2 @@
1
+ import{DescriptionDetail as i,DescriptionList as s,DescriptionTerm as t}from"./DescriptionList.js";export{i as DescriptionDetail,s as DescriptionList,t as DescriptionTerm};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{jsxs as e,jsx as s}from"react/jsx-runtime";import{c as t}from"../../../clsx-BeLtu-UY.js";import{useState as a,useEffect as n}from"react";import{useAnimatedDetails as i}from"../../hooks/useAnimatedDetails/useAnimatedDetails.js";import"../../hooks/useScreen/useScreen.js";import"../../hooks/useId/useId.js";import{E as o}from"../../../ExpandableTableRow-BJSqC_Jo.js";const r=({children:r,className:d,expandButtonProps:c,isExpanded:m=!1,density:l,onClick:p,title:u,useAnimatedHeightOptions:x,...f})=>{const[j,k]=a(m);n((()=>{k(m)}),[m]);const{detailsRef:h,summaryRef:E,contentRef:_,onSummaryClick:y}=i({onOpenChange:(e,s)=>{k(e),p&&p(s,e)},isExpanded:m});return e("details",{"data-testid":"jkl-expand-section",className:t("jkl-expand-section",d),...f,ref:h,children:[s(o,{as:"summary",...c,density:l,isExpanded:j,onClick:y,ref:E,children:u}),s("div",{"data-testid":"jkl-expand-section__content-wrapper",className:"jkl-expand-section__content-wrapper",ref:_,children:s("div",{className:"jkl-expand-section__content",children:r})})]})};export{r as ExpandSection};
2
+ //# sourceMappingURL=ExpandSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpandSection.js","sources":["../../../../src/components/expander/ExpandSection.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { ReactNode, useEffect, useState } from \"react\";\nimport { Density } from \"../..\";\nimport { UseAnimatedHeightOptions, useAnimatedDetails } from \"../../hooks\";\nimport type { ExpanderProps } from \"./Expander\";\nimport { Expander } from \"./Expander\";\n\nexport interface ExpandSectionProps {\n /**\n * Innholdet som skal kunne ekspanderes og skjules.\n * Om du ikke trenger at komponenten tar seg av visning og skjuling av\n * innholdet skal du bruke `ExpandButton` direkte. Det sparer deg for\n * å laste inn unødvendige avhengigheter.\n */\n children: ReactNode;\n title: string;\n className?: string;\n density?: Density;\n onClick?: (e: React.MouseEvent<HTMLElement>, isExpanded: boolean) => void;\n expandButtonProps?: Omit<ExpanderProps, \"id\" | \"isExpanded\" | \"onClick\" | \"hideLabel\">;\n useAnimatedHeightOptions?: UseAnimatedHeightOptions;\n /** Om du ønsker å styre komponenten utenfra */\n isExpanded?: boolean;\n}\n\nexport const ExpandSection = ({\n children,\n className,\n expandButtonProps,\n isExpanded = false,\n density,\n onClick,\n title,\n useAnimatedHeightOptions,\n ...rest\n}: ExpandSectionProps): JSX.Element => {\n const [expanded, setIsExpanded] = useState(isExpanded);\n\n useEffect(() => {\n setIsExpanded(isExpanded);\n }, [isExpanded]);\n\n const { detailsRef, summaryRef, contentRef, onSummaryClick } = useAnimatedDetails({\n onOpenChange: (open, e) => {\n setIsExpanded(open);\n if (onClick) {\n onClick(e, open);\n }\n },\n isExpanded,\n });\n\n return (\n <details\n data-testid={\"jkl-expand-section\"}\n className={clsx(\"jkl-expand-section\", className)}\n {...rest}\n ref={detailsRef}\n >\n <Expander\n as={\"summary\"}\n {...expandButtonProps}\n density={density}\n isExpanded={expanded}\n onClick={onSummaryClick}\n ref={summaryRef}\n >\n {title}\n </Expander>\n <div\n data-testid=\"jkl-expand-section__content-wrapper\"\n className=\"jkl-expand-section__content-wrapper\"\n ref={contentRef}\n >\n <div className=\"jkl-expand-section__content\">{children}</div>\n </div>\n </details>\n );\n};\n"],"names":["ExpandSection","children","className","expandButtonProps","isExpanded","density","onClick","title","useAnimatedHeightOptions","rest","expanded","setIsExpanded","useState","useEffect","detailsRef","summaryRef","contentRef","onSummaryClick","useAnimatedDetails","onOpenChange","open","e","jsxs","clsx","ref","jsx","Expander","as"],"mappings":"oXAyBO,MAAMA,EAAgB,EACzBC,SAAAA,EACAC,UAAAA,EACAC,kBAAAA,EACAC,WAAAA,GAAa,EACbC,QAAAA,EACAC,QAAAA,EACAC,MAAAA,EACAC,yBAAAA,KACGC,MAEH,MAAOC,EAAUC,GAAiBC,EAASR,GAE3CS,GAAU,KACNF,EAAcP,EAAU,GACzB,CAACA,IAEE,MAAEU,WAAAA,EAAYC,WAAAA,EAAYC,WAAAA,EAAYC,eAAAA,GAAmBC,EAAmB,CAC9EC,aAAc,CAACC,EAAMC,KACjBV,EAAcS,GACVd,GACAA,EAAQe,EAAGD,EAAI,EAGvBhB,WAAAA,IAIA,OAAAkB,EAAC,UAAA,CACG,cAAa,qBACbpB,UAAWqB,EAAK,qBAAsBrB,MAClCO,EACJe,IAAKV,EAELb,SAAA,CAAAwB,EAACC,EAAA,CACGC,GAAI,aACAxB,EACJE,QAAAA,EACAD,WAAYM,EACZJ,QAASW,EACTO,IAAKT,EAEJd,SAAAM,IAELkB,EAAC,MAAA,CACG,cAAY,sCACZvB,UAAU,sCACVsB,IAAKR,EAELf,SAACwB,EAAA,MAAA,CAAIvB,UAAU,8BAA+BD,SAAAA,QAClD"}
@@ -0,0 +1,2 @@
1
+ import"react/jsx-runtime";import"../../../clsx-BeLtu-UY.js";import"react";import"../../hooks/useScreen/useScreen.js";import"../../hooks/useId/useId.js";import"../icon/Icon.js";import"../icon/icons/animated/ArrowVerticalAnimated.js";import"../icon/icons/animated/ArrowHorizontalAnimated.js";import"../icon/icons/animated/PlusRemoveAnimated.js";import"../icon/icons/ArrowDownIcon.js";import"../icon/icons/ArrowLeftIcon.js";import"../icon/icons/ArrowNorthEastIcon.js";import"../icon/icons/ArrowRightIcon.js";import"../icon/icons/ArrowUpIcon.js";import"../icon/icons/CalendarIcon.js";import"../icon/icons/CheckIcon.js";import"../icon/icons/ChevronDownIcon.js";import"../icon/icons/ChevronLeftIcon.js";import"../icon/icons/ChevronRightIcon.js";import"../icon/icons/ChevronUpIcon.js";import"../icon/icons/CloseIcon.js";import"../icon/icons/CopyIcon.js";import"../icon/icons/DotsIcon.js";import"../icon/icons/DragIcon.js";import"../icon/icons/ErrorIcon.js";import"../icon/icons/GreenCheckIcon.js";import"../icon/icons/HamburgerIcon.js";import"../icon/icons/InfoIcon.js";import"../icon/icons/LinkIcon.js";import"../icon/icons/PlusIcon.js";import"../icon/icons/QuestionIcon.js";import"../icon/icons/RedCrossIcon.js";import"../icon/icons/SearchIcon.js";import"../icon/icons/SuccessIcon.js";import"../icon/icons/WarningIcon.js";import"../icon/icons/MinusIcon.js";import"../icon/icons/ThumbDownIcon.js";import"../icon/icons/ThumbUpIcon.js";import"../icon/icons/TrashCanIcon.js";import"../icon/icons/PenIcon.js";import"../button/Button.js";import"../card/Card.js";import"../card/CardImage.js";import"../card/NavCard.js";import"../checkbox/Checkbox.js";import"../combobox/Combobox.js";import"../cookie-consent/CookieConsentContext.js";import"react-dom";import"../modal/Modal.js";import"react-a11y-dialog";import"../list/List.js";import"../list/ListItem.js";import"../datepicker/DatePicker.js";import"../feedback/feedbackContext.js";import"../message/Message.js";import"../message/FormErrorMessage.js";import"../tooltip/Tooltip.js";import"../tooltip/TooltipContent.js";import"../tooltip/TooltipTrigger.js";import"../input-group/InputGroup.js";import"../feedback/followup/followupContext.js";import"../feedback/main-question/mainQuestionContext.js";import"../radio-button/RadioButton.js";import"../radio-button/radioGroupContext.js";import"../radio-button/BaseRadioButton.js";import"../text-input/BaseTextArea.js";import"../text-input/BaseTextInput.js";import"../text-input/TextArea.js";import"../text-input/TextInput.js";import"../../utilities/polymorphism/SlotComponent.js";import{E as o}from"../../../ExpandableTableRow-BJSqC_Jo.js";import"../icon-button/IconButton.js";import"../link/Link.js";import"../link/NavLink.js";import"../link-list/LinkList.js";import"../logo/text-paths/ForsikringLevertAvFremtind.js";import"../logo/text-paths/FraSB1ogDNB.js";import"../logo/text-paths/InnovasjonFraFremtind.js";import"../logo/text-paths/TeknologiFraFremtind.js";import"../logo/text-paths/VartEgetForsikringsselskap.js";import"../logo/text-paths/VartForsikringsselskap.js";import"../popover/Popover.js";import"../system-message/SystemMessage.js";import"../table/DataTable.js";import"../table/Table.js";import"../table/TableBody.js";import"../table/TableCaption.js";import"../table/TableCell.js";import"../table/TableColumn.js";import"../table/TableColumnGroup.js";import"../table/tableContext.js";import"../table/tableSectionContext.js";import"../table/TableFooter.js";import"../table/TableHead.js";import"../table/TableHeader.js";import"../table/TableRow.js";import"../tabs/NavTab.js";import"../tabs/tabsContext.js";import"../tabs/Tab.js";import"../tag/Tag.js";import"../toast/toastContext.js";import"../toggle-switch/ToggleSwitch.js";import"../ScreenReaderOnly.js";export{o as Expander};
2
+ //# sourceMappingURL=Expander.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Expander.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{E as a}from"../../../ExpandableTableRow-BJSqC_Jo.js";import{ExpandSection as o}from"./ExpandSection.js";export{o as ExpandSection,a as Expander};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
1
- import{jsx as o,jsxs as i}from"react/jsx-runtime";import{useState as t}from"react";import{FeedbackContextProvider as n}from"./feedbackContext.js";import{Followup as s}from"./followup/Followup.js";import{MainQuestion as c}from"./main-question/MainQuestion.js";import"../checkbox/Checkbox.js";import"../../hooks/useScreen/useScreen.js";import"../../hooks/useId/useId.js";import"../tooltip/Tooltip.js";import"../tooltip/TooltipContent.js";import"../tooltip/TooltipTrigger.js";import"../icon/Icon.js";import"../icon/icons/animated/ArrowVerticalAnimated.js";import"../icon/icons/animated/ArrowHorizontalAnimated.js";import"../icon/icons/animated/PlusRemoveAnimated.js";import"../icon/icons/ArrowDownIcon.js";import"../icon/icons/ArrowLeftIcon.js";import"../icon/icons/ArrowNorthEastIcon.js";import"../icon/icons/ArrowRightIcon.js";import"../icon/icons/ArrowUpIcon.js";import"../icon/icons/CalendarIcon.js";import"../icon/icons/CheckIcon.js";import"../icon/icons/ChevronDownIcon.js";import"../icon/icons/ChevronLeftIcon.js";import"../icon/icons/ChevronRightIcon.js";import"../icon/icons/ChevronUpIcon.js";import"../icon/icons/CloseIcon.js";import"../icon/icons/CopyIcon.js";import"../icon/icons/DotsIcon.js";import"../icon/icons/DragIcon.js";import"../icon/icons/ErrorIcon.js";import"../icon/icons/GreenCheckIcon.js";import"../icon/icons/HamburgerIcon.js";import"../icon/icons/InfoIcon.js";import"../icon/icons/LinkIcon.js";import"../icon/icons/PlusIcon.js";import"../icon/icons/QuestionIcon.js";import"../icon/icons/RedCrossIcon.js";import"../icon/icons/SearchIcon.js";import"../icon/icons/SuccessIcon.js";import"../icon/icons/WarningIcon.js";import"../icon/icons/MinusIcon.js";import"../icon/icons/ThumbDownIcon.js";import"../icon/icons/ThumbUpIcon.js";import"../icon/icons/TrashCanIcon.js";import"../icon/icons/PenIcon.js";import"../input-group/InputGroup.js";import"./followup/followupContext.js";import"./main-question/mainQuestionContext.js";import"../radio-button/RadioButton.js";import"../radio-button/radioGroupContext.js";import"../radio-button/BaseRadioButton.js";import"../text-input/BaseTextArea.js";import"../text-input/BaseTextInput.js";import"../text-input/TextArea.js";import"../text-input/TextInput.js";import{ContactQuestion as r}from"./questions/ContactQuestion.js";const e=({className:e,followup:p,contactQuestion:m,counter:a,...j})=>{const[u,l]=t(!1),[d,I]=t(!1),[b,C]=t(!1),[h,w]=t(!1);return o("div",{className:`jkl-feedback ${e||""}`,"data-testid":"feedback",children:i(n,{value:{feedbackSubmitted:u,followupStarted:d,followupSubmitted:b,contactSubmitted:h,counter:a,setFeedbackSubmitted:l,setFollowupStarted:I,setFollowupSubmitted:C,setContactSubmitted:w},children:[!d&&o(c,{...j}),u&&!h&&p&&o(s,{...p}),m&&o("div",{"aria-live":"polite",children:(!p&&u||b)&&o(r,{...m})})]})})};export{e as Feedback};
1
+ import{jsx as o,jsxs as i}from"react/jsx-runtime";import{useState as t}from"react";import{FeedbackContextProvider as n}from"./feedbackContext.js";import{Followup as s}from"./followup/Followup.js";import{MainQuestion as c}from"./main-question/MainQuestion.js";import"../checkbox/Checkbox.js";import"../../hooks/useScreen/useScreen.js";import"../../hooks/useId/useId.js";import"../tooltip/Tooltip.js";import"../tooltip/TooltipContent.js";import"../tooltip/TooltipTrigger.js";import"../icon/Icon.js";import"../icon/icons/animated/ArrowVerticalAnimated.js";import"../icon/icons/animated/ArrowHorizontalAnimated.js";import"../icon/icons/animated/PlusRemoveAnimated.js";import"../icon/icons/ArrowDownIcon.js";import"../icon/icons/ArrowLeftIcon.js";import"../icon/icons/ArrowNorthEastIcon.js";import"../icon/icons/ArrowRightIcon.js";import"../icon/icons/ArrowUpIcon.js";import"../icon/icons/CalendarIcon.js";import"../icon/icons/CheckIcon.js";import"../icon/icons/ChevronDownIcon.js";import"../icon/icons/ChevronLeftIcon.js";import"../icon/icons/ChevronRightIcon.js";import"../icon/icons/ChevronUpIcon.js";import"../icon/icons/CloseIcon.js";import"../icon/icons/CopyIcon.js";import"../icon/icons/DotsIcon.js";import"../icon/icons/DragIcon.js";import"../icon/icons/ErrorIcon.js";import"../icon/icons/GreenCheckIcon.js";import"../icon/icons/HamburgerIcon.js";import"../icon/icons/InfoIcon.js";import"../icon/icons/LinkIcon.js";import"../icon/icons/PlusIcon.js";import"../icon/icons/QuestionIcon.js";import"../icon/icons/RedCrossIcon.js";import"../icon/icons/SearchIcon.js";import"../icon/icons/SuccessIcon.js";import"../icon/icons/WarningIcon.js";import"../icon/icons/MinusIcon.js";import"../icon/icons/ThumbDownIcon.js";import"../icon/icons/ThumbUpIcon.js";import"../icon/icons/TrashCanIcon.js";import"../icon/icons/PenIcon.js";import"../input-group/InputGroup.js";import"./followup/followupContext.js";import"./main-question/mainQuestionContext.js";import"../radio-button/RadioButton.js";import"../radio-button/radioGroupContext.js";import"../radio-button/BaseRadioButton.js";import"../text-input/BaseTextArea.js";import"../text-input/BaseTextInput.js";import"../text-input/TextArea.js";import"../text-input/TextInput.js";import{ContactQuestion as r}from"./questions/ContactQuestion.js";const e=({className:e,followup:p,contactQuestion:m,counter:a,landmarkLabel:j,...u})=>{const[l,d]=t(!1),[I,b]=t(!1),[C,h]=t(!1),[w,f]=t(!1);return o("div",{className:`jkl-feedback ${e||""}`,"data-testid":"feedback",children:i(n,{value:{feedbackSubmitted:l,followupStarted:I,followupSubmitted:C,contactSubmitted:w,counter:a,landmarkLabel:j,setFeedbackSubmitted:d,setFollowupStarted:b,setFollowupSubmitted:h,setContactSubmitted:f},children:[!I&&o(c,{...u}),l&&!w&&p&&o(s,{...p}),m&&o("div",{"aria-live":"polite",children:(!p&&l||C)&&o(r,{...m})})]})})};export{e as Feedback};
2
2
  //# sourceMappingURL=Feedback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Feedback.js","sources":["../../../../src/components/feedback/Feedback.tsx"],"sourcesContent":["import React, { ReactElement, ReactNode, useState, ComponentProps } from \"react\";\nimport { BaseTextAreaProps } from \"../text-input\";\nimport { FeedbackContextProvider } from \"./feedbackContext\";\nimport { Followup } from \"./followup/Followup\";\nimport { MainQuestion } from \"./main-question/MainQuestion\";\nimport { ContactQuestion } from \"./questions\";\nimport { FeedbackOption, FeedbackType } from \"./types\";\n\ntype FollowupProps = ComponentProps<typeof Followup>;\ntype ContactQuestionProps = ComponentProps<typeof ContactQuestion>;\n\ntype Props = {\n className?: string;\n /** Velg typen alternativer, Smiley eller RadioButtons. */\n type: \"radio\" | \"smiley\";\n /** Spørsmålet som stilles til brukeren */\n label: string;\n /** Hjelpetekst til hovedspørsmålet */\n helpLabel?: string;\n /** Svaralternativer til spørsmålet */\n options: FeedbackOption[];\n /** Dersom du vil stille et åpent spørsmål i tillegg kan du sette denne til en truthy verdi */\n addOnQuestion?:\n | {\n /** Spørsmålet du vil stille */\n label?: string;\n /** Eventuell hjelpetekst. Om du ikke spesifiserer en vil det vises en påminnelse om å ikke skrive inn personling informasjon. */\n helpLabel?: string;\n }\n | boolean;\n /** Lar deg tilpasse meldingen som kommer når brukeren sender inn tilbakemeldingen. */\n successMessage?: {\n title: string;\n children: ReactNode;\n };\n /**\n * Funksjon for å håndtere innsending av tilbakemelding\n * @param value Verdien av tilbakemeldingen. Dette er et objekt med følgende egenskaper:\n * - `feedbackValue`: Selve verdien av tilbakemeldingen (format varierer etter spørsmålstype)\n * - `intentionalSubmit`: Er `true` hvis brukeren aktivt sendte inn skjemaet, `false` hvis skjemaet ble sendt inn automatisk\n * - `message`: Eventuell utfyllende melding fra bruker. Blir kun sendt inn ved aktiv innsending\n */\n onSubmit: (value: FeedbackType) => void;\n\n followup?: FollowupProps;\n contactQuestion?: ContactQuestionProps;\n} & Pick<BaseTextAreaProps, \"counter\">;\n\nexport const Feedback = ({\n className,\n followup,\n contactQuestion,\n counter,\n ...mainQuestionProps\n}: Props): ReactElement => {\n const [feedbackSubmitted, setFeedbackSubmitted] = useState(false);\n const [followupStarted, setFollowupStarted] = useState(false);\n const [followupSubmitted, setFollowupSubmitted] = useState(false);\n const [contactSubmitted, setContactSubmitted] = useState(false);\n\n return (\n <div className={`jkl-feedback ${className || \"\"}`} data-testid=\"feedback\">\n <FeedbackContextProvider\n value={{\n feedbackSubmitted,\n followupStarted,\n followupSubmitted,\n contactSubmitted,\n counter,\n setFeedbackSubmitted,\n setFollowupStarted,\n setFollowupSubmitted,\n setContactSubmitted,\n }}\n >\n {!followupStarted && <MainQuestion {...mainQuestionProps} />}\n {feedbackSubmitted && !contactSubmitted && followup && <Followup {...followup} />}\n {contactQuestion && (\n <div aria-live=\"polite\">\n {/* Show contact question after followup, or after feedback if no followup */}\n {((!followup && feedbackSubmitted) || followupSubmitted) && (\n <ContactQuestion {...contactQuestion} />\n )}\n </div>\n )}\n </FeedbackContextProvider>\n </div>\n );\n};\n"],"names":["Feedback","className","followup","contactQuestion","counter","mainQuestionProps","feedbackSubmitted","setFeedbackSubmitted","useState","followupStarted","setFollowupStarted","followupSubmitted","setFollowupSubmitted","contactSubmitted","setContactSubmitted","jsx","children","jsxs","FeedbackContextProvider","value","MainQuestion","Followup","ContactQuestion"],"mappings":"wuEAgDO,MAAMA,EAAW,EACpBC,UAAAA,EACAC,SAAAA,EACAC,gBAAAA,EACAC,QAAAA,KACGC,MAEG,MAACC,EAAmBC,GAAwBC,GAAS,IACpDC,EAAiBC,GAAsBF,GAAS,IAChDG,EAAmBC,GAAwBJ,GAAS,IACpDK,EAAkBC,GAAuBN,GAAS,GAGrD,OAAAO,EAAC,OAAId,UAAW,gBAAgBA,GAAa,KAAM,cAAY,WAC3De,SAAAC,EAACC,EAAA,CACGC,MAAO,CACHb,kBAAAA,EACAG,gBAAAA,EACAE,kBAAAA,EACAE,iBAAAA,EACAT,QAAAA,EACAG,qBAAAA,EACAG,mBAAAA,EACAE,qBAAAA,EACAE,oBAAAA,GAGHE,SAAA,EAACP,GAAmBM,EAACK,EAAc,IAAGf,IACtCC,IAAsBO,GAAoBX,GAAaa,EAAAM,EAAA,IAAanB,IACpEC,GACGY,EAAC,MAAI,CAAA,YAAU,SAERC,WAACd,GAAYI,GAAsBK,IAClCI,EAACO,EAAiB,IAAGnB,UAKzC"}
1
+ {"version":3,"file":"Feedback.js","sources":["../../../../src/components/feedback/Feedback.tsx"],"sourcesContent":["import React, { ReactElement, ReactNode, useState, ComponentProps } from \"react\";\nimport { BaseTextAreaProps } from \"../text-input\";\nimport { FeedbackContextProvider } from \"./feedbackContext\";\nimport { Followup } from \"./followup/Followup\";\nimport { MainQuestion } from \"./main-question/MainQuestion\";\nimport { ContactQuestion } from \"./questions\";\nimport { FeedbackOption, FeedbackType } from \"./types\";\n\ntype FollowupProps = ComponentProps<typeof Followup>;\ntype ContactQuestionProps = ComponentProps<typeof ContactQuestion>;\n\ntype Props = {\n className?: string;\n /** Velg typen alternativer, Smiley eller RadioButtons. */\n type: \"radio\" | \"smiley\";\n /** Spørsmålet som stilles til brukeren */\n label: string;\n /** Hjelpetekst til hovedspørsmålet */\n helpLabel?: string;\n /** Svaralternativer til spørsmålet */\n options: FeedbackOption[];\n /** Dersom du vil stille et åpent spørsmål i tillegg kan du sette denne til en truthy verdi */\n addOnQuestion?:\n | {\n /** Spørsmålet du vil stille */\n label?: string;\n /** Eventuell hjelpetekst. Om du ikke spesifiserer en vil det vises en påminnelse om å ikke skrive inn personling informasjon. */\n helpLabel?: string;\n }\n | boolean;\n /** Lar deg tilpasse meldingen som kommer når brukeren sender inn tilbakemeldingen. */\n successMessage?: {\n title: string;\n children: ReactNode;\n };\n /**\n * Funksjon for å håndtere innsending av tilbakemelding\n * @param value Verdien av tilbakemeldingen. Dette er et objekt med følgende egenskaper:\n * - `feedbackValue`: Selve verdien av tilbakemeldingen (format varierer etter spørsmålstype)\n * - `intentionalSubmit`: Er `true` hvis brukeren aktivt sendte inn skjemaet, `false` hvis skjemaet ble sendt inn automatisk\n * - `message`: Eventuell utfyllende melding fra bruker. Blir kun sendt inn ved aktiv innsending\n */\n onSubmit: (value: FeedbackType) => void;\n followup?: FollowupProps;\n contactQuestion?: ContactQuestionProps;\n /**\n * Hvis du ønsker at Feedback formen skal eksponeres som et landmark kan du sende inn\n * hva du ønsker at en skjermleser skal kalle den her. Bare eksponer Feedback som et\n * landmark på sider der den er en viktig del av innholdet, feks en kvitteringsside\n * eller et annet sted det å kunne gi tilbakemelding vil føles naturlig eller forventet\n * for brukeren.\n */\n landmarkLabel?: string;\n} & Pick<BaseTextAreaProps, \"counter\">;\n\nexport const Feedback = ({\n className,\n followup,\n contactQuestion,\n counter,\n landmarkLabel,\n ...mainQuestionProps\n}: Props): ReactElement => {\n const [feedbackSubmitted, setFeedbackSubmitted] = useState(false);\n const [followupStarted, setFollowupStarted] = useState(false);\n const [followupSubmitted, setFollowupSubmitted] = useState(false);\n const [contactSubmitted, setContactSubmitted] = useState(false);\n\n return (\n <div className={`jkl-feedback ${className || \"\"}`} data-testid=\"feedback\">\n <FeedbackContextProvider\n value={{\n feedbackSubmitted,\n followupStarted,\n followupSubmitted,\n contactSubmitted,\n counter,\n landmarkLabel,\n setFeedbackSubmitted,\n setFollowupStarted,\n setFollowupSubmitted,\n setContactSubmitted,\n }}\n >\n {!followupStarted && <MainQuestion {...mainQuestionProps} />}\n {feedbackSubmitted && !contactSubmitted && followup && <Followup {...followup} />}\n {contactQuestion && (\n <div aria-live=\"polite\">\n {/* Show contact question after followup, or after feedback if no followup */}\n {((!followup && feedbackSubmitted) || followupSubmitted) && (\n <ContactQuestion {...contactQuestion} />\n )}\n </div>\n )}\n </FeedbackContextProvider>\n </div>\n );\n};\n"],"names":["Feedback","className","followup","contactQuestion","counter","landmarkLabel","mainQuestionProps","feedbackSubmitted","setFeedbackSubmitted","useState","followupStarted","setFollowupStarted","followupSubmitted","setFollowupSubmitted","contactSubmitted","setContactSubmitted","jsx","children","jsxs","FeedbackContextProvider","value","MainQuestion","Followup","ContactQuestion"],"mappings":"wuEAuDO,MAAMA,EAAW,EACpBC,UAAAA,EACAC,SAAAA,EACAC,gBAAAA,EACAC,QAAAA,EACAC,cAAAA,KACGC,MAEG,MAACC,EAAmBC,GAAwBC,GAAS,IACpDC,EAAiBC,GAAsBF,GAAS,IAChDG,EAAmBC,GAAwBJ,GAAS,IACpDK,EAAkBC,GAAuBN,GAAS,GAGrD,OAAAO,EAAC,OAAIf,UAAW,gBAAgBA,GAAa,KAAM,cAAY,WAC3DgB,SAAAC,EAACC,EAAA,CACGC,MAAO,CACHb,kBAAAA,EACAG,gBAAAA,EACAE,kBAAAA,EACAE,iBAAAA,EACAV,QAAAA,EACAC,cAAAA,EACAG,qBAAAA,EACAG,mBAAAA,EACAE,qBAAAA,EACAE,oBAAAA,GAGHE,SAAA,EAACP,GAAmBM,EAACK,EAAc,IAAGf,IACtCC,IAAsBO,GAAoBZ,GAAac,EAAAM,EAAA,IAAapB,IACpEC,GACGa,EAAC,MAAI,CAAA,YAAU,SAERC,WAACf,GAAYK,GAAsBK,IAClCI,EAACO,EAAiB,IAAGpB,UAKzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"feedbackContext.js","sources":["../../../../src/components/feedback/feedbackContext.tsx"],"sourcesContent":["import React, { createContext, FC, useContext } from \"react\";\nimport { WithChildren } from \"../..\";\nimport { BaseTextAreaProps } from \"../text-input\";\n\ntype FeedbackContext = {\n feedbackSubmitted: boolean;\n followupStarted: boolean;\n followupSubmitted: boolean;\n contactSubmitted: boolean;\n setFeedbackSubmitted: (state: boolean) => void;\n setFollowupStarted: (state: boolean) => void;\n setFollowupSubmitted: (state: boolean) => void;\n setContactSubmitted: (state: boolean) => void;\n} & Pick<BaseTextAreaProps, \"counter\">;\n\nconst initialState: FeedbackContext = {\n feedbackSubmitted: false,\n followupStarted: false,\n followupSubmitted: false,\n contactSubmitted: false,\n setFeedbackSubmitted: () => null,\n setFollowupStarted: () => null,\n setFollowupSubmitted: () => null,\n setContactSubmitted: () => null,\n};\n\nconst feedbackContext = createContext(initialState);\n\nexport const useFeedbackContext = (): FeedbackContext => useContext(feedbackContext);\n\ninterface FeedbackContextProviderProps extends WithChildren {\n value: FeedbackContext;\n}\n\nexport const FeedbackContextProvider: FC<FeedbackContextProviderProps> = ({ value, children }) => (\n <feedbackContext.Provider value={value}>{children}</feedbackContext.Provider>\n);\n"],"names":["feedbackContext","createContext","feedbackSubmitted","followupStarted","followupSubmitted","contactSubmitted","setFeedbackSubmitted","setFollowupStarted","setFollowupSubmitted","setContactSubmitted","useFeedbackContext","useContext","FeedbackContextProvider","value","children","jsx","Provider"],"mappings":"8FAeA,MAWMA,EAAkBC,EAXc,CAClCC,mBAAmB,EACnBC,iBAAiB,EACjBC,mBAAmB,EACnBC,kBAAkB,EAClBC,qBAAsB,IAAM,KAC5BC,mBAAoB,IAAM,KAC1BC,qBAAsB,IAAM,KAC5BC,oBAAqB,IAAM,OAKlBC,EAAqB,IAAuBC,EAAWX,GAMvDY,EAA4D,EAAGC,MAAAA,EAAOC,SAAAA,KAC/EC,EAACf,EAAgBgB,SAAhB,CAAyBH,MAAAA,EAAeC,SAAAA"}
1
+ {"version":3,"file":"feedbackContext.js","sources":["../../../../src/components/feedback/feedbackContext.tsx"],"sourcesContent":["import React, { createContext, FC, useContext } from \"react\";\nimport { WithChildren } from \"../..\";\nimport { BaseTextAreaProps } from \"../text-input\";\n\ntype FeedbackContext = {\n feedbackSubmitted: boolean;\n followupStarted: boolean;\n followupSubmitted: boolean;\n contactSubmitted: boolean;\n landmarkLabel?: string;\n setFeedbackSubmitted: (state: boolean) => void;\n setFollowupStarted: (state: boolean) => void;\n setFollowupSubmitted: (state: boolean) => void;\n setContactSubmitted: (state: boolean) => void;\n} & Pick<BaseTextAreaProps, \"counter\">;\n\nconst initialState: FeedbackContext = {\n feedbackSubmitted: false,\n followupStarted: false,\n followupSubmitted: false,\n contactSubmitted: false,\n setFeedbackSubmitted: () => null,\n setFollowupStarted: () => null,\n setFollowupSubmitted: () => null,\n setContactSubmitted: () => null,\n};\n\nconst feedbackContext = createContext(initialState);\n\nexport const useFeedbackContext = (): FeedbackContext => useContext(feedbackContext);\n\ninterface FeedbackContextProviderProps extends WithChildren {\n value: FeedbackContext;\n}\n\nexport const FeedbackContextProvider: FC<FeedbackContextProviderProps> = ({ value, children }) => (\n <feedbackContext.Provider value={value}>{children}</feedbackContext.Provider>\n);\n"],"names":["feedbackContext","createContext","feedbackSubmitted","followupStarted","followupSubmitted","contactSubmitted","setFeedbackSubmitted","setFollowupStarted","setFollowupSubmitted","setContactSubmitted","useFeedbackContext","useContext","FeedbackContextProvider","value","children","jsx","Provider"],"mappings":"8FAgBA,MAWMA,EAAkBC,EAXc,CAClCC,mBAAmB,EACnBC,iBAAiB,EACjBC,mBAAmB,EACnBC,kBAAkB,EAClBC,qBAAsB,IAAM,KAC5BC,mBAAoB,IAAM,KAC1BC,qBAAsB,IAAM,KAC5BC,oBAAqB,IAAM,OAKlBC,EAAqB,IAAuBC,EAAWX,GAMvDY,EAA4D,EAAGC,MAAAA,EAAOC,SAAAA,KAC/EC,EAACf,EAAgBgB,SAAhB,CAAyBH,MAAAA,EAAeC,SAAAA"}
@@ -1,2 +1,2 @@
1
- import{jsx as o,jsxs as i}from"react/jsx-runtime";import{useState as t,useRef as s,useEffect as n,createElement as e}from"react";import"../../../hooks/useScreen/useScreen.js";import"../../../hooks/useId/useId.js";import"../../icon/Icon.js";import"../../icon/icons/animated/ArrowVerticalAnimated.js";import"../../icon/icons/animated/ArrowHorizontalAnimated.js";import"../../icon/icons/animated/PlusRemoveAnimated.js";import"../../icon/icons/ArrowDownIcon.js";import"../../icon/icons/ArrowLeftIcon.js";import"../../icon/icons/ArrowNorthEastIcon.js";import"../../icon/icons/ArrowRightIcon.js";import"../../icon/icons/ArrowUpIcon.js";import"../../icon/icons/CalendarIcon.js";import"../../icon/icons/CheckIcon.js";import"../../icon/icons/ChevronDownIcon.js";import"../../icon/icons/ChevronLeftIcon.js";import"../../icon/icons/ChevronRightIcon.js";import"../../icon/icons/ChevronUpIcon.js";import"../../icon/icons/CloseIcon.js";import"../../icon/icons/CopyIcon.js";import"../../icon/icons/DotsIcon.js";import"../../icon/icons/DragIcon.js";import"../../icon/icons/ErrorIcon.js";import"../../icon/icons/GreenCheckIcon.js";import"../../icon/icons/HamburgerIcon.js";import"../../icon/icons/InfoIcon.js";import"../../icon/icons/LinkIcon.js";import"../../icon/icons/PlusIcon.js";import"../../icon/icons/QuestionIcon.js";import"../../icon/icons/RedCrossIcon.js";import"../../icon/icons/SearchIcon.js";import"../../icon/icons/SuccessIcon.js";import"../../icon/icons/WarningIcon.js";import"../../icon/icons/MinusIcon.js";import"../../icon/icons/ThumbDownIcon.js";import"../../icon/icons/ThumbUpIcon.js";import"../../icon/icons/TrashCanIcon.js";import"../../icon/icons/PenIcon.js";import{PrimaryButton as r,SecondaryButton as c,TertiaryButton as m}from"../../button/Button.js";import"../../card/Card.js";import"../../card/CardImage.js";import"../../card/NavCard.js";import"../../checkbox/Checkbox.js";import"../../combobox/Combobox.js";import"../../cookie-consent/CookieConsentContext.js";import"react-dom";import"../../modal/Modal.js";import"react-a11y-dialog";import"../../list/List.js";import"../../list/ListItem.js";import"../../datepicker/DatePicker.js";import{useFeedbackContext as p}from"../feedbackContext.js";import{FeedbackSuccess as a}from"../FeedbackSuccess.js";import"../../tooltip/Tooltip.js";import"../../tooltip/TooltipContent.js";import"../../tooltip/TooltipTrigger.js";import"../../input-group/InputGroup.js";import{FollowUpProvider as l}from"./followupContext.js";import"../main-question/mainQuestionContext.js";import"../../radio-button/RadioButton.js";import"../../radio-button/radioGroupContext.js";import"../../radio-button/BaseRadioButton.js";import"../../text-input/BaseTextArea.js";import"../../text-input/BaseTextInput.js";import"../../text-input/TextArea.js";import"../../text-input/TextInput.js";import"../../../utilities/polymorphism/SlotComponent.js";import{getQuestionFromType as j}from"../utils.js";import"../../icon-button/IconButton.js";import"../../link/Link.js";import"../../link/NavLink.js";import"../../link-list/LinkList.js";import"../../message/Message.js";import"../../message/FormErrorMessage.js";import"../../popover/Popover.js";import"../../../../NativeSelect-CfNZEQF0.js";import"../../tag/Tag.js";import{useFollowup as u}from"./useFollowup.js";const d={title:"Takk, igjen!",children:"Vi setter pris på at du tok deg tid til å svare på flere spørsmål. Det hjelper oss med å gjøre nettsidene bedre for deg og alle andre som bruker dem."},k=({questions:k,successMessage:I=d,onSubmit:b})=>{const[h,g]=t(!1),f=s(null),x=u(k,b),{handleAbort:C,handleNext:v,step:w,submitted:S}=x,{followupStarted:N,setFollowupStarted:T,setFollowupSubmitted:A,contactSubmitted:y}=p();n((()=>{0!==w.number&&f.current&&f.current.focus()}),[w]),n((()=>{A(S)}),[S,A]);const F=j(k[w.number].type),L=w.isLast?r:c;return h?null:o("div",{"aria-live":"polite",children:i(l,{state:x,children:[!N&&i("div",{className:"jkl-feedback__fade-in",children:[o("p",{className:"jkl-heading-4 jkl-spacing-xl--top jkl-spacing-xs--bottom",children:"Har du tid til å svare på noen flere spørsmål?"}),o("p",{className:"jkl-body jkl-spacing-xl--bottom",children:"Det tar kun et minutt, og hjelper oss å lage bedre løsninger for deg."}),o(r,{onClick:()=>T(!0),className:"jkl-spacing-xl--right",children:"Jeg har tid!"}),o(m,{onClick:()=>g(!0),children:"Nei takk"})]}),!S&&N&&i("form",{onSubmit:v,className:"jkl-feedback__fade-in",children:[i("p",{className:"jkl-feedback__step-counter",ref:f,children:["Steg ",w.number+1," av ",k.length]}),e(F,{...k[w.number],autoFocus:!0,key:w.number}),i("div",{className:"jkl-spacing-xl--top","aria-live":"off",children:[o(L,{type:"submit",children:w.isLast?"Send inn":"Neste"}),o(m,{onClick:C,className:"jkl-spacing-xl--left",children:"Avbryt"})]})]}),S&&!y&&o(a,{...I})]})})};export{k as Followup};
1
+ import{jsx as o,jsxs as t}from"react/jsx-runtime";import{useState as i,useRef as s,useEffect as e,createElement as r}from"react";import"../../../hooks/useScreen/useScreen.js";import"../../../hooks/useId/useId.js";import"../../icon/Icon.js";import"../../icon/icons/animated/ArrowVerticalAnimated.js";import"../../icon/icons/animated/ArrowHorizontalAnimated.js";import"../../icon/icons/animated/PlusRemoveAnimated.js";import"../../icon/icons/ArrowDownIcon.js";import"../../icon/icons/ArrowLeftIcon.js";import"../../icon/icons/ArrowNorthEastIcon.js";import"../../icon/icons/ArrowRightIcon.js";import"../../icon/icons/ArrowUpIcon.js";import"../../icon/icons/CalendarIcon.js";import"../../icon/icons/CheckIcon.js";import"../../icon/icons/ChevronDownIcon.js";import"../../icon/icons/ChevronLeftIcon.js";import"../../icon/icons/ChevronRightIcon.js";import"../../icon/icons/ChevronUpIcon.js";import"../../icon/icons/CloseIcon.js";import"../../icon/icons/CopyIcon.js";import"../../icon/icons/DotsIcon.js";import"../../icon/icons/DragIcon.js";import"../../icon/icons/ErrorIcon.js";import"../../icon/icons/GreenCheckIcon.js";import"../../icon/icons/HamburgerIcon.js";import"../../icon/icons/InfoIcon.js";import"../../icon/icons/LinkIcon.js";import"../../icon/icons/PlusIcon.js";import"../../icon/icons/QuestionIcon.js";import"../../icon/icons/RedCrossIcon.js";import"../../icon/icons/SearchIcon.js";import"../../icon/icons/SuccessIcon.js";import"../../icon/icons/WarningIcon.js";import"../../icon/icons/MinusIcon.js";import"../../icon/icons/ThumbDownIcon.js";import"../../icon/icons/ThumbUpIcon.js";import"../../icon/icons/TrashCanIcon.js";import"../../icon/icons/PenIcon.js";import{PrimaryButton as n,SecondaryButton as a,TertiaryButton as c}from"../../button/Button.js";import"../../card/Card.js";import"../../card/CardImage.js";import"../../card/NavCard.js";import"../../checkbox/Checkbox.js";import"../../combobox/Combobox.js";import"../../cookie-consent/CookieConsentContext.js";import"react-dom";import"../../modal/Modal.js";import"react-a11y-dialog";import"../../list/List.js";import"../../list/ListItem.js";import"../../datepicker/DatePicker.js";import{useFeedbackContext as m}from"../feedbackContext.js";import{FeedbackSuccess as p}from"../FeedbackSuccess.js";import"../../tooltip/Tooltip.js";import"../../tooltip/TooltipContent.js";import"../../tooltip/TooltipTrigger.js";import"../../input-group/InputGroup.js";import{FollowUpProvider as l}from"./followupContext.js";import"../main-question/mainQuestionContext.js";import"../../radio-button/RadioButton.js";import"../../radio-button/radioGroupContext.js";import"../../radio-button/BaseRadioButton.js";import"../../text-input/BaseTextArea.js";import"../../text-input/BaseTextInput.js";import"../../text-input/TextArea.js";import"../../text-input/TextInput.js";import"../../../utilities/polymorphism/SlotComponent.js";import{getQuestionFromType as j}from"../utils.js";import"../../../../ExpandableTableRow-BJSqC_Jo.js";import"../../icon-button/IconButton.js";import"../../link/Link.js";import"../../link/NavLink.js";import"../../link-list/LinkList.js";import"../../logo/text-paths/ForsikringLevertAvFremtind.js";import"../../logo/text-paths/FraSB1ogDNB.js";import"../../logo/text-paths/InnovasjonFraFremtind.js";import"../../logo/text-paths/TeknologiFraFremtind.js";import"../../logo/text-paths/VartEgetForsikringsselskap.js";import"../../logo/text-paths/VartForsikringsselskap.js";import"../../message/Message.js";import"../../message/FormErrorMessage.js";import"../../popover/Popover.js";import"../../system-message/SystemMessage.js";import"../../table/DataTable.js";import"../../table/Table.js";import"../../table/TableBody.js";import"../../table/TableCaption.js";import"../../table/TableCell.js";import"../../table/TableColumn.js";import"../../table/TableColumnGroup.js";import"../../table/tableContext.js";import"../../table/tableSectionContext.js";import"../../table/TableFooter.js";import"../../table/TableHead.js";import"../../table/TableHeader.js";import"../../table/TableRow.js";import"../../tabs/NavTab.js";import"../../tabs/tabsContext.js";import"../../tabs/Tab.js";import"../../tag/Tag.js";import"../../toast/toastContext.js";import"../../toggle-switch/ToggleSwitch.js";import{useFollowup as d}from"./useFollowup.js";const u={title:"Takk, igjen!",children:"Vi setter pris på at du tok deg tid til å svare på flere spørsmål. Det hjelper oss med å gjøre nettsidene bedre for deg og alle andre som bruker dem."},b=({questions:b,successMessage:g=u,onSubmit:k})=>{const[h,I]=i(!1),x=s(null),C=d(b,k),{handleAbort:f,handleNext:T,step:v,submitted:w}=C,{followupStarted:F,setFollowupStarted:S,setFollowupSubmitted:N,contactSubmitted:y,landmarkLabel:A}=m();e((()=>{0!==v.number&&x.current&&x.current.focus()}),[v]),e((()=>{N(w)}),[w,N]);const B=j(b[v.number].type),L=v.isLast?n:a;return h?null:o("div",{"aria-live":"polite",children:t(l,{state:C,children:[!F&&t("div",{className:"jkl-feedback__fade-in",children:[o("p",{className:"jkl-heading-4 jkl-spacing-xl--top jkl-spacing-xs--bottom",children:"Har du tid til å svare på noen flere spørsmål?"}),o("p",{className:"jkl-body jkl-spacing-xl--bottom",children:"Det tar kun et minutt, og hjelper oss å lage bedre løsninger for deg."}),o(n,{onClick:()=>S(!0),className:"jkl-spacing-xl--right",children:"Jeg har tid!"}),o(c,{onClick:()=>I(!0),children:"Nei takk"})]}),!w&&F&&t("form",{onSubmit:T,className:"jkl-feedback__fade-in","aria-label":A,children:[t("p",{className:"jkl-feedback__step-counter",ref:x,children:["Steg ",v.number+1," av ",b.length]}),r(B,{...b[v.number],autoFocus:!0,key:v.number}),t("div",{className:"jkl-spacing-xl--top","aria-live":"off",children:[o(L,{type:"submit",children:v.isLast?"Send inn":"Neste"}),o(c,{onClick:f,className:"jkl-spacing-xl--left",children:"Avbryt"})]})]}),w&&!y&&o(p,{...g})]})})};export{b as Followup};
2
2
  //# sourceMappingURL=Followup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Followup.js","sources":["../../../../../src/components/feedback/followup/Followup.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useRef, useState, FC } from \"react\";\nimport { PrimaryButton, SecondaryButton, TertiaryButton } from \"../..\";\nimport { useFeedbackContext } from \"../feedbackContext\";\nimport { FeedbackSuccess } from \"../FeedbackSuccess\";\nimport { FeedbackAnswer, FollowupQuestion } from \"../types\";\nimport { getQuestionFromType } from \"../utils\";\nimport { FollowUpProvider } from \"./followupContext\";\nimport { useFollowup } from \"./useFollowup\";\n\nconst defaultSuccessMessage = {\n title: \"Takk, igjen!\",\n children:\n \"Vi setter pris på at du tok deg tid til å svare på flere spørsmål. Det hjelper oss med å gjøre nettsidene bedre for deg og alle andre som bruker dem.\",\n};\n\ninterface Props {\n /** Spørsmålet/ene som skal stilles. Kan være av typen radio, checkbox eller text */\n questions: FollowupQuestion[];\n /** Lar deg tilpasse meldingen som kommer når brukeren har svart på spørsmålene. */\n successMessage?: {\n title: string;\n children: ReactNode;\n };\n onSubmit: (values: FeedbackAnswer[]) => void;\n}\n\nexport const Followup: FC<Props> = ({ questions, successMessage = defaultSuccessMessage, onSubmit }) => {\n const [noThanks, setNoThanks] = useState(false);\n const focusRef = useRef<HTMLParagraphElement>(null);\n const followupState = useFollowup(questions, onSubmit);\n const { handleAbort, handleNext, step, submitted } = followupState;\n const { followupStarted, setFollowupStarted, setFollowupSubmitted, contactSubmitted } = useFeedbackContext();\n\n useEffect(() => {\n if (step.number === 0) {\n return;\n }\n focusRef.current && focusRef.current.focus();\n }, [step]);\n\n useEffect(() => {\n setFollowupSubmitted(submitted);\n }, [submitted, setFollowupSubmitted]);\n\n const QuestionComponent = getQuestionFromType(questions[step.number].type);\n const Button = step.isLast ? PrimaryButton : SecondaryButton;\n\n if (noThanks) {\n return null;\n }\n\n return (\n <div aria-live=\"polite\">\n <FollowUpProvider state={followupState}>\n {!followupStarted && (\n <div className=\"jkl-feedback__fade-in\">\n <p className=\"jkl-heading-4 jkl-spacing-xl--top jkl-spacing-xs--bottom\">\n Har du tid til å svare på noen flere spørsmål?\n </p>\n <p className=\"jkl-body jkl-spacing-xl--bottom\">\n Det tar kun et minutt, og hjelper oss å lage bedre løsninger for deg.\n </p>\n <PrimaryButton onClick={() => setFollowupStarted(true)} className=\"jkl-spacing-xl--right\">\n Jeg har tid!\n </PrimaryButton>\n <TertiaryButton onClick={() => setNoThanks(true)}>Nei takk</TertiaryButton>\n </div>\n )}\n {!submitted && followupStarted && (\n <form onSubmit={handleNext} className=\"jkl-feedback__fade-in\">\n <p className=\"jkl-feedback__step-counter\" ref={focusRef}>\n Steg {step.number + 1} av {questions.length}\n </p>\n {/* eslint-disable-next-line jsx-a11y/no-autofocus */}\n <QuestionComponent {...questions[step.number]} autoFocus key={step.number} />\n <div className=\"jkl-spacing-xl--top\" aria-live=\"off\">\n <Button type=\"submit\">{step.isLast ? \"Send inn\" : \"Neste\"}</Button>\n <TertiaryButton onClick={handleAbort} className=\"jkl-spacing-xl--left\">\n Avbryt\n </TertiaryButton>\n </div>\n </form>\n )}\n {submitted && !contactSubmitted && <FeedbackSuccess {...successMessage} />}\n </FollowUpProvider>\n </div>\n );\n};\n"],"names":["defaultSuccessMessage","title","children","Followup","questions","successMessage","onSubmit","noThanks","setNoThanks","useState","focusRef","useRef","followupState","useFollowup","handleAbort","handleNext","step","submitted","followupStarted","setFollowupStarted","setFollowupSubmitted","contactSubmitted","useFeedbackContext","useEffect","number","current","focus","QuestionComponent","getQuestionFromType","type","Button","isLast","PrimaryButton","SecondaryButton","jsxs","FollowUpProvider","state","className","jsx","onClick","TertiaryButton","ref","length","createElement","autoFocus","key","FeedbackSuccess"],"mappings":"0sGASA,MAAMA,EAAwB,CAC1BC,MAAO,eACPC,SACI,yJAcKC,EAAsB,EAAGC,UAAAA,EAAWC,eAAAA,EAAiBL,EAAuBM,SAAAA,MACrF,MAAOC,EAAUC,GAAeC,GAAS,GACnCC,EAAWC,EAA6B,MACxCC,EAAgBC,EAAYT,EAAWE,IACrCQ,YAAAA,EAAaC,WAAAA,EAAYC,KAAAA,EAAMC,UAAAA,GAAcL,GAC7CM,gBAAAA,EAAiBC,mBAAAA,EAAoBC,qBAAAA,EAAsBC,iBAAAA,GAAqBC,IAExFC,GAAU,KACc,IAAhBP,EAAKQ,QAGAd,EAAAe,SAAWf,EAASe,QAAQC,OAAM,GAC5C,CAACV,IAEJO,GAAU,KACNH,EAAqBH,EAAS,GAC/B,CAACA,EAAWG,IAETO,MAAAA,EAAoBC,EAAoBxB,EAAUY,EAAKQ,QAAQK,MAC/DC,EAASd,EAAKe,OAASC,EAAgBC,EAE7C,OAAI1B,EACO,OAIN,MAAI,CAAA,YAAU,SACXL,SAACgC,EAAAC,EAAA,CAAiBC,MAAOxB,EACpBV,SAAA,EAACgB,GACEgB,EAAC,MAAI,CAAAG,UAAU,wBACXnC,SAAA,CAACoC,EAAA,IAAA,CAAED,UAAU,2DAA2DnC,SAExE,mDACCoC,EAAA,IAAA,CAAED,UAAU,kCAAkCnC,SAE/C,0EACAoC,EAACN,GAAcO,QAAS,IAAMpB,GAAmB,GAAOkB,UAAU,wBAAwBnC,SAE1F,mBACCsC,EAAe,CAAAD,QAAS,IAAM/B,GAAY,GAAON,SAAQ,iBAGhEe,GAAaC,GACXgB,EAAC,QAAK5B,SAAUS,EAAYsB,UAAU,wBAClCnC,SAAA,CAAAgC,EAAC,IAAE,CAAAG,UAAU,6BAA6BI,IAAK/B,EAAUR,SAAA,CAAA,QAC/Cc,EAAKQ,OAAS,EAAE,OAAKpB,EAAUsC,UAGzCC,EAAChB,EAAmB,IAAGvB,EAAUY,EAAKQ,QAASoB,WAAS,EAACC,IAAK7B,EAAKQ,SAClEU,EAAA,MAAA,CAAIG,UAAU,sBAAsB,YAAU,MAC3CnC,SAAA,CAAAoC,EAACR,GAAOD,KAAK,SAAU3B,SAAKc,EAAAe,OAAS,WAAa,YACjDS,EAAe,CAAAD,QAASzB,EAAauB,UAAU,uBAAuBnC,SAEvE,iBAIXe,IAAcI,GAAqBiB,EAAAQ,EAAA,IAAoBzC,QAEhE"}
1
+ {"version":3,"file":"Followup.js","sources":["../../../../../src/components/feedback/followup/Followup.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useRef, useState, FC } from \"react\";\nimport { PrimaryButton, SecondaryButton, TertiaryButton } from \"../..\";\nimport { useFeedbackContext } from \"../feedbackContext\";\nimport { FeedbackSuccess } from \"../FeedbackSuccess\";\nimport { FeedbackAnswer, FollowupQuestion } from \"../types\";\nimport { getQuestionFromType } from \"../utils\";\nimport { FollowUpProvider } from \"./followupContext\";\nimport { useFollowup } from \"./useFollowup\";\n\nconst defaultSuccessMessage = {\n title: \"Takk, igjen!\",\n children:\n \"Vi setter pris på at du tok deg tid til å svare på flere spørsmål. Det hjelper oss med å gjøre nettsidene bedre for deg og alle andre som bruker dem.\",\n};\n\ninterface Props {\n /** Spørsmålet/ene som skal stilles. Kan være av typen radio, checkbox eller text */\n questions: FollowupQuestion[];\n /** Lar deg tilpasse meldingen som kommer når brukeren har svart på spørsmålene. */\n successMessage?: {\n title: string;\n children: ReactNode;\n };\n onSubmit: (values: FeedbackAnswer[]) => void;\n}\n\nexport const Followup: FC<Props> = ({ questions, successMessage = defaultSuccessMessage, onSubmit }) => {\n const [noThanks, setNoThanks] = useState(false);\n const focusRef = useRef<HTMLParagraphElement>(null);\n const followupState = useFollowup(questions, onSubmit);\n const { handleAbort, handleNext, step, submitted } = followupState;\n const { followupStarted, setFollowupStarted, setFollowupSubmitted, contactSubmitted, landmarkLabel } =\n useFeedbackContext();\n\n useEffect(() => {\n if (step.number === 0) {\n return;\n }\n focusRef.current && focusRef.current.focus();\n }, [step]);\n\n useEffect(() => {\n setFollowupSubmitted(submitted);\n }, [submitted, setFollowupSubmitted]);\n\n const QuestionComponent = getQuestionFromType(questions[step.number].type);\n const Button = step.isLast ? PrimaryButton : SecondaryButton;\n\n if (noThanks) {\n return null;\n }\n\n return (\n <div aria-live=\"polite\">\n <FollowUpProvider state={followupState}>\n {!followupStarted && (\n <div className=\"jkl-feedback__fade-in\">\n <p className=\"jkl-heading-4 jkl-spacing-xl--top jkl-spacing-xs--bottom\">\n Har du tid til å svare på noen flere spørsmål?\n </p>\n <p className=\"jkl-body jkl-spacing-xl--bottom\">\n Det tar kun et minutt, og hjelper oss å lage bedre løsninger for deg.\n </p>\n <PrimaryButton onClick={() => setFollowupStarted(true)} className=\"jkl-spacing-xl--right\">\n Jeg har tid!\n </PrimaryButton>\n <TertiaryButton onClick={() => setNoThanks(true)}>Nei takk</TertiaryButton>\n </div>\n )}\n {!submitted && followupStarted && (\n <form onSubmit={handleNext} className=\"jkl-feedback__fade-in\" aria-label={landmarkLabel}>\n <p className=\"jkl-feedback__step-counter\" ref={focusRef}>\n Steg {step.number + 1} av {questions.length}\n </p>\n {/* eslint-disable-next-line jsx-a11y/no-autofocus */}\n <QuestionComponent {...questions[step.number]} autoFocus key={step.number} />\n <div className=\"jkl-spacing-xl--top\" aria-live=\"off\">\n <Button type=\"submit\">{step.isLast ? \"Send inn\" : \"Neste\"}</Button>\n <TertiaryButton onClick={handleAbort} className=\"jkl-spacing-xl--left\">\n Avbryt\n </TertiaryButton>\n </div>\n </form>\n )}\n {submitted && !contactSubmitted && <FeedbackSuccess {...successMessage} />}\n </FollowUpProvider>\n </div>\n );\n};\n"],"names":["defaultSuccessMessage","title","children","Followup","questions","successMessage","onSubmit","noThanks","setNoThanks","useState","focusRef","useRef","followupState","useFollowup","handleAbort","handleNext","step","submitted","followupStarted","setFollowupStarted","setFollowupSubmitted","contactSubmitted","landmarkLabel","useFeedbackContext","useEffect","number","current","focus","QuestionComponent","getQuestionFromType","type","Button","isLast","PrimaryButton","SecondaryButton","jsxs","FollowUpProvider","state","className","jsx","onClick","TertiaryButton","ref","length","createElement","autoFocus","key","FeedbackSuccess"],"mappings":"srIASA,MAAMA,EAAwB,CAC1BC,MAAO,eACPC,SACI,yJAcKC,EAAsB,EAAGC,UAAAA,EAAWC,eAAAA,EAAiBL,EAAuBM,SAAAA,MACrF,MAAOC,EAAUC,GAAeC,GAAS,GACnCC,EAAWC,EAA6B,MACxCC,EAAgBC,EAAYT,EAAWE,IACrCQ,YAAAA,EAAaC,WAAAA,EAAYC,KAAAA,EAAMC,UAAAA,GAAcL,GAC7CM,gBAAAA,EAAiBC,mBAAAA,EAAoBC,qBAAAA,EAAsBC,iBAAAA,EAAkBC,cAAAA,GACjFC,IAEJC,GAAU,KACc,IAAhBR,EAAKS,QAGAf,EAAAgB,SAAWhB,EAASgB,QAAQC,OAAM,GAC5C,CAACX,IAEJQ,GAAU,KACNJ,EAAqBH,EAAS,GAC/B,CAACA,EAAWG,IAETQ,MAAAA,EAAoBC,EAAoBzB,EAAUY,EAAKS,QAAQK,MAC/DC,EAASf,EAAKgB,OAASC,EAAgBC,EAE7C,OAAI3B,EACO,OAIN,MAAI,CAAA,YAAU,SACXL,SAACiC,EAAAC,EAAA,CAAiBC,MAAOzB,EACpBV,SAAA,EAACgB,GACEiB,EAAC,MAAI,CAAAG,UAAU,wBACXpC,SAAA,CAACqC,EAAA,IAAA,CAAED,UAAU,2DAA2DpC,SAExE,mDACCqC,EAAA,IAAA,CAAED,UAAU,kCAAkCpC,SAE/C,0EACAqC,EAACN,GAAcO,QAAS,IAAMrB,GAAmB,GAAOmB,UAAU,wBAAwBpC,SAE1F,mBACCuC,EAAe,CAAAD,QAAS,IAAMhC,GAAY,GAAON,SAAQ,iBAGhEe,GAAaC,GACViB,EAAA,OAAA,CAAK7B,SAAUS,EAAYuB,UAAU,wBAAwB,aAAYhB,EACtEpB,SAAA,CAAAiC,EAAC,IAAE,CAAAG,UAAU,6BAA6BI,IAAKhC,EAAUR,SAAA,CAAA,QAC/Cc,EAAKS,OAAS,EAAE,OAAKrB,EAAUuC,UAGzCC,EAAChB,EAAmB,IAAGxB,EAAUY,EAAKS,QAASoB,WAAS,EAACC,IAAK9B,EAAKS,SAClEU,EAAA,MAAA,CAAIG,UAAU,sBAAsB,YAAU,MAC3CpC,SAAA,CAAAqC,EAACR,GAAOD,KAAK,SAAU5B,SAAKc,EAAAgB,OAAS,WAAa,YACjDS,EAAe,CAAAD,QAAS1B,EAAawB,UAAU,uBAAuBpC,SAEvE,iBAIXe,IAAcI,GAAqBkB,EAAAQ,EAAA,IAAoB1C,QAEhE"}
@@ -1,2 +1,2 @@
1
- import{jsxs as o,Fragment as i,jsx as n}from"react/jsx-runtime";import{c as t}from"../../../../clsx-BeLtu-UY.js";import{useEffect as s}from"react";import{useAnimatedHeight as e}from"../../../hooks/useAnimatedHeight/useAnimatedHeight.js";import"../../../hooks/useScreen/useScreen.js";import"../../../hooks/useId/useId.js";import{PrimaryButton as r,TertiaryButton as c}from"../../button/Button.js";import{useFeedbackContext as m}from"../feedbackContext.js";import{FeedbackSuccess as p}from"../FeedbackSuccess.js";import"../../checkbox/Checkbox.js";import"../../tooltip/Tooltip.js";import"../../tooltip/TooltipContent.js";import"../../tooltip/TooltipTrigger.js";import"../../icon/Icon.js";import"../../icon/icons/animated/ArrowVerticalAnimated.js";import"../../icon/icons/animated/ArrowHorizontalAnimated.js";import"../../icon/icons/animated/PlusRemoveAnimated.js";import"../../icon/icons/ArrowDownIcon.js";import"../../icon/icons/ArrowLeftIcon.js";import"../../icon/icons/ArrowNorthEastIcon.js";import"../../icon/icons/ArrowRightIcon.js";import"../../icon/icons/ArrowUpIcon.js";import"../../icon/icons/CalendarIcon.js";import"../../icon/icons/CheckIcon.js";import"../../icon/icons/ChevronDownIcon.js";import"../../icon/icons/ChevronLeftIcon.js";import"../../icon/icons/ChevronRightIcon.js";import"../../icon/icons/ChevronUpIcon.js";import"../../icon/icons/CloseIcon.js";import"../../icon/icons/CopyIcon.js";import"../../icon/icons/DotsIcon.js";import"../../icon/icons/DragIcon.js";import"../../icon/icons/ErrorIcon.js";import"../../icon/icons/GreenCheckIcon.js";import"../../icon/icons/HamburgerIcon.js";import"../../icon/icons/InfoIcon.js";import"../../icon/icons/LinkIcon.js";import"../../icon/icons/PlusIcon.js";import"../../icon/icons/QuestionIcon.js";import"../../icon/icons/RedCrossIcon.js";import"../../icon/icons/SearchIcon.js";import"../../icon/icons/SuccessIcon.js";import"../../icon/icons/WarningIcon.js";import"../../icon/icons/MinusIcon.js";import"../../icon/icons/ThumbDownIcon.js";import"../../icon/icons/ThumbUpIcon.js";import"../../icon/icons/TrashCanIcon.js";import"../../icon/icons/PenIcon.js";import"../../input-group/InputGroup.js";import"../followup/followupContext.js";import{MainQuestionContextProvider as a}from"./mainQuestionContext.js";import"../../radio-button/RadioButton.js";import"../../radio-button/radioGroupContext.js";import"../../radio-button/BaseRadioButton.js";import"../../text-input/BaseTextArea.js";import"../../text-input/BaseTextInput.js";import"../../text-input/TextArea.js";import"../../text-input/TextInput.js";import{AddonQuestion as j}from"../questions/AddonQuestion.js";import"../../../utilities/polymorphism/SlotComponent.js";import{getQuestionFromType as u}from"../utils.js";import{useMainQuestion as l}from"./useMainQuestion.js";const d={title:"Takk for tilbakemeldingen!",children:"Husk at vi ikke kan besvare meldinger fra dette skjemaet. Kontakt gjerne din forsikringsrådgiver om du har flere spørsmål."},I=({label:I,options:h,type:b,addOnQuestion:k,successMessage:f=d,helpLabel:x,onSubmit:C})=>{const g=l(C),{setFeedbackSubmitted:A,contactSubmitted:v}=m(),{handleSubmit:w,currentValue:T,setCurrentValue:S,submitted:Q}=g,[y]=e(void 0!==T);s((()=>{A(Q)}),[Q,A]);const B=u(b);return o(i,{children:[!Q&&o(a,{state:g,children:[n(B,{label:I,options:h,helpLabel:x}),o("div",{ref:y,className:t({"jkl-feedback__submit-wrapper":!0,"jkl-feedback__submit-wrapper--hidden":void 0===T}),children:[k&&n(j,{helpLabel:"object"==typeof k?k.helpLabel:void 0,label:"object"==typeof k?k.label:void 0}),o("div",{className:"jkl-spacing-xl--top",children:[n(r,{onClick:w,className:"jkl-spacing-xl--right",children:"Send"}),n(c,{onClick:()=>S(void 0),children:"Avbryt"})]})]})]}),Q&&!v&&n(p,{...f})]})};export{I as MainQuestion};
1
+ import{jsxs as o,Fragment as i,jsx as t}from"react/jsx-runtime";import{c as n}from"../../../../clsx-BeLtu-UY.js";import{useEffect as s}from"react";import{useAnimatedHeight as e}from"../../../hooks/useAnimatedHeight/useAnimatedHeight.js";import"../../../hooks/useScreen/useScreen.js";import"../../../hooks/useId/useId.js";import{PrimaryButton as r,TertiaryButton as c}from"../../button/Button.js";import{useFeedbackContext as m}from"../feedbackContext.js";import{FeedbackSuccess as p}from"../FeedbackSuccess.js";import"../../checkbox/Checkbox.js";import"../../tooltip/Tooltip.js";import"../../tooltip/TooltipContent.js";import"../../tooltip/TooltipTrigger.js";import"../../icon/Icon.js";import"../../icon/icons/animated/ArrowVerticalAnimated.js";import"../../icon/icons/animated/ArrowHorizontalAnimated.js";import"../../icon/icons/animated/PlusRemoveAnimated.js";import"../../icon/icons/ArrowDownIcon.js";import"../../icon/icons/ArrowLeftIcon.js";import"../../icon/icons/ArrowNorthEastIcon.js";import"../../icon/icons/ArrowRightIcon.js";import"../../icon/icons/ArrowUpIcon.js";import"../../icon/icons/CalendarIcon.js";import"../../icon/icons/CheckIcon.js";import"../../icon/icons/ChevronDownIcon.js";import"../../icon/icons/ChevronLeftIcon.js";import"../../icon/icons/ChevronRightIcon.js";import"../../icon/icons/ChevronUpIcon.js";import"../../icon/icons/CloseIcon.js";import"../../icon/icons/CopyIcon.js";import"../../icon/icons/DotsIcon.js";import"../../icon/icons/DragIcon.js";import"../../icon/icons/ErrorIcon.js";import"../../icon/icons/GreenCheckIcon.js";import"../../icon/icons/HamburgerIcon.js";import"../../icon/icons/InfoIcon.js";import"../../icon/icons/LinkIcon.js";import"../../icon/icons/PlusIcon.js";import"../../icon/icons/QuestionIcon.js";import"../../icon/icons/RedCrossIcon.js";import"../../icon/icons/SearchIcon.js";import"../../icon/icons/SuccessIcon.js";import"../../icon/icons/WarningIcon.js";import"../../icon/icons/MinusIcon.js";import"../../icon/icons/ThumbDownIcon.js";import"../../icon/icons/ThumbUpIcon.js";import"../../icon/icons/TrashCanIcon.js";import"../../icon/icons/PenIcon.js";import"../../input-group/InputGroup.js";import"../followup/followupContext.js";import{MainQuestionContextProvider as a}from"./mainQuestionContext.js";import"../../radio-button/RadioButton.js";import"../../radio-button/radioGroupContext.js";import"../../radio-button/BaseRadioButton.js";import"../../text-input/BaseTextArea.js";import"../../text-input/BaseTextInput.js";import"../../text-input/TextArea.js";import"../../text-input/TextInput.js";import{AddonQuestion as u}from"../questions/AddonQuestion.js";import"../../../utilities/polymorphism/SlotComponent.js";import{getQuestionFromType as j}from"../utils.js";import{useMainQuestion as l}from"./useMainQuestion.js";const d={title:"Takk for tilbakemeldingen!",children:"Husk at vi ikke kan besvare meldinger fra dette skjemaet. Kontakt gjerne din forsikringsrådgiver om du har flere spørsmål."},b=({label:b,options:h,type:I,addOnQuestion:k,successMessage:f=d,helpLabel:x,onSubmit:g})=>{const C=l(g),{setFeedbackSubmitted:A,contactSubmitted:v,landmarkLabel:w}=m(),{handleSubmit:T,currentValue:S,setCurrentValue:y,submitted:Q}=C,[B]=e(void 0!==S);s((()=>{A(Q)}),[Q,A]);const L=j(I);return o(i,{children:[!Q&&t(a,{state:C,children:o("form",{onSubmit:T,"aria-label":w,children:[t(L,{label:b,options:h,helpLabel:x}),o("div",{ref:B,className:n({"jkl-feedback__submit-wrapper":!0,"jkl-feedback__submit-wrapper--hidden":void 0===S}),children:[k&&t(u,{helpLabel:"object"==typeof k?k.helpLabel:void 0,label:"object"==typeof k?k.label:void 0}),o("div",{className:"jkl-spacing-xl--top",children:[t(r,{className:"jkl-spacing-xl--right",children:"Send"}),t(c,{type:"button",onClick:()=>y(void 0),children:"Avbryt"})]})]})]})}),Q&&!v&&t(p,{...f})]})};export{b as MainQuestion};
2
2
  //# sourceMappingURL=MainQuestion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MainQuestion.js","sources":["../../../../../src/components/feedback/main-question/MainQuestion.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { ReactNode, useEffect, FC, ComponentProps } from \"react\";\nimport { useAnimatedHeight } from \"../../../hooks\";\nimport { PrimaryButton, TertiaryButton } from \"../../button\";\nimport { Feedback } from \"../Feedback\";\nimport { useFeedbackContext } from \"../feedbackContext\";\nimport { FeedbackSuccess } from \"../FeedbackSuccess\";\nimport { AddonQuestion } from \"../questions\";\nimport { FeedbackOption, FeedbackType } from \"../types\";\nimport { getQuestionFromType } from \"../utils\";\nimport { MainQuestionContextProvider } from \"./mainQuestionContext\";\nimport { useMainQuestion } from \"./useMainQuestion\";\n\nconst defaultSuccessMessage = {\n title: \"Takk for tilbakemeldingen!\",\n children:\n \"Husk at vi ikke kan besvare meldinger fra dette skjemaet. Kontakt gjerne din forsikringsrådgiver om du har flere spørsmål.\",\n};\n\ntype Props = Pick<ComponentProps<typeof Feedback>, \"addOnQuestion\"> & {\n type: \"radio\" | \"smiley\";\n label: string;\n helpLabel?: string;\n options: FeedbackOption[];\n successMessage?: {\n title: string;\n children: ReactNode;\n };\n onSubmit: (value: FeedbackType) => void;\n};\n\nexport const MainQuestion: FC<Props> = ({\n label,\n options,\n type,\n addOnQuestion,\n successMessage = defaultSuccessMessage,\n helpLabel,\n onSubmit,\n}) => {\n const mainQuestionState = useMainQuestion(onSubmit);\n\n const { setFeedbackSubmitted, contactSubmitted } = useFeedbackContext();\n const { handleSubmit, currentValue, setCurrentValue, submitted } = mainQuestionState;\n const [submitWrapperRef] = useAnimatedHeight<HTMLDivElement>(currentValue !== undefined);\n\n useEffect(() => {\n setFeedbackSubmitted(submitted);\n }, [submitted, setFeedbackSubmitted]);\n\n const MainQuestionComp = getQuestionFromType(type);\n\n return (\n <>\n {!submitted && (\n <MainQuestionContextProvider state={mainQuestionState}>\n <MainQuestionComp label={label} options={options} helpLabel={helpLabel} />\n <div\n ref={submitWrapperRef}\n className={clsx({\n \"jkl-feedback__submit-wrapper\": true,\n \"jkl-feedback__submit-wrapper--hidden\": currentValue === undefined,\n })}\n >\n {addOnQuestion && (\n <AddonQuestion\n helpLabel={typeof addOnQuestion === \"object\" ? addOnQuestion.helpLabel : undefined}\n label={typeof addOnQuestion === \"object\" ? addOnQuestion.label : undefined}\n />\n )}\n <div className=\"jkl-spacing-xl--top\">\n <PrimaryButton onClick={handleSubmit} className=\"jkl-spacing-xl--right\">\n Send\n </PrimaryButton>\n <TertiaryButton onClick={() => setCurrentValue(undefined)}>Avbryt</TertiaryButton>\n </div>\n </div>\n </MainQuestionContextProvider>\n )}\n {submitted && !contactSubmitted && <FeedbackSuccess {...successMessage} />}\n </>\n );\n};\n"],"names":["defaultSuccessMessage","title","children","MainQuestion","label","options","type","addOnQuestion","successMessage","helpLabel","onSubmit","mainQuestionState","useMainQuestion","setFeedbackSubmitted","contactSubmitted","useFeedbackContext","handleSubmit","currentValue","setCurrentValue","submitted","submitWrapperRef","useAnimatedHeight","useEffect","MainQuestionComp","getQuestionFromType","jsxs","Fragment","MainQuestionContextProvider","state","jsx","ref","className","clsx","AddonQuestion","PrimaryButton","onClick","TertiaryButton","FeedbackSuccess"],"mappings":"2tFAaA,MAAMA,EAAwB,CAC1BC,MAAO,6BACPC,SACI,8HAeKC,EAA0B,EACnCC,MAAAA,EACAC,QAAAA,EACAC,KAAAA,EACAC,cAAAA,EACAC,eAAAA,EAAiBR,EACjBS,UAAAA,EACAC,SAAAA,MAEM,MAAAC,EAAoBC,EAAgBF,IAElCG,qBAAAA,EAAsBC,iBAAAA,GAAqBC,KAC3CC,aAAAA,EAAcC,aAAAA,EAAcC,gBAAAA,EAAiBC,UAAAA,GAAcR,GAC5DS,GAAoBC,OAAmD,IAAjBJ,GAE7DK,GAAU,KACNT,EAAqBM,EAAS,GAC/B,CAACA,EAAWN,IAETU,MAAAA,EAAmBC,EAAoBlB,GAE7C,OAESmB,EAAAC,EAAA,CAAAxB,SAAA,EAACiB,GACEM,EAACE,EAA4B,CAAAC,MAAOjB,EAChCT,SAAA,CAAC2B,EAAAN,EAAA,CAAiBnB,MAAAA,EAAcC,QAAAA,EAAkBI,UAAAA,IAClDgB,EAAC,MAAA,CACGK,IAAKV,EACLW,UAAWC,EAAK,CACZ,gCAAgC,EAChC,4CAAyD,IAAjBf,IAG3Cf,SAAA,CACGK,GAAAsB,EAACI,EAAA,CACGxB,UAAoC,iBAAlBF,EAA6BA,EAAcE,eAAY,EACzEL,MAAgC,iBAAlBG,EAA6BA,EAAcH,WAAQ,IAGzEqB,EAAC,MAAI,CAAAM,UAAU,sBACX7B,SAAA,CAAA2B,EAACK,EAAc,CAAAC,QAASnB,EAAce,UAAU,wBAAwB7B,SAExE,WACCkC,EAAe,CAAAD,QAAS,IAAMjB,OAAgB,GAAYhB,SAAM,oBAKhFiB,IAAcL,GAAqBe,EAAAQ,EAAA,IAAoB7B,MAC5D"}
1
+ {"version":3,"file":"MainQuestion.js","sources":["../../../../../src/components/feedback/main-question/MainQuestion.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { ReactNode, useEffect, FC, ComponentProps } from \"react\";\nimport { useAnimatedHeight } from \"../../../hooks\";\nimport { PrimaryButton, TertiaryButton } from \"../../button\";\nimport { Feedback } from \"../Feedback\";\nimport { useFeedbackContext } from \"../feedbackContext\";\nimport { FeedbackSuccess } from \"../FeedbackSuccess\";\nimport { AddonQuestion } from \"../questions\";\nimport { FeedbackOption, FeedbackType } from \"../types\";\nimport { getQuestionFromType } from \"../utils\";\nimport { MainQuestionContextProvider } from \"./mainQuestionContext\";\nimport { useMainQuestion } from \"./useMainQuestion\";\n\nconst defaultSuccessMessage = {\n title: \"Takk for tilbakemeldingen!\",\n children:\n \"Husk at vi ikke kan besvare meldinger fra dette skjemaet. Kontakt gjerne din forsikringsrådgiver om du har flere spørsmål.\",\n};\n\ntype Props = Pick<ComponentProps<typeof Feedback>, \"addOnQuestion\"> & {\n type: \"radio\" | \"smiley\";\n label: string;\n helpLabel?: string;\n options: FeedbackOption[];\n successMessage?: {\n title: string;\n children: ReactNode;\n };\n onSubmit: (value: FeedbackType) => void;\n};\n\nexport const MainQuestion: FC<Props> = ({\n label,\n options,\n type,\n addOnQuestion,\n successMessage = defaultSuccessMessage,\n helpLabel,\n onSubmit,\n}) => {\n const mainQuestionState = useMainQuestion(onSubmit);\n\n const { setFeedbackSubmitted, contactSubmitted, landmarkLabel } = useFeedbackContext();\n const { handleSubmit, currentValue, setCurrentValue, submitted } = mainQuestionState;\n const [submitWrapperRef] = useAnimatedHeight<HTMLDivElement>(currentValue !== undefined);\n\n useEffect(() => {\n setFeedbackSubmitted(submitted);\n }, [submitted, setFeedbackSubmitted]);\n\n const MainQuestionComp = getQuestionFromType(type);\n\n return (\n <>\n {!submitted && (\n <MainQuestionContextProvider state={mainQuestionState}>\n <form onSubmit={handleSubmit} aria-label={landmarkLabel}>\n <MainQuestionComp label={label} options={options} helpLabel={helpLabel} />\n <div\n ref={submitWrapperRef}\n className={clsx({\n \"jkl-feedback__submit-wrapper\": true,\n \"jkl-feedback__submit-wrapper--hidden\": currentValue === undefined,\n })}\n >\n {addOnQuestion && (\n <AddonQuestion\n helpLabel={typeof addOnQuestion === \"object\" ? addOnQuestion.helpLabel : undefined}\n label={typeof addOnQuestion === \"object\" ? addOnQuestion.label : undefined}\n />\n )}\n <div className=\"jkl-spacing-xl--top\">\n <PrimaryButton className=\"jkl-spacing-xl--right\">Send</PrimaryButton>\n <TertiaryButton type=\"button\" onClick={() => setCurrentValue(undefined)}>\n Avbryt\n </TertiaryButton>\n </div>\n </div>\n </form>\n </MainQuestionContextProvider>\n )}\n {submitted && !contactSubmitted && <FeedbackSuccess {...successMessage} />}\n </>\n );\n};\n"],"names":["defaultSuccessMessage","title","children","MainQuestion","label","options","type","addOnQuestion","successMessage","helpLabel","onSubmit","mainQuestionState","useMainQuestion","setFeedbackSubmitted","contactSubmitted","landmarkLabel","useFeedbackContext","handleSubmit","currentValue","setCurrentValue","submitted","submitWrapperRef","useAnimatedHeight","useEffect","MainQuestionComp","getQuestionFromType","jsxs","Fragment","jsx","MainQuestionContextProvider","state","ref","className","clsx","AddonQuestion","PrimaryButton","TertiaryButton","onClick","FeedbackSuccess"],"mappings":"2tFAaA,MAAMA,EAAwB,CAC1BC,MAAO,6BACPC,SACI,8HAeKC,EAA0B,EACnCC,MAAAA,EACAC,QAAAA,EACAC,KAAAA,EACAC,cAAAA,EACAC,eAAAA,EAAiBR,EACjBS,UAAAA,EACAC,SAAAA,MAEM,MAAAC,EAAoBC,EAAgBF,IAElCG,qBAAAA,EAAsBC,iBAAAA,EAAkBC,cAAAA,GAAkBC,KAC1DC,aAAAA,EAAcC,aAAAA,EAAcC,gBAAAA,EAAiBC,UAAAA,GAAcT,GAC5DU,GAAoBC,OAAmD,IAAjBJ,GAE7DK,GAAU,KACNV,EAAqBO,EAAS,GAC/B,CAACA,EAAWP,IAETW,MAAAA,EAAmBC,EAAoBnB,GAE7C,OAESoB,EAAAC,EAAA,CAAAzB,SAAA,EAACkB,GACGQ,EAAAC,EAAA,CAA4BC,MAAOnB,EAChCT,WAAC,OAAK,CAAAQ,SAAUO,EAAc,aAAYF,EACtCb,SAAA,CAAC0B,EAAAJ,EAAA,CAAiBpB,MAAAA,EAAcC,QAAAA,EAAkBI,UAAAA,IAClDiB,EAAC,MAAA,CACGK,IAAKV,EACLW,UAAWC,EAAK,CACZ,gCAAgC,EAChC,4CAAyD,IAAjBf,IAG3ChB,SAAA,CACGK,GAAAqB,EAACM,EAAA,CACGzB,UAAoC,iBAAlBF,EAA6BA,EAAcE,eAAY,EACzEL,MAAgC,iBAAlBG,EAA6BA,EAAcH,WAAQ,IAGzEsB,EAAC,MAAI,CAAAM,UAAU,sBACX9B,SAAA,CAAC0B,EAAAO,EAAA,CAAcH,UAAU,wBAAwB9B,SAAI,SACrD0B,EAACQ,GAAe9B,KAAK,SAAS+B,QAAS,IAAMlB,OAAgB,GAAYjB,SAEzE,sBAMnBkB,IAAcN,GAAqBc,EAAAU,EAAA,IAAoB9B,MAC5D"}
@@ -1,2 +1,2 @@
1
- import{useState as e,useRef as t,useEffect as s,useCallback as u}from"react";const a=a=>{const[n,r]=e(),[i,o]=e(),[m,l]=e(!1),c=t({onSubmit:a,currentValue:n,message:i,submitted:m});s((()=>{c.current={...c.current,onSubmit:a,currentValue:n,message:i,submitted:m}}),[a,n,i,m]);const d=u(((e=!0)=>{const{message:t,currentValue:s,submitted:u,onSubmit:a}=c.current;if(!u&&void 0!==s){a({feedbackValue:Array.isArray(s)?s.map((e=>e.value)):null==s?void 0:s.value,intentionalSubmit:e,...e&&t?{message:t}:{}})}}),[]),b=u((()=>d(!1)),[d]);return s((()=>(typeof window<"u"&&window.addEventListener("beforeunload",b),()=>{b(),window.removeEventListener("beforeunload",b)})),[b]),{currentValue:n,setCurrentValue:r,message:i,setMessage:o,submitted:m,handleSubmit:()=>{d(),l(!0)}}};export{a as useMainQuestion};
1
+ import{useState as e,useRef as t,useEffect as u,useCallback as s}from"react";const a=a=>{const[n,r]=e(),[i,o]=e(),[m,l]=e(!1),c=t({onSubmit:a,currentValue:n,message:i,submitted:m});u((()=>{c.current={...c.current,onSubmit:a,currentValue:n,message:i,submitted:m}}),[a,n,i,m]);const d=s(((e=!0)=>{const{message:t,currentValue:u,submitted:s,onSubmit:a}=c.current;if(!s&&void 0!==u){a({feedbackValue:Array.isArray(u)?u.map((e=>e.value)):null==u?void 0:u.value,intentionalSubmit:e,...e&&t?{message:t}:{}})}}),[]),b=s((()=>d(!1)),[d]);return u((()=>(typeof window<"u"&&window.addEventListener("beforeunload",b),()=>{b(),window.removeEventListener("beforeunload",b)})),[b]),{currentValue:n,setCurrentValue:r,message:i,setMessage:o,submitted:m,handleSubmit:e=>{e.preventDefault(),d(),l(!0)}}};export{a as useMainQuestion};
2
2
  //# sourceMappingURL=useMainQuestion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMainQuestion.js","sources":["../../../../../src/components/feedback/main-question/useMainQuestion.ts"],"sourcesContent":["import { useState, useRef, useCallback, useEffect, SetStateAction, Dispatch } from \"react\";\nimport { FeedbackType, FeedbackOption } from \"../types\";\n\ntype Value = FeedbackOption<string | number> | FeedbackOption<string | number>[] | undefined;\n\ntype MainQuestion = {\n currentValue: Value;\n setCurrentValue: Dispatch<SetStateAction<Value>>;\n message: string | undefined;\n setMessage: Dispatch<SetStateAction<string | undefined>>;\n submitted: boolean;\n handleSubmit: () => void;\n};\n\nexport const useMainQuestion = (onSubmit: (f: FeedbackType) => void): MainQuestion => {\n const [currentValue, setCurrentValue] = useState<FeedbackOption | FeedbackOption[]>();\n const [message, setMessage] = useState<string>();\n const [submitted, setSubmitted] = useState(false);\n\n const feedbackRef = useRef({\n onSubmit,\n currentValue,\n message,\n submitted,\n });\n\n useEffect(() => {\n feedbackRef.current = {\n ...feedbackRef.current,\n onSubmit,\n currentValue,\n message,\n submitted,\n };\n }, [onSubmit, currentValue, message, submitted]);\n\n const submitHandler = useCallback((intentionalSubmit = true) => {\n const { message, currentValue, submitted, onSubmit } = feedbackRef.current;\n\n if (!submitted && currentValue !== undefined) {\n const feedbackValue = Array.isArray(currentValue)\n ? currentValue.map((option) => option.value)\n : currentValue?.value;\n onSubmit({\n feedbackValue,\n intentionalSubmit,\n ...(intentionalSubmit && message ? { message } : {}),\n });\n }\n }, []);\n\n const autoSubmit = useCallback(() => submitHandler(false), [submitHandler]);\n\n useEffect(() => {\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"beforeunload\", autoSubmit);\n }\n return () => {\n autoSubmit();\n window.removeEventListener(\"beforeunload\", autoSubmit);\n };\n }, [autoSubmit]);\n\n const handleSubmit = () => {\n submitHandler();\n setSubmitted(true);\n };\n\n return {\n currentValue,\n setCurrentValue,\n message,\n setMessage,\n submitted,\n handleSubmit,\n };\n};\n"],"names":["useMainQuestion","onSubmit","currentValue","setCurrentValue","useState","message","setMessage","submitted","setSubmitted","feedbackRef","useRef","useEffect","current","submitHandler","useCallback","intentionalSubmit","feedbackValue","Array","isArray","map","option","value","autoSubmit","window","addEventListener","removeEventListener","handleSubmit"],"mappings":"6EAca,MAAAA,EAAmBC,IACtB,MAACC,EAAcC,GAAmBC,KACjCC,EAASC,GAAcF,KACvBG,EAAWC,GAAgBJ,GAAS,GAErCK,EAAcC,EAAO,CACvBT,SAAAA,EACAC,aAAAA,EACAG,QAAAA,EACAE,UAAAA,IAGJI,GAAU,KACNF,EAAYG,QAAU,IACfH,EAAYG,QACfX,SAAAA,EACAC,aAAAA,EACAG,QAAAA,EACAE,UAAAA,EAAA,GAEL,CAACN,EAAUC,EAAcG,EAASE,IAErC,MAAMM,EAAgBC,GAAY,CAACC,GAAoB,KAC7C,MAAEV,QAAAA,EAASH,aAAAA,EAAcK,UAAAA,EAAWN,SAAAA,GAAaQ,EAAYG,QAE/D,IAACL,QAA8B,IAAjBL,EAA4B,CAI1CD,EAAS,CACLe,cAJkBC,MAAMC,QAAQhB,GAC9BA,EAAaiB,KAAKC,GAAWA,EAAOC,QACpCnB,MAAAA,SAAAA,EAAcmB,MAGhBN,kBAAAA,KACIA,GAAqBV,EAAU,CAAEA,QAAAA,GAAY,CAAC,GAE1D,IACD,IAEGiB,EAAaR,GAAY,IAAMD,GAAc,IAAQ,CAACA,IAE5DF,OAAAA,GAAU,YACKY,OAAW,KACXA,OAAAC,iBAAiB,eAAgBF,GAErC,KACQA,IACJC,OAAAE,oBAAoB,eAAgBH,EAAU,IAE1D,CAACA,IAOG,CACHpB,aAAAA,EACAC,gBAAAA,EACAE,QAAAA,EACAC,WAAAA,EACAC,UAAAA,EACAmB,aAXiB,KACHb,IACdL,GAAa,EAAI,EASjB"}
1
+ {"version":3,"file":"useMainQuestion.js","sources":["../../../../../src/components/feedback/main-question/useMainQuestion.ts"],"sourcesContent":["import { useState, useRef, useCallback, useEffect, SetStateAction, Dispatch, FormEventHandler } from \"react\";\nimport { FeedbackType, FeedbackOption } from \"../types\";\n\ntype Value = FeedbackOption<string | number> | FeedbackOption<string | number>[] | undefined;\n\ntype MainQuestion = {\n currentValue: Value;\n setCurrentValue: Dispatch<SetStateAction<Value>>;\n message: string | undefined;\n setMessage: Dispatch<SetStateAction<string | undefined>>;\n submitted: boolean;\n handleSubmit: FormEventHandler<HTMLFormElement>;\n};\n\nexport const useMainQuestion = (onSubmit: (f: FeedbackType) => void): MainQuestion => {\n const [currentValue, setCurrentValue] = useState<FeedbackOption | FeedbackOption[]>();\n const [message, setMessage] = useState<string>();\n const [submitted, setSubmitted] = useState(false);\n\n const feedbackRef = useRef({\n onSubmit,\n currentValue,\n message,\n submitted,\n });\n\n useEffect(() => {\n feedbackRef.current = {\n ...feedbackRef.current,\n onSubmit,\n currentValue,\n message,\n submitted,\n };\n }, [onSubmit, currentValue, message, submitted]);\n\n const submitHandler = useCallback((intentionalSubmit = true) => {\n const { message, currentValue, submitted, onSubmit } = feedbackRef.current;\n\n if (!submitted && currentValue !== undefined) {\n const feedbackValue = Array.isArray(currentValue)\n ? currentValue.map((option) => option.value)\n : currentValue?.value;\n onSubmit({\n feedbackValue,\n intentionalSubmit,\n ...(intentionalSubmit && message ? { message } : {}),\n });\n }\n }, []);\n\n const autoSubmit = useCallback(() => submitHandler(false), [submitHandler]);\n\n useEffect(() => {\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"beforeunload\", autoSubmit);\n }\n return () => {\n autoSubmit();\n window.removeEventListener(\"beforeunload\", autoSubmit);\n };\n }, [autoSubmit]);\n\n const handleSubmit: FormEventHandler<HTMLFormElement> = (e) => {\n e.preventDefault();\n submitHandler();\n setSubmitted(true);\n };\n\n return {\n currentValue,\n setCurrentValue,\n message,\n setMessage,\n submitted,\n handleSubmit,\n };\n};\n"],"names":["useMainQuestion","onSubmit","currentValue","setCurrentValue","useState","message","setMessage","submitted","setSubmitted","feedbackRef","useRef","useEffect","current","submitHandler","useCallback","intentionalSubmit","feedbackValue","Array","isArray","map","option","value","autoSubmit","window","addEventListener","removeEventListener","handleSubmit","e","preventDefault"],"mappings":"6EAca,MAAAA,EAAmBC,IACtB,MAACC,EAAcC,GAAmBC,KACjCC,EAASC,GAAcF,KACvBG,EAAWC,GAAgBJ,GAAS,GAErCK,EAAcC,EAAO,CACvBT,SAAAA,EACAC,aAAAA,EACAG,QAAAA,EACAE,UAAAA,IAGJI,GAAU,KACNF,EAAYG,QAAU,IACfH,EAAYG,QACfX,SAAAA,EACAC,aAAAA,EACAG,QAAAA,EACAE,UAAAA,EAAA,GAEL,CAACN,EAAUC,EAAcG,EAASE,IAErC,MAAMM,EAAgBC,GAAY,CAACC,GAAoB,KAC7C,MAAEV,QAAAA,EAASH,aAAAA,EAAcK,UAAAA,EAAWN,SAAAA,GAAaQ,EAAYG,QAE/D,IAACL,QAA8B,IAAjBL,EAA4B,CAI1CD,EAAS,CACLe,cAJkBC,MAAMC,QAAQhB,GAC9BA,EAAaiB,KAAKC,GAAWA,EAAOC,QACpCnB,MAAAA,SAAAA,EAAcmB,MAGhBN,kBAAAA,KACIA,GAAqBV,EAAU,CAAEA,QAAAA,GAAY,CAAC,GAE1D,IACD,IAEGiB,EAAaR,GAAY,IAAMD,GAAc,IAAQ,CAACA,IAE5DF,OAAAA,GAAU,YACKY,OAAW,KACXA,OAAAC,iBAAiB,eAAgBF,GAErC,KACQA,IACJC,OAAAE,oBAAoB,eAAgBH,EAAU,IAE1D,CAACA,IAQG,CACHpB,aAAAA,EACAC,gBAAAA,EACAE,QAAAA,EACAC,WAAAA,EACAC,UAAAA,EACAmB,aAZqDC,IACrDA,EAAEC,iBACYf,IACdL,GAAa,EAAI,EASjB"}
@@ -1,2 +1,2 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useState as o,useRef as r,useEffect as a}from"react";import"../../../utilities/polymorphism/SlotComponent.js";import{isValidEpost as n}from"../../../utilities/validators/isValidEpost/isValidEpost.js";import{isValidTelefonnummer as i}from"../../../utilities/validators/isValidTelefonnummer/isValidTelefonnummer.js";import{PrimaryButton as s,TertiaryButton as l}from"../../button/Button.js";import"../../text-input/BaseTextArea.js";import"../../text-input/BaseTextInput.js";import"../../text-input/TextArea.js";import{TextInput as m}from"../../text-input/TextInput.js";import{useFeedbackContext as p}from"../feedbackContext.js";import{FeedbackSuccess as u}from"../FeedbackSuccess.js";const d={title:"Takk for tiden din!",children:"Neste gang vi gjennomfører intervjuer og tester kan det hende vi tar kontakt med deg. Dine innspill hjelper oss med å gjøre nettsidene bedre for deg og alle andre som bruker dem."},c=({label:c="Kan vi kontakte deg for flere innspill?",sendButtonLabel:f="Sett meg på lista!",withPhone:g=!1,onSubmit:k,successMessage:j=d,children:v})=>{const[h,b]=o(""),[x,E]=o(""),[S,T]=o({}),C=r(null),N=r(null),[y,B]=o(!1),[V,D]=o(!1),{contactSubmitted:P,setContactSubmitted:F}=p(),I="string"==typeof v?"p":"div",L=(e,t)=>{const o=(e=>e&&""!==e?n(e)?void 0:"Skriv inn en gyldig e-postadresse":"Du må oppgi e-postadresse for at vi kan kontakte deg")(e),r=(e=>e&&""!==e?i(e)?void 0:"Skriv inn et gyldig telefonnummer":"Du må oppgi telefonnummer for at vi kan kontakte deg")(t);return T({email:o,phone:r}),{emailError:o,phoneError:r}};a((()=>{if(y){const{emailError:e,phoneError:t}=L(h,x);!e&&(!g||!t)&&B(!1)}}),[h,x,y,g]);const A=e=>t=>e(t.target.value);return V?null:P?e(u,{...j}):t("form",{className:"jkl-spacing-xl--top",onSubmit:e=>{var t,o;e.preventDefault();const{emailError:r,phoneError:a}=L(h,x);return r?(B(!0),void(null==(t=C.current)||t.focus())):g&&a?(B(!0),void(null==(o=N.current)||o.focus())):(k({email:h,phone:g?x:void 0}),void F(!0))},children:[e("p",{className:"jkl-heading-4 jkl-spacing-xs--bottom",children:c}),v&&e(I,{className:"jkl-body",children:v}),e(m,{ref:C,className:"jkl-spacing-l--top",label:"E-post",labelProps:{variant:"small"},autoComplete:"email",name:"email",value:h,onChange:A(b),errorLabel:S.email}),g&&e(m,{ref:N,className:"jkl-spacing-l--top",label:"Telefonnummer",labelProps:{variant:"small"},autoComplete:"tel",name:"phone",value:x,onChange:A(E),errorLabel:S.phone}),t("div",{className:"jkl-spacing-xl--top",children:[e(s,{type:"submit",className:"jkl-spacing-xl--right",children:f}),e(l,{onClick:()=>D(!0),children:"Nei takk"})]})]})};export{c as ContactQuestion};
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useState as a,useRef as o,useEffect as r}from"react";import"../../../utilities/polymorphism/SlotComponent.js";import{isValidEpost as n}from"../../../utilities/validators/isValidEpost/isValidEpost.js";import{isValidTelefonnummer as i}from"../../../utilities/validators/isValidTelefonnummer/isValidTelefonnummer.js";import{PrimaryButton as s,TertiaryButton as l}from"../../button/Button.js";import"../../text-input/BaseTextArea.js";import"../../text-input/BaseTextInput.js";import"../../text-input/TextArea.js";import{TextInput as m}from"../../text-input/TextInput.js";import{useFeedbackContext as p}from"../feedbackContext.js";import{FeedbackSuccess as u}from"../FeedbackSuccess.js";const d={title:"Takk for tiden din!",children:"Neste gang vi gjennomfører intervjuer og tester kan det hende vi tar kontakt med deg. Dine innspill hjelper oss med å gjøre nettsidene bedre for deg og alle andre som bruker dem."},c=({label:c="Kan vi kontakte deg for flere innspill?",sendButtonLabel:f="Sett meg på lista!",withPhone:k=!1,onSubmit:g,successMessage:j=d,children:v})=>{const[b,h]=a(""),[x,E]=a(""),[S,T]=a({}),C=o(null),N=o(null),[y,B]=a(!1),[V,D]=a(!1),{contactSubmitted:L,setContactSubmitted:P,landmarkLabel:F}=p(),I="string"==typeof v?"p":"div",A=(e,t)=>{const a=(e=>e&&""!==e?n(e)?void 0:"Skriv inn en gyldig e-postadresse":"Du må oppgi e-postadresse for at vi kan kontakte deg")(e),o=(e=>e&&""!==e?i(e)?void 0:"Skriv inn et gyldig telefonnummer":"Du må oppgi telefonnummer for at vi kan kontakte deg")(t);return T({email:a,phone:o}),{emailError:a,phoneError:o}};r((()=>{if(y){const{emailError:e,phoneError:t}=A(b,x);!e&&(!k||!t)&&B(!1)}}),[b,x,y,k]);const w=e=>t=>e(t.target.value);return V?null:L?e(u,{...j}):t("form",{className:"jkl-spacing-xl--top",onSubmit:e=>{var t,a;e.preventDefault();const{emailError:o,phoneError:r}=A(b,x);return o?(B(!0),void(null==(t=C.current)||t.focus())):k&&r?(B(!0),void(null==(a=N.current)||a.focus())):(g({email:b,phone:k?x:void 0}),void P(!0))},"aria-label":F,children:[e("p",{className:"jkl-heading-4 jkl-spacing-xs--bottom",children:c}),v&&e(I,{className:"jkl-body",children:v}),e(m,{ref:C,className:"jkl-spacing-l--top",label:"E-post",labelProps:{variant:"small"},autoComplete:"email",name:"email",value:b,onChange:w(h),errorLabel:S.email}),k&&e(m,{ref:N,className:"jkl-spacing-l--top",label:"Telefonnummer",labelProps:{variant:"small"},autoComplete:"tel",name:"phone",value:x,onChange:w(E),errorLabel:S.phone}),t("div",{className:"jkl-spacing-xl--top",children:[e(s,{type:"submit",className:"jkl-spacing-xl--right",children:f}),e(l,{onClick:()=>D(!0),children:"Nei takk"})]})]})};export{c as ContactQuestion};
2
2
  //# sourceMappingURL=ContactQuestion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContactQuestion.js","sources":["../../../../../src/components/feedback/questions/ContactQuestion.tsx"],"sourcesContent":["import React, { ChangeEvent, FC, ReactNode, useEffect, useRef, useState } from \"react\";\nimport { isValidEpost, isValidTelefonnummer } from \"../../../utilities\";\nimport { PrimaryButton, TertiaryButton } from \"../../button\";\nimport { TextInput } from \"../../text-input\";\nimport { useFeedbackContext } from \"../feedbackContext\";\nimport { FeedbackSuccess } from \"../FeedbackSuccess\";\n\nconst validateEmail = (email?: string) => {\n if (!email || email === \"\") {\n return \"Du må oppgi e-postadresse for at vi kan kontakte deg\";\n }\n if (!isValidEpost(email)) {\n return \"Skriv inn en gyldig e-postadresse\";\n }\n return;\n};\n\nconst validatePhone = (phone?: string) => {\n if (!phone || phone === \"\") {\n return \"Du må oppgi telefonnummer for at vi kan kontakte deg\";\n }\n if (!isValidTelefonnummer(phone)) {\n return \"Skriv inn et gyldig telefonnummer\";\n }\n return;\n};\n\nconst defaultSuccessMessage = {\n title: \"Takk for tiden din!\",\n children:\n \"Neste gang vi gjennomfører intervjuer og tester kan det hende vi tar kontakt med deg. Dine innspill hjelper oss med å gjøre nettsidene bedre for deg og alle andre som bruker dem.\",\n};\n\ninterface Props {\n /**\n * Lar deg tilpasse spørsmålsteksten.\n * @default \"Kan vi kontakte deg for flere innspill?\"\n * */\n label?: string;\n /**\n * Lar deg tilpasse teksten på knappen for innsending.\n * @default \"Sett meg på lista!\"\n * */\n sendButtonLabel?: string;\n /** Sett til true om du også vil spørre om brukjerens telefonnummer i tillegg til epost */\n withPhone?: boolean;\n /** Her kan du legge inn eventuelt annet innhold du vil ha med. Kommer mellom overskriften og feltene for utfylling */\n children?: ReactNode;\n onSubmit: (values: { email: string; phone?: string }) => void;\n /** Lar deg tilpasse meldingen som kommer når brukeren sender inn skjemaet. */\n successMessage?: {\n title: string;\n children: ReactNode;\n };\n}\n\nexport const ContactQuestion: FC<Props> = ({\n label = \"Kan vi kontakte deg for flere innspill?\",\n sendButtonLabel = \"Sett meg på lista!\",\n withPhone = false,\n onSubmit,\n successMessage = defaultSuccessMessage,\n children,\n}) => {\n const [email, setEmail] = useState(\"\");\n const [phone, setPhone] = useState(\"\");\n const [errors, setErrors] = useState<{ email?: string; phone?: string }>({});\n const emailRef = useRef<HTMLInputElement>(null);\n const phoneRef = useRef<HTMLInputElement>(null);\n const [shouldValidate, setShouldValidate] = useState(false);\n\n const [noThanks, setNoThanks] = useState(false);\n const { contactSubmitted, setContactSubmitted } = useFeedbackContext();\n\n const ChildrenWrapper = typeof children === \"string\" ? \"p\" : \"div\";\n\n const validate = (email: string, phone: string) => {\n const emailError = validateEmail(email);\n const phoneError = validatePhone(phone);\n setErrors({ email: emailError, phone: phoneError });\n return { emailError, phoneError };\n };\n\n useEffect(() => {\n if (shouldValidate) {\n const { emailError, phoneError } = validate(email, phone);\n\n if (!emailError && (!withPhone || !phoneError)) {\n setShouldValidate(false);\n }\n }\n }, [email, phone, shouldValidate, withPhone]);\n\n const handleChange = (consumer: (value: string) => void) => (e: ChangeEvent<HTMLInputElement>) =>\n consumer(e.target.value);\n\n const handleSubmit: React.FormEventHandler = (e) => {\n e.preventDefault();\n\n const { emailError, phoneError } = validate(email, phone);\n if (emailError) {\n setShouldValidate(true);\n emailRef.current?.focus();\n return;\n }\n if (withPhone && phoneError) {\n setShouldValidate(true);\n phoneRef.current?.focus();\n return;\n }\n\n onSubmit({ email, phone: withPhone ? phone : undefined });\n setContactSubmitted(true);\n };\n\n if (noThanks) {\n return null;\n }\n\n if (contactSubmitted) {\n return <FeedbackSuccess {...successMessage} />;\n }\n\n return (\n <form className=\"jkl-spacing-xl--top\" onSubmit={handleSubmit}>\n <p className=\"jkl-heading-4 jkl-spacing-xs--bottom\">{label}</p>\n {children && <ChildrenWrapper className=\"jkl-body\">{children}</ChildrenWrapper>}\n\n <TextInput\n ref={emailRef}\n className=\"jkl-spacing-l--top\"\n label=\"E-post\"\n labelProps={{ variant: \"small\" }}\n autoComplete=\"email\"\n name=\"email\"\n value={email}\n onChange={handleChange(setEmail)}\n errorLabel={errors.email}\n />\n {withPhone && (\n <TextInput\n ref={phoneRef}\n className=\"jkl-spacing-l--top\"\n label=\"Telefonnummer\"\n labelProps={{ variant: \"small\" }}\n autoComplete=\"tel\"\n name=\"phone\"\n value={phone}\n onChange={handleChange(setPhone)}\n errorLabel={errors.phone}\n />\n )}\n\n <div className=\"jkl-spacing-xl--top\">\n <PrimaryButton type=\"submit\" className=\"jkl-spacing-xl--right\">\n {sendButtonLabel}\n </PrimaryButton>\n <TertiaryButton onClick={() => setNoThanks(true)}>Nei takk</TertiaryButton>\n </div>\n </form>\n );\n};\n"],"names":["defaultSuccessMessage","title","children","ContactQuestion","label","sendButtonLabel","withPhone","onSubmit","successMessage","email","setEmail","useState","phone","setPhone","errors","setErrors","emailRef","useRef","phoneRef","shouldValidate","setShouldValidate","noThanks","setNoThanks","contactSubmitted","setContactSubmitted","useFeedbackContext","ChildrenWrapper","validate","emailError","isValidEpost","validateEmail","phoneError","isValidTelefonnummer","validatePhone","useEffect","handleChange","consumer","e","target","value","jsx","FeedbackSuccess","jsxs","className","preventDefault","_a","current","focus","_b","TextInput","ref","labelProps","variant","autoComplete","name","onChange","errorLabel","PrimaryButton","type","TertiaryButton","onClick"],"mappings":"muBAOA,MAoBMA,EAAwB,CAC1BC,MAAO,sBACPC,SACI,sLA0BKC,EAA6B,EACtCC,MAAAA,EAAQ,0CACRC,gBAAAA,EAAkB,qBAClBC,UAAAA,GAAY,EACZC,SAAAA,EACAC,eAAAA,EAAiBR,EACjBE,SAAAA,MAEA,MAAOO,EAAOC,GAAYC,EAAS,KAC5BC,EAAOC,GAAYF,EAAS,KAC5BG,EAAQC,GAAaJ,EAA6C,CAAE,GACrEK,EAAWC,EAAyB,MACpCC,EAAWD,EAAyB,OACnCE,EAAgBC,GAAqBT,GAAS,IAE9CU,EAAUC,GAAeX,GAAS,IACjCY,iBAAAA,EAAkBC,oBAAAA,GAAwBC,IAE5CC,EAAsC,iBAAbxB,EAAwB,IAAM,MAEvDyB,EAAW,CAAClB,EAAeG,KACvB,MAAAgB,EAtEQ,CAACnB,GACdA,GAAmB,KAAVA,EAGToB,EAAapB,QAAd,EACO,oCAHA,uDAoEYqB,CAAcrB,GAC3BsB,EA7DQ,CAACnB,GACdA,GAAmB,KAAVA,EAGToB,EAAqBpB,QAAtB,EACO,oCAHA,uDA2DYqB,CAAcrB,GACjC,OAAAG,EAAU,CAAEN,MAAOmB,EAAYhB,MAAOmB,IAC/B,CAAEH,WAAAA,EAAYG,WAAAA,IAGzBG,GAAU,KACN,GAAIf,EAAgB,CACV,MAAES,WAAAA,EAAYG,WAAAA,GAAeJ,EAASlB,EAAOG,IAE9CgB,KAAgBtB,IAAcyB,IAC/BX,GAAkB,EAE1B,IACD,CAACX,EAAOG,EAAOO,EAAgBb,IAE5B,MAAA6B,EAAgBC,GAAuCC,GACzDD,EAASC,EAAEC,OAAOC,OAqBtB,OAAIlB,EACO,KAGPE,EACOiB,EAACC,EAAiB,IAAGjC,IAI3BkC,EAAA,OAAA,CAAKC,UAAU,sBAAsBpC,SA5BI8B,YAC1CA,EAAEO,iBAEI,MAAEhB,WAAAA,EAAYG,WAAAA,GAAeJ,EAASlB,EAAOG,GACnD,OAAIgB,GACAR,GAAkB,QAClB,OAAAyB,EAAA7B,EAAS8B,UAATD,EAAkBE,UAGlBzC,GAAayB,GACbX,GAAkB,QAClB,OAAA4B,EAAA9B,EAAS4B,UAATE,EAAkBD,WAItBxC,EAAS,CAAEE,MAAAA,EAAOG,MAAON,EAAYM,OAAQ,SAC7CY,GAAoB,GAAI,EAapBtB,SAAA,CAACsC,EAAA,IAAA,CAAEG,UAAU,uCAAwCzC,SAAME,IAC1DF,GAAYsC,EAACd,EAAgB,CAAAiB,UAAU,WAAYzC,SAAAA,IAEpDsC,EAACS,EAAA,CACGC,IAAKlC,EACL2B,UAAU,qBACVvC,MAAM,SACN+C,WAAY,CAAEC,QAAS,SACvBC,aAAa,QACbC,KAAK,QACLf,MAAO9B,EACP8C,SAAUpB,EAAazB,GACvB8C,WAAY1C,EAAOL,QAEtBH,GACGkC,EAACS,EAAA,CACGC,IAAKhC,EACLyB,UAAU,qBACVvC,MAAM,gBACN+C,WAAY,CAAEC,QAAS,SACvBC,aAAa,MACbC,KAAK,QACLf,MAAO3B,EACP2C,SAAUpB,EAAatB,GACvB2C,WAAY1C,EAAOF,QAI3B8B,EAAC,MAAI,CAAAC,UAAU,sBACXzC,SAAA,CAAAsC,EAACiB,EAAc,CAAAC,KAAK,SAASf,UAAU,wBAClCzC,SACLG,MACCsD,EAAe,CAAAC,QAAS,IAAMtC,GAAY,GAAOpB,SAAQ,kBAElE"}
1
+ {"version":3,"file":"ContactQuestion.js","sources":["../../../../../src/components/feedback/questions/ContactQuestion.tsx"],"sourcesContent":["import React, { ChangeEvent, FC, ReactNode, useEffect, useRef, useState } from \"react\";\nimport { isValidEpost, isValidTelefonnummer } from \"../../../utilities\";\nimport { PrimaryButton, TertiaryButton } from \"../../button\";\nimport { TextInput } from \"../../text-input\";\nimport { useFeedbackContext } from \"../feedbackContext\";\nimport { FeedbackSuccess } from \"../FeedbackSuccess\";\n\nconst validateEmail = (email?: string) => {\n if (!email || email === \"\") {\n return \"Du må oppgi e-postadresse for at vi kan kontakte deg\";\n }\n if (!isValidEpost(email)) {\n return \"Skriv inn en gyldig e-postadresse\";\n }\n return;\n};\n\nconst validatePhone = (phone?: string) => {\n if (!phone || phone === \"\") {\n return \"Du må oppgi telefonnummer for at vi kan kontakte deg\";\n }\n if (!isValidTelefonnummer(phone)) {\n return \"Skriv inn et gyldig telefonnummer\";\n }\n return;\n};\n\nconst defaultSuccessMessage = {\n title: \"Takk for tiden din!\",\n children:\n \"Neste gang vi gjennomfører intervjuer og tester kan det hende vi tar kontakt med deg. Dine innspill hjelper oss med å gjøre nettsidene bedre for deg og alle andre som bruker dem.\",\n};\n\ninterface Props {\n /**\n * Lar deg tilpasse spørsmålsteksten.\n * @default \"Kan vi kontakte deg for flere innspill?\"\n * */\n label?: string;\n /**\n * Lar deg tilpasse teksten på knappen for innsending.\n * @default \"Sett meg på lista!\"\n * */\n sendButtonLabel?: string;\n /** Sett til true om du også vil spørre om brukjerens telefonnummer i tillegg til epost */\n withPhone?: boolean;\n /** Her kan du legge inn eventuelt annet innhold du vil ha med. Kommer mellom overskriften og feltene for utfylling */\n children?: ReactNode;\n onSubmit: (values: { email: string; phone?: string }) => void;\n /** Lar deg tilpasse meldingen som kommer når brukeren sender inn skjemaet. */\n successMessage?: {\n title: string;\n children: ReactNode;\n };\n}\n\nexport const ContactQuestion: FC<Props> = ({\n label = \"Kan vi kontakte deg for flere innspill?\",\n sendButtonLabel = \"Sett meg på lista!\",\n withPhone = false,\n onSubmit,\n successMessage = defaultSuccessMessage,\n children,\n}) => {\n const [email, setEmail] = useState(\"\");\n const [phone, setPhone] = useState(\"\");\n const [errors, setErrors] = useState<{ email?: string; phone?: string }>({});\n const emailRef = useRef<HTMLInputElement>(null);\n const phoneRef = useRef<HTMLInputElement>(null);\n const [shouldValidate, setShouldValidate] = useState(false);\n\n const [noThanks, setNoThanks] = useState(false);\n const { contactSubmitted, setContactSubmitted, landmarkLabel } = useFeedbackContext();\n\n const ChildrenWrapper = typeof children === \"string\" ? \"p\" : \"div\";\n\n const validate = (email: string, phone: string) => {\n const emailError = validateEmail(email);\n const phoneError = validatePhone(phone);\n setErrors({ email: emailError, phone: phoneError });\n return { emailError, phoneError };\n };\n\n useEffect(() => {\n if (shouldValidate) {\n const { emailError, phoneError } = validate(email, phone);\n\n if (!emailError && (!withPhone || !phoneError)) {\n setShouldValidate(false);\n }\n }\n }, [email, phone, shouldValidate, withPhone]);\n\n const handleChange = (consumer: (value: string) => void) => (e: ChangeEvent<HTMLInputElement>) =>\n consumer(e.target.value);\n\n const handleSubmit: React.FormEventHandler = (e) => {\n e.preventDefault();\n\n const { emailError, phoneError } = validate(email, phone);\n if (emailError) {\n setShouldValidate(true);\n emailRef.current?.focus();\n return;\n }\n if (withPhone && phoneError) {\n setShouldValidate(true);\n phoneRef.current?.focus();\n return;\n }\n\n onSubmit({ email, phone: withPhone ? phone : undefined });\n setContactSubmitted(true);\n };\n\n if (noThanks) {\n return null;\n }\n\n if (contactSubmitted) {\n return <FeedbackSuccess {...successMessage} />;\n }\n\n return (\n <form className=\"jkl-spacing-xl--top\" onSubmit={handleSubmit} aria-label={landmarkLabel}>\n <p className=\"jkl-heading-4 jkl-spacing-xs--bottom\">{label}</p>\n {children && <ChildrenWrapper className=\"jkl-body\">{children}</ChildrenWrapper>}\n\n <TextInput\n ref={emailRef}\n className=\"jkl-spacing-l--top\"\n label=\"E-post\"\n labelProps={{ variant: \"small\" }}\n autoComplete=\"email\"\n name=\"email\"\n value={email}\n onChange={handleChange(setEmail)}\n errorLabel={errors.email}\n />\n {withPhone && (\n <TextInput\n ref={phoneRef}\n className=\"jkl-spacing-l--top\"\n label=\"Telefonnummer\"\n labelProps={{ variant: \"small\" }}\n autoComplete=\"tel\"\n name=\"phone\"\n value={phone}\n onChange={handleChange(setPhone)}\n errorLabel={errors.phone}\n />\n )}\n\n <div className=\"jkl-spacing-xl--top\">\n <PrimaryButton type=\"submit\" className=\"jkl-spacing-xl--right\">\n {sendButtonLabel}\n </PrimaryButton>\n <TertiaryButton onClick={() => setNoThanks(true)}>Nei takk</TertiaryButton>\n </div>\n </form>\n );\n};\n"],"names":["defaultSuccessMessage","title","children","ContactQuestion","label","sendButtonLabel","withPhone","onSubmit","successMessage","email","setEmail","useState","phone","setPhone","errors","setErrors","emailRef","useRef","phoneRef","shouldValidate","setShouldValidate","noThanks","setNoThanks","contactSubmitted","setContactSubmitted","landmarkLabel","useFeedbackContext","ChildrenWrapper","validate","emailError","isValidEpost","validateEmail","phoneError","isValidTelefonnummer","validatePhone","useEffect","handleChange","consumer","e","target","value","jsx","FeedbackSuccess","className","preventDefault","_a","current","focus","_b","TextInput","ref","labelProps","variant","autoComplete","name","onChange","errorLabel","jsxs","PrimaryButton","type","TertiaryButton","onClick"],"mappings":"muBAOA,MAoBMA,EAAwB,CAC1BC,MAAO,sBACPC,SACI,sLA0BKC,EAA6B,EACtCC,MAAAA,EAAQ,0CACRC,gBAAAA,EAAkB,qBAClBC,UAAAA,GAAY,EACZC,SAAAA,EACAC,eAAAA,EAAiBR,EACjBE,SAAAA,MAEA,MAAOO,EAAOC,GAAYC,EAAS,KAC5BC,EAAOC,GAAYF,EAAS,KAC5BG,EAAQC,GAAaJ,EAA6C,CAAE,GACrEK,EAAWC,EAAyB,MACpCC,EAAWD,EAAyB,OACnCE,EAAgBC,GAAqBT,GAAS,IAE9CU,EAAUC,GAAeX,GAAS,IACjCY,iBAAAA,EAAkBC,oBAAAA,EAAqBC,cAAAA,GAAkBC,IAE3DC,EAAsC,iBAAbzB,EAAwB,IAAM,MAEvD0B,EAAW,CAACnB,EAAeG,KACvB,MAAAiB,EAtEQ,CAACpB,GACdA,GAAmB,KAAVA,EAGTqB,EAAarB,QAAd,EACO,oCAHA,uDAoEYsB,CAActB,GAC3BuB,EA7DQ,CAACpB,GACdA,GAAmB,KAAVA,EAGTqB,EAAqBrB,QAAtB,EACO,oCAHA,uDA2DYsB,CAActB,GACjC,OAAAG,EAAU,CAAEN,MAAOoB,EAAYjB,MAAOoB,IAC/B,CAAEH,WAAAA,EAAYG,WAAAA,IAGzBG,GAAU,KACN,GAAIhB,EAAgB,CACV,MAAEU,WAAAA,EAAYG,WAAAA,GAAeJ,EAASnB,EAAOG,IAE9CiB,KAAgBvB,IAAc0B,IAC/BZ,GAAkB,EAE1B,IACD,CAACX,EAAOG,EAAOO,EAAgBb,IAE5B,MAAA8B,EAAgBC,GAAuCC,GACzDD,EAASC,EAAEC,OAAOC,OAqBlBnB,OAAAA,EACO,KAGPE,EACOkB,EAACC,EAAiB,IAAGlC,MAI3B,OAAK,CAAAmC,UAAU,sBAAsBpC,SA5BI+B,YAC1CA,EAAEM,iBAEI,MAAEf,WAAAA,EAAYG,WAAAA,GAAeJ,EAASnB,EAAOG,GACnD,OAAIiB,GACAT,GAAkB,QAClB,OAAAyB,EAAA7B,EAAS8B,UAATD,EAAkBE,UAGlBzC,GAAa0B,GACbZ,GAAkB,QAClB,OAAA4B,EAAA9B,EAAS4B,UAATE,EAAkBD,WAItBxC,EAAS,CAAEE,MAAAA,EAAOG,MAAON,EAAYM,OAAQ,SAC7CY,GAAoB,GAAI,EAYsC,aAAYC,EACtEvB,SAAA,CAACuC,EAAA,IAAA,CAAEE,UAAU,uCAAwCzC,SAAME,IAC1DF,GAAYuC,EAACd,EAAgB,CAAAgB,UAAU,WAAYzC,SAAAA,IAEpDuC,EAACQ,EAAA,CACGC,IAAKlC,EACL2B,UAAU,qBACVvC,MAAM,SACN+C,WAAY,CAAEC,QAAS,SACvBC,aAAa,QACbC,KAAK,QACLd,MAAO/B,EACP8C,SAAUnB,EAAa1B,GACvB8C,WAAY1C,EAAOL,QAEtBH,GACGmC,EAACQ,EAAA,CACGC,IAAKhC,EACLyB,UAAU,qBACVvC,MAAM,gBACN+C,WAAY,CAAEC,QAAS,SACvBC,aAAa,MACbC,KAAK,QACLd,MAAO5B,EACP2C,SAAUnB,EAAavB,GACvB2C,WAAY1C,EAAOF,QAI3B6C,EAAC,MAAI,CAAAd,UAAU,sBACXzC,SAAA,CAAAuC,EAACiB,EAAc,CAAAC,KAAK,SAAShB,UAAU,wBAClCzC,SACLG,MACCuD,EAAe,CAAAC,QAAS,IAAMvC,GAAY,GAAOpB,SAAQ,kBAElE"}
@@ -1,2 +1,2 @@
1
- import{AccordionItem as o}from"./accordion/AccordionItem.js";import{Accordion as s}from"./accordion/Accordion.js";import{Breadcrumb as a}from"./breadcrumb/Breadcrumb.js";import{BreadcrumbItem as r}from"./breadcrumb/BreadcrumbItem.js";import{Button as n,PrimaryButton as e,SecondaryButton as t,TertiaryButton as i}from"./button/Button.js";import{Card as c}from"./card/Card.js";import{CardImage as m}from"./card/CardImage.js";import{InfoBlock as p,NavCard as d}from"./card/NavCard.js";import{TaskCard as l}from"./card/TaskCard.js";import{InfoCard as I}from"./card/InfoCard.js";import{Checkbox as u}from"./checkbox/Checkbox.js";import{Combobox as f,getComboboxValuePair as j}from"./combobox/Combobox.js";import{CookieConsent as k}from"./cookie-consent/CookieConsent.js";import{CookieConsentProvider as C,useCookieConsent as g}from"./cookie-consent/CookieConsentContext.js";import{isCorrectFormat as T,isWithinLowerBound as b,isWithinUpperBound as S}from"./datepicker/validation.js";import{dayMonthYearRegex as h,formatInput as B,isBlurTargetOutside as A,parseDateString as L}from"./datepicker/utils.js";import{DatePicker as M}from"./datepicker/DatePicker.js";import{Feedback as x}from"./feedback/Feedback.js";import{PRESETS as w}from"./feedback/presets.js";import{Icon as R}from"./icon/Icon.js";import{ArrowVerticalAnimated as v}from"./icon/icons/animated/ArrowVerticalAnimated.js";import{ArrowHorizontalAnimated as P}from"./icon/icons/animated/ArrowHorizontalAnimated.js";import{PlusRemoveAnimated as D}from"./icon/icons/animated/PlusRemoveAnimated.js";import{ArrowDownIcon as E}from"./icon/icons/ArrowDownIcon.js";import{ArrowLeftIcon as y}from"./icon/icons/ArrowLeftIcon.js";import{ArrowNorthEastIcon as G}from"./icon/icons/ArrowNorthEastIcon.js";import{ArrowRightIcon as U}from"./icon/icons/ArrowRightIcon.js";import{ArrowUpIcon as N}from"./icon/icons/ArrowUpIcon.js";import{CalendarIcon as F}from"./icon/icons/CalendarIcon.js";import{CheckIcon as W}from"./icon/icons/CheckIcon.js";import{ChevronDownIcon as H}from"./icon/icons/ChevronDownIcon.js";import{ChevronLeftIcon as O}from"./icon/icons/ChevronLeftIcon.js";import{ChevronRightIcon as V}from"./icon/icons/ChevronRightIcon.js";import{ChevronUpIcon as z}from"./icon/icons/ChevronUpIcon.js";import{CloseIcon as Q}from"./icon/icons/CloseIcon.js";import{CopyIcon as Y}from"./icon/icons/CopyIcon.js";import{DotsIcon as q}from"./icon/icons/DotsIcon.js";import{DragIcon as J}from"./icon/icons/DragIcon.js";import{ErrorIcon as K}from"./icon/icons/ErrorIcon.js";import{GreenCheckIcon as X}from"./icon/icons/GreenCheckIcon.js";import{HamburgerIcon as Z}from"./icon/icons/HamburgerIcon.js";import{InfoIcon as $}from"./icon/icons/InfoIcon.js";import{LinkIcon as _}from"./icon/icons/LinkIcon.js";import{PlusIcon as oo}from"./icon/icons/PlusIcon.js";import{QuestionIcon as so}from"./icon/icons/QuestionIcon.js";import{RedCrossIcon as ao}from"./icon/icons/RedCrossIcon.js";import{SearchIcon as ro}from"./icon/icons/SearchIcon.js";import{SuccessIcon as no}from"./icon/icons/SuccessIcon.js";import{WarningIcon as eo}from"./icon/icons/WarningIcon.js";import{MinusIcon as to}from"./icon/icons/MinusIcon.js";import{ThumbDownIcon as io}from"./icon/icons/ThumbDownIcon.js";import{ThumbUpIcon as co}from"./icon/icons/ThumbUpIcon.js";import{TrashCanIcon as mo}from"./icon/icons/TrashCanIcon.js";import{PenIcon as po}from"./icon/icons/PenIcon.js";import{IconButton as lo}from"./icon-button/IconButton.js";import{Image as Io}from"./image/Image.js";import{FieldGroup as uo}from"./input-group/FieldGroup.js";import{InputGroup as fo}from"./input-group/InputGroup.js";import{Label as jo}from"./input-group/Label.js";import{SupportLabel as ko}from"./input-group/SupportLabel.js";import{Link as Co}from"./link/Link.js";import{NavLink as go}from"./link/NavLink.js";import{LinkList as To}from"./link-list/LinkList.js";import{List as bo,OrderedList as So,UnorderedList as ho}from"./list/List.js";import{CheckListItem as Bo,CrossListItem as Ao,ListItem as Lo}from"./list/ListItem.js";import{Loader as Mo}from"./loader/Loader.js";import{SkeletonAnimation as xo}from"./loader/skeletons/SkeletonAnimation.js";import{SkeletonButton as wo}from"./loader/skeletons/SkeletonButton.js";import{SkeletonCheckboxGroup as Ro}from"./loader/skeletons/SkeletonCheckboxGroup.js";import{SkeletonElement as vo}from"./loader/skeletons/SkeletonElement.js";import{SkeletonInput as Po}from"./loader/skeletons/SkeletonInput.js";import{SkeletonRadioButtonGroup as Do}from"./loader/skeletons/SkeletonRadioButtonGroup.js";import{SkeletonTable as Eo,SkeletonTableHeader as yo,SkeletonTableRow as Go}from"./loader/skeletons/SkeletonTable.js";import{SkeletonTextArea as Uo}from"./loader/skeletons/SkeletonTextArea.js";import{ErrorMessage as No,InfoMessage as Fo,SuccessMessage as Wo,WarningMessage as Ho}from"./message/Message.js";import{FormErrorMessage as Oo}from"./message/FormErrorMessage.js";import{Modal as Vo,ModalActions as zo,ModalBody as Qo,ModalCloseButton as Yo,ModalContainer as qo,ModalHeader as Jo,ModalOverlay as Ko,ModalTitle as Xo}from"./modal/Modal.js";import{useModal as Zo}from"./modal/useModal.js";import{default as $o}from"./popover/Popover.js";import{RadioButton as _o}from"./radio-button/RadioButton.js";import{RadioButtonGroup as os}from"./radio-button/RadioButtonGroup.js";import{BaseRadioButton as ss}from"./radio-button/BaseRadioButton.js";import{N as as,S as rs}from"../../NativeSelect-CfNZEQF0.js";import{ErrorTag as ns,InfoTag as es,SuccessTag as ts,Tag as is,WarningTag as cs}from"./tag/Tag.js";import{BaseTextArea as ms}from"./text-input/BaseTextArea.js";import{BaseTextInput as ps}from"./text-input/BaseTextInput.js";import{TextArea as ds}from"./text-input/TextArea.js";import{TextInput as ls}from"./text-input/TextInput.js";import{Tooltip as Is}from"./tooltip/Tooltip.js";import{TooltipContent as us}from"./tooltip/TooltipContent.js";import{TooltipTrigger as fs}from"./tooltip/TooltipTrigger.js";import{PopupTip as js}from"./tooltip/PopupTip.js";import{ScreenReaderOnly as ks}from"./ScreenReaderOnly.js";export{s as Accordion,o as AccordionItem,E as ArrowDownIcon,P as ArrowHorizontalAnimated,y as ArrowLeftIcon,G as ArrowNorthEastIcon,U as ArrowRightIcon,N as ArrowUpIcon,v as ArrowVerticalAnimated,ss as BaseRadioButton,ms as BaseTextArea,ps as BaseTextInput,a as Breadcrumb,r as BreadcrumbItem,n as Button,F as CalendarIcon,c as Card,m as CardImage,W as CheckIcon,Bo as CheckListItem,u as Checkbox,H as ChevronDownIcon,O as ChevronLeftIcon,V as ChevronRightIcon,z as ChevronUpIcon,Q as CloseIcon,f as Combobox,k as CookieConsent,C as CookieConsentProvider,Y as CopyIcon,Ao as CrossListItem,M as DatePicker,q as DotsIcon,J as DragIcon,K as ErrorIcon,No as ErrorMessage,ns as ErrorTag,x as Feedback,uo as FieldGroup,Oo as FormErrorMessage,X as GreenCheckIcon,Z as HamburgerIcon,R as Icon,lo as IconButton,Io as Image,p as InfoBlock,I as InfoCard,$ as InfoIcon,Fo as InfoMessage,es as InfoTag,fo as InputGroup,jo as Label,Co as Link,_ as LinkIcon,To as LinkList,bo as List,Lo as ListItem,Mo as Loader,to as MinusIcon,Vo as Modal,zo as ModalActions,Qo as ModalBody,Yo as ModalCloseButton,qo as ModalContainer,Jo as ModalHeader,Ko as ModalOverlay,Xo as ModalTitle,as as NativeSelect,d as NavCard,go as NavLink,So as OrderedList,w as PRESETS,po as PenIcon,oo as PlusIcon,D as PlusRemoveAnimated,$o as Popover,js as PopupTip,e as PrimaryButton,so as QuestionIcon,_o as RadioButton,os as RadioButtonGroup,ao as RedCrossIcon,ks as ScreenReaderOnly,ro as SearchIcon,t as SecondaryButton,rs as Select,xo as SkeletonAnimation,wo as SkeletonButton,Ro as SkeletonCheckboxGroup,vo as SkeletonElement,Po as SkeletonInput,Do as SkeletonRadioButtonGroup,Eo as SkeletonTable,yo as SkeletonTableHeader,Go as SkeletonTableRow,Uo as SkeletonTextArea,no as SuccessIcon,Wo as SuccessMessage,ts as SuccessTag,ko as SupportLabel,is as Tag,l as TaskCard,i as TertiaryButton,ds as TextArea,ls as TextInput,io as ThumbDownIcon,co as ThumbUpIcon,Is as Tooltip,us as TooltipContent,fs as TooltipTrigger,mo as TrashCanIcon,ho as UnorderedList,eo as WarningIcon,Ho as WarningMessage,cs as WarningTag,h as dayMonthYearRegex,B as formatInput,j as getComboboxValuePair,A as isBlurTargetOutside,T as isCorrectFormat,b as isWithinLowerBound,S as isWithinUpperBound,L as parseDateString,g as useCookieConsent,Zo as useModal};
1
+ import{AccordionItem as o}from"./accordion/AccordionItem.js";import{Accordion as a}from"./accordion/Accordion.js";import{Breadcrumb as s}from"./breadcrumb/Breadcrumb.js";import{BreadcrumbItem as r}from"./breadcrumb/BreadcrumbItem.js";import{Button as e,PrimaryButton as t,SecondaryButton as n,TertiaryButton as i}from"./button/Button.js";import{Card as m}from"./card/Card.js";import{CardImage as c}from"./card/CardImage.js";import{InfoBlock as l,NavCard as p}from"./card/NavCard.js";import{TaskCard as d}from"./card/TaskCard.js";import{InfoCard as u}from"./card/InfoCard.js";import{Checkbox as b}from"./checkbox/Checkbox.js";import{Combobox as f,getComboboxValuePair as T}from"./combobox/Combobox.js";import{CookieConsent as I}from"./cookie-consent/CookieConsent.js";import{CookieConsentProvider as g,useCookieConsent as j}from"./cookie-consent/CookieConsentContext.js";import{isCorrectFormat as C,isWithinLowerBound as k,isWithinUpperBound as S}from"./datepicker/validation.js";import{dayMonthYearRegex as B,formatInput as h,isBlurTargetOutside as x,parseDateString as L}from"./datepicker/utils.js";import{DatePicker as A}from"./datepicker/DatePicker.js";import{Feedback as v}from"./feedback/Feedback.js";import{PRESETS as w}from"./feedback/presets.js";import{DescriptionDetail as M,DescriptionList as R,DescriptionTerm as F}from"./description-list/DescriptionList.js";import{a as y,b as P,E as D,N as E,S as G,T as N}from"../../ExpandableTableRow-BJSqC_Jo.js";import{ExpandSection as H}from"./expander/ExpandSection.js";import{Icon as U}from"./icon/Icon.js";import{ArrowVerticalAnimated as W}from"./icon/icons/animated/ArrowVerticalAnimated.js";import{ArrowHorizontalAnimated as V}from"./icon/icons/animated/ArrowHorizontalAnimated.js";import{PlusRemoveAnimated as O}from"./icon/icons/animated/PlusRemoveAnimated.js";import{ArrowDownIcon as z}from"./icon/icons/ArrowDownIcon.js";import{ArrowLeftIcon as Q}from"./icon/icons/ArrowLeftIcon.js";import{ArrowNorthEastIcon as Y}from"./icon/icons/ArrowNorthEastIcon.js";import{ArrowRightIcon as q}from"./icon/icons/ArrowRightIcon.js";import{ArrowUpIcon as J}from"./icon/icons/ArrowUpIcon.js";import{CalendarIcon as K}from"./icon/icons/CalendarIcon.js";import{CheckIcon as X}from"./icon/icons/CheckIcon.js";import{ChevronDownIcon as Z}from"./icon/icons/ChevronDownIcon.js";import{ChevronLeftIcon as $}from"./icon/icons/ChevronLeftIcon.js";import{ChevronRightIcon as _}from"./icon/icons/ChevronRightIcon.js";import{ChevronUpIcon as oo}from"./icon/icons/ChevronUpIcon.js";import{CloseIcon as ao}from"./icon/icons/CloseIcon.js";import{CopyIcon as so}from"./icon/icons/CopyIcon.js";import{DotsIcon as ro}from"./icon/icons/DotsIcon.js";import{DragIcon as eo}from"./icon/icons/DragIcon.js";import{ErrorIcon as to}from"./icon/icons/ErrorIcon.js";import{GreenCheckIcon as no}from"./icon/icons/GreenCheckIcon.js";import{HamburgerIcon as io}from"./icon/icons/HamburgerIcon.js";import{InfoIcon as mo}from"./icon/icons/InfoIcon.js";import{LinkIcon as co}from"./icon/icons/LinkIcon.js";import{PlusIcon as lo}from"./icon/icons/PlusIcon.js";import{QuestionIcon as po}from"./icon/icons/QuestionIcon.js";import{RedCrossIcon as uo}from"./icon/icons/RedCrossIcon.js";import{SearchIcon as bo}from"./icon/icons/SearchIcon.js";import{SuccessIcon as fo}from"./icon/icons/SuccessIcon.js";import{WarningIcon as To}from"./icon/icons/WarningIcon.js";import{MinusIcon as Io}from"./icon/icons/MinusIcon.js";import{ThumbDownIcon as go}from"./icon/icons/ThumbDownIcon.js";import{ThumbUpIcon as jo}from"./icon/icons/ThumbUpIcon.js";import{TrashCanIcon as Co}from"./icon/icons/TrashCanIcon.js";import{PenIcon as ko}from"./icon/icons/PenIcon.js";import{IconButton as So}from"./icon-button/IconButton.js";import{Image as Bo}from"./image/Image.js";import{FieldGroup as ho}from"./input-group/FieldGroup.js";import{InputGroup as xo}from"./input-group/InputGroup.js";import{Label as Lo}from"./input-group/Label.js";import{SupportLabel as Ao}from"./input-group/SupportLabel.js";import{Link as vo}from"./link/Link.js";import{NavLink as wo}from"./link/NavLink.js";import{LinkList as Mo}from"./link-list/LinkList.js";import{List as Ro,OrderedList as Fo,UnorderedList as yo}from"./list/List.js";import{CheckListItem as Po,CrossListItem as Do,ListItem as Eo}from"./list/ListItem.js";import{Loader as Go}from"./loader/Loader.js";import{SkeletonAnimation as No}from"./loader/skeletons/SkeletonAnimation.js";import{SkeletonButton as Ho}from"./loader/skeletons/SkeletonButton.js";import{SkeletonCheckboxGroup as Uo}from"./loader/skeletons/SkeletonCheckboxGroup.js";import{SkeletonElement as Wo}from"./loader/skeletons/SkeletonElement.js";import{SkeletonInput as Vo}from"./loader/skeletons/SkeletonInput.js";import{SkeletonRadioButtonGroup as Oo}from"./loader/skeletons/SkeletonRadioButtonGroup.js";import{SkeletonTable as zo,SkeletonTableHeader as Qo,SkeletonTableRow as Yo}from"./loader/skeletons/SkeletonTable.js";import{SkeletonTextArea as qo}from"./loader/skeletons/SkeletonTextArea.js";import{Logo as Jo}from"./logo/Logo.js";import{LogoStamp as Ko}from"./logo/LogoStamp.js";import{ForsikringLevertAvFremtind as Xo}from"./logo/text-paths/ForsikringLevertAvFremtind.js";import{FraSB1ogDNB as Zo}from"./logo/text-paths/FraSB1ogDNB.js";import{InnovasjonFraFremtind as $o}from"./logo/text-paths/InnovasjonFraFremtind.js";import{TeknologiFraFremtind as _o}from"./logo/text-paths/TeknologiFraFremtind.js";import{VartEgetForsikringsselskap as oa}from"./logo/text-paths/VartEgetForsikringsselskap.js";import{VartForsikringsselskap as aa}from"./logo/text-paths/VartForsikringsselskap.js";import{ErrorMessage as sa,InfoMessage as ra,SuccessMessage as ea,WarningMessage as ta}from"./message/Message.js";import{FormErrorMessage as na}from"./message/FormErrorMessage.js";import{Modal as ia,ModalActions as ma,ModalBody as ca,ModalCloseButton as la,ModalContainer as pa,ModalHeader as da,ModalOverlay as ua,ModalTitle as ba}from"./modal/Modal.js";import{useModal as fa}from"./modal/useModal.js";import{default as Ta}from"./popover/Popover.js";import{Countdown as Ia}from"./progress-bar/Countdown.js";import{ProgressBar as ga}from"./progress-bar/ProgressBar.js";import{RadioButton as ja}from"./radio-button/RadioButton.js";import{RadioButtonGroup as Ca}from"./radio-button/RadioButtonGroup.js";import{BaseRadioButton as ka}from"./radio-button/BaseRadioButton.js";import{SummaryTable as Sa}from"./summary-table/SummaryTable.js";import{SummaryTableRow as Ba}from"./summary-table/SummaryTableRow.js";import{ErrorSystemMessage as ha,InfoSystemMessage as xa,SuccessSystemMessage as La,WarningSystemMessage as Aa}from"./system-message/SystemMessage.js";import{DataTable as va}from"./table/DataTable.js";import{Table as wa}from"./table/Table.js";import{TableBody as Ma}from"./table/TableBody.js";import{TableCaption as Ra}from"./table/TableCaption.js";import{TableCell as Fa}from"./table/TableCell.js";import{TableColumn as ya}from"./table/TableColumn.js";import{TableColumnGroup as Pa}from"./table/TableColumnGroup.js";import{TableContextProvider as Da,useTableContext as Ea}from"./table/tableContext.js";import{TableSectionContextProvider as Ga,useTableSectionContext as Na}from"./table/tableSectionContext.js";import{TableFooter as Ha}from"./table/TableFooter.js";import{TableHead as Ua}from"./table/TableHead.js";import{TableHeader as Wa}from"./table/TableHeader.js";import{TableRow as Va}from"./table/TableRow.js";import{useSortableTableHeader as Oa}from"./table/utils.js";import{NavTab as za}from"./tabs/NavTab.js";import{NavTabs as Qa}from"./tabs/NavTabs.js";import{Tabs as Ya}from"./tabs/Tabs.js";import{TabList as qa}from"./tabs/TabList.js";import{Tab as Ja}from"./tabs/Tab.js";import{TabPanel as Ka}from"./tabs/TabPanel.js";import{ErrorTag as Xa,InfoTag as Za,SuccessTag as $a,Tag as _a,WarningTag as os}from"./tag/Tag.js";import{BaseTextArea as as}from"./text-input/BaseTextArea.js";import{BaseTextInput as ss}from"./text-input/BaseTextInput.js";import{TextArea as rs}from"./text-input/TextArea.js";import{TextInput as es}from"./text-input/TextInput.js";import{ToastProvider as ts,useToast as ns}from"./toast/toastContext.js";import{ToggleSwitch as is}from"./toggle-switch/ToggleSwitch.js";import{ToggleSlider as ms}from"./toggle-switch/ToggleSlider.js";import{Tooltip as cs}from"./tooltip/Tooltip.js";import{TooltipContent as ls}from"./tooltip/TooltipContent.js";import{TooltipTrigger as ps}from"./tooltip/TooltipTrigger.js";import{PopupTip as ds}from"./tooltip/PopupTip.js";import{ScreenReaderOnly as us}from"./ScreenReaderOnly.js";export{a as Accordion,o as AccordionItem,z as ArrowDownIcon,V as ArrowHorizontalAnimated,Q as ArrowLeftIcon,Y as ArrowNorthEastIcon,q as ArrowRightIcon,J as ArrowUpIcon,W as ArrowVerticalAnimated,ka as BaseRadioButton,as as BaseTextArea,ss as BaseTextInput,s as Breadcrumb,r as BreadcrumbItem,e as Button,K as CalendarIcon,m as Card,c as CardImage,X as CheckIcon,Po as CheckListItem,b as Checkbox,Z as ChevronDownIcon,$ as ChevronLeftIcon,_ as ChevronRightIcon,oo as ChevronUpIcon,ao as CloseIcon,f as Combobox,I as CookieConsent,g as CookieConsentProvider,so as CopyIcon,Ia as Countdown,Do as CrossListItem,va as DataTable,A as DatePicker,M as DescriptionDetail,R as DescriptionList,F as DescriptionTerm,ro as DotsIcon,eo as DragIcon,to as ErrorIcon,sa as ErrorMessage,ha as ErrorSystemMessage,Xa as ErrorTag,H as ExpandSection,y as ExpandableTableRow,P as ExpandableTableRowController,D as Expander,v as Feedback,ho as FieldGroup,na as FormErrorMessage,Xo as ForsikringLevertAvFremtind,Zo as FraSB1ogDNB,no as GreenCheckIcon,io as HamburgerIcon,U as Icon,So as IconButton,Bo as Image,l as InfoBlock,u as InfoCard,mo as InfoIcon,ra as InfoMessage,xa as InfoSystemMessage,Za as InfoTag,$o as InnovasjonFraFremtind,xo as InputGroup,Lo as Label,vo as Link,co as LinkIcon,Mo as LinkList,Ro as List,Eo as ListItem,Go as Loader,Jo as Logo,Ko as LogoStamp,Io as MinusIcon,ia as Modal,ma as ModalActions,ca as ModalBody,la as ModalCloseButton,pa as ModalContainer,da as ModalHeader,ua as ModalOverlay,ba as ModalTitle,E as NativeSelect,p as NavCard,wo as NavLink,za as NavTab,Qa as NavTabs,Fo as OrderedList,w as PRESETS,ko as PenIcon,lo as PlusIcon,O as PlusRemoveAnimated,Ta as Popover,ds as PopupTip,t as PrimaryButton,ga as ProgressBar,po as QuestionIcon,ja as RadioButton,Ca as RadioButtonGroup,uo as RedCrossIcon,us as ScreenReaderOnly,bo as SearchIcon,n as SecondaryButton,G as Select,No as SkeletonAnimation,Ho as SkeletonButton,Uo as SkeletonCheckboxGroup,Wo as SkeletonElement,Vo as SkeletonInput,Oo as SkeletonRadioButtonGroup,zo as SkeletonTable,Qo as SkeletonTableHeader,Yo as SkeletonTableRow,qo as SkeletonTextArea,fo as SuccessIcon,ea as SuccessMessage,La as SuccessSystemMessage,$a as SuccessTag,Sa as SummaryTable,Ba as SummaryTableRow,Ao as SupportLabel,Ja as Tab,qa as TabList,Ka as TabPanel,wa as Table,Ma as TableBody,Ra as TableCaption,Fa as TableCell,ya as TableColumn,Pa as TableColumnGroup,Da as TableContextProvider,Ha as TableFooter,Ua as TableHead,Wa as TableHeader,N as TablePagination,Va as TableRow,Ga as TableSectionContextProvider,Ya as Tabs,_a as Tag,d as TaskCard,_o as TeknologiFraFremtind,i as TertiaryButton,rs as TextArea,es as TextInput,go as ThumbDownIcon,jo as ThumbUpIcon,ts as ToastProvider,ms as ToggleSlider,is as ToggleSwitch,cs as Tooltip,ls as TooltipContent,ps as TooltipTrigger,Co as TrashCanIcon,yo as UnorderedList,oa as VartEgetForsikringsselskap,aa as VartForsikringsselskap,To as WarningIcon,ta as WarningMessage,Aa as WarningSystemMessage,os as WarningTag,B as dayMonthYearRegex,h as formatInput,T as getComboboxValuePair,x as isBlurTargetOutside,C as isCorrectFormat,k as isWithinLowerBound,S as isWithinUpperBound,L as parseDateString,j as useCookieConsent,fa as useModal,Oa as useSortableTableHeader,Ea as useTableContext,Na as useTableSectionContext,ns as useToast};
2
2
  //# sourceMappingURL=index.js.map