webs-sdk 0.19.65 → 0.19.67
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/dist/components/ui/ConfiguredMediaPlayer.d.ts.map +1 -1
- package/dist/components/ui/ConfiguredMediaPlayer.js +17 -6
- package/dist/components/ui/ConfiguredMediaPlayer.js.map +1 -1
- package/dist/components/ui/VideoPlayer.d.ts.map +1 -1
- package/dist/components/ui/VideoPlayer.js +51 -17
- package/dist/components/ui/VideoPlayer.js.map +1 -1
- package/package.json +1 -1
- package/skills/webs-sdk-package/SKILL.md +10 -0
- package/skills/webs-sdk-package/references/components.md +3 -1
- package/skills/webs-sdk-package/references/ui.md +197 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfiguredMediaPlayer.d.ts","sourceRoot":"","sources":["../../../src/components/ui/ConfiguredMediaPlayer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAqBL,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,CAAC;IAC3E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC;IAEpF,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE5B,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE9C,QAAQ,CAAC,EAAE,6BAA6B,CAAC;IAEzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC,CAAC;CACrJ;
|
|
1
|
+
{"version":3,"file":"ConfiguredMediaPlayer.d.ts","sourceRoot":"","sources":["../../../src/components/ui/ConfiguredMediaPlayer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAqBL,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,CAAC;IAC3E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC;IAEpF,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE5B,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE9C,QAAQ,CAAC,EAAE,6BAA6B,CAAC;IAEzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC,CAAC;CACrJ;AA+DD,wBAAgB,qBAAqB,CAAC,EACpC,GAAG,EACH,SAAmB,EACnB,MAAM,EACN,QAAgB,EAChB,OAAoB,EACpB,KAAa,EACb,IAAY,EACZ,WAAkB,EAClB,MAAM,EACN,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,QAAQ,EAAE,YAAY,EACtB,WAAgB,EAChB,cAAc,EACd,UAAU,EACV,KAAsB,EACtB,QAAe,EACf,GAAG,SAAS,EACb,EAAE,0BAA0B,2CAgD5B"}
|
|
@@ -72,21 +72,32 @@ function useMediaSource(src, mediaType) {
|
|
|
72
72
|
const element = ref.current;
|
|
73
73
|
if (!element || !isHls)
|
|
74
74
|
return;
|
|
75
|
-
if (element.canPlayType("application/vnd.apple.mpegurl")) {
|
|
75
|
+
if (typeof MediaSource === "undefined" && element.canPlayType("application/vnd.apple.mpegurl")) {
|
|
76
76
|
element.src = src;
|
|
77
77
|
return;
|
|
78
78
|
}
|
|
79
79
|
let cancelled = false;
|
|
80
80
|
let instance;
|
|
81
81
|
Promise.resolve().then(() => __importStar(require("hls.js"))).then(({ default: HlsModule }) => {
|
|
82
|
-
if (cancelled
|
|
82
|
+
if (cancelled)
|
|
83
83
|
return;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
if (HlsModule.isSupported()) {
|
|
85
|
+
instance = new HlsModule();
|
|
86
|
+
instance.loadSource(src);
|
|
87
|
+
instance.attachMedia(element);
|
|
88
|
+
}
|
|
89
|
+
else if (element.canPlayType("application/vnd.apple.mpegurl")) {
|
|
90
|
+
element.src = src;
|
|
91
|
+
}
|
|
87
92
|
}).catch((error) => {
|
|
88
|
-
if (
|
|
93
|
+
if (cancelled)
|
|
94
|
+
return;
|
|
95
|
+
if (element.canPlayType("application/vnd.apple.mpegurl")) {
|
|
96
|
+
element.src = src;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
89
99
|
console.warn("Unable to load HLS playback", error);
|
|
100
|
+
}
|
|
90
101
|
});
|
|
91
102
|
return () => {
|
|
92
103
|
cancelled = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfiguredMediaPlayer.js","sourceRoot":"","sources":["../../../src/components/ui/ConfiguredMediaPlayer.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ConfiguredMediaPlayer.js","sourceRoot":"","sources":["../../../src/components/ui/ConfiguredMediaPlayer.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+Ib,sDAoEC;;AAjND,6CAA+B;AAE/B,iDAsBwB;AAwDxB,MAAM,gBAAgB,GAA4C;IAChE,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,KAAK;IAClB,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,KAAK;IACX,gBAAgB,EAAE,KAAK;IACvB,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,SAAS,cAAc,CAAC,GAAW,EAAE,SAA4B;IAC/D,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAsC,IAAI,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,SAAS,KAAK,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAErE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK;YAAE,OAAO;QAE/B,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,EAAE,CAAC;YAC/F,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,QAAyB,CAAC;QAC9B,kDAAO,QAAQ,IAAE,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;YAC/C,IAAI,SAAS;gBAAE,OAAO;YAGtB,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC5B,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC3B,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACzB,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,EAAE,CAAC;gBAChE,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACjB,IAAI,SAAS;gBAAE,OAAO;YACtB,IAAI,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,EAAE,CAAC;gBACzD,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,EAAE,CAAC;QACtB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAEjB,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrD,CAAC;AAGD,SAAgB,qBAAqB,CAAC,EAoBT;;QApBS,EACpC,GAAG,EACH,SAAS,GAAG,OAAO,EACnB,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,UAAU,EACpB,KAAK,GAAG,KAAK,EACb,IAAI,GAAG,KAAK,EACZ,WAAW,GAAG,IAAI,EAClB,MAAM,EACN,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,QAAQ,EAAE,YAAY,EACtB,WAAW,GAAG,EAAE,EAChB,cAAc,EACd,UAAU,EACV,KAAK,GAAG,cAAc,EACtB,QAAQ,GAAG,IAAI,OAEY,EADxB,SAAS,cAnBwB,iOAoBrC,CADa;IAEZ,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAA,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,CAAC,CAAC,0CAAE,IAAI,mCAAI,EAAE,CAAC,CAAC;IAC5F,MAAM,SAAS,GAAG,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,0CAAE,GAAG,mCAAI,GAAG,CAAC;IAClF,MAAM,QAAQ,mCAAQ,gBAAgB,GAAK,YAAY,CAAE,CAAC;IAC1D,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAChE,MAAM,eAAe,mCAAQ,UAAU,KAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,GAAE,CAAC;IAEvG,OAAO,CACL,wBAAC,0BAAW,oBAAK,SAAS,IAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,aACzD,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,CACvB,uBAAC,+BAAgB,oBAAuC,eAAe,IAAE,GAAG,EAAE,GAAkC,EAAE,MAAM,EAAE,MAAM,YAC7H,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kDAAiD,KAAK,GAA1C,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAe,CAAC,KAD9D,GAAG,SAAS,IAAI,SAAS,EAAE,CAE/B,CACpB,CAAC,CAAC,CAAC,CACF,uBAAC,+BAAgB,oBAAuC,eAAe,IAAE,GAAG,EAAE,GAAkC,KAAzF,GAAG,SAAS,IAAI,SAAS,EAAE,CAAkE,CACrH,EACA,QAAQ,CAAC,OAAO,IAAI,uBAAC,iCAAkB,KAAG,EAC1C,QAAQ,CAAC,KAAK,IAAI,uBAAC,+BAAgB,KAAG,EACvC,uBAAC,yCAA0B,KAAG,EAC9B,wBAAC,kCAAmB,eACjB,QAAQ,CAAC,IAAI,IAAI,uBAAC,8BAAe,kBAAY,eAAe,GAAG,EAC/D,QAAQ,CAAC,WAAW,IAAI,uBAAC,sCAAuB,IAAC,OAAO,EAAE,WAAW,GAAI,EACzE,QAAQ,CAAC,IAAI,IAAI,uBAAC,8BAAe,IAAC,SAAS,EAAC,gBAAgB,GAAG,EAC/D,QAAQ,CAAC,WAAW,IAAI,uBAAC,qCAAsB,IAAC,OAAO,EAAE,WAAW,GAAI,EACxE,QAAQ,CAAC,IAAI,IAAI,uBAAC,8BAAe,KAAG,EACpC,QAAQ,CAAC,MAAM,IAAI,uBAAC,gCAAiB,KAAG,EACxC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAChC,iDACa,gBAAgB,EAC3B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;4BAClB,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BAChC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACzC,CAAC,EACD,SAAS,EAAC,kDAAkD,YAE3D,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mCAA0B,KAAK,EAAE,MAAM,CAAC,IAAI,YAAG,MAAM,CAAC,IAAI,IAA7C,MAAM,CAAC,IAAI,CAA4C,CAAC,GACvF,CACV,EACA,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAC,kCAAmB,IAAC,MAAM,EAAE,cAAc,GAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAC,uCAAwB,IAAC,MAAM,EAAE,cAAc,GAAI,CAAC,CAAC,CAAC,IAAI,EAClJ,SAAS,KAAK,OAAO,IAAI,QAAQ,CAAC,QAAQ,IAAI,uBAAC,kCAAmB,KAAG,EACrE,QAAQ,CAAC,IAAI,IAAI,uBAAC,8BAAe,KAAG,EACpC,SAAS,KAAK,OAAO,IAAI,QAAQ,CAAC,gBAAgB,IAAI,uBAAC,6BAAc,KAAG,EACxE,SAAS,KAAK,OAAO,IAAI,QAAQ,CAAC,UAAU,IAAI,uBAAC,oCAAqB,KAAG,EACzE,QAAQ,CAAC,QAAQ,IAAI,uBAAC,kCAAmB,KAAG,IACzB,KACV,CACf,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../src/components/ui/VideoPlayer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC;IACvE,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAElC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,WAAW,EACX,KAAK,EACL,SAAc,EACd,QAAgB,EAChB,SAAS,EACT,aAAa,EACb,MAAM,EACN,MAAM,EACN,OAAc,EACd,OAAc,EACd,SAAS,EACT,WAAW,EACX,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../src/components/ui/VideoPlayer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC;IACvE,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAElC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,WAAW,EACX,KAAK,EACL,SAAc,EACd,QAAgB,EAChB,SAAS,EACT,aAAa,EACb,MAAM,EACN,MAAM,EACN,OAAc,EACd,OAAc,EACd,SAAS,EACT,WAAW,EACX,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,gBAAgB,2CA0dlB"}
|
|
@@ -50,8 +50,8 @@ const utils_1 = require("../../libraries/utils");
|
|
|
50
50
|
const react_1 = __importStar(require("react"));
|
|
51
51
|
function VideoPlayer(_a) {
|
|
52
52
|
var { videoUrl, posterImage, title, className = "", autoPlay = false, contentId, contentSource, onNext, onPrev, hasNext = true, hasPrev = true, languages, defaultLang, onLangChange } = _a, props = __rest(_a, ["videoUrl", "posterImage", "title", "className", "autoPlay", "contentId", "contentSource", "onNext", "onPrev", "hasNext", "hasPrev", "languages", "defaultLang", "onLangChange"]);
|
|
53
|
-
const [isPlaying, setIsPlaying] = (0, react_1.useState)(
|
|
54
|
-
const [isMuted, setIsMuted] = (0, react_1.useState)(
|
|
53
|
+
const [isPlaying, setIsPlaying] = (0, react_1.useState)(false);
|
|
54
|
+
const [isMuted, setIsMuted] = (0, react_1.useState)(autoPlay);
|
|
55
55
|
const [currentTime, setCurrentTime] = (0, react_1.useState)(0);
|
|
56
56
|
const [duration, setDuration] = (0, react_1.useState)(0);
|
|
57
57
|
const [isLoading, setIsLoading] = (0, react_1.useState)(false);
|
|
@@ -61,6 +61,7 @@ function VideoPlayer(_a) {
|
|
|
61
61
|
const videoRef = (0, react_1.useRef)(null);
|
|
62
62
|
const controlsTimeoutRef = (0, react_1.useRef)(null);
|
|
63
63
|
const hlsRef = (0, react_1.useRef)(null);
|
|
64
|
+
const autoPlayPendingRef = (0, react_1.useRef)(autoPlay);
|
|
64
65
|
const activeVideoUrl = react_1.default.useMemo(() => {
|
|
65
66
|
if (languages && languages.length > 0 && currentLang) {
|
|
66
67
|
const found = languages.find((l) => l.lang === currentLang);
|
|
@@ -85,19 +86,21 @@ function VideoPlayer(_a) {
|
|
|
85
86
|
const video = videoRef.current;
|
|
86
87
|
if (!video)
|
|
87
88
|
return;
|
|
89
|
+
autoPlayPendingRef.current = autoPlay;
|
|
90
|
+
let cancelled = false;
|
|
88
91
|
if (hlsRef.current) {
|
|
89
92
|
hlsRef.current.destroy();
|
|
90
93
|
hlsRef.current = null;
|
|
91
94
|
}
|
|
92
95
|
if (isHlsUrl(activeVideoUrl)) {
|
|
93
96
|
Promise.resolve().then(() => __importStar(require("hls.js"))).then(({ default: HlsModule }) => {
|
|
94
|
-
if (
|
|
97
|
+
if (cancelled)
|
|
95
98
|
return;
|
|
96
99
|
if (HlsModule.isSupported()) {
|
|
97
100
|
const hls = new HlsModule();
|
|
98
101
|
hlsRef.current = hls;
|
|
99
102
|
hls.loadSource(activeVideoUrl);
|
|
100
|
-
hls.attachMedia(
|
|
103
|
+
hls.attachMedia(video);
|
|
101
104
|
hls.on(HlsModule.Events.ERROR, (_event, data) => {
|
|
102
105
|
if (data.fatal) {
|
|
103
106
|
switch (data.type) {
|
|
@@ -117,10 +120,12 @@ function VideoPlayer(_a) {
|
|
|
117
120
|
}
|
|
118
121
|
});
|
|
119
122
|
}
|
|
120
|
-
else if (
|
|
121
|
-
|
|
123
|
+
else if (video.canPlayType("application/vnd.apple.mpegurl")) {
|
|
124
|
+
video.src = activeVideoUrl;
|
|
122
125
|
}
|
|
123
126
|
}).catch((err) => {
|
|
127
|
+
if (cancelled)
|
|
128
|
+
return;
|
|
124
129
|
console.warn("Failed to load hls.js:", err);
|
|
125
130
|
if (video.canPlayType("application/vnd.apple.mpegurl")) {
|
|
126
131
|
video.src = activeVideoUrl;
|
|
@@ -131,12 +136,30 @@ function VideoPlayer(_a) {
|
|
|
131
136
|
video.src = activeVideoUrl;
|
|
132
137
|
}
|
|
133
138
|
return () => {
|
|
139
|
+
cancelled = true;
|
|
134
140
|
if (hlsRef.current) {
|
|
135
141
|
hlsRef.current.destroy();
|
|
136
142
|
hlsRef.current = null;
|
|
137
143
|
}
|
|
138
144
|
};
|
|
139
145
|
}, [activeVideoUrl]);
|
|
146
|
+
(0, react_1.useEffect)(() => {
|
|
147
|
+
if (!autoPlay) {
|
|
148
|
+
autoPlayPendingRef.current = false;
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const video = videoRef.current;
|
|
152
|
+
if (video && !video.paused) {
|
|
153
|
+
autoPlayPendingRef.current = false;
|
|
154
|
+
}
|
|
155
|
+
else if (video && video.readyState >= HTMLMediaElement.HAVE_FUTURE_DATA) {
|
|
156
|
+
autoPlayPendingRef.current = false;
|
|
157
|
+
video.play().catch((err) => console.warn("Autoplay prevented:", err));
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
autoPlayPendingRef.current = true;
|
|
161
|
+
}
|
|
162
|
+
}, [autoPlay]);
|
|
140
163
|
(0, react_1.useEffect)(() => {
|
|
141
164
|
const video = videoRef.current;
|
|
142
165
|
if (!video)
|
|
@@ -153,12 +176,17 @@ function VideoPlayer(_a) {
|
|
|
153
176
|
};
|
|
154
177
|
const handleCanPlay = () => {
|
|
155
178
|
setIsLoading(false);
|
|
156
|
-
if (
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
});
|
|
179
|
+
if (autoPlayPendingRef.current && video.paused) {
|
|
180
|
+
autoPlayPendingRef.current = false;
|
|
181
|
+
video.play().catch((err) => console.warn("Autoplay prevented:", err));
|
|
160
182
|
}
|
|
161
183
|
};
|
|
184
|
+
const handlePlay = () => {
|
|
185
|
+
autoPlayPendingRef.current = false;
|
|
186
|
+
setIsPlaying(true);
|
|
187
|
+
};
|
|
188
|
+
const handlePause = () => setIsPlaying(false);
|
|
189
|
+
const handleVolumeChange = () => setIsMuted(video.muted);
|
|
162
190
|
const handleEnded = () => {
|
|
163
191
|
setIsPlaying(false);
|
|
164
192
|
setCurrentTime(0);
|
|
@@ -167,26 +195,32 @@ function VideoPlayer(_a) {
|
|
|
167
195
|
video.addEventListener("timeupdate", handleTimeUpdate);
|
|
168
196
|
video.addEventListener("waiting", handleWaiting);
|
|
169
197
|
video.addEventListener("canplay", handleCanPlay);
|
|
198
|
+
video.addEventListener("play", handlePlay);
|
|
199
|
+
video.addEventListener("pause", handlePause);
|
|
200
|
+
video.addEventListener("volumechange", handleVolumeChange);
|
|
170
201
|
video.addEventListener("ended", handleEnded);
|
|
171
202
|
return () => {
|
|
172
203
|
video.removeEventListener("loadedmetadata", handleLoadedMetadata);
|
|
173
204
|
video.removeEventListener("timeupdate", handleTimeUpdate);
|
|
174
205
|
video.removeEventListener("waiting", handleWaiting);
|
|
175
206
|
video.removeEventListener("canplay", handleCanPlay);
|
|
207
|
+
video.removeEventListener("play", handlePlay);
|
|
208
|
+
video.removeEventListener("pause", handlePause);
|
|
209
|
+
video.removeEventListener("volumechange", handleVolumeChange);
|
|
176
210
|
video.removeEventListener("ended", handleEnded);
|
|
177
211
|
};
|
|
178
|
-
}, [
|
|
212
|
+
}, []);
|
|
179
213
|
const togglePlay = () => {
|
|
180
214
|
const video = videoRef.current;
|
|
181
215
|
if (!video)
|
|
182
216
|
return;
|
|
183
|
-
if (
|
|
217
|
+
if (!video.paused) {
|
|
218
|
+
autoPlayPendingRef.current = false;
|
|
184
219
|
video.pause();
|
|
185
|
-
setIsPlaying(false);
|
|
186
220
|
}
|
|
187
221
|
else {
|
|
188
|
-
|
|
189
|
-
|
|
222
|
+
autoPlayPendingRef.current = false;
|
|
223
|
+
video.play().catch((err) => console.warn("Playback prevented:", err));
|
|
190
224
|
}
|
|
191
225
|
};
|
|
192
226
|
const toggleMute = () => {
|
|
@@ -194,7 +228,7 @@ function VideoPlayer(_a) {
|
|
|
194
228
|
if (!video)
|
|
195
229
|
return;
|
|
196
230
|
video.muted = !video.muted;
|
|
197
|
-
setIsMuted(
|
|
231
|
+
setIsMuted(video.muted);
|
|
198
232
|
};
|
|
199
233
|
const handleSeek = (e) => {
|
|
200
234
|
const video = videoRef.current;
|
|
@@ -233,7 +267,7 @@ function VideoPlayer(_a) {
|
|
|
233
267
|
setShowControls(false);
|
|
234
268
|
}
|
|
235
269
|
};
|
|
236
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)("relative w-full bg-black rounded-lg overflow-hidden shadow-lg group", className), onMouseMove: handleMouseMove, onMouseLeave: handleMouseLeave, style: { aspectRatio: "16/9" }, children: [(0, jsx_runtime_1.jsx)("video", Object.assign({ ref: videoRef, poster: posterImage, className: "w-full h-full object-contain", onClick: togglePlay }, props)), !isPlaying && ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: "absolute inset-0 flex items-center justify-center bg-black/30 cursor-pointer", onClick: togglePlay }, (contentId !== undefined && Object.assign({ "data-track-consume": "play", "data-content-id": String(contentId) }, (contentSource !== undefined && { "data-content-source": contentSource }))), { children: (0, jsx_runtime_1.jsx)("div", { className: "bg-red-600 rounded-full p-6 hover:bg-red-700 transition-colors", children: (0, jsx_runtime_1.jsx)("svg", { className: "w-12 h-12 text-white fill-current", viewBox: "0 0 24 24", children: (0, jsx_runtime_1.jsx)("path", { d: "M8 5v14l11-7z" }) }) }) }))), isLoading && ((0, jsx_runtime_1.jsx)("div", { className: "absolute inset-0 flex items-center justify-center bg-black/20", children: (0, jsx_runtime_1.jsx)("div", { className: "w-12 h-12 border-4 border-white border-t-transparent rounded-full animate-spin" }) })), (0, jsx_runtime_1.jsxs)("div", { className: `absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-4 transition-opacity duration-300 ${showControls ? "opacity-100" : "opacity-0"}`, children: [(0, jsx_runtime_1.jsx)("input", { type: "range", min: "0", max: duration || 0, value: currentTime, onChange: handleSeek, className: "w-full h-1 mb-3 bg-gray-600 rounded-lg appearance-none cursor-pointer accent-red-600", style: {
|
|
270
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)("relative w-full bg-black rounded-lg overflow-hidden shadow-lg group", className), onMouseMove: handleMouseMove, onMouseLeave: handleMouseLeave, style: { aspectRatio: "16/9" }, children: [(0, jsx_runtime_1.jsx)("video", Object.assign({ ref: videoRef, poster: posterImage, autoPlay: autoPlay, muted: autoPlay, playsInline: true, preload: autoPlay ? "auto" : "metadata", className: "w-full h-full object-contain", onClick: togglePlay }, props)), !isPlaying && ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: "absolute inset-0 flex items-center justify-center bg-black/30 cursor-pointer", onClick: togglePlay }, (contentId !== undefined && Object.assign({ "data-track-consume": "play", "data-content-id": String(contentId) }, (contentSource !== undefined && { "data-content-source": contentSource }))), { children: (0, jsx_runtime_1.jsx)("div", { className: "bg-red-600 rounded-full p-6 hover:bg-red-700 transition-colors", children: (0, jsx_runtime_1.jsx)("svg", { className: "w-12 h-12 text-white fill-current", viewBox: "0 0 24 24", children: (0, jsx_runtime_1.jsx)("path", { d: "M8 5v14l11-7z" }) }) }) }))), isLoading && ((0, jsx_runtime_1.jsx)("div", { className: "absolute inset-0 flex items-center justify-center bg-black/20", children: (0, jsx_runtime_1.jsx)("div", { className: "w-12 h-12 border-4 border-white border-t-transparent rounded-full animate-spin" }) })), (0, jsx_runtime_1.jsxs)("div", { className: `absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-4 transition-opacity duration-300 ${showControls ? "opacity-100" : "opacity-0"}`, children: [(0, jsx_runtime_1.jsx)("input", { type: "range", min: "0", max: duration || 0, value: currentTime, onChange: handleSeek, className: "w-full h-1 mb-3 bg-gray-600 rounded-lg appearance-none cursor-pointer accent-red-600", style: {
|
|
237
271
|
background: `linear-gradient(to right, #dc2626 0%, #dc2626 ${(currentTime / duration) * 100}%, #4b5563 ${(currentTime / duration) * 100}%, #4b5563 100%)`,
|
|
238
272
|
} }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between text-white", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-3", children: [onPrev && ((0, jsx_runtime_1.jsx)("button", { onClick: onPrev, disabled: !hasPrev, className: `hover:text-red-600 transition-colors ${!hasPrev ? "opacity-40 cursor-not-allowed" : ""}`, children: (0, jsx_runtime_1.jsx)("svg", { className: "w-6 h-6", viewBox: "0 0 24 24", fill: "currentColor", children: (0, jsx_runtime_1.jsx)("path", { d: "M6 6h2v12H6zm3.5 6l8.5 6V6z" }) }) })), (0, jsx_runtime_1.jsx)("button", Object.assign({ onClick: togglePlay, className: "hover:text-red-600 transition-colors" }, (!isPlaying && contentId !== undefined
|
|
239
273
|
? Object.assign({ "data-track-consume": "play", "data-content-id": String(contentId) }, (contentSource !== undefined && {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.js","sourceRoot":"","sources":["../../../src/components/ui/VideoPlayer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,kCAmcC;;AAheD,iDAA2C;AAC3C,+CAA2D;AA4B3D,SAAgB,WAAW,CAAC,EAgBT;QAhBS,EAC1B,QAAQ,EACR,WAAW,EACX,KAAK,EACL,SAAS,GAAG,EAAE,EACd,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,aAAa,EACb,MAAM,EACN,MAAM,EACN,OAAO,GAAG,IAAI,EACd,OAAO,GAAG,IAAI,EACd,SAAS,EACT,WAAW,EACX,YAAY,OAEK,EADd,KAAK,cAfkB,iLAgB3B,CADS;IAER,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAC5C,WAAW,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5E,CAAC;IACF,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAmB,IAAI,CAAC,CAAC;IAChD,MAAM,kBAAkB,GAAG,IAAA,cAAM,EAAwB,IAAI,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAG,IAAA,cAAM,EAAa,IAAI,CAAC,CAAC;IAGxC,MAAM,cAAc,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACxC,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;YAC5D,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC,QAAQ,CAAC;QACnC,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEvC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE;QACxC,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,eAAe,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAW,EAAE;QACxC,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC,CAAC;IAGF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO;QAGnB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAE7B,kDAAO,QAAQ,IAAE,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;gBAC/C,IAAI,CAAC,QAAQ,CAAC,OAAO;oBAAE,OAAO;gBAE9B,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC5B,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;oBAC5B,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;oBACrB,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;oBAC/B,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAElC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;wBAC9C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;4BACf,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gCAClB,KAAK,SAAS,CAAC,UAAU,CAAC,aAAa;oCACrC,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;oCAC3D,GAAG,CAAC,SAAS,EAAE,CAAC;oCAChB,MAAM;gCACR,KAAK,SAAS,CAAC,UAAU,CAAC,WAAW;oCACnC,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;oCACzD,GAAG,CAAC,iBAAiB,EAAE,CAAC;oCACxB,MAAM;gCACR;oCACE,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;oCACjD,GAAG,CAAC,OAAO,EAAE,CAAC;oCACd,MAAM;4BACV,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,EAAE,CAAC;oBAEzE,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,cAAc,CAAC;gBACxC,CAAC;YACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACf,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;gBAE5C,IAAI,KAAK,CAAC,WAAW,CAAC,+BAA+B,CAAC,EAAE,CAAC;oBACvD,KAAK,CAAC,GAAG,GAAG,cAAc,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,GAAG,cAAc,CAAC;QAC7B,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACzB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,oBAAoB,GAAG,GAAG,EAAE;YAChC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5B,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC;QAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;YAC5B,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACzB,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,cAAc,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC;QAEF,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;QAC/D,KAAK,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QACvD,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACjD,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACjD,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE7C,OAAO,GAAG,EAAE;YACV,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;YAClE,KAAK,CAAC,mBAAmB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAC1D,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAE1B,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;QAC3B,UAAU,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,CAAsC,EAAE,EAAE;QAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QACzB,cAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,OAAe,EAAU,EAAE;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACtC,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACvD,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,eAAe,CAAC,IAAI,CAAC,CAAC;QAEtB,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAC/B,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,kBAAkB,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC3C,eAAe,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,IAAI,SAAS,EAAE,CAAC;YACd,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,iCACE,SAAS,EAAE,IAAA,UAAE,EACX,qEAAqE,EACrE,SAAS,CACV,EACD,WAAW,EAAE,eAAe,EAC5B,YAAY,EAAE,gBAAgB,EAC9B,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,aAE9B,gDACE,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,WAAW,EACnB,SAAS,EAAC,8BAA8B,EACxC,OAAO,EAAE,UAAU,IACf,KAAK,EACT,EAGD,CAAC,SAAS,IAAI,CACb,8CACE,SAAS,EAAC,8EAA8E,EACxF,OAAO,EAAE,UAAU,IACf,CAAC,SAAS,KAAK,SAAS,oBAC1B,oBAAoB,EAAE,MAAM,EAC5B,iBAAiB,EAAE,MAAM,CAAC,SAAS,CAAC,IACjC,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,qBAAqB,EAAE,aAAa,EAAE,CAAC,CAC7E,CAAC,cAEF,gCAAK,SAAS,EAAC,gEAAgE,YAC7E,gCACE,SAAS,EAAC,mCAAmC,EAC7C,OAAO,EAAC,WAAW,YAEnB,iCAAM,CAAC,EAAC,eAAe,GAAG,GACtB,GACF,IACF,CACP,EAGA,SAAS,IAAI,CACZ,gCAAK,SAAS,EAAC,+DAA+D,YAC5E,gCAAK,SAAS,EAAC,gFAAgF,GAAG,GAC9F,CACP,EAGD,iCACE,SAAS,EAAE,sHACT,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WACjC,EAAE,aAGF,kCACE,IAAI,EAAC,OAAO,EACZ,GAAG,EAAC,GAAG,EACP,GAAG,EAAE,QAAQ,IAAI,CAAC,EAClB,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAC,sFAAsF,EAChG,KAAK,EAAE;4BACL,UAAU,EAAE,iDAAiD,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,GAAG,cAAc,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,GAAG,kBAAkB;yBAC1J,GACD,EAGF,iCAAK,SAAS,EAAC,8CAA8C,aAC3D,iCAAK,SAAS,EAAC,yBAAyB,aAErC,MAAM,IAAI,CACT,mCACE,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,OAAO,EAClB,SAAS,EAAE,wCACT,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAC/C,EAAE,YAEF,gCACE,SAAS,EAAC,SAAS,EACnB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,cAAc,YAEnB,iCAAM,CAAC,EAAC,6BAA6B,GAAG,GACpC,GACC,CACV,EAMD,iDACE,OAAO,EAAE,UAAU,EACnB,SAAS,EAAC,sCAAsC,IAC5C,CAAC,CAAC,SAAS,IAAI,SAAS,KAAK,SAAS;wCACxC,CAAC,iBACG,oBAAoB,EAAE,MAAM,EAC5B,iBAAiB,EAAE,MAAM,CAAC,SAAS,CAAC,IACjC,CAAC,aAAa,KAAK,SAAS,IAAI;4CACjC,qBAAqB,EAAE,aAAa;yCACrC,CAAC,EAEN,CAAC,CAAC,EAAE,CAAC,cAEN,SAAS,CAAC,CAAC,CAAC,CACX,gCACE,SAAS,EAAC,SAAS,EACnB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,cAAc,YAEnB,iCAAM,CAAC,EAAC,+BAA+B,GAAG,GACtC,CACP,CAAC,CAAC,CAAC,CACF,gCACE,SAAS,EAAC,SAAS,EACnB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,cAAc,YAEnB,iCAAM,CAAC,EAAC,eAAe,GAAG,GACtB,CACP,IACM,EAGR,MAAM,IAAI,CACT,mCACE,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,OAAO,EAClB,SAAS,EAAE,wCACT,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAC/C,EAAE,YAEF,gCACE,SAAS,EAAC,SAAS,EACnB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,cAAc,YAEnB,iCAAM,CAAC,EAAC,qCAAqC,GAAG,GAC5C,GACC,CACV,EAED,mCACE,OAAO,EAAE,UAAU,EACnB,SAAS,EAAC,sCAAsC,YAE/C,OAAO,CAAC,CAAC,CAAC,CACT,gCACE,SAAS,EAAC,SAAS,EACnB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,cAAc,YAEnB,iCAAM,CAAC,EAAC,iWAAiW,GAAG,GACxW,CACP,CAAC,CAAC,CAAC,CACF,gCACE,SAAS,EAAC,SAAS,EACnB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,cAAc,YAEnB,iCAAM,CAAC,EAAC,6LAA6L,GAAG,GACpM,CACP,GACM,EAET,iCAAK,SAAS,EAAC,SAAS,aACrB,UAAU,CAAC,WAAW,CAAC,SAAK,UAAU,CAAC,QAAQ,CAAC,IAC7C,IACF,EAEN,iCAAK,SAAS,EAAC,yBAAyB,aAErC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACpC,iCAAK,SAAS,EAAC,UAAU,aACvB,oCACE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,CAAC,YAAY,CAAC,EACrE,QAAQ,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,EAC/B,SAAS,EAAE,+DACT,SAAS,CAAC,MAAM,IAAI,CAAC;oDACnB,CAAC,CAAC,+BAA+B;oDACjC,CAAC,CAAC,mCACN,EAAE,aAEF,gCAAK,SAAS,EAAC,SAAS,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,cAAc,YAC9D,iCAAM,CAAC,EAAC,iSAAiS,GAAG,GACxS,EACL,WAAW,IACL,EACR,YAAY,IAAI,CACf,gCAAK,SAAS,EAAC,iGAAiG,YAC7G,SAAS,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAC7B,mCAEE,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,EAChD,SAAS,EAAE,oFACT,UAAU,CAAC,IAAI,KAAK,WAAW;wDAC7B,CAAC,CAAC,uBAAuB;wDACzB,CAAC,CAAC,eACN,EAAE,YAED,UAAU,CAAC,IAAI,IARX,UAAU,CAAC,IAAI,CASb,CACV,CAAC,GACE,CACP,IACG,CACP,EAED,mCACE,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAC,sCAAsC,YAEhD,gCAAK,SAAS,EAAC,SAAS,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,cAAc,YAC9D,iCAAM,CAAC,EAAC,gFAAgF,GAAG,GACvF,GACC,IACL,IACF,IACF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"VideoPlayer.js","sourceRoot":"","sources":["../../../src/components/ui/VideoPlayer.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -9,3 +9,13 @@ description: Use the webs-sdk npm package in Nexum portals. Activate when choosi
|
|
|
9
9
|
2. Verify the installed package version and exact public exports/types in `node_modules/webs-sdk/dist/index.d.ts` or `node_modules/webs-sdk/dist/components/ui/index.d.ts`. Catalog is a guide, not an exhaustive or version-independent API contract.
|
|
10
10
|
3. Use `webs-sdk` or `webs-sdk/ui`; never import from private `dist/` paths. Keep default `WebsSDK` singleton out of client components. Add client boundary for interactive React UI. Consult installed `node_modules/webs-sdk/docs/` for feature-specific guidance.
|
|
11
11
|
4. If functionality is absent, report the gap before creating shared functionality in a portal. Add reusable code to the SDK instead.
|
|
12
|
+
|
|
13
|
+
## UI governance (webs-sdk/ui)
|
|
14
|
+
|
|
15
|
+
**Prefer verified `webs-sdk/ui` exports over direct `@radix-ui` imports or local duplicates.** The SDK supplies many accessible primitives with `data-slot` attributes; check its actual export barrel before choosing one. Avoid direct Radix dependencies where an SDK export exists.
|
|
16
|
+
|
|
17
|
+
**Structural primitives are largely unbranded.** Style `Button`, `Input`, `Dialog`, `NavigationMenu`, `Card`, etc. with portal CSS tokens and Tailwind classes. Some exports (for example `Skeleton` and media players) do include styles: inspect the installed component before styling. Key gotchas verified in source: `Button` has no `variant`/`size` props; `navigationMenuTriggerStyle()` returns `""`; `Badge` accepts but silently strips its `variant` prop before rendering.
|
|
18
|
+
|
|
19
|
+
**Do not force a visual redesign** when a parity requirement (legacy andromeda match or Figma spec) exists. Use `webs-sdk/ui` for accessible structure; reproduce the exact visual via CSS.
|
|
20
|
+
|
|
21
|
+
See `references/ui.md` for styling patterns, the complete verified export map, and what is **not** in the barrel.
|
|
@@ -20,11 +20,13 @@ Choose an existing export before writing portal-specific code. Names below refle
|
|
|
20
20
|
|
|
21
21
|
## UI entry: `webs-sdk/ui`
|
|
22
22
|
|
|
23
|
+
Most structural primitives are **unbranded** Radix or native wrappers. Many emit `data-slot` attributes for CSS targeting and forward `className`; some exports (for example `Skeleton` and media players) include built-in classes. Apply portal visuals via `className` or `[data-slot]` selectors. Verify the installed barrel at `node_modules/webs-sdk/dist/components/ui/index.d.ts`; `references/ui.md` lists exceptions and styling patterns.
|
|
24
|
+
|
|
23
25
|
| Goal | Export | Decision |
|
|
24
26
|
| --- | --- | --- |
|
|
25
27
|
| Prop-configured video/audio | `ConfiguredMediaPlayer` | Preferred new Radix player for a ready-to-use layout. Set `src`, optional `poster`, `tracks`, `sources`, `controls`; see `references/integration.md` and installed `docs/CONFIGURED_MEDIA_PLAYER.md`. |
|
|
26
28
|
| Custom media controls | `MediaPlayer` plus `MediaPlayerVideo` / `MediaPlayerAudio`, `MediaPlayerControls`, `MediaPlayerPlay`, `MediaPlayerSeek`, `MediaPlayerTime`, `MediaPlayerVolume`, `MediaPlayerSettings`, `MediaPlayerFullscreen`, etc. | Composable Radix parts; root alone does not create media or controls. |
|
|
27
29
|
| Existing/legacy video integration | `VideoPlayer` | Different API (`videoUrl`, `posterImage`, `languages`); retain for existing consumers. |
|
|
28
|
-
| Standard UI primitives | `Button
|
|
30
|
+
| Standard UI primitives | `Button` (no variants — unstyled slot), `Input`, `Dialog`/parts, `DropdownMenu`/parts, `Tabs`/parts, `Select`/parts, `Tooltip`/parts, `Avatar`/parts, `Accordion`/parts, `Alert`, `Badge` (variant prop stripped), `Carousel`, `Checkbox`, `NavigationMenu`/parts (`navigationMenuTriggerStyle` returns `""`), `Textarea`, `Card`/parts, `Separator`, `Skeleton`, `Field`/parts, `Item`/parts, `InputGroup`/parts, `ButtonGroup`/parts, `Breadcrumb`/parts, `HoverCard`/parts, `AlertDialog`/parts, `Collapsible`/parts, `ContextMenu`/parts, `AspectRatio`, `Label` | Prefer exported primitives over direct `@radix-ui/*` imports when the SDK offers an equivalent. |
|
|
29
31
|
|
|
30
32
|
Both entry points have independent barrels. Import from `webs-sdk/ui` for UI, not `webs-sdk` or `webs-sdk/dist/...`. All React UI must run with a suitable client boundary and styling; consult `references/integration.md`.
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# webs-sdk/ui — UI governance for portal consumers
|
|
2
|
+
|
|
3
|
+
Import path: `from 'webs-sdk/ui'`
|
|
4
|
+
Authoritative export list: `node_modules/webs-sdk/dist/components/ui/index.d.ts`
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Rule 1 — Prefer existing `webs-sdk/ui` exports over direct `@radix-ui` imports
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
// ✅ Correct
|
|
12
|
+
import { Dialog, DialogContent, DialogTrigger } from 'webs-sdk/ui';
|
|
13
|
+
import { Tabs, TabsList, TabsTrigger, TabsContent } from 'webs-sdk/ui';
|
|
14
|
+
import { NavigationMenu, NavigationMenuList, NavigationMenuItem } from 'webs-sdk/ui';
|
|
15
|
+
|
|
16
|
+
// ❌ Wrong — creates version drift, duplicate bundle, breaks governance
|
|
17
|
+
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
The SDK exports many Radix-backed primitives with `data-slot` attributes. Verify the barrel first; use existing exports rather than duplicating them locally. Direct Radix imports for already-exported primitives risk version drift.
|
|
21
|
+
|
|
22
|
+
If a primitive you need is **missing from `webs-sdk/ui`**: report the gap and add it to the SDK source (`src/components/ui/`) rather than adding a direct Radix dep to the portal.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Rule 2 — Primitives are intentionally unstyled; you own all visual CSS
|
|
27
|
+
|
|
28
|
+
Most structural components wrap a Radix primitive or native element, expose a `data-slot` attribute and forward applicable props including `className`. Check each export for exceptions and built-in styles rather than assuming every primitive has the same implementation.
|
|
29
|
+
|
|
30
|
+
**Exceptions with minimal built-in classes:**
|
|
31
|
+
- `TooltipContent` — positioning and open/close animation classes
|
|
32
|
+
- `Skeleton` — `animate-pulse rounded-md bg-muted`
|
|
33
|
+
- `ConfiguredMediaPlayer` / `media-player` — rich layout classes for media controls
|
|
34
|
+
|
|
35
|
+
**Verified gotchas** (do not assume CVA variants exist):
|
|
36
|
+
|
|
37
|
+
| Component | Gotcha |
|
|
38
|
+
|---|---|
|
|
39
|
+
| `Button` | **No `variant` or `size` props.** Plain unstyled slot. Add your own via `className`. |
|
|
40
|
+
| `navigationMenuTriggerStyle()` | **Returns `""`** (empty string). Apply link/trigger styles yourself. |
|
|
41
|
+
| `Badge` | Accepts `variant?: "default"\|"outline"\|"secondary"\|"destructive"` but **silently strips it** before rendering. No variant classes are applied. |
|
|
42
|
+
| `Item` | Has `variant`/`size` props but outputs empty CVA strings — they become `data-variant`/`data-size` DOM attributes for CSS targeting only. |
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Rule 3 — Style via `className` or `[data-slot]` CSS; keep primitives unbranded
|
|
47
|
+
|
|
48
|
+
### Pattern A — inline `className` (component-level)
|
|
49
|
+
|
|
50
|
+
```tsx
|
|
51
|
+
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from 'webs-sdk/ui';
|
|
52
|
+
|
|
53
|
+
<Dialog>
|
|
54
|
+
<DialogTrigger className="rounded-full bg-[var(--color-primary)] px-6 py-2 text-sm font-semibold">
|
|
55
|
+
Open
|
|
56
|
+
</DialogTrigger>
|
|
57
|
+
<DialogContent className="rounded-2xl bg-[var(--color-bg-card)] border border-[var(--color-border)] p-8 max-w-lg">
|
|
58
|
+
<DialogHeader className="mb-4">
|
|
59
|
+
<DialogTitle className="text-xl font-semibold text-[--color-text-base]">
|
|
60
|
+
Title
|
|
61
|
+
</DialogTitle>
|
|
62
|
+
</DialogHeader>
|
|
63
|
+
</DialogContent>
|
|
64
|
+
</Dialog>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Pattern B — `[data-slot]` in `globals.css` (theme-wide)
|
|
68
|
+
|
|
69
|
+
```css
|
|
70
|
+
/* globals.css — applies to all Dialog instances in the portal */
|
|
71
|
+
[data-slot="dialog-content"] {
|
|
72
|
+
border-radius: 1rem;
|
|
73
|
+
background: var(--color-bg-card);
|
|
74
|
+
border: 1px solid var(--color-border);
|
|
75
|
+
padding: 2rem;
|
|
76
|
+
}
|
|
77
|
+
[data-slot="dialog-title"] {
|
|
78
|
+
font-size: 1.25rem;
|
|
79
|
+
font-weight: 600;
|
|
80
|
+
color: var(--color-text-base);
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Pattern C — thin portal wrapper (Figma-exact layout)
|
|
85
|
+
|
|
86
|
+
Wrap `webs-sdk/ui` parts in a portal component when you need Figma-specific structure (custom close icon, extra sections, specific variants):
|
|
87
|
+
|
|
88
|
+
```tsx
|
|
89
|
+
// src/components/ui/PortalDialog.tsx
|
|
90
|
+
'use client';
|
|
91
|
+
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from 'webs-sdk/ui';
|
|
92
|
+
import { cn } from '@/lib/utils';
|
|
93
|
+
|
|
94
|
+
export function PortalDialog({ title, trigger, children, className }: Props) {
|
|
95
|
+
return (
|
|
96
|
+
<Dialog>
|
|
97
|
+
<DialogTrigger asChild>{trigger}</DialogTrigger>
|
|
98
|
+
<DialogContent className={cn('rounded-2xl bg-[var(--color-bg-card)] p-8', className)}>
|
|
99
|
+
<DialogHeader>
|
|
100
|
+
<DialogTitle>{title}</DialogTitle>
|
|
101
|
+
</DialogHeader>
|
|
102
|
+
{children}
|
|
103
|
+
</DialogContent>
|
|
104
|
+
</Dialog>
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Rule 4 — Parity requirement overrides design system preference
|
|
112
|
+
|
|
113
|
+
When a portal must match legacy andromeda visually (or a Figma spec produced before this governance rule), **do not force a redesign**. Use `webs-sdk/ui` for accessible behaviour; reproduce the legacy visual exactly via CSS custom properties. Parity wins.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## NavigationMenu — navbar pattern
|
|
118
|
+
|
|
119
|
+
`navigationMenuTriggerStyle()` returns `""` — do not call it expecting classes:
|
|
120
|
+
|
|
121
|
+
```tsx
|
|
122
|
+
import { NavigationMenu, NavigationMenuList, NavigationMenuItem, NavigationMenuLink } from 'webs-sdk/ui';
|
|
123
|
+
|
|
124
|
+
<NavigationMenu className="hidden md:flex">
|
|
125
|
+
<NavigationMenuList className="flex items-center gap-1">
|
|
126
|
+
{pages.map(page => (
|
|
127
|
+
<NavigationMenuItem key={page.url}>
|
|
128
|
+
<NavigationMenuLink
|
|
129
|
+
href={page.url}
|
|
130
|
+
className="rounded-lg px-4 py-2 text-sm font-medium text-[var(--color-text-base)] hover:bg-[var(--color-bg-hover)]"
|
|
131
|
+
>
|
|
132
|
+
{page.label}
|
|
133
|
+
</NavigationMenuLink>
|
|
134
|
+
</NavigationMenuItem>
|
|
135
|
+
))}
|
|
136
|
+
</NavigationMenuList>
|
|
137
|
+
</NavigationMenu>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Tailwind v4 scan — required for ConfiguredMediaPlayer
|
|
143
|
+
|
|
144
|
+
`webs-sdk/ui` components that use Tailwind classes (media players, Skeleton, TooltipContent) are inside `node_modules`, which Tailwind v4 does not scan by default. Without this, player controls appear unstyled:
|
|
145
|
+
|
|
146
|
+
```css
|
|
147
|
+
/* portal globals.css or main CSS file */
|
|
148
|
+
@source "../../node_modules/webs-sdk/dist/components/ui";
|
|
149
|
+
/* adjust relative path to match where this CSS file lives */
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
See `node_modules/webs-sdk/docs/CONFIGURED_MEDIA_PLAYER.md` for the canonical path example.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## What is NOT in `webs-sdk/ui` (verify before use)
|
|
157
|
+
|
|
158
|
+
The following are **not** confirmed exports in the barrel at time of writing — always check `node_modules/webs-sdk/dist/components/ui/index.d.ts`:
|
|
159
|
+
|
|
160
|
+
- `Popover` (not exported)
|
|
161
|
+
- `Switch`
|
|
162
|
+
- `RadioGroup`
|
|
163
|
+
- `Progress`
|
|
164
|
+
- `Slider` (as a named export — Radix slider dep exists but verify export)
|
|
165
|
+
|
|
166
|
+
Never assume a component is available because a similar shadcn component exists. Verify, then use.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Design token conventions (portals)
|
|
171
|
+
|
|
172
|
+
Portal tokens live in `globals.css` under `:root` and `@theme inline` (Tailwind v4):
|
|
173
|
+
|
|
174
|
+
```css
|
|
175
|
+
:root {
|
|
176
|
+
--portal-primary: #ff8546;
|
|
177
|
+
--portal-card: #1a1a1a;
|
|
178
|
+
--portal-text: #fdfbff;
|
|
179
|
+
--portal-border: rgba(255,255,255,0.12);
|
|
180
|
+
--color-primary: var(--portal-primary);
|
|
181
|
+
--color-bg-card: var(--portal-card);
|
|
182
|
+
--color-text-base: var(--portal-text);
|
|
183
|
+
--color-border: var(--portal-border);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
@theme inline {
|
|
187
|
+
--color-primary: var(--portal-primary);
|
|
188
|
+
--color-card: var(--portal-card);
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Reference in component `className`:
|
|
193
|
+
```tsx
|
|
194
|
+
<Card className="bg-card border border-[var(--portal-border)] rounded-2xl p-6">
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Keep primitives unbranded (no portal-specific defaults baked in). In `next_template`, put shared tokens in `src/styles/globals.css` and portal overrides in `public/themes/{name}.css` loaded after it; follow the consumer's actual theme setup.
|