@telefonica/mistica 14.7.1 → 14.9.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 (174) hide show
  1. package/css/mistica.css +1 -1
  2. package/dist/avatar.css-mistica.js +1 -1
  3. package/dist/badge.css-mistica.js +1 -1
  4. package/dist/boxed.js +17 -18
  5. package/dist/button-group.css-mistica.js +3 -3
  6. package/dist/button-layout.css-mistica.js +8 -8
  7. package/dist/button.css-mistica.js +19 -19
  8. package/dist/callout.css-mistica.js +1 -1
  9. package/dist/card.css-mistica.js +11 -8
  10. package/dist/card.css.d.ts +4 -1
  11. package/dist/card.d.ts +29 -7
  12. package/dist/card.js +423 -291
  13. package/dist/carousel.css-mistica.js +13 -13
  14. package/dist/checkbox.css-mistica.js +10 -10
  15. package/dist/chip.css-mistica.js +3 -3
  16. package/dist/circle.css-mistica.js +2 -2
  17. package/dist/circle.d.ts +1 -0
  18. package/dist/circle.js +9 -6
  19. package/dist/credit-card-number-field.css-mistica.js +3 -3
  20. package/dist/cvv-field.css-mistica.js +3 -3
  21. package/dist/dialog.css-mistica.js +6 -6
  22. package/dist/double-field.css-mistica.js +4 -4
  23. package/dist/empty-state-card.css-mistica.js +2 -2
  24. package/dist/empty-state.css-mistica.js +2 -2
  25. package/dist/feedback.css-mistica.js +5 -5
  26. package/dist/fixed-footer-layout.css-mistica.js +2 -2
  27. package/dist/fixed-footer-layout.js +16 -16
  28. package/dist/form.d.ts +1 -1
  29. package/dist/generated/mistica-icons/icon-chevron-left-light.js +11 -11
  30. package/dist/generated/mistica-icons/icon-chevron-left-regular.js +11 -11
  31. package/dist/generated/mistica-icons/icon-chevron-right-light.js +2 -2
  32. package/dist/generated/mistica-icons/icon-chevron-right-regular.js +2 -2
  33. package/dist/hero.css-mistica.js +3 -3
  34. package/dist/highlighted-card.css-mistica.js +4 -4
  35. package/dist/hooks.d.ts +1 -0
  36. package/dist/hooks.js +11 -10
  37. package/dist/horizontal-scroll.css-mistica.js +18 -0
  38. package/dist/horizontal-scroll.css.d.ts +2 -0
  39. package/dist/horizontal-scroll.css.ts.vanilla.js +9 -0
  40. package/dist/horizontal-scroll.d.ts +7 -0
  41. package/dist/horizontal-scroll.js +66 -0
  42. package/dist/icon-button.css-mistica.js +1 -1
  43. package/dist/icon-button.js +24 -20
  44. package/dist/image.css-mistica.js +1 -1
  45. package/dist/image.d.ts +6 -0
  46. package/dist/image.js +67 -52
  47. package/dist/index.d.ts +2 -0
  48. package/dist/index.js +2 -0
  49. package/dist/list.css-mistica.js +8 -8
  50. package/dist/list.js +56 -56
  51. package/dist/loading-bar.css-mistica.js +6 -6
  52. package/dist/maybe-dismissable.css-mistica.js +3 -3
  53. package/dist/menu.css-mistica.js +2 -2
  54. package/dist/navigation-bar.css-mistica.js +14 -14
  55. package/dist/navigation-breadcrumbs.css-mistica.js +2 -2
  56. package/dist/package-version.js +1 -1
  57. package/dist/password-field.css-mistica.js +2 -2
  58. package/dist/popover.css-mistica.js +9 -9
  59. package/dist/progress-bar.css-mistica.js +1 -1
  60. package/dist/radio-button.css-mistica.js +9 -9
  61. package/dist/responsive-layout.css-mistica.js +6 -6
  62. package/dist/screen-reader-only.css-mistica.js +1 -1
  63. package/dist/select.css-mistica.js +12 -12
  64. package/dist/skeletons.css-mistica.js +3 -3
  65. package/dist/skins/blau.js +5 -3
  66. package/dist/skins/movistar-legacy.js +2 -0
  67. package/dist/skins/movistar.js +3 -1
  68. package/dist/skins/o2-classic.js +2 -0
  69. package/dist/skins/o2.js +3 -1
  70. package/dist/skins/skin-contract.css-mistica.js +202 -200
  71. package/dist/skins/skin-contract.css.d.ts +2 -0
  72. package/dist/skins/telefonica.js +4 -2
  73. package/dist/skins/{types.d.ts → types/colors.d.ts} +1 -47
  74. package/dist/skins/types/index.d.ts +48 -0
  75. package/dist/skins/vivo.js +3 -1
  76. package/dist/snackbar.css-mistica.js +5 -5
  77. package/dist/spinner.css-mistica.js +1 -1
  78. package/dist/spinner.js +40 -60
  79. package/dist/sprinkles.css-mistica.js +329 -323
  80. package/dist/stepper.css-mistica.js +8 -8
  81. package/dist/switch-component.css-mistica.js +22 -22
  82. package/dist/tabs.css-mistica.js +15 -15
  83. package/dist/tabs.js +14 -15
  84. package/dist/tag.css-mistica.js +2 -2
  85. package/dist/text-field-base.css-mistica.js +5 -5
  86. package/dist/text-field-components.css-mistica.js +9 -9
  87. package/dist/text-link.css-mistica.js +5 -5
  88. package/dist/tooltip.css-mistica.js +7 -7
  89. package/dist/touchable.css-mistica.js +1 -1
  90. package/dist/utils/aspect-ratio-support.css-mistica.js +2 -2
  91. package/dist/video.css-mistica.js +1 -1
  92. package/dist/video.d.ts +11 -4
  93. package/dist/video.js +116 -37
  94. package/dist-es/avatar.css-mistica.js +1 -1
  95. package/dist-es/badge.css-mistica.js +1 -1
  96. package/dist-es/boxed.js +27 -28
  97. package/dist-es/button-group.css-mistica.js +2 -2
  98. package/dist-es/button-layout.css-mistica.js +6 -6
  99. package/dist-es/button.css-mistica.js +9 -9
  100. package/dist-es/callout.css-mistica.js +1 -1
  101. package/dist-es/card.css-mistica.js +2 -2
  102. package/dist-es/card.js +464 -332
  103. package/dist-es/carousel.css-mistica.js +2 -2
  104. package/dist-es/checkbox.css-mistica.js +6 -6
  105. package/dist-es/chip.css-mistica.js +3 -3
  106. package/dist-es/circle.css-mistica.js +2 -2
  107. package/dist-es/circle.js +12 -9
  108. package/dist-es/credit-card-number-field.css-mistica.js +3 -3
  109. package/dist-es/cvv-field.css-mistica.js +2 -2
  110. package/dist-es/dialog.css-mistica.js +5 -5
  111. package/dist-es/double-field.css-mistica.js +4 -4
  112. package/dist-es/empty-state-card.css-mistica.js +2 -2
  113. package/dist-es/empty-state.css-mistica.js +2 -2
  114. package/dist-es/feedback.css-mistica.js +2 -2
  115. package/dist-es/fixed-footer-layout.css-mistica.js +2 -2
  116. package/dist-es/fixed-footer-layout.js +30 -30
  117. package/dist-es/generated/mistica-icons/icon-chevron-left-light.js +12 -12
  118. package/dist-es/generated/mistica-icons/icon-chevron-left-regular.js +11 -11
  119. package/dist-es/generated/mistica-icons/icon-chevron-right-light.js +2 -2
  120. package/dist-es/generated/mistica-icons/icon-chevron-right-regular.js +2 -2
  121. package/dist-es/hero.css-mistica.js +2 -2
  122. package/dist-es/highlighted-card.css-mistica.js +4 -4
  123. package/dist-es/hooks.js +8 -8
  124. package/dist-es/horizontal-scroll.css-mistica.js +5 -0
  125. package/dist-es/horizontal-scroll.css.ts.vanilla.js +2 -0
  126. package/dist-es/horizontal-scroll.js +15 -0
  127. package/dist-es/icon-button.css-mistica.js +1 -1
  128. package/dist-es/icon-button.js +27 -23
  129. package/dist-es/image.css-mistica.js +1 -1
  130. package/dist-es/image.js +82 -69
  131. package/dist-es/index.js +1708 -1707
  132. package/dist-es/list.css-mistica.js +2 -2
  133. package/dist-es/list.js +75 -75
  134. package/dist-es/loading-bar.css-mistica.js +2 -2
  135. package/dist-es/maybe-dismissable.css-mistica.js +2 -2
  136. package/dist-es/menu.css-mistica.js +2 -2
  137. package/dist-es/navigation-bar.css-mistica.js +11 -11
  138. package/dist-es/navigation-breadcrumbs.css-mistica.js +2 -2
  139. package/dist-es/package-version.js +1 -1
  140. package/dist-es/password-field.css-mistica.js +2 -2
  141. package/dist-es/popover.css-mistica.js +2 -2
  142. package/dist-es/progress-bar.css-mistica.js +1 -1
  143. package/dist-es/radio-button.css-mistica.js +6 -6
  144. package/dist-es/responsive-layout.css-mistica.js +5 -5
  145. package/dist-es/screen-reader-only.css-mistica.js +1 -1
  146. package/dist-es/select.css-mistica.js +9 -9
  147. package/dist-es/skeletons.css-mistica.js +2 -2
  148. package/dist-es/skins/blau.js +5 -3
  149. package/dist-es/skins/movistar-legacy.js +2 -0
  150. package/dist-es/skins/movistar.js +3 -1
  151. package/dist-es/skins/o2-classic.js +2 -0
  152. package/dist-es/skins/o2.js +3 -1
  153. package/dist-es/skins/skin-contract.css-mistica.js +202 -200
  154. package/dist-es/skins/telefonica.js +4 -2
  155. package/dist-es/skins/vivo.js +3 -1
  156. package/dist-es/snackbar.css-mistica.js +2 -2
  157. package/dist-es/spinner.css-mistica.js +1 -1
  158. package/dist-es/spinner.js +68 -88
  159. package/dist-es/sprinkles.css-mistica.js +329 -323
  160. package/dist-es/stepper.css-mistica.js +2 -2
  161. package/dist-es/style.css +1 -1
  162. package/dist-es/switch-component.css-mistica.js +19 -19
  163. package/dist-es/tabs.css-mistica.js +10 -10
  164. package/dist-es/tabs.js +22 -23
  165. package/dist-es/tag.css-mistica.js +2 -2
  166. package/dist-es/text-field-base.css-mistica.js +2 -2
  167. package/dist-es/text-field-components.css-mistica.js +2 -2
  168. package/dist-es/text-link.css-mistica.js +5 -5
  169. package/dist-es/tooltip.css-mistica.js +3 -3
  170. package/dist-es/touchable.css-mistica.js +1 -1
  171. package/dist-es/utils/aspect-ratio-support.css-mistica.js +2 -2
  172. package/dist-es/video.css-mistica.js +1 -1
  173. package/dist-es/video.js +127 -48
  174. package/package.json +2 -2
package/dist-es/video.js CHANGED
@@ -77,78 +77,157 @@ function _objectWithoutPropertiesLoose(source, excluded) {
77
77
  }
78
78
  return target;
79
79
  }
80
- import * as n from "react";
81
- import { useMediaBorderRadius as v } from "./image.js";
82
- import { AspectRatioElement as E } from "./utils/aspect-ratio-support.js";
83
- import { combineRefs as y } from "./utils/common.js";
84
- import { getPrefixedDataAttributes as S } from "./utils/dom.js";
85
- import { isSafari as I, isRunningAcceptanceTest as k } from "./utils/platform.js";
86
- import { video as w } from "./video.css-mistica.js";
87
- import { vars as C } from "./skins/skin-contract.css-mistica.js";
88
- import { jsx as r } from "./_virtual/jsx-runtime.js";
89
- const F = {
80
+ import * as o from "react";
81
+ import { useMediaBorderRadius as D, ImageContent as J, ImageError as O } from "./image.js";
82
+ import { AspectRatioElement as P } from "./utils/aspect-ratio-support.js";
83
+ import { combineRefs as Q } from "./utils/common.js";
84
+ import { getPrefixedDataAttributes as V } from "./utils/dom.js";
85
+ import { isRunningAcceptanceTest as X } from "./utils/platform.js";
86
+ import { video as Y } from "./video.css-mistica.js";
87
+ import { vars as q } from "./skins/skin-contract.css-mistica.js";
88
+ import { useElementDimensions as H } from "./hooks.js";
89
+ import { jsx as d, jsxs as K } from "./_virtual/jsx-runtime.js";
90
+ const L = {
91
+ loading: {
92
+ play: "playing",
93
+ pause: "paused",
94
+ fail: "error",
95
+ finishLoad: "loaded"
96
+ },
97
+ loaded: {
98
+ play: "playing",
99
+ pause: "paused",
100
+ reset: "loading"
101
+ },
102
+ playing: {
103
+ pause: "paused",
104
+ reset: "loading"
105
+ },
106
+ paused: {
107
+ play: "playing",
108
+ reset: "loading"
109
+ },
110
+ error: {
111
+ reset: "loading"
112
+ }
113
+ }, M = (t, l)=>L[t][l] || t, W = {
90
114
  "1:1": 1,
91
115
  "16:9": 16 / 9,
92
116
  "4:3": 4 / 3
93
- }, N = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAAtJREFUGFdjYAACAAAFAAGq1chRAAAAAElFTkSuQmCC", O = /*#__PURE__*/ n.forwardRef((_param, R)=>{
94
- var { src: t , poster: i , autoPlay: o = !k() , muted: c = !0 , loop: m = !0 , preload: u = "none" , aspectRatio: A = "1:1" , dataAttributes: f } = _param, s = _objectWithoutProperties(_param, [
117
+ }, _ = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAAtJREFUGFdjYAACAAAFAAGq1chRAAAAAElFTkSuQmCC", ae = /*#__PURE__*/ o.forwardRef((_param, F)=>{
118
+ var { src: t , poster: l , autoPlay: u = "when-loaded" , muted: C = !0 , loop: E = !0 , preload: S = "none" , loadingTimeout: y = 1e4 , onLoad: h , onError: c , onPause: f , onPlay: m , aspectRatio: A = "1:1" , dataAttributes: T } = _param, i = _objectWithoutProperties(_param, [
95
119
  "src",
96
120
  "poster",
97
121
  "autoPlay",
98
122
  "muted",
99
123
  "loop",
100
124
  "preload",
125
+ "loadingTimeout",
126
+ "onLoad",
127
+ "onError",
128
+ "onPause",
129
+ "onPlay",
101
130
  "aspectRatio",
102
131
  "dataAttributes"
103
132
  ]);
104
- const l = v(), p = typeof A == "number" ? A : F[A], a = n.useRef(null);
105
- n.useEffect(()=>{
106
- const e = a.current;
107
- e && o && e.paused && e.play();
133
+ const [r, s] = o.useReducer(M, "loading"), g = o.useRef(null), b = o.useRef(), w = D(), p = typeof A == "number" ? A : W[A], R = o.useCallback(()=>{
134
+ r === "loading" && (s("fail"), c == null || c());
135
+ }, [
136
+ c,
137
+ r
138
+ ]);
139
+ o.useEffect(()=>{
140
+ var e;
141
+ if (b.current !== t) {
142
+ b.current = t;
143
+ const n = setTimeout(R, y);
144
+ return (e = g.current) == null || e.load(), ()=>{
145
+ clearTimeout(n);
146
+ };
147
+ }
108
148
  }, [
109
- o
149
+ t,
150
+ y,
151
+ R
110
152
  ]);
111
- const g = (Array.isArray(t) ? t : [
153
+ const v = ()=>{
154
+ h == null || h();
155
+ const e = g.current, n = u && !X();
156
+ s("finishLoad"), e && n && e.paused && e.play();
157
+ }, x = (Array.isArray(t) ? t : [
112
158
  t
113
159
  ]).map((e)=>typeof e == "string" ? {
114
160
  src: e
115
- } : e), d = /* @__PURE__ */ r("video", _objectSpreadProps(_objectSpread({
116
- ref: y(R, a),
161
+ } : e), a = r === "error" || r === "loading" || r === "loaded", { ref: I , width: N , height: k } = H(), B = /* @__PURE__ */ d("video", _objectSpreadProps(_objectSpread({
162
+ ref: Q(F, g),
117
163
  playsInline: !0,
118
164
  disablePictureInPicture: !0,
119
165
  disableRemotePlayback: !0,
120
- autoPlay: o,
121
- muted: c,
122
- loop: m,
123
- className: w,
124
- preload: u,
125
- poster: i || N
126
- }, S(f)), {
166
+ muted: C,
167
+ loop: E,
168
+ className: Y,
169
+ preload: S,
170
+ onLoadStart: ()=>{
171
+ s("reset");
172
+ },
173
+ onError: R,
174
+ onPause: ()=>{
175
+ f == null || f(), s("pause");
176
+ },
177
+ onPlay: ()=>{
178
+ m == null || m(), s("play");
179
+ },
180
+ onCanPlay: ()=>{
181
+ u === "streaming" && v();
182
+ },
183
+ onCanPlayThrough: ()=>{
184
+ u !== "streaming" && v();
185
+ },
186
+ poster: _
187
+ }, V(T)), {
127
188
  style: {
128
- borderRadius: l ? C.borderRadii.container : 0
189
+ borderRadius: w ? q.borderRadii.container : 0,
190
+ visibility: a ? "hidden" : "visible",
191
+ position: a || p !== 0 ? "absolute" : "static",
192
+ width: a ? N : "100%",
193
+ height: a ? k : "100%"
129
194
  },
130
- children: g.map((param, b)=>/* @__PURE__ */ {
131
- let { src: e , type: h } = param;
132
- return r("source", {
195
+ children: x.map((param, U)=>/* @__PURE__ */ {
196
+ let { src: e , type: n } = param;
197
+ return d("source", {
133
198
  src: e,
134
- type: h
135
- }, b);
199
+ type: n
200
+ }, U);
136
201
  })
137
- }));
138
- return /* @__PURE__ */ r(E, {
202
+ })), j = !!(p !== 0 || i.width && i.height), G = l ? /* @__PURE__ */ d(J, {
203
+ ref: I,
204
+ aspectRatio: A,
205
+ width: i.width,
206
+ height: i.height,
207
+ src: l
208
+ }) : j ? /* @__PURE__ */ d("div", {
209
+ style: {
210
+ position: "absolute",
211
+ width: "100%",
212
+ height: "100%"
213
+ },
214
+ children: /* @__PURE__ */ d(O, {
215
+ ref: I,
216
+ noBorderRadius: !w,
217
+ withIcon: r === "error"
218
+ })
219
+ }) : void 0;
220
+ return /* @__PURE__ */ K(P, {
221
+ style: {
222
+ position: "relative"
223
+ },
139
224
  aspectRatio: p,
140
- width: s.width,
141
- height: s.height,
142
- children: I() ? /* @__PURE__ */ r("div", {
143
- style: {
144
- width: "100%",
145
- height: "100%",
146
- backgroundImage: i ? `url("${i}")` : void 0,
147
- backgroundSize: "cover",
148
- backgroundPosition: "50% 50%"
149
- },
150
- children: d
151
- }) : d
225
+ width: i.width,
226
+ height: i.height,
227
+ children: [
228
+ B,
229
+ a && G
230
+ ]
152
231
  });
153
232
  });
154
- export { F as RATIO, O as default };
233
+ export { W as RATIO, ae as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telefonica/mistica",
3
- "version": "14.7.1",
3
+ "version": "14.9.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,7 +30,7 @@
30
30
  "storybook-for-acceptance-tests": "cross-env NODE_ENV=production yarn storybook --ci 2>&1",
31
31
  "playroom": "playroom start",
32
32
  "gen-ts-defs": "rimraf dist-ts && tsc --project tsconfig.production.json --emitDeclarationOnly && cp -r dist-ts/src/* dist && rimraf dist-ts",
33
- "vercel-build": "yarn storybook-static && ./node_modules/.bin/playroom build && FORCE_MOBILE=1 ./node_modules/.bin/playroom build && FORCE_DESKTOP=1 ./node_modules/.bin/playroom build && cp img/favicon.ico public/",
33
+ "vercel-build": "VERCEL_PROD_BUILD=1 yarn storybook-static && ./node_modules/.bin/playroom build && FORCE_MOBILE=1 ./node_modules/.bin/playroom build && FORCE_DESKTOP=1 ./node_modules/.bin/playroom build && cp img/favicon.ico public/",
34
34
  "vercel-preview-build": "yarn storybook-static && ./node_modules/.bin/playroom build && cp img/favicon.ico public/",
35
35
  "storybook-static": "rimraf public && yarn build-storybook -s ./.storybook/css/fonts -o public --quiet",
36
36
  "serve-static-storybook": "node ./scripts/serve-static-storybook.js",