@fremtind/jokul 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/build/NativeSelect-BxgwmRDc.cjs +2 -0
  2. package/build/{NativeSelect-DSmX3GZo.cjs.map → NativeSelect-BxgwmRDc.cjs.map} +1 -1
  3. package/build/NativeSelect-DwtOOfyt.js +2 -0
  4. package/build/{NativeSelect-EidDABsT.js.map → NativeSelect-DwtOOfyt.js.map} +1 -1
  5. package/build/build-stats.html +1 -1
  6. package/build/cjs/components/index.js +1 -1
  7. package/build/cjs/components/popover/Popover.js +2 -0
  8. package/build/cjs/components/popover/Popover.js.map +1 -0
  9. package/build/cjs/components/popover/index.js +2 -0
  10. package/build/cjs/components/popover/index.js.map +1 -0
  11. package/build/cjs/components/popover/utils.js +2 -0
  12. package/build/cjs/components/popover/utils.js.map +1 -0
  13. package/build/cjs/components/select/NativeSelect.js +1 -1
  14. package/build/cjs/components/select/Select.js +1 -1
  15. package/build/cjs/components/select/index.js +1 -1
  16. package/build/cjs/components/tooltip/TooltipContent.js +1 -1
  17. package/build/cjs/components/tooltip/TooltipContent.js.map +1 -1
  18. package/build/cjs/index.js +1 -1
  19. package/build/components/index.d.ts +2 -0
  20. package/build/components/popover/Popover.d.ts +114 -0
  21. package/build/components/popover/index.d.ts +1 -0
  22. package/build/components/popover/utils.d.ts +4 -0
  23. package/build/es/components/index.js +1 -1
  24. package/build/es/components/popover/Popover.js +2 -0
  25. package/build/es/components/popover/Popover.js.map +1 -0
  26. package/build/es/components/popover/index.js +2 -0
  27. package/build/es/components/popover/index.js.map +1 -0
  28. package/build/es/components/popover/utils.js +2 -0
  29. package/build/es/components/popover/utils.js.map +1 -0
  30. package/build/es/components/select/NativeSelect.js +1 -1
  31. package/build/es/components/select/Select.js +1 -1
  32. package/build/es/components/select/index.js +1 -1
  33. package/build/es/components/tooltip/TooltipContent.js +1 -1
  34. package/build/es/components/tooltip/TooltipContent.js.map +1 -1
  35. package/build/es/index.js +1 -1
  36. package/package.json +8 -6
  37. package/src/components/button/styles/button.css +4 -4
  38. package/src/components/button/styles/button.min.css +1 -1
  39. package/src/components/card/styles/card.min.css +1 -1
  40. package/src/components/checkbox/styles/checkbox.css +4 -4
  41. package/src/components/checkbox/styles/checkbox.min.css +1 -1
  42. package/src/components/combobox/styles/combobox.min.css +1 -1
  43. package/src/components/cookie-consent/styles/cookie-consent.min.css +1 -1
  44. package/src/components/datepicker/styles/datepicker.min.css +1 -1
  45. package/src/components/icon/styles/icon.min.css +1 -1
  46. package/src/components/link/styles/link.min.css +1 -1
  47. package/src/components/list/styles/list.min.css +1 -1
  48. package/src/components/loader/styles/loader.css +6 -6
  49. package/src/components/loader/styles/loader.min.css +1 -1
  50. package/src/components/loader/styles/skeleton-loader.css +5 -5
  51. package/src/components/loader/styles/skeleton-loader.min.css +1 -1
  52. package/src/components/popover/styles/_index.scss +1 -0
  53. package/src/components/popover/styles/popover.css +10 -0
  54. package/src/components/popover/styles/popover.min.css +1 -0
  55. package/src/components/popover/styles/popover.scss +9 -0
  56. package/src/components/radio-button/styles/radio-button.css +2 -2
  57. package/src/components/radio-button/styles/radio-button.min.css +1 -1
  58. package/src/components/select/styles/select.min.css +1 -1
  59. package/src/components/tag/styles/tag.min.css +1 -1
  60. package/src/components/text-input/styles/text-input.min.css +1 -1
  61. package/src/components/tooltip/styles/tooltip.min.css +1 -1
  62. package/src/core/styles/core.min.css +1 -1
  63. package/src/core/styles/vind.min.css +1 -1
  64. package/build/NativeSelect-DSmX3GZo.cjs +0 -2
  65. package/build/NativeSelect-EidDABsT.js +0 -2
  66. package/build/components/tooltip/Tooltip.d.ts +0 -122
@@ -1,2 +0,0 @@
1
- "use strict";const e=require("react/jsx-runtime"),n=require("./clsx-E3yX_9sL.cjs"),o=require("react");require("./cjs/hooks/useScreen/useScreen.js");const s=require("./cjs/hooks/useId/useId.js");require("./cjs/components/icon/Icon.js");const t=require("./cjs/components/icon/icons/animated/ArrowVerticalAnimated.js");require("./cjs/components/icon/icons/animated/ArrowHorizontalAnimated.js"),require("./cjs/components/icon/icons/animated/PlusRemoveAnimated.js"),require("./cjs/components/icon/icons/ArrowDownIcon.js"),require("./cjs/components/icon/icons/ArrowLeftIcon.js"),require("./cjs/components/icon/icons/ArrowNorthEastIcon.js"),require("./cjs/components/icon/icons/ArrowRightIcon.js"),require("./cjs/components/icon/icons/ArrowUpIcon.js"),require("./cjs/components/icon/icons/CalendarIcon.js"),require("./cjs/components/icon/icons/CheckIcon.js"),require("./cjs/components/icon/icons/ChevronDownIcon.js"),require("./cjs/components/icon/icons/ChevronLeftIcon.js"),require("./cjs/components/icon/icons/ChevronRightIcon.js"),require("./cjs/components/icon/icons/ChevronUpIcon.js"),require("./cjs/components/icon/icons/CloseIcon.js"),require("./cjs/components/icon/icons/CopyIcon.js"),require("./cjs/components/icon/icons/DotsIcon.js"),require("./cjs/components/icon/icons/DragIcon.js"),require("./cjs/components/icon/icons/ErrorIcon.js"),require("./cjs/components/icon/icons/GreenCheckIcon.js"),require("./cjs/components/icon/icons/HamburgerIcon.js"),require("./cjs/components/icon/icons/InfoIcon.js"),require("./cjs/components/icon/icons/LinkIcon.js"),require("./cjs/components/icon/icons/PlusIcon.js"),require("./cjs/components/icon/icons/QuestionIcon.js"),require("./cjs/components/icon/icons/RedCrossIcon.js"),require("./cjs/components/icon/icons/SearchIcon.js"),require("./cjs/components/icon/icons/SuccessIcon.js"),require("./cjs/components/icon/icons/WarningIcon.js"),require("./cjs/components/icon/icons/MinusIcon.js"),require("./cjs/components/icon/icons/ThumbDownIcon.js"),require("./cjs/components/icon/icons/ThumbUpIcon.js"),require("./cjs/components/icon/icons/TrashCanIcon.js"),require("./cjs/components/icon/icons/PenIcon.js"),require("./cjs/components/button/Button.js"),require("./cjs/components/card/Card.js"),require("./cjs/components/card/CardImage.js"),require("./cjs/components/card/NavCard.js"),require("./cjs/components/checkbox/Checkbox.js"),require("./cjs/components/combobox/Combobox.js"),require("./cjs/components/cookie-consent/CookieConsentContext.js"),require("react-dom"),require("./cjs/components/modal/Modal.js"),require("react-a11y-dialog"),require("./cjs/components/list/List.js"),require("./cjs/components/list/ListItem.js"),require("./cjs/components/datepicker/DatePicker.js"),require("./cjs/components/icon-button/IconButton.js"),require("./cjs/components/tooltip/Tooltip.js"),require("./cjs/components/tooltip/TooltipContent.js"),require("./cjs/components/tooltip/TooltipTrigger.js");const c=require("./cjs/components/input-group/InputGroup.js");require("./cjs/components/link/Link.js"),require("./cjs/components/link/NavLink.js"),require("./cjs/components/link-list/LinkList.js"),require("./cjs/components/radio-button/RadioButton.js"),require("./cjs/components/radio-button/radioGroupContext.js"),require("./cjs/components/radio-button/BaseRadioButton.js");const r=require("./cjs/hooks/useAnimatedHeight/useAnimatedHeight.js"),i=require("./cjs/hooks/usePreviousValue/usePreviousValue.js"),l=require("./cjs/hooks/useListNavigation/useListNavigation.js");require("./cjs/components/tag/Tag.js"),require("./cjs/components/text-input/BaseTextArea.js"),require("./cjs/components/text-input/BaseTextInput.js"),require("./cjs/components/text-input/TextArea.js"),require("./cjs/components/text-input/TextInput.js"),require("./cjs/utilities/polymorphism/SlotComponent.js");const a=require("./cjs/utilities/valuePair.js"),u=require("./cjs/components/select/select-utils.js"),p=()=>{},j=o.forwardRef(((j,d)=>{const{id:m,name:v,items:b,value:f,label:k,labelProps:q,onChange:h,onBlur:g,onFocus:w,className:x,helpLabel:y,errorLabel:I,invalid:_,searchable:C=!1,inline:L=!1,defaultPrompt:P="Velg",density:N,width:D,maxShownOptions:A=5,style:E,...S}=j,T=s.useId(m||"jkl-select",{generateSuffix:!m}),$=`${T}_label`,V=`${T}_button`,R=`${T}_search-input`,[B,F]=o.useState(!1),M=o.useCallback((()=>{F((e=>!e))}),[]),G=!!C,H=G&&B,[K,U]=o.useState(""),O=o.useCallback((e=>!!e.label.toLowerCase().includes(K.toLowerCase())||"function"==typeof C&&C(K,e)),[C,K]),z=o.useMemo((()=>b.map(a.getValuePair).map((e=>{const n=!G||""===K||O(e);return{...e,visible:n}}))),[b,G,K,O]),Q=o.useMemo((()=>!(typeof f>"u")&&b.some((e=>"string"==typeof e?e===f:e.value===f))),[f,b]),[W,J]=o.useState(Q&&void 0!==f?f:""),X=""!==W,Y=o.useMemo((()=>{var e;return(null==(e=z.find((e=>e.value===W)))?void 0:e.label)||P}),[z,W,P]),Z=o.useRef(null),ee=o.useCallback((e=>{Z.current=e,d&&("function"==typeof d?d(e):d.current=e),e&&J(e.value)}),[Z,d]),ne=i.usePreviousValue(f);o.useEffect((()=>{f!==ne&&J(typeof f>"u"||!Q?"":f)}),[J,f,ne,Q]);const oe=o.useCallback((e=>{const n=e.value;U(""),J(n),M()}),[U,J,M]),se=i.usePreviousValue(W);o.useEffect((()=>{typeof se>"u"||se===W||W===f||(h&&h({type:"change",target:{name:v,value:W}}),Z.current&&Z.current.dispatchEvent(new Event("change",{bubbles:!0})))}),[h,v,f,W,se]);const te=o.useRef(null),ce=o.useRef(!1),re=o.useRef(null),ie=o.useRef(null),le=o.useCallback(((e,n)=>{if(e&&!G){const e=n.current;e&&u.focusSelected(e,W)}else e?re.current&&re.current.focus():ce.current&&ie.current&&ie.current.focus()}),[G,W]),[ae]=r.useAnimatedHeight(B,{onFirstVisible:le,onTransitionEnd:le});l.useListNavigation({ref:ae});const ue=o.useCallback((e=>{var n;const o=te.current;o&&o.contains(e.relatedTarget)||(G&&U(""),g&&(g({type:"blur",target:{name:v,value:W}}),null==(n=Z.current)||n.dispatchEvent(new Event("focusout",{bubbles:!0}))),ce.current=!1,F(!1))}),[g,G,v,W]),pe=o.useCallback((()=>{ce.current||(w&&w({type:"change",target:{name:v,value:W}}),ce.current=!0)}),[w,W,v]),je=o.useCallback((e=>{e.target.focus({preventScroll:!0})}),[]);o.useEffect((()=>{const e=Z.current,n=re.current,o=ie.current,s=te.current;return null==e||e.addEventListener("focus",(()=>{H?null==n||n.focus():null==o||o.focus()})),null==e||e.addEventListener("blur",(function(e){s&&s.contains(e.relatedTarget)&&e.preventDefault()})),()=>{null==e||e.removeEventListener("focus",(()=>{H?null==n||n.focus():null==o||o.focus()})),null==e||e.removeEventListener("blur",(function(e){s&&s.contains(e.relatedTarget)&&e.preventDefault()}))}}),[H]);const de=o.useCallback((e=>{"ArrowDown"!==e.key&&" "!==e.key||B?"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),F(!1)):(e.preventDefault(),e.stopPropagation(),F(!0))}),[F,B]),me=o.useCallback((e=>{if("ArrowDown"===e.key){e.preventDefault(),e.stopPropagation();const n=ae.current;n&&(G?u.focusSelected(n,void 0):u.focusSelected(n,W))}else if("Escape"===e.key)e.preventDefault(),e.stopPropagation(),F(!1);else if("Tab"!==e.key||e.shiftKey)"Enter"===e.key&&B&&(e.preventDefault(),e.stopPropagation());else{const n=ae.current;n&&(e.preventDefault(),e.stopPropagation(),u.focusSelected(n,W))}}),[F,ae,W,G,B]),ve=o.useCallback((e=>{if("Tab"===e.key)e.preventDefault(),e.stopPropagation(),e.shiftKey&&re.current?re.current.focus():ie.current&&(J(e.currentTarget.value),F(!1),ie.current.focus());else if("ArrowUp"===e.key&&ae.current&&re.current){const n=ae.current.querySelector('[role="option"]:not([hidden])');e.currentTarget.id===(null==n?void 0:n.id)&&re.current&&re.current.focus()}}),[F,ae]);return o.useEffect((()=>{const e=e=>{"Escape"===e.key&&B&&F(!1)};return typeof window<"u"&&B&&window.addEventListener("keydown",e),()=>{typeof window<"u"&&window.removeEventListener("keydown",e)}}),[F,B]),e.jsxs(e.Fragment,{children:[e.jsxs("select",{name:v,tabIndex:-1,"data-testid":"jkl-native-select",className:"jkl-sr-only","aria-hidden":!0,ref:ee,value:W,onChange:p,children:[e.jsx("option",{value:""})," ",z.map((n=>e.jsx("option",{hidden:!n.visible,value:n.value,children:n.label},`${T}-opt-${n.value}`)))]}),e.jsx(c.InputGroup,{ref:te,"data-testid":"jkl-select",className:n.clsx("jkl-select",x,{"jkl-select--inline":L,"jkl-select--open":B&&z.some((e=>e.visible)),"jkl-select--no-value":!X,"jkl-select--invalid":!!I||_}),...S,id:G?R:V,style:{"--jkl-select-max-shown-options":A,...E},density:N,label:k,labelProps:{id:$,srOnly:L,...q,htmlFor:G?R:V},helpLabel:y,errorLabel:I,render:o=>e.jsxs("div",{className:"jkl-select__outer-wrapper",style:{width:D},children:[G&&e.jsx("input",{...o,id:R,hidden:!H,ref:re,placeholder:"Søk",value:K,onChange:e=>U(e.target.value),"data-testid":"jkl-select__search-input",className:"jkl-select__search-input","aria-autocomplete":"list","aria-activedescendant":X?`${T}__${u.toLower(W)}`:void 0,"aria-controls":T,"aria-expanded":B,role:"combobox",onKeyDown:me,onBlur:ue,onFocus:pe,onClick:e=>{e.stopPropagation()}}),e.jsx("button",{...o,id:V,ref:ie,hidden:H,type:"button",name:`${v}-btn`,className:n.clsx("jkl-select__button",{"jkl-select__button--active-value":!!W}),"data-testid":"jkl-select__button","aria-label":`${Y||"Velg"},${k}`,"aria-expanded":B,"aria-controls":T,onBlur:ue,onFocus:pe,onKeyDown:de,onClick:M,onMouseDown:e=>{var n;e.preventDefault(),null==(n=ie.current)||n.focus()},children:Y}),e.jsx("div",{id:T,ref:ae,role:"listbox",className:"jkl-select__options-menu",hidden:!B||z.every((e=>!e.visible)),"aria-labelledby":$,tabIndex:-1,"data-focus":"controlled",children:z.map(((n,o)=>n.visible?e.jsxs("button",{hidden:!n.visible,type:"button",id:`${T}__${u.toLower(n.value)}`,className:"jkl-select__option","data-testid":"jkl-select__option","aria-selected":n.value===W,role:"option",value:n.value,"data-testautoid":`jkl-select__option-${o}`,onBlur:ue,onFocus:pe,onKeyDown:ve,onClick:e=>{e.preventDefault(),oe(n)},onMouseOver:je,children:[n.label,n.description?e.jsx("span",{className:"jkl-select__option-description",children:n.description}):null]},`${T}-${n.value}`):null))}),e.jsx(t.ArrowVerticalAnimated,{variant:"medium",pointingDown:!B,className:"jkl-select__arrow"})]})})]})}));j.displayName="Select";const d=o.forwardRef(((o,s)=>{const{label:r,className:i,density:l,errorLabel:u,helpLabel:p,inline:j,invalid:d,items:m,labelProps:v,placeholder:b="Velg",selectClassName:f,supportLabelProps:k,tooltipProps:q,value:h,width:g,...w}=o,x={label:r,density:l,errorLabel:u,helpLabel:p,labelProps:v,inline:j,supportLabelProps:k,tooltipProps:q};return e.jsx(c.InputGroup,{...x,"data-testid":"jkl-select",className:n.clsx("jkl-select",i,{"jkl-select--inline":j,"jkl-select--invalid":!!u||d}),render:o=>e.jsxs("div",{className:"jkl-select__outer-wrapper",style:{width:g},children:[e.jsxs("select",{ref:s,className:n.clsx("jkl-select__button",f,{"jkl-select__button--active-value":!!h}),defaultValue:h?void 0:"",value:h,...o,...w,children:[b&&!h&&e.jsx("option",{disabled:!0,value:"",children:b}),m.map(a.getValuePair).map((n=>e.jsx("option",{"data-testid":"jkl-select__option",className:"jkl-select__option",value:n.value,children:n.label},n.value)))]}),e.jsx(t.ArrowVerticalAnimated,{variant:"medium",pointingDown:!0,className:"jkl-select__arrow"})]})})}));d.displayName="NativeSelect",exports.NativeSelect=d,exports.Select=j;
2
- //# sourceMappingURL=NativeSelect-DSmX3GZo.cjs.map
@@ -1,2 +0,0 @@
1
- import{jsxs as e,Fragment as o,jsx as n}from"react/jsx-runtime";import{c as t}from"./clsx-BeLtu-UY.js";import{forwardRef as s,useState as i,useCallback as r,useMemo as c,useRef as a,useEffect as l}from"react";import"./es/hooks/useScreen/useScreen.js";import{useId as p}from"./es/hooks/useId/useId.js";import"./es/components/icon/Icon.js";import{ArrowVerticalAnimated as u}from"./es/components/icon/icons/animated/ArrowVerticalAnimated.js";import"./es/components/icon/icons/animated/ArrowHorizontalAnimated.js";import"./es/components/icon/icons/animated/PlusRemoveAnimated.js";import"./es/components/icon/icons/ArrowDownIcon.js";import"./es/components/icon/icons/ArrowLeftIcon.js";import"./es/components/icon/icons/ArrowNorthEastIcon.js";import"./es/components/icon/icons/ArrowRightIcon.js";import"./es/components/icon/icons/ArrowUpIcon.js";import"./es/components/icon/icons/CalendarIcon.js";import"./es/components/icon/icons/CheckIcon.js";import"./es/components/icon/icons/ChevronDownIcon.js";import"./es/components/icon/icons/ChevronLeftIcon.js";import"./es/components/icon/icons/ChevronRightIcon.js";import"./es/components/icon/icons/ChevronUpIcon.js";import"./es/components/icon/icons/CloseIcon.js";import"./es/components/icon/icons/CopyIcon.js";import"./es/components/icon/icons/DotsIcon.js";import"./es/components/icon/icons/DragIcon.js";import"./es/components/icon/icons/ErrorIcon.js";import"./es/components/icon/icons/GreenCheckIcon.js";import"./es/components/icon/icons/HamburgerIcon.js";import"./es/components/icon/icons/InfoIcon.js";import"./es/components/icon/icons/LinkIcon.js";import"./es/components/icon/icons/PlusIcon.js";import"./es/components/icon/icons/QuestionIcon.js";import"./es/components/icon/icons/RedCrossIcon.js";import"./es/components/icon/icons/SearchIcon.js";import"./es/components/icon/icons/SuccessIcon.js";import"./es/components/icon/icons/WarningIcon.js";import"./es/components/icon/icons/MinusIcon.js";import"./es/components/icon/icons/ThumbDownIcon.js";import"./es/components/icon/icons/ThumbUpIcon.js";import"./es/components/icon/icons/TrashCanIcon.js";import"./es/components/icon/icons/PenIcon.js";import"./es/components/button/Button.js";import"./es/components/card/Card.js";import"./es/components/card/CardImage.js";import"./es/components/card/NavCard.js";import"./es/components/checkbox/Checkbox.js";import"./es/components/combobox/Combobox.js";import"./es/components/cookie-consent/CookieConsentContext.js";import"react-dom";import"./es/components/modal/Modal.js";import"react-a11y-dialog";import"./es/components/list/List.js";import"./es/components/list/ListItem.js";import"./es/components/datepicker/DatePicker.js";import"./es/components/icon-button/IconButton.js";import"./es/components/tooltip/Tooltip.js";import"./es/components/tooltip/TooltipContent.js";import"./es/components/tooltip/TooltipTrigger.js";import{InputGroup as m}from"./es/components/input-group/InputGroup.js";import"./es/components/link/Link.js";import"./es/components/link/NavLink.js";import"./es/components/link-list/LinkList.js";import"./es/components/radio-button/RadioButton.js";import"./es/components/radio-button/radioGroupContext.js";import"./es/components/radio-button/BaseRadioButton.js";import{useAnimatedHeight as d}from"./es/hooks/useAnimatedHeight/useAnimatedHeight.js";import{usePreviousValue as j}from"./es/hooks/usePreviousValue/usePreviousValue.js";import{useListNavigation as v}from"./es/hooks/useListNavigation/useListNavigation.js";import"./es/components/tag/Tag.js";import"./es/components/text-input/BaseTextArea.js";import"./es/components/text-input/BaseTextInput.js";import"./es/components/text-input/TextArea.js";import"./es/components/text-input/TextInput.js";import"./es/utilities/polymorphism/SlotComponent.js";import{getValuePair as b}from"./es/utilities/valuePair.js";import{focusSelected as f,toLower as h}from"./es/components/select/select-utils.js";const k=()=>{},g=s(((s,g)=>{const{id:w,name:y,items:I,value:_,label:C,labelProps:L,onChange:x,onBlur:N,onFocus:P,className:D,helpLabel:A,errorLabel:T,invalid:E,searchable:S=!1,inline:$=!1,defaultPrompt:B="Velg",density:V,width:R,maxShownOptions:F=5,style:H,...K}=s,M=p(w||"jkl-select",{generateSuffix:!w}),G=`${M}_label`,U=`${M}_button`,O=`${M}_search-input`,[q,z]=i(!1),Q=r((()=>{z((e=>!e))}),[]),W=!!S,J=W&&q,[X,Y]=i(""),Z=r((e=>!!e.label.toLowerCase().includes(X.toLowerCase())||"function"==typeof S&&S(X,e)),[S,X]),ee=c((()=>I.map(b).map((e=>{const o=!W||""===X||Z(e);return{...e,visible:o}}))),[I,W,X,Z]),oe=c((()=>!(typeof _>"u")&&I.some((e=>"string"==typeof e?e===_:e.value===_))),[_,I]),[ne,te]=i(oe&&void 0!==_?_:""),se=""!==ne,ie=c((()=>{var e;return(null==(e=ee.find((e=>e.value===ne)))?void 0:e.label)||B}),[ee,ne,B]),re=a(null),ce=r((e=>{re.current=e,g&&("function"==typeof g?g(e):g.current=e),e&&te(e.value)}),[re,g]),ae=j(_);l((()=>{_!==ae&&te(typeof _>"u"||!oe?"":_)}),[te,_,ae,oe]);const le=r((e=>{const o=e.value;Y(""),te(o),Q()}),[Y,te,Q]),pe=j(ne);l((()=>{typeof pe>"u"||pe===ne||ne===_||(x&&x({type:"change",target:{name:y,value:ne}}),re.current&&re.current.dispatchEvent(new Event("change",{bubbles:!0})))}),[x,y,_,ne,pe]);const ue=a(null),me=a(!1),de=a(null),je=a(null),ve=r(((e,o)=>{if(e&&!W){const e=o.current;e&&f(e,ne)}else e?de.current&&de.current.focus():me.current&&je.current&&je.current.focus()}),[W,ne]),[be]=d(q,{onFirstVisible:ve,onTransitionEnd:ve});v({ref:be});const fe=r((e=>{var o;const n=ue.current;n&&n.contains(e.relatedTarget)||(W&&Y(""),N&&(N({type:"blur",target:{name:y,value:ne}}),null==(o=re.current)||o.dispatchEvent(new Event("focusout",{bubbles:!0}))),me.current=!1,z(!1))}),[N,W,y,ne]),he=r((()=>{me.current||(P&&P({type:"change",target:{name:y,value:ne}}),me.current=!0)}),[P,ne,y]),ke=r((e=>{e.target.focus({preventScroll:!0})}),[]);l((()=>{const e=re.current,o=de.current,n=je.current,t=ue.current;return null==e||e.addEventListener("focus",(()=>{J?null==o||o.focus():null==n||n.focus()})),null==e||e.addEventListener("blur",(function(e){t&&t.contains(e.relatedTarget)&&e.preventDefault()})),()=>{null==e||e.removeEventListener("focus",(()=>{J?null==o||o.focus():null==n||n.focus()})),null==e||e.removeEventListener("blur",(function(e){t&&t.contains(e.relatedTarget)&&e.preventDefault()}))}}),[J]);const ge=r((e=>{"ArrowDown"!==e.key&&" "!==e.key||q?"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),z(!1)):(e.preventDefault(),e.stopPropagation(),z(!0))}),[z,q]),we=r((e=>{if("ArrowDown"===e.key){e.preventDefault(),e.stopPropagation();const o=be.current;o&&f(o,W?void 0:ne)}else if("Escape"===e.key)e.preventDefault(),e.stopPropagation(),z(!1);else if("Tab"!==e.key||e.shiftKey)"Enter"===e.key&&q&&(e.preventDefault(),e.stopPropagation());else{const o=be.current;o&&(e.preventDefault(),e.stopPropagation(),f(o,ne))}}),[z,be,ne,W,q]),ye=r((e=>{if("Tab"===e.key)e.preventDefault(),e.stopPropagation(),e.shiftKey&&de.current?de.current.focus():je.current&&(te(e.currentTarget.value),z(!1),je.current.focus());else if("ArrowUp"===e.key&&be.current&&de.current){const o=be.current.querySelector('[role="option"]:not([hidden])');e.currentTarget.id===(null==o?void 0:o.id)&&de.current&&de.current.focus()}}),[z,be]);return l((()=>{const e=e=>{"Escape"===e.key&&q&&z(!1)};return typeof window<"u"&&q&&window.addEventListener("keydown",e),()=>{typeof window<"u"&&window.removeEventListener("keydown",e)}}),[z,q]),e(o,{children:[e("select",{name:y,tabIndex:-1,"data-testid":"jkl-native-select",className:"jkl-sr-only","aria-hidden":!0,ref:ce,value:ne,onChange:k,children:[n("option",{value:""})," ",ee.map((e=>n("option",{hidden:!e.visible,value:e.value,children:e.label},`${M}-opt-${e.value}`)))]}),n(m,{ref:ue,"data-testid":"jkl-select",className:t("jkl-select",D,{"jkl-select--inline":$,"jkl-select--open":q&&ee.some((e=>e.visible)),"jkl-select--no-value":!se,"jkl-select--invalid":!!T||E}),...K,id:W?O:U,style:{"--jkl-select-max-shown-options":F,...H},density:V,label:C,labelProps:{id:G,srOnly:$,...L,htmlFor:W?O:U},helpLabel:A,errorLabel:T,render:o=>e("div",{className:"jkl-select__outer-wrapper",style:{width:R},children:[W&&n("input",{...o,id:O,hidden:!J,ref:de,placeholder:"Søk",value:X,onChange:e=>Y(e.target.value),"data-testid":"jkl-select__search-input",className:"jkl-select__search-input","aria-autocomplete":"list","aria-activedescendant":se?`${M}__${h(ne)}`:void 0,"aria-controls":M,"aria-expanded":q,role:"combobox",onKeyDown:we,onBlur:fe,onFocus:he,onClick:e=>{e.stopPropagation()}}),n("button",{...o,id:U,ref:je,hidden:J,type:"button",name:`${y}-btn`,className:t("jkl-select__button",{"jkl-select__button--active-value":!!ne}),"data-testid":"jkl-select__button","aria-label":`${ie||"Velg"},${C}`,"aria-expanded":q,"aria-controls":M,onBlur:fe,onFocus:he,onKeyDown:ge,onClick:Q,onMouseDown:e=>{var o;e.preventDefault(),null==(o=je.current)||o.focus()},children:ie}),n("div",{id:M,ref:be,role:"listbox",className:"jkl-select__options-menu",hidden:!q||ee.every((e=>!e.visible)),"aria-labelledby":G,tabIndex:-1,"data-focus":"controlled",children:ee.map(((o,t)=>o.visible?e("button",{hidden:!o.visible,type:"button",id:`${M}__${h(o.value)}`,className:"jkl-select__option","data-testid":"jkl-select__option","aria-selected":o.value===ne,role:"option",value:o.value,"data-testautoid":`jkl-select__option-${t}`,onBlur:fe,onFocus:he,onKeyDown:ye,onClick:e=>{e.preventDefault(),le(o)},onMouseOver:ke,children:[o.label,o.description?n("span",{className:"jkl-select__option-description",children:o.description}):null]},`${M}-${o.value}`):null))}),n(u,{variant:"medium",pointingDown:!q,className:"jkl-select__arrow"})]})})]})}));g.displayName="Select";const w=s(((o,s)=>{const{label:i,className:r,density:c,errorLabel:a,helpLabel:l,inline:p,invalid:d,items:j,labelProps:v,placeholder:f="Velg",selectClassName:h,supportLabelProps:k,tooltipProps:g,value:w,width:y,...I}=o;return n(m,{label:i,density:c,errorLabel:a,helpLabel:l,labelProps:v,inline:p,supportLabelProps:k,tooltipProps:g,"data-testid":"jkl-select",className:t("jkl-select",r,{"jkl-select--inline":p,"jkl-select--invalid":!!a||d}),render:o=>e("div",{className:"jkl-select__outer-wrapper",style:{width:y},children:[e("select",{ref:s,className:t("jkl-select__button",h,{"jkl-select__button--active-value":!!w}),defaultValue:w?void 0:"",value:w,...o,...I,children:[f&&!w&&n("option",{disabled:!0,value:"",children:f}),j.map(b).map((e=>n("option",{"data-testid":"jkl-select__option",className:"jkl-select__option",value:e.value,children:e.label},e.value)))]}),n(u,{variant:"medium",pointingDown:!0,className:"jkl-select__arrow"})]})})}));w.displayName="NativeSelect";export{w as N,g as S};
2
- //# sourceMappingURL=NativeSelect-EidDABsT.js.map
@@ -1,122 +0,0 @@
1
- import { Placement } from '@floating-ui/react';
2
- import { default as React, FC } from 'react';
3
- import { WithChildren } from '../../core';
4
- export type TooltipPlacement = Extract<Placement, "top-start" | "top-end" | "left" | "right" | "top">;
5
- export interface TooltipProps {
6
- /**
7
- * Sett til true dersom du ønsker at tooltipen skal være åpen som default
8
- * @default false
9
- */
10
- initialOpen?: boolean;
11
- /**
12
- * Plassering av tooltipen i forhold til triggeren. Tooltipen vil automatisk
13
- * bytte posisjon dersom det ikke er plass.
14
- * @default "top"
15
- */
16
- placement?: TooltipPlacement;
17
- /**
18
- * Valgfri forsinkelse før tooltipen åpner. Ignoreres dersom triggerOn er satt til "click"
19
- * @default 250
20
- */
21
- delay?: number;
22
- /**
23
- * Angir om tooltipen skal åpnes ved klikk eller hover
24
- * @default "hover"
25
- */
26
- triggerOn?: "click" | "hover";
27
- }
28
- export declare const useTooltip: ({ initialOpen, placement, delay, triggerOn, }: TooltipProps) => {
29
- getReferenceProps: (userProps?: React.HTMLProps<Element> | undefined) => Record<string, unknown>;
30
- getFloatingProps: (userProps?: React.HTMLProps<HTMLElement> | undefined) => Record<string, unknown>;
31
- getItemProps: (userProps?: React.HTMLProps<HTMLElement> | undefined) => Record<string, unknown>;
32
- refs: {
33
- description: React.MutableRefObject<HTMLElement | null>;
34
- setDescription: (element: HTMLElement | null) => HTMLElement | null;
35
- reference: React.MutableRefObject<import('@floating-ui/react').ReferenceType | null>;
36
- floating: React.MutableRefObject<HTMLElement | null>;
37
- domReference: React.MutableRefObject<Element | null>;
38
- setReference: (node: import('@floating-ui/react').ReferenceType | null) => void;
39
- setFloating: (node: HTMLElement | null) => void;
40
- setPositionReference: (node: import('@floating-ui/react').ReferenceType | null) => void;
41
- };
42
- placement: Placement;
43
- strategy: import('@floating-ui/react').Strategy;
44
- middlewareData: import('@floating-ui/react').MiddlewareData;
45
- x: number;
46
- y: number;
47
- update: () => void;
48
- context: {
49
- x: number;
50
- y: number;
51
- placement: Placement;
52
- strategy: import('@floating-ui/react').Strategy;
53
- middlewareData: import('@floating-ui/react').MiddlewareData;
54
- update: () => void;
55
- isPositioned: boolean;
56
- floatingStyles: React.CSSProperties;
57
- open: boolean;
58
- onOpenChange: (open: boolean) => void;
59
- events: import('@floating-ui/react').FloatingEvents;
60
- dataRef: React.MutableRefObject<import('@floating-ui/react').ContextData>;
61
- nodeId: string | undefined;
62
- floatingId: string;
63
- refs: import('@floating-ui/react').ExtendedRefs<import('@floating-ui/react').ReferenceType>;
64
- elements: import('@floating-ui/react').ExtendedElements<import('@floating-ui/react').ReferenceType>;
65
- };
66
- elements: import('@floating-ui/react').ExtendedElements<import('@floating-ui/react').ReferenceType>;
67
- isPositioned: boolean;
68
- floatingStyles: React.CSSProperties;
69
- triggerOn: "click" | "hover";
70
- isOpen: boolean;
71
- setOpen: React.Dispatch<React.SetStateAction<boolean>>;
72
- arrowElement: React.RefObject<HTMLElement>;
73
- };
74
- export type TooltipContext = ReturnType<typeof useTooltip> | null;
75
- export declare const TooltipProvider: React.Provider<TooltipContext>;
76
- export declare const useTooltipContext: () => {
77
- getReferenceProps: (userProps?: React.HTMLProps<Element> | undefined) => Record<string, unknown>;
78
- getFloatingProps: (userProps?: React.HTMLProps<HTMLElement> | undefined) => Record<string, unknown>;
79
- getItemProps: (userProps?: React.HTMLProps<HTMLElement> | undefined) => Record<string, unknown>;
80
- refs: {
81
- description: React.MutableRefObject<HTMLElement | null>;
82
- setDescription: (element: HTMLElement | null) => HTMLElement | null;
83
- reference: React.MutableRefObject<import('@floating-ui/react').ReferenceType | null>;
84
- floating: React.MutableRefObject<HTMLElement | null>;
85
- domReference: React.MutableRefObject<Element | null>;
86
- setReference: (node: import('@floating-ui/react').ReferenceType | null) => void;
87
- setFloating: (node: HTMLElement | null) => void;
88
- setPositionReference: (node: import('@floating-ui/react').ReferenceType | null) => void;
89
- };
90
- placement: Placement;
91
- strategy: import('@floating-ui/react').Strategy;
92
- middlewareData: import('@floating-ui/react').MiddlewareData;
93
- x: number;
94
- y: number;
95
- update: () => void;
96
- context: {
97
- x: number;
98
- y: number;
99
- placement: Placement;
100
- strategy: import('@floating-ui/react').Strategy;
101
- middlewareData: import('@floating-ui/react').MiddlewareData;
102
- update: () => void;
103
- isPositioned: boolean;
104
- floatingStyles: React.CSSProperties;
105
- open: boolean;
106
- onOpenChange: (open: boolean) => void;
107
- events: import('@floating-ui/react').FloatingEvents;
108
- dataRef: React.MutableRefObject<import('@floating-ui/react').ContextData>;
109
- nodeId: string | undefined;
110
- floatingId: string;
111
- refs: import('@floating-ui/react').ExtendedRefs<import('@floating-ui/react').ReferenceType>;
112
- elements: import('@floating-ui/react').ExtendedElements<import('@floating-ui/react').ReferenceType>;
113
- };
114
- elements: import('@floating-ui/react').ExtendedElements<import('@floating-ui/react').ReferenceType>;
115
- isPositioned: boolean;
116
- floatingStyles: React.CSSProperties;
117
- triggerOn: "click" | "hover";
118
- isOpen: boolean;
119
- setOpen: React.Dispatch<React.SetStateAction<boolean>>;
120
- arrowElement: React.RefObject<HTMLElement>;
121
- };
122
- export declare const Tooltip: FC<TooltipProps & WithChildren>;