@telefonica/mistica 16.64.0-beta.1 → 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 (221) hide show
  1. package/css/mistica.css +1 -1
  2. package/dist/accordion.css-mistica.js +16 -16
  3. package/dist/align.css-mistica.js +2 -2
  4. package/dist/autocomplete.css-mistica.js +6 -6
  5. package/dist/avatar.css-mistica.js +3 -3
  6. package/dist/badge.css-mistica.js +7 -7
  7. package/dist/box.css-mistica.js +15 -15
  8. package/dist/boxed.css-mistica.js +31 -31
  9. package/dist/button-group.css-mistica.js +10 -10
  10. package/dist/button-layout.css-mistica.js +21 -21
  11. package/dist/button.css-mistica.js +51 -51
  12. package/dist/callout.css-mistica.js +16 -16
  13. package/dist/card-internal.css-mistica.js +38 -38
  14. package/dist/carousel.css-mistica.js +18 -18
  15. package/dist/checkbox.css-mistica.js +21 -21
  16. package/dist/chip.css-mistica.js +30 -30
  17. package/dist/circle.css-mistica.js +2 -2
  18. package/dist/community/advanced-data-card.css-mistica.js +26 -26
  19. package/dist/community/ai-card.css-mistica.js +14 -14
  20. package/dist/community/blocks.css-mistica.js +3 -3
  21. package/dist/community/cyber/example-component.css-mistica.js +11 -0
  22. package/dist/community/cyber/example-component.css.d.ts +1 -0
  23. package/dist/community/cyber/example-component.d.ts +6 -0
  24. package/dist/community/cyber/example-component.js +25 -0
  25. package/dist/community/cyber/index.d.ts +1 -0
  26. package/dist/community/example-component.css-mistica.js +2 -2
  27. package/dist/community/index.d.ts +2 -0
  28. package/dist/community/index.js +11 -0
  29. package/dist/community/skins/cyber-skin.d.ts +44 -0
  30. package/dist/community/skins/cyber-skin.js +633 -0
  31. package/dist/counter.css-mistica.js +12 -12
  32. package/dist/cover-hero.css-mistica.js +16 -16
  33. package/dist/credit-card-number-field.css-mistica.js +6 -6
  34. package/dist/date-field.css-mistica.js +1 -1
  35. package/dist/date-time-picker.css-mistica.js +2 -2
  36. package/dist/dialog.css-mistica.js +15 -15
  37. package/dist/divider.css-mistica.js +5 -5
  38. package/dist/double-field.css-mistica.js +4 -4
  39. package/dist/drawer.css-mistica.js +15 -15
  40. package/dist/empty-state-card.css-mistica.js +4 -4
  41. package/dist/empty-state.css-mistica.js +14 -14
  42. package/dist/fade-in.css-mistica.js +1 -1
  43. package/dist/feedback.css-mistica.js +14 -14
  44. package/dist/file-upload.css-mistica.js +14 -14
  45. package/dist/fixed-footer-layout.css-mistica.js +12 -12
  46. package/dist/form.css-mistica.js +2 -2
  47. package/dist/grid-layout.css-mistica.js +9 -9
  48. package/dist/grid.css-mistica.js +147 -147
  49. package/dist/header.css-mistica.js +5 -5
  50. package/dist/hero.css-mistica.js +11 -11
  51. package/dist/horizontal-scroll.css-mistica.js +3 -3
  52. package/dist/icon-button.css-mistica.js +66 -66
  53. package/dist/icons/icon-chevron.css-mistica.js +6 -6
  54. package/dist/icons/icon-error.css-mistica.js +3 -3
  55. package/dist/image.css-mistica.js +9 -9
  56. package/dist/index.d.ts +1 -1
  57. package/dist/inline.css-mistica.js +18 -18
  58. package/dist/list.css-mistica.js +15 -15
  59. package/dist/loading-bar.css-mistica.js +5 -5
  60. package/dist/loading-screen.css-mistica.js +15 -15
  61. package/dist/logo.css-mistica.js +9 -9
  62. package/dist/media-queries.css-mistica.js +13 -13
  63. package/dist/menu.css-mistica.js +25 -25
  64. package/dist/mosaic.css-mistica.js +3 -3
  65. package/dist/navigation-bar.css-mistica.js +45 -45
  66. package/dist/navigation-breadcrumbs.css-mistica.js +5 -5
  67. package/dist/package-version.js +2 -2
  68. package/dist/pin-field.css-mistica.js +10 -10
  69. package/dist/popover.css-mistica.js +2 -2
  70. package/dist/progress-bar.css-mistica.js +12 -12
  71. package/dist/radio-button.css-mistica.js +33 -33
  72. package/dist/rating.css-mistica.js +12 -12
  73. package/dist/responsive-layout.css-mistica.js +20 -20
  74. package/dist/screen-reader-only.css-mistica.js +2 -2
  75. package/dist/select.css-mistica.js +29 -29
  76. package/dist/sheet-action-row.css-mistica.js +2 -2
  77. package/dist/sheet-common.css-mistica.js +16 -16
  78. package/dist/sheet-info.css-mistica.js +4 -4
  79. package/dist/skeletons.css-mistica.js +12 -12
  80. package/dist/skins/skin-contract.css-mistica.js +686 -686
  81. package/dist/skip-link.css-mistica.js +3 -3
  82. package/dist/slider.css-mistica.js +28 -28
  83. package/dist/snackbar.css-mistica.js +16 -16
  84. package/dist/spinner.css-mistica.js +5 -5
  85. package/dist/square.css-mistica.js +2 -2
  86. package/dist/stack.css-mistica.js +9 -9
  87. package/dist/stacking-group.css-mistica.js +2 -2
  88. package/dist/stepper.css-mistica.js +16 -16
  89. package/dist/switch-component.css-mistica.js +53 -53
  90. package/dist/table.css-mistica.js +24 -24
  91. package/dist/tabs.css-mistica.js +30 -30
  92. package/dist/tag.css-mistica.js +5 -5
  93. package/dist/text-field-base.css-mistica.js +30 -30
  94. package/dist/text-field-components.css-mistica.js +19 -19
  95. package/dist/text-link.css-mistica.js +10 -10
  96. package/dist/text.css-mistica.js +13 -13
  97. package/dist/theme-context.css-mistica.js +2 -2
  98. package/dist/timeline.css-mistica.js +18 -18
  99. package/dist/timer.css-mistica.js +13 -13
  100. package/dist/tooltip.css-mistica.js +12 -12
  101. package/dist/touchable.css-mistica.js +5 -5
  102. package/dist/utils/aspect-ratio-support.css-mistica.js +7 -7
  103. package/dist/video.css-mistica.js +2 -2
  104. package/dist/video.d.ts +16 -0
  105. package/dist/video.js +93 -75
  106. package/dist/vivinho-loading-animation/vivinho-loading-animation.css-mistica.js +3 -3
  107. package/dist-es/accordion.css-mistica.js +7 -7
  108. package/dist-es/align.css-mistica.js +2 -2
  109. package/dist-es/autocomplete.css-mistica.js +2 -2
  110. package/dist-es/avatar.css-mistica.js +2 -2
  111. package/dist-es/badge.css-mistica.js +2 -2
  112. package/dist-es/box.css-mistica.js +15 -15
  113. package/dist-es/boxed.css-mistica.js +25 -25
  114. package/dist-es/button-group.css-mistica.js +2 -2
  115. package/dist-es/button-layout.css-mistica.js +16 -16
  116. package/dist-es/button.css-mistica.js +38 -38
  117. package/dist-es/callout.css-mistica.js +12 -12
  118. package/dist-es/card-internal.css-mistica.js +20 -20
  119. package/dist-es/carousel.css-mistica.js +10 -10
  120. package/dist-es/checkbox.css-mistica.js +14 -14
  121. package/dist-es/chip.css-mistica.js +17 -17
  122. package/dist-es/circle.css-mistica.js +2 -2
  123. package/dist-es/community/advanced-data-card.css-mistica.js +7 -7
  124. package/dist-es/community/ai-card.css-mistica.js +4 -4
  125. package/dist-es/community/blocks.css-mistica.js +2 -2
  126. package/dist-es/community/cyber/example-component.css-mistica.js +2 -0
  127. package/dist-es/community/cyber/example-component.js +11 -0
  128. package/dist-es/community/example-component.css-mistica.js +2 -2
  129. package/dist-es/community/index.js +6 -4
  130. package/dist-es/community/skins/cyber-skin.js +613 -0
  131. package/dist-es/counter.css-mistica.js +2 -2
  132. package/dist-es/cover-hero.css-mistica.js +4 -4
  133. package/dist-es/credit-card-number-field.css-mistica.js +4 -4
  134. package/dist-es/date-field.css-mistica.js +1 -1
  135. package/dist-es/date-time-picker.css-mistica.js +2 -2
  136. package/dist-es/dialog.css-mistica.js +5 -5
  137. package/dist-es/divider.css-mistica.js +5 -5
  138. package/dist-es/double-field.css-mistica.js +4 -4
  139. package/dist-es/drawer.css-mistica.js +2 -2
  140. package/dist-es/empty-state-card.css-mistica.js +2 -2
  141. package/dist-es/empty-state.css-mistica.js +7 -7
  142. package/dist-es/fade-in.css-mistica.js +1 -1
  143. package/dist-es/feedback.css-mistica.js +2 -2
  144. package/dist-es/file-upload.css-mistica.js +8 -8
  145. package/dist-es/fixed-footer-layout.css-mistica.js +4 -4
  146. package/dist-es/form.css-mistica.js +2 -2
  147. package/dist-es/grid-layout.css-mistica.js +4 -4
  148. package/dist-es/grid.css-mistica.js +127 -127
  149. package/dist-es/header.css-mistica.js +2 -2
  150. package/dist-es/hero.css-mistica.js +4 -4
  151. package/dist-es/horizontal-scroll.css-mistica.js +2 -2
  152. package/dist-es/icon-button.css-mistica.js +56 -56
  153. package/dist-es/icons/icon-chevron.css-mistica.js +4 -4
  154. package/dist-es/icons/icon-error.css-mistica.js +2 -2
  155. package/dist-es/image.css-mistica.js +4 -4
  156. package/dist-es/inline.css-mistica.js +10 -10
  157. package/dist-es/list.css-mistica.js +2 -2
  158. package/dist-es/loading-bar.css-mistica.js +2 -2
  159. package/dist-es/loading-screen.css-mistica.js +5 -5
  160. package/dist-es/logo.css-mistica.js +7 -7
  161. package/dist-es/media-queries.css-mistica.js +3 -3
  162. package/dist-es/menu.css-mistica.js +15 -15
  163. package/dist-es/mosaic.css-mistica.js +2 -2
  164. package/dist-es/navigation-bar.css-mistica.js +20 -20
  165. package/dist-es/navigation-breadcrumbs.css-mistica.js +2 -2
  166. package/dist-es/package-version.js +2 -2
  167. package/dist-es/pin-field.css-mistica.js +2 -2
  168. package/dist-es/popover.css-mistica.js +2 -2
  169. package/dist-es/progress-bar.css-mistica.js +8 -8
  170. package/dist-es/radio-button.css-mistica.js +25 -25
  171. package/dist-es/rating.css-mistica.js +4 -4
  172. package/dist-es/responsive-layout.css-mistica.js +7 -7
  173. package/dist-es/screen-reader-only.css-mistica.js +2 -2
  174. package/dist-es/select.css-mistica.js +20 -20
  175. package/dist-es/sheet-action-row.css-mistica.js +2 -2
  176. package/dist-es/sheet-common.css-mistica.js +2 -2
  177. package/dist-es/sheet-info.css-mistica.js +2 -2
  178. package/dist-es/skeletons.css-mistica.js +8 -8
  179. package/dist-es/skins/skin-contract.css-mistica.js +686 -686
  180. package/dist-es/skip-link.css-mistica.js +2 -2
  181. package/dist-es/slider.css-mistica.js +20 -20
  182. package/dist-es/snackbar.css-mistica.js +5 -5
  183. package/dist-es/spinner.css-mistica.js +2 -2
  184. package/dist-es/square.css-mistica.js +2 -2
  185. package/dist-es/stack.css-mistica.js +7 -7
  186. package/dist-es/stacking-group.css-mistica.js +2 -2
  187. package/dist-es/stepper.css-mistica.js +4 -4
  188. package/dist-es/style.css +1 -1
  189. package/dist-es/switch-component.css-mistica.js +41 -41
  190. package/dist-es/table.css-mistica.js +11 -11
  191. package/dist-es/tabs.css-mistica.js +21 -21
  192. package/dist-es/tag.css-mistica.js +2 -2
  193. package/dist-es/text-field-base.css-mistica.js +17 -17
  194. package/dist-es/text-field-components.css-mistica.js +4 -4
  195. package/dist-es/text-link.css-mistica.js +9 -9
  196. package/dist-es/text.css-mistica.js +8 -8
  197. package/dist-es/theme-context.css-mistica.js +2 -2
  198. package/dist-es/timeline.css-mistica.js +11 -11
  199. package/dist-es/timer.css-mistica.js +7 -7
  200. package/dist-es/tooltip.css-mistica.js +3 -3
  201. package/dist-es/touchable.css-mistica.js +2 -2
  202. package/dist-es/utils/aspect-ratio-support.css-mistica.js +4 -4
  203. package/dist-es/video.css-mistica.js +2 -2
  204. package/dist-es/video.js +106 -88
  205. package/dist-es/vivinho-loading-animation/vivinho-loading-animation.css-mistica.js +2 -2
  206. package/doc/components.md +1 -1
  207. package/doc/figma-mcp.md +0 -35
  208. package/doc/layout.md +45 -1
  209. package/doc/patterns.md +23 -0
  210. package/package.json +1 -1
  211. package/src/community/__stories__/cyber/example-component-story.tsx +15 -0
  212. package/src/community/cyber/example-component.css.ts +7 -0
  213. package/src/community/cyber/example-component.tsx +17 -0
  214. package/src/community/cyber/index.tsx +1 -0
  215. package/src/community/index.tsx +3 -0
  216. package/src/community/skins/cyber-skin.tsx +628 -0
  217. package/src/index.tsx +1 -1
  218. package/src/navigation-bar.css.ts +1 -1
  219. package/src/package-version.tsx +1 -1
  220. package/src/video.tsx +36 -0
  221. package/doc/agents/figma-verifier.md +0 -49
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') {
@@ -1,49 +0,0 @@
1
- # Figma verifier
2
-
3
- Audit a just-completed Figma implementation. Compare the running app against the Figma design visually and
4
- structurally, then report drift. Re-read [../figma-mcp.md](../figma-mcp.md) for the prime directive and skill
5
- rules before starting.
6
-
7
- ## Tasks
8
-
9
- 1. **Fetch the Figma screenshot** via `mcp__plugin_figma_figma__get_screenshot` for the entry node.
10
- `get_metadata` gives the frame's viewport dimensions.
11
-
12
- 2. **Render the implementation**:
13
-
14
- - Start the dev server in the background, piping output to a log file.
15
- - Wait for it to start.
16
- - Screenshot via Playwright CLI:
17
-
18
- ```bash
19
- npx -y playwright@1.60.0 screenshot \
20
- --viewport-size=<width>,<height> \
21
- --full-page \
22
- <url> \
23
- /tmp/verifier-actual.png
24
- ```
25
-
26
- Use the Figma frame's dimensions. For responsive designs, repeat per breakpoint.
27
-
28
- 3. **Compare visually**: open `/tmp/verifier-actual.png` and compare against the Figma screenshot. Catalog
29
- drift in: layout, spacing, typography (weight/size/line- height — compare letter forms), colors, assets
30
- (missing / wrong), and component primitive choice.
31
-
32
- 4. **Structural / rule check**:
33
-
34
- - Re-drill every composite component with `get_design_context({ disableCodeConnect: true })` and compare
35
- props against the drilled-in DOM.
36
- - Read each implementation file. Flag: hex literals or raw `var(--...)`, manual `font-size` /
37
- `font-family`, composite props that don't match the non-CodeConnect DOM, spacing values absent from the
38
- DOM, mismatched semantic structure (`Stack` vs `Inline`, flat vs nested), native HTML where a Mistica
39
- primitive exists, wrong/missing skin/font/body-background for the file's brand.
40
-
41
- 5. **Report**. One summary line (`clean` or `N issues found, M blocking`), then a bullet list ordered by
42
- severity. Each issue:
43
-
44
- - `[VISUAL]` or `[RULE]` prefix
45
- - Figma node id (or screenshot region) + what the design specifies
46
- - File:line (for `[RULE]`) or screenshot region (for `[VISUAL]`)
47
- - What's wrong + proposed fix
48
-
49
- Only flag drift and rule violations — no architectural rewrites or "improvements".