@telefonica/mistica 16.64.0 → 16.65.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 (197) hide show
  1. package/css/mistica.css +1 -1
  2. package/dist/accordion.css-mistica.js +6 -6
  3. package/dist/align.css-mistica.js +1 -1
  4. package/dist/autocomplete.css-mistica.js +1 -1
  5. package/dist/avatar.css-mistica.js +1 -1
  6. package/dist/badge.css-mistica.js +1 -1
  7. package/dist/box.css-mistica.js +13 -13
  8. package/dist/boxed.css-mistica.js +24 -24
  9. package/dist/button-group.css-mistica.js +1 -1
  10. package/dist/button-layout.css-mistica.js +14 -14
  11. package/dist/button.css-mistica.js +30 -30
  12. package/dist/callout.css-mistica.js +11 -11
  13. package/dist/card-internal.css-mistica.js +15 -15
  14. package/dist/carousel.css-mistica.js +8 -8
  15. package/dist/checkbox.css-mistica.js +11 -11
  16. package/dist/chip.css-mistica.js +15 -15
  17. package/dist/circle.css-mistica.js +1 -1
  18. package/dist/community/advanced-data-card.css-mistica.js +6 -6
  19. package/dist/community/ai-card.css-mistica.js +2 -2
  20. package/dist/community/blocks.css-mistica.js +3 -3
  21. package/dist/community/cyber/example-component.css-mistica.js +1 -1
  22. package/dist/community/example-component.css-mistica.js +2 -2
  23. package/dist/counter.css-mistica.js +1 -1
  24. package/dist/cover-hero.css-mistica.js +2 -2
  25. package/dist/credit-card-number-field.css-mistica.js +3 -3
  26. package/dist/date-field.css-mistica.js +1 -1
  27. package/dist/date-time-picker.css-mistica.js +1 -1
  28. package/dist/dialog.css-mistica.js +4 -4
  29. package/dist/divider.css-mistica.js +5 -5
  30. package/dist/double-field.css-mistica.js +2 -2
  31. package/dist/drawer.css-mistica.js +1 -1
  32. package/dist/empty-state-card.css-mistica.js +1 -1
  33. package/dist/empty-state.css-mistica.js +5 -5
  34. package/dist/fade-in.css-mistica.js +1 -1
  35. package/dist/feedback.css-mistica.js +1 -1
  36. package/dist/file-upload.css-mistica.js +7 -7
  37. package/dist/fixed-footer-layout.css-mistica.js +2 -2
  38. package/dist/form.css-mistica.js +1 -1
  39. package/dist/grid-layout.css-mistica.js +3 -3
  40. package/dist/grid.css-mistica.js +120 -120
  41. package/dist/header.css-mistica.js +1 -1
  42. package/dist/hero.css-mistica.js +2 -2
  43. package/dist/horizontal-scroll.css-mistica.js +1 -1
  44. package/dist/icon-button.css-mistica.js +53 -53
  45. package/dist/icons/icon-chevron.css-mistica.js +2 -2
  46. package/dist/icons/icon-error.css-mistica.js +1 -1
  47. package/dist/image.css-mistica.js +11 -11
  48. package/dist/index.d.ts +1 -1
  49. package/dist/inline.css-mistica.js +9 -9
  50. package/dist/list.css-mistica.js +1 -1
  51. package/dist/loading-bar.css-mistica.js +1 -1
  52. package/dist/loading-screen.css-mistica.js +4 -4
  53. package/dist/logo.css-mistica.js +5 -5
  54. package/dist/menu.css-mistica.js +13 -13
  55. package/dist/mosaic.css-mistica.js +1 -1
  56. package/dist/navigation-bar.css-mistica.js +18 -18
  57. package/dist/navigation-breadcrumbs.css-mistica.js +1 -1
  58. package/dist/package-version.js +1 -1
  59. package/dist/pin-field.css-mistica.js +1 -1
  60. package/dist/popover.css-mistica.js +1 -1
  61. package/dist/progress-bar.css-mistica.js +6 -6
  62. package/dist/radio-button.css-mistica.js +19 -19
  63. package/dist/rating.css-mistica.js +2 -2
  64. package/dist/responsive-layout.css-mistica.js +6 -6
  65. package/dist/screen-reader-only.css-mistica.js +1 -1
  66. package/dist/select.css-mistica.js +15 -15
  67. package/dist/sheet-action-row.css-mistica.js +1 -1
  68. package/dist/sheet-common.css-mistica.js +1 -1
  69. package/dist/sheet-info.css-mistica.js +1 -1
  70. package/dist/skeletons.css-mistica.js +6 -6
  71. package/dist/skins/skin-contract.css-mistica.js +684 -684
  72. package/dist/skip-link.css-mistica.js +1 -1
  73. package/dist/slider.css-mistica.js +18 -18
  74. package/dist/snackbar.css-mistica.js +4 -4
  75. package/dist/spinner.css-mistica.js +1 -1
  76. package/dist/square.css-mistica.js +1 -1
  77. package/dist/stack.css-mistica.js +5 -5
  78. package/dist/stacking-group.css-mistica.js +1 -1
  79. package/dist/stepper.css-mistica.js +2 -2
  80. package/dist/switch-component.css-mistica.js +35 -35
  81. package/dist/table.css-mistica.js +9 -9
  82. package/dist/tabs.css-mistica.js +17 -17
  83. package/dist/tag.css-mistica.js +1 -1
  84. package/dist/text-field-base.css-mistica.js +15 -15
  85. package/dist/text-field-components.css-mistica.js +3 -3
  86. package/dist/text-link.css-mistica.js +6 -6
  87. package/dist/text.css-mistica.js +6 -6
  88. package/dist/theme-context.css-mistica.js +1 -1
  89. package/dist/timeline.css-mistica.js +9 -9
  90. package/dist/timer.css-mistica.js +6 -6
  91. package/dist/tooltip.css-mistica.js +1 -1
  92. package/dist/touchable.css-mistica.js +1 -1
  93. package/dist/utils/aspect-ratio-support.css-mistica.js +2 -2
  94. package/dist/video.css-mistica.js +1 -1
  95. package/dist/video.d.ts +16 -0
  96. package/dist/video.js +93 -75
  97. package/dist/vivinho-loading-animation/vivinho-loading-animation.css-mistica.js +1 -1
  98. package/dist-es/accordion.css-mistica.js +6 -6
  99. package/dist-es/align.css-mistica.js +1 -1
  100. package/dist-es/autocomplete.css-mistica.js +1 -1
  101. package/dist-es/avatar.css-mistica.js +1 -1
  102. package/dist-es/badge.css-mistica.js +1 -1
  103. package/dist-es/box.css-mistica.js +13 -13
  104. package/dist-es/boxed.css-mistica.js +23 -23
  105. package/dist-es/button-group.css-mistica.js +1 -1
  106. package/dist-es/button-layout.css-mistica.js +14 -14
  107. package/dist-es/button.css-mistica.js +30 -30
  108. package/dist-es/callout.css-mistica.js +11 -11
  109. package/dist-es/card-internal.css-mistica.js +15 -15
  110. package/dist-es/carousel.css-mistica.js +8 -8
  111. package/dist-es/checkbox.css-mistica.js +11 -11
  112. package/dist-es/chip.css-mistica.js +15 -15
  113. package/dist-es/circle.css-mistica.js +1 -1
  114. package/dist-es/community/advanced-data-card.css-mistica.js +6 -6
  115. package/dist-es/community/ai-card.css-mistica.js +2 -2
  116. package/dist-es/community/blocks.css-mistica.js +2 -2
  117. package/dist-es/community/cyber/example-component.css-mistica.js +1 -1
  118. package/dist-es/community/example-component.css-mistica.js +2 -2
  119. package/dist-es/counter.css-mistica.js +1 -1
  120. package/dist-es/cover-hero.css-mistica.js +2 -2
  121. package/dist-es/credit-card-number-field.css-mistica.js +3 -3
  122. package/dist-es/date-field.css-mistica.js +1 -1
  123. package/dist-es/date-time-picker.css-mistica.js +1 -1
  124. package/dist-es/dialog.css-mistica.js +4 -4
  125. package/dist-es/divider.css-mistica.js +5 -5
  126. package/dist-es/double-field.css-mistica.js +2 -2
  127. package/dist-es/drawer.css-mistica.js +1 -1
  128. package/dist-es/empty-state-card.css-mistica.js +1 -1
  129. package/dist-es/empty-state.css-mistica.js +5 -5
  130. package/dist-es/fade-in.css-mistica.js +1 -1
  131. package/dist-es/feedback.css-mistica.js +1 -1
  132. package/dist-es/file-upload.css-mistica.js +7 -7
  133. package/dist-es/fixed-footer-layout.css-mistica.js +2 -2
  134. package/dist-es/form.css-mistica.js +1 -1
  135. package/dist-es/grid-layout.css-mistica.js +3 -3
  136. package/dist-es/grid.css-mistica.js +120 -120
  137. package/dist-es/header.css-mistica.js +1 -1
  138. package/dist-es/hero.css-mistica.js +2 -2
  139. package/dist-es/horizontal-scroll.css-mistica.js +1 -1
  140. package/dist-es/icon-button.css-mistica.js +53 -53
  141. package/dist-es/icons/icon-chevron.css-mistica.js +2 -2
  142. package/dist-es/icons/icon-error.css-mistica.js +1 -1
  143. package/dist-es/image.css-mistica.js +4 -4
  144. package/dist-es/inline.css-mistica.js +9 -9
  145. package/dist-es/list.css-mistica.js +1 -1
  146. package/dist-es/loading-bar.css-mistica.js +1 -1
  147. package/dist-es/loading-screen.css-mistica.js +4 -4
  148. package/dist-es/logo.css-mistica.js +5 -5
  149. package/dist-es/menu.css-mistica.js +13 -13
  150. package/dist-es/mosaic.css-mistica.js +1 -1
  151. package/dist-es/navigation-bar.css-mistica.js +18 -18
  152. package/dist-es/navigation-breadcrumbs.css-mistica.js +1 -1
  153. package/dist-es/package-version.js +1 -1
  154. package/dist-es/pin-field.css-mistica.js +1 -1
  155. package/dist-es/popover.css-mistica.js +1 -1
  156. package/dist-es/progress-bar.css-mistica.js +6 -6
  157. package/dist-es/radio-button.css-mistica.js +19 -19
  158. package/dist-es/rating.css-mistica.js +2 -2
  159. package/dist-es/responsive-layout.css-mistica.js +6 -6
  160. package/dist-es/screen-reader-only.css-mistica.js +1 -1
  161. package/dist-es/select.css-mistica.js +15 -15
  162. package/dist-es/sheet-action-row.css-mistica.js +1 -1
  163. package/dist-es/sheet-common.css-mistica.js +1 -1
  164. package/dist-es/sheet-info.css-mistica.js +1 -1
  165. package/dist-es/skeletons.css-mistica.js +6 -6
  166. package/dist-es/skins/skin-contract.css-mistica.js +684 -684
  167. package/dist-es/skip-link.css-mistica.js +1 -1
  168. package/dist-es/slider.css-mistica.js +18 -18
  169. package/dist-es/snackbar.css-mistica.js +4 -4
  170. package/dist-es/spinner.css-mistica.js +1 -1
  171. package/dist-es/square.css-mistica.js +1 -1
  172. package/dist-es/stack.css-mistica.js +5 -5
  173. package/dist-es/stacking-group.css-mistica.js +1 -1
  174. package/dist-es/stepper.css-mistica.js +2 -2
  175. package/dist-es/style.css +1 -1
  176. package/dist-es/switch-component.css-mistica.js +35 -35
  177. package/dist-es/table.css-mistica.js +9 -9
  178. package/dist-es/tabs.css-mistica.js +17 -17
  179. package/dist-es/tag.css-mistica.js +1 -1
  180. package/dist-es/text-field-base.css-mistica.js +15 -15
  181. package/dist-es/text-field-components.css-mistica.js +3 -3
  182. package/dist-es/text-link.css-mistica.js +6 -6
  183. package/dist-es/text.css-mistica.js +6 -6
  184. package/dist-es/theme-context.css-mistica.js +1 -1
  185. package/dist-es/timeline.css-mistica.js +9 -9
  186. package/dist-es/timer.css-mistica.js +6 -6
  187. package/dist-es/tooltip.css-mistica.js +1 -1
  188. package/dist-es/touchable.css-mistica.js +1 -1
  189. package/dist-es/utils/aspect-ratio-support.css-mistica.js +2 -2
  190. package/dist-es/video.css-mistica.js +1 -1
  191. package/dist-es/video.js +106 -88
  192. package/dist-es/vivinho-loading-animation/vivinho-loading-animation.css-mistica.js +1 -1
  193. package/package.json +1 -1
  194. package/src/index.tsx +1 -1
  195. package/src/navigation-bar.css.ts +1 -1
  196. package/src/package-version.tsx +1 -1
  197. package/src/video.tsx +36 -0
package/dist-es/video.js CHANGED
@@ -26,16 +26,16 @@ function _object_without_properties_loose(source, excluded) {
26
26
  }
27
27
  return target;
28
28
  }
29
- import { jsx as a, jsxs as j } from "react/jsx-runtime";
29
+ import { jsxs as P, jsx as l } from "react/jsx-runtime";
30
30
  import * as s from "react";
31
- import { ImageContent as B, ImageError as G } from "./image.js";
32
- import { AspectRatioContainer as V } from "./utils/aspect-ratio-support.js";
33
- import { isRunningAcceptanceTest as J } from "./utils/platform.js";
34
- import { video as O } from "./video.css-mistica.js";
35
- import { defaultBorderRadius as E } from "./image.css-mistica.js";
36
- import { getPrefixedDataAttributes as Q } from "./utils/dom.js";
37
- import X from "classnames";
38
- const Y = {
31
+ import { ImageContent as q, ImageError as J } from "./image.js";
32
+ import { AspectRatioContainer as M } from "./utils/aspect-ratio-support.js";
33
+ import { isRunningAcceptanceTest as Q } from "./utils/platform.js";
34
+ import { video as X } from "./video.css-mistica.js";
35
+ import { defaultBorderRadius as S } from "./image.css-mistica.js";
36
+ import { getPrefixedDataAttributes as Y } from "./utils/dom.js";
37
+ import D from "classnames";
38
+ const K = {
39
39
  loading: {
40
40
  play: "playing",
41
41
  pause: "paused",
@@ -68,14 +68,15 @@ const Y = {
68
68
  play: "playing",
69
69
  reset: "loading"
70
70
  }
71
- }, q = (r, l)=>Y[r][l] || r, D = {
71
+ }, _ = (i, u)=>K[i][u] || i, $ = {
72
72
  "1:1": 1,
73
73
  "16:9": 16 / 9,
74
74
  "4:3": 4 / 3
75
- }, K = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAAtJREFUGFdjYAACAAAFAAGq1chRAAAAAElFTkSuQmCC", te = /*#__PURE__*/ s.forwardRef((_param, c)=>{
76
- var { src: r, poster: l, autoPlay: p = "when-loaded", muted: C = !0, loop: I = !0, preload: P = "none", loadingTimeout: y = 1e4, onLoad: F, onError: w, onPause: S, onPlay: N, aspectRatio: u = 0, dataAttributes: k } = _param, o = _object_without_properties(_param, [
75
+ }, z = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAAtJREFUGFdjYAACAAAFAAGq1chRAAAAAElFTkSuQmCC", ne = /*#__PURE__*/ s.forwardRef((_param, h)=>{
76
+ var { src: i, poster: u, tracks: v, autoPlay: g = "when-loaded", muted: F = !0, loop: N = !0, preload: x = "none", loadingTimeout: R = 1e4, onLoad: L, onError: b, onPause: U, onPlay: j, aspectRatio: c = 0, dataAttributes: B } = _param, o = _object_without_properties(_param, [
77
77
  "src",
78
78
  "poster",
79
+ "tracks",
79
80
  "autoPlay",
80
81
  "muted",
81
82
  "loop",
@@ -88,146 +89,163 @@ const Y = {
88
89
  "aspectRatio",
89
90
  "dataAttributes"
90
91
  ]);
91
- const [d, n] = s.useReducer(q, "loading"), t = s.useRef(null), v = s.useRef(null), h = s.useRef(null), A = o.width && o.height ? void 0 : typeof u == "number" ? u : D[u], m = s.useCallback(()=>{
92
- d === "loading" && (n("fail"), w === null || w === void 0 ? void 0 : w());
92
+ const [d, n] = s.useReducer(_, "loading"), r = s.useRef(null), E = s.useRef(null), f = s.useRef(null), A = o.width && o.height ? void 0 : typeof c == "number" ? c : $[c], y = s.useCallback(()=>{
93
+ d === "loading" && (n("fail"), b === null || b === void 0 ? void 0 : b());
93
94
  }, [
94
- w,
95
+ b,
95
96
  d
96
97
  ]);
97
98
  s.useEffect(()=>{
98
- if (v.current !== r) {
99
- var _t_current;
99
+ if (E.current !== i) {
100
+ var _r_current;
100
101
  let e;
101
- return v.current = r, n("reset"), r ? (e = setTimeout(m, y), (_t_current = t.current) === null || _t_current === void 0 ? void 0 : _t_current.load()) : n("fail"), ()=>{
102
+ return E.current = i, n("reset"), i ? (e = setTimeout(y, R), (_r_current = r.current) === null || _r_current === void 0 ? void 0 : _r_current.load()) : n("fail"), ()=>{
102
103
  clearTimeout(e);
103
104
  };
104
105
  }
105
106
  }, [
106
- r,
107
- y,
108
- m
107
+ i,
108
+ R,
109
+ y
109
110
  ]);
110
- const R = ()=>{
111
- if (F === null || F === void 0 ? void 0 : F(), d === "stopped") return;
112
- const e = t.current, i = p && !J();
113
- n("finishLoad"), e && i && e.paused && e.play();
114
- }, x = (Array.isArray(r) ? r : [
115
- r
111
+ const T = ()=>{
112
+ if (L === null || L === void 0 ? void 0 : L(), d === "stopped") return;
113
+ const e = r.current, t = g && !Q();
114
+ n("finishLoad"), e && t && e.paused && e.play();
115
+ }, G = (Array.isArray(i) ? i : [
116
+ i
116
117
  ]).map((e)=>typeof e == "string" ? {
117
118
  src: e
118
- } : e), f = [
119
+ } : e), m = [
119
120
  "error",
120
121
  "loading",
121
122
  "loaded",
122
123
  "stopped"
123
- ].includes(d), L = /* @__PURE__ */ a("video", {
124
- ref: t,
124
+ ].includes(d), O = /* @__PURE__ */ P("video", {
125
+ ref: r,
125
126
  playsInline: !0,
126
127
  disablePictureInPicture: !0,
127
128
  disableRemotePlayback: !0,
128
- muted: C,
129
- loop: I,
130
- className: X(O, E),
131
- preload: P,
132
- onError: m,
129
+ muted: F,
130
+ loop: N,
131
+ crossOrigin: (v === null || v === void 0 ? void 0 : v.length) ? "anonymous" : void 0,
132
+ className: D(X, S),
133
+ preload: x,
134
+ onError: y,
133
135
  onPause: ()=>{
134
- S === null || S === void 0 ? void 0 : S(), n("pause");
136
+ U === null || U === void 0 ? void 0 : U(), n("pause");
135
137
  },
136
138
  onTimeUpdate: ()=>{
137
- var _t_current;
138
- d !== "playing" && ((_t_current = t.current) === null || _t_current === void 0 ? void 0 : _t_current.currentTime) !== 0 && (N === null || N === void 0 ? void 0 : N(), n("play"));
139
+ var _r_current;
140
+ d !== "playing" && ((_r_current = r.current) === null || _r_current === void 0 ? void 0 : _r_current.currentTime) !== 0 && (j === null || j === void 0 ? void 0 : j(), n("play"));
139
141
  },
140
142
  onCanPlay: ()=>{
141
- p === "streaming" && R();
143
+ g === "streaming" && T();
142
144
  },
143
145
  onCanPlayThrough: ()=>{
144
- p !== "streaming" && R();
146
+ g !== "streaming" && T();
145
147
  },
146
- poster: K,
148
+ poster: z,
147
149
  style: {
148
- visibility: f ? "hidden" : "visible",
149
- position: f || A !== 0 ? "absolute" : "static",
150
+ visibility: m ? "hidden" : "visible",
151
+ position: m || A !== 0 ? "absolute" : "static",
150
152
  width: "100%",
151
153
  height: "100%"
152
154
  },
153
- children: x.map((param, g)=>{
154
- let { src: e, type: i } = param;
155
- return /* @__PURE__ */ a("source", {
156
- src: e,
157
- type: i
158
- }, g);
159
- })
160
- }), b = !!(A !== 0 || o.width && o.height), T = d === "error", U = s.useMemo(()=>l ? /* @__PURE__ */ a(B, {
161
- aspectRatio: u,
155
+ children: [
156
+ G.map((param, a)=>{
157
+ let { src: e, type: t } = param;
158
+ return /* @__PURE__ */ l("source", {
159
+ src: e,
160
+ type: t
161
+ }, a);
162
+ }),
163
+ v === null || v === void 0 ? void 0 : v.map((param, p)=>{
164
+ let { src: e, kind: t, srcLang: a, label: w, default: I } = param;
165
+ return /* @__PURE__ */ l("track", {
166
+ src: e,
167
+ kind: t,
168
+ srcLang: a,
169
+ label: w,
170
+ default: I
171
+ }, p);
172
+ })
173
+ ]
174
+ }), k = !!(A !== 0 || o.width && o.height), C = d === "error", V = s.useMemo(()=>u ? /* @__PURE__ */ l(q, {
175
+ aspectRatio: c,
162
176
  width: o.width,
163
177
  height: o.height,
164
- src: l
165
- }) : b ? /* @__PURE__ */ a("div", {
178
+ src: u
179
+ }) : k ? /* @__PURE__ */ l("div", {
166
180
  style: {
167
181
  position: "absolute",
168
182
  width: "100%",
169
183
  height: "100%"
170
184
  },
171
- children: /* @__PURE__ */ a(G, {
172
- className: E,
173
- withIcon: T
185
+ children: /* @__PURE__ */ l(J, {
186
+ className: S,
187
+ withIcon: C
174
188
  })
175
189
  }) : void 0, [
176
- u,
190
+ c,
177
191
  o.height,
178
192
  o.width,
179
- T,
180
- l,
181
- b
193
+ C,
194
+ u,
195
+ k
182
196
  ]);
183
- return /* @__PURE__ */ j(V, {
197
+ return /* @__PURE__ */ P(M, {
184
198
  style: {
185
199
  position: "relative"
186
200
  },
187
201
  aspectRatio: A,
188
202
  width: o.width,
189
203
  height: o.height,
190
- dataAttributes: Q(k, "Video"),
204
+ dataAttributes: Y(B, "Video"),
191
205
  children: [
192
- /* @__PURE__ */ a("div", {
206
+ /* @__PURE__ */ l("div", {
193
207
  style: {
194
208
  position: "absolute",
195
209
  width: "100%",
196
210
  height: "100%"
197
211
  },
198
212
  ref: (e)=>{
199
- const i = e || null;
200
- i && (i.play = ()=>{
201
- var _t_current;
202
- return ((_t_current = t.current) === null || _t_current === void 0 ? void 0 : _t_current.play()) || Promise.resolve();
203
- }, i.pause = ()=>{
204
- var _t_current;
205
- return (_t_current = t.current) === null || _t_current === void 0 ? void 0 : _t_current.pause();
206
- }, i.load = ()=>{
207
- var _h_current;
208
- ((_h_current = h.current) === null || _h_current === void 0 ? void 0 : _h_current.style) && (h.current.style.width = "100%", h.current.style.height = "100%"), setTimeout(()=>{
209
- var _t_current;
210
- n("reset"), (_t_current = t.current) === null || _t_current === void 0 ? void 0 : _t_current.load();
213
+ const t = e || null;
214
+ t && (t.play = ()=>{
215
+ var _r_current;
216
+ return ((_r_current = r.current) === null || _r_current === void 0 ? void 0 : _r_current.play()) || Promise.resolve();
217
+ }, t.pause = ()=>{
218
+ var _r_current;
219
+ return (_r_current = r.current) === null || _r_current === void 0 ? void 0 : _r_current.pause();
220
+ }, t.load = ()=>{
221
+ var _f_current;
222
+ ((_f_current = f.current) === null || _f_current === void 0 ? void 0 : _f_current.style) && (f.current.style.width = "100%", f.current.style.height = "100%"), setTimeout(()=>{
223
+ var _r_current;
224
+ n("reset"), (_r_current = r.current) === null || _r_current === void 0 ? void 0 : _r_current.load();
211
225
  }, 100);
212
- }, i.setCurrentTime = (g)=>{
213
- t.current && (t.current.currentTime = g);
214
- }, i.stop = ()=>{
215
- t.current && (t.current.pause(), t.current.currentTime = 0, n("stop"));
216
- }), typeof c == "function" ? c(i) : c && (c.current = i);
226
+ }, t.setCurrentTime = (a)=>{
227
+ r.current && (r.current.currentTime = a);
228
+ }, t.stop = ()=>{
229
+ r.current && (r.current.pause(), r.current.currentTime = 0, n("stop"));
230
+ }, t.setTrackMode = (a, w)=>{
231
+ var _r_current_querySelectorAll, _r_current;
232
+ const p = (_r_current = r.current) === null || _r_current === void 0 ? void 0 : (_r_current_querySelectorAll = _r_current.querySelectorAll("track")) === null || _r_current_querySelectorAll === void 0 ? void 0 : _r_current_querySelectorAll[a];
233
+ (p === null || p === void 0 ? void 0 : p.track) && (p.track.mode = w);
234
+ }), typeof h == "function" ? h(t) : h && (h.current = t);
217
235
  }
218
236
  }),
219
- L,
220
- /* @__PURE__ */ a("div", {
221
- ref: h,
237
+ O,
238
+ /* @__PURE__ */ l("div", {
239
+ ref: f,
222
240
  style: {
223
241
  position: A !== 0 ? "absolute" : "static",
224
- width: f ? "100%" : 0,
225
- height: f ? "100%" : 0,
242
+ width: m ? "100%" : 0,
243
+ height: m ? "100%" : 0,
226
244
  overflow: "hidden"
227
245
  },
228
- children: U
246
+ children: V
229
247
  })
230
248
  ]
231
249
  });
232
250
  });
233
- export { D as RATIO, te as default };
251
+ export { $ as RATIO, ne as default };
@@ -1,2 +1,2 @@
1
- /* empty css */ var a = "v16_64_1ezqdj90", r = "v16_64_1ezqdj91";
1
+ /* empty css */ var a = "v16_65_1ezqdj90", r = "v16_65_1ezqdj91";
2
2
  export { a as container, r as waveFadeOut };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telefonica/mistica",
3
- "version": "16.64.0",
3
+ "version": "16.65.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
package/src/index.tsx CHANGED
@@ -127,7 +127,7 @@ export {
127
127
  export {default as Image} from './image';
128
128
  export {default as Chip} from './chip';
129
129
  export {default as Video} from './video';
130
- export type {VideoElement} from './video';
130
+ export type {VideoElement, VideoTrack} from './video';
131
131
  export {
132
132
  Carousel,
133
133
  CenteredCarousel,
@@ -312,7 +312,7 @@ export const navigationBarContentRightExpanded = style([
312
312
  flex: 1,
313
313
  }),
314
314
  {
315
- paddingLeft: 136,
315
+ paddingLeft: 56,
316
316
  },
317
317
  ]);
318
318
 
@@ -1,2 +1,2 @@
1
1
  // DO NOT EDIT THIS FILE. It's autogenerated by set-version.js
2
- export const PACKAGE_VERSION = '16.64.0' as string;
2
+ export const PACKAGE_VERSION = '16.65.0' as string;
package/src/video.tsx CHANGED
@@ -72,6 +72,15 @@ type VideoSourceWithType = {
72
72
  type?: string; // video/webm, video/mp4...
73
73
  };
74
74
 
75
+ export type VideoTrack = {
76
+ src: string;
77
+ kind: 'subtitles' | 'captions';
78
+ /** https://developer.mozilla.org/en-US/docs/Glossary/BCP_47_language_tag */
79
+ srcLang: string;
80
+ label?: string;
81
+ default?: boolean;
82
+ };
83
+
75
84
  export type VideoSource =
76
85
  | string
77
86
  | ReadonlyArray<string>
@@ -103,6 +112,8 @@ export type VideoProps = {
103
112
  onPause?: () => void;
104
113
  onLoad?: () => void;
105
114
  poster?: string;
115
+ /** text track elements for subtitles and captions */
116
+ tracks?: ReadonlyArray<VideoTrack>;
106
117
  children?: void;
107
118
  /** defaults to none */
108
119
  preload?: 'none' | 'metadata' | 'auto';
@@ -116,6 +127,12 @@ export interface VideoElement extends HTMLDivElement {
116
127
  /** Stops the video and shows the poster image (if available) */
117
128
  stop: () => void;
118
129
  setCurrentTime: (time: number) => void;
130
+ /**
131
+ * Sets the display mode of a track by its index.
132
+ * - 'showing': track is visible
133
+ * - 'disabled': track is inactive
134
+ */
135
+ setTrackMode: (index: number, mode: 'showing' | 'disabled') => void;
119
136
  }
120
137
 
121
138
  const Video = React.forwardRef<VideoElement, VideoProps>(
@@ -123,6 +140,7 @@ const Video = React.forwardRef<VideoElement, VideoProps>(
123
140
  {
124
141
  src,
125
142
  poster,
143
+ tracks,
126
144
  autoPlay = 'when-loaded',
127
145
  muted = true,
128
146
  loop = true,
@@ -210,6 +228,7 @@ const Video = React.forwardRef<VideoElement, VideoProps>(
210
228
  disableRemotePlayback
211
229
  muted={muted}
212
230
  loop={loop}
231
+ crossOrigin={tracks?.length ? 'anonymous' : undefined}
213
232
  className={classNames(styles.video, mediaStyles.defaultBorderRadius)}
214
233
  preload={preload}
215
234
  onError={handleError}
@@ -242,6 +261,16 @@ const Video = React.forwardRef<VideoElement, VideoProps>(
242
261
  {sources.map(({src, type}, index) => (
243
262
  <source key={index} src={src} type={type} />
244
263
  ))}
264
+ {tracks?.map(({src, kind, srcLang, label, default: isDefault}, index) => (
265
+ <track
266
+ key={index}
267
+ src={src}
268
+ kind={kind}
269
+ srcLang={srcLang}
270
+ label={label}
271
+ default={isDefault}
272
+ />
273
+ ))}
245
274
  </video>
246
275
  );
247
276
 
@@ -326,6 +355,13 @@ const Video = React.forwardRef<VideoElement, VideoProps>(
326
355
  dispatch('stop');
327
356
  }
328
357
  };
358
+ containerElement.setTrackMode = (index: number, mode: 'showing' | 'disabled') => {
359
+ const trackElements = videoRef.current?.querySelectorAll('track');
360
+ const trackElement = trackElements?.[index] as HTMLTrackElement | undefined;
361
+ if (trackElement?.track) {
362
+ trackElement.track.mode = mode;
363
+ }
364
+ };
329
365
  }
330
366
 
331
367
  if (typeof ref === 'function') {