@blinkk/root-cms 3.0.4 → 3.0.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/dist/app.js +4 -2
- package/dist/{chunk-RLZFZT42.js → chunk-7L5OI5ES.js} +9 -9
- package/dist/core/plugin.d.ts +17 -0
- package/dist/core/schema.d.ts +20 -0
- package/dist/plugin.js +12 -1
- package/dist/shared/auto-slug-words.d.ts +7 -0
- package/dist/shared/auto-slug.d.ts +14 -0
- package/dist/ui/AIPage-JPZ4QUB4.js +1 -0
- package/dist/ui/{AssetsPage-4JNAOFYF.js → AssetsPage-GDJMKS3M.js} +1 -1
- package/dist/ui/{CollectionPage-JWHH5G55.js → CollectionPage-5DVXJEET.js} +1 -1
- package/dist/ui/ComparePage-LIXA6G66.js +1 -0
- package/dist/ui/{DataPage-VRCQSZZG.js → DataPage-AP4Z5JPS.js} +1 -1
- package/dist/ui/{DataSourcePage-WMSPBZ3W.js → DataSourcePage-WO3ZKMFI.js} +1 -1
- package/dist/ui/DocTranslationsPage-QKYFIVHP.js +1 -0
- package/dist/ui/DocumentPage-ON43I5KM.js +1 -0
- package/dist/ui/{EditDataSourcePage-LLCX6K4J.js → EditDataSourcePage-XVMEV2LJ.js} +1 -1
- package/dist/ui/{EditReleasePage-WQYXXMZQ.js → EditReleasePage-A2NB5TFG.js} +1 -1
- package/dist/ui/{ImageEditorDialog-4H665KK2.js → ImageEditorDialog-QEULJAT2.js} +2 -2
- package/dist/ui/LogsPage-4LZJX3O4.js +1 -0
- package/dist/ui/{NewDataSourcePage-RDYJC4DH.js → NewDataSourcePage-4YWX7IOG.js} +1 -1
- package/dist/ui/NewReleasePage-HWLVTEXX.js +1 -0
- package/dist/ui/{NotFoundPage-WDZ2K7EF.js → NotFoundPage-72AXQAYX.js} +1 -1
- package/dist/ui/{ProjectPage-HYJOQUWR.js → ProjectPage-L4GYDIA5.js} +1 -1
- package/dist/ui/ReleasePage-43BSWL5B.js +1 -0
- package/dist/ui/{ReleasesPage-NZIBBXU4.js → ReleasesPage-CJXAZBP6.js} +1 -1
- package/dist/ui/SettingsPage-SYXAMKSF.js +1 -0
- package/dist/ui/{SidebarToolsPage-5C6YBWJ7.js → SidebarToolsPage-OFF5BOXP.js} +1 -1
- package/dist/ui/TaskPage-HBDLHFI5.js +1 -0
- package/dist/ui/TasksPage-OLCDTQNB.js +1 -0
- package/dist/ui/{TranslationsArbPage-UHANA7JD.js → TranslationsArbPage-E3NCMAMS.js} +1 -1
- package/dist/ui/{TranslationsEditPage-PQY6W5YG.js → TranslationsEditPage-IWOI7Y5G.js} +1 -1
- package/dist/ui/{TranslationsPage-V2PQFCN5.js → TranslationsPage-OBN6CQZZ.js} +31 -31
- package/dist/ui/{ai-tools-5E5ELLZX.js → ai-tools-4DWMFQS6.js} +1 -1
- package/dist/ui/{chunk-KYDOSLTO.js → chunk-2225WAJ2.js} +1 -1
- package/dist/ui/chunk-32LRQ5MJ.js +1 -0
- package/dist/ui/{chunk-HKINZLMW.js → chunk-344GZOGG.js} +45 -45
- package/dist/ui/{chunk-FBJURT7Z.js → chunk-3HVDIPSS.js} +1 -1
- package/dist/ui/{chunk-BZIRGB4W.js → chunk-3IDOZ4MG.js} +1 -1
- package/dist/ui/{chunk-HHMG665Z.js → chunk-3XYCOR6Z.js} +1 -1
- package/dist/ui/chunk-4CUWZQXT.js +7 -0
- package/dist/ui/{chunk-3IYZCUPI.js → chunk-4IXGYXA2.js} +1 -1
- package/dist/ui/{chunk-PHBMVORG.js → chunk-6E7PGMZX.js} +1 -1
- package/dist/ui/{chunk-VMT7JFAM.js → chunk-6GPTGBA7.js} +1 -1
- package/dist/ui/{chunk-767BAQ53.js → chunk-6MOPIV5T.js} +1 -1
- package/dist/ui/{chunk-E2RCCK2T.js → chunk-AOCBDKLV.js} +1 -1
- package/dist/ui/chunk-AXETBZ6T.js +1 -0
- package/dist/ui/{chunk-54DVDYU6.js → chunk-BEDUTYQP.js} +1 -1
- package/dist/ui/{chunk-62UWGWON.js → chunk-CVGYBXVH.js} +1 -1
- package/dist/ui/{chunk-L4RHGQUG.js → chunk-D37DCENS.js} +1 -1
- package/dist/ui/{chunk-4W73RW5I.js → chunk-DXKEDMEI.js} +1 -1
- package/dist/ui/{chunk-C5NH23G4.js → chunk-EMYXSVTD.js} +1 -1
- package/dist/ui/{chunk-PWKJDYE2.js → chunk-GDSSFO5R.js} +1 -1
- package/dist/ui/{chunk-KFAZBEPV.js → chunk-HYARD7BK.js} +1 -1
- package/dist/ui/chunk-IDYKCAAL.js +1 -0
- package/dist/ui/chunk-IKED2IGU.js +1 -0
- package/dist/ui/{chunk-KKEWCXVV.js → chunk-J3EGGI57.js} +1 -1
- package/dist/ui/{chunk-HRGYNHZ3.js → chunk-KPJ53X55.js} +1 -1
- package/dist/ui/{chunk-W3BJ2EZX.js → chunk-KYKFNAX4.js} +1 -1
- package/dist/ui/{chunk-TJBVMFNQ.js → chunk-MZP6RIG2.js} +1 -1
- package/dist/ui/chunk-N4DFAIC5.js +7 -0
- package/dist/ui/{chunk-HLMBCVRX.js → chunk-N5Y5OWTV.js} +1 -1
- package/dist/ui/chunk-NMBXHKIJ.js +81 -0
- package/dist/ui/chunk-NQ5ARARP.js +1 -0
- package/dist/ui/{chunk-X2WHBGTP.js → chunk-NQB37NMX.js} +1 -1
- package/dist/ui/chunk-OVRTVMO5.js +1 -0
- package/dist/ui/{chunk-JT5L6GPZ.js → chunk-RI2JWWU3.js} +53 -53
- package/dist/ui/{chunk-AL3TN2KI.js → chunk-RPOP6MVJ.js} +1 -1
- package/dist/ui/{chunk-JHBAMPGB.js → chunk-RQKL4KXY.js} +1 -1
- package/dist/ui/{chunk-P3NETZZP.js → chunk-SEUH7LN2.js} +1 -1
- package/dist/ui/{chunk-V7S4IAGB.js → chunk-T47V6AGW.js} +1 -1
- package/dist/ui/{chunk-ONTGW2VA.js → chunk-TDKVKTW4.js} +1 -1
- package/dist/ui/chunk-TZEZEMRQ.js +1 -0
- package/dist/ui/{chunk-RSVO46S3.js → chunk-UA7UCTX5.js} +1 -1
- package/dist/ui/chunk-UFQSZ6J2.js +3 -0
- package/dist/ui/{chunk-DEGMKEHP.js → chunk-UHWNLNP4.js} +1 -1
- package/dist/ui/{chunk-CGCKJFL4.js → chunk-V7RAXP2W.js} +1 -1
- package/dist/ui/{chunk-JYFLU7DM.js → chunk-WKOX3VFN.js} +1 -1
- package/dist/ui/{chunk-SQRKKWRG.js → chunk-XYBHH5L4.js} +1 -1
- package/dist/ui/ui.css +1 -1
- package/dist/ui/ui.js +1 -1
- package/package.json +10 -10
- package/dist/ui/AIPage-YI3RFK5F.js +0 -1
- package/dist/ui/ComparePage-YZE3EMU4.js +0 -1
- package/dist/ui/DocTranslationsPage-RY2LOZBX.js +0 -1
- package/dist/ui/DocumentPage-EEGTJMIW.js +0 -1
- package/dist/ui/LogsPage-IP2DKEYR.js +0 -1
- package/dist/ui/NewReleasePage-DGMFU2JN.js +0 -1
- package/dist/ui/ReleasePage-2KSF23TK.js +0 -1
- package/dist/ui/SettingsPage-36XFWV62.js +0 -1
- package/dist/ui/TaskPage-SPIFPGPP.js +0 -1
- package/dist/ui/TasksPage-ZOXRPBQV.js +0 -1
- package/dist/ui/chunk-AFWBSIPL.js +0 -1
- package/dist/ui/chunk-GXSAEPU3.js +0 -1
- package/dist/ui/chunk-I6ICVKEC.js +0 -1
- package/dist/ui/chunk-JZFTZ4X4.js +0 -87
- package/dist/ui/chunk-MDUBCXU2.js +0 -1
- package/dist/ui/chunk-NXQVLOTK.js +0 -1
- package/dist/ui/chunk-NZHF733K.js +0 -7
- package/dist/ui/chunk-PJA7YP4A.js +0 -1
- package/dist/ui/chunk-XOQ3KDSR.js +0 -3
- package/dist/ui/chunk-YFA6U2CV.js +0 -1
- /package/dist/ui/{ImageEditorDialog-4H665KK2.js.LEGAL.txt → ImageEditorDialog-QEULJAT2.js.LEGAL.txt} +0 -0
- /package/dist/ui/{chunk-NZHF733K.js.LEGAL.txt → chunk-4CUWZQXT.js.LEGAL.txt} +0 -0
- /package/dist/ui/{chunk-JZFTZ4X4.js.LEGAL.txt → chunk-NMBXHKIJ.js.LEGAL.txt} +0 -0
- /package/dist/ui/{chunk-JT5L6GPZ.js.LEGAL.txt → chunk-RI2JWWU3.js.LEGAL.txt} +0 -0
- /package/dist/ui/{prerender-Q4YSDCPB.js → prerender-M47IWV5Q.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as $}from"./chunk-JHBAMPGB.js";import{a as W}from"./chunk-V7S4IAGB.js";import{f as U}from"./chunk-3IYZCUPI.js";import{a as B,c as L,d as O,i as A}from"./chunk-RSVO46S3.js";import{a as j,c as q}from"./chunk-ONTGW2VA.js";import{a as H}from"./chunk-L4RHGQUG.js";import{a as T}from"./chunk-JDW4UORS.js";import{b as M}from"./chunk-62UWGWON.js";import{a as v}from"./chunk-I6ICVKEC.js";import{d as k}from"./chunk-AL3TN2KI.js";import{Ga as I,Ha as e,Pc as F,Ra as V,W as p,a as c,aa as D,c as N,e as P,ea as f,j as ie,oa as y,qa as z,va as E}from"./chunk-NZHF733K.js";ie();function R(s){let{route:i}=k(),S=P(null),[Y,d]=c(!1),[w,g]=c(""),[G,h]=c(!!s.releaseId),[J,C]=c(null),[m,x]=c([]),[_,b]=c([]),K=W(),Q=$(),{roles:X}=H(),Z=window.firebase.user.email||"",n=j(X,Z);async function ee(r){console.log(r),await M(async()=>{let t=await L(r);C(t),x(t?.docIds||[]),b(t?.dataSourceIds||[])}),h(!1)}N(()=>{s.releaseId&&(h(!0),ee(s.releaseId))},[s.releaseId]);async function oe(){g("");let r=S.current;function t(l){let u=r.elements[l];return u?u.value.trim():""}let o=s.releaseId||t("id");if(!o){g("missing id");return}if(!T(o)){g("id is invalid (alphanumeric characters and dashes only)");return}let a={id:o,description:t("description"),docIds:m,dataSourceIds:_};try{C(a),d(!0),s.releaseId?(await O(s.releaseId,a),v({title:"Saved release",message:`Updated ${o}`,autoClose:5e3}),d(!1)):(await B(o,a),v({title:"Added release",message:`Successfully added ${o}`,autoClose:5e3}),d(!1)),i(`/cms/releases/${o}`)}catch(l){console.error(l),v({title:"Failed to save release",message:String(l),color:"red",autoClose:!1}),d(!1)}}function ae(){K.open({multiSelect:!0,selectedDocIds:m,onChangeMulti:(r,t)=>{x(o=>{let a=[...o];if(t)a.push(r);else{let l=a.findIndex(u=>u===r);l>-1&&a.splice(l,1)}return console.log(a),a.sort()})}})}function se(){Q.open({selectedDataSourceIds:_,onChange:(r,t)=>{b(o=>{let a=[...o];if(t)a.push(r);else{let l=a.indexOf(r);l>-1&&a.splice(l,1)}return a.sort()})}})}function re(r){console.log("onRemoveDoc()",r),x(t=>{let o=[...t],a=o.indexOf(r);return a!==-1&&o.splice(a,1),console.log(o),o})}function te(r){b(t=>{let o=[...t],a=o.indexOf(r);return a!==-1&&o.splice(a,1),o})}return e("form",{className:"ReleaseForm",ref:S,onSubmit:r=>{r.preventDefault(),oe()},children:[e(z,{visible:G}),e(E,{className:"ReleaseForm__input",name:"id",label:"ID",description:"Unique identifier for the release. Use alphanumeric characters and dashes only, e.g. grogus-favorite-meals",size:"xs",radius:0,defaultValue:s.releaseId||A(),disabled:!!s.releaseId}),e(y,{className:"ReleaseForm__input",name:"description",label:"Description",description:"Optional.",size:"xs",radius:0,value:J?.description,disabled:!n}),e(D,{className:"ReleaseForm__input",label:"Docs",description:"Select one or more docs to add to the release. Note: you can add or edit this list at a later time, if needed.",size:"xs",children:[m.length>0&&e(R.DocPreviewCards,{docIds:m,onRemoveDoc:re,canEdit:n}),e(f,{className:"ReleaseForm__docSelectButton",color:"dark",size:"xs",onClick:()=>ae(),disabled:!n,children:"Select"})]}),e(D,{className:"ReleaseForm__input",label:"Data Sources",description:"Optional. Data sources to publish with the release.",size:"xs",children:[_.length>0&&e(R.DataSourceIds,{ids:_,onRemove:te,canEdit:n}),e(f,{className:"ReleaseForm__docSelectButton",color:"dark",size:"xs",onClick:()=>se(),disabled:!n,children:"Select"})]}),e("div",{className:"ReleaseForm__submit__buttons",children:e(q,{label:"You don't have access to create or edit releases",condition:!n,children:e("span",{children:e(f,{className:"ReleaseForm__submit",color:"blue",size:"xs",type:"submit",loading:Y,disabled:!n,children:s.buttonLabel||"Save"})})})}),w&&e("div",{className:"ReleaseForm__error",children:["Error: ",w]})]})}R.DocPreviewCards=s=>e("div",{className:"ReleaseForm__DocPreviewCards",children:s.docIds.map(i=>e("div",{className:"ReleaseForm__DocPreviewCards__card",children:[e(U,{className:"ReleaseForm__DocPreviewCards__card__preview",docId:i}),e("div",{className:"ReleaseForm__DocPreviewCards__card__controls",children:[s.canEdit&&e("div",{className:"ReleaseForm__DocPreviewCards__card__controls__remove",children:e(I,{label:"Remove",children:e(p,{className:"ReleaseForm__DocPreviewCards__card__controls__remove__icon",onClick:()=>s.onRemoveDoc(i),children:e(F,{size:16})})})}),e("div",{className:"ReleaseForm__DocPreviewCards__card__controls__open",children:e(I,{label:"Open",children:e(p,{component:"a",className:"ReleaseForm__DocPreviewCards__card__controls__open__icon",href:`/cms/content/${i}`,target:"_blank",children:e(V,{size:16})})})})]})]},i))});R.DataSourceIds=s=>e("div",{className:"ReleaseForm__DataSourceIds",children:s.ids.map(i=>e("div",{className:"ReleaseForm__DataSourceIds__item",children:[e("span",{className:"ReleaseForm__DataSourceIds__item__id",children:i}),s.canEdit&&e(p,{className:"ReleaseForm__DataSourceIds__item__remove",onClick:()=>s.onRemove(i),children:e(F,{size:16})})]},i))});export{R as a};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as ie}from"./chunk-54DVDYU6.js";import{a as ee,b as M,c as D}from"./chunk-JDW4UORS.js";import{a as se}from"./chunk-YDO2EDVY.js";import{c as oe,s as ne}from"./chunk-AFWBSIPL.js";import{b as te}from"./chunk-62UWGWON.js";import{a as $}from"./chunk-I6ICVKEC.js";import{a as j}from"./chunk-HLMBCVRX.js";import{a as L}from"./chunk-5MV6XVGA.js";import{b as K,f as U,g as _,i as y,o as Y}from"./chunk-EGEB6N4J.js";import{d as Z,f as re}from"./chunk-AL3TN2KI.js";import{A as G,Aa as J,Ha as d,a as p,c as w,e as C,ea as P,g as B,h as R,i as W,j as T,sa as Q,va as q}from"./chunk-NZHF733K.js";import{j as X,k as pe}from"./chunk-KUCVLANF.js";function z(e){let t=window.__ROOT_CTX.collections[e.collectionId];if(!t)throw new Error(`collection not found: ${e.collectionId}`);if(!t.url)return"";let n=t.domain||window.__ROOT_CTX.rootConfig.domain||"https://example.com",s=he(e);return`${n}${s}`}function he(e){let o=window.__ROOT_CTX.collections,{collectionId:t,slug:n,locale:s}=e,r=o[t];if(!r)throw new Error(`collection not found: ${t}`);if(!r.url)return"";let c=window.__ROOT_CTX.rootConfig,g=c.base||"/",u="/[base]/[path]";s&&(u=c.i18n.urlFormat||"/[locale]/[base]/[path]");let m="",a=r?.url;if(a)if(n){let l=a.replace(/\[.*slug\]/,n).replaceAll("--","/").replace(/\/+/g,"/");l==="/index"&&(l="/"),m=l}else m=a;return ce(u,{base:g,path:m,locale:s||"",slug:n})}function we(e){let o=window.__ROOT_CTX.collections,{collectionId:t,slug:n,locale:s}=e,r=o[t];if(!r)throw new Error(`collection not found: ${t}`);let c=window.__ROOT_CTX.rootConfig,g=c.base||"/",u="/[base]/[path]";s&&(u=c.i18n.urlFormat||"/[locale]/[base]/[path]");let m="",a=r?.previewUrl||r?.url;if(a)if(n){let l=a.replace(/\[.*slug\]/,n).replaceAll("--","/").replace(/\/+/g,"/");l==="/index"&&(l="/"),m=l}else m=a;return ce(u,{base:g,path:m,locale:s||"",slug:n})}function ce(e,o){let t=e.replaceAll(/\[\[?(\.\.\.)?([\w\-_]*)\]?\]/g,(n,s,r)=>o[r]??n);return Se(t,{trailingSlash:window.__ROOT_CTX.rootConfig.server.trailingSlash})}function Se(e,o){return e=e.replace(/\/+/g,"/"),o?.trailingSlash===!1&&e!=="/"&&e.endsWith("/")&&(e=e.replace(/\/*$/g,"")),(e.endsWith("/index")||e.endsWith("/index/"))&&(e=e.slice(0,-6)),e.startsWith("/")||(e=`/${e}`),o?.trailingSlash&&!e.endsWith("/")&&(e=`${e}/`),e}T();function Ne(e,o){let[t,n]=p([]),[s,r]=p(!0),g=ie().db,u=window.__ROOT_CTX.rootConfig.projectId||"default",m=o.includeArchived??!1,a=async()=>{r(!0);let l=K(g,"Projects",u,"Collections",e,"Drafts"),i=l,f=o.orderBy;if(f==="modifiedAt")i=_(l,y("sys.modifiedAt","desc"));else if(f==="newest")i=_(l,y("sys.createdAt","desc"));else if(f==="oldest")i=_(l,y("sys.createdAt"));else if(f==="slug")i=_(l,y(U()));else if(f==="slugDesc")i=_(l,y(U(),"desc"));else{let h=window.__ROOT_CTX.collections[e]?.sortOptions?.find(v=>v.id===f);h&&(i=h.direction==="desc"?_(l,y(h.field,"desc")):_(l,y(h.field)))}await te(async()=>{let S=await Y(i),h=[];S.docs.forEach(v=>{let E=v.data(),b=v.id,x=`${e}/${b}`,O={...E,id:x,slug:b};oe(x,O),!(!m&&O?.sys?.archivedAt)&&h.push(O)}),n(h)}),r(!1)};return w(()=>{r(!0),a()},[e,o.orderBy,m]),[s,a,t]}pe();T();var N={CONNECTED:"connected",SCHEMA_CHANGED:"schemaChanged"};function le(e){let t=new URLSearchParams(window.location.search).get("e");return t?t.split(",").includes(e):!1}var Ee="/cms/api/sse.connect",A=le("EnableVerboseLogging"),ae=window.location.hostname==="localhost",F=class{constructor(){this.map=new Map}on(o,t){return this.map.has(o)||this.map.set(o,new Set),this.map.get(o).add(t),()=>{this.map.get(o)?.delete(t)}}emit(o,t,n){this.map.get(o)?.forEach(s=>s(t,n)),this.map.get("*")?.forEach(s=>s({type:o,data:t},n))}},de=X(null);function je(e){let t=C(new F).current,n=C(null),s=C(!1),r=C({attempt:0,timer:0}),c=C(""),g=()=>{n.current&&(n.current.close(),n.current=null)},u=R(()=>{A&&console.log("[sse] connecting..."),g();let a=new EventSource(Ee);n.current=a,a.addEventListener(N.CONNECTED,i=>{if(A&&console.log("[sse] connected"),s.current=!1,r.current.attempt=0,ae){let S=ue(i.data)?.serverVersion||"";c.current?c.current!==S&&(console.log(`server version changed: ${c.current} -> ${S}`),console.log("reloading..."),window.location.reload()):c.current=S}});let l=i=>{if(!i||!i.type)return;let f=ue(i.data);A&&console.log("[sse] event:",i.type,f),t.emit(i.type,f,i)};Object.values(N).forEach(i=>{a.addEventListener(i,l)}),a.addEventListener("error",()=>{A&&console.log("[sse] disconnected"),a.readyState===EventSource.CLOSED&&!s.current&&(s.current=!0,(()=>{let f=++r.current.attempt,S=Math.min(3e4,Math.pow(2,f)*500),h=Math.random()*.3*S,v=S+h;window.clearTimeout(r.current.timer),r.current.timer=window.setTimeout(()=>{s.current=!1,u()},v)})())})},[t]);w(()=>{if(!ae)return;u();let a=()=>{document.visibilityState==="visible"&&n.current?.readyState!==EventSource.OPEN&&u()};return document.addEventListener("visibilitychange",a),()=>{document.removeEventListener("visibilitychange",a),window.clearTimeout(r.current.timer),g()}},[u]);let m=B(()=>({emitter:t}),[t]);return d(de.Provider,{value:m,children:e.children})}function ue(e){try{return JSON.parse(e)}catch{return e}}function fe(e,o){let t=W(de);if(!t)throw new Error("useSSE() must be used within an <SSEProvider>");let n=C(o);w(()=>{n.current=o},[o]),w(()=>t.emitter.on(e,(s,r)=>n.current(s,r)),[t,e])}T();T();function ge(e){let[o,t]=p(!0),[n,s]=p(null),r=R(async()=>{try{let c=await se(e);s(c)}catch(c){console.error(c),$({title:`Failed to load collection: ${e}`,message:String(c),color:"red",autoClose:!1})}t(!1)},[e]);return w(()=>{r()},[e]),fe(N.SCHEMA_CHANGED,async c=>{await r();let g=c.file?`Applied updates from changes to ${c.file}.`:"Applied updates from changes to a .schema.ts file.";$({title:"Updated schema!",message:g})}),{loading:o,schema:n}}function H(e){let o={_array:[]};return e.forEach(t=>{let n=Ce();o._array.push(n),o[n]=t}),o}function Ce(){let e=[],o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t=o.length;for(let n=0;n<6;n++)e.push(o.charAt(Math.floor(Math.random()*t)));return e.join("")}function V(e){let o={};return e.fields.forEach(t=>{t.id&&(t.type==="array"&&t.default&&Array.isArray(t.default)?o[t.id]=H(t.default):t.default?o[t.id]=t.default:t.type==="object"&&(o[t.id]=V(t)))}),o}function k(e,o,t){let n={...o};return e.fields.forEach(s=>{if(!s.id)return;let r=n[s.id];if(r!=null){if(s.type==="array"&&Array.isArray(r)){let c=r.map(g=>ve(s.of,g,t));n[s.id]=H(c)}else if(s.type==="object"&&L(r))n[s.id]=k(s,r,t);else if(s.type==="oneof"&&L(r)&&typeof r._type=="string"&&t){let c=t[r._type];c&&(n[s.id]=k(c,r,t))}}}),n}function ve(e,o,t){if(!L(o))return o;if(e.type==="object")return k(e,o,t);if(e.type==="oneof"&&typeof o._type=="string"&&t){let n=t[o._type];if(n)return k(n,o,t)}return o}T();function me(e){let[o,t]=p(e.collectionId||""),n=C(null),[s,r]=p(""),c=window.__ROOT_CTX.collections[o],g=[];e.collectionId&&e.collectionDisabled?g.push({value:e.collectionId,label:e.collectionId}):Object.keys(window.__ROOT_CTX.collections).forEach(i=>{g.push({value:i,label:i})});let u="",m="";if(c?.url){if(s){let i=D(s),f=c?.slugRegex;ee(i,f)?u=z({collectionId:o,slug:i}):m=M(i,f)}else u=z({collectionId:o,slug:"[slug]"});u.endsWith("/index")&&(u=u.replace(/\/index$/,"/"))}function a(i){t(i),e.onChange&&e.onChange({collectionId:i,slug:s})}function l(i){r(i),e.onChange&&e.onChange({collectionId:o,slug:i})}return d("div",{className:re(e.className,"SlugInput"),children:[d("div",{className:"SlugInput__inputs",children:[d(J,{className:"SlugInput__collection",placeholder:"Collection",size:"xs",data:g,onChange:i=>a(i),value:o,disabled:!!e.collectionDisabled}),d("div",{className:"SlugInput__divider",children:"/"}),d(q,{className:"SlugInput__slug",name:"slug",ref:n,value:s,onChange:i=>{l(i.currentTarget.value)},placeholder:"slug",autoComplete:"off",size:"xs"})]}),u&&d(j,{className:"SlugInput__urlHelp",size:"body-sm",children:u}),m&&d(j,{className:"SlugInput__slugError",size:"body-sm",children:m})]})}function wt(e){let{route:o}=Z(),[t,n]=p(""),[s,r]=p(!1),[c,g]=p(""),[u,m]=p(""),a=G(),l=e.collection,i=window.__ROOT_CTX.collections[l];if(!i)throw new Error(`collection not found: ${l}`);let f=ge(l);function S(E){let b=D(E);return b?M(b,i.slugRegex):""}function h(){e.onClose&&e.onClose()}async function v(E){if(E.preventDefault(),r(!0),g(""),S(t)){r(!1);return}let x=D(t),O=`${l}/${x}`;try{let I={};!f.loading&&f.schema&&(I=await V(f.schema)),await ne(O,{fields:I})}catch(I){m(String(I)),r(!1);return}r(!1),e.skipNavigation?h():o(`/cms/content/${e.collection}/${x}`)}return d(Q,{className:"NewDocModal",opened:e.opened||!1,onClose:()=>h(),title:"New",size:"500px",overlayColor:a.colorScheme==="dark"?a.colors.dark[9]:a.colors.gray[2],children:[d("div",{className:"NewDocModal__body",children:"Enter a slug for the new doc. The slug is the ID of the page and is what's used in the URL. Use only lowercase letters, numbers, and dashes."}),d("form",{onSubmit:E=>v(E),children:[d(me,{className:"NewDocModal__slug",collectionId:l,onChange:E=>{n(E.slug),g(S(E.slug)),m("")}}),u&&d("div",{className:"NewDocModal__slugError",children:u}),d("div",{className:"NewDocModal__buttons",children:[d(P,{variant:"outline",onClick:()=>h(),type:"button",size:"xs",color:"dark",children:"Cancel"}),d(P,{variant:"filled",type:"submit",size:"xs",color:"dark",loading:f.loading||s,disabled:!!c||!!u,children:"Submit"})]})]})]})}export{z as a,he as b,we as c,me as d,Ne as e,je as f,ge as g,V as h,k as i,wt as j};
|