@entur/button 3.3.13-beta.1 → 3.3.13-beta.11

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.
@@ -0,0 +1,42 @@
1
+ import * as React from 'react';
2
+ import { PolymorphicComponentPropsWithRef } from '@entur/utils';
3
+ import './Button.scss';
4
+ /** @deprecated use variant="secondary" size="small" instead */
5
+ declare const tertiary = "tertiary";
6
+ type ButtonBaseProps = {
7
+ /** Farge og uttrykk på knappen */
8
+ variant: 'primary' | 'secondary' | 'success' | 'negative' | typeof tertiary;
9
+ /** Størrelsen på knappen
10
+ * @default 'medium'
11
+ */
12
+ size?: 'small' | 'medium' | 'large';
13
+ /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe
14
+ * @default false
15
+ */
16
+ loading?: boolean;
17
+ /** Ekstra klassenavn */
18
+ className?: string;
19
+ /** Deaktivering av knappen
20
+ * @default false
21
+ */
22
+ disabled?: boolean;
23
+ /** Bredden på knappen.
24
+ * @default 'auto'
25
+ */
26
+ width?: 'fluid' | 'auto';
27
+ /** Innholdet i knappen */
28
+ children: React.ReactNode;
29
+ /** Et HTML-element eller en React-komponent som komponenten tar utgangspunkt i for å lage denne knappevarianten
30
+ * @default "button"
31
+ */
32
+ as?: string | React.ElementType;
33
+ /**
34
+ * Tekst som leses opp på skjermleser (nødvendig når knappetekst mangler)
35
+ */
36
+ 'aria-label'?: string;
37
+ };
38
+ declare const defaultElement = "button";
39
+ export type ButtonProps<T extends React.ElementType> = PolymorphicComponentPropsWithRef<T, ButtonBaseProps>;
40
+ export type ButtonComponent = <T extends React.ElementType = typeof defaultElement>(props: ButtonProps<T>) => React.ReactElement | null;
41
+ export declare const Button: ButtonComponent;
42
+ export {};
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import './ButtonGroup.scss';
3
+ export type ButtonGroupProps = {
4
+ /** To eller flere Button-komponenter */
5
+ children: React.ReactNode;
6
+ /** Ekstra klassenavn */
7
+ className?: string;
8
+ /** HTML-elementet eller React-komponenten som lages
9
+ * @default "div"
10
+ */
11
+ as?: string | React.ElementType;
12
+ [key: string]: any;
13
+ };
14
+ export declare const ButtonGroup: React.FC<ButtonGroupProps>;
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import './FloatingButton.scss';
3
+ export type FloatingButtonProps = {
4
+ /** Beskrivende tekst for skjermlesere */
5
+ 'aria-label': string;
6
+ /** Ikon eller ikon-og-tekst */
7
+ children: React.ReactNode;
8
+ /** Ekstra klassenavn */
9
+ className?: string;
10
+ /** Callback når knappen klikkes */
11
+ onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;
12
+ /** Størrelse på knappen
13
+ * @default "medium"
14
+ */
15
+ size?: 'medium' | 'small';
16
+ [key: string]: any;
17
+ } & React.ButtonHTMLAttributes<HTMLButtonElement>;
18
+ export declare const FloatingButton: React.FC<FloatingButtonProps>;
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import { PolymorphicComponentPropsWithRef } from '@entur/utils';
3
+ import './IconButton.scss';
4
+ export type IconButtonBaseProps = {
5
+ /** Ikonet som du vil ha inne i knappen */
6
+ children: React.ReactNode;
7
+ /** Tekst som forklarer knappens handling. MÅ være satt hvis du ikke har en forklarende tooltip på knappen */
8
+ 'aria-label'?: string;
9
+ /** Ekstra klassenavn */
10
+ className?: string;
11
+ /** Deaktivering av knappen
12
+ * @default false
13
+ */
14
+ disabled?: boolean;
15
+ /** HTML-elementet eller React-komponenten som lager knappen
16
+ * @default 'button'
17
+ */
18
+ as?: React.ElementType;
19
+ /**Størrelsen på knappen
20
+ * @default 'medium'
21
+ */
22
+ size?: 'small' | 'medium';
23
+ /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe
24
+ * @default false
25
+ */
26
+ loading?: boolean;
27
+ };
28
+ declare const defaultElement = "button";
29
+ export type IconButtonProps<T extends React.ElementType> = PolymorphicComponentPropsWithRef<T, IconButtonBaseProps>;
30
+ export type IconButtonComponent = <T extends React.ElementType = typeof defaultElement>(props: IconButtonProps<T>) => React.ReactElement | null;
31
+ export declare const IconButton: IconButtonComponent;
32
+ export {};
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { PolymorphicComponentPropsWithRef } from '@entur/utils';
3
+ export type NegativeButtonBaseProps = {
4
+ /** Størrelsen på knappen
5
+ * @default 'medium'
6
+ */
7
+ size?: 'small' | 'medium' | 'large';
8
+ /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe
9
+ * @default false
10
+ */
11
+ loading?: boolean;
12
+ /** Ekstra klassenavn */
13
+ className?: string;
14
+ /** Deaktivering av knappen
15
+ * @default false
16
+ */
17
+ disabled?: boolean;
18
+ /** Bredden på knappen.
19
+ * @default 'auto'
20
+ */
21
+ width?: 'fluid' | 'auto';
22
+ /** Innholdet i knappen */
23
+ children: React.ReactNode;
24
+ };
25
+ export type NegativeButtonProps<T extends React.ElementType> = PolymorphicComponentPropsWithRef<T, NegativeButtonBaseProps>;
26
+ export type NegativeButtonComponent = <T extends React.ElementType = typeof defaultElement>(props: NegativeButtonProps<T>) => React.ReactElement | null;
27
+ declare const defaultElement = "button";
28
+ export declare const NegativeButton: NegativeButtonComponent;
29
+ export {};
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { PolymorphicComponentPropsWithRef } from '@entur/utils';
3
+ export type PrimaryButtonBaseProps = {
4
+ /** Størrelsen på knappen
5
+ * @default 'medium'
6
+ */
7
+ size?: 'small' | 'medium' | 'large';
8
+ /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe
9
+ * @default false
10
+ */
11
+ loading?: boolean;
12
+ /** Ekstra klassenavn */
13
+ className?: string;
14
+ /** Deaktivering av knappen
15
+ * @default false
16
+ */
17
+ disabled?: boolean;
18
+ /** Bredden på knappen.
19
+ * @default 'auto'
20
+ */
21
+ width?: 'fluid' | 'auto';
22
+ /** Innholdet i knappen */
23
+ children: React.ReactNode;
24
+ };
25
+ export type PrimaryButtonProps<T extends React.ElementType> = PolymorphicComponentPropsWithRef<T, PrimaryButtonBaseProps>;
26
+ export type PrimaryButtonComponent = <T extends React.ElementType = typeof defaultElement>(props: PrimaryButtonProps<T>) => React.ReactElement | null;
27
+ declare const defaultElement = "button";
28
+ export declare const PrimaryButton: PrimaryButtonComponent;
29
+ export {};
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { PolymorphicComponentPropsWithRef } from '@entur/utils';
3
+ export type SecondaryButtonBaseProps = {
4
+ /** Størrelsen på knappen
5
+ * @default 'medium'
6
+ */
7
+ size?: 'small' | 'medium' | 'large';
8
+ /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe
9
+ * @default false
10
+ */
11
+ loading?: boolean;
12
+ /** Ekstra klassenavn */
13
+ className?: string;
14
+ /** Deaktivering av knappen
15
+ * @default false
16
+ */
17
+ disabled?: boolean;
18
+ /** Bredden på knappen.
19
+ * @default 'auto'
20
+ */
21
+ width?: 'fluid' | 'auto';
22
+ /** Innholdet i knappen */
23
+ children: React.ReactNode;
24
+ };
25
+ export type SecondaryButtonProps<T extends React.ElementType> = PolymorphicComponentPropsWithRef<T, SecondaryButtonBaseProps>;
26
+ export type SecondaryButtonComponent = <T extends React.ElementType = typeof defaultElement>(props: SecondaryButtonProps<T>) => React.ReactElement | null;
27
+ declare const defaultElement = "button";
28
+ export declare const SecondaryButton: SecondaryButtonComponent;
29
+ export {};
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { PolymorphicComponentPropsWithRef } from '@entur/utils';
3
+ type SecondarySquareButtonBaseProps = {
4
+ /** Tekst og ikon, ikon og tekst, eller bare ikon */
5
+ children: React.ReactNode;
6
+ /** Ekstra klassenavn */
7
+ className?: string;
8
+ /** Deaktivering av knappen
9
+ * @default false
10
+ */
11
+ disabled?: boolean;
12
+ /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe
13
+ * @default false
14
+ */
15
+ loading?: boolean;
16
+ };
17
+ export type SecondarySquareButtonProps<T extends React.ElementType> = PolymorphicComponentPropsWithRef<T, SecondarySquareButtonBaseProps>;
18
+ export type SecondarySquareButtonComponent = <T extends React.ElementType = typeof defaultElement>(props: SecondarySquareButtonProps<T>) => React.ReactElement | null;
19
+ declare const defaultElement = "button";
20
+ export declare const SecondarySquareButton: SecondarySquareButtonComponent;
21
+ export {};
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+ import { PolymorphicComponentPropsWithRef } from '@entur/utils';
3
+ import './SquareButton.scss';
4
+ export type SquareButtonBaseProps = {
5
+ /** Tekst og ikon */
6
+ children: React.ReactNode;
7
+ /** Ekstra klassenavn */
8
+ className?: string;
9
+ /** En type knapp */
10
+ variant?: 'success' | 'secondary' | 'tertiary';
11
+ /** Deaktivering av knappen
12
+ * @default false
13
+ */
14
+ disabled?: boolean;
15
+ /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe
16
+ * @default false
17
+ */
18
+ loading?: boolean;
19
+ /** DOM-elementet knappen rendres som */
20
+ as?: string | React.ElementType;
21
+ };
22
+ export type SquareButtonProps<T extends React.ElementType> = PolymorphicComponentPropsWithRef<T, SquareButtonBaseProps>;
23
+ export type SquareButtonComponent = <T extends React.ElementType = typeof defaultElement>(props: SquareButtonProps<T>) => React.ReactElement | null;
24
+ declare const defaultElement = "button";
25
+ export declare const SquareButton: SquareButtonComponent;
26
+ export {};
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { PolymorphicComponentPropsWithRef } from '@entur/utils';
3
+ export type SuccessButtonBaseProps = {
4
+ /** Størrelsen på knappen
5
+ * @default 'medium'
6
+ */
7
+ size?: 'small' | 'medium' | 'large';
8
+ /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe
9
+ * @default false
10
+ */
11
+ loading?: boolean;
12
+ /** Ekstra klassenavn */
13
+ className?: string;
14
+ /** Deaktivering av knappen
15
+ * @default false
16
+ */
17
+ disabled?: boolean;
18
+ /** Bredden på knappen.
19
+ * @default 'auto'
20
+ */
21
+ width?: 'fluid' | 'auto';
22
+ /** Innholdet i knappen */
23
+ children: React.ReactNode;
24
+ };
25
+ export type SuccessButtonProps<T extends React.ElementType> = PolymorphicComponentPropsWithRef<T, SuccessButtonBaseProps>;
26
+ export type SuccessButtonComponent = <T extends React.ElementType = typeof defaultElement>(props: SuccessButtonProps<T>) => React.ReactElement | null;
27
+ declare const defaultElement = "button";
28
+ export declare const SuccessButton: SuccessButtonComponent;
29
+ export {};
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { PolymorphicComponentPropsWithRef } from '@entur/utils';
3
+ type SuccessSquareButtonBaseProps = {
4
+ /** Tekst og ikon, ikon og tekst, eller bare ikon */
5
+ children: React.ReactNode;
6
+ /** Ekstra klassenavn */
7
+ className?: string;
8
+ /** Deaktivering av knappen
9
+ * @default false
10
+ */
11
+ disabled?: boolean;
12
+ /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe
13
+ * @default false
14
+ */
15
+ loading?: boolean;
16
+ };
17
+ export type SuccessSquareButtonProps<T extends React.ElementType> = PolymorphicComponentPropsWithRef<T, SuccessSquareButtonBaseProps>;
18
+ export type SuccessSquareButtonComponent = <T extends React.ElementType = typeof defaultElement>(props: SuccessSquareButtonProps<T>) => React.ReactElement | null;
19
+ declare const defaultElement = "button";
20
+ export declare const SuccessSquareButton: SuccessSquareButtonComponent;
21
+ export {};
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { PolymorphicComponentPropsWithRef } from '@entur/utils';
3
+ export type TertiaryButtonBaseProps = {
4
+ /** Størrelsen på knappen
5
+ * @default 'medium'
6
+ */
7
+ size?: 'medium' | 'large';
8
+ /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe
9
+ * @default false
10
+ */
11
+ loading?: boolean;
12
+ /** Ekstra klassenavn */
13
+ className?: string;
14
+ /** Deaktivering av knappen
15
+ * @default false
16
+ */
17
+ disabled?: boolean;
18
+ /** Bredden på knappen.
19
+ * @default 'auto'
20
+ */
21
+ width?: 'fluid' | 'auto';
22
+ /** Innholdet i knappen */
23
+ children: React.ReactNode;
24
+ };
25
+ export type TertiaryButtonProps<T extends React.ElementType> = PolymorphicComponentPropsWithRef<T, TertiaryButtonBaseProps>;
26
+ export type TertiaryButtonComponent = <T extends React.ElementType = typeof defaultElement>(props: TertiaryButtonProps<T>) => React.ReactElement | null;
27
+ declare const defaultElement = "button";
28
+ /** @deprecated use SecondaryButton size="small" instead */
29
+ export declare const TertiaryButton: TertiaryButtonComponent;
30
+ export {};
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { PolymorphicComponentPropsWithRef } from '@entur/utils';
3
+ type TertiarySquareButtonBaseProps = {
4
+ /** Tekst og ikon, ikon og tekst, eller bare ikon */
5
+ children: React.ReactNode;
6
+ /** Ekstra klassenavn */
7
+ className?: string;
8
+ /** Deaktivering av knappen
9
+ * @default false
10
+ */
11
+ disabled?: boolean;
12
+ /** Om knappen er opptatt, f.eks. med å lagre eller å kjøpe
13
+ * @default false
14
+ */
15
+ loading?: boolean;
16
+ /** DOM-elementet knappen rendres som */
17
+ as?: string | React.ElementType;
18
+ };
19
+ export type TertiarySquareButtonProps<T extends React.ElementType> = PolymorphicComponentPropsWithRef<T, TertiarySquareButtonBaseProps>;
20
+ export type TertiarySquareButtonComponent = <T extends React.ElementType = typeof defaultElement>(props: TertiarySquareButtonProps<T>) => React.ReactElement | null;
21
+ declare const defaultElement = "button";
22
+ export declare const TertiarySquareButton: TertiarySquareButtonComponent;
23
+ export {};
@@ -0,0 +1,309 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils = require('@entur/utils');
6
+ var React = require('react');
7
+ var classNames = require('classnames');
8
+ var loader = require('@entur/loader');
9
+
10
+ function _interopNamespaceDefault(e) {
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return n;
25
+ }
26
+
27
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
28
+
29
+ function _extends() {
30
+ return _extends = Object.assign ? Object.assign.bind() : function (n) {
31
+ for (var e = 1; e < arguments.length; e++) {
32
+ var t = arguments[e];
33
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
34
+ }
35
+ return n;
36
+ }, _extends.apply(null, arguments);
37
+ }
38
+ function _objectWithoutPropertiesLoose(r, e) {
39
+ if (null == r) return {};
40
+ var t = {};
41
+ for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
42
+ if (-1 !== e.indexOf(n)) continue;
43
+ t[n] = r[n];
44
+ }
45
+ return t;
46
+ }
47
+
48
+ var _excluded$4 = ["as", "children", "variant", "size", "loading", "className", "disabled", "width", "aria-label"];
49
+ var defaultElement$9 = 'button';
50
+ var Button = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
51
+ var _cx;
52
+ var as = _ref.as,
53
+ children = _ref.children,
54
+ _ref$variant = _ref.variant,
55
+ variant = _ref$variant === void 0 ? 'primary' : _ref$variant,
56
+ _ref$size = _ref.size,
57
+ size = _ref$size === void 0 ? 'medium' : _ref$size,
58
+ loading = _ref.loading,
59
+ className = _ref.className,
60
+ _ref$disabled = _ref.disabled,
61
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
62
+ _ref$width = _ref.width,
63
+ width = _ref$width === void 0 ? 'auto' : _ref$width,
64
+ ariaLabel = _ref['aria-label'],
65
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
66
+ var Element = as || defaultElement$9;
67
+ var childrenArray = React__namespace.Children.toArray(children);
68
+ var hasLeadingIcon = childrenArray.length > 1 && typeof childrenArray[0] !== 'string';
69
+ var hasTrailingIcon = childrenArray.length > 1 && typeof childrenArray[childrenArray.length - 1] !== 'string';
70
+ var ariaLabelWhenLoading = childrenArray.filter(function (child) {
71
+ return typeof child === 'string';
72
+ }).join(' ');
73
+ var ariaLabelValue = function ariaLabelValue() {
74
+ if (ariaLabel) return ariaLabel;
75
+ if (loading) return ariaLabelWhenLoading;
76
+ return undefined;
77
+ };
78
+ return React__namespace.createElement(Element, _extends({
79
+ className: classNames('eds-button', (_cx = {}, _cx["eds-button--variant-" + variant] = variant, _cx["eds-button--size-" + size] = size, _cx['eds-button--width-fluid'] = width === 'fluid', _cx['eds-button--loading'] = loading, _cx['eds-button--leading-icon'] = hasLeadingIcon, _cx['eds-button--trailing-icon'] = hasTrailingIcon, _cx), className),
80
+ ref: ref,
81
+ "aria-busy": loading,
82
+ disabled: disabled,
83
+ "aria-disabled": disabled,
84
+ "aria-label": ariaLabelValue()
85
+ }, rest), loading ? React__namespace.createElement(loader.LoadingDots, {
86
+ className: "eds-button__loading-dots"
87
+ }) : children);
88
+ });
89
+
90
+ var defaultElement$8 = 'button';
91
+ var PrimaryButton = /*#__PURE__*/React.forwardRef(function (props, ref) {
92
+ var Element = props.as || defaultElement$8;
93
+ // @ts-expect-error type error due to props not being BaseButtonProps
94
+ return React.createElement(Button, _extends({
95
+ as: Element
96
+ }, props, {
97
+ ref: ref,
98
+ variant: "primary"
99
+ }));
100
+ });
101
+
102
+ var defaultElement$7 = 'button';
103
+ var SecondaryButton = /*#__PURE__*/React.forwardRef(function (props, ref) {
104
+ var Element = props.as || defaultElement$7;
105
+ // @ts-expect-error type error due to props not being BaseButtonProps
106
+ return React.createElement(Button, _extends({
107
+ as: Element
108
+ }, props, {
109
+ ref: ref,
110
+ variant: "secondary"
111
+ }));
112
+ });
113
+
114
+ var defaultElement$6 = 'button';
115
+ var SuccessButton = /*#__PURE__*/React.forwardRef(function (props, ref) {
116
+ var Element = props.as || defaultElement$6;
117
+ // @ts-expect-error type error due to props not being BaseButtonProps
118
+ return React.createElement(Button, _extends({
119
+ as: Element
120
+ }, props, {
121
+ ref: ref,
122
+ variant: "success"
123
+ }));
124
+ });
125
+
126
+ var defaultElement$5 = 'button';
127
+ var NegativeButton = /*#__PURE__*/React.forwardRef(function (props, ref) {
128
+ var Element = props.as || defaultElement$5;
129
+ // @ts-expect-error type error due to props not being BaseButtonProps
130
+ return React.createElement(Button, _extends({
131
+ as: Element
132
+ }, props, {
133
+ ref: ref,
134
+ variant: "negative"
135
+ }));
136
+ });
137
+
138
+ var defaultElement$4 = 'button';
139
+ /** @deprecated use SecondaryButton size="small" instead */
140
+ var TertiaryButton = /*#__PURE__*/React.forwardRef(function (props, ref) {
141
+ var Element = props.as || defaultElement$4;
142
+ return React.createElement(Button, _extends({
143
+ as: Element
144
+ }, props, {
145
+ ref: ref,
146
+ variant: "tertiary",
147
+ size: "small"
148
+ }));
149
+ });
150
+
151
+ var _excluded$3 = ["as", "className"];
152
+ var ButtonGroup = function ButtonGroup(_ref) {
153
+ var _ref$as = _ref.as,
154
+ Element = _ref$as === void 0 ? 'div' : _ref$as,
155
+ className = _ref.className,
156
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
157
+ return React.createElement(Element, _extends({
158
+ className: classNames('eds-button-group', className)
159
+ }, rest));
160
+ };
161
+
162
+ var _excluded$2 = ["className", "children", "size"];
163
+ var FloatingButton = function FloatingButton(_ref) {
164
+ var className = _ref.className,
165
+ children = _ref.children,
166
+ _ref$size = _ref.size,
167
+ size = _ref$size === void 0 ? 'medium' : _ref$size,
168
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
169
+ return React.createElement("button", _extends({
170
+ className: classNames('eds-floating-button', {
171
+ 'eds-floating-button--extended': React.Children.count(children) > 1
172
+ }, {
173
+ 'eds-floating-button--small': size === 'small'
174
+ }, className),
175
+ type: "button"
176
+ }, rest), wrapStringsInSpans(children));
177
+ };
178
+ var wrapStringsInSpans = function wrapStringsInSpans(children) {
179
+ return React.Children.map(children, function (child) {
180
+ return typeof child === 'string' ? React.createElement("span", null, child) : child;
181
+ });
182
+ };
183
+
184
+ var _excluded$1 = ["as", "children", "className", "disabled", "loading", "variant"];
185
+ var defaultElement$3 = 'button';
186
+ var SquareButton = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
187
+ var as = _ref.as,
188
+ children = _ref.children,
189
+ className = _ref.className,
190
+ _ref$disabled = _ref.disabled,
191
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
192
+ _ref$loading = _ref.loading,
193
+ loading = _ref$loading === void 0 ? false : _ref$loading,
194
+ _ref$variant = _ref.variant,
195
+ variant = _ref$variant === void 0 ? 'secondary' : _ref$variant,
196
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
197
+ var Element = as || defaultElement$3;
198
+ return React__namespace.createElement(Element, _extends({
199
+ className: classNames('eds-square-button', "eds-square-button--" + variant, {
200
+ 'eds-square-button--loading': loading
201
+ }, className),
202
+ "aria-busy": loading,
203
+ disabled: disabled,
204
+ "aria-disabled": disabled,
205
+ ref: ref
206
+ }, rest), React__namespace.Children.map(children, function (child) {
207
+ if (typeof child === 'string') {
208
+ return React__namespace.createElement("span", {
209
+ className: "eds-square-button__label"
210
+ }, child);
211
+ }
212
+ return React__namespace.createElement("span", {
213
+ className: "eds-square-button__button"
214
+ }, loading ? React__namespace.createElement(loader.LoadingDots, {
215
+ className: "eds-square-button__loading-dots"
216
+ }) : child);
217
+ }));
218
+ });
219
+
220
+ var defaultElement$2 = 'button';
221
+ var SecondarySquareButton = /*#__PURE__*/React.forwardRef(function (props, ref) {
222
+ var Element = props.as || defaultElement$2;
223
+ return (
224
+ // @ts-expect-error type error due to props not being BaseButtonProps
225
+ React.createElement(SquareButton, _extends({
226
+ as: Element,
227
+ ref: ref
228
+ }, props, {
229
+ variant: "secondary"
230
+ }))
231
+ );
232
+ });
233
+
234
+ var defaultElement$1 = 'button';
235
+ var SuccessSquareButton = /*#__PURE__*/React.forwardRef(function (props, ref) {
236
+ var Element = props.as || defaultElement$1;
237
+ return (
238
+ // @ts-expect-error type error due to props not being BaseButtonProps
239
+ React.createElement(SquareButton, _extends({
240
+ as: Element,
241
+ ref: ref
242
+ }, props, {
243
+ variant: "success"
244
+ }))
245
+ );
246
+ });
247
+
248
+ var TertiarySquareButton = /*#__PURE__*/React.forwardRef(function (props, ref) {
249
+ return React.createElement(SquareButton, _extends({
250
+ ref: ref
251
+ }, props, {
252
+ variant: "tertiary"
253
+ }));
254
+ });
255
+
256
+ var _excluded = ["children", "className", "disabled", "size", "as", "loading"];
257
+ var defaultElement = 'button';
258
+ var IconButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
259
+ var children = _ref.children,
260
+ className = _ref.className,
261
+ _ref$disabled = _ref.disabled,
262
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
263
+ _ref$size = _ref.size,
264
+ size = _ref$size === void 0 ? 'medium' : _ref$size,
265
+ as = _ref.as,
266
+ loading = _ref.loading,
267
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded);
268
+ var Element = as || defaultElement;
269
+ var IconWithAriaHidden = React.Children.map(children, function (child) {
270
+ if (React.isValidElement(child)) {
271
+ // @ts-expect-error aria-hidden does, in fact, exist
272
+ return React.cloneElement(child, {
273
+ 'aria-hidden': true
274
+ });
275
+ }
276
+ return child;
277
+ });
278
+ var iconButtonElement = React.createElement(Element, _extends({
279
+ className: classNames('eds-icon-button', className, {
280
+ 'eds-icon-button--disabled': disabled
281
+ }, "eds-icon-button--size-" + size),
282
+ disabled: disabled,
283
+ "aria-disabled": disabled,
284
+ "aria-busy": loading,
285
+ ref: ref
286
+ }, rest), loading ? React.createElement(loader.LoadingDots, null) : React.createElement(React.Fragment, null, IconWithAriaHidden));
287
+ if (disabled) {
288
+ return React.createElement("div", {
289
+ className: "eds-icon-button--disabled__wrapper"
290
+ }, iconButtonElement);
291
+ }
292
+ return React.createElement(React.Fragment, null, iconButtonElement);
293
+ });
294
+
295
+ utils.warnAboutMissingStyles('button');
296
+
297
+ exports.Button = Button;
298
+ exports.ButtonGroup = ButtonGroup;
299
+ exports.FloatingButton = FloatingButton;
300
+ exports.IconButton = IconButton;
301
+ exports.NegativeButton = NegativeButton;
302
+ exports.PrimaryButton = PrimaryButton;
303
+ exports.SecondaryButton = SecondaryButton;
304
+ exports.SecondarySquareButton = SecondarySquareButton;
305
+ exports.SuccessButton = SuccessButton;
306
+ exports.SuccessSquareButton = SuccessSquareButton;
307
+ exports.TertiaryButton = TertiaryButton;
308
+ exports.TertiarySquareButton = TertiarySquareButton;
309
+ //# sourceMappingURL=button.cjs.development.js.map