@oktis-works/admin 0.8.6 → 0.8.7

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 (65) hide show
  1. package/dist/client/_astro/{ActivityWidget.D7_53BGw.js → ActivityWidget.DFfbrs-K.js} +1 -1
  2. package/dist/client/_astro/{AdminBar.D5HuPXui.js → AdminBar.5-l0PBZz.js} +1 -1
  3. package/dist/client/_astro/{AtGlanceWidget.Lluw6UBw.js → AtGlanceWidget.B5ytZ8mp.js} +1 -1
  4. package/dist/client/_astro/{ContentEditor.BCCGxP1w.js → ContentEditor.CQ2OYPHn.js} +1 -1
  5. package/dist/client/_astro/ContentEditor.DANKVwCI.js +1 -0
  6. package/dist/client/_astro/{ContentTypeWorkspace.C4hnI9YC.js → ContentTypeWorkspace.CdsUQQfa.js} +1 -1
  7. package/dist/client/_astro/{DashboardHome.BPOZDPUo.js → DashboardHome.BYOWl94l.js} +1 -1
  8. package/dist/client/_astro/{DashboardLayout.astro_astro_type_script_index_0_lang.Bede1aP3.js → DashboardLayout.astro_astro_type_script_index_0_lang.DP7AKyOy.js} +1 -1
  9. package/dist/client/_astro/{FieldGroupEditor.Dk20Xh8p.js → FieldGroupEditor.5iB_mZUP.js} +1 -1
  10. package/dist/client/_astro/{FieldGroupList.CDIrd2MZ.js → FieldGroupList.CN3KGhw5.js} +1 -1
  11. package/dist/client/_astro/{Footer.Mwcn7bMK.js → Footer.CnuW-fOP.js} +1 -1
  12. package/dist/client/_astro/{GeneralSettings.BXI3GeZQ.js → GeneralSettings.Dzv_7xWf.js} +1 -1
  13. package/dist/client/_astro/{LogsManager.BdBSMMEv.js → LogsManager.C3XW2Gze.js} +1 -1
  14. package/dist/client/_astro/{MediaLibrary.lVfoq1yB.js → MediaLibrary.bx1yD6aC.js} +1 -1
  15. package/dist/client/_astro/{MenuManager.DxIUsXPf.js → MenuManager.Bl_gpt5T.js} +1 -1
  16. package/dist/client/_astro/PluginManager.ClpQA_a-.js +136 -0
  17. package/dist/client/_astro/{PostTypesManager._chJSXyr.js → PostTypesManager.BJNKEOXY.js} +1 -1
  18. package/dist/client/_astro/{QuickDraftWidget.Dw44Y1PJ.js → QuickDraftWidget.Gjzwimmf.js} +1 -1
  19. package/dist/client/_astro/{ResourceHubs.CSuTjP2I.js → ResourceHubs.D11v_J8D.js} +1 -1
  20. package/dist/client/_astro/{TaxonomiesManager.B__PNKrM.js → TaxonomiesManager.DAC1s3aS.js} +1 -1
  21. package/dist/client/_astro/{TaxonomyTermsManager.H_Q5W0d1.js → TaxonomyTermsManager.RsO79xRU.js} +1 -1
  22. package/dist/client/_astro/{ThemeManager.BBQKudhO.js → ThemeManager.BO-12WST.js} +2 -2
  23. package/dist/client/_astro/{UserCreateForm.CsyYRVpM.js → UserCreateForm.CSYbfU4r.js} +1 -1
  24. package/dist/client/_astro/{UsersManager.BntNgQkZ.js → UsersManager.GrlsCN-n.js} +1 -1
  25. package/dist/client/_astro/{WebhooksManager.CJohMg1N.js → WebhooksManager.BNaGM-w5.js} +1 -1
  26. package/dist/client/_astro/{api.BZGjgltO.js → api.D7bs6UOp.js} +1 -1
  27. package/dist/client/_astro/{extensions.DuW4Htyu.js → extensions.CpcwMaUF.js} +1 -1
  28. package/dist/client/_astro/{i18n.DwiedzrR.js → i18n.CjQozXLx.js} +1 -1
  29. package/dist/client/_astro/{login.astro_astro_type_script_index_0_lang.D4N79ggo.js → login.astro_astro_type_script_index_0_lang.D7pjn1zG.js} +1 -1
  30. package/dist/client/_astro/{pt-BR.BLrffzGB.js → pt-BR.BnllmbjP.js} +1 -1
  31. package/dist/server/chunks/{BaseLayout_BipurZxW.mjs → BaseLayout_mNhoDiMR.mjs} +1 -1
  32. package/dist/server/chunks/{ContentEditor_BBwkjIWX.mjs → ContentEditor_DLQV2GHu.mjs} +2 -2
  33. package/dist/server/chunks/{DashboardLayout_D8kl-bRz.mjs → DashboardLayout_CGggEut2.mjs} +2 -2
  34. package/dist/server/chunks/{MediaLibrary_Cz3kFOf1.mjs → MediaLibrary_tpZAEUHh.mjs} +2 -2
  35. package/dist/server/chunks/{_id__BScPz4sZ.mjs → _id__ByUunzUm.mjs} +2 -2
  36. package/dist/server/chunks/{_slug__DL_9q4IA.mjs → _slug__BSjoZ5ou.mjs} +1 -1
  37. package/dist/server/chunks/{access_DNBAQK33.mjs → access_Cemph0zm.mjs} +2 -2
  38. package/dist/server/chunks/{custom-fields_CNpYcGe5.mjs → custom-fields_D5clxJVf.mjs} +2 -2
  39. package/dist/server/chunks/{edit_Do3MYZ3P.mjs → edit_C5a8Q5Ge.mjs} +2 -2
  40. package/dist/server/chunks/{general_CDhVb79L.mjs → general_CuLtpcon.mjs} +2 -2
  41. package/dist/server/chunks/{i18n_LxatWcFX.mjs → i18n_k88p-B6j.mjs} +33 -10
  42. package/dist/server/chunks/{index_DsEvrRuL.mjs → index_BiC5Mm4G.mjs} +3 -3
  43. package/dist/server/chunks/{index_fJc0OyJh.mjs → index_DP4dDD-R.mjs} +2 -2
  44. package/dist/server/chunks/{index_BJV3c2yL.mjs → index_D_UVr3YD.mjs} +2 -2
  45. package/dist/server/chunks/{index_B5qrLw5e.mjs → index_DnAdCTFB.mjs} +2 -2
  46. package/dist/server/chunks/{index_C__uorER.mjs → index_nslucXss.mjs} +1 -1
  47. package/dist/server/chunks/{login_DxOSkfEI.mjs → login_Bf5cWCYs.mjs} +1 -1
  48. package/dist/server/chunks/{logs_DPtocp9R.mjs → logs_DibwgS0j.mjs} +2 -2
  49. package/dist/server/chunks/{menus_B6zE9lE9.mjs → menus_QSYCvi90.mjs} +2 -2
  50. package/dist/server/chunks/{new_BDSIUWTw.mjs → new_CRPpTn9N.mjs} +2 -2
  51. package/dist/server/chunks/{new_5LUbuH-p.mjs → new_DGbrZY4T.mjs} +2 -2
  52. package/dist/server/chunks/plugins_C9GShj8w.mjs +179 -0
  53. package/dist/server/chunks/{post-types_C7u-dWku.mjs → post-types_yl-VSZfH.mjs} +2 -2
  54. package/dist/server/chunks/{pt-BR_DI_b7akz.mjs → pt-BR_X0hfCrsD.mjs} +12 -2
  55. package/dist/server/chunks/{taxonomies_CbuDB5MA.mjs → taxonomies_BwUwBz95.mjs} +2 -2
  56. package/dist/server/chunks/{taxonomy_QbYqYB7A.mjs → taxonomy_h8RtMHN4.mjs} +2 -2
  57. package/dist/server/chunks/{themes_BY5zb9V_.mjs → themes_CG_DSSUL.mjs} +8 -3
  58. package/dist/server/chunks/{upload_CY8fHFf0.mjs → upload_DABOFBBU.mjs} +2 -2
  59. package/dist/server/chunks/{webhooks_B1c94wgF.mjs → webhooks_DQAwEeKf.mjs} +2 -2
  60. package/dist/server/entry.mjs +24 -24
  61. package/dist/server/virtual_astro_middleware.mjs +1 -1
  62. package/package.json +1 -1
  63. package/dist/client/_astro/ContentEditor.CeaHUL-i.js +0 -1
  64. package/dist/client/_astro/PluginManager.FF8-TyV2.js +0 -85
  65. package/dist/server/chunks/plugins_DksxQ4dd.mjs +0 -132
@@ -90,7 +90,7 @@ async function loadLocale(locale) {
90
90
  "./locales/it.json": () => import("./it_DEDC6yxf.mjs"),
91
91
  "./locales/ja.json": () => import("./ja_BRQi6rW3.mjs"),
92
92
  "./locales/pl.json": () => import("./pl_CKanAk0F.mjs"),
93
- "./locales/pt-BR.json": () => import("./pt-BR_DI_b7akz.mjs"),
93
+ "./locales/pt-BR.json": () => import("./pt-BR_X0hfCrsD.mjs"),
94
94
  "./locales/ru.json": () => import("./ru_CuNXt2MB.mjs"),
95
95
  "./locales/sw.json": () => import("./sw_RLMWPkos.mjs"),
96
96
  "./locales/tr.json": () => import("./tr_Dz8pqyTZ.mjs"),
@@ -713,6 +713,17 @@ var ApiClient = class {
713
713
  manifest: theme["manifest"] ?? null
714
714
  }));
715
715
  }
716
+ /** Sincroniza o diretório de temas com o banco e retorna o estado completo. */
717
+ async syncThemes() {
718
+ return (await this.request("POST", "/api/v1/themes/sync")).map((theme) => ({
719
+ id: String(theme["id"] ?? ""),
720
+ name: String(theme["name"] ?? ""),
721
+ version: theme["version"] ? String(theme["version"]) : void 0,
722
+ status: String(theme["status"] ?? "INSTALLED"),
723
+ config: theme["config"] ?? {},
724
+ manifest: theme["manifest"] ?? null
725
+ }));
726
+ }
716
727
  async activateTheme(id) {
717
728
  return this.request("POST", `/api/v1/themes/${id}/activate`);
718
729
  }
@@ -734,21 +745,23 @@ var ApiClient = class {
734
745
  name: String(plugin["name"] ?? ""),
735
746
  version: String(plugin["version"] ?? ""),
736
747
  status: String(plugin["status"] ?? "INSTALLED"),
748
+ enabled: plugin["enabled"] === true,
737
749
  manifest: plugin["manifest"] ?? null
738
750
  }));
739
751
  }
740
- async activatePlugin(id) {
741
- return this.request("POST", `/api/v1/plugins/${id}/activate`);
742
- }
743
- async deactivatePlugin(id) {
744
- return this.request("POST", `/api/v1/plugins/${id}/deactivate`);
752
+ async activatePlugin(id, tenantId) {
753
+ return this.request("POST", `/api/v1/plugins/${id}/activate`, { tenantId });
745
754
  }
746
- async installPlugin(data) {
747
- return this.request("POST", "/api/v1/plugins/install", data);
755
+ async deactivatePlugin(id, tenantId) {
756
+ return this.request("POST", `/api/v1/plugins/${id}/deactivate`, { tenantId });
748
757
  }
749
758
  async uninstallPlugin(id) {
750
759
  await this.request("DELETE", `/api/v1/plugins/${id}`);
751
760
  }
761
+ /** Estado de runtime dos plugins (WP2) — por escopo platform/tenant. */
762
+ async getPluginsRuntime() {
763
+ return this.request("GET", "/api/v1/plugins/runtime");
764
+ }
752
765
  };
753
766
  var apiClient = new ApiClient();
754
767
  //#endregion
@@ -1618,12 +1631,16 @@ var plugins = {
1618
1631
  "name": "Name",
1619
1632
  "version": "Version",
1620
1633
  "status": "Status",
1634
+ "enabled": "Enabled for tenant",
1621
1635
  "actions": "Actions"
1622
1636
  },
1623
1637
  "status": {
1624
1638
  "active": "Active",
1625
1639
  "installed": "Installed",
1626
- "inactive": "Inactive"
1640
+ "inactive": "Inactive",
1641
+ "quarantined": "Quarantined",
1642
+ "missing": "Missing",
1643
+ "loadFailed": "Load failed"
1627
1644
  },
1628
1645
  "activate": "Activate",
1629
1646
  "deactivate": "Deactivate",
@@ -1638,7 +1655,13 @@ var plugins = {
1638
1655
  "deactivateError": "Could not deactivate the plugin.",
1639
1656
  "installError": "Could not install the plugin.",
1640
1657
  "uninstallError": "Could not uninstall the plugin.",
1641
- "empty": "No plugins installed."
1658
+ "empty": "No plugins installed.",
1659
+ "selectTenant": "Select tenant",
1660
+ "selectTenantPlaceholder": "Choose a tenant to activate/deactivate for",
1661
+ "hideSelector": "Hide selector",
1662
+ "enabledForTenant": "Active for this tenant",
1663
+ "enabledYes": "Yes",
1664
+ "enabledNo": "No"
1642
1665
  };
1643
1666
  var themes = {
1644
1667
  "title": "Themes",
@@ -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_LxatWcFX.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_D8kl-bRz.mjs";
6
- import { t as ContentEditor } from "./ContentEditor_BBwkjIWX.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_k88p-B6j.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_CGggEut2.mjs";
6
+ import { t as ContentEditor } from "./ContentEditor_DLQV2GHu.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, 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_LxatWcFX.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_D8kl-bRz.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_k88p-B6j.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_CGggEut2.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 } from "./compiler_O7J1rlsi.mjs";
4
- import { t as $$DashboardLayout } from "./DashboardLayout_D8kl-bRz.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_CGggEut2.mjs";
5
5
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
6
- import { t as MediaLibrary } from "./MediaLibrary_Cz3kFOf1.mjs";
6
+ import { t as MediaLibrary } from "./MediaLibrary_tpZAEUHh.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, 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_LxatWcFX.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_D8kl-bRz.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_k88p-B6j.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_CGggEut2.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_D8kl-bRz.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_CGggEut2.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_BipurZxW.mjs";
4
+ import { n as renderScript, t as $$BaseLayout } from "./BaseLayout_mNhoDiMR.mjs";
5
5
  //#region src/pages/login.astro
6
6
  var login_exports = /* @__PURE__ */ __exportAll({
7
7
  default: () => $$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_LxatWcFX.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_D8kl-bRz.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_k88p-B6j.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_CGggEut2.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_LxatWcFX.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_D8kl-bRz.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_k88p-B6j.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_CGggEut2.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_LxatWcFX.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_D8kl-bRz.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_k88p-B6j.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_CGggEut2.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_D8kl-bRz.mjs";
5
- import { t as ContentEditor } from "./ContentEditor_BBwkjIWX.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_CGggEut2.mjs";
5
+ import { t as ContentEditor } from "./ContentEditor_DLQV2GHu.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({
@@ -0,0 +1,179 @@
1
+ import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
+ import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
+ import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_k88p-B6j.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_CGggEut2.mjs";
6
+ import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
+ import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
8
+ import { For, createSignal, onMount } from "solid-js";
9
+ //#region src/components/apps/plugins/PluginManager.tsx
10
+ var _tmpl$ = [
11
+ "<div",
12
+ " class=\"plugin-manager\"><p class=\"page-hint\">",
13
+ "</p><!--$-->",
14
+ "<!--/--><!--$-->",
15
+ "<!--/--><!--$-->",
16
+ "<!--/--><style>\n .page-hint {\n margin: 0 0 1.25rem;\n color: var(--color-muted);\n font-size: 0.8125rem;\n }\n .tenant-selector-bar {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n margin-bottom: 1rem;\n padding: 0.75rem 1rem;\n background: var(--color-surface);\n border: 1px solid var(--color-border);\n border-radius: var(--radius-md);\n font-size: 0.8125rem;\n }\n .tenant-selector-bar select {\n flex: 1;\n max-width: 300px;\n padding: 0.375rem 0.75rem;\n border: 1px solid var(--color-border);\n border-radius: var(--radius-sm);\n background: var(--color-background);\n color: var(--color-text);\n }\n .badge-enabled {\n display: inline-block;\n margin-left: 0.5rem;\n padding: 0.125rem 0.375rem;\n font-size: 0.625rem;\n font-weight: 600;\n text-transform: uppercase;\n background: var(--color-success-soft);\n color: var(--color-success);\n border-radius: var(--radius-full);\n }\n .enabled-badge {\n color: var(--color-success);\n font-weight: 500;\n }\n .disabled-badge {\n color: var(--color-muted);\n font-weight: 500;\n }\n .plugins-table-container {\n overflow-x: auto;\n }\n .table {\n width: 100%;\n border-collapse: collapse;\n }\n .table th,\n .table td {\n padding: 0.75rem 1rem;\n text-align: left;\n border-bottom: 1px solid var(--color-border);\n }\n .table th {\n font-weight: 600;\n color: var(--color-text);\n background: var(--color-surface);\n }\n .plugin-row:hover {\n background: var(--color-background);\n }\n .plugin-name {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n .plugin-name strong {\n font-weight: 500;\n }\n .plugin-description {\n font-size: 0.75rem;\n color: var(--color-muted);\n }\n .status-badge {\n display: inline-flex;\n align-items: center;\n padding: 0.25rem 0.5rem;\n border-radius: var(--radius-full);\n font-size: 0.6875rem;\n font-weight: 600;\n text-transform: uppercase;\n }\n .status-active {\n background: var(--color-success-soft);\n color: var(--color-success);\n }\n .status-installed {\n background: var(--color-primary-soft);\n color: var(--color-primary);\n }\n .status-inactive {\n background: var(--color-muted-soft);\n color: var(--color-muted);\n }\n .status-quarantined {\n background: var(--color-warning-soft);\n color: var(--color-warning);\n }\n .status-missing {\n background: var(--color-error-soft);\n color: var(--color-error);\n }\n .status-load-failed {\n background: var(--color-error-soft);\n color: var(--color-error);\n }\n .btn-loading {\n opacity: 0.6;\n cursor: wait;\n }\n .empty-state {\n padding: 2rem;\n text-align: center;\n color: var(--color-muted);\n }\n .alert {\n padding: 0.75rem 1rem;\n border-radius: var(--radius-md);\n margin-bottom: 1rem;\n }\n .alert-error {\n background: var(--color-error-soft);\n color: var(--color-error);\n border: 1px solid var(--color-error);\n }\n .skeleton {\n padding: 2rem;\n text-align: center;\n color: var(--color-muted);\n }\n </style></div>"
17
+ ];
18
+ var _tmpl$2 = [
19
+ "<div",
20
+ " class=\"alert alert-error\">",
21
+ "</div>"
22
+ ];
23
+ var _tmpl$3 = ["<div", " class=\"skeleton\">Loading...</div>"];
24
+ var _tmpl$4 = [
25
+ "<div",
26
+ " class=\"plugins-table-container\"><table class=\"table\"><thead><tr><th>",
27
+ "</th><th>",
28
+ "</th><th>",
29
+ "</th><th>",
30
+ "</th><th>",
31
+ "</th></tr></thead><tbody>",
32
+ "</tbody></table><!--$-->",
33
+ "<!--/--></div>"
34
+ ];
35
+ var _tmpl$5 = [
36
+ "<div",
37
+ " class=\"tenant-selector-bar\"><label><!--$-->",
38
+ "<!--/-->: </label><select",
39
+ "><option value>",
40
+ "</option><!--$-->",
41
+ "<!--/--></select><button class=\"btn btn-sm\">",
42
+ "</button></div>"
43
+ ];
44
+ var _tmpl$6 = [
45
+ "<option",
46
+ "><!--$-->",
47
+ "<!--/--> (<!--$-->",
48
+ "<!--/-->)</option>"
49
+ ];
50
+ var _tmpl$7 = [
51
+ "<tr",
52
+ " class=\"plugin-row\"><td class=\"plugin-name\"><strong>",
53
+ "</strong><!--$-->",
54
+ "<!--/--><!--$-->",
55
+ "<!--/--></td><td>",
56
+ "</td><td><span class=\"",
57
+ "\">",
58
+ "</span></td><td>",
59
+ "</td><td><button class=\"",
60
+ "\"",
61
+ ">",
62
+ "</button></td></tr>"
63
+ ];
64
+ var _tmpl$8 = [
65
+ "<span",
66
+ " class=\"plugin-description\">",
67
+ "</span>"
68
+ ];
69
+ var _tmpl$9 = [
70
+ "<span",
71
+ " class=\"badge-enabled\">",
72
+ "</span>"
73
+ ];
74
+ var _tmpl$0 = [
75
+ "<span",
76
+ " class=\"enabled-badge\">",
77
+ "</span>"
78
+ ];
79
+ var _tmpl$1 = [
80
+ "<span",
81
+ " class=\"disabled-badge\">",
82
+ "</span>"
83
+ ];
84
+ var _tmpl$10 = [
85
+ "<div",
86
+ " class=\"empty-state\">",
87
+ "</div>"
88
+ ];
89
+ function PluginManager() {
90
+ const { t } = useTranslation();
91
+ const [plugins, setPlugins] = createSignal([]);
92
+ const [loading, setLoading] = createSignal(true);
93
+ const [error, setError] = createSignal(null);
94
+ const [toggling, setToggling] = createSignal(null);
95
+ const [tenantId, setTenantId] = createSignal(null);
96
+ const [tenants, setTenants] = createSignal([]);
97
+ const [showTenantSelector, setShowTenantSelector] = createSignal(false);
98
+ onMount(async () => {
99
+ await loadPlugins();
100
+ });
101
+ async function loadPlugins() {
102
+ try {
103
+ setLoading(true);
104
+ const data = await apiClient.getPlugins();
105
+ setPlugins(data);
106
+ } catch {
107
+ setError(t("plugins.loadError"));
108
+ } finally {
109
+ setLoading(false);
110
+ }
111
+ }
112
+ const isActive = (plugin) => plugin.enabled === true;
113
+ const getStatusLabel = (status) => {
114
+ switch (status) {
115
+ case "ACTIVE":
116
+ case "ACTIVATED": return t("plugins.status.active");
117
+ case "INSTALLED": return t("plugins.status.installed");
118
+ case "INACTIVE":
119
+ case "DEACTIVATED": return t("plugins.status.inactive");
120
+ case "QUARANTINED": return t("plugins.status.quarantined");
121
+ case "MISSING": return t("plugins.status.missing");
122
+ case "LOAD_FAILED": return t("plugins.status.loadFailed");
123
+ default: return status;
124
+ }
125
+ };
126
+ const getStatusClass = (status) => {
127
+ switch (status) {
128
+ case "ACTIVE":
129
+ case "ACTIVATED": return "status-active";
130
+ case "INSTALLED": return "status-installed";
131
+ case "INACTIVE":
132
+ case "DEACTIVATED": return "status-inactive";
133
+ case "QUARANTINED": return "status-quarantined";
134
+ case "MISSING": return "status-missing";
135
+ case "LOAD_FAILED": return "status-load-failed";
136
+ default: return "";
137
+ }
138
+ };
139
+ return ssr(_tmpl$, ssrHydrationKey(), escape(t("plugins.directoryHint")), error() && ssr(_tmpl$2, ssrHydrationKey(), escape(error())), loading() && _tmpl$3[0] + ssrHydrationKey() + _tmpl$3[1], !loading() && !error() && escape([showTenantSelector() && ssr(_tmpl$5, ssrHydrationKey(), escape(t("plugins.selectTenant")), ssrAttribute("value", escape(tenantId() ?? "", true), false), escape(t("plugins.selectTenantPlaceholder")), escape(createComponent(For, {
140
+ get each() {
141
+ return tenants();
142
+ },
143
+ children: (t) => ssr(_tmpl$6, ssrHydrationKey() + ssrAttribute("value", escape(t.id, true), false), escape(t.name), escape(t.id))
144
+ })), escape(t("plugins.hideSelector"))), ssr(_tmpl$4, ssrHydrationKey(), escape(t("plugins.columns.name")), escape(t("plugins.columns.version")), escape(t("plugins.columns.status")), escape(t("plugins.columns.enabled")), escape(t("plugins.columns.actions")), escape(createComponent(For, {
145
+ get each() {
146
+ return plugins();
147
+ },
148
+ children: (plugin) => ssr(_tmpl$7, ssrHydrationKey(), escape(plugin.name), plugin.manifest?.description && ssr(_tmpl$8, ssrHydrationKey(), escape(plugin.manifest.description)), plugin.enabled && ssr(_tmpl$9, ssrHydrationKey(), escape(t("plugins.enabledForTenant"))), escape(plugin.version), `status-badge ${escape(getStatusClass(plugin.status), true)}`, escape(getStatusLabel(plugin.status)), plugin.enabled ? ssr(_tmpl$0, ssrHydrationKey(), escape(t("plugins.enabledYes"))) : ssr(_tmpl$1, ssrHydrationKey(), escape(t("plugins.enabledNo"))), `btn btn-sm ${toggling() === plugin.id ? "btn-loading" : ""}`, ssrAttribute("disabled", toggling() !== null || !tenantId(), true) + ssrAttribute("aria-label", isActive(plugin) ? escape(t("plugins.deactivate"), true) : escape(t("plugins.activate"), true), false), isActive(plugin) ? escape(t("plugins.deactivate")) : escape(t("plugins.activate")))
149
+ })), plugins().length === 0 && ssr(_tmpl$10, ssrHydrationKey(), escape(t("plugins.empty"))))]));
150
+ }
151
+ //#endregion
152
+ //#region src/pages/plugins.astro
153
+ var plugins_exports = /* @__PURE__ */ __exportAll({
154
+ default: () => $$Plugins,
155
+ file: () => $$file,
156
+ url: () => $$url
157
+ });
158
+ createAstro("https://astro.build");
159
+ var $$Plugins = createComponent$1(($$result, $$props, $$slots) => {
160
+ const Astro = $$result.createAstro($$props, $$slots);
161
+ Astro.self = $$Plugins;
162
+ const { t } = Astro.locals;
163
+ return renderTemplate`${renderComponent($$result, "DashboardLayout", $$DashboardLayout, { "title": t("plugins.title") }, { "default": ($$result) => renderTemplate`${renderComponent($$result, "PageHeader", PageHeader, {
164
+ "title": t("plugins.title"),
165
+ "description": t("plugins.description")
166
+ })}${renderComponent($$result, "PluginManager", PluginManager, {
167
+ "client:load": true,
168
+ "client:component-hydration": "load",
169
+ "client:component-path": "/home/runner/work/cms/cms/apps/admin/src/components/apps/plugins/PluginManager.tsx",
170
+ "client:component-export": "PluginManager"
171
+ })}` })}`;
172
+ }, "/home/runner/work/cms/cms/apps/admin/src/pages/plugins.astro", void 0);
173
+ var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/plugins.astro";
174
+ var $$url = "/plugins";
175
+ //#endregion
176
+ //#region \0virtual:astro:page:src/pages/plugins@_@astro
177
+ var page = () => plugins_exports;
178
+ //#endregion
179
+ export { page };
@@ -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_LxatWcFX.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_D8kl-bRz.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_k88p-B6j.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_CGggEut2.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";
@@ -420,12 +420,16 @@ var plugins = {
420
420
  "name": "Nome",
421
421
  "version": "Versão",
422
422
  "status": "Status",
423
+ "enabled": "Ativo no tenant",
423
424
  "actions": "Ações"
424
425
  },
425
426
  "status": {
426
427
  "active": "Ativo",
427
428
  "installed": "Instalado",
428
- "inactive": "Inativo"
429
+ "inactive": "Inativo",
430
+ "quarantined": "Em quarentena",
431
+ "missing": "Ausente",
432
+ "loadFailed": "Falha ao carregar"
429
433
  },
430
434
  "activate": "Ativar",
431
435
  "deactivate": "Desativar",
@@ -440,7 +444,13 @@ var plugins = {
440
444
  "deactivateError": "Não foi possível desativar o plugin.",
441
445
  "installError": "Não foi possível instalar o plugin.",
442
446
  "uninstallError": "Não foi possível desinstalar o plugin.",
443
- "empty": "Nenhum plugin instalado."
447
+ "empty": "Nenhum plugin instalado.",
448
+ "selectTenant": "Selecionar tenant",
449
+ "selectTenantPlaceholder": "Escolha um tenant para ativar/desativar",
450
+ "hideSelector": "Ocultar seletor",
451
+ "enabledForTenant": "Ativo para este tenant",
452
+ "enabledYes": "Sim",
453
+ "enabledNo": "Não"
444
454
  };
445
455
  var themes = {
446
456
  "title": "Temas",
@@ -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_LxatWcFX.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_D8kl-bRz.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_k88p-B6j.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_CGggEut2.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_LxatWcFX.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_D8kl-bRz.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_k88p-B6j.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_CGggEut2.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_LxatWcFX.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_D8kl-bRz.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_k88p-B6j.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_CGggEut2.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";
@@ -149,7 +149,12 @@ function ThemeManager() {
149
149
  setError(null);
150
150
  try {
151
151
  setLoading(true);
152
- const data = await apiClient.getThemes();
152
+ let data;
153
+ try {
154
+ data = await apiClient.syncThemes();
155
+ } catch {
156
+ data = await apiClient.getThemes();
157
+ }
153
158
  setThemes(data);
154
159
  } catch {
155
160
  setError(t("themes.loadError"));
@@ -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_D8kl-bRz.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_CGggEut2.mjs";
5
5
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
6
- import { t as MediaLibrary } from "./MediaLibrary_Cz3kFOf1.mjs";
6
+ import { t as MediaLibrary } from "./MediaLibrary_tpZAEUHh.mjs";
7
7
  //#region src/pages/media/upload.astro
8
8
  var upload_exports = /* @__PURE__ */ __exportAll({
9
9
  default: () => $$Upload,
@@ -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_LxatWcFX.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_D8kl-bRz.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_k88p-B6j.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_CGggEut2.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, onCleanup, onMount } from "solid-js";