@entur/button 3.4.1 → 4.0.0-beta-automat.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/dist/SecondarySquareButton.d.ts +4 -0
- package/dist/SquareButton.d.ts +8 -2
- package/dist/SuccessSquareButton.d.ts +4 -0
- package/dist/TertiarySquareButton.d.ts +1 -0
- package/dist/button.cjs.js +4 -1
- package/dist/button.cjs.js.map +1 -1
- package/dist/button.esm.js +4 -1
- package/dist/button.esm.js.map +1 -1
- package/dist/styles.css +357 -149
- package/package.json +4 -4
|
@@ -5,6 +5,10 @@ type SecondarySquareButtonBaseProps = {
|
|
|
5
5
|
children: React.ReactNode;
|
|
6
6
|
/** Ekstra klassenavn */
|
|
7
7
|
className?: string;
|
|
8
|
+
/** Størrelsen på knappen
|
|
9
|
+
* @default 'medium'
|
|
10
|
+
*/
|
|
11
|
+
size?: 'small' | 'medium' | 'large';
|
|
8
12
|
/** Deaktivering av knappen
|
|
9
13
|
* @default false
|
|
10
14
|
*/
|
package/dist/SquareButton.d.ts
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { PolymorphicComponentPropsWithRef } from '../../utils';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
/** @deprecated use variant="secondary" with size="small" instead */
|
|
4
|
+
declare const tertiary = "tertiary";
|
|
3
5
|
export type SquareButtonBaseProps = {
|
|
4
6
|
/** Tekst og ikon */
|
|
5
7
|
children: React.ReactNode;
|
|
6
8
|
/** Ekstra klassenavn */
|
|
7
9
|
className?: string;
|
|
8
|
-
/**
|
|
9
|
-
variant?: 'success' | 'secondary' |
|
|
10
|
+
/** Knappens uttrykk */
|
|
11
|
+
variant?: 'success' | 'secondary' | typeof tertiary;
|
|
12
|
+
/** Størrelsen på knappen
|
|
13
|
+
* @default 'medium'
|
|
14
|
+
*/
|
|
15
|
+
size?: 'small' | 'medium' | 'large';
|
|
10
16
|
/** Deaktivering av knappen
|
|
11
17
|
* @default false
|
|
12
18
|
*/
|
|
@@ -5,6 +5,10 @@ type SuccessSquareButtonBaseProps = {
|
|
|
5
5
|
children: React.ReactNode;
|
|
6
6
|
/** Ekstra klassenavn */
|
|
7
7
|
className?: string;
|
|
8
|
+
/** Størrelsen på knappen
|
|
9
|
+
* @default 'medium'
|
|
10
|
+
*/
|
|
11
|
+
size?: 'small' | 'medium' | 'large';
|
|
8
12
|
/** Deaktivering av knappen
|
|
9
13
|
* @default false
|
|
10
14
|
*/
|
|
@@ -19,5 +19,6 @@ type TertiarySquareButtonBaseProps = {
|
|
|
19
19
|
export type TertiarySquareButtonProps<T extends React.ElementType> = PolymorphicComponentPropsWithRef<T, TertiarySquareButtonBaseProps>;
|
|
20
20
|
export type TertiarySquareButtonComponent = <T extends React.ElementType = typeof defaultElement>(props: TertiarySquareButtonProps<T>) => React.ReactElement | null;
|
|
21
21
|
declare const defaultElement = "button";
|
|
22
|
+
/** @deprecated use SecondarySquareButton with size="small" instead */
|
|
22
23
|
export declare const TertiarySquareButton: TertiarySquareButtonComponent;
|
|
23
24
|
export {};
|
package/dist/button.cjs.js
CHANGED
|
@@ -157,6 +157,7 @@ const SquareButton = React__namespace.forwardRef(
|
|
|
157
157
|
disabled = false,
|
|
158
158
|
loading = false,
|
|
159
159
|
variant = "secondary",
|
|
160
|
+
size = "medium",
|
|
160
161
|
...rest
|
|
161
162
|
}, ref) => {
|
|
162
163
|
const Element = as || defaultElement$3;
|
|
@@ -167,7 +168,9 @@ const SquareButton = React__namespace.forwardRef(
|
|
|
167
168
|
"eds-square-button",
|
|
168
169
|
`eds-square-button--${variant}`,
|
|
169
170
|
{
|
|
170
|
-
"eds-square-button--loading": loading
|
|
171
|
+
"eds-square-button--loading": loading,
|
|
172
|
+
// Untill TertiarySquareButton is deleted we need to exclude it manually
|
|
173
|
+
[`eds-square-button--size-${size}`]: variant !== "tertiary"
|
|
171
174
|
},
|
|
172
175
|
className
|
|
173
176
|
),
|
package/dist/button.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.cjs.js","sources":["../src/Button.tsx","../src/PrimaryButton.tsx","../src/SecondaryButton.tsx","../src/SuccessButton.tsx","../src/NegativeButton.tsx","../src/TertiaryButton.tsx","../src/ButtonGroup.tsx","../src/FloatingButton.tsx","../src/SquareButton.tsx","../src/SecondarySquareButton.tsx","../src/SuccessSquareButton.tsx","../src/TertiarySquareButton.tsx","../src/IconButton.tsx","../src/index.tsx"],"sourcesContent":["import * as React from 'react';\nimport cx from 'classnames';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\nimport { LoadingDots } from '@entur/loader';\nimport './Button.scss';\n\n/** @deprecated use variant=\"secondary\" size=\"small\" instead */\nconst tertiary = 'tertiary';\n\ntype ButtonBaseProps = {\n /** Farge og uttrykk på knappen */\n variant: 'primary' | 'secondary' | 'success' | 'negative' | typeof tertiary;\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n /** Et HTML-element eller en React-komponent som komponenten tar utgangspunkt i for å lage denne knappevarianten\n * @default \"button\"\n */\n as?: string | React.ElementType;\n /**\n * Tekst som leses opp på skjermleser (nødvendig når knappetekst mangler)\n */\n 'aria-label'?: string;\n};\n\nconst defaultElement = 'button';\n\nexport type ButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, ButtonBaseProps>;\n\nexport type ButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: ButtonProps<T>,\n) => React.ReactElement | null;\n\nexport const Button: ButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n {\n as,\n children,\n variant = 'primary',\n size = 'medium',\n loading,\n className,\n disabled = false,\n width = 'auto',\n 'aria-label': ariaLabel,\n ...rest\n }: ButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = as || defaultElement;\n const childrenArray = React.Children.toArray(children);\n const hasLeadingIcon =\n childrenArray.length > 1 && typeof childrenArray[0] !== 'string';\n const hasTrailingIcon =\n childrenArray.length > 1 &&\n typeof childrenArray[childrenArray.length - 1] !== 'string';\n\n const ariaLabelWhenLoading = childrenArray\n .filter(child => typeof child === 'string')\n .join(' ');\n\n const ariaLabelValue = () => {\n if (ariaLabel) return ariaLabel;\n if (loading) return ariaLabelWhenLoading;\n return undefined;\n };\n\n return (\n <Element\n className={cx(\n 'eds-button',\n {\n [`eds-button--variant-${variant}`]: variant,\n [`eds-button--size-${size}`]: size,\n 'eds-button--width-fluid': width === 'fluid',\n 'eds-button--loading': loading,\n 'eds-button--leading-icon': hasLeadingIcon,\n 'eds-button--trailing-icon': hasTrailingIcon,\n },\n className,\n )}\n ref={ref}\n aria-busy={loading}\n disabled={disabled}\n aria-disabled={disabled}\n aria-label={ariaLabelValue()}\n {...rest}\n >\n {loading ? (\n <LoadingDots className=\"eds-button__loading-dots\" />\n ) : (\n children\n )}\n </Element>\n );\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type PrimaryButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type PrimaryButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, PrimaryButtonBaseProps>;\n\nexport type PrimaryButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: PrimaryButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const PrimaryButton: PrimaryButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: PrimaryButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n // @ts-expect-error type error due to props not being BaseButtonProps\n return <Button as={Element} {...props} ref={ref} variant=\"primary\" />;\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type SecondaryButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type SecondaryButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SecondaryButtonBaseProps>;\n\nexport type SecondaryButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SecondaryButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SecondaryButton: SecondaryButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: SecondaryButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n // @ts-expect-error type error due to props not being BaseButtonProps\n return <Button as={Element} {...props} ref={ref} variant=\"secondary\" />;\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type SuccessButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type SuccessButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SuccessButtonBaseProps>;\n\nexport type SuccessButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SuccessButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SuccessButton: SuccessButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: SuccessButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n // @ts-expect-error type error due to props not being BaseButtonProps\n return <Button as={Element} {...props} ref={ref} variant=\"success\" />;\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type NegativeButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type NegativeButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, NegativeButtonBaseProps>;\n\nexport type NegativeButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: NegativeButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const NegativeButton: NegativeButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: NegativeButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n // @ts-expect-error type error due to props not being BaseButtonProps\n return <Button as={Element} {...props} ref={ref} variant=\"negative\" />;\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type TertiaryButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type TertiaryButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, TertiaryButtonBaseProps>;\n\nexport type TertiaryButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: TertiaryButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\n/** @deprecated use SecondaryButton size=\"small\" instead */\nexport const TertiaryButton: TertiaryButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: TertiaryButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n return (\n <Button\n as={Element}\n {...props}\n ref={ref}\n variant=\"tertiary\"\n size=\"small\"\n />\n );\n },\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport './ButtonGroup.scss';\n\nexport type ButtonGroupProps = {\n /** To eller flere Button-komponenter */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** HTML-elementet eller React-komponenten som lages\n * @default \"div\"\n */\n as?: string | React.ElementType;\n [key: string]: any;\n};\n\nexport const ButtonGroup: React.FC<ButtonGroupProps> = ({\n as: Element = 'div',\n className,\n ...rest\n}) => {\n return (\n <Element className={classNames('eds-button-group', className)} {...rest} />\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport './FloatingButton.scss';\n\nexport type FloatingButtonProps = {\n /** Beskrivende tekst for skjermlesere */\n 'aria-label': string;\n /** Ikon eller ikon-og-tekst */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Callback når knappen klikkes */\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;\n /** Størrelse på knappen\n * @default \"medium\"\n */\n size?: 'medium' | 'small';\n [key: string]: any;\n} & React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const FloatingButton: React.FC<FloatingButtonProps> = ({\n className,\n children,\n size = 'medium',\n ...rest\n}) => {\n return (\n <button\n className={classNames(\n 'eds-floating-button',\n { 'eds-floating-button--extended': React.Children.count(children) > 1 },\n { 'eds-floating-button--small': size === 'small' },\n className,\n )}\n type=\"button\"\n {...rest}\n >\n {wrapStringsInSpans(children)}\n </button>\n );\n};\n\nconst wrapStringsInSpans = (children: React.ReactNode) =>\n React.Children.map(children, child =>\n typeof child === 'string' ? <span>{child}</span> : child,\n );\n","import * as React from 'react';\nimport classNames from 'classnames';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\nimport { LoadingDots } from '@entur/loader';\nimport './SquareButton.scss';\n\nexport type SquareButtonBaseProps = {\n /** Tekst og ikon */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** En type knapp */\n variant?: 'success' | 'secondary' | 'tertiary';\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** DOM-elementet knappen rendres som */\n as?: string | React.ElementType;\n};\n\nexport type SquareButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SquareButtonBaseProps>;\n\nexport type SquareButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SquareButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SquareButton: SquareButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n {\n as,\n children,\n className,\n disabled = false,\n loading = false,\n variant = 'secondary',\n ...rest\n }: SquareButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = as || defaultElement;\n return (\n <Element\n className={classNames(\n 'eds-square-button',\n `eds-square-button--${variant}`,\n {\n 'eds-square-button--loading': loading,\n },\n className,\n )}\n aria-busy={loading}\n disabled={disabled}\n aria-disabled={disabled}\n ref={ref}\n {...rest}\n >\n {React.Children.map(children, child => {\n if (typeof child === 'string') {\n return <span className=\"eds-square-button__label\">{child}</span>;\n }\n return (\n <span className=\"eds-square-button__button\">\n {loading ? (\n <LoadingDots className=\"eds-square-button__loading-dots\" />\n ) : (\n child\n )}\n </span>\n );\n })}\n </Element>\n );\n },\n);\n","import React from 'react';\nimport { SquareButton } from './SquareButton';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\ntype SecondarySquareButtonBaseProps = {\n /** Tekst og ikon, ikon og tekst, eller bare ikon */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n};\n\nexport type SecondarySquareButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SecondarySquareButtonBaseProps>;\n\nexport type SecondarySquareButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SecondarySquareButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SecondarySquareButton: SecondarySquareButtonComponent =\n React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: SecondarySquareButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n return (\n // @ts-expect-error type error due to props not being BaseButtonProps\n <SquareButton as={Element} ref={ref} {...props} variant=\"secondary\" />\n );\n },\n );\n","import React from 'react';\nimport { SquareButton } from './SquareButton';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\ntype SuccessSquareButtonBaseProps = {\n /** Tekst og ikon, ikon og tekst, eller bare ikon */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n};\n\nexport type SuccessSquareButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SuccessSquareButtonBaseProps>;\n\nexport type SuccessSquareButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SuccessSquareButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SuccessSquareButton: SuccessSquareButtonComponent =\n React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: SuccessSquareButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n return (\n // @ts-expect-error type error due to props not being BaseButtonProps\n <SquareButton as={Element} ref={ref} {...props} variant=\"success\" />\n );\n },\n );\n","import React from 'react';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\nimport { SquareButton } from './SquareButton';\n\ntype TertiarySquareButtonBaseProps = {\n /** Tekst og ikon, ikon og tekst, eller bare ikon */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** DOM-elementet knappen rendres som */\n as?: string | React.ElementType;\n};\n\nexport type TertiarySquareButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, TertiarySquareButtonBaseProps>;\n\nexport type TertiarySquareButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: TertiarySquareButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const TertiarySquareButton: TertiarySquareButtonComponent =\n React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: TertiarySquareButtonProps<T>,\n ref: PolymorphicRef<T>,\n // @ts-expect-error TS error seems to stem from how the props are built up\n ) => <SquareButton ref={ref} {...props} variant=\"tertiary\" />,\n );\n","import React from 'react';\nimport classNames from 'classnames';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\nimport { LoadingDots } from '@entur/loader';\nimport './IconButton.scss';\n\nexport type IconButtonBaseProps = {\n /** Ikonet som du vil ha inne i knappen */\n children: React.ReactNode;\n /** Tekst som forklarer knappens handling. MÅ være satt hvis du ikke har en forklarende tooltip på knappen */\n 'aria-label'?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** HTML-elementet eller React-komponenten som lager knappen\n * @default 'button'\n */\n as?: React.ElementType;\n /**Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n};\n\nconst defaultElement = 'button';\n\nexport type IconButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, IconButtonBaseProps>;\n\nexport type IconButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: IconButtonProps<T>,\n) => React.ReactElement | null;\n\nexport const IconButton: IconButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n {\n children,\n className,\n disabled = false,\n size = 'medium',\n as,\n loading,\n ...rest\n }: IconButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = as || defaultElement;\n\n const IconWithAriaHidden = React.Children.map(children, child => {\n if (React.isValidElement(child)) {\n // @ts-expect-error aria-hidden does, in fact, exist\n return React.cloneElement(child, { 'aria-hidden': true });\n }\n return child;\n });\n\n const iconButtonElement = (\n <Element\n className={classNames(\n 'eds-icon-button',\n className,\n {\n 'eds-icon-button--disabled': disabled,\n },\n `eds-icon-button--size-${size}`,\n )}\n disabled={disabled}\n aria-disabled={disabled}\n aria-busy={loading}\n ref={ref}\n {...rest}\n >\n {loading ? <LoadingDots /> : <>{IconWithAriaHidden}</>}\n </Element>\n );\n\n if (disabled) {\n return (\n <div className=\"eds-icon-button--disabled__wrapper\">\n {iconButtonElement}\n </div>\n );\n }\n return <>{iconButtonElement}</>;\n },\n);\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('button');\n\nexport * from './Button';\nexport * from './PrimaryButton';\nexport * from './SecondaryButton';\nexport * from './SuccessButton';\nexport * from './NegativeButton';\nexport * from './TertiaryButton';\nexport * from './ButtonGroup';\nexport * from './FloatingButton';\nexport * from './SecondarySquareButton';\nexport * from './SuccessSquareButton';\nexport * from './TertiarySquareButton';\nexport * from './IconButton';\n"],"names":["defaultElement","React","jsx","cx","LoadingDots","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"button.cjs.js","sources":["../src/Button.tsx","../src/PrimaryButton.tsx","../src/SecondaryButton.tsx","../src/SuccessButton.tsx","../src/NegativeButton.tsx","../src/TertiaryButton.tsx","../src/ButtonGroup.tsx","../src/FloatingButton.tsx","../src/SquareButton.tsx","../src/SecondarySquareButton.tsx","../src/SuccessSquareButton.tsx","../src/TertiarySquareButton.tsx","../src/IconButton.tsx","../src/index.tsx"],"sourcesContent":["import * as React from 'react';\nimport cx from 'classnames';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\nimport { LoadingDots } from '@entur/loader';\nimport './Button.scss';\n\n/** @deprecated use variant=\"secondary\" size=\"small\" instead */\nconst tertiary = 'tertiary';\n\ntype ButtonBaseProps = {\n /** Farge og uttrykk på knappen */\n variant: 'primary' | 'secondary' | 'success' | 'negative' | typeof tertiary;\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n /** Et HTML-element eller en React-komponent som komponenten tar utgangspunkt i for å lage denne knappevarianten\n * @default \"button\"\n */\n as?: string | React.ElementType;\n /**\n * Tekst som leses opp på skjermleser (nødvendig når knappetekst mangler)\n */\n 'aria-label'?: string;\n};\n\nconst defaultElement = 'button';\n\nexport type ButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, ButtonBaseProps>;\n\nexport type ButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: ButtonProps<T>,\n) => React.ReactElement | null;\n\nexport const Button: ButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n {\n as,\n children,\n variant = 'primary',\n size = 'medium',\n loading,\n className,\n disabled = false,\n width = 'auto',\n 'aria-label': ariaLabel,\n ...rest\n }: ButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = as || defaultElement;\n const childrenArray = React.Children.toArray(children);\n const hasLeadingIcon =\n childrenArray.length > 1 && typeof childrenArray[0] !== 'string';\n const hasTrailingIcon =\n childrenArray.length > 1 &&\n typeof childrenArray[childrenArray.length - 1] !== 'string';\n\n const ariaLabelWhenLoading = childrenArray\n .filter(child => typeof child === 'string')\n .join(' ');\n\n const ariaLabelValue = () => {\n if (ariaLabel) return ariaLabel;\n if (loading) return ariaLabelWhenLoading;\n return undefined;\n };\n\n return (\n <Element\n className={cx(\n 'eds-button',\n {\n [`eds-button--variant-${variant}`]: variant,\n [`eds-button--size-${size}`]: size,\n 'eds-button--width-fluid': width === 'fluid',\n 'eds-button--loading': loading,\n 'eds-button--leading-icon': hasLeadingIcon,\n 'eds-button--trailing-icon': hasTrailingIcon,\n },\n className,\n )}\n ref={ref}\n aria-busy={loading}\n disabled={disabled}\n aria-disabled={disabled}\n aria-label={ariaLabelValue()}\n {...rest}\n >\n {loading ? (\n <LoadingDots className=\"eds-button__loading-dots\" />\n ) : (\n children\n )}\n </Element>\n );\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type PrimaryButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type PrimaryButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, PrimaryButtonBaseProps>;\n\nexport type PrimaryButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: PrimaryButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const PrimaryButton: PrimaryButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: PrimaryButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n // @ts-expect-error type error due to props not being BaseButtonProps\n return <Button as={Element} {...props} ref={ref} variant=\"primary\" />;\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type SecondaryButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type SecondaryButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SecondaryButtonBaseProps>;\n\nexport type SecondaryButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SecondaryButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SecondaryButton: SecondaryButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: SecondaryButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n // @ts-expect-error type error due to props not being BaseButtonProps\n return <Button as={Element} {...props} ref={ref} variant=\"secondary\" />;\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type SuccessButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type SuccessButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SuccessButtonBaseProps>;\n\nexport type SuccessButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SuccessButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SuccessButton: SuccessButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: SuccessButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n // @ts-expect-error type error due to props not being BaseButtonProps\n return <Button as={Element} {...props} ref={ref} variant=\"success\" />;\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type NegativeButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type NegativeButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, NegativeButtonBaseProps>;\n\nexport type NegativeButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: NegativeButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const NegativeButton: NegativeButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: NegativeButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n // @ts-expect-error type error due to props not being BaseButtonProps\n return <Button as={Element} {...props} ref={ref} variant=\"negative\" />;\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type TertiaryButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type TertiaryButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, TertiaryButtonBaseProps>;\n\nexport type TertiaryButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: TertiaryButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\n/** @deprecated use SecondaryButton size=\"small\" instead */\nexport const TertiaryButton: TertiaryButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: TertiaryButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n return (\n <Button\n as={Element}\n {...props}\n ref={ref}\n variant=\"tertiary\"\n size=\"small\"\n />\n );\n },\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport './ButtonGroup.scss';\n\nexport type ButtonGroupProps = {\n /** To eller flere Button-komponenter */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** HTML-elementet eller React-komponenten som lages\n * @default \"div\"\n */\n as?: string | React.ElementType;\n [key: string]: any;\n};\n\nexport const ButtonGroup: React.FC<ButtonGroupProps> = ({\n as: Element = 'div',\n className,\n ...rest\n}) => {\n return (\n <Element className={classNames('eds-button-group', className)} {...rest} />\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport './FloatingButton.scss';\n\nexport type FloatingButtonProps = {\n /** Beskrivende tekst for skjermlesere */\n 'aria-label': string;\n /** Ikon eller ikon-og-tekst */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Callback når knappen klikkes */\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;\n /** Størrelse på knappen\n * @default \"medium\"\n */\n size?: 'medium' | 'small';\n [key: string]: any;\n} & React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const FloatingButton: React.FC<FloatingButtonProps> = ({\n className,\n children,\n size = 'medium',\n ...rest\n}) => {\n return (\n <button\n className={classNames(\n 'eds-floating-button',\n { 'eds-floating-button--extended': React.Children.count(children) > 1 },\n { 'eds-floating-button--small': size === 'small' },\n className,\n )}\n type=\"button\"\n {...rest}\n >\n {wrapStringsInSpans(children)}\n </button>\n );\n};\n\nconst wrapStringsInSpans = (children: React.ReactNode) =>\n React.Children.map(children, child =>\n typeof child === 'string' ? <span>{child}</span> : child,\n );\n","import * as React from 'react';\nimport classNames from 'classnames';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\nimport { LoadingDots } from '@entur/loader';\nimport './SquareButton.scss';\n\n/** @deprecated use variant=\"secondary\" with size=\"small\" instead */\nconst tertiary = 'tertiary';\n\nexport type SquareButtonBaseProps = {\n /** Tekst og ikon */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Knappens uttrykk */\n variant?: 'success' | 'secondary' | typeof tertiary;\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** DOM-elementet knappen rendres som */\n as?: string | React.ElementType;\n};\n\nexport type SquareButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SquareButtonBaseProps>;\n\nexport type SquareButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SquareButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SquareButton: SquareButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n {\n as,\n children,\n className,\n disabled = false,\n loading = false,\n variant = 'secondary',\n size = 'medium',\n ...rest\n }: SquareButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = as || defaultElement;\n return (\n <Element\n className={classNames(\n 'eds-square-button',\n `eds-square-button--${variant}`,\n {\n 'eds-square-button--loading': loading,\n // Untill TertiarySquareButton is deleted we need to exclude it manually\n [`eds-square-button--size-${size}`]: variant !== 'tertiary',\n },\n className,\n )}\n aria-busy={loading}\n disabled={disabled}\n aria-disabled={disabled}\n ref={ref}\n {...rest}\n >\n {React.Children.map(children, child => {\n if (typeof child === 'string') {\n return <span className=\"eds-square-button__label\">{child}</span>;\n }\n return (\n <span className=\"eds-square-button__button\">\n {loading ? (\n <LoadingDots className=\"eds-square-button__loading-dots\" />\n ) : (\n child\n )}\n </span>\n );\n })}\n </Element>\n );\n },\n);\n","import React from 'react';\nimport { SquareButton } from './SquareButton';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\ntype SecondarySquareButtonBaseProps = {\n /** Tekst og ikon, ikon og tekst, eller bare ikon */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n};\n\nexport type SecondarySquareButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SecondarySquareButtonBaseProps>;\n\nexport type SecondarySquareButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SecondarySquareButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SecondarySquareButton: SecondarySquareButtonComponent =\n React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: SecondarySquareButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n return (\n // @ts-expect-error type error due to props not being BaseButtonProps\n <SquareButton as={Element} ref={ref} {...props} variant=\"secondary\" />\n );\n },\n );\n","import React from 'react';\nimport { SquareButton } from './SquareButton';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\ntype SuccessSquareButtonBaseProps = {\n /** Tekst og ikon, ikon og tekst, eller bare ikon */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n};\n\nexport type SuccessSquareButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SuccessSquareButtonBaseProps>;\n\nexport type SuccessSquareButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SuccessSquareButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SuccessSquareButton: SuccessSquareButtonComponent =\n React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: SuccessSquareButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n return (\n // @ts-expect-error type error due to props not being BaseButtonProps\n <SquareButton as={Element} ref={ref} {...props} variant=\"success\" />\n );\n },\n );\n","import React from 'react';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\nimport { SquareButton } from './SquareButton';\n\ntype TertiarySquareButtonBaseProps = {\n /** Tekst og ikon, ikon og tekst, eller bare ikon */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** DOM-elementet knappen rendres som */\n as?: string | React.ElementType;\n};\n\nexport type TertiarySquareButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, TertiarySquareButtonBaseProps>;\n\nexport type TertiarySquareButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: TertiarySquareButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\n/** @deprecated use SecondarySquareButton with size=\"small\" instead */\nexport const TertiarySquareButton: TertiarySquareButtonComponent =\n React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: TertiarySquareButtonProps<T>,\n ref: PolymorphicRef<T>,\n // @ts-expect-error TS error seems to stem from how the props are built up\n ) => <SquareButton ref={ref} {...props} variant=\"tertiary\" />,\n );\n","import React from 'react';\nimport classNames from 'classnames';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\nimport { LoadingDots } from '@entur/loader';\nimport './IconButton.scss';\n\nexport type IconButtonBaseProps = {\n /** Ikonet som du vil ha inne i knappen */\n children: React.ReactNode;\n /** Tekst som forklarer knappens handling. MÅ være satt hvis du ikke har en forklarende tooltip på knappen */\n 'aria-label'?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** HTML-elementet eller React-komponenten som lager knappen\n * @default 'button'\n */\n as?: React.ElementType;\n /**Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n};\n\nconst defaultElement = 'button';\n\nexport type IconButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, IconButtonBaseProps>;\n\nexport type IconButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: IconButtonProps<T>,\n) => React.ReactElement | null;\n\nexport const IconButton: IconButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n {\n children,\n className,\n disabled = false,\n size = 'medium',\n as,\n loading,\n ...rest\n }: IconButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = as || defaultElement;\n\n const IconWithAriaHidden = React.Children.map(children, child => {\n if (React.isValidElement(child)) {\n // @ts-expect-error aria-hidden does, in fact, exist\n return React.cloneElement(child, { 'aria-hidden': true });\n }\n return child;\n });\n\n const iconButtonElement = (\n <Element\n className={classNames(\n 'eds-icon-button',\n className,\n {\n 'eds-icon-button--disabled': disabled,\n },\n `eds-icon-button--size-${size}`,\n )}\n disabled={disabled}\n aria-disabled={disabled}\n aria-busy={loading}\n ref={ref}\n {...rest}\n >\n {loading ? <LoadingDots /> : <>{IconWithAriaHidden}</>}\n </Element>\n );\n\n if (disabled) {\n return (\n <div className=\"eds-icon-button--disabled__wrapper\">\n {iconButtonElement}\n </div>\n );\n }\n return <>{iconButtonElement}</>;\n },\n);\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('button');\n\nexport * from './Button';\nexport * from './PrimaryButton';\nexport * from './SecondaryButton';\nexport * from './SuccessButton';\nexport * from './NegativeButton';\nexport * from './TertiaryButton';\nexport * from './ButtonGroup';\nexport * from './FloatingButton';\nexport * from './SecondarySquareButton';\nexport * from './SuccessSquareButton';\nexport * from './TertiarySquareButton';\nexport * from './IconButton';\n"],"names":["defaultElement","React","jsx","cx","LoadingDots","warnAboutMissingStyles"],"mappings":"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"}
|
package/dist/button.esm.js
CHANGED
|
@@ -139,6 +139,7 @@ const SquareButton = React.forwardRef(
|
|
|
139
139
|
disabled = false,
|
|
140
140
|
loading = false,
|
|
141
141
|
variant = "secondary",
|
|
142
|
+
size = "medium",
|
|
142
143
|
...rest
|
|
143
144
|
}, ref) => {
|
|
144
145
|
const Element = as || defaultElement$3;
|
|
@@ -149,7 +150,9 @@ const SquareButton = React.forwardRef(
|
|
|
149
150
|
"eds-square-button",
|
|
150
151
|
`eds-square-button--${variant}`,
|
|
151
152
|
{
|
|
152
|
-
"eds-square-button--loading": loading
|
|
153
|
+
"eds-square-button--loading": loading,
|
|
154
|
+
// Untill TertiarySquareButton is deleted we need to exclude it manually
|
|
155
|
+
[`eds-square-button--size-${size}`]: variant !== "tertiary"
|
|
153
156
|
},
|
|
154
157
|
className
|
|
155
158
|
),
|
package/dist/button.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.esm.js","sources":["../src/Button.tsx","../src/PrimaryButton.tsx","../src/SecondaryButton.tsx","../src/SuccessButton.tsx","../src/NegativeButton.tsx","../src/TertiaryButton.tsx","../src/ButtonGroup.tsx","../src/FloatingButton.tsx","../src/SquareButton.tsx","../src/SecondarySquareButton.tsx","../src/SuccessSquareButton.tsx","../src/TertiarySquareButton.tsx","../src/IconButton.tsx","../src/index.tsx"],"sourcesContent":["import * as React from 'react';\nimport cx from 'classnames';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\nimport { LoadingDots } from '@entur/loader';\nimport './Button.scss';\n\n/** @deprecated use variant=\"secondary\" size=\"small\" instead */\nconst tertiary = 'tertiary';\n\ntype ButtonBaseProps = {\n /** Farge og uttrykk på knappen */\n variant: 'primary' | 'secondary' | 'success' | 'negative' | typeof tertiary;\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n /** Et HTML-element eller en React-komponent som komponenten tar utgangspunkt i for å lage denne knappevarianten\n * @default \"button\"\n */\n as?: string | React.ElementType;\n /**\n * Tekst som leses opp på skjermleser (nødvendig når knappetekst mangler)\n */\n 'aria-label'?: string;\n};\n\nconst defaultElement = 'button';\n\nexport type ButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, ButtonBaseProps>;\n\nexport type ButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: ButtonProps<T>,\n) => React.ReactElement | null;\n\nexport const Button: ButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n {\n as,\n children,\n variant = 'primary',\n size = 'medium',\n loading,\n className,\n disabled = false,\n width = 'auto',\n 'aria-label': ariaLabel,\n ...rest\n }: ButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = as || defaultElement;\n const childrenArray = React.Children.toArray(children);\n const hasLeadingIcon =\n childrenArray.length > 1 && typeof childrenArray[0] !== 'string';\n const hasTrailingIcon =\n childrenArray.length > 1 &&\n typeof childrenArray[childrenArray.length - 1] !== 'string';\n\n const ariaLabelWhenLoading = childrenArray\n .filter(child => typeof child === 'string')\n .join(' ');\n\n const ariaLabelValue = () => {\n if (ariaLabel) return ariaLabel;\n if (loading) return ariaLabelWhenLoading;\n return undefined;\n };\n\n return (\n <Element\n className={cx(\n 'eds-button',\n {\n [`eds-button--variant-${variant}`]: variant,\n [`eds-button--size-${size}`]: size,\n 'eds-button--width-fluid': width === 'fluid',\n 'eds-button--loading': loading,\n 'eds-button--leading-icon': hasLeadingIcon,\n 'eds-button--trailing-icon': hasTrailingIcon,\n },\n className,\n )}\n ref={ref}\n aria-busy={loading}\n disabled={disabled}\n aria-disabled={disabled}\n aria-label={ariaLabelValue()}\n {...rest}\n >\n {loading ? (\n <LoadingDots className=\"eds-button__loading-dots\" />\n ) : (\n children\n )}\n </Element>\n );\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type PrimaryButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type PrimaryButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, PrimaryButtonBaseProps>;\n\nexport type PrimaryButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: PrimaryButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const PrimaryButton: PrimaryButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: PrimaryButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n // @ts-expect-error type error due to props not being BaseButtonProps\n return <Button as={Element} {...props} ref={ref} variant=\"primary\" />;\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type SecondaryButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type SecondaryButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SecondaryButtonBaseProps>;\n\nexport type SecondaryButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SecondaryButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SecondaryButton: SecondaryButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: SecondaryButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n // @ts-expect-error type error due to props not being BaseButtonProps\n return <Button as={Element} {...props} ref={ref} variant=\"secondary\" />;\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type SuccessButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type SuccessButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SuccessButtonBaseProps>;\n\nexport type SuccessButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SuccessButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SuccessButton: SuccessButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: SuccessButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n // @ts-expect-error type error due to props not being BaseButtonProps\n return <Button as={Element} {...props} ref={ref} variant=\"success\" />;\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type NegativeButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type NegativeButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, NegativeButtonBaseProps>;\n\nexport type NegativeButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: NegativeButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const NegativeButton: NegativeButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: NegativeButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n // @ts-expect-error type error due to props not being BaseButtonProps\n return <Button as={Element} {...props} ref={ref} variant=\"negative\" />;\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type TertiaryButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type TertiaryButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, TertiaryButtonBaseProps>;\n\nexport type TertiaryButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: TertiaryButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\n/** @deprecated use SecondaryButton size=\"small\" instead */\nexport const TertiaryButton: TertiaryButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: TertiaryButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n return (\n <Button\n as={Element}\n {...props}\n ref={ref}\n variant=\"tertiary\"\n size=\"small\"\n />\n );\n },\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport './ButtonGroup.scss';\n\nexport type ButtonGroupProps = {\n /** To eller flere Button-komponenter */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** HTML-elementet eller React-komponenten som lages\n * @default \"div\"\n */\n as?: string | React.ElementType;\n [key: string]: any;\n};\n\nexport const ButtonGroup: React.FC<ButtonGroupProps> = ({\n as: Element = 'div',\n className,\n ...rest\n}) => {\n return (\n <Element className={classNames('eds-button-group', className)} {...rest} />\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport './FloatingButton.scss';\n\nexport type FloatingButtonProps = {\n /** Beskrivende tekst for skjermlesere */\n 'aria-label': string;\n /** Ikon eller ikon-og-tekst */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Callback når knappen klikkes */\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;\n /** Størrelse på knappen\n * @default \"medium\"\n */\n size?: 'medium' | 'small';\n [key: string]: any;\n} & React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const FloatingButton: React.FC<FloatingButtonProps> = ({\n className,\n children,\n size = 'medium',\n ...rest\n}) => {\n return (\n <button\n className={classNames(\n 'eds-floating-button',\n { 'eds-floating-button--extended': React.Children.count(children) > 1 },\n { 'eds-floating-button--small': size === 'small' },\n className,\n )}\n type=\"button\"\n {...rest}\n >\n {wrapStringsInSpans(children)}\n </button>\n );\n};\n\nconst wrapStringsInSpans = (children: React.ReactNode) =>\n React.Children.map(children, child =>\n typeof child === 'string' ? <span>{child}</span> : child,\n );\n","import * as React from 'react';\nimport classNames from 'classnames';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\nimport { LoadingDots } from '@entur/loader';\nimport './SquareButton.scss';\n\nexport type SquareButtonBaseProps = {\n /** Tekst og ikon */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** En type knapp */\n variant?: 'success' | 'secondary' | 'tertiary';\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** DOM-elementet knappen rendres som */\n as?: string | React.ElementType;\n};\n\nexport type SquareButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SquareButtonBaseProps>;\n\nexport type SquareButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SquareButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SquareButton: SquareButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n {\n as,\n children,\n className,\n disabled = false,\n loading = false,\n variant = 'secondary',\n ...rest\n }: SquareButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = as || defaultElement;\n return (\n <Element\n className={classNames(\n 'eds-square-button',\n `eds-square-button--${variant}`,\n {\n 'eds-square-button--loading': loading,\n },\n className,\n )}\n aria-busy={loading}\n disabled={disabled}\n aria-disabled={disabled}\n ref={ref}\n {...rest}\n >\n {React.Children.map(children, child => {\n if (typeof child === 'string') {\n return <span className=\"eds-square-button__label\">{child}</span>;\n }\n return (\n <span className=\"eds-square-button__button\">\n {loading ? (\n <LoadingDots className=\"eds-square-button__loading-dots\" />\n ) : (\n child\n )}\n </span>\n );\n })}\n </Element>\n );\n },\n);\n","import React from 'react';\nimport { SquareButton } from './SquareButton';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\ntype SecondarySquareButtonBaseProps = {\n /** Tekst og ikon, ikon og tekst, eller bare ikon */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n};\n\nexport type SecondarySquareButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SecondarySquareButtonBaseProps>;\n\nexport type SecondarySquareButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SecondarySquareButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SecondarySquareButton: SecondarySquareButtonComponent =\n React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: SecondarySquareButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n return (\n // @ts-expect-error type error due to props not being BaseButtonProps\n <SquareButton as={Element} ref={ref} {...props} variant=\"secondary\" />\n );\n },\n );\n","import React from 'react';\nimport { SquareButton } from './SquareButton';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\ntype SuccessSquareButtonBaseProps = {\n /** Tekst og ikon, ikon og tekst, eller bare ikon */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n};\n\nexport type SuccessSquareButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SuccessSquareButtonBaseProps>;\n\nexport type SuccessSquareButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SuccessSquareButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SuccessSquareButton: SuccessSquareButtonComponent =\n React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: SuccessSquareButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n return (\n // @ts-expect-error type error due to props not being BaseButtonProps\n <SquareButton as={Element} ref={ref} {...props} variant=\"success\" />\n );\n },\n );\n","import React from 'react';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\nimport { SquareButton } from './SquareButton';\n\ntype TertiarySquareButtonBaseProps = {\n /** Tekst og ikon, ikon og tekst, eller bare ikon */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** DOM-elementet knappen rendres som */\n as?: string | React.ElementType;\n};\n\nexport type TertiarySquareButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, TertiarySquareButtonBaseProps>;\n\nexport type TertiarySquareButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: TertiarySquareButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const TertiarySquareButton: TertiarySquareButtonComponent =\n React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: TertiarySquareButtonProps<T>,\n ref: PolymorphicRef<T>,\n // @ts-expect-error TS error seems to stem from how the props are built up\n ) => <SquareButton ref={ref} {...props} variant=\"tertiary\" />,\n );\n","import React from 'react';\nimport classNames from 'classnames';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\nimport { LoadingDots } from '@entur/loader';\nimport './IconButton.scss';\n\nexport type IconButtonBaseProps = {\n /** Ikonet som du vil ha inne i knappen */\n children: React.ReactNode;\n /** Tekst som forklarer knappens handling. MÅ være satt hvis du ikke har en forklarende tooltip på knappen */\n 'aria-label'?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** HTML-elementet eller React-komponenten som lager knappen\n * @default 'button'\n */\n as?: React.ElementType;\n /**Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n};\n\nconst defaultElement = 'button';\n\nexport type IconButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, IconButtonBaseProps>;\n\nexport type IconButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: IconButtonProps<T>,\n) => React.ReactElement | null;\n\nexport const IconButton: IconButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n {\n children,\n className,\n disabled = false,\n size = 'medium',\n as,\n loading,\n ...rest\n }: IconButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = as || defaultElement;\n\n const IconWithAriaHidden = React.Children.map(children, child => {\n if (React.isValidElement(child)) {\n // @ts-expect-error aria-hidden does, in fact, exist\n return React.cloneElement(child, { 'aria-hidden': true });\n }\n return child;\n });\n\n const iconButtonElement = (\n <Element\n className={classNames(\n 'eds-icon-button',\n className,\n {\n 'eds-icon-button--disabled': disabled,\n },\n `eds-icon-button--size-${size}`,\n )}\n disabled={disabled}\n aria-disabled={disabled}\n aria-busy={loading}\n ref={ref}\n {...rest}\n >\n {loading ? <LoadingDots /> : <>{IconWithAriaHidden}</>}\n </Element>\n );\n\n if (disabled) {\n return (\n <div className=\"eds-icon-button--disabled__wrapper\">\n {iconButtonElement}\n </div>\n );\n }\n return <>{iconButtonElement}</>;\n },\n);\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('button');\n\nexport * from './Button';\nexport * from './PrimaryButton';\nexport * from './SecondaryButton';\nexport * from './SuccessButton';\nexport * from './NegativeButton';\nexport * from './TertiaryButton';\nexport * from './ButtonGroup';\nexport * from './FloatingButton';\nexport * from './SecondarySquareButton';\nexport * from './SuccessSquareButton';\nexport * from './TertiarySquareButton';\nexport * from './IconButton';\n"],"names":["defaultElement","cx","React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"button.esm.js","sources":["../src/Button.tsx","../src/PrimaryButton.tsx","../src/SecondaryButton.tsx","../src/SuccessButton.tsx","../src/NegativeButton.tsx","../src/TertiaryButton.tsx","../src/ButtonGroup.tsx","../src/FloatingButton.tsx","../src/SquareButton.tsx","../src/SecondarySquareButton.tsx","../src/SuccessSquareButton.tsx","../src/TertiarySquareButton.tsx","../src/IconButton.tsx","../src/index.tsx"],"sourcesContent":["import * as React from 'react';\nimport cx from 'classnames';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\nimport { LoadingDots } from '@entur/loader';\nimport './Button.scss';\n\n/** @deprecated use variant=\"secondary\" size=\"small\" instead */\nconst tertiary = 'tertiary';\n\ntype ButtonBaseProps = {\n /** Farge og uttrykk på knappen */\n variant: 'primary' | 'secondary' | 'success' | 'negative' | typeof tertiary;\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n /** Et HTML-element eller en React-komponent som komponenten tar utgangspunkt i for å lage denne knappevarianten\n * @default \"button\"\n */\n as?: string | React.ElementType;\n /**\n * Tekst som leses opp på skjermleser (nødvendig når knappetekst mangler)\n */\n 'aria-label'?: string;\n};\n\nconst defaultElement = 'button';\n\nexport type ButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, ButtonBaseProps>;\n\nexport type ButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: ButtonProps<T>,\n) => React.ReactElement | null;\n\nexport const Button: ButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n {\n as,\n children,\n variant = 'primary',\n size = 'medium',\n loading,\n className,\n disabled = false,\n width = 'auto',\n 'aria-label': ariaLabel,\n ...rest\n }: ButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = as || defaultElement;\n const childrenArray = React.Children.toArray(children);\n const hasLeadingIcon =\n childrenArray.length > 1 && typeof childrenArray[0] !== 'string';\n const hasTrailingIcon =\n childrenArray.length > 1 &&\n typeof childrenArray[childrenArray.length - 1] !== 'string';\n\n const ariaLabelWhenLoading = childrenArray\n .filter(child => typeof child === 'string')\n .join(' ');\n\n const ariaLabelValue = () => {\n if (ariaLabel) return ariaLabel;\n if (loading) return ariaLabelWhenLoading;\n return undefined;\n };\n\n return (\n <Element\n className={cx(\n 'eds-button',\n {\n [`eds-button--variant-${variant}`]: variant,\n [`eds-button--size-${size}`]: size,\n 'eds-button--width-fluid': width === 'fluid',\n 'eds-button--loading': loading,\n 'eds-button--leading-icon': hasLeadingIcon,\n 'eds-button--trailing-icon': hasTrailingIcon,\n },\n className,\n )}\n ref={ref}\n aria-busy={loading}\n disabled={disabled}\n aria-disabled={disabled}\n aria-label={ariaLabelValue()}\n {...rest}\n >\n {loading ? (\n <LoadingDots className=\"eds-button__loading-dots\" />\n ) : (\n children\n )}\n </Element>\n );\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type PrimaryButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type PrimaryButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, PrimaryButtonBaseProps>;\n\nexport type PrimaryButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: PrimaryButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const PrimaryButton: PrimaryButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: PrimaryButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n // @ts-expect-error type error due to props not being BaseButtonProps\n return <Button as={Element} {...props} ref={ref} variant=\"primary\" />;\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type SecondaryButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type SecondaryButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SecondaryButtonBaseProps>;\n\nexport type SecondaryButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SecondaryButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SecondaryButton: SecondaryButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: SecondaryButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n // @ts-expect-error type error due to props not being BaseButtonProps\n return <Button as={Element} {...props} ref={ref} variant=\"secondary\" />;\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type SuccessButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type SuccessButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SuccessButtonBaseProps>;\n\nexport type SuccessButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SuccessButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SuccessButton: SuccessButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: SuccessButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n // @ts-expect-error type error due to props not being BaseButtonProps\n return <Button as={Element} {...props} ref={ref} variant=\"success\" />;\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type NegativeButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type NegativeButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, NegativeButtonBaseProps>;\n\nexport type NegativeButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: NegativeButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const NegativeButton: NegativeButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: NegativeButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n // @ts-expect-error type error due to props not being BaseButtonProps\n return <Button as={Element} {...props} ref={ref} variant=\"negative\" />;\n },\n);\n","import React from 'react';\nimport { Button } from './Button';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\nexport type TertiaryButtonBaseProps = {\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'medium' | 'large';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Bredden på knappen.\n * @default 'auto'\n */\n width?: 'fluid' | 'auto';\n /** Innholdet i knappen */\n children: React.ReactNode;\n};\n\nexport type TertiaryButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, TertiaryButtonBaseProps>;\n\nexport type TertiaryButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: TertiaryButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\n/** @deprecated use SecondaryButton size=\"small\" instead */\nexport const TertiaryButton: TertiaryButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: TertiaryButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n return (\n <Button\n as={Element}\n {...props}\n ref={ref}\n variant=\"tertiary\"\n size=\"small\"\n />\n );\n },\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport './ButtonGroup.scss';\n\nexport type ButtonGroupProps = {\n /** To eller flere Button-komponenter */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** HTML-elementet eller React-komponenten som lages\n * @default \"div\"\n */\n as?: string | React.ElementType;\n [key: string]: any;\n};\n\nexport const ButtonGroup: React.FC<ButtonGroupProps> = ({\n as: Element = 'div',\n className,\n ...rest\n}) => {\n return (\n <Element className={classNames('eds-button-group', className)} {...rest} />\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport './FloatingButton.scss';\n\nexport type FloatingButtonProps = {\n /** Beskrivende tekst for skjermlesere */\n 'aria-label': string;\n /** Ikon eller ikon-og-tekst */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Callback når knappen klikkes */\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;\n /** Størrelse på knappen\n * @default \"medium\"\n */\n size?: 'medium' | 'small';\n [key: string]: any;\n} & React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const FloatingButton: React.FC<FloatingButtonProps> = ({\n className,\n children,\n size = 'medium',\n ...rest\n}) => {\n return (\n <button\n className={classNames(\n 'eds-floating-button',\n { 'eds-floating-button--extended': React.Children.count(children) > 1 },\n { 'eds-floating-button--small': size === 'small' },\n className,\n )}\n type=\"button\"\n {...rest}\n >\n {wrapStringsInSpans(children)}\n </button>\n );\n};\n\nconst wrapStringsInSpans = (children: React.ReactNode) =>\n React.Children.map(children, child =>\n typeof child === 'string' ? <span>{child}</span> : child,\n );\n","import * as React from 'react';\nimport classNames from 'classnames';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\nimport { LoadingDots } from '@entur/loader';\nimport './SquareButton.scss';\n\n/** @deprecated use variant=\"secondary\" with size=\"small\" instead */\nconst tertiary = 'tertiary';\n\nexport type SquareButtonBaseProps = {\n /** Tekst og ikon */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Knappens uttrykk */\n variant?: 'success' | 'secondary' | typeof tertiary;\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** DOM-elementet knappen rendres som */\n as?: string | React.ElementType;\n};\n\nexport type SquareButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SquareButtonBaseProps>;\n\nexport type SquareButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SquareButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SquareButton: SquareButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n {\n as,\n children,\n className,\n disabled = false,\n loading = false,\n variant = 'secondary',\n size = 'medium',\n ...rest\n }: SquareButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = as || defaultElement;\n return (\n <Element\n className={classNames(\n 'eds-square-button',\n `eds-square-button--${variant}`,\n {\n 'eds-square-button--loading': loading,\n // Untill TertiarySquareButton is deleted we need to exclude it manually\n [`eds-square-button--size-${size}`]: variant !== 'tertiary',\n },\n className,\n )}\n aria-busy={loading}\n disabled={disabled}\n aria-disabled={disabled}\n ref={ref}\n {...rest}\n >\n {React.Children.map(children, child => {\n if (typeof child === 'string') {\n return <span className=\"eds-square-button__label\">{child}</span>;\n }\n return (\n <span className=\"eds-square-button__button\">\n {loading ? (\n <LoadingDots className=\"eds-square-button__loading-dots\" />\n ) : (\n child\n )}\n </span>\n );\n })}\n </Element>\n );\n },\n);\n","import React from 'react';\nimport { SquareButton } from './SquareButton';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\ntype SecondarySquareButtonBaseProps = {\n /** Tekst og ikon, ikon og tekst, eller bare ikon */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n};\n\nexport type SecondarySquareButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SecondarySquareButtonBaseProps>;\n\nexport type SecondarySquareButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SecondarySquareButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SecondarySquareButton: SecondarySquareButtonComponent =\n React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: SecondarySquareButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n return (\n // @ts-expect-error type error due to props not being BaseButtonProps\n <SquareButton as={Element} ref={ref} {...props} variant=\"secondary\" />\n );\n },\n );\n","import React from 'react';\nimport { SquareButton } from './SquareButton';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\n\ntype SuccessSquareButtonBaseProps = {\n /** Tekst og ikon, ikon og tekst, eller bare ikon */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n};\n\nexport type SuccessSquareButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, SuccessSquareButtonBaseProps>;\n\nexport type SuccessSquareButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: SuccessSquareButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\nexport const SuccessSquareButton: SuccessSquareButtonComponent =\n React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: SuccessSquareButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = props.as || defaultElement;\n return (\n // @ts-expect-error type error due to props not being BaseButtonProps\n <SquareButton as={Element} ref={ref} {...props} variant=\"success\" />\n );\n },\n );\n","import React from 'react';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\nimport { SquareButton } from './SquareButton';\n\ntype TertiarySquareButtonBaseProps = {\n /** Tekst og ikon, ikon og tekst, eller bare ikon */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n /** DOM-elementet knappen rendres som */\n as?: string | React.ElementType;\n};\n\nexport type TertiarySquareButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, TertiarySquareButtonBaseProps>;\n\nexport type TertiarySquareButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: TertiarySquareButtonProps<T>,\n) => React.ReactElement | null;\n\nconst defaultElement = 'button';\n\n/** @deprecated use SecondarySquareButton with size=\"small\" instead */\nexport const TertiarySquareButton: TertiarySquareButtonComponent =\n React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n props: TertiarySquareButtonProps<T>,\n ref: PolymorphicRef<T>,\n // @ts-expect-error TS error seems to stem from how the props are built up\n ) => <SquareButton ref={ref} {...props} variant=\"tertiary\" />,\n );\n","import React from 'react';\nimport classNames from 'classnames';\nimport { PolymorphicComponentPropsWithRef, PolymorphicRef } from '@entur/utils';\nimport { LoadingDots } from '@entur/loader';\nimport './IconButton.scss';\n\nexport type IconButtonBaseProps = {\n /** Ikonet som du vil ha inne i knappen */\n children: React.ReactNode;\n /** Tekst som forklarer knappens handling. MÅ være satt hvis du ikke har en forklarende tooltip på knappen */\n 'aria-label'?: string;\n /** Ekstra klassenavn */\n className?: string;\n /** Deaktivering av knappen\n * @default false\n */\n disabled?: boolean;\n /** HTML-elementet eller React-komponenten som lager knappen\n * @default 'button'\n */\n as?: React.ElementType;\n /**Størrelsen på knappen\n * @default 'medium'\n */\n size?: 'small' | 'medium';\n /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe\n * @default false\n */\n loading?: boolean;\n};\n\nconst defaultElement = 'button';\n\nexport type IconButtonProps<T extends React.ElementType> =\n PolymorphicComponentPropsWithRef<T, IconButtonBaseProps>;\n\nexport type IconButtonComponent = <\n T extends React.ElementType = typeof defaultElement,\n>(\n props: IconButtonProps<T>,\n) => React.ReactElement | null;\n\nexport const IconButton: IconButtonComponent = React.forwardRef(\n <T extends React.ElementType = typeof defaultElement>(\n {\n children,\n className,\n disabled = false,\n size = 'medium',\n as,\n loading,\n ...rest\n }: IconButtonProps<T>,\n ref: PolymorphicRef<T>,\n ) => {\n const Element: React.ElementType = as || defaultElement;\n\n const IconWithAriaHidden = React.Children.map(children, child => {\n if (React.isValidElement(child)) {\n // @ts-expect-error aria-hidden does, in fact, exist\n return React.cloneElement(child, { 'aria-hidden': true });\n }\n return child;\n });\n\n const iconButtonElement = (\n <Element\n className={classNames(\n 'eds-icon-button',\n className,\n {\n 'eds-icon-button--disabled': disabled,\n },\n `eds-icon-button--size-${size}`,\n )}\n disabled={disabled}\n aria-disabled={disabled}\n aria-busy={loading}\n ref={ref}\n {...rest}\n >\n {loading ? <LoadingDots /> : <>{IconWithAriaHidden}</>}\n </Element>\n );\n\n if (disabled) {\n return (\n <div className=\"eds-icon-button--disabled__wrapper\">\n {iconButtonElement}\n </div>\n );\n }\n return <>{iconButtonElement}</>;\n },\n);\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('button');\n\nexport * from './Button';\nexport * from './PrimaryButton';\nexport * from './SecondaryButton';\nexport * from './SuccessButton';\nexport * from './NegativeButton';\nexport * from './TertiaryButton';\nexport * from './ButtonGroup';\nexport * from './FloatingButton';\nexport * from './SecondarySquareButton';\nexport * from './SuccessSquareButton';\nexport * from './TertiarySquareButton';\nexport * from './IconButton';\n"],"names":["defaultElement","cx","React"],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -372,6 +372,7 @@
|
|
|
372
372
|
--basecolors-text-disabled:#6e6f73;
|
|
373
373
|
--basecolors-text-disabledalt:#b6b8ba;
|
|
374
374
|
--basecolors-text-highlight:#ff5959;
|
|
375
|
+
--basecolors-text-highlightalt:#ffbf9e;
|
|
375
376
|
--basecolors-text-light:#ffffff;
|
|
376
377
|
--basecolors-text-subdued:#626493;
|
|
377
378
|
--basecolors-text-subduedalt:#d9dae8;
|
|
@@ -438,45 +439,178 @@
|
|
|
438
439
|
--basecolors-text-disabled:#b6b8ba;
|
|
439
440
|
--basecolors-text-disabledalt:#b6b8ba;
|
|
440
441
|
--basecolors-text-highlight:#ff9494;
|
|
442
|
+
--basecolors-text-highlightalt:#ffbf9e;
|
|
441
443
|
--basecolors-text-light:#e5e5e9;
|
|
442
444
|
--basecolors-text-subdued:#b3b4bd;
|
|
443
445
|
--basecolors-text-subduedalt:#b3b4bd;
|
|
444
446
|
}
|
|
447
|
+
/*
|
|
448
|
+
* Typography Display Modes
|
|
449
|
+
*
|
|
450
|
+
* This system allows you to control typography scaling based on view size.
|
|
451
|
+
* Use the vie-mode attribute to switch between different typography scales:
|
|
452
|
+
*
|
|
453
|
+
* - Compact: [data-view-mode='compact'] or no attribute (responsive)
|
|
454
|
+
* - Display: [data-view-mode='display'] for big screens, kiosks, etc.
|
|
455
|
+
*
|
|
456
|
+
* Usage:
|
|
457
|
+
* <html data-view-mode="display"> or <div data-view-mode="display">
|
|
458
|
+
*
|
|
459
|
+
* The system automatically handles responsive behavior within each mode.
|
|
460
|
+
*/
|
|
461
|
+
:root,
|
|
462
|
+
[data-view-mode=standard]{
|
|
463
|
+
/* number */
|
|
464
|
+
--font-line-height-body-xs:var(--size-8);
|
|
465
|
+
--font-line-height-body-s:var(--size-9);
|
|
466
|
+
--font-line-height-body-m:var(--size-10);
|
|
467
|
+
--font-line-height-body-lg:var(--size-11);
|
|
468
|
+
--font-line-height-body-xl:var(--size-12);
|
|
469
|
+
--font-line-height-heading-xs:var(--size-8);
|
|
470
|
+
--font-line-height-heading-s:var(--size-9);
|
|
471
|
+
--font-line-height-heading-m:var(--size-10);
|
|
472
|
+
--font-line-height-heading-lg:var(--size-11);
|
|
473
|
+
--font-line-height-heading-xl:var(--size-13);
|
|
474
|
+
--font-line-height-heading-2xl:var(--size-15);
|
|
475
|
+
--font-line-height-label-s:var(--size-8);
|
|
476
|
+
--font-line-height-label-m:var(--size-9);
|
|
477
|
+
--font-line-height-label-lg:var(--size-10);
|
|
478
|
+
--font-paragraph-spacing-body-xs:var(--size-5);
|
|
479
|
+
--font-paragraph-spacing-body-s:var(--size-6);
|
|
480
|
+
--font-paragraph-spacing-body-m:var(--size-8);
|
|
481
|
+
--font-paragraph-spacing-body-lg:var(--size-10);
|
|
482
|
+
--font-paragraph-spacing-body-xl:var(--size-10);
|
|
483
|
+
--font-paragraph-spacing-heading-xs:var(--size-5);
|
|
484
|
+
--font-paragraph-spacing-heading-m:var(--size-6);
|
|
485
|
+
--font-paragraph-spacing-heading-s:var(--size-6);
|
|
486
|
+
--font-paragraph-spacing-heading-lg:var(--size-8);
|
|
487
|
+
--font-paragraph-spacing-heading-xl:var(--size-9);
|
|
488
|
+
--font-paragraph-spacing-heading-2xl:var(--size-10);
|
|
489
|
+
--font-size-body-xs:var(--size-6);
|
|
490
|
+
--font-size-body-s:var(--size-7);
|
|
491
|
+
--font-size-body-m:var(--size-8);
|
|
492
|
+
--font-size-body-lg:var(--size-9);
|
|
493
|
+
--font-size-body-xl:var(--size-10);
|
|
494
|
+
--font-size-heading-xs:var(--size-7);
|
|
495
|
+
--font-size-heading-s:var(--size-8);
|
|
496
|
+
--font-size-heading-m:var(--size-9);
|
|
497
|
+
--font-size-heading-lg:var(--size-10);
|
|
498
|
+
--font-size-heading-xl:var(--size-12);
|
|
499
|
+
--font-size-heading-2xl:var(--size-14);
|
|
500
|
+
--font-size-label-s:var(--size-7);
|
|
501
|
+
--font-size-label-m:var(--size-8);
|
|
502
|
+
--font-size-label-lg:var(--size-9);
|
|
503
|
+
/* string */
|
|
504
|
+
--font-family-nationale:nationale;
|
|
505
|
+
--font-weight-body:500;
|
|
506
|
+
--font-weight-heading:600;
|
|
507
|
+
}
|
|
445
508
|
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
-
|
|
454
|
-
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
-
|
|
458
|
-
-
|
|
459
|
-
|
|
460
|
-
|
|
509
|
+
[data-view-mode=compact]{
|
|
510
|
+
/* number */
|
|
511
|
+
--font-line-height-body-xs:var(--size-8);
|
|
512
|
+
--font-line-height-body-s:var(--size-9);
|
|
513
|
+
--font-line-height-body-lg:var(--size-10);
|
|
514
|
+
--font-line-height-body-m:var(--size-10);
|
|
515
|
+
--font-line-height-body-xl:var(--size-11);
|
|
516
|
+
--font-line-height-heading-s:var(--size-8);
|
|
517
|
+
--font-line-height-heading-xs:var(--size-8);
|
|
518
|
+
--font-line-height-heading-m:var(--size-9);
|
|
519
|
+
--font-line-height-heading-lg:var(--size-10);
|
|
520
|
+
--font-line-height-heading-xl:var(--size-11);
|
|
521
|
+
--font-line-height-heading-2xl:var(--size-12);
|
|
522
|
+
--font-line-height-label-m:var(--size-8);
|
|
523
|
+
--font-line-height-label-s:var(--size-8);
|
|
524
|
+
--font-line-height-label-lg:var(--size-9);
|
|
525
|
+
--font-paragraph-spacing-body-xs:var(--size-5);
|
|
526
|
+
--font-paragraph-spacing-body-s:var(--size-6);
|
|
527
|
+
--font-paragraph-spacing-body-m:var(--size-8);
|
|
528
|
+
--font-paragraph-spacing-body-lg:var(--size-9);
|
|
529
|
+
--font-paragraph-spacing-body-xl:var(--size-9);
|
|
530
|
+
--font-paragraph-spacing-heading-s:var(--size-5);
|
|
531
|
+
--font-paragraph-spacing-heading-xs:var(--size-5);
|
|
532
|
+
--font-paragraph-spacing-heading-lg:var(--size-6);
|
|
533
|
+
--font-paragraph-spacing-heading-m:var(--size-6);
|
|
534
|
+
--font-paragraph-spacing-heading-2xl:var(--size-8);
|
|
535
|
+
--font-paragraph-spacing-heading-xl:var(--size-8);
|
|
536
|
+
--font-size-body-xs:var(--size-6);
|
|
537
|
+
--font-size-body-s:var(--size-7);
|
|
538
|
+
--font-size-body-lg:var(--size-8);
|
|
539
|
+
--font-size-body-m:var(--size-8);
|
|
540
|
+
--font-size-body-xl:var(--size-9);
|
|
541
|
+
--font-size-heading-xs:var(--size-6);
|
|
542
|
+
--font-size-heading-s:var(--size-7);
|
|
543
|
+
--font-size-heading-m:var(--size-8);
|
|
544
|
+
--font-size-heading-lg:var(--size-9);
|
|
545
|
+
--font-size-heading-xl:var(--size-10);
|
|
546
|
+
--font-size-heading-2xl:var(--size-11);
|
|
547
|
+
--font-size-label-s:var(--size-7);
|
|
548
|
+
--font-size-label-m:var(--size-8);
|
|
549
|
+
--font-size-label-lg:var(--size-9);
|
|
550
|
+
/* string */
|
|
551
|
+
--font-family-nationale:nationale;
|
|
552
|
+
--font-weight-body:500;
|
|
553
|
+
--font-weight-heading:600;
|
|
461
554
|
}
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
555
|
+
|
|
556
|
+
[data-view-mode=display]{
|
|
557
|
+
/* number */
|
|
558
|
+
--font-line-height-body-xs:var(--size-11);
|
|
559
|
+
--font-line-height-body-s:var(--size-12);
|
|
560
|
+
--font-line-height-body-m:var(--size-15);
|
|
561
|
+
--font-line-height-body-lg:var(--size-18);
|
|
562
|
+
--font-line-height-body-xl:var(--size-19);
|
|
563
|
+
--font-line-height-heading-xs:var(--size-11);
|
|
564
|
+
--font-line-height-heading-s:var(--size-13);
|
|
565
|
+
--font-line-height-heading-m:var(--size-15);
|
|
566
|
+
--font-line-height-heading-lg:var(--size-18);
|
|
567
|
+
--font-line-height-heading-xl:var(--size-20);
|
|
568
|
+
--font-line-height-heading-2xl:var(--size-21);
|
|
569
|
+
--font-line-height-label-s:var(--size-11);
|
|
570
|
+
--font-line-height-label-m:var(--size-13);
|
|
571
|
+
--font-line-height-label-lg:var(--size-15);
|
|
572
|
+
--font-paragraph-spacing-body-xs:var(--size-9);
|
|
573
|
+
--font-paragraph-spacing-body-s:var(--size-10);
|
|
574
|
+
--font-paragraph-spacing-body-m:var(--size-12);
|
|
575
|
+
--font-paragraph-spacing-body-lg:var(--size-14);
|
|
576
|
+
--font-paragraph-spacing-body-xl:var(--size-16);
|
|
577
|
+
--font-paragraph-spacing-heading-xs:var(--size-6);
|
|
578
|
+
--font-paragraph-spacing-heading-s:var(--size-8);
|
|
579
|
+
--font-paragraph-spacing-heading-m:var(--size-9);
|
|
580
|
+
--font-paragraph-spacing-heading-lg:var(--size-10);
|
|
581
|
+
--font-paragraph-spacing-heading-xl:var(--size-12);
|
|
582
|
+
--font-paragraph-spacing-heading-2xl:var(--size-13);
|
|
583
|
+
--font-size-body-xs:var(--size-9);
|
|
584
|
+
--font-size-body-s:var(--size-10);
|
|
585
|
+
--font-size-body-m:var(--size-12);
|
|
586
|
+
--font-size-body-lg:var(--size-14);
|
|
587
|
+
--font-size-body-xl:var(--size-16);
|
|
588
|
+
--font-size-heading-xs:var(--size-10);
|
|
589
|
+
--font-size-heading-s:var(--size-12);
|
|
590
|
+
--font-size-heading-m:var(--size-14);
|
|
591
|
+
--font-size-heading-lg:var(--size-16);
|
|
592
|
+
--font-size-heading-xl:var(--size-19);
|
|
593
|
+
--font-size-heading-2xl:var(--size-20);
|
|
594
|
+
--font-size-label-s:var(--size-10);
|
|
595
|
+
--font-size-label-m:var(--size-12);
|
|
596
|
+
--font-size-label-lg:var(--size-14);
|
|
597
|
+
/* string */
|
|
598
|
+
--font-family-nationale:nationale;
|
|
599
|
+
--font-weight-body:500;
|
|
600
|
+
--font-weight-heading:600;
|
|
465
601
|
}
|
|
466
602
|
|
|
467
|
-
|
|
468
|
-
|
|
603
|
+
:root{
|
|
604
|
+
--eds-button:1;
|
|
605
|
+
}.eds-button{
|
|
606
|
+
min-width:var(--components-button-height-horizontalcontent-medium);
|
|
469
607
|
width:-webkit-max-content;
|
|
470
608
|
width:-moz-max-content;
|
|
471
609
|
width:max-content;
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
-webkit-border-radius:0.25rem;
|
|
477
|
-
-moz-border-radius:0.25rem;
|
|
478
|
-
border-radius:0.25rem;
|
|
479
|
-
font-size:inherit;
|
|
610
|
+
height:var(--components-button-height-horizontalcontent-medium);
|
|
611
|
+
-webkit-border-radius:var(--components-button-radius-medium);
|
|
612
|
+
-moz-border-radius:var(--components-button-radius-medium);
|
|
613
|
+
border-radius:var(--components-button-radius-medium);
|
|
480
614
|
cursor:pointer;
|
|
481
615
|
display:inline-block;
|
|
482
616
|
-webkit-appearance:none;
|
|
@@ -484,59 +618,86 @@ a.eds-button .eds-icon{
|
|
|
484
618
|
appearance:none;
|
|
485
619
|
-webkit-text-decoration:none;
|
|
486
620
|
text-decoration:none;
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
621
|
+
overflow-x:hidden;
|
|
622
|
+
-o-text-overflow:ellipsis;
|
|
623
|
+
text-overflow:ellipsis;
|
|
624
|
+
white-space:nowrap;
|
|
625
|
+
padding-inline:var(--components-button-inlinepadding-medium);
|
|
626
|
+
font-size:var(--font-size-body-m, var(--size-8));
|
|
627
|
+
line-height:var(--font-line-height-body-m, var(--size-10));
|
|
490
628
|
font-weight:500;
|
|
629
|
+
font-weight:var(--font-weight-body, 500);
|
|
491
630
|
text-align:center;
|
|
492
631
|
font-family:inherit;
|
|
493
632
|
position:relative;
|
|
494
|
-
vertical-align:
|
|
633
|
+
vertical-align:middle;
|
|
495
634
|
background-color:var(--eds-button-background);
|
|
496
|
-
border:
|
|
635
|
+
border:var(--components-button-border-medium) solid var(--eds-button-border);
|
|
497
636
|
color:var(--eds-button-text);
|
|
498
637
|
}
|
|
499
|
-
.eds-button:hover{
|
|
638
|
+
.eds-button:where(:hover){
|
|
500
639
|
background-color:var(--eds-button-background-hover);
|
|
501
640
|
}
|
|
502
|
-
.eds-button:active{
|
|
641
|
+
.eds-button:where(:active){
|
|
503
642
|
background-color:var(--eds-button-background-active);
|
|
504
643
|
border-color:var(--eds-button-border-active);
|
|
505
644
|
color:var(--eds-button-text-active);
|
|
506
645
|
}
|
|
507
|
-
.eds-button:focus-visible{
|
|
646
|
+
.eds-button:where(:focus-visible){
|
|
508
647
|
outline:2px solid #181c56;
|
|
509
648
|
outline-color:var(--basecolors-stroke-focus-standard);
|
|
510
649
|
outline-offset:0.125rem;
|
|
511
650
|
}
|
|
512
|
-
.eds-contrast .eds-button:focus-visible{
|
|
651
|
+
:where(.eds-contrast) .eds-button:where(:focus-visible){
|
|
513
652
|
outline-color:var(--basecolors-stroke-focus-contrast);
|
|
514
653
|
}
|
|
515
|
-
.eds-button > .eds-button__loading-dots{
|
|
654
|
+
.eds-button > :where(.eds-button__loading-dots){
|
|
516
655
|
width:100%;
|
|
517
656
|
}
|
|
518
|
-
.eds-button > .eds-button__loading-dots .eds-loading-dots__dot{
|
|
657
|
+
.eds-button > :where(.eds-button__loading-dots) :where(.eds-loading-dots__dot){
|
|
519
658
|
background:var(--eds-button-text);
|
|
520
659
|
}
|
|
521
|
-
.eds-button .eds-icon{
|
|
522
|
-
|
|
523
|
-
|
|
660
|
+
.eds-button :where(.eds-icon){
|
|
661
|
+
vertical-align:middle;
|
|
662
|
+
margin-bottom:0.1em;
|
|
524
663
|
}
|
|
525
|
-
.eds-button--
|
|
526
|
-
margin-
|
|
664
|
+
.eds-button--trailing-icon :where(.eds-icon:last-child){
|
|
665
|
+
margin-left:var(--components-button-gap-medium);
|
|
527
666
|
}
|
|
528
|
-
.eds-button--trailing-icon .eds-icon{
|
|
529
|
-
margin-left:
|
|
667
|
+
.eds-button--trailing-icon:where(.eds-button--size-small) :where(.eds-icon:last-child){
|
|
668
|
+
margin-left:var(--components-button-gap-small);
|
|
669
|
+
}
|
|
670
|
+
.eds-button--trailing-icon:where(.eds-button--size-large) :where(.eds-icon:last-child){
|
|
671
|
+
margin-left:var(--components-button-gap-large);
|
|
672
|
+
}
|
|
673
|
+
.eds-button--leading-icon :where(.eds-icon:first-child){
|
|
674
|
+
margin-right:var(--components-button-gap-medium);
|
|
675
|
+
}
|
|
676
|
+
.eds-button--leading-icon:where(.eds-button--size-small) :where(.eds-icon:first-child){
|
|
677
|
+
margin-right:var(--components-button-gap-small);
|
|
678
|
+
}
|
|
679
|
+
.eds-button--leading-icon:where(.eds-button--size-large) :where(.eds-icon:first-child){
|
|
680
|
+
margin-right:var(--components-button-gap-large);
|
|
530
681
|
}
|
|
531
682
|
.eds-button--size-small{
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
683
|
+
height:var(--components-button-height-horizontalcontent-small);
|
|
684
|
+
-webkit-border-radius:var(--components-button-radius-small);
|
|
685
|
+
-moz-border-radius:var(--components-button-radius-small);
|
|
686
|
+
border-radius:var(--components-button-radius-small);
|
|
687
|
+
padding-inline:var(--components-button-inlinepadding-small);
|
|
688
|
+
font-size:var(--font-size-body-s, var(--size-7));
|
|
689
|
+
line-height:var(--font-line-height-body-s, var(--size-9));
|
|
690
|
+
border:var(--components-button-border-small) solid var(--eds-button-border);
|
|
536
691
|
}
|
|
537
692
|
.eds-button--size-large{
|
|
538
|
-
|
|
539
|
-
|
|
693
|
+
height:var(--components-button-height-horizontalcontent-large);
|
|
694
|
+
-webkit-border-radius:var(--components-button-radius-large);
|
|
695
|
+
-moz-border-radius:var(--components-button-radius-large);
|
|
696
|
+
border-radius:var(--components-button-radius-large);
|
|
697
|
+
padding-inline:var(--components-button-inlinepadding-large);
|
|
698
|
+
font-size:var(--font-size-body-xl, var(--size-10));
|
|
699
|
+
line-height:var(--font-line-height-body-xl, var(--size-12));
|
|
700
|
+
border:var(--components-button-border-large) solid var(--eds-button-border);
|
|
540
701
|
}
|
|
541
702
|
.eds-button--width-fluid{
|
|
542
703
|
width:100%;
|
|
@@ -550,7 +711,7 @@ a.eds-button .eds-icon{
|
|
|
550
711
|
--eds-button-border:transparent;
|
|
551
712
|
--eds-button-border-active:transparent;
|
|
552
713
|
}
|
|
553
|
-
.eds-contrast .eds-button--variant-primary{
|
|
714
|
+
:where(.eds-contrast) .eds-button--variant-primary{
|
|
554
715
|
--eds-button-background:var(--components-button-primary-contrast-default);
|
|
555
716
|
--eds-button-text:var(--components-button-primary-contrast-text);
|
|
556
717
|
--eds-button-text-active:var(--components-button-primary-contrast-text);
|
|
@@ -568,7 +729,7 @@ a.eds-button .eds-icon{
|
|
|
568
729
|
--eds-button-border:var(--components-button-secondary-standard-border);
|
|
569
730
|
--eds-button-border-active:var(--components-button-secondary-standard-border-active);
|
|
570
731
|
}
|
|
571
|
-
.eds-contrast .eds-button--variant-secondary{
|
|
732
|
+
:where(.eds-contrast) .eds-button--variant-secondary{
|
|
572
733
|
--eds-button-background:var(--components-button-secondary-contrast-default);
|
|
573
734
|
--eds-button-text:var(--components-button-secondary-contrast-text);
|
|
574
735
|
--eds-button-text-active:var(--components-button-secondary-contrast-text-active);
|
|
@@ -586,7 +747,7 @@ a.eds-button .eds-icon{
|
|
|
586
747
|
--eds-button-border:var(--components-button-success-standard-border);
|
|
587
748
|
--eds-button-border-active:var(--components-button-success-standard-border);
|
|
588
749
|
}
|
|
589
|
-
.eds-contrast .eds-button--variant-success{
|
|
750
|
+
:where(.eds-contrast) .eds-button--variant-success{
|
|
590
751
|
--eds-button-background:var(--components-button-success-contrast-default);
|
|
591
752
|
--eds-button-text:var(--components-button-success-contrast-text);
|
|
592
753
|
--eds-button-text-active:var(--components-button-success-contrast-text);
|
|
@@ -604,7 +765,7 @@ a.eds-button .eds-icon{
|
|
|
604
765
|
--eds-button-border:var(--components-button-negative-standard-border);
|
|
605
766
|
--eds-button-border-active:var(--components-button-negative-standard-border);
|
|
606
767
|
}
|
|
607
|
-
.eds-contrast .eds-button--variant-negative{
|
|
768
|
+
:where(.eds-contrast) .eds-button--variant-negative{
|
|
608
769
|
--eds-button-background:var(--components-button-negative-contrast-default);
|
|
609
770
|
--eds-button-text:var(--components-button-negative-contrast-text);
|
|
610
771
|
--eds-button-text-active:var(--components-button-negative-contrast-text-active);
|
|
@@ -625,49 +786,61 @@ a.eds-button .eds-icon{
|
|
|
625
786
|
padding:0 0.75rem;
|
|
626
787
|
min-width:6rem;
|
|
627
788
|
}
|
|
628
|
-
.eds-button--variant-tertiary:hover{
|
|
789
|
+
.eds-button--variant-tertiary:where(:hover){
|
|
629
790
|
background-color:rgb(206.4, 211.8, 237.6);
|
|
630
791
|
}
|
|
631
|
-
.eds-button--variant-tertiary:active{
|
|
792
|
+
.eds-button--variant-tertiary:where(:active){
|
|
632
793
|
background-color:#aeb7e2;
|
|
633
794
|
}
|
|
634
|
-
.eds-
|
|
635
|
-
margin-right:0.5rem;
|
|
636
|
-
}
|
|
637
|
-
.eds-button--variant-tertiary.eds-button--trailing-icon .eds-icon{
|
|
638
|
-
margin-left:0.5rem;
|
|
639
|
-
}
|
|
640
|
-
.eds-contrast .eds-button--variant-tertiary{
|
|
795
|
+
:where(.eds-contrast) .eds-button--variant-tertiary{
|
|
641
796
|
background-color:transparent;
|
|
642
797
|
color:#ffffff;
|
|
643
798
|
border-color:#aeb7e2;
|
|
644
799
|
}
|
|
645
|
-
.eds-contrast .eds-button--variant-tertiary > .eds-button__loading-dots .eds-loading-dots__dot{
|
|
800
|
+
:where(.eds-contrast) .eds-button--variant-tertiary > :where(.eds-button__loading-dots) :where(.eds-loading-dots__dot){
|
|
646
801
|
background:#ffffff;
|
|
647
802
|
}
|
|
648
|
-
.eds-contrast .eds-button--variant-tertiary:hover{
|
|
803
|
+
:where(.eds-contrast) .eds-button--variant-tertiary:where(:hover){
|
|
649
804
|
background-color:rgba(174, 183, 226, 0.2);
|
|
650
805
|
}
|
|
651
|
-
.eds-contrast .eds-button--variant-tertiary:active{
|
|
806
|
+
:where(.eds-contrast) .eds-button--variant-tertiary:where(:active){
|
|
652
807
|
background:#aeb7e2;
|
|
653
808
|
color:#181c56;
|
|
654
809
|
}
|
|
655
|
-
.eds-contrast .eds-button--variant-tertiary:active > .eds-button__loading-dots .eds-loading-dots__dot{
|
|
810
|
+
:where(.eds-contrast) .eds-button--variant-tertiary:where(:active) > :where(.eds-button__loading-dots) :where(.eds-loading-dots__dot){
|
|
656
811
|
background:#181c56;
|
|
657
812
|
}
|
|
658
|
-
.eds-button[disabled].eds-button--loading{
|
|
813
|
+
.eds-button:where([disabled]):where(.eds-button--loading){
|
|
659
814
|
pointer-events:none;
|
|
660
815
|
}
|
|
661
|
-
.eds-button[disabled]:not(.eds-button--loading){
|
|
816
|
+
.eds-button:where([disabled]):where(:not(.eds-button--loading)){
|
|
662
817
|
background:var(--components-button-disabled-standard-fill);
|
|
663
818
|
color:var(--components-button-disabled-standard-text-disabled);
|
|
664
819
|
border-color:transparent;
|
|
665
820
|
cursor:not-allowed;
|
|
666
821
|
}
|
|
667
|
-
.eds-contrast .eds-button[disabled]:not(.eds-button--loading){
|
|
822
|
+
:where(.eds-contrast) .eds-button:where([disabled]):where(:not(.eds-button--loading)){
|
|
668
823
|
background-color:var(--components-button-disabled-contrast-fill);
|
|
669
824
|
color:var(--components-button-disabled-contrast-text-disabled);
|
|
670
825
|
border-color:transparent;
|
|
826
|
+
}
|
|
827
|
+
.eds-button:where(a){
|
|
828
|
+
display:-webkit-box;
|
|
829
|
+
display:-webkit-flex;
|
|
830
|
+
display:-moz-box;
|
|
831
|
+
display:flex;
|
|
832
|
+
-webkit-box-align:center;
|
|
833
|
+
-webkit-align-items:center;
|
|
834
|
+
-moz-box-align:center;
|
|
835
|
+
align-items:center;
|
|
836
|
+
-webkit-box-pack:center;
|
|
837
|
+
-webkit-justify-content:center;
|
|
838
|
+
-moz-box-pack:center;
|
|
839
|
+
justify-content:center;
|
|
840
|
+
}
|
|
841
|
+
.eds-button:where(a) :where(.eds-icon){
|
|
842
|
+
position:static;
|
|
843
|
+
position:initial;
|
|
671
844
|
}.eds-button-group .eds-button{
|
|
672
845
|
margin-right:0.75rem;
|
|
673
846
|
margin-bottom:0.75rem;
|
|
@@ -775,11 +948,8 @@ a.eds-button .eds-icon{
|
|
|
775
948
|
appearance:none;
|
|
776
949
|
background:transparent;
|
|
777
950
|
border:0;
|
|
778
|
-
-webkit-border-radius:0.25rem;
|
|
779
|
-
-moz-border-radius:0.25rem;
|
|
780
|
-
border-radius:0.25rem;
|
|
781
951
|
cursor:pointer;
|
|
782
|
-
font-size:
|
|
952
|
+
font-size:var(--font-size-body-m);
|
|
783
953
|
display:-webkit-inline-box;
|
|
784
954
|
display:-webkit-inline-flex;
|
|
785
955
|
display:-moz-inline-box;
|
|
@@ -794,50 +964,138 @@ a.eds-button .eds-icon{
|
|
|
794
964
|
-webkit-text-decoration:none;
|
|
795
965
|
text-decoration:none;
|
|
796
966
|
}
|
|
797
|
-
.eds-square-button
|
|
967
|
+
.eds-square-button--size-small{
|
|
968
|
+
font-size:var(--font-size-body-s);
|
|
969
|
+
}
|
|
970
|
+
.eds-square-button--size-small :where(.eds-square-button__button){
|
|
971
|
+
height:var(--components-button-height-horizontalcontent-small);
|
|
972
|
+
width:var(--components-button-height-horizontalcontent-small);
|
|
973
|
+
border-width:var(--components-button-border-small);
|
|
974
|
+
-webkit-border-radius:var(--components-button-radius-small);
|
|
975
|
+
-moz-border-radius:var(--components-button-radius-small);
|
|
976
|
+
border-radius:var(--components-button-radius-small);
|
|
977
|
+
}
|
|
978
|
+
.eds-square-button--size-small :where(.eds-square-button__label) + :where(.eds-square-button__button),
|
|
979
|
+
.eds-square-button--size-small :where(.eds-square-button__button) + :where(.eds-square-button__label){
|
|
980
|
+
margin-left:var(--components-button-gap-small);
|
|
981
|
+
}
|
|
982
|
+
.eds-square-button--size-medium :where(.eds-square-button__button){
|
|
983
|
+
height:var(--components-button-height-horizontalcontent-medium);
|
|
984
|
+
width:var(--components-button-height-horizontalcontent-medium);
|
|
985
|
+
border-width:var(--components-button-border-medium);
|
|
986
|
+
-webkit-border-radius:var(--components-button-radius-medium);
|
|
987
|
+
-moz-border-radius:var(--components-button-radius-medium);
|
|
988
|
+
border-radius:var(--components-button-radius-medium);
|
|
989
|
+
}
|
|
990
|
+
.eds-square-button--size-large{
|
|
991
|
+
font-size:var(--font-size-body-xl);
|
|
992
|
+
}
|
|
993
|
+
.eds-square-button--size-large :where(.eds-square-button__button){
|
|
994
|
+
height:var(--components-button-height-horizontalcontent-large);
|
|
995
|
+
width:var(--components-button-height-horizontalcontent-large);
|
|
996
|
+
border-width:var(--components-button-border-large);
|
|
997
|
+
-webkit-border-radius:var(--components-button-radius-large);
|
|
998
|
+
-moz-border-radius:var(--components-button-radius-large);
|
|
999
|
+
border-radius:var(--components-button-radius-large);
|
|
1000
|
+
}
|
|
1001
|
+
.eds-square-button--size-large :where(.eds-square-button__label) + :where(.eds-square-button__button),
|
|
1002
|
+
.eds-square-button--size-large :where(.eds-square-button__button) + :where(.eds-square-button__label){
|
|
1003
|
+
margin-left:var(--components-button-gap-large);
|
|
1004
|
+
}
|
|
1005
|
+
.eds-square-button--secondary{
|
|
1006
|
+
--button-background:var(--components-button-squaresecondary-standard-default);
|
|
1007
|
+
--border-color:var(--components-button-squaresecondary-standard-border);
|
|
1008
|
+
--icon-color:var(--components-button-squaresecondary-standard-icon);
|
|
1009
|
+
--label-color:var(--components-button-squaresecondary-standard-text);
|
|
1010
|
+
}
|
|
1011
|
+
.eds-square-button--secondary:where(:hover){
|
|
1012
|
+
--button-background:var(--components-button-squaresecondary-standard-hover);
|
|
1013
|
+
}
|
|
1014
|
+
.eds-square-button--secondary:where(:active){
|
|
1015
|
+
--button-background:var(--components-button-squaresecondary-standard-active);
|
|
1016
|
+
--border-color:var(--components-button-squaresecondary-standard-border-active);
|
|
1017
|
+
--icon-color:var(--components-button-squaresecondary-standard-icon-active);
|
|
1018
|
+
}
|
|
1019
|
+
:where(.eds-contrast) .eds-square-button--secondary{
|
|
1020
|
+
--button-background:var(--components-button-squaresecondary-contrast-default);
|
|
1021
|
+
--border-color:var(--components-button-squaresecondary-contrast-border);
|
|
1022
|
+
--icon-color:var(--components-button-squaresecondary-contrast-icon-default);
|
|
1023
|
+
--label-color:var(--components-button-squaresecondary-contrast-label);
|
|
1024
|
+
}
|
|
1025
|
+
:where(.eds-contrast) .eds-square-button--secondary:where(:hover){
|
|
1026
|
+
--button-background:var(--components-button-squaresecondary-contrast-hover);
|
|
1027
|
+
--icon-color:var(--components-button-squaresecondary-contrast-icon-hover);
|
|
1028
|
+
}
|
|
1029
|
+
:where(.eds-contrast) .eds-square-button--secondary:where(:active){
|
|
1030
|
+
--button-background:var(--components-button-squaresecondary-contrast-active);
|
|
1031
|
+
--border-color:var(--components-button-squaresecondary-contrast-border-active);
|
|
1032
|
+
--icon-color:var(--components-button-squaresecondary-contrast-icon-active);
|
|
1033
|
+
}
|
|
1034
|
+
.eds-square-button--success{
|
|
1035
|
+
--button-background:var(--components-button-squaresuccess-standard-default);
|
|
1036
|
+
--border-color:var(--components-button-squaresuccess-standard-border);
|
|
1037
|
+
--icon-color:var(--components-button-squaresuccess-standard-icon);
|
|
1038
|
+
--label-color:var(--components-button-squaresuccess-standard-label);
|
|
1039
|
+
}
|
|
1040
|
+
.eds-square-button--success:where(:hover){
|
|
1041
|
+
--button-background:var(--components-button-squaresuccess-standard-hover);
|
|
1042
|
+
}
|
|
1043
|
+
.eds-square-button--success:where(:active){
|
|
1044
|
+
--button-background:var(--components-button-squaresuccess-standard-active);
|
|
1045
|
+
}
|
|
1046
|
+
:where(.eds-contrast) .eds-square-button--success{
|
|
1047
|
+
--button-background:var(--components-button-squaresuccess-contrast-default);
|
|
1048
|
+
--border-color:var(--components-button-squaresuccess-contrast-border);
|
|
1049
|
+
--icon-color:var(--components-button-squaresuccess-contrast-icon);
|
|
1050
|
+
--label-color:var(--components-button-squaresuccess-contrast-label);
|
|
1051
|
+
}
|
|
1052
|
+
:where(.eds-contrast) .eds-square-button--success:where(:hover){
|
|
1053
|
+
--button-background:var(--components-button-squaresuccess-contrast-hover);
|
|
1054
|
+
}
|
|
1055
|
+
:where(.eds-contrast) .eds-square-button--success:where(:active){
|
|
1056
|
+
--button-background:var(--components-button-squaresuccess-contrast-active);
|
|
1057
|
+
}
|
|
1058
|
+
.eds-square-button--loading{
|
|
1059
|
+
opacity:1;
|
|
1060
|
+
}
|
|
1061
|
+
.eds-square-button:where(:focus-visible){
|
|
798
1062
|
outline:none;
|
|
799
1063
|
}
|
|
800
|
-
.eds-square-button:focus-visible .eds-square-button__button{
|
|
1064
|
+
.eds-square-button:where(:focus-visible) :where(.eds-square-button__button){
|
|
801
1065
|
outline:2px solid #181c56;
|
|
802
1066
|
outline-color:var(--basecolors-stroke-focus-standard);
|
|
803
1067
|
outline-offset:0.125rem;
|
|
804
1068
|
}
|
|
805
|
-
.eds-contrast .eds-square-button:focus-visible .eds-square-button__button{
|
|
1069
|
+
:where(.eds-contrast) .eds-square-button:where(:focus-visible) :where(.eds-square-button__button){
|
|
806
1070
|
outline-color:var(--basecolors-stroke-focus-contrast);
|
|
807
1071
|
}
|
|
808
|
-
.eds-square-button[disabled]:not(.eds-square-button--loading){
|
|
1072
|
+
.eds-square-button:where([disabled]):where(:not(.eds-square-button--loading)){
|
|
809
1073
|
cursor:not-allowed;
|
|
810
1074
|
}
|
|
811
|
-
.eds-square-button[disabled]:not(.eds-square-button--loading) .eds-square-button__button,
|
|
812
|
-
.eds-square-button[disabled]:not(.eds-square-button--loading) .eds-square-button__button:hover{
|
|
1075
|
+
.eds-square-button:where([disabled]):where(:not(.eds-square-button--loading)) :where(.eds-square-button__button),
|
|
1076
|
+
.eds-square-button:where([disabled]):where(:not(.eds-square-button--loading)) :where(.eds-square-button__button:hover){
|
|
813
1077
|
border-color:var(--basecolors-stroke-disabled);
|
|
814
1078
|
border-style:dashed;
|
|
815
1079
|
background-color:transparent;
|
|
816
1080
|
color:var(--basecolors-text-disabled);
|
|
817
1081
|
}
|
|
818
|
-
.eds-square-button[disabled]:not(.eds-square-button--loading) .eds-square-button__label,
|
|
819
|
-
.eds-square-button[disabled]:not(.eds-square-button--loading) .eds-square-button__label:hover{
|
|
1082
|
+
.eds-square-button:where([disabled]):where(:not(.eds-square-button--loading)) :where(.eds-square-button__label),
|
|
1083
|
+
.eds-square-button:where([disabled]):where(:not(.eds-square-button--loading)) :where(.eds-square-button__label:hover){
|
|
820
1084
|
color:var(--basecolors-text-disabled);
|
|
821
1085
|
}
|
|
822
|
-
.eds-square-button.eds-square-button--loading{
|
|
823
|
-
opacity:1;
|
|
824
|
-
}
|
|
825
1086
|
.eds-square-button__button{
|
|
826
1087
|
-webkit-box-align:center;
|
|
827
1088
|
-webkit-align-items:center;
|
|
828
1089
|
-moz-box-align:center;
|
|
829
1090
|
align-items:center;
|
|
830
1091
|
background-color:var(--button-background);
|
|
831
|
-
border:
|
|
832
|
-
-webkit-border-radius:0.25rem;
|
|
833
|
-
-moz-border-radius:0.25rem;
|
|
834
|
-
border-radius:0.25rem;
|
|
1092
|
+
border:var(--components-button-border-medium) solid var(--border-color);
|
|
835
1093
|
color:var(--icon-color);
|
|
836
1094
|
display:-webkit-inline-box;
|
|
837
1095
|
display:-webkit-inline-flex;
|
|
838
1096
|
display:-moz-inline-box;
|
|
839
1097
|
display:inline-flex;
|
|
840
|
-
height:
|
|
1098
|
+
height:var(--components-button-height-horizontalcontent-medium);
|
|
841
1099
|
-webkit-box-pack:center;
|
|
842
1100
|
-webkit-justify-content:center;
|
|
843
1101
|
-moz-box-pack:center;
|
|
@@ -849,70 +1107,17 @@ a.eds-button .eds-icon{
|
|
|
849
1107
|
text-decoration:none;
|
|
850
1108
|
vertical-align:top;
|
|
851
1109
|
position:relative;
|
|
852
|
-
width:
|
|
1110
|
+
width:var(--components-button-height-horizontalcontent-medium);
|
|
853
1111
|
}
|
|
854
1112
|
.eds-square-button__label{
|
|
855
1113
|
color:var(--label-color);
|
|
856
1114
|
}
|
|
857
|
-
.eds-square-button__label + .eds-square-button__button, .eds-square-button__button + .eds-square-button__label{
|
|
858
|
-
margin-left:
|
|
1115
|
+
.eds-square-button__label + :where(.eds-square-button__button), .eds-square-button__button + :where(.eds-square-button__label){
|
|
1116
|
+
margin-left:var(--components-button-gap-medium);
|
|
859
1117
|
}
|
|
860
|
-
.eds-square-
|
|
1118
|
+
.eds-square-button__loading-dots :where(.eds-loading-dots__dot){
|
|
861
1119
|
background:var(--icon-color);
|
|
862
1120
|
}
|
|
863
|
-
.eds-square-button--secondary{
|
|
864
|
-
--button-background:var(--components-button-squaresecondary-standard-default);
|
|
865
|
-
--border-color:var(--components-button-squaresecondary-standard-border);
|
|
866
|
-
--icon-color:var(--components-button-squaresecondary-standard-icon);
|
|
867
|
-
--label-color:var(--components-button-squaresecondary-standard-text);
|
|
868
|
-
}
|
|
869
|
-
.eds-square-button--secondary:hover{
|
|
870
|
-
--button-background:var(--components-button-squaresecondary-standard-hover);
|
|
871
|
-
}
|
|
872
|
-
.eds-square-button--secondary:active{
|
|
873
|
-
--button-background:var(--components-button-squaresecondary-standard-active);
|
|
874
|
-
--border-color:var(--components-button-squaresecondary-standard-border-active);
|
|
875
|
-
--icon-color:var(--components-button-squaresecondary-standard-icon-active);
|
|
876
|
-
}
|
|
877
|
-
.eds-contrast .eds-square-button--secondary{
|
|
878
|
-
--button-background:var(--components-button-squaresecondary-contrast-default);
|
|
879
|
-
--border-color:var(--components-button-squaresecondary-contrast-border);
|
|
880
|
-
--icon-color:var(--components-button-squaresecondary-contrast-icon-default);
|
|
881
|
-
--label-color:var(--components-button-squaresecondary-contrast-label);
|
|
882
|
-
}
|
|
883
|
-
.eds-contrast .eds-square-button--secondary:hover{
|
|
884
|
-
--button-background:var(--components-button-squaresecondary-contrast-hover);
|
|
885
|
-
--icon-color:var(--components-button-squaresecondary-contrast-icon-hover);
|
|
886
|
-
}
|
|
887
|
-
.eds-contrast .eds-square-button--secondary:active{
|
|
888
|
-
--button-background:var(--components-button-squaresecondary-contrast-active);
|
|
889
|
-
--border-color:var(--components-button-squaresecondary-contrast-border-active);
|
|
890
|
-
--icon-color:var(--components-button-squaresecondary-contrast-icon-active);
|
|
891
|
-
}
|
|
892
|
-
.eds-square-button--success{
|
|
893
|
-
--button-background:var(--components-button-squaresuccess-standard-default);
|
|
894
|
-
--border-color:var(--components-button-squaresuccess-standard-border);
|
|
895
|
-
--icon-color:var(--components-button-squaresuccess-standard-icon);
|
|
896
|
-
--label-color:var(--components-button-squaresuccess-standard-label);
|
|
897
|
-
}
|
|
898
|
-
.eds-square-button--success:hover{
|
|
899
|
-
--button-background:var(--components-button-squaresuccess-standard-hover);
|
|
900
|
-
}
|
|
901
|
-
.eds-square-button--success:active{
|
|
902
|
-
--button-background:var(--components-button-squaresuccess-standard-active);
|
|
903
|
-
}
|
|
904
|
-
.eds-contrast .eds-square-button--success{
|
|
905
|
-
--button-background:var(--components-button-squaresuccess-contrast-default);
|
|
906
|
-
--border-color:var(--components-button-squaresuccess-contrast-border);
|
|
907
|
-
--icon-color:var(--components-button-squaresuccess-contrast-icon);
|
|
908
|
-
--label-color:var(--components-button-squaresuccess-contrast-label);
|
|
909
|
-
}
|
|
910
|
-
.eds-contrast .eds-square-button--success:hover{
|
|
911
|
-
--button-background:var(--components-button-squaresuccess-contrast-hover);
|
|
912
|
-
}
|
|
913
|
-
.eds-contrast .eds-square-button--success:active{
|
|
914
|
-
--button-background:var(--components-button-squaresuccess-contrast-active);
|
|
915
|
-
}
|
|
916
1121
|
.eds-square-button--tertiary{
|
|
917
1122
|
--button-background:var(--components-button-squaresecondary-standard-default);
|
|
918
1123
|
--border-color:var(--components-button-squaresecondary-standard-border);
|
|
@@ -951,6 +1156,9 @@ a.eds-button .eds-icon{
|
|
|
951
1156
|
height:2rem;
|
|
952
1157
|
width:2rem;
|
|
953
1158
|
border-width:0.0625rem;
|
|
1159
|
+
-webkit-border-radius:0.25rem;
|
|
1160
|
+
-moz-border-radius:0.25rem;
|
|
1161
|
+
border-radius:0.25rem;
|
|
954
1162
|
}.eds-icon-button{
|
|
955
1163
|
border:0.125rem solid transparent;
|
|
956
1164
|
-webkit-border-radius:0.25rem;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entur/button",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0-beta-automat.0",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
5
|
"main": "dist/button.cjs.js",
|
|
6
6
|
"module": "dist/button.esm.js",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"react-dom": ">=16.8.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@entur/loader": "^0.6.
|
|
31
|
-
"@entur/tokens": "^3.
|
|
30
|
+
"@entur/loader": "^0.6.2-beta-automat.0",
|
|
31
|
+
"@entur/tokens": "^3.22.0-beta-automat.0",
|
|
32
32
|
"@entur/utils": "^0.13.1",
|
|
33
33
|
"classnames": "^2.5.1"
|
|
34
34
|
},
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"vite": "^7.1.3",
|
|
46
46
|
"vite-plugin-dts": "^4.5.4"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "7d0d14cd6fd5cf4b7ef3c2a3aa7e3536ac51900d"
|
|
49
49
|
}
|