@fremtind/jokul 0.57.1 → 0.57.2
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.
- package/build/build-stats.html +1 -1
- package/build/cjs/components/button/Button.cjs +1 -1
- package/build/cjs/components/button/Button.cjs.map +1 -1
- package/build/es/components/button/Button.js +1 -1
- package/build/es/components/button/Button.js.map +1 -1
- package/build/style.css +1 -1
- package/package.json +2 -2
- package/styles/components/button/button.css +32 -62
- package/styles/components/button/button.min.css +1 -1
- package/styles/components/button/button.scss +64 -78
- package/styles/components/checkbox/checkbox.css +4 -4
- package/styles/components/checkbox/checkbox.min.css +1 -1
- package/styles/components/checkbox-panel/checkbox-panel.css +2 -2
- package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
- package/styles/components/countdown/countdown.css +2 -2
- package/styles/components/countdown/countdown.min.css +1 -1
- package/styles/components/feedback/feedback.css +2 -2
- package/styles/components/feedback/feedback.min.css +1 -1
- package/styles/components/input-group/input-group.css +2 -2
- package/styles/components/input-group/input-group.min.css +1 -1
- package/styles/components/loader/loader.css +6 -6
- package/styles/components/loader/loader.min.css +1 -1
- package/styles/components/loader/skeleton-loader.css +5 -5
- package/styles/components/loader/skeleton-loader.min.css +1 -1
- package/styles/components/message/message.css +2 -2
- package/styles/components/message/message.min.css +1 -1
- package/styles/components/progress-bar/progress-bar.css +1 -1
- package/styles/components/progress-bar/progress-bar.min.css +1 -1
- package/styles/components/radio-button/radio-button.css +2 -2
- package/styles/components/radio-button/radio-button.min.css +1 -1
- package/styles/components/radio-panel/radio-panel.css +2 -2
- package/styles/components/radio-panel/radio-panel.min.css +1 -1
- package/styles/components/system-message/system-message.css +2 -2
- package/styles/components/system-message/system-message.min.css +1 -1
- package/styles/components/toast/toast.css +4 -4
- package/styles/components/toast/toast.min.css +1 -1
- package/styles/styles.css +68 -97
- package/styles/styles.min.css +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),e=require("../../../clsx-E3yX_9sL.cjs"),o=require("react"),n=require("../../hooks/useAriaLiveRegion/useAriaLiveRegion.cjs"),r=require("../loader/Loader.cjs"),s=o.forwardRef((function(s,i){const{as:a="button",children:l,className:c,density:u,onTouchStart:d,onAnimationEnd:x,loader:h,icon:j,iconPosition:y="left",iconLeft:g,iconRight:b,variant:p="secondary",...v}=s,m=a;"production"!==process.env.NODE_ENV&&0===o.Children.count(l)&&!s["aria-label"]&&!s["aria-labelledby"]&&!s.title&&console.warn("Når du lager en Button uten synlig tekst må du huske å gi den et navn med enten aria-label, aria-labelledby eller title");const k=o.useCallback((t=>{const e=t.target;if(e&&!e.disabled&&t.targetTouches.length){const o=t.targetTouches[0].clientX-e.getBoundingClientRect().x,n=t.targetTouches[0].clientY-e.getBoundingClientRect().y;e.style.setProperty("--jkl-touch-xcoord",o.toFixed(1)+"px"),e.style.setProperty("--jkl-touch-ycoord",n.toFixed(1)+"px"),e.classList.add("jkl-button--pressed")}}),[]),f=n.useAriaLiveRegion(null==h?void 0:h.showLoader),L=!!l&&!(null==h||!h.showLoader);return t.jsxs(m,{...f,"data-loading":L,"data-density":u,className:e.clsx("jkl-button","jkl-button--"+p,c),disabled:"button"===a?null==h?void 0:h.showLoader:void 0,onTouchStart:t=>{null==d||d(t),k(t)},onAnimationEnd:t=>{null==x||x(t),(t=>{t.classList.contains("jkl-button--pressed")&&(t.classList.remove("jkl-button--pressed"),t.style.removeProperty("--jkl-touch-xcoord"),t.style.removeProperty("--jkl-touch-ycoord"))})(t.target)},...v,ref:i,children:[t.jsxs("div",{className:"jkl-button__label",children:[g&&g,j&&"left"===y&&j,l&&t.jsx("span",{className:"jkl-button__text",children:l}),b&&b,j&&"right"===y&&j]}),l&&t.jsx(r.Loader,{className:"jkl-button__loader",variant:"medium",textDescription:(null==h?void 0:h.textDescription)||"Vennligst vent","aria-hidden":!(null!=h&&h.showLoader)})]})}));exports.Button=s,exports.GhostButton=function(e){const o={...e,variant:"ghost"};return t.jsx(s,{...o})},exports.PrimaryButton=function(e){const o={...e,variant:"primary"};return t.jsx(s,{...o})},exports.SecondaryButton=function(e){const o={...e,variant:"secondary"};return t.jsx(s,{...o})},exports.TertiaryButton=function(e){const o={...e,variant:"tertiary"};return t.jsx(s,{...o})};
|
|
2
2
|
//# sourceMappingURL=Button.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.cjs","sources":["../../../../src/components/button/Button.tsx"],"sourcesContent":["import cn from \"clsx\";\nimport React, {\n ButtonHTMLAttributes,\n type TouchEvent,\n useCallback,\n} from \"react\";\nimport { useAriaLiveRegion } from \"../../hooks/useAriaLiveRegion/useAriaLiveRegion.js\";\nimport { PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport { Loader } from \"../loader/Loader.js\";\nimport { ButtonComponent, ButtonProps } from \"./types.js\";\n\nexport const Button = React.forwardRef(function Button<\n ElementType extends React.ElementType = \"button\",\n>(props: ButtonProps<ElementType>, ref?: PolymorphicRef<ElementType>) {\n const {\n as = \"button\",\n children,\n className,\n density,\n onTouchStart,\n loader,\n icon,\n iconPosition = \"left\",\n iconLeft,\n iconRight,\n variant = \"secondary\",\n ...rest\n } = props;\n\n const Component = as;\n\n if (\n process.env.NODE_ENV !== \"production\" &&\n React.Children.count(children) === 0 &&\n !props[\"aria-label\"] &&\n !props[\"aria-labelledby\"] &&\n !props.title\n ) {\n console.warn(\n \"Når du lager en Button uten synlig tekst må du huske å gi den et navn med enten aria-label, aria-labelledby eller title\",\n );\n }\n\n const
|
|
1
|
+
{"version":3,"file":"Button.cjs","sources":["../../../../src/components/button/Button.tsx"],"sourcesContent":["import cn from \"clsx\";\nimport React, {\n type ButtonHTMLAttributes,\n type TouchEvent,\n useCallback,\n} from \"react\";\nimport { useAriaLiveRegion } from \"../../hooks/useAriaLiveRegion/useAriaLiveRegion.js\";\nimport { PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport { Loader } from \"../loader/Loader.js\";\nimport { ButtonComponent, ButtonProps } from \"./types.js\";\n\nexport const Button = React.forwardRef(function Button<\n ElementType extends React.ElementType = \"button\",\n>(props: ButtonProps<ElementType>, ref?: PolymorphicRef<ElementType>) {\n const {\n as = \"button\",\n children,\n className,\n density,\n onTouchStart,\n onAnimationEnd,\n loader,\n icon,\n iconPosition = \"left\",\n iconLeft,\n iconRight,\n variant = \"secondary\",\n ...rest\n } = props;\n\n const Component = as;\n\n if (\n process.env.NODE_ENV !== \"production\" &&\n React.Children.count(children) === 0 &&\n !props[\"aria-label\"] &&\n !props[\"aria-labelledby\"] &&\n !props.title\n ) {\n console.warn(\n \"Når du lager en Button uten synlig tekst må du huske å gi den et navn med enten aria-label, aria-labelledby eller title\",\n );\n }\n\n const removeButtonAnimation = (element: HTMLElement) => {\n if (element.classList.contains(\"jkl-button--pressed\")) {\n element.classList.remove(\"jkl-button--pressed\");\n element.style.removeProperty(\"--jkl-touch-xcoord\");\n element.style.removeProperty(\"--jkl-touch-ycoord\");\n }\n };\n\n const handleTouch = useCallback((event: TouchEvent<HTMLButtonElement>) => {\n const target = event.target as HTMLButtonElement;\n\n if (target && !target.disabled && event.targetTouches.length) {\n const Xcoord =\n event.targetTouches[0].clientX -\n target.getBoundingClientRect().x;\n const Ycoord =\n event.targetTouches[0].clientY -\n target.getBoundingClientRect().y;\n target.style.setProperty(\n \"--jkl-touch-xcoord\",\n Xcoord.toFixed(1) + \"px\",\n );\n target.style.setProperty(\n \"--jkl-touch-ycoord\",\n Ycoord.toFixed(1) + \"px\",\n );\n target.classList.add(\"jkl-button--pressed\");\n }\n }, []);\n\n const ariaLive = useAriaLiveRegion(loader?.showLoader);\n const showLoader = Boolean(children) && Boolean(loader?.showLoader);\n\n return (\n <Component\n {...ariaLive}\n data-loading={showLoader}\n data-density={density}\n className={cn(\"jkl-button\", \"jkl-button--\" + variant, className)}\n disabled={as === \"button\" ? loader?.showLoader : undefined}\n onTouchStart={(event) => {\n onTouchStart?.(event);\n handleTouch(event);\n }}\n onAnimationEnd={(event) => {\n onAnimationEnd?.(event);\n removeButtonAnimation(event.target as HTMLElement);\n }}\n {...rest}\n ref={ref}\n >\n <div className=\"jkl-button__label\">\n {iconLeft && iconLeft}\n {icon && iconPosition === \"left\" && icon}\n {children && (\n <span className=\"jkl-button__text\">{children}</span>\n )}\n {iconRight && iconRight}\n {icon && iconPosition === \"right\" && icon}\n </div>\n\n {children && (\n <Loader\n className=\"jkl-button__loader\"\n variant=\"medium\"\n textDescription={\n loader?.textDescription || \"Vennligst vent\"\n }\n aria-hidden={!loader?.showLoader}\n />\n )}\n </Component>\n );\n}) as ButtonComponent;\n\nexport function PrimaryButton<ElementType extends React.ElementType = \"button\">(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"onClick\" | \"as\"> &\n Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\">,\n) {\n const buttonProps = {\n ...props,\n variant: \"primary\",\n } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n\nexport function SecondaryButton<\n ElementType extends React.ElementType = \"button\",\n>(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"onClick\" | \"as\"> &\n Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\">,\n) {\n const buttonProps = {\n ...props,\n variant: \"secondary\",\n } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n\nexport function TertiaryButton<\n ElementType extends React.ElementType = \"button\",\n>(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"onClick\" | \"as\"> &\n Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\">,\n) {\n const buttonProps = {\n ...props,\n variant: \"tertiary\",\n } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n\nexport function GhostButton<ElementType extends React.ElementType = \"button\">(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"loader\">,\n) {\n const buttonProps = {\n ...props,\n variant: \"ghost\",\n } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n"],"names":["Button","React","forwardRef","props","ref","as","children","className","density","onTouchStart","onAnimationEnd","loader","icon","iconPosition","iconLeft","iconRight","variant","rest","Component","process","env","NODE_ENV","Children","count","title","console","warn","handleTouch","useCallback","event","target","disabled","targetTouches","length","Xcoord","clientX","getBoundingClientRect","x","Ycoord","clientY","y","style","setProperty","toFixed","classList","add","ariaLive","useAriaLiveRegion","showLoader","jsxs","cn","element","contains","remove","removeProperty","removeButtonAnimation","jsx","Loader","textDescription","buttonProps"],"mappings":"mRAWaA,EAASC,EAAMC,YAAW,SAErCC,EAAiCC,GACzB,MACFC,GAAAA,EAAK,SACLC,SAAAA,EACAC,UAAAA,EACAC,QAAAA,EACAC,aAAAA,EACAC,eAAAA,EACAC,OAAAA,EACAC,KAAAA,EACAC,aAAAA,EAAe,OACfC,SAAAA,EACAC,UAAAA,EACAC,QAAAA,EAAU,eACPC,GACHd,EAEEe,EAAYb,EAGW,eAAzBc,QAAQC,IAAIC,UACuB,IAAnCpB,EAAMqB,SAASC,MAAMjB,KACpBH,EAAM,gBACNA,EAAM,qBACNA,EAAMqB,OAECC,QAAAC,KACJ,2HAIF,MAQAC,EAAcC,eAAaC,IAC7B,MAAMC,EAASD,EAAMC,OAErB,GAAIA,IAAWA,EAAOC,UAAYF,EAAMG,cAAcC,OAAQ,CACpD,MAAAC,EACFL,EAAMG,cAAc,GAAGG,QACvBL,EAAOM,wBAAwBC,EAC7BC,EACFT,EAAMG,cAAc,GAAGO,QACvBT,EAAOM,wBAAwBI,EACnCV,EAAOW,MAAMC,YACT,qBACAR,EAAOS,QAAQ,GAAK,MAExBb,EAAOW,MAAMC,YACT,qBACAJ,EAAOK,QAAQ,GAAK,MAEjBb,EAAAc,UAAUC,IAAI,sBACzB,IACD,IAEGC,EAAWC,EAAAA,kBAAkB,MAAApC,OAAAA,EAAAA,EAAQqC,YACrCA,IAAqB1C,KAAqB,MAAAK,IAAAA,EAAQqC,YAGpD,OAAAC,EAAAA,KAAC/B,EAAA,IACO4B,EACJ,eAAcE,EACd,eAAcxC,EACdD,UAAW2C,EAAAA,KAAG,aAAc,eAAiBlC,EAAST,GACtDwB,SAAiB,WAAP1B,EAAkB,MAAAM,OAAA,EAAAA,EAAQqC,gBAAa,EACjDvC,aAAeoB,IACX,MAAApB,GAAAA,EAAeoB,GACfF,EAAYE,EAAK,EAErBnB,eAAiBmB,IACb,MAAAnB,GAAAA,EAAiBmB,GA7CEsB,KACvBA,EAAQP,UAAUQ,SAAS,yBACnBD,EAAAP,UAAUS,OAAO,uBACjBF,EAAAV,MAAMa,eAAe,sBACrBH,EAAAV,MAAMa,eAAe,sBAAoB,EA0C7CC,CAAsB1B,EAAMC,OAAqB,KAEjDb,EACJb,IAAAA,EAEAE,SAAA,CAAC2C,EAAAA,KAAA,MAAA,CAAI1C,UAAU,oBACVD,SAAA,CAAYQ,GAAAA,EACZF,GAAyB,SAAjBC,GAA2BD,EACnCN,GACGkD,EAAAA,IAAC,OAAK,CAAAjD,UAAU,mBAAoBD,SAAAA,IAEvCS,GAAaA,EACbH,GAAyB,UAAjBC,GAA4BD,KAGxCN,GACGkD,EAAAA,IAACC,EAAAA,OAAA,CACGlD,UAAU,qBACVS,QAAQ,SACR0C,iBACI,MAAA/C,OAAA,EAAAA,EAAQ+C,kBAAmB,iBAE/B,gBAAc,MAAA/C,GAAAA,EAAQqC,gBAK1C,yCAuCO,SACH7C,GAEA,MAAMwD,EAAc,IACbxD,EACHa,QAAS,SAEN,OAAAwC,EAAAA,IAACxD,EAAQ,IAAG2D,GACvB,wBA7CO,SACHxD,GAGA,MAAMwD,EAAc,IACbxD,EACHa,QAAS,WAEN,OAAAwC,EAAAA,IAACxD,EAAQ,IAAG2D,GACvB,0BAEO,SAGHxD,GAGA,MAAMwD,EAAc,IACbxD,EACHa,QAAS,aAEN,OAAAwC,EAAAA,IAACxD,EAAQ,IAAG2D,GACvB,yBAEO,SAGHxD,GAGA,MAAMwD,EAAc,IACbxD,EACHa,QAAS,YAEN,OAAAwC,EAAAA,IAACxD,EAAQ,IAAG2D,GACvB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as t,jsx as e}from"react/jsx-runtime";import{c as o}from"../../../clsx-BeLtu-UY.js";import n,{useCallback as r}from"react";import{useAriaLiveRegion as a}from"../../hooks/useAriaLiveRegion/useAriaLiveRegion.js";import{Loader as s}from"../loader/Loader.js";const i=n.forwardRef((function(i,l){const{as:c="button",children:
|
|
1
|
+
import{jsxs as t,jsx as e}from"react/jsx-runtime";import{c as o}from"../../../clsx-BeLtu-UY.js";import n,{useCallback as r}from"react";import{useAriaLiveRegion as a}from"../../hooks/useAriaLiveRegion/useAriaLiveRegion.js";import{Loader as s}from"../loader/Loader.js";const i=n.forwardRef((function(i,l){const{as:c="button",children:d,className:u,density:m,onTouchStart:h,onAnimationEnd:y,loader:g,icon:p,iconPosition:b="left",iconLeft:v,iconRight:j,variant:f="secondary",...k}=i,x=c;"production"!==process.env.NODE_ENV&&0===n.Children.count(d)&&!i["aria-label"]&&!i["aria-labelledby"]&&!i.title&&console.warn("Når du lager en Button uten synlig tekst må du huske å gi den et navn med enten aria-label, aria-labelledby eller title");const L=r((t=>{const e=t.target;if(e&&!e.disabled&&t.targetTouches.length){const o=t.targetTouches[0].clientX-e.getBoundingClientRect().x,n=t.targetTouches[0].clientY-e.getBoundingClientRect().y;e.style.setProperty("--jkl-touch-xcoord",o.toFixed(1)+"px"),e.style.setProperty("--jkl-touch-ycoord",n.toFixed(1)+"px"),e.classList.add("jkl-button--pressed")}}),[]),B=a(null==g?void 0:g.showLoader),N=!!d&&!(null==g||!g.showLoader);return t(x,{...B,"data-loading":N,"data-density":m,className:o("jkl-button","jkl-button--"+f,u),disabled:"button"===c?null==g?void 0:g.showLoader:void 0,onTouchStart:t=>{null==h||h(t),L(t)},onAnimationEnd:t=>{null==y||y(t),(t=>{t.classList.contains("jkl-button--pressed")&&(t.classList.remove("jkl-button--pressed"),t.style.removeProperty("--jkl-touch-xcoord"),t.style.removeProperty("--jkl-touch-ycoord"))})(t.target)},...k,ref:l,children:[t("div",{className:"jkl-button__label",children:[v&&v,p&&"left"===b&&p,d&&e("span",{className:"jkl-button__text",children:d}),j&&j,p&&"right"===b&&p]}),d&&e(s,{className:"jkl-button__loader",variant:"medium",textDescription:(null==g?void 0:g.textDescription)||"Vennligst vent","aria-hidden":!(null!=g&&g.showLoader)})]})}));function l(t){const o={...t,variant:"primary"};return e(i,{...o})}function c(t){const o={...t,variant:"secondary"};return e(i,{...o})}function d(t){const o={...t,variant:"tertiary"};return e(i,{...o})}function u(t){const o={...t,variant:"ghost"};return e(i,{...o})}export{i as Button,u as GhostButton,l as PrimaryButton,c as SecondaryButton,d as TertiaryButton};
|
|
2
2
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../../../src/components/button/Button.tsx"],"sourcesContent":["import cn from \"clsx\";\nimport React, {\n ButtonHTMLAttributes,\n type TouchEvent,\n useCallback,\n} from \"react\";\nimport { useAriaLiveRegion } from \"../../hooks/useAriaLiveRegion/useAriaLiveRegion.js\";\nimport { PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport { Loader } from \"../loader/Loader.js\";\nimport { ButtonComponent, ButtonProps } from \"./types.js\";\n\nexport const Button = React.forwardRef(function Button<\n ElementType extends React.ElementType = \"button\",\n>(props: ButtonProps<ElementType>, ref?: PolymorphicRef<ElementType>) {\n const {\n as = \"button\",\n children,\n className,\n density,\n onTouchStart,\n loader,\n icon,\n iconPosition = \"left\",\n iconLeft,\n iconRight,\n variant = \"secondary\",\n ...rest\n } = props;\n\n const Component = as;\n\n if (\n process.env.NODE_ENV !== \"production\" &&\n React.Children.count(children) === 0 &&\n !props[\"aria-label\"] &&\n !props[\"aria-labelledby\"] &&\n !props.title\n ) {\n console.warn(\n \"Når du lager en Button uten synlig tekst må du huske å gi den et navn med enten aria-label, aria-labelledby eller title\",\n );\n }\n\n const
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../../../src/components/button/Button.tsx"],"sourcesContent":["import cn from \"clsx\";\nimport React, {\n type ButtonHTMLAttributes,\n type TouchEvent,\n useCallback,\n} from \"react\";\nimport { useAriaLiveRegion } from \"../../hooks/useAriaLiveRegion/useAriaLiveRegion.js\";\nimport { PolymorphicRef } from \"../../utilities/polymorphism/polymorphism.js\";\nimport { Loader } from \"../loader/Loader.js\";\nimport { ButtonComponent, ButtonProps } from \"./types.js\";\n\nexport const Button = React.forwardRef(function Button<\n ElementType extends React.ElementType = \"button\",\n>(props: ButtonProps<ElementType>, ref?: PolymorphicRef<ElementType>) {\n const {\n as = \"button\",\n children,\n className,\n density,\n onTouchStart,\n onAnimationEnd,\n loader,\n icon,\n iconPosition = \"left\",\n iconLeft,\n iconRight,\n variant = \"secondary\",\n ...rest\n } = props;\n\n const Component = as;\n\n if (\n process.env.NODE_ENV !== \"production\" &&\n React.Children.count(children) === 0 &&\n !props[\"aria-label\"] &&\n !props[\"aria-labelledby\"] &&\n !props.title\n ) {\n console.warn(\n \"Når du lager en Button uten synlig tekst må du huske å gi den et navn med enten aria-label, aria-labelledby eller title\",\n );\n }\n\n const removeButtonAnimation = (element: HTMLElement) => {\n if (element.classList.contains(\"jkl-button--pressed\")) {\n element.classList.remove(\"jkl-button--pressed\");\n element.style.removeProperty(\"--jkl-touch-xcoord\");\n element.style.removeProperty(\"--jkl-touch-ycoord\");\n }\n };\n\n const handleTouch = useCallback((event: TouchEvent<HTMLButtonElement>) => {\n const target = event.target as HTMLButtonElement;\n\n if (target && !target.disabled && event.targetTouches.length) {\n const Xcoord =\n event.targetTouches[0].clientX -\n target.getBoundingClientRect().x;\n const Ycoord =\n event.targetTouches[0].clientY -\n target.getBoundingClientRect().y;\n target.style.setProperty(\n \"--jkl-touch-xcoord\",\n Xcoord.toFixed(1) + \"px\",\n );\n target.style.setProperty(\n \"--jkl-touch-ycoord\",\n Ycoord.toFixed(1) + \"px\",\n );\n target.classList.add(\"jkl-button--pressed\");\n }\n }, []);\n\n const ariaLive = useAriaLiveRegion(loader?.showLoader);\n const showLoader = Boolean(children) && Boolean(loader?.showLoader);\n\n return (\n <Component\n {...ariaLive}\n data-loading={showLoader}\n data-density={density}\n className={cn(\"jkl-button\", \"jkl-button--\" + variant, className)}\n disabled={as === \"button\" ? loader?.showLoader : undefined}\n onTouchStart={(event) => {\n onTouchStart?.(event);\n handleTouch(event);\n }}\n onAnimationEnd={(event) => {\n onAnimationEnd?.(event);\n removeButtonAnimation(event.target as HTMLElement);\n }}\n {...rest}\n ref={ref}\n >\n <div className=\"jkl-button__label\">\n {iconLeft && iconLeft}\n {icon && iconPosition === \"left\" && icon}\n {children && (\n <span className=\"jkl-button__text\">{children}</span>\n )}\n {iconRight && iconRight}\n {icon && iconPosition === \"right\" && icon}\n </div>\n\n {children && (\n <Loader\n className=\"jkl-button__loader\"\n variant=\"medium\"\n textDescription={\n loader?.textDescription || \"Vennligst vent\"\n }\n aria-hidden={!loader?.showLoader}\n />\n )}\n </Component>\n );\n}) as ButtonComponent;\n\nexport function PrimaryButton<ElementType extends React.ElementType = \"button\">(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"onClick\" | \"as\"> &\n Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\">,\n) {\n const buttonProps = {\n ...props,\n variant: \"primary\",\n } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n\nexport function SecondaryButton<\n ElementType extends React.ElementType = \"button\",\n>(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"onClick\" | \"as\"> &\n Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\">,\n) {\n const buttonProps = {\n ...props,\n variant: \"secondary\",\n } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n\nexport function TertiaryButton<\n ElementType extends React.ElementType = \"button\",\n>(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"onClick\" | \"as\"> &\n Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\">,\n) {\n const buttonProps = {\n ...props,\n variant: \"tertiary\",\n } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n\nexport function GhostButton<ElementType extends React.ElementType = \"button\">(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"loader\">,\n) {\n const buttonProps = {\n ...props,\n variant: \"ghost\",\n } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n"],"names":["Button","React","forwardRef","props","ref","as","children","className","density","onTouchStart","onAnimationEnd","loader","icon","iconPosition","iconLeft","iconRight","variant","rest","Component","process","env","NODE_ENV","Children","count","title","console","warn","removeButtonAnimation","handleTouch","useCallback","event","target","disabled","targetTouches","length","Xcoord","clientX","getBoundingClientRect","x","Ycoord","clientY","y","style","setProperty","toFixed","classList","add","ariaLive","useAriaLiveRegion","showLoader","jsxs","cn","element","contains","remove","removeProperty","jsx","Loader","textDescription","PrimaryButton","buttonProps","SecondaryButton","TertiaryButton","GhostButton"],"mappings":"2QAWO,MAAMA,EAASC,EAAMC,YAAW,SAErCC,EAAiCC,GACzB,MACFC,GAAAA,EAAK,SACLC,SAAAA,EACAC,UAAAA,EACAC,QAAAA,EACAC,aAAAA,EACAC,eAAAA,EACAC,OAAAA,EACAC,KAAAA,EACAC,aAAAA,EAAe,OACfC,SAAAA,EACAC,UAAAA,EACAC,QAAAA,EAAU,eACPC,GACHd,EAEEe,EAAYb,EAGW,eAAzBc,QAAQC,IAAIC,UACuB,IAAnCpB,EAAMqB,SAASC,MAAMjB,KACpBH,EAAM,gBACNA,EAAM,qBACNA,EAAMqB,OAECC,QAAAC,KACJ,2HAIFC,MAQAC,EAAcC,GAAaC,IAC7B,MAAMC,EAASD,EAAMC,OAErB,GAAIA,IAAWA,EAAOC,UAAYF,EAAMG,cAAcC,OAAQ,CACpD,MAAAC,EACFL,EAAMG,cAAc,GAAGG,QACvBL,EAAOM,wBAAwBC,EAC7BC,EACFT,EAAMG,cAAc,GAAGO,QACvBT,EAAOM,wBAAwBI,EACnCV,EAAOW,MAAMC,YACT,qBACAR,EAAOS,QAAQ,GAAK,MAExBb,EAAOW,MAAMC,YACT,qBACAJ,EAAOK,QAAQ,GAAK,MAEjBb,EAAAc,UAAUC,IAAI,sBACzB,IACD,IAEGC,EAAWC,EAAkB,MAAArC,OAAA,EAAAA,EAAQsC,YACrCA,IAAqB3C,KAAqB,MAAAK,IAAAA,EAAQsC,YAGpD,OAAAC,EAAChC,EAAA,IACO6B,EACJ,eAAcE,EACd,eAAczC,EACdD,UAAW4C,EAAG,aAAc,eAAiBnC,EAAST,GACtDyB,SAAiB,WAAP3B,EAAkB,MAAAM,OAAA,EAAAA,EAAQsC,gBAAa,EACjDxC,aAAeqB,IACX,MAAArB,GAAAA,EAAeqB,GACfF,EAAYE,EAAK,EAErBpB,eAAiBoB,IACb,MAAApB,GAAAA,EAAiBoB,GA7CC,CAACsB,IACvBA,EAAQP,UAAUQ,SAAS,yBACnBD,EAAAP,UAAUS,OAAO,uBACjBF,EAAAV,MAAMa,eAAe,sBACrBH,EAAAV,MAAMa,eAAe,sBAAoB,EA0C7C5B,CAAsBG,EAAMC,OAAqB,KAEjDd,EACJb,IAAAA,EAEAE,SAAA,CAAC4C,EAAA,MAAA,CAAI3C,UAAU,oBACVD,SAAA,CAAYQ,GAAAA,EACZF,GAAyB,SAAjBC,GAA2BD,EACnCN,GACGkD,EAAC,OAAK,CAAAjD,UAAU,mBAAoBD,SAAAA,IAEvCS,GAAaA,EACbH,GAAyB,UAAjBC,GAA4BD,KAGxCN,GACGkD,EAACC,EAAA,CACGlD,UAAU,qBACVS,QAAQ,SACR0C,iBACI,MAAA/C,OAAAA,EAAAA,EAAQ+C,kBAAmB,iBAE/B,gBAAc,MAAA/C,GAAAA,EAAQsC,gBAK1C,IAEO,SAASU,EACZxD,GAGA,MAAMyD,EAAc,IACbzD,EACHa,QAAS,WAEN,OAAAwC,EAACxD,EAAQ,IAAG4D,GACvB,CAEO,SAASC,EAGZ1D,GAGA,MAAMyD,EAAc,IACbzD,EACHa,QAAS,aAEN,OAAAwC,EAACxD,EAAQ,IAAG4D,GACvB,CAEO,SAASE,EAGZ3D,GAGA,MAAMyD,EAAc,IACbzD,EACHa,QAAS,YAEN,OAAAwC,EAACxD,EAAQ,IAAG4D,GACvB,CAEO,SAASG,EACZ5D,GAEA,MAAMyD,EAAc,IACbzD,EACHa,QAAS,SAEN,OAAAwC,EAACxD,EAAQ,IAAG4D,GACvB"}
|