@oktis-works/admin 0.8.1 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/client/_astro/{ActivityWidget.CPGVx0TQ.js → ActivityWidget.ByKRv9-E.js} +1 -1
  2. package/dist/client/_astro/{AdminBar.D_ZbjSam.js → AdminBar.D_a0PAun.js} +1 -1
  3. package/dist/client/_astro/{AtGlanceWidget.CkVwNzps.js → AtGlanceWidget.BSG_4syZ.js} +1 -1
  4. package/dist/client/_astro/BaseLayout.3eIEVCjB.css +1 -0
  5. package/dist/client/_astro/{ContentEditor.oK1k6X8U.js → ContentEditor.CdhqgY1I.js} +1 -1
  6. package/dist/client/_astro/ContentEditor.Dk4pXUkp.js +1 -0
  7. package/dist/client/_astro/{ContentTypeWorkspace.C44tlgPI.js → ContentTypeWorkspace.DRh2tSis.js} +1 -1
  8. package/dist/client/_astro/{DashboardHome.BO_rm7Uf.js → DashboardHome.BzbaJOUx.js} +1 -1
  9. package/dist/client/_astro/{DashboardLayout.astro_astro_type_script_index_0_lang.CJ39grFK.js → DashboardLayout.astro_astro_type_script_index_0_lang.wCZbNQh3.js} +1 -1
  10. package/dist/client/_astro/{FieldGroupEditor.BeI58rW-.js → FieldGroupEditor.DJJyTLKZ.js} +1 -1
  11. package/dist/client/_astro/{FieldGroupList.ahbjUfLG.js → FieldGroupList.DtsJdk81.js} +1 -1
  12. package/dist/client/_astro/{Footer.-3jVB90b.js → Footer.C-hG1-qd.js} +1 -1
  13. package/dist/client/_astro/{GeneralSettings.BpkMdYlo.js → GeneralSettings.DsAiNE-f.js} +1 -1
  14. package/dist/client/_astro/{LogsManager.B4n86e4G.js → LogsManager.B_KlSIsF.js} +1 -1
  15. package/dist/client/_astro/{MediaLibrary.Bj4WH-vM.js → MediaLibrary.DRijq5qg.js} +1 -1
  16. package/dist/client/_astro/{MenuManager.8HZJSEQE.js → MenuManager.B73RzwWS.js} +1 -1
  17. package/dist/client/_astro/{PluginManager.chYe_Wjc.js → PluginManager.C8e99whu.js} +1 -1
  18. package/dist/client/_astro/{PostTypesManager.2yuiIqth.js → PostTypesManager.C5P_rgmV.js} +1 -1
  19. package/dist/client/_astro/{QuickDraftWidget.lYg-ohWh.js → QuickDraftWidget.W_YLMEhA.js} +1 -1
  20. package/dist/client/_astro/{ResourceHubs.Cj4GS6P8.js → ResourceHubs.CTqijjUu.js} +1 -1
  21. package/dist/client/_astro/{TaxonomiesManager.ly7pMtHQ.js → TaxonomiesManager.BR1fsS45.js} +1 -1
  22. package/dist/client/_astro/{TaxonomyTermsManager.rTnyCMmS.js → TaxonomyTermsManager.m3lSy4r2.js} +1 -1
  23. package/dist/client/_astro/{ThemeManager.4UHfA_xy.js → ThemeManager.BXeLJM2B.js} +1 -1
  24. package/dist/client/_astro/{UserCreateForm.BgcqPitU.js → UserCreateForm.B3vi6lEe.js} +1 -1
  25. package/dist/client/_astro/{UsersManager.iKH5HmkO.js → UsersManager.BsQLF4N-.js} +1 -1
  26. package/dist/client/_astro/{WebhooksManager.ljJo1uYf.js → WebhooksManager.DZOF_Lfa.js} +1 -1
  27. package/dist/client/_astro/api.s1WYKU5S.js +1 -0
  28. package/dist/client/_astro/{extensions.Ctfl4oXN.js → extensions.CPygai9z.js} +1 -1
  29. package/dist/client/_astro/{i18n.DVVsFXMk.js → i18n.Cnvng1i8.js} +1 -1
  30. package/dist/client/_astro/{login.astro_astro_type_script_index_0_lang.DzXBvx_L.js → login.astro_astro_type_script_index_0_lang.Di9uRFih.js} +1 -1
  31. package/dist/server/chunks/{BaseLayout_BZ15mIMT.mjs → BaseLayout_Ctd-h_eB.mjs} +43 -1
  32. package/dist/server/chunks/{ContentEditor_DPDP8noZ.mjs → ContentEditor_qKR9fpe8.mjs} +2 -2
  33. package/dist/server/chunks/{DashboardLayout_sxL4fjEa.mjs → DashboardLayout_BNKTHTT6.mjs} +2 -2
  34. package/dist/server/chunks/{MediaLibrary_CqYE2tyV.mjs → MediaLibrary_DKM6Z01t.mjs} +2 -2
  35. package/dist/server/chunks/{_id__DDTEd-qC.mjs → _id__Dc8x5ZB_.mjs} +2 -2
  36. package/dist/server/chunks/{_slug__o87Gw0es.mjs → _slug__TIgSSEKi.mjs} +1 -1
  37. package/dist/server/chunks/{access_BGi-cN6i.mjs → access_BvKpp3Az.mjs} +2 -2
  38. package/dist/server/chunks/{custom-fields_Djx-1HSg.mjs → custom-fields_C6bBcIz1.mjs} +2 -2
  39. package/dist/server/chunks/{edit_CvRROV3u.mjs → edit_qJcwJec6.mjs} +2 -2
  40. package/dist/server/chunks/{general_C6rgtOR8.mjs → general_BCNLqMDL.mjs} +2 -2
  41. package/dist/server/chunks/{i18n_B-Vk5esc.mjs → i18n_BfgvkkQ3.mjs} +22 -6
  42. package/dist/server/chunks/{index_C7XvJ8P3.mjs → index_BaXq9AJQ.mjs} +2 -2
  43. package/dist/server/chunks/{index_go8fSE8G.mjs → index_Bs28Crlc.mjs} +2 -2
  44. package/dist/server/chunks/{index_BA7-fM18.mjs → index_Bz9Zt3Gg.mjs} +3 -3
  45. package/dist/server/chunks/{index_BGdnKIIl.mjs → index_CpOI5A1d.mjs} +2 -2
  46. package/dist/server/chunks/{index_547I2dgv.mjs → index_oNcDaYZP.mjs} +1 -1
  47. package/dist/server/chunks/{login_BMz4ooOT.mjs → login_Be6CwsHW.mjs} +2 -2
  48. package/dist/server/chunks/{logs_B_0dZY7S.mjs → logs_6PAEU2-l.mjs} +2 -2
  49. package/dist/server/chunks/{menus_Bl4C_thz.mjs → menus_C1FABR1f.mjs} +2 -2
  50. package/dist/server/chunks/{new_Cb3LN88k.mjs → new_CEcQMkCA.mjs} +2 -2
  51. package/dist/server/chunks/{new_VLlyqeoo.mjs → new_CPBZ6l2j.mjs} +2 -2
  52. package/dist/server/chunks/{plugins_CSRR8MZ0.mjs → plugins_BohPz8Db.mjs} +2 -2
  53. package/dist/server/chunks/{post-types_CYvX6Qcd.mjs → post-types_ByqPWx-G.mjs} +2 -2
  54. package/dist/server/chunks/{taxonomies_t0cAxES3.mjs → taxonomies_ChcH00Dp.mjs} +2 -2
  55. package/dist/server/chunks/{taxonomy_DRFAlgBC.mjs → taxonomy_C5BNjW4y.mjs} +2 -2
  56. package/dist/server/chunks/{themes_FZ0wN4AI.mjs → themes_DbVQzy9w.mjs} +2 -2
  57. package/dist/server/chunks/{upload_JZuEWv3a.mjs → upload_3ie1Sjrz.mjs} +2 -2
  58. package/dist/server/chunks/{webhooks_Bqh1Fnny.mjs → webhooks_B0ruTCzg.mjs} +2 -2
  59. package/dist/server/entry.mjs +24 -24
  60. package/dist/server/virtual_astro_middleware.mjs +73 -3
  61. package/package.json +1 -1
  62. package/dist/client/_astro/BaseLayout.BlcwaDnT.css +0 -1
  63. package/dist/client/_astro/ContentEditor.D2Pzxrmx.js +0 -1
  64. package/dist/client/_astro/api.CGA0D2A2.js +0 -1
@@ -1 +1 @@
1
- import{d as e,i as t,p as n,r,s as i,v as a}from"./solid.8gBSxpeo.js";import{a as o,c as s,d as c,i as l,m as u,n as d,r as f,s as p}from"./web.DwNv8rLL.js";import{t as m}from"./api.CGA0D2A2.js";import"./src.BJaHBCQK.js";var h=u(`<a class=sidebar__link><!$><!/> <!$><!/>`),g=u(`<span aria-hidden=true>`);function _(t){let n=()=>t.extensions.menuPages.filter(e=>t.can(e.capability??`read`));return i(r,{get each(){return n()},children:t=>(()=>{var n=l(h),r=n.firstChild,[i,a]=o(r.nextSibling),u=i.nextSibling.nextSibling,[d,f]=o(u.nextSibling);return p(n,(()=>{var e=s(()=>!!t.icon);return()=>e()?(()=>{var e=l(g);return p(e,()=>t.icon),e})():null})(),i,a),p(n,()=>t.label,d,f),e(()=>c(n,`href`,`/plugins/${t.slug}`)),n})()})}f([`click`]);var v=u(`<div class=sidebar-plugins data-extensions=sidebar><!$><!/><!$><!/>`),y=u(`<div><span>`);function b(){return{menuPages:[],submenuPages:[],dashboardWidgets:[],metaBoxes:[],notices:[],columns:{},columnRenderers:{},actionLinks:[]}}function x(e){let t=b();for(let n of e){if(n.status!==`ACTIVE`&&n.status!==`ACTIVATED`)continue;let e=n.manifest?.admin;if(!e)continue;let r=n.slug??n.name;t.menuPages.push(...e.menuPages?.map(e=>({...e,slug:e.slug.startsWith(`${r}/`)?e.slug:`${r}/${e.slug}`}))??[]),t.dashboardWidgets.push(...e.dashboardWidgets?.map(e=>({...e,id:e.id.includes(`:`)?e.id:`${r}:${e.id}`,componentId:e.componentId.includes(`:`)?e.componentId:`${r}:${e.componentId}`}))??[]),t.notices.push(...e.notices?.map(e=>({...e,id:e.id.includes(`:`)?e.id:`${r}:${e.id}`}))??[])}return t}function S(){let[s,u]=n(b());a(async()=>{try{let e=await m.getPlugins();u(x(e))}catch{}});let f=()=>!0;return i(t,{get when(){return s().menuPages.length>0},get children(){var t=l(v),n=t.firstChild,[a,u]=o(n.nextSibling),m=a.nextSibling,[h,g]=o(m.nextSibling);return p(t,i(r,{get each(){return s().notices},children:t=>(()=>{var n=l(y),r=n.firstChild;return p(r,()=>t.message),e(e=>{var r=`notice notice--${t.level}`,i=t.id.split(`:`)[0];return r!==e.e&&d(n,e.e=r),i!==e.t&&c(n,`data-plugin`,e.t=i),e},{e:void 0,t:void 0}),n})()}),a,u),p(t,i(_,{get extensions(){return s()},can:f}),h,g),t}})}export{S as PluginExtensionsSlot,b as emptyExtensionsState,x as extensionsFromPlugins};
1
+ import{d as e,i as t,p as n,r,s as i,v as a}from"./solid.8gBSxpeo.js";import{a as o,c as s,d as c,i as l,m as u,n as d,r as f,s as p}from"./web.DwNv8rLL.js";import{t as m}from"./api.s1WYKU5S.js";import"./src.BJaHBCQK.js";var h=u(`<a class=sidebar__link><!$><!/> <!$><!/>`),g=u(`<span aria-hidden=true>`);function _(t){let n=()=>t.extensions.menuPages.filter(e=>t.can(e.capability??`read`));return i(r,{get each(){return n()},children:t=>(()=>{var n=l(h),r=n.firstChild,[i,a]=o(r.nextSibling),u=i.nextSibling.nextSibling,[d,f]=o(u.nextSibling);return p(n,(()=>{var e=s(()=>!!t.icon);return()=>e()?(()=>{var e=l(g);return p(e,()=>t.icon),e})():null})(),i,a),p(n,()=>t.label,d,f),e(()=>c(n,`href`,`/plugins/${t.slug}`)),n})()})}f([`click`]);var v=u(`<div class=sidebar-plugins data-extensions=sidebar><!$><!/><!$><!/>`),y=u(`<div><span>`);function b(){return{menuPages:[],submenuPages:[],dashboardWidgets:[],metaBoxes:[],notices:[],columns:{},columnRenderers:{},actionLinks:[]}}function x(e){let t=b();for(let n of e){if(n.status!==`ACTIVE`&&n.status!==`ACTIVATED`)continue;let e=n.manifest?.admin;if(!e)continue;let r=n.slug??n.name;t.menuPages.push(...e.menuPages?.map(e=>({...e,slug:e.slug.startsWith(`${r}/`)?e.slug:`${r}/${e.slug}`}))??[]),t.dashboardWidgets.push(...e.dashboardWidgets?.map(e=>({...e,id:e.id.includes(`:`)?e.id:`${r}:${e.id}`,componentId:e.componentId.includes(`:`)?e.componentId:`${r}:${e.componentId}`}))??[]),t.notices.push(...e.notices?.map(e=>({...e,id:e.id.includes(`:`)?e.id:`${r}:${e.id}`}))??[])}return t}function S(){let[s,u]=n(b());a(async()=>{try{let e=await m.getPlugins();u(x(e))}catch{}});let f=()=>!0;return i(t,{get when(){return s().menuPages.length>0},get children(){var t=l(v),n=t.firstChild,[a,u]=o(n.nextSibling),m=a.nextSibling,[h,g]=o(m.nextSibling);return p(t,i(r,{get each(){return s().notices},children:t=>(()=>{var n=l(y),r=n.firstChild;return p(r,()=>t.message),e(e=>{var r=`notice notice--${t.level}`,i=t.id.split(`:`)[0];return r!==e.e&&d(n,e.e=r),i!==e.t&&c(n,`data-plugin`,e.t=i),e},{e:void 0,t:void 0}),n})()}),a,u),p(t,i(_,{get extensions(){return s()},can:f}),h,g),t}})}export{S as PluginExtensionsSlot,b as emptyExtensionsState,x as extensionsFromPlugins};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime.BpQH8Ho1.js";import{p as t,v as n}from"./solid.8gBSxpeo.js";import{t as r}from"./api.CGA0D2A2.js";var i=[`pt-BR`,`en`,`es-ES`,`ru`,`uk`,`tr`,`he`,`it`,`pl`,`zh-CN`,`ja`,`ar`,`sw`,`yo`,`zu`,`am`,`ha`,`ig`],a={"pt-BR":`Português (Brasil)`,en:`English`,"es-ES":`Español`,ru:`Русский`,uk:`Українська`,tr:`Türkçe`,he:`עברית`,it:`Italiano`,pl:`Polski`,"zh-CN":`中文 (简体)`,ja:`日本語`,ar:`العربية`,sw:`Kiswahili`,yo:`Yorùbá`,zu:`isiZulu`,am:`አማርኛ`,ha:`Hausa`,ig:`Igbo`},o={"pt-BR":`🇧🇷`,en:`🇺🇸`,"es-ES":`🇪🇸`,ru:`🇷🇺`,uk:`🇺🇦`,tr:`🇹🇷`,he:`🇮🇱`,it:`🇮🇹`,pl:`🇵🇱`,"zh-CN":`🇨🇳`,ja:`🇯🇵`,ar:`🇸🇦`,sw:`🇹🇿`,yo:`🇳🇬`,zu:`🇿🇦`,am:`🇪🇹`,ha:`🇳🇬`,ig:`🇳🇬`};function s(e){return i.includes(e)}var ee=(e,t,n)=>{let r=t.lastIndexOf(`?`),i=e[r===-1||r<t.lastIndexOf(`/`)?t:t.slice(0,r)];return i?typeof i==`function`?i():Promise.resolve(i):new Promise((e,r)=>{(typeof queueMicrotask==`function`?queueMicrotask:setTimeout)(r.bind(null,Error(`Unknown variable dynamic import: `+t+(t.split(`/`).length===n?``:`. Note that variables only represent file names one level deep.`))))})},te=(function(){let e=typeof document<`u`&&document.createElement(`link`).relList;return e&&e.supports&&e.supports(`modulepreload`)?`modulepreload`:`preload`})(),ne=function(e){return`/`+e},c={},l=function(e){return e.pathname.endsWith(`.css`)},u=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=ne(t,n);let r=s(t);if(r.href in c)return;c[r.href]=!0;let i=l(r);if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let o=document.createElement(`link`);if(o.rel=i?`stylesheet`:te,i||(o.as=`script`),o.crossOrigin=``,o.href=r.href,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),i)return new Promise((e,t)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>t(Error(`Unable to preload CSS for ${r}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},d=new Map;async function f(e){if(d.has(e))return d.get(e);try{let t=await ee(Object.assign({"./locales/ar.json":()=>u(()=>import(`./ar.9BcNkJMI.js`),[]),"./locales/en.json":()=>u(()=>Promise.resolve().then(()=>b),void 0),"./locales/es-ES.json":()=>u(()=>import(`./es-ES.DgqDFCmG.js`),[]),"./locales/he.json":()=>u(()=>import(`./he.11dIJHQw.js`),[]),"./locales/it.json":()=>u(()=>import(`./it.yCdgk3Xj.js`),[]),"./locales/ja.json":()=>u(()=>import(`./ja.BIm7Hwe_.js`),[]),"./locales/pl.json":()=>u(()=>import(`./pl.dUwrcITB.js`),[]),"./locales/pt-BR.json":()=>u(()=>import(`./pt-BR.dxAFMMtn.js`),[]),"./locales/ru.json":()=>u(()=>import(`./ru.lmDiQaSu.js`),[]),"./locales/sw.json":()=>u(()=>import(`./sw._qHdoFbp.js`),[]),"./locales/tr.json":()=>u(()=>import(`./tr.Do-lr98T.js`),[]),"./locales/uk.json":()=>u(()=>import(`./uk.DTUX-N1c.js`),[]),"./locales/yo.json":()=>u(()=>import(`./yo.BIYG0J7I.js`),[]),"./locales/zh-CN.json":()=>u(()=>import(`./zh-CN.C7Iod1E1.js`),[])}),`./locales/${e}.json`,3),n=t.default??t;return d.set(e,n),n}catch{return e===`en`?{}:f(`en`)}}var p=`admin_locale`;function m(){if(typeof document>`u`)return null;let e=document.cookie.match(RegExp(`(?:^|; )${p}=([^;]+)`));return e?.[1]&&i.includes(e[1])?e[1]:null}function h(e){typeof document<`u`&&(document.cookie=`${p}=${e}; path=/; max-age=31536000; SameSite=Lax`)}function g(){if(typeof navigator>`u`)return`en`;let e=navigator.language?.split(`-`)[0]?.toLowerCase(),t=navigator.language?.toLowerCase();for(let n of i)if(n.toLowerCase()===t||n.split(`-`)[0]===e)return n;return`en`}async function _(){try{let e=await r.getUserLocale();if(e&&i.includes(e))return e}catch{}return null}async function v(e){await r.setUserLocale(e)}async function re(){return m()||await _()||g()||`en`}async function y(e){h(e);try{await v(e)}catch{}}var b=e({access:()=>k,activity:()=>I,adminBar:()=>L,common:()=>F,content:()=>C,dashboard:()=>S,default:()=>V,footer:()=>R,helpTabs:()=>z,layout:()=>x,login:()=>P,logs:()=>A,media:()=>w,menus:()=>D,plugins:()=>M,resources:()=>O,screenOptions:()=>B,settings:()=>E,themes:()=>N,users:()=>T,webhooks:()=>j}),x={appName:`OkCMS`,admin:`Admin`,nav:{dashboard:`Dashboard`,content:`Content`,media:`Media`,users:`Users`,menus:`Menus`,settings:`Settings`,plugins:`Plugins`,themes:`Themes`},actions:{logout:`Logout`,newPost:`New Post`,uploadMedia:`Upload Media`,addUser:`Add User`,openSettings:`Settings`}},S={title:`Dashboard`,stats:{totalContent:`Total Content`,published:`Published`,drafts:`Drafts`,mediaFiles:`Media Files`,users:`Users`},recent:{title:`Recent Content`,viewAll:`View All`,empty:`No content yet — create your first!`,columns:{title:`Title`,type:`Type`,status:`Status`,updated:`Updated`}},widgets:{atGlance:`At a Glance`,posts:`Posts`,postsDesc:`Published / Drafts / Trash`,pages:`Pages`,pagesDesc:`Published / Drafts / Trash`,media:`Media`,mediaDesc:`Files in the library`,users:`Users`,usersDesc:`Total / Active / Inactive`,version:`Version`,storage:`Storage`,quickDraft:{title:`Quick Draft`,heading:`Title`,headingPlaceholder:`Give your draft a title`,content:`Content`,contentPlaceholder:`What's on your mind?`,save:`Save Draft`,yourDrafts:`Your Drafts`,noDrafts:`No drafts yet.`},activity:{title:`Activity`,empty:`No activity yet.`}}},C={list:{title:`Content`,description:`Search, filter, edit and publish your content.`,typeNotFound:`This content type was not found.`,columns:{title:`Title`,type:`Type`,status:`Status`,updated:`Updated`},actions:{edit:`Edit`,publish:`Publish`,unpublish:`Unpublish`,delete:`Delete`},filters:{search:`Search content…`,allTypes:`All types`,allStatus:`All status`},buttons:{new:`+ New content`,addNew:`+ Add new`,search:`Search`},all:`All content`,empty:`No content found.`,statuses:{draft:`Draft`,published:`Published`,archived:`Archived`},confirmDelete:`Delete "{title}"?`,toasts:{published:`Content published ✓`,unpublished:`Content unpublished ✓`}},editor:{type:`Type`,adding:`Add new`,editing:`Edit`,backToList:`Back to list`,saving:`Saving…`,title:`Title`,titlePlaceholder:`Add title`,slug:`Slug`,slugPlaceholder:`auto-generated-from-title`,toolbar:`Editor toolbar`,bodyPlaceholder:`Start writing…`,linkPrompt:`Enter the URL:`,excerpt:`Excerpt`,featuredImage:`Featured Image (media ID)`,mediaIdPlaceholder:`Media ID`,featuredImageHint:`Choose a media item from the Media library.`,pageAttributes:`Page attributes`,publishPanel:`Publish`,status:`Status`,statusOptions:{draft:`Draft`,published:`Published`,archived:`Archived`},layout:`Layout`,layoutAuto:`Automatic (theme hierarchy)`,customFields:`Custom Fields`,inspectTypes:`Inspect available types`,save:`Save`,saved:`Content saved successfully.`},taxonomy:{title:`Taxonomy terms`,back:`← Back to content`,choose:`Choose a taxonomy from the content menu.`,notFound:`Taxonomy not found.`,addTerm:`Add new term`,editTerm:`Edit term`,name:`Name`,slug:`Slug`,description:`Description`,descriptionHint:`Manage the terms used by this content type.`,attachedTo:`Attached to`,add:`Add term`,delete:`Delete`,empty:`No terms yet.`,confirmDelete:`Delete "{name}"?`}},w={title:`Media Library`,description:"Upload and manage images, videos and documents. Files are stored in `uploads/` and served publicly.",upload:{dropzone:`Drop files here or`,select:`Select files`,uploading:`Uploading…`,hint:`Images, videos, audio and documents · up to 25MB per file`},toolbar:{search:`Search by name or alt…`,allTypes:`All types`,searchBtn:`Search`},mimeTypes:{png:`PNG`,jpeg:`JPEG`,gif:`GIF`,webp:`WebP`,svg:`SVG`,pdf:`PDF`,mp4:`MP4`,mp3:`MP3`},empty:`No files yet. Upload the first one!`,details:{title:`Details`,titleField:`Title`,file:`File`,type:`Type`,size:`Size`,dimensions:`Dimensions`,uploaded:`Uploaded`,url:`URL`,copy:`Copy`,alt:`Alt text`,caption:`Caption`,description:`Description`,save:`Save details`,replace:`Replace file`,replacing:`Replacing…`,replaceHint:`Keeps this attachment and its metadata.`,delete:`Delete`,close:`Close`,confirmDelete:`Delete "{filename}"? The file will be removed from disk.`,saved:`Details saved ✓`,copied:`URL copied ✓`,copyError:`Could not copy URL`,replaced:`File replaced ✓`},toasts:{uploaded:`{count} file(s) uploaded ✓`}},T={title:`Users`,description:`Manage accounts, roles and project access.`,new:`New User`,toolbar:{search:`Search by name or email…`,allStatus:`All status`,active:`Active`,inactive:`Inactive`,newBtn:`+ New user`,searchBtn:`Search`},table:{name:`Name`,email:`Email`,role:`Role`,status:`Status`,lastAccess:`Last access`,actions:{manage:`Manage`,delete:`Delete`}},empty:`No users found.`,noRole:`No role`,detail:{title:`Manage user`,fields:{name:`Name`,email:`Email`,status:`Status`,role:`Role`,password:`Password`},statusOptions:{active:`Active`,inactive:`Inactive`},rolePlaceholder:`— no role —`,meta:`Created on {created} · last access {lastAccess}`,actions:{save:`Save`,resetPassword:`Reset password`,close:`Close`},passwordPrompt:`New password for {email} (minimum 8 chars):`,passwordError:`Password must be at least 8 characters`,toasts:{roleUpdated:`Role for {name} updated ✓`,passwordChanged:`Password for {name} changed ✓`,saved:`User {name} saved ✓`,deleted:`User {name} deleted ✓`},confirmDelete:`Delete user {email}?`}},E={general:{title:`General`,description:`Basic information displayed on the site.`,back:`← All settings`,fields:{siteTitle:`Site Title`,siteTitlePlaceholder:`My Site`,siteDescription:`Description`,siteDescriptionPlaceholder:`A new site built with OkCMS`,language:`Language`,timezone:`Timezone`,timezonePlaceholder:`America/Sao_Paulo`},saved:`Settings saved ✓`,loading:`Loading…`,save:`Save`},postTypes:{title:`Content Types`,description:`Create custom content types (CPTs) beyond Posts and Pages.`,form:{title:`Create Content Type`,slug:`Slug (singular, e.g.: portfolio)`,slugHint:`Only lowercase letters, numbers and underscore`,singular:`Singular name`,plural:`Plural name`,supports:`Supports`,supportsOptions:{title:`Title`,editor:`Editor`,thumbnail:`Featured Image`,excerpt:`Excerpt`,revisions:`Revisions`},hasArchive:`Has public archive (/slug)`,singleton:`Singleton (only one content entry)`,icon:`Sidebar icon (Lucide name)`,iconHint:`Examples: box, package, shopping-bag, file-text`,editTitle:`Edit Content Type`,update:`Update`,cancel:`Cancel`,create:`Create`},table:{slug:`Slug`,singular:`Singular`,plural:`Plural`,source:`Source`,supports:`Supports`,archive:`Archive`,mode:`Mode`,singleton:`Singleton`,collection:`Collection`,icon:`Icon`,actions:{edit:`Edit`,remove:`Remove`}},sources:{admin:`Admin`,core:`Core`}},taxonomies:{title:`Taxonomies`,description:`Create custom taxonomies and link them to content types.`,form:{title:`Create Taxonomy`,name:`Name (e.g.: Genre)`,slug:`Slug (optional, generated from name)`,slugHint:`Only lowercase letters, numbers and underscore`,hierarchical:`Hierarchical (allows parent/child terms)`,attachTo:`Link to content types`,create:`Create`},table:{taxonomy:`Taxonomy`,hierarchical:`Hierarchical`,attachedTypes:`Linked content types`,actions:{remove:`Remove`}}},customFields:{title:`Custom Fields`,description:`Create field groups, arrange fields and choose which standard fields are visible for each content type.`,contentType:`Content type`,location:{title:`Location rules`,description:`Choose where this field group appears. Rules in the same group use AND; groups use OR.`,parameter:`Location parameter`,operator:`Operator`,chooseValue:`Choose a value`,valuePlaceholder:`Enter a value or slug`,showIf:`Show if`,removeRule:`Remove rule`,required:`Add a value to every location rule.`,addRule:`Add condition`,addGroup:`Add OR group`,remove:`Remove`,and:`AND`,or:`OR`,params:{content_type:`Post type`,content_slug:`Post slug`,taxonomy:`Taxonomy`,term:`Term slug`,user_role:`User role`,page_template:`Page template`,post_status:`Post status`},operators:{eq:`is`,neq:`is not`}},standard:{title:`Standard fields`,description:`Title and slug are required. The other standard fields can be enabled or disabled.`,enabled:`Enabled`,locked:`Required`,fields:{title:`Title`,slug:`Slug`,content:`Content`,excerpt:`Excerpt`,featured_image:`Featured image`,seo_title:`SEO title`,seo_description:`SEO description`,status:`Status`,author:`Author`}},groups:{title:`Field groups`,new:`New field group`,empty:`No custom field groups yet.`,emptyHint:`Create your first group to start modelling your content.`,search:`Search groups…`,groupName:`Group`,status:`Status`,fields:`fields`,appliesTo:`Applies to`,allContentTypes:`All content types`,edit:`Edit`,active:`Active`,inactive:`Inactive`},form:{createTitle:`Create field group`,editTitle:`Edit field group`,title:`Group name`,titlePlaceholder:`Example: Product details`,displayTitle:`Display title`,active:`Active`,backToGroups:`Back to groups`,editorEyebrow:`Field builder`,groupTitleHint:`This name identifies the field set inside the content editor.`,fieldsTitle:`Fields`,fieldsDescription:`Add, configure and order fields. Use the six-dot handle to drag without losing their position.`,noFields:`This group has no fields yet.`,settingsTitle:`Group settings`,settingsDescription:`Presentation and panel visibility options for this panel.`,description:`Description`,labelPlacement:`Label placement`,instructionPlacement:`Instruction placement`,menuOrder:`Menu order`,hideOnScreen:`Hide on edit screen`,hide:{permalink:`Permalink`,content:`Content editor`,excerpt:`Excerpt`,featured_image:`Featured image`,author:`Author`,revisions:`Revisions`,comments:`Comments`},assignTitle:`Location`,assignDescription:`Choose the content type where this field group will be available.`,contentType:`Content type`,position:`Position`,positions:{normal:`Normal`,side:`Sidebar`,after_title:`After title`},displayStyle:`Display style`,displayStyles:{standard:`Standard`,seamless:`Seamless`,grouped:`Grouped`},field:`Field`,fieldName:`Name/key`,fieldNamePlaceholder:`product_code`,fieldLabel:`Label`,fieldLabelPlaceholder:`Product code`,fieldType:`Type`,instructions:`Instructions`,instructionsPlaceholder:`Optional help text for editors`,required:`Required`,options:`Options`,optionsHint:`One option per line: value|Label`,addField:`Add field`,removeField:`Remove`,dragHint:`Drag to reorder`,editField:`Edit`,duplicateField:`Duplicate`,copySuffix:`(copy)`,selectFieldType:`Select field type`,searchFieldTypes:`Search field types…`,popularFields:`Popular`,noMatchingFieldTypes:`No field types found.`,fieldTypeHint:`Choose the type that best represents the value editors will enter in this field.`,selectField:`Select field`,save:`Save group`,cancel:`Cancel`,newFieldDefault:`New field`,saved:`Field group saved.`,deleted:`Field group deleted.`},listEyebrow:`Content structure`,validation:{titleRequired:`Group name is required.`},tabs:{locationRules:`Location rules`,presentation:`Presentation`,groupSettings:`Group settings`},fieldSettings:{general:`General`,fieldLabel:`Field label`,fieldName:`Field name`,instructions:`Instructions`,required:`Required`,defaultValue:`Default value`,placeholder:`Placeholder`,presentation:`Presentation`,wrapperWidth:`Wrapper width (%)`,labelPlacement:`Label`,instructionPlacement:`Instructions`,top:`Above`,left:`Left`,above:`Before field`,below:`After field`,textSettings:`Text`,prepend:`Prepend`,append:`Append`,minLength:`Minimum length`,maxLength:`Maximum length`,rows:`Rows`,newLines:`New lines`,wpautop:`Automatic paragraphs`,none:`None`,numberSettings:`Number`,min:`Minimum`,max:`Maximum`,step:`Step`,choiceSettings:`Choices`,choices:`Choices`,layout:`Layout`,vertical:`Vertical`,horizontal:`Horizontal`,multiple:`Multiple choice`,allowNull:`Allow empty`,mediaSettings:`Media`,returnFormat:`Return format`,array:`Array`,id:`ID`,previewSize:`Preview size`,library:`Library`,all:`All`,uploadedToPost:`Uploaded to this post`,allowedTypes:`Allowed types`,minWidth:`Minimum width`,maxWidth:`Maximum width`,minHeight:`Minimum height`,maxHeight:`Maximum height`,wysiwygSettings:`WYSIWYG`,tabs:`Tabs`,toolbar:`Toolbar`,mediaUpload:`Allow media upload`,dateSettings:`Date and time`,displayFormat:`Display format`,firstDay:`First day`,colorSettings:`Color`,enableOpacity:`Allow opacity`,mapSettings:`Map`,center:`Center`,zoom:`Zoom`,height:`Height`,relationSettings:`Relationship`,postType:`Post type`,taxonomy:`Taxonomy`,booleanSettings:`True/False`,message:`Message`,defaultChecked:`Checked by default`,linkSettings:`Link`,cloneSettings:`Clone`,cloneFields:`Fields to clone`,cloneHint:`One field name per line`,containerSettings:`Structure`,buttonLabel:`Button label`,collapsed:`Collapsed row title field`,subFields:`Subfields`,layouts:`Layouts`,addLayout:`Add layout`,newLayout:`New layout`,layoutName:`Layout name`,layoutLabel:`Layout label`,layoutDisplay:`Layout display`,conditionalLogic:`Conditional logic`,conditionalHint:`Show this field only when the rules match.`,chooseField:`Choose a field`,conditionValue:`Value`,addCondition:`Add condition`,addConditionGroup:`Add OR group`,conditionsAnd:`Conditions in this group use AND.`,choicesHint:`One choice per line in the format value|Label.`,cloneSource:`Source group or field`,cloneSourceHint:`Field group key or field name to copy fields from.`,requiredOn:`Required`,requiredOff:`Not required`,libraryAll:`All`,libraryUploaded:`Uploaded to this post`,ui:`Enhanced UI`,uiHint:`Use enhanced styling for the dropdown.`,wrapperClass:`Wrapper class`,wrapperWidthHint:`CSS width of the field wrapper, e.g. 50%.`,collapsedHint:`Name of the sub-field used as the row title.`,conditionalActive:`Active`,showIf:`Show if`,removeRule:`Remove rule`,and:`AND`,or:`OR`,noLayouts:`No layouts yet.`,validation:`Validation`,advanced:`Advanced`,fieldType:`Type`,fieldNameHint:`Letters, numbers and underscores only.`,ariaLabel:`Field settings`,operators:{eq:`equals`,neq:`does not equal`,gt:`is greater than`,lt:`is less than`,contains:`contains`,hasAny:`has any value`,hasNone:`is empty`}},actions:{delete:`Delete`,confirmDelete:`Delete this field group?`,edit:`Edit`,duplicate:`Duplicate`,activate:`Activate`,deactivate:`Deactivate`,export:`Export`,import:`Import`},import:{description:`Import field groups from a JSON file. The file must contain a field group object or an array of field group objects. Existing groups with the same key will be updated; new groups will be created.`,dropzone:`Click to select a .json file, or drag and drop here`,hint:`File selected. Click Import to proceed.`},loading:`Loading custom fields…`,loadError:`Could not load custom fields.`}},D={title:`Menus`,description:`Create and manage the navigation menus used by your site.`,hint:`Menus are independent from content types and can be rendered by your theme.`,new:`New menu`,create:`Create menu`,edit:`Edit menu`,name:`Name`,slug:`Slug`,items:`Items`,back:`Back to menus`,nameRequired:`Enter a menu name.`,editor:{eyebrow:`Navigation structure`,addItems:`Add menu items`,search:`Search…`,addSelected:`Add selected`,addToMenu:`Add to menu`,structure:`Menu structure`,structureHint:`Drag items to reorder. Use the arrows to create nested submenus.`,empty:`Add items from the panels on the left.`,emptyLevel:`No submenu items.`,drag:`Drag to reorder`,untitled:`Untitled item`,noUrl:`No URL`,up:`Move up`,down:`Move down`,indent:`Make submenu`,outdent:`Move to parent level`,itemSettings:`Item settings`,navigationLabel:`Navigation label`,url:`URL`,titleAttribute:`Title attribute`,cssClasses:`CSS classes`,target:`Open link in`,sameWindow:`Same window`,newWindow:`New window`,xfn:`Link relationship (XFN)`,description:`Description`,remove:`Remove`,settings:`Menu settings`,autoAddPages:`Automatically add new top-level pages to this menu`,autoAddPagesHint:`This setting is saved with the menu and can be used by the active theme.`},sources:{pages:`Pages`,posts:`Posts`,custom:`Custom Links`,customHint:`Add any internal or external URL.`,home:`Home`,contentTypes:`Content type items`,archives:`Content type archives`,taxonomies:`Taxonomy terms`},saved:`Menu saved.`,deleted:`Menu deleted.`,empty:`No menus yet.`,confirmDelete:`Delete menu "{name}"?`},O={title:`Content Resources`,description:`Description`,tabs:{category:`Categories`,tag:`Tags`,menu:`Menus`},new:`New resource`,name:`Name`,slug:`Slug`,items:`Menu items (JSON)`,saved:`Resource saved.`,confirmDelete:`Delete this resource?`,form:{new:`Create resource`,edit:`Edit resource`},terms:{title:`Taxonomy terms`,choose:`Choose a taxonomy`,new:`New term`}},k={title:`Access`,description:`Manage roles, permissions and tenants.`,roles:`Roles`,tenants:`Tenants`,permissions:`Permissions (comma separated)`,domain:`Domain`},A={title:`Logs`,description:`Complete audit history of actions performed in the CMS.`,retentionTitle:`Log retention`,retentionDescription:`Logs older than this period are removed automatically.`,retentionDays:`Keep logs for (days)`,retentionSaved:`Log retention updated.`,historyTitle:`Audit history`,actionFilter:`Filter by action`,resourceFilter:`Filter by resource`,loading:`Loading logs…`,empty:`No actions recorded yet.`,system:`System`,columns:{date:`Date`,action:`Action`,resource:`Resource`,user:`User`,status:`Status`,ip:`IP`}},j={title:`Webhooks`,description:`Send CMS events to external services with configurable authentication.`,listTitle:`Configured webhooks`,new:`New webhook`,create:`Create webhook`,edit:`Edit webhook`,url:`Endpoint URL`,events:`Events`,selectEvents:`Select one or more events`,searchEvents:`Search events…`,noEvents:`No events found.`,eventsRequired:`Select at least one event.`,authentication:`Authentication`,active:`Active`,token:`Bearer token`,username:`Username`,password:`Password`,headerName:`Header name`,apiKeyValue:`API key value`,secret:`HMAC secret`,signatureHeader:`Signature header`,keepExisting:`Leave blank to keep current value`,loading:`Loading webhooks…`,empty:`No webhooks configured.`,auth:{none:`None`,bearer:`Bearer token`,basic:`Basic authentication`,apiKey:`API key`,hmac_sha256:`HMAC SHA-256`}},M={title:`Plugins`,description:`Manage installed plugins.`,directoryHint:`Detected automatically from the project's plugins/ directory. Use the CLI or deploy files to add extensions.`,columns:{name:`Name`,version:`Version`,status:`Status`,actions:`Actions`},status:{active:`Active`,installed:`Installed`,inactive:`Inactive`},activate:`Activate`,deactivate:`Deactivate`,install:`Install plugin`,uninstall:`Uninstall`,confirmUninstall:`Uninstall {name}?`,name:`Plugin name`,version:`Version`,manifest:`Manifest (JSON)`,loadError:`Could not load plugins.`,activateError:`Could not activate the plugin.`,deactivateError:`Could not deactivate the plugin.`,installError:`Could not install the plugin.`,uninstallError:`Could not uninstall the plugin.`,empty:`No plugins installed.`},N={title:`Themes`,description:`Manage installed themes.`,directoryHint:`Detected automatically from the project's themes/ directory. Use the CLI or deploy files to add themes.`,version:`Version`,active:`Active`,status:{active:`Active`,installed:`Installed`,inactive:`Inactive`},activate:`Activate`,deactivate:`Deactivate`,install:`Install theme`,uninstall:`Uninstall`,confirmUninstall:`Uninstall {name}?`,name:`Theme name`,manifest:`Manifest (JSON)`,loadError:`Could not load themes.`,activateError:`Could not activate the theme.`,deactivateError:`Could not deactivate the theme.`,installError:`Could not install the theme.`,uninstallError:`Could not uninstall the theme.`,empty:`No themes installed.`},P={title:`Login`,subtitle:`Sign in to your account`,email:`Email`,password:`Password`,submit:`Sign In`,failed:`Invalid email or password`},F={save:`Save`,cancel:`Cancel`,delete:`Delete`,edit:`Edit`,close:`Close`,confirm:`Confirm`,loading:`Loading…`,yes:`Yes`,no:`No`,search:`Search`,filter:`Filter`,create:`Create`,update:`Update`,remove:`Remove`,viewAll:`View All`,back:`Back`,next:`Next`,previous:`Previous`,page:`Page`,of:`of`,items:`items`,item:`item`,empty:`No {items} found.`,toast:{success:`✓`,error:`Error: {message}`},status:{active:`Active`,inactive:`Inactive`,draft:`Draft`,published:`Published`,archived:`Archived`,locked:`Locked`},language:`Language`,refresh:`Refresh`,actions:`Actions`},I={justNow:`just now`,minAgo:`minutes ago`,ago:`ago`,published:`Published`,updated:`Updated`,newUser:`New user: {name}`},L={mainMenu:`Main menu`,notifications:`Notifications`,notificationsEmpty:`No recent activity`,settings:`Settings`,toggleSidebar:`Toggle sidebar`,userMenu:`User menu`},R={copyright:`© 2026 OkCMS. All rights reserved.`,links:`Links`,website:`Website`,github:`GitHub`,docs:`Documentation`,community:`Community`,poweredBy:`Powered by Oktis Works`},z={title:`Help`,label:`Help`,tabs:`Help topics`,topics:{overview:{label:`Overview`,content:`<h4>Welcome to the OkCMS Dashboard</h4><p>This dashboard gives you an overview of your site's content and activity.</p><h4>Available Widgets</h4><ul><li><strong>At a Glance:</strong> overview of posts, pages, media, and users</li><li><strong>Quick Draft:</strong> save drafts quickly from the dashboard</li><li><strong>Activity:</strong> recent site activity and updates</li></ul>`},content:{label:`Content Management`,content:`<h4>Managing Content</h4><p>Create, edit, and publish content from the Content section.</p><h4>Quick Actions</h4><ul><li>Click "New Content" to create a new post or page</li><li>Use filters to find specific content</li><li>Bulk actions available for multiple items</li></ul>`},media:{label:`Media Library`,content:`<h4>Managing Media</h4><p>Upload and manage images, videos, and documents.</p><h4>Tips</h4><ul><li>Drag and drop files to upload</li><li>Add alt text for accessibility</li><li>Organize with folders (coming soon)</li></ul>`}}},B={title:`Screen Options`,label:`Screen Options`,showOnScreen:`Show on screen`},V={layout:x,dashboard:S,content:C,media:w,users:T,settings:E,menus:D,resources:O,access:k,logs:A,webhooks:j,plugins:M,themes:N,login:P,common:F,activity:I,adminBar:L,footer:R,helpTabs:z,screenOptions:B},H=new Map,U=V,[W,G]=t(0),K=null;function q(e){return(e.split(`.`).at(-1)??e).replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/[-_]+/g,` `).replace(/\s+/g,` `).trim().replace(/^\w/,e=>e.toUpperCase())}function J(e,t){return function(n,r){let i=n.split(`.`),a=e;for(let e of i)if(a&&typeof a==`object`&&e in a)a=a[e];else{a=t;for(let e of i)if(a&&typeof a==`object`&&e in a)a=a[e];else return q(n);break}return typeof a==`string`?r?a.replace(/\{(\w+)\}/g,(e,t)=>String(r[t]??``)):a:q(n)}}async function Y(e){if(H.has(e))return H.get(e);let[t,n]=await Promise.all([f(e),f(`en`)]),r=J(t,n);return H.set(e,r),r}var X=J(U,U),Z=`en`,Q=!0,ie=`okcms:locale-changed`;function $(){typeof window<`u`&&window.dispatchEvent(new CustomEvent(ie,{detail:{locale:Z}}))}function ae(e){return n(async()=>{Q&&(K||=(async()=>{let t=e??await re();Z=t,X=await Y(t),Q=!1,G(e=>e+1),$()})(),await K)}),{t:(e,t)=>(W(),X(e,t)),locale:()=>(W(),Z),changeLocale:async e=>{Q=!0,Z=e,X=await Y(e),Q=!1,G(e=>e+1),$(),await y(e)},get loading(){return Q}}}export{a,o as i,ae as n,i as o,h as r,s,Y as t};
1
+ import{n as e}from"./rolldown-runtime.BpQH8Ho1.js";import{p as t,v as n}from"./solid.8gBSxpeo.js";import{t as r}from"./api.s1WYKU5S.js";var i=[`pt-BR`,`en`,`es-ES`,`ru`,`uk`,`tr`,`he`,`it`,`pl`,`zh-CN`,`ja`,`ar`,`sw`,`yo`,`zu`,`am`,`ha`,`ig`],a={"pt-BR":`Português (Brasil)`,en:`English`,"es-ES":`Español`,ru:`Русский`,uk:`Українська`,tr:`Türkçe`,he:`עברית`,it:`Italiano`,pl:`Polski`,"zh-CN":`中文 (简体)`,ja:`日本語`,ar:`العربية`,sw:`Kiswahili`,yo:`Yorùbá`,zu:`isiZulu`,am:`አማርኛ`,ha:`Hausa`,ig:`Igbo`},o={"pt-BR":`🇧🇷`,en:`🇺🇸`,"es-ES":`🇪🇸`,ru:`🇷🇺`,uk:`🇺🇦`,tr:`🇹🇷`,he:`🇮🇱`,it:`🇮🇹`,pl:`🇵🇱`,"zh-CN":`🇨🇳`,ja:`🇯🇵`,ar:`🇸🇦`,sw:`🇹🇿`,yo:`🇳🇬`,zu:`🇿🇦`,am:`🇪🇹`,ha:`🇳🇬`,ig:`🇳🇬`};function s(e){return i.includes(e)}var ee=(e,t,n)=>{let r=t.lastIndexOf(`?`),i=e[r===-1||r<t.lastIndexOf(`/`)?t:t.slice(0,r)];return i?typeof i==`function`?i():Promise.resolve(i):new Promise((e,r)=>{(typeof queueMicrotask==`function`?queueMicrotask:setTimeout)(r.bind(null,Error(`Unknown variable dynamic import: `+t+(t.split(`/`).length===n?``:`. Note that variables only represent file names one level deep.`))))})},te=(function(){let e=typeof document<`u`&&document.createElement(`link`).relList;return e&&e.supports&&e.supports(`modulepreload`)?`modulepreload`:`preload`})(),ne=function(e){return`/`+e},c={},l=function(e){return e.pathname.endsWith(`.css`)},u=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=ne(t,n);let r=s(t);if(r.href in c)return;c[r.href]=!0;let i=l(r);if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let o=document.createElement(`link`);if(o.rel=i?`stylesheet`:te,i||(o.as=`script`),o.crossOrigin=``,o.href=r.href,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),i)return new Promise((e,t)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>t(Error(`Unable to preload CSS for ${r}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},d=new Map;async function f(e){if(d.has(e))return d.get(e);try{let t=await ee(Object.assign({"./locales/ar.json":()=>u(()=>import(`./ar.9BcNkJMI.js`),[]),"./locales/en.json":()=>u(()=>Promise.resolve().then(()=>b),void 0),"./locales/es-ES.json":()=>u(()=>import(`./es-ES.DgqDFCmG.js`),[]),"./locales/he.json":()=>u(()=>import(`./he.11dIJHQw.js`),[]),"./locales/it.json":()=>u(()=>import(`./it.yCdgk3Xj.js`),[]),"./locales/ja.json":()=>u(()=>import(`./ja.BIm7Hwe_.js`),[]),"./locales/pl.json":()=>u(()=>import(`./pl.dUwrcITB.js`),[]),"./locales/pt-BR.json":()=>u(()=>import(`./pt-BR.dxAFMMtn.js`),[]),"./locales/ru.json":()=>u(()=>import(`./ru.lmDiQaSu.js`),[]),"./locales/sw.json":()=>u(()=>import(`./sw._qHdoFbp.js`),[]),"./locales/tr.json":()=>u(()=>import(`./tr.Do-lr98T.js`),[]),"./locales/uk.json":()=>u(()=>import(`./uk.DTUX-N1c.js`),[]),"./locales/yo.json":()=>u(()=>import(`./yo.BIYG0J7I.js`),[]),"./locales/zh-CN.json":()=>u(()=>import(`./zh-CN.C7Iod1E1.js`),[])}),`./locales/${e}.json`,3),n=t.default??t;return d.set(e,n),n}catch{return e===`en`?{}:f(`en`)}}var p=`admin_locale`;function m(){if(typeof document>`u`)return null;let e=document.cookie.match(RegExp(`(?:^|; )${p}=([^;]+)`));return e?.[1]&&i.includes(e[1])?e[1]:null}function h(e){typeof document<`u`&&(document.cookie=`${p}=${e}; path=/; max-age=31536000; SameSite=Lax`)}function g(){if(typeof navigator>`u`)return`en`;let e=navigator.language?.split(`-`)[0]?.toLowerCase(),t=navigator.language?.toLowerCase();for(let n of i)if(n.toLowerCase()===t||n.split(`-`)[0]===e)return n;return`en`}async function _(){try{let e=await r.getUserLocale();if(e&&i.includes(e))return e}catch{}return null}async function v(e){await r.setUserLocale(e)}async function re(){return m()||await _()||g()||`en`}async function y(e){h(e);try{await v(e)}catch{}}var b=e({access:()=>k,activity:()=>I,adminBar:()=>L,common:()=>F,content:()=>C,dashboard:()=>S,default:()=>V,footer:()=>R,helpTabs:()=>z,layout:()=>x,login:()=>P,logs:()=>A,media:()=>w,menus:()=>D,plugins:()=>M,resources:()=>O,screenOptions:()=>B,settings:()=>E,themes:()=>N,users:()=>T,webhooks:()=>j}),x={appName:`OkCMS`,admin:`Admin`,nav:{dashboard:`Dashboard`,content:`Content`,media:`Media`,users:`Users`,menus:`Menus`,settings:`Settings`,plugins:`Plugins`,themes:`Themes`},actions:{logout:`Logout`,newPost:`New Post`,uploadMedia:`Upload Media`,addUser:`Add User`,openSettings:`Settings`}},S={title:`Dashboard`,stats:{totalContent:`Total Content`,published:`Published`,drafts:`Drafts`,mediaFiles:`Media Files`,users:`Users`},recent:{title:`Recent Content`,viewAll:`View All`,empty:`No content yet — create your first!`,columns:{title:`Title`,type:`Type`,status:`Status`,updated:`Updated`}},widgets:{atGlance:`At a Glance`,posts:`Posts`,postsDesc:`Published / Drafts / Trash`,pages:`Pages`,pagesDesc:`Published / Drafts / Trash`,media:`Media`,mediaDesc:`Files in the library`,users:`Users`,usersDesc:`Total / Active / Inactive`,version:`Version`,storage:`Storage`,quickDraft:{title:`Quick Draft`,heading:`Title`,headingPlaceholder:`Give your draft a title`,content:`Content`,contentPlaceholder:`What's on your mind?`,save:`Save Draft`,yourDrafts:`Your Drafts`,noDrafts:`No drafts yet.`},activity:{title:`Activity`,empty:`No activity yet.`}}},C={list:{title:`Content`,description:`Search, filter, edit and publish your content.`,typeNotFound:`This content type was not found.`,columns:{title:`Title`,type:`Type`,status:`Status`,updated:`Updated`},actions:{edit:`Edit`,publish:`Publish`,unpublish:`Unpublish`,delete:`Delete`},filters:{search:`Search content…`,allTypes:`All types`,allStatus:`All status`},buttons:{new:`+ New content`,addNew:`+ Add new`,search:`Search`},all:`All content`,empty:`No content found.`,statuses:{draft:`Draft`,published:`Published`,archived:`Archived`},confirmDelete:`Delete "{title}"?`,toasts:{published:`Content published ✓`,unpublished:`Content unpublished ✓`}},editor:{type:`Type`,adding:`Add new`,editing:`Edit`,backToList:`Back to list`,saving:`Saving…`,title:`Title`,titlePlaceholder:`Add title`,slug:`Slug`,slugPlaceholder:`auto-generated-from-title`,toolbar:`Editor toolbar`,bodyPlaceholder:`Start writing…`,linkPrompt:`Enter the URL:`,excerpt:`Excerpt`,featuredImage:`Featured Image (media ID)`,mediaIdPlaceholder:`Media ID`,featuredImageHint:`Choose a media item from the Media library.`,pageAttributes:`Page attributes`,publishPanel:`Publish`,status:`Status`,statusOptions:{draft:`Draft`,published:`Published`,archived:`Archived`},layout:`Layout`,layoutAuto:`Automatic (theme hierarchy)`,customFields:`Custom Fields`,inspectTypes:`Inspect available types`,save:`Save`,saved:`Content saved successfully.`},taxonomy:{title:`Taxonomy terms`,back:`← Back to content`,choose:`Choose a taxonomy from the content menu.`,notFound:`Taxonomy not found.`,addTerm:`Add new term`,editTerm:`Edit term`,name:`Name`,slug:`Slug`,description:`Description`,descriptionHint:`Manage the terms used by this content type.`,attachedTo:`Attached to`,add:`Add term`,delete:`Delete`,empty:`No terms yet.`,confirmDelete:`Delete "{name}"?`}},w={title:`Media Library`,description:"Upload and manage images, videos and documents. Files are stored in `uploads/` and served publicly.",upload:{dropzone:`Drop files here or`,select:`Select files`,uploading:`Uploading…`,hint:`Images, videos, audio and documents · up to 25MB per file`},toolbar:{search:`Search by name or alt…`,allTypes:`All types`,searchBtn:`Search`},mimeTypes:{png:`PNG`,jpeg:`JPEG`,gif:`GIF`,webp:`WebP`,svg:`SVG`,pdf:`PDF`,mp4:`MP4`,mp3:`MP3`},empty:`No files yet. Upload the first one!`,details:{title:`Details`,titleField:`Title`,file:`File`,type:`Type`,size:`Size`,dimensions:`Dimensions`,uploaded:`Uploaded`,url:`URL`,copy:`Copy`,alt:`Alt text`,caption:`Caption`,description:`Description`,save:`Save details`,replace:`Replace file`,replacing:`Replacing…`,replaceHint:`Keeps this attachment and its metadata.`,delete:`Delete`,close:`Close`,confirmDelete:`Delete "{filename}"? The file will be removed from disk.`,saved:`Details saved ✓`,copied:`URL copied ✓`,copyError:`Could not copy URL`,replaced:`File replaced ✓`},toasts:{uploaded:`{count} file(s) uploaded ✓`}},T={title:`Users`,description:`Manage accounts, roles and project access.`,new:`New User`,toolbar:{search:`Search by name or email…`,allStatus:`All status`,active:`Active`,inactive:`Inactive`,newBtn:`+ New user`,searchBtn:`Search`},table:{name:`Name`,email:`Email`,role:`Role`,status:`Status`,lastAccess:`Last access`,actions:{manage:`Manage`,delete:`Delete`}},empty:`No users found.`,noRole:`No role`,detail:{title:`Manage user`,fields:{name:`Name`,email:`Email`,status:`Status`,role:`Role`,password:`Password`},statusOptions:{active:`Active`,inactive:`Inactive`},rolePlaceholder:`— no role —`,meta:`Created on {created} · last access {lastAccess}`,actions:{save:`Save`,resetPassword:`Reset password`,close:`Close`},passwordPrompt:`New password for {email} (minimum 8 chars):`,passwordError:`Password must be at least 8 characters`,toasts:{roleUpdated:`Role for {name} updated ✓`,passwordChanged:`Password for {name} changed ✓`,saved:`User {name} saved ✓`,deleted:`User {name} deleted ✓`},confirmDelete:`Delete user {email}?`}},E={general:{title:`General`,description:`Basic information displayed on the site.`,back:`← All settings`,fields:{siteTitle:`Site Title`,siteTitlePlaceholder:`My Site`,siteDescription:`Description`,siteDescriptionPlaceholder:`A new site built with OkCMS`,language:`Language`,timezone:`Timezone`,timezonePlaceholder:`America/Sao_Paulo`},saved:`Settings saved ✓`,loading:`Loading…`,save:`Save`},postTypes:{title:`Content Types`,description:`Create custom content types (CPTs) beyond Posts and Pages.`,form:{title:`Create Content Type`,slug:`Slug (singular, e.g.: portfolio)`,slugHint:`Only lowercase letters, numbers and underscore`,singular:`Singular name`,plural:`Plural name`,supports:`Supports`,supportsOptions:{title:`Title`,editor:`Editor`,thumbnail:`Featured Image`,excerpt:`Excerpt`,revisions:`Revisions`},hasArchive:`Has public archive (/slug)`,singleton:`Singleton (only one content entry)`,icon:`Sidebar icon (Lucide name)`,iconHint:`Examples: box, package, shopping-bag, file-text`,editTitle:`Edit Content Type`,update:`Update`,cancel:`Cancel`,create:`Create`},table:{slug:`Slug`,singular:`Singular`,plural:`Plural`,source:`Source`,supports:`Supports`,archive:`Archive`,mode:`Mode`,singleton:`Singleton`,collection:`Collection`,icon:`Icon`,actions:{edit:`Edit`,remove:`Remove`}},sources:{admin:`Admin`,core:`Core`}},taxonomies:{title:`Taxonomies`,description:`Create custom taxonomies and link them to content types.`,form:{title:`Create Taxonomy`,name:`Name (e.g.: Genre)`,slug:`Slug (optional, generated from name)`,slugHint:`Only lowercase letters, numbers and underscore`,hierarchical:`Hierarchical (allows parent/child terms)`,attachTo:`Link to content types`,create:`Create`},table:{taxonomy:`Taxonomy`,hierarchical:`Hierarchical`,attachedTypes:`Linked content types`,actions:{remove:`Remove`}}},customFields:{title:`Custom Fields`,description:`Create field groups, arrange fields and choose which standard fields are visible for each content type.`,contentType:`Content type`,location:{title:`Location rules`,description:`Choose where this field group appears. Rules in the same group use AND; groups use OR.`,parameter:`Location parameter`,operator:`Operator`,chooseValue:`Choose a value`,valuePlaceholder:`Enter a value or slug`,showIf:`Show if`,removeRule:`Remove rule`,required:`Add a value to every location rule.`,addRule:`Add condition`,addGroup:`Add OR group`,remove:`Remove`,and:`AND`,or:`OR`,params:{content_type:`Post type`,content_slug:`Post slug`,taxonomy:`Taxonomy`,term:`Term slug`,user_role:`User role`,page_template:`Page template`,post_status:`Post status`},operators:{eq:`is`,neq:`is not`}},standard:{title:`Standard fields`,description:`Title and slug are required. The other standard fields can be enabled or disabled.`,enabled:`Enabled`,locked:`Required`,fields:{title:`Title`,slug:`Slug`,content:`Content`,excerpt:`Excerpt`,featured_image:`Featured image`,seo_title:`SEO title`,seo_description:`SEO description`,status:`Status`,author:`Author`}},groups:{title:`Field groups`,new:`New field group`,empty:`No custom field groups yet.`,emptyHint:`Create your first group to start modelling your content.`,search:`Search groups…`,groupName:`Group`,status:`Status`,fields:`fields`,appliesTo:`Applies to`,allContentTypes:`All content types`,edit:`Edit`,active:`Active`,inactive:`Inactive`},form:{createTitle:`Create field group`,editTitle:`Edit field group`,title:`Group name`,titlePlaceholder:`Example: Product details`,displayTitle:`Display title`,active:`Active`,backToGroups:`Back to groups`,editorEyebrow:`Field builder`,groupTitleHint:`This name identifies the field set inside the content editor.`,fieldsTitle:`Fields`,fieldsDescription:`Add, configure and order fields. Use the six-dot handle to drag without losing their position.`,noFields:`This group has no fields yet.`,settingsTitle:`Group settings`,settingsDescription:`Presentation and panel visibility options for this panel.`,description:`Description`,labelPlacement:`Label placement`,instructionPlacement:`Instruction placement`,menuOrder:`Menu order`,hideOnScreen:`Hide on edit screen`,hide:{permalink:`Permalink`,content:`Content editor`,excerpt:`Excerpt`,featured_image:`Featured image`,author:`Author`,revisions:`Revisions`,comments:`Comments`},assignTitle:`Location`,assignDescription:`Choose the content type where this field group will be available.`,contentType:`Content type`,position:`Position`,positions:{normal:`Normal`,side:`Sidebar`,after_title:`After title`},displayStyle:`Display style`,displayStyles:{standard:`Standard`,seamless:`Seamless`,grouped:`Grouped`},field:`Field`,fieldName:`Name/key`,fieldNamePlaceholder:`product_code`,fieldLabel:`Label`,fieldLabelPlaceholder:`Product code`,fieldType:`Type`,instructions:`Instructions`,instructionsPlaceholder:`Optional help text for editors`,required:`Required`,options:`Options`,optionsHint:`One option per line: value|Label`,addField:`Add field`,removeField:`Remove`,dragHint:`Drag to reorder`,editField:`Edit`,duplicateField:`Duplicate`,copySuffix:`(copy)`,selectFieldType:`Select field type`,searchFieldTypes:`Search field types…`,popularFields:`Popular`,noMatchingFieldTypes:`No field types found.`,fieldTypeHint:`Choose the type that best represents the value editors will enter in this field.`,selectField:`Select field`,save:`Save group`,cancel:`Cancel`,newFieldDefault:`New field`,saved:`Field group saved.`,deleted:`Field group deleted.`},listEyebrow:`Content structure`,validation:{titleRequired:`Group name is required.`},tabs:{locationRules:`Location rules`,presentation:`Presentation`,groupSettings:`Group settings`},fieldSettings:{general:`General`,fieldLabel:`Field label`,fieldName:`Field name`,instructions:`Instructions`,required:`Required`,defaultValue:`Default value`,placeholder:`Placeholder`,presentation:`Presentation`,wrapperWidth:`Wrapper width (%)`,labelPlacement:`Label`,instructionPlacement:`Instructions`,top:`Above`,left:`Left`,above:`Before field`,below:`After field`,textSettings:`Text`,prepend:`Prepend`,append:`Append`,minLength:`Minimum length`,maxLength:`Maximum length`,rows:`Rows`,newLines:`New lines`,wpautop:`Automatic paragraphs`,none:`None`,numberSettings:`Number`,min:`Minimum`,max:`Maximum`,step:`Step`,choiceSettings:`Choices`,choices:`Choices`,layout:`Layout`,vertical:`Vertical`,horizontal:`Horizontal`,multiple:`Multiple choice`,allowNull:`Allow empty`,mediaSettings:`Media`,returnFormat:`Return format`,array:`Array`,id:`ID`,previewSize:`Preview size`,library:`Library`,all:`All`,uploadedToPost:`Uploaded to this post`,allowedTypes:`Allowed types`,minWidth:`Minimum width`,maxWidth:`Maximum width`,minHeight:`Minimum height`,maxHeight:`Maximum height`,wysiwygSettings:`WYSIWYG`,tabs:`Tabs`,toolbar:`Toolbar`,mediaUpload:`Allow media upload`,dateSettings:`Date and time`,displayFormat:`Display format`,firstDay:`First day`,colorSettings:`Color`,enableOpacity:`Allow opacity`,mapSettings:`Map`,center:`Center`,zoom:`Zoom`,height:`Height`,relationSettings:`Relationship`,postType:`Post type`,taxonomy:`Taxonomy`,booleanSettings:`True/False`,message:`Message`,defaultChecked:`Checked by default`,linkSettings:`Link`,cloneSettings:`Clone`,cloneFields:`Fields to clone`,cloneHint:`One field name per line`,containerSettings:`Structure`,buttonLabel:`Button label`,collapsed:`Collapsed row title field`,subFields:`Subfields`,layouts:`Layouts`,addLayout:`Add layout`,newLayout:`New layout`,layoutName:`Layout name`,layoutLabel:`Layout label`,layoutDisplay:`Layout display`,conditionalLogic:`Conditional logic`,conditionalHint:`Show this field only when the rules match.`,chooseField:`Choose a field`,conditionValue:`Value`,addCondition:`Add condition`,addConditionGroup:`Add OR group`,conditionsAnd:`Conditions in this group use AND.`,choicesHint:`One choice per line in the format value|Label.`,cloneSource:`Source group or field`,cloneSourceHint:`Field group key or field name to copy fields from.`,requiredOn:`Required`,requiredOff:`Not required`,libraryAll:`All`,libraryUploaded:`Uploaded to this post`,ui:`Enhanced UI`,uiHint:`Use enhanced styling for the dropdown.`,wrapperClass:`Wrapper class`,wrapperWidthHint:`CSS width of the field wrapper, e.g. 50%.`,collapsedHint:`Name of the sub-field used as the row title.`,conditionalActive:`Active`,showIf:`Show if`,removeRule:`Remove rule`,and:`AND`,or:`OR`,noLayouts:`No layouts yet.`,validation:`Validation`,advanced:`Advanced`,fieldType:`Type`,fieldNameHint:`Letters, numbers and underscores only.`,ariaLabel:`Field settings`,operators:{eq:`equals`,neq:`does not equal`,gt:`is greater than`,lt:`is less than`,contains:`contains`,hasAny:`has any value`,hasNone:`is empty`}},actions:{delete:`Delete`,confirmDelete:`Delete this field group?`,edit:`Edit`,duplicate:`Duplicate`,activate:`Activate`,deactivate:`Deactivate`,export:`Export`,import:`Import`},import:{description:`Import field groups from a JSON file. The file must contain a field group object or an array of field group objects. Existing groups with the same key will be updated; new groups will be created.`,dropzone:`Click to select a .json file, or drag and drop here`,hint:`File selected. Click Import to proceed.`},loading:`Loading custom fields…`,loadError:`Could not load custom fields.`}},D={title:`Menus`,description:`Create and manage the navigation menus used by your site.`,hint:`Menus are independent from content types and can be rendered by your theme.`,new:`New menu`,create:`Create menu`,edit:`Edit menu`,name:`Name`,slug:`Slug`,items:`Items`,back:`Back to menus`,nameRequired:`Enter a menu name.`,editor:{eyebrow:`Navigation structure`,addItems:`Add menu items`,search:`Search…`,addSelected:`Add selected`,addToMenu:`Add to menu`,structure:`Menu structure`,structureHint:`Drag items to reorder. Use the arrows to create nested submenus.`,empty:`Add items from the panels on the left.`,emptyLevel:`No submenu items.`,drag:`Drag to reorder`,untitled:`Untitled item`,noUrl:`No URL`,up:`Move up`,down:`Move down`,indent:`Make submenu`,outdent:`Move to parent level`,itemSettings:`Item settings`,navigationLabel:`Navigation label`,url:`URL`,titleAttribute:`Title attribute`,cssClasses:`CSS classes`,target:`Open link in`,sameWindow:`Same window`,newWindow:`New window`,xfn:`Link relationship (XFN)`,description:`Description`,remove:`Remove`,settings:`Menu settings`,autoAddPages:`Automatically add new top-level pages to this menu`,autoAddPagesHint:`This setting is saved with the menu and can be used by the active theme.`},sources:{pages:`Pages`,posts:`Posts`,custom:`Custom Links`,customHint:`Add any internal or external URL.`,home:`Home`,contentTypes:`Content type items`,archives:`Content type archives`,taxonomies:`Taxonomy terms`},saved:`Menu saved.`,deleted:`Menu deleted.`,empty:`No menus yet.`,confirmDelete:`Delete menu "{name}"?`},O={title:`Content Resources`,description:`Description`,tabs:{category:`Categories`,tag:`Tags`,menu:`Menus`},new:`New resource`,name:`Name`,slug:`Slug`,items:`Menu items (JSON)`,saved:`Resource saved.`,confirmDelete:`Delete this resource?`,form:{new:`Create resource`,edit:`Edit resource`},terms:{title:`Taxonomy terms`,choose:`Choose a taxonomy`,new:`New term`}},k={title:`Access`,description:`Manage roles, permissions and tenants.`,roles:`Roles`,tenants:`Tenants`,permissions:`Permissions (comma separated)`,domain:`Domain`},A={title:`Logs`,description:`Complete audit history of actions performed in the CMS.`,retentionTitle:`Log retention`,retentionDescription:`Logs older than this period are removed automatically.`,retentionDays:`Keep logs for (days)`,retentionSaved:`Log retention updated.`,historyTitle:`Audit history`,actionFilter:`Filter by action`,resourceFilter:`Filter by resource`,loading:`Loading logs…`,empty:`No actions recorded yet.`,system:`System`,columns:{date:`Date`,action:`Action`,resource:`Resource`,user:`User`,status:`Status`,ip:`IP`}},j={title:`Webhooks`,description:`Send CMS events to external services with configurable authentication.`,listTitle:`Configured webhooks`,new:`New webhook`,create:`Create webhook`,edit:`Edit webhook`,url:`Endpoint URL`,events:`Events`,selectEvents:`Select one or more events`,searchEvents:`Search events…`,noEvents:`No events found.`,eventsRequired:`Select at least one event.`,authentication:`Authentication`,active:`Active`,token:`Bearer token`,username:`Username`,password:`Password`,headerName:`Header name`,apiKeyValue:`API key value`,secret:`HMAC secret`,signatureHeader:`Signature header`,keepExisting:`Leave blank to keep current value`,loading:`Loading webhooks…`,empty:`No webhooks configured.`,auth:{none:`None`,bearer:`Bearer token`,basic:`Basic authentication`,apiKey:`API key`,hmac_sha256:`HMAC SHA-256`}},M={title:`Plugins`,description:`Manage installed plugins.`,directoryHint:`Detected automatically from the project's plugins/ directory. Use the CLI or deploy files to add extensions.`,columns:{name:`Name`,version:`Version`,status:`Status`,actions:`Actions`},status:{active:`Active`,installed:`Installed`,inactive:`Inactive`},activate:`Activate`,deactivate:`Deactivate`,install:`Install plugin`,uninstall:`Uninstall`,confirmUninstall:`Uninstall {name}?`,name:`Plugin name`,version:`Version`,manifest:`Manifest (JSON)`,loadError:`Could not load plugins.`,activateError:`Could not activate the plugin.`,deactivateError:`Could not deactivate the plugin.`,installError:`Could not install the plugin.`,uninstallError:`Could not uninstall the plugin.`,empty:`No plugins installed.`},N={title:`Themes`,description:`Manage installed themes.`,directoryHint:`Detected automatically from the project's themes/ directory. Use the CLI or deploy files to add themes.`,version:`Version`,active:`Active`,status:{active:`Active`,installed:`Installed`,inactive:`Inactive`},activate:`Activate`,deactivate:`Deactivate`,install:`Install theme`,uninstall:`Uninstall`,confirmUninstall:`Uninstall {name}?`,name:`Theme name`,manifest:`Manifest (JSON)`,loadError:`Could not load themes.`,activateError:`Could not activate the theme.`,deactivateError:`Could not deactivate the theme.`,installError:`Could not install the theme.`,uninstallError:`Could not uninstall the theme.`,empty:`No themes installed.`},P={title:`Login`,subtitle:`Sign in to your account`,email:`Email`,password:`Password`,submit:`Sign In`,failed:`Invalid email or password`},F={save:`Save`,cancel:`Cancel`,delete:`Delete`,edit:`Edit`,close:`Close`,confirm:`Confirm`,loading:`Loading…`,yes:`Yes`,no:`No`,search:`Search`,filter:`Filter`,create:`Create`,update:`Update`,remove:`Remove`,viewAll:`View All`,back:`Back`,next:`Next`,previous:`Previous`,page:`Page`,of:`of`,items:`items`,item:`item`,empty:`No {items} found.`,toast:{success:`✓`,error:`Error: {message}`},status:{active:`Active`,inactive:`Inactive`,draft:`Draft`,published:`Published`,archived:`Archived`,locked:`Locked`},language:`Language`,refresh:`Refresh`,actions:`Actions`},I={justNow:`just now`,minAgo:`minutes ago`,ago:`ago`,published:`Published`,updated:`Updated`,newUser:`New user: {name}`},L={mainMenu:`Main menu`,notifications:`Notifications`,notificationsEmpty:`No recent activity`,settings:`Settings`,toggleSidebar:`Toggle sidebar`,userMenu:`User menu`},R={copyright:`© 2026 OkCMS. All rights reserved.`,links:`Links`,website:`Website`,github:`GitHub`,docs:`Documentation`,community:`Community`,poweredBy:`Powered by Oktis Works`},z={title:`Help`,label:`Help`,tabs:`Help topics`,topics:{overview:{label:`Overview`,content:`<h4>Welcome to the OkCMS Dashboard</h4><p>This dashboard gives you an overview of your site's content and activity.</p><h4>Available Widgets</h4><ul><li><strong>At a Glance:</strong> overview of posts, pages, media, and users</li><li><strong>Quick Draft:</strong> save drafts quickly from the dashboard</li><li><strong>Activity:</strong> recent site activity and updates</li></ul>`},content:{label:`Content Management`,content:`<h4>Managing Content</h4><p>Create, edit, and publish content from the Content section.</p><h4>Quick Actions</h4><ul><li>Click "New Content" to create a new post or page</li><li>Use filters to find specific content</li><li>Bulk actions available for multiple items</li></ul>`},media:{label:`Media Library`,content:`<h4>Managing Media</h4><p>Upload and manage images, videos, and documents.</p><h4>Tips</h4><ul><li>Drag and drop files to upload</li><li>Add alt text for accessibility</li><li>Organize with folders (coming soon)</li></ul>`}}},B={title:`Screen Options`,label:`Screen Options`,showOnScreen:`Show on screen`},V={layout:x,dashboard:S,content:C,media:w,users:T,settings:E,menus:D,resources:O,access:k,logs:A,webhooks:j,plugins:M,themes:N,login:P,common:F,activity:I,adminBar:L,footer:R,helpTabs:z,screenOptions:B},H=new Map,U=V,[W,G]=t(0),K=null;function q(e){return(e.split(`.`).at(-1)??e).replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/[-_]+/g,` `).replace(/\s+/g,` `).trim().replace(/^\w/,e=>e.toUpperCase())}function J(e,t){return function(n,r){let i=n.split(`.`),a=e;for(let e of i)if(a&&typeof a==`object`&&e in a)a=a[e];else{a=t;for(let e of i)if(a&&typeof a==`object`&&e in a)a=a[e];else return q(n);break}return typeof a==`string`?r?a.replace(/\{(\w+)\}/g,(e,t)=>String(r[t]??``)):a:q(n)}}async function Y(e){if(H.has(e))return H.get(e);let[t,n]=await Promise.all([f(e),f(`en`)]),r=J(t,n);return H.set(e,r),r}var X=J(U,U),Z=`en`,Q=!0,ie=`okcms:locale-changed`;function $(){typeof window<`u`&&window.dispatchEvent(new CustomEvent(ie,{detail:{locale:Z}}))}function ae(e){return n(async()=>{Q&&(K||=(async()=>{let t=e??await re();Z=t,X=await Y(t),Q=!1,G(e=>e+1),$()})(),await K)}),{t:(e,t)=>(W(),X(e,t)),locale:()=>(W(),Z),changeLocale:async e=>{Q=!0,Z=e,X=await Y(e),Q=!1,G(e=>e+1),$(),await y(e)},get loading(){return Q}}}export{a,o as i,ae as n,i as o,h as r,s,Y as t};
@@ -1 +1 @@
1
- import{t as e}from"./api.CGA0D2A2.js";var n=document.getElementById(`login-form`),r=document.getElementById(`error-message`),i=document.getElementById(`submit-text`),a=document.getElementById(`submit-spinner`);n?.addEventListener(`submit`,async o=>{o.preventDefault();let s=new FormData(n),c=s.get(`email`),l=s.get(`password`);i.style.display=`none`,a.style.display=`inline-block`,r.style.display=`none`;try{await e.login({email:c,password:l}),window.location.href=`/`}catch(e){r.textContent=e instanceof Error?e.message:t(`login.failed`),r.style.display=`block`}finally{i.style.display=`inline`,a.style.display=`none`}});
1
+ import{t as e}from"./api.s1WYKU5S.js";var n=document.getElementById(`login-form`),r=document.getElementById(`error-message`),i=document.getElementById(`submit-text`),a=document.getElementById(`submit-spinner`);n?.addEventListener(`submit`,async o=>{o.preventDefault();let s=new FormData(n),c=s.get(`email`),l=s.get(`password`);i.style.display=`none`,a.style.display=`inline-block`,r.style.display=`none`;try{await e.login({email:c,password:l}),window.location.href=`/`}catch(e){r.textContent=e instanceof Error?e.message:t(`login.failed`),r.style.display=`block`}finally{i.style.display=`inline`,a.style.display=`none`}});
@@ -16,6 +16,47 @@ async function renderScript(result, id) {
16
16
  content
17
17
  });
18
18
  }
19
+ var package_default = {
20
+ name: "@oktis-works/admin",
21
+ version: "0.8.2",
22
+ type: "module",
23
+ bin: { "okcms-admin": "./bin/admin.js" },
24
+ files: ["bin", "dist"],
25
+ scripts: {
26
+ "dev": "astro dev",
27
+ "build": "astro build",
28
+ "preview": "astro preview",
29
+ "start": "astro dev",
30
+ "prepublishOnly": "bun run build",
31
+ "clean": "rm -rf dist .astro tsconfig.tsbuildinfo"
32
+ },
33
+ dependencies: {
34
+ "@astrojs/node": "11.1.6",
35
+ "@astrojs/solid-js": "7.0.2",
36
+ "@dnd-kit/solid": "0.5.0",
37
+ "@oktis-works/plugin-sdk": "^0.5.5",
38
+ "@oktis-works/types": "^0.5.5",
39
+ "@oktis-works/ui": "^0.5.6",
40
+ "@oktis-works/validation": "^0.5.5",
41
+ "astro": "7.3.5",
42
+ "lucide": "^1.52.0",
43
+ "solid-js": "1.9.15"
44
+ },
45
+ devDependencies: {
46
+ "@dnd-kit/abstract": "0.5.0",
47
+ "typescript": "5.7.3"
48
+ },
49
+ license: "MIT",
50
+ repository: {
51
+ "type": "git",
52
+ "url": "https://github.com/oktis-works/cms",
53
+ "directory": "apps/admin"
54
+ },
55
+ publishConfig: {
56
+ "access": "public",
57
+ "registry": "https://registry.npmjs.org/"
58
+ }
59
+ };
19
60
  //#endregion
20
61
  //#region src/layouts/BaseLayout.astro
21
62
  createAstro("https://astro.build");
@@ -27,7 +68,8 @@ var $$BaseLayout = createComponent(($$result, $$props, $$slots) => {
27
68
  const htmlLang = locale ?? "en";
28
69
  const dir = isRTL ? "rtl" : "ltr";
29
70
  const runtimeApiUrl = (typeof process !== "undefined" ? process.env.PUBLIC_API_URL?.trim() : "") || "";
30
- return renderTemplate`<html${addAttribute(htmlLang, "lang")}${addAttribute(dir, "dir")}><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description"${addAttribute(description ?? "OkCMS Admin Dashboard", "content")}><meta name="okcms-api-url"${addAttribute(runtimeApiUrl, "content")}><title>${title} | OkCMS</title><link rel="icon" type="image/svg+xml" href="/favicon.svg">${renderHead($$result)}</head><body>${renderSlot($$result, $$slots["default"])}</body></html>`;
71
+ const faviconHref = `/favicon.svg?v=${package_default.version}`;
72
+ return renderTemplate`<html${addAttribute(htmlLang, "lang")}${addAttribute(dir, "dir")}><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description"${addAttribute(description ?? "OkCMS Admin Dashboard", "content")}><meta name="okcms-api-url"${addAttribute(runtimeApiUrl, "content")}><title>${title} | OkCMS</title><link rel="icon" type="image/svg+xml"${addAttribute(faviconHref, "href")}>${renderHead($$result)}</head><body>${renderSlot($$result, $$slots["default"])}</body></html>`;
31
73
  }, "/home/runner/work/cms/cms/apps/admin/src/layouts/BaseLayout.astro", void 0);
32
74
  //#endregion
33
75
  export { renderScript as n, $$BaseLayout as t };
@@ -1,5 +1,5 @@
1
- import { n as useTranslation, r as apiClient } from "./i18n_B-Vk5esc.mjs";
2
- import { a as For2, f as createMemo$1, p as createSignal$1, u as Show2 } from "./DashboardLayout_sxL4fjEa.mjs";
1
+ import { n as useTranslation, r as apiClient } from "./i18n_BfgvkkQ3.mjs";
2
+ import { a as For2, f as createMemo$1, p as createSignal$1, u as Show2 } from "./DashboardLayout_BNKTHTT6.mjs";
3
3
  import { createComponent, escape, memo, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
4
4
  import { For, Show, createMemo, createSignal, onMount } from "solid-js";
5
5
  //#region ../../packages/validation/dist/client-validate.js
@@ -1,8 +1,8 @@
1
1
  import "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, d as maybeRenderHead, i as renderComponent, p as addAttribute, s as renderSlot, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as renderScript, t as $$BaseLayout } from "./BaseLayout_BZ15mIMT.mjs";
5
- import { a as LOCALE_LABELS, i as LOCALE_FLAGS, n as useTranslation, o as SUPPORTED_LOCALES, r as apiClient } from "./i18n_B-Vk5esc.mjs";
4
+ import { n as renderScript, t as $$BaseLayout } from "./BaseLayout_Ctd-h_eB.mjs";
5
+ import { a as LOCALE_FLAGS, n as useTranslation, o as LOCALE_LABELS, r as apiClient, s as SUPPORTED_LOCALES } from "./i18n_BfgvkkQ3.mjs";
6
6
  import { t as require_semver } from "./semver_WbqCUY_o.mjs";
7
7
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey, ssrStyle } from "solid-js/web";
8
8
  import { For, For as For2, Show, Show as Show2, createEffect, createMemo as createMemo$1, createSignal, createSignal as createSignal$1, onCleanup, onMount, onMount as onMount$1 } from "solid-js";
@@ -1,5 +1,5 @@
1
- import { n as useTranslation, r as apiClient } from "./i18n_B-Vk5esc.mjs";
2
- import { a as For2, c as Pagination, l as Select, m as onMount, o as Input, p as createSignal, r as Button, s as Modal, u as Show2 } from "./DashboardLayout_sxL4fjEa.mjs";
1
+ import { n as useTranslation, r as apiClient } from "./i18n_BfgvkkQ3.mjs";
2
+ import { a as For2, c as Pagination, l as Select, m as onMount, o as Input, p as createSignal, r as Button, s as Modal, u as Show2 } from "./DashboardLayout_BNKTHTT6.mjs";
3
3
  import { createComponent, escape, memo, ssr, ssrAttribute, ssrHydrationKey, ssrStyleProperty } from "solid-js/web";
4
4
  //#region src/components/media/MediaLibrary.tsx
5
5
  var _tmpl$ = [
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_B-Vk5esc.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BfgvkkQ3.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  import { t as FbIcon } from "./FbIcon_D0f6QiFJ.mjs";
8
8
  import { createComponent, escape, memo, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
@@ -1,7 +1,7 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, d as maybeRenderHead, i as renderComponent, p as addAttribute, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent } from "./compiler_O7J1rlsi.mjs";
4
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
5
5
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
6
6
  //#region src/pages/plugins/[slug].astro
7
7
  var _slug__exports = /* @__PURE__ */ __exportAll({
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_B-Vk5esc.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BfgvkkQ3.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
8
8
  import { For, Show, createSignal, onMount } from "solid-js";
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, d as maybeRenderHead, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_B-Vk5esc.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BfgvkkQ3.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
6
6
  import { t as FbIcon } from "./FbIcon_D0f6QiFJ.mjs";
7
7
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
8
8
  import { For, Show, createMemo, createSignal, onMount } from "solid-js";
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent } from "./compiler_O7J1rlsi.mjs";
4
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
5
- import { t as ContentEditor } from "./ContentEditor_DPDP8noZ.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
5
+ import { t as ContentEditor } from "./ContentEditor_qKR9fpe8.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  //#region src/pages/content/[type]/edit.astro
8
8
  var edit_exports = /* @__PURE__ */ __exportAll({
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { a as LOCALE_LABELS, i as LOCALE_FLAGS, n as useTranslation, o as SUPPORTED_LOCALES, r as apiClient } from "./i18n_B-Vk5esc.mjs";
5
- import { f as createMemo$1, i as Card, l as Select, m as onMount$1, o as Input, p as createSignal$1, r as Button, t as $$DashboardLayout, u as Show2 } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { a as LOCALE_FLAGS, n as useTranslation, o as LOCALE_LABELS, r as apiClient, s as SUPPORTED_LOCALES } from "./i18n_BfgvkkQ3.mjs";
5
+ import { f as createMemo$1, i as Card, l as Select, m as onMount$1, o as Input, p as createSignal$1, r as Button, t as $$DashboardLayout, u as Show2 } from "./DashboardLayout_BNKTHTT6.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  import { createComponent, escape, memo, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
8
8
  import { For, Show, createMemo, createSignal, onCleanup, onMount } from "solid-js";
@@ -107,6 +107,22 @@ async function loadLocale(locale) {
107
107
  }
108
108
  }
109
109
  //#endregion
110
+ //#region src/lib/api-url.ts
111
+ /**
112
+ * Junta a base da API com o path de rota normalizando o prefixo `/api`.
113
+ *
114
+ * - joinApiUrl('/api', '/api/v1/auth/csrf') → '/api/v1/auth/csrf'
115
+ * - joinApiUrl('/api/', '/api/v1/auth/csrf') → '/api/v1/auth/csrf'
116
+ * - joinApiUrl('http://h:3000/api', '/api/v1/x') → 'http://h:3000/api/v1/x'
117
+ * - joinApiUrl('http://h:3000', '/api/v1/x') → 'http://h:3000/api/v1/x' (inalterado)
118
+ * - joinApiUrl('', '/api/v1/x') → '/api/v1/x' (inalterado)
119
+ * - joinApiUrl('/api', '/health') → '/api/health' (path sem /api fica)
120
+ */
121
+ function joinApiUrl(base, path) {
122
+ if (base && path.startsWith("/api/") && /\/api\/?$/.test(base)) return `${base.replace(/\/$/, "")}${path.replace(/^\/api/, "")}`;
123
+ return `${base}${path}`;
124
+ }
125
+ //#endregion
110
126
  //#region src/lib/api.ts
111
127
  function resolveApiBase() {
112
128
  if (typeof document !== "undefined") {
@@ -263,7 +279,7 @@ var ApiClient = class {
263
279
  * - CSRF header para mutações
264
280
  */
265
281
  async request(method, path, body, headers, options) {
266
- const url = `${this.baseUrl}${path}`;
282
+ const url = joinApiUrl(this.baseUrl, path);
267
283
  const send = async () => {
268
284
  const requestHeaders = {
269
285
  "Content-Type": "application/json",
@@ -307,7 +323,7 @@ var ApiClient = class {
307
323
  }
308
324
  /** Requisição genérica que retorna o Response bruto (para blobs, downloads, etc.). */
309
325
  async requestRaw(method, path, body, headers, options) {
310
- const url = `${this.baseUrl}${path}`;
326
+ const url = joinApiUrl(this.baseUrl, path);
311
327
  const send = async () => {
312
328
  const requestHeaders = {
313
329
  "Content-Type": "application/json",
@@ -354,7 +370,7 @@ var ApiClient = class {
354
370
  }
355
371
  if (!force && this.csrfToken) return this.csrfToken;
356
372
  try {
357
- const response = await fetch(`${this.baseUrl}/api/v1/auth/csrf`, {
373
+ const response = await fetch(joinApiUrl(this.baseUrl, "/api/v1/auth/csrf"), {
358
374
  credentials: "include",
359
375
  headers: { Accept: "application/json" }
360
376
  });
@@ -549,7 +565,7 @@ var ApiClient = class {
549
565
  formData.append("file", file);
550
566
  if (options?.alt) formData.append("alt", options.alt);
551
567
  if (options?.caption) formData.append("caption", options.caption);
552
- const url = `${this.baseUrl}/api/v1/media/upload`;
568
+ const url = joinApiUrl(this.baseUrl, "/api/v1/media/upload");
553
569
  const send = async () => {
554
570
  const csrf = await this.ensureCsrfToken();
555
571
  const requestHeaders = {};
@@ -588,7 +604,7 @@ var ApiClient = class {
588
604
  async replaceMediaFile(id, file) {
589
605
  const formData = new FormData();
590
606
  formData.append("file", file);
591
- const url = `${this.baseUrl}/api/v1/media/${id}/file`;
607
+ const url = joinApiUrl(this.baseUrl, `/api/v1/media/${id}/file`);
592
608
  const send = async () => {
593
609
  const csrf = await this.ensureCsrfToken();
594
610
  const headers = {};
@@ -1850,4 +1866,4 @@ async function getTranslationsForLocale(locale) {
1850
1866
  return loadLocale(locale);
1851
1867
  }
1852
1868
  //#endregion
1853
- export { LOCALE_LABELS as a, LOCALE_FLAGS as i, useTranslation as n, SUPPORTED_LOCALES as o, apiClient as r, isRTLLocale as s, getTranslationsForLocale as t };
1869
+ export { LOCALE_FLAGS as a, isRTLLocale as c, joinApiUrl as i, useTranslation as n, LOCALE_LABELS as o, apiClient as r, SUPPORTED_LOCALES as s, getTranslationsForLocale as t };
@@ -1,9 +1,9 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent } from "./compiler_O7J1rlsi.mjs";
4
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
5
5
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
6
- import { t as MediaLibrary } from "./MediaLibrary_CqYE2tyV.mjs";
6
+ import { t as MediaLibrary } from "./MediaLibrary_DKM6Z01t.mjs";
7
7
  //#region src/pages/media/index.astro
8
8
  var media_exports = /* @__PURE__ */ __exportAll({
9
9
  default: () => $$Index,
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_B-Vk5esc.mjs";
5
- import { a as For2, c as Pagination, l as Select, m as onMount, n as Badge, o as Input, p as createSignal, r as Button, t as $$DashboardLayout, u as Show2 } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BfgvkkQ3.mjs";
5
+ import { a as For2, c as Pagination, l as Select, m as onMount, n as Badge, o as Input, p as createSignal, r as Button, t as $$DashboardLayout, u as Show2 } from "./DashboardLayout_BNKTHTT6.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
8
8
  //#region src/components/apps/users/UsersManager.tsx
@@ -1,9 +1,9 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_B-Vk5esc.mjs";
5
- import { c as Pagination, d as Table, i as Card, l as Select, n as Badge, o as Input, r as Button, t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
6
- import { t as ContentEditor } from "./ContentEditor_DPDP8noZ.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BfgvkkQ3.mjs";
5
+ import { c as Pagination, d as Table, i as Card, l as Select, n as Badge, o as Input, r as Button, t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
6
+ import { t as ContentEditor } from "./ContentEditor_qKR9fpe8.mjs";
7
7
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
8
8
  import { createComponent, escape, memo, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
9
9
  import { Show, createMemo, createSignal, onMount } from "solid-js";
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, d as maybeRenderHead, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_B-Vk5esc.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BfgvkkQ3.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
6
6
  import { createComponent, escape, ssr, ssrHydrationKey } from "solid-js/web";
7
7
  import { For, Show, createSignal, onMount } from "solid-js";
8
8
  //#region src/components/apps/dashboard/DashboardHome.tsx
@@ -1,7 +1,7 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, d as maybeRenderHead, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent } from "./compiler_O7J1rlsi.mjs";
4
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
5
5
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
6
6
  //#region src/pages/settings/index.astro
7
7
  var settings_exports = /* @__PURE__ */ __exportAll({
@@ -1,7 +1,7 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, d as maybeRenderHead, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent } from "./compiler_O7J1rlsi.mjs";
4
- import { n as renderScript, t as $$BaseLayout } from "./BaseLayout_BZ15mIMT.mjs";
4
+ import { n as renderScript, t as $$BaseLayout } from "./BaseLayout_Ctd-h_eB.mjs";
5
5
  //#region src/pages/login.astro
6
6
  var login_exports = /* @__PURE__ */ __exportAll({
7
7
  default: () => $$Login,
@@ -13,7 +13,7 @@ var $$Login = createComponent(($$result, $$props, $$slots) => {
13
13
  const Astro = $$result.createAstro($$props, $$slots);
14
14
  Astro.self = $$Login;
15
15
  const { t } = Astro.locals;
16
- return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": t("login.title") }, { "default": ($$result) => renderTemplate`${maybeRenderHead($$result)}<div class="login-page"><div class="login-card"><div class="login-header"><div class="logo"><img src="/logo.svg" width="48" height="48" alt=""></div><h1>${t("layout.appName")}</h1><p>${t("login.subtitle")}</p></div><form id="login-form" class="login-form"><div class="form-group"><label for="email">${t("login.email")}</label><input type="email" id="email" name="email" class="input" required placeholder="admin@example.com" autocomplete="email"></div><div class="form-group"><label for="password">${t("login.password")}</label><input type="password" id="password" name="password" class="input" required placeholder="••••••••" autocomplete="current-password"></div><div id="error-message" class="error-message" style="display: none;"></div><button type="submit" class="btn btn-primary"><span id="submit-text">${t("login.submit")}</span><span id="submit-spinner" class="spinner" style="display: none;"></span></button></form></div></div>` })}${renderScript($$result, "/home/runner/work/cms/cms/apps/admin/src/pages/login.astro?astro&type=script&index=0&lang.ts")}`;
16
+ return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": t("login.title") }, { "default": ($$result) => renderTemplate`${maybeRenderHead($$result)}<div class="login-page"><div class="login-card"><div class="login-header"><div class="logo"><img src="/logo.svg" width="96" height="96" alt="OkCMS"></div><p>${t("login.subtitle")}</p></div><form id="login-form" class="login-form"><div class="form-group"><label for="email">${t("login.email")}</label><input type="email" id="email" name="email" class="input" required placeholder="admin@example.com" autocomplete="email"></div><div class="form-group"><label for="password">${t("login.password")}</label><input type="password" id="password" name="password" class="input" required placeholder="••••••••" autocomplete="current-password"></div><div id="error-message" class="error-message" style="display: none;"></div><button type="submit" class="btn btn-primary"><span id="submit-text">${t("login.submit")}</span><span id="submit-spinner" class="spinner" style="display: none;"></span></button></form></div></div>` })}${renderScript($$result, "/home/runner/work/cms/cms/apps/admin/src/pages/login.astro?astro&type=script&index=0&lang.ts")}`;
17
17
  }, "/home/runner/work/cms/cms/apps/admin/src/pages/login.astro", void 0);
18
18
  var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/login.astro";
19
19
  var $$url = "/login";
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_B-Vk5esc.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BfgvkkQ3.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
8
8
  import { For, Show, createSignal, onMount } from "solid-js";
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, d as maybeRenderHead, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_B-Vk5esc.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BfgvkkQ3.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
6
6
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
7
7
  import { For, Show, createMemo, createSignal, onMount } from "solid-js";
8
8
  //#region src/components/apps/menus/MenuManager.tsx
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_B-Vk5esc.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BfgvkkQ3.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
8
8
  import { For, Show, createSignal, onMount } from "solid-js";
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent } from "./compiler_O7J1rlsi.mjs";
4
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
5
- import { t as ContentEditor } from "./ContentEditor_DPDP8noZ.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
5
+ import { t as ContentEditor } from "./ContentEditor_qKR9fpe8.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  //#region src/pages/content/[type]/new.astro
8
8
  var new_exports = /* @__PURE__ */ __exportAll({
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_B-Vk5esc.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BfgvkkQ3.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
8
8
  import { For, createSignal, onMount } from "solid-js";
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_B-Vk5esc.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BfgvkkQ3.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
8
8
  import { For, Show, createMemo, createSignal, onMount } from "solid-js";
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_B-Vk5esc.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BfgvkkQ3.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey, ssrStyleProperty } from "solid-js/web";
8
8
  import { For, Show, createSignal, onMount } from "solid-js";
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, d as maybeRenderHead, i as renderComponent, p as addAttribute, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_B-Vk5esc.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BfgvkkQ3.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  import { createComponent, escape, memo, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
8
8
  import { For, Show, createSignal, onMount } from "solid-js";
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_B-Vk5esc.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_sxL4fjEa.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BfgvkkQ3.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_BNKTHTT6.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
8
8
  import { For, createSignal, onMount } from "solid-js";