@fremtind/jokul 0.14.1 → 0.15.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.
- package/build/build-stats.html +1 -1
- package/build/cjs/components/button/Button.js +1 -1
- package/build/cjs/components/button/Button.js.map +1 -1
- package/build/cjs/components/button/types.js.map +1 -1
- package/build/es/components/button/Button.js +1 -1
- package/build/es/components/button/Button.js.map +1 -1
- package/build/es/components/button/types.js.map +1 -1
- package/build/packages/jokul/src/components/button/types.d.ts +26 -2
- package/build/style.css +1 -1
- package/package.json +2 -2
- package/src/components/button/styles/button.css +126 -193
- package/src/components/button/styles/button.min.css +1 -1
- package/src/components/button/styles/button.scss +129 -220
- package/src/components/checkbox/styles/checkbox.css +4 -4
- package/src/components/checkbox/styles/checkbox.min.css +1 -1
- package/src/components/feedback/styles/feedback.css +2 -2
- package/src/components/feedback/styles/feedback.min.css +1 -1
- package/src/components/input-group/styles/input-group.css +2 -2
- package/src/components/input-group/styles/input-group.min.css +1 -1
- package/src/components/loader/styles/loader.css +6 -6
- package/src/components/loader/styles/loader.min.css +1 -1
- package/src/components/loader/styles/skeleton-loader.css +5 -5
- package/src/components/loader/styles/skeleton-loader.min.css +1 -1
- package/src/components/message/styles/message.css +2 -2
- package/src/components/message/styles/message.min.css +1 -1
- package/src/components/progress-bar/styles/progress-bar.css +2 -2
- package/src/components/progress-bar/styles/progress-bar.min.css +1 -1
- package/src/components/radio-button/styles/radio-button.css +2 -2
- package/src/components/radio-button/styles/radio-button.min.css +1 -1
- package/src/components/system-message/styles/system-message.css +2 -2
- package/src/components/system-message/styles/system-message.min.css +1 -1
- package/src/components/toast/styles/toast.css +4 -4
- package/src/components/toast/styles/toast.min.css +1 -1
- package/src/core/jkl/_theme.scss +32 -13
|
@@ -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 e=require("react/jsx-runtime"),t=require("../../../clsx-E3yX_9sL.cjs"),o=require("react");require("../../hooks/useScreen/useScreen.js");const r=require("../../hooks/useAriaLiveRegion/useAriaLiveRegion.js");require("../../hooks/useId/useId.js");const s=require("../loader/Loader.js"),n=o.forwardRef((function(n,i){const{as:a="button",children:c,className:u,density:l,onTouchStart:d,loader:h,icon:j,iconPosition:x="left",iconLeft:y,iconRight:g,variant:p="secondary",...v}=n,b=a,k=o.useCallback((e=>{d&&d(e);const t=e.target;if(t&&!t.disabled&&e.targetTouches.length){const o=e.targetTouches[0].clientX-t.getBoundingClientRect().x,r=e.targetTouches[0].clientY-t.getBoundingClientRect().y;t.style.setProperty("--jkl-touch-xcoord",o.toPrecision(4)+"px"),t.style.setProperty("--jkl-touch-ycoord",r.toPrecision(4)+"px"),t.classList.add("jkl-button--pressed"),setTimeout((()=>{t.classList.remove("jkl-button--pressed"),t.style.removeProperty("--jkl-touch-xcoord"),t.style.removeProperty("--jkl-touch-ycoord")}),400)}}),[d]),m=r.useAriaLiveRegion(null==h?void 0:h.showLoader),f=!!c&&!(null==h||!h.showLoader);return e.jsxs(b,{...m,"data-loading":f,"data-density":l,className:t.clsx("jkl-button","jkl-button--"+p,u),disabled:"button"===a?null==h?void 0:h.showLoader:void 0,onTouchStart:k,...v,ref:i,children:[e.jsxs("div",{className:"jkl-button__label",children:[y&&y,j&&"left"===x&&j,c&&e.jsx("span",{className:"jkl-button__text",children:c}),g&&g,j&&"right"===x&&j]}),c&&e.jsx(s.Loader,{className:"jkl-button__loader",variant:"medium",textDescription:(null==h?void 0:h.textDescription)||"Vennligst vent","aria-hidden":!(null!=h&&h.showLoader)})]})}));exports.Button=n,exports.GhostButton=function(t){const o={...t,variant:"ghost"};return e.jsx(n,{...o})},exports.PrimaryButton=function(t){const o={...t,variant:"primary"};return e.jsx(n,{...o})},exports.SecondaryButton=function(t){const o={...t,variant:"secondary"};return e.jsx(n,{...o})},exports.TertiaryButton=function(t){const o={...t,variant:"tertiary"};return e.jsx(n,{...o})};
|
|
2
2
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../../../src/components/button/Button.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../../../src/components/button/Button.tsx"],"sourcesContent":["import cn from \"clsx\";\nimport React, { ButtonHTMLAttributes, type TouchEvent, useCallback } from \"react\";\nimport { useAriaLiveRegion } from \"../../hooks\";\nimport type { PolymorphicRef } from \"../../utilities\";\nimport { Loader } from \"../loader\";\nimport type { ButtonComponent, ButtonProps } from \"./types\";\n\nexport const Button = React.forwardRef(function Button<ElementType extends React.ElementType = \"button\">(\n props: ButtonProps<ElementType>,\n ref?: PolymorphicRef<ElementType>,\n) {\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 const handleTouch = useCallback(\n (event: TouchEvent<HTMLButtonElement>) => {\n onTouchStart && onTouchStart(event);\n\n const target = event.target as HTMLButtonElement;\n if (target && !target.disabled && event.targetTouches.length) {\n const Xcoord = event.targetTouches[0].clientX - target.getBoundingClientRect().x;\n const Ycoord = event.targetTouches[0].clientY - target.getBoundingClientRect().y;\n target.style.setProperty(\"--jkl-touch-xcoord\", Xcoord.toPrecision(4) + \"px\");\n target.style.setProperty(\"--jkl-touch-ycoord\", Ycoord.toPrecision(4) + \"px\");\n target.classList.add(\"jkl-button--pressed\");\n\n setTimeout(() => {\n target.classList.remove(\"jkl-button--pressed\");\n target.style.removeProperty(\"--jkl-touch-xcoord\");\n target.style.removeProperty(\"--jkl-touch-ycoord\");\n }, 400);\n }\n },\n [onTouchStart],\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={handleTouch}\n {...rest}\n ref={ref}\n >\n <div className=\"jkl-button__label\">\n {iconLeft && iconLeft}\n {icon && iconPosition === \"left\" && icon}\n {children && <span className=\"jkl-button__text\">{children}</span>}\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={loader?.textDescription || \"Vennligst vent\"}\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 = { ...props, variant: \"primary\" } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n\nexport function SecondaryButton<ElementType extends React.ElementType = \"button\">(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"onClick\" | \"as\"> &\n Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\">,\n) {\n const buttonProps = { ...props, variant: \"secondary\" } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n\nexport function TertiaryButton<ElementType extends React.ElementType = \"button\">(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"onClick\" | \"as\"> &\n Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\">,\n) {\n const buttonProps = { ...props, variant: \"tertiary\" } 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 = { ...props, variant: \"ghost\" } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n"],"names":["Button","React","forwardRef","props","ref","as","children","className","density","onTouchStart","loader","icon","iconPosition","iconLeft","iconRight","variant","rest","Component","handleTouch","useCallback","event","target","disabled","targetTouches","length","Xcoord","clientX","getBoundingClientRect","x","Ycoord","clientY","y","style","setProperty","toPrecision","classList","add","setTimeout","remove","removeProperty","ariaLive","useAriaLiveRegion","showLoader","jsxs","cn","jsx","Loader","textDescription","buttonProps"],"mappings":"iXAOaA,EAASC,EAAMC,YAAW,SACnCC,EACAC,GAEM,MACFC,GAAAA,EAAK,SACLC,SAAAA,EACAC,UAAAA,EACAC,QAAAA,EACAC,aAAAA,EACAC,OAAAA,EACAC,KAAAA,EACAC,aAAAA,EAAe,OACfC,SAAAA,EACAC,UAAAA,EACAC,QAAAA,EAAU,eACPC,GACHb,EAEEc,EAAYZ,EAEZa,EAAcC,EAAAA,aACfC,IACGX,GAAgBA,EAAaW,GAE7B,MAAMC,EAASD,EAAMC,OACrB,GAAIA,IAAWA,EAAOC,UAAYF,EAAMG,cAAcC,OAAQ,CACpD,MAAAC,EAASL,EAAMG,cAAc,GAAGG,QAAUL,EAAOM,wBAAwBC,EACzEC,EAAST,EAAMG,cAAc,GAAGO,QAAUT,EAAOM,wBAAwBI,EAC/EV,EAAOW,MAAMC,YAAY,qBAAsBR,EAAOS,YAAY,GAAK,MACvEb,EAAOW,MAAMC,YAAY,qBAAsBJ,EAAOK,YAAY,GAAK,MAChEb,EAAAc,UAAUC,IAAI,uBAErBC,YAAW,KACAhB,EAAAc,UAAUG,OAAO,uBACjBjB,EAAAW,MAAMO,eAAe,sBACrBlB,EAAAW,MAAMO,eAAe,qBAAoB,GACjD,IACP,IAEJ,CAAC9B,IAGC+B,EAAWC,EAAAA,kBAAkB,MAAA/B,OAAA,EAAAA,EAAQgC,YACrCA,IAAqBpC,KAAqB,MAAAI,IAAAA,EAAQgC,YAGpD,OAAAC,EAAAA,KAAC1B,EAAA,IACOuB,EACJ,eAAcE,EACd,eAAclC,EACdD,UAAWqC,EAAAA,KAAG,aAAc,eAAiB7B,EAASR,GACtDe,SAAiB,WAAPjB,EAAkB,MAAAK,SAAAA,EAAQgC,gBAAa,EACjDjC,aAAcS,KACVF,EACJZ,IAAAA,EAEAE,SAAA,CAACqC,EAAAA,KAAA,MAAA,CAAIpC,UAAU,oBACVD,SAAA,CAAYO,GAAAA,EACZF,GAAyB,SAAjBC,GAA2BD,EACnCL,GAAYuC,EAAAA,IAAC,OAAK,CAAAtC,UAAU,mBAAoBD,SAAAA,IAChDQ,GAAaA,EACbH,GAAyB,UAAjBC,GAA4BD,KAGxCL,GACGuC,EAAAA,IAACC,EAAAA,OAAA,CACGvC,UAAU,qBACVQ,QAAQ,SACRgC,iBAAiB,MAAArC,SAAAA,EAAQqC,kBAAmB,iBAC5C,gBAAc,MAAArC,GAAAA,EAAQgC,gBAK1C,yCA0BO,SACHvC,GAEA,MAAM6C,EAAc,IAAK7C,EAAOY,QAAS,SAClC,OAAA8B,EAAAA,IAAC7C,EAAQ,IAAGgD,GACvB,wBA7BO,SACH7C,GAGA,MAAM6C,EAAc,IAAK7C,EAAOY,QAAS,WAClC,OAAA8B,EAAAA,IAAC7C,EAAQ,IAAGgD,GACvB,0BAEO,SACH7C,GAGA,MAAM6C,EAAc,IAAK7C,EAAOY,QAAS,aAClC,OAAA8B,EAAAA,IAAC7C,EAAQ,IAAGgD,GACvB,yBAEO,SACH7C,GAGA,MAAM6C,EAAc,IAAK7C,EAAOY,QAAS,YAClC,OAAA8B,EAAAA,IAAC7C,EAAQ,IAAGgD,GACvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../src/components/button/types.ts"],"sourcesContent":["import { Density
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/components/button/types.ts"],"sourcesContent":["import { Density } from \"../../core\";\nimport { PolymorphicPropsWithRef } from \"../../utilities\";\n\nexport const buttonVariants = [\"primary\", \"secondary\", \"tertiary\", \"ghost\"] as const;\nexport type ButtonVariant = (typeof buttonVariants)[number];\nexport type IconPosition = \"left\" | \"right\";\n\ntype IconOptions<T extends React.ElementType> =\n // Hvis ikke knappen har ikon, MÅ den ha children:\n | {\n iconPosition?: never;\n icon?: never;\n children: React.ComponentPropsWithoutRef<T>[\"children\"];\n }\n | {\n /**\n * Plasseringen av ikonet\n * @default \"left\"\n */\n iconPosition?: IconPosition;\n /**\n * Hvilket ikon som skal vises i knappen\n */\n icon: React.ReactElement;\n };\n\nexport type ButtonProps<ElementType extends React.ElementType> = PolymorphicPropsWithRef<\n ElementType,\n {\n density?: Density;\n /**\n * Hvilken variant av knappen skal vises\n * @default \"secondary\"\n */\n variant?: ButtonVariant;\n className?: string;\n loader?: {\n showLoader: boolean;\n textDescription: string;\n };\n /**\n * @deprecated Bruk `icon` i kombinasjon med `iconPosition=\"left\"`\n */\n iconLeft?: React.ReactNode;\n /**\n * @deprecated Bruk `icon` i kombinasjon med `iconPosition=\"right\"`\n */\n iconRight?: React.ReactNode;\n } & IconOptions<ElementType>\n>;\n\nexport type ButtonComponent = <ElementType extends React.ElementType = \"button\">(\n props: ButtonProps<ElementType>,\n) => React.ReactElement | null;\n"],"names":[],"mappings":"uGAG8B,CAAC,UAAW,YAAa,WAAY"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsxs as t,jsx as o}from"react/jsx-runtime";import{c as e}from"../../../clsx-BeLtu-UY.js";import r,{useCallback as s}from"react";import"../../hooks/useScreen/useScreen.js";import{useAriaLiveRegion as n}from"../../hooks/useAriaLiveRegion/useAriaLiveRegion.js";import"../../hooks/useId/useId.js";import{Loader as a}from"../loader/Loader.js";const i=r.forwardRef((function(r,i){const{as:c="button",children:l,className:u,density:d,onTouchStart:h,loader:m,icon:p,iconPosition:y="left",iconLeft:j,iconRight:v,variant:f="secondary",...g}=r,k=c,b=s((t=>{h&&h(t);const o=t.target;if(o&&!o.disabled&&t.targetTouches.length){const e=t.targetTouches[0].clientX-o.getBoundingClientRect().x,r=t.targetTouches[0].clientY-o.getBoundingClientRect().y;o.style.setProperty("--jkl-touch-xcoord",e.toPrecision(4)+"px"),o.style.setProperty("--jkl-touch-ycoord",r.toPrecision(4)+"px"),o.classList.add("jkl-button--pressed"),setTimeout((()=>{o.classList.remove("jkl-button--pressed"),o.style.removeProperty("--jkl-touch-xcoord"),o.style.removeProperty("--jkl-touch-ycoord")}),400)}}),[h]),x=n(null==m?void 0:m.showLoader),L=!!l&&!(null==m||!m.showLoader);return t(k,{...x,"data-loading":L,"data-density":d,className:e("jkl-button","jkl-button--"+f,u),disabled:"button"===c?null==m?void 0:m.showLoader:void 0,onTouchStart:b,...g,ref:i,children:[t("div",{className:"jkl-button__label",children:[j&&j,p&&"left"===y&&p,l&&o("span",{className:"jkl-button__text",children:l}),v&&v,p&&"right"===y&&p]}),l&&o(a,{className:"jkl-button__loader",variant:"medium",textDescription:(null==m?void 0:m.textDescription)||"Vennligst vent","aria-hidden":!(null!=m&&m.showLoader)})]})}));function c(t){const e={...t,variant:"primary"};return o(i,{...e})}function l(t){const e={...t,variant:"secondary"};return o(i,{...e})}function u(t){const e={...t,variant:"tertiary"};return o(i,{...e})}function d(t){const e={...t,variant:"ghost"};return o(i,{...e})}export{i as Button,d as GhostButton,c as PrimaryButton,l as SecondaryButton,u as TertiaryButton};
|
|
2
2
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../../../src/components/button/Button.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../../../src/components/button/Button.tsx"],"sourcesContent":["import cn from \"clsx\";\nimport React, { ButtonHTMLAttributes, type TouchEvent, useCallback } from \"react\";\nimport { useAriaLiveRegion } from \"../../hooks\";\nimport type { PolymorphicRef } from \"../../utilities\";\nimport { Loader } from \"../loader\";\nimport type { ButtonComponent, ButtonProps } from \"./types\";\n\nexport const Button = React.forwardRef(function Button<ElementType extends React.ElementType = \"button\">(\n props: ButtonProps<ElementType>,\n ref?: PolymorphicRef<ElementType>,\n) {\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 const handleTouch = useCallback(\n (event: TouchEvent<HTMLButtonElement>) => {\n onTouchStart && onTouchStart(event);\n\n const target = event.target as HTMLButtonElement;\n if (target && !target.disabled && event.targetTouches.length) {\n const Xcoord = event.targetTouches[0].clientX - target.getBoundingClientRect().x;\n const Ycoord = event.targetTouches[0].clientY - target.getBoundingClientRect().y;\n target.style.setProperty(\"--jkl-touch-xcoord\", Xcoord.toPrecision(4) + \"px\");\n target.style.setProperty(\"--jkl-touch-ycoord\", Ycoord.toPrecision(4) + \"px\");\n target.classList.add(\"jkl-button--pressed\");\n\n setTimeout(() => {\n target.classList.remove(\"jkl-button--pressed\");\n target.style.removeProperty(\"--jkl-touch-xcoord\");\n target.style.removeProperty(\"--jkl-touch-ycoord\");\n }, 400);\n }\n },\n [onTouchStart],\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={handleTouch}\n {...rest}\n ref={ref}\n >\n <div className=\"jkl-button__label\">\n {iconLeft && iconLeft}\n {icon && iconPosition === \"left\" && icon}\n {children && <span className=\"jkl-button__text\">{children}</span>}\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={loader?.textDescription || \"Vennligst vent\"}\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 = { ...props, variant: \"primary\" } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n\nexport function SecondaryButton<ElementType extends React.ElementType = \"button\">(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"onClick\" | \"as\"> &\n Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\">,\n) {\n const buttonProps = { ...props, variant: \"secondary\" } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n\nexport function TertiaryButton<ElementType extends React.ElementType = \"button\">(\n props: Omit<ButtonProps<ElementType>, \"variant\" | \"onClick\" | \"as\"> &\n Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"onClick\">,\n) {\n const buttonProps = { ...props, variant: \"tertiary\" } 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 = { ...props, variant: \"ghost\" } as ButtonProps<ElementType>;\n return <Button {...buttonProps} />;\n}\n"],"names":["Button","React","forwardRef","props","ref","as","children","className","density","onTouchStart","loader","icon","iconPosition","iconLeft","iconRight","variant","rest","Component","handleTouch","useCallback","event","target","disabled","targetTouches","length","Xcoord","clientX","getBoundingClientRect","x","Ycoord","clientY","y","style","setProperty","toPrecision","classList","add","setTimeout","remove","removeProperty","ariaLive","useAriaLiveRegion","showLoader","jsxs","cn","jsx","Loader","textDescription","PrimaryButton","buttonProps","SecondaryButton","TertiaryButton","GhostButton"],"mappings":"yVAOO,MAAMA,EAASC,EAAMC,YAAW,SACnCC,EACAC,GAEM,MACFC,GAAAA,EAAK,SACLC,SAAAA,EACAC,UAAAA,EACAC,QAAAA,EACAC,aAAAA,EACAC,OAAAA,EACAC,KAAAA,EACAC,aAAAA,EAAe,OACfC,SAAAA,EACAC,UAAAA,EACAC,QAAAA,EAAU,eACPC,GACHb,EAEEc,EAAYZ,EAEZa,EAAcC,GACfC,IACGX,GAAgBA,EAAaW,GAE7B,MAAMC,EAASD,EAAMC,OACrB,GAAIA,IAAWA,EAAOC,UAAYF,EAAMG,cAAcC,OAAQ,CACpD,MAAAC,EAASL,EAAMG,cAAc,GAAGG,QAAUL,EAAOM,wBAAwBC,EACzEC,EAAST,EAAMG,cAAc,GAAGO,QAAUT,EAAOM,wBAAwBI,EAC/EV,EAAOW,MAAMC,YAAY,qBAAsBR,EAAOS,YAAY,GAAK,MACvEb,EAAOW,MAAMC,YAAY,qBAAsBJ,EAAOK,YAAY,GAAK,MAChEb,EAAAc,UAAUC,IAAI,uBAErBC,YAAW,KACAhB,EAAAc,UAAUG,OAAO,uBACjBjB,EAAAW,MAAMO,eAAe,sBACrBlB,EAAAW,MAAMO,eAAe,qBAAoB,GACjD,IACP,IAEJ,CAAC9B,IAGC+B,EAAWC,EAAkB,MAAA/B,SAAAA,EAAQgC,YACrCA,IAAqBpC,KAAqB,MAAAI,IAAAA,EAAQgC,YAGpD,OAAAC,EAAC1B,EAAA,IACOuB,EACJ,eAAcE,EACd,eAAclC,EACdD,UAAWqC,EAAG,aAAc,eAAiB7B,EAASR,GACtDe,SAAiB,WAAPjB,EAAkB,MAAAK,OAAA,EAAAA,EAAQgC,gBAAa,EACjDjC,aAAcS,KACVF,EACJZ,IAAAA,EAEAE,SAAA,CAACqC,EAAA,MAAA,CAAIpC,UAAU,oBACVD,SAAA,CAAYO,GAAAA,EACZF,GAAyB,SAAjBC,GAA2BD,EACnCL,GAAYuC,EAAC,OAAK,CAAAtC,UAAU,mBAAoBD,SAAAA,IAChDQ,GAAaA,EACbH,GAAyB,UAAjBC,GAA4BD,KAGxCL,GACGuC,EAACC,EAAA,CACGvC,UAAU,qBACVQ,QAAQ,SACRgC,iBAAiB,MAAArC,OAAAA,EAAAA,EAAQqC,kBAAmB,iBAC5C,gBAAc,MAAArC,GAAAA,EAAQgC,gBAK1C,IAEO,SAASM,EACZ7C,GAGA,MAAM8C,EAAc,IAAK9C,EAAOY,QAAS,WAClC,OAAA8B,EAAC7C,EAAQ,IAAGiD,GACvB,CAEO,SAASC,EACZ/C,GAGA,MAAM8C,EAAc,IAAK9C,EAAOY,QAAS,aAClC,OAAA8B,EAAC7C,EAAQ,IAAGiD,GACvB,CAEO,SAASE,EACZhD,GAGA,MAAM8C,EAAc,IAAK9C,EAAOY,QAAS,YAClC,OAAA8B,EAAC7C,EAAQ,IAAGiD,GACvB,CAEO,SAASG,EACZjD,GAEA,MAAM8C,EAAc,IAAK9C,EAAOY,QAAS,SAClC,OAAA8B,EAAC7C,EAAQ,IAAGiD,GACvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../src/components/button/types.ts"],"sourcesContent":["import { Density
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/components/button/types.ts"],"sourcesContent":["import { Density } from \"../../core\";\nimport { PolymorphicPropsWithRef } from \"../../utilities\";\n\nexport const buttonVariants = [\"primary\", \"secondary\", \"tertiary\", \"ghost\"] as const;\nexport type ButtonVariant = (typeof buttonVariants)[number];\nexport type IconPosition = \"left\" | \"right\";\n\ntype IconOptions<T extends React.ElementType> =\n // Hvis ikke knappen har ikon, MÅ den ha children:\n | {\n iconPosition?: never;\n icon?: never;\n children: React.ComponentPropsWithoutRef<T>[\"children\"];\n }\n | {\n /**\n * Plasseringen av ikonet\n * @default \"left\"\n */\n iconPosition?: IconPosition;\n /**\n * Hvilket ikon som skal vises i knappen\n */\n icon: React.ReactElement;\n };\n\nexport type ButtonProps<ElementType extends React.ElementType> = PolymorphicPropsWithRef<\n ElementType,\n {\n density?: Density;\n /**\n * Hvilken variant av knappen skal vises\n * @default \"secondary\"\n */\n variant?: ButtonVariant;\n className?: string;\n loader?: {\n showLoader: boolean;\n textDescription: string;\n };\n /**\n * @deprecated Bruk `icon` i kombinasjon med `iconPosition=\"left\"`\n */\n iconLeft?: React.ReactNode;\n /**\n * @deprecated Bruk `icon` i kombinasjon med `iconPosition=\"right\"`\n */\n iconRight?: React.ReactNode;\n } & IconOptions<ElementType>\n>;\n\nexport type ButtonComponent = <ElementType extends React.ElementType = \"button\">(\n props: ButtonProps<ElementType>,\n) => React.ReactElement | null;\n"],"names":["buttonVariants"],"mappings":"AAGO,MAAMA,EAAiB,CAAC,UAAW,YAAa,WAAY"}
|
|
@@ -1,6 +1,23 @@
|
|
|
1
|
-
import { Density
|
|
1
|
+
import { Density } from '../../core';
|
|
2
|
+
import { PolymorphicPropsWithRef } from '../../utilities';
|
|
2
3
|
export declare const buttonVariants: readonly ["primary", "secondary", "tertiary", "ghost"];
|
|
3
4
|
export type ButtonVariant = (typeof buttonVariants)[number];
|
|
5
|
+
export type IconPosition = "left" | "right";
|
|
6
|
+
type IconOptions<T extends React.ElementType> = {
|
|
7
|
+
iconPosition?: never;
|
|
8
|
+
icon?: never;
|
|
9
|
+
children: React.ComponentPropsWithoutRef<T>["children"];
|
|
10
|
+
} | {
|
|
11
|
+
/**
|
|
12
|
+
* Plasseringen av ikonet
|
|
13
|
+
* @default "left"
|
|
14
|
+
*/
|
|
15
|
+
iconPosition?: IconPosition;
|
|
16
|
+
/**
|
|
17
|
+
* Hvilket ikon som skal vises i knappen
|
|
18
|
+
*/
|
|
19
|
+
icon: React.ReactElement;
|
|
20
|
+
};
|
|
4
21
|
export type ButtonProps<ElementType extends React.ElementType> = PolymorphicPropsWithRef<ElementType, {
|
|
5
22
|
density?: Density;
|
|
6
23
|
/**
|
|
@@ -13,7 +30,14 @@ export type ButtonProps<ElementType extends React.ElementType> = PolymorphicProp
|
|
|
13
30
|
showLoader: boolean;
|
|
14
31
|
textDescription: string;
|
|
15
32
|
};
|
|
33
|
+
/**
|
|
34
|
+
* @deprecated Bruk `icon` i kombinasjon med `iconPosition="left"`
|
|
35
|
+
*/
|
|
16
36
|
iconLeft?: React.ReactNode;
|
|
37
|
+
/**
|
|
38
|
+
* @deprecated Bruk `icon` i kombinasjon med `iconPosition="right"`
|
|
39
|
+
*/
|
|
17
40
|
iconRight?: React.ReactNode;
|
|
18
|
-
}
|
|
41
|
+
} & IconOptions<ElementType>>;
|
|
19
42
|
export type ButtonComponent = <ElementType extends React.ElementType = "button">(props: ButtonProps<ElementType>) => React.ReactElement | null;
|
|
43
|
+
export {};
|