@telefonica/mistica 12.0.0 → 12.2.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.
Files changed (128) hide show
  1. package/README.md +2 -2
  2. package/dist/button-group.d.ts +2 -1
  3. package/dist/button-group.js +36 -5
  4. package/dist/button-group.js.flow +2 -1
  5. package/dist/button-layout.d.ts +2 -1
  6. package/dist/button-layout.js +22 -4
  7. package/dist/button-layout.js.flow +2 -1
  8. package/dist/button.js +114 -35
  9. package/dist/card.d.ts +4 -0
  10. package/dist/card.js +7 -2
  11. package/dist/card.js.flow +4 -0
  12. package/dist/carousel.d.ts +4 -0
  13. package/dist/carousel.js +6 -3
  14. package/dist/carousel.js.flow +6 -0
  15. package/dist/checkbox.js +2 -1
  16. package/dist/dialog.d.ts +21 -4
  17. package/dist/dialog.js +51 -26
  18. package/dist/dialog.js.flow +17 -4
  19. package/dist/generated/mistica-icons/icon-gift-light.js +1 -1
  20. package/dist/generated/mistica-icons/icon-hand-snap-filled.js +1 -1
  21. package/dist/generated/mistica-icons/icon-intranet-light.js +1 -1
  22. package/dist/generated/mistica-icons/icon-photo-camera-filled.js +38 -18
  23. package/dist/generated/mistica-icons/icon-photo-camera-light.js +30 -16
  24. package/dist/generated/mistica-icons/icon-process-loading-filled.js +1 -1
  25. package/dist/generated/mistica-icons/icon-shield-cross-light.js +1 -1
  26. package/dist/generated/mistica-icons/icon-shop-light.js +1 -1
  27. package/dist/generated/mistica-icons/icon-support-agent-premium-regular.js +1 -1
  28. package/dist/generated/mistica-icons/icon-support-agent-regular.js +1 -1
  29. package/dist/generated/mistica-icons/icon-tag-discount-euro-regular.js +1 -1
  30. package/dist/generated/mistica-icons/icon-talk-filled.js +1 -1
  31. package/dist/generated/mistica-icons/icon-tips-and-tricks-regular.js +2 -2
  32. package/dist/generated/mistica-icons/icon-tongue-light.js +1 -1
  33. package/dist/generated/mistica-icons/icon-trash-can-filled.js +1 -1
  34. package/dist/generated/mistica-icons/icon-umbrella-filled.js +1 -1
  35. package/dist/generated/mistica-icons/icon-web-filled.js +1 -1
  36. package/dist/generated/mistica-icons/icon-world-device-filled.d.ts +4 -0
  37. package/dist/generated/mistica-icons/icon-world-device-filled.js +109 -0
  38. package/dist/generated/mistica-icons/icon-world-device-filled.js.flow +6 -0
  39. package/dist/generated/mistica-icons/icon-world-device-light.d.ts +4 -0
  40. package/dist/generated/mistica-icons/icon-world-device-light.js +115 -0
  41. package/dist/generated/mistica-icons/icon-world-device-light.js.flow +6 -0
  42. package/dist/generated/mistica-icons/icon-world-device-regular.d.ts +4 -0
  43. package/dist/generated/mistica-icons/icon-world-device-regular.js +109 -0
  44. package/dist/generated/mistica-icons/icon-world-device-regular.js.flow +6 -0
  45. package/dist/grid-layout.d.ts +16 -0
  46. package/dist/grid-layout.js +96 -35
  47. package/dist/grid-layout.js.flow +33 -1
  48. package/dist/header.d.ts +3 -1
  49. package/dist/header.js +4 -2
  50. package/dist/header.js.flow +7 -1
  51. package/dist/index.d.ts +5 -1
  52. package/dist/index.js +58 -0
  53. package/dist/index.js.flow +11 -1
  54. package/dist/navigation-bar.js +121 -96
  55. package/dist/overscroll-color-context.d.ts +1 -1
  56. package/dist/overscroll-color-context.js +12 -14
  57. package/dist/overscroll-color-context.js.flow +1 -1
  58. package/dist/package-version.js +1 -1
  59. package/dist/popover.d.ts +2 -1
  60. package/dist/popover.js +58 -63
  61. package/dist/popover.js.flow +2 -1
  62. package/dist/skeleton-base.d.ts +9 -0
  63. package/dist/skeleton-base.js +75 -0
  64. package/dist/skeleton-base.js.flow +11 -0
  65. package/dist/skeletons.d.ts +21 -0
  66. package/dist/skeletons.js +232 -0
  67. package/dist/skeletons.js.flow +29 -0
  68. package/dist/skins/blau.js +2 -2
  69. package/dist/skins/movistar.js +1 -1
  70. package/dist/skins/o2-classic.js +1 -1
  71. package/dist/skins/o2.js +1 -1
  72. package/dist/skins/telefonica.js +2 -2
  73. package/dist/skins/utils.d.ts +2 -0
  74. package/dist/skins/utils.js +34 -1
  75. package/dist/skins/utils.js.flow +2 -0
  76. package/dist/skins/vivo.js +1 -1
  77. package/dist/spinner.js +0 -1
  78. package/dist/tabs.d.ts +2 -1
  79. package/dist/tabs.js +22 -4
  80. package/dist/tabs.js.flow +2 -1
  81. package/dist/text-link.js +16 -8
  82. package/dist-es/button-group.js +35 -5
  83. package/dist-es/button-layout.js +21 -4
  84. package/dist-es/button.js +114 -35
  85. package/dist-es/card.js +7 -2
  86. package/dist-es/carousel.js +6 -3
  87. package/dist-es/checkbox.js +2 -1
  88. package/dist-es/dialog.js +51 -25
  89. package/dist-es/generated/mistica-icons/icon-gift-light.js +1 -1
  90. package/dist-es/generated/mistica-icons/icon-hand-snap-filled.js +1 -1
  91. package/dist-es/generated/mistica-icons/icon-intranet-light.js +1 -1
  92. package/dist-es/generated/mistica-icons/icon-photo-camera-filled.js +38 -18
  93. package/dist-es/generated/mistica-icons/icon-photo-camera-light.js +30 -16
  94. package/dist-es/generated/mistica-icons/icon-process-loading-filled.js +1 -1
  95. package/dist-es/generated/mistica-icons/icon-shield-cross-light.js +1 -1
  96. package/dist-es/generated/mistica-icons/icon-shop-light.js +1 -1
  97. package/dist-es/generated/mistica-icons/icon-support-agent-premium-regular.js +1 -1
  98. package/dist-es/generated/mistica-icons/icon-support-agent-regular.js +1 -1
  99. package/dist-es/generated/mistica-icons/icon-tag-discount-euro-regular.js +1 -1
  100. package/dist-es/generated/mistica-icons/icon-talk-filled.js +1 -1
  101. package/dist-es/generated/mistica-icons/icon-tips-and-tricks-regular.js +2 -2
  102. package/dist-es/generated/mistica-icons/icon-tongue-light.js +1 -1
  103. package/dist-es/generated/mistica-icons/icon-trash-can-filled.js +1 -1
  104. package/dist-es/generated/mistica-icons/icon-umbrella-filled.js +1 -1
  105. package/dist-es/generated/mistica-icons/icon-web-filled.js +1 -1
  106. package/dist-es/generated/mistica-icons/icon-world-device-filled.js +85 -0
  107. package/dist-es/generated/mistica-icons/icon-world-device-light.js +91 -0
  108. package/dist-es/generated/mistica-icons/icon-world-device-regular.js +85 -0
  109. package/dist-es/grid-layout.js +95 -35
  110. package/dist-es/header.js +4 -2
  111. package/dist-es/index.js +5 -1
  112. package/dist-es/navigation-bar.js +121 -96
  113. package/dist-es/overscroll-color-context.js +12 -14
  114. package/dist-es/package-version.js +1 -1
  115. package/dist-es/popover.js +59 -64
  116. package/dist-es/skeleton-base.js +43 -0
  117. package/dist-es/skeletons.js +196 -0
  118. package/dist-es/skins/blau.js +2 -2
  119. package/dist-es/skins/movistar.js +1 -1
  120. package/dist-es/skins/o2-classic.js +1 -1
  121. package/dist-es/skins/o2.js +1 -1
  122. package/dist-es/skins/telefonica.js +2 -2
  123. package/dist-es/skins/utils.js +12 -0
  124. package/dist-es/skins/vivo.js +1 -1
  125. package/dist-es/spinner.js +0 -1
  126. package/dist-es/tabs.js +21 -4
  127. package/dist-es/text-link.js +16 -8
  128. package/package.json +2 -2
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
- <img alt="Mística for Web" src="https://raw.githubusercontent.com/Telefonica/mistica-web/master/img/mistica-web.svg">
2
- <br>
1
+ ![Mistica for Web](img/mistica-web-light.svg#gh-light-mode-only)
2
+ ![Mistica for Web](img/mistica-web-dark.svg#gh-dark-mode-only)
3
3
 
4
4
  React components library for Telefonica Design System ([Mistica](https://github.com/Telefonica/mistica))
5
5
 
@@ -1,10 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import { ButtonLink, ButtonPrimary, ButtonSecondary } from './button';
3
- import type { RendersNullableElement } from './utils/types';
3
+ import type { DataAttributes, RendersNullableElement } from './utils/types';
4
4
  export interface ButtonGroupProps {
5
5
  primaryButton?: RendersNullableElement<typeof ButtonPrimary>;
6
6
  secondaryButton?: RendersNullableElement<typeof ButtonSecondary>;
7
7
  link?: RendersNullableElement<typeof ButtonLink>;
8
+ dataAttributes?: DataAttributes;
8
9
  }
9
10
  declare const ButtonGroup: React.FC<ButtonGroupProps>;
10
11
  export default ButtonGroup;
@@ -7,6 +7,7 @@ var _jsxRuntime = require("react/jsx-runtime");
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  var _jss = require("./jss");
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
+ var _dom = require("./utils/dom");
10
11
  function _interopRequireDefault(obj) {
11
12
  return obj && obj.__esModule ? obj : {
12
13
  default: obj
@@ -33,8 +34,37 @@ function _interopRequireWildcard(obj) {
33
34
  return newObj;
34
35
  }
35
36
  }
37
+ function _defineProperty(obj, key, value) {
38
+ if (key in obj) {
39
+ Object.defineProperty(obj, key, {
40
+ value: value,
41
+ enumerable: true,
42
+ configurable: true,
43
+ writable: true
44
+ });
45
+ } else {
46
+ obj[key] = value;
47
+ }
48
+ return obj;
49
+ }
50
+ function _objectSpread(target) {
51
+ var _arguments = arguments, _loop = function(i) {
52
+ var source = _arguments[i] != null ? _arguments[i] : {};
53
+ var ownKeys = Object.keys(source);
54
+ if (typeof Object.getOwnPropertySymbols === "function") {
55
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
56
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
57
+ }));
58
+ }
59
+ ownKeys.forEach(function(key) {
60
+ _defineProperty(target, key, source[key]);
61
+ });
62
+ };
63
+ for(var i = 1; i < arguments.length; i++)_loop(i);
64
+ return target;
65
+ }
36
66
  var buttonLayoutSpacing = 16;
37
- var buttonLinkPadding = 6;
67
+ var buttonLinkPadding = 12;
38
68
  var useStyles = (0, _jss).createUseStyles(function() {
39
69
  return {
40
70
  inline: {
@@ -65,14 +95,15 @@ var useStyles = (0, _jss).createUseStyles(function() {
65
95
  };
66
96
  });
67
97
  var ButtonGroup = function ButtonGroup(param) {
68
- var primaryButton = param.primaryButton, secondaryButton = param.secondaryButton, link = param.link;
98
+ var primaryButton = param.primaryButton, secondaryButton = param.secondaryButton, link = param.link, dataAttributes = param.dataAttributes;
69
99
  var anyAction = !!primaryButton || !!secondaryButton || !!link;
70
100
  var bothButtons = !!primaryButton && !!secondaryButton;
71
101
  var classes = useStyles({
72
102
  bothButtons: bothButtons
73
103
  });
74
- return anyAction ? /*#__PURE__*/ (0, _jsxRuntime).jsxs("div", {
75
- className: (0, _classnames).default(classes.inline, classes.container),
104
+ return anyAction ? /*#__PURE__*/ (0, _jsxRuntime).jsxs("div", _objectSpread({
105
+ className: (0, _classnames).default(classes.inline, classes.container)
106
+ }, (0, _dom).getPrefixedDataAttributes(dataAttributes), {
76
107
  children: [
77
108
  (primaryButton || secondaryButton) && /*#__PURE__*/ (0, _jsxRuntime).jsxs("div", {
78
109
  className: (0, _classnames).default(classes.inline, classes.buttons),
@@ -90,7 +121,7 @@ var ButtonGroup = function ButtonGroup(param) {
90
121
  children: link
91
122
  })
92
123
  ]
93
- }) : null;
124
+ })) : null;
94
125
  };
95
126
  var _default = ButtonGroup;
96
127
  exports.default = _default;
@@ -2,11 +2,12 @@
2
2
 
3
3
  import * as React from "react";
4
4
  import { ButtonLink, ButtonPrimary, ButtonSecondary } from "./button";
5
- import type { RendersNullableElement } from "./utils/types";
5
+ import type { DataAttributes, RendersNullableElement } from "./utils/types";
6
6
  export type ButtonGroupProps = {
7
7
  primaryButton?: RendersNullableElement<typeof ButtonPrimary>,
8
8
  secondaryButton?: RendersNullableElement<typeof ButtonSecondary>,
9
9
  link?: RendersNullableElement<typeof ButtonLink>,
10
+ dataAttributes?: DataAttributes,
10
11
  };
11
12
  declare var ButtonGroup: React.ComponentType<ButtonGroupProps>;
12
13
  declare export default typeof ButtonGroup;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { ButtonLink } from './button';
3
- import type { RendersNullableElement } from './utils/types';
3
+ import type { DataAttributes, RendersNullableElement } from './utils/types';
4
4
  import type { NullableButtonElement } from './button';
5
5
  declare type MaybeButtonElement = NullableButtonElement | void | false;
6
6
  declare type ButtonLayoutProps = {
@@ -8,6 +8,7 @@ declare type ButtonLayoutProps = {
8
8
  align?: 'center' | 'left' | 'right' | 'full-width';
9
9
  link?: RendersNullableElement<typeof ButtonLink>;
10
10
  withMargins?: boolean;
11
+ dataAttributes?: DataAttributes;
11
12
  };
12
13
  declare const ButtonLayout: React.FC<ButtonLayoutProps>;
13
14
  export default ButtonLayout;
@@ -10,6 +10,7 @@ var _hooks = require("./hooks");
10
10
  var _button = require("./button");
11
11
  var _classnames = _interopRequireDefault(require("classnames"));
12
12
  var _debounce = _interopRequireDefault(require("lodash/debounce"));
13
+ var _dom = require("./utils/dom");
13
14
  function _interopRequireDefault(obj) {
14
15
  return obj && obj.__esModule ? obj : {
15
16
  default: obj
@@ -93,6 +94,22 @@ function _nonIterableRest() {
93
94
  function _nonIterableSpread() {
94
95
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
95
96
  }
97
+ function _objectSpread(target) {
98
+ var _arguments = arguments, _loop = function(i) {
99
+ var source = _arguments[i] != null ? _arguments[i] : {};
100
+ var ownKeys = Object.keys(source);
101
+ if (typeof Object.getOwnPropertySymbols === "function") {
102
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
103
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
104
+ }));
105
+ }
106
+ ownKeys.forEach(function(key) {
107
+ _defineProperty(target, key, source[key]);
108
+ });
109
+ };
110
+ for(var i = 1; i < arguments.length; i++)_loop(i);
111
+ return target;
112
+ }
96
113
  function _slicedToArray(arr, i) {
97
114
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
98
115
  }
@@ -212,7 +229,7 @@ var buttonsRange = [
212
229
  _button.ButtonPrimary
213
230
  ];
214
231
  var ButtonLayout = function ButtonLayout(param1) {
215
- var children = param1.children, _align = param1.align, align = _align === void 0 ? "full-width" : _align, link = param1.link, _withMargins = param1.withMargins, withMargins = _withMargins === void 0 ? false : _withMargins;
232
+ var children = param1.children, _align = param1.align, align = _align === void 0 ? "full-width" : _align, link = param1.link, _withMargins = param1.withMargins, withMargins = _withMargins === void 0 ? false : _withMargins, dataAttributes = param1.dataAttributes;
216
233
  var isTabletOrSmaller = (0, _hooks).useScreenSize().isTabletOrSmaller;
217
234
  var childrenCount = React.Children.count(children);
218
235
  var ref = _slicedToArray(React.useState({
@@ -304,9 +321,10 @@ var ButtonLayout = function ButtonLayout(param1) {
304
321
  return range1 - range2;
305
322
  });
306
323
  var needsLinkAlignment = !isTabletOrSmaller && align === "left";
307
- var content = /*#__PURE__*/ (0, _jsxRuntime).jsxs("div", {
324
+ var content = /*#__PURE__*/ (0, _jsxRuntime).jsxs("div", _objectSpread({
308
325
  ref: wrapperElRef,
309
- className: classes.container,
326
+ className: classes.container
327
+ }, (0, _dom).getPrefixedDataAttributes(dataAttributes), {
310
328
  children: [
311
329
  link ? /*#__PURE__*/ (0, _jsxRuntime).jsx("div", {
312
330
  className: (0, _classnames).default(classes.link, _defineProperty({}, classes.linkAlignment, needsLinkAlignment)),
@@ -314,7 +332,7 @@ var ButtonLayout = function ButtonLayout(param1) {
314
332
  }) : null,
315
333
  sortedButtons
316
334
  ]
317
- });
335
+ }));
318
336
  return withMargins ? /*#__PURE__*/ (0, _jsxRuntime).jsx("div", {
319
337
  className: classes.margins,
320
338
  children: content
@@ -2,7 +2,7 @@
2
2
 
3
3
  import * as React from "react";
4
4
  import { ButtonLink } from "./button";
5
- import type { RendersNullableElement } from "./utils/types";
5
+ import type { DataAttributes, RendersNullableElement } from "./utils/types";
6
6
  import type { NullableButtonElement } from "./button";
7
7
  declare type MaybeButtonElement = NullableButtonElement | void | false;
8
8
  declare type ButtonLayoutProps = {
@@ -10,6 +10,7 @@ declare type ButtonLayoutProps = {
10
10
  align?: "center" | "left" | "right" | "full-width",
11
11
  link?: RendersNullableElement<typeof ButtonLink>,
12
12
  withMargins?: boolean,
13
+ dataAttributes?: DataAttributes,
13
14
  };
14
15
  declare var ButtonLayout: React.ComponentType<ButtonLayoutProps>;
15
16
  declare export default typeof ButtonLayout;
package/dist/button.js CHANGED
@@ -17,6 +17,7 @@ var _box = _interopRequireDefault(require("./box"));
17
17
  var _common = require("./utils/common");
18
18
  var _analytics = require("./utils/analytics");
19
19
  var _hooks = require("./hooks");
20
+ var _utils = require("./skins/utils");
20
21
  function _interopRequireDefault(obj) {
21
22
  return obj && obj.__esModule ? obj : {
22
23
  default: obj
@@ -122,11 +123,15 @@ var BUTTON_MIN_WIDTH = 136;
122
123
  exports.BUTTON_MIN_WIDTH = BUTTON_MIN_WIDTH;
123
124
  var transitionTiming = "0.3s cubic-bezier(0.77, 0, 0.175, 1)";
124
125
  var BORDER_PX = 1.5;
125
- var SPINNER_MARGIN_PX = 8;
126
+ var ICON_MARGIN_PX = 8;
126
127
  var X_PADDING_PX = 16 - BORDER_PX;
127
128
  var Y_PADDING_PX = 12 - BORDER_PX;
128
129
  var X_SMALL_PADDING_PX = 12 - BORDER_PX;
129
130
  var Y_SMALL_PADDING_PX = 6 - BORDER_PX;
131
+ var ICON_SIZE = 24;
132
+ var SMALL_ICON_SIZE = 20;
133
+ var SPINNER_SIZE = 20;
134
+ var SMALL_SPINNER_SIZE = 16;
130
135
  var commonClasses = function commonClasses() {
131
136
  return {
132
137
  button: {
@@ -134,7 +139,6 @@ var commonClasses = function commonClasses() {
134
139
  position: "relative",
135
140
  width: "auto",
136
141
  minWidth: BUTTON_MIN_WIDTH,
137
- textAlign: "center",
138
142
  border: "".concat(BORDER_PX, "px solid transparent"),
139
143
  borderRadius: 4,
140
144
  overflow: "hidden",
@@ -169,6 +173,9 @@ var commonClasses = function commonClasses() {
169
173
  }
170
174
  },
171
175
  textContent: {
176
+ display: "flex",
177
+ alignItems: "center",
178
+ justifyContent: "center",
172
179
  padding: "".concat(Y_PADDING_PX, "px ").concat(X_PADDING_PX, "px"),
173
180
  opacity: 1,
174
181
  transition: "opacity ".concat(transitionTiming, ", transform ").concat(transitionTiming),
@@ -176,9 +183,7 @@ var commonClasses = function commonClasses() {
176
183
  padding: "".concat(Y_SMALL_PADDING_PX, "px ").concat(X_SMALL_PADDING_PX, "px")
177
184
  },
178
185
  "& svg": {
179
- marginRight: SPINNER_MARGIN_PX,
180
- verticalAlign: "bottom",
181
- height: "100%"
186
+ display: "block"
182
187
  }
183
188
  },
184
189
  isLoading: {
@@ -299,6 +304,48 @@ var useDangerButtonStyles = (0, _jss).createUseStyles(function(theme) {
299
304
  inverse: dangerButtonStyles(theme)
300
305
  });
301
306
  });
307
+ var renderButtonContent = function renderButtonContent(param) {
308
+ var content = param.content, defaultIconSize = param.defaultIconSize, renderText = param.renderText;
309
+ var childrenArr = (0, _utils).flattenChildren(content);
310
+ var length = childrenArr.length;
311
+ var resultChildrenArr = [];
312
+ var accText = [];
313
+ var flushAccText = function flushAccText() {
314
+ resultChildrenArr.push(/*#__PURE__*/ (0, _jsxRuntime).jsx(React.Fragment, {
315
+ children: renderText(accText)
316
+ }, resultChildrenArr.length));
317
+ accText = [];
318
+ };
319
+ childrenArr.forEach(function(element, idx) {
320
+ var isFirstChild = idx === 0;
321
+ var isLastChild = idx === length - 1;
322
+ var isIconElement = /*#__PURE__*/ React.isValidElement(element);
323
+ if (isIconElement) {
324
+ if (accText.length) {
325
+ flushAccText();
326
+ }
327
+ var _size;
328
+ var sizeInPx = (_size = element.props.size) !== null && _size !== void 0 ? _size : defaultIconSize;
329
+ resultChildrenArr.push(/*#__PURE__*/ (0, _jsxRuntime).jsx("div", {
330
+ style: {
331
+ display: "flex",
332
+ alignItems: "center",
333
+ marginLeft: isFirstChild ? 0 : ICON_MARGIN_PX,
334
+ marginRight: isLastChild ? 0 : ICON_MARGIN_PX
335
+ },
336
+ children: /*#__PURE__*/ React.cloneElement(element, {
337
+ size: (0, _css).pxToRem(sizeInPx)
338
+ })
339
+ }, resultChildrenArr.length));
340
+ } else {
341
+ accText.push(element);
342
+ if (isLastChild) {
343
+ flushAccText();
344
+ }
345
+ }
346
+ });
347
+ return resultChildrenArr;
348
+ };
302
349
  var Button = function Button(props) {
303
350
  var eventFormat = (0, _analytics).useTrackingConfig().eventFormat;
304
351
  var ref = (0, _formContext).useForm(), formStatus = ref.formStatus, formId = ref.formId;
@@ -321,24 +368,6 @@ var Button = function Button(props) {
321
368
  shouldRenderSpinner,
322
369
  formStatus
323
370
  ]);
324
- var spinnerSizeRem = (0, _css).pxToRem(props.small ? 16 : 24);
325
- var renderText = function renderText(text) {
326
- return props.small ? /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text, {
327
- size: 14,
328
- lineHeight: 20,
329
- weight: "medium",
330
- truncate: 1,
331
- color: "inherit",
332
- as: "div",
333
- children: text
334
- }) : /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text3, {
335
- medium: true,
336
- truncate: 1,
337
- color: "inherit",
338
- as: "div",
339
- children: text
340
- });
341
- };
342
371
  var createDefaultTrackingEvent = function createDefaultTrackingEvent() {
343
372
  if (eventFormat === "google-analytics-4") {
344
373
  return {
@@ -354,6 +383,25 @@ var Button = function Button(props) {
354
383
  };
355
384
  }
356
385
  };
386
+ var defaultIconSize = props.small ? SMALL_ICON_SIZE : ICON_SIZE;
387
+ var spinnerSizeRem = (0, _css).pxToRem(props.small ? SMALL_SPINNER_SIZE : SPINNER_SIZE);
388
+ var renderText = function renderText(element) {
389
+ return props.small ? /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text, {
390
+ size: 14,
391
+ lineHeight: 20,
392
+ weight: "medium",
393
+ truncate: 1,
394
+ color: "inherit",
395
+ as: "div",
396
+ children: element
397
+ }) : /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text3, {
398
+ medium: true,
399
+ truncate: 1,
400
+ color: "inherit",
401
+ as: "div",
402
+ children: element
403
+ });
404
+ };
357
405
  var _trackingEvent;
358
406
  var _obj;
359
407
  var commonProps = {
@@ -371,16 +419,24 @@ var Button = function Button(props) {
371
419
  /*#__PURE__*/ (0, _jsxRuntime).jsx("div", {
372
420
  "aria-hidden": showSpinner ? true : undefined,
373
421
  className: classes.textContent,
374
- children: renderText(props.children)
422
+ children: renderButtonContent({
423
+ content: props.children,
424
+ defaultIconSize: defaultIconSize,
425
+ renderText: renderText
426
+ })
375
427
  }),
376
428
  /*#__PURE__*/ (0, _jsxRuntime).jsx("div", {
377
429
  className: classes.loadingFiller,
378
430
  "aria-hidden": true,
379
431
  style: {
380
432
  paddingLeft: spinnerSizeRem,
381
- paddingRight: SPINNER_MARGIN_PX + 2 * (props.small ? X_SMALL_PADDING_PX : X_PADDING_PX)
433
+ paddingRight: ICON_MARGIN_PX + 2 * (props.small ? X_SMALL_PADDING_PX : X_PADDING_PX)
382
434
  },
383
- children: renderText(loadingText)
435
+ children: renderButtonContent({
436
+ content: loadingText,
437
+ defaultIconSize: defaultIconSize,
438
+ renderText: renderText
439
+ })
384
440
  }),
385
441
  /*#__PURE__*/ (0, _jsxRuntime).jsxs("div", {
386
442
  "aria-hidden": showSpinner ? undefined : true,
@@ -405,7 +461,11 @@ var Button = function Button(props) {
405
461
  }),
406
462
  loadingText ? /*#__PURE__*/ (0, _jsxRuntime).jsx(_box.default, {
407
463
  paddingLeft: 8,
408
- children: renderText(loadingText)
464
+ children: renderButtonContent({
465
+ content: loadingText,
466
+ defaultIconSize: defaultIconSize,
467
+ renderText: renderText
468
+ })
409
469
  }) : null
410
470
  ]
411
471
  })
@@ -460,12 +520,13 @@ var Button = function Button(props) {
460
520
  return null;
461
521
  };
462
522
  var useButtonLinkStyles = (0, _jss).createUseStyles(function(theme) {
463
- var padding = 6;
523
+ var paddingY = 6;
524
+ var paddingX = 12;
464
525
  return {
465
526
  link: {
466
527
  display: "inline-block",
467
528
  width: "auto",
468
- padding: padding,
529
+ padding: "".concat(paddingY, "px ").concat(paddingX, "px"),
469
530
  fontWeight: 500,
470
531
  borderRadius: 4,
471
532
  overflow: "hidden",
@@ -481,6 +542,14 @@ var useButtonLinkStyles = (0, _jss).createUseStyles(function(theme) {
481
542
  }),
482
543
  "&[disabled]": disabledStyle
483
544
  },
545
+ textContent: {
546
+ display: "flex",
547
+ alignItems: "center",
548
+ justifyContent: "center",
549
+ "& svg": {
550
+ display: "block"
551
+ }
552
+ },
484
553
  inverse: {
485
554
  color: theme.colors.textLinkInverse,
486
555
  "&:enabled:active": {
@@ -493,7 +562,7 @@ var useButtonLinkStyles = (0, _jss).createUseStyles(function(theme) {
493
562
  })
494
563
  },
495
564
  aligned: {
496
- marginLeft: -padding
565
+ marginLeft: -paddingX
497
566
  }
498
567
  };
499
568
  });
@@ -517,17 +586,27 @@ var ButtonLink = /*#__PURE__*/ React.forwardRef(function(props, ref) {
517
586
  };
518
587
  }
519
588
  };
589
+ var renderText = function renderText(element) {
590
+ return /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text2, {
591
+ medium: true,
592
+ truncate: 1,
593
+ color: "inherit",
594
+ children: element
595
+ });
596
+ };
520
597
  var _trackingEvent;
521
598
  var _obj;
522
599
  var commonProps = {
523
600
  className: (0, _classnames).default(classes.link, (_obj = {}, _defineProperty(_obj, classes.inverse, isInverse), _defineProperty(_obj, classes.aligned, props.aligned), _obj)),
524
601
  trackingEvent: (_trackingEvent = props.trackingEvent) !== null && _trackingEvent !== void 0 ? _trackingEvent : props.trackEvent ? createDefaultTrackingEvent() : undefined,
525
602
  dataAttributes: props.dataAttributes,
526
- children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text2, {
527
- medium: true,
528
- truncate: 1,
529
- color: "inherit",
530
- children: props.children
603
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx("div", {
604
+ className: classes.textContent,
605
+ children: renderButtonContent({
606
+ content: props.children,
607
+ defaultIconSize: SMALL_ICON_SIZE,
608
+ renderText: renderText
609
+ })
531
610
  }),
532
611
  disabled: props.disabled || formStatus === "sending"
533
612
  };
package/dist/card.d.ts CHANGED
@@ -11,6 +11,8 @@ declare type MediaCardProps = {
11
11
  pretitleLinesMax?: number;
12
12
  title?: string;
13
13
  titleLinesMax?: number;
14
+ subtitle?: string;
15
+ subtitleLinesMax?: number;
14
16
  description?: string;
15
17
  descriptionLinesMax?: number;
16
18
  extra?: React.ReactNode;
@@ -28,6 +30,8 @@ interface DataCardProps {
28
30
  */
29
31
  icon?: React.ReactElement;
30
32
  headline?: string | RendersNullableElement<typeof Tag>;
33
+ pretitle?: string;
34
+ pretitleLinesMax?: number;
31
35
  title?: string;
32
36
  titleLinesMax?: number;
33
37
  subtitle?: string;
package/dist/card.js CHANGED
@@ -228,7 +228,7 @@ var useMediaCardStyles = (0, _jss).createUseStyles(function(param) {
228
228
  };
229
229
  });
230
230
  var MediaCard = /*#__PURE__*/ React.forwardRef(function(param, ref) {
231
- var media = param.media, headline = param.headline, pretitle = param.pretitle, pretitleLinesMax = param.pretitleLinesMax, title = param.title, titleLinesMax = param.titleLinesMax, description = param.description, descriptionLinesMax = param.descriptionLinesMax, extra = param.extra, button = param.button, buttonLink = param.buttonLink, dataAttributes = param.dataAttributes, ariaLabel = param["aria-label"], onClose = param.onClose;
231
+ var media = param.media, headline = param.headline, pretitle = param.pretitle, pretitleLinesMax = param.pretitleLinesMax, subtitle = param.subtitle, subtitleLinesMax = param.subtitleLinesMax, title = param.title, titleLinesMax = param.titleLinesMax, description = param.description, descriptionLinesMax = param.descriptionLinesMax, extra = param.extra, button = param.button, buttonLink = param.buttonLink, dataAttributes = param.dataAttributes, ariaLabel = param["aria-label"], onClose = param.onClose;
232
232
  var classes = useMediaCardStyles({
233
233
  media: media
234
234
  });
@@ -254,6 +254,8 @@ var MediaCard = /*#__PURE__*/ React.forwardRef(function(param, ref) {
254
254
  pretitleLinesMax: pretitleLinesMax,
255
255
  title: title,
256
256
  titleLinesMax: titleLinesMax,
257
+ subtitle: subtitle,
258
+ subtitleLinesMax: subtitleLinesMax,
257
259
  description: description,
258
260
  descriptionLinesMax: descriptionLinesMax,
259
261
  extra: extra,
@@ -285,7 +287,7 @@ var useDataCardStyles = (0, _jss).createUseStyles(function(param) {
285
287
  };
286
288
  });
287
289
  var DataCard = /*#__PURE__*/ React.forwardRef(function(param, ref) {
288
- var icon = param.icon, headline = param.headline, title = param.title, titleLinesMax = param.titleLinesMax, subtitle = param.subtitle, subtitleLinesMax = param.subtitleLinesMax, description = param.description, descriptionLinesMax = param.descriptionLinesMax, extra = param.extra, button = param.button, buttonLink = param.buttonLink, dataAttributes = param.dataAttributes, ariaLabel = param["aria-label"], onClose = param.onClose;
290
+ var icon = param.icon, headline = param.headline, pretitle = param.pretitle, pretitleLinesMax = param.pretitleLinesMax, title = param.title, titleLinesMax = param.titleLinesMax, subtitle = param.subtitle, subtitleLinesMax = param.subtitleLinesMax, description = param.description, descriptionLinesMax = param.descriptionLinesMax, extra = param.extra, button = param.button, buttonLink = param.buttonLink, dataAttributes = param.dataAttributes, ariaLabel = param["aria-label"], onClose = param.onClose;
289
291
  var classes = useDataCardStyles();
290
292
  return /*#__PURE__*/ (0, _jsxRuntime).jsx(_maybeDismissable.default, {
291
293
  "aria-label": ariaLabel,
@@ -304,6 +306,8 @@ var DataCard = /*#__PURE__*/ React.forwardRef(function(param, ref) {
304
306
  }),
305
307
  /*#__PURE__*/ (0, _jsxRuntime).jsx(CardContent, {
306
308
  headline: headline,
309
+ pretitle: pretitle,
310
+ pretitleLinesMax: pretitleLinesMax,
307
311
  title: title,
308
312
  titleLinesMax: titleLinesMax,
309
313
  subtitle: subtitle,
@@ -343,6 +347,7 @@ var useSnapCardStyles = (0, _jss).createUseStyles(function(theme) {
343
347
  justifyContent: "space-between",
344
348
  padding: 16,
345
349
  minHeight: 80,
350
+ flex: 1,
346
351
  minWidth: 104
347
352
  }, theme.mq.desktopOrBigger, {
348
353
  padding: 24
package/dist/card.js.flow CHANGED
@@ -18,6 +18,8 @@ declare type MediaCardProps = {
18
18
  pretitleLinesMax?: number,
19
19
  title?: string,
20
20
  titleLinesMax?: number,
21
+ subtitle?: string,
22
+ subtitleLinesMax?: number,
21
23
  description?: string,
22
24
  descriptionLinesMax?: number,
23
25
  extra?: React.Node,
@@ -34,6 +36,8 @@ declare type DataCardProps = {
34
36
  */
35
37
  icon?: React.Element<any>,
36
38
  headline?: string | RendersNullableElement<typeof Tag>,
39
+ pretitle?: string,
40
+ pretitleLinesMax?: number,
37
41
  title?: string,
38
42
  titleLinesMax?: number,
39
43
  subtitle?: string,
@@ -16,6 +16,8 @@ declare type MobilePageOffset = number | {
16
16
  };
17
17
  declare type CarouselProps = {
18
18
  items: ReadonlyArray<React.ReactNode>;
19
+ itemStyle?: React.CSSProperties;
20
+ itemClassName?: string;
19
21
  withBullets?: boolean;
20
22
  renderBullets?: (bulletsProps: PageBulletsProps) => React.ReactNode;
21
23
  itemsPerPage?: ItemsPerPageProp;
@@ -39,6 +41,8 @@ declare type CarouselProps = {
39
41
  export declare const Carousel: React.FC<CarouselProps>;
40
42
  declare type CenteredCarouselProps = {
41
43
  items: ReadonlyArray<React.ReactNode>;
44
+ itemStyle?: React.CSSProperties;
45
+ itemClassName?: string;
42
46
  withBullets?: boolean;
43
47
  renderBullets?: (bulletsProps: PageBulletsProps) => React.ReactNode;
44
48
  onPageChange?: (newPageInfo: {
package/dist/carousel.js CHANGED
@@ -415,7 +415,7 @@ var calcCurrentPageIndex = function calcCurrentPageIndex(scrollPosition, pagesSc
415
415
  };
416
416
  var DEFAULT_AUTOPLAY_TIME = 5000;
417
417
  var BaseCarousel = function BaseCarousel(param) {
418
- var items = param.items, withBullets = param.withBullets, renderBullets = param.renderBullets, itemsPerPage = param.itemsPerPage, itemsToScroll = param.itemsToScroll, _mobilePageOffset = param.mobilePageOffset, mobilePageOffset = _mobilePageOffset === void 0 ? 16 : _mobilePageOffset, gapProp = param.gap, free = param.free, centered = param.centered, autoplay = param.autoplay, onPageChange = param.onPageChange, dataAttributes = param.dataAttributes;
418
+ var items = param.items, itemStyle = param.itemStyle, itemClassName = param.itemClassName, withBullets = param.withBullets, renderBullets = param.renderBullets, itemsPerPage = param.itemsPerPage, itemsToScroll = param.itemsToScroll, _mobilePageOffset = param.mobilePageOffset, mobilePageOffset = _mobilePageOffset === void 0 ? 16 : _mobilePageOffset, gapProp = param.gap, free = param.free, centered = param.centered, autoplay = param.autoplay, onPageChange = param.onPageChange, dataAttributes = param.dataAttributes;
419
419
  var texts = (0, _hooks).useTheme().texts;
420
420
  var itemsPerPageConfig = normalizeItemsPerPage(itemsPerPage);
421
421
  var mobilePageOffsetConfig = normalizeMobilePageOffset(mobilePageOffset);
@@ -629,7 +629,8 @@ var BaseCarousel = function BaseCarousel(param) {
629
629
  ref: carouselRef,
630
630
  children: items.map(function(item, index) {
631
631
  return /*#__PURE__*/ (0, _jsxRuntime).jsx("div", {
632
- className: classes.item,
632
+ className: (0, _classnames).default(classes.item, itemClassName),
633
+ style: itemStyle,
633
634
  "data-item": true,
634
635
  children: item
635
636
  }, index);
@@ -659,9 +660,11 @@ var Carousel = function Carousel(props) {
659
660
  };
660
661
  exports.Carousel = Carousel;
661
662
  var CenteredCarousel = function CenteredCarousel(param) {
662
- var items = param.items, withBullets = param.withBullets, renderBullets = param.renderBullets, onPageChange = param.onPageChange, dataAttributes = param.dataAttributes;
663
+ var items = param.items, itemStyle = param.itemStyle, itemClassName = param.itemClassName, withBullets = param.withBullets, renderBullets = param.renderBullets, onPageChange = param.onPageChange, dataAttributes = param.dataAttributes;
663
664
  return /*#__PURE__*/ (0, _jsxRuntime).jsx(BaseCarousel, {
664
665
  items: items,
666
+ itemStyle: itemStyle,
667
+ itemClassName: itemClassName,
665
668
  itemsPerPage: {
666
669
  mobile: 1,
667
670
  desktop: 3
@@ -22,6 +22,8 @@ declare type MobilePageOffset =
22
22
  };
23
23
  declare type CarouselProps = {
24
24
  items: $ReadOnlyArray<React.Node>,
25
+ itemStyle?: CssStyle,
26
+ itemClassName?: string,
25
27
  withBullets?: boolean,
26
28
  renderBullets?: (bulletsProps: PageBulletsProps) => React.Node,
27
29
  itemsPerPage?: ItemsPerPageProp,
@@ -52,6 +54,8 @@ declare type CarouselProps = {
52
54
  declare export var Carousel: React.ComponentType<CarouselProps>;
53
55
  declare type CenteredCarouselProps = {
54
56
  items: $ReadOnlyArray<React.Node>,
57
+ itemStyle?: CssStyle,
58
+ itemClassName?: string,
55
59
  withBullets?: boolean,
56
60
  renderBullets?: (bulletsProps: PageBulletsProps) => React.Node,
57
61
  onPageChange?: (newPageInfo: {
@@ -75,3 +79,5 @@ declare type SlideshowProps = {
75
79
  };
76
80
  declare export var Slideshow: React.ComponentType<SlideshowProps>;
77
81
  declare export {};
82
+
83
+ import { type CssStyle } from "./__css_types__.js.flow";
package/dist/checkbox.js CHANGED
@@ -125,6 +125,7 @@ var useIconCheckboxStyles = (0, _jss).createUseStyles(function(param) {
125
125
  justifyContent: "center",
126
126
  alignItems: "center",
127
127
  userSelect: "none",
128
+ outline: "1px solid transparent",
128
129
  borderRadius: 2,
129
130
  verticalAlign: "middle",
130
131
  background: colors.background,
@@ -132,7 +133,7 @@ var useIconCheckboxStyles = (0, _jss).createUseStyles(function(param) {
132
133
  transition: "box-shadow 0.3s"
133
134
  },
134
135
  boxChecked: {
135
- boxShadow: "inset 0 0 0 9px ".concat(colors.controlActivated)
136
+ boxShadow: "inset 0 0 0 12px ".concat(colors.controlActivated)
136
137
  },
137
138
  check: {
138
139
  display: "block",