@oktis-works/admin 0.4.19 → 0.4.22

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 (136) hide show
  1. package/dist/client/_astro/ActivityWidget.DPHDSR70.js +16 -0
  2. package/dist/client/_astro/AdminBar.Cfe6Btfm.js +253 -0
  3. package/dist/client/_astro/{AtGlanceWidget.B1bDhxvN.js → AtGlanceWidget.BdmMxHd5.js} +3 -3
  4. package/dist/client/_astro/{BaseLayout.Y8xW22CP.css → BaseLayout.DZs74Ly2.css} +1 -1
  5. package/dist/client/_astro/ContentEditor.C0QRayGL.js +3 -0
  6. package/dist/client/_astro/ContentEditor.DI_TzQ3t.js +1 -0
  7. package/dist/client/_astro/ContentTypeWorkspace.C-17fiDL.js +1 -0
  8. package/dist/client/_astro/CustomFieldsManager.DWfyFNKg.js +3 -0
  9. package/dist/client/_astro/DashboardHome.DogWw0Mx.js +1 -0
  10. package/dist/client/_astro/DashboardLayout.astro_astro_type_script_index_0_lang.CKDcT5kP.js +1 -0
  11. package/dist/client/_astro/DashboardLayout.cOPI1C7I.css +1 -0
  12. package/dist/client/_astro/{Footer.BqzSGnHm.js → Footer.CIzMoBJk.js} +2 -2
  13. package/dist/client/_astro/GeneralSettings.XVjUJxtp.js +1 -0
  14. package/dist/client/_astro/LogsManager.Dj9eegoH.js +1 -0
  15. package/dist/client/_astro/MediaLibrary.DFdil0q8.js +1 -0
  16. package/dist/client/_astro/MenuManager.CInlK214.js +19 -0
  17. package/dist/client/_astro/PluginManager.D65lPRrH.js +98 -0
  18. package/dist/client/_astro/PostTypesManager.dsx3ybTa.js +1 -0
  19. package/dist/client/_astro/QuickDraftWidget.DYsI_PJ5.js +17 -0
  20. package/dist/client/_astro/ResourceHubs.C3EJHpe7.js +1 -0
  21. package/dist/client/_astro/TaxonomiesManager.BYcDeL3s.js +1 -0
  22. package/dist/client/_astro/TaxonomyTermsManager.DLD_SWSE.js +1 -0
  23. package/dist/client/_astro/ThemeManager.CuhjguCi.js +129 -0
  24. package/dist/client/_astro/UserCreateForm.YrvnokVf.js +1 -0
  25. package/dist/client/_astro/UsersManager.BWkuqIyw.js +1 -0
  26. package/dist/client/_astro/WebhooksManager.BLy6DI8f.js +1 -0
  27. package/dist/client/_astro/api.DSW9LMA5.js +1 -0
  28. package/dist/client/_astro/ar.9BcNkJMI.js +1 -0
  29. package/dist/client/_astro/custom-fields.XYcte01g.css +1 -0
  30. package/dist/client/_astro/dist.Di6E6ZlC.js +1 -0
  31. package/dist/client/_astro/es-ES.DgqDFCmG.js +1 -0
  32. package/dist/client/_astro/extensions.BbGSgyUX.js +1 -0
  33. package/dist/client/_astro/he.11dIJHQw.js +1 -0
  34. package/dist/client/_astro/i18n.Ck_XVuPY.js +1 -0
  35. package/dist/client/_astro/it.yCdgk3Xj.js +1 -0
  36. package/dist/client/_astro/ja.BIm7Hwe_.js +1 -0
  37. package/dist/client/_astro/{login.astro_astro_type_script_index_0_lang.BPE3sVZJ.js → login.astro_astro_type_script_index_0_lang.DHHzJWgm.js} +1 -1
  38. package/dist/client/_astro/lucide.DlU56wZ1.js +4 -0
  39. package/dist/client/_astro/pl.dUwrcITB.js +1 -0
  40. package/dist/client/_astro/pt-BR.BNlZx8-w.js +1 -0
  41. package/dist/client/_astro/rolldown-runtime.BpQH8Ho1.js +1 -0
  42. package/dist/client/_astro/ru.lmDiQaSu.js +1 -0
  43. package/dist/client/_astro/sw._qHdoFbp.js +1 -0
  44. package/dist/client/_astro/tr.Do-lr98T.js +1 -0
  45. package/dist/client/_astro/uk.DTUX-N1c.js +1 -0
  46. package/dist/client/_astro/{version.Cwfv80ER.js → version.DPFOQ4hp.js} +1 -1
  47. package/dist/client/_astro/yo.BIYG0J7I.js +1 -0
  48. package/dist/client/_astro/zh-CN.C7Iod1E1.js +1 -0
  49. package/dist/server/chunks/{ContentEditor_CxZJjeXR.mjs → ContentEditor_Dat_38Nz.mjs} +17 -30
  50. package/dist/server/chunks/{DashboardLayout_DCIiRkcO.mjs → DashboardLayout_DsYrIyKK.mjs} +18 -18
  51. package/dist/server/chunks/{MediaLibrary_azhfNs4N.mjs → MediaLibrary_BmYgO6Lm.mjs} +2 -2
  52. package/dist/server/chunks/{_slug__BEfbBGa_.mjs → _slug__MPfKFp1f.mjs} +1 -1
  53. package/dist/server/chunks/access_dvh8pEEF.mjs +138 -0
  54. package/dist/server/chunks/{ar_B0LfQbpu.mjs → ar_DlCzOUGe.mjs} +22 -2
  55. package/dist/server/chunks/{custom-fields_DI9f2Pqi.mjs → custom-fields_Dp_CVTYc.mjs} +110 -7
  56. package/dist/server/chunks/{edit_3GtD2cva.mjs → edit_BaSFaTjX.mjs} +12 -12
  57. package/dist/server/chunks/{es-ES_dBEm2FNw.mjs → es-ES_DD40B9Zr.mjs} +22 -2
  58. package/dist/server/chunks/{general_CbiPNS7I.mjs → general_CWkM-QPS.mjs} +2 -2
  59. package/dist/server/chunks/{he_DRWoI1A5.mjs → he_8WSAyM_S.mjs} +22 -2
  60. package/dist/server/chunks/{i18n_DIBvEjfq.mjs → i18n_BJJWXenY.mjs} +133 -57
  61. package/dist/server/chunks/{index_BcV8TVEC.mjs → index_1F1_RTJb.mjs} +2 -2
  62. package/dist/server/chunks/{index_kTsjYnf7.mjs → index_B4nb6VH_.mjs} +5 -5
  63. package/dist/server/chunks/{index_CTJw_OsD.mjs → index_Bck2SDPK.mjs} +2 -2
  64. package/dist/server/chunks/{index_C3amWOJX.mjs → index_DA7KSBNI.mjs} +1 -1
  65. package/dist/server/chunks/{index_BZJqnzEO.mjs → index_DCsZz61C.mjs} +89 -44
  66. package/dist/server/chunks/{it_BDY3lerP.mjs → it_DEDC6yxf.mjs} +22 -2
  67. package/dist/server/chunks/{ja_C-EybQiV.mjs → ja_BRQi6rW3.mjs} +22 -2
  68. package/dist/server/chunks/{login_D-Z6bo6E.mjs → login_DnB1gNqL.mjs} +1 -1
  69. package/dist/server/chunks/logs_BArVlSoG.mjs +160 -0
  70. package/dist/server/chunks/menus_CYoSRDEL.mjs +170 -0
  71. package/dist/server/chunks/{new_Dg9ykZGm.mjs → new_CSaDDm4Z.mjs} +12 -12
  72. package/dist/server/chunks/{new_uLMmBd95.mjs → new_D4KZk7Yr.mjs} +2 -2
  73. package/dist/server/chunks/{pl_DH5LKmVG.mjs → pl_CKanAk0F.mjs} +22 -2
  74. package/dist/server/chunks/plugins_Rnyim3HN.mjs +133 -0
  75. package/dist/server/chunks/{post-types_g7oMw8xZ.mjs → post-types_B9aran6P.mjs} +40 -14
  76. package/dist/server/chunks/{pt-BR_BM0FS26r.mjs → pt-BR_C4s8qQI4.mjs} +97 -13
  77. package/dist/server/chunks/{ru_CFa1xYFr.mjs → ru_CuNXt2MB.mjs} +22 -2
  78. package/dist/server/chunks/{sw_QZf7NSsI.mjs → sw_RLMWPkos.mjs} +22 -2
  79. package/dist/server/chunks/{taxonomies_CX8h73Lt.mjs → taxonomies_BoQfQyXo.mjs} +2 -2
  80. package/dist/server/chunks/{taxonomy_D8om_RNg.mjs → taxonomy_IQtZsy_i.mjs} +39 -24
  81. package/dist/server/chunks/themes_DbXTXyPr.mjs +132 -0
  82. package/dist/server/chunks/{tr_Fjry5R-K.mjs → tr_Dz8pqyTZ.mjs} +22 -2
  83. package/dist/server/chunks/{uk_Bxc3qY45.mjs → uk_BjwqlweA.mjs} +22 -2
  84. package/dist/server/chunks/{upload_r2qJskLo.mjs → upload_DFhwOXyV.mjs} +2 -2
  85. package/dist/server/chunks/webhooks_rjPh4g3b.mjs +217 -0
  86. package/dist/server/chunks/{yo_BARL-Qrh.mjs → yo_Dv14KWVR.mjs} +22 -2
  87. package/dist/server/chunks/{zh-CN_CkjPJL88.mjs → zh-CN_DjIZCWzG.mjs} +22 -2
  88. package/dist/server/entry.mjs +152 -101
  89. package/dist/server/virtual_astro_middleware.mjs +1 -1
  90. package/package.json +6 -5
  91. package/dist/client/_astro/ActivityWidget.DGLCPDgH.js +0 -16
  92. package/dist/client/_astro/AdminBar.Cj9iKizr.js +0 -253
  93. package/dist/client/_astro/ContentEditor.SP4PO6Pb.js +0 -3
  94. package/dist/client/_astro/ContentList.o2zVu57t.js +0 -1
  95. package/dist/client/_astro/CustomFieldsManager.CvWD3R1q.js +0 -3
  96. package/dist/client/_astro/DashboardHome.DnCbpnkg.js +0 -1
  97. package/dist/client/_astro/DashboardLayout.BOoRKX4v.css +0 -1
  98. package/dist/client/_astro/DashboardLayout.astro_astro_type_script_index_0_lang.7Kcbf7KO.js +0 -1
  99. package/dist/client/_astro/FieldTypePicker.Cyfzqug-.js +0 -1
  100. package/dist/client/_astro/GeneralSettings.Ditcyy4b.js +0 -1
  101. package/dist/client/_astro/MediaLibrary.qzwN-LI5.js +0 -1
  102. package/dist/client/_astro/PluginManager.DEkeX_0Z.js +0 -93
  103. package/dist/client/_astro/PostTypesManager.CGYbeXgb.js +0 -1
  104. package/dist/client/_astro/QuickDraftWidget.xoJjOM58.js +0 -17
  105. package/dist/client/_astro/ResourceHubs.BHlRlPvI.js +0 -1
  106. package/dist/client/_astro/TaxonomiesManager.DKQAGS8n.js +0 -1
  107. package/dist/client/_astro/TaxonomyTermsManager.CyB7XH-D.js +0 -1
  108. package/dist/client/_astro/ThemeManager.BBKCx5pa.js +0 -129
  109. package/dist/client/_astro/UserCreateForm.BDsHkQYW.js +0 -1
  110. package/dist/client/_astro/UsersManager.DeQ4uL3a.js +0 -1
  111. package/dist/client/_astro/api.DD5u5p4h.js +0 -1
  112. package/dist/client/_astro/ar.CwC9hXB9.js +0 -1
  113. package/dist/client/_astro/custom-fields.IjuRIdAC.css +0 -1
  114. package/dist/client/_astro/es-ES.qNcd-cVX.js +0 -1
  115. package/dist/client/_astro/extensions.DLE6XtMB.js +0 -1
  116. package/dist/client/_astro/he.DfZ0ZzM-.js +0 -1
  117. package/dist/client/_astro/i18n.JWFhLjfn.js +0 -1
  118. package/dist/client/_astro/it.PFmLQj2s.js +0 -1
  119. package/dist/client/_astro/ja.CMi5cD8g.js +0 -1
  120. package/dist/client/_astro/pl.CRExzLlj.js +0 -1
  121. package/dist/client/_astro/pt-BR.CGjPpous.js +0 -1
  122. package/dist/client/_astro/ru.CWV-tkZ3.js +0 -1
  123. package/dist/client/_astro/src.lFTwiz1W.js +0 -1
  124. package/dist/client/_astro/sw.B5x6GU4s.js +0 -1
  125. package/dist/client/_astro/tr.BzxCGQu8.js +0 -1
  126. package/dist/client/_astro/uk.DJHMwNRU.js +0 -1
  127. package/dist/client/_astro/yo.DNw_hOnW.js +0 -1
  128. package/dist/client/_astro/zh-CN.Bs7H6Unx.js +0 -1
  129. package/dist/server/chunks/FieldTypePicker_CXwpmcQ3.mjs +0 -79
  130. package/dist/server/chunks/ResourceHubs_BJMX1AJR.mjs +0 -453
  131. package/dist/server/chunks/access_DNxcWCO1.mjs +0 -34
  132. package/dist/server/chunks/operations_vnv5cnws.mjs +0 -34
  133. package/dist/server/chunks/plugins_pNXwbZGI.mjs +0 -156
  134. package/dist/server/chunks/resources_DhbyXd_o.mjs +0 -34
  135. package/dist/server/chunks/themes_JX5WVf2J.mjs +0 -155
  136. /package/dist/server/chunks/{BaseLayout_m8b8Eemd.mjs → BaseLayout_C_gR8Xx3.mjs} +0 -0
@@ -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_BM0FS26r.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_C4s8qQI4.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);
@@ -168,6 +168,19 @@ var ApiClient = class {
168
168
  async getAuditLogs(limit = 8) {
169
169
  return this.request("GET", `/api/v1/audit-logs?limit=${limit}`);
170
170
  }
171
+ async getAuditLogConfig() {
172
+ return this.request("GET", "/api/v1/audit-logs/config");
173
+ }
174
+ async updateAuditLogConfig(retentionDays) {
175
+ return this.request("PUT", "/api/v1/audit-logs/config", { retentionDays });
176
+ }
177
+ async listAuditLogs(options) {
178
+ const params = new URLSearchParams();
179
+ if (options?.limit) params.set("limit", String(options.limit));
180
+ if (options?.action) params.set("action", options.action);
181
+ if (options?.resourceType) params.set("resourceType", options.resourceType);
182
+ return this.request("GET", `/api/v1/audit-logs?${params.toString()}`);
183
+ }
171
184
  /** Login — o backend seta cookies HttpOnly e CSRF; retorna user + tenantId */
172
185
  async login(input) {
173
186
  await this.ensureCsrfToken();
@@ -317,6 +330,10 @@ var ApiClient = class {
317
330
  async getContentById(id) {
318
331
  return this.request("GET", `/api/v1/content/${id}`);
319
332
  }
333
+ async getSingletonContent(type) {
334
+ const response = await this.request("GET", `/api/v1/content/singleton/${encodeURIComponent(type)}`);
335
+ return "content" in response ? response.content : response;
336
+ }
320
337
  async createContent(data) {
321
338
  return this.request("POST", `/api/v1/content`, data);
322
339
  }
@@ -442,6 +459,9 @@ var ApiClient = class {
442
459
  async getWebhooks() {
443
460
  return this.request("GET", "/api/v1/webhooks");
444
461
  }
462
+ async getWebhookEvents() {
463
+ return (await this.request("GET", "/api/v1/webhooks/events")).data;
464
+ }
445
465
  async createWebhook(data) {
446
466
  return this.request("POST", "/api/v1/webhooks", data);
447
467
  }
@@ -451,36 +471,6 @@ var ApiClient = class {
451
471
  async deleteWebhook(id) {
452
472
  await this.request("DELETE", `/api/v1/webhooks/${id}`);
453
473
  }
454
- async getBuilds(options) {
455
- const params = new URLSearchParams();
456
- if (options?.page) params.set("page", String(options.page));
457
- if (options?.limit) params.set("limit", String(options.limit));
458
- if (options?.status) params.set("status", options.status);
459
- return this.request("GET", `/api/v1/builds?${params.toString()}`);
460
- }
461
- async createBuild(data) {
462
- return this.request("POST", "/api/v1/builds", data);
463
- }
464
- async getDeployments(options) {
465
- const params = new URLSearchParams();
466
- if (options?.page) params.set("page", String(options.page));
467
- if (options?.limit) params.set("limit", String(options.limit));
468
- if (options?.status) params.set("status", options.status);
469
- return this.request("GET", `/api/v1/deployments?${params.toString()}`);
470
- }
471
- async createDeployment(data) {
472
- return this.request("POST", "/api/v1/deployments", data);
473
- }
474
- async rollbackDeployment(id, rollbackToId) {
475
- return this.request("POST", `/api/v1/deployments/${id}/rollback`, { rollbackToId });
476
- }
477
- async getEvents(options) {
478
- const params = new URLSearchParams();
479
- if (options?.page) params.set("page", String(options.page));
480
- if (options?.limit) params.set("limit", String(options.limit));
481
- if (options?.type) params.set("type", options.type);
482
- return this.request("GET", `/api/v1/events?${params.toString()}`);
483
- }
484
474
  async listMedia(options) {
485
475
  const params = new URLSearchParams();
486
476
  if (options?.page) params.set("page", String(options.page));
@@ -714,14 +704,16 @@ var en_exports = /* @__PURE__ */ __exportAll({
714
704
  helpTabs: () => helpTabs,
715
705
  layout: () => layout,
716
706
  login: () => login,
707
+ logs: () => logs,
717
708
  media: () => media,
718
- operations: () => operations,
709
+ menus: () => menus,
719
710
  plugins: () => plugins,
720
711
  resources: () => resources,
721
712
  screenOptions: () => screenOptions,
722
713
  settings: () => settings,
723
714
  themes: () => themes,
724
- users: () => users
715
+ users: () => users,
716
+ webhooks: () => webhooks
725
717
  });
726
718
  var layout = {
727
719
  "appName": "OkCMS",
@@ -731,6 +723,7 @@ var layout = {
731
723
  "content": "Content",
732
724
  "media": "Media",
733
725
  "users": "Users",
726
+ "menus": "Menus",
734
727
  "settings": "Settings",
735
728
  "plugins": "Plugins",
736
729
  "themes": "Themes"
@@ -795,6 +788,7 @@ var content = {
795
788
  "list": {
796
789
  "title": "Content",
797
790
  "description": "Search, filter, edit and publish your content.",
791
+ "typeNotFound": "This content type was not found.",
798
792
  "columns": {
799
793
  "title": "Title",
800
794
  "type": "Type",
@@ -868,6 +862,7 @@ var content = {
868
862
  "choose": "Choose a taxonomy from the content menu.",
869
863
  "notFound": "Taxonomy not found.",
870
864
  "addTerm": "Add new term",
865
+ "editTerm": "Edit term",
871
866
  "name": "Name",
872
867
  "slug": "Slug",
873
868
  "description": "Description",
@@ -1015,6 +1010,12 @@ var settings = {
1015
1010
  "revisions": "Revisions"
1016
1011
  },
1017
1012
  "hasArchive": "Has public archive (/slug)",
1013
+ "singleton": "Singleton (only one content entry)",
1014
+ "icon": "Sidebar icon (Lucide name)",
1015
+ "iconHint": "Examples: box, package, shopping-bag, file-text",
1016
+ "editTitle": "Edit Content Type",
1017
+ "update": "Update",
1018
+ "cancel": "Cancel",
1018
1019
  "create": "Create"
1019
1020
  },
1020
1021
  "table": {
@@ -1024,7 +1025,14 @@ var settings = {
1024
1025
  "source": "Source",
1025
1026
  "supports": "Supports",
1026
1027
  "archive": "Archive",
1027
- "actions": { "remove": "Remove" }
1028
+ "mode": "Mode",
1029
+ "singleton": "Singleton",
1030
+ "collection": "Collection",
1031
+ "icon": "Icon",
1032
+ "actions": {
1033
+ "edit": "Edit",
1034
+ "remove": "Remove"
1035
+ }
1028
1036
  },
1029
1037
  "sources": {
1030
1038
  "admin": "Admin",
@@ -1103,6 +1111,8 @@ var settings = {
1103
1111
  "new": "New field group",
1104
1112
  "empty": "No custom field groups yet.",
1105
1113
  "fields": "fields",
1114
+ "appliesTo": "Applies to",
1115
+ "allContentTypes": "All content types",
1106
1116
  "edit": "Edit",
1107
1117
  "active": "Active",
1108
1118
  "inactive": "Inactive"
@@ -1112,6 +1122,9 @@ var settings = {
1112
1122
  "editTitle": "Edit field group",
1113
1123
  "title": "Group name",
1114
1124
  "titlePlaceholder": "Example: Product details",
1125
+ "assignTitle": "Location",
1126
+ "assignDescription": "Choose the content type where this field group will be available.",
1127
+ "contentType": "Content type",
1115
1128
  "position": "Position",
1116
1129
  "positions": {
1117
1130
  "normal": "Normal",
@@ -1152,6 +1165,23 @@ var settings = {
1152
1165
  "loadError": "Could not load custom fields."
1153
1166
  }
1154
1167
  };
1168
+ var menus = {
1169
+ "title": "Menus",
1170
+ "description": "Create and manage the navigation menus used by your site.",
1171
+ "hint": "Menus are independent from content types and can be rendered by your theme.",
1172
+ "new": "New menu",
1173
+ "create": "Create menu",
1174
+ "edit": "Edit menu",
1175
+ "name": "Name",
1176
+ "slug": "Slug",
1177
+ "items": "Menu items (JSON)",
1178
+ "itemsHint": "Use an array of menu item objects. Your theme controls how they are rendered.",
1179
+ "invalidItems": "Menu items must be a valid JSON array.",
1180
+ "saved": "Menu saved.",
1181
+ "deleted": "Menu deleted.",
1182
+ "empty": "No menus yet.",
1183
+ "confirmDelete": "Delete menu \"{name}\"?"
1184
+ };
1155
1185
  var resources = {
1156
1186
  "title": "Content Resources",
1157
1187
  "description": "Description",
@@ -1184,20 +1214,61 @@ var access = {
1184
1214
  "permissions": "Permissions (comma separated)",
1185
1215
  "domain": "Domain"
1186
1216
  };
1187
- var operations = {
1188
- "title": "Operations",
1189
- "description": "Manage webhooks, builds, deployments and events.",
1190
- "webhooks": "Webhooks",
1217
+ var logs = {
1218
+ "title": "Logs",
1219
+ "description": "Complete audit history of actions performed in the CMS.",
1220
+ "retentionTitle": "Log retention",
1221
+ "retentionDescription": "Logs older than this period are removed automatically.",
1222
+ "retentionDays": "Keep logs for (days)",
1223
+ "retentionSaved": "Log retention updated.",
1224
+ "historyTitle": "Audit history",
1225
+ "actionFilter": "Filter by action",
1226
+ "resourceFilter": "Filter by resource",
1227
+ "loading": "Loading logs…",
1228
+ "empty": "No actions recorded yet.",
1229
+ "system": "System",
1230
+ "columns": {
1231
+ "date": "Date",
1232
+ "action": "Action",
1233
+ "resource": "Resource",
1234
+ "user": "User",
1235
+ "status": "Status",
1236
+ "ip": "IP"
1237
+ }
1238
+ };
1239
+ var webhooks = {
1240
+ "title": "Webhooks",
1241
+ "description": "Send CMS events to external services with configurable authentication.",
1242
+ "listTitle": "Configured webhooks",
1243
+ "new": "New webhook",
1244
+ "create": "Create webhook",
1245
+ "edit": "Edit webhook",
1246
+ "url": "Endpoint URL",
1191
1247
  "events": "Events",
1192
- "secret": "Secret",
1193
- "builds": "Builds",
1194
- "deployments": "Deployments",
1195
- "createBuild": "Create build",
1196
- "deploy": "Deploy"
1248
+ "authentication": "Authentication",
1249
+ "active": "Active",
1250
+ "token": "Bearer token",
1251
+ "username": "Username",
1252
+ "password": "Password",
1253
+ "headerName": "Header name",
1254
+ "apiKeyValue": "API key value",
1255
+ "secret": "HMAC secret",
1256
+ "signatureHeader": "Signature header",
1257
+ "keepExisting": "Leave blank to keep current value",
1258
+ "loading": "Loading webhooks…",
1259
+ "empty": "No webhooks configured.",
1260
+ "auth": {
1261
+ "none": "None",
1262
+ "bearer": "Bearer token",
1263
+ "basic": "Basic authentication",
1264
+ "apiKey": "API key",
1265
+ "hmac_sha256": "HMAC SHA-256"
1266
+ }
1197
1267
  };
1198
1268
  var plugins = {
1199
1269
  "title": "Plugins",
1200
1270
  "description": "Manage installed plugins.",
1271
+ "directoryHint": "Detected automatically from the project's plugins/ directory. Use the CLI or deploy files to add extensions.",
1201
1272
  "columns": {
1202
1273
  "name": "Name",
1203
1274
  "version": "Version",
@@ -1227,6 +1298,7 @@ var plugins = {
1227
1298
  var themes = {
1228
1299
  "title": "Themes",
1229
1300
  "description": "Manage installed themes.",
1301
+ "directoryHint": "Detected automatically from the project's themes/ directory. Use the CLI or deploy files to add themes.",
1230
1302
  "version": "Version",
1231
1303
  "active": "Active",
1232
1304
  "status": {
@@ -1292,7 +1364,9 @@ var common = {
1292
1364
  "archived": "Archived",
1293
1365
  "locked": "Locked"
1294
1366
  },
1295
- "language": "Language"
1367
+ "language": "Language",
1368
+ "refresh": "Refresh",
1369
+ "actions": "Actions"
1296
1370
  };
1297
1371
  var activity = {
1298
1372
  "justNow": "just now",
@@ -1350,9 +1424,11 @@ var en_default = {
1350
1424
  media,
1351
1425
  users,
1352
1426
  settings,
1427
+ menus,
1353
1428
  resources,
1354
1429
  access,
1355
- operations,
1430
+ logs,
1431
+ webhooks,
1356
1432
  plugins,
1357
1433
  themes,
1358
1434
  login,
@@ -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_DIBvEjfq.mjs";
5
- import { a as For2, c as Select, f as createSignal, l as Show2, n as Badge, o as Input, p as onMount, r as Button, s as Pagination, t as $$DashboardLayout } from "./DashboardLayout_DCIiRkcO.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BJJWXenY.mjs";
5
+ import { a as For2, c as Select, f as createSignal, l as Show2, n as Badge, o as Input, p as onMount, r as Button, s as Pagination, t as $$DashboardLayout } from "./DashboardLayout_DsYrIyKK.mjs";
6
6
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
7
7
  //#region src/components/apps/users/UsersManager.tsx
8
8
  var _tmpl$ = [
@@ -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_DIBvEjfq.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_DCIiRkcO.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BJJWXenY.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_DsYrIyKK.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
@@ -34,7 +34,7 @@ var _tmpl$3 = [
34
34
  "</p></div><div class=\"card stat-card\"><h3 class=\"stat-label\">",
35
35
  "</h3><p class=\"stat-value\">",
36
36
  "</p></div></div><div class=\"card\"><div class=\"card-header\"><h3>",
37
- "</h3><a href=\"/content\" class=\"btn btn-secondary btn-sm\">",
37
+ "</h3><a href=\"/content/post\" class=\"btn btn-secondary btn-sm\">",
38
38
  "</a></div><!--$-->",
39
39
  "<!--/--></div></div>"
40
40
  ];
@@ -117,7 +117,7 @@ function DashboardHome() {
117
117
  get each() {
118
118
  return recent();
119
119
  },
120
- children: (row) => ssr(_tmpl$5, ssrHydrationKey(), `/content/edit?id=${escape(encodeURIComponent(String(raw(row)["id"] ?? "")), true)}`, escape(String(raw(row)["title"] ?? "—")), escape(String(raw(row)["type"] ?? "—")), escape(String(raw(row)["status"] ?? "—")), escape(formatDate(row)))
120
+ children: (row) => ssr(_tmpl$5, ssrHydrationKey(), `/content/${escape(encodeURIComponent(String(raw(row)["type"] ?? "post")), true)}/edit?id=${escape(encodeURIComponent(String(raw(row)["id"] ?? "")), true)}`, escape(String(raw(row)["title"] ?? "—")), escape(String(raw(row)["type"] ?? "—")), escape(String(raw(row)["status"] ?? "—")), escape(formatDate(row)))
121
121
  })));
122
122
  }
123
123
  })));
@@ -143,7 +143,7 @@ var $$Index = createComponent$1(($$result, $$props, $$slots) => {
143
143
  "client:component-hydration": "load",
144
144
  "client:component-path": "/home/runner/work/cms/cms/apps/admin/src/components/apps/dashboard/DashboardHome.tsx",
145
145
  "client:component-export": "DashboardHome"
146
- })}<div class="quick-actions" data-astro-cid-lcdefpme><div class="card" data-astro-cid-lcdefpme><h3 class="card-header" data-astro-cid-lcdefpme>${t("layout.actions.newPost")}</h3><div class="actions-grid" data-astro-cid-lcdefpme><a href="/content/new" class="action-card" data-astro-cid-lcdefpme><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-lcdefpme><line x1="12" y1="5" x2="12" y2="19" data-astro-cid-lcdefpme></line><line x1="5" y1="12" x2="19" y2="12" data-astro-cid-lcdefpme></line></svg><span data-astro-cid-lcdefpme>${t("layout.actions.newPost")}</span></a><a href="/media/upload" class="action-card" data-astro-cid-lcdefpme><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-lcdefpme><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" data-astro-cid-lcdefpme></path><polyline points="17 8 12 3 7 8" data-astro-cid-lcdefpme></polyline><line x1="12" y1="3" x2="12" y2="15" data-astro-cid-lcdefpme></line></svg><span data-astro-cid-lcdefpme>${t("layout.actions.uploadMedia")}</span></a><a href="/users/new" class="action-card" data-astro-cid-lcdefpme><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-lcdefpme><path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" data-astro-cid-lcdefpme></path><circle cx="8.5" cy="7" r="4" data-astro-cid-lcdefpme></circle><line x1="20" y1="8" x2="20" y2="14" data-astro-cid-lcdefpme></line><line x1="23" y1="11" x2="17" y2="11" data-astro-cid-lcdefpme></line></svg><span data-astro-cid-lcdefpme>${t("layout.actions.addUser")}</span></a><a href="/settings" class="action-card" data-astro-cid-lcdefpme><span class="settings-action-icon" aria-hidden="true" data-astro-cid-lcdefpme><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-lcdefpme><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.38a2 2 0 0 0-.73-2.73l-.15-.09a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z" data-astro-cid-lcdefpme></path><circle cx="12" cy="12" r="3" data-astro-cid-lcdefpme></circle></svg></span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-lcdefpme><circle cx="12" cy="12" r="3" data-astro-cid-lcdefpme></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z" data-astro-cid-lcdefpme></path></svg><span data-astro-cid-lcdefpme>${t("layout.actions.openSettings")}</span></a></div></div></div></div>` })}`;
146
+ })}<div class="quick-actions" data-astro-cid-lcdefpme><div class="card" data-astro-cid-lcdefpme><h3 class="card-header" data-astro-cid-lcdefpme>${t("layout.actions.newPost")}</h3><div class="actions-grid" data-astro-cid-lcdefpme><a href="/content/post/new" class="action-card" data-astro-cid-lcdefpme><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-lcdefpme><line x1="12" y1="5" x2="12" y2="19" data-astro-cid-lcdefpme></line><line x1="5" y1="12" x2="19" y2="12" data-astro-cid-lcdefpme></line></svg><span data-astro-cid-lcdefpme>${t("layout.actions.newPost")}</span></a><a href="/media/upload" class="action-card" data-astro-cid-lcdefpme><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-lcdefpme><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" data-astro-cid-lcdefpme></path><polyline points="17 8 12 3 7 8" data-astro-cid-lcdefpme></polyline><line x1="12" y1="3" x2="12" y2="15" data-astro-cid-lcdefpme></line></svg><span data-astro-cid-lcdefpme>${t("layout.actions.uploadMedia")}</span></a><a href="/users/new" class="action-card" data-astro-cid-lcdefpme><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-lcdefpme><path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" data-astro-cid-lcdefpme></path><circle cx="8.5" cy="7" r="4" data-astro-cid-lcdefpme></circle><line x1="20" y1="8" x2="20" y2="14" data-astro-cid-lcdefpme></line><line x1="23" y1="11" x2="17" y2="11" data-astro-cid-lcdefpme></line></svg><span data-astro-cid-lcdefpme>${t("layout.actions.addUser")}</span></a><a href="/settings" class="action-card" data-astro-cid-lcdefpme><span class="settings-action-icon" aria-hidden="true" data-astro-cid-lcdefpme><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-lcdefpme><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.38a2 2 0 0 0-.73-2.73l-.15-.09a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z" data-astro-cid-lcdefpme></path><circle cx="12" cy="12" r="3" data-astro-cid-lcdefpme></circle></svg></span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-lcdefpme><circle cx="12" cy="12" r="3" data-astro-cid-lcdefpme></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z" data-astro-cid-lcdefpme></path></svg><span data-astro-cid-lcdefpme>${t("layout.actions.openSettings")}</span></a></div></div></div></div>` })}`;
147
147
  }, "/home/runner/work/cms/cms/apps/admin/src/pages/index.astro", void 0);
148
148
  var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/index.astro";
149
149
  //#endregion
@@ -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_DCIiRkcO.mjs";
5
- import { t as MediaLibrary } from "./MediaLibrary_azhfNs4N.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_DsYrIyKK.mjs";
5
+ import { t as MediaLibrary } from "./MediaLibrary_BmYgO6Lm.mjs";
6
6
  //#region src/pages/media/index.astro
7
7
  var media_exports = /* @__PURE__ */ __exportAll({
8
8
  default: () => $$Index,
@@ -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_DCIiRkcO.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_DsYrIyKK.mjs";
5
5
  //#region src/pages/settings/index.astro
6
6
  var settings_exports = /* @__PURE__ */ __exportAll({
7
7
  default: () => $$Index,
@@ -1,17 +1,18 @@
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_DIBvEjfq.mjs";
5
- import { c as Select, i as Card, n as Badge, o as Input, r as Button, s as Pagination, t as $$DashboardLayout, u as Table } from "./DashboardLayout_DCIiRkcO.mjs";
6
- import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BJJWXenY.mjs";
5
+ import { c as Select, i as Card, n as Badge, o as Input, r as Button, s as Pagination, t as $$DashboardLayout, u as Table } from "./DashboardLayout_DsYrIyKK.mjs";
6
+ import { t as ContentEditor } from "./ContentEditor_Dat_38Nz.mjs";
7
+ import { createComponent, escape, memo, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
7
8
  import { Show, createMemo, createSignal, onMount } from "solid-js";
8
9
  //#region src/components/content/ContentList.tsx
9
- var _tmpl$ = [
10
+ var _tmpl$$1 = [
10
11
  "<span",
11
12
  " class=\"muted\">",
12
13
  "</span>"
13
14
  ];
14
- var _tmpl$2 = [
15
+ var _tmpl$2$1 = [
15
16
  "<div",
16
17
  " class=\"users-table__actions\"><a class=\"btn btn-secondary btn-sm\" href=\"",
17
18
  "\">",
@@ -20,27 +21,22 @@ var _tmpl$2 = [
20
21
  "<!--/--></div>"
21
22
  ];
22
23
  var _tmpl$3 = [
23
- "<a",
24
- " class=\"btn btn-primary\"",
25
- ">",
26
- "</a>"
27
- ];
28
- var _tmpl$4 = [
29
24
  "<div",
30
25
  " class=\"notice notice--error\">",
31
26
  "</div>"
32
27
  ];
33
- var _tmpl$5 = [
28
+ var _tmpl$4 = [
34
29
  "<div",
35
30
  " class=\"notice\">",
36
31
  "</div>"
37
32
  ];
38
- var _tmpl$6 = [
33
+ var _tmpl$5 = [
39
34
  "<div",
40
35
  " class=\"content-list\"><div class=\"content-list__heading\"><div><h2>",
41
36
  "</h2><p class=\"muted\">",
42
- "</p></div><!--$-->",
43
- "<!--/--></div><!--$-->",
37
+ "</p></div><a class=\"btn btn-primary\"",
38
+ ">",
39
+ "</a></div><!--$-->",
44
40
  "<!--/--><!--$-->",
45
41
  "<!--/--><div class=\"toolbar\"><!--$-->",
46
42
  "<!--/--><!--$-->",
@@ -57,14 +53,14 @@ function formatDate(row) {
57
53
  const date = new Date(value);
58
54
  return Number.isNaN(date.getTime()) ? "—" : date.toLocaleString("pt-BR");
59
55
  }
60
- function ContentList() {
56
+ function ContentList(props) {
61
57
  const { t } = useTranslation();
62
58
  const [items, setItems] = createSignal([]);
63
59
  const [types, setTypes] = createSignal([]);
64
60
  const [total, setTotal] = createSignal(0);
65
61
  const [page, setPage] = createSignal(1);
66
62
  const [search, setSearch] = createSignal("");
67
- const [type, setType] = createSignal("");
63
+ const [type] = createSignal(props.contentType);
68
64
  const [status, setStatus] = createSignal("");
69
65
  const [error, setError] = createSignal("");
70
66
  const [info, setInfo] = createSignal("");
@@ -87,7 +83,6 @@ function ContentList() {
87
83
  };
88
84
  onMount(async () => {
89
85
  const query = new URLSearchParams(window.location.search);
90
- setType(query.get("type") ?? "");
91
86
  setStatus(query.get("status") ?? "");
92
87
  setSearch(query.get("search") ?? "");
93
88
  await load();
@@ -97,7 +92,7 @@ function ContentList() {
97
92
  });
98
93
  const activeType = createMemo(() => types().find((entry) => entry.slug === type()));
99
94
  const pageTitle = createMemo(() => activeType()?.pluralLabel || t("content.list.title"));
100
- const newContentHref = createMemo(() => `/content/new?type=${encodeURIComponent(type() || "post")}`);
95
+ const newContentHref = createMemo(() => `/content/${encodeURIComponent(type())}/new`);
101
96
  const searchNow = async () => {
102
97
  setPage(1);
103
98
  await load();
@@ -150,7 +145,7 @@ function ContentList() {
150
145
  {
151
146
  key: "updated_at",
152
147
  label: t("content.list.columns.updated"),
153
- render: (_value, row) => ssr(_tmpl$, ssrHydrationKey(), escape(formatDate(row)))
148
+ render: (_value, row) => ssr(_tmpl$$1, ssrHydrationKey(), escape(formatDate(row)))
154
149
  },
155
150
  {
156
151
  key: "actions",
@@ -158,7 +153,7 @@ function ContentList() {
158
153
  render: (_value, row) => {
159
154
  const content = row;
160
155
  const isPublished = raw(content)["status"] === "PUBLISHED";
161
- return ssr(_tmpl$2, ssrHydrationKey(), `/content/edit?id=${escape(encodeURIComponent(content.id), true)}`, escape(t("content.list.actions.edit")), escape(createComponent(Button, {
156
+ return ssr(_tmpl$2$1, ssrHydrationKey(), `/content/${escape(encodeURIComponent(content.type || type()), true)}/edit?id=${escape(encodeURIComponent(content.id), true)}`, escape(t("content.list.actions.edit")), escape(createComponent(Button, {
162
157
  variant: isPublished ? "secondary" : "primary",
163
158
  size: "sm",
164
159
  get loading() {
@@ -179,26 +174,19 @@ function ContentList() {
179
174
  }
180
175
  }
181
176
  ]);
182
- return ssr(_tmpl$6, ssrHydrationKey(), escape(pageTitle()), escape(t("content.list.description")), escape(createComponent(Show, {
183
- get when() {
184
- return type();
185
- },
186
- get children() {
187
- return ssr(_tmpl$3, ssrHydrationKey(), ssrAttribute("href", escape(newContentHref(), true), false), escape(t("content.list.buttons.addNew")));
188
- }
189
- })), escape(createComponent(Show, {
177
+ return ssr(_tmpl$5, ssrHydrationKey(), escape(pageTitle()), escape(t("content.list.description")), ssrAttribute("href", escape(newContentHref(), true), false), escape(t("content.list.buttons.addNew")), escape(createComponent(Show, {
190
178
  get when() {
191
179
  return error();
192
180
  },
193
181
  get children() {
194
- return ssr(_tmpl$4, ssrHydrationKey(), escape(error()));
182
+ return ssr(_tmpl$3, ssrHydrationKey(), escape(error()));
195
183
  }
196
184
  })), escape(createComponent(Show, {
197
185
  get when() {
198
186
  return info();
199
187
  },
200
188
  get children() {
201
- return ssr(_tmpl$5, ssrHydrationKey(), escape(info()));
189
+ return ssr(_tmpl$4, ssrHydrationKey(), escape(info()));
202
190
  }
203
191
  })), escape(createComponent(Input, {
204
192
  name: "search",
@@ -273,8 +261,63 @@ function ContentList() {
273
261
  } })));
274
262
  }
275
263
  //#endregion
276
- //#region src/pages/content/index.astro
277
- var content_exports = /* @__PURE__ */ __exportAll({
264
+ //#region src/components/content/ContentTypeWorkspace.tsx
265
+ var _tmpl$ = [
266
+ "<div",
267
+ " class=\"notice notice--error\">",
268
+ "</div>"
269
+ ];
270
+ var _tmpl$2 = [
271
+ "<div",
272
+ " class=\"card\">",
273
+ "</div>"
274
+ ];
275
+ function ContentTypeWorkspace(props) {
276
+ const { t } = useTranslation();
277
+ const [type, setType] = createSignal(null);
278
+ const [error, setError] = createSignal("");
279
+ onMount(async () => {
280
+ try {
281
+ const match = (await apiClient.getContentTypes()).find((entry) => entry.slug === props.contentType);
282
+ if (!match) {
283
+ setError(t("content.list.typeNotFound"));
284
+ return;
285
+ }
286
+ setType(match);
287
+ } catch (err) {
288
+ setError(err instanceof Error ? err.message : String(err));
289
+ }
290
+ });
291
+ return createComponent(Show, {
292
+ get when() {
293
+ return type();
294
+ },
295
+ get fallback() {
296
+ return memo(() => !!error())() ? ssr(_tmpl$, ssrHydrationKey(), escape(error())) : ssr(_tmpl$2, ssrHydrationKey(), escape(t("common.loading")));
297
+ },
298
+ children: (current) => createComponent(Show, {
299
+ get when() {
300
+ return current().singleton;
301
+ },
302
+ get fallback() {
303
+ return createComponent(ContentList, { get contentType() {
304
+ return current().slug;
305
+ } });
306
+ },
307
+ get children() {
308
+ return createComponent(ContentEditor, {
309
+ get initialType() {
310
+ return current().slug;
311
+ },
312
+ singleton: true
313
+ });
314
+ }
315
+ })
316
+ });
317
+ }
318
+ //#endregion
319
+ //#region src/pages/content/[type]/index.astro
320
+ var _type__exports = /* @__PURE__ */ __exportAll({
278
321
  default: () => $$Index,
279
322
  file: () => $$file,
280
323
  url: () => $$url
@@ -284,21 +327,23 @@ var $$Index = createComponent$1(($$result, $$props, $$slots) => {
284
327
  const Astro = $$result.createAstro($$props, $$slots);
285
328
  Astro.self = $$Index;
286
329
  const { t } = Astro.locals;
330
+ const contentType = Astro.params.type ?? "post";
287
331
  return renderTemplate`${renderComponent($$result, "DashboardLayout", $$DashboardLayout, {
288
- "title": t("content.list.title"),
289
- "data-astro-cid-qhu5jad5": true
290
- }, { "default": ($$result) => renderTemplate`${maybeRenderHead($$result)}<div class="content-page" data-astro-cid-qhu5jad5>${renderComponent($$result, "ContentList", ContentList, {
332
+ "title": contentType,
333
+ "data-astro-cid-znq2nu33": true
334
+ }, { "default": ($$result) => renderTemplate`${maybeRenderHead($$result)}<div class="content-type-page" data-astro-cid-znq2nu33>${renderComponent($$result, "ContentTypeWorkspace", ContentTypeWorkspace, {
291
335
  "client:load": true,
292
- "data-astro-cid-qhu5jad5": true,
336
+ "contentType": contentType,
337
+ "data-astro-cid-znq2nu33": true,
293
338
  "client:component-hydration": "load",
294
- "client:component-path": "/home/runner/work/cms/cms/apps/admin/src/components/content/ContentList.tsx",
295
- "client:component-export": "ContentList"
339
+ "client:component-path": "/home/runner/work/cms/cms/apps/admin/src/components/content/ContentTypeWorkspace.tsx",
340
+ "client:component-export": "ContentTypeWorkspace"
296
341
  })}</div>` })}`;
297
- }, "/home/runner/work/cms/cms/apps/admin/src/pages/content/index.astro", void 0);
298
- var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/content/index.astro";
299
- var $$url = "/content";
342
+ }, "/home/runner/work/cms/cms/apps/admin/src/pages/content/[type]/index.astro", void 0);
343
+ var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/content/[type]/index.astro";
344
+ var $$url = "/content/[type]";
300
345
  //#endregion
301
- //#region \0virtual:astro:page:src/pages/content/index@_@astro
302
- var page = () => content_exports;
346
+ //#region \0virtual:astro:page:src/pages/content/[type]/index@_@astro
347
+ var page = () => _type__exports;
303
348
  //#endregion
304
349
  export { page };