@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.
- package/css/mistica.css +1 -1
- package/dist/accordion.css-mistica.js +16 -16
- package/dist/align.css-mistica.js +2 -2
- package/dist/autocomplete.css-mistica.js +6 -6
- package/dist/avatar.css-mistica.js +3 -3
- package/dist/badge.css-mistica.js +7 -7
- package/dist/box.css-mistica.js +15 -15
- package/dist/boxed.css-mistica.js +31 -31
- package/dist/button-group.css-mistica.js +10 -10
- package/dist/button-layout.css-mistica.js +21 -21
- package/dist/button.css-mistica.js +51 -51
- package/dist/callout.css-mistica.js +16 -16
- package/dist/card-internal.css-mistica.js +38 -38
- package/dist/carousel.css-mistica.js +18 -18
- package/dist/checkbox.css-mistica.js +21 -21
- package/dist/chip.css-mistica.js +30 -30
- package/dist/circle.css-mistica.js +2 -2
- package/dist/community/advanced-data-card.css-mistica.js +26 -26
- package/dist/community/ai-card.css-mistica.js +14 -14
- package/dist/community/blocks.css-mistica.js +3 -3
- package/dist/community/cyber/example-component.css-mistica.js +11 -0
- package/dist/community/cyber/example-component.css.d.ts +1 -0
- package/dist/community/cyber/example-component.d.ts +6 -0
- package/dist/community/cyber/example-component.js +25 -0
- package/dist/community/cyber/index.d.ts +1 -0
- package/dist/community/example-component.css-mistica.js +2 -2
- package/dist/community/index.d.ts +2 -0
- package/dist/community/index.js +11 -0
- package/dist/community/skins/cyber-skin.d.ts +44 -0
- package/dist/community/skins/cyber-skin.js +633 -0
- package/dist/counter.css-mistica.js +12 -12
- package/dist/cover-hero.css-mistica.js +16 -16
- package/dist/credit-card-number-field.css-mistica.js +6 -6
- package/dist/date-field.css-mistica.js +1 -1
- package/dist/date-time-picker.css-mistica.js +2 -2
- package/dist/dialog.css-mistica.js +15 -15
- package/dist/divider.css-mistica.js +5 -5
- package/dist/double-field.css-mistica.js +4 -4
- package/dist/drawer.css-mistica.js +15 -15
- package/dist/empty-state-card.css-mistica.js +4 -4
- package/dist/empty-state.css-mistica.js +14 -14
- package/dist/fade-in.css-mistica.js +1 -1
- package/dist/feedback.css-mistica.js +14 -14
- package/dist/file-upload.css-mistica.js +14 -14
- package/dist/fixed-footer-layout.css-mistica.js +12 -12
- package/dist/form.css-mistica.js +2 -2
- package/dist/grid-layout.css-mistica.js +9 -9
- package/dist/grid.css-mistica.js +147 -147
- package/dist/header.css-mistica.js +5 -5
- package/dist/hero.css-mistica.js +11 -11
- package/dist/horizontal-scroll.css-mistica.js +3 -3
- package/dist/icon-button.css-mistica.js +66 -66
- package/dist/icons/icon-chevron.css-mistica.js +6 -6
- package/dist/icons/icon-error.css-mistica.js +3 -3
- package/dist/image.css-mistica.js +9 -9
- package/dist/index.d.ts +1 -1
- package/dist/inline.css-mistica.js +18 -18
- package/dist/list.css-mistica.js +15 -15
- package/dist/loading-bar.css-mistica.js +5 -5
- package/dist/loading-screen.css-mistica.js +15 -15
- package/dist/logo.css-mistica.js +9 -9
- package/dist/media-queries.css-mistica.js +13 -13
- package/dist/menu.css-mistica.js +25 -25
- package/dist/mosaic.css-mistica.js +3 -3
- package/dist/navigation-bar.css-mistica.js +45 -45
- package/dist/navigation-breadcrumbs.css-mistica.js +5 -5
- package/dist/package-version.js +2 -2
- package/dist/pin-field.css-mistica.js +10 -10
- package/dist/popover.css-mistica.js +2 -2
- package/dist/progress-bar.css-mistica.js +12 -12
- package/dist/radio-button.css-mistica.js +33 -33
- package/dist/rating.css-mistica.js +12 -12
- package/dist/responsive-layout.css-mistica.js +20 -20
- package/dist/screen-reader-only.css-mistica.js +2 -2
- package/dist/select.css-mistica.js +29 -29
- package/dist/sheet-action-row.css-mistica.js +2 -2
- package/dist/sheet-common.css-mistica.js +16 -16
- package/dist/sheet-info.css-mistica.js +4 -4
- package/dist/skeletons.css-mistica.js +12 -12
- package/dist/skins/skin-contract.css-mistica.js +686 -686
- package/dist/skip-link.css-mistica.js +3 -3
- package/dist/slider.css-mistica.js +28 -28
- package/dist/snackbar.css-mistica.js +16 -16
- package/dist/spinner.css-mistica.js +5 -5
- package/dist/square.css-mistica.js +2 -2
- package/dist/stack.css-mistica.js +9 -9
- package/dist/stacking-group.css-mistica.js +2 -2
- package/dist/stepper.css-mistica.js +16 -16
- package/dist/switch-component.css-mistica.js +53 -53
- package/dist/table.css-mistica.js +24 -24
- package/dist/tabs.css-mistica.js +30 -30
- package/dist/tag.css-mistica.js +5 -5
- package/dist/text-field-base.css-mistica.js +30 -30
- package/dist/text-field-components.css-mistica.js +19 -19
- package/dist/text-link.css-mistica.js +10 -10
- package/dist/text.css-mistica.js +13 -13
- package/dist/theme-context.css-mistica.js +2 -2
- package/dist/timeline.css-mistica.js +18 -18
- package/dist/timer.css-mistica.js +13 -13
- package/dist/tooltip.css-mistica.js +12 -12
- package/dist/touchable.css-mistica.js +5 -5
- package/dist/utils/aspect-ratio-support.css-mistica.js +7 -7
- package/dist/video.css-mistica.js +2 -2
- package/dist/video.d.ts +16 -0
- package/dist/video.js +93 -75
- package/dist/vivinho-loading-animation/vivinho-loading-animation.css-mistica.js +3 -3
- package/dist-es/accordion.css-mistica.js +7 -7
- package/dist-es/align.css-mistica.js +2 -2
- package/dist-es/autocomplete.css-mistica.js +2 -2
- package/dist-es/avatar.css-mistica.js +2 -2
- package/dist-es/badge.css-mistica.js +2 -2
- package/dist-es/box.css-mistica.js +15 -15
- package/dist-es/boxed.css-mistica.js +25 -25
- package/dist-es/button-group.css-mistica.js +2 -2
- package/dist-es/button-layout.css-mistica.js +16 -16
- package/dist-es/button.css-mistica.js +38 -38
- package/dist-es/callout.css-mistica.js +12 -12
- package/dist-es/card-internal.css-mistica.js +20 -20
- package/dist-es/carousel.css-mistica.js +10 -10
- package/dist-es/checkbox.css-mistica.js +14 -14
- package/dist-es/chip.css-mistica.js +17 -17
- package/dist-es/circle.css-mistica.js +2 -2
- package/dist-es/community/advanced-data-card.css-mistica.js +7 -7
- package/dist-es/community/ai-card.css-mistica.js +4 -4
- package/dist-es/community/blocks.css-mistica.js +2 -2
- package/dist-es/community/cyber/example-component.css-mistica.js +2 -0
- package/dist-es/community/cyber/example-component.js +11 -0
- package/dist-es/community/example-component.css-mistica.js +2 -2
- package/dist-es/community/index.js +6 -4
- package/dist-es/community/skins/cyber-skin.js +613 -0
- package/dist-es/counter.css-mistica.js +2 -2
- package/dist-es/cover-hero.css-mistica.js +4 -4
- package/dist-es/credit-card-number-field.css-mistica.js +4 -4
- package/dist-es/date-field.css-mistica.js +1 -1
- package/dist-es/date-time-picker.css-mistica.js +2 -2
- package/dist-es/dialog.css-mistica.js +5 -5
- package/dist-es/divider.css-mistica.js +5 -5
- package/dist-es/double-field.css-mistica.js +4 -4
- package/dist-es/drawer.css-mistica.js +2 -2
- package/dist-es/empty-state-card.css-mistica.js +2 -2
- package/dist-es/empty-state.css-mistica.js +7 -7
- package/dist-es/fade-in.css-mistica.js +1 -1
- package/dist-es/feedback.css-mistica.js +2 -2
- package/dist-es/file-upload.css-mistica.js +8 -8
- package/dist-es/fixed-footer-layout.css-mistica.js +4 -4
- package/dist-es/form.css-mistica.js +2 -2
- package/dist-es/grid-layout.css-mistica.js +4 -4
- package/dist-es/grid.css-mistica.js +127 -127
- package/dist-es/header.css-mistica.js +2 -2
- package/dist-es/hero.css-mistica.js +4 -4
- package/dist-es/horizontal-scroll.css-mistica.js +2 -2
- package/dist-es/icon-button.css-mistica.js +56 -56
- package/dist-es/icons/icon-chevron.css-mistica.js +4 -4
- package/dist-es/icons/icon-error.css-mistica.js +2 -2
- package/dist-es/image.css-mistica.js +4 -4
- package/dist-es/inline.css-mistica.js +10 -10
- package/dist-es/list.css-mistica.js +2 -2
- package/dist-es/loading-bar.css-mistica.js +2 -2
- package/dist-es/loading-screen.css-mistica.js +5 -5
- package/dist-es/logo.css-mistica.js +7 -7
- package/dist-es/media-queries.css-mistica.js +3 -3
- package/dist-es/menu.css-mistica.js +15 -15
- package/dist-es/mosaic.css-mistica.js +2 -2
- package/dist-es/navigation-bar.css-mistica.js +20 -20
- package/dist-es/navigation-breadcrumbs.css-mistica.js +2 -2
- package/dist-es/package-version.js +2 -2
- package/dist-es/pin-field.css-mistica.js +2 -2
- package/dist-es/popover.css-mistica.js +2 -2
- package/dist-es/progress-bar.css-mistica.js +8 -8
- package/dist-es/radio-button.css-mistica.js +25 -25
- package/dist-es/rating.css-mistica.js +4 -4
- package/dist-es/responsive-layout.css-mistica.js +7 -7
- package/dist-es/screen-reader-only.css-mistica.js +2 -2
- package/dist-es/select.css-mistica.js +20 -20
- package/dist-es/sheet-action-row.css-mistica.js +2 -2
- package/dist-es/sheet-common.css-mistica.js +2 -2
- package/dist-es/sheet-info.css-mistica.js +2 -2
- package/dist-es/skeletons.css-mistica.js +8 -8
- package/dist-es/skins/skin-contract.css-mistica.js +686 -686
- package/dist-es/skip-link.css-mistica.js +2 -2
- package/dist-es/slider.css-mistica.js +20 -20
- package/dist-es/snackbar.css-mistica.js +5 -5
- package/dist-es/spinner.css-mistica.js +2 -2
- package/dist-es/square.css-mistica.js +2 -2
- package/dist-es/stack.css-mistica.js +7 -7
- package/dist-es/stacking-group.css-mistica.js +2 -2
- package/dist-es/stepper.css-mistica.js +4 -4
- package/dist-es/style.css +1 -1
- package/dist-es/switch-component.css-mistica.js +41 -41
- package/dist-es/table.css-mistica.js +11 -11
- package/dist-es/tabs.css-mistica.js +21 -21
- package/dist-es/tag.css-mistica.js +2 -2
- package/dist-es/text-field-base.css-mistica.js +17 -17
- package/dist-es/text-field-components.css-mistica.js +4 -4
- package/dist-es/text-link.css-mistica.js +9 -9
- package/dist-es/text.css-mistica.js +8 -8
- package/dist-es/theme-context.css-mistica.js +2 -2
- package/dist-es/timeline.css-mistica.js +11 -11
- package/dist-es/timer.css-mistica.js +7 -7
- package/dist-es/tooltip.css-mistica.js +3 -3
- package/dist-es/touchable.css-mistica.js +2 -2
- package/dist-es/utils/aspect-ratio-support.css-mistica.js +4 -4
- package/dist-es/video.css-mistica.js +2 -2
- package/dist-es/video.js +106 -88
- package/dist-es/vivinho-loading-animation/vivinho-loading-animation.css-mistica.js +2 -2
- package/doc/components.md +1 -1
- package/doc/figma-mcp.md +0 -35
- package/doc/layout.md +45 -1
- package/doc/patterns.md +23 -0
- package/package.json +1 -1
- package/src/community/__stories__/cyber/example-component-story.tsx +15 -0
- package/src/community/cyber/example-component.css.ts +7 -0
- package/src/community/cyber/example-component.tsx +17 -0
- package/src/community/cyber/index.tsx +1 -0
- package/src/community/index.tsx +3 -0
- package/src/community/skins/cyber-skin.tsx +628 -0
- package/src/index.tsx +1 -1
- package/src/navigation-bar.css.ts +1 -1
- package/src/package-version.tsx +1 -1
- package/src/video.tsx +36 -0
- 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".
|