@oktis-works/admin 0.4.20 → 0.4.23

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 (144) hide show
  1. package/dist/client/_astro/{ActivityWidget.BbEtaaM-.js → ActivityWidget.DaftIB1V.js} +2 -2
  2. package/dist/client/_astro/AdminBar.B-diRxPt.js +253 -0
  3. package/dist/client/_astro/{AtGlanceWidget.C1hpeDlx.js → AtGlanceWidget.q_xwhOJa.js} +3 -3
  4. package/dist/client/_astro/BaseLayout.sayhdG_g.css +1 -0
  5. package/dist/client/_astro/ContentEditor.B1b1Ixz0.js +3 -0
  6. package/dist/client/_astro/ContentEditor.DGTZ51kU.js +1 -0
  7. package/dist/client/_astro/ContentTypeWorkspace.CFzwh3Rc.js +1 -0
  8. package/dist/client/_astro/CustomFieldsManager.DqCE6rSX.js +5 -0
  9. package/dist/client/_astro/DashboardHome.HrqKA0mK.js +1 -0
  10. package/dist/client/_astro/DashboardLayout.astro_astro_type_script_index_0_lang.sBNUxHjt.js +1 -0
  11. package/dist/client/_astro/{DashboardLayout.CGou4voc.css → DashboardLayout.cOPI1C7I.css} +1 -1
  12. package/dist/client/_astro/{Footer.rUGgtlfI.js → Footer.nQEKIcjo.js} +2 -2
  13. package/dist/client/_astro/GeneralSettings.C5lXnnvB.js +1 -0
  14. package/dist/client/_astro/LogsManager.BSXD0gFG.js +1 -0
  15. package/dist/client/_astro/MediaLibrary.9tlXDGsx.js +1 -0
  16. package/dist/client/_astro/MenuManager.CfLmtMhF.js +1 -0
  17. package/dist/client/_astro/PluginManager.Ba2R7ZVx.js +98 -0
  18. package/dist/client/_astro/PostTypesManager.DqbyhhLF.js +1 -0
  19. package/dist/client/_astro/QuickDraftWidget.J5LOLOY3.js +17 -0
  20. package/dist/client/_astro/ResourceHubs.sI10AY3z.js +1 -0
  21. package/dist/client/_astro/TaxonomiesManager.BFd3zjNe.js +1 -0
  22. package/dist/client/_astro/TaxonomyTermsManager.C7ClYXtt.js +1 -0
  23. package/dist/client/_astro/ThemeManager.C4t-yZay.js +129 -0
  24. package/dist/client/_astro/UserCreateForm.B-7pKOO6.js +1 -0
  25. package/dist/client/_astro/UsersManager.aI6-3vtM.js +1 -0
  26. package/dist/client/_astro/WebhooksManager.C3E91U9V.js +1 -0
  27. package/dist/client/_astro/api.DSIz0zxF.js +1 -0
  28. package/dist/client/_astro/ar.9BcNkJMI.js +1 -0
  29. package/dist/client/_astro/client.BDaUmf7m.js +1 -0
  30. package/dist/client/_astro/custom-fields.pl-GPt9A.css +1 -0
  31. package/dist/client/_astro/dist.BqeNZlzo.js +1 -0
  32. package/dist/client/_astro/es-ES.DgqDFCmG.js +1 -0
  33. package/dist/client/_astro/extensions.BD4YTWQq.js +1 -0
  34. package/dist/client/_astro/he.11dIJHQw.js +1 -0
  35. package/dist/client/_astro/i18n.Tk18hqHh.js +1 -0
  36. package/dist/client/_astro/it.yCdgk3Xj.js +1 -0
  37. package/dist/client/_astro/ja.BIm7Hwe_.js +1 -0
  38. package/dist/client/_astro/{login.astro_astro_type_script_index_0_lang.O-AlzgHd.js → login.astro_astro_type_script_index_0_lang.CJiWhdn-.js} +1 -1
  39. package/dist/client/_astro/lucide.DlU56wZ1.js +4 -0
  40. package/dist/client/_astro/pl.dUwrcITB.js +1 -0
  41. package/dist/client/_astro/pt-BR.BvjbjXKW.js +1 -0
  42. package/dist/client/_astro/rolldown-runtime.BpQH8Ho1.js +1 -0
  43. package/dist/client/_astro/ru.lmDiQaSu.js +1 -0
  44. package/dist/client/_astro/solid.TEtyrbLc.js +1 -0
  45. package/dist/client/_astro/sw._qHdoFbp.js +1 -0
  46. package/dist/client/_astro/tr.Do-lr98T.js +1 -0
  47. package/dist/client/_astro/uk.DTUX-N1c.js +1 -0
  48. package/dist/client/_astro/{version.BQq07lEn.js → version.Cvcb-3YL.js} +1 -1
  49. package/dist/client/_astro/web.C8wWxyYF.js +1 -0
  50. package/dist/client/_astro/yo.BIYG0J7I.js +1 -0
  51. package/dist/client/_astro/zh-CN.C7Iod1E1.js +1 -0
  52. package/dist/server/chunks/{ContentEditor_DS7flRjR.mjs → ContentEditor_Bz6HNlOl.mjs} +11 -31
  53. package/dist/server/chunks/{DashboardLayout_09DepSVn.mjs → DashboardLayout_DnvPikNH.mjs} +42 -17
  54. package/dist/server/chunks/MediaLibrary_CfwJY7WG.mjs +466 -0
  55. package/dist/server/chunks/{_slug__l8CTaLpP.mjs → _slug__Bf1zTrrT.mjs} +1 -1
  56. package/dist/server/chunks/access_Iqz1YRc2.mjs +138 -0
  57. package/dist/server/chunks/{ar_B0LfQbpu.mjs → ar_DlCzOUGe.mjs} +22 -2
  58. package/dist/server/chunks/custom-fields_HXTX5-i-.mjs +1297 -0
  59. package/dist/server/chunks/{edit_hSCrM2Gq.mjs → edit_ibDxQgfc.mjs} +2 -2
  60. package/dist/server/chunks/{es-ES_dBEm2FNw.mjs → es-ES_DD40B9Zr.mjs} +22 -2
  61. package/dist/server/chunks/{general_Ct9MU7b-.mjs → general_VinYjg7Y.mjs} +2 -2
  62. package/dist/server/chunks/{he_DRWoI1A5.mjs → he_8WSAyM_S.mjs} +22 -2
  63. package/dist/server/chunks/{i18n_BqFK0MIW.mjs → i18n_BgHPm3Sm.mjs} +337 -57
  64. package/dist/server/chunks/{index_CBfRX_VO.mjs → index_BIz2E9Ay.mjs} +3 -3
  65. package/dist/server/chunks/{index_uv0IHg8r.mjs → index_DmY8Cm8s.mjs} +2 -2
  66. package/dist/server/chunks/{index_DQ5pFuPN.mjs → index_DvyRjH_d.mjs} +2 -2
  67. package/dist/server/chunks/{index_Cv2j9xC_.mjs → index_WfuyDGIh.mjs} +2 -2
  68. package/dist/server/chunks/{index_B77wdzK2.mjs → index_kl5K78eg.mjs} +1 -1
  69. package/dist/server/chunks/{it_BDY3lerP.mjs → it_DEDC6yxf.mjs} +22 -2
  70. package/dist/server/chunks/{ja_C-EybQiV.mjs → ja_BRQi6rW3.mjs} +22 -2
  71. package/dist/server/chunks/{login_D-Z6bo6E.mjs → login_s3hMBW1K.mjs} +1 -1
  72. package/dist/server/chunks/logs_DUQUxzzy.mjs +160 -0
  73. package/dist/server/chunks/menus_CgKz8KBb.mjs +532 -0
  74. package/dist/server/chunks/{new_DpJfTahF.mjs → new_CU0A50ce.mjs} +2 -2
  75. package/dist/server/chunks/{new_XOnqlHm3.mjs → new_CZuza7Tx.mjs} +2 -2
  76. package/dist/server/chunks/{pl_DH5LKmVG.mjs → pl_CKanAk0F.mjs} +22 -2
  77. package/dist/server/chunks/plugins_fppkr9jv.mjs +133 -0
  78. package/dist/server/chunks/{post-types_DziideHh.mjs → post-types_BAWPD3pX.mjs} +2 -2
  79. package/dist/server/chunks/{pt-BR_CBnqy3xP.mjs → pt-BR_CoM1872j.mjs} +263 -13
  80. package/dist/server/chunks/{ru_CFa1xYFr.mjs → ru_CuNXt2MB.mjs} +22 -2
  81. package/dist/server/chunks/{sw_QZf7NSsI.mjs → sw_RLMWPkos.mjs} +22 -2
  82. package/dist/server/chunks/{taxonomies_Bc6xPaKp.mjs → taxonomies_BACV08DC.mjs} +2 -2
  83. package/dist/server/chunks/{taxonomy_Cv4_KTTL.mjs → taxonomy_CZLTclnV.mjs} +30 -15
  84. package/dist/server/chunks/themes_DHNmoF_s.mjs +132 -0
  85. package/dist/server/chunks/{tr_Fjry5R-K.mjs → tr_Dz8pqyTZ.mjs} +22 -2
  86. package/dist/server/chunks/{uk_Bxc3qY45.mjs → uk_BjwqlweA.mjs} +22 -2
  87. package/dist/server/chunks/{upload_CB_L9tkU.mjs → upload_BZgCqIbH.mjs} +2 -2
  88. package/dist/server/chunks/webhooks_D0qA5-De.mjs +300 -0
  89. package/dist/server/chunks/{yo_BARL-Qrh.mjs → yo_Dv14KWVR.mjs} +22 -2
  90. package/dist/server/chunks/{zh-CN_CkjPJL88.mjs → zh-CN_DjIZCWzG.mjs} +22 -2
  91. package/dist/server/entry.mjs +77 -50
  92. package/dist/server/virtual_astro_middleware.mjs +1 -1
  93. package/package.json +1 -1
  94. package/dist/client/_astro/AdminBar.CU2eba2D.js +0 -253
  95. package/dist/client/_astro/BaseLayout.Y8xW22CP.css +0 -1
  96. package/dist/client/_astro/ContentEditor.Bc5Jq8Dv.js +0 -1
  97. package/dist/client/_astro/ContentEditor.DvpaqJBD.js +0 -3
  98. package/dist/client/_astro/ContentTypeWorkspace.DakVi21h.js +0 -1
  99. package/dist/client/_astro/CustomFieldsManager.B7WOTvb7.js +0 -3
  100. package/dist/client/_astro/DashboardHome.CUfuLLDH.js +0 -1
  101. package/dist/client/_astro/DashboardLayout.astro_astro_type_script_index_0_lang.Dpnx6U2l.js +0 -4
  102. package/dist/client/_astro/FieldTypePicker.Cyfzqug-.js +0 -1
  103. package/dist/client/_astro/GeneralSettings.C4mnJ7P2.js +0 -1
  104. package/dist/client/_astro/MediaLibrary.2geQYfXB.js +0 -1
  105. package/dist/client/_astro/PluginManager.D3pm88iu.js +0 -93
  106. package/dist/client/_astro/PostTypesManager.Cyhr3VEJ.js +0 -1
  107. package/dist/client/_astro/QuickDraftWidget.CPljoS31.js +0 -17
  108. package/dist/client/_astro/ResourceHubs.DpCJERsJ.js +0 -1
  109. package/dist/client/_astro/TaxonomiesManager.P3bc-fnu.js +0 -1
  110. package/dist/client/_astro/TaxonomyTermsManager.BxP9gwm7.js +0 -1
  111. package/dist/client/_astro/ThemeManager.3MUOwqex.js +0 -129
  112. package/dist/client/_astro/UserCreateForm.C3RiEJEa.js +0 -1
  113. package/dist/client/_astro/UsersManager.DR9XR3FX.js +0 -1
  114. package/dist/client/_astro/api.25OAsWO0.js +0 -1
  115. package/dist/client/_astro/ar.CwC9hXB9.js +0 -1
  116. package/dist/client/_astro/client.W0NY0lEa.js +0 -1
  117. package/dist/client/_astro/custom-fields.IjuRIdAC.css +0 -1
  118. package/dist/client/_astro/es-ES.qNcd-cVX.js +0 -1
  119. package/dist/client/_astro/extensions.Bj86CHnv.js +0 -1
  120. package/dist/client/_astro/he.DfZ0ZzM-.js +0 -1
  121. package/dist/client/_astro/i18n.C24_pkIi.js +0 -1
  122. package/dist/client/_astro/it.PFmLQj2s.js +0 -1
  123. package/dist/client/_astro/ja.CMi5cD8g.js +0 -1
  124. package/dist/client/_astro/pl.CRExzLlj.js +0 -1
  125. package/dist/client/_astro/pt-BR.BPvwNpKR.js +0 -1
  126. package/dist/client/_astro/ru.CWV-tkZ3.js +0 -1
  127. package/dist/client/_astro/solid.DN8T1HsY.js +0 -1
  128. package/dist/client/_astro/src.Cq47pnsg.js +0 -1
  129. package/dist/client/_astro/sw.B5x6GU4s.js +0 -1
  130. package/dist/client/_astro/tr.BzxCGQu8.js +0 -1
  131. package/dist/client/_astro/uk.DJHMwNRU.js +0 -1
  132. package/dist/client/_astro/web.Bze9SKEA.js +0 -1
  133. package/dist/client/_astro/yo.DNw_hOnW.js +0 -1
  134. package/dist/client/_astro/zh-CN.Bs7H6Unx.js +0 -1
  135. package/dist/server/chunks/FieldTypePicker_CXwpmcQ3.mjs +0 -79
  136. package/dist/server/chunks/MediaLibrary_Xs09kLza.mjs +0 -335
  137. package/dist/server/chunks/ResourceHubs_Dwb0xyPZ.mjs +0 -453
  138. package/dist/server/chunks/access_D93W5BWD.mjs +0 -34
  139. package/dist/server/chunks/custom-fields_Dp7DHJ0M.mjs +0 -488
  140. package/dist/server/chunks/operations_0sYvzzNC.mjs +0 -34
  141. package/dist/server/chunks/plugins_Clk92l6Q.mjs +0 -156
  142. package/dist/server/chunks/resources_dPTDnpAf.mjs +0 -34
  143. package/dist/server/chunks/themes_BRtDtEK7.mjs +0 -155
  144. /package/dist/server/chunks/{BaseLayout_m8b8Eemd.mjs → BaseLayout_CXafpVV9.mjs} +0 -0
@@ -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 } from "./compiler_O7J1rlsi.mjs";
4
- import { t as $$DashboardLayout } from "./DashboardLayout_09DepSVn.mjs";
5
- import { t as ContentEditor } from "./ContentEditor_DS7flRjR.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_DnvPikNH.mjs";
5
+ import { t as ContentEditor } from "./ContentEditor_Bz6HNlOl.mjs";
6
6
  //#region src/pages/content/[type]/edit.astro
7
7
  var edit_exports = /* @__PURE__ */ __exportAll({
8
8
  default: () => $$Edit,
@@ -7,6 +7,7 @@ var layout = {
7
7
  "content": "Contenido",
8
8
  "media": "Medios",
9
9
  "users": "Usuarios",
10
+ "menus": "Menús",
10
11
  "settings": "Ajustes",
11
12
  "plugins": "Plugins",
12
13
  "themes": "Temas"
@@ -122,7 +123,25 @@ var content = {
122
123
  "inspectTypes": "Inspeccionar tipos disponibles",
123
124
  "save": "Guardar",
124
125
  "saved": "Contenido guardado correctamente."
125
- }
126
+ },
127
+ "taxonomy": { "editTerm": "Editar término" }
128
+ };
129
+ var menus = {
130
+ "title": "Menús",
131
+ "description": "Crea y gestiona los menús de navegación de tu sitio.",
132
+ "hint": "Los menús son independientes de los tipos de contenido y el tema puede mostrarlos.",
133
+ "new": "Nuevo menú",
134
+ "create": "Crear menú",
135
+ "edit": "Editar menú",
136
+ "name": "Nombre",
137
+ "slug": "Slug",
138
+ "items": "Elementos del menú (JSON)",
139
+ "itemsHint": "Usa una lista JSON de objetos de menú.",
140
+ "invalidItems": "Los elementos del menú deben ser una lista JSON válida.",
141
+ "saved": "Menú guardado.",
142
+ "deleted": "Menú eliminado.",
143
+ "empty": "Aún no hay menús.",
144
+ "confirmDelete": "¿Eliminar el menú \"{name}\"?"
126
145
  };
127
146
  var media = {
128
147
  "title": "Biblioteca de Medios",
@@ -395,6 +414,7 @@ var es_ES_default = {
395
414
  layout,
396
415
  dashboard,
397
416
  content,
417
+ menus,
398
418
  media,
399
419
  users,
400
420
  settings,
@@ -407,4 +427,4 @@ var es_ES_default = {
407
427
  screenOptions
408
428
  };
409
429
  //#endregion
410
- export { activity, adminBar, common, content, dashboard, es_ES_default as default, footer, helpTabs, layout, login, media, screenOptions, settings, users };
430
+ export { activity, adminBar, common, content, dashboard, es_ES_default as default, footer, helpTabs, layout, login, media, menus, screenOptions, settings, users };
@@ -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_BqFK0MIW.mjs";
5
- import { c as Select, d as createMemo, f as createSignal, i as Card, l as Show2, o as Input, p as onMount, r as Button, t as $$DashboardLayout } from "./DashboardLayout_09DepSVn.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BgHPm3Sm.mjs";
5
+ import { f as createMemo, i as Card, l as Select, m as onMount, o as Input, p as createSignal, r as Button, t as $$DashboardLayout, u as Show2 } from "./DashboardLayout_DnvPikNH.mjs";
6
6
  import { createComponent, escape, memo, ssr, ssrHydrationKey } from "solid-js/web";
7
7
  //#region src/components/apps/settings/GeneralSettings.tsx
8
8
  var _tmpl$ = [
@@ -7,6 +7,7 @@ var layout = {
7
7
  "content": "תוכן",
8
8
  "media": "מדיה",
9
9
  "users": "משתמשים",
10
+ "menus": "תפריטים",
10
11
  "settings": "הגדרות",
11
12
  "plugins": "תוספים",
12
13
  "themes": "ערכות נושא"
@@ -122,7 +123,25 @@ var content = {
122
123
  "inspectTypes": "בדוק סוגים זמינים",
123
124
  "save": "שמור",
124
125
  "saved": "התוכן נשמר בהצלחה."
125
- }
126
+ },
127
+ "taxonomy": { "editTerm": "עריכת מונח" }
128
+ };
129
+ var menus = {
130
+ "title": "תפריטים",
131
+ "description": "צור ונהל את תפריטי הניווט של האתר.",
132
+ "hint": "התפריטים עצמאיים מסוגי התוכן וניתנים להצגה על ידי ערכת הנושא.",
133
+ "new": "תפריט חדש",
134
+ "create": "יצירת תפריט",
135
+ "edit": "עריכת תפריט",
136
+ "name": "שם",
137
+ "slug": "Slug",
138
+ "items": "פריטי תפריט (JSON)",
139
+ "itemsHint": "השתמש במערך JSON של אובייקטי תפריט.",
140
+ "invalidItems": "פריטי התפריט חייבים להיות מערך JSON תקין.",
141
+ "saved": "התפריט נשמר.",
142
+ "deleted": "התפריט נמחק.",
143
+ "empty": "אין עדיין תפריטים.",
144
+ "confirmDelete": "למחוק את התפריט \"{name}\"?"
126
145
  };
127
146
  var media = {
128
147
  "title": "ספריית מדיה",
@@ -395,6 +414,7 @@ var he_default = {
395
414
  layout,
396
415
  dashboard,
397
416
  content,
417
+ menus,
398
418
  media,
399
419
  users,
400
420
  settings,
@@ -407,4 +427,4 @@ var he_default = {
407
427
  screenOptions
408
428
  };
409
429
  //#endregion
410
- export { activity, adminBar, common, content, dashboard, he_default as default, footer, helpTabs, layout, login, media, screenOptions, settings, users };
430
+ export { activity, adminBar, common, content, dashboard, he_default as default, footer, helpTabs, layout, login, media, menus, screenOptions, settings, users };
@@ -83,20 +83,20 @@ async function loadLocale(locale) {
83
83
  if (localeCache.has(locale)) return localeCache.get(locale);
84
84
  try {
85
85
  const module = await _rolldown_dynamic_import_helper_default(/* #__PURE__ */ Object.assign({
86
- "./locales/ar.json": () => import("./ar_B0LfQbpu.mjs"),
86
+ "./locales/ar.json": () => import("./ar_DlCzOUGe.mjs"),
87
87
  "./locales/en.json": () => Promise.resolve().then(() => en_exports),
88
- "./locales/es-ES.json": () => import("./es-ES_dBEm2FNw.mjs"),
89
- "./locales/he.json": () => import("./he_DRWoI1A5.mjs"),
90
- "./locales/it.json": () => import("./it_BDY3lerP.mjs"),
91
- "./locales/ja.json": () => import("./ja_C-EybQiV.mjs"),
92
- "./locales/pl.json": () => import("./pl_DH5LKmVG.mjs"),
93
- "./locales/pt-BR.json": () => import("./pt-BR_CBnqy3xP.mjs"),
94
- "./locales/ru.json": () => import("./ru_CFa1xYFr.mjs"),
95
- "./locales/sw.json": () => import("./sw_QZf7NSsI.mjs"),
96
- "./locales/tr.json": () => import("./tr_Fjry5R-K.mjs"),
97
- "./locales/uk.json": () => import("./uk_Bxc3qY45.mjs"),
98
- "./locales/yo.json": () => import("./yo_BARL-Qrh.mjs"),
99
- "./locales/zh-CN.json": () => import("./zh-CN_CkjPJL88.mjs")
88
+ "./locales/es-ES.json": () => import("./es-ES_DD40B9Zr.mjs"),
89
+ "./locales/he.json": () => import("./he_8WSAyM_S.mjs"),
90
+ "./locales/it.json": () => import("./it_DEDC6yxf.mjs"),
91
+ "./locales/ja.json": () => import("./ja_BRQi6rW3.mjs"),
92
+ "./locales/pl.json": () => import("./pl_CKanAk0F.mjs"),
93
+ "./locales/pt-BR.json": () => import("./pt-BR_CoM1872j.mjs"),
94
+ "./locales/ru.json": () => import("./ru_CuNXt2MB.mjs"),
95
+ "./locales/sw.json": () => import("./sw_RLMWPkos.mjs"),
96
+ "./locales/tr.json": () => import("./tr_Dz8pqyTZ.mjs"),
97
+ "./locales/uk.json": () => import("./uk_BjwqlweA.mjs"),
98
+ "./locales/yo.json": () => import("./yo_Dv14KWVR.mjs"),
99
+ "./locales/zh-CN.json": () => import("./zh-CN_DjIZCWzG.mjs")
100
100
  }), `./locales/${locale}.json`, 3);
101
101
  const translations = module.default ?? module;
102
102
  localeCache.set(locale, translations);
@@ -125,6 +125,16 @@ var ApiClient = class {
125
125
  constructor(baseUrl = API_BASE) {
126
126
  this.baseUrl = baseUrl;
127
127
  }
128
+ /** Resolve a relative media URL against the API, not the Admin port. */
129
+ mediaUrl(path) {
130
+ if (/^(?:https?:)?\/\//i.test(path)) return path;
131
+ if (!this.baseUrl) return path;
132
+ try {
133
+ return new URL(path, `${this.baseUrl.replace(/\/$/, "")}/`).toString();
134
+ } catch {
135
+ return path;
136
+ }
137
+ }
128
138
  /** Inicializa lendo CSRF do cookie (chamado no boot da app) */
129
139
  async init() {
130
140
  try {
@@ -168,6 +178,19 @@ var ApiClient = class {
168
178
  async getAuditLogs(limit = 8) {
169
179
  return this.request("GET", `/api/v1/audit-logs?limit=${limit}`);
170
180
  }
181
+ async getAuditLogConfig() {
182
+ return this.request("GET", "/api/v1/audit-logs/config");
183
+ }
184
+ async updateAuditLogConfig(retentionDays) {
185
+ return this.request("PUT", "/api/v1/audit-logs/config", { retentionDays });
186
+ }
187
+ async listAuditLogs(options) {
188
+ const params = new URLSearchParams();
189
+ if (options?.limit) params.set("limit", String(options.limit));
190
+ if (options?.action) params.set("action", options.action);
191
+ if (options?.resourceType) params.set("resourceType", options.resourceType);
192
+ return this.request("GET", `/api/v1/audit-logs?${params.toString()}`);
193
+ }
171
194
  /** Login — o backend seta cookies HttpOnly e CSRF; retorna user + tenantId */
172
195
  async login(input) {
173
196
  await this.ensureCsrfToken();
@@ -446,6 +469,9 @@ var ApiClient = class {
446
469
  async getWebhooks() {
447
470
  return this.request("GET", "/api/v1/webhooks");
448
471
  }
472
+ async getWebhookEvents() {
473
+ return (await this.request("GET", "/api/v1/webhooks/events")).data;
474
+ }
449
475
  async createWebhook(data) {
450
476
  return this.request("POST", "/api/v1/webhooks", data);
451
477
  }
@@ -455,36 +481,6 @@ var ApiClient = class {
455
481
  async deleteWebhook(id) {
456
482
  await this.request("DELETE", `/api/v1/webhooks/${id}`);
457
483
  }
458
- async getBuilds(options) {
459
- const params = new URLSearchParams();
460
- if (options?.page) params.set("page", String(options.page));
461
- if (options?.limit) params.set("limit", String(options.limit));
462
- if (options?.status) params.set("status", options.status);
463
- return this.request("GET", `/api/v1/builds?${params.toString()}`);
464
- }
465
- async createBuild(data) {
466
- return this.request("POST", "/api/v1/builds", data);
467
- }
468
- async getDeployments(options) {
469
- const params = new URLSearchParams();
470
- if (options?.page) params.set("page", String(options.page));
471
- if (options?.limit) params.set("limit", String(options.limit));
472
- if (options?.status) params.set("status", options.status);
473
- return this.request("GET", `/api/v1/deployments?${params.toString()}`);
474
- }
475
- async createDeployment(data) {
476
- return this.request("POST", "/api/v1/deployments", data);
477
- }
478
- async rollbackDeployment(id, rollbackToId) {
479
- return this.request("POST", `/api/v1/deployments/${id}/rollback`, { rollbackToId });
480
- }
481
- async getEvents(options) {
482
- const params = new URLSearchParams();
483
- if (options?.page) params.set("page", String(options.page));
484
- if (options?.limit) params.set("limit", String(options.limit));
485
- if (options?.type) params.set("type", options.type);
486
- return this.request("GET", `/api/v1/events?${params.toString()}`);
487
- }
488
484
  async listMedia(options) {
489
485
  const params = new URLSearchParams();
490
486
  if (options?.page) params.set("page", String(options.page));
@@ -538,6 +534,38 @@ var ApiClient = class {
538
534
  async updateMedia(id, data) {
539
535
  return this.request("PUT", `/api/v1/media/${id}`, data);
540
536
  }
537
+ async replaceMediaFile(id, file) {
538
+ const formData = new FormData();
539
+ formData.append("file", file);
540
+ const url = `${this.baseUrl}/api/v1/media/${id}/file`;
541
+ const send = async () => {
542
+ const csrf = await this.ensureCsrfToken();
543
+ const headers = {};
544
+ if (csrf) headers["x-csrf-token"] = csrf;
545
+ return fetch(url, {
546
+ method: "PUT",
547
+ headers,
548
+ credentials: "include",
549
+ body: formData
550
+ });
551
+ };
552
+ let response = await send();
553
+ if (response.status === 401) {
554
+ await this.refreshTokens();
555
+ response = await send();
556
+ }
557
+ if (response.status === 403) {
558
+ if ((await response.clone().json().catch(() => ({}))).error === "CSRF_TOKEN_INVALID") {
559
+ await this.ensureCsrfToken(true);
560
+ response = await send();
561
+ }
562
+ }
563
+ if (!response.ok) {
564
+ const error = await response.json().catch(() => ({ error: `Replace failed: ${response.status}` }));
565
+ throw new Error(error.error ?? `Replace failed: ${response.status}`);
566
+ }
567
+ return response.json();
568
+ }
541
569
  async deleteMedia(id) {
542
570
  await this.request("DELETE", `/api/v1/media/${id}`);
543
571
  }
@@ -718,14 +746,16 @@ var en_exports = /* @__PURE__ */ __exportAll({
718
746
  helpTabs: () => helpTabs,
719
747
  layout: () => layout,
720
748
  login: () => login,
749
+ logs: () => logs,
721
750
  media: () => media,
722
- operations: () => operations,
751
+ menus: () => menus,
723
752
  plugins: () => plugins,
724
753
  resources: () => resources,
725
754
  screenOptions: () => screenOptions,
726
755
  settings: () => settings,
727
756
  themes: () => themes,
728
- users: () => users
757
+ users: () => users,
758
+ webhooks: () => webhooks
729
759
  });
730
760
  var layout = {
731
761
  "appName": "OkCMS",
@@ -735,6 +765,7 @@ var layout = {
735
765
  "content": "Content",
736
766
  "media": "Media",
737
767
  "users": "Users",
768
+ "menus": "Menus",
738
769
  "settings": "Settings",
739
770
  "plugins": "Plugins",
740
771
  "themes": "Themes"
@@ -873,6 +904,7 @@ var content = {
873
904
  "choose": "Choose a taxonomy from the content menu.",
874
905
  "notFound": "Taxonomy not found.",
875
906
  "addTerm": "Add new term",
907
+ "editTerm": "Edit term",
876
908
  "name": "Name",
877
909
  "slug": "Slug",
878
910
  "description": "Description",
@@ -911,20 +943,28 @@ var media = {
911
943
  "empty": "No files yet. Upload the first one!",
912
944
  "details": {
913
945
  "title": "Details",
946
+ "titleField": "Title",
914
947
  "file": "File",
915
948
  "type": "Type",
916
949
  "size": "Size",
950
+ "dimensions": "Dimensions",
951
+ "uploaded": "Uploaded",
917
952
  "url": "URL",
918
953
  "copy": "Copy",
919
954
  "alt": "Alt text",
920
955
  "caption": "Caption",
956
+ "description": "Description",
921
957
  "save": "Save details",
958
+ "replace": "Replace file",
959
+ "replacing": "Replacing…",
960
+ "replaceHint": "Keeps this attachment and its metadata.",
922
961
  "delete": "Delete",
923
962
  "close": "Close",
924
963
  "confirmDelete": "Delete \"{filename}\"? The file will be removed from disk.",
925
964
  "saved": "Details saved ✓",
926
965
  "copied": "URL copied ✓",
927
- "copyError": "Could not copy URL"
966
+ "copyError": "Could not copy URL",
967
+ "replaced": "File replaced ✓"
928
968
  },
929
969
  "toasts": { "uploaded": "{count} file(s) uploaded ✓" }
930
970
  };
@@ -1120,7 +1160,13 @@ var settings = {
1120
1160
  "title": "Field groups",
1121
1161
  "new": "New field group",
1122
1162
  "empty": "No custom field groups yet.",
1163
+ "emptyHint": "Create your first group to start modelling your content.",
1164
+ "search": "Search groups…",
1165
+ "groupName": "Group",
1166
+ "status": "Status",
1123
1167
  "fields": "fields",
1168
+ "appliesTo": "Applies to",
1169
+ "allContentTypes": "All content types",
1124
1170
  "edit": "Edit",
1125
1171
  "active": "Active",
1126
1172
  "inactive": "Inactive"
@@ -1130,6 +1176,31 @@ var settings = {
1130
1176
  "editTitle": "Edit field group",
1131
1177
  "title": "Group name",
1132
1178
  "titlePlaceholder": "Example: Product details",
1179
+ "backToGroups": "Back to groups",
1180
+ "editorEyebrow": "Field builder",
1181
+ "groupTitleHint": "This name identifies the field set inside the content editor.",
1182
+ "fieldsTitle": "Fields",
1183
+ "fieldsDescription": "Add, configure and order fields. Use the six-dot handle to drag without losing their position.",
1184
+ "noFields": "This group has no fields yet.",
1185
+ "settingsTitle": "Group settings",
1186
+ "settingsDescription": "Presentation and panel visibility options, like ACF.",
1187
+ "description": "Description",
1188
+ "labelPlacement": "Label placement",
1189
+ "instructionPlacement": "Instruction placement",
1190
+ "menuOrder": "Menu order",
1191
+ "hideOnScreen": "Hide on edit screen",
1192
+ "hide": {
1193
+ "permalink": "Permalink",
1194
+ "content": "Content editor",
1195
+ "excerpt": "Excerpt",
1196
+ "featured_image": "Featured image",
1197
+ "author": "Author",
1198
+ "revisions": "Revisions",
1199
+ "comments": "Comments"
1200
+ },
1201
+ "assignTitle": "Location",
1202
+ "assignDescription": "Choose the content type where this field group will be available.",
1203
+ "contentType": "Content type",
1133
1204
  "position": "Position",
1134
1205
  "positions": {
1135
1206
  "normal": "Normal",
@@ -1162,6 +1233,106 @@ var settings = {
1162
1233
  "saved": "Field group saved.",
1163
1234
  "deleted": "Field group deleted."
1164
1235
  },
1236
+ "listEyebrow": "Content structure",
1237
+ "fieldSettings": {
1238
+ "general": "General",
1239
+ "fieldLabel": "Field label",
1240
+ "fieldName": "Field name",
1241
+ "instructions": "Instructions",
1242
+ "required": "Required",
1243
+ "defaultValue": "Default value",
1244
+ "placeholder": "Placeholder",
1245
+ "presentation": "Presentation",
1246
+ "wrapperWidth": "Wrapper width (%)",
1247
+ "labelPlacement": "Label",
1248
+ "instructionPlacement": "Instructions",
1249
+ "top": "Above",
1250
+ "left": "Left",
1251
+ "above": "Before field",
1252
+ "below": "After field",
1253
+ "textSettings": "Text",
1254
+ "prepend": "Prepend",
1255
+ "append": "Append",
1256
+ "minLength": "Minimum length",
1257
+ "maxLength": "Maximum length",
1258
+ "rows": "Rows",
1259
+ "newLines": "New lines",
1260
+ "wpautop": "Automatic paragraphs",
1261
+ "none": "None",
1262
+ "numberSettings": "Number",
1263
+ "min": "Minimum",
1264
+ "max": "Maximum",
1265
+ "step": "Step",
1266
+ "choiceSettings": "Choices",
1267
+ "choices": "Choices",
1268
+ "layout": "Layout",
1269
+ "vertical": "Vertical",
1270
+ "horizontal": "Horizontal",
1271
+ "multiple": "Multiple choice",
1272
+ "allowNull": "Allow empty",
1273
+ "mediaSettings": "Media",
1274
+ "returnFormat": "Return format",
1275
+ "array": "Array",
1276
+ "id": "ID",
1277
+ "previewSize": "Preview size",
1278
+ "library": "Library",
1279
+ "all": "All",
1280
+ "uploadedToPost": "Uploaded to this post",
1281
+ "allowedTypes": "Allowed types",
1282
+ "minWidth": "Minimum width",
1283
+ "maxWidth": "Maximum width",
1284
+ "minHeight": "Minimum height",
1285
+ "maxHeight": "Maximum height",
1286
+ "wysiwygSettings": "WYSIWYG",
1287
+ "tabs": "Tabs",
1288
+ "toolbar": "Toolbar",
1289
+ "mediaUpload": "Allow media upload",
1290
+ "dateSettings": "Date and time",
1291
+ "displayFormat": "Display format",
1292
+ "firstDay": "First day",
1293
+ "colorSettings": "Color",
1294
+ "enableOpacity": "Allow opacity",
1295
+ "mapSettings": "Map",
1296
+ "center": "Center",
1297
+ "zoom": "Zoom",
1298
+ "height": "Height",
1299
+ "relationSettings": "Relationship",
1300
+ "postType": "Post type",
1301
+ "taxonomy": "Taxonomy",
1302
+ "booleanSettings": "True/False",
1303
+ "message": "Message",
1304
+ "defaultChecked": "Checked by default",
1305
+ "linkSettings": "Link",
1306
+ "cloneSettings": "Clone",
1307
+ "cloneFields": "Fields to clone",
1308
+ "cloneHint": "One field name per line",
1309
+ "containerSettings": "Structure",
1310
+ "buttonLabel": "Button label",
1311
+ "collapsed": "Collapsed row title field",
1312
+ "subFields": "Subfields",
1313
+ "layouts": "Layouts",
1314
+ "addLayout": "Add layout",
1315
+ "newLayout": "New layout",
1316
+ "layoutName": "Layout name",
1317
+ "layoutLabel": "Layout label",
1318
+ "layoutDisplay": "Layout display",
1319
+ "conditionalLogic": "Conditional logic",
1320
+ "conditionalHint": "Show this field only when the rules match.",
1321
+ "chooseField": "Choose a field",
1322
+ "conditionValue": "Value",
1323
+ "addCondition": "Add condition",
1324
+ "addConditionGroup": "Add OR group",
1325
+ "conditionsAnd": "Conditions in this group use AND.",
1326
+ "operators": {
1327
+ "eq": "equals",
1328
+ "neq": "does not equal",
1329
+ "gt": "is greater than",
1330
+ "lt": "is less than",
1331
+ "contains": "contains",
1332
+ "hasAny": "has any value",
1333
+ "hasNone": "is empty"
1334
+ }
1335
+ },
1165
1336
  "actions": {
1166
1337
  "delete": "Delete",
1167
1338
  "confirmDelete": "Delete this field group?"
@@ -1170,6 +1341,65 @@ var settings = {
1170
1341
  "loadError": "Could not load custom fields."
1171
1342
  }
1172
1343
  };
1344
+ var menus = {
1345
+ "title": "Menus",
1346
+ "description": "Create and manage the navigation menus used by your site.",
1347
+ "hint": "Menus are independent from content types and can be rendered by your theme.",
1348
+ "new": "New menu",
1349
+ "create": "Create menu",
1350
+ "edit": "Edit menu",
1351
+ "name": "Name",
1352
+ "slug": "Slug",
1353
+ "items": "Items",
1354
+ "back": "Back to menus",
1355
+ "nameRequired": "Enter a menu name.",
1356
+ "editor": {
1357
+ "eyebrow": "Navigation structure",
1358
+ "addItems": "Add menu items",
1359
+ "search": "Search…",
1360
+ "addSelected": "Add selected",
1361
+ "addToMenu": "Add to menu",
1362
+ "structure": "Menu structure",
1363
+ "structureHint": "Drag items to reorder. Use the arrows to create nested submenus.",
1364
+ "empty": "Add items from the panels on the left.",
1365
+ "emptyLevel": "No submenu items.",
1366
+ "drag": "Drag to reorder",
1367
+ "untitled": "Untitled item",
1368
+ "noUrl": "No URL",
1369
+ "up": "Move up",
1370
+ "down": "Move down",
1371
+ "indent": "Make submenu",
1372
+ "outdent": "Move to parent level",
1373
+ "itemSettings": "Item settings",
1374
+ "navigationLabel": "Navigation label",
1375
+ "url": "URL",
1376
+ "titleAttribute": "Title attribute",
1377
+ "cssClasses": "CSS classes",
1378
+ "target": "Open link in",
1379
+ "sameWindow": "Same window",
1380
+ "newWindow": "New window",
1381
+ "xfn": "Link relationship (XFN)",
1382
+ "description": "Description",
1383
+ "remove": "Remove",
1384
+ "settings": "Menu settings",
1385
+ "autoAddPages": "Automatically add new top-level pages to this menu",
1386
+ "autoAddPagesHint": "This setting is saved with the menu and can be used by the active theme."
1387
+ },
1388
+ "sources": {
1389
+ "pages": "Pages",
1390
+ "posts": "Posts",
1391
+ "custom": "Custom Links",
1392
+ "customHint": "Add any internal or external URL.",
1393
+ "home": "Home",
1394
+ "contentTypes": "Content type items",
1395
+ "archives": "Content type archives",
1396
+ "taxonomies": "Taxonomy terms"
1397
+ },
1398
+ "saved": "Menu saved.",
1399
+ "deleted": "Menu deleted.",
1400
+ "empty": "No menus yet.",
1401
+ "confirmDelete": "Delete menu \"{name}\"?"
1402
+ };
1173
1403
  var resources = {
1174
1404
  "title": "Content Resources",
1175
1405
  "description": "Description",
@@ -1202,20 +1432,65 @@ var access = {
1202
1432
  "permissions": "Permissions (comma separated)",
1203
1433
  "domain": "Domain"
1204
1434
  };
1205
- var operations = {
1206
- "title": "Operations",
1207
- "description": "Manage webhooks, builds, deployments and events.",
1208
- "webhooks": "Webhooks",
1435
+ var logs = {
1436
+ "title": "Logs",
1437
+ "description": "Complete audit history of actions performed in the CMS.",
1438
+ "retentionTitle": "Log retention",
1439
+ "retentionDescription": "Logs older than this period are removed automatically.",
1440
+ "retentionDays": "Keep logs for (days)",
1441
+ "retentionSaved": "Log retention updated.",
1442
+ "historyTitle": "Audit history",
1443
+ "actionFilter": "Filter by action",
1444
+ "resourceFilter": "Filter by resource",
1445
+ "loading": "Loading logs…",
1446
+ "empty": "No actions recorded yet.",
1447
+ "system": "System",
1448
+ "columns": {
1449
+ "date": "Date",
1450
+ "action": "Action",
1451
+ "resource": "Resource",
1452
+ "user": "User",
1453
+ "status": "Status",
1454
+ "ip": "IP"
1455
+ }
1456
+ };
1457
+ var webhooks = {
1458
+ "title": "Webhooks",
1459
+ "description": "Send CMS events to external services with configurable authentication.",
1460
+ "listTitle": "Configured webhooks",
1461
+ "new": "New webhook",
1462
+ "create": "Create webhook",
1463
+ "edit": "Edit webhook",
1464
+ "url": "Endpoint URL",
1209
1465
  "events": "Events",
1210
- "secret": "Secret",
1211
- "builds": "Builds",
1212
- "deployments": "Deployments",
1213
- "createBuild": "Create build",
1214
- "deploy": "Deploy"
1466
+ "selectEvents": "Select one or more events",
1467
+ "searchEvents": "Search events…",
1468
+ "noEvents": "No events found.",
1469
+ "eventsRequired": "Select at least one event.",
1470
+ "authentication": "Authentication",
1471
+ "active": "Active",
1472
+ "token": "Bearer token",
1473
+ "username": "Username",
1474
+ "password": "Password",
1475
+ "headerName": "Header name",
1476
+ "apiKeyValue": "API key value",
1477
+ "secret": "HMAC secret",
1478
+ "signatureHeader": "Signature header",
1479
+ "keepExisting": "Leave blank to keep current value",
1480
+ "loading": "Loading webhooks…",
1481
+ "empty": "No webhooks configured.",
1482
+ "auth": {
1483
+ "none": "None",
1484
+ "bearer": "Bearer token",
1485
+ "basic": "Basic authentication",
1486
+ "apiKey": "API key",
1487
+ "hmac_sha256": "HMAC SHA-256"
1488
+ }
1215
1489
  };
1216
1490
  var plugins = {
1217
1491
  "title": "Plugins",
1218
1492
  "description": "Manage installed plugins.",
1493
+ "directoryHint": "Detected automatically from the project's plugins/ directory. Use the CLI or deploy files to add extensions.",
1219
1494
  "columns": {
1220
1495
  "name": "Name",
1221
1496
  "version": "Version",
@@ -1245,6 +1520,7 @@ var plugins = {
1245
1520
  var themes = {
1246
1521
  "title": "Themes",
1247
1522
  "description": "Manage installed themes.",
1523
+ "directoryHint": "Detected automatically from the project's themes/ directory. Use the CLI or deploy files to add themes.",
1248
1524
  "version": "Version",
1249
1525
  "active": "Active",
1250
1526
  "status": {
@@ -1310,7 +1586,9 @@ var common = {
1310
1586
  "archived": "Archived",
1311
1587
  "locked": "Locked"
1312
1588
  },
1313
- "language": "Language"
1589
+ "language": "Language",
1590
+ "refresh": "Refresh",
1591
+ "actions": "Actions"
1314
1592
  };
1315
1593
  var activity = {
1316
1594
  "justNow": "just now",
@@ -1368,9 +1646,11 @@ var en_default = {
1368
1646
  media,
1369
1647
  users,
1370
1648
  settings,
1649
+ menus,
1371
1650
  resources,
1372
1651
  access,
1373
- operations,
1652
+ logs,
1653
+ webhooks,
1374
1654
  plugins,
1375
1655
  themes,
1376
1656
  login,