@knapsack/app
Version:
Build Design Systems on top of knapsack, by Basalt
2 lines • 23.5 kB
JavaScript
(window.webpackJsonp=window.webpackJsonp||[]).push([["main~493df0b3"],{"../packages/core/dist/cloud.js":function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"KnapsackFile",{enumerable:!0,get:function get(){return n.KnapsackFile}}),t.ksRolesOrdered=t.KS_USER_ROLES=t.PERMISSIONS=t.KS_USER_ROLE_IDS=void 0;var n=r("../packages/core/dist/types/misc.js"),s={admins:"admins",editors:"editors",contributors:"contributors",viewers:"viewers",anonymous:"anonymous"};t.KS_USER_ROLE_IDS=s;var o={READ:"read",WRITE:"write"};t.PERMISSIONS=o;var a={admins:{id:s.admins,permissions:[o.READ,o.WRITE]},editors:{id:s.editors,permissions:[o.READ,o.WRITE]},contributors:{id:s.contributors,permissions:[o.READ,o.WRITE]},viewers:{id:s.viewers,permissions:[o.READ]},anonymous:{id:s.anonymous,permissions:[o.READ]}};t.KS_USER_ROLES=a;var i=[a.admins,a.editors,a.contributors,a.viewers,a.anonymous];t.ksRolesOrdered=i},"../packages/core/dist/handlebars-helpers.js":function(e,t,r){var n=r("../node_modules/@babel/runtime/helpers/interopRequireWildcard.js");Object.defineProperty(t,"__esModule",{value:!0}),t.hbsRenderString=function hbsRenderString(e){var{hbsString:t,data:r={}}=e;return(0,s.compile)(t)(r)},Object.defineProperty(t,"hbsCompile",{enumerable:!0,get:function get(){return s.compile}});var s=n(r("../packages/core/node_modules/handlebars/dist/cjs/handlebars.js")),o=r("../node_modules/change-case/dist.es2015/index.js");s.default.registerHelper("camelCase",e=>(0,o.camelCase)(e)),s.default.registerHelper("snakeCase",e=>(0,o.snakeCase)(e)),s.default.registerHelper("pascalCase",e=>(0,o.pascalCase)(e)),s.default.registerHelper("paramCase",e=>(0,o.paramCase)(e))},"../packages/core/dist/index.esm.js":function(e,t,r){var n=r("../packages/core/dist/handlebars-helpers.js");r.o(n,"KS_USER_ROLES")&&r.d(t,"KS_USER_ROLES",(function(){return n.KS_USER_ROLES})),r.o(n,"PERMISSIONS")&&r.d(t,"PERMISSIONS",(function(){return n.PERMISSIONS})),r.o(n,"ksRolesOrdered")&&r.d(t,"ksRolesOrdered",(function(){return n.ksRolesOrdered}));var s=r("../packages/core/dist/cloud.js");r.o(s,"KS_USER_ROLES")&&r.d(t,"KS_USER_ROLES",(function(){return s.KS_USER_ROLES})),r.o(s,"PERMISSIONS")&&r.d(t,"PERMISSIONS",(function(){return s.PERMISSIONS})),r.o(s,"ksRolesOrdered")&&r.d(t,"ksRolesOrdered",(function(){return s.ksRolesOrdered}))},"../packages/core/dist/types/misc.js":function(e,t,r){},"./src/client/components/initial-app-loader.scss":function(e,t,r){},"./src/client/components/initial-app-loader.tsx":function(e,t,r){r.d(t,"a",(function(){return InitialAppLoader}));var n=r("react"),s=r.n(n),o="/root/repo/design-system/src/spinner/spinner.tsx";const CircleSpinner=({size:e="24px",error:t})=>{if(t)throw new Error(t);return Object(n.createElement)("span",{className:"ks-circle-spinner",style:{width:e,height:e},__source:{fileName:o,lineNumber:45},__self:void 0},Object(n.createElement)("span",{className:"ks-circle-spinner__inner",__source:{fileName:o,lineNumber:46},__self:void 0},Object(n.createElement)("span",{className:"ks-circle-spinner__inner-animation",__source:{fileName:o,lineNumber:47},__self:void 0},Object(n.createElement)("svg",{width:e,height:e,strokeWidth:"16.00",viewBox:"-3.00 -3.00 106.00 106.00",__source:{fileName:o,lineNumber:48},__self:void 0},Object(n.createElement)("path",{className:"ks-circle-spinner__inner-track",d:"M 50,50 m 0,-45 a 45,45 0 1 1 0,90 a 45,45 0 1 1 0,-90",__source:{fileName:o,lineNumber:54},__self:void 0}),Object(n.createElement)("path",{className:"ks-circle-spinner__inner-head",d:"M 50,50 m 0,-45 a 45,45 0 1 1 0,90 a 45,45 0 1 1 0,-90",pathLength:"280",strokeDasharray:"280 280",strokeDashoffset:"210",__source:{fileName:o,lineNumber:58},__self:void 0})))))};r("./src/client/components/initial-app-loader.scss");var InitialAppLoader=()=>s.a.createElement("div",{className:"ks-initial-app-loader"},s.a.createElement("span",null,s.a.createElement(CircleSpinner,null)),s.a.createElement("span",null,"Loading..."))},"./src/client/data.ts":function(e,t,r){r.d(t,"a",(function(){return n})),r.d(t,"g",(function(){return gqlQuery})),r.d(t,"c",(function(){return getDesignTokens})),r.d(t,"b",(function(){return files})),r.d(t,"e",(function(){return getPluginContent})),r.d(t,"i",(function(){return uploadFile})),r.d(t,"d",(function(){return getInitialState})),r.d(t,"h",(function(){return renderTemplate})),r.d(t,"f",(function(){return getTemplateUrls}));var n={};r.r(n),r.d(n,"endpoint",(function(){return c})),r.d(n,"ACTIONS",(function(){return s}));r("../node_modules/@babel/runtime/helpers/esm/defineProperty.js");var s,o=r("../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"),a=r("../node_modules/md5/md5.js"),i=r.n(a),p=r("./src/lib/constants.ts"),d=r("./src/lib/routes.ts"),c="".concat(p.d,"/files");!function(e){e.verify="verify",e.saveTemplateDemo="saveTemplateDemo",e.deleteTemplateDemo="deleteTemplateDemo",e.openFile="openFile"}(s||(s={}));var l,u="".concat(p.d,"/plugins");!function(e){e.getContent="getContent"}(l||(l={}));var m=r("./src/lib/utils.ts");function gqlQuery(e){var{query:t,gqlQueryObj:r,variables:n={}}=e;if(!t&&!r)throw new Error('Must provide either "query" or "gqlQueryObj".');if("string"!=typeof t){if("Document"!==r.kind)throw new Error('"gqlQueryObj" not a valid GraphQL document.');t=function gqlToString(e){return e.loc.source.body}(r)}return window.fetch(p.e,{method:"POST",headers:{"Accept-Encoding":"gzip, deflate, br","Content-Type":"application/json",Accept:"application/json",Connection:"keep-alive",Dnt:"1"},body:JSON.stringify({query:t,variables:n})}).then(e=>e.json()).catch(console.log.bind(console))}function getDesignTokens(){return window.fetch("".concat(p.d,"/design-tokens")).then(e=>e.json())}function files(e){return window.fetch(c,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e)}).then(e=>{if(!e.ok){var{status:t,statusText:r}=e;console.error("Error in calling files endpoint",{status:t,statusText:r})}return e.json()})}function getPluginContent(e){var{pluginId:t}=e,r={pluginId:t,type:l.getContent};return fetch(u,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(r)}).then(e=>e.json())}function uploadFile(e){var t=new FormData;return t.append("file",e),window.fetch("".concat(p.d,"/upload"),{method:"POST",headers:{Accept:"application/json"},body:t}).then(e=>e.json()).then(e=>(e.ok||console.error("uh oh: upload crap out",e),e))}function getInitialState(){var e=Object(m.a)();return window.fetch("".concat(p.d,"/data-store")).then(e=>e.json()).then(t=>(console.debug("KS: initial state fetch took: ".concat(e(),"s")),t)).catch(console.log.bind(console))}function renderTemplate(e){return window.fetch("".concat(p.d,"/render"),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e)}).then(e=>e.json()).catch(console.log.bind(console))}var g=new Map;function getTemplateUrls(e){return _getTemplateUrls.apply(this,arguments)}function _getTemplateUrls(){return(_getTemplateUrls=Object(o.a)((function*(e){var{patternId:t,templateId:r,assetSetId:n,demo:s,cacheBuster:o}=e,a=i()(JSON.stringify(s)),c=g.has(a)?g.get(a):yield function saveData(e){return window.fetch("".concat(p.d,"/data"),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e)}).then(e=>e.json()).then(t=>(t.ok||console.error("Uh oh! Tried to save data by uploading it to '".concat(p.d,"/data' with no luck."),{data:e,results:t}),t.data.hash)).catch(console.log.bind(console))}(s);return g.has(a)||g.set(a,c),{dataId:c,urls:{external:Object(d.a)({patternId:t,templateId:r,assetSetId:n,dataId:c,cacheBuster:o,isInIframe:!1,wrapHtml:!0}),iframeSrc:Object(d.a)({patternId:t,templateId:r,assetSetId:n,dataId:c,cacheBuster:o,isInIframe:!0,wrapHtml:!0})}}}))).apply(this,arguments)}},"./src/client/index.tsx":function(e,t,r){r.r(t);var n=r("../node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"),o=r("react"),a=r.n(o),i=r("../node_modules/react-dom/index.js"),p=r.n(i),d=r("../node_modules/react-redux/es/index.js"),c=r("./src/client/components/initial-app-loader.tsx"),l=r("./src/client/plugins.ts"),u=r("./src/client/store/utils.ts"),m=r("./src/client/data.ts");function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach((function(t){Object(n.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var g=a.a.lazy(()=>Promise.all([r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~9b1fde68"),r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~092158aa"),r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~6698e7d4"),r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~3d559e14"),r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~1bf90a92"),r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~550b9a52"),r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~80e93ec1"),r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~4f420515"),r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~57d0b60b"),r.e("vendors~App-7KZ9F~user-page-DUsdt~9b1fde68"),r.e("vendors~App-7KZ9F~9b1fde68"),r.e("vendors~App-7KZ9F~d99e2b41"),r.e("vendors~App-7KZ9F~092158aa"),r.e("vendors~App-7KZ9F~cd57acee"),r.e("vendors~App-7KZ9F~ae3dbdae"),r.e("vendors~App-7KZ9F~74226ea0"),r.e("vendors~App-7KZ9F~4b6d9740"),r.e("vendors~App-7KZ9F~6698e7d4"),r.e("vendors~App-7KZ9F~a104a6c7"),r.e("vendors~App-7KZ9F~78a66036"),r.e("vendors~App-7KZ9F~b82b3577"),r.e("vendors~App-7KZ9F~250563ba"),r.e("vendors~App-7KZ9F~bc97dfbd"),r.e("vendors~App-7KZ9F~a551e785"),r.e("vendors~App-7KZ9F~b067234b"),r.e("vendors~App-7KZ9F~73174e86"),r.e("vendors~App-7KZ9F~f1466069"),r.e("vendors~App-7KZ9F~1628f50f"),r.e("vendors~App-7KZ9F~dd3e7742"),r.e("vendors~App-7KZ9F~a78981e9"),r.e("vendors~App-7KZ9F~dea65624"),r.e("vendors~App-7KZ9F~fb7c4688"),r.e("vendors~App-7KZ9F~ebc49450"),r.e("vendors~App-7KZ9F~951bf0d2"),r.e("vendors~App-7KZ9F~66460c69"),r.e("vendors~App-7KZ9F~d0745d50"),r.e("vendors~App-7KZ9F~bd84e315"),r.e("vendors~App-7KZ9F~77c2d5ae"),r.e("vendors~App-7KZ9F~41cc5d02"),r.e("vendors~App-7KZ9F~715985a3"),r.e("vendors~App-7KZ9F~e4dfd1bd"),r.e("store-XBI5Y~493df0b3"),r.e("App-7KZ9F~f71cff67")]).then(r.bind(null,"./src/client/App.tsx")));document.addEventListener("DOMContentLoaded",Object(s.a)((function*(){var e=document.createElement("div");e.setAttribute("id","app"),document.body.appendChild(e),e.innerHTML='\n <p style="\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%)">\n Initializing...\n </p>';var t=Object(u.a)(),n=yield Object(m.d)();!1!==t&&(n=_objectSpread({},n,{ui:_objectSpread({},n.ui,{},t.ui,{status:null})}));var o=(yield Promise.all([r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~9b1fde68"),r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~092158aa"),r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~6698e7d4"),r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~3d559e14"),r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~1bf90a92"),r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~550b9a52"),r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~80e93ec1"),r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~4f420515"),r.e("vendors~App-7KZ9F~propose-change-page-FI1f0~store-XBI5Y~user-page-DUsdt~57d0b60b"),r.e("store-XBI5Y~493df0b3")]).then(r.bind(null,"./src/client/store/index.ts")).then(e=>e.createStore))(n),i=yield r.e("client-plugin-HGK3D~21833f8f").then(r.bind(null,"./src/cloud/client-plugin.tsx")).then(e=>e.default),{plugins:f}=o.getState().metaState;[...yield Promise.all(f.filter(e=>e.clientPluginPath).map(function(){var e=Object(s.a)((function*(e){return import(e.clientPluginPath).then(e=>e.default).catch(t=>{var r='Could not load plugin "'.concat(e.id,'" - trying to "import(\'').concat(e.clientPluginPath,"')\" ");throw console.error(t),console.error(r),new Error(r)})}));return function(t){return e.apply(this,arguments)}}())),i].forEach(e=>{e?l.a.register(e({store:o})):console.error('Weird! This plugin requeseted to be registerd by we don\'t have the "pluginRegister" function.',e)}),e.innerHTML="",p.a.render(a.a.createElement(d.a,{store:o},a.a.createElement(a.a.Suspense,{fallback:a.a.createElement(c.a,null)},a.a.createElement(g,null))),document.getElementById("app"))})))},"./src/client/plugins.ts":function(e,t,r){r.d(t,"a",(function(){return i}));var n=r("../node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=r("../node_modules/global/window.js"),o=r.n(s);class PluginStore{constructor(){Object(n.a)(this,"plugins",void 0),Object(n.a)(this,"homePage",void 0),this.plugins={},this.homePage=null}register(e){if(e.id in this.plugins)throw new Error('Plugin with id "'.concat(e.id,'" has already been registered.'));this.plugins[e.id]=e}getPlugins(){return Object.values(this.plugins)}setHomePage(e){var{render:t}=e;this.homePage={render:t}}}var a="__knapsack_PLUGINS";var i=function getPluginStore(){return o.a[a]||(o.a[a]=new PluginStore),o.a[a]}()},"./src/client/store/utils.ts":function(e,t,r){r.d(t,"a",(function(){return getStateFromLocalStorage})),r.d(t,"b",(function(){return localStorageMiddleware}));var n="knapsack-store";function getStateFromLocalStorage(){var e=window.localStorage.getItem(n);return!!e&&JSON.parse(e)}var localStorageMiddleware=e=>t=>r=>(setTimeout(()=>{!function saveStateToLocalStorage(e){window.localStorage.setItem(n,JSON.stringify(e))}(e.getState())},0),t(r))},"./src/lib/constants.ts":function(e,t,r){r.d(t,"a",(function(){return s})),r.d(t,"d",(function(){return a})),r.d(t,"e",(function(){return i})),r.d(t,"b",(function(){return p}));var n=r("../packages/core/dist/index.esm.js");r.d(t,"c",(function(){return n.PERMISSIONS}));var s,{API_URL_BASE:o}=Object({NODE_ENV:"production"});!function(e){e.PATTERN="/pattern",e.PATTERNS="/patterns",e.PAGES="/pages",e.PAGE_BUILDER="/page-builder",e.CUSTOM_PAGES="/custom-pages",e.GRAPHIQL_PLAYGROUND="/graphql-playground",e.DOCS="/docs-dir"}(s||(s={}));var a=o||"/api",i="/graphql",p={CONFIG_READY:"CONFIG_READY",PATTERNS_DATA_READY:"PATTERNS_DATA_READY",PATTERN_TEMPLATE_ADDED:"PATTERN_TEMPLATE_ADDED",PATTERN_TEMPLATE_CHANGED:"PATTERN_TEMPLATE_CHANGED",PATTERN_TEMPLATE_REMOVED:"PATTERN_TEMPLATE_REMOVED",PATTERN_ASSET_CHANGED:"PATTERN_ASSET_CHANGED",PATTERN_CONFIG_CHANGED:"PATTERN_CONFIG_CHANGED",SHUTDOWN:"SHUTDOWN"}},"./src/lib/routes.ts":function(e,t,r){r.d(t,"b",(function(){return getPatternInfoFromUrl})),r.d(t,"a",(function(){return createDemoUrl}));r("../node_modules/url/url.js");var n=r("../node_modules/qs/lib/index.js"),s=r.n(n),o=r("./src/lib/constants.ts");function getPatternInfoFromUrl(e){if(e.startsWith("".concat(o.a.PATTERN,"/"))){var[t,r,n,s,a]=e.split("/");return{patternId:n,templateId:s,demoId:a}}return!1}function createDemoUrl(e){var{patternId:t,templateId:r,assetSetId:n,demoId:a,dataId:i,isInIframe:p=!1,wrapHtml:d=!0,cacheBuster:c}=e;return"".concat(o.d,"/render?").concat(s.a.stringify({patternId:t,templateId:r,assetSetId:n,demoId:a,dataId:i,isInIframe:p,wrapHtml:d,cacheBuster:c}))}},"./src/lib/utils.ts":function(e,t,r){r.d(t,"b",(function(){return validateSpec})),r.d(t,"a",(function(){return timer}));r("../node_modules/@babel/runtime/helpers/esm/defineProperty.js");var n=r("../node_modules/ajv/lib/ajv.js"),s=r.n(n),o=r("../node_modules/ajv-keywords/keywords/typeof.js"),a=r.n(o);var i=new s.a;a()(i);new s.a({useDefaults:!0});function validateSchema(e){var t=i.validateSchema(e);return{ok:t,message:t?"":"Schema itself is not valid. ".concat(i.errorsText())}}var p={type:"object",additionalProperties:{type:"object",properties:{title:{type:"string"},description:{type:"string"},disallowText:{type:"boolean"},isRequired:{type:"boolean"},allowedPatternIds:{type:"array",items:{type:"string"}}},additionalProperties:!1,required:["title"]},definitions:{KnapsackAssetSetConfig:{type:"object",properties:{assets:{type:"array",items:{type:"object",properties:{src:{type:"string"},tagLocation:{description:"Force this asset to load in either the head or foot of the HTML page.\nCSS defaults to head and JS default to foot",enum:["foot","head"],type:"string"}},additionalProperties:!1,required:["src"]}},id:{type:"string"},title:{type:"string"},inlineCss:{type:"string"},inlineJs:{type:"string"},inlineHead:{type:"string"},inlineFoot:{type:"string"}},additionalProperties:!1,required:["assets","id","title"]},KnapsackPatternTemplate:{type:"object",properties:{id:{type:"string"},title:{type:"string"},path:{description:"Relative file path to the template from the config file it is declared in",type:"string"},alias:{description:"Used by template renderers in addition to `path`\nTwig: `@components/button.twig`\nWeb Components: `my-button` => `<my-button>`\nReact: a named export of the file if not `default`",type:"string"},templateLanguageId:{description:"Which template language?\ni.e. `twig`, `react`\nReplaces KnapsackTemplateRenderer.test which ran a test on the file path (similar to how WebPack loader `test` works)",type:"string"},assetSetIds:{type:"array",items:{type:"string"}},statusId:{type:"string"},spec:{description:"Supersedes `schema`",type:"object",properties:{isInferred:{description:"EXPERMIMENTAL\nAttempt to create the props & slots spec by reading the source file. Prevents ability to use spec editor.\nIf `true`, then uses the template `alias` & `path` to find the file.\nIf a string, then that file path is used in place of the source file. Scenario: the `path` is used to point to a compiled file w types stripped and this is used to point to either the source file w types or the compiled `.d.ts` file.\nCurrently only React is supported. The file extension determines if TypeScript (ts/tsx) or PropTypes (js/jsx) is used for inference.",type:["string","boolean"]},props:{description:"JSON Schema defining the serializable data passed in\nThe classic, formerly `schema`"},slots:{description:"Child component slots",type:"object",additionalProperties:{type:"object",properties:{title:{type:"string"},description:{type:"string"},disallowText:{type:"boolean"},isRequired:{type:"boolean"},allowedPatternIds:{type:"array",items:{type:"string"}}},additionalProperties:!1,required:["title"]}}},additionalProperties:!1},demosById:{description:"Supercedes `demoData`, a `{}[]`\nSupercedes using `templates` for template files that were included with no data passed in and exist to demo how to include/import the source template and render it",type:"object",additionalProperties:{anyOf:[{description:"Shows usage",type:"object",properties:{type:{type:"string",enum:["data"]},data:{type:"object",properties:{props:{type:"object",additionalProperties:{}},slots:{type:"object",additionalProperties:{type:"array",items:{anyOf:[{type:"object",properties:{patternId:{type:"string"},templateId:{type:"string"},demoId:{type:"string"}},additionalProperties:!1,required:["demoId","patternId","templateId"]},{type:"string"}]}}}},additionalProperties:!1,required:["props"]},id:{type:"string"},title:{type:"string"},description:{type:"string"},assetSetId:{description:"Would override what was on the template",type:"string"}},additionalProperties:!1,required:["data","id","title","type"]},{description:"Shows source code",type:"object",properties:{type:{type:"string",enum:["template"]},templateInfo:{type:"object",properties:{alias:{description:"Used by template renderers in addition to `path`\nTwig: `@components/button.twig`\nWeb Components: `my-button` => `<my-button>`\nReact: a named export of the file if not `default`",type:"string"},path:{type:"string"}},additionalProperties:!1},id:{type:"string"},title:{type:"string"},description:{type:"string"},assetSetId:{description:"Would override what was on the template",type:"string"}},additionalProperties:!1,required:["id","templateInfo","title","type"]}]}},demos:{type:"array",items:{type:"string"}}},additionalProperties:!1,required:["id","path","templateLanguageId"]},DataDemo:{description:"Shows usage",type:"object",properties:{type:{type:"string",enum:["data"]},data:{type:"object",properties:{props:{type:"object",additionalProperties:{}},slots:{type:"object",additionalProperties:{type:"array",items:{anyOf:[{type:"object",properties:{patternId:{type:"string"},templateId:{type:"string"},demoId:{type:"string"}},additionalProperties:!1,required:["demoId","patternId","templateId"]},{type:"string"}]}}}},additionalProperties:!1,required:["props"]},id:{type:"string"},title:{type:"string"},description:{type:"string"},assetSetId:{description:"Would override what was on the template",type:"string"}},additionalProperties:!1,required:["data","id","title","type"]},TemplateDemo:{description:"Shows source code",type:"object",properties:{type:{type:"string",enum:["template"]},templateInfo:{type:"object",properties:{alias:{description:"Used by template renderers in addition to `path`\nTwig: `@components/button.twig`\nWeb Components: `my-button` => `<my-button>`\nReact: a named export of the file if not `default`",type:"string"},path:{type:"string"}},additionalProperties:!1},id:{type:"string"},title:{type:"string"},description:{type:"string"},assetSetId:{description:"Would override what was on the template",type:"string"}},additionalProperties:!1,required:["id","templateInfo","title","type"]},DemoSize:{enum:["full","l","m","s"],type:"string"},KnapsackCustomPageSlice:{type:"object",properties:{id:{type:"string"},blockId:{description:"Match this to a Slices `id` to use it",type:"string"},data:{}},additionalProperties:!1,required:["blockId","data","id"]}},$schema:"http://json-schema.org/draft-07/schema#"};function validateSpec(e){var t=!0,r=[];if(null==e?void 0:e.props){var n=validateSchema(e.props);n.ok||(t=!1,r.push('Invalid "spec.props":'),r.push(n.message))}if(null==e?void 0:e.slots){var s=function validateDataAgainstSchema(e,t){var{ok:r,message:n}=validateSchema(e);if(!r)return{ok:!1,message:n};var s=!!i.validate(e,t);return{ok:s,message:s?"":i.errorsText(),errors:s?[]:i.errors}}(p,e.slots);s.ok||(t=!1,r.push('Invalid "spec.slots":'),r.push(s.message),s.errors.forEach(e=>r.push(e.message)))}return{ok:t,message:r.join("\n")}}function timer(){var e=(new Date).getTime();return()=>{return((new Date).getTime()-e)/1e3}}},1:function(e,t,r){e.exports=r("./src/client/index.tsx")},react:function(e,t){e.exports=React}},[[1,"runtime","vendors~main~9b1fde68","vendors~main~2629904a","vendors~main~0efdf0b8","vendors~main~033841df","vendors~main~ea12930c","vendors~main~9073cddd","vendors~main~71c95e21","vendors~main~803a940f","vendors~main~ca5d241c"]]]);
//# sourceMappingURL=main~493df0b3.chunk.eaa5497fb7f7db0479e3.js.map