@builder.io/sdk-react-nextjs 0.14.7 → 0.14.9

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 (40) hide show
  1. package/lib/{node/USE_CLIENT_BUNDLE-04e65a8b.js → browser/USE_CLIENT_BUNDLE-07d1ba4b.js} +205 -212
  2. package/lib/browser/USE_CLIENT_BUNDLE-5b3511d0.cjs +21 -0
  3. package/lib/{edge/USE_SERVER_BUNDLE-536a078a.js → browser/USE_SERVER_BUNDLE-059335ee.js} +1 -1
  4. package/lib/{edge/USE_SERVER_BUNDLE-0165e9c2.cjs → browser/USE_SERVER_BUNDLE-4e489369.cjs} +1 -1
  5. package/lib/browser/{bundle-187b6567.js → bundle-53a4ab4a.js} +92 -88
  6. package/lib/browser/{bundle-f2d9f409.cjs → bundle-9d3cdb5c.cjs} +12 -11
  7. package/lib/browser/index.cjs +1 -1
  8. package/lib/browser/index.mjs +3 -3
  9. package/lib/edge/USE_CLIENT_BUNDLE-0d437014.cjs +21 -0
  10. package/lib/{browser/USE_CLIENT_BUNDLE-f0eac1bb.js → edge/USE_CLIENT_BUNDLE-99299aaa.js} +205 -212
  11. package/lib/{node/USE_SERVER_BUNDLE-dee3041b.js → edge/USE_SERVER_BUNDLE-2d91be32.js} +1 -1
  12. package/lib/{node/USE_SERVER_BUNDLE-6f53d199.cjs → edge/USE_SERVER_BUNDLE-37a2c2d3.cjs} +1 -1
  13. package/lib/edge/{bundle-d26182eb.js → bundle-d76be364.js} +199 -195
  14. package/lib/edge/{bundle-f84983cc.cjs → bundle-da19475d.cjs} +19 -18
  15. package/lib/edge/index.cjs +1 -1
  16. package/lib/edge/index.mjs +3 -3
  17. package/lib/node/USE_CLIENT_BUNDLE-94a936b5.cjs +21 -0
  18. package/lib/{edge/USE_CLIENT_BUNDLE-7cf0df22.js → node/USE_CLIENT_BUNDLE-aa4a4eb2.js} +205 -212
  19. package/lib/{browser/USE_SERVER_BUNDLE-280036e3.js → node/USE_SERVER_BUNDLE-91781c1b.js} +1 -1
  20. package/lib/{browser/USE_SERVER_BUNDLE-ea761ee7.cjs → node/USE_SERVER_BUNDLE-d58e151a.cjs} +1 -1
  21. package/lib/node/{bundle-29f6bee7.js → bundle-49817803.js} +45 -41
  22. package/lib/node/{bundle-b303d0db.cjs → bundle-955ea489.cjs} +8 -7
  23. package/lib/node/index.cjs +1 -1
  24. package/lib/node/index.mjs +3 -3
  25. package/package.json +1 -1
  26. package/types/cjs/components/content/components/enable-editor.d.ts +1 -1
  27. package/types/cjs/components/content/components/styles.d.ts +1 -0
  28. package/types/cjs/components/content/components/styles.helpers.d.ts +1 -0
  29. package/types/cjs/components/content/contentProps.types.d.ts +6 -1
  30. package/types/cjs/components/content-variants/content-variants.d.ts +1 -1
  31. package/types/cjs/constants/sdk-version.d.ts +1 -1
  32. package/types/esm/components/content/components/enable-editor.d.ts +1 -1
  33. package/types/esm/components/content/components/styles.d.ts +1 -0
  34. package/types/esm/components/content/components/styles.helpers.d.ts +1 -0
  35. package/types/esm/components/content/contentProps.types.d.ts +6 -1
  36. package/types/esm/components/content-variants/content-variants.d.ts +1 -1
  37. package/types/esm/constants/sdk-version.d.ts +1 -1
  38. package/lib/browser/USE_CLIENT_BUNDLE-9a694813.cjs +0 -21
  39. package/lib/edge/USE_CLIENT_BUNDLE-bda05805.cjs +0 -21
  40. package/lib/node/USE_CLIENT_BUNDLE-4e14ccee.cjs +0 -21
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./USE_CLIENT_BUNDLE-bda05805.cjs"),e=require("./bundle-f84983cc.cjs");require("react/jsx-runtime");require("react");require("./USE_SERVER_BUNDLE-0165e9c2.cjs");require("next/navigation");require("lru-cache");exports.Button=t.Button;exports.Fragment=t.FragmentComponent;exports.Image=t.Image;exports.Section=t.SectionComponent;exports.Video=t.Video;exports.Blocks=e.Blocks;exports.Columns=e.Columns;exports.Content=e.ContentVariants;exports.Symbol=e.Symbol;exports.Text=e.Text;exports._processContentResult=e._processContentResult;exports.createRegisterComponentMessage=e.createRegisterComponentMessage;exports.fetchBuilderProps=e.fetchBuilderProps;exports.fetchEntries=e.fetchEntries;exports.fetchOneEntry=e.fetchOneEntry;exports.getBuilderSearchParams=e.getBuilderSearchParams;exports.isEditing=e.isEditing;exports.isPreviewing=e.isPreviewing;exports.register=e.register;exports.setEditorSettings=e.setEditorSettings;exports.subscribeToEditor=e.subscribeToEditor;exports.track=e.track;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./USE_CLIENT_BUNDLE-0d437014.cjs"),e=require("./bundle-da19475d.cjs");require("react/jsx-runtime");require("react");require("./USE_SERVER_BUNDLE-37a2c2d3.cjs");require("next/navigation");require("lru-cache");exports.Button=t.Button;exports.Fragment=t.FragmentComponent;exports.Image=t.Image;exports.Section=t.SectionComponent;exports.Video=t.Video;exports.Blocks=e.Blocks;exports.Columns=e.Columns;exports.Content=e.ContentVariants;exports.Symbol=e.Symbol;exports.Text=e.Text;exports._processContentResult=e._processContentResult;exports.createRegisterComponentMessage=e.createRegisterComponentMessage;exports.fetchBuilderProps=e.fetchBuilderProps;exports.fetchEntries=e.fetchEntries;exports.fetchOneEntry=e.fetchOneEntry;exports.getBuilderSearchParams=e.getBuilderSearchParams;exports.isEditing=e.isEditing;exports.isPreviewing=e.isPreviewing;exports.register=e.register;exports.setEditorSettings=e.setEditorSettings;exports.subscribeToEditor=e.subscribeToEditor;exports.track=e.track;
@@ -1,8 +1,8 @@
1
- import { c as n, F as m, d as c, S as p, V as g } from "./USE_CLIENT_BUNDLE-7cf0df22.js";
2
- import { B as l, C as u, w as E, S, T as f, F as B, p as C, E as h, G as x, q as b, z as y, c as F, j as P, x as T, y as k, D as w, A as R } from "./bundle-d26182eb.js";
1
+ import { c as n, F as m, d as c, S as p, V as g } from "./USE_CLIENT_BUNDLE-99299aaa.js";
2
+ import { B as l, C as u, w as E, S, T as f, F as B, p as C, E as h, G as x, q as b, z as y, c as F, j as P, x as T, y as k, D as w, A as R } from "./bundle-d76be364.js";
3
3
  import "react/jsx-runtime";
4
4
  import "react";
5
- import "./USE_SERVER_BUNDLE-536a078a.js";
5
+ import "./USE_SERVER_BUNDLE-2d91be32.js";
6
6
  import "next/navigation";
7
7
  import "lru-cache";
8
8
  export {
@@ -0,0 +1,21 @@
1
+ "use client";"use strict";const t=require("react/jsx-runtime"),a=require("./bundle-955ea489.cjs"),o=require("react"),_=require("./USE_SERVER_BUNDLE-d58e151a.cjs"),z=require("next/navigation");function E(e){return t.jsx(t.Fragment,{children:a.isEmptyElement(e.TagName)?t.jsx(t.Fragment,{children:t.jsx(e.TagName,{...e.attributes,...e.actionAttributes})}):t.jsx(t.Fragment,{children:typeof e.TagName=="string"?t.jsx(e.TagName,{...e.attributes,...e.actionAttributes,children:e.children}):t.jsx(e.TagName,{...e.attributes,...e.actionAttributes,children:e.children})})})}function M(e){return t.jsx(E,{attributes:{...e.attributes,[a.getClassPropName()]:`${e.link?"":"builder-button"} ${e.attributes[a.getClassPropName()]||""}`,...e.link?{href:e.link,target:e.openLinkInNewTab?"_blank":void 0,role:"link"}:{role:"button"}},TagName:e.link?e.builderLinkComponent||"a":"button",actionAttributes:{},children:e.text})}function D(e){return t.jsx(E,{TagName:e.Wrapper,attributes:a.getBlockProperties({block:e.block,context:e.context}),actionAttributes:a.getBlockActions({block:e.block,rootState:e.context.rootState,rootSetState:e.context.rootSetState,localState:e.context.localState,context:e.context.context,stripPrefix:!0}),children:e.children})}function V(e){return t.jsx(e.Wrapper,{...e.wrapperProps,attributes:e.includeBlockProps?{...a.getBlockProperties({block:e.block,context:e.context}),...a.getBlockActions({block:e.block,rootState:e.context.rootState,rootSetState:e.context.rootSetState,localState:e.context.localState,context:e.context.context})}:{},children:e.children})}function H(e){function r(){var l;return"builder-blocks"+((l=e.blocks)!=null&&l.length?"":" no-blocks")}function m(){var l,b;a.isEditing()&&!((l=e.blocks)!=null&&l.length)&&((b=window.parent)==null||b.postMessage({type:"builder.clickEmptyBlocks",data:{parentElementId:e.parent,dataPath:e.path}},"*"))}function S(){var l,b;a.isEditing()&&!((l=e.blocks)!=null&&l.length)&&((b=window.parent)==null||b.postMessage({type:"builder.hoverEmptyBlocks",data:{parentElementId:e.parent,dataPath:e.path}},"*"))}return t.jsxs(t.Fragment,{children:[t.jsx(e.BlocksWrapper,{className:r()+" props-blocks-wrapper-7cd1560e","builder-path":e.path,"builder-parent-id":e.parent,style:e.styleProp,onClick:l=>m(),onMouseEnter:l=>S(),onKeyPress:l=>m(),...e.BlocksWrapperProps,children:e.children}),t.jsx("style",{children:`.props-blocks-wrapper-7cd1560e {
2
+ display: flex;
3
+ flex-direction: column;
4
+ align-items: stretch;
5
+ }`})]})}function U(e){return t.jsx("span",{children:e.children})}function $(e){var l,b,h,x;function r(){var f;const d=e.image||e.src;if(!d||!(d.match(/builder\.io/)||d.match(/cdn\.shopify\.com/)))return e.srcset;if(e.srcset&&((f=e.image)!=null&&f.includes("builder.io/api/v1/image"))){if(!e.srcset.includes(e.image.split("?")[0]))return console.debug("Removed given srcset"),a.getSrcSet(d)}else if(e.image&&!e.srcset)return a.getSrcSet(d);return a.getSrcSet(d)}function m(){var g;return(g=r==null?void 0:r())!=null&&g.match(/builder\.io/)&&!e.noWebp?r().replace(/\?/g,"?format=webp&"):""}function S(){const g={position:"absolute",height:"100%",width:"100%",left:"0px",top:"0px"};return e.aspectRatio?g:void 0}return t.jsxs(t.Fragment,{children:[t.jsxs(t.Fragment,{children:[t.jsxs("picture",{children:[m()?t.jsx("source",{type:"image/webp",srcSet:m()}):null,t.jsx("img",{loading:"lazy",alt:e.altText,role:e.altText?void 0:"presentation",style:{objectPosition:e.backgroundPosition||"center",objectFit:e.backgroundSize||"cover",...S()},className:"builder-image"+(e.className?" "+e.className:"")+" img-a0c95e8c",src:e.image,srcSet:r(),sizes:e.sizes})]}),e.aspectRatio&&!((b=(l=e.builderBlock)==null?void 0:l.children)!=null&&b.length&&e.fitContent)?t.jsx("div",{className:"builder-image-sizer div-a0c95e8c",style:{paddingTop:e.aspectRatio*100+"%"}}):null,(x=(h=e.builderBlock)==null?void 0:h.children)!=null&&x.length&&e.fitContent?t.jsx(t.Fragment,{children:e.children}):null,!e.fitContent&&e.children?t.jsx("div",{className:"div-a0c95e8c-2",children:e.children}):null]}),t.jsx("style",{children:`.img-a0c95e8c {
6
+ opacity: 1;
7
+ transition: opacity 0.2s ease-in-out;
8
+ }.div-a0c95e8c {
9
+ width: 100%;
10
+ pointer-events: none;
11
+ font-size: 0;
12
+ }.div-a0c95e8c-2 {
13
+ display: flex;
14
+ flex-direction: column;
15
+ align-items: stretch;
16
+ position: absolute;
17
+ top: 0;
18
+ left: 0;
19
+ width: 100%;
20
+ height: 100%;
21
+ }`})]})}function O(e){return t.jsx("section",{...e.attributes,style:{width:"100%",alignSelf:"stretch",flexGrow:1,boxSizing:"border-box",maxWidth:e.maxWidth||1200,display:"flex",flexDirection:"column",alignItems:"stretch",marginLeft:"auto",marginRight:"auto"},children:e.children})}function J(e){const r=o.useRef(null),[m,S]=o.useState(()=>[]),[l,b]=o.useState(()=>[]);return o.useEffect(()=>{var x;if(!((x=r.current)!=null&&x.getElementsByTagName)||typeof window>"u")return;const h=r.current.getElementsByTagName("script");for(let g=0;g<h.length;g++){const d=h[g];if(d.src){if(m.includes(d.src))continue;m.push(d.src);const f=document.createElement("script");f.async=!0,f.src=d.src,document.head.appendChild(f)}else if(!d.type||["text/javascript","application/javascript","application/ecmascript"].includes(d.type)){if(l.includes(d.innerText))continue;try{l.push(d.innerText),new Function(d.innerText)()}catch(f){console.warn("`CustomCode`: Error running script:",f)}}}},[]),t.jsx("div",{ref:r,className:"builder-custom-code"+(e.replaceNodes?" replace-nodes":""),dangerouslySetInnerHTML:{__html:e.code}})}function G(e){const r=o.useRef(null),[m,S]=o.useState(()=>[]),[l,b]=o.useState(()=>[]),[h,x]=o.useState(()=>!1);function g(){if(!r.current||!r.current.getElementsByTagName)return;const d=r.current.getElementsByTagName("script");for(let f=0;f<d.length;f++){const k=d[f];if(k.src&&!m.includes(k.src)){m.push(k.src);const y=document.createElement("script");y.async=!0,y.src=k.src,document.head.appendChild(y)}else if(a.isJsScript(k)&&!l.includes(k.innerText))try{l.push(k.innerText),new Function(k.innerText)()}catch(y){console.warn("`Embed`: Error running script:",y)}}}return o.useEffect(()=>{r.current&&!h&&(x(!0),g())},[r.current,h]),t.jsx("div",{className:"builder-embed",ref:r,dangerouslySetInnerHTML:{__html:e.content}})}function Q(e){return t.jsx("img",{style:{objectFit:e.backgroundSize||"cover",objectPosition:e.backgroundPosition||"center"},alt:e.altText,src:e.imgSrc||e.image,...e.attributes},a.isEditing()&&e.imgSrc||"default-key")}function X(e){var S,l,b,h,x,g,d;function r(){return{...e.autoPlay===!0?{autoPlay:!0}:{},...e.muted===!0?{muted:!0}:{},...e.controls===!0?{controls:!0}:{},...e.loop===!0?{loop:!0}:{},...e.playsInline===!0?{playsInline:!0}:{}}}function m(){return{...r()}}return t.jsxs("div",{style:{position:"relative"},children:[t.jsx("video",{className:"builder-video",...m(),preload:e.preload||"metadata",style:{width:"100%",height:"100%",...(S=e.attributes)==null?void 0:S.style,objectFit:e.fit,objectPosition:e.position,zIndex:2,borderRadius:"1px",...e.aspectRatio?{position:"absolute"}:null},src:e.video||"no-src",poster:e.posterImage,children:e.lazyLoad?null:t.jsx("source",{type:"video/mp4",src:e.video})}),e.aspectRatio&&!(e.fitContent&&((b=(l=e.builderBlock)==null?void 0:l.children)!=null&&b.length))?t.jsx("div",{style:{width:"100%",paddingTop:e.aspectRatio*100+"%",pointerEvents:"none",fontSize:"0px"}}):null,(x=(h=e.builderBlock)==null?void 0:h.children)!=null&&x.length&&e.fitContent?t.jsx("div",{style:{display:"flex",flexDirection:"column",alignItems:"stretch"},children:e.children}):null,(d=(g=e.builderBlock)==null?void 0:g.children)!=null&&d.length&&!e.fitContent?t.jsx("div",{style:{pointerEvents:"none",display:"flex",flexDirection:"column",alignItems:"stretch",position:"absolute",top:"0",left:"0",width:"100%",height:"100%"},children:e.children}):null]})}const Y=o.createContext({content:null,context:{},localState:void 0,rootSetState(){},rootState:{},apiKey:null,apiVersion:void 0,componentInfos:{},inheritedStyles:{},BlocksWrapper:"div",BlocksWrapperProps:{}});function Z(e){var R,P,T,B,N,L,F;const r=o.useRef(null);function m(i){var c,s;const n={...e.builderContextSignal.rootState,...i};e.builderContextSignal.rootSetState?(s=(c=e.builderContextSignal).rootSetState)==null||s.call(c,n):e.builderContextSignal.rootState=n}function S(i){var c,s,u,v,W;const n={...e.builderContextSignal.content,...i,data:{...(c=e.builderContextSignal.content)==null?void 0:c.data,...i==null?void 0:i.data},meta:{...(s=e.builderContextSignal.content)==null?void 0:s.meta,...i==null?void 0:i.meta,breakpoints:((u=i==null?void 0:i.meta)==null?void 0:u.breakpoints)||((W=(v=e.builderContextSignal.content)==null?void 0:v.meta)==null?void 0:W.breakpoints)}};_.postPreviewContent({value:n,key:n.id}).then(()=>{q.refresh()})}const[l,b]=o.useState(()=>e.contentWrapper||"div");function h(i){return a.createEditorListener({model:e.model,trustedHosts:e.trustedHosts,callbacks:{configureSdk:n=>{var u;const{breakpoints:c,contentId:s}=n;!s||s!==((u=e.builderContextSignal.content)==null?void 0:u.id)||c&&S({meta:{breakpoints:c}})},animation:n=>{a.triggerAnimation(n)},contentUpdate:n=>{S(n)}}})(i)}function x(){var n,c;const i=(c=(n=e.builderContextSignal.content)==null?void 0:n.data)==null?void 0:c.jsCode;i&&a.evaluate({code:i,context:e.context||{},localState:void 0,rootState:e.builderContextSignal.rootState,rootSetState:e.builderContextSignal.rootSetState,enableCache:!1})}const[g,d]=o.useState(()=>({})),[f,k]=o.useState(()=>!1);function y(i){var n,c;if(e.builderContextSignal.content){const s=(n=e.builderContextSignal.content)==null?void 0:n.testVariationId,u=(c=e.builderContextSignal.content)==null?void 0:c.id;a._track({type:"click",canTrack:a.getDefaultCanTrack(e.canTrack),contentId:u,apiKey:e.apiKey,variationId:s!==u?s:void 0,...a.getInteractionPropertiesForEvent(i),unique:!f})}f||k(!0)}function A(i){return i.replace(/{{([^}]+)}}/g,(n,c)=>String(a.evaluate({code:c,context:e.context||{},localState:void 0,rootState:e.builderContextSignal.rootState,rootSetState:e.builderContextSignal.rootSetState,enableCache:!0})))}function K({url:i,key:n}){a.fetch(i).then(c=>c.json()).then(c=>{var u,v;const s={...e.builderContextSignal.rootState,[n]:c};(v=(u=e.builderContextSignal).rootSetState)==null||v.call(u,s),g[n]=!0}).catch(c=>{console.error("error fetching dynamic data",i,c)})}function j(){var n,c;const i=((c=(n=e.builderContextSignal.content)==null?void 0:n.data)==null?void 0:c.httpRequests)??{};Object.entries(i).forEach(([s,u])=>{if(u&&(!g[s]||a.isEditing())){const v=A(u);K({url:v,key:s})}})}function C(){a.isEditing()&&window.dispatchEvent(new CustomEvent("builder:component:stateChange",{detail:{state:a.fastClone(e.builderContextSignal.rootState),ref:{name:e.model}}}))}function w(i){window.addEventListener("message",h),a.registerInsertMenu(),a.setupBrowserForEditing({...e.locale?{locale:e.locale}:{},...e.enrich?{enrich:e.enrich}:{},...e.trustedHosts?{trustedHosts:e.trustedHosts}:{}}),Object.values(e.builderContextSignal.componentInfos).forEach(n=>{var s;const c=a.createRegisterComponentMessage(n);(s=window.parent)==null||s.postMessage(c,"*")}),window.addEventListener("builder:component:stateChangeListenerActivated",C)}function I(i){const n=new URL(location.href).searchParams,c=n.get("builder.preview"),s=n.get(`builder.preview.${c}`),u=n.get("apiKey")||n.get("builder.space");c===e.model&&u===e.apiKey&&(!e.content||s===e.content.id)&&a.fetchOneEntry({model:e.model,apiKey:e.apiKey,apiVersion:e.builderContextSignal.apiVersion}).then(v=>{v&&S(v)})}const q=z.useRouter();return o.useEffect(()=>{var i;return(i=r.current)==null||i.addEventListener("initeditingbldr",w),()=>{var n;return(n=r.current)==null?void 0:n.removeEventListener("initeditingbldr",w)}},[]),o.useEffect(()=>{var i;return(i=r.current)==null||i.addEventListener("initpreviewingbldr",I),()=>{var n;return(n=r.current)==null?void 0:n.removeEventListener("initpreviewingbldr",I)}},[]),o.useEffect(()=>{var i,n;if(a.isBrowser()){if(a.isEditing()&&r.current&&r.current.dispatchEvent(new CustomEvent("initeditingbldr")),e.builderContextSignal.content&&a.getDefaultCanTrack(e.canTrack)){const s=(i=e.builderContextSignal.content)==null?void 0:i.testVariationId,u=(n=e.builderContextSignal.content)==null?void 0:n.id,v=e.apiKey;a._track({type:"impression",canTrack:!0,contentId:u,apiKey:v,variationId:s!==u?s:void 0})}a.isPreviewing()}},[]),o.useEffect(()=>{e.apiKey||a.logger.error("No API key provided to `RenderContent` component. This can cause issues. Please provide an API key using the `apiKey` prop."),x(),j(),C()},[]),o.useEffect(()=>{},[e.content]),o.useEffect(()=>{x()},[(P=(R=e.builderContextSignal.content)==null?void 0:R.data)==null?void 0:P.jsCode]),o.useEffect(()=>{j()},[(B=(T=e.builderContextSignal.content)==null?void 0:T.data)==null?void 0:B.httpRequests]),o.useEffect(()=>{C()},[e.builderContextSignal.rootState]),o.useEffect(()=>{e.data&&m(e.data)},[e.data]),o.useEffect(()=>{e.locale&&m({locale:e.locale})},[e.locale]),o.useEffect(()=>()=>{a.isBrowser()&&(window.removeEventListener("message",h),window.removeEventListener("builder:component:stateChangeListenerActivated",C))},[]),t.jsx(Y.Provider,{value:e.builderContextSignal,children:e.builderContextSignal.content?t.jsx(l,{ref:r,onClick:i=>y(i),"builder-content-id":(N=e.builderContextSignal.content)==null?void 0:N.id,"builder-model":e.model,...e.showContent?{}:{hidden:!0,"aria-hidden":!0},...e.contentWrapperProps,className:`variant-${((L=e.content)==null?void 0:L.testVariationId)||((F=e.content)==null?void 0:F.id)}`,children:e.children}):null})}exports.BlockWrapper=D;exports.BlocksWrapper=H;exports.Button=M;exports.CustomCode=J;exports.DynamicRenderer=E;exports.Embed=G;exports.EnableEditor=Z;exports.FragmentComponent=U;exports.Image=$;exports.ImgComponent=Q;exports.InteractiveElement=V;exports.SectionComponent=O;exports.Video=X;