@telefonica/mistica 11.7.0 → 11.10.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 (57) hide show
  1. package/dist/avatar.d.ts +14 -0
  2. package/dist/avatar.js +239 -0
  3. package/dist/avatar.js.flow +16 -0
  4. package/dist/badge.d.ts +2 -0
  5. package/dist/badge.js +24 -7
  6. package/dist/badge.js.flow +2 -0
  7. package/dist/button.js +35 -10
  8. package/dist/image.d.ts +2 -0
  9. package/dist/image.js +68 -5
  10. package/dist/image.js.flow +2 -0
  11. package/dist/index.d.ts +5 -2
  12. package/dist/index.js +29 -2
  13. package/dist/index.js.flow +5 -2
  14. package/dist/package-version.js +1 -1
  15. package/dist/password-field.js +9 -8
  16. package/dist/placeholder.d.ts +0 -4
  17. package/dist/placeholder.js +1 -13
  18. package/dist/placeholder.js.flow +0 -4
  19. package/dist/section-title.d.ts +3 -0
  20. package/dist/section-title.js +3 -1
  21. package/dist/section-title.js.flow +3 -0
  22. package/dist/text-link.js +17 -5
  23. package/dist/text.js +8 -2
  24. package/dist/theme-context-provider.js +13 -8
  25. package/dist/theme.d.ts +3 -0
  26. package/dist/theme.js.flow +3 -0
  27. package/dist/title.d.ts +13 -0
  28. package/dist/title.js +87 -0
  29. package/dist/title.js.flow +18 -0
  30. package/dist/utils/__tests__/analytics-test.js +74 -0
  31. package/dist/utils/analytics.d.ts +14 -0
  32. package/dist/utils/analytics.js +50 -1
  33. package/dist/utils/analytics.js.flow +14 -0
  34. package/dist-es/avatar.js +208 -0
  35. package/dist-es/badge.js +24 -7
  36. package/dist-es/button.js +36 -11
  37. package/dist-es/image.js +69 -5
  38. package/dist-es/index.js +4 -1
  39. package/dist-es/package-version.js +1 -1
  40. package/dist-es/password-field.js +9 -8
  41. package/dist-es/placeholder.js +0 -11
  42. package/dist-es/section-title.js +3 -1
  43. package/dist-es/text-link.js +18 -6
  44. package/dist-es/text.js +8 -2
  45. package/dist-es/theme-context-provider.js +13 -8
  46. package/dist-es/title.js +54 -0
  47. package/dist-es/utils/__tests__/analytics-test.js +47 -0
  48. package/dist-es/utils/analytics.js +27 -0
  49. package/package.json +3 -3
  50. package/dist/icons/icon-visibility-off.d.ts +0 -7
  51. package/dist/icons/icon-visibility-off.js +0 -49
  52. package/dist/icons/icon-visibility-off.js.flow +0 -9
  53. package/dist/icons/icon-visibility.d.ts +0 -7
  54. package/dist/icons/icon-visibility.js +0 -49
  55. package/dist/icons/icon-visibility.js.flow +0 -9
  56. package/dist-es/icons/icon-visibility-off.js +0 -22
  57. package/dist-es/icons/icon-visibility.js +0 -22
package/dist/index.js CHANGED
@@ -380,10 +380,16 @@ Object.defineProperty(exports, "Placeholder", {
380
380
  return _placeholder.Placeholder;
381
381
  }
382
382
  });
383
- Object.defineProperty(exports, "AvatarPlaceholder", {
383
+ Object.defineProperty(exports, "Title1", {
384
384
  enumerable: true,
385
385
  get: function() {
386
- return _placeholder.AvatarPlaceholder;
386
+ return _title.Title1;
387
+ }
388
+ });
389
+ Object.defineProperty(exports, "Title2", {
390
+ enumerable: true,
391
+ get: function() {
392
+ return _title.Title2;
387
393
  }
388
394
  });
389
395
  Object.defineProperty(exports, "RowList", {
@@ -512,6 +518,12 @@ Object.defineProperty(exports, "Callout", {
512
518
  return _callout.default;
513
519
  }
514
520
  });
521
+ Object.defineProperty(exports, "Avatar", {
522
+ enumerable: true,
523
+ get: function() {
524
+ return _avatar.default;
525
+ }
526
+ });
515
527
  Object.defineProperty(exports, "useModalState", {
516
528
  enumerable: true,
517
529
  get: function() {
@@ -806,6 +818,18 @@ Object.defineProperty(exports, "useIsInViewport", {
806
818
  return _hooks.useIsInViewport;
807
819
  }
808
820
  });
821
+ Object.defineProperty(exports, "TrackingConfig", {
822
+ enumerable: true,
823
+ get: function() {
824
+ return _analytics.TrackingConfig;
825
+ }
826
+ });
827
+ Object.defineProperty(exports, "useTrackingConfig", {
828
+ enumerable: true,
829
+ get: function() {
830
+ return _analytics.useTrackingConfig;
831
+ }
832
+ });
809
833
  Object.defineProperty(exports, "useDocumentVisibility", {
810
834
  enumerable: true,
811
835
  get: function() {
@@ -10769,6 +10793,7 @@ var _text = _interopRequireWildcard(require("./text"));
10769
10793
  var _tag = _interopRequireDefault(require("./tag"));
10770
10794
  var _sectionTitle = _interopRequireDefault(require("./section-title"));
10771
10795
  var _placeholder = require("./placeholder");
10796
+ var _title = require("./title");
10772
10797
  var _list = require("./list");
10773
10798
  var _switchComponent = _interopRequireDefault(require("./switch-component"));
10774
10799
  var _checkbox = _interopRequireDefault(require("./checkbox"));
@@ -10785,6 +10810,7 @@ var _menu = _interopRequireDefault(require("./menu"));
10785
10810
  var _emptyState = _interopRequireDefault(require("./empty-state"));
10786
10811
  var _emptyStateCard = _interopRequireDefault(require("./empty-state-card"));
10787
10812
  var _callout = _interopRequireDefault(require("./callout"));
10813
+ var _avatar = _interopRequireDefault(require("./avatar"));
10788
10814
  var _modalContextProvider = require("./modal-context-provider");
10789
10815
  var _navigationBar = require("./navigation-bar");
10790
10816
  var _image = _interopRequireDefault(require("./image"));
@@ -10818,6 +10844,7 @@ var _iconSuccess = _interopRequireDefault(require("./icons/icon-success"));
10818
10844
  var _iconSuccessVivo = _interopRequireDefault(require("./icons/icon-success-vivo"));
10819
10845
  var _circle = _interopRequireDefault(require("./circle"));
10820
10846
  var _hooks = require("./hooks");
10847
+ var _analytics = require("./utils/analytics");
10821
10848
  var _documentVisibility = require("./utils/document-visibility");
10822
10849
  var _themeVariantContext = require("./theme-variant-context");
10823
10850
  var _constants = require("./skins/constants");
@@ -73,7 +73,8 @@ declare export {
73
73
  declare export { default as Tag } from "./tag";
74
74
  export type { TagType } from "./tag";
75
75
  declare export { default as SectionTitle } from "./section-title";
76
- declare export { Placeholder, AvatarPlaceholder } from "./placeholder";
76
+ declare export { Placeholder } from "./placeholder";
77
+ declare export { Title1, Title2 } from "./title";
77
78
  declare export { RowList, Row, BoxedRowList, BoxedRow } from "./list";
78
79
  declare export { default as Switch } from "./switch-component";
79
80
  declare export { default as Checkbox } from "./checkbox";
@@ -90,6 +91,7 @@ declare export { default as Menu } from "./menu";
90
91
  declare export { default as EmptyState } from "./empty-state";
91
92
  declare export { default as EmptyStateCard } from "./empty-state-card";
92
93
  declare export { default as Callout } from "./callout";
94
+ declare export { default as Avatar } from "./avatar";
93
95
  declare export { useModalState } from "./modal-context-provider";
94
96
  declare export {
95
97
  NavigationBar,
@@ -144,7 +146,8 @@ declare export {
144
146
  useWindowWidth,
145
147
  useIsInViewport,
146
148
  } from "./hooks";
147
- export type { ThemeConfig, ColorScheme } from "./theme";
149
+ export type { ThemeConfig, ColorScheme, EventFormat } from "./theme";
150
+ declare export { TrackingConfig, useTrackingConfig } from "./utils/analytics";
148
151
  declare export { useDocumentVisibility } from "./utils/document-visibility";
149
152
  declare export {
150
153
  ThemeVariant,
@@ -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 = "11.7.0";
6
+ var PACKAGE_VERSION = "11.10.0";
7
7
  exports.PACKAGE_VERSION = PACKAGE_VERSION;
@@ -9,8 +9,8 @@ var _formContext = require("./form-context");
9
9
  var _textFieldBase = require("./text-field-base");
10
10
  var _hooks = require("./hooks");
11
11
  var _iconButton = _interopRequireDefault(require("./icon-button"));
12
- var _iconVisibility = _interopRequireDefault(require("./icons/icon-visibility"));
13
- var _iconVisibilityOff = _interopRequireDefault(require("./icons/icon-visibility-off"));
12
+ var _iconAccesibilityRegular = _interopRequireDefault(require("./generated/mistica-icons/icon-accesibility-regular"));
13
+ var _iconEyeRegular = _interopRequireDefault(require("./generated/mistica-icons/icon-eye-regular"));
14
14
  var _jss = require("./jss");
15
15
  function _interopRequireDefault(obj) {
16
16
  return obj && obj.__esModule ? obj : {
@@ -144,7 +144,7 @@ var usePasswordAdornmentStyles = (0, _jss).createUseStyles(function(theme) {
144
144
  return {
145
145
  shadow: _defineProperty({}, theme.mq.supportsHover, {
146
146
  "&:hover": {
147
- backgroundColor: "rgba(0, 0, 0, 0.08)"
147
+ backgroundColor: theme.colors.backgroundAlternative
148
148
  }
149
149
  })
150
150
  };
@@ -155,10 +155,11 @@ var PasswordAdornment = function PasswordAdornment(param) {
155
155
  var classes = usePasswordAdornmentStyles();
156
156
  var style = {
157
157
  backgroundSize: "200%",
158
- padding: 12,
159
- margin: -12,
158
+ padding: 8,
159
+ margin: -8,
160
160
  borderRadius: "50%",
161
- backgroundColor: undefined
161
+ backgroundColor: undefined,
162
+ transition: "background-color 0.2s ease-in-out"
162
163
  };
163
164
  return /*#__PURE__*/ (0, _jsxRuntime).jsx(_iconButton.default, {
164
165
  "aria-label": texts.togglePasswordVisibilityLabel,
@@ -166,10 +167,10 @@ var PasswordAdornment = function PasswordAdornment(param) {
166
167
  setVisibility(!isVisible);
167
168
  focus();
168
169
  },
169
- size: 48,
170
+ size: 40,
170
171
  className: classes.shadow,
171
172
  style: style,
172
- children: isVisible ? /*#__PURE__*/ (0, _jsxRuntime).jsx(_iconVisibilityOff.default, {}) : /*#__PURE__*/ (0, _jsxRuntime).jsx(_iconVisibility.default, {})
173
+ children: isVisible ? /*#__PURE__*/ (0, _jsxRuntime).jsx(_iconAccesibilityRegular.default, {}) : /*#__PURE__*/ (0, _jsxRuntime).jsx(_iconEyeRegular.default, {})
173
174
  });
174
175
  };
175
176
  var PasswordField = function PasswordField(_param) {
@@ -1,8 +1,4 @@
1
1
  import * as React from 'react';
2
- declare type AvatarPlaceholderProps = {
3
- size?: string | number;
4
- };
5
- export declare const AvatarPlaceholder: React.FC<AvatarPlaceholderProps>;
6
2
  declare type PlaceholderProps = {
7
3
  width?: string | number;
8
4
  height?: string | number;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.Placeholder = exports.AvatarPlaceholder = void 0;
5
+ exports.Placeholder = void 0;
6
6
  var _jsxRuntime = require("react/jsx-runtime");
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  var _color = require("./utils/color");
@@ -28,18 +28,6 @@ function _interopRequireWildcard(obj) {
28
28
  return newObj;
29
29
  }
30
30
  }
31
- var AvatarPlaceholder = function AvatarPlaceholder(param) {
32
- var _size = param.size, size = _size === void 0 ? "100%" : _size;
33
- return /*#__PURE__*/ (0, _jsxRuntime).jsx("div", {
34
- style: {
35
- width: size,
36
- height: size,
37
- borderRadius: "50%",
38
- background: "gray"
39
- }
40
- });
41
- };
42
- exports.AvatarPlaceholder = AvatarPlaceholder;
43
31
  var Placeholder = function Placeholder(param) {
44
32
  var _width = param.width, width = _width === void 0 ? "auto" : _width, _height = param.height, height = _height === void 0 ? 120 : _height;
45
33
  var colors = (0, _hooks).useTheme().colors;
@@ -1,10 +1,6 @@
1
1
  // @flow
2
2
 
3
3
  import * as React from "react";
4
- declare type AvatarPlaceholderProps = {
5
- size?: string | number,
6
- };
7
- declare export var AvatarPlaceholder: React.ComponentType<AvatarPlaceholderProps>;
8
4
  declare type PlaceholderProps = {
9
5
  width?: string | number,
10
6
  height?: string | number,
@@ -5,5 +5,8 @@ declare type Props = {
5
5
  right?: React.ReactNode;
6
6
  as?: 'h1' | 'h2' | 'h3' | 'h4';
7
7
  };
8
+ /**
9
+ * @deprecated use Title1 instead
10
+ */
8
11
  declare const SectionTitle: React.FC<Props>;
9
12
  export default SectionTitle;
@@ -61,7 +61,9 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
61
61
  })
62
62
  };
63
63
  });
64
- var SectionTitle = function SectionTitle(param) {
64
+ /**
65
+ * @deprecated use Title1 instead
66
+ */ var SectionTitle = function SectionTitle(param) {
65
67
  var children = param.children, id = param.id, right = param.right, _as = param.as, as = _as === void 0 ? "h3" : _as;
66
68
  var classes = useStyles();
67
69
  var theme = (0, _hooks).useTheme();
@@ -7,5 +7,8 @@ declare type Props = {
7
7
  right?: React.Node,
8
8
  as?: "h1" | "h2" | "h3" | "h4",
9
9
  };
10
+ /**
11
+ * @deprecated use Title1 instead
12
+ */
10
13
  declare var SectionTitle: React.ComponentType<Props>;
11
14
  declare export default typeof SectionTitle;
package/dist/text-link.js CHANGED
@@ -128,14 +128,26 @@ var TextLink = function TextLink(_param) {
128
128
  var classes = useStyles();
129
129
  var isInverse = (0, _themeVariantContext).useIsInverseVariant();
130
130
  var formStatus = (0, _formContext).useForm().formStatus;
131
+ var eventFormat = (0, _analytics).useTrackingConfig().eventFormat;
132
+ var createDefaultTrackingEvent = function createDefaultTrackingEvent() {
133
+ if (eventFormat === "google-analytics-4") {
134
+ return {
135
+ name: _analytics.eventNames.userInteraction,
136
+ component_type: "link",
137
+ component_copy: (0, _common).getTextFromChildren(children)
138
+ };
139
+ } else {
140
+ return {
141
+ category: _analytics.eventCategories.userInteraction,
142
+ action: _analytics.eventActions.linkTapped,
143
+ label: (0, _common).getTextFromChildren(children)
144
+ };
145
+ }
146
+ };
131
147
  var _trackingEvent;
132
148
  var _obj;
133
149
  return /*#__PURE__*/ (0, _jsxRuntime).jsx(_touchable.default, _objectSpread({}, props, {
134
- trackingEvent: (_trackingEvent = props.trackingEvent) !== null && _trackingEvent !== void 0 ? _trackingEvent : props.trackEvent ? {
135
- category: _analytics.eventCategories.userInteraction,
136
- action: _analytics.eventActions.linkTapped,
137
- label: (0, _common).getTextFromChildren(children)
138
- } : undefined,
150
+ trackingEvent: (_trackingEvent = props.trackingEvent) !== null && _trackingEvent !== void 0 ? _trackingEvent : props.trackEvent ? createDefaultTrackingEvent() : undefined,
139
151
  disabled: disabled || formStatus === "sending",
140
152
  className: (0, _classnames).default(classes.textLink, className, (_obj = {}, _defineProperty(_obj, classes.small, small), _defineProperty(_obj, classes.inverse, isInverse), _obj)),
141
153
  children: children
package/dist/text.js CHANGED
@@ -133,8 +133,14 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
133
133
  "-webkit-line-clamp": lineClamp,
134
134
  lineClamp: lineClamp,
135
135
  wordBreak: function wordBreak(param) {
136
- var truncate = param.truncate;
137
- return truncate === 1 || truncate === true ? "break-all" : "normal";
136
+ var wordBreak1 = param.wordBreak;
137
+ return wordBreak1 ? "break-all" : "normal";
138
+ },
139
+ "@supports (overflow-wrap: anywhere)": {
140
+ wordBreak: function wordBreak(param) {
141
+ var truncate = param.truncate;
142
+ return truncate === 1 || truncate === true ? "break-all" : "normal";
143
+ }
138
144
  },
139
145
  display: "box",
140
146
  boxOrient: "vertical",
@@ -22,6 +22,7 @@ var _tabFocus = _interopRequireDefault(require("./tab-focus"));
22
22
  var _modalContextProvider = _interopRequireDefault(require("./modal-context-provider"));
23
23
  var _documentVisibility = require("./utils/document-visibility");
24
24
  var _aspectRatioSupport = require("./utils/aspect-ratio-support");
25
+ var _analytics = require("./utils/analytics");
25
26
  function _interopRequireDefault(obj) {
26
27
  return obj && obj.__esModule ? obj : {
27
28
  default: obj
@@ -206,7 +207,8 @@ var ThemeContextProvider = function ThemeContextProvider(param) {
206
207
  analytics: _objectSpread({
207
208
  logEvent: function logEvent() {
208
209
  return Promise.resolve();
209
- }
210
+ },
211
+ eventFormat: "universal-analytics"
210
212
  }, theme.analytics),
211
213
  dimensions: _objectSpread({}, _theme.dimensions, theme.dimensions),
212
214
  mq: (0, _mediaQueries).createMediaQueries((_mediaQueries1 = theme.mediaQueries) !== null && _mediaQueries1 !== void 0 ? _mediaQueries1 : _theme.mediaQueriesConfig),
@@ -229,13 +231,16 @@ var ThemeContextProvider = function ThemeContextProvider(param) {
229
231
  children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_modalContextProvider.default, {
230
232
  children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_themeContext.default.Provider, {
231
233
  value: contextTheme,
232
- children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_aspectRatioSupport.AspectRatioSupportProvider, {
233
- children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_documentVisibility.DocumentVisibilityProvider, {
234
- children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_ariaIdGetterContext.default.Provider, {
235
- value: getAriaId,
236
- children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_screenSizeContextProvider.default, {
237
- children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_dialog.default, {
238
- children: children
234
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_analytics.TrackingConfig, {
235
+ eventFormat: contextTheme.analytics.eventFormat,
236
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_aspectRatioSupport.AspectRatioSupportProvider, {
237
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_documentVisibility.DocumentVisibilityProvider, {
238
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_ariaIdGetterContext.default.Provider, {
239
+ value: getAriaId,
240
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_screenSizeContextProvider.default, {
241
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_dialog.default, {
242
+ children: children
243
+ })
239
244
  })
240
245
  })
241
246
  })
package/dist/theme.d.ts CHANGED
@@ -74,6 +74,7 @@ declare type LinkComponent = React.ComponentType<{
74
74
  }>;
75
75
  export declare const AnchorLink: LinkComponent;
76
76
  export declare type ColorScheme = 'dark' | 'light' | 'auto';
77
+ export declare type EventFormat = 'universal-analytics' | 'google-analytics-4';
77
78
  export declare type ThemeConfig = {
78
79
  skin: Readonly<Skin>;
79
80
  colorScheme?: ColorScheme;
@@ -89,6 +90,7 @@ export declare type ThemeConfig = {
89
90
  texts?: Partial<ThemeTexts>;
90
91
  analytics?: {
91
92
  logEvent: (trackingEvent: TrackingEvent) => Promise<void>;
93
+ eventFormat?: EventFormat;
92
94
  };
93
95
  dimensions?: {
94
96
  headerMobileHeight: number;
@@ -117,6 +119,7 @@ export declare type Theme = {
117
119
  texts: ThemeTexts;
118
120
  analytics: {
119
121
  logEvent: (trackingEvent: TrackingEvent) => Promise<void>;
122
+ eventFormat: EventFormat;
120
123
  };
121
124
  dimensions: {
122
125
  headerMobileHeight: number;
@@ -78,6 +78,7 @@ declare type LinkComponent = React.ComponentType<{
78
78
  }>;
79
79
  declare export var AnchorLink: LinkComponent;
80
80
  export type ColorScheme = "dark" | "light" | "auto";
81
+ export type EventFormat = "universal-analytics" | "google-analytics-4";
81
82
  export type ThemeConfig = {
82
83
  skin: $ReadOnly<Skin>,
83
84
  colorScheme?: ColorScheme,
@@ -93,6 +94,7 @@ export type ThemeConfig = {
93
94
  texts?: $Shape<ThemeTexts>,
94
95
  analytics?: {
95
96
  logEvent: (trackingEvent: TrackingEvent) => Promise<void>,
97
+ eventFormat?: EventFormat,
96
98
  },
97
99
  dimensions?: {
98
100
  headerMobileHeight: number,
@@ -121,6 +123,7 @@ export type Theme = {
121
123
  texts: ThemeTexts,
122
124
  analytics: {
123
125
  logEvent: (trackingEvent: TrackingEvent) => Promise<void>,
126
+ eventFormat: EventFormat,
124
127
  },
125
128
  dimensions: {
126
129
  headerMobileHeight: number,
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ import type { DataAttributes } from './utils/types';
3
+ declare type TitleProps = {
4
+ children: React.ReactNode;
5
+ id?: string;
6
+ right?: React.ReactNode;
7
+ as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
8
+ /** "data-" prefix is automatically added. For example, use "testid" instead of "data-testid" */
9
+ dataAttributes?: DataAttributes;
10
+ };
11
+ export declare const Title1: ({ children, as, id, right, dataAttributes }: TitleProps) => React.ReactElement;
12
+ export declare const Title2: ({ children, as, id, right, dataAttributes }: TitleProps) => React.ReactElement;
13
+ export {};
package/dist/title.js ADDED
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.Title2 = exports.Title1 = void 0;
6
+ var _jsxRuntime = require("react/jsx-runtime");
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _text = require("./text");
9
+ var _hooks = require("./hooks");
10
+ var _inline = _interopRequireDefault(require("./inline"));
11
+ var _box = _interopRequireDefault(require("./box"));
12
+ function _interopRequireDefault(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ function _interopRequireWildcard(obj) {
18
+ if (obj && obj.__esModule) {
19
+ return obj;
20
+ } else {
21
+ var newObj = {};
22
+ if (obj != null) {
23
+ for(var key in obj){
24
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
25
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
26
+ if (desc.get || desc.set) {
27
+ Object.defineProperty(newObj, key, desc);
28
+ } else {
29
+ newObj[key] = obj[key];
30
+ }
31
+ }
32
+ }
33
+ }
34
+ newObj.default = obj;
35
+ return newObj;
36
+ }
37
+ }
38
+ var TitleLayout = function TitleLayout(param) {
39
+ var title = param.title, right = param.right;
40
+ if (!right) {
41
+ return title;
42
+ }
43
+ return /*#__PURE__*/ (0, _jsxRuntime).jsxs(_inline.default, {
44
+ space: "between",
45
+ alignItems: "baseline",
46
+ children: [
47
+ title,
48
+ /*#__PURE__*/ (0, _jsxRuntime).jsx(_box.default, {
49
+ paddingLeft: 16,
50
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text2, {
51
+ regular: true,
52
+ children: right
53
+ })
54
+ })
55
+ ]
56
+ });
57
+ };
58
+ var Title1 = function Title1(param) {
59
+ var children = param.children, _as = param.as, as = _as === void 0 ? "h3" : _as, id = param.id, right = param.right, dataAttributes = param.dataAttributes;
60
+ var theme = (0, _hooks).useTheme();
61
+ return /*#__PURE__*/ (0, _jsxRuntime).jsx(TitleLayout, {
62
+ title: /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text1, {
63
+ color: theme.colors.textSecondary,
64
+ transform: "uppercase",
65
+ medium: true,
66
+ as: as,
67
+ id: id,
68
+ dataAttributes: dataAttributes,
69
+ children: children
70
+ }),
71
+ right: right
72
+ });
73
+ };
74
+ exports.Title1 = Title1;
75
+ var Title2 = function Title2(param) {
76
+ var children = param.children, _as = param.as, as = _as === void 0 ? "h3" : _as, id = param.id, right = param.right, dataAttributes = param.dataAttributes;
77
+ return /*#__PURE__*/ (0, _jsxRuntime).jsx(TitleLayout, {
78
+ title: /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text5, {
79
+ as: as,
80
+ id: id,
81
+ dataAttributes: dataAttributes,
82
+ children: children
83
+ }),
84
+ right: right
85
+ });
86
+ };
87
+ exports.Title2 = Title2;
@@ -0,0 +1,18 @@
1
+ // @flow
2
+
3
+ import * as React from "react";
4
+ import type { DataAttributes } from "./utils/types";
5
+ declare type TitleProps = {
6
+ children: React.Node,
7
+ id?: string,
8
+ right?: React.Node,
9
+ as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6",
10
+
11
+ /**
12
+ * "data-" prefix is automatically added. For example, use "testid" instead of "data-testid"
13
+ */
14
+ dataAttributes?: DataAttributes,
15
+ };
16
+ declare export var Title1: (x: TitleProps) => React.Element<any>;
17
+ declare export var Title2: (x: TitleProps) => React.Element<any>;
18
+ declare export {};
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var _jsxRuntime = require("react/jsx-runtime");
3
+ var React = _interopRequireWildcard(require("react"));
4
+ var _themeContextProvider = _interopRequireDefault(require("../../theme-context-provider"));
5
+ var _react = require("@testing-library/react");
6
+ var _testUtils = require("../../__tests__/test-utils");
7
+ var _analytics = require("../analytics");
8
+ function _interopRequireDefault(obj) {
9
+ return obj && obj.__esModule ? obj : {
10
+ default: obj
11
+ };
12
+ }
13
+ function _interopRequireWildcard(obj) {
14
+ if (obj && obj.__esModule) {
15
+ return obj;
16
+ } else {
17
+ var newObj = {};
18
+ if (obj != null) {
19
+ for(var key in obj){
20
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
21
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
22
+ if (desc.get || desc.set) {
23
+ Object.defineProperty(newObj, key, desc);
24
+ } else {
25
+ newObj[key] = obj[key];
26
+ }
27
+ }
28
+ }
29
+ }
30
+ newObj.default = obj;
31
+ return newObj;
32
+ }
33
+ }
34
+ var PrintEventFormat = function PrintEventFormat(param) {
35
+ var prefix = param.prefix;
36
+ var eventFormat = (0, _analytics).useTrackingConfig().eventFormat;
37
+ return /*#__PURE__*/ (0, _jsxRuntime).jsx("div", {
38
+ children: "".concat(prefix, ": ").concat(eventFormat)
39
+ });
40
+ };
41
+ test("TrackingConfig context providers", function() {
42
+ (0, _react).render(/*#__PURE__*/ (0, _jsxRuntime).jsxs(_themeContextProvider.default, {
43
+ theme: (0, _testUtils).makeTheme({
44
+ analytics: {
45
+ logEvent: function logEvent() {
46
+ return Promise.resolve();
47
+ },
48
+ eventFormat: "google-analytics-4"
49
+ }
50
+ }),
51
+ children: [
52
+ /*#__PURE__*/ (0, _jsxRuntime).jsx(PrintEventFormat, {
53
+ prefix: "test1"
54
+ }),
55
+ /*#__PURE__*/ (0, _jsxRuntime).jsxs(_analytics.TrackingConfig, {
56
+ eventFormat: "universal-analytics",
57
+ children: [
58
+ /*#__PURE__*/ (0, _jsxRuntime).jsx(PrintEventFormat, {
59
+ prefix: "test2"
60
+ }),
61
+ /*#__PURE__*/ (0, _jsxRuntime).jsx(_analytics.TrackingConfig, {
62
+ eventFormat: "google-analytics-4",
63
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx(PrintEventFormat, {
64
+ prefix: "test3"
65
+ })
66
+ })
67
+ ]
68
+ })
69
+ ]
70
+ }));
71
+ expect(_react.screen.getByText("test1: google-analytics-4")).toBeInTheDocument();
72
+ expect(_react.screen.getByText("test2: universal-analytics")).toBeInTheDocument();
73
+ expect(_react.screen.getByText("test3: google-analytics-4")).toBeInTheDocument();
74
+ });
@@ -1,6 +1,20 @@
1
+ import * as React from 'react';
2
+ import type { EventFormat } from '../theme';
1
3
  export declare const eventCategories: {
2
4
  readonly userInteraction: "user_interaction";
3
5
  };
4
6
  export declare const eventActions: {
5
7
  readonly linkTapped: "link_tapped";
6
8
  };
9
+ export declare const eventNames: {
10
+ readonly userInteraction: "user_interaction";
11
+ };
12
+ declare type TrackingConfigProps = {
13
+ children: React.ReactNode;
14
+ eventFormat: EventFormat;
15
+ };
16
+ export declare const TrackingConfig: ({ children, eventFormat }: TrackingConfigProps) => JSX.Element;
17
+ export declare const useTrackingConfig: () => {
18
+ eventFormat: EventFormat;
19
+ };
20
+ export {};
@@ -2,7 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.eventActions = exports.eventCategories = void 0;
5
+ exports.useTrackingConfig = exports.TrackingConfig = exports.eventNames = exports.eventActions = exports.eventCategories = void 0;
6
+ var _jsxRuntime = require("react/jsx-runtime");
7
+ var React = _interopRequireWildcard(require("react"));
8
+ function _interopRequireWildcard(obj) {
9
+ if (obj && obj.__esModule) {
10
+ return obj;
11
+ } else {
12
+ var newObj = {};
13
+ if (obj != null) {
14
+ for(var key in obj){
15
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
16
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
17
+ if (desc.get || desc.set) {
18
+ Object.defineProperty(newObj, key, desc);
19
+ } else {
20
+ newObj[key] = obj[key];
21
+ }
22
+ }
23
+ }
24
+ }
25
+ newObj.default = obj;
26
+ return newObj;
27
+ }
28
+ }
6
29
  var eventCategories = {
7
30
  userInteraction: "user_interaction"
8
31
  };
@@ -11,3 +34,29 @@ var eventActions = {
11
34
  linkTapped: "link_tapped"
12
35
  };
13
36
  exports.eventActions = eventActions;
37
+ var eventNames = {
38
+ userInteraction: "user_interaction"
39
+ };
40
+ exports.eventNames = eventNames;
41
+ var TrackingContext = /*#__PURE__*/ React.createContext({
42
+ eventFormat: "universal-analytics"
43
+ });
44
+ var TrackingConfig = function TrackingConfig(param) {
45
+ var children = param.children, eventFormat = param.eventFormat;
46
+ var value = React.useMemo(function() {
47
+ return {
48
+ eventFormat: eventFormat
49
+ };
50
+ }, [
51
+ eventFormat
52
+ ]);
53
+ return /*#__PURE__*/ (0, _jsxRuntime).jsx(TrackingContext.Provider, {
54
+ value: value,
55
+ children: children
56
+ });
57
+ };
58
+ exports.TrackingConfig = TrackingConfig;
59
+ var useTrackingConfig = function useTrackingConfig() {
60
+ return React.useContext(TrackingContext);
61
+ };
62
+ exports.useTrackingConfig = useTrackingConfig;