@telefonica/mistica 12.2.0 → 12.4.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 (45) hide show
  1. package/dist/card.js +0 -6
  2. package/dist/carousel.js +36 -29
  3. package/dist/container-type-context.d.ts +5 -0
  4. package/dist/container-type-context.js +49 -0
  5. package/dist/container-type-context.js.flow +7 -0
  6. package/dist/grid-layout.js +77 -33
  7. package/dist/highlighted-card.js +0 -2
  8. package/dist/hooks.d.ts +1 -1
  9. package/dist/hooks.js.flow +1 -1
  10. package/dist/list.js +0 -4
  11. package/dist/navigation-breadcrumbs.d.ts +7 -0
  12. package/dist/navigation-breadcrumbs.js +108 -29
  13. package/dist/navigation-breadcrumbs.js.flow +3 -0
  14. package/dist/package-version.js +1 -1
  15. package/dist/responsive-layout.js +13 -8
  16. package/dist/screen-size-context-provider.js +17 -5
  17. package/dist/screen-size-context.d.ts +1 -0
  18. package/dist/screen-size-context.js +2 -1
  19. package/dist/screen-size-context.js.flow +1 -0
  20. package/dist/snackbar.js +5 -4
  21. package/dist/tabs.js +1 -0
  22. package/dist/text-field-base.js +1 -0
  23. package/dist/text.d.ts +1 -0
  24. package/dist/text.js +6 -1
  25. package/dist/text.js.flow +1 -0
  26. package/dist/title.js +1 -0
  27. package/dist/utils/types.d.ts +1 -0
  28. package/dist/utils/types.js.flow +6 -0
  29. package/dist-es/card.js +0 -6
  30. package/dist-es/carousel.js +36 -29
  31. package/dist-es/container-type-context.js +21 -0
  32. package/dist-es/grid-layout.js +72 -33
  33. package/dist-es/highlighted-card.js +0 -2
  34. package/dist-es/list.js +0 -4
  35. package/dist-es/navigation-breadcrumbs.js +106 -30
  36. package/dist-es/package-version.js +1 -1
  37. package/dist-es/responsive-layout.js +13 -8
  38. package/dist-es/screen-size-context-provider.js +17 -5
  39. package/dist-es/screen-size-context.js +2 -1
  40. package/dist-es/snackbar.js +6 -5
  41. package/dist-es/tabs.js +1 -0
  42. package/dist-es/text-field-base.js +1 -0
  43. package/dist-es/text.js +6 -1
  44. package/dist-es/title.js +1 -0
  45. package/package.json +1 -1
@@ -7,6 +7,15 @@ var _jsxRuntime = require("react/jsx-runtime");
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  var _text = require("./text");
9
9
  var _hooks = require("./hooks");
10
+ var _jss = require("./jss");
11
+ var _dom = require("./utils/dom");
12
+ var _textLink = _interopRequireDefault(require("./text-link"));
13
+ var _themeVariantContext = require("./theme-variant-context");
14
+ function _interopRequireDefault(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
10
19
  function _interopRequireWildcard(obj) {
11
20
  if (obj && obj.__esModule) {
12
21
  return obj;
@@ -28,41 +37,111 @@ function _interopRequireWildcard(obj) {
28
37
  return newObj;
29
38
  }
30
39
  }
40
+ function _defineProperty(obj, key, value) {
41
+ if (key in obj) {
42
+ Object.defineProperty(obj, key, {
43
+ value: value,
44
+ enumerable: true,
45
+ configurable: true,
46
+ writable: true
47
+ });
48
+ } else {
49
+ obj[key] = value;
50
+ }
51
+ return obj;
52
+ }
53
+ function _objectSpread(target) {
54
+ var _arguments = arguments, _loop = function(i) {
55
+ var source = _arguments[i] != null ? _arguments[i] : {};
56
+ var ownKeys = Object.keys(source);
57
+ if (typeof Object.getOwnPropertySymbols === "function") {
58
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
59
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
60
+ }));
61
+ }
62
+ ownKeys.forEach(function(key) {
63
+ _defineProperty(target, key, source[key]);
64
+ });
65
+ };
66
+ for(var i = 1; i < arguments.length; i++)_loop(i);
67
+ return target;
68
+ }
31
69
  var BREADCRUMB_SEPARATOR = " / ";
70
+ var useStyles = (0, _jss).createUseStyles(function() {
71
+ return {
72
+ link: {
73
+ "&:hover": {
74
+ textDecoration: "underline"
75
+ }
76
+ },
77
+ current: {
78
+ textDecoration: "none",
79
+ pointerEvents: "none"
80
+ },
81
+ list: {
82
+ padding: 0,
83
+ margin: 0,
84
+ listStyleType: "none",
85
+ "& > li": {
86
+ display: "inline"
87
+ }
88
+ }
89
+ };
90
+ });
32
91
  var NavigationBreadcrumbs = function NavigationBreadcrumbs(param1) {
33
- var title1 = param1.title, breadcrumbs = param1.breadcrumbs;
34
- var theme = (0, _hooks).useTheme();
35
- var Link = theme.Link;
36
- return /*#__PURE__*/ (0, _jsxRuntime).jsxs("div", {
37
- children: [
38
- breadcrumbs.map(function(param, index) {
39
- var title = param.title, url = param.url;
40
- return /*#__PURE__*/ (0, _jsxRuntime).jsxs(React.Fragment, {
41
- children: [
42
- /*#__PURE__*/ (0, _jsxRuntime).jsx(Link, {
43
- style: {
44
- textDecoration: "none"
45
- },
46
- to: url,
47
- children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text1, {
92
+ var title1 = param1.title, breadcrumbs = param1.breadcrumbs, dataAttributes = param1.dataAttributes, tmp = param1["aria-label"], ariaLabel = tmp === void 0 ? "Breadcrumb" : tmp;
93
+ var colors = (0, _hooks).useTheme().colors;
94
+ var classes = useStyles();
95
+ var isInverse = (0, _themeVariantContext).useIsInverseVariant();
96
+ return /*#__PURE__*/ (0, _jsxRuntime).jsx("nav", _objectSpread({
97
+ "aria-label": ariaLabel
98
+ }, (0, _dom).getPrefixedDataAttributes(dataAttributes), {
99
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsxs("ol", {
100
+ className: classes.list,
101
+ children: [
102
+ breadcrumbs.map(function(param, index) {
103
+ var title = param.title, url = param.url;
104
+ return /*#__PURE__*/ (0, _jsxRuntime).jsxs("li", {
105
+ children: [
106
+ /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text1, {
48
107
  regular: true,
49
- children: title
108
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_textLink.default, {
109
+ to: url,
110
+ style: {
111
+ color: isInverse ? colors.textPrimaryInverse : colors.textPrimary
112
+ },
113
+ className: classes.link,
114
+ children: title
115
+ })
116
+ }),
117
+ /*#__PURE__*/ (0, _jsxRuntime).jsx("span", {
118
+ role: "presentation",
119
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text1, {
120
+ regular: true,
121
+ children: BREADCRUMB_SEPARATOR
122
+ })
50
123
  })
51
- }),
52
- /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text1, {
124
+ ]
125
+ }, index);
126
+ }),
127
+ /*#__PURE__*/ (0, _jsxRuntime).jsx("li", {
128
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx("a", {
129
+ "aria-current": "page",
130
+ href: "#",
131
+ className: classes.current,
132
+ onClick: function onClick(e) {
133
+ e.preventDefault();
134
+ },
135
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text1, {
53
136
  regular: true,
54
- children: BREADCRUMB_SEPARATOR
137
+ color: isInverse ? colors.textSecondaryInverse : colors.textSecondary,
138
+ children: title1
55
139
  })
56
- ]
57
- }, index);
58
- }),
59
- /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text1, {
60
- regular: true,
61
- color: theme.colors.textSecondary,
62
- children: title1
63
- })
64
- ]
65
- });
140
+ })
141
+ })
142
+ ]
143
+ })
144
+ }));
66
145
  };
67
146
  var _default = NavigationBreadcrumbs;
68
147
  exports.default = _default;
@@ -1,12 +1,15 @@
1
1
  // @flow
2
2
 
3
3
  import * as React from "react";
4
+ import type { DataAttributes } from "./utils/types";
4
5
  export type NavigationBreadcrumbsProps = {
5
6
  title: string,
6
7
  breadcrumbs: $ReadOnlyArray<{
7
8
  +title: string,
8
9
  +url: string,
9
10
  }>,
11
+ dataAttributes?: DataAttributes,
12
+ "aria-label"?: string,
10
13
  };
11
14
  declare var NavigationBreadcrumbs: React.ComponentType<NavigationBreadcrumbsProps>;
12
15
  declare export default typeof NavigationBreadcrumbs;
@@ -3,5 +3,5 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  exports.PACKAGE_VERSION = void 0;
6
- var PACKAGE_VERSION = "12.2.0";
6
+ var PACKAGE_VERSION = "12.4.0";
7
7
  exports.PACKAGE_VERSION = PACKAGE_VERSION;
@@ -9,6 +9,7 @@ var _jss = require("./jss");
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
10
  var _hooks = require("./hooks");
11
11
  var _dom = require("./utils/dom");
12
+ var _containerTypeContext = _interopRequireDefault(require("./container-type-context"));
12
13
  function _interopRequireDefault(obj) {
13
14
  return obj && obj.__esModule ? obj : {
14
15
  default: obj
@@ -109,16 +110,20 @@ var ResponsiveLayout = function ResponsiveLayout(param) {
109
110
  var classes = useStyles();
110
111
  var ref = (0, _hooks).useScreenSize(), isMobile = ref.isMobile, isTablet = ref.isTablet;
111
112
  var sideMargin = isMobile ? MOBILE_SIDE_MARGIN : isTablet ? TABLET_SIDE_MARGIN : null;
113
+ var containerType = isMobile ? "mobile-column" : isTablet ? "tablet-column" : "desktop-wide-column";
112
114
  return /*#__PURE__*/ (0, _jsxRuntime).jsx(ResponsiveLayoutMarginContext.Provider, {
113
115
  value: sideMargin,
114
- children: /*#__PURE__*/ (0, _jsxRuntime).jsx("div", _objectSpread({
115
- className: (0, _classnames).default(classes.container, className)
116
- }, (0, _dom).getPrefixedDataAttributes(dataAttributes), {
117
- children: /*#__PURE__*/ (0, _jsxRuntime).jsx("div", {
118
- className: (0, _classnames).default(classes.layout, _defineProperty({}, classes.layoutFullWidth, fullWidth)),
119
- children: children
120
- })
121
- }))
116
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_containerTypeContext.default.Provider, {
117
+ value: containerType,
118
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx("div", _objectSpread({
119
+ className: (0, _classnames).default(classes.container, className)
120
+ }, (0, _dom).getPrefixedDataAttributes(dataAttributes), {
121
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx("div", {
122
+ className: (0, _classnames).default(classes.layout, _defineProperty({}, classes.layoutFullWidth, fullWidth)),
123
+ children: children
124
+ })
125
+ }))
126
+ })
122
127
  });
123
128
  };
124
129
  var _default = ResponsiveLayout;
@@ -99,13 +99,15 @@ var ScreenSizeContextProvider = function ScreenSizeContextProvider(param1) {
99
99
  mobile: stripMedia(theme.mq.mobile),
100
100
  tablet: stripMedia(theme.mq.tablet),
101
101
  tabletOrBigger: stripMedia(theme.mq.tabletOrBigger),
102
- tabletOrSmaller: stripMedia(theme.mq.tabletOrSmaller)
102
+ tabletOrSmaller: stripMedia(theme.mq.tabletOrSmaller),
103
+ largueDesktop: stripMedia(theme.mq.largeDesktop)
103
104
  };
104
105
  }, [
105
106
  theme.mq.mobile,
106
107
  theme.mq.tablet,
107
108
  theme.mq.tabletOrBigger,
108
- theme.mq.tabletOrSmaller
109
+ theme.mq.tabletOrSmaller,
110
+ theme.mq.largeDesktop,
109
111
  ]);
110
112
  var ref1 = _slicedToArray(React.useState(function() {
111
113
  return !isServerSide && window.matchMedia(mediaQueries.mobile).matches;
@@ -119,6 +121,9 @@ var ScreenSizeContextProvider = function ScreenSizeContextProvider(param1) {
119
121
  var ref4 = _slicedToArray(React.useState(function() {
120
122
  return !isServerSide && window.matchMedia(mediaQueries.tabletOrSmaller).matches;
121
123
  }), 2), isTabletOrSmaller = ref4[0], setIsTabletOrSmaller = ref4[1];
124
+ var ref5 = _slicedToArray(React.useState(function() {
125
+ return !isServerSide && window.matchMedia(mediaQueries.largueDesktop).matches;
126
+ }), 2), isLargeDesktop = ref5[0], setIsLargeDesktop = ref5[1];
122
127
  (0, _hooks).useIsomorphicLayoutEffect(function() {
123
128
  if (!window.matchMedia) {
124
129
  return;
@@ -139,6 +144,10 @@ var ScreenSizeContextProvider = function ScreenSizeContextProvider(param1) {
139
144
  [
140
145
  mediaQueries.tabletOrSmaller,
141
146
  setIsTabletOrSmaller
147
+ ],
148
+ [
149
+ mediaQueries.largueDesktop,
150
+ setIsLargeDesktop
142
151
  ],
143
152
  ];
144
153
  var cleanupFunctions = entries.map(function(param) {
@@ -162,7 +171,8 @@ var ScreenSizeContextProvider = function ScreenSizeContextProvider(param1) {
162
171
  mediaQueries.mobile,
163
172
  mediaQueries.tablet,
164
173
  mediaQueries.tabletOrBigger,
165
- mediaQueries.tabletOrSmaller
174
+ mediaQueries.tabletOrSmaller,
175
+ mediaQueries.largueDesktop,
166
176
  ]);
167
177
  var value = React.useMemo(function() {
168
178
  return {
@@ -170,13 +180,15 @@ var ScreenSizeContextProvider = function ScreenSizeContextProvider(param1) {
170
180
  isTablet: isTablet,
171
181
  isTabletOrBigger: isTabletOrBigger,
172
182
  isTabletOrSmaller: isTabletOrSmaller,
173
- isDesktopOrBigger: !isTabletOrSmaller
183
+ isDesktopOrBigger: !isTabletOrSmaller,
184
+ isLargeDesktop: isLargeDesktop
174
185
  };
175
186
  }, [
176
187
  isMobile,
177
188
  isTablet,
178
189
  isTabletOrBigger,
179
- isTabletOrSmaller
190
+ isTabletOrSmaller,
191
+ isLargeDesktop
180
192
  ]);
181
193
  return /*#__PURE__*/ (0, _jsxRuntime).jsx(_screenSizeContext.default.Provider, {
182
194
  value: value,
@@ -5,6 +5,7 @@ export declare type ScreenSizeContextType = {
5
5
  isTabletOrBigger: boolean;
6
6
  isTabletOrSmaller: boolean;
7
7
  isDesktopOrBigger: boolean;
8
+ isLargeDesktop: boolean;
8
9
  };
9
10
  declare const ScreenSizeContext: React.Context<ScreenSizeContextType>;
10
11
  export default ScreenSizeContext;
@@ -30,7 +30,8 @@ var ScreenSizeContext = /*#__PURE__*/ React.createContext({
30
30
  isTablet: false,
31
31
  isTabletOrBigger: false,
32
32
  isTabletOrSmaller: false,
33
- isDesktopOrBigger: false
33
+ isDesktopOrBigger: false,
34
+ isLargeDesktop: false
34
35
  });
35
36
  var _default = ScreenSizeContext;
36
37
  exports.default = _default;
@@ -7,6 +7,7 @@ export type ScreenSizeContextType = {
7
7
  isTabletOrBigger: boolean,
8
8
  isTabletOrSmaller: boolean,
9
9
  isDesktopOrBigger: boolean,
10
+ isLargeDesktop: boolean,
10
11
  };
11
12
  declare var ScreenSizeContext: React.Context<ScreenSizeContextType>;
12
13
  declare export default typeof ScreenSizeContext;
package/dist/snackbar.js CHANGED
@@ -10,6 +10,7 @@ var _touchable = _interopRequireDefault(require("./touchable"));
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
11
  var _webviewBridge = require("@tef-novum/webview-bridge");
12
12
  var _hooks = require("./hooks");
13
+ var _text = require("./text");
13
14
  function _interopRequireDefault(obj) {
14
15
  return obj && obj.__esModule ? obj : {
15
16
  default: obj
@@ -146,9 +147,6 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
146
147
  transition: "transform ".concat(TRANSITION_TIME_IN_MS, "ms ease-in-out, opacity ").concat(TRANSITION_TIME_IN_MS, "ms ease-in-out")
147
148
  },
148
149
  snackbarContent: {
149
- fontSize: 14,
150
- lineHeight: "20px",
151
- color: theme.colors.textPrimaryInverse,
152
150
  display: "flex",
153
151
  flexDirection: function flexDirection(param) {
154
152
  var isLongButton = param.isLongButton;
@@ -201,6 +199,7 @@ var SnackbarComponent = function SnackbarComponent(param) {
201
199
  var ref1 = (0, _hooks).useElementDimensions(), buttonWidth = ref1.width, buttonRef = ref1.ref;
202
200
  var isDesktopOrBigger = (0, _hooks).useScreenSize().isDesktopOrBigger;
203
201
  var longButtonWidth = isDesktopOrBigger ? 160 : 128;
202
+ var colors = (0, _hooks).useTheme().colors;
204
203
  var classes = useStyles({
205
204
  type: type,
206
205
  isOpen: isOpen,
@@ -236,7 +235,9 @@ var SnackbarComponent = function SnackbarComponent(param) {
236
235
  children: /*#__PURE__*/ (0, _jsxRuntime).jsxs("div", {
237
236
  className: classes.snackbarContent,
238
237
  children: [
239
- /*#__PURE__*/ (0, _jsxRuntime).jsx("span", {
238
+ /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text2, {
239
+ regular: true,
240
+ color: colors.textPrimaryInverse,
240
241
  children: message
241
242
  }),
242
243
  buttonText && /*#__PURE__*/ (0, _jsxRuntime).jsx(_touchable.default, {
package/dist/tabs.js CHANGED
@@ -285,6 +285,7 @@ var Tabs = function Tabs(param2) {
285
285
  /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text3, {
286
286
  medium: true,
287
287
  color: "inherit",
288
+ wordBreak: false,
288
289
  children: text
289
290
  })
290
291
  ]
@@ -435,6 +435,7 @@ var TextFieldBase = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
435
435
  children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text3, {
436
436
  color: colors.textSecondary,
437
437
  regular: true,
438
+ wordBreak: false,
438
439
  children: prefix
439
440
  })
440
441
  }),
package/dist/text.d.ts CHANGED
@@ -8,6 +8,7 @@ export interface TextPresetProps {
8
8
  children?: React.ReactNode;
9
9
  truncate?: boolean | number;
10
10
  wordBreak?: boolean;
11
+ hyphens?: 'auto' | 'manual' | 'none';
11
12
  id?: string;
12
13
  as?: React.ComponentType<any> | string;
13
14
  role?: string;
package/dist/text.js CHANGED
@@ -128,6 +128,10 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
128
128
  return wordBreak1 ? "break-word" : "inherit";
129
129
  }
130
130
  },
131
+ hyphens: function hyphens(param) {
132
+ var hyphens1 = param.hyphens;
133
+ return hyphens1;
134
+ },
131
135
  // Needed to reset the default browser margin that adds to p, h1, h2... elements.
132
136
  margin: 0
133
137
  }, theme.mq.tabletOrSmaller, {
@@ -161,7 +165,7 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
161
165
  };
162
166
  });
163
167
  var Text = function Text(param) {
164
- var weight = param.weight, color = param.color, decoration = param.decoration, truncate = param.truncate, transform = param.transform, wordBreak = param.wordBreak, _as = param.as, as = _as === void 0 ? "span" : _as, children = param.children, size = param.size, _mobileSize = param.mobileSize, mobileSize = _mobileSize === void 0 ? size : _mobileSize, _desktopSize = param.desktopSize, desktopSize = _desktopSize === void 0 ? size : _desktopSize, lineHeight = param.lineHeight, _mobileLineHeight = param.mobileLineHeight, mobileLineHeight = _mobileLineHeight === void 0 ? lineHeight : _mobileLineHeight, _desktopLineHeight = param.desktopLineHeight, desktopLineHeight = _desktopLineHeight === void 0 ? lineHeight : _desktopLineHeight, letterSpacing = param.letterSpacing, id = param.id, role = param.role, ariaLevel = param["aria-level"], dataAttributes = param.dataAttributes;
168
+ var weight = param.weight, color = param.color, decoration = param.decoration, truncate = param.truncate, transform = param.transform, _wordBreak = param.wordBreak, wordBreak = _wordBreak === void 0 ? true : _wordBreak, hyphens = param.hyphens, _as = param.as, as = _as === void 0 ? "span" : _as, children = param.children, size = param.size, _mobileSize = param.mobileSize, mobileSize = _mobileSize === void 0 ? size : _mobileSize, _desktopSize = param.desktopSize, desktopSize = _desktopSize === void 0 ? size : _desktopSize, lineHeight = param.lineHeight, _mobileLineHeight = param.mobileLineHeight, mobileLineHeight = _mobileLineHeight === void 0 ? lineHeight : _mobileLineHeight, _desktopLineHeight = param.desktopLineHeight, desktopLineHeight = _desktopLineHeight === void 0 ? lineHeight : _desktopLineHeight, letterSpacing = param.letterSpacing, id = param.id, role = param.role, ariaLevel = param["aria-level"], dataAttributes = param.dataAttributes;
165
169
  var isInverse = (0, _themeVariantContext).useIsInverseVariant();
166
170
  var classes = useStyles({
167
171
  isInverse: isInverse,
@@ -174,6 +178,7 @@ var Text = function Text(param) {
174
178
  decoration: decoration,
175
179
  transform: transform,
176
180
  wordBreak: wordBreak,
181
+ hyphens: hyphens,
177
182
  letterSpacing: letterSpacing,
178
183
  truncate: truncate
179
184
  });
package/dist/text.js.flow CHANGED
@@ -10,6 +10,7 @@ export type TextPresetProps = {
10
10
  children?: React.Node,
11
11
  truncate?: boolean | number,
12
12
  wordBreak?: boolean,
13
+ hyphens?: "auto" | "manual" | "none",
13
14
  id?: string,
14
15
  as?: React.ComponentType<any> | string,
15
16
  role?: string,
package/dist/title.js CHANGED
@@ -66,6 +66,7 @@ var Title1 = function Title1(param) {
66
66
  as: as,
67
67
  id: id,
68
68
  dataAttributes: dataAttributes,
69
+ wordBreak: false,
69
70
  children: children
70
71
  }),
71
72
  right: right
@@ -10,3 +10,4 @@ export declare type IconProps = {
10
10
  className?: string;
11
11
  style?: React.CSSProperties;
12
12
  };
13
+ export declare type ContainerType = 'desktop-small-column' | 'desktop-medium-column' | 'desktop-wide-column' | 'tablet-column' | 'mobile-column';
@@ -11,5 +11,11 @@ export type IconProps = {
11
11
  className?: string,
12
12
  style?: CssStyle,
13
13
  };
14
+ export type ContainerType =
15
+ | "desktop-small-column"
16
+ | "desktop-medium-column"
17
+ | "desktop-wide-column"
18
+ | "tablet-column"
19
+ | "mobile-column";
14
20
 
15
21
  import { type CssStyle } from "../__css_types__.js.flow";
package/dist-es/card.js CHANGED
@@ -106,7 +106,6 @@ var CardContent = function(param) {
106
106
  space: 4,
107
107
  children: [
108
108
  pretitle && /*#__PURE__*/ _jsx(Text1, {
109
- wordBreak: true,
110
109
  truncate: pretitleLinesMax,
111
110
  as: "div",
112
111
  regular: true,
@@ -114,14 +113,12 @@ var CardContent = function(param) {
114
113
  children: pretitle
115
114
  }),
116
115
  /*#__PURE__*/ _jsx(Text4, {
117
- wordBreak: true,
118
116
  truncate: titleLinesMax,
119
117
  as: "h1",
120
118
  regular: true,
121
119
  children: title
122
120
  }),
123
121
  /*#__PURE__*/ _jsx(Text2, {
124
- wordBreak: true,
125
122
  truncate: subtitleLinesMax,
126
123
  as: "div",
127
124
  regular: true,
@@ -133,7 +130,6 @@ var CardContent = function(param) {
133
130
  })
134
131
  }),
135
132
  description && /*#__PURE__*/ _jsx(Text2, {
136
- wordBreak: true,
137
133
  truncate: descriptionLinesMax,
138
134
  as: "p",
139
135
  regular: true,
@@ -363,14 +359,12 @@ var SnapCard = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
363
359
  space: 4,
364
360
  children: [
365
361
  title && /*#__PURE__*/ _jsx(Text2, {
366
- wordBreak: true,
367
362
  truncate: titleLinesMax,
368
363
  as: "h1",
369
364
  regular: true,
370
365
  children: title
371
366
  }),
372
367
  subtitle && /*#__PURE__*/ _jsx(Text2, {
373
- wordBreak: true,
374
368
  truncate: subtitleLinesMax,
375
369
  regular: true,
376
370
  color: colors.textSecondary,
@@ -101,6 +101,7 @@ import { DisableBorderRadiusProvider } from "./image";
101
101
  import { getPrefixedDataAttributes, listenResize } from "./utils/dom";
102
102
  import { isAndroid } from "./utils/platform";
103
103
  import { useDocumentVisibility } from "./utils/document-visibility";
104
+ import { useContainerType } from "./container-type-context";
104
105
  var useShouldAutoplay = function(autoplay, ref) {
105
106
  var isDocumentVisible = useDocumentVisibility();
106
107
  var isInViewport = useIsInViewport(ref, false);
@@ -186,8 +187,19 @@ var arrowButtonStyle = function(theme) {
186
187
  display: "none"
187
188
  }));
188
189
  };
190
+ var arrowButtonSeparation = function(containerType, isLargeDesktop, sideMargin) {
191
+ switch(containerType){
192
+ case "mobile-column":
193
+ case "tablet-column":
194
+ return -sideMargin;
195
+ case "desktop-wide-column":
196
+ return isLargeDesktop ? -(24 + arrowButtonSize) : -arrowButtonSize / 2;
197
+ default:
198
+ return -arrowButtonSize / 2;
199
+ }
200
+ };
189
201
  var useStyles = createUseStyles(function(theme) {
190
- var _obj, _obj1, _obj2;
202
+ var _obj;
191
203
  return {
192
204
  carouselContainer: {
193
205
  // This value is a workaround to solve an issue when the page is rendered in a hidden webview
@@ -199,26 +211,18 @@ var useStyles = createUseStyles(function(theme) {
199
211
  position: "absolute",
200
212
  zIndex: 1,
201
213
  top: "calc(50% - ".concat(arrowButtonSize / 2, "px)"),
202
- "&.prev": (_obj = {
203
- left: -arrowButtonSize / 2
204
- }, _defineProperty(_obj, theme.mq.tabletOrSmaller, {
214
+ "&.prev": {
205
215
  left: function(param) {
206
- var sideMargin = param.sideMargin;
207
- return -sideMargin;
216
+ var containerType = param.containerType, isLargeDesktop = param.isLargeDesktop, sideMargin = param.sideMargin;
217
+ return arrowButtonSeparation(containerType, isLargeDesktop, sideMargin);
208
218
  }
209
- }), _defineProperty(_obj, theme.mq.largeDesktop, {
210
- left: -(24 + arrowButtonSize)
211
- }), _obj),
212
- "&.next": (_obj1 = {
213
- right: -arrowButtonSize / 2
214
- }, _defineProperty(_obj1, theme.mq.tabletOrSmaller, {
219
+ },
220
+ "&.next": {
215
221
  right: function(param) {
216
- var sideMargin = param.sideMargin;
217
- return -sideMargin;
222
+ var containerType = param.containerType, isLargeDesktop = param.isLargeDesktop, sideMargin = param.sideMargin;
223
+ return arrowButtonSeparation(containerType, isLargeDesktop, sideMargin);
218
224
  }
219
- }), _defineProperty(_obj1, theme.mq.largeDesktop, {
220
- right: -(24 + arrowButtonSize)
221
- }), _obj1)
225
+ }
222
226
  }),
223
227
  hasScroll: {},
224
228
  centered: {},
@@ -244,7 +248,7 @@ var useStyles = createUseStyles(function(theme) {
244
248
  width: "25%"
245
249
  }
246
250
  })),
247
- item: (_obj2 = {
251
+ item: (_obj = {
248
252
  scrollSnapStop: isAndroid(theme.platformOverrides) ? "always" : "normal",
249
253
  scrollSnapAlign: "start",
250
254
  flexShrink: 0,
@@ -264,7 +268,7 @@ var useStyles = createUseStyles(function(theme) {
264
268
  },
265
269
  scrollMargin: 0
266
270
  }
267
- }, _defineProperty(_obj2, theme.mq.tabletOrSmaller, {
271
+ }, _defineProperty(_obj, theme.mq.tabletOrSmaller, {
268
272
  width: function(param) {
269
273
  var itemsPerPageConfig = param.itemsPerPageConfig, gap = param.gap;
270
274
  return "calc(".concat(100 / itemsPerPageConfig.mobile, "% + ").concat(gap / itemsPerPageConfig.mobile, "px)");
@@ -319,14 +323,14 @@ var useStyles = createUseStyles(function(theme) {
319
323
  return 0;
320
324
  }
321
325
  }
322
- }), _defineProperty(_obj2, "&:not(:empty) ~ &:not(:empty)", {
326
+ }), _defineProperty(_obj, "&:not(:empty) ~ &:not(:empty)", {
323
327
  paddingLeft: function(param) {
324
328
  var gap = param.gap;
325
329
  return gap;
326
330
  }
327
- }), _defineProperty(_obj2, "&:empty", {
331
+ }), _defineProperty(_obj, "&:empty", {
328
332
  display: "none"
329
- }), _obj2),
333
+ }), _obj),
330
334
  bullets: {
331
335
  display: "flex",
332
336
  justifyContent: "center"
@@ -390,9 +394,10 @@ var DEFAULT_AUTOPLAY_TIME = 5000;
390
394
  var BaseCarousel = function(param) {
391
395
  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;
392
396
  var texts = useTheme().texts;
397
+ var containerType = useContainerType();
393
398
  var itemsPerPageConfig = normalizeItemsPerPage(itemsPerPage);
394
399
  var mobilePageOffsetConfig = normalizeMobilePageOffset(mobilePageOffset);
395
- var isDesktopOrBigger = useScreenSize().isDesktopOrBigger;
400
+ var ref4 = useScreenSize(), isDesktopOrBigger = ref4.isDesktopOrBigger, isLargeDesktop = ref4.isLargeDesktop;
396
401
  var gap = gapProp !== null && gapProp !== void 0 ? gapProp : isDesktopOrBigger ? 16 : 8;
397
402
  var sideMargin = useResonsiveLayoutMargin();
398
403
  var classes = useStyles({
@@ -400,16 +405,18 @@ var BaseCarousel = function(param) {
400
405
  mobilePageOffsetConfig: mobilePageOffsetConfig,
401
406
  free: free,
402
407
  gap: gap,
403
- sideMargin: sideMargin
408
+ sideMargin: sideMargin,
409
+ containerType: containerType,
410
+ isLargeDesktop: isLargeDesktop
404
411
  });
405
412
  var carouselRef = React.useRef(null);
406
413
  var itemsPerPageFloor = isDesktopOrBigger ? Math.floor(itemsPerPageConfig.desktop) : Math.floor(itemsPerPageConfig.mobile);
407
414
  var pagesCount = Math.ceil(items.length / itemsPerPageFloor);
408
- var ref3 = _slicedToArray(React.useState({
415
+ var ref1 = _slicedToArray(React.useState({
409
416
  scrollLeft: 0,
410
417
  scrollRight: 0
411
- }), 2), ref1 = ref3[0], scrollLeft1 = ref1.scrollLeft, scrollRight1 = ref1.scrollRight, setScroll = ref3[1];
412
- var ref2 = _slicedToArray(React.useState([]), 2), itemScrollPositions = ref2[0], setItemScrollPositions = ref2[1];
418
+ }), 2), ref2 = ref1[0], scrollLeft1 = ref2.scrollLeft, scrollRight1 = ref2.scrollRight, setScroll = ref1[1];
419
+ var ref3 = _slicedToArray(React.useState([]), 2), itemScrollPositions = ref3[0], setItemScrollPositions = ref3[1];
413
420
  var pagesScrollPositions = calcPagesScrollPositions(itemScrollPositions, pagesCount);
414
421
  var scrollPositions = itemsToScroll ? calcPagesScrollPositions(itemScrollPositions, Math.ceil(items.length / itemsToScroll)) : pagesScrollPositions;
415
422
  var showNextArrow = scrollRight1 !== 0;
@@ -706,10 +713,10 @@ export var Slideshow = function(param) {
706
713
  sideMargin: sideMargin
707
714
  });
708
715
  var carouselRef = React.useRef(null);
709
- var ref5 = _slicedToArray(React.useState({
716
+ var ref6 = _slicedToArray(React.useState({
710
717
  scrollLeft: 0,
711
718
  scrollRight: 0
712
- }), 2), ref4 = ref5[0], scrollLeft2 = ref4.scrollLeft, scrollRight2 = ref4.scrollRight, setScroll = ref5[1];
719
+ }), 2), ref5 = ref6[0], scrollLeft2 = ref5.scrollLeft, scrollRight2 = ref5.scrollRight, setScroll = ref6[1];
713
720
  var goPrev = React.useCallback(function() {
714
721
  var carouselEl = carouselRef.current;
715
722
  if (carouselEl) {