@helsenorge/designsystem-react 2.5.0 → 2.6.1

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 (82) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/Checkbox.js +1 -1
  3. package/Checkbox.js.map +1 -1
  4. package/FormGroup.js +1 -1
  5. package/FormGroup.js.map +1 -1
  6. package/HelpBubble.js +1 -1
  7. package/HelpBubble.js.map +1 -1
  8. package/Input.js +1 -1
  9. package/Input.js.map +1 -1
  10. package/RadioButton.js +1 -1
  11. package/RadioButton.js.map +1 -1
  12. package/Select.js +1 -1
  13. package/Select.js.map +1 -1
  14. package/Textarea.js +1 -1
  15. package/Textarea.js.map +1 -1
  16. package/components/ButtonWithModal/index.js +1 -1
  17. package/components/ButtonWithModal/index.js.map +1 -1
  18. package/components/Checkbox/Checkbox.d.ts +1 -1
  19. package/components/Checkbox/Checkbox.d.ts.map +1 -1
  20. package/components/Checkbox/componentdata.json +1 -1
  21. package/components/Dropdown/Dropdown.d.ts.map +1 -1
  22. package/components/Dropdown/index.js +1 -1
  23. package/components/Dropdown/index.js.map +1 -1
  24. package/components/FormExample/FormExample.d.ts.map +1 -1
  25. package/components/FormExample/index.js +3 -3
  26. package/components/FormExample/index.js.map +1 -1
  27. package/components/FormGroup/FormGroup.d.ts.map +1 -1
  28. package/components/HelpBubble/HelpBubble.d.ts +1 -1
  29. package/components/HelpBubble/HelpBubble.d.ts.map +1 -1
  30. package/components/HelpBubble/componentdata.json +1 -1
  31. package/components/HelpBubble/index.js +1 -1
  32. package/components/HelpBubble/styles.module.scss +1 -1
  33. package/components/HelpBubbleExample/index.js +1 -1
  34. package/components/HelpBubbleExample/index.js.map +1 -1
  35. package/components/Input/Input.d.ts.map +1 -1
  36. package/components/Modal/index.js +1 -1
  37. package/components/RadioButton/RadioButton.d.ts.map +1 -1
  38. package/components/Select/Select.d.ts.map +1 -1
  39. package/components/Textarea/Textarea.d.ts +1 -1
  40. package/components/Textarea/Textarea.d.ts.map +1 -1
  41. package/components/Textarea/componentdata.json +1 -1
  42. package/components/Tooltip/index.js +1 -1
  43. package/components/TooltipExample/index.js +1 -1
  44. package/components/TooltipExample/index.js.map +1 -1
  45. package/hooks/useElementList.d.ts +9 -0
  46. package/hooks/useElementList.d.ts.map +1 -0
  47. package/hooks/useElementList.js +2 -0
  48. package/hooks/useElementList.js.map +1 -0
  49. package/hooks/useFocusToggle.d.ts.map +1 -1
  50. package/hooks/useFocusToggle.js +1 -1
  51. package/hooks/useFocusToggle.js.map +1 -1
  52. package/hooks/useFocusTrap.js +1 -1
  53. package/hooks/useFocusTrap.js.map +1 -1
  54. package/hooks/useFocusableElements.d.ts.map +1 -1
  55. package/hooks/useFocusableElements.js +1 -1
  56. package/hooks/useFocusableElements.js.map +1 -1
  57. package/hooks/useHover.d.ts +5 -6
  58. package/hooks/useHover.d.ts.map +1 -1
  59. package/hooks/useHover.js +1 -1
  60. package/hooks/useHover.js.map +1 -1
  61. package/hooks/useKeyboardEvent.d.ts +10 -1
  62. package/hooks/useKeyboardEvent.d.ts.map +1 -1
  63. package/hooks/useKeyboardEvent.js +1 -1
  64. package/hooks/useKeyboardEvent.js.map +1 -1
  65. package/hooks/useOutsideEvent.d.ts +1 -4
  66. package/hooks/useOutsideEvent.d.ts.map +1 -1
  67. package/hooks/useOutsideEvent.js +1 -1
  68. package/hooks/useOutsideEvent.js.map +1 -1
  69. package/hooks/useResizeObserver.d.ts.map +1 -1
  70. package/hooks/useResizeObserver.js +1 -1
  71. package/hooks/useResizeObserver.js.map +1 -1
  72. package/hooks/useSize.d.ts.map +1 -1
  73. package/hooks/useSize.js +1 -1
  74. package/hooks/useSize.js.map +1 -1
  75. package/index.js +1 -1
  76. package/package.json +1 -1
  77. package/{hooks/focus-utils.d.ts → utils/focus.d.ts} +1 -1
  78. package/utils/focus.d.ts.map +1 -0
  79. package/{hooks/focus-utils.js → utils/focus.js} +1 -1
  80. package/utils/focus.js.map +1 -0
  81. package/hooks/focus-utils.d.ts.map +0 -1
  82. package/hooks/focus-utils.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import t,{useState as i}from"react";import{B as p}from"../../Button.js";import{M as e}from"../../Modal.js";import"../../constants.js";import"../../utils/environment.js";import"../../theme/currys/color.js";import"../../theme/index.js";import"../../theme/palette.js";import"../../theme/spacers.js";import"../../theme/grid.js";import"../Icons/Icon.js";import"classnames";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../hooks/useHover.js";import"../../hooks/useIcons.js";import"../../hooks/useBreakpoint.js";import"../Button/styles.module.scss";import"../Icons/ArrowRight.js";import"../../hooks/useSize.js";import"../../utils/debounce.js";import"../Modal/styles.module.scss";import"../Icons/AlertSignStroke.js";import"../Icons/AlertSignFill.js";import"../../hooks/useFocusTrap.js";import"../../hooks/focus-utils.js";import"../../hooks/useFocusableElements.js";import"../../hooks/useIsVisible.js";import"../../hooks/useIntersectionObserver.js";import"../../Title.js";import"../Title/styles.module.scss";import"../../Close.js";import"../Icons/X.js";import"../Close/styles.module.scss";import"../Icons/CheckOutline.js";import"../Portal/index.js";import"react-dom";const Q=t.forwardRef(function(o,d){const[m,r]=i(!1);return t.createElement("div",{"data-testid":o.testId},t.createElement(p,{onClick:()=>r(!0)},o.buttonText),m&&t.createElement(e,{...o,onClose:()=>r(!1)}))});export{Q as default};
1
+ import t,{useState as i}from"react";import{B as p}from"../../Button.js";import{M as e}from"../../Modal.js";import"../../constants.js";import"../../utils/environment.js";import"../../theme/currys/color.js";import"../../theme/index.js";import"../../theme/palette.js";import"../../theme/spacers.js";import"../../theme/grid.js";import"../Icons/Icon.js";import"classnames";import"../../hooks/useUuid.js";import"../../uuid.js";import"../../hooks/useHover.js";import"../../hooks/useIcons.js";import"../../hooks/useBreakpoint.js";import"../Button/styles.module.scss";import"../Icons/ArrowRight.js";import"../../hooks/useSize.js";import"../../utils/debounce.js";import"../Modal/styles.module.scss";import"../Icons/AlertSignStroke.js";import"../Icons/AlertSignFill.js";import"../../hooks/useFocusTrap.js";import"../../utils/focus.js";import"../../hooks/useFocusableElements.js";import"../../hooks/useElementList.js";import"../../hooks/useIsVisible.js";import"../../hooks/useIntersectionObserver.js";import"../../Title.js";import"../Title/styles.module.scss";import"../../Close.js";import"../Icons/X.js";import"../Close/styles.module.scss";import"../Icons/CheckOutline.js";import"../Portal/index.js";import"react-dom";const U=t.forwardRef(function(o,d){const[m,r]=i(!1);return t.createElement("div",{"data-testid":o.testId},t.createElement(p,{onClick:()=>r(!0)},o.buttonText),m&&t.createElement(e,{...o,onClose:()=>r(!1)}))});export{U as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/ButtonWithModal/ButtonWithModal.tsx"],"sourcesContent":["/* istanbul ignore file */\nimport React, { useState } from 'react';\nimport Button from '../Button';\nimport Modal, { ModalProps } from '../Modal/Modal';\n\ninterface ModalWithButtonProps extends ModalProps {\n /** Text of the button */\n buttonText: string;\n /** Sets the data-testid attribute. */\n testId?: string;\n}\n\nconst ModalWithButton = React.forwardRef(function ModalForwardedRef(props: ModalWithButtonProps, ref: React.ForwardedRef<HTMLElement>) {\n const [showModal, setShowModal] = useState(false);\n\n return (\n <div data-testid={props.testId}>\n <Button onClick={() => setShowModal(true)}>{props.buttonText}</Button>\n {showModal && <Modal {...props} onClose={() => setShowModal(false)} />}\n </div>\n );\n});\n\nexport default ModalWithButton;\n"],"names":["ModalWithButton","React","props","ref","showModal","setShowModal","useState","Button","Modal"],"mappings":"upCAYA,MAAMA,EAAkBC,EAAM,WAAW,SAA2BC,EAA6BC,EAAsC,CACrI,KAAM,CAACC,EAAWC,CAAY,EAAIC,EAAS,EAAK,EAEhD,OACGL,EAAA,cAAA,MAAA,CAAI,cAAaC,EAAM,MAAA,EACrBD,EAAA,cAAAM,EAAA,CAAO,QAAS,IAAMF,EAAa,EAAI,CAAA,EAAIH,EAAM,UAAW,EAC5DE,GAAcH,EAAA,cAAAO,EAAA,CAAO,GAAGN,EAAO,QAAS,IAAMG,EAAa,EAAK,CAAG,CAAA,CACtE,CAEJ,CAAC"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/ButtonWithModal/ButtonWithModal.tsx"],"sourcesContent":["/* istanbul ignore file */\nimport React, { useState } from 'react';\nimport Button from '../Button';\nimport Modal, { ModalProps } from '../Modal/Modal';\n\ninterface ModalWithButtonProps extends ModalProps {\n /** Text of the button */\n buttonText: string;\n /** Sets the data-testid attribute. */\n testId?: string;\n}\n\nconst ModalWithButton = React.forwardRef(function ModalForwardedRef(props: ModalWithButtonProps, ref: React.ForwardedRef<HTMLElement>) {\n const [showModal, setShowModal] = useState(false);\n\n return (\n <div data-testid={props.testId}>\n <Button onClick={() => setShowModal(true)}>{props.buttonText}</Button>\n {showModal && <Modal {...props} onClose={() => setShowModal(false)} />}\n </div>\n );\n});\n\nexport default ModalWithButton;\n"],"names":["ModalWithButton","React","props","ref","showModal","setShowModal","useState","Button","Modal"],"mappings":"urCAYA,MAAMA,EAAkBC,EAAM,WAAW,SAA2BC,EAA6BC,EAAsC,CACrI,KAAM,CAACC,EAAWC,CAAY,EAAIC,EAAS,EAAK,EAEhD,OACGL,EAAA,cAAA,MAAA,CAAI,cAAaC,EAAM,MAAA,EACrBD,EAAA,cAAAM,EAAA,CAAO,QAAS,IAAMF,EAAa,EAAI,CAAA,EAAIH,EAAM,UAAW,EAC5DE,GAAcH,EAAA,cAAAO,EAAA,CAAO,GAAGN,EAAO,QAAS,IAAMG,EAAa,EAAK,CAAG,CAAA,CACtE,CAEJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { FormMode, FormVariant } from '../../constants';
3
- export interface CheckboxProps extends Pick<React.InputHTMLAttributes<HTMLInputElement>, 'name' | 'value' | 'disabled' | 'checked' | 'required'> {
3
+ export interface CheckboxProps extends Pick<React.InputHTMLAttributes<HTMLInputElement>, 'name' | 'value' | 'disabled' | 'checked' | 'required' | 'onChange'> {
4
4
  /** Adds custom classes to the element. */
5
5
  className?: string;
6
6
  /** The label text next to the checkbox */
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAUnD,OAAO,EAAe,QAAQ,EAAE,WAAW,EAAY,MAAM,iBAAiB,CAAC;AAE/E,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;IACjH,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,OAAO,QAAQ,CAAC;IAC7B,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,OAAO,WAAW,CAAC;IACnC,iHAAiH;IACjH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,QAAQ,wFAgFnB,CAAC;AAEH,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAUnD,OAAO,EAAe,QAAQ,EAAE,WAAW,EAAY,MAAM,iBAAiB,CAAC;AAE/E,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;IAC9H,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,OAAO,QAAQ,CAAC;IAC7B,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,OAAO,WAAW,CAAC;IACnC,iHAAiH;IACjH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,QAAQ,wFAyFnB,CAAC;AAEH,eAAe,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"props":{"className":{"defaultValue":null,"description":"Adds custom classes to the element.","name":"className","parent":{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"},"declarations":[{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"}],"required":false,"type":{"name":"string"}},"label":{"defaultValue":null,"description":"The label text next to the checkbox","name":"label","parent":{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"},"declarations":[{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"}],"required":true,"type":{"name":"string"}},"inputId":{"defaultValue":null,"description":"input id of the checkbox","name":"inputId","parent":{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"},"declarations":[{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"}],"required":false,"type":{"name":"string"}},"mode":{"defaultValue":null,"description":"Changes the visuals of the checkbox","name":"mode","parent":{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"},"declarations":[{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"}],"required":false,"type":{"name":"enum","raw":"\"onwhite\" | \"ongrey\" | \"onblueberry\" | \"ondark\" | \"oninvalid\"","value":[{"value":"\"onwhite\""},{"value":"\"ongrey\""},{"value":"\"onblueberry\""},{"value":"\"ondark\""},{"value":"\"oninvalid\""}]}},"variant":{"defaultValue":null,"description":"Changes the visuals of the checkbox","name":"variant","parent":{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"},"declarations":[{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"}],"required":false,"type":{"name":"enum","raw":"\"normal\" | \"bigform\"","value":[{"value":"\"normal\""},{"value":"\"bigform\""}]}},"error":{"defaultValue":null,"description":"Activates Error style for the checkbox - This is can be true while errorText is empty, when in a FormGroup","name":"error","parent":{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"},"declarations":[{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"}],"required":false,"type":{"name":"boolean"}},"errorText":{"defaultValue":null,"description":"Error text to show above the component","name":"errorText","parent":{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"},"declarations":[{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"}],"required":false,"type":{"name":"string"}},"testId":{"defaultValue":null,"description":"Sets the data-testid attribute.","name":"testId","parent":{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"},"declarations":[{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"}],"required":false,"type":{"name":"string"}},"name":{"defaultValue":null,"description":"","name":"name","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"}],"required":false,"type":{"name":"string"}},"value":{"defaultValue":null,"description":"","name":"value","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"}],"required":false,"type":{"name":"string | number | readonly string[]"}},"disabled":{"defaultValue":null,"description":"","name":"disabled","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"}],"required":false,"type":{"name":"boolean"}},"checked":{"defaultValue":null,"description":"","name":"checked","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"}],"required":false,"type":{"name":"boolean"}},"required":{"defaultValue":null,"description":"","name":"required","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"}],"required":false,"type":{"name":"boolean"}}}}
1
+ {"props":{"className":{"defaultValue":null,"description":"Adds custom classes to the element.","name":"className","parent":{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"},"declarations":[{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"}],"required":false,"type":{"name":"string"}},"label":{"defaultValue":null,"description":"The label text next to the checkbox","name":"label","parent":{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"},"declarations":[{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"}],"required":true,"type":{"name":"string"}},"inputId":{"defaultValue":null,"description":"input id of the checkbox","name":"inputId","parent":{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"},"declarations":[{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"}],"required":false,"type":{"name":"string"}},"mode":{"defaultValue":null,"description":"Changes the visuals of the checkbox","name":"mode","parent":{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"},"declarations":[{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"}],"required":false,"type":{"name":"enum","raw":"\"onwhite\" | \"ongrey\" | \"onblueberry\" | \"ondark\" | \"oninvalid\"","value":[{"value":"\"onwhite\""},{"value":"\"ongrey\""},{"value":"\"onblueberry\""},{"value":"\"ondark\""},{"value":"\"oninvalid\""}]}},"variant":{"defaultValue":null,"description":"Changes the visuals of the checkbox","name":"variant","parent":{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"},"declarations":[{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"}],"required":false,"type":{"name":"enum","raw":"\"normal\" | \"bigform\"","value":[{"value":"\"normal\""},{"value":"\"bigform\""}]}},"error":{"defaultValue":null,"description":"Activates Error style for the checkbox - This is can be true while errorText is empty, when in a FormGroup","name":"error","parent":{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"},"declarations":[{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"}],"required":false,"type":{"name":"boolean"}},"errorText":{"defaultValue":null,"description":"Error text to show above the component","name":"errorText","parent":{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"},"declarations":[{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"}],"required":false,"type":{"name":"string"}},"testId":{"defaultValue":null,"description":"Sets the data-testid attribute.","name":"testId","parent":{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"},"declarations":[{"fileName":"src/components/Checkbox/Checkbox.tsx","name":"CheckboxProps"}],"required":false,"type":{"name":"string"}},"name":{"defaultValue":null,"description":"","name":"name","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"}],"required":false,"type":{"name":"string"}},"value":{"defaultValue":null,"description":"","name":"value","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"}],"required":false,"type":{"name":"string | number | readonly string[]"}},"disabled":{"defaultValue":null,"description":"","name":"disabled","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"}],"required":false,"type":{"name":"boolean"}},"checked":{"defaultValue":null,"description":"","name":"checked","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"}],"required":false,"type":{"name":"boolean"}},"required":{"defaultValue":null,"description":"","name":"required","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"}],"required":false,"type":{"name":"boolean"}},"onChange":{"defaultValue":null,"description":"","name":"onChange","parent":{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"},"declarations":[{"fileName":"designsystem/node_modules/@types/react/index.d.ts","name":"InputHTMLAttributes"}],"required":false,"type":{"name":"ChangeEventHandler<HTMLInputElement>"}}}}
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../../src/components/Dropdown/Dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAuBhD,oBAAY,YAAY;IACtB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,0BAA0B;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,OAAO,YAAY,CAAC;IACjC,uCAAuC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uCAAuC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA2JrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../../src/components/Dropdown/Dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAuBhD,oBAAY,YAAY;IACtB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,0BAA0B;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,OAAO,YAAY,CAAC;IACjC,uCAAuC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uCAAuC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAsJrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1,2 +1,2 @@
1
- import t,{useRef as f,useState as W}from"react";import v from"classnames";import{Icon as X}from"../Icons/Icon.js";import{KeyboardEventKey as r,AnalyticsId as j,IconSize as q}from"../../constants.js";import{theme as C}from"../../theme/index.js";import"../../hooks/useBreakpoint.js";import{useHover as F}from"../../hooks/useHover.js";import{useResizeObserver as G}from"../../hooks/useResizeObserver.js";import{useToggle as J}from"../../hooks/useToggle.js";import{useKeyboardEvent as Q}from"../../hooks/useKeyboardEvent.js";import{useOutsideEvent as Y}from"../../hooks/useOutsideEvent.js";import{useUuid as g}from"../../hooks/useUuid.js";import e from"./styles.module.scss";import Z from"../Icons/PlusSmall.js";import{B as M}from"../../Button.js";import"../../uuid.js";import"../../utils/environment.js";import"../../theme/palette.js";import"../../theme/spacers.js";import"../../theme/grid.js";import"../../hooks/usePrevious.js";import"../../theme/currys/color.js";import"../../hooks/useIcons.js";import"../Button/styles.module.scss";import"../Icons/ArrowRight.js";import"../../hooks/useSize.js";import"../../utils/debounce.js";var ee=(s=>(s.onwhite="onwhite",s.ongrey="ongrey",s.onblueberry="onblueberry",s.oncherry="oncherry",s))(ee||{});const Re=s=>{const{label:R,placeholder:A,closeText:O="Lukk",noCloseButton:$=!1,onToggle:H,open:K=!1,children:_,mode:d="onwhite",transparent:S=!1,fluid:y=!1,testId:z,disabled:c}=s,p=f(null),b=f(null),{hoverRef:m,isHovered:B}=F(),{value:a,toggleValue:w}=J(!c&&K,H),i=f(t.Children.map(_,()=>t.createRef())),[h,L]=W(),{width:T}=G(m)||{},E=g(),x=g(),I=g(),k=()=>{var o;w(),(o=b.current)==null||o.focus()},u=()=>{var o;w(),(o=m.current)==null||o.focus()},U=o=>{var N;if(o.preventDefault(),!i.current)return;if(a){if(o.key===r.Escape&&a){u();return}}else{k();return}const l=i.current.findIndex(V=>V.current===o.target);let n=l;o.key===r.Home?n=0:o.key===r.End?n=i.current.length-1:o.key===r.ArrowDown&&l<i.current.length-1?n=l+1:o.key===r.ArrowUp&&l>0?n=l-1:o.key===r.Enter&&l!==-1&&(n=l),n!==-1&&((N=i.current[n].current)==null||N.focus(),L(n))};Q("keydown",p,[r.ArrowDown,r.ArrowUp,r.End,r.Enter,r.Escape,r.Home],U),Y(p,()=>a&&u());const D=v(e.dropdown__toggle,!c&&{[e["dropdown__toggle--on-white"]]:d==="onwhite",[e["dropdown__toggle--on-grey"]]:d==="ongrey",[e["dropdown__toggle--on-blueberry"]]:d==="onblueberry",[e["dropdown__toggle--on-cherry"]]:d==="oncherry",[e["dropdown__toggle--transparent"]]:S,[e["dropdown__toggle--fluid"]]:y,[e["dropdown__toggle--open"]]:a}),P=v(e.dropdown__content,a&&e["dropdown__content--open"]);return t.createElement("div",{className:e.dropdown,ref:p},t.createElement("span",{id:E,className:e.dropdown__label},R),t.createElement("button",{type:"button",onClick:()=>!a&&k(),className:D,ref:m,"data-testid":z,"data-analyticsid":j.Dropdown,disabled:c,"aria-labelledby":x,"aria-haspopup":"listbox","aria-expanded":a},t.createElement("span",{id:x,className:e.dropdown__toggle__label},A),t.createElement(X,{color:c?C.palette.neutral500:C.palette.blueberry600,svgIcon:Z,className:e.dropdown__icon,isHovered:B,size:q.XSmall})),t.createElement("div",{className:P,style:{width:y?"100%":`${T}px`}},t.createElement("ul",{className:e.dropdown__options,role:"listbox","aria-labelledby":E,tabIndex:-1,"aria-activedescendant":typeof h<"u"?`${I}-${h}`:void 0,ref:b},t.Children.map(_,(o,l)=>{var n;return t.createElement("li",{className:e.dropdown__input,role:"option",id:`${I}-${l}`},t.cloneElement(o,{ref:(n=i.current)==null?void 0:n[l]}))})),!$&&t.createElement("div",{className:e.dropdown__close},t.createElement(M,{onClick:u,fluid:!0,"aria-expanded":a},O))))};export{ee as DropdownMode,Re as default};
1
+ import t,{useRef as f,useState as V}from"react";import v from"classnames";import{Icon as W}from"../Icons/Icon.js";import{KeyboardEventKey as r,AnalyticsId as X,IconSize as j}from"../../constants.js";import{theme as C}from"../../theme/index.js";import"../../hooks/useBreakpoint.js";import{useHover as q}from"../../hooks/useHover.js";import{useSize as F}from"../../hooks/useSize.js";import{useToggle as G}from"../../hooks/useToggle.js";import{useKeyboardEvent as J}from"../../hooks/useKeyboardEvent.js";import{useOutsideEvent as Q}from"../../hooks/useOutsideEvent.js";import{useUuid as g}from"../../hooks/useUuid.js";import e from"./styles.module.scss";import Y from"../Icons/PlusSmall.js";import{B as Z}from"../../Button.js";import"../../uuid.js";import"../../utils/environment.js";import"../../theme/palette.js";import"../../theme/spacers.js";import"../../theme/grid.js";import"../../utils/debounce.js";import"../../hooks/usePrevious.js";import"../../theme/currys/color.js";import"../../hooks/useIcons.js";import"../Button/styles.module.scss";import"../Icons/ArrowRight.js";var M=(s=>(s.onwhite="onwhite",s.ongrey="ongrey",s.onblueberry="onblueberry",s.oncherry="oncherry",s))(M||{});const Ce=s=>{const{label:R,placeholder:A,closeText:K="Lukk",noCloseButton:S=!1,onToggle:$,open:H=!1,children:_,mode:d="onwhite",transparent:O=!1,fluid:y=!1,testId:z,disabled:c}=s,p=f(null),b=f(null),{hoverRef:m,isHovered:B}=q(),{value:a,toggleValue:w}=G(!c&&H,$),i=f(t.Children.map(_,()=>t.createRef())),[h,L]=V(),{width:T}=F(m)||{},E=g(),x=g(),I=g(),N=()=>{var o;w(),(o=b.current)==null||o.focus()},u=()=>{var o;w(),(o=m.current)==null||o.focus()};J(p,o=>{var k;if(o.preventDefault(),!i.current)return;if(a){if(o.key===r.Escape&&a){u();return}}else{N();return}const l=i.current.findIndex(P=>P.current===o.target);let n=l;o.key===r.Home?n=0:o.key===r.End?n=i.current.length-1:o.key===r.ArrowDown&&l<i.current.length-1?n=l+1:o.key===r.ArrowUp&&l>0?n=l-1:o.key===r.Enter&&l!==-1&&(n=l),n!==-1&&((k=i.current[n].current)==null||k.focus(),L(n))},[r.ArrowDown,r.ArrowUp,r.End,r.Enter,r.Escape,r.Home]),Q(p,()=>a&&u());const U=v(e.dropdown__toggle,!c&&{[e["dropdown__toggle--on-white"]]:d==="onwhite",[e["dropdown__toggle--on-grey"]]:d==="ongrey",[e["dropdown__toggle--on-blueberry"]]:d==="onblueberry",[e["dropdown__toggle--on-cherry"]]:d==="oncherry",[e["dropdown__toggle--transparent"]]:O,[e["dropdown__toggle--fluid"]]:y,[e["dropdown__toggle--open"]]:a}),D=v(e.dropdown__content,a&&e["dropdown__content--open"]);return t.createElement("div",{className:e.dropdown,ref:p},t.createElement("span",{id:E,className:e.dropdown__label},R),t.createElement("button",{type:"button",onClick:()=>!a&&N(),className:U,ref:m,"data-testid":z,"data-analyticsid":X.Dropdown,disabled:c,"aria-labelledby":x,"aria-haspopup":"listbox","aria-expanded":a},t.createElement("span",{id:x,className:e.dropdown__toggle__label},A),t.createElement(W,{color:c?C.palette.neutral500:C.palette.blueberry600,svgIcon:Y,className:e.dropdown__icon,isHovered:B,size:j.XSmall})),t.createElement("div",{className:D,style:{width:y?"100%":`${T}px`}},t.createElement("ul",{className:e.dropdown__options,role:"listbox","aria-labelledby":E,tabIndex:-1,"aria-activedescendant":typeof h<"u"?`${I}-${h}`:void 0,ref:b},t.Children.map(_,(o,l)=>{var n;return t.createElement("li",{className:e.dropdown__input,role:"option",id:`${I}-${l}`},t.cloneElement(o,{ref:(n=i.current)==null?void 0:n[l]}))})),!S&&t.createElement("div",{className:e.dropdown__close},t.createElement(Z,{onClick:u,fluid:!0,"aria-expanded":a},K))))};export{M as DropdownMode,Ce as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\n\nimport classNames from 'classnames';\n\nimport Icon from '../Icons';\n\nimport {\n AnalyticsId,\n IconSize,\n KeyboardEventKey,\n theme,\n useHover,\n useKeyboardEvent,\n useOutsideEvent,\n useResizeObserver,\n useToggle,\n useUuid,\n} from '../..';\n\nimport styles from './styles.module.scss';\nimport PlusSmall from '../Icons/PlusSmall';\nimport Button from '../Button';\n\nexport enum DropdownMode {\n onwhite = 'onwhite',\n ongrey = 'ongrey',\n onblueberry = 'onblueberry',\n oncherry = 'oncherry',\n}\n\nexport interface DropdownProps {\n /** Label for dropdown. Synlig for skjermlesere. */\n label: string;\n /** Tekst på knappen som åpner dropdownen */\n placeholder: string;\n /** Sets the dropdown content */\n children: React.ReactNode;\n /** Close button text */\n closeText?: string;\n /** No close button */\n noCloseButton?: boolean;\n /** Called when dropdown is open/closed. */\n onToggle?: (isOpen: boolean) => void;\n /** Om dropdown er åpen */\n open?: boolean;\n /** Changes the visuals of the dropdown */\n mode?: keyof typeof DropdownMode;\n /** Makes the background transparent */\n transparent?: boolean;\n /** Makes the background transparent */\n fluid?: boolean;\n /** Makes the dropdown disabled */\n disabled?: boolean;\n /** Sets the data-testid attribute on the dropdown button. */\n testId?: string;\n}\n\nconst Dropdown: React.FC<DropdownProps> = props => {\n const {\n label,\n placeholder,\n closeText = 'Lukk',\n noCloseButton = false,\n onToggle,\n open = false,\n children,\n mode = DropdownMode.onwhite,\n transparent = false,\n fluid = false,\n testId,\n disabled,\n } = props;\n const dropdownRef = useRef<HTMLDivElement>(null);\n const optionsRef = useRef<HTMLUListElement>(null);\n const { hoverRef: buttonRef, isHovered } = useHover<HTMLButtonElement>();\n const { value: isOpen, toggleValue: toggleIsOpen } = useToggle(!disabled && open, onToggle);\n const inputRefList = useRef(React.Children.map(children, () => React.createRef<HTMLElement>()));\n const [currentIndex, setCurrentIndex] = useState<number>();\n const { width: buttonWidth } = useResizeObserver(buttonRef) || {};\n const labelId = useUuid();\n const toggleLabelId = useUuid();\n const optionIdPrefix = useUuid();\n\n const handleOpen = () => {\n toggleIsOpen();\n optionsRef.current?.focus();\n };\n\n const handleClose = () => {\n toggleIsOpen();\n buttonRef.current?.focus();\n };\n\n const handleKeyboardNavigation = (event: KeyboardEvent) => {\n event.preventDefault();\n\n if (!inputRefList.current) {\n return;\n }\n\n if (!isOpen) {\n handleOpen();\n return;\n } else if (event.key === KeyboardEventKey.Escape && isOpen) {\n handleClose();\n return;\n }\n\n const index = inputRefList.current.findIndex(x => x.current === event.target);\n let nextIndex = index;\n\n if (event.key === KeyboardEventKey.Home) {\n nextIndex = 0;\n } else if (event.key === KeyboardEventKey.End) {\n nextIndex = inputRefList.current.length - 1;\n } else if (event.key === KeyboardEventKey.ArrowDown && index < inputRefList.current.length - 1) {\n nextIndex = index + 1;\n } else if (event.key === KeyboardEventKey.ArrowUp && index > 0) {\n nextIndex = index - 1;\n } else if (event.key === KeyboardEventKey.Enter && index !== -1) {\n nextIndex = index;\n }\n if (nextIndex !== -1) {\n inputRefList.current[nextIndex].current?.focus();\n setCurrentIndex(nextIndex);\n }\n };\n\n useKeyboardEvent(\n 'keydown',\n dropdownRef,\n [\n KeyboardEventKey.ArrowDown,\n KeyboardEventKey.ArrowUp,\n KeyboardEventKey.End,\n KeyboardEventKey.Enter,\n KeyboardEventKey.Escape,\n KeyboardEventKey.Home,\n ],\n handleKeyboardNavigation\n );\n\n useOutsideEvent(dropdownRef, () => isOpen && handleClose());\n\n const toggleClasses = classNames(\n styles.dropdown__toggle,\n !disabled && {\n [styles['dropdown__toggle--on-white']]: mode === DropdownMode.onwhite,\n [styles['dropdown__toggle--on-grey']]: mode === DropdownMode.ongrey,\n [styles['dropdown__toggle--on-blueberry']]: mode === DropdownMode.onblueberry,\n [styles['dropdown__toggle--on-cherry']]: mode === DropdownMode.oncherry,\n [styles['dropdown__toggle--transparent']]: transparent,\n [styles['dropdown__toggle--fluid']]: fluid,\n [styles['dropdown__toggle--open']]: isOpen,\n }\n );\n\n const contentClasses = classNames(styles.dropdown__content, isOpen && styles['dropdown__content--open']);\n\n return (\n <div className={styles.dropdown} ref={dropdownRef}>\n <span id={labelId} className={styles.dropdown__label}>\n {label}\n </span>\n <button\n type=\"button\"\n onClick={() => !isOpen && handleOpen()}\n className={toggleClasses}\n ref={buttonRef}\n data-testid={testId}\n data-analyticsid={AnalyticsId.Dropdown}\n disabled={disabled}\n aria-labelledby={toggleLabelId}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n >\n <span id={toggleLabelId} className={styles.dropdown__toggle__label}>\n {placeholder}\n </span>\n <Icon\n color={disabled ? theme.palette.neutral500 : theme.palette.blueberry600}\n svgIcon={PlusSmall}\n className={styles.dropdown__icon}\n isHovered={isHovered}\n size={IconSize.XSmall}\n />\n </button>\n <div className={contentClasses} style={{ width: fluid ? '100%' : `${buttonWidth}px` }}>\n <ul\n className={styles.dropdown__options}\n role=\"listbox\"\n aria-labelledby={labelId}\n tabIndex={-1}\n aria-activedescendant={typeof currentIndex !== 'undefined' ? `${optionIdPrefix}-${currentIndex}` : undefined}\n ref={optionsRef}\n >\n {React.Children.map(children, (child, index) => (\n <li className={styles.dropdown__input} role=\"option\" id={`${optionIdPrefix}-${index}`}>\n {React.cloneElement(child as React.ReactElement, { ref: inputRefList.current?.[index] })}\n </li>\n ))}\n </ul>\n {!noCloseButton && (\n <div className={styles.dropdown__close}>\n <Button onClick={handleClose} fluid aria-expanded={isOpen}>\n {closeText}\n </Button>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default Dropdown;\n"],"names":["DropdownMode","Dropdown","props","label","placeholder","closeText","noCloseButton","onToggle","open","children","mode","transparent","fluid","testId","disabled","dropdownRef","useRef","optionsRef","buttonRef","isHovered","useHover","isOpen","toggleIsOpen","useToggle","inputRefList","React","currentIndex","setCurrentIndex","useState","buttonWidth","useResizeObserver","labelId","useUuid","toggleLabelId","optionIdPrefix","handleOpen","_a","handleClose","handleKeyboardNavigation","event","KeyboardEventKey","index","x","nextIndex","useKeyboardEvent","useOutsideEvent","toggleClasses","classNames","styles","contentClasses","AnalyticsId","Icon","theme","PlusSmall","IconSize","child","Button"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\n\nimport classNames from 'classnames';\n\nimport Icon from '../Icons';\n\nimport {\n AnalyticsId,\n IconSize,\n KeyboardEventKey,\n theme,\n useHover,\n useKeyboardEvent,\n useOutsideEvent,\n useSize,\n useToggle,\n useUuid,\n} from '../..';\n\nimport styles from './styles.module.scss';\nimport PlusSmall from '../Icons/PlusSmall';\nimport Button from '../Button';\n\nexport enum DropdownMode {\n onwhite = 'onwhite',\n ongrey = 'ongrey',\n onblueberry = 'onblueberry',\n oncherry = 'oncherry',\n}\n\nexport interface DropdownProps {\n /** Label for dropdown. Synlig for skjermlesere. */\n label: string;\n /** Tekst på knappen som åpner dropdownen */\n placeholder: string;\n /** Sets the dropdown content */\n children: React.ReactNode;\n /** Close button text */\n closeText?: string;\n /** No close button */\n noCloseButton?: boolean;\n /** Called when dropdown is open/closed. */\n onToggle?: (isOpen: boolean) => void;\n /** Om dropdown er åpen */\n open?: boolean;\n /** Changes the visuals of the dropdown */\n mode?: keyof typeof DropdownMode;\n /** Makes the background transparent */\n transparent?: boolean;\n /** Makes the background transparent */\n fluid?: boolean;\n /** Makes the dropdown disabled */\n disabled?: boolean;\n /** Sets the data-testid attribute on the dropdown button. */\n testId?: string;\n}\n\nconst Dropdown: React.FC<DropdownProps> = props => {\n const {\n label,\n placeholder,\n closeText = 'Lukk',\n noCloseButton = false,\n onToggle,\n open = false,\n children,\n mode = DropdownMode.onwhite,\n transparent = false,\n fluid = false,\n testId,\n disabled,\n } = props;\n const dropdownRef = useRef<HTMLDivElement>(null);\n const optionsRef = useRef<HTMLUListElement>(null);\n const { hoverRef: buttonRef, isHovered } = useHover<HTMLButtonElement>();\n const { value: isOpen, toggleValue: toggleIsOpen } = useToggle(!disabled && open, onToggle);\n const inputRefList = useRef(React.Children.map(children, () => React.createRef<HTMLElement>()));\n const [currentIndex, setCurrentIndex] = useState<number>();\n const { width: buttonWidth } = useSize(buttonRef) || {};\n const labelId = useUuid();\n const toggleLabelId = useUuid();\n const optionIdPrefix = useUuid();\n\n const handleOpen = () => {\n toggleIsOpen();\n optionsRef.current?.focus();\n };\n\n const handleClose = () => {\n toggleIsOpen();\n buttonRef.current?.focus();\n };\n\n const handleKeyboardNavigation = (event: KeyboardEvent) => {\n event.preventDefault();\n\n if (!inputRefList.current) {\n return;\n }\n\n if (!isOpen) {\n handleOpen();\n return;\n } else if (event.key === KeyboardEventKey.Escape && isOpen) {\n handleClose();\n return;\n }\n\n const index = inputRefList.current.findIndex(x => x.current === event.target);\n let nextIndex = index;\n\n if (event.key === KeyboardEventKey.Home) {\n nextIndex = 0;\n } else if (event.key === KeyboardEventKey.End) {\n nextIndex = inputRefList.current.length - 1;\n } else if (event.key === KeyboardEventKey.ArrowDown && index < inputRefList.current.length - 1) {\n nextIndex = index + 1;\n } else if (event.key === KeyboardEventKey.ArrowUp && index > 0) {\n nextIndex = index - 1;\n } else if (event.key === KeyboardEventKey.Enter && index !== -1) {\n nextIndex = index;\n }\n if (nextIndex !== -1) {\n inputRefList.current[nextIndex].current?.focus();\n setCurrentIndex(nextIndex);\n }\n };\n\n useKeyboardEvent(dropdownRef, handleKeyboardNavigation, [\n KeyboardEventKey.ArrowDown,\n KeyboardEventKey.ArrowUp,\n KeyboardEventKey.End,\n KeyboardEventKey.Enter,\n KeyboardEventKey.Escape,\n KeyboardEventKey.Home,\n ]);\n\n useOutsideEvent(dropdownRef, () => isOpen && handleClose());\n\n const toggleClasses = classNames(\n styles.dropdown__toggle,\n !disabled && {\n [styles['dropdown__toggle--on-white']]: mode === DropdownMode.onwhite,\n [styles['dropdown__toggle--on-grey']]: mode === DropdownMode.ongrey,\n [styles['dropdown__toggle--on-blueberry']]: mode === DropdownMode.onblueberry,\n [styles['dropdown__toggle--on-cherry']]: mode === DropdownMode.oncherry,\n [styles['dropdown__toggle--transparent']]: transparent,\n [styles['dropdown__toggle--fluid']]: fluid,\n [styles['dropdown__toggle--open']]: isOpen,\n }\n );\n\n const contentClasses = classNames(styles.dropdown__content, isOpen && styles['dropdown__content--open']);\n\n return (\n <div className={styles.dropdown} ref={dropdownRef}>\n <span id={labelId} className={styles.dropdown__label}>\n {label}\n </span>\n <button\n type=\"button\"\n onClick={() => !isOpen && handleOpen()}\n className={toggleClasses}\n ref={buttonRef}\n data-testid={testId}\n data-analyticsid={AnalyticsId.Dropdown}\n disabled={disabled}\n aria-labelledby={toggleLabelId}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n >\n <span id={toggleLabelId} className={styles.dropdown__toggle__label}>\n {placeholder}\n </span>\n <Icon\n color={disabled ? theme.palette.neutral500 : theme.palette.blueberry600}\n svgIcon={PlusSmall}\n className={styles.dropdown__icon}\n isHovered={isHovered}\n size={IconSize.XSmall}\n />\n </button>\n <div className={contentClasses} style={{ width: fluid ? '100%' : `${buttonWidth}px` }}>\n <ul\n className={styles.dropdown__options}\n role=\"listbox\"\n aria-labelledby={labelId}\n tabIndex={-1}\n aria-activedescendant={typeof currentIndex !== 'undefined' ? `${optionIdPrefix}-${currentIndex}` : undefined}\n ref={optionsRef}\n >\n {React.Children.map(children, (child, index) => (\n <li className={styles.dropdown__input} role=\"option\" id={`${optionIdPrefix}-${index}`}>\n {React.cloneElement(child as React.ReactElement, { ref: inputRefList.current?.[index] })}\n </li>\n ))}\n </ul>\n {!noCloseButton && (\n <div className={styles.dropdown__close}>\n <Button onClick={handleClose} fluid aria-expanded={isOpen}>\n {closeText}\n </Button>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default Dropdown;\n"],"names":["DropdownMode","Dropdown","props","label","placeholder","closeText","noCloseButton","onToggle","open","children","mode","transparent","fluid","testId","disabled","dropdownRef","useRef","optionsRef","buttonRef","isHovered","useHover","isOpen","toggleIsOpen","useToggle","inputRefList","React","currentIndex","setCurrentIndex","useState","buttonWidth","useSize","labelId","useUuid","toggleLabelId","optionIdPrefix","handleOpen","_a","handleClose","useKeyboardEvent","event","KeyboardEventKey","index","x","nextIndex","useOutsideEvent","toggleClasses","classNames","styles","contentClasses","AnalyticsId","Icon","theme","PlusSmall","IconSize","child","Button"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormExample.d.ts","sourceRoot":"","sources":["../../../src/components/FormExample/FormExample.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAO9C,UAAU,gBAAgB;IACxB,WAAW,EAAE,mBAAmB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,OAAO,WAAW,CAAC;CACpC;AAED,oBAAY,mBAAmB;IAC7B,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,WAAW,UAAW,gBAAgB,KAAG,WA6KrD,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"FormExample.d.ts","sourceRoot":"","sources":["../../../src/components/FormExample/FormExample.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAO9C,UAAU,gBAAgB;IACxB,WAAW,EAAE,mBAAmB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,OAAO,WAAW,CAAC;CACpC;AAED,oBAAY,mBAAmB;IAC7B,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,WAAW,UAAW,gBAAgB,KAAG,WAmKrD,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,12 +1,12 @@
1
- import v,{createContext as qr,useRef as F,useState as Wr,useCallback as R,useEffect as ir,useMemo as Hr,isValidElement as vr}from"react";import{V as Gr}from"../../Validation.js";import{F as ye}from"../../FormGroup.js";import{C as ce}from"../../Checkbox.js";import{B as _r}from"../../Button.js";import{R as Ce}from"../../RadioButton.js";import{T as sr}from"../../Textarea.js";import{I as cr}from"../../Input.js";import or from"../Icons/Hospital.js";import{F as $r,a as zr}from"../../FormLayout.js";import{isTest as Kr}from"../../utils/environment.js";import{S as ur}from"../../Select.js";import"classnames";import"../Validation/styles.module.scss";import"../../constants.js";import"../FormGroup/styles.module.scss";import"../../Title.js";import"../Title/styles.module.scss";import"../../ErrorWrapper.js";import"../ErrorWrapper/styles.module.scss";import"../../uuid.js";import"../Icons/Check.js";import"../Icons/Icon.js";import"../../hooks/useUuid.js";import"../../theme/currys/color.js";import"../../theme/index.js";import"../../theme/palette.js";import"../../theme/spacers.js";import"../../theme/grid.js";import"../Checkbox/styles.module.scss";import"../../hooks/useHover.js";import"../../hooks/useIcons.js";import"../../hooks/useBreakpoint.js";import"../Button/styles.module.scss";import"../Icons/ArrowRight.js";import"../../hooks/useSize.js";import"../../utils/debounce.js";import"../RadioButton/styles.module.scss";import"../Textarea/styles.module.scss";import"../Input/styles.module.scss";import"../FormLayout/styles.module.scss";import"../Select/styles.module.scss";import"../Icons/ChevronDown.js";var ve=e=>e instanceof HTMLElement;const ae={BLUR:"blur",CHANGE:"change",INPUT:"input"},ee={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},hr="select",Me="undefined",X={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"};function Jr({ref:e},n,t){ve(e)&&t&&(e.addEventListener(n?ae.CHANGE:ae.INPUT,t),e.addEventListener(ae.BLUR,t))}var K=e=>e==null;const Or=e=>typeof e=="object";var G=e=>!K(e)&&!Array.isArray(e)&&Or(e)&&!(e instanceof Date),De=e=>/^\w*$/.test(e),le=e=>e.filter(Boolean),Er=e=>le(e.replace(/["|']/g,"").replace(/\[/g,".").replace(/\]/g,"").split("."));function j(e,n,t){let c=-1;const o=De(n)?[n]:Er(n),u=o.length,a=u-1;for(;++c<u;){const y=o[c];let l=t;if(c!==a){const b=e[y];l=G(b)||Array.isArray(b)?b:isNaN(+o[c+1])?{}:[]}e[y]=l,e=e[y]}return e}var Ge=(e,n={})=>{for(const t in e)De(t)?n[t]=e[t]:j(n,t,e[t]);return n},B=e=>e===void 0,E=(e={},n,t)=>{const c=le(n.split(/[,[\].]+?/)).reduce((o,u)=>K(o)?o:o[u],e);return B(c)||c===e?B(e[n])?t:e[n]:c},Qr=(e,n)=>{for(const t in e)if(E(n,t)){const c=e[t];if(c){if(c.ref.focus&&B(c.ref.focus()))break;if(c.options){c.options[0].ref.focus();break}}}},ar=(e,n)=>{ve(e)&&e.removeEventListener&&(e.removeEventListener(ae.INPUT,n),e.removeEventListener(ae.CHANGE,n),e.removeEventListener(ae.BLUR,n))};const lr={isValid:!1,value:null};var kr=e=>Array.isArray(e)?e.reduce((n,t)=>t&&t.ref.checked?{isValid:!0,value:t.ref.value}:n,lr):lr,Xr=e=>[...e].filter(({selected:n})=>n).map(({value:n})=>n),we=e=>e.type==="radio",Vr=e=>e.type==="file",fe=e=>e.type==="checkbox",xr=e=>e.type===`${hr}-multiple`;const fr={value:!1,isValid:!1},dr={value:!0,isValid:!0};var Ar=e=>{if(Array.isArray(e)){if(e.length>1){const o=e.filter(u=>u&&u.ref.checked).map(({ref:{value:u}})=>u);return{value:o,isValid:!!o.length}}const{checked:n,value:t,attributes:c}=e[0].ref;return n?c&&!B(c.value)?B(t)||t===""?dr:{value:t,isValid:!0}:dr:fr}return fr};function ue(e,n,t,c,o){const u=e.current[n];if(u){const{ref:{value:a,disabled:y},ref:l,valueAsNumber:b,valueAsDate:L,setValueAs:I}=u;return y&&c?void 0:Vr(l)?l.files:we(l)?kr(u.options).value:xr(l)?Xr(l.options):fe(l)?Ar(u.options).value:o?a:b?a===""?NaN:+a:L?l.valueAsDate:I?I(a):a}if(t)return E(t.current,n)}function Re(e){return e?!(e instanceof HTMLElement)||e.nodeType===Node.DOCUMENT_NODE?!1:Re(e.parentNode):!0}var A=e=>G(e)&&!Object.keys(e).length,ze=e=>typeof e=="boolean";function Yr(e,n){const t=n.slice(0,-1).length;let c=0;for(;c<t;)e=B(e)?c++:e[n[c++]];return e}function H(e,n){const t=De(n)?[n]:Er(n),c=t.length==1?e:Yr(e,t),o=t[t.length-1];let u;c&&delete c[o];for(let a=0;a<t.slice(0,-1).length;a++){let y=-1,l;const b=t.slice(0,-(a+1)),L=b.length-1;for(a>0&&(u=e);++y<b.length;){const I=b[y];l=l?l[I]:e[I],L===y&&(G(l)&&A(l)||Array.isArray(l)&&!l.filter(w=>G(w)&&!A(w)||ze(w)).length)&&(u?delete u[I]:delete e[I]),u=l}}return e}const mr=(e,n)=>e&&e.ref===n;function Zr(e,n,t,c,o,u){const{ref:a,ref:{name:y}}=t,l=e.current[y];if(!o){const b=ue(e,y,c);!B(b)&&j(c.current,y,b)}if(!a.type||!l){delete e.current[y];return}we(a)||fe(a)?Array.isArray(l.options)&&l.options.length?(le(l.options).forEach((b={},L)=>{(Re(b.ref)&&mr(b,b.ref)||u)&&(ar(b.ref,n),H(l.options,`[${L}]`))}),l.options&&!le(l.options).length&&delete e.current[y]):delete e.current[y]:(Re(a)&&mr(l,a)||u)&&(ar(a,n),delete e.current[y])}var te=e=>K(e)||!Or(e);function Ke(e,n){if(te(e)||te(n))return n;for(const t in n){const c=e[t],o=n[t];try{e[t]=G(c)&&G(o)||Array.isArray(c)&&Array.isArray(o)?Ke(c,o):o}catch{}}return e}function re(e,n,t){if(te(e)||te(n)||e instanceof Date||n instanceof Date)return e===n;if(!vr(e)){const c=Object.keys(e),o=Object.keys(n);if(c.length!==o.length)return!1;for(const u of c){const a=e[u];if(!(t&&u==="ref")){const y=n[u];if((G(a)||Array.isArray(a))&&(G(y)||Array.isArray(y))?!re(a,y,t):a!==y)return!1}}}return!0}function _e(e,n,t,c,o){let u=-1;for(;++u<e.length;){for(const a in e[u])Array.isArray(e[u][a])?(!t[u]&&(t[u]={}),t[u][a]=[],_e(e[u][a],E(n[u]||{},a,[]),t[u][a],t[u],a)):re(E(n[u]||{},a),e[u][a])?j(t[u]||{},a):t[u]=Object.assign(Object.assign({},t[u]),{[a]:!0});c&&!t.length&&delete c[o]}return t}var Ur=(e,n,t)=>Ke(_e(e,n,t.slice(0,e.length)),_e(n,e,t.slice(0,e.length))),Q=e=>typeof e=="string",He=(e,n,t,c,o)=>{const u={};for(const a in e.current)(B(o)||(Q(o)?a.startsWith(o):Array.isArray(o)&&o.find(y=>a.startsWith(y))))&&(u[a]=ue(e,a,void 0,c));return t?Ge(u):Ke(n,Ge(u))},et=({errors:e,name:n,error:t,validFields:c,fieldsWithValidation:o})=>{const u=B(t),a=E(e,n);return u&&!!a||!u&&!re(a,t,!0)||u&&E(o,n)&&!E(c,n)},Sr=e=>e instanceof RegExp,pe=e=>G(e)&&!Sr(e)?e:{value:e,message:""},Dr=e=>typeof e=="function",$e=e=>Q(e)||vr(e);function gr(e,n,t="validate"){if($e(e)||ze(e)&&!e)return{type:t,message:$e(e)?e:"",ref:n}}var rt=(e,n,t,c,o)=>n?Object.assign(Object.assign({},t[e]),{types:Object.assign(Object.assign({},t[e]&&t[e].types?t[e].types:{}),{[c]:o||!0})}):{},Le=async(e,n,{ref:t,ref:{value:c},options:o,required:u,maxLength:a,minLength:y,min:l,max:b,pattern:L,validate:I},w)=>{const q=t.name,k={},M=we(t),S=fe(t),ne=M||S,_=c==="",P=rt.bind(null,q,n,k),V=(h,x,O,D=X.maxLength,W=X.minLength)=>{const Y=h?x:O;k[q]=Object.assign({type:h?D:W,message:Y,ref:t},P(h?D:W,Y))};if(u&&(!M&&!S&&(_||K(c))||ze(c)&&!c||S&&!Ar(o).isValid||M&&!kr(o).isValid)){const{value:h,message:x}=$e(u)?{value:!!u,message:u}:pe(u);if(h&&(k[q]=Object.assign({type:X.required,message:x,ref:ne?((e.current[q].options||[])[0]||{}).ref:t},P(X.required,x)),!n))return k}if((!K(l)||!K(b))&&c!==""){let h,x;const O=pe(b),D=pe(l);if(isNaN(c)){const W=t.valueAsDate||new Date(c);Q(O.value)&&(h=W>new Date(O.value)),Q(D.value)&&(x=W<new Date(D.value))}else{const W=t.valueAsNumber||parseFloat(c);K(O.value)||(h=W>O.value),K(D.value)||(x=W<D.value)}if((h||x)&&(V(!!h,O.message,D.message,X.max,X.min),!n))return k}if(Q(c)&&!_&&(a||y)){const h=pe(a),x=pe(y),O=!K(h.value)&&c.length>h.value,D=!K(x.value)&&c.length<x.value;if((O||D)&&(V(O,h.message,x.message),!n))return k}if(Q(c)&&L&&!_){const{value:h,message:x}=pe(L);if(Sr(h)&&!h.test(c)&&(k[q]=Object.assign({type:X.pattern,message:x,ref:t},P(X.pattern,x)),!n))return k}if(I){const h=ue(e,q,w,!1,!0),x=ne&&o?o[0].ref:t;if(Dr(I)){const O=await I(h),D=gr(O,x);if(D&&(k[q]=Object.assign(Object.assign({},D),P(X.validate,D.message)),!n))return k}else if(G(I)){let O={};for(const[D,W]of Object.entries(I)){if(!A(O)&&!n)break;const Y=await W(h),he=gr(Y,x,D);he&&(O=Object.assign(Object.assign({},he),P(D,he.message)),n&&(k[q]=O))}if(!A(O)&&(k[q]=Object.assign({ref:x},O),!n))return k}}return k};const Je=(e,n,t=[])=>{for(const c in n){const o=e+(G(n)?`.${c}`:`[${c}]`);te(n[c])?t.push(o):Je(o,n[c],t)}return t};var yr=(e,n,t,c,o)=>{let u;return t.add(n),A(e)||(u=E(e,n),(G(u)||Array.isArray(u))&&Je(n,u).forEach(a=>t.add(a))),B(u)?o?c:E(c,n):u},tt=({isOnBlur:e,isOnChange:n,isOnTouch:t,isTouched:c,isReValidateOnBlur:o,isReValidateOnChange:u,isBlurEvent:a,isSubmitted:y,isOnAll:l})=>l?!1:!y&&t?!(c||a):(y?o:e)?!a:(y?u:n)?a:!0,Te=e=>e.substring(0,e.indexOf("["));const nt=(e,n)=>RegExp(`^${n}([|.)\\d+`.replace(/\[/g,"\\[").replace(/\]/g,"\\]")).test(e);var it=(e,n)=>[...e].some(t=>nt(n,t)),st=e=>e.type===`${hr}-one`;function ct(e,n){const t=new MutationObserver(()=>{for(const c of Object.values(e.current))if(c&&c.options)for(const o of c.options)o&&o.ref&&Re(o.ref)&&n(c);else c&&Re(c.ref)&&n(c)});return t.observe(window.document,{childList:!0,subtree:!0}),t}var be=typeof window!==Me&&typeof document!==Me;function U(e){var n;let t;if(te(e)||be&&(e instanceof File||ve(e))||!["Set","Map","Object","Date","Array"].includes((n=e.constructor)===null||n===void 0?void 0:n.name))return e;if(e instanceof Date)return t=new Date(e.getTime()),t;if(e instanceof Set){t=new Set;for(const c of e)t.add(c);return t}if(e instanceof Map){t=new Map;for(const c of e.keys())t.set(c,U(e.get(c)));return t}t=Array.isArray(e)?[]:{};for(const c in e)t[c]=U(e[c]);return t}var pr=e=>({isOnSubmit:!e||e===ee.onSubmit,isOnBlur:e===ee.onBlur,isOnChange:e===ee.onChange,isOnAll:e===ee.all,isOnTouch:e===ee.onTouched}),br=e=>we(e)||fe(e);const ot=typeof window===Me,oe=be?"Proxy"in window:typeof Proxy!==Me;function ut({mode:e=ee.onSubmit,reValidateMode:n=ee.onChange,resolver:t,context:c,defaultValues:o={},shouldFocusError:u=!0,shouldUnregister:a=!0,criteriaMode:y}={}){const l=F({}),b=F({}),L=F({}),I=F(new Set),w=F({}),q=F({}),k=F({}),M=F({}),S=F(o),ne=F(!1),_=F(!1),P=F(),V=F({}),h=F({}),x=F(c),O=F(t),D=F(new Set),W=F(pr(e)),{isOnSubmit:Y,isOnTouch:he}=W.current,$=y===ee.all,[de,Rr]=Wr({isDirty:!1,isValidating:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touched:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!Y,errors:{}}),N=F({isDirty:!oe,dirtyFields:!oe,touched:!oe||he,isValidating:!oe,isSubmitting:!oe,isValid:!oe}),f=F(de),Oe=F(),{isOnBlur:Qe,isOnChange:Xe}=F(pr(n)).current;x.current=c,O.current=t,f.current=de,V.current=a?{}:A(V.current)?U(o):V.current;const C=R((r={})=>{ne.current||(f.current=Object.assign(Object.assign({},f.current),r),Rr(f.current))},[]),Ye=()=>N.current.isValidating&&C({isValidating:!0}),Ee=R((r,s,i=!1,m={},g)=>{let d=i||et({errors:f.current.errors,error:s,name:r,validFields:M.current,fieldsWithValidation:k.current});const p=E(f.current.errors,r);s?(H(M.current,r),d=d||!p||!re(p,s,!0),j(f.current.errors,r,s)):((E(k.current,r)||O.current)&&(j(M.current,r,!0),d=d||p),H(f.current.errors,r)),(d&&!K(i)||!A(m)||N.current.isValidating)&&C(Object.assign(Object.assign(Object.assign({},m),O.current?{isValid:!!g}:{}),{isValidating:!1}))},[]),ke=R((r,s)=>{const{ref:i,options:m}=l.current[r],g=be&&ve(i)&&K(s)?"":s;we(i)?(m||[]).forEach(({ref:d})=>d.checked=d.value===g):Vr(i)&&!Q(g)?i.files=g:xr(i)?[...i.options].forEach(d=>d.selected=g.includes(d.value)):fe(i)&&m?m.length>1?m.forEach(({ref:d})=>d.checked=Array.isArray(g)?!!g.find(p=>p===d.value):g===d.value):m[0].ref.checked=!!g:i.value=g},[]),Ne=R((r,s)=>{if(N.current.isDirty){const i=me();return r&&s&&j(i,r,s),!re(i,S.current)}return!1},[]),Ve=R((r,s=!0)=>{if(N.current.isDirty||N.current.dirtyFields){const i=!re(E(S.current,r),ue(l,r,V)),m=E(f.current.dirtyFields,r),g=f.current.isDirty;i?j(f.current.dirtyFields,r,!0):H(f.current.dirtyFields,r);const d={isDirty:Ne(),dirtyFields:f.current.dirtyFields},p=N.current.isDirty&&g!==d.isDirty||N.current.dirtyFields&&m!==E(f.current.dirtyFields,r);return p&&s&&C(d),p?d:{}}return{}},[]),Be=R(async(r,s)=>{const i=(await Le(l,$,l.current[r],V))[r];return Ee(r,i,s),B(i)},[Ee,$]),Ze=R(async r=>{const{errors:s}=await O.current(me(),x.current,$),i=f.current.isValid;if(Array.isArray(r)){const m=r.map(g=>{const d=E(s,g);return d?j(f.current.errors,g,d):H(f.current.errors,g),!d}).every(Boolean);return C({isValid:A(s),isValidating:!1}),m}else{const m=E(s,r);return Ee(r,m,i!==A(s),{},A(s)),!m}},[Ee,$]),xe=R(async r=>{const s=r||Object.keys(l.current);if(Ye(),O.current)return Ze(s);if(Array.isArray(s)){!r&&(f.current.errors={});const i=await Promise.all(s.map(async m=>await Be(m,null)));return C({isValidating:!1}),i.every(Boolean)}return await Be(s)},[Ze,Be]),Ue=R((r,s,{shouldDirty:i,shouldValidate:m})=>{const g={};j(g,r,s);for(const d of Je(r,s))l.current[d]&&(ke(d,E(g,d)),i&&Ve(d),m&&xe(d))},[xe,ke,Ve]),er=R((r,s,i)=>{if(!a&&!te(s)&&j(V.current,r,Array.isArray(s)?[...s]:Object.assign({},s)),l.current[r])ke(r,s),i.shouldDirty&&Ve(r),i.shouldValidate&&xe(r);else if(!te(s)&&(Ue(r,s,i),D.current.has(r))){const m=Te(r)||r;j(b.current,r,s),h.current[m]({[m]:E(b.current,m)}),(N.current.isDirty||N.current.dirtyFields)&&i.shouldDirty&&(j(f.current.dirtyFields,r,Ur(s,E(S.current,r,[]),E(f.current.dirtyFields,r,[]))),C({isDirty:!re(Object.assign(Object.assign({},me()),{[r]:s}),S.current)}))}!a&&j(V.current,r,s)},[Ve,ke,Ue]),rr=r=>_.current||I.current.has(r)||I.current.has((r.match(/\w+/)||[])[0]),Ae=r=>{let s=!0;if(!A(w.current))for(const i in w.current)(!r||!w.current[i].size||w.current[i].has(r)||w.current[i].has(Te(r)))&&(q.current[i](),s=!1);return s};function wr(r,s,i){er(r,s,i||{}),rr(r)&&C(),Ae(r)}P.current=P.current?P.current:async({type:r,target:s})=>{let i=s.name;const m=l.current[i];let g,d;if(m){const p=r===ae.BLUR,z=tt(Object.assign({isBlurEvent:p,isReValidateOnChange:Xe,isReValidateOnBlur:Qe,isTouched:!!E(f.current.touched,i),isSubmitted:f.current.isSubmitted},W.current));let J=Ve(i,!1),ge=!A(J)||!p&&rr(i);if(p&&!E(f.current.touched,i)&&N.current.touched&&(j(f.current.touched,i,!0),J=Object.assign(Object.assign({},J),{touched:f.current.touched})),!a&&fe(s)&&j(V.current,i,ue(l,i)),z)return!p&&Ae(i),(!A(J)||ge&&A(J))&&C(J);if(Ye(),O.current){const{errors:T}=await O.current(me(),x.current,$),Se=f.current.isValid;if(g=E(T,i),fe(s)&&!g&&O.current){const Z=Te(i),ie=E(T,Z,{});ie.type&&ie.message&&(g=ie),Z&&(ie||E(f.current.errors,Z))&&(i=Z)}d=A(T),Se!==d&&(ge=!0)}else g=(await Le(l,$,m,V))[i];!p&&Ae(i),Ee(i,g,ge,J,d)}};function tr(r){if(!a){let s=U(r);for(const i of D.current)De(i)&&!s[i]&&(s=Object.assign(Object.assign({},s),{[i]:[]}));return s}return r}function me(r){if(Q(r))return ue(l,r,V);if(Array.isArray(r)){const s={};for(const i of r)j(s,i,ue(l,i,V));return s}return tr(He(l,U(V.current),a))}const Fe=R(async(r={})=>{const s=A(l.current)?S.current:{},{errors:i}=await O.current(Object.assign(Object.assign(Object.assign({},s),me()),r),x.current,$)||{},m=A(i);f.current.isValid!==m&&C({isValid:m})},[$]),je=R((r,s)=>{Zr(l,P.current,r,V,a,s),a&&(H(M.current,r.ref.name),H(k.current,r.ref.name))},[a]),Pe=R(r=>{if(_.current)C();else{for(const s of I.current)if(s.startsWith(r)){C();break}Ae(r)}},[]),Ie=R((r,s)=>{r&&(je(r,s),a&&!le(r.options||[]).length&&(H(f.current.errors,r.ref.name),j(f.current.dirtyFields,r.ref.name,!0),C({isDirty:Ne()}),N.current.isValid&&O.current&&Fe(),Pe(r.ref.name)))},[Fe,je]);function Fr(r){r&&(Array.isArray(r)?r:[r]).forEach(s=>l.current[s]&&De(s)?delete f.current.errors[s]:H(f.current.errors,s)),C({errors:r?f.current.errors:{}})}function jr(r,s){const i=(l.current[r]||{}).ref;j(f.current.errors,r,Object.assign(Object.assign({},s),{ref:i})),C({isValid:!1}),s.shouldFocus&&i&&i.focus&&i.focus()}const qe=R((r,s,i)=>{const m=i?w.current[i]:I.current;let g=He(l,U(V.current),a,!1,r);if(Q(r)){const p=Te(r)||r;return D.current.has(p)&&(g=Object.assign(Object.assign({},L.current),g)),yr(g,r,m,B(E(S.current,r))?s:E(S.current,r),!0)}const d=B(s)?S.current:s;return Array.isArray(r)?r.reduce((p,z)=>Object.assign(Object.assign({},p),{[z]:yr(g,z,m,d)}),{}):(_.current=B(i),Ge(!A(g)&&g||d))},[]);function Ir(r,s){return qe(r,s)}function Cr(r){for(const s of Array.isArray(r)?r:[r])Ie(l.current[s],!0)}function We(r,s={}){const{name:i,type:m,value:g}=r,d=Object.assign({ref:r},s),p=l.current,z=br(r),J=it(D.current,i),ge=se=>be&&(!ve(r)||se===r);let T=p[i],Se=!0,Z;if(T&&(z?Array.isArray(T.options)&&le(T.options).find(se=>g===se.ref.value&&ge(se.ref)):ge(T.ref))){p[i]=Object.assign(Object.assign({},T),s);return}m?T=z?Object.assign({options:[...le(T&&T.options||[]),{ref:r}],ref:{type:m,name:i}},s):Object.assign({},d):T=d,p[i]=T;const ie=B(E(V.current,i));(!A(S.current)||!ie)&&(Z=E(ie?S.current:V.current,i),Se=B(Z),!Se&&!J&&ke(i,Z)),A(s)||(j(k.current,i,!0),!Y&&N.current.isValid&&Le(l,$,T,V).then(se=>{const Pr=f.current.isValid;A(se)?j(M.current,i,!0):H(M.current,i),Pr!==A(se)&&C()})),a&&!(J&&Se)&&!J&&H(f.current.dirtyFields,i),m&&Jr(z&&T.options?T.options[T.options.length-1]:T,z||st(r),P.current)}function Lr(r,s){if(!ot)if(Q(r))We({name:r},s);else if(G(r)&&"name"in r)We(r,s);else return i=>i&&We(i,r)}const Tr=R((r,s)=>async i=>{i&&i.preventDefault&&(i.preventDefault(),i.persist());let m={},g=tr(He(l,U(V.current),a,!0));N.current.isSubmitting&&C({isSubmitting:!0});try{if(O.current){const{errors:d,values:p}=await O.current(g,x.current,$);f.current.errors=m=d,g=p}else for(const d of Object.values(l.current))if(d){const{name:p}=d.ref,z=await Le(l,$,d,V);z[p]?(j(m,p,z[p]),H(M.current,p)):E(k.current,p)&&(H(f.current.errors,p),j(M.current,p,!0))}A(m)&&Object.keys(f.current.errors).every(d=>d in l.current)?(C({errors:{},isSubmitting:!0}),await r(g,i)):(f.current.errors=Object.assign(Object.assign({},f.current.errors),m),s&&await s(f.current.errors,i),u&&Qr(l.current,f.current.errors))}finally{f.current.isSubmitting=!1,C({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:A(f.current.errors),submitCount:f.current.submitCount+1})}},[u,$]),Mr=({errors:r,isDirty:s,isSubmitted:i,touched:m,isValid:g,submitCount:d,dirtyFields:p})=>{g||(M.current={},k.current={}),b.current={},I.current=new Set,_.current=!1,C({submitCount:d?f.current.submitCount:0,isDirty:s?f.current.isDirty:!1,isSubmitted:i?f.current.isSubmitted:!1,isValid:g?f.current.isValid:!1,dirtyFields:p?f.current.dirtyFields:{},touched:m?f.current.touched:{},errors:r?f.current.errors:{},isSubmitting:!1,isSubmitSuccessful:!1})},Nr=(r,s={})=>{if(be){for(const i of Object.values(l.current))if(i){const{ref:m,options:g}=i,d=br(m)&&Array.isArray(g)?g[0].ref:m;if(ve(d))try{d.closest("form").reset();break}catch{}}}l.current={},S.current=Object.assign({},r||S.current),r&&Ae(""),Object.values(h.current).forEach(i=>Dr(i)&&i()),V.current=a?{}:U(r||S.current),Mr(s)};ir(()=>{t&&N.current.isValid&&Fe(),Oe.current=Oe.current||!be?Oe.current:ct(l,Ie)},[Ie,S.current]),ir(()=>()=>{Oe.current&&Oe.current.disconnect(),ne.current=!0,Object.values(l.current).forEach(r=>Ie(r,!0))},[]),!t&&N.current.isValid&&(de.isValid=re(M.current,k.current)&&A(f.current.errors));const nr={trigger:xe,setValue:R(wr,[er,xe]),getValues:R(me,[]),register:R(Lr,[S.current]),unregister:R(Cr,[]),formState:oe?new Proxy(de,{get:(r,s)=>{if(s in r)return N.current[s]=!0,r[s]}}):de},Br=Hr(()=>Object.assign({isFormDirty:Ne,updateWatchedValue:Pe,shouldUnregister:a,updateFormState:C,removeFieldEventListener:je,watchInternal:qe,mode:W.current,reValidateMode:{isReValidateOnBlur:Qe,isReValidateOnChange:Xe},validateResolver:t?Fe:void 0,fieldsRef:l,resetFieldArrayFunctionRef:h,useWatchFieldsRef:w,useWatchRenderFunctionsRef:q,fieldArrayDefaultValuesRef:b,validFieldsRef:M,fieldsWithValidationRef:k,fieldArrayNamesRef:D,readFormStateRef:N,formStateRef:f,defaultValuesRef:S,shallowFieldsStateRef:V,fieldArrayValuesRef:L},nr),[S.current,Pe,a,je,qe]);return Object.assign({watch:Ir,control:Br,handleSubmit:Tr,reset:R(Nr,[]),clearErrors:R(Fr,[]),setError:R(jr,[]),errors:de.errors},nr)}const at=qr(null);at.displayName="RHFContext";var lt=(e=>(e.formgroup="formgroup",e.checkbox="checkbox",e.radiobutton="radiobutton",e.textarea="textarea",e.input="input",e.select="select",e))(lt||{});const en=e=>{const{exampleType:n="formgroup"}=e,{register:t,handleSubmit:c,formState:{errors:o}}=ut(),u="field1",a="field2",y="field3",l="field4",b="field5",L="field6",I=o[u]||o[a]||o[y]||o[l]||o[b]||o[L],w="Du m\xE5 velge et alternativ",q="Du m\xE5 velge to alternativ",k="Det kan ikke legges inn mer enn 40 tegn",M="Du m\xE5 skrive noe her",S='Du m\xE5 velge "Option 2"',ne=[v.createElement(ce,{key:0,inputId:"checkbox1",label:"Checkbox 1",ref:t({required:w})}),v.createElement(ce,{key:1,inputId:"checkbox2",label:"Checkbox 2",ref:t({required:w})}),v.createElement(ce,{key:2,inputId:"checkbox3",label:"Checkbox 3",ref:t({required:w})})],_=h=>h.length>=2||q,P=h=>h.toString()==="Option 2"||S,V=()=>{if(n==="formgroup")return[v.createElement(ye,{key:0,title:"Gruppe tittel",legend:"Velg minst en",error:o[u]?o[u].message:void 0,variant:e.variant,name:u},v.createElement($r,{maxColumns:zr.two},ne.map(h=>h))),v.createElement(ye,{key:1,legend:"Velg minst to",error:o[a]?o[a].message:void 0,variant:e.variant,name:a},v.createElement(ce,{inputId:"checkbox4",label:"Checkbox 4",ref:t({validate:_})}),v.createElement(ce,{inputId:"checkbox5",label:"Checkbox 5",ref:t({validate:_})}),v.createElement(ce,{inputId:"checkbox6",label:"Checkbox 6",ref:t({validate:_})})),v.createElement(ye,{key:2,legend:"Velg en",error:o[y]?o[y].message:void 0,variant:e.variant,name:y},v.createElement(Ce,{inputId:"radiobutton1",label:"Radiobutton 1",ref:t({required:w})}),v.createElement(Ce,{inputId:"radiobutton2",label:"Radiobutton 2",ref:t({required:w})}),v.createElement(Ce,{inputId:"radiobutton3",label:"Radiobutton 3",ref:t({required:w})})),v.createElement(ye,{key:3,error:o[l]?o[l].message:void 0},v.createElement(sr,{defaultValue:`Dette er en test
1
+ import v from"react";import{V as dt}from"../../Validation.js";import{F as Z}from"../../FormGroup.js";import{C as J}from"../../Checkbox.js";import{B as yt}from"../../Button.js";import{R as ye}from"../../RadioButton.js";import{T as Be}from"../../Textarea.js";import{I as Ue}from"../../Input.js";import qe from"../Icons/Hospital.js";import{F as gt,a as ht}from"../../FormLayout.js";import{isTest as mt}from"../../utils/environment.js";import{S as Ne}from"../../Select.js";import"classnames";import"../Validation/styles.module.scss";import"../../constants.js";import"../FormGroup/styles.module.scss";import"../../Title.js";import"../Title/styles.module.scss";import"../../ErrorWrapper.js";import"../ErrorWrapper/styles.module.scss";import"../../uuid.js";import"../Icons/Check.js";import"../Icons/Icon.js";import"../../hooks/useUuid.js";import"../../theme/currys/color.js";import"../../theme/index.js";import"../../theme/palette.js";import"../../theme/spacers.js";import"../../theme/grid.js";import"../Checkbox/styles.module.scss";import"../../hooks/useHover.js";import"../../hooks/useIcons.js";import"../../hooks/useBreakpoint.js";import"../Button/styles.module.scss";import"../Icons/ArrowRight.js";import"../../hooks/useSize.js";import"../../utils/debounce.js";import"../RadioButton/styles.module.scss";import"../Textarea/styles.module.scss";import"../Input/styles.module.scss";import"../FormLayout/styles.module.scss";import"../Select/styles.module.scss";import"../Icons/ChevronDown.js";var le=e=>e.type==="checkbox",te=e=>e instanceof Date,T=e=>e==null;const Qe=e=>typeof e=="object";var D=e=>!T(e)&&!Array.isArray(e)&&Qe(e)&&!te(e),vt=e=>D(e)&&e.target?le(e.target)?e.target.checked:e.target.value:e,bt=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,xt=(e,s)=>e.has(bt(s)),ae=e=>Array.isArray(e)?e.filter(Boolean):[],F=e=>e===void 0,d=(e,s,t)=>{if(!s||!D(e))return t;const l=ae(s.split(/[,[\].]+?/)).reduce((i,a)=>T(i)?i:i[a],e);return F(l)||l===e?F(e[s])?t:e[s]:l};const Pe={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change"},H={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},G={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"};v.createContext(null);var kt=(e,s,t,l=!0)=>{const i={defaultValues:s._defaultValues};for(const a in e)Object.defineProperty(i,a,{get:()=>{const g=a;return s._proxyFormState[g]!==H.all&&(s._proxyFormState[g]=!l||H.all),t&&(t[g]=!0),e[g]}});return i},B=e=>D(e)&&!Object.keys(e).length,pt=(e,s,t)=>{const{name:l,...i}=e;return B(i)||Object.keys(i).length>=Object.keys(s).length||Object.keys(i).find(a=>s[a]===(!t||H.all))},Ae=e=>Array.isArray(e)?e:[e];function At(e){const s=v.useRef(e);s.current=e,v.useEffect(()=>{const t=!e.disabled&&s.current.subject.subscribe({next:s.current.callback});return()=>{t&&t.unsubscribe()}},[e.disabled])}var W=e=>typeof e=="string",Et=(e,s,t,l)=>{const i=Array.isArray(e);return W(e)?(l&&s.watch.add(e),d(t,e)):i?e.map(a=>(l&&s.watch.add(a),d(t,a))):(l&&(s.watchAll=!0),t)},he=e=>typeof e=="function",Xe=e=>{for(const s in e)if(he(e[s]))return!0;return!1},_t=(e,s,t,l,i)=>s?{...t[e],types:{...t[e]&&t[e].types?t[e].types:{},[l]:i||!0}}:{},Ce=e=>/^\w*$/.test(e),Ye=e=>ae(e.replace(/["|']|\]/g,"").split(/\.|\[/));function A(e,s,t){let l=-1;const i=Ce(s)?[s]:Ye(s),a=i.length,g=a-1;for(;++l<a;){const h=i[l];let E=t;if(l!==g){const S=e[h];E=D(S)||Array.isArray(S)?S:isNaN(+i[l+1])?{}:[]}e[h]=E,e=e[h]}return e}const Se=(e,s,t)=>{for(const l of t||Object.keys(e)){const i=d(e,l);if(i){const{_f:a,...g}=i;if(a&&s(a.name)){if(a.ref.focus){a.ref.focus();break}else if(a.refs&&a.refs[0].focus){a.refs[0].focus();break}}else D(g)&&Se(g,s)}}};var He=(e,s,t)=>!t&&(s.watchAll||s.watch.has(e)||[...s.watch].some(l=>e.startsWith(l)&&/^\.\w+/.test(e.slice(l.length)))),wt=(e,s,t)=>{const l=ae(d(e,t));return A(l,"root",s[t]),A(e,t,l),e},oe=e=>typeof e=="boolean",Oe=e=>e.type==="file",ge=e=>W(e)||v.isValidElement(e),Te=e=>e.type==="radio",me=e=>e instanceof RegExp;const We={value:!1,isValid:!1},$e={value:!0,isValid:!0};var Ze=e=>{if(Array.isArray(e)){if(e.length>1){const s=e.filter(t=>t&&t.checked&&!t.disabled).map(t=>t.value);return{value:s,isValid:!!s.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!F(e[0].attributes.value)?F(e[0].value)||e[0].value===""?$e:{value:e[0].value,isValid:!0}:$e:We}return We};const Ge={isValid:!1,value:null};var et=e=>Array.isArray(e)?e.reduce((s,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:s,Ge):Ge;function Ke(e,s,t="validate"){if(ge(e)||Array.isArray(e)&&e.every(ge)||oe(e)&&!e)return{type:t,message:ge(e)?e:"",ref:s}}var ee=e=>D(e)&&!me(e)?e:{value:e,message:""},je=async(e,s,t,l,i)=>{const{ref:a,refs:g,required:h,maxLength:E,minLength:S,min:R,max:p,pattern:m,validate:$,name:L,valueAsNumber:K,mount:se,disabled:I}=e._f;if(!se||I)return{};const U=g?g[0]:a,q=b=>{l&&W(b)&&(U.setCustomValidity(b),U.reportValidity())},k={},j=Te(a),ue=le(a),z=j||ue,X=(K||Oe(a))&&!a.value||s===""||Array.isArray(s)&&!s.length,N=_t.bind(null,L,t,k),ce=(b,x,w,V=G.maxLength,P=G.minLength)=>{const M=b?x:w;k[L]={type:b?V:P,message:M,ref:a,...N(b?V:P,M)}};if(i?!Array.isArray(s)||!s.length:h&&(!z&&(X||T(s))||oe(s)&&!s||ue&&!Ze(g).isValid||j&&!et(g).isValid)){const{value:b,message:x}=ge(h)?{value:!!h,message:h}:ee(h);if(b&&(k[L]={type:G.required,message:x,ref:U,...N(G.required,x)},!t))return q(x),k}if(!X&&(!T(R)||!T(p))){let b,x;const w=ee(p),V=ee(R);if(!T(s)&&!isNaN(s)){const P=a.valueAsNumber||s&&+s;T(w.value)||(b=P>w.value),T(V.value)||(x=P<V.value)}else{const P=a.valueAsDate||new Date(s),M=fe=>new Date(new Date().toDateString()+" "+fe),ie=a.type=="time",Y=a.type=="week";W(w.value)&&s&&(b=ie?M(s)>M(w.value):Y?s>w.value:P>new Date(w.value)),W(V.value)&&s&&(x=ie?M(s)<M(V.value):Y?s<V.value:P<new Date(V.value))}if((b||x)&&(ce(!!b,w.message,V.message,G.max,G.min),!t))return q(k[L].message),k}if((E||S)&&!X&&(W(s)||i&&Array.isArray(s))){const b=ee(E),x=ee(S),w=!T(b.value)&&s.length>b.value,V=!T(x.value)&&s.length<x.value;if((w||V)&&(ce(w,b.message,x.message),!t))return q(k[L].message),k}if(m&&!X&&W(s)){const{value:b,message:x}=ee(m);if(me(b)&&!s.match(b)&&(k[L]={type:G.pattern,message:x,ref:a,...N(G.pattern,x)},!t))return q(x),k}if($){if(he($)){const b=await $(s),x=Ke(b,U);if(x&&(k[L]={...x,...N(G.validate,x.message)},!t))return q(x.message),k}else if(D($)){let b={};for(const x in $){if(!B(b)&&!t)break;const w=Ke(await $[x](s),U,x);w&&(b={...w,...N(x,w.message)},q(w.message),t&&(k[L]=b))}if(!B(b)&&(k[L]={ref:U,...b},!t))return k}}return q(!0),k},Ft=e=>{const s=e.constructor&&e.constructor.prototype;return D(s)&&s.hasOwnProperty("isPrototypeOf")},De=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function Q(e){let s;const t=Array.isArray(e);if(e instanceof Date)s=new Date(e);else if(e instanceof Set)s=new Set(e);else if(!(De&&(e instanceof Blob||e instanceof FileList))&&(t||D(e)))if(s=t?[]:{},!Array.isArray(e)&&!Ft(e))s=e;else for(const l in e)s[l]=Q(e[l]);else return e;return s}var ze=e=>({isOnSubmit:!e||e===H.onSubmit,isOnBlur:e===H.onBlur,isOnChange:e===H.onChange,isOnAll:e===H.all,isOnTouch:e===H.onTouched});function St(e,s){const t=s.slice(0,-1).length;let l=0;for(;l<t;)e=F(e)?l++:e[s[l++]];return e}function Dt(e){for(const s in e)if(!F(e[s]))return!1;return!0}function O(e,s){const t=Ce(s)?[s]:Ye(s),l=t.length==1?e:St(e,t),i=t[t.length-1];let a;l&&delete l[i];for(let g=0;g<t.slice(0,-1).length;g++){let h=-1,E;const S=t.slice(0,-(g+1)),R=S.length-1;for(g>0&&(a=e);++h<S.length;){const p=S[h];E=E?E[p]:e[p],R===h&&(D(E)&&B(E)||Array.isArray(E)&&Dt(E))&&(a?delete a[p]:delete e[p]),a=E}}return e}function Ee(){let e=[];return{get observers(){return e},next:i=>{for(const a of e)a.next(i)},subscribe:i=>(e.push(i),{unsubscribe:()=>{e=e.filter(a=>a!==i)}}),unsubscribe:()=>{e=[]}}}var ve=e=>T(e)||!Qe(e);function re(e,s){if(ve(e)||ve(s))return e===s;if(te(e)&&te(s))return e.getTime()===s.getTime();const t=Object.keys(e),l=Object.keys(s);if(t.length!==l.length)return!1;for(const i of t){const a=e[i];if(!l.includes(i))return!1;if(i!=="ref"){const g=s[i];if(te(a)&&te(g)||D(a)&&D(g)||Array.isArray(a)&&Array.isArray(g)?!re(a,g):a!==g)return!1}}return!0}var Ve=e=>{const s=e?e.ownerDocument:0,t=s&&s.defaultView?s.defaultView.HTMLElement:HTMLElement;return e instanceof t},tt=e=>e.type==="select-multiple",Vt=e=>Te(e)||le(e),_e=e=>Ve(e)&&e.isConnected;function be(e,s={}){const t=Array.isArray(e);if(D(e)||t)for(const l in e)Array.isArray(e[l])||D(e[l])&&!Xe(e[l])?(s[l]=Array.isArray(e[l])?[]:{},be(e[l],s[l])):T(e[l])||(s[l]=!0);return s}function rt(e,s,t){const l=Array.isArray(e);if(D(e)||l)for(const i in e)Array.isArray(e[i])||D(e[i])&&!Xe(e[i])?F(s)||ve(t[i])?t[i]=Array.isArray(e[i])?be(e[i],[]):{...be(e[i])}:rt(e[i],T(s)?{}:s[i],t[i]):re(e[i],s[i])?delete t[i]:t[i]=!0;return t}var we=(e,s)=>rt(e,s,be(s)),st=(e,{valueAsNumber:s,valueAsDate:t,setValueAs:l})=>F(e)?e:s?e===""?NaN:e&&+e:t&&W(e)?new Date(e):l?l(e):e;function Fe(e){const s=e.ref;if(!(e.refs?e.refs.every(t=>t.disabled):s.disabled))return Oe(s)?s.files:Te(s)?et(e.refs).value:tt(s)?[...s.selectedOptions].map(({value:t})=>t):le(s)?Ze(e.refs).value:st(F(s.value)?e.ref.value:s.value,e)}var Ct=(e,s,t,l)=>{const i={};for(const a of e){const g=d(s,a);g&&A(i,a,g._f)}return{criteriaMode:t,names:[...e],fields:i,shouldUseNativeValidation:l}},ne=e=>F(e)?void 0:me(e)?e.source:D(e)?me(e.value)?e.value.source:e.value:e,Ot=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate);function Je(e,s,t){const l=d(e,t);if(l||Ce(t))return{error:l,name:t};const i=t.split(".");for(;i.length;){const a=i.join("."),g=d(s,a),h=d(e,a);if(g&&!Array.isArray(g)&&t!==a)return{name:t};if(h&&h.type)return{name:a,error:h};i.pop()}return{name:t}}var Tt=(e,s,t,l,i)=>i.isOnAll?!1:!t&&i.isOnTouch?!(s||e):(t?l.isOnBlur:i.isOnBlur)?!e:(t?l.isOnChange:i.isOnChange)?e:!0,Rt=(e,s)=>!ae(d(e,s)).length&&O(e,s);const Lt={mode:H.onSubmit,reValidateMode:H.onChange,shouldFocusError:!0};function It(e={}){let s={...Lt,...e},t={submitCount:0,isDirty:!1,isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},errors:{}},l={},i=Q(s.defaultValues)||{},a=s.shouldUnregister?{}:Q(i),g={action:!1,mount:!1,watch:!1},h={mount:new Set,unMount:new Set,array:new Set,watch:new Set},E,S=0,R={};const p={isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},m={watch:Ee(),array:Ee(),state:Ee()},$=ze(s.mode),L=ze(s.reValidateMode),K=s.criteriaMode===H.all,se=r=>n=>{clearTimeout(S),S=window.setTimeout(r,n)},I=async()=>{let r=!1;return p.isValid&&(r=s.resolver?B((await z()).errors):await N(l,!0),r!==t.isValid&&(t.isValid=r,m.state.next({isValid:r}))),r},U=(r,n=[],o,c,f=!0,u=!0)=>{if(c&&o){if(g.action=!0,u&&Array.isArray(d(l,r))){const y=o(d(l,r),c.argA,c.argB);f&&A(l,r,y)}if(p.errors&&u&&Array.isArray(d(t.errors,r))){const y=o(d(t.errors,r),c.argA,c.argB);f&&A(t.errors,r,y),Rt(t.errors,r)}if(p.touchedFields&&u&&Array.isArray(d(t.touchedFields,r))){const y=o(d(t.touchedFields,r),c.argA,c.argB);f&&A(t.touchedFields,r,y)}p.dirtyFields&&(t.dirtyFields=we(i,a)),m.state.next({isDirty:b(r,n),dirtyFields:t.dirtyFields,errors:t.errors,isValid:t.isValid})}else A(a,r,n)},q=(r,n)=>{A(t.errors,r,n),m.state.next({errors:t.errors})},k=(r,n,o,c)=>{const f=d(l,r);if(f){const u=d(a,r,F(o)?d(i,r):o);F(u)||c&&c.defaultChecked||n?A(a,r,n?u:Fe(f._f)):V(r,u),g.mount&&I()}},j=(r,n,o,c,f)=>{let u=!1;const y={name:r},_=d(t.touchedFields,r);if(p.isDirty){const C=t.isDirty;t.isDirty=y.isDirty=b(),u=C!==y.isDirty}if(p.dirtyFields&&(!o||c)){const C=d(t.dirtyFields,r);re(d(i,r),n)?O(t.dirtyFields,r):A(t.dirtyFields,r,!0),y.dirtyFields=t.dirtyFields,u=u||C!==d(t.dirtyFields,r)}return o&&!_&&(A(t.touchedFields,r,o),y.touchedFields=t.touchedFields,u=u||p.touchedFields&&_!==o),u&&f&&m.state.next(y),u?y:{}},ue=(r,n,o,c)=>{const f=d(t.errors,r),u=p.isValid&&oe(n)&&t.isValid!==n;if(e.delayError&&o?(E=se(()=>q(r,o)),E(e.delayError)):(clearTimeout(S),E=null,o?A(t.errors,r,o):O(t.errors,r)),(o?!re(f,o):f)||!B(c)||u){const y={...c,...u&&oe(n)?{isValid:n}:{},errors:t.errors,name:r};t={...t,...y},m.state.next(y)}R[r]--,p.isValidating&&!Object.values(R).some(y=>y)&&(m.state.next({isValidating:!1}),R={})},z=async r=>s.resolver?await s.resolver({...a},s.context,Ct(r||h.mount,l,s.criteriaMode,s.shouldUseNativeValidation)):{},X=async r=>{const{errors:n}=await z();if(r)for(const o of r){const c=d(n,o);c?A(t.errors,o,c):O(t.errors,o)}else t.errors=n;return n},N=async(r,n,o={valid:!0})=>{for(const c in r){const f=r[c];if(f){const{_f:u,...y}=f;if(u){const _=h.array.has(u.name),C=await je(f,d(a,u.name),K,s.shouldUseNativeValidation,_);if(C[u.name]&&(o.valid=!1,n))break;!n&&(d(C,u.name)?_?wt(t.errors,C,u.name):A(t.errors,u.name,C[u.name]):O(t.errors,u.name))}y&&await N(y,n,o)}}return o.valid},ce=()=>{for(const r of h.unMount){const n=d(l,r);n&&(n._f.refs?n._f.refs.every(o=>!_e(o)):!_e(n._f.ref))&&xe(r)}h.unMount=new Set},b=(r,n)=>(r&&n&&A(a,r,n),!re(fe(),i)),x=(r,n,o)=>{const c={...g.mount?a:F(n)?i:W(r)?{[r]:n}:n};return Et(r,h,c,o)},w=r=>ae(d(g.mount?a:i,r,e.shouldUnregister?d(i,r,[]):[])),V=(r,n,o={})=>{const c=d(l,r);let f=n;if(c){const u=c._f;u&&(!u.disabled&&A(a,r,st(n,u)),f=De&&Ve(u.ref)&&T(n)?"":n,tt(u.ref)?[...u.ref.options].forEach(y=>y.selected=f.includes(y.value)):u.refs?le(u.ref)?u.refs.length>1?u.refs.forEach(y=>(!y.defaultChecked||!y.disabled)&&(y.checked=Array.isArray(f)?!!f.find(_=>_===y.value):f===y.value)):u.refs[0]&&(u.refs[0].checked=!!f):u.refs.forEach(y=>y.checked=y.value===f):Oe(u.ref)?u.ref.value="":(u.ref.value=f,u.ref.type||m.watch.next({name:r})))}(o.shouldDirty||o.shouldTouch)&&j(r,f,o.shouldTouch,o.shouldDirty,!0),o.shouldValidate&&Y(r)},P=(r,n,o)=>{for(const c in n){const f=n[c],u=`${r}.${c}`,y=d(l,u);(h.array.has(r)||!ve(f)||y&&!y._f)&&!te(f)?P(u,f,o):V(u,f,o)}},M=(r,n,o={})=>{const c=d(l,r),f=h.array.has(r),u=Q(n);A(a,r,u),f?(m.array.next({name:r,values:a}),(p.isDirty||p.dirtyFields)&&o.shouldDirty&&(t.dirtyFields=we(i,a),m.state.next({name:r,dirtyFields:t.dirtyFields,isDirty:b(r,u)}))):c&&!c._f&&!T(u)?P(r,u,o):V(r,u,o),He(r,h)&&m.state.next({}),m.watch.next({name:r})},ie=async r=>{const n=r.target;let o=n.name;const c=d(l,o);if(c){let f,u;const y=n.type?Fe(c._f):vt(r),_=r.type===Pe.BLUR||r.type===Pe.FOCUS_OUT,C=!Ot(c._f)&&!s.resolver&&!d(t.errors,o)&&!c._f.deps||Tt(_,d(t.touchedFields,o),t.isSubmitted,L,$),de=He(o,h,_);A(a,o,y),_?(c._f.onBlur&&c._f.onBlur(r),E&&E(0)):c._f.onChange&&c._f.onChange(r);const pe=j(o,y,_,!1),ct=!B(pe)||de;if(!_&&m.watch.next({name:o,type:r.type}),C)return p.isValid&&I(),ct&&m.state.next({name:o,...de?{}:pe});if(!_&&de&&m.state.next({}),R[o]=R[o]?R[o]+1:1,m.state.next({isValidating:!0}),s.resolver){const{errors:Ie}=await z([o]),ft=Je(t.errors,l,o),Me=Je(Ie,l,ft.name||o);f=Me.error,o=Me.name,u=B(Ie)}else f=(await je(c,d(a,o),K,s.shouldUseNativeValidation))[o],I();c._f.deps&&Y(c._f.deps),ue(o,u,f,pe)}},Y=async(r,n={})=>{let o,c;const f=Ae(r);if(m.state.next({isValidating:!0}),s.resolver){const u=await X(F(r)?r:f);o=B(u),c=r?!f.some(y=>d(u,y)):o}else r?(c=(await Promise.all(f.map(async u=>{const y=d(l,u);return await N(y&&y._f?{[u]:y}:y)}))).every(Boolean),!(!c&&!t.isValid)&&I()):c=o=await N(l);return m.state.next({...!W(r)||p.isValid&&o!==t.isValid?{}:{name:r},...s.resolver||!r?{isValid:o}:{},errors:t.errors,isValidating:!1}),n.shouldFocus&&!c&&Se(l,u=>u&&d(t.errors,u),r?f:h.mount),c},fe=r=>{const n={...i,...g.mount?a:{}};return F(r)?n:W(r)?d(n,r):r.map(o=>d(n,o))},Re=(r,n)=>({invalid:!!d((n||t).errors,r),isDirty:!!d((n||t).dirtyFields,r),isTouched:!!d((n||t).touchedFields,r),error:d((n||t).errors,r)}),it=r=>{r?Ae(r).forEach(n=>O(t.errors,n)):t.errors={},m.state.next({errors:t.errors})},nt=(r,n,o)=>{const c=(d(l,r,{_f:{}})._f||{}).ref;A(t.errors,r,{...n,ref:c}),m.state.next({name:r,errors:t.errors,isValid:!1}),o&&o.shouldFocus&&c&&c.focus&&c.focus()},ot=(r,n)=>he(r)?m.watch.subscribe({next:o=>r(x(void 0,n),o)}):x(r,n,!0),xe=(r,n={})=>{for(const o of r?Ae(r):h.mount)h.mount.delete(o),h.array.delete(o),d(l,o)&&(n.keepValue||(O(l,o),O(a,o)),!n.keepError&&O(t.errors,o),!n.keepDirty&&O(t.dirtyFields,o),!n.keepTouched&&O(t.touchedFields,o),!s.shouldUnregister&&!n.keepDefaultValue&&O(i,o));m.watch.next({}),m.state.next({...t,...n.keepDirty?{isDirty:b()}:{}}),!n.keepIsValid&&I()},ke=(r,n={})=>{let o=d(l,r);const c=oe(n.disabled);return A(l,r,{...o||{},_f:{...o&&o._f?o._f:{ref:{name:r}},name:r,mount:!0,...n}}),h.mount.add(r),o?c&&A(a,r,n.disabled?void 0:d(a,r,Fe(o._f))):k(r,!0,n.value),{...c?{disabled:n.disabled}:{},...s.shouldUseNativeValidation?{required:!!n.required,min:ne(n.min),max:ne(n.max),minLength:ne(n.minLength),maxLength:ne(n.maxLength),pattern:ne(n.pattern)}:{},name:r,onChange:ie,onBlur:ie,ref:f=>{if(f){ke(r,n),o=d(l,r);const u=F(f.value)&&f.querySelectorAll&&f.querySelectorAll("input,select,textarea")[0]||f,y=Vt(u),_=o._f.refs||[];if(y?_.find(C=>C===u):u===o._f.ref)return;A(l,r,{_f:{...o._f,...y?{refs:[..._.filter(_e),u,...Array.isArray(d(i,r))?[{}]:[]],ref:{type:u.type,name:r}}:{ref:u}}}),k(r,!1,void 0,u)}else o=d(l,r,{}),o._f&&(o._f.mount=!1),(s.shouldUnregister||n.shouldUnregister)&&!(xt(h.array,r)&&g.action)&&h.unMount.add(r)}}},Le=()=>s.shouldFocusError&&Se(l,r=>r&&d(t.errors,r),h.mount),lt=(r,n)=>async o=>{o&&(o.preventDefault&&o.preventDefault(),o.persist&&o.persist());let c=!0,f=Q(a);m.state.next({isSubmitting:!0});try{if(s.resolver){const{errors:u,values:y}=await z();t.errors=u,f=y}else await N(l);B(t.errors)?(m.state.next({errors:{},isSubmitting:!0}),await r(f,o)):(n&&await n({...t.errors},o),Le())}catch(u){throw c=!1,u}finally{t.isSubmitted=!0,m.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:B(t.errors)&&c,submitCount:t.submitCount+1,errors:t.errors})}},at=(r,n={})=>{d(l,r)&&(F(n.defaultValue)?M(r,d(i,r)):(M(r,n.defaultValue),A(i,r,n.defaultValue)),n.keepTouched||O(t.touchedFields,r),n.keepDirty||(O(t.dirtyFields,r),t.isDirty=n.defaultValue?b(r,d(i,r)):b()),n.keepError||(O(t.errors,r),p.isValid&&I()),m.state.next({...t}))},ut=(r,n={})=>{const o=r||i,c=Q(o),f=r&&!B(r)?c:i;if(n.keepDefaultValues||(i=o),!n.keepValues){if(n.keepDirtyValues)for(const u of h.mount)d(t.dirtyFields,u)?A(f,u,d(a,u)):M(u,d(f,u));else{if(De&&F(r))for(const u of h.mount){const y=d(l,u);if(y&&y._f){const _=Array.isArray(y._f.refs)?y._f.refs[0]:y._f.ref;if(Ve(_)){const C=_.closest("form");if(C){C.reset();break}}}}l={}}a=e.shouldUnregister?n.keepDefaultValues?Q(i):{}:c,m.array.next({values:f}),m.watch.next({values:f})}h={mount:new Set,unMount:new Set,array:new Set,watch:new Set,watchAll:!1,focus:""},g.mount=!p.isValid||!!n.keepIsValid,g.watch=!!e.shouldUnregister,m.state.next({submitCount:n.keepSubmitCount?t.submitCount:0,isDirty:n.keepDirty||n.keepDirtyValues?t.isDirty:!!(n.keepDefaultValues&&!re(r,i)),isSubmitted:n.keepIsSubmitted?t.isSubmitted:!1,dirtyFields:n.keepDirty||n.keepDirtyValues?t.dirtyFields:n.keepDefaultValues&&r?we(i,r):{},touchedFields:n.keepTouched?t.touchedFields:{},errors:n.keepErrors?t.errors:{},isSubmitting:!1,isSubmitSuccessful:!1})};return{control:{register:ke,unregister:xe,getFieldState:Re,_executeSchema:z,_focusError:Le,_getWatch:x,_getDirty:b,_updateValid:I,_removeUnmounted:ce,_updateFieldArray:U,_getFieldArray:w,_subjects:m,_proxyFormState:p,get _fields(){return l},get _formValues(){return a},get _stateFlags(){return g},set _stateFlags(r){g=r},get _defaultValues(){return i},get _names(){return h},set _names(r){h=r},get _formState(){return t},set _formState(r){t=r},get _options(){return s},set _options(r){s={...s,...r}}},trigger:Y,register:ke,handleSubmit:lt,watch:ot,setValue:M,getValues:fe,reset:(r,n)=>ut(he(r)?r(a):r,n),resetField:at,clearErrors:it,unregister:xe,setError:nt,setFocus:(r,n={})=>{const o=d(l,r),c=o&&o._f;if(c){const f=c.refs?c.refs[0]:c.ref;f.focus&&(f.focus(),n.shouldSelect&&f.select())}},getFieldState:Re}}function Mt(e={}){const s=v.useRef(),[t,l]=v.useState({isDirty:!1,isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},errors:{},defaultValues:e.defaultValues});s.current||(s.current={...It(e),formState:t});const i=s.current.control;return i._options=e,At({subject:i._subjects.state,callback:v.useCallback(a=>{pt(a,i._proxyFormState,!0)&&(i._formState={...i._formState,...a},l({...i._formState}))},[i])}),v.useEffect(()=>{i._stateFlags.mount||(i._proxyFormState.isValid&&i._updateValid(),i._stateFlags.mount=!0),i._stateFlags.watch&&(i._stateFlags.watch=!1,i._subjects.state.next({})),i._removeUnmounted()}),v.useEffect(()=>{t.submitCount&&i._focusError()},[i,t.submitCount]),s.current.formState=kt(t,i),s.current}var Bt=(e=>(e.formgroup="formgroup",e.checkbox="checkbox",e.radiobutton="radiobutton",e.textarea="textarea",e.input="input",e.select="select",e))(Bt||{});const Vr=e=>{const{exampleType:s="formgroup"}=e,{register:t,handleSubmit:l,formState:{errors:i}}=Mt(),a="field1",g="field2",h="field3",E="field4",S="field5",R="field6",p=i.field1||i.field2||i.field3||i.field4||i.field5||i.field6,m="Du m\xE5 velge et alternativ",$="Du m\xE5 velge to alternativ",L="Det kan ikke legges inn mer enn 40 tegn",K="Du m\xE5 skrive noe her",se='Du m\xE5 velge "Option 2"',I=k=>k.length>=2||$,U=k=>k.toString()==="Option 2"||se,q=()=>{if(s==="formgroup"){const k=[v.createElement(J,{key:0,inputId:"checkbox1",label:"Checkbox 1",...t(a,{required:m})}),v.createElement(J,{key:1,inputId:"checkbox2",label:"Checkbox 2",...t(a,{required:m})}),v.createElement(J,{key:2,inputId:"checkbox3",label:"Checkbox 3",...t(a,{required:m})})];return[v.createElement(Z,{key:0,title:"Gruppe tittel",legend:"Velg minst en",error:i.field1?i.field1.message:void 0,variant:e.variant},v.createElement(gt,{maxColumns:ht.two},k.map(j=>j))),v.createElement(Z,{key:1,legend:"Velg minst to",error:i.field2?i.field2.message:void 0,variant:e.variant},v.createElement(J,{inputId:"checkbox4",label:"Checkbox 4",...t(g,{validate:I})}),v.createElement(J,{inputId:"checkbox5",label:"Checkbox 5",...t(g,{validate:I})}),v.createElement(J,{inputId:"checkbox6",label:"Checkbox 6",...t(g,{validate:I})})),v.createElement(Z,{key:2,legend:"Velg en",error:i.field3?i.field3.message:void 0,variant:e.variant},v.createElement(ye,{inputId:"radiobutton1",label:"Radiobutton 1",...t(h,{required:m})}),v.createElement(ye,{inputId:"radiobutton2",label:"Radiobutton 2",...t(h,{required:m})}),v.createElement(ye,{inputId:"radiobutton3",label:"Radiobutton 3",...t(h,{required:m})})),v.createElement(Z,{key:3,error:i.field4?i.field4.message:void 0},v.createElement(Be,{defaultValue:`Dette er en test
2
2
 
3
3
  Hello
4
4
 
5
5
  test
6
6
 
7
- test test`,grow:!0,maxCharacters:40,minRows:5,label:"Skriv din historie her",textareaId:"textarea1",name:l,ref:t({maxLength:{value:40,message:k}})})),v.createElement(ye,{name:b,key:4,variant:e.variant,error:o[b]?o[b].message:void 0},v.createElement(cr,{label:"Skriv inn din tekst",placeholder:"Skriv noe!",icon:or,ref:t({required:M})})),v.createElement(ye,{name:L,key:5,variant:e.variant,error:o[L]?o[L].message:void 0},v.createElement(ur,{label:"Skriv inn din tekst",ref:t({validate:P})},v.createElement("option",{value:"Option 1"},"Option 1"),v.createElement("option",{value:"Option 2"},"Option 2"),v.createElement("option",{value:"Option 3"},"Option 3")))];if(n==="checkbox")return v.createElement(ce,{name:u,inputId:"checkbox1",label:"Checkbox 1",errorText:o[u]?o[u].message:void 0,variant:e.variant,ref:t({required:w})});if(n==="radiobutton")return v.createElement(Ce,{name:y,inputId:"radiobutton1",label:"Radiobutton 1",error:o[y]?o[y].message:void 0,errorText:o[y]?o[y].message:void 0,variant:e.variant,ref:t({required:w})});if(n==="textarea")return v.createElement(sr,{defaultValue:`Dette er min historie
7
+ test test`,grow:!0,maxCharacters:40,minRows:5,label:"Skriv din historie her",textareaId:"textarea1",...t(E,{maxLength:{value:40,message:L}})})),v.createElement(Z,{key:4,variant:e.variant,error:i.field5?i.field5.message:void 0},v.createElement(Ue,{label:"Skriv inn din tekst",placeholder:"Skriv noe!",icon:qe,...t(S,{required:K})})),v.createElement(Z,{key:5,variant:e.variant,error:i.field6?i.field6.message:void 0},v.createElement(Ne,{label:"Skriv inn din tekst",...t(R,{validate:U})},v.createElement("option",{value:"Option 1"},"Option 1"),v.createElement("option",{value:"Option 2"},"Option 2"),v.createElement("option",{value:"Option 3"},"Option 3")))]}else{if(s==="checkbox")return v.createElement(J,{inputId:"checkbox1",label:"Checkbox 1",errorText:i.field1?i.field1.message:void 0,variant:e.variant,...t(a,{required:m})});if(s==="radiobutton")return v.createElement(ye,{inputId:"radiobutton1",label:"Radiobutton 1",errorText:i.field3?i.field3.message:void 0,variant:e.variant,...t(h,{required:m})});if(s==="textarea")return v.createElement(Be,{defaultValue:`Dette er min historie
8
8
 
9
9
  Hello
10
10
 
11
- test`,grow:!0,maxCharacters:40,minRows:5,errorText:o[l]?o[l].message:void 0,label:"Skriv din historie her",textareaId:"textarea1",name:l,ref:t({maxLength:{value:40,message:k}})});if(n==="input")return v.createElement(cr,{inputId:"input1",label:"Skriv inn din tekst",placeholder:"Skriv noe!",name:b,errorText:o[b]?o[b].message:void 0,icon:or,ref:t({required:M})});if(n==="select")return v.createElement(ur,{name:L,errorText:o[L]?o[L].message:void 0,label:"Skriv inn din tekst",ref:t({validate:P})},v.createElement("option",{value:"Option 1"},"Option 1"),v.createElement("option",{value:"Option 2"},"Option 2"),v.createElement("option",{value:"Option 3"},"Option 3"))};return v.createElement("form",{onSubmit:c(h=>{!Kr()&&console.log(h)})},v.createElement(Gr,{variant:e.variant,errorSummary:I?"Sjekk at alt er riktig utfylt":void 0},V()),v.createElement(_r,{type:"submit"},"Send inn"))};export{en as FormExample,lt as FormExampleVariants,en as default};
11
+ test`,grow:!0,maxCharacters:40,minRows:5,errorText:i.field4?i.field4.message:void 0,label:"Skriv din historie her",textareaId:"textarea1",...t(E,{maxLength:{value:40,message:L}})});if(s==="input")return v.createElement(Ue,{inputId:"input1",label:"Skriv inn din tekst",placeholder:"Skriv noe!",errorText:i.field5?i.field5.message:void 0,icon:qe,...t(S,{required:K})});if(s==="select")return v.createElement(Ne,{errorText:i.field6?i.field6.message:void 0,label:"Skriv inn din tekst",...t(R,{validate:U})},v.createElement("option",{value:"Option 1"},"Option 1"),v.createElement("option",{value:"Option 2"},"Option 2"),v.createElement("option",{value:"Option 3"},"Option 3"))}};return v.createElement("form",{onSubmit:l(k=>{!mt()&&console.log(k)})},v.createElement(dt,{variant:e.variant,errorSummary:p?"Sjekk at alt er riktig utfylt":void 0},q()),v.createElement(yt,{type:"submit"},"Send inn"))};export{Vr as FormExample,Bt as FormExampleVariants,Vr as default};
12
12
  //# sourceMappingURL=index.js.map