@fremtind/jokul 0.28.1 → 0.30.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 (279) hide show
  1. package/build/build-stats.html +1 -1
  2. package/build/cjs/components/breadcrumb/index.d.cts +2 -4
  3. package/build/cjs/components/button/index.d.cts +1 -1
  4. package/build/cjs/components/button/types.cjs.map +1 -1
  5. package/build/cjs/components/button/types.d.cts +1 -2
  6. package/build/cjs/components/card/NavCard.cjs.map +1 -1
  7. package/build/cjs/components/card/NavCard.d.cts +1 -10
  8. package/build/cjs/components/card/index.d.cts +2 -2
  9. package/build/cjs/components/card/types.cjs.map +1 -1
  10. package/build/cjs/components/card/types.d.cts +8 -0
  11. package/build/cjs/components/combobox/Combobox.cjs.map +1 -1
  12. package/build/cjs/components/combobox/Combobox.d.cts +6 -7
  13. package/build/cjs/components/combobox/index.d.cts +1 -1
  14. package/build/cjs/components/cookie-consent/index.d.cts +2 -4
  15. package/build/cjs/components/datepicker/index.cjs +1 -1
  16. package/build/cjs/components/datepicker/index.d.cts +3 -3
  17. package/build/cjs/components/datepicker/types.d.cts +7 -0
  18. package/build/cjs/components/datepicker/utils.cjs +1 -1
  19. package/build/cjs/components/datepicker/utils.cjs.map +1 -1
  20. package/build/cjs/components/datepicker/utils.d.cts +0 -1
  21. package/build/cjs/components/datepicker/validation.cjs.map +1 -1
  22. package/build/cjs/components/datepicker/validation.d.cts +1 -8
  23. package/build/cjs/components/description-list/index.d.cts +1 -1
  24. package/build/cjs/components/expander/Expander.cjs.map +1 -1
  25. package/build/cjs/components/expander/Expander.d.cts +1 -2
  26. package/build/cjs/components/expander/index.d.cts +2 -4
  27. package/build/cjs/components/feedback/Feedback.cjs.map +1 -1
  28. package/build/cjs/components/feedback/Feedback.d.cts +4 -9
  29. package/build/cjs/components/feedback/followup/Followup.cjs.map +1 -1
  30. package/build/cjs/components/feedback/followup/Followup.d.cts +3 -14
  31. package/build/cjs/components/feedback/index.d.cts +3 -3
  32. package/build/cjs/components/feedback/presets.cjs.map +1 -1
  33. package/build/cjs/components/feedback/presets.d.cts +2 -5
  34. package/build/cjs/components/feedback/questions/ContactQuestion.cjs.map +1 -1
  35. package/build/cjs/components/feedback/questions/ContactQuestion.d.cts +3 -28
  36. package/build/cjs/components/feedback/types.d.cts +42 -7
  37. package/build/cjs/components/icon-button/index.d.cts +1 -2
  38. package/build/cjs/components/image/index.d.cts +1 -3
  39. package/build/cjs/components/index.cjs +1 -1
  40. package/build/cjs/components/index.d.cts +1 -1
  41. package/build/cjs/components/input-panel/BasePanel.cjs +2 -0
  42. package/build/cjs/components/input-panel/BasePanel.cjs.map +1 -0
  43. package/build/cjs/components/input-panel/BasePanel.d.cts +10 -0
  44. package/build/cjs/components/input-panel/CheckboxPanel.cjs +2 -0
  45. package/build/cjs/components/input-panel/CheckboxPanel.cjs.map +1 -0
  46. package/build/cjs/components/input-panel/CheckboxPanel.d.cts +7 -0
  47. package/build/cjs/components/input-panel/RadioPanel.cjs +2 -0
  48. package/build/cjs/components/input-panel/RadioPanel.cjs.map +1 -0
  49. package/build/cjs/components/{radio-panel → input-panel}/RadioPanel.d.cts +2 -4
  50. package/build/cjs/components/input-panel/RadioPanelGroup.cjs +2 -0
  51. package/build/cjs/components/input-panel/RadioPanelGroup.cjs.map +1 -0
  52. package/build/cjs/components/input-panel/RadioPanelGroup.d.cts +4 -0
  53. package/build/cjs/components/input-panel/documentation/checkbox-panel/ControlledExample.d.cts +4 -0
  54. package/build/cjs/components/input-panel/documentation/checkbox-panel/UncontrolledExample.d.cts +4 -0
  55. package/build/cjs/components/input-panel/documentation/radio-panel/ControlledExample.d.cts +4 -0
  56. package/build/cjs/components/input-panel/documentation/radio-panel/UncontrolledExample.d.cts +4 -0
  57. package/build/cjs/components/input-panel/index.cjs +2 -0
  58. package/build/cjs/components/input-panel/index.d.cts +3 -0
  59. package/build/cjs/components/input-panel/radioPanelContext.cjs +2 -0
  60. package/build/cjs/components/input-panel/radioPanelContext.cjs.map +1 -0
  61. package/build/cjs/components/input-panel/radioPanelContext.d.cts +7 -0
  62. package/build/cjs/components/link-list/LinkList.cjs.map +1 -1
  63. package/build/cjs/components/link-list/LinkList.d.cts +2 -11
  64. package/build/cjs/components/link-list/index.d.cts +1 -0
  65. package/build/cjs/components/link-list/types.cjs +2 -0
  66. package/build/cjs/components/link-list/types.cjs.map +1 -0
  67. package/build/cjs/components/link-list/types.d.cts +11 -0
  68. package/build/cjs/components/list/index.d.cts +2 -3
  69. package/build/cjs/components/loader/index.d.cts +9 -18
  70. package/build/cjs/components/logo/index.d.cts +2 -4
  71. package/build/cjs/components/menu/Menu.cjs +1 -1
  72. package/build/cjs/components/menu/Menu.cjs.map +1 -1
  73. package/build/cjs/components/modal/Modal.cjs.map +1 -1
  74. package/build/cjs/components/modal/Modal.d.cts +8 -2
  75. package/build/cjs/components/modal/index.d.cts +2 -4
  76. package/build/cjs/components/pagination/Pagination.cjs.map +1 -1
  77. package/build/cjs/components/pagination/Pagination.d.cts +2 -1
  78. package/build/cjs/components/pagination/index.d.cts +1 -1
  79. package/build/cjs/components/popover/Popover.cjs.map +1 -1
  80. package/build/cjs/components/popover/Popover.d.cts +6 -6
  81. package/build/cjs/components/popover/index.d.cts +1 -1
  82. package/build/cjs/components/progress-bar/index.d.cts +2 -4
  83. package/build/cjs/components/radio-button/index.d.cts +3 -6
  84. package/build/cjs/components/select/Select.cjs.map +1 -1
  85. package/build/cjs/components/select/Select.d.cts +5 -6
  86. package/build/cjs/components/select/index.d.cts +2 -4
  87. package/build/cjs/components/summary-table/SummaryTable.cjs.map +1 -1
  88. package/build/cjs/components/summary-table/SummaryTable.d.cts +2 -2
  89. package/build/cjs/components/summary-table/index.d.cts +2 -2
  90. package/build/cjs/components/system-message/SystemMessage.cjs.map +1 -1
  91. package/build/cjs/components/system-message/SystemMessage.d.cts +5 -6
  92. package/build/cjs/components/system-message/index.d.cts +1 -1
  93. package/build/cjs/components/tabs/index.d.cts +6 -6
  94. package/build/cjs/components/tag/index.d.cts +1 -3
  95. package/build/cjs/components/text-input/BaseTextArea.cjs.map +1 -1
  96. package/build/cjs/components/text-input/BaseTextArea.d.cts +1 -2
  97. package/build/cjs/components/text-input/index.d.cts +2 -2
  98. package/build/cjs/components/toast/index.d.cts +1 -1
  99. package/build/cjs/components/toast/toastContext.cjs.map +1 -1
  100. package/build/cjs/components/toast/toastContext.d.cts +1 -13
  101. package/build/cjs/components/toast/types.d.cts +11 -0
  102. package/build/cjs/components/toggle-switch/ToggleSlider.cjs.map +1 -1
  103. package/build/cjs/components/toggle-switch/ToggleSlider.d.cts +2 -3
  104. package/build/cjs/components/toggle-switch/ToggleSwitch.cjs.map +1 -1
  105. package/build/cjs/components/toggle-switch/ToggleSwitch.d.cts +1 -1
  106. package/build/cjs/components/toggle-switch/index.d.cts +2 -2
  107. package/build/cjs/components/tooltip/Tooltip.cjs +1 -1
  108. package/build/cjs/components/tooltip/Tooltip.cjs.map +1 -1
  109. package/build/cjs/components/tooltip/Tooltip.d.cts +2 -2
  110. package/build/cjs/components/tooltip/TooltipContent.cjs +1 -1
  111. package/build/cjs/components/tooltip/TooltipContent.cjs.map +1 -1
  112. package/build/cjs/components/tooltip/TooltipTrigger.cjs +1 -1
  113. package/build/cjs/components/tooltip/TooltipTrigger.cjs.map +1 -1
  114. package/build/cjs/index.cjs +1 -1
  115. package/build/es/components/breadcrumb/index.d.ts +2 -4
  116. package/build/es/components/button/index.d.ts +1 -1
  117. package/build/es/components/button/types.d.ts +1 -2
  118. package/build/es/components/button/types.js.map +1 -1
  119. package/build/es/components/card/NavCard.d.ts +1 -10
  120. package/build/es/components/card/NavCard.js.map +1 -1
  121. package/build/es/components/card/index.d.ts +2 -2
  122. package/build/es/components/card/types.d.ts +8 -0
  123. package/build/es/components/card/types.js.map +1 -1
  124. package/build/es/components/combobox/Combobox.d.ts +6 -7
  125. package/build/es/components/combobox/Combobox.js.map +1 -1
  126. package/build/es/components/combobox/index.d.ts +1 -1
  127. package/build/es/components/cookie-consent/index.d.ts +2 -4
  128. package/build/es/components/datepicker/index.d.ts +3 -3
  129. package/build/es/components/datepicker/index.js +1 -1
  130. package/build/es/components/datepicker/types.d.ts +7 -0
  131. package/build/es/components/datepicker/utils.d.ts +0 -1
  132. package/build/es/components/datepicker/utils.js +1 -1
  133. package/build/es/components/datepicker/utils.js.map +1 -1
  134. package/build/es/components/datepicker/validation.d.ts +1 -8
  135. package/build/es/components/datepicker/validation.js.map +1 -1
  136. package/build/es/components/description-list/index.d.ts +1 -1
  137. package/build/es/components/expander/Expander.d.ts +1 -2
  138. package/build/es/components/expander/Expander.js.map +1 -1
  139. package/build/es/components/expander/index.d.ts +2 -4
  140. package/build/es/components/feedback/Feedback.d.ts +4 -9
  141. package/build/es/components/feedback/Feedback.js.map +1 -1
  142. package/build/es/components/feedback/followup/Followup.d.ts +3 -14
  143. package/build/es/components/feedback/followup/Followup.js.map +1 -1
  144. package/build/es/components/feedback/index.d.ts +3 -3
  145. package/build/es/components/feedback/presets.d.ts +2 -5
  146. package/build/es/components/feedback/presets.js.map +1 -1
  147. package/build/es/components/feedback/questions/ContactQuestion.d.ts +3 -28
  148. package/build/es/components/feedback/questions/ContactQuestion.js.map +1 -1
  149. package/build/es/components/feedback/types.d.ts +42 -7
  150. package/build/es/components/icon-button/index.d.ts +1 -2
  151. package/build/es/components/image/index.d.ts +1 -3
  152. package/build/es/components/index.d.ts +1 -1
  153. package/build/es/components/index.js +1 -1
  154. package/build/es/components/input-panel/BasePanel.d.ts +10 -0
  155. package/build/es/components/input-panel/BasePanel.js +2 -0
  156. package/build/es/components/input-panel/BasePanel.js.map +1 -0
  157. package/build/es/components/input-panel/CheckboxPanel.d.ts +7 -0
  158. package/build/es/components/input-panel/CheckboxPanel.js +2 -0
  159. package/build/es/components/input-panel/CheckboxPanel.js.map +1 -0
  160. package/build/es/components/{radio-panel → input-panel}/RadioPanel.d.ts +2 -4
  161. package/build/es/components/input-panel/RadioPanel.js +2 -0
  162. package/build/es/components/input-panel/RadioPanel.js.map +1 -0
  163. package/build/es/components/input-panel/RadioPanelGroup.d.ts +4 -0
  164. package/build/es/components/input-panel/RadioPanelGroup.js +2 -0
  165. package/build/es/components/input-panel/RadioPanelGroup.js.map +1 -0
  166. package/build/es/components/input-panel/documentation/checkbox-panel/ControlledExample.d.ts +4 -0
  167. package/build/es/components/input-panel/documentation/checkbox-panel/UncontrolledExample.d.ts +4 -0
  168. package/build/es/components/input-panel/documentation/radio-panel/ControlledExample.d.ts +4 -0
  169. package/build/es/components/input-panel/documentation/radio-panel/UncontrolledExample.d.ts +4 -0
  170. package/build/es/components/input-panel/index.d.ts +3 -0
  171. package/build/es/components/input-panel/index.js +2 -0
  172. package/build/es/components/input-panel/radioPanelContext.d.ts +7 -0
  173. package/build/es/components/input-panel/radioPanelContext.js +2 -0
  174. package/build/es/components/input-panel/radioPanelContext.js.map +1 -0
  175. package/build/es/components/link-list/LinkList.d.ts +2 -11
  176. package/build/es/components/link-list/LinkList.js.map +1 -1
  177. package/build/es/components/link-list/index.d.ts +1 -0
  178. package/build/es/components/link-list/types.d.ts +11 -0
  179. package/build/es/components/link-list/types.js +2 -0
  180. package/build/es/components/link-list/types.js.map +1 -0
  181. package/build/es/components/list/index.d.ts +2 -3
  182. package/build/es/components/loader/index.d.ts +9 -18
  183. package/build/es/components/logo/index.d.ts +2 -4
  184. package/build/es/components/menu/Menu.js +1 -1
  185. package/build/es/components/menu/Menu.js.map +1 -1
  186. package/build/es/components/modal/Modal.d.ts +8 -2
  187. package/build/es/components/modal/Modal.js.map +1 -1
  188. package/build/es/components/modal/index.d.ts +2 -4
  189. package/build/es/components/pagination/Pagination.d.ts +2 -1
  190. package/build/es/components/pagination/Pagination.js.map +1 -1
  191. package/build/es/components/pagination/index.d.ts +1 -1
  192. package/build/es/components/popover/Popover.d.ts +6 -6
  193. package/build/es/components/popover/Popover.js.map +1 -1
  194. package/build/es/components/popover/index.d.ts +1 -1
  195. package/build/es/components/progress-bar/index.d.ts +2 -4
  196. package/build/es/components/radio-button/index.d.ts +3 -6
  197. package/build/es/components/select/Select.d.ts +5 -6
  198. package/build/es/components/select/Select.js.map +1 -1
  199. package/build/es/components/select/index.d.ts +2 -4
  200. package/build/es/components/summary-table/SummaryTable.d.ts +2 -2
  201. package/build/es/components/summary-table/SummaryTable.js.map +1 -1
  202. package/build/es/components/summary-table/index.d.ts +2 -2
  203. package/build/es/components/system-message/SystemMessage.d.ts +5 -6
  204. package/build/es/components/system-message/SystemMessage.js.map +1 -1
  205. package/build/es/components/system-message/index.d.ts +1 -1
  206. package/build/es/components/tabs/index.d.ts +6 -6
  207. package/build/es/components/tag/index.d.ts +1 -3
  208. package/build/es/components/text-input/BaseTextArea.d.ts +1 -2
  209. package/build/es/components/text-input/BaseTextArea.js.map +1 -1
  210. package/build/es/components/text-input/index.d.ts +2 -2
  211. package/build/es/components/toast/index.d.ts +1 -1
  212. package/build/es/components/toast/toastContext.d.ts +1 -13
  213. package/build/es/components/toast/toastContext.js.map +1 -1
  214. package/build/es/components/toast/types.d.ts +11 -0
  215. package/build/es/components/toggle-switch/ToggleSlider.d.ts +2 -3
  216. package/build/es/components/toggle-switch/ToggleSlider.js.map +1 -1
  217. package/build/es/components/toggle-switch/ToggleSwitch.d.ts +1 -1
  218. package/build/es/components/toggle-switch/ToggleSwitch.js.map +1 -1
  219. package/build/es/components/toggle-switch/index.d.ts +2 -2
  220. package/build/es/components/tooltip/Tooltip.d.ts +2 -2
  221. package/build/es/components/tooltip/Tooltip.js +1 -1
  222. package/build/es/components/tooltip/Tooltip.js.map +1 -1
  223. package/build/es/components/tooltip/TooltipContent.js +1 -1
  224. package/build/es/components/tooltip/TooltipContent.js.map +1 -1
  225. package/build/es/components/tooltip/TooltipTrigger.js +1 -1
  226. package/build/es/components/tooltip/TooltipTrigger.js.map +1 -1
  227. package/build/es/index.js +1 -1
  228. package/package.json +12 -3
  229. package/styles/components/button/button.css +2 -2
  230. package/styles/components/button/button.min.css +1 -1
  231. package/styles/components/checkbox/checkbox.css +4 -4
  232. package/styles/components/checkbox/checkbox.min.css +1 -1
  233. package/styles/components/feedback/feedback.css +2 -2
  234. package/styles/components/feedback/feedback.min.css +1 -1
  235. package/styles/components/input-group/input-group.css +2 -2
  236. package/styles/components/input-group/input-group.min.css +1 -1
  237. package/styles/components/input-panel/_index.scss +2 -0
  238. package/styles/components/input-panel/checkbox-panel.css +132 -0
  239. package/styles/components/input-panel/checkbox-panel.min.css +1 -0
  240. package/styles/components/input-panel/checkbox-panel.scss +88 -0
  241. package/styles/components/{radio-panel → input-panel}/radio-panel.css +67 -56
  242. package/styles/components/input-panel/radio-panel.min.css +1 -0
  243. package/styles/components/input-panel/radio-panel.scss +79 -0
  244. package/styles/components/input-panel/shared.css +61 -0
  245. package/styles/components/input-panel/shared.min.css +1 -0
  246. package/styles/components/input-panel/shared.scss +75 -0
  247. package/styles/components/loader/loader.css +6 -6
  248. package/styles/components/loader/loader.min.css +1 -1
  249. package/styles/components/loader/skeleton-loader.css +5 -5
  250. package/styles/components/loader/skeleton-loader.min.css +1 -1
  251. package/styles/components/message/message.css +2 -2
  252. package/styles/components/message/message.min.css +1 -1
  253. package/styles/components/progress-bar/progress-bar.css +2 -2
  254. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  255. package/styles/components/radio-button/radio-button.css +2 -2
  256. package/styles/components/radio-button/radio-button.min.css +1 -1
  257. package/styles/components/system-message/system-message.css +2 -2
  258. package/styles/components/system-message/system-message.min.css +1 -1
  259. package/styles/components/toast/toast.css +4 -4
  260. package/styles/components/toast/toast.min.css +1 -1
  261. package/styles/components/tooltip/tooltip.css +2 -26
  262. package/styles/components/tooltip/tooltip.min.css +1 -1
  263. package/styles/components/tooltip/tooltip.scss +3 -31
  264. package/styles/styles.css +224 -166
  265. package/styles/styles.min.css +1 -1
  266. package/styles/styles.scss +1 -1
  267. package/build/cjs/components/radio-panel/RadioPanel.cjs +0 -2
  268. package/build/cjs/components/radio-panel/RadioPanel.cjs.map +0 -1
  269. package/build/cjs/components/radio-panel/index.cjs +0 -2
  270. package/build/cjs/components/radio-panel/index.d.cts +0 -1
  271. package/build/es/components/radio-panel/RadioPanel.js +0 -2
  272. package/build/es/components/radio-panel/RadioPanel.js.map +0 -1
  273. package/build/es/components/radio-panel/index.d.ts +0 -1
  274. package/build/es/components/radio-panel/index.js +0 -2
  275. package/styles/components/radio-panel/_index.scss +0 -1
  276. package/styles/components/radio-panel/radio-panel.min.css +0 -1
  277. package/styles/components/radio-panel/radio-panel.scss +0 -140
  278. /package/build/cjs/components/{radio-panel → input-panel}/index.cjs.map +0 -0
  279. /package/build/es/components/{radio-panel → input-panel}/index.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Followup.cjs","sources":["../../../../../src/components/feedback/followup/Followup.tsx"],"sourcesContent":["import React, { FC, ReactNode, useEffect, useRef, useState } from \"react\";\nimport {\n PrimaryButton,\n SecondaryButton,\n TertiaryButton,\n} from \"../../button/Button.js\";\nimport { useFeedbackContext } from \"../feedbackContext.js\";\nimport { FeedbackSuccess } from \"../FeedbackSuccess.js\";\nimport { FeedbackAnswer, FollowupQuestion } from \"../types.js\";\nimport { getQuestionFromType } from \"../utils.js\";\nimport { FollowUpProvider } from \"./followupContext.js\";\nimport { useFollowup } from \"./useFollowup.js\";\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> = ({\n questions,\n successMessage = defaultSuccessMessage,\n onSubmit,\n}) => {\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 {\n followupStarted,\n setFollowupStarted,\n setFollowupSubmitted,\n contactSubmitted,\n 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\n løsninger for deg.\n </p>\n <PrimaryButton\n onClick={() => setFollowupStarted(true)}\n className=\"jkl-spacing-xl--right\"\n >\n Jeg har tid!\n </PrimaryButton>\n <TertiaryButton onClick={() => setNoThanks(true)}>\n Nei takk\n </TertiaryButton>\n </div>\n )}\n {!submitted && followupStarted && (\n <form\n onSubmit={handleNext}\n className=\"jkl-feedback__fade-in\"\n aria-label={landmarkLabel}\n >\n <p\n className=\"jkl-feedback__step-counter\"\n ref={focusRef}\n >\n Steg {step.number + 1} av {questions.length}\n </p>\n <QuestionComponent\n {...questions[step.number]}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus\n key={step.number}\n />\n <div className=\"jkl-spacing-xl--top\" aria-live=\"off\">\n <Button type=\"submit\">\n {step.isLast ? \"Send inn\" : \"Neste\"}\n </Button>\n <TertiaryButton\n onClick={handleAbort}\n className=\"jkl-spacing-xl--left\"\n >\n Avbryt\n </TertiaryButton>\n </div>\n </form>\n )}\n {submitted && !contactSubmitted && (\n <FeedbackSuccess {...successMessage} />\n )}\n </FollowUpProvider>\n </div>\n );\n};\n"],"names":["defaultSuccessMessage","title","children","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":"iVAaMA,EAAwB,CAC1BC,MAAO,eACPC,SACI,0KAc2B,EAC/BC,UAAAA,EACAC,eAAAA,EAAiBJ,EACjBK,SAAAA,MAEA,MAAOC,EAAUC,GAAeC,YAAS,GACnCC,EAAWC,SAA6B,MACxCC,EAAgBC,EAAAA,YAAYT,EAAWE,IACrCQ,YAAAA,EAAaC,WAAAA,EAAYC,KAAAA,EAAMC,UAAAA,GAAcL,GAEjDM,gBAAAA,EACAC,mBAAAA,EACAC,qBAAAA,EACAC,iBAAAA,EACAC,cAAAA,GACAC,EAAmBA,qBAEvBC,EAAAA,WAAU,KACc,IAAhBR,EAAKS,QAGAf,EAAAgB,SAAWhB,EAASgB,QAAQC,OAAM,GAC5C,CAACX,IAEJQ,EAAAA,WAAU,KACNJ,EAAqBH,EAAS,GAC/B,CAACA,EAAWG,IAEf,MAAMQ,EAAoBC,EAAAA,oBAAoBzB,EAAUY,EAAKS,QAAQK,MAC/DC,EAASf,EAAKgB,OAASC,EAAAA,cAAgBC,EAAAA,gBAE7C,OAAI3B,EACO,WAIN,MAAI,CAAA,YAAU,SACXJ,SAACgC,EAAAA,KAAAC,mBAAA,CAAiBC,MAAOzB,EACpBT,SAAA,EAACe,GACEiB,EAAAA,KAAC,MAAI,CAAAG,UAAU,wBACXnC,SAAA,CAACoC,EAAAA,IAAA,IAAA,CAAED,UAAU,2DAA2DnC,SAExE,mDACCoC,EAAAA,IAAA,IAAA,CAAED,UAAU,kCAAkCnC,SAG/C,0EACAoC,EAAAA,IAACN,EAAAA,cAAA,CACGO,QAAS,IAAMrB,GAAmB,GAClCmB,UAAU,wBACbnC,SAAA,uBAGAsC,EAAAA,eAAe,CAAAD,QAAS,IAAMhC,GAAY,GAAOL,SAElD,iBAGNc,GAAaC,GACXiB,EAAAA,KAAC,OAAA,CACG7B,SAAUS,EACVuB,UAAU,wBACV,aAAYhB,EAEZnB,SAAA,CAAAgC,EAAAA,KAAC,IAAA,CACGG,UAAU,6BACVI,IAAKhC,EACRP,SAAA,CAAA,QACSa,EAAKS,OAAS,EAAE,OAAKrB,EAAUuC,UAEzCC,EAAAA,cAAChB,EAAA,IACOxB,EAAUY,EAAKS,QAEnBoB,WAAS,EACTC,IAAK9B,EAAKS,SAEbU,EAAAA,KAAA,MAAA,CAAIG,UAAU,sBAAsB,YAAU,MAC3CnC,SAAA,CAAAoC,MAACR,GAAOD,KAAK,SACR3B,SAAKa,EAAAgB,OAAS,WAAa,UAEhCO,EAAAA,IAACE,EAAAA,eAAA,CACGD,QAAS1B,EACTwB,UAAU,uBACbnC,SAAA,iBAMZc,IAAcI,GACVkB,EAAAA,IAAAQ,EAAAA,gBAAA,IAAoB1C,QAGjC"}
1
+ {"version":3,"file":"Followup.cjs","sources":["../../../../../src/components/feedback/followup/Followup.tsx"],"sourcesContent":["import React, { FC, useEffect, useRef, useState } from \"react\";\nimport {\n PrimaryButton,\n SecondaryButton,\n TertiaryButton,\n} from \"../../button/Button.js\";\nimport { useFeedbackContext } from \"../feedbackContext.js\";\nimport { FeedbackSuccess } from \"../FeedbackSuccess.js\";\nimport { FollowupProps } from \"../types.js\";\nimport { getQuestionFromType } from \"../utils.js\";\nimport { FollowUpProvider } from \"./followupContext.js\";\nimport { useFollowup } from \"./useFollowup.js\";\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\nexport const Followup: FC<FollowupProps> = ({\n questions,\n successMessage = defaultSuccessMessage,\n onSubmit,\n}) => {\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 {\n followupStarted,\n setFollowupStarted,\n setFollowupSubmitted,\n contactSubmitted,\n 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\n løsninger for deg.\n </p>\n <PrimaryButton\n onClick={() => setFollowupStarted(true)}\n className=\"jkl-spacing-xl--right\"\n >\n Jeg har tid!\n </PrimaryButton>\n <TertiaryButton onClick={() => setNoThanks(true)}>\n Nei takk\n </TertiaryButton>\n </div>\n )}\n {!submitted && followupStarted && (\n <form\n onSubmit={handleNext}\n className=\"jkl-feedback__fade-in\"\n aria-label={landmarkLabel}\n >\n <p\n className=\"jkl-feedback__step-counter\"\n ref={focusRef}\n >\n Steg {step.number + 1} av {questions.length}\n </p>\n <QuestionComponent\n {...questions[step.number]}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus\n key={step.number}\n />\n <div className=\"jkl-spacing-xl--top\" aria-live=\"off\">\n <Button type=\"submit\">\n {step.isLast ? \"Send inn\" : \"Neste\"}\n </Button>\n <TertiaryButton\n onClick={handleAbort}\n className=\"jkl-spacing-xl--left\"\n >\n Avbryt\n </TertiaryButton>\n </div>\n </form>\n )}\n {submitted && !contactSubmitted && (\n <FeedbackSuccess {...successMessage} />\n )}\n </FollowUpProvider>\n </div>\n );\n};\n"],"names":["defaultSuccessMessage","title","children","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":"iVAaMA,EAAwB,CAC1BC,MAAO,eACPC,SACI,0KAGmC,EACvCC,UAAAA,EACAC,eAAAA,EAAiBJ,EACjBK,SAAAA,MAEA,MAAOC,EAAUC,GAAeC,YAAS,GACnCC,EAAWC,SAA6B,MACxCC,EAAgBC,EAAAA,YAAYT,EAAWE,IACrCQ,YAAAA,EAAaC,WAAAA,EAAYC,KAAAA,EAAMC,UAAAA,GAAcL,GAEjDM,gBAAAA,EACAC,mBAAAA,EACAC,qBAAAA,EACAC,iBAAAA,EACAC,cAAAA,GACAC,EAAmBA,qBAEvBC,EAAAA,WAAU,KACc,IAAhBR,EAAKS,QAGAf,EAAAgB,SAAWhB,EAASgB,QAAQC,OAAM,GAC5C,CAACX,IAEJQ,EAAAA,WAAU,KACNJ,EAAqBH,EAAS,GAC/B,CAACA,EAAWG,IAEf,MAAMQ,EAAoBC,EAAAA,oBAAoBzB,EAAUY,EAAKS,QAAQK,MAC/DC,EAASf,EAAKgB,OAASC,EAAAA,cAAgBC,EAAAA,gBAE7C,OAAI3B,EACO,WAIN,MAAI,CAAA,YAAU,SACXJ,SAACgC,EAAAA,KAAAC,mBAAA,CAAiBC,MAAOzB,EACpBT,SAAA,EAACe,GACEiB,EAAAA,KAAC,MAAI,CAAAG,UAAU,wBACXnC,SAAA,CAACoC,EAAAA,IAAA,IAAA,CAAED,UAAU,2DAA2DnC,SAExE,mDACCoC,EAAAA,IAAA,IAAA,CAAED,UAAU,kCAAkCnC,SAG/C,0EACAoC,EAAAA,IAACN,EAAAA,cAAA,CACGO,QAAS,IAAMrB,GAAmB,GAClCmB,UAAU,wBACbnC,SAAA,uBAGAsC,EAAAA,eAAe,CAAAD,QAAS,IAAMhC,GAAY,GAAOL,SAElD,iBAGNc,GAAaC,GACXiB,EAAAA,KAAC,OAAA,CACG7B,SAAUS,EACVuB,UAAU,wBACV,aAAYhB,EAEZnB,SAAA,CAAAgC,EAAAA,KAAC,IAAA,CACGG,UAAU,6BACVI,IAAKhC,EACRP,SAAA,CAAA,QACSa,EAAKS,OAAS,EAAE,OAAKrB,EAAUuC,UAEzCC,EAAAA,cAAChB,EAAA,IACOxB,EAAUY,EAAKS,QAEnBoB,WAAS,EACTC,IAAK9B,EAAKS,SAEbU,EAAAA,KAAA,MAAA,CAAIG,UAAU,sBAAsB,YAAU,MAC3CnC,SAAA,CAAAoC,MAACR,GAAOD,KAAK,SACR3B,SAAKa,EAAAgB,OAAS,WAAa,UAEhCO,EAAAA,IAACE,EAAAA,eAAA,CACGD,QAAS1B,EACTwB,UAAU,uBACbnC,SAAA,iBAMZc,IAAcI,GACVkB,EAAAA,IAAAQ,EAAAA,gBAAA,IAAoB1C,QAGjC"}
@@ -1,14 +1,3 @@
1
- import { FC, ReactNode } from 'react';
2
- import { FeedbackAnswer, FollowupQuestion } from '../types.cjs';
3
- interface Props {
4
- /** Spørsmålet/ene som skal stilles. Kan være av typen radio, checkbox eller text */
5
- questions: FollowupQuestion[];
6
- /** Lar deg tilpasse meldingen som kommer når brukeren har svart på spørsmålene. */
7
- successMessage?: {
8
- title: string;
9
- children: ReactNode;
10
- };
11
- onSubmit: (values: FeedbackAnswer[]) => void;
12
- }
13
- export declare const Followup: FC<Props>;
14
- export {};
1
+ import { FC } from 'react';
2
+ import { FollowupProps } from '../types.cjs';
3
+ export declare const Followup: FC<FollowupProps>;
@@ -1,3 +1,3 @@
1
- import { Feedback } from './Feedback.cjs';
2
- import { PRESETS } from './presets.cjs';
3
- export { Feedback, PRESETS };
1
+ export { Feedback, type FeedbackProps } from './Feedback.cjs';
2
+ export { PRESETS, type PresetProperties } from './presets.cjs';
3
+ export { type FeedbackOption, type FeedbackType, type FollowupProps, type FollowupQuestion, type MainQuestion, type RadioQuestion, type SmileyQuestion, type CheckboxQuestion, type TextQuestion, type ContactQuestionProps, type FeedbackAnswer, type SingleFeedbackAnswer, type MultiFeedbackAnswer, } from './types.cjs';
@@ -1 +1 @@
1
- {"version":3,"file":"presets.cjs","sources":["../../../../src/components/feedback/presets.tsx"],"sourcesContent":["import { ComponentProps } from \"react\";\nimport { Feedback } from \"./Feedback.js\";\nimport { defaultOptions as smileyOptions } from \"./questions/smileyUtils.js\";\n\ntype FeedbackProps = ComponentProps<typeof Feedback>;\ntype PresetProperties = Pick<\n FeedbackProps,\n \"label\" | \"type\" | \"options\" | \"addOnQuestion\"\n>;\n\nconst smileyQuestion: PresetProperties = {\n type: \"smiley\",\n label: \"Hvor fornøyd er du med denne nettsiden?\",\n options: smileyOptions,\n addOnQuestion: true,\n};\n\nexport const PRESETS: Record<string, PresetProperties> = {\n \"Fant du\": {\n type: \"radio\",\n label: \"Fant du det du lette etter?\",\n options: [\n {\n label: \"Ja\",\n value: \"ja\",\n textAreaLabel:\n \"Så bra! Har du noen tilbakemeldinger kan du skrive dem her.\",\n },\n {\n label: \"Nei\",\n value: \"nei\",\n textAreaLabel:\n \"Det var leit! Fortell oss gjerne hva du savner, så kan vi gjøre sidene våre bedre.\",\n },\n ],\n addOnQuestion: true,\n },\n \"Fikk du gjort\": {\n type: \"radio\",\n label: \"Fikk du gjort det du skulle?\",\n options: [\n {\n label: \"Ja\",\n value: \"ja\",\n textAreaLabel:\n \"Så bra! Har du noen tilbakemeldinger kan du skrive dem her.\",\n },\n {\n label: \"Nei\",\n value: \"nei\",\n textAreaLabel:\n \"Det var leit! Fortell oss gjerne hva du savner, så kan vi gjøre sidene våre bedre.\",\n },\n ],\n addOnQuestion: true,\n },\n \"Hvor fornøyd 5\": smileyQuestion,\n Smileys: smileyQuestion,\n};\n"],"names":["smileyQuestion","type","label","options","defaultOptions","addOnQuestion","PRESETS","value","textAreaLabel","Smileys"],"mappings":"sFAUMA,EAAmC,CACrCC,KAAM,SACNC,MAAO,0CACPC,+CAASC,eACTC,eAAe,GAGNC,EAA4C,CACrD,UAAW,CACPL,KAAM,QACNC,MAAO,8BACPC,QAAS,CACL,CACID,MAAO,KACPK,MAAO,KACPC,cACI,+DAER,CACIN,MAAO,MACPK,MAAO,MACPC,cACI,uFAGZH,eAAe,GAEnB,gBAAiB,CACbJ,KAAM,QACNC,MAAO,+BACPC,QAAS,CACL,CACID,MAAO,KACPK,MAAO,KACPC,cACI,+DAER,CACIN,MAAO,MACPK,MAAO,MACPC,cACI,uFAGZH,eAAe,GAEnB,iBAAkBL,EAClBS,QAAST"}
1
+ {"version":3,"file":"presets.cjs","sources":["../../../../src/components/feedback/presets.tsx"],"sourcesContent":["import { FeedbackProps } from \"./Feedback.js\";\nimport { defaultOptions as smileyOptions } from \"./questions/smileyUtils.js\";\n\nexport type PresetProperties = Pick<\n FeedbackProps,\n \"label\" | \"type\" | \"options\" | \"addOnQuestion\"\n>;\n\nconst smileyQuestion: PresetProperties = {\n type: \"smiley\",\n label: \"Hvor fornøyd er du med denne nettsiden?\",\n options: smileyOptions,\n addOnQuestion: true,\n};\n\nexport const PRESETS: Record<string, PresetProperties> = {\n \"Fant du\": {\n type: \"radio\",\n label: \"Fant du det du lette etter?\",\n options: [\n {\n label: \"Ja\",\n value: \"ja\",\n textAreaLabel:\n \"Så bra! Har du noen tilbakemeldinger kan du skrive dem her.\",\n },\n {\n label: \"Nei\",\n value: \"nei\",\n textAreaLabel:\n \"Det var leit! Fortell oss gjerne hva du savner, så kan vi gjøre sidene våre bedre.\",\n },\n ],\n addOnQuestion: true,\n },\n \"Fikk du gjort\": {\n type: \"radio\",\n label: \"Fikk du gjort det du skulle?\",\n options: [\n {\n label: \"Ja\",\n value: \"ja\",\n textAreaLabel:\n \"Så bra! Har du noen tilbakemeldinger kan du skrive dem her.\",\n },\n {\n label: \"Nei\",\n value: \"nei\",\n textAreaLabel:\n \"Det var leit! Fortell oss gjerne hva du savner, så kan vi gjøre sidene våre bedre.\",\n },\n ],\n addOnQuestion: true,\n },\n \"Hvor fornøyd 5\": smileyQuestion,\n Smileys: smileyQuestion,\n};\n"],"names":["smileyQuestion","type","label","options","defaultOptions","addOnQuestion","PRESETS","value","textAreaLabel","Smileys"],"mappings":"sFAQMA,EAAmC,CACrCC,KAAM,SACNC,MAAO,0CACPC,+CAASC,eACTC,eAAe,GAGNC,EAA4C,CACrD,UAAW,CACPL,KAAM,QACNC,MAAO,8BACPC,QAAS,CACL,CACID,MAAO,KACPK,MAAO,KACPC,cACI,+DAER,CACIN,MAAO,MACPK,MAAO,MACPC,cACI,uFAGZH,eAAe,GAEnB,gBAAiB,CACbJ,KAAM,QACNC,MAAO,+BACPC,QAAS,CACL,CACID,MAAO,KACPK,MAAO,KACPC,cACI,+DAER,CACIN,MAAO,MACPK,MAAO,MACPC,cACI,uFAGZH,eAAe,GAEnB,iBAAkBL,EAClBS,QAAST"}
@@ -1,6 +1,3 @@
1
- import { ComponentProps } from 'react';
2
- import { Feedback } from './Feedback.cjs';
3
- type FeedbackProps = ComponentProps<typeof Feedback>;
4
- type PresetProperties = Pick<FeedbackProps, "label" | "type" | "options" | "addOnQuestion">;
1
+ import { FeedbackProps } from './Feedback.cjs';
2
+ export type PresetProperties = Pick<FeedbackProps, "label" | "type" | "options" | "addOnQuestion">;
5
3
  export declare const PRESETS: Record<string, PresetProperties>;
6
- export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ContactQuestion.cjs","sources":["../../../../../src/components/feedback/questions/ContactQuestion.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n FC,\n ReactNode,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { isValidEpost } from \"../../../utilities/validators/isValidEpost/isValidEpost.js\";\nimport { isValidTelefonnummer } from \"../../../utilities/validators/isValidTelefonnummer/isValidTelefonnummer.js\";\nimport { PrimaryButton, TertiaryButton } from \"../../button/Button.js\";\nimport { TextInput } from \"../../text-input/TextInput.js\";\nimport { useFeedbackContext } from \"../feedbackContext.js\";\nimport { FeedbackSuccess } from \"../FeedbackSuccess.js\";\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 {},\n );\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 } =\n 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 =\n (consumer: (value: string) => void) =>\n (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\n className=\"jkl-spacing-xl--top\"\n onSubmit={handleSubmit}\n aria-label={landmarkLabel}\n >\n <p className=\"jkl-heading-4 jkl-spacing-xs--bottom\">{label}</p>\n {children && (\n <ChildrenWrapper className=\"jkl-body\">\n {children}\n </ChildrenWrapper>\n )}\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)}>\n Nei takk\n </TertiaryButton>\n </div>\n </form>\n );\n};\n"],"names":["defaultSuccessMessage","title","children","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","jsxs","className","preventDefault","_a","current","focus","_b","TextInput","ref","labelProps","variant","autoComplete","name","onChange","errorLabel","PrimaryButton","type","TertiaryButton","onClick"],"mappings":"mcAmCMA,EAAwB,CAC1BC,MAAO,sBACPC,SACI,8MA0BkC,EACtCC,MAAAA,EAAQ,0CACRC,gBAAAA,EAAkB,qBAClBC,UAAAA,GAAY,EACZC,SAAAA,EACAC,eAAAA,EAAiBP,EACjBE,SAAAA,MAEA,MAAOM,EAAOC,GAAYC,WAAS,KAC5BC,EAAOC,GAAYF,WAAS,KAC5BG,EAAQC,GAAaJ,EAAAA,SACxB,CAAC,GAECK,EAAWC,SAAyB,MACpCC,EAAWD,SAAyB,OACnCE,EAAgBC,GAAqBT,YAAS,IAE9CU,EAAUC,GAAeX,YAAS,IACjCY,iBAAAA,EAAkBC,oBAAAA,EAAqBC,cAAAA,GAC3CC,EAAmBA,qBAEjBC,EAAsC,iBAAbxB,EAAwB,IAAM,MAEvDyB,EAAW,CAACnB,EAAeG,KACvB,MAAAiB,EAzESpB,IACdA,GAAmB,KAAVA,EAGTqB,EAAAA,aAAarB,QAAd,EACO,oCAHA,uDAuEYsB,CAActB,GAC3BuB,EAhESpB,IACdA,GAAmB,KAAVA,EAGTqB,EAAAA,qBAAqBrB,QAAtB,EACO,oCAHA,uDA8DYsB,CAActB,GACjC,OAAAG,EAAU,CAAEN,MAAOoB,EAAYjB,MAAOoB,IAC/B,CAAEH,WAAAA,EAAYG,WAAAA,IAGzBG,EAAAA,WAAU,KACN,GAAIhB,EAAgB,CAChB,MAAQU,WAAAA,EAAYG,WAAAA,GAAeJ,EAASnB,EAAOG,IAE9CiB,KAAgBvB,IAAc0B,IAC/BZ,GAAkB,EAE1B,IACD,CAACX,EAAOG,EAAOO,EAAgBb,IAE5B,MAAA8B,EACDC,GACAC,GACGD,EAASC,EAAEC,OAAOC,OAqB1B,OAAInB,EACO,KAGPE,EACOkB,EAAAA,IAACC,EAAiBA,gBAAA,IAAGlC,IAI5BmC,EAAAA,KAAC,OAAA,CACGC,UAAU,sBACVrC,SA9BsC+B,YAC1CA,EAAEO,iBAEF,MAAQhB,WAAAA,EAAYG,WAAAA,GAAeJ,EAASnB,EAAOG,GACnD,OAAIiB,GACAT,GAAkB,QAClB,OAAA0B,EAAA9B,EAAS+B,UAATD,EAAkBE,UAGlB1C,GAAa0B,GACbZ,GAAkB,QAClB,OAAA6B,EAAA/B,EAAS6B,UAATE,EAAkBD,WAItBzC,EAAS,CAAEE,MAAAA,EAAOG,MAAON,EAAYM,OAAQ,SAC7CY,GAAoB,GAAI,EAepB,aAAYC,EAEZtB,SAAA,CAACsC,EAAAA,IAAA,IAAA,CAAEG,UAAU,uCAAwCzC,SAAMC,IAC1DD,GACGsC,EAAAA,IAACd,EAAgB,CAAAiB,UAAU,WACtBzC,SAAAA,IAITsC,EAAAA,IAACS,EAAAA,UAAA,CACGC,IAAKnC,EACL4B,UAAU,qBACVxC,MAAM,SACNgD,WAAY,CAAEC,QAAS,SACvBC,aAAa,QACbC,KAAK,QACLf,MAAO/B,EACP+C,SAAUpB,EAAa1B,GACvB+C,WAAY3C,EAAOL,QAEtBH,GACGmC,EAAAA,IAACS,EAAAA,UAAA,CACGC,IAAKjC,EACL0B,UAAU,qBACVxC,MAAM,gBACNgD,WAAY,CAAEC,QAAS,SACvBC,aAAa,MACbC,KAAK,QACLf,MAAO5B,EACP4C,SAAUpB,EAAavB,GACvB4C,WAAY3C,EAAOF,QAI3B+B,EAAAA,KAAC,MAAI,CAAAC,UAAU,sBACXzC,SAAA,CAAAsC,MAACiB,EAAAA,cAAc,CAAAC,KAAK,SAASf,UAAU,wBAClCzC,SACLE,UACCuD,EAAAA,eAAe,CAAAC,QAAS,IAAMvC,GAAY,GAAOnB,SAElD,kBACJ"}
1
+ {"version":3,"file":"ContactQuestion.cjs","sources":["../../../../../src/components/feedback/questions/ContactQuestion.tsx"],"sourcesContent":["import React, { ChangeEvent, FC, useEffect, useRef, useState } from \"react\";\nimport { isValidEpost } from \"../../../utilities/validators/isValidEpost/isValidEpost.js\";\nimport { isValidTelefonnummer } from \"../../../utilities/validators/isValidTelefonnummer/isValidTelefonnummer.js\";\nimport { PrimaryButton, TertiaryButton } from \"../../button/Button.js\";\nimport { TextInput } from \"../../text-input/TextInput.js\";\nimport { useFeedbackContext } from \"../feedbackContext.js\";\nimport { FeedbackSuccess } from \"../FeedbackSuccess.js\";\nimport { ContactQuestionProps } from \"../types.js\";\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\nexport const ContactQuestion: FC<ContactQuestionProps> = ({\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 {},\n );\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 } =\n 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 =\n (consumer: (value: string) => void) =>\n (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\n className=\"jkl-spacing-xl--top\"\n onSubmit={handleSubmit}\n aria-label={landmarkLabel}\n >\n <p className=\"jkl-heading-4 jkl-spacing-xs--bottom\">{label}</p>\n {children && (\n <ChildrenWrapper className=\"jkl-body\">\n {children}\n </ChildrenWrapper>\n )}\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)}>\n Nei takk\n </TertiaryButton>\n </div>\n </form>\n );\n};\n"],"names":["defaultSuccessMessage","title","children","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","jsxs","className","preventDefault","_a","current","focus","_b","TextInput","ref","labelProps","variant","autoComplete","name","onChange","errorLabel","PrimaryButton","type","TertiaryButton","onClick"],"mappings":"mcA6BMA,EAAwB,CAC1BC,MAAO,sBACPC,SACI,8MAGiD,EACrDC,MAAAA,EAAQ,0CACRC,gBAAAA,EAAkB,qBAClBC,UAAAA,GAAY,EACZC,SAAAA,EACAC,eAAAA,EAAiBP,EACjBE,SAAAA,MAEA,MAAOM,EAAOC,GAAYC,WAAS,KAC5BC,EAAOC,GAAYF,WAAS,KAC5BG,EAAQC,GAAaJ,EAAAA,SACxB,CAAC,GAECK,EAAWC,SAAyB,MACpCC,EAAWD,SAAyB,OACnCE,EAAgBC,GAAqBT,YAAS,IAE9CU,EAAUC,GAAeX,YAAS,IACjCY,iBAAAA,EAAkBC,oBAAAA,EAAqBC,cAAAA,GAC3CC,EAAmBA,qBAEjBC,EAAsC,iBAAbxB,EAAwB,IAAM,MAEvDyB,EAAW,CAACnB,EAAeG,KACvB,MAAAiB,EAlDSpB,IACdA,GAAmB,KAAVA,EAGTqB,EAAAA,aAAarB,QAAd,EACO,oCAHA,uDAgDYsB,CAActB,GAC3BuB,EAzCSpB,IACdA,GAAmB,KAAVA,EAGTqB,EAAAA,qBAAqBrB,QAAtB,EACO,oCAHA,uDAuCYsB,CAActB,GACjC,OAAAG,EAAU,CAAEN,MAAOoB,EAAYjB,MAAOoB,IAC/B,CAAEH,WAAAA,EAAYG,WAAAA,IAGzBG,EAAAA,WAAU,KACN,GAAIhB,EAAgB,CAChB,MAAQU,WAAAA,EAAYG,WAAAA,GAAeJ,EAASnB,EAAOG,IAE9CiB,KAAgBvB,IAAc0B,IAC/BZ,GAAkB,EAE1B,IACD,CAACX,EAAOG,EAAOO,EAAgBb,IAE5B,MAAA8B,EACDC,GACAC,GACGD,EAASC,EAAEC,OAAOC,OAqB1B,OAAInB,EACO,KAGPE,EACOkB,EAAAA,IAACC,EAAiBA,gBAAA,IAAGlC,IAI5BmC,EAAAA,KAAC,OAAA,CACGC,UAAU,sBACVrC,SA9BsC+B,YAC1CA,EAAEO,iBAEF,MAAQhB,WAAAA,EAAYG,WAAAA,GAAeJ,EAASnB,EAAOG,GACnD,OAAIiB,GACAT,GAAkB,QAClB,OAAA0B,EAAA9B,EAAS+B,UAATD,EAAkBE,UAGlB1C,GAAa0B,GACbZ,GAAkB,QAClB,OAAA6B,EAAA/B,EAAS6B,UAATE,EAAkBD,WAItBzC,EAAS,CAAEE,MAAAA,EAAOG,MAAON,EAAYM,OAAQ,SAC7CY,GAAoB,GAAI,EAepB,aAAYC,EAEZtB,SAAA,CAACsC,EAAAA,IAAA,IAAA,CAAEG,UAAU,uCAAwCzC,SAAMC,IAC1DD,GACGsC,EAAAA,IAACd,EAAgB,CAAAiB,UAAU,WACtBzC,SAAAA,IAITsC,EAAAA,IAACS,EAAAA,UAAA,CACGC,IAAKnC,EACL4B,UAAU,qBACVxC,MAAM,SACNgD,WAAY,CAAEC,QAAS,SACvBC,aAAa,QACbC,KAAK,QACLf,MAAO/B,EACP+C,SAAUpB,EAAa1B,GACvB+C,WAAY3C,EAAOL,QAEtBH,GACGmC,EAAAA,IAACS,EAAAA,UAAA,CACGC,IAAKjC,EACL0B,UAAU,qBACVxC,MAAM,gBACNgD,WAAY,CAAEC,QAAS,SACvBC,aAAa,MACbC,KAAK,QACLf,MAAO5B,EACP4C,SAAUpB,EAAavB,GACvB4C,WAAY3C,EAAOF,QAI3B+B,EAAAA,KAAC,MAAI,CAAAC,UAAU,sBACXzC,SAAA,CAAAsC,MAACiB,EAAAA,cAAc,CAAAC,KAAK,SAASf,UAAU,wBAClCzC,SACLE,UACCuD,EAAAA,eAAe,CAAAC,QAAS,IAAMvC,GAAY,GAAOnB,SAElD,kBACJ"}
@@ -1,28 +1,3 @@
1
- import { FC, ReactNode } from 'react';
2
- interface Props {
3
- /**
4
- * Lar deg tilpasse spørsmålsteksten.
5
- * @default "Kan vi kontakte deg for flere innspill?"
6
- * */
7
- label?: string;
8
- /**
9
- * Lar deg tilpasse teksten på knappen for innsending.
10
- * @default "Sett meg på lista!"
11
- * */
12
- sendButtonLabel?: string;
13
- /** Sett til true om du også vil spørre om brukjerens telefonnummer i tillegg til epost */
14
- withPhone?: boolean;
15
- /** Her kan du legge inn eventuelt annet innhold du vil ha med. Kommer mellom overskriften og feltene for utfylling */
16
- children?: ReactNode;
17
- onSubmit: (values: {
18
- email: string;
19
- phone?: string;
20
- }) => void;
21
- /** Lar deg tilpasse meldingen som kommer når brukeren sender inn skjemaet. */
22
- successMessage?: {
23
- title: string;
24
- children: ReactNode;
25
- };
26
- }
27
- export declare const ContactQuestion: FC<Props>;
28
- export {};
1
+ import { FC } from 'react';
2
+ import { ContactQuestionProps } from '../types.cjs';
3
+ export declare const ContactQuestion: FC<ContactQuestionProps>;
@@ -1,4 +1,4 @@
1
- import { Dispatch, FormEvent, FormEventHandler, SetStateAction } from 'react';
1
+ import { Dispatch, FormEvent, FormEventHandler, ReactNode, SetStateAction } from 'react';
2
2
  export type FeedbackOption<T = string | number> = {
3
3
  /** Teksten som vises ved alternativet */
4
4
  label: string;
@@ -13,19 +13,19 @@ interface BaseQuestion {
13
13
  helpLabel?: string;
14
14
  name?: string;
15
15
  }
16
- interface RadioQuestion extends BaseQuestion {
16
+ export interface RadioQuestion extends BaseQuestion {
17
17
  type: "radio";
18
18
  options: FeedbackOption[];
19
19
  }
20
- interface CheckboxQuestion extends BaseQuestion {
20
+ export interface CheckboxQuestion extends BaseQuestion {
21
21
  type: "checkbox";
22
22
  options: FeedbackOption[];
23
23
  }
24
- interface SmileyQuestion extends BaseQuestion {
24
+ export interface SmileyQuestion extends BaseQuestion {
25
25
  type: "smiley";
26
26
  options: FeedbackOption<number>[];
27
27
  }
28
- interface TextQuestion extends BaseQuestion {
28
+ export interface TextQuestion extends BaseQuestion {
29
29
  type: "text";
30
30
  }
31
31
  export type MainQuestion = RadioQuestion | SmileyQuestion;
@@ -35,11 +35,11 @@ interface BaseFeedbackAnswer {
35
35
  name: string;
36
36
  type: "radio" | "checkbox" | "text";
37
37
  }
38
- interface MultiFeedbackAnswer extends BaseFeedbackAnswer {
38
+ export interface MultiFeedbackAnswer extends BaseFeedbackAnswer {
39
39
  type: "checkbox";
40
40
  value: string[];
41
41
  }
42
- interface SingleFeedbackAnswer extends BaseFeedbackAnswer {
42
+ export interface SingleFeedbackAnswer extends BaseFeedbackAnswer {
43
43
  type: "radio" | "text";
44
44
  value: string;
45
45
  }
@@ -75,6 +75,16 @@ export type FollowupState = {
75
75
  handleAbort: () => void;
76
76
  setCurrentValue: Dispatch<SetStateAction<FeedbackOption | FeedbackOption[] | undefined>>;
77
77
  };
78
+ export type FollowupProps = {
79
+ /** Spørsmålet/ene som skal stilles. Kan være av typen radio, checkbox eller text */
80
+ questions: FollowupQuestion[];
81
+ /** Lar deg tilpasse meldingen som kommer når brukeren har svart på spørsmålene. */
82
+ successMessage?: {
83
+ title: string;
84
+ children: ReactNode;
85
+ };
86
+ onSubmit: (values: FeedbackAnswer[]) => void;
87
+ };
78
88
  export interface QuestionProps {
79
89
  type?: QuestionType;
80
90
  label: string;
@@ -83,4 +93,29 @@ export interface QuestionProps {
83
93
  options?: FeedbackOption[];
84
94
  autoFocus?: boolean;
85
95
  }
96
+ export type ContactQuestionProps = {
97
+ /**
98
+ * Lar deg tilpasse spørsmålsteksten.
99
+ * @default "Kan vi kontakte deg for flere innspill?"
100
+ * */
101
+ label?: string;
102
+ /**
103
+ * Lar deg tilpasse teksten på knappen for innsending.
104
+ * @default "Sett meg på lista!"
105
+ * */
106
+ sendButtonLabel?: string;
107
+ /** Sett til true om du også vil spørre om brukjerens telefonnummer i tillegg til epost */
108
+ withPhone?: boolean;
109
+ /** Her kan du legge inn eventuelt annet innhold du vil ha med. Kommer mellom overskriften og feltene for utfylling */
110
+ children?: ReactNode;
111
+ onSubmit: (values: {
112
+ email: string;
113
+ phone?: string;
114
+ }) => void;
115
+ /** Lar deg tilpasse meldingen som kommer når brukeren sender inn skjemaet. */
116
+ successMessage?: {
117
+ title: string;
118
+ children: ReactNode;
119
+ };
120
+ };
86
121
  export {};
@@ -1,2 +1 @@
1
- export type { IconButtonProps } from './IconButton.cjs';
2
- export { IconButton } from './IconButton.cjs';
1
+ export { IconButton, type IconButtonProps } from './IconButton.cjs';
@@ -1,3 +1 @@
1
- import { Image, ImageProps } from './Image.cjs';
2
- export type { ImageProps };
3
- export { Image };
1
+ export { Image, type ImageProps } from './Image.cjs';
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./accordion/Accordion.cjs"),o=require("./accordion/AccordionItem.cjs"),r=require("./breadcrumb/Breadcrumb.cjs"),t=require("./breadcrumb/BreadcrumbItem.cjs"),s=require("./button/Button.cjs"),n=require("./card/Card.cjs"),i=require("./card/CardImage.cjs"),a=require("./card/NavCard.cjs"),c=require("./card/TaskCard.cjs"),p=require("./card/InfoCard.cjs"),u=require("./checkbox/Checkbox.cjs"),l=require("./combobox/Combobox.cjs"),x=require("./cookie-consent/CookieConsent.cjs"),d=require("./cookie-consent/CookieConsentContext.cjs"),b=require("./datepicker/validation.cjs"),T=require("./datepicker/utils.cjs"),I=require("./datepicker/DatePicker.cjs"),j=require("./feedback/Feedback.cjs"),g=require("./feedback/presets.cjs"),q=require("./flex/Flex.cjs"),m=require("./description-list/DescriptionList.cjs"),C=require("./expander/Expander.cjs"),k=require("./expander/ExpandSection.cjs"),S=require("./icon/Icon.cjs"),h=require("./icon/icons/animated/ArrowVerticalAnimated.cjs"),B=require("./icon/icons/animated/ArrowHorizontalAnimated.cjs"),L=require("./icon/icons/animated/PlusRemoveAnimated.cjs"),M=require("./icon/icons/ArrowDownIcon.cjs"),v=require("./icon/icons/ArrowLeftIcon.cjs"),w=require("./icon/icons/ArrowNorthEastIcon.cjs"),A=require("./icon/icons/ArrowRightIcon.cjs"),P=require("./icon/icons/ArrowUpIcon.cjs"),R=require("./icon/icons/CalendarIcon.cjs"),F=require("./icon/icons/CheckIcon.cjs"),y=require("./icon/icons/ChevronDownIcon.cjs"),D=require("./icon/icons/ChevronLeftIcon.cjs"),E=require("./icon/icons/ChevronRightIcon.cjs"),f=require("./icon/icons/ChevronUpIcon.cjs"),G=require("./icon/icons/CloseIcon.cjs"),N=require("./icon/icons/CopyIcon.cjs"),H=require("./icon/icons/DotsIcon.cjs"),U=require("./icon/icons/DragIcon.cjs"),W=require("./icon/icons/ErrorIcon.cjs"),V=require("./icon/icons/GreenCheckIcon.cjs"),O=require("./icon/icons/HamburgerIcon.cjs"),z=require("./icon/icons/InfoIcon.cjs"),Q=require("./icon/icons/LinkIcon.cjs"),Y=require("./icon/icons/PlusIcon.cjs"),J=require("./icon/icons/QuestionIcon.cjs"),K=require("./icon/icons/RedCrossIcon.cjs"),X=require("./icon/icons/SearchIcon.cjs"),Z=require("./icon/icons/SuccessIcon.cjs"),$=require("./icon/icons/WarningIcon.cjs"),_=require("./icon/icons/MinusIcon.cjs"),ee=require("./icon/icons/ThumbDownIcon.cjs"),oe=require("./icon/icons/ThumbUpIcon.cjs"),re=require("./icon/icons/TrashCanIcon.cjs"),te=require("./icon/icons/PenIcon.cjs"),se=require("./icon-button/IconButton.cjs"),ne=require("./image/Image.cjs"),ie=require("./input-group/FieldGroup.cjs"),ae=require("./input-group/InputGroup.cjs"),ce=require("./input-group/Label.cjs"),pe=require("./input-group/SupportLabel.cjs"),ue=require("./link/Link.cjs"),le=require("./link/NavLink.cjs"),xe=require("./link-list/LinkList.cjs"),de=require("./list/List.cjs"),be=require("./list/ListItem.cjs"),Te=require("./loader/Loader.cjs"),Ie=require("./loader/skeletons/SkeletonAnimation.cjs"),je=require("./loader/skeletons/SkeletonButton.cjs"),ge=require("./loader/skeletons/SkeletonCheckboxGroup.cjs"),qe=require("./loader/skeletons/SkeletonElement.cjs"),me=require("./loader/skeletons/SkeletonInput.cjs"),Ce=require("./loader/skeletons/SkeletonRadioButtonGroup.cjs"),ke=require("./loader/skeletons/SkeletonTable.cjs"),Se=require("./loader/skeletons/SkeletonTextArea.cjs"),he=require("./logo/Logo.cjs"),Be=require("./logo/LogoStamp.cjs"),Le=require("./logo/text-paths/ForsikringLevertAvFremtind.cjs"),Me=require("./logo/text-paths/FraSB1ogDNB.cjs"),ve=require("./logo/text-paths/InnovasjonFraFremtind.cjs"),we=require("./logo/text-paths/TeknologiFraFremtind.cjs"),Ae=require("./logo/text-paths/VartEgetForsikringsselskap.cjs"),Pe=require("./logo/text-paths/VartForsikringsselskap.cjs"),Re=require("./menu/Menu.cjs"),Fe=require("./menu/MenuItem.cjs"),ye=require("./menu/MenuItemCheckbox.cjs"),De=require("./menu/MenuDivider.cjs"),Ee=require("./message/Message.cjs"),fe=require("./message/FormErrorMessage.cjs"),Ge=require("./modal/Modal.cjs"),Ne=require("./modal/useModal.cjs"),He=require("./pagination/Pagination.cjs"),Ue=require("./popover/Popover.cjs"),We=require("./progress-bar/Countdown.cjs"),Ve=require("./progress-bar/ProgressBar.cjs"),Oe=require("./radio-button/RadioButton.cjs"),ze=require("./radio-button/RadioButtonGroup.cjs"),Qe=require("./radio-button/BaseRadioButton.cjs"),Ye=require("./radio-panel/RadioPanel.cjs"),Je=require("./select/Select.cjs"),Ke=require("./select/NativeSelect.cjs"),Xe=require("./summary-table/SummaryTable.cjs"),Ze=require("./summary-table/SummaryTableRow.cjs"),$e=require("./system-message/SystemMessage.cjs"),_e=require("./table/DataTable.cjs"),eo=require("./table/Table.cjs"),oo=require("./table/TableBody.cjs"),ro=require("./table/TableCaption.cjs"),to=require("./table/TableCell.cjs"),so=require("./table/TableColumn.cjs"),no=require("./table/TableColumnGroup.cjs"),io=require("./table/tableContext.cjs"),ao=require("./table/tableSectionContext.cjs"),co=require("./table/TableFooter.cjs"),po=require("./table/TableHead.cjs"),uo=require("./table/TableHeader.cjs"),lo=require("./table/TablePagination.cjs"),xo=require("./table/TableRow.cjs"),bo=require("./table/ExpandableTableRow.cjs"),To=require("./table/ExpandableTableRowController.cjs"),Io=require("./table/utils.cjs"),jo=require("./tabs/NavTab.cjs"),go=require("./tabs/NavTabs.cjs"),qo=require("./tabs/Tabs.cjs"),mo=require("./tabs/TabList.cjs"),Co=require("./tabs/Tab.cjs"),ko=require("./tabs/TabPanel.cjs"),So=require("./tag/Tag.cjs"),ho=require("./text-input/BaseTextArea.cjs"),Bo=require("./text-input/BaseTextInput.cjs"),Lo=require("./text-input/TextArea.cjs"),Mo=require("./text-input/TextInput.cjs"),vo=require("./toast/toastContext.cjs"),wo=require("./toggle-switch/ToggleSwitch.cjs"),Ao=require("./toggle-switch/ToggleSlider.cjs"),Po=require("./tooltip/Tooltip.cjs"),Ro=require("./tooltip/TooltipContent.cjs"),Fo=require("./tooltip/TooltipTrigger.cjs"),yo=require("./tooltip/PopupTip.cjs"),Do=require("./ScreenReaderOnly.cjs");exports.Accordion=e.Accordion,exports.AccordionItem=o.AccordionItem,exports.Breadcrumb=r.Breadcrumb,exports.BreadcrumbItem=t.BreadcrumbItem,exports.Button=s.Button,exports.PrimaryButton=s.PrimaryButton,exports.SecondaryButton=s.SecondaryButton,exports.TertiaryButton=s.TertiaryButton,exports.Card=n.Card,exports.CardImage=i.CardImage,exports.InfoBlock=a.InfoBlock,exports.NavCard=a.NavCard,exports.TaskCard=c.TaskCard,exports.InfoCard=p.InfoCard,exports.Checkbox=u.Checkbox,exports.Combobox=l.Combobox,exports.getComboboxValuePair=l.getComboboxValuePair,exports.CookieConsent=x.CookieConsent,exports.CookieConsentProvider=d.CookieConsentProvider,exports.useCookieConsent=d.useCookieConsent,exports.isCorrectFormat=b.isCorrectFormat,exports.isWithinLowerBound=b.isWithinLowerBound,exports.isWithinUpperBound=b.isWithinUpperBound,exports.dayMonthYearRegex=T.dayMonthYearRegex,exports.formatInput=T.formatInput,exports.isBlurTargetOutside=T.isBlurTargetOutside,exports.parseDateString=T.parseDateString,exports.DatePicker=I.DatePicker,exports.Feedback=j.Feedback,exports.PRESETS=g.PRESETS,exports.Flex=q.Flex,exports.DescriptionDetail=m.DescriptionDetail,exports.DescriptionList=m.DescriptionList,exports.DescriptionTerm=m.DescriptionTerm,exports.Expander=C.Expander,exports.ExpandSection=k.ExpandSection,exports.Icon=S.Icon,exports.ArrowVerticalAnimated=h.ArrowVerticalAnimated,exports.ArrowHorizontalAnimated=B.ArrowHorizontalAnimated,exports.PlusRemoveAnimated=L.PlusRemoveAnimated,exports.ArrowDownIcon=M.ArrowDownIcon,exports.ArrowLeftIcon=v.ArrowLeftIcon,exports.ArrowNorthEastIcon=w.ArrowNorthEastIcon,exports.ArrowRightIcon=A.ArrowRightIcon,exports.ArrowUpIcon=P.ArrowUpIcon,exports.CalendarIcon=R.CalendarIcon,exports.CheckIcon=F.CheckIcon,exports.ChevronDownIcon=y.ChevronDownIcon,exports.ChevronLeftIcon=D.ChevronLeftIcon,exports.ChevronRightIcon=E.ChevronRightIcon,exports.ChevronUpIcon=f.ChevronUpIcon,exports.CloseIcon=G.CloseIcon,exports.CopyIcon=N.CopyIcon,exports.DotsIcon=H.DotsIcon,exports.DragIcon=U.DragIcon,exports.ErrorIcon=W.ErrorIcon,exports.GreenCheckIcon=V.GreenCheckIcon,exports.HamburgerIcon=O.HamburgerIcon,exports.InfoIcon=z.InfoIcon,exports.LinkIcon=Q.LinkIcon,exports.PlusIcon=Y.PlusIcon,exports.QuestionIcon=J.QuestionIcon,exports.RedCrossIcon=K.RedCrossIcon,exports.SearchIcon=X.SearchIcon,exports.SuccessIcon=Z.SuccessIcon,exports.WarningIcon=$.WarningIcon,exports.MinusIcon=_.MinusIcon,exports.ThumbDownIcon=ee.ThumbDownIcon,exports.ThumbUpIcon=oe.ThumbUpIcon,exports.TrashCanIcon=re.TrashCanIcon,exports.PenIcon=te.PenIcon,exports.IconButton=se.IconButton,exports.Image=ne.Image,exports.FieldGroup=ie.FieldGroup,exports.InputGroup=ae.InputGroup,exports.Label=ce.Label,exports.SupportLabel=pe.SupportLabel,exports.Link=ue.Link,exports.NavLink=le.NavLink,exports.LinkList=xe.LinkList,exports.List=de.List,exports.OrderedList=de.OrderedList,exports.UnorderedList=de.UnorderedList,exports.CheckListItem=be.CheckListItem,exports.CrossListItem=be.CrossListItem,exports.ListItem=be.ListItem,exports.Loader=Te.Loader,exports.SkeletonAnimation=Ie.SkeletonAnimation,exports.SkeletonButton=je.SkeletonButton,exports.SkeletonCheckboxGroup=ge.SkeletonCheckboxGroup,exports.SkeletonElement=qe.SkeletonElement,exports.SkeletonInput=me.SkeletonInput,exports.SkeletonRadioButtonGroup=Ce.SkeletonRadioButtonGroup,exports.SkeletonTable=ke.SkeletonTable,exports.SkeletonTableHeader=ke.SkeletonTableHeader,exports.SkeletonTableRow=ke.SkeletonTableRow,exports.SkeletonTextArea=Se.SkeletonTextArea,exports.Logo=he.Logo,exports.LogoStamp=Be.LogoStamp,exports.ForsikringLevertAvFremtind=Le.ForsikringLevertAvFremtind,exports.FraSB1ogDNB=Me.FraSB1ogDNB,exports.InnovasjonFraFremtind=ve.InnovasjonFraFremtind,exports.TeknologiFraFremtind=we.TeknologiFraFremtind,exports.VartEgetForsikringsselskap=Ae.VartEgetForsikringsselskap,exports.VartForsikringsselskap=Pe.VartForsikringsselskap,exports.Menu=Re.Menu,exports.MenuItem=Fe.MenuItem,exports.MenuItemCheckbox=ye.MenuItemCheckbox,exports.MenuDivider=De.MenuDivider,exports.ErrorMessage=Ee.ErrorMessage,exports.InfoMessage=Ee.InfoMessage,exports.SuccessMessage=Ee.SuccessMessage,exports.WarningMessage=Ee.WarningMessage,exports.FormErrorMessage=fe.FormErrorMessage,exports.Modal=Ge.Modal,exports.ModalActions=Ge.ModalActions,exports.ModalBody=Ge.ModalBody,exports.ModalCloseButton=Ge.ModalCloseButton,exports.ModalContainer=Ge.ModalContainer,exports.ModalHeader=Ge.ModalHeader,exports.ModalOverlay=Ge.ModalOverlay,exports.ModalTitle=Ge.ModalTitle,exports.useModal=Ne.useModal,exports.Pagination=He.Pagination,exports.Popover=Ue.Popover,exports.Countdown=We.Countdown,exports.ProgressBar=Ve.ProgressBar,exports.RadioButton=Oe.RadioButton,exports.RadioButtonGroup=ze.RadioButtonGroup,exports.BaseRadioButton=Qe.BaseRadioButton,exports.RadioPanel=Ye.RadioPanel,exports.Select=Je.Select,exports.NativeSelect=Ke.NativeSelect,exports.SummaryTable=Xe.SummaryTable,exports.SummaryTableRow=Ze.SummaryTableRow,exports.ErrorSystemMessage=$e.ErrorSystemMessage,exports.InfoSystemMessage=$e.InfoSystemMessage,exports.SuccessSystemMessage=$e.SuccessSystemMessage,exports.WarningSystemMessage=$e.WarningSystemMessage,exports.DataTable=_e.DataTable,exports.Table=eo.Table,exports.TableBody=oo.TableBody,exports.TableCaption=ro.TableCaption,exports.TableCell=to.TableCell,exports.TableColumn=so.TableColumn,exports.TableColumnGroup=no.TableColumnGroup,exports.TableContextProvider=io.TableContextProvider,exports.useTableContext=io.useTableContext,exports.TableSectionContextProvider=ao.TableSectionContextProvider,exports.useTableSectionContext=ao.useTableSectionContext,exports.TableFooter=co.TableFooter,exports.TableHead=po.TableHead,exports.TableHeader=uo.TableHeader,exports.TablePagination=lo.TablePagination,exports.TableRow=xo.TableRow,exports.ExpandableTableRow=bo.ExpandableTableRow,exports.ExpandableTableRowController=To.ExpandableTableRowController,exports.useSortableTableHeader=Io.useSortableTableHeader,exports.NavTab=jo.NavTab,exports.NavTabs=go.NavTabs,exports.Tabs=qo.Tabs,exports.TabList=mo.TabList,exports.Tab=Co.Tab,exports.TabPanel=ko.TabPanel,exports.ErrorTag=So.ErrorTag,exports.InfoTag=So.InfoTag,exports.SuccessTag=So.SuccessTag,exports.Tag=So.Tag,exports.WarningTag=So.WarningTag,exports.BaseTextArea=ho.BaseTextArea,exports.BaseTextInput=Bo.BaseTextInput,exports.TextArea=Lo.TextArea,exports.TextInput=Mo.TextInput,exports.ToastProvider=vo.ToastProvider,exports.useToast=vo.useToast,exports.ToggleSwitch=wo.ToggleSwitch,exports.ToggleSlider=Ao.ToggleSlider,exports.Tooltip=Po.Tooltip,exports.TooltipContent=Ro.TooltipContent,exports.TooltipTrigger=Fo.TooltipTrigger,exports.PopupTip=yo.PopupTip,exports.ScreenReaderOnly=Do.ScreenReaderOnly;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./accordion/Accordion.cjs"),o=require("./accordion/AccordionItem.cjs"),r=require("./breadcrumb/Breadcrumb.cjs"),t=require("./breadcrumb/BreadcrumbItem.cjs"),s=require("./button/Button.cjs"),n=require("./card/Card.cjs"),i=require("./card/CardImage.cjs"),a=require("./card/NavCard.cjs"),c=require("./card/TaskCard.cjs"),p=require("./card/InfoCard.cjs"),u=require("./checkbox/Checkbox.cjs"),l=require("./combobox/Combobox.cjs"),x=require("./cookie-consent/CookieConsent.cjs"),d=require("./cookie-consent/CookieConsentContext.cjs"),b=require("./datepicker/DatePicker.cjs"),T=require("./datepicker/validation.cjs"),I=require("./datepicker/utils.cjs"),j=require("./feedback/Feedback.cjs"),q=require("./feedback/presets.cjs"),g=require("./flex/Flex.cjs"),m=require("./description-list/DescriptionList.cjs"),C=require("./expander/Expander.cjs"),k=require("./expander/ExpandSection.cjs"),S=require("./icon/Icon.cjs"),h=require("./icon/icons/animated/ArrowVerticalAnimated.cjs"),B=require("./icon/icons/animated/ArrowHorizontalAnimated.cjs"),L=require("./icon/icons/animated/PlusRemoveAnimated.cjs"),v=require("./icon/icons/ArrowDownIcon.cjs"),M=require("./icon/icons/ArrowLeftIcon.cjs"),w=require("./icon/icons/ArrowNorthEastIcon.cjs"),P=require("./icon/icons/ArrowRightIcon.cjs"),A=require("./icon/icons/ArrowUpIcon.cjs"),R=require("./icon/icons/CalendarIcon.cjs"),F=require("./icon/icons/CheckIcon.cjs"),y=require("./icon/icons/ChevronDownIcon.cjs"),D=require("./icon/icons/ChevronLeftIcon.cjs"),E=require("./icon/icons/ChevronRightIcon.cjs"),f=require("./icon/icons/ChevronUpIcon.cjs"),G=require("./icon/icons/CloseIcon.cjs"),N=require("./icon/icons/CopyIcon.cjs"),H=require("./icon/icons/DotsIcon.cjs"),U=require("./icon/icons/DragIcon.cjs"),W=require("./icon/icons/ErrorIcon.cjs"),V=require("./icon/icons/GreenCheckIcon.cjs"),O=require("./icon/icons/HamburgerIcon.cjs"),z=require("./icon/icons/InfoIcon.cjs"),Q=require("./icon/icons/LinkIcon.cjs"),J=require("./icon/icons/PlusIcon.cjs"),K=require("./icon/icons/QuestionIcon.cjs"),X=require("./icon/icons/RedCrossIcon.cjs"),Y=require("./icon/icons/SearchIcon.cjs"),Z=require("./icon/icons/SuccessIcon.cjs"),$=require("./icon/icons/WarningIcon.cjs"),_=require("./icon/icons/MinusIcon.cjs"),ee=require("./icon/icons/ThumbDownIcon.cjs"),oe=require("./icon/icons/ThumbUpIcon.cjs"),re=require("./icon/icons/TrashCanIcon.cjs"),te=require("./icon/icons/PenIcon.cjs"),se=require("./icon-button/IconButton.cjs"),ne=require("./image/Image.cjs"),ie=require("./input-group/FieldGroup.cjs"),ae=require("./input-group/InputGroup.cjs"),ce=require("./input-group/Label.cjs"),pe=require("./input-group/SupportLabel.cjs"),ue=require("./input-panel/CheckboxPanel.cjs"),le=require("./input-panel/RadioPanel.cjs"),xe=require("./input-panel/RadioPanelGroup.cjs"),de=require("./link/Link.cjs"),be=require("./link/NavLink.cjs"),Te=require("./link-list/LinkList.cjs"),Ie=require("./list/List.cjs"),je=require("./list/ListItem.cjs"),qe=require("./loader/Loader.cjs"),ge=require("./loader/skeletons/SkeletonAnimation.cjs"),me=require("./loader/skeletons/SkeletonButton.cjs"),Ce=require("./loader/skeletons/SkeletonCheckboxGroup.cjs"),ke=require("./loader/skeletons/SkeletonElement.cjs"),Se=require("./loader/skeletons/SkeletonInput.cjs"),he=require("./loader/skeletons/SkeletonRadioButtonGroup.cjs"),Be=require("./loader/skeletons/SkeletonTable.cjs"),Le=require("./loader/skeletons/SkeletonTextArea.cjs"),ve=require("./logo/Logo.cjs"),Me=require("./logo/LogoStamp.cjs"),we=require("./logo/text-paths/ForsikringLevertAvFremtind.cjs"),Pe=require("./logo/text-paths/FraSB1ogDNB.cjs"),Ae=require("./logo/text-paths/InnovasjonFraFremtind.cjs"),Re=require("./logo/text-paths/TeknologiFraFremtind.cjs"),Fe=require("./logo/text-paths/VartEgetForsikringsselskap.cjs"),ye=require("./logo/text-paths/VartForsikringsselskap.cjs"),De=require("./menu/Menu.cjs"),Ee=require("./menu/MenuItem.cjs"),fe=require("./menu/MenuItemCheckbox.cjs"),Ge=require("./menu/MenuDivider.cjs"),Ne=require("./message/Message.cjs"),He=require("./message/FormErrorMessage.cjs"),Ue=require("./modal/Modal.cjs"),We=require("./modal/useModal.cjs"),Ve=require("./pagination/Pagination.cjs"),Oe=require("./popover/Popover.cjs"),ze=require("./progress-bar/Countdown.cjs"),Qe=require("./progress-bar/ProgressBar.cjs"),Je=require("./radio-button/RadioButton.cjs"),Ke=require("./radio-button/RadioButtonGroup.cjs"),Xe=require("./radio-button/BaseRadioButton.cjs"),Ye=require("./select/Select.cjs"),Ze=require("./select/NativeSelect.cjs"),$e=require("./summary-table/SummaryTable.cjs"),_e=require("./summary-table/SummaryTableRow.cjs"),eo=require("./system-message/SystemMessage.cjs"),oo=require("./table/DataTable.cjs"),ro=require("./table/Table.cjs"),to=require("./table/TableBody.cjs"),so=require("./table/TableCaption.cjs"),no=require("./table/TableCell.cjs"),io=require("./table/TableColumn.cjs"),ao=require("./table/TableColumnGroup.cjs"),co=require("./table/tableContext.cjs"),po=require("./table/tableSectionContext.cjs"),uo=require("./table/TableFooter.cjs"),lo=require("./table/TableHead.cjs"),xo=require("./table/TableHeader.cjs"),bo=require("./table/TablePagination.cjs"),To=require("./table/TableRow.cjs"),Io=require("./table/ExpandableTableRow.cjs"),jo=require("./table/ExpandableTableRowController.cjs"),qo=require("./table/utils.cjs"),go=require("./tabs/NavTab.cjs"),mo=require("./tabs/NavTabs.cjs"),Co=require("./tabs/Tabs.cjs"),ko=require("./tabs/TabList.cjs"),So=require("./tabs/Tab.cjs"),ho=require("./tabs/TabPanel.cjs"),Bo=require("./tag/Tag.cjs"),Lo=require("./text-input/BaseTextArea.cjs"),vo=require("./text-input/BaseTextInput.cjs"),Mo=require("./text-input/TextArea.cjs"),wo=require("./text-input/TextInput.cjs"),Po=require("./toast/toastContext.cjs"),Ao=require("./toggle-switch/ToggleSwitch.cjs"),Ro=require("./toggle-switch/ToggleSlider.cjs"),Fo=require("./tooltip/Tooltip.cjs"),yo=require("./tooltip/TooltipContent.cjs"),Do=require("./tooltip/TooltipTrigger.cjs"),Eo=require("./tooltip/PopupTip.cjs"),fo=require("./ScreenReaderOnly.cjs");exports.Accordion=e.Accordion,exports.AccordionItem=o.AccordionItem,exports.Breadcrumb=r.Breadcrumb,exports.BreadcrumbItem=t.BreadcrumbItem,exports.Button=s.Button,exports.PrimaryButton=s.PrimaryButton,exports.SecondaryButton=s.SecondaryButton,exports.TertiaryButton=s.TertiaryButton,exports.Card=n.Card,exports.CardImage=i.CardImage,exports.InfoBlock=a.InfoBlock,exports.NavCard=a.NavCard,exports.TaskCard=c.TaskCard,exports.InfoCard=p.InfoCard,exports.Checkbox=u.Checkbox,exports.Combobox=l.Combobox,exports.getComboboxValuePair=l.getComboboxValuePair,exports.CookieConsent=x.CookieConsent,exports.CookieConsentProvider=d.CookieConsentProvider,exports.useCookieConsent=d.useCookieConsent,exports.DatePicker=b.DatePicker,exports.isCorrectFormat=T.isCorrectFormat,exports.isWithinLowerBound=T.isWithinLowerBound,exports.isWithinUpperBound=T.isWithinUpperBound,exports.formatInput=I.formatInput,exports.isBlurTargetOutside=I.isBlurTargetOutside,exports.parseDateString=I.parseDateString,exports.Feedback=j.Feedback,exports.PRESETS=q.PRESETS,exports.Flex=g.Flex,exports.DescriptionDetail=m.DescriptionDetail,exports.DescriptionList=m.DescriptionList,exports.DescriptionTerm=m.DescriptionTerm,exports.Expander=C.Expander,exports.ExpandSection=k.ExpandSection,exports.Icon=S.Icon,exports.ArrowVerticalAnimated=h.ArrowVerticalAnimated,exports.ArrowHorizontalAnimated=B.ArrowHorizontalAnimated,exports.PlusRemoveAnimated=L.PlusRemoveAnimated,exports.ArrowDownIcon=v.ArrowDownIcon,exports.ArrowLeftIcon=M.ArrowLeftIcon,exports.ArrowNorthEastIcon=w.ArrowNorthEastIcon,exports.ArrowRightIcon=P.ArrowRightIcon,exports.ArrowUpIcon=A.ArrowUpIcon,exports.CalendarIcon=R.CalendarIcon,exports.CheckIcon=F.CheckIcon,exports.ChevronDownIcon=y.ChevronDownIcon,exports.ChevronLeftIcon=D.ChevronLeftIcon,exports.ChevronRightIcon=E.ChevronRightIcon,exports.ChevronUpIcon=f.ChevronUpIcon,exports.CloseIcon=G.CloseIcon,exports.CopyIcon=N.CopyIcon,exports.DotsIcon=H.DotsIcon,exports.DragIcon=U.DragIcon,exports.ErrorIcon=W.ErrorIcon,exports.GreenCheckIcon=V.GreenCheckIcon,exports.HamburgerIcon=O.HamburgerIcon,exports.InfoIcon=z.InfoIcon,exports.LinkIcon=Q.LinkIcon,exports.PlusIcon=J.PlusIcon,exports.QuestionIcon=K.QuestionIcon,exports.RedCrossIcon=X.RedCrossIcon,exports.SearchIcon=Y.SearchIcon,exports.SuccessIcon=Z.SuccessIcon,exports.WarningIcon=$.WarningIcon,exports.MinusIcon=_.MinusIcon,exports.ThumbDownIcon=ee.ThumbDownIcon,exports.ThumbUpIcon=oe.ThumbUpIcon,exports.TrashCanIcon=re.TrashCanIcon,exports.PenIcon=te.PenIcon,exports.IconButton=se.IconButton,exports.Image=ne.Image,exports.FieldGroup=ie.FieldGroup,exports.InputGroup=ae.InputGroup,exports.Label=ce.Label,exports.SupportLabel=pe.SupportLabel,exports.CheckboxPanel=ue.CheckboxPanel,exports.RadioPanel=le.RadioPanel,exports.RadioPanelGroup=xe.RadioPanelGroup,exports.Link=de.Link,exports.NavLink=be.NavLink,exports.LinkList=Te.LinkList,exports.List=Ie.List,exports.OrderedList=Ie.OrderedList,exports.UnorderedList=Ie.UnorderedList,exports.CheckListItem=je.CheckListItem,exports.CrossListItem=je.CrossListItem,exports.ListItem=je.ListItem,exports.Loader=qe.Loader,exports.SkeletonAnimation=ge.SkeletonAnimation,exports.SkeletonButton=me.SkeletonButton,exports.SkeletonCheckboxGroup=Ce.SkeletonCheckboxGroup,exports.SkeletonElement=ke.SkeletonElement,exports.SkeletonInput=Se.SkeletonInput,exports.SkeletonRadioButtonGroup=he.SkeletonRadioButtonGroup,exports.SkeletonTable=Be.SkeletonTable,exports.SkeletonTableHeader=Be.SkeletonTableHeader,exports.SkeletonTableRow=Be.SkeletonTableRow,exports.SkeletonTextArea=Le.SkeletonTextArea,exports.Logo=ve.Logo,exports.LogoStamp=Me.LogoStamp,exports.ForsikringLevertAvFremtind=we.ForsikringLevertAvFremtind,exports.FraSB1ogDNB=Pe.FraSB1ogDNB,exports.InnovasjonFraFremtind=Ae.InnovasjonFraFremtind,exports.TeknologiFraFremtind=Re.TeknologiFraFremtind,exports.VartEgetForsikringsselskap=Fe.VartEgetForsikringsselskap,exports.VartForsikringsselskap=ye.VartForsikringsselskap,exports.Menu=De.Menu,exports.MenuItem=Ee.MenuItem,exports.MenuItemCheckbox=fe.MenuItemCheckbox,exports.MenuDivider=Ge.MenuDivider,exports.ErrorMessage=Ne.ErrorMessage,exports.InfoMessage=Ne.InfoMessage,exports.SuccessMessage=Ne.SuccessMessage,exports.WarningMessage=Ne.WarningMessage,exports.FormErrorMessage=He.FormErrorMessage,exports.Modal=Ue.Modal,exports.ModalActions=Ue.ModalActions,exports.ModalBody=Ue.ModalBody,exports.ModalCloseButton=Ue.ModalCloseButton,exports.ModalContainer=Ue.ModalContainer,exports.ModalHeader=Ue.ModalHeader,exports.ModalOverlay=Ue.ModalOverlay,exports.ModalTitle=Ue.ModalTitle,exports.useModal=We.useModal,exports.Pagination=Ve.Pagination,exports.Popover=Oe.Popover,exports.Countdown=ze.Countdown,exports.ProgressBar=Qe.ProgressBar,exports.RadioButton=Je.RadioButton,exports.RadioButtonGroup=Ke.RadioButtonGroup,exports.BaseRadioButton=Xe.BaseRadioButton,exports.Select=Ye.Select,exports.NativeSelect=Ze.NativeSelect,exports.SummaryTable=$e.SummaryTable,exports.SummaryTableRow=_e.SummaryTableRow,exports.ErrorSystemMessage=eo.ErrorSystemMessage,exports.InfoSystemMessage=eo.InfoSystemMessage,exports.SuccessSystemMessage=eo.SuccessSystemMessage,exports.WarningSystemMessage=eo.WarningSystemMessage,exports.DataTable=oo.DataTable,exports.Table=ro.Table,exports.TableBody=to.TableBody,exports.TableCaption=so.TableCaption,exports.TableCell=no.TableCell,exports.TableColumn=io.TableColumn,exports.TableColumnGroup=ao.TableColumnGroup,exports.TableContextProvider=co.TableContextProvider,exports.useTableContext=co.useTableContext,exports.TableSectionContextProvider=po.TableSectionContextProvider,exports.useTableSectionContext=po.useTableSectionContext,exports.TableFooter=uo.TableFooter,exports.TableHead=lo.TableHead,exports.TableHeader=xo.TableHeader,exports.TablePagination=bo.TablePagination,exports.TableRow=To.TableRow,exports.ExpandableTableRow=Io.ExpandableTableRow,exports.ExpandableTableRowController=jo.ExpandableTableRowController,exports.useSortableTableHeader=qo.useSortableTableHeader,exports.NavTab=go.NavTab,exports.NavTabs=mo.NavTabs,exports.Tabs=Co.Tabs,exports.TabList=ko.TabList,exports.Tab=So.Tab,exports.TabPanel=ho.TabPanel,exports.ErrorTag=Bo.ErrorTag,exports.InfoTag=Bo.InfoTag,exports.SuccessTag=Bo.SuccessTag,exports.Tag=Bo.Tag,exports.WarningTag=Bo.WarningTag,exports.BaseTextArea=Lo.BaseTextArea,exports.BaseTextInput=vo.BaseTextInput,exports.TextArea=Mo.TextArea,exports.TextInput=wo.TextInput,exports.ToastProvider=Po.ToastProvider,exports.useToast=Po.useToast,exports.ToggleSwitch=Ao.ToggleSwitch,exports.ToggleSlider=Ro.ToggleSlider,exports.Tooltip=Fo.Tooltip,exports.TooltipContent=yo.TooltipContent,exports.TooltipTrigger=Do.TooltipTrigger,exports.PopupTip=Eo.PopupTip,exports.ScreenReaderOnly=fo.ScreenReaderOnly;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -14,6 +14,7 @@ export * from './icon/index.cjs';
14
14
  export * from './icon-button/index.cjs';
15
15
  export * from './image/index.cjs';
16
16
  export * from './input-group/index.cjs';
17
+ export * from './input-panel/index.cjs';
17
18
  export * from './link/index.cjs';
18
19
  export * from './link-list/index.cjs';
19
20
  export * from './list/index.cjs';
@@ -26,7 +27,6 @@ export * from './pagination/index.cjs';
26
27
  export * from './popover/index.cjs';
27
28
  export * from './progress-bar/index.cjs';
28
29
  export * from './radio-button/index.cjs';
29
- export * from './radio-panel/index.cjs';
30
30
  export * from './select/index.cjs';
31
31
  export * from './summary-table/index.cjs';
32
32
  export * from './system-message/index.cjs';
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("../../../clsx-E3yX_9sL.cjs"),l=require("react"),n=require("../../hooks/useAnimatedHeight/useAutoAnimateHeight.cjs"),s=l.forwardRef((function({className:s,isChecked:t,children:i,alwaysOpen:r,label:c,extraLabel:p,type:d,...u},o){const j=`content-${l.useId()}`,x=l.Children.count(i)>0,h=n.useAutoAnimatedHeight(t);return e.jsxs("div",{className:a.clsx("jkl-input-panel",`jkl-${d}-panel`,s),children:[e.jsxs("label",{className:"jkl-input-panel__label",children:[e.jsx("input",{ref:o,className:"jkl-input-panel__input",type:d,"aria-controls":r?void 0:j,"aria-expanded":r?void 0:t,...u}),e.jsx("span",{"aria-hidden":"true",className:`jkl-${d}-panel__decorator`}),e.jsx("span",{className:"jkl-input-panel__main-label",children:c}),e.jsx("span",{className:a.clsx("jkl-input-panel__extra-label",{"jkl-input-panel__extra-label--text":"string"==typeof p}),children:p})]}),x&&e.jsx("div",{ref:h,"aria-hidden":!t&&!r,children:e.jsx("div",{className:"jkl-input-panel__content",id:j,"data-alwaysopen":r,children:i})})]})}));exports.BasePanel=s;
2
+ //# sourceMappingURL=BasePanel.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BasePanel.cjs","sources":["../../../../src/components/input-panel/BasePanel.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, {\n Children,\n ComponentPropsWithRef,\n ForwardedRef,\n forwardRef,\n ReactNode,\n useId,\n} from \"react\";\nimport { useAutoAnimatedHeight } from \"../../hooks/useAnimatedHeight/useAutoAnimateHeight.js\";\n\ntype Props = ComponentPropsWithRef<\"input\"> & {\n isChecked: boolean;\n alwaysOpen: boolean;\n label: string;\n extraLabel?: ReactNode;\n type: \"radio\" | \"checkbox\";\n};\n\nexport const BasePanel = forwardRef(function BasePanel(\n {\n className,\n isChecked,\n children,\n alwaysOpen,\n label,\n extraLabel,\n type,\n ...rest\n }: Props,\n ref: ForwardedRef<HTMLInputElement>,\n) {\n const contentId = `content-${useId()}`;\n const hasChildren = Children.count(children) > 0;\n const animationRef = useAutoAnimatedHeight<HTMLDivElement>(isChecked);\n\n return (\n <div\n className={clsx(\"jkl-input-panel\", `jkl-${type}-panel`, className)}\n >\n <label className=\"jkl-input-panel__label\">\n <input\n ref={ref}\n className=\"jkl-input-panel__input\"\n type={type}\n aria-controls={!alwaysOpen ? contentId : undefined}\n aria-expanded={!alwaysOpen ? isChecked : undefined}\n {...rest}\n />\n <span\n aria-hidden=\"true\"\n className={`jkl-${type}-panel__decorator`}\n />\n <span className=\"jkl-input-panel__main-label\">{label}</span>\n <span\n className={clsx(\"jkl-input-panel__extra-label\", {\n \"jkl-input-panel__extra-label--text\":\n typeof extraLabel === \"string\",\n })}\n >\n {extraLabel}\n </span>\n </label>\n {hasChildren && (\n <div ref={animationRef} aria-hidden={!isChecked && !alwaysOpen}>\n <div\n className=\"jkl-input-panel__content\"\n id={contentId}\n data-alwaysopen={alwaysOpen}\n >\n {children}\n </div>\n </div>\n )}\n </div>\n );\n});\n"],"names":["BasePanel","forwardRef","className","isChecked","children","alwaysOpen","label","extraLabel","type","rest","ref","contentId","useId","hasChildren","Children","count","animationRef","useAutoAnimatedHeight","jsxs","clsx","jsx","id"],"mappings":"oPAmBaA,EAAYC,EAAAA,YAAW,UAE5BC,UAAAA,EACAC,UAAAA,EACAC,SAAAA,EACAC,WAAAA,EACAC,MAAAA,EACAC,WAAAA,EACAC,KAAAA,KACGC,GAEPC,GAEM,MAAAC,EAAY,WAAWC,EAAAA,UACvBC,EAAcC,EAAAA,SAASC,MAAMX,GAAY,EACzCY,EAAeC,wBAAsCd,GAGvD,OAAAe,EAAAA,KAAC,MAAA,CACGhB,UAAWiB,EAAKA,KAAA,kBAAmB,OAAOX,UAAcN,GAExDE,SAAA,CAACc,EAAAA,KAAA,QAAA,CAAMhB,UAAU,yBACbE,SAAA,CAAAgB,EAAAA,IAAC,QAAA,CACGV,IAAAA,EACAR,UAAU,yBACVM,KAAAA,EACA,gBAAgBH,OAAyB,EAAZM,EAC7B,gBAAgBN,OAAyB,EAAZF,KACzBM,IAERW,EAAAA,IAAC,OAAA,CACG,cAAY,OACZlB,UAAW,OAAOM,uBAErBY,EAAAA,IAAA,OAAA,CAAKlB,UAAU,8BAA+BE,SAAME,IACrDc,EAAAA,IAAC,OAAA,CACGlB,UAAWiB,OAAK,+BAAgC,CAC5C,qCAC0B,iBAAfZ,IAGdH,SAAAG,OAGRM,SACI,MAAI,CAAAH,IAAKM,EAAc,eAAcb,IAAcE,EAChDD,SAAAgB,EAAAA,IAAC,MAAA,CACGlB,UAAU,2BACVmB,GAAIV,EACJ,kBAAiBN,EAEhBD,SAAAA,QAMzB"}
@@ -0,0 +1,10 @@
1
+ import { default as React, ComponentPropsWithRef, ReactNode } from 'react';
2
+ type Props = ComponentPropsWithRef<"input"> & {
3
+ isChecked: boolean;
4
+ alwaysOpen: boolean;
5
+ label: string;
6
+ extraLabel?: ReactNode;
7
+ type: "radio" | "checkbox";
8
+ };
9
+ export declare const BasePanel: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLInputElement>>;
10
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("react"),t=require("./BasePanel.cjs"),r=a.forwardRef((function({label:r,extraLabel:c,alwaysOpen:l=!1,checked:n,defaultChecked:o,onChange:s,...u},d){const[h,i]=a.useState(o||!1),b=a.useCallback((e=>{null==s||s(e),i(e.target.checked)}),[s,i]),k=typeof n<"u",f=k?n:h;return e.jsx(t.BasePanel,{ref:d,type:"checkbox",isChecked:f,defaultChecked:o,checked:k?n:void 0,onChange:b,alwaysOpen:l,label:r,extraLabel:c,...u})}));exports.CheckboxPanel=r;
2
+ //# sourceMappingURL=CheckboxPanel.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxPanel.cjs","sources":["../../../../src/components/input-panel/CheckboxPanel.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n ComponentPropsWithRef,\n ForwardedRef,\n forwardRef,\n useCallback,\n useState,\n} from \"react\";\nimport { BasePanel } from \"./BasePanel.js\";\n\nexport type CheckboxPanelProps = Omit<\n ComponentPropsWithRef<\"input\">,\n \"type\"\n> & {\n label: string;\n extraLabel?: React.ReactNode;\n alwaysOpen?: boolean;\n};\n\nexport const CheckboxPanel = forwardRef(function CheckboxPanel(\n {\n label,\n extraLabel,\n alwaysOpen = false,\n checked,\n defaultChecked,\n onChange,\n ...rest\n }: CheckboxPanelProps,\n ref: ForwardedRef<HTMLInputElement>,\n) {\n const [_isChecked, setIsChecked] = useState(defaultChecked || false);\n\n const handleChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n onChange?.(e);\n setIsChecked(e.target.checked);\n },\n [onChange, setIsChecked],\n );\n\n const isControlled = typeof checked !== \"undefined\";\n const isChecked = isControlled ? checked : _isChecked;\n\n return (\n <BasePanel\n ref={ref}\n type=\"checkbox\"\n isChecked={isChecked}\n defaultChecked={defaultChecked}\n checked={isControlled ? checked : undefined}\n onChange={handleChange}\n alwaysOpen={alwaysOpen}\n label={label}\n extraLabel={extraLabel}\n {...rest}\n />\n );\n});\n"],"names":["CheckboxPanel","forwardRef","label","extraLabel","alwaysOpen","checked","defaultChecked","onChange","rest","ref","_isChecked","setIsChecked","useState","handleChange","useCallback","e","target","isControlled","isChecked","jsx","BasePanel","type"],"mappings":"qKAmBaA,EAAgBC,EAAAA,YAAW,UAEhCC,MAAAA,EACAC,WAAAA,EACAC,WAAAA,GAAa,EACbC,QAAAA,EACAC,eAAAA,EACAC,SAAAA,KACGC,GAEPC,GAEA,MAAOC,EAAYC,GAAgBC,EAAAA,SAASN,IAAkB,GAExDO,EAAeC,EAAAA,aAChBC,IACG,MAAAR,GAAAA,EAAWQ,GACEJ,EAAAI,EAAEC,OAAOX,QAAO,GAEjC,CAACE,EAAUI,IAGTM,SAAsBZ,EAAY,IAClCa,EAAYD,EAAeZ,EAAUK,EAGvC,OAAAS,EAAAA,IAACC,EAAAA,UAAA,CACGX,IAAAA,EACAY,KAAK,WACLH,UAAAA,EACAZ,eAAAA,EACAD,QAASY,EAAeZ,OAAU,EAClCE,SAAUM,EACVT,WAAAA,EACAF,MAAAA,EACAC,WAAAA,KACIK,GAGhB"}
@@ -0,0 +1,7 @@
1
+ import { default as React, ComponentPropsWithRef } from 'react';
2
+ export type CheckboxPanelProps = Omit<ComponentPropsWithRef<"input">, "type"> & {
3
+ label: string;
4
+ extraLabel?: React.ReactNode;
5
+ alwaysOpen?: boolean;
6
+ };
7
+ export declare const CheckboxPanel: React.ForwardRefExoticComponent<Omit<CheckboxPanelProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("react"),r=require("./BasePanel.cjs"),o=require("./radioPanelContext.cjs"),l=a.forwardRef((function({alwaysOpen:l=!1,label:n,extraLabel:t,checked:u,onChange:i,value:d,defaultChecked:s,...c},f){const{onValueChange:h,checkedValue:p}=a.useContext(o.context),w=a.useCallback((e=>{if(null==i||i(e),!h)throw new Error("RadioPanel will not work properly when used outside a RadioPanelGroup");h(d)}),[i,h,d]);a.useEffect((()=>{if(s){if(!h)throw new Error("RadioPanel will not work properly when used outside a RadioPanelGroup");h(d)}}),[]);const k=typeof u<"u",x=k?u:p===d;return e.jsx(r.BasePanel,{ref:f,type:"radio",value:d,isChecked:x,defaultChecked:s,checked:k?u:void 0,onChange:w,alwaysOpen:l,label:n,extraLabel:t,...c})}));exports.RadioPanel=l;
2
+ //# sourceMappingURL=RadioPanel.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioPanel.cjs","sources":["../../../../src/components/input-panel/RadioPanel.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n ComponentPropsWithRef,\n ForwardedRef,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n} from \"react\";\nimport { BasePanel } from \"./BasePanel.js\";\nimport { context } from \"./radioPanelContext.js\";\n\n// aria-invalid has been deprecated for the \"radio\" role, it should go on the\n// parent radiogroup\nexport type RadioPanelProps = Omit<\n ComponentPropsWithRef<\"input\">,\n \"type\" | \"aria-invalid\"\n> & {\n value: string;\n label: string;\n extraLabel?: React.ReactNode;\n alwaysOpen?: boolean;\n};\n\nexport const RadioPanel = forwardRef(function RadioPanel(\n {\n alwaysOpen = false,\n label,\n extraLabel,\n checked,\n onChange,\n value,\n defaultChecked,\n ...rest\n }: RadioPanelProps,\n ref: ForwardedRef<HTMLInputElement>,\n) {\n const { onValueChange, checkedValue } = useContext(context);\n\n const handleChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n onChange?.(e);\n if (!onValueChange) {\n throw new Error(\n \"RadioPanel will not work properly when used outside a RadioPanelGroup\",\n );\n }\n onValueChange(value);\n },\n [onChange, onValueChange, value],\n );\n\n useEffect(() => {\n if (defaultChecked) {\n if (!onValueChange) {\n throw new Error(\n \"RadioPanel will not work properly when used outside a RadioPanelGroup\",\n );\n }\n onValueChange(value);\n }\n // We never want to rerun this effect. Changing the default value after the\n // input control is first mounted should not cause any updates\n /* eslint-disable-next-line react-hooks/exhaustive-deps */\n }, []);\n\n const isControlled = typeof checked !== \"undefined\";\n const isChecked = isControlled ? checked : checkedValue === value;\n\n return (\n <BasePanel\n ref={ref}\n type=\"radio\"\n value={value}\n isChecked={isChecked}\n defaultChecked={defaultChecked}\n checked={isControlled ? checked : undefined}\n onChange={handleChange}\n alwaysOpen={alwaysOpen}\n label={label}\n extraLabel={extraLabel}\n {...rest}\n />\n );\n});\n"],"names":["RadioPanel","forwardRef","alwaysOpen","label","extraLabel","checked","onChange","value","defaultChecked","rest","ref","onValueChange","checkedValue","useContext","context","handleChange","useCallback","e","Error","useEffect","isControlled","isChecked","jsx","BasePanel","type"],"mappings":"0MAwBaA,EAAaC,EAAAA,YAAW,UAE7BC,WAAAA,GAAa,EACbC,MAAAA,EACAC,WAAAA,EACAC,QAAAA,EACAC,SAAAA,EACAC,MAAAA,EACAC,eAAAA,KACGC,GAEPC,GAEA,MAAQC,cAAAA,EAAeC,aAAAA,GAAiBC,aAAWC,EAAOA,SAEpDC,EAAeC,EAAAA,aAChBC,IAEG,GADA,MAAAX,GAAAA,EAAWW,IACNN,EACD,MAAM,IAAIO,MACN,yEAGRP,EAAcJ,EAAK,GAEvB,CAACD,EAAUK,EAAeJ,IAG9BY,EAAAA,WAAU,KACN,GAAIX,EAAgB,CAChB,IAAKG,EACD,MAAM,IAAIO,MACN,yEAGRP,EAAcJ,EAClB,IAID,IAEG,MAAAa,SAAsBf,EAAY,IAClCgB,EAAYD,EAAef,EAAUO,IAAiBL,EAGxD,OAAAe,EAAAA,IAACC,EAAAA,UAAA,CACGb,IAAAA,EACAc,KAAK,QACLjB,MAAAA,EACAc,UAAAA,EACAb,eAAAA,EACAH,QAASe,EAAef,OAAU,EAClCC,SAAUS,EACVb,WAAAA,EACAC,MAAAA,EACAC,WAAAA,KACIK,GAGhB"}
@@ -1,10 +1,8 @@
1
1
  import { default as React, ComponentPropsWithRef } from 'react';
2
- type Props = Omit<ComponentPropsWithRef<"input">, "type"> & {
3
- name: string;
2
+ export type RadioPanelProps = Omit<ComponentPropsWithRef<"input">, "type" | "aria-invalid"> & {
4
3
  value: string;
5
4
  label: string;
6
5
  extraLabel?: React.ReactNode;
7
6
  alwaysOpen?: boolean;
8
7
  };
9
- export declare const RadioPanel: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
- export {};
8
+ export declare const RadioPanel: React.ForwardRefExoticComponent<Omit<RadioPanelProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("react"),a=require("../input-group/FieldGroup.cjs"),o=require("./radioPanelContext.cjs");exports.RadioPanelGroup=({className:t,...i})=>{const[u,l]=r.useState();return e.jsx(o.context.Provider,{value:{checkedValue:u,onValueChange:e=>{l(e)}},children:e.jsx(a.FieldGroup,{className:t,role:"radiogroup","aria-invalid":!!i.errorLabel,...i})})};
2
+ //# sourceMappingURL=RadioPanelGroup.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioPanelGroup.cjs","sources":["../../../../src/components/input-panel/RadioPanelGroup.tsx"],"sourcesContent":["import React, { FC, useState } from \"react\";\nimport { FieldGroup, FieldGroupProps } from \"../input-group/FieldGroup.js\";\nimport { context } from \"./radioPanelContext.js\";\n\nexport type RadioPanelGroupProps = FieldGroupProps & {};\n\nexport const RadioPanelGroup: FC<RadioPanelGroupProps> = ({\n className,\n ...rest\n}) => {\n const [checkedValue, setCheckedValue] = useState<string>();\n\n const onChange = (value: string) => {\n setCheckedValue(value);\n };\n\n return (\n <context.Provider value={{ checkedValue, onValueChange: onChange }}>\n <FieldGroup\n className={className}\n role=\"radiogroup\"\n aria-invalid={!!rest.errorLabel}\n {...rest}\n />\n </context.Provider>\n );\n};\n"],"names":["className","rest","checkedValue","setCheckedValue","useState","jsx","context","Provider","value","onValueChange","children","FieldGroup","role","errorLabel"],"mappings":"gPAMyD,EACrDA,UAAAA,KACGC,MAEH,MAAOC,EAAcC,GAAmBC,EAAiBA,WAOrD,OAAAC,MAACC,EAAAA,QAAQC,SAAR,CAAiBC,MAAO,CAAEN,aAAAA,EAAcO,cAL3BD,IACdL,EAAgBK,EAAK,GAKjBE,SAAAL,EAAAA,IAACM,EAAAA,WAAA,CACGX,UAAAA,EACAY,KAAK,aACL,iBAAgBX,EAAKY,cACjBZ,KAEZ"}
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { FieldGroupProps } from '../input-group/FieldGroup.cjs';
3
+ export type RadioPanelGroupProps = FieldGroupProps & {};
4
+ export declare const RadioPanelGroup: FC<RadioPanelGroupProps>;
@@ -0,0 +1,4 @@
1
+ import { ExampleComponentProps, ExampleKnobsProps } from 'doc-utils/index.cjs';
2
+ import { FC } from 'react';
3
+ export declare const knobs: ExampleKnobsProps;
4
+ export declare const ControlledExample: FC<ExampleComponentProps>;
@@ -0,0 +1,4 @@
1
+ import { ExampleComponentProps, ExampleKnobsProps } from 'doc-utils/index.cjs';
2
+ import { FC } from 'react';
3
+ export declare const knobs: ExampleKnobsProps;
4
+ export declare const UncontrolledExample: FC<ExampleComponentProps>;
@@ -0,0 +1,4 @@
1
+ import { ExampleComponentProps, ExampleKnobsProps } from 'doc-utils/index.cjs';
2
+ import { FC } from 'react';
3
+ export declare const knobs: ExampleKnobsProps;
4
+ export declare const ControlledExample: FC<ExampleComponentProps>;
@@ -0,0 +1,4 @@
1
+ import { ExampleComponentProps, ExampleKnobsProps } from 'doc-utils/index.cjs';
2
+ import { FC } from 'react';
3
+ export declare const knobs: ExampleKnobsProps;
4
+ export declare const UncontrolledExample: FC<ExampleComponentProps>;
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./CheckboxPanel.cjs"),o=require("./RadioPanel.cjs"),a=require("./RadioPanelGroup.cjs");exports.CheckboxPanel=e.CheckboxPanel,exports.RadioPanel=o.RadioPanel,exports.RadioPanelGroup=a.RadioPanelGroup;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,3 @@
1
+ export { CheckboxPanel, type CheckboxPanelProps } from './CheckboxPanel.cjs';
2
+ export { RadioPanel, type RadioPanelProps } from './RadioPanel.cjs';
3
+ export { RadioPanelGroup, type RadioPanelGroupProps, } from './RadioPanelGroup.cjs';
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react").createContext({});exports.context=e;
2
+ //# sourceMappingURL=radioPanelContext.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radioPanelContext.cjs","sources":["../../../../src/components/input-panel/radioPanelContext.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\ntype Context = {\n checkedValue?: string;\n onValueChange?: (value: string) => void;\n};\n\nexport const context = createContext<Context>({});\n"],"names":["context","createContext"],"mappings":"sFAOaA,mBAAiCC,cAAA,CAAE"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" resolution-mode="require"/>
2
+ type Context = {
3
+ checkedValue?: string;
4
+ onValueChange?: (value: string) => void;
5
+ };
6
+ export declare const context: import('react').Context<Context>;
7
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"LinkList.cjs","sources":["../../../../src/components/link-list/LinkList.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React, { ComponentProps, FC } from \"react\";\nimport {\n PolymorphicPropsWithRef,\n PolymorphicRef,\n} from \"../../utilities/polymorphism/polymorphism.js\";\nimport { ArrowRightIcon } from \"../icon/icons/ArrowRightIcon.js\";\n\nconst Item: FC<ComponentProps<\"li\">> = ({ className, ...rest }) => {\n return (\n <li className={clsx(\"jkl-link-list-item\", className)} {...rest}></li>\n );\n};\n\ntype LinkComponent = <ElementType extends React.ElementType = \"a\">(\n props: PolymorphicPropsWithRef<ElementType>,\n) => React.ReactElement | null;\n\nconst Link = React.forwardRef(function LinkListLink<\n ElementType extends React.ElementType = \"a\",\n>(\n props: PolymorphicPropsWithRef<ElementType>,\n ref: PolymorphicRef<ElementType>,\n) {\n const { as: Component = \"a\", children, className, ...rest } = props;\n\n return (\n <Component\n className={clsx(\"jkl-link-list-link\", className)}\n ref={ref}\n {...rest}\n >\n {children}\n <ArrowRightIcon className=\"jkl-link-list-link__arrow\" />\n </Component>\n );\n}) as LinkComponent;\n\ntype UnorderedLinkListProps = React.HTMLAttributes<HTMLUListElement> & {\n variant: \"unordered\";\n};\n\ntype OrderedLinkListProps = React.HTMLAttributes<HTMLOListElement> & {\n variant: \"ordered\";\n};\n\ntype LinkListProps = UnorderedLinkListProps | OrderedLinkListProps;\n\nexport const LinkList = ({\n variant,\n className,\n ...rest\n}: LinkListProps): React.JSX.Element => {\n const Component = variant === \"ordered\" ? \"ol\" : \"ul\";\n\n return (\n <Component\n className={clsx(\"jkl-link-list\", className, {\n \"jkl-link-list--ordered\": variant === \"ordered\",\n \"jkl-link-list--unordered\": variant === \"unordered\",\n })}\n {...rest}\n />\n );\n};\n\nLinkList.Link = Link;\nLinkList.Item = Item;\n"],"names":["Link","React","forwardRef","props","ref","as","Component","children","className","rest","jsxs","clsx","jsx","ArrowRightIcon","LinkList","variant","Item"],"mappings":"8NAkBMA,EAAOC,EAAMC,YAAW,SAG1BC,EACAC,GAEM,MAAEC,GAAIC,EAAY,IAAKC,SAAAA,EAAUC,UAAAA,KAAcC,GAASN,EAG1D,OAAAO,EAAAA,KAACJ,EAAA,CACGE,UAAWG,EAAAA,KAAK,qBAAsBH,GACtCJ,IAAAA,KACIK,EAEHF,SAAA,CAAAA,EACDK,EAAAA,IAACC,EAAeA,eAAA,CAAAL,UAAU,gCAGtC,IAYaM,EAAW,EACpBC,QAAAA,EACAP,UAAAA,KACGC,MAEG,MAAAH,EAAwB,YAAZS,EAAwB,KAAO,KAG7C,OAAAH,EAAAA,IAACN,EAAA,CACGE,UAAWG,EAAAA,KAAK,gBAAiBH,EAAW,CACxC,yBAAsC,YAAZO,EAC1B,2BAAwC,cAAZA,OAE5BN,GAAA,EAKhBK,EAASd,KAAOA,EAChBc,EAASE,KA3D8B,EAAGR,UAAAA,KAAcC,KAEhDG,EAAAA,IAAC,MAAGJ,UAAWG,EAAAA,KAAK,qBAAsBH,MAAgBC"}
1
+ {"version":3,"file":"LinkList.cjs","sources":["../../../../src/components/link-list/LinkList.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\nimport {\n PolymorphicPropsWithRef,\n PolymorphicRef,\n} from \"../../utilities/polymorphism/polymorphism.js\";\nimport { ArrowRightIcon } from \"../icon/icons/ArrowRightIcon.js\";\nimport { ItemProps, LinkComponent, LinkListProps } from \"./types.js\";\n\nconst Item: ItemProps = ({ className, ...rest }) => {\n return (\n <li className={clsx(\"jkl-link-list-item\", className)} {...rest}></li>\n );\n};\n\nconst Link = React.forwardRef(function LinkListLink<\n ElementType extends React.ElementType = \"a\",\n>(\n props: PolymorphicPropsWithRef<ElementType>,\n ref: PolymorphicRef<ElementType>,\n) {\n const { as: Component = \"a\", children, className, ...rest } = props;\n\n return (\n <Component\n className={clsx(\"jkl-link-list-link\", className)}\n ref={ref}\n {...rest}\n >\n {children}\n <ArrowRightIcon className=\"jkl-link-list-link__arrow\" />\n </Component>\n );\n}) as LinkComponent;\n\nexport const LinkList = ({\n variant,\n className,\n ...rest\n}: LinkListProps): React.JSX.Element => {\n const Component = variant === \"ordered\" ? \"ol\" : \"ul\";\n\n return (\n <Component\n className={clsx(\"jkl-link-list\", className, {\n \"jkl-link-list--ordered\": variant === \"ordered\",\n \"jkl-link-list--unordered\": variant === \"unordered\",\n })}\n {...rest}\n />\n );\n};\n\nLinkList.Link = Link;\nLinkList.Item = Item;\n"],"names":["Link","React","forwardRef","props","ref","as","Component","children","className","rest","jsxs","clsx","jsx","ArrowRightIcon","LinkList","variant","Item"],"mappings":"8NAeMA,EAAOC,EAAMC,YAAW,SAG1BC,EACAC,GAEM,MAAEC,GAAIC,EAAY,IAAKC,SAAAA,EAAUC,UAAAA,KAAcC,GAASN,EAG1D,OAAAO,EAAAA,KAACJ,EAAA,CACGE,UAAWG,EAAAA,KAAK,qBAAsBH,GACtCJ,IAAAA,KACIK,EAEHF,SAAA,CAAAA,EACDK,EAAAA,IAACC,EAAeA,eAAA,CAAAL,UAAU,gCAGtC,IAEaM,EAAW,EACpBC,QAAAA,EACAP,UAAAA,KACGC,MAEG,MAAAH,EAAwB,YAAZS,EAAwB,KAAO,KAG7C,OAAAH,EAAAA,IAACN,EAAA,CACGE,UAAWG,EAAAA,KAAK,gBAAiBH,EAAW,CACxC,yBAAsC,YAAZO,EAC1B,2BAAwC,cAAZA,OAE5BN,GAAA,EAKhBK,EAASd,KAAOA,EAChBc,EAASE,KA7Ce,EAAGR,UAAAA,KAAcC,KAEjCG,EAAAA,IAAC,MAAGJ,UAAWG,EAAAA,KAAK,qBAAsBH,MAAgBC"}
@@ -1,16 +1,7 @@
1
1
  import { default as React } from 'react';
2
- import { PolymorphicPropsWithRef } from '../../utilities/polymorphism/polymorphism.cjs';
3
- type LinkComponent = <ElementType extends React.ElementType = "a">(props: PolymorphicPropsWithRef<ElementType>) => React.ReactElement | null;
4
- type UnorderedLinkListProps = React.HTMLAttributes<HTMLUListElement> & {
5
- variant: "unordered";
6
- };
7
- type OrderedLinkListProps = React.HTMLAttributes<HTMLOListElement> & {
8
- variant: "ordered";
9
- };
10
- type LinkListProps = UnorderedLinkListProps | OrderedLinkListProps;
2
+ import { ItemProps, LinkComponent, LinkListProps } from './types.cjs';
11
3
  export declare const LinkList: {
12
4
  ({ variant, className, ...rest }: LinkListProps): React.JSX.Element;
13
5
  Link: LinkComponent;
14
- Item: React.FC<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>>;
6
+ Item: ItemProps;
15
7
  };
16
- export {};
@@ -1 +1,2 @@
1
1
  export { LinkList } from './LinkList.cjs';
2
+ export { type LinkListProps, type UnorderedLinkListProps, type OrderedLinkListProps, type LinkComponent, type ItemProps, } from './types.cjs';
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { ComponentProps, FC } from 'react';
2
+ import { PolymorphicPropsWithRef } from '../../utilities/polymorphism/polymorphism.cjs';
3
+ export type UnorderedLinkListProps = React.HTMLAttributes<HTMLUListElement> & {
4
+ variant: "unordered";
5
+ };
6
+ export type OrderedLinkListProps = React.HTMLAttributes<HTMLOListElement> & {
7
+ variant: "ordered";
8
+ };
9
+ export type LinkListProps = UnorderedLinkListProps | OrderedLinkListProps;
10
+ export type LinkComponent = <ElementType extends React.ElementType = "a">(props: PolymorphicPropsWithRef<ElementType>) => React.ReactElement | null;
11
+ export type ItemProps = FC<ComponentProps<"li">>;
@@ -1,3 +1,2 @@
1
- export type { ListProps } from './List.cjs';
2
- export { UnorderedList, OrderedList, List } from './List.cjs';
3
- export { ListItem, CheckListItem, CrossListItem } from './ListItem.cjs';
1
+ export { UnorderedList, OrderedList, List, type ListProps } from './List.cjs';
2
+ export { ListItem, CheckListItem, CrossListItem, type ListItemProps, } from './ListItem.cjs';