@guardian/stand 0.0.10 → 0.0.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.
Files changed (37) hide show
  1. package/dist/components/button/Button.cjs +11 -2
  2. package/dist/components/button/Button.js +9 -4
  3. package/dist/components/button/styles.cjs +11 -1
  4. package/dist/components/button/styles.js +11 -1
  5. package/dist/components/icon-button/IconButton.cjs +45 -0
  6. package/dist/components/icon-button/IconButton.js +26 -0
  7. package/dist/components/icon-button/styles.cjs +9 -0
  8. package/dist/components/icon-button/styles.js +6 -0
  9. package/dist/components/icon-link-button/IconLinkButton.cjs +47 -0
  10. package/dist/components/icon-link-button/IconLinkButton.js +23 -0
  11. package/dist/components/icon-link-button/styles.cjs +9 -0
  12. package/dist/components/icon-link-button/styles.js +6 -0
  13. package/dist/components/link-button/LinkButton.cjs +8 -2
  14. package/dist/components/link-button/LinkButton.js +7 -5
  15. package/dist/icon-button.cjs +7 -0
  16. package/dist/icon-button.js +1 -0
  17. package/dist/icon-link-button.cjs +7 -0
  18. package/dist/icon-link-button.js +1 -0
  19. package/dist/styleD/build/css/component/button.css +64 -0
  20. package/dist/styleD/build/typescript/component/button.cjs +208 -16
  21. package/dist/styleD/build/typescript/component/button.js +208 -16
  22. package/dist/types/components/button/Button.d.ts +1 -1
  23. package/dist/types/components/button/styles.d.ts +1 -1
  24. package/dist/types/components/button/types.d.ts +5 -0
  25. package/dist/types/components/icon-button/IconButton.d.ts +2 -0
  26. package/dist/types/components/icon-button/styles.d.ts +522 -0
  27. package/dist/types/components/icon-button/types.d.ts +26 -0
  28. package/dist/types/components/icon-link-button/IconLinkButton.d.ts +2 -0
  29. package/dist/types/components/icon-link-button/styles.d.ts +522 -0
  30. package/dist/types/components/icon-link-button/types.d.ts +26 -0
  31. package/dist/types/components/link-button/LinkButton.d.ts +1 -1
  32. package/dist/types/components/link-button/styles.d.ts +193 -1
  33. package/dist/types/components/link-button/types.d.ts +5 -0
  34. package/dist/types/icon-button.d.ts +20 -0
  35. package/dist/types/icon-link-button.d.ts +20 -0
  36. package/dist/types/styleD/build/typescript/component/button.d.ts +192 -0
  37. package/package.json +17 -1
@@ -3,6 +3,7 @@
3
3
  var jsxRuntime = require('@emotion/react/jsx-runtime');
4
4
  var reactAriaComponents = require('react-aria-components');
5
5
  var mergeDeep = require('../../util/mergeDeep.cjs');
6
+ var Icon = require('../icon/Icon.cjs');
6
7
  var styles = require('./styles.cjs');
7
8
 
8
9
  function Button({
@@ -10,17 +11,25 @@ function Button({
10
11
  size = "md",
11
12
  theme = {},
12
13
  cssOverrides,
14
+ icon,
13
15
  ...props
14
16
  }) {
15
17
  const mergedTheme = mergeDeep.mergeDeep(styles.defaultButtonTheme, theme);
18
+ const iconSize = size === "xs" ? "sm" : size;
16
19
  return /* @__PURE__ */ jsxRuntime.jsx(
17
20
  reactAriaComponents.Button,
18
21
  {
19
22
  ...props,
20
- css: [styles.buttonStyles(mergedTheme, { variant, size }), cssOverrides],
23
+ css: [
24
+ styles.buttonStyles(mergedTheme, { variant, size }, !!icon),
25
+ cssOverrides
26
+ ],
21
27
  children: reactAriaComponents.composeRenderProps(props.children, (children) => (
22
28
  // TODO: isPending (loading) state - see https://react-aria.adobe.com/Button
23
- /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children })
29
+ /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
30
+ icon && /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { size: iconSize, children: icon }),
31
+ children
32
+ ] })
24
33
  ))
25
34
  }
26
35
  );
@@ -1,13 +1,18 @@
1
- import { jsx, Fragment } from '@emotion/react/jsx-runtime';
1
+ import { jsx, jsxs, Fragment } from '@emotion/react/jsx-runtime';
2
2
  import { Button as Button$1, composeRenderProps } from 'react-aria-components';
3
3
  import { mergeDeep } from '../../util/mergeDeep.js';
4
+ import { Icon } from '../icon/Icon.js';
4
5
  import { buttonStyles, defaultButtonTheme } from './styles.js';
5
6
 
6
- function Button({ variant = "emphasised-primary", size = "md", theme = {}, cssOverrides, ...props }) {
7
+ function Button({ variant = "emphasised-primary", size = "md", theme = {}, cssOverrides, icon, ...props }) {
7
8
  const mergedTheme = mergeDeep(defaultButtonTheme, theme);
8
- return jsx(Button$1, { ...props, css: [buttonStyles(mergedTheme, { variant, size }), cssOverrides], children: composeRenderProps(props.children, (children) => (
9
+ const iconSize = size === "xs" ? "sm" : size;
10
+ return jsx(Button$1, { ...props, css: [
11
+ buttonStyles(mergedTheme, { variant, size }, !!icon),
12
+ cssOverrides
13
+ ], children: composeRenderProps(props.children, (children) => (
9
14
  // TODO: isPending (loading) state - see https://react-aria.adobe.com/Button
10
- jsx(Fragment, { children })
15
+ jsxs(Fragment, { children: [icon && jsx(Icon, { size: iconSize, children: icon }), children] })
11
16
  )) });
12
17
  }
13
18
 
@@ -5,7 +5,7 @@ var button = require('../../styleD/build/typescript/component/button.cjs');
5
5
  var typography = require('../../styleD/utils/semantic/typography.cjs');
6
6
 
7
7
  const defaultButtonTheme = button.componentButton;
8
- const buttonStyles = (theme, { size, variant }) => {
8
+ const buttonStyles = (theme, { size, variant }, hasIcon = false, isIconButton = false) => {
9
9
  return react.css`
10
10
  /* button/link button reset styles */
11
11
  display: ${theme.shared["display"]};
@@ -30,6 +30,16 @@ const buttonStyles = (theme, { size, variant }) => {
30
30
  border: ${theme[variant].shared.border};
31
31
  border-radius: ${theme[variant].shared.borderRadius};
32
32
 
33
+ ${hasIcon && react.css`
34
+ padding-left: ${theme[variant][size].padding.withIcon.iconLeft.left};
35
+ gap: ${theme[variant][size].icon.gap};
36
+ `}
37
+
38
+ ${isIconButton && react.css`
39
+ width: ${theme[variant][size].iconButton.width};
40
+ padding: 0;
41
+ `}
42
+
33
43
  &[data-hovered] {
34
44
  background: ${theme[variant].shared[":hover"].backgroundColor};
35
45
  border: ${theme[variant].shared[":hover"].border};
@@ -3,7 +3,7 @@ import { componentButton } from '../../styleD/build/typescript/component/button.
3
3
  import { convertTypographyToEmotionStringStyle } from '../../styleD/utils/semantic/typography.js';
4
4
 
5
5
  const defaultButtonTheme = componentButton;
6
- const buttonStyles = (theme, { size, variant }) => {
6
+ const buttonStyles = (theme, { size, variant }, hasIcon = false, isIconButton = false) => {
7
7
  return css`
8
8
  /* button/link button reset styles */
9
9
  display: ${theme.shared["display"]};
@@ -26,6 +26,16 @@ const buttonStyles = (theme, { size, variant }) => {
26
26
  border: ${theme[variant].shared.border};
27
27
  border-radius: ${theme[variant].shared.borderRadius};
28
28
 
29
+ ${hasIcon && css`
30
+ padding-left: ${theme[variant][size].padding.withIcon.iconLeft.left};
31
+ gap: ${theme[variant][size].icon.gap};
32
+ `}
33
+
34
+ ${isIconButton && css`
35
+ width: ${theme[variant][size].iconButton.width};
36
+ padding: 0;
37
+ `}
38
+
29
39
  &[data-hovered] {
30
40
  background: ${theme[variant].shared[":hover"].backgroundColor};
31
41
  border: ${theme[variant].shared[":hover"].border};
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
4
+ var react = require('react');
5
+ var reactAriaComponents = require('react-aria-components');
6
+ var mergeDeep = require('../../util/mergeDeep.cjs');
7
+ var Icon = require('../icon/Icon.cjs');
8
+ var styles = require('./styles.cjs');
9
+
10
+ function IconButton({
11
+ variant = "emphasised-primary",
12
+ size = "md",
13
+ symbol,
14
+ ariaLabel,
15
+ theme = {},
16
+ cssOverrides,
17
+ ...props
18
+ }) {
19
+ const mergedTheme = mergeDeep.mergeDeep(styles.defaultIconButtonTheme, theme);
20
+ const buttonRef = react.useRef(null);
21
+ react.useEffect(() => {
22
+ if (buttonRef.current) {
23
+ buttonRef.current.title = ariaLabel;
24
+ }
25
+ }, [ariaLabel]);
26
+ const iconSize = size === "xs" ? "sm" : size;
27
+ return /* @__PURE__ */ jsxRuntime.jsx(
28
+ reactAriaComponents.Button,
29
+ {
30
+ ...props,
31
+ ref: buttonRef,
32
+ "aria-label": ariaLabel,
33
+ css: [
34
+ styles.iconButtonStyles(mergedTheme, { variant, size }, false, true),
35
+ cssOverrides
36
+ ],
37
+ children: reactAriaComponents.composeRenderProps(props.children, (children) => (
38
+ // TODO: isPending (loading) state - see https://react-aria.adobe.com/Button
39
+ /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { size: iconSize, symbol, children })
40
+ ))
41
+ }
42
+ );
43
+ }
44
+
45
+ exports.IconButton = IconButton;
@@ -0,0 +1,26 @@
1
+ import { jsx } from '@emotion/react/jsx-runtime';
2
+ import { useRef, useEffect } from 'react';
3
+ import { Button, composeRenderProps } from 'react-aria-components';
4
+ import { mergeDeep } from '../../util/mergeDeep.js';
5
+ import { Icon } from '../icon/Icon.js';
6
+ import { iconButtonStyles, defaultIconButtonTheme } from './styles.js';
7
+
8
+ function IconButton({ variant = "emphasised-primary", size = "md", symbol, ariaLabel, theme = {}, cssOverrides, ...props }) {
9
+ const mergedTheme = mergeDeep(defaultIconButtonTheme, theme);
10
+ const buttonRef = useRef(null);
11
+ useEffect(() => {
12
+ if (buttonRef.current) {
13
+ buttonRef.current.title = ariaLabel;
14
+ }
15
+ }, [ariaLabel]);
16
+ const iconSize = size === "xs" ? "sm" : size;
17
+ return jsx(Button, { ...props, ref: buttonRef, "aria-label": ariaLabel, css: [
18
+ iconButtonStyles(mergedTheme, { variant, size }, false, true),
19
+ cssOverrides
20
+ ], children: composeRenderProps(props.children, (children) => (
21
+ // TODO: isPending (loading) state - see https://react-aria.adobe.com/Button
22
+ jsx(Icon, { size: iconSize, symbol, children })
23
+ )) });
24
+ }
25
+
26
+ export { IconButton };
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styles = require('../button/styles.cjs');
4
+
5
+ const defaultIconButtonTheme = styles.defaultButtonTheme;
6
+ const iconButtonStyles = styles.buttonStyles;
7
+
8
+ exports.defaultIconButtonTheme = defaultIconButtonTheme;
9
+ exports.iconButtonStyles = iconButtonStyles;
@@ -0,0 +1,6 @@
1
+ import { buttonStyles, defaultButtonTheme } from '../button/styles.js';
2
+
3
+ const defaultIconButtonTheme = defaultButtonTheme;
4
+ const iconButtonStyles = buttonStyles;
5
+
6
+ export { defaultIconButtonTheme, iconButtonStyles };
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
4
+ var react = require('react');
5
+ var reactAriaComponents = require('react-aria-components');
6
+ var mergeDeep = require('../../util/mergeDeep.cjs');
7
+ var Icon = require('../icon/Icon.cjs');
8
+ var styles = require('./styles.cjs');
9
+
10
+ function IconLinkButton({
11
+ variant = "emphasised-primary",
12
+ size = "md",
13
+ symbol,
14
+ ariaLabel,
15
+ theme = {},
16
+ cssOverrides,
17
+ ...props
18
+ }) {
19
+ const mergedTheme = mergeDeep.mergeDeep(styles.defaultIconLinkButtonTheme, theme);
20
+ const linkRef = react.useRef(null);
21
+ react.useEffect(() => {
22
+ if (linkRef.current) {
23
+ linkRef.current.title = ariaLabel;
24
+ }
25
+ }, [ariaLabel]);
26
+ const iconSize = size === "xs" ? "sm" : size;
27
+ return /* @__PURE__ */ jsxRuntime.jsx(
28
+ reactAriaComponents.Link,
29
+ {
30
+ ...props,
31
+ ref: linkRef,
32
+ "aria-label": ariaLabel,
33
+ css: [
34
+ styles.iconLinkButtonStyles(
35
+ mergedTheme,
36
+ { variant, size },
37
+ false,
38
+ true
39
+ ),
40
+ cssOverrides
41
+ ],
42
+ children: reactAriaComponents.composeRenderProps(props.children, (children) => /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { size: iconSize, symbol, children }))
43
+ }
44
+ );
45
+ }
46
+
47
+ exports.IconLinkButton = IconLinkButton;
@@ -0,0 +1,23 @@
1
+ import { jsx } from '@emotion/react/jsx-runtime';
2
+ import { useRef, useEffect } from 'react';
3
+ import { Link, composeRenderProps } from 'react-aria-components';
4
+ import { mergeDeep } from '../../util/mergeDeep.js';
5
+ import { Icon } from '../icon/Icon.js';
6
+ import { iconLinkButtonStyles, defaultIconLinkButtonTheme } from './styles.js';
7
+
8
+ function IconLinkButton({ variant = "emphasised-primary", size = "md", symbol, ariaLabel, theme = {}, cssOverrides, ...props }) {
9
+ const mergedTheme = mergeDeep(defaultIconLinkButtonTheme, theme);
10
+ const linkRef = useRef(null);
11
+ useEffect(() => {
12
+ if (linkRef.current) {
13
+ linkRef.current.title = ariaLabel;
14
+ }
15
+ }, [ariaLabel]);
16
+ const iconSize = size === "xs" ? "sm" : size;
17
+ return jsx(Link, { ...props, ref: linkRef, "aria-label": ariaLabel, css: [
18
+ iconLinkButtonStyles(mergedTheme, { variant, size }, false, true),
19
+ cssOverrides
20
+ ], children: composeRenderProps(props.children, (children) => jsx(Icon, { size: iconSize, symbol, children })) });
21
+ }
22
+
23
+ export { IconLinkButton };
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styles = require('../button/styles.cjs');
4
+
5
+ const defaultIconLinkButtonTheme = styles.defaultButtonTheme;
6
+ const iconLinkButtonStyles = styles.buttonStyles;
7
+
8
+ exports.defaultIconLinkButtonTheme = defaultIconLinkButtonTheme;
9
+ exports.iconLinkButtonStyles = iconLinkButtonStyles;
@@ -0,0 +1,6 @@
1
+ import { buttonStyles, defaultButtonTheme } from '../button/styles.js';
2
+
3
+ const defaultIconLinkButtonTheme = defaultButtonTheme;
4
+ const iconLinkButtonStyles = buttonStyles;
5
+
6
+ export { defaultIconLinkButtonTheme, iconLinkButtonStyles };
@@ -3,6 +3,7 @@
3
3
  var jsxRuntime = require('@emotion/react/jsx-runtime');
4
4
  var reactAriaComponents = require('react-aria-components');
5
5
  var mergeDeep = require('../../util/mergeDeep.cjs');
6
+ var Icon = require('../icon/Icon.cjs');
6
7
  var styles = require('./styles.cjs');
7
8
 
8
9
  function LinkButton({
@@ -10,18 +11,23 @@ function LinkButton({
10
11
  size = "md",
11
12
  theme = {},
12
13
  cssOverrides,
14
+ icon,
13
15
  ...props
14
16
  }) {
15
17
  const mergedTheme = mergeDeep.mergeDeep(styles.defaultLinkButtonTheme, theme);
18
+ const iconSize = size === "xs" ? "sm" : size;
16
19
  return /* @__PURE__ */ jsxRuntime.jsx(
17
20
  reactAriaComponents.Link,
18
21
  {
19
22
  ...props,
20
23
  css: [
21
- styles.linkButtonStyles(mergedTheme, { variant, size }),
24
+ styles.linkButtonStyles(mergedTheme, { variant, size }, !!icon),
22
25
  cssOverrides
23
26
  ],
24
- children: props.children
27
+ children: reactAriaComponents.composeRenderProps(props.children, (children) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
28
+ icon && /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { size: iconSize, children: icon }),
29
+ children
30
+ ] }))
25
31
  }
26
32
  );
27
33
  }
@@ -1,14 +1,16 @@
1
- import { jsx } from '@emotion/react/jsx-runtime';
2
- import { Link } from 'react-aria-components';
1
+ import { jsx, jsxs, Fragment } from '@emotion/react/jsx-runtime';
2
+ import { Link, composeRenderProps } from 'react-aria-components';
3
3
  import { mergeDeep } from '../../util/mergeDeep.js';
4
+ import { Icon } from '../icon/Icon.js';
4
5
  import { linkButtonStyles, defaultLinkButtonTheme } from './styles.js';
5
6
 
6
- function LinkButton({ variant = "emphasised-primary", size = "md", theme = {}, cssOverrides, ...props }) {
7
+ function LinkButton({ variant = "emphasised-primary", size = "md", theme = {}, cssOverrides, icon, ...props }) {
7
8
  const mergedTheme = mergeDeep(defaultLinkButtonTheme, theme);
9
+ const iconSize = size === "xs" ? "sm" : size;
8
10
  return jsx(Link, { ...props, css: [
9
- linkButtonStyles(mergedTheme, { variant, size }),
11
+ linkButtonStyles(mergedTheme, { variant, size }, !!icon),
10
12
  cssOverrides
11
- ], children: props.children });
13
+ ], children: composeRenderProps(props.children, (children) => jsxs(Fragment, { children: [icon && jsx(Icon, { size: iconSize, children: icon }), children] })) });
12
14
  }
13
15
 
14
16
  export { LinkButton };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var IconButton = require('./components/icon-button/IconButton.cjs');
4
+
5
+
6
+
7
+ exports.IconButton = IconButton.IconButton;
@@ -0,0 +1 @@
1
+ export { IconButton } from './components/icon-button/IconButton.js';
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var IconLinkButton = require('./components/icon-link-button/IconLinkButton.cjs');
4
+
5
+
6
+
7
+ exports.IconLinkButton = IconLinkButton.IconLinkButton;
@@ -0,0 +1 @@
1
+ export { IconLinkButton } from './components/icon-link-button/IconLinkButton.js';
@@ -33,37 +33,53 @@
33
33
  --component-button-emphasised-primary-xs-padding-right: 0.5rem;
34
34
  --component-button-emphasised-primary-xs-padding-bottom: 0.25rem;
35
35
  --component-button-emphasised-primary-xs-padding-left: 0.5rem;
36
+ --component-button-emphasised-primary-xs-padding-with-icon-icon-left-left: 0.25rem;
36
37
  --component-button-emphasised-primary-xs-typography-font: normal 700
37
38
  0.75rem/1 'Open Sans';
38
39
  --component-button-emphasised-primary-xs-typography-letter-spacing: 0rem;
39
40
  --component-button-emphasised-primary-xs-typography-font-width: 95;
41
+ --component-button-emphasised-primary-xs-icon-size: 1.125rem;
42
+ --component-button-emphasised-primary-xs-icon-gap: 0.25rem;
43
+ --component-button-emphasised-primary-xs-icon-button-width: 1.5rem;
40
44
  --component-button-emphasised-primary-sm-height: 2rem;
41
45
  --component-button-emphasised-primary-sm-padding-top: 0.25rem;
42
46
  --component-button-emphasised-primary-sm-padding-right: 0.625rem;
43
47
  --component-button-emphasised-primary-sm-padding-bottom: 0.25rem;
44
48
  --component-button-emphasised-primary-sm-padding-left: 0.625rem;
49
+ --component-button-emphasised-primary-sm-padding-with-icon-icon-left-left: 0.5rem;
45
50
  --component-button-emphasised-primary-sm-typography-font: normal 700
46
51
  0.875rem/1 'Open Sans';
47
52
  --component-button-emphasised-primary-sm-typography-letter-spacing: -0.0125rem;
48
53
  --component-button-emphasised-primary-sm-typography-font-width: 95;
54
+ --component-button-emphasised-primary-sm-icon-size: 1.125rem;
55
+ --component-button-emphasised-primary-sm-icon-gap: 0.25rem;
56
+ --component-button-emphasised-primary-sm-icon-button-width: 2rem;
49
57
  --component-button-emphasised-primary-md-height: 2.5rem;
50
58
  --component-button-emphasised-primary-md-padding-top: 0.25rem;
51
59
  --component-button-emphasised-primary-md-padding-right: 0.75rem;
52
60
  --component-button-emphasised-primary-md-padding-bottom: 0.25rem;
53
61
  --component-button-emphasised-primary-md-padding-left: 0.75rem;
62
+ --component-button-emphasised-primary-md-padding-with-icon-icon-left-left: 0.5rem;
54
63
  --component-button-emphasised-primary-md-typography-font: normal 700
55
64
  0.875rem/1 'Open Sans';
56
65
  --component-button-emphasised-primary-md-typography-letter-spacing: -0.0125rem;
57
66
  --component-button-emphasised-primary-md-typography-font-width: 95;
67
+ --component-button-emphasised-primary-md-icon-size: 1.25rem;
68
+ --component-button-emphasised-primary-md-icon-gap: 0.25rem;
69
+ --component-button-emphasised-primary-md-icon-button-width: 2.5rem;
58
70
  --component-button-emphasised-primary-lg-height: 3rem;
59
71
  --component-button-emphasised-primary-lg-padding-top: 0.25rem;
60
72
  --component-button-emphasised-primary-lg-padding-right: 1rem;
61
73
  --component-button-emphasised-primary-lg-padding-bottom: 0.25rem;
62
74
  --component-button-emphasised-primary-lg-padding-left: 1rem;
75
+ --component-button-emphasised-primary-lg-padding-with-icon-icon-left-left: 0.75rem;
63
76
  --component-button-emphasised-primary-lg-typography-font: normal 700 1rem/1
64
77
  'Open Sans';
65
78
  --component-button-emphasised-primary-lg-typography-letter-spacing: -0.0125rem;
66
79
  --component-button-emphasised-primary-lg-typography-font-width: 95;
80
+ --component-button-emphasised-primary-lg-icon-size: 1.5rem;
81
+ --component-button-emphasised-primary-lg-icon-gap: 0.25rem;
82
+ --component-button-emphasised-primary-lg-icon-button-width: 3rem;
67
83
  --component-button-emphasised-secondary-shared-color: #000000;
68
84
  --component-button-emphasised-secondary-shared-background-color: none;
69
85
  --component-button-emphasised-secondary-shared-border-radius: 0.25rem;
@@ -84,37 +100,53 @@
84
100
  --component-button-emphasised-secondary-xs-padding-right: 0.5rem;
85
101
  --component-button-emphasised-secondary-xs-padding-bottom: 0.25rem;
86
102
  --component-button-emphasised-secondary-xs-padding-left: 0.5rem;
103
+ --component-button-emphasised-secondary-xs-padding-with-icon-icon-left-left: 0.25rem;
87
104
  --component-button-emphasised-secondary-xs-typography-font: normal 700
88
105
  0.75rem/1 'Open Sans';
89
106
  --component-button-emphasised-secondary-xs-typography-letter-spacing: 0rem;
90
107
  --component-button-emphasised-secondary-xs-typography-font-width: 95;
108
+ --component-button-emphasised-secondary-xs-icon-size: 1.125rem;
109
+ --component-button-emphasised-secondary-xs-icon-gap: 0.25rem;
110
+ --component-button-emphasised-secondary-xs-icon-button-width: 1.5rem;
91
111
  --component-button-emphasised-secondary-sm-height: 2rem;
92
112
  --component-button-emphasised-secondary-sm-padding-top: 0.25rem;
93
113
  --component-button-emphasised-secondary-sm-padding-right: 0.625rem;
94
114
  --component-button-emphasised-secondary-sm-padding-bottom: 0.25rem;
95
115
  --component-button-emphasised-secondary-sm-padding-left: 0.625rem;
116
+ --component-button-emphasised-secondary-sm-padding-with-icon-icon-left-left: 0.5rem;
96
117
  --component-button-emphasised-secondary-sm-typography-font: normal 700
97
118
  0.875rem/1 'Open Sans';
98
119
  --component-button-emphasised-secondary-sm-typography-letter-spacing: -0.0125rem;
99
120
  --component-button-emphasised-secondary-sm-typography-font-width: 95;
121
+ --component-button-emphasised-secondary-sm-icon-size: 1.125rem;
122
+ --component-button-emphasised-secondary-sm-icon-gap: 0.25rem;
123
+ --component-button-emphasised-secondary-sm-icon-button-width: 2rem;
100
124
  --component-button-emphasised-secondary-md-height: 2.5rem;
101
125
  --component-button-emphasised-secondary-md-padding-top: 0.25rem;
102
126
  --component-button-emphasised-secondary-md-padding-right: 0.75rem;
103
127
  --component-button-emphasised-secondary-md-padding-bottom: 0.25rem;
104
128
  --component-button-emphasised-secondary-md-padding-left: 0.75rem;
129
+ --component-button-emphasised-secondary-md-padding-with-icon-icon-left-left: 0.5rem;
105
130
  --component-button-emphasised-secondary-md-typography-font: normal 700
106
131
  0.875rem/1 'Open Sans';
107
132
  --component-button-emphasised-secondary-md-typography-letter-spacing: -0.0125rem;
108
133
  --component-button-emphasised-secondary-md-typography-font-width: 95;
134
+ --component-button-emphasised-secondary-md-icon-size: 1.25rem;
135
+ --component-button-emphasised-secondary-md-icon-gap: 0.25rem;
136
+ --component-button-emphasised-secondary-md-icon-button-width: 2.5rem;
109
137
  --component-button-emphasised-secondary-lg-height: 3rem;
110
138
  --component-button-emphasised-secondary-lg-padding-top: 0.25rem;
111
139
  --component-button-emphasised-secondary-lg-padding-right: 1rem;
112
140
  --component-button-emphasised-secondary-lg-padding-bottom: 0.25rem;
113
141
  --component-button-emphasised-secondary-lg-padding-left: 1rem;
142
+ --component-button-emphasised-secondary-lg-padding-with-icon-icon-left-left: 0.75rem;
114
143
  --component-button-emphasised-secondary-lg-typography-font: normal 700
115
144
  1rem/1 'Open Sans';
116
145
  --component-button-emphasised-secondary-lg-typography-letter-spacing: -0.0125rem;
117
146
  --component-button-emphasised-secondary-lg-typography-font-width: 95;
147
+ --component-button-emphasised-secondary-lg-icon-size: 1.5rem;
148
+ --component-button-emphasised-secondary-lg-icon-gap: 0.25rem;
149
+ --component-button-emphasised-secondary-lg-icon-button-width: 3rem;
118
150
  --component-button-neutral-primary-shared-color: #ffffff;
119
151
  --component-button-neutral-primary-shared-background-color: #545454;
120
152
  --component-button-neutral-primary-shared-border-radius: 0.25rem;
@@ -134,37 +166,53 @@
134
166
  --component-button-neutral-primary-xs-padding-right: 0.5rem;
135
167
  --component-button-neutral-primary-xs-padding-bottom: 0.25rem;
136
168
  --component-button-neutral-primary-xs-padding-left: 0.5rem;
169
+ --component-button-neutral-primary-xs-padding-with-icon-icon-left-left: 0.25rem;
137
170
  --component-button-neutral-primary-xs-typography-font: normal 700 0.75rem/1
138
171
  'Open Sans';
139
172
  --component-button-neutral-primary-xs-typography-letter-spacing: 0rem;
140
173
  --component-button-neutral-primary-xs-typography-font-width: 95;
174
+ --component-button-neutral-primary-xs-icon-size: 1.125rem;
175
+ --component-button-neutral-primary-xs-icon-gap: 0.25rem;
176
+ --component-button-neutral-primary-xs-icon-button-width: 1.5rem;
141
177
  --component-button-neutral-primary-sm-height: 2rem;
142
178
  --component-button-neutral-primary-sm-padding-top: 0.25rem;
143
179
  --component-button-neutral-primary-sm-padding-right: 0.625rem;
144
180
  --component-button-neutral-primary-sm-padding-bottom: 0.25rem;
145
181
  --component-button-neutral-primary-sm-padding-left: 0.625rem;
182
+ --component-button-neutral-primary-sm-padding-with-icon-icon-left-left: 0.5rem;
146
183
  --component-button-neutral-primary-sm-typography-font: normal 700 0.875rem/1
147
184
  'Open Sans';
148
185
  --component-button-neutral-primary-sm-typography-letter-spacing: -0.0125rem;
149
186
  --component-button-neutral-primary-sm-typography-font-width: 95;
187
+ --component-button-neutral-primary-sm-icon-size: 1.125rem;
188
+ --component-button-neutral-primary-sm-icon-gap: 0.25rem;
189
+ --component-button-neutral-primary-sm-icon-button-width: 2rem;
150
190
  --component-button-neutral-primary-md-height: 2.5rem;
151
191
  --component-button-neutral-primary-md-padding-top: 0.25rem;
152
192
  --component-button-neutral-primary-md-padding-right: 0.75rem;
153
193
  --component-button-neutral-primary-md-padding-bottom: 0.25rem;
154
194
  --component-button-neutral-primary-md-padding-left: 0.75rem;
195
+ --component-button-neutral-primary-md-padding-with-icon-icon-left-left: 0.5rem;
155
196
  --component-button-neutral-primary-md-typography-font: normal 700 0.875rem/1
156
197
  'Open Sans';
157
198
  --component-button-neutral-primary-md-typography-letter-spacing: -0.0125rem;
158
199
  --component-button-neutral-primary-md-typography-font-width: 95;
200
+ --component-button-neutral-primary-md-icon-size: 1.25rem;
201
+ --component-button-neutral-primary-md-icon-gap: 0.25rem;
202
+ --component-button-neutral-primary-md-icon-button-width: 2.5rem;
159
203
  --component-button-neutral-primary-lg-height: 3rem;
160
204
  --component-button-neutral-primary-lg-padding-top: 0.25rem;
161
205
  --component-button-neutral-primary-lg-padding-right: 1rem;
162
206
  --component-button-neutral-primary-lg-padding-bottom: 0.25rem;
163
207
  --component-button-neutral-primary-lg-padding-left: 1rem;
208
+ --component-button-neutral-primary-lg-padding-with-icon-icon-left-left: 0.75rem;
164
209
  --component-button-neutral-primary-lg-typography-font: normal 700 1rem/1
165
210
  'Open Sans';
166
211
  --component-button-neutral-primary-lg-typography-letter-spacing: -0.0125rem;
167
212
  --component-button-neutral-primary-lg-typography-font-width: 95;
213
+ --component-button-neutral-primary-lg-icon-size: 1.5rem;
214
+ --component-button-neutral-primary-lg-icon-gap: 0.25rem;
215
+ --component-button-neutral-primary-lg-icon-button-width: 3rem;
168
216
  --component-button-neutral-secondary-shared-color: #000000;
169
217
  --component-button-neutral-secondary-shared-background-color: none;
170
218
  --component-button-neutral-secondary-shared-border-radius: 0.25rem;
@@ -184,35 +232,51 @@
184
232
  --component-button-neutral-secondary-xs-padding-right: 0.5rem;
185
233
  --component-button-neutral-secondary-xs-padding-bottom: 0.25rem;
186
234
  --component-button-neutral-secondary-xs-padding-left: 0.5rem;
235
+ --component-button-neutral-secondary-xs-padding-with-icon-icon-left-left: 0.25rem;
187
236
  --component-button-neutral-secondary-xs-typography-font: normal 700
188
237
  0.75rem/1 'Open Sans';
189
238
  --component-button-neutral-secondary-xs-typography-letter-spacing: 0rem;
190
239
  --component-button-neutral-secondary-xs-typography-font-width: 95;
240
+ --component-button-neutral-secondary-xs-icon-size: 1.125rem;
241
+ --component-button-neutral-secondary-xs-icon-gap: 0.25rem;
242
+ --component-button-neutral-secondary-xs-icon-button-width: 1.5rem;
191
243
  --component-button-neutral-secondary-sm-height: 2rem;
192
244
  --component-button-neutral-secondary-sm-padding-top: 0.25rem;
193
245
  --component-button-neutral-secondary-sm-padding-right: 0.625rem;
194
246
  --component-button-neutral-secondary-sm-padding-bottom: 0.25rem;
195
247
  --component-button-neutral-secondary-sm-padding-left: 0.625rem;
248
+ --component-button-neutral-secondary-sm-padding-with-icon-icon-left-left: 0.5rem;
196
249
  --component-button-neutral-secondary-sm-typography-font: normal 700
197
250
  0.875rem/1 'Open Sans';
198
251
  --component-button-neutral-secondary-sm-typography-letter-spacing: -0.0125rem;
199
252
  --component-button-neutral-secondary-sm-typography-font-width: 95;
253
+ --component-button-neutral-secondary-sm-icon-size: 1.125rem;
254
+ --component-button-neutral-secondary-sm-icon-gap: 0.25rem;
255
+ --component-button-neutral-secondary-sm-icon-button-width: 2rem;
200
256
  --component-button-neutral-secondary-md-height: 2.5rem;
201
257
  --component-button-neutral-secondary-md-padding-top: 0.25rem;
202
258
  --component-button-neutral-secondary-md-padding-right: 0.75rem;
203
259
  --component-button-neutral-secondary-md-padding-bottom: 0.25rem;
204
260
  --component-button-neutral-secondary-md-padding-left: 0.75rem;
261
+ --component-button-neutral-secondary-md-padding-with-icon-icon-left-left: 0.5rem;
205
262
  --component-button-neutral-secondary-md-typography-font: normal 700
206
263
  0.875rem/1 'Open Sans';
207
264
  --component-button-neutral-secondary-md-typography-letter-spacing: -0.0125rem;
208
265
  --component-button-neutral-secondary-md-typography-font-width: 95;
266
+ --component-button-neutral-secondary-md-icon-size: 1.25rem;
267
+ --component-button-neutral-secondary-md-icon-gap: 0.25rem;
268
+ --component-button-neutral-secondary-md-icon-button-width: 2.5rem;
209
269
  --component-button-neutral-secondary-lg-height: 3rem;
210
270
  --component-button-neutral-secondary-lg-padding-top: 0.25rem;
211
271
  --component-button-neutral-secondary-lg-padding-right: 1rem;
212
272
  --component-button-neutral-secondary-lg-padding-bottom: 0.25rem;
213
273
  --component-button-neutral-secondary-lg-padding-left: 1rem;
274
+ --component-button-neutral-secondary-lg-padding-with-icon-icon-left-left: 0.75rem;
214
275
  --component-button-neutral-secondary-lg-typography-font: normal 700 1rem/1
215
276
  'Open Sans';
216
277
  --component-button-neutral-secondary-lg-typography-letter-spacing: -0.0125rem;
217
278
  --component-button-neutral-secondary-lg-typography-font-width: 95;
279
+ --component-button-neutral-secondary-lg-icon-size: 1.5rem;
280
+ --component-button-neutral-secondary-lg-icon-gap: 0.25rem;
281
+ --component-button-neutral-secondary-lg-icon-button-width: 3rem;
218
282
  }