slice-machine-ui 1.23.2-alpha.bmo-add-github-settings-page.4 → 1.23.2-alpha.bmo-add-github-settings-page.6
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/components/DeleteSliceModal/index.tsx +34 -24
- package/components/Forms/CreateCustomTypeModal/CreateCustomTypeModal.tsx +61 -38
- package/components/Forms/RenameCustomTypeModal/RenameCustomTypeModal.tsx +2 -2
- package/components/Forms/RenameSliceModal/RenameSliceModal.tsx +33 -21
- package/components/Navigation/ChangesListItem.tsx +14 -32
- package/lib/models/common/widgets/StructuredText/index.ts +1 -1
- package/out/404.html +1 -1
- package/out/_next/static/chunks/25-01f422cea8066349.js +1 -0
- package/out/_next/static/chunks/{318-bd030cc1725e23b5.js → 318-99b5914b60bf1d17.js} +1 -1
- package/out/_next/static/chunks/727-f8fefdd3e50cab2a.js +1 -0
- package/out/_next/static/chunks/799-b467582de0a7254f.js +1 -0
- package/out/_next/static/chunks/904-4653b7a849f4db94.js +1 -0
- package/out/_next/static/chunks/pages/{_app-027b9e90438a0d83.js → _app-95e9373e879af96c.js} +26 -26
- package/out/_next/static/chunks/pages/{changes-8de69920dfb5a48f.js → changes-ac7d64fc8ec82b39.js} +1 -1
- package/out/_next/static/chunks/pages/custom-types/{[customTypeId]-3f862ad6111a1fc0.js → [customTypeId]-97ab3b90b85d645d.js} +1 -1
- package/out/_next/static/chunks/pages/{custom-types-94b8f8dbf7727412.js → custom-types-3c8e721ec6802127.js} +1 -1
- package/out/_next/static/chunks/pages/index-cf93d16e9c63b6db.js +1 -0
- package/out/_next/static/chunks/pages/page-types/{[pageTypeId]-d1ffca11c42f2603.js → [pageTypeId]-84a22c5e480d3fa9.js} +1 -1
- package/out/_next/static/chunks/pages/settings-0961cf5b601e4baf.js +1 -0
- package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]/{simulator-b12346e58ac9abea.js → simulator-c498e9c80cae8cce.js} +1 -1
- package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]-8038454f751ad0b9.js +1 -0
- package/out/_next/static/chunks/pages/slices-4522d604117d8c66.js +1 -0
- package/out/_next/static/{eFhKCr9d2Q8SjtAKgFjlm → giA50Mi0bmd47Gv-gysZU}/_buildManifest.js +1 -1
- package/out/changelog.html +1 -1
- package/out/changes.html +1 -1
- package/out/custom-types/[customTypeId].html +1 -1
- package/out/custom-types.html +1 -1
- package/out/index.html +1 -1
- package/out/labs.html +1 -1
- package/out/page-types/[pageTypeId].html +1 -1
- package/out/settings.html +1 -1
- package/out/slices/[lib]/[sliceName]/[variation]/simulator.html +1 -1
- package/out/slices/[lib]/[sliceName]/[variation].html +1 -1
- package/out/slices.html +1 -1
- package/package.json +3 -3
- package/pages/slices.tsx +20 -8
- package/src/apiClient.ts +1 -22
- package/src/domain/__tests__/customType.test.ts +179 -0
- package/src/domain/customType.ts +110 -2
- package/src/domain/slice.ts +38 -0
- package/src/features/customTypes/PageTypeOnboarding.tsx +21 -26
- package/src/features/customTypes/actions/convertCustomToPageType.ts +14 -10
- package/src/features/customTypes/actions/createCustomType.ts +69 -0
- package/src/features/customTypes/actions/deleteCustomType.ts +13 -3
- package/src/features/customTypes/actions/renameCustomType.ts +10 -4
- package/src/features/customTypes/customTypesBuilder/CustomTypesBuilderPage.tsx +3 -1
- package/src/features/customTypes/customTypesTable/CustomTypesTable.tsx +8 -8
- package/src/features/customTypes/customTypesTable/CustomTypesTablePage.tsx +18 -17
- package/src/features/settings/git/GitProvider.ts +1 -1
- package/src/features/settings/git/GitRepositoryConnectDialog.tsx +1 -2
- package/src/features/slices/actions/createSlice.ts +5 -29
- package/src/features/slices/actions/deleteSlice.ts +33 -0
- package/src/features/slices/actions/renameSlice.ts +37 -0
- package/src/modules/availableCustomTypes/index.ts +29 -135
- package/src/modules/loading/types.ts +0 -5
- package/src/modules/modal/types.ts +0 -3
- package/src/modules/slices/index.ts +27 -193
- package/src/modules/slices/selector.ts +0 -14
- package/src/modules/useSliceMachineActions.ts +70 -89
- package/src/modules/userContext/index.ts +3 -3
- package/src/redux/saga.ts +0 -4
- package/test/src/modules/availableCustomTypes/index.test.ts +2 -243
- package/test/src/modules/slices.test.ts +1 -267
- package/out/_next/static/chunks/25-37d6fa7f064be04b.js +0 -1
- package/out/_next/static/chunks/727-2235967a881f9035.js +0 -1
- package/out/_next/static/chunks/731-a9b66ccdc3fae2c2.js +0 -1
- package/out/_next/static/chunks/904-6d6937d53ea2761e.js +0 -1
- package/out/_next/static/chunks/pages/index-64cfb8b0948ba8ef.js +0 -1
- package/out/_next/static/chunks/pages/settings-41fc2a11b6be2683.js +0 -1
- package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]-62b55bae7f1b3793.js +0 -1
- package/out/_next/static/chunks/pages/slices-81e382c3374273df.js +0 -1
- package/src/features/customTypes/__tests__/createCustomType.test.ts +0 -159
- package/src/features/customTypes/customTypesTable/createCustomType.ts +0 -107
- package/test/components/CreateCustomTypeModal.test.tsx +0 -73
- /package/out/_next/static/{eFhKCr9d2Q8SjtAKgFjlm → giA50Mi0bmd47Gv-gysZU}/_ssgManifest.js +0 -0
package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]-62b55bae7f1b3793.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[136],{31314:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/slices/[lib]/[sliceName]/[variation]",function(){return t(79336)}])},38876:function(e,n,t){"use strict";t.d(n,{MP:function(){return o},T3:function(){return c},Ti:function(){return r},lV:function(){return s}});var i=/-(\w)/g;function r(e){return e.includes("-")?"['".concat(e,"']"):".".concat(e)}function o(e){return e?(e=e.replace(/_/g,"-").replace(i,function(e,n){return n?n.toUpperCase():""}))[0].toUpperCase()+e.slice(1):""}var a=/\B([A-Z])/g;function c(e){var n;return e.replace(a,"-$1").toLowerCase().replace(/-/g,"_")}var s=function(e){return e.trim().replace(/ /g,"_").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase()}},79336:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return ew}});var i=t(52322),r=t(97729),o=t.n(r),a=t(5632),c=t(22715),s=t(28316),u=t(83462),l=t(38876),d=t(2353),f=t(44384),v=t(28173),p=t(53559),m=t(22710),h=t(62230),y=t(85244),x=t(99267),g=t(2784),j=t(74217),b=t(41072),w=t(82770),Z=t(90374),I=(0,g.createContext)(void 0);function S(e){var n=e.children,t=e.initialSlice,r=(0,a.useRouter)(),o=(0,g.useState)(t),c=o[0],s=o[1],u=(0,b.Q)({errorMessage:"Failed to save slice. Check your browser's console for more information."}),l=u.autoSaveStatus,d=u.setNextSave,f=(0,Z.Z)().saveSliceSuccess,v=(0,j.R9)(f),p=(0,g.useMemo)(function(){var e=r.query.variation,n=c.model.variations.find(function(n){return n.id===e});if(n)return n;throw Error("Variation not found")},[c,r]),S=(0,g.useCallback)(function(e){s(e),d((0,m.Z)(function(){var n,t,i,r,o;return(0,x.__generator)(this,function(n){switch(n.label){case 0:return[4,(0,w.Ve)(e)];case 1:if((t=n.sent().errors).length>0)throw t;return[4,(0,w.pL)({libraryID:e.from,sliceID:e.model.id})];case 2:if(r=(i=n.sent()).errors,o=i.mocks,r.length>0)throw r;return v((0,y.Z)((0,h.Z)({},e),{mocks:o})),[2]}})}))},[d,v]),C=(0,g.useMemo)(function(){return{autoSaveStatus:l,slice:c,setSlice:S,variation:p}},[l,c,S,p]);return(0,i.jsx)(I.Provider,{value:C,children:"function"==typeof n?n(C):n})}function C(){var e=(0,g.useContext)(I);if(!e)throw Error("SliceBuilderProvider not found");return e}var k=t(5479),T=t(8482),F=t(4092),E=function(){var e=C(),n=e.slice,t=e.setSlice,r=e.variation,o=function(e){return function(i){var o=(0,k.AK)({slice:n,variationId:r.id,widgetArea:e,fieldId:i});t(o)}},a=function(e){return function(i){var o=i.apiId,a=i.newKey,c=i.value,s=(0,k.L4)({slice:n,variationId:r.id,widgetArea:e,previousFieldId:o,newFieldId:a,newField:c});t(s)}},c=function(e){return function(i){var o=i.id,a=i.label,c=i.widgetTypeName,s=d[c];s||console.log('Could not find widget with type name "'.concat(c,'". Please contact us!'));var u=s.create(a);if("Range"===u.type||"IntegrationFields"===u.type||"Separator"===u.type)throw Error("Unsupported Field Type: ".concat(u.type));try{d[u.type].schema.validateSync(u,{stripUnknown:!1})}catch(l){throw Error('Model is invalid for widget "'.concat(u.type,'".'))}var f=(0,k.xS)({slice:n,variationId:r.id,widgetArea:e,newFieldId:o,newField:u});t(f)}},m=function(e){return function(i){if(!(0,u.uS)(i)){var o=i.source,a=i.destination;if(a){var c=(0,k.gR)({slice:n,variationId:r.id,widgetArea:e,sourceIndex:o.index,destinationIndex:a.index});(0,s.flushSync)(function(){return t(c)})}}}};return(0,i.jsxs)(v.aV,{children:[(0,i.jsx)(T.Z,{zoneType:"slice",tabId:void 0,title:"Non-Repeatable Zone",dataTip:" The non-repeatable zone\n is for fields<br/> that should appear once, like a<br/>\n section title.\n",fields:r.primary,EditModal:F.Z,widgetsArray:f.Z,onDeleteItem:o(p.Rt.Primary),onSave:a(p.Rt.Primary),onSaveNewField:c(p.Rt.Primary),onDragEnd:m(p.Rt.Primary),poolOfFieldsToCheck:r.primary||[],renderHintBase:function(e){var n=e.item;return"slice.primary".concat((0,l.Ti)(n.key))},renderFieldAccessor:function(e){return"slice.primary".concat((0,l.Ti)(e))},dataCy:"static-zone-content",isRepeatableCustomType:void 0}),(0,i.jsx)(T.Z,{zoneType:"slice",tabId:void 0,isRepeatable:!0,title:"Repeatable Zone",dataTip:"The repeatable zone is for a group<br/>\n of fields that you want to be able to repeat an<br/>\n indeterminate number of times, like FAQs",widgetsArray:f.Z,fields:r.items,EditModal:F.Z,onDeleteItem:o(p.Rt.Items),onSave:a(p.Rt.Items),onSaveNewField:c(p.Rt.Items),onDragEnd:m(p.Rt.Items),poolOfFieldsToCheck:r.items||[],renderHintBase:function(e){var n=e.item;return"item".concat((0,l.Ti)(n.key))},renderFieldAccessor:function(e){return"slice.items[i]".concat((0,l.Ti)(e))},dataCy:"slice-repeatable-zone",isRepeatableCustomType:void 0})]})},R=t(88932),A=t(36131),O=t(63397),_=t(75289),N=t(76635),L=t(25812),V=t(54132),D=function(e){var n=e.children,t=e.FooterContent,r=e.HeaderContent,o=e.close,a=e.sx,c=e.headerSx,s=void 0===c?{}:c;return(0,i.jsx)(V.Z,{borderFooter:!0,footerSx:{p:0},bodySx:{pt:2,pb:4,px:4},sx:(0,h.Z)({border:"none"},void 0===a?{}:a),Header:function(e){var n=e.radius;return(0,i.jsxs)(_.kC,{sx:(0,h.Z)({p:3,pl:4,bg:"headSection",alignItems:"center",justifyContent:"space-between",borderTopLeftRadius:n,borderTopRightRadius:n,borderBottom:function(e){var n;return"1px solid ".concat(null===(n=e.colors)||void 0===n?void 0:n.borders)}},s),children:[r,o?(0,i.jsx)(_.x8,{onClick:o,type:"button"}):null]})},Footer:t?(0,i.jsxs)(_.kC,{sx:{alignItems:"space-between",bg:"headSection",p:3},children:[(0,i.jsx)(_.xu,{sx:{ml:"auto"}}),t]}):null,children:n})},P=function(e){var n=e.msg;return(0,i.jsx)(_.xv,{as:"span",sx:{fontSize:12,color:"error",mt:"5px",ml:2},children:n||"Error!"})},z=function(e){var n=e.isOpen,t=e.onClose,r=e.onSubmit,o=e.initialVariation,a=e.variations,s=function(e){var n=e.id,t=e.name,i=e.origin,r=n&&n.length?null:{id:"Required!"},o=a.find(function(e){return e.id===n})?{id:"This id already exists!"}:null,c=t&&t.length?null:{name:"Required!"},s=i.value.length&&a.find(function(e){return e.id===i.value})?null:{id:"You must select an existing variation!"},u=n&&n.length&&!/^[A-Za-z0-9]+([A-Za-z0-9]+)*$/.exec(n)&&{id:"No special characters allowed"};return(0,h.Z)({},r,o,c,s,u)},u=function(e){I((0,N.camelCase)(e))},l=function(e){E(e),C&&u(e)},d=function(e){k(!1),u(e)},f=function(){v(),t()},v=function(){I(""),E(""),b({}),k(!0),z({value:o.id,label:o.name})},p=(0,g.useState)({}),j=p[0],b=p[1],w=(0,g.useState)(""),Z=w[0],I=w[1],S=(0,g.useState)(!0),C=S[0],k=S[1],T=(0,g.useState)(""),F=T[0],E=T[1],R=(0,g.useState)({value:o.id,label:o.name}),V=R[0],z=R[1],M=(0,g.useState)(!1),K=M[0],B=M[1];function q(){return H.apply(this,arguments)}function H(){return(H=(0,m.Z)(function(){var e,n;return(0,x.__generator)(this,function(t){switch(t.label){case 0:if(!Object.keys(e=s({id:Z,name:F,origin:V})).length)return[3,1];return b(e),[3,3];case 1:if(!(n=a.find(function(e){return e.id===V.value})))return[3,3];return B(!0),[4,r(Z,F,n)];case 2:t.sent(),B(!1),f(),t.label=3;case 3:return[2]}})})).apply(this,arguments)}return(0,g.useEffect)(function(){v()},[o,n]),(0,i.jsx)(L.Z,{isOpen:n,shouldCloseOnOverlayClick:!0,onRequestClose:function(){return f()},contentLabel:"Widget Form Modal",style:{content:{maxWidth:"700px"}},children:(0,i.jsx)(O.J9,{initialValues:{id:Z,name:F,origin:V},onSubmit:q,children:(0,i.jsx)(O.l0,{id:"variation-add",onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),q())},children:(0,i.jsx)(c.xu,{children:(0,i.jsxs)(D,{sx:{textAlign:"left"},HeaderContent:(0,i.jsx)(_.xv,{as:"h2",children:"Add new Variation"}),FooterContent:(0,i.jsxs)(c.xu,{gap:16,alignItems:"center",children:[(0,i.jsx)(c.zx,{onClick:f,color:"grey",children:"Cancel"}),(0,i.jsx)(c.zx,{loading:K,children:"Submit"})]}),close:f,children:[(0,i.jsxs)(c.xu,{flexDirection:"column",padding:{block:16},children:[(0,i.jsxs)(_.__,{htmlFor:"name",sx:{mb:1},children:["Variation name*",j.name?(0,i.jsx)(P,{msg:j.name}):""]}),(0,i.jsx)(O.gN,{autoComplete:"off",id:"name",name:"name",placeholder:"e.g. Grid - With Icon",as:_.II,maxLength:30,value:F,onChange:function(e){return l(e.currentTarget.value)}}),(0,i.jsx)(_.xv,{children:"It will appear here in Slice Machine, and in the page editor in Prismic"})]}),(0,i.jsxs)(c.xu,{flexDirection:"column",padding:{bottom:16},children:[(0,i.jsxs)(_.__,{htmlFor:"id",sx:{mb:1},children:["Variation ID*",j.id?(0,i.jsx)(P,{msg:j.id}):""]}),(0,i.jsx)(O.gN,{autoComplete:"off",id:"id",name:"id",placeholder:"e.g. GridWithIcon",as:_.II,maxLength:30,value:Z,onChange:function(e){return d(e.currentTarget.value)}}),(0,i.jsx)(_.xv,{children:"It's generated automatically based on the variation name and will appear in the API responses."})]}),(0,i.jsxs)(c.xu,{flexDirection:"column",padding:{bottom:8},children:[(0,i.jsx)(_.__,{htmlFor:"origin",sx:{mb:1},children:"Duplicate from"}),(0,i.jsx)(A.ZP,{name:"origin",options:a.map(function(e){return{value:e.id,label:e.name}}),onChange:function(e){e&&z(e)},defaultValue:V,maxMenuHeight:150,theme:function(e){return(0,y.Z)((0,h.Z)({},e),{colors:(0,y.Z)((0,h.Z)({},e.colors),{text:"text",primary:"background"})})}})]})]})})})})})},M=t(49451);function K(){return(K=(0,m.Z)(function(e){var n,t,i,r,o,a,c,s,u,l,d,f;return(0,x.__generator)(this,function(n){switch(n.label){case 0:return n.trys.push([0,6,,7]),[4,(0,w.Ve)(e.component)];case 1:if((t=n.sent().errors).length>0)throw t;return[4,(0,w.Xi)({libraryID:e.component.from,sliceID:e.component.model.id,variationID:e.variation.id})];case 2:if((r=n.sent().errors).length>0)throw r;return[4,(0,w.X$)(e.component.from,e.component.model.id)];case 3:if(a=(o=n.sent()).slice,(c=o.errors).length>0)throw c;if(!a)throw Error("Could not read variation `".concat(e.variation.name,"`"));return[4,(0,w.pL)({libraryID:e.component.from,sliceID:e.component.model.id})];case 4:return s=n.sent().mocks,u=M.Y.getBuilderPagePathname({libraryName:e.component.href,sliceName:a.name,variationId:a.variations[0].id}),[4,e.router.replace(u)];case 5:return n.sent(),l=(0,y.Z)((0,h.Z)({},e.component),{model:a,mocks:s}),e.saveSliceSuccess(l),[2,l];case 6:throw d=n.sent(),f="Could not delete variation `".concat(e.variation.name,"`"),console.error(f,d),R.Am.error(f),d;case 7:return[2]}})})).apply(this,arguments)}var B=function(e){var n=e.isOpen,t=e.onClose,r=e.slice,o=e.variation,s=(0,a.useRouter)(),u=(0,g.useState)(!1),l=u[0],d=u[1],f=(0,Z.Z)().saveSliceSuccess,v=C().setSlice;return(0,i.jsxs)(c.Vq,{open:n,onOpenChange:function(e){return!e&&t()},size:{width:448,height:"auto"},children:[(0,i.jsx)(c.fK,{icon:"delete",title:"Delete variation"}),(0,i.jsx)(c.cZ,{children:(0,i.jsxs)(c.xu,{flexDirection:"column",children:[(0,i.jsxs)(c.xv,{color:"grey11",sx:{marginBlock:16,marginInline:16},children:["This action will remove the variation from the slice model and delete associated files. When you push your changes, the variation will disappear from your repository. This update will"," ",(0,i.jsx)(q,{children:"not"})," affect your documents until you ",(0,i.jsx)(q,{children:"edit"})," ","them manually."]}),(0,i.jsx)(c.kX,{ok:{text:"Delete",color:"tomato",onClick:function(){o&&(0,m.Z)(function(){var e;return(0,x.__generator)(this,function(e){switch(e.label){case 0:d(!0),e.label=1;case 1:return e.trys.push([1,3,,4]),[4,function(e){return K.apply(this,arguments)}({component:r,router:s,saveSliceSuccess:f,variation:o})];case 2:return v(e.sent()),[3,4];case 3:return e.sent(),[3,4];case 4:return d(!1),t(),[2]}})})()},loading:l},cancel:{text:"Cancel"},size:"medium"})]})})]})},q=function(e){return(0,i.jsx)(c.xv,(0,y.Z)((0,h.Z)({},e),{color:"inherit",component:"span",variant:"bold"}))};function H(){return(H=(0,m.Z)(function(e){var n,t,i,r,o,a,c,s,u,l,d;return(0,x.__generator)(this,function(n){switch(n.label){case 0:return n.trys.push([0,5,,6]),[4,(0,w.Ve)(e.component)];case 1:if((t=n.sent().errors).length>0)throw t;return[4,(0,w.eH)(e.component,(0,y.Z)((0,h.Z)({},e.variation),{name:e.variationName}))];case 2:if((r=n.sent().errors).length>0)throw r;return[4,(0,w.X$)(e.component.from,e.component.model.id)];case 3:if(a=(o=n.sent()).slice,(c=o.errors).length>0)throw c;if(!a)throw Error("Could not read variation `".concat(e.variation.name,"`"));return[4,(0,w.pL)({libraryID:e.component.from,sliceID:e.component.model.id})];case 4:return s=n.sent().mocks,u=(0,y.Z)((0,h.Z)({},e.component),{model:a,mocks:s}),e.saveSliceSuccess(u),[2,u];case 5:throw l=n.sent(),d="Could not rename variation `".concat(e.variation.name,"`"),console.error(d,l),R.Am.error(d),l;case 6:return[2]}})})).apply(this,arguments)}var X=function(e){var n,t,r=e.isOpen,o=e.onClose,a=e.slice,s=e.variation,u=(0,g.useState)(!1),l=u[0],d=u[1],f=C().setSlice,v=(0,Z.Z)().saveSliceSuccess;return(0,i.jsx)(i.Fragment,{children:(0,i.jsxs)(c.Vq,{open:r,onOpenChange:function(e){return!e&&o()},size:{width:448,height:"auto"},children:[(0,i.jsx)(c.fK,{icon:"edit",title:"Rename variation"}),(0,i.jsx)(c.cZ,{children:(0,i.jsx)(O.J9,{validateOnMount:!0,initialValues:{variationName:null!==(n=null==s?void 0:s.name)&&void 0!==n?n:""},validate:function(e){if(0===e.variationName.length)return{variationName:"Cannot be empty"}},onSubmit:(t=(0,m.Z)(function(e){var n;return(0,x.__generator)(this,function(n){switch(n.label){case 0:if(!s)return[2];d(!0),n.label=1;case 1:return n.trys.push([1,3,,4]),[4,function(e){return H.apply(this,arguments)}({component:a,saveSliceSuccess:v,variation:s,variationName:e.variationName.trim()})];case 2:return f(n.sent()),[3,4];case 3:return n.sent(),[3,4];case 4:return d(!1),o(),[2]}})}),function(e){return t.apply(this,arguments)}),children:function(e){return(0,i.jsxs)("form",{children:[(0,i.jsxs)(c.xu,{flexDirection:"column",gap:8,padding:16,children:[(0,i.jsx)(c.xv,{variant:"normal",color:"grey11",children:"This action will rename the variation in the slice model. When you push your changes, the variation will be renamed in your repository."}),(0,i.jsxs)(c.xu,{flexDirection:"column",gap:4,children:[(0,i.jsxs)("label",{className:"_1ecs97dez4 _1ecs97dez8 _1ecs97df90",children:[(0,i.jsx)(c.xv,{variant:"bold",children:"Variation name*"}),"string"==typeof e.errors.variationName?(0,i.jsx)(c.xv,{variant:"small",color:"tomato10",children:e.errors.variationName}):null]}),(0,i.jsx)(c.yt,{placeholder:"Variation name",error:"string"==typeof e.errors.variationName,value:e.values.variationName,onValueChange:function(n){e.setFieldValue("variationName",n.slice(0,30))}})]})]}),(0,i.jsx)(c.kX,{ok:{text:"Rename",onClick:function(){e.submitForm()},loading:l,disabled:!e.isValid},cancel:{text:"Cancel"},size:"medium"})]})}})})]})})},U=t(15836),W=t(71749),G=t(47731),Q=function(){var e,n=C(),t=n.slice,r=n.variation,o=n.setSlice,s=(0,g.useState)(),u=s[0],l=s[1],d=(0,G.H)(),f=d.modalPayload,v=f.sliceFilterFn,p=f.defaultVariationSelector,h=f.onUploadSuccess,y=(0,a.useRouter)(),j=(0,Z.Z)().saveSliceSuccess;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(c.xu,{flexDirection:"column",gap:16,children:[t.model.variations.map(function(e){return(0,i.jsx)(W.b,{action:{type:"menu",onRename:function(){l({type:"RENAME_VARIATION",variation:e})},onRemove:function(){l({type:"DELETE_VARIATION",variation:e})},removeDisabled:t.model.variations.length<=1},mode:"navigation",onUpdateScreenshot:function(){d.onOpenModal({sliceFilterFn:function(e){return e},defaultVariationSelector:{sliceID:t.model.id,variationID:e.id},onUploadSuccess:function(e){o(e)}})},replace:!0,selected:e.id===r.id,slice:t,variant:"outlined",variationId:e.id},e.id)}),(0,i.jsxs)(c.xu,{backgroundColor:"grey2",bottom:0,flexDirection:"column",padding:{bottom:40,inline:24},position:"sticky",style:{marginBottom:"-16px"},children:[(0,i.jsx)(c.ph,{sx:{left:0,position:"absolute",right:0}}),(0,i.jsx)(c.zx,{onClick:function(){l({type:"ADD_VARIATION"})},startIcon:"add",sx:{position:"relative"},color:"grey",children:"Add a new variation"})]})]}),(0,i.jsx)(U.Z,{slices:v([t]),defaultVariationSelector:p,onUploadSuccess:h}),(0,i.jsx)(X,{isOpen:(null==u?void 0:u.type)==="RENAME_VARIATION",onClose:function(){l(void 0)},slice:t,variation:null==u?void 0:u.variation}),(0,i.jsx)(B,{isOpen:(null==u?void 0:u.type)==="DELETE_VARIATION",onClose:function(){l(void 0)},slice:t,variation:null==u?void 0:u.variation}),(0,i.jsx)(z,{initialVariation:r,isOpen:(null==u?void 0:u.type)==="ADD_VARIATION",onClose:function(){l(void 0)},onSubmit:(e=(0,m.Z)(function(e,n,i){var r,a,c,s,u,l;return(0,x.__generator)(this,function(d){switch(d.label){case 0:return d.trys.push([0,2,,3]),a=(r=(0,k.Kp)({slice:t,id:e,name:n,copiedVariation:i})).slice,c=r.variation,[4,(0,w.Ve)(a)];case 1:return d.sent(),j(a),o(a),s=M.Y.getBuilderPagePathname({libraryName:a.href,sliceName:a.model.name,variationId:c.id}),y.replace(s),[3,3];case 2:return u=d.sent(),l="Could not add variation `".concat(n,"`"),console.error(l,u),R.Am.error(l),[3,3];case 3:return[2]}})}),function(n,t,i){return e.apply(this,arguments)}),variations:t.model.variations})]})},$=t(56580),J=t(75329),Y=t(33710),ee=t(42189),en=t(17036),et=t(39295),ei=t(22342),er=function(){return(0,i.jsx)(et.X,{children:(0,i.jsxs)(Y.Z,{clickable:!0,place:"bottom",effect:"solid",delayHide:500,id:"simulator-button-tooltip",children:[(0,i.jsx)(_.xv,{as:"b",children:"Framework not supported"}),(0,i.jsx)(_.xv,{as:"p",children:"Slice Simulator does not support your framework yet."})]})})},eo=function(e){var n=e.children,t=e.open,r=e.onClose;return(0,i.jsxs)(ei.zs,{open:t,trigger:n,onClose:r,children:[(0,i.jsx)(ei.Ev,{children:"Simulate your slices"}),(0,i.jsx)(ei.LB,{component:"video",cloudName:"dmtf1daqp",loop:!1,autoPlay:!1,publicId:J.Sn,poster:"/simulator-video-thumbnail.png",controls:!0,onPlay:function(){w.Xe.track({event:"open-video-tutorials",video:J.Sn})}}),(0,i.jsx)(ei.OJ,{children:"Minimize context-switching by previewing your Slice components in the simulator."}),(0,i.jsx)(ei.Rp,{children:"Got it"})]})},ea=function(e){var n=e.isSimulatorAvailableForFramework,t=e.disabled,r=(0,a.useRouter)(),o=(0,g.useRef)(null),s=(0,Z.Z)().setSeenSimulatorToolTip,u=(0,$.v9)(function(e){return{hasSeenSimulatorTooltip:(0,en.bv)(e)}}).hasSeenSimulatorTooltip;(0,g.useEffect)(function(){var e=o.current;e&&n&&!u&&setTimeout(function(){return Y.Z.show(e)},5e3)},[n,u]);var l=function(){if(s(),o.current){var e=o.current;Y.Z.hide(e)}};return(0,i.jsxs)("span",{"data-tip":!0,"data-tip-disable":!1,"data-for":"simulator-button-tooltip",ref:o,children:[(0,i.jsx)(eo,{open:n&&!u,onClose:l,children:(0,i.jsx)(c.zx,{"data-tip":!0,"data-testid":"simulator-open-button",onClick:function(){l(),window.open("".concat(r.asPath,"/simulator"),J.pq)},disabled:t,renderStartIcon:function(){return(0,i.jsx)(ee.z,{color:c.TV.color.greyLight1,height:c.TV.size[24],style:{transform:"scale(calc(4 / 3))"},width:c.TV.size[24]})},children:"Simulate"})}),!1===n?(0,i.jsx)(er,{}):void 0]})},ec=t(31005),es=t(17329),eu=t(81038);function el(e){return ed.apply(this,arguments)}function ed(){return(ed=(0,m.Z)(function(e){var n,t,i;return(0,x.__generator)(this,function(r){switch(r.label){case 0:return[4,eu.j.customTypes.readCustomType({id:e})];case 1:if(t=(n=r.sent()).errors,i=n.model,t.length>0)throw t;return[2,i]}})})).apply(this,arguments)}var ef=t(67445),ev=t(64722),ep=t(20812),em=function(e){return(0,i.jsxs)("svg",(0,y.Z)((0,h.Z)({width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),{children:[(0,i.jsx)("path",{d:"M9.5 12L6 9.5L9.5 7V9.5V12Z",fill:"currentColor"}),(0,i.jsx)("path",{d:"M6 9.5H11C14.3 9.5 17 12.2 17 15.5V17.5M6 9.5L9.5 12V9.5V7L6 9.5Z",stroke:"currentColor",strokeLinecap:"round"})]}))},eh=function(){var e,n,t=(e=(0,ev.l)().source,n=(0,ef.Ag)(e.query),void 0!==n&&(0,ef.ne)(e.asPath,n)?n:void 0);return void 0!==t?(0,i.jsx)(c.SV,{children:(0,i.jsx)(g.Suspense,{children:(0,i.jsx)(c.xu,{bottom:32,justifyContent:"center",position:"fixed",right:0,width:"100vw",children:(0,i.jsx)(ey,{sourceCustomTypeId:t})})})}):null},ey=function(e){var n,t=(n=e.sourceCustomTypeId,(0,es.QT)(el,[n])),r=(0,g.useState)(!0),o=r[0],s=r[1],u=(0,a.useRouter)();if(void 0===t||!o)return null;var l=t.format,d=t.id,f=ef.cd[l].getBuilderPagePathname(d);return(0,i.jsxs)(c.hE,{density:"compact",color:"dark",children:[(0,i.jsxs)(c.zx,{onClick:function(){u.push(f)},renderStartIcon:function(){return(0,i.jsx)(em,{})},children:["Return to ",t.label]}),(0,i.jsx)(c.zx,{onClick:function(){s(!1)},renderStartIcon:function(){return(0,i.jsx)(ep.T,{})}})]})},ex=t(39092),eg=t(47976),ej=function(){var e=C(),n=e.slice,t=e.autoSaveStatus,r=(0,$.v9)(ex.Ql);return(0,i.jsxs)(ec.LN,{children:[(0,i.jsxs)(ec.wd,{children:[(0,i.jsx)(ec.Xq,{url:"/slices"}),(0,i.jsx)(ec.Cx,{folder:"Slices",page:n.model.name}),(0,i.jsxs)(ec.K2,{children:[(0,i.jsx)(eg.X,{status:t}),(0,i.jsx)(ea,{isSimulatorAvailableForFramework:r,disabled:"saved"!==t})]})]}),(0,i.jsxs)(ec.RN,{children:[(0,i.jsxs)(c.xu,{alignItems:"flex-start",display:"grid",gap:16,gridTemplateColumns:"320px 1fr",children:[(0,i.jsx)(Q,{}),(0,i.jsx)(E,{})]}),(0,i.jsx)(eh,{})]})]})},eb=t(28684);function ew(){var e=(0,a.useRouter)(),n=(0,eb.Z)(),t=n.slice,r=n.variation;return void 0===t||void 0===r?(e.replace("/"),null):(0,i.jsx)(S,{initialSlice:t,children:function(e){var n=e.slice;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(o(),{children:(0,i.jsxs)("title",{children:[n.model.name," - Slice Machine"]})}),(0,i.jsx)(ej,{})]})}})}},91061:function(e,n,t){"use strict";t.d(n,{AK:function(){return b},E3:function(){return p},EN:function(){return m},F$:function(){return x},GA:function(){return k},HO:function(){return g},L4:function(){return w},Tr:function(){return v},gR:function(){return Z},j6:function(){return S},kQ:function(){return I},l9:function(){return C},mf:function(){return h},vB:function(){return y},xS:function(){return j},y6:function(){return u}});var i=t(67557),r=t(62230),o=t(85244),a=t(17064),c=t(88866),s=t(98863);function u(e){var n;return null!==(n=e.format)&&void 0!==n?n:"custom"}function l(e){return Object.entries(e.json)}function d(e,n){return e.json[n]}function f(e,n){var t=d(e,n);if(void 0!==t)return Object.entries(t).find(function(e){var n=(0,a.Z)(e,2);return(n[0],n[1]).type===c.SlicesFieldType})}function v(e,n){if(t=e,d=f(t,s=n),(v=(0,a.Z)(null!=d?d:[],2))[0],null!==(u=null==(p=v[1])?void 0:p.config)&&void 0!==u?u:void 0)return e;var t,s,u,d,v,p,m=function(e,n){var t,i=l(e),r=i.findIndex(function(e){return(0,a.Z)(e,1)[0]===n}),o=i.flatMap(function(e){var n=(0,a.Z)(e,2),t=(n[0],n[1]);return Object.keys(t).filter(function(e){return t[e].type===c.SlicesFieldType})}),s=r;do t="slices".concat(0!==s?s.toString():""),s++;while(o.includes(t));return t}(e,n);return(0,o.Z)((0,r.Z)({},e),{json:(0,o.Z)((0,r.Z)({},e.json),(0,i.Z)({},n,(0,o.Z)((0,r.Z)({},e.json[n]),(0,i.Z)({},m,{type:c.SlicesFieldType,fieldset:"Slice Zone"}))))})}function p(e,n){var t=d(e,n);if(void 0===t)return e;var a=Object.keys(t).find(function(e){return t[e].type===c.SlicesFieldType});if(void 0===a)return e;var u=(0,s.ud)(t,a);return(0,o.Z)((0,r.Z)({},e),{json:(0,o.Z)((0,r.Z)({},e.json),(0,i.Z)({},n,u))})}function m(e){var n,t,a=e.customType,u=e.sectionId,l=e.sliceId,f=d(a,u);if(void 0===f)return a;var v=Object.keys(f).find(function(e){return f[e].type===c.SlicesFieldType});if(void 0===v)return a;var p=f[v];if(p.type!==c.SlicesFieldType)return a;var m=(0,s.ud)(null!==(t=null===(n=p.config)||void 0===n?void 0:n.choices)&&void 0!==t?t:{},l);return(0,o.Z)((0,r.Z)({},a),{json:(0,o.Z)((0,r.Z)({},a.json),(0,i.Z)({},u,(0,o.Z)((0,r.Z)({},f),(0,i.Z)({},v,(0,o.Z)((0,r.Z)({},p),{config:(0,o.Z)((0,r.Z)({},p.config),{choices:m})})))))})}function h(e){var n,t=(0,o.Z)((0,r.Z)({},e),{format:"page"}),i=l(e)[0];if(i){var c=(0,a.Z)(i,1)[0];t=v(t,c)}return t}function y(e,n){return(0,o.Z)((0,r.Z)({},e),{json:(0,o.Z)((0,r.Z)({},e.json),(0,i.Z)({},n,{}))})}function x(e,n){var t=(0,s.ud)(e.json,n);return(0,o.Z)((0,r.Z)({},e),{json:t})}function g(e,n,t){if(n===t)return e;var i=Object.keys(e.json).reduce(function(i,r){return r===n?i[t]=e.json[r]:i[r]=e.json[r],i},{});return(0,o.Z)((0,r.Z)({},e),{json:i})}function j(e){var n=e.customType,t=e.sectionId,a=e.newField,c=e.newFieldId;return T({customType:n,sectionId:t,updatedSection:(0,o.Z)((0,r.Z)({},n.json[t]),(0,i.Z)({},c,a))})}function b(e){var n=e.customType,t=e.sectionId,i=e.fieldId,r=(0,s.ud)(n.json[t],i);return T({customType:n,sectionId:t,updatedSection:r})}function w(e){var n=e.customType,t=e.sectionId,i=e.previousFieldId,r=e.newFieldId,o=e.newField,a=F({fields:n.json[t],previousFieldId:i,newFieldId:r,newField:o});return T({customType:n,sectionId:t,updatedSection:a})}function Z(e){var n=e.customType,t=e.sectionId,i=e.sourceIndex,r=e.destinationIndex,o=n.json[t],s=f(n,t),u=Object.fromEntries(Object.entries(o).filter(function(e){var n=(0,a.Z)(e,2);return(n[0],n[1]).type!==c.SlicesFieldType})),l=E({fields:u,sourceIndex:i,destinationIndex:r});if(void 0!==s){var d=(0,a.Z)(s,2),v=d[0],p=d[1];l[v]=p}return T({customType:n,sectionId:t,updatedSection:l})}function I(e){var n,t=e.customType,a=e.sectionId,c=e.groupFieldId,s=e.newField,u=e.newFieldId,l=R({customType:t,sectionId:a,groupFieldId:c}),d=null==l?void 0:null===(n=l.config)||void 0===n?void 0:n.fields;if(!l)return t;var f=A(l,(0,o.Z)((0,r.Z)({},d),(0,i.Z)({},u,s)));return T({customType:t,sectionId:a,updatedSection:(0,o.Z)((0,r.Z)({},t.json[a]),(0,i.Z)({},c,f))})}function S(e){var n,t=e.customType,a=e.sectionId,c=e.groupFieldId,u=e.fieldId,l=R({customType:t,sectionId:a,groupFieldId:c}),d=null==l?void 0:null===(n=l.config)||void 0===n?void 0:n.fields;if(!l||!d)return t;var f=(0,s.ud)(d,u),v=A(l,f);return T({customType:t,sectionId:a,updatedSection:(0,o.Z)((0,r.Z)({},t.json[a]),(0,i.Z)({},c,v))})}function C(e){var n,t=e.customType,a=e.sectionId,c=e.groupFieldId,s=e.previousFieldId,u=e.newFieldId,l=e.newField,d=R({customType:t,sectionId:a,groupFieldId:c}),f=null==d?void 0:null===(n=d.config)||void 0===n?void 0:n.fields;if(!d||!f)return t;var v=F({fields:f,previousFieldId:s,newFieldId:u,newField:l}),p=A(d,v);return T({customType:t,sectionId:a,updatedSection:(0,o.Z)((0,r.Z)({},t.json[a]),(0,i.Z)({},c,p))})}function k(e){var n,t=e.customType,a=e.sectionId,c=e.groupFieldId,s=e.sourceIndex,u=e.destinationIndex,l=R({customType:t,sectionId:a,groupFieldId:c}),d=null==l?void 0:null===(n=l.config)||void 0===n?void 0:n.fields;if(!l||!d)return t;var f=E({fields:d,sourceIndex:s,destinationIndex:u}),v=A(l,f);return T({customType:t,sectionId:a,updatedSection:(0,o.Z)((0,r.Z)({},t.json[a]),(0,i.Z)({},c,v))})}function T(e){var n=e.customType,t=e.sectionId,a=e.updatedSection;return(0,o.Z)((0,r.Z)({},n),{json:(0,o.Z)((0,r.Z)({},n.json),(0,i.Z)({},t,a))})}function F(e){var n=e.fields,t=e.previousFieldId,i=e.newFieldId,r=e.newField;return Object.entries(n).reduce(function(e,n){var o=(0,a.Z)(n,2),c=o[0],s=o[1];return c===t?e[i]=r:c!==i&&(e[c]=s),e},{})}function E(e){var n=e.fields,t=e.sourceIndex,i=e.destinationIndex,r=Object.entries(n),o=(0,a.Z)(r.splice(t,1),1)[0];return r.splice(i,0,o),Object.fromEntries(r)}function R(e){var n=e.customType,t=e.sectionId,i=e.groupFieldId,r=n.json[t][i];if(r.type===c.GroupFieldType)return r}function A(e,n){return(0,o.Z)((0,r.Z)({},e),{config:(0,o.Z)((0,r.Z)({},e.config),{fields:n})})}},28684:function(e,n,t){"use strict";var i=t(5632),r=t(56580),o=t(49222),a=function(){var e=(0,i.useRouter)(),n=(0,r.v9)(function(n){return{slice:(0,o.t)(n,e.query.lib,e.query.sliceName)}}).slice;if(!n)return{};var t=n.model.variations.find(function(n){return n.id===e.query.variation});return t?{slice:n,variation:t}:{}};n.Z=a},76473:function(e,n,t){"use strict";t.d(n,{y1:function(){return j}});var i=t(2784);function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e}).apply(this,arguments)}t(52322);var o=["shift","alt","meta","mod","ctrl"],a={esc:"escape",return:"enter",".":"period",",":"comma","-":"slash"," ":"space","`":"backquote","#":"backslash","+":"bracketright",ShiftLeft:"shift",ShiftRight:"shift",AltLeft:"alt",AltRight:"alt",MetaLeft:"meta",MetaRight:"meta",OSLeft:"meta",OSRight:"meta",ControlLeft:"ctrl",ControlRight:"ctrl"};function c(e){return(a[e]||e).trim().toLowerCase().replace(/key|digit|numpad|arrow/,"")}function s(e,n){return void 0===n&&(n=","),e.split(n)}function u(e,n,t){void 0===n&&(n="+");var i,a=e.toLocaleLowerCase().split(n).map(function(e){return c(e)});return r({},{alt:a.includes("alt"),ctrl:a.includes("ctrl")||a.includes("control"),shift:a.includes("shift"),meta:a.includes("meta"),mod:a.includes("mod")},{keys:a.filter(function(e){return!o.includes(e)}),description:t})}"undefined"!=typeof document&&(document.addEventListener("keydown",function(e){void 0!==e.key&&f([c(e.key),c(e.code)])}),document.addEventListener("keyup",function(e){void 0!==e.key&&v([c(e.key),c(e.code)])})),"undefined"!=typeof window&&window.addEventListener("blur",function(){l.clear()});var l=new Set;function d(e){return Array.isArray(e)}function f(e){var n=Array.isArray(e)?e:[e];l.has("meta")&&l.forEach(function(e){var n;return!o.includes(e)&&l.delete(e.toLowerCase())}),n.forEach(function(e){return l.add(e.toLowerCase())})}function v(e){var n=Array.isArray(e)?e:[e];"meta"===e?l.clear():n.forEach(function(e){return l.delete(e.toLowerCase())})}function p(e,n){var t=e.target;void 0===n&&(n=!1);var i=t&&t.tagName;return d(n)?Boolean(i&&n&&n.some(function(e){return e.toLowerCase()===i.toLowerCase()})):Boolean(i&&n&&!0===n)}var m=function(e,n,t){void 0===t&&(t=!1);var i,r,o=n.alt,a=n.meta,s=n.mod,u=n.shift,f=n.ctrl,v=n.keys,p=e.key,m=e.code,h=e.ctrlKey,y=e.metaKey,x=e.shiftKey,g=e.altKey,j=c(m),b=p.toLowerCase();if(!t){if(!g===o&&"alt"!==b||!x===u&&"shift"!==b)return!1;if(s){if(!y&&!h)return!1}else if(!y===a&&"meta"!==b&&"os"!==b||!h===f&&"ctrl"!==b&&"control"!==b)return!1}return!!(v&&1===v.length&&(v.includes(b)||v.includes(j)))||(v?(void 0===r&&(r=","),(d(i=v)?i:i.split(r)).every(function(e){return l.has(e.trim().toLowerCase())})):!v)},h=(0,i.createContext)(void 0),y=(0,i.createContext)({hotkeys:[],enabledScopes:[],toggleScope:function(){},enableScope:function(){},disableScope:function(){}}),x=function(e){e.stopPropagation(),e.preventDefault(),e.stopImmediatePropagation()},g="undefined"!=typeof window?i.useLayoutEffect:i.useEffect;function j(e,n,t,r){var o,a,l=(0,i.useRef)(null),j=(0,i.useRef)(!1),b=t instanceof Array?r instanceof Array?void 0:r:t,w=d(e)?e.join(null==b?void 0:b.splitKey):e,Z=t instanceof Array?t:r instanceof Array?r:void 0,I=(0,i.useCallback)(n,null!=Z?Z:[]),S=(0,i.useRef)(I);Z?S.current=I:S.current=n;var C=(!function e(n,t){return n&&t&&"object"==typeof n&&"object"==typeof t?Object.keys(n).length===Object.keys(t).length&&Object.keys(n).reduce(function(i,r){return i&&e(n[r],t[r])},!0):n===t}((a=(0,i.useRef)(void 0)).current,b)&&(a.current=b),a.current),k=(0,i.useContext)(y).enabledScopes,T=(0,i.useContext)(h);return g(function(){if((null==C?void 0:C.enabled)!==!1&&(e=k,n=null==C?void 0:C.scopes,0===e.length&&n?(console.warn('A hotkey has the "scopes" option set, however no active scopes were found. If you want to use the global scopes feature, you need to wrap your app in a <HotkeysProvider>'),!0):!!(!n||e.some(function(e){return n.includes(e)})||e.includes("*")))){var e,n,t=function(e,n){var t,i;if(void 0===n&&(n=!1),!(p(e,["input","textarea","select"])&&!p(e,null==C?void 0:C.enableOnFormTags)||null!=C&&null!=C.ignoreEventWhen&&C.ignoreEventWhen(e))){if(null!==l.current&&document.activeElement!==l.current&&!l.current.contains(document.activeElement)){x(e);return}(null==(t=e.target)||!t.isContentEditable||null!=C&&C.enableOnContentEditable)&&s(w,null==C?void 0:C.splitKey).forEach(function(t){var i,r,o,a,c,s,l,d=u(t,null==C?void 0:C.combinationKey);if(m(e,d,null==C?void 0:C.ignoreModifiers)||null!=(l=d.keys)&&l.includes("*")){if(n&&j.current)return;if(i=e,r=d,("function"==typeof(o=null==C?void 0:C.preventDefault)&&o(i,r)||!0===o)&&i.preventDefault(),a=e,c=d,"function"==typeof(s=null==C?void 0:C.enabled)?!s(a,c):!0!==s&&void 0!==s){x(e);return}S.current(e,d),n||(j.current=!0)}})}},i=function(e){void 0!==e.key&&(f(c(e.code)),((null==C?void 0:C.keydown)===void 0&&(null==C?void 0:C.keyup)!==!0||null!=C&&C.keydown)&&t(e))},r=function(e){void 0!==e.key&&(v(c(e.code)),j.current=!1,null!=C&&C.keyup&&t(e,!0))},o=l.current||(null==b?void 0:b.document)||document;return o.addEventListener("keyup",r),o.addEventListener("keydown",i),T&&s(w,null==C?void 0:C.splitKey).forEach(function(e){return T.addHotkey(u(e,null==C?void 0:C.combinationKey,null==C?void 0:C.description))}),function(){o.removeEventListener("keyup",r),o.removeEventListener("keydown",i),T&&s(w,null==C?void 0:C.splitKey).forEach(function(e){return T.removeHotkey(u(e,null==C?void 0:C.combinationKey,null==C?void 0:C.description))})}}},[w,C,k]),l}}},function(e){e.O(0,[898,789,917,525,461,139,183,50,543,696,25,318,286,774,888,179],function(){return e(e.s=31314)}),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[436],{74600:function(e,n,t){var i=t(34311),r=t(23779),o=i(function(e,n,t){return e+(t?" ":"")+r(n)});e.exports=o},26688:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/slices",function(){return t(12472)}])},56577:function(e,n,t){"use strict";t.d(n,{z:function(){return d}});var i=t(62230),r=t(85244),o=t(98240),l=t(52322),a=t(2784),c=t(75289),s=function(e,n){return e?"".concat(e,"-").concat(n):""},u=function(e){switch(e){case"white":case"secondaryMedium":case"secondarySmall":case"secondary":return"#1A1523";default:return"grey01"}},d=(0,a.forwardRef)(function(e,n){var t=e.label,a=e.Icon,d=e.type,f=e.form,m=e.isLoading,p=void 0!==m&&m,x=e.disabled,h=e.onClick,v=e.sx,y=e.iconSize,b=void 0===y?16:y,g=e.iconFill,j=e.variant,C=void 0===j?"primary":j,S=(0,o.Z)(e,["label","Icon","type","form","isLoading","disabled","onClick","sx","iconSize","iconFill","variant"]);return(0,l.jsx)(c.zx,(0,r.Z)((0,i.Z)({ref:n,sx:(0,i.Z)((0,r.Z)((0,i.Z)({},void 0===v?{}:v),{display:"flex",alignItems:"center",justifyContent:"center",gap:"8px"}),p?{cursor:"wait !important"}:{}),type:d,form:f,disabled:void 0!==x&&x||p,onClick:p?void 0:h,variant:C},S),{children:p?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c.$j,{size:b,color:u(C),"data-cy":s(S["data-cy"],"spinner")}),a&&t]}):(0,l.jsxs)(l.Fragment,{children:[a&&(0,l.jsx)(a,{size:b,fill:g,"data-cy":s(S["data-cy"],"icon")}),t]})}))})},45466:function(e,n,t){"use strict";t.d(n,{c:function(){return j}});var i=t(22710),r=t(62230),o=t(85244),l=t(99267),a=t(52322),c=t(75289),s=t(2784),u=t(36131),d=t(68780),f=t(88932),m=t(38876),p=t(81038),x=t(82770);function h(){return(h=(0,i.Z)(function(e){var n,t,i,r,o,a,c;return(0,l.__generator)(this,function(l){switch(l.label){case 0:var s;return l.trys.push([0,3,,4]),n=e.sliceName,t=e.libraryName,i=e.onSuccess,s=n,r={id:(0,m.T3)(s),type:"SharedSlice",name:s,description:s,variations:[{id:v,name:(0,m.MP)(v),docURL:"...",version:"initial",description:(0,m.MP)(v),imageUrl:""},]},[4,p.j.slices.createSlice({libraryID:t,model:r})];case 1:if((o=l.sent().errors).length>0)throw o;return x.Xe.track({event:"slice:created",id:(0,m.MP)(n),name:n,library:t}),[4,i(r)];case 2:return l.sent(),[3,4];case 3:return a=l.sent(),c="Internal Error: Slice not created",console.error(c,a),f.Am.error(c),[3,4];case 4:return[2]}})})).apply(this,arguments)}var v="default",y=t(90374),b=t(66443),g=t(70041),j=function(e){var n,t=e.onClose,f=e.onSuccess,m=e.localLibraries,p=e.remoteSlices,v=(0,y.Z)().createSliceSuccess,j=(0,s.useState)(!1),C=j[0],S=j[1],k=(n=(0,i.Z)(function(e){var n,t;return(0,l.__generator)(this,function(r){switch(r.label){case 0:var o;return n=e.sliceName,t=e.from,S(!0),[4,function(e){return h.apply(this,arguments)}({sliceName:n,libraryName:t,onSuccess:(o=(0,i.Z)(function(e){var n;return(0,l.__generator)(this,function(n){switch(n.label){case 0:return[4,(0,x.y0)()];case 1:return v(n.sent().libraries),f(e,t),[2]}})}),function(e){return o.apply(this,arguments)})})];case 1:return r.sent(),[2]}})}),function(e){return n.apply(this,arguments)});return(0,a.jsx)(d.Z,{dataCy:"create-slice-modal",isOpen:!0,widthInPx:"530px",isLoading:C,formId:"create-new-slice",close:t,buttonLabel:"Create",onSubmit:function(e){k(e)},initialValues:{sliceName:"",from:m[0].name},validate:function(e){return(0,b.h)(e,m,p)},content:{title:"Create a new slice"},children:function(e){var n=e.touched,t=e.values,i=e.setFieldValue,l=e.errors;return(0,a.jsxs)(c.xu,{children:[(0,a.jsx)(g.W,{name:"sliceName",label:"Slice Name",placeholder:"Pascalised Slice API ID (e.g. TextBlock)",error:n.sliceName?l.sliceName:void 0,dataCy:"slice-name-input"}),(0,a.jsx)(c.__,{htmlFor:"from",sx:{mb:2},children:"Target Library"}),(0,a.jsx)(u.ZP,{name:"from",options:m.map(function(e){return{value:e.name,label:e.name}}),onChange:function(e){return e?void i("from",e.value):null},defaultValue:{value:t.from,label:t.from},styles:{option:function(e){return(0,o.Z)((0,r.Z)({},e),{color:"#161618"})}},theme:function(e){return(0,o.Z)((0,r.Z)({},e),{colors:(0,o.Z)((0,r.Z)({},e.colors),{primary:"#E9E8EA"})})},menuPortalTarget:document.body})]})}})}},70041:function(e,n,t){"use strict";t.d(n,{W:function(){return a}});var i=t(62230),r=t(52322);t(2784);var o=t(63397),l=t(75289),a=function(e){var n=e.name,t=e.label,a=e.placeholder,c=e.error,s=e.dataCy,u=e.onChange;return(0,r.jsxs)(l.xu,{mb:3,children:[(0,r.jsx)(l.__,{htmlFor:n,mb:2,children:t}),(0,r.jsx)(o.gN,(0,i.Z)({name:n,type:"text",placeholder:a,as:l.II,autoComplete:"off"},u?{onChange:u}:null,s?{"data-cy":s}:null)),c?(0,r.jsx)(l.xv,{"data-cy":s?"".concat(s,"-error"):"input-error",sx:{color:"error",mt:1},children:c}):null]})}},66443:function(e,n,t){"use strict";t.d(n,{h:function(){return s}});var i=t(81541),r=t(75329),o=t(96009),l=t.n(o),a=t(74600),c=t.n(a);function s(e,n,t){var o=e.sliceName;if(!o)return{sliceName:"Cannot be empty"};if(!r.xo.exec(o))return{sliceName:"No special characters allowed"};if(c()(l()(o)).replace(/\s/gm,"")!==o.trim())return{sliceName:"Value has to be PascalCased"};if(o.match(/^\d/))return{sliceName:"Value cannot start with a number"};if(r.lS.includes(o))return{sliceName:"".concat(o," is reserved for Slice Machine use")};var a=n.flatMap(function(e){return e.components.map(function(e){return e.model.name})}),s=t.map(function(e){return e.name});if((0,i.Z)(a).concat((0,i.Z)(s)).includes(o))return{sliceName:"Slice name is already taken."}}},59469:function(e,n,t){"use strict";var i=t(62230),r=t(52322),o=t(75289);n.Z=function(e){var n=e.elems,t=e.renderElem,l=e.defineElementKey,a=e.gridTemplateMinPx,c=e.gridGap,s=e.sx;return(0,r.jsx)(o.xu,{as:"section",sx:(0,i.Z)({display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(".concat(void 0===a?"320px":a,", 1fr))"),gridGap:void 0===c?"16px":c,pt:2},s),children:n.map(function(e,n){return e?(0,r.jsx)("span",{children:t(e,n)},"".concat(l(e),"-").concat(n+1)):null})})}},68780:function(e,n,t){"use strict";var i=t(62230),r=t(85244),o=t(52322),l=t(37149),a=t.n(l),c=t(25812),s=t(63397),u=t(75289),d=t(56577),f=t(54132);n.Z=function(e){var n=e.children,t=e.close,l=e.isOpen,m=e.formId,p=e.validate,x=e.onSubmit,h=e.widthInPx,v=e.initialValues,y=e.content.title,b=e.cardProps,g=e.omitFooter,j=void 0!==g&&g,C=e.isLoading,S=void 0!==C&&C,k=e.buttonLabel,w=void 0===k?"Save":k,L=e.dataCy,I=e.actionMessage;return a().setAppElement("#__next"),(0,o.jsx)(c.Z,{isOpen:l,shouldCloseOnOverlayClick:!0,onRequestClose:t,contentLabel:y,style:{content:{width:null!=h?h:"900px"}},children:(0,o.jsx)(s.J9,{initialValues:v,validate:function(e){return p?p(e):void 0},onSubmit:function(e){x(e)},children:function(e){var l=e.isValid,a=e.isSubmitting,c=e.values,p=e.errors,x=e.touched,h=e.setFieldValue,v=e.setValues;return(0,o.jsx)(s.l0,(0,r.Z)((0,i.Z)({id:m},null!=L?{"data-cy":L}:null),{children:(0,o.jsx)(f.Z,(0,r.Z)((0,i.Z)({borderFooter:!0,footerSx:{p:3,position:"sticky",bottom:0,background:"gray"},bodySx:{px:4,py:4},sx:{border:"none"}},b),{Header:function(e){var n=e.radius;return(0,o.jsxs)(u.kC,{sx:{position:"sticky",top:0,zIndex:1,p:"16px",pl:4,bg:"headSection",alignItems:"center",justifyContent:"space-between",borderTopLeftRadius:n,borderTopRightRadius:n,borderBottom:function(e){var n;return"1px solid ".concat(null===(n=e.colors)||void 0===n?void 0:n.borders)}},children:[(0,o.jsx)(u.X6,{sx:{fontSize:"20px"},children:y}),(0,o.jsx)(u.x8,{type:"button",onClick:t})]})},Footer:j?null:(0,o.jsxs)(u.kC,{sx:{alignItems:"space-between"},children:[(0,o.jsx)(u.kC,{sx:{fontSize:"14px",alignItems:"center"},children:"function"==typeof I?I(e):I}),(0,o.jsxs)(u.kC,{sx:{ml:"auto"},children:[(0,o.jsx)(u.zx,{mr:2,type:"button",onClick:t,variant:"secondary",disabled:a||S,children:"Cancel"}),(0,o.jsx)(d.z,{label:w,form:m,type:"submit",disabled:!l||a||S,isLoading:a||S,sx:{fontWeight:"400",paddingBlock:"8px",paddingInline:"16px",fontSize:"14px",borderRadius:"4px"}})]})]}),children:n({isValid:l,isSubmitting:a,values:c,errors:p,touched:x,setFieldValue:h,setValues:v})}))}))}})})}},38876:function(e,n,t){"use strict";t.d(n,{MP:function(){return o},T3:function(){return a},Ti:function(){return r},lV:function(){return c}});var i=/-(\w)/g;function r(e){return e.includes("-")?"['".concat(e,"']"):".".concat(e)}function o(e){return e?(e=e.replace(/_/g,"-").replace(i,function(e,n){return n?n.toUpperCase():""}))[0].toUpperCase()+e.slice(1):""}var l=/\B([A-Z])/g;function a(e){var n;return e.replace(l,"-$1").toLowerCase().replace(/-/g,"_")}var c=function(e){return e.trim().replace(/ /g,"_").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase()}},12472:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return V}});var i=t(81541),r=t(52322),o=t(22715),l=t(2784),a=t(97729),c=t.n(a),s=t(65077),u=t(75289),d=t(56580),f=t(5632),m=t(88932),p=t(75329),x=t(31005),h=t(45466),v=t(59469),y=t(36887),b=t(82770),g=function(e){var n=e.title,t=e.onCreateNew,i=e.buttonText,o=e.documentationComponent,l=e.videoPublicIdUrl;return(0,r.jsxs)(u.xu,{sx:{display:"flex",width:"80%",flexWrap:"wrap",justifyContent:"center"},children:[(0,r.jsx)(u.xu,{sx:function(e){var n;return{display:"flex",flex:1,alignItems:"center",minWidth:"400px",maxWidth:"70%",border:"1px solid ".concat(null===(n=e.colors)||void 0===n?void 0:n.grey02)}},children:(0,r.jsx)(y.nk,{cloudName:"dmtf1daqp",controls:!0,loop:!0,style:{maxWidth:"100%",objectFit:"contain"},publicId:l,onPlay:function(){b.Xe.track({event:"open-video-tutorials",video:l})}})}),(0,r.jsxs)(u.xu,{sx:function(e){var n;return{bg:"white",display:"flex",flexDirection:"column",border:"1px solid ".concat(null===(n=e.colors)||void 0===n?void 0:n.grey02),flex:1,minWidth:"400px",maxWidth:"70%"}},children:[(0,r.jsxs)(u.xu,{sx:function(e){var n;return{display:"flex",flexDirection:"column",p:4,borderBottom:"1px solid ".concat(null===(n=e.colors)||void 0===n?void 0:n.grey02)}},children:[(0,r.jsx)(u.X6,{as:"h3",variant:"heading",sx:{fontSize:"16px",lineHeight:"24px",mb:2},children:n}),(0,r.jsx)(u.xv,{variant:"xs",sx:{lineHeight:"24px",fontSize:"13px"},children:o})]}),(0,r.jsxs)(u.xu,{sx:{display:"flex",p:4,alignItems:"center"},children:[(0,r.jsx)(u.zx,{onClick:t,"data-cy":"empty-state-main-button",sx:{display:"flex",justifyContent:"center",alignItems:"center",flexShrink:0,mr:4},children:i}),(0,r.jsx)(u.xv,{sx:{fontSize:"12px",color:"grey04",maxWidth:"280px"},children:"It will be stored locally and you will be able to push it to your repository"})]})]})]})},j=t(15836),C=t(90374),S=t(68780),k=t(70041),w=t(77174),L=t(24340),I=t(75992),N=t(66443),E=function(e){var n=e.sliceName,t=e.sliceId,i=e.libName,o=(0,C.Z)(),l=o.renameSlice,a=o.closeModals,c=(0,d.v9)(function(e){return{isRenameSliceModalOpen:(0,w.gP)(e,L.q.RENAME_SLICE),localLibs:(0,I.Sd)(e),remoteLibs:(0,I.sT)(e)}}),s=c.isRenameSliceModalOpen,f=c.localLibs,m=c.remoteLibs,p=function(e){l(i,t,e.sliceName)};return(0,r.jsx)(S.Z,{dataCy:"rename-slice-modal",isOpen:s,widthInPx:"530px",formId:"rename-slice-modal-".concat(t),close:a,buttonLabel:"Rename",onSubmit:p,initialValues:{sliceName:n},content:{title:"Rename a slice"},validate:function(e){return(0,N.h)(e,f,m)},children:function(e){var n=e.touched,t=e.errors;return(0,r.jsx)(u.xu,{children:(0,r.jsx)(k.W,{name:"sliceName",label:"Slice Name","data-cy":"slice-name-input",placeholder:"Pascalised Slice API ID (e.g. TextBlock)",error:n.sliceName?t.sliceName:void 0,dataCy:"slice-name-input"})})}})},Z=t(25812),P=t(59326),R=t(54132),_=t(65186),O=t(56577),z=t(3098),F=t(32665),M=function(e){var n=e.sliceId,t=e.sliceName,i=e.libName,o=(0,d.v9)(function(e){return{isSliceModalOpen:(0,w.gP)(e,L.q.DELETE_SLICE),isDeletingSlice:(0,F.hg)(e,z.z.DELETE_SLICE)}}),l=o.isSliceModalOpen,a=o.isDeletingSlice,c=(0,C.Z)(),s=c.closeModals,f=c.deleteSlice,m=(0,P.B7)().theme;return(0,r.jsx)(Z.Z,{isOpen:l,shouldCloseOnOverlayClick:!0,style:{content:{maxWidth:612}},onRequestClose:s,children:(0,r.jsx)(R.Z,{bodySx:{p:0,bg:"white",position:"relative",height:"100%",padding:16},footerSx:{position:"sticky",bottom:0,p:0},sx:{border:"none"},borderFooter:!0,Header:function(){var e;return(0,r.jsxs)(u.kC,{sx:{position:"sticky",background:"gray",top:0,zIndex:1,p:"16px",alignItems:"center",justifyContent:"space-between",borderBottom:function(e){var n;return"1px solid ".concat(String(null===(n=e.colors)||void 0===n?void 0:n.borders))}},children:[(0,r.jsxs)(u.kC,{sx:{alignItems:"center"},children:[(0,r.jsx)(_.$vK,{size:20,color:null===(e=m.colors)||void 0===e?void 0:e.greyIcon}),(0,r.jsx)(u.X6,{sx:{fontSize:"14px",fontWeight:"bold",ml:1},children:"Delete Slice"})]}),(0,r.jsx)(u.x8,{type:"button",onClick:s})]})},Footer:function(){return(0,r.jsxs)(u.kC,{sx:{justifyContent:"flex-end",height:64,alignItems:"center",paddingRight:16,borderTop:function(e){var n;return"1px solid ".concat(String(null===(n=e.colors)||void 0===n?void 0:n.darkBorders))},backgroundColor:"gray"},children:[(0,r.jsx)(O.z,{label:"Cancel",variant:"secondary",onClick:function(){return s()},sx:{mr:"10px",fontWeight:"bold",color:"grey12",borderRadius:6}}),(0,r.jsx)(O.z,{label:"Delete",variant:"danger",isLoading:a,sx:{minHeight:39,minWidth:78},onClick:function(){return f(n,t,i)}})]})},children:(0,r.jsxs)(u.nv,{children:["This action will immediately make the following changes:",(0,r.jsxs)("ul",{children:[(0,r.jsxs)("li",{children:["Delete the"," ",(0,r.jsxs)(u.xv,{sx:{fontWeight:"bold"},children:[i,"/",t,"/"]})," ","directory."]}),(0,r.jsx)("li",{children:"Remove the Slice from all Slice Zones that use it."})]}),"The next time you push your changes to Prismic, the following change will happen:",(0,r.jsx)("ul",{children:(0,r.jsx)("li",{children:"Remove the Slice from the list of available Slices to use in the Page Builder."})}),"You will need to manually remove the Slice from any Pages that currently use it."]})})})},T=t(47731),A=t(71749),D=t(49451),W=t(13858),V=function(){var e,n,t,a,y,b,S=(0,f.useRouter)(),k=(0,C.Z)(),w=k.openRenameSliceModal,L=k.openDeleteSliceModal,N=(0,T.H)(),Z=N.modalPayload,P=N.onOpenModal,R=Z.sliceFilterFn,_=Z.defaultVariationSelector,O=(0,d.v9)(function(e){return{remoteSlices:(0,I.sT)(e),libraries:(0,I.Sd)(e)}}),z=O.remoteSlices,F=O.libraries,V=(0,l.useState)(!1),K=V[0],B=V[1],H=F.filter(function(e){return e.isLocal}),U=F.map(function(e){return e.components=(0,i.Z)(e.components).sort(function(e,n){return e.model.name.localeCompare(n.model.name)}),e}),X=(F||[]).map(function(e){return e.components}).flat(),q=X.length,G=(0,l.useState)(),$=G[0],Y=G[1];return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c(),{children:(0,r.jsx)("title",{children:"Slices - Slice Machine"})}),(0,r.jsxs)(x.LN,{children:[(0,r.jsxs)(x.wd,{children:[(0,r.jsx)(x.Cx,{folder:"Slices"}),(null==H?void 0:H.length)!==0&&0!==q?(0,r.jsx)(x.K2,{children:(0,r.jsx)(o.zx,{"data-testid":"create-slice","data-cy":"create-slice",onClick:function(){B(!0)},startIcon:"add",children:"Create"})}):void 0]}),(0,r.jsxs)(x.RN,{children:[(0,r.jsx)(s.xR,{sx:{display:"flex",flexDirection:"column"},children:U.length>0?(0,r.jsx)(u.kC,{sx:{flex:1,flexDirection:"column"},children:0===q?(0,r.jsx)(u.kC,{sx:{flex:1,justifyContent:"center",alignItems:"center"},children:(0,r.jsx)(g,{title:"What are Slices?",onCreateNew:function(){B(!0)},buttonText:"Create one",videoPublicIdUrl:p.rd,documentationComponent:(0,r.jsxs)(r.Fragment,{children:['Slices are sections of your website. Prismic documents contain a dynamic "Slice Zone" that allows content creators to add, edit, and rearrange Slices to compose dynamic layouts for any page design.'," ",(0,r.jsx)(u.rU,{target:"_blank",href:"https://prismic.io/docs/core-concepts/slices",sx:function(e){var n;return{color:null==e?void 0:null===(n=e.colors)||void 0===n?void 0:n.primary}},children:"Learn more"}),"."]})})}):U.map(function(e){var n=e.name,t=e.isLocal,i=e.components;return(0,r.jsxs)(u.kC,{sx:{flexDirection:"column","&:not(:last-of-type)":{mb:4}},children:[(0,r.jsxs)(u.kC,{sx:{alignItems:"center",justifyContent:"space-between"},children:[(0,r.jsx)(u.kC,{sx:{alignItems:"center",fontSize:3,lineHeight:"48px",fontWeight:"heading",mb:1},children:(0,r.jsx)(u.xv,{children:n})}),!t&&(0,r.jsx)("p",{children:"⚠️ External libraries are read-only"})]}),(0,r.jsx)(v.Z,{elems:i,defineElementKey:function(e){return e.model.name},renderElem:function(e){return(0,r.jsx)(A.b,{action:{type:"menu",onRemove:function(){Y(e),L()},onRename:function(){Y(e),w()}},mode:"navigation",onUpdateScreenshot:function(){P({sliceFilterFn:function(n){return n.filter(function(n){return n.model.id===e.model.id})}})},slice:e,variant:"solid"})},gridGap:"32px 16px"})]},n)})}):void 0}),(null==H?void 0:H.length)>0&&(0,r.jsx)(j.Z,{slices:R(X),defaultVariationSelector:_}),(null==H?void 0:H.length)>0&&K&&(0,r.jsx)(h.c,{localLibraries:H,remoteSlices:z,onSuccess:function(e,n){var t=e.variations[0].id,i=D.Y.getBuilderPagePathname({libraryName:n,sliceName:e.name,variationId:t});S.push(i),m.Am.success((0,W.kQ)({path:"".concat(n,"/").concat(e.name,"/model.json")}))},onClose:function(){B(!1)}}),(0,r.jsx)(E,{sliceId:null!==(e=null==$?void 0:$.model.id)&&void 0!==e?e:"",sliceName:null!==(n=null==$?void 0:$.model.name)&&void 0!==n?n:"",libName:null!==(t=null==$?void 0:$.from)&&void 0!==t?t:"","data-cy":"rename-slice-modal"}),(0,r.jsx)(M,{sliceId:null!==(a=null==$?void 0:$.model.id)&&void 0!==a?a:"",sliceName:null!==(y=null==$?void 0:$.model.name)&&void 0!==y?y:"",libName:null!==(b=null==$?void 0:$.from)&&void 0!==b?b:""})]})]})]})}},76473:function(e,n,t){"use strict";t.d(n,{y1:function(){return g}});var i=t(2784);function r(){return(r=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e}).apply(this,arguments)}t(52322);var o=["shift","alt","meta","mod","ctrl"],l={esc:"escape",return:"enter",".":"period",",":"comma","-":"slash"," ":"space","`":"backquote","#":"backslash","+":"bracketright",ShiftLeft:"shift",ShiftRight:"shift",AltLeft:"alt",AltRight:"alt",MetaLeft:"meta",MetaRight:"meta",OSLeft:"meta",OSRight:"meta",ControlLeft:"ctrl",ControlRight:"ctrl"};function a(e){return(l[e]||e).trim().toLowerCase().replace(/key|digit|numpad|arrow/,"")}function c(e,n){return void 0===n&&(n=","),e.split(n)}function s(e,n,t){void 0===n&&(n="+");var i,l=e.toLocaleLowerCase().split(n).map(function(e){return a(e)});return r({},{alt:l.includes("alt"),ctrl:l.includes("ctrl")||l.includes("control"),shift:l.includes("shift"),meta:l.includes("meta"),mod:l.includes("mod")},{keys:l.filter(function(e){return!o.includes(e)}),description:t})}"undefined"!=typeof document&&(document.addEventListener("keydown",function(e){void 0!==e.key&&f([a(e.key),a(e.code)])}),document.addEventListener("keyup",function(e){void 0!==e.key&&m([a(e.key),a(e.code)])})),"undefined"!=typeof window&&window.addEventListener("blur",function(){u.clear()});var u=new Set;function d(e){return Array.isArray(e)}function f(e){var n=Array.isArray(e)?e:[e];u.has("meta")&&u.forEach(function(e){var n;return!o.includes(e)&&u.delete(e.toLowerCase())}),n.forEach(function(e){return u.add(e.toLowerCase())})}function m(e){var n=Array.isArray(e)?e:[e];"meta"===e?u.clear():n.forEach(function(e){return u.delete(e.toLowerCase())})}function p(e,n){var t=e.target;void 0===n&&(n=!1);var i=t&&t.tagName;return d(n)?Boolean(i&&n&&n.some(function(e){return e.toLowerCase()===i.toLowerCase()})):Boolean(i&&n&&!0===n)}var x=function(e,n,t){void 0===t&&(t=!1);var i,r,o=n.alt,l=n.meta,c=n.mod,s=n.shift,f=n.ctrl,m=n.keys,p=e.key,x=e.code,h=e.ctrlKey,v=e.metaKey,y=e.shiftKey,b=e.altKey,g=a(x),j=p.toLowerCase();if(!t){if(!b===o&&"alt"!==j||!y===s&&"shift"!==j)return!1;if(c){if(!v&&!h)return!1}else if(!v===l&&"meta"!==j&&"os"!==j||!h===f&&"ctrl"!==j&&"control"!==j)return!1}return!!(m&&1===m.length&&(m.includes(j)||m.includes(g)))||(m?(void 0===r&&(r=","),(d(i=m)?i:i.split(r)).every(function(e){return u.has(e.trim().toLowerCase())})):!m)},h=(0,i.createContext)(void 0),v=(0,i.createContext)({hotkeys:[],enabledScopes:[],toggleScope:function(){},enableScope:function(){},disableScope:function(){}}),y=function(e){e.stopPropagation(),e.preventDefault(),e.stopImmediatePropagation()},b="undefined"!=typeof window?i.useLayoutEffect:i.useEffect;function g(e,n,t,r){var o,l,u=(0,i.useRef)(null),g=(0,i.useRef)(!1),j=t instanceof Array?r instanceof Array?void 0:r:t,C=d(e)?e.join(null==j?void 0:j.splitKey):e,S=t instanceof Array?t:r instanceof Array?r:void 0,k=(0,i.useCallback)(n,null!=S?S:[]),w=(0,i.useRef)(k);S?w.current=k:w.current=n;var L=(!function e(n,t){return n&&t&&"object"==typeof n&&"object"==typeof t?Object.keys(n).length===Object.keys(t).length&&Object.keys(n).reduce(function(i,r){return i&&e(n[r],t[r])},!0):n===t}((l=(0,i.useRef)(void 0)).current,j)&&(l.current=j),l.current),I=(0,i.useContext)(v).enabledScopes,N=(0,i.useContext)(h);return b(function(){if((null==L?void 0:L.enabled)!==!1&&(e=I,n=null==L?void 0:L.scopes,0===e.length&&n?(console.warn('A hotkey has the "scopes" option set, however no active scopes were found. If you want to use the global scopes feature, you need to wrap your app in a <HotkeysProvider>'),!0):!!(!n||e.some(function(e){return n.includes(e)})||e.includes("*")))){var e,n,t=function(e,n){var t,i;if(void 0===n&&(n=!1),!(p(e,["input","textarea","select"])&&!p(e,null==L?void 0:L.enableOnFormTags)||null!=L&&null!=L.ignoreEventWhen&&L.ignoreEventWhen(e))){if(null!==u.current&&document.activeElement!==u.current&&!u.current.contains(document.activeElement)){y(e);return}(null==(t=e.target)||!t.isContentEditable||null!=L&&L.enableOnContentEditable)&&c(C,null==L?void 0:L.splitKey).forEach(function(t){var i,r,o,l,a,c,u,d=s(t,null==L?void 0:L.combinationKey);if(x(e,d,null==L?void 0:L.ignoreModifiers)||null!=(u=d.keys)&&u.includes("*")){if(n&&g.current)return;if(i=e,r=d,("function"==typeof(o=null==L?void 0:L.preventDefault)&&o(i,r)||!0===o)&&i.preventDefault(),l=e,a=d,"function"==typeof(c=null==L?void 0:L.enabled)?!c(l,a):!0!==c&&void 0!==c){y(e);return}w.current(e,d),n||(g.current=!0)}})}},i=function(e){void 0!==e.key&&(f(a(e.code)),((null==L?void 0:L.keydown)===void 0&&(null==L?void 0:L.keyup)!==!0||null!=L&&L.keydown)&&t(e))},r=function(e){void 0!==e.key&&(m(a(e.code)),g.current=!1,null!=L&&L.keyup&&t(e,!0))},o=u.current||(null==j?void 0:j.document)||document;return o.addEventListener("keyup",r),o.addEventListener("keydown",i),N&&c(C,null==L?void 0:L.splitKey).forEach(function(e){return N.addHotkey(s(e,null==L?void 0:L.combinationKey,null==L?void 0:L.description))}),function(){o.removeEventListener("keyup",r),o.removeEventListener("keydown",i),N&&c(C,null==L?void 0:L.splitKey).forEach(function(e){return N.removeHotkey(s(e,null==L?void 0:L.combinationKey,null==L?void 0:L.description))})}}},[C,L,I]),u}}},function(e){e.O(0,[898,789,50,25,286,774,888,179],function(){return e(e.s=26688)}),_N_E=e.O()}]);
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
import { describe, expect } from "vitest";
|
|
2
|
-
import { createCustomType } from "@src/features/customTypes/customTypesTable/createCustomType";
|
|
3
|
-
|
|
4
|
-
describe("createCustomType test suite", () => {
|
|
5
|
-
it("should create a custom type with repeatable true", () => {
|
|
6
|
-
expect(createCustomType("id", "lama", true, "custom"))
|
|
7
|
-
.toMatchInlineSnapshot(`
|
|
8
|
-
{
|
|
9
|
-
"format": "custom",
|
|
10
|
-
"id": "id",
|
|
11
|
-
"json": {
|
|
12
|
-
"Main": {
|
|
13
|
-
"uid": {
|
|
14
|
-
"config": {
|
|
15
|
-
"label": "UID",
|
|
16
|
-
},
|
|
17
|
-
"type": "UID",
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
"label": "lama",
|
|
22
|
-
"repeatable": true,
|
|
23
|
-
"status": true,
|
|
24
|
-
}
|
|
25
|
-
`);
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
it("should create a custom type with repeatable false", () => {
|
|
29
|
-
const result = createCustomType("id", "lama", false, "custom");
|
|
30
|
-
expect(result.id).toBe("id");
|
|
31
|
-
expect(result.label).toBe("lama");
|
|
32
|
-
expect(result.format).toBe("custom");
|
|
33
|
-
expect(result.json).toHaveProperty("Main");
|
|
34
|
-
expect(result).toMatchInlineSnapshot(`
|
|
35
|
-
{
|
|
36
|
-
"format": "custom",
|
|
37
|
-
"id": "id",
|
|
38
|
-
"json": {
|
|
39
|
-
"Main": {},
|
|
40
|
-
},
|
|
41
|
-
"label": "lama",
|
|
42
|
-
"repeatable": false,
|
|
43
|
-
"status": true,
|
|
44
|
-
}
|
|
45
|
-
`);
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
it("should create a page type with a slice zone", () => {
|
|
49
|
-
const result = createCustomType("🥪", "label", true, "page");
|
|
50
|
-
expect(result.format).toBe("page");
|
|
51
|
-
expect(result.json).toHaveProperty("Main");
|
|
52
|
-
expect(result.json.Main).toHaveProperty("slices");
|
|
53
|
-
expect(result.json).toHaveProperty("SEO & Metadata");
|
|
54
|
-
expect(result).toMatchInlineSnapshot(`
|
|
55
|
-
{
|
|
56
|
-
"format": "page",
|
|
57
|
-
"id": "🥪",
|
|
58
|
-
"json": {
|
|
59
|
-
"Main": {
|
|
60
|
-
"slices": {
|
|
61
|
-
"config": {
|
|
62
|
-
"choices": {},
|
|
63
|
-
},
|
|
64
|
-
"fieldset": "Slice Zone",
|
|
65
|
-
"type": "Slices",
|
|
66
|
-
},
|
|
67
|
-
"uid": {
|
|
68
|
-
"config": {
|
|
69
|
-
"label": "UID",
|
|
70
|
-
},
|
|
71
|
-
"type": "UID",
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
"SEO & Metadata": {
|
|
75
|
-
"meta_description": {
|
|
76
|
-
"config": {
|
|
77
|
-
"label": "Meta Description",
|
|
78
|
-
"placeholder": "A brief summary of the page",
|
|
79
|
-
},
|
|
80
|
-
"type": "Text",
|
|
81
|
-
},
|
|
82
|
-
"meta_image": {
|
|
83
|
-
"config": {
|
|
84
|
-
"constraint": {
|
|
85
|
-
"height": 1260,
|
|
86
|
-
"width": 2400,
|
|
87
|
-
},
|
|
88
|
-
"label": "Meta Image",
|
|
89
|
-
"thumbnails": [],
|
|
90
|
-
},
|
|
91
|
-
"type": "Image",
|
|
92
|
-
},
|
|
93
|
-
"meta_title": {
|
|
94
|
-
"config": {
|
|
95
|
-
"label": "Meta Title",
|
|
96
|
-
"placeholder": "A title of the page used for social media and search engines",
|
|
97
|
-
},
|
|
98
|
-
"type": "Text",
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
},
|
|
102
|
-
"label": "label",
|
|
103
|
-
"repeatable": true,
|
|
104
|
-
"status": true,
|
|
105
|
-
}
|
|
106
|
-
`);
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
it("when non repeatable page type is should contain Main with a slice-zone, no uid, and a SEO tab", () => {
|
|
111
|
-
const result = createCustomType("foo", "bar", false, "page");
|
|
112
|
-
expect(result).toMatchInlineSnapshot(`
|
|
113
|
-
{
|
|
114
|
-
"format": "page",
|
|
115
|
-
"id": "foo",
|
|
116
|
-
"json": {
|
|
117
|
-
"Main": {
|
|
118
|
-
"slices": {
|
|
119
|
-
"config": {
|
|
120
|
-
"choices": {},
|
|
121
|
-
},
|
|
122
|
-
"fieldset": "Slice Zone",
|
|
123
|
-
"type": "Slices",
|
|
124
|
-
},
|
|
125
|
-
},
|
|
126
|
-
"SEO & Metadata": {
|
|
127
|
-
"meta_description": {
|
|
128
|
-
"config": {
|
|
129
|
-
"label": "Meta Description",
|
|
130
|
-
"placeholder": "A brief summary of the page",
|
|
131
|
-
},
|
|
132
|
-
"type": "Text",
|
|
133
|
-
},
|
|
134
|
-
"meta_image": {
|
|
135
|
-
"config": {
|
|
136
|
-
"constraint": {
|
|
137
|
-
"height": 1260,
|
|
138
|
-
"width": 2400,
|
|
139
|
-
},
|
|
140
|
-
"label": "Meta Image",
|
|
141
|
-
"thumbnails": [],
|
|
142
|
-
},
|
|
143
|
-
"type": "Image",
|
|
144
|
-
},
|
|
145
|
-
"meta_title": {
|
|
146
|
-
"config": {
|
|
147
|
-
"label": "Meta Title",
|
|
148
|
-
"placeholder": "A title of the page used for social media and search engines",
|
|
149
|
-
},
|
|
150
|
-
"type": "Text",
|
|
151
|
-
},
|
|
152
|
-
},
|
|
153
|
-
},
|
|
154
|
-
"label": "bar",
|
|
155
|
-
"repeatable": false,
|
|
156
|
-
"status": true,
|
|
157
|
-
}
|
|
158
|
-
`);
|
|
159
|
-
});
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { CustomType } from "@prismicio/types-internal/lib/customtypes";
|
|
2
|
-
import type { CustomTypeFormat } from "@slicemachine/manager";
|
|
3
|
-
|
|
4
|
-
export function createCustomType(
|
|
5
|
-
id: string,
|
|
6
|
-
label: string,
|
|
7
|
-
repeatable: boolean,
|
|
8
|
-
format: CustomTypeFormat,
|
|
9
|
-
): CustomType {
|
|
10
|
-
const mainTab = makeMainTab(repeatable, format);
|
|
11
|
-
|
|
12
|
-
return {
|
|
13
|
-
id,
|
|
14
|
-
label,
|
|
15
|
-
format,
|
|
16
|
-
repeatable,
|
|
17
|
-
json: mainTab,
|
|
18
|
-
status: true,
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function makeMainTab(
|
|
23
|
-
repeatable: boolean,
|
|
24
|
-
format: CustomTypeFormat,
|
|
25
|
-
): CustomType["json"] {
|
|
26
|
-
if (repeatable === false && format === "page") {
|
|
27
|
-
return { ...DEFAULT_MAIN_WITH_SLICE_ZONE, ...DEFAULT_SEO_TAB };
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
if (repeatable === false) {
|
|
31
|
-
return DEFAULT_MAIN;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if (format === "page") {
|
|
35
|
-
return {
|
|
36
|
-
...DEFAULT_MAIN_WITH_UID_AND_SLICE_ZONE,
|
|
37
|
-
...DEFAULT_SEO_TAB,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return DEFAULT_MAIN_WITH_UID;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const DEFAULT_MAIN: CustomType["json"] = {
|
|
45
|
-
Main: {},
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
const DEFAULT_MAIN_WITH_SLICE_ZONE: CustomType["json"] = {
|
|
49
|
-
Main: {
|
|
50
|
-
slices: {
|
|
51
|
-
config: {
|
|
52
|
-
choices: {},
|
|
53
|
-
},
|
|
54
|
-
fieldset: "Slice Zone",
|
|
55
|
-
type: "Slices",
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
const DEFAULT_MAIN_WITH_UID: CustomType["json"] = {
|
|
61
|
-
Main: {
|
|
62
|
-
uid: {
|
|
63
|
-
config: {
|
|
64
|
-
label: "UID",
|
|
65
|
-
},
|
|
66
|
-
type: "UID",
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
const DEFAULT_MAIN_WITH_UID_AND_SLICE_ZONE: CustomType["json"] = {
|
|
72
|
-
Main: {
|
|
73
|
-
...DEFAULT_MAIN_WITH_UID.Main,
|
|
74
|
-
...DEFAULT_MAIN_WITH_SLICE_ZONE.Main,
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
const DEFAULT_SEO_TAB: CustomType["json"] = {
|
|
79
|
-
"SEO & Metadata": {
|
|
80
|
-
meta_description: {
|
|
81
|
-
config: {
|
|
82
|
-
label: "Meta Description",
|
|
83
|
-
placeholder: "A brief summary of the page",
|
|
84
|
-
},
|
|
85
|
-
type: "Text",
|
|
86
|
-
},
|
|
87
|
-
meta_image: {
|
|
88
|
-
config: {
|
|
89
|
-
constraint: {
|
|
90
|
-
height: 1260,
|
|
91
|
-
width: 2400,
|
|
92
|
-
},
|
|
93
|
-
label: "Meta Image",
|
|
94
|
-
thumbnails: [],
|
|
95
|
-
},
|
|
96
|
-
type: "Image",
|
|
97
|
-
},
|
|
98
|
-
meta_title: {
|
|
99
|
-
config: {
|
|
100
|
-
label: "Meta Title",
|
|
101
|
-
placeholder:
|
|
102
|
-
"A title of the page used for social media and search engines",
|
|
103
|
-
},
|
|
104
|
-
type: "Text",
|
|
105
|
-
},
|
|
106
|
-
},
|
|
107
|
-
};
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
// @vitest-environment jsdom
|
|
2
|
-
|
|
3
|
-
import { describe, test, afterEach, expect, vi } from "vitest";
|
|
4
|
-
import { Analytics } from "@segment/analytics-node";
|
|
5
|
-
|
|
6
|
-
import { render, fireEvent, act } from "../__testutils__";
|
|
7
|
-
import { CreateCustomTypeModal } from "../../components/Forms/CreateCustomTypeModal";
|
|
8
|
-
import { ModalKeysEnum } from "../../src/modules/modal/types";
|
|
9
|
-
|
|
10
|
-
vi.mock("next/router", () => require("next-router-mock"));
|
|
11
|
-
global.console = { ...global.console, error: vi.fn() };
|
|
12
|
-
|
|
13
|
-
describe("CreateCustomTypeModal", () => {
|
|
14
|
-
afterEach(() => {
|
|
15
|
-
vi.clearAllMocks();
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
test("when a slice is created the tracker should be called", async () => {
|
|
19
|
-
const fakeId = "testing_id";
|
|
20
|
-
const fakeName = "testing-name";
|
|
21
|
-
const fakeRepo = "foo";
|
|
22
|
-
|
|
23
|
-
render(<CreateCustomTypeModal format="custom" />, {
|
|
24
|
-
preloadedState: {
|
|
25
|
-
// @ts-expect-error TS(2739) FIXME: Type '{ repo: string; }' is missing the following ... Remove this comment to see the full error message
|
|
26
|
-
environment: {
|
|
27
|
-
repo: fakeRepo,
|
|
28
|
-
},
|
|
29
|
-
availableCustomTypes: {},
|
|
30
|
-
// @ts-expect-error TS(2740) FIXME: Type '{ CREATE_CUSTOM_TYPE: true; }' is missing th... Remove this comment to see the full error message
|
|
31
|
-
modal: { [ModalKeysEnum.CREATE_CUSTOM_TYPE]: true },
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
const idInput = document.querySelector('[name="id"]');
|
|
36
|
-
const labelInput = document.querySelector('[name="label"]');
|
|
37
|
-
const submitButton = document.querySelector('[type="submit"]');
|
|
38
|
-
|
|
39
|
-
await act(async () => {
|
|
40
|
-
if (labelInput) {
|
|
41
|
-
fireEvent.change(labelInput, { target: { value: fakeName } });
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
await act(async () => {
|
|
46
|
-
if (idInput) {
|
|
47
|
-
fireEvent.change(idInput, { target: { value: fakeId } });
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
await act(async () => {
|
|
52
|
-
if (submitButton) {
|
|
53
|
-
fireEvent.click(submitButton);
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
expect(Analytics.prototype.track).toHaveBeenCalledOnce();
|
|
58
|
-
expect(Analytics.prototype.track).toHaveBeenCalledWith(
|
|
59
|
-
expect.objectContaining({
|
|
60
|
-
event: "SliceMachine Custom Type Created",
|
|
61
|
-
properties: {
|
|
62
|
-
id: fakeId,
|
|
63
|
-
name: fakeName,
|
|
64
|
-
format: "custom",
|
|
65
|
-
type: "repeatable",
|
|
66
|
-
nodeVersion: process.versions.node,
|
|
67
|
-
origin: "table",
|
|
68
|
-
},
|
|
69
|
-
}),
|
|
70
|
-
expect.any(Function),
|
|
71
|
-
);
|
|
72
|
-
});
|
|
73
|
-
});
|
|
File without changes
|