@oktis-works/admin 0.23.1 → 0.23.3

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 (85) hide show
  1. package/dist/client/_astro/{ActivityWidget.Dzoi-bq3.js → ActivityWidget.C8vh6xAH.js} +1 -1
  2. package/dist/client/_astro/{AdminBar.eT1ch_B6.js → AdminBar.D4zIDpRx.js} +1 -1
  3. package/dist/client/_astro/{ApiKeysManager.kbTE1CPk.js → ApiKeysManager.Bkuipo9h.js} +1 -1
  4. package/dist/client/_astro/{AtGlanceWidget.w23IIv06.js → AtGlanceWidget.BwnpX_nn.js} +1 -1
  5. package/dist/client/_astro/{CommentsManager.BN7i1RHa.js → CommentsManager.B7eut49M.js} +1 -1
  6. package/dist/client/_astro/ContentEditor.CTopdn_8.js +1 -0
  7. package/dist/client/_astro/ContentTypeWorkspace.xXST4b7L.js +1 -0
  8. package/dist/client/_astro/{DashboardHome.DXzu_IXZ.js → DashboardHome.DD8QG8ZW.js} +1 -1
  9. package/dist/client/_astro/{DashboardLayout.astro_astro_type_script_index_0_lang.DmNSzErX.js → DashboardLayout.astro_astro_type_script_index_0_lang.DPDlXZ5o.js} +1 -1
  10. package/dist/client/_astro/{FieldGroupEditor.DsqphEgt.js → FieldGroupEditor.BBEN5r2U.js} +3 -3
  11. package/dist/client/_astro/{FieldGroupList.pW2Um9om.js → FieldGroupList.BatiQHnf.js} +1 -1
  12. package/dist/client/_astro/FieldRenderer.BeF5CSJf.js +3 -0
  13. package/dist/client/_astro/{Footer.5Lcn2VXz.js → Footer.BdwB3qmM.js} +1 -1
  14. package/dist/client/_astro/{GeneralSettings.B-H8Rzy7.js → GeneralSettings.BCfrxm6Z.js} +1 -1
  15. package/dist/client/_astro/{LogsManager.Crd8q2te.js → LogsManager.Bs5CSVoj.js} +1 -1
  16. package/dist/client/_astro/{MediaLibrary.Cv6Ry3u9.js → MediaLibrary.CHn5f4-T.js} +1 -1
  17. package/dist/client/_astro/{MenuManager.D25ika09.js → MenuManager.C6SrDqdC.js} +1 -1
  18. package/dist/client/_astro/{Modal.572hmVvb.js → Modal.DdoTYkUe.js} +1 -1
  19. package/dist/client/_astro/PluginManager.BLpO1lc5.js +112 -0
  20. package/dist/client/_astro/PluginPageHost.CuXn-tn7.js +1 -0
  21. package/dist/client/_astro/{PostTypesManager.C3RbmOZT.js → PostTypesManager.B6XdeNQH.js} +1 -1
  22. package/dist/client/_astro/{QuickDraftWidget.BtSGzhKq.js → QuickDraftWidget.COnmqwEP.js} +1 -1
  23. package/dist/client/_astro/{ReadingSettings.ZFDaeo5U.js → ReadingSettings.dAD5fTqQ.js} +1 -1
  24. package/dist/client/_astro/{ResourceHubs.Cx9fbCv1.js → ResourceHubs.B6txFjmO.js} +1 -1
  25. package/dist/client/_astro/{TaxonomiesManager.BLsvmjaL.js → TaxonomiesManager.CUiXA1--.js} +1 -1
  26. package/dist/client/_astro/{TaxonomyTermsManager.C_xEh8Ab.js → TaxonomyTermsManager.egxIFsFi.js} +1 -1
  27. package/dist/client/_astro/{ThemeCustomizer.yx8rEKcL.js → ThemeCustomizer.Bh3Gj0ud.js} +10 -10
  28. package/dist/client/_astro/{ThemeManager.BpS3m7Qc.js → ThemeManager.UG7ieOYF.js} +1 -1
  29. package/dist/client/_astro/{UserCreateForm.BYwgAqKk.js → UserCreateForm.CTbVVXjg.js} +1 -1
  30. package/dist/client/_astro/{UsersManager.DODMr48D.js → UsersManager.Dk2kJsYG.js} +1 -1
  31. package/dist/client/_astro/{WebhooksManager.DmWIW272.js → WebhooksManager.DTMl6Bm7.js} +1 -1
  32. package/dist/client/_astro/{api.53l1ob4Z.js → api.fpBzBw4U.js} +1 -1
  33. package/dist/client/_astro/extensions.DZ7iomLj.js +1 -0
  34. package/dist/client/_astro/i18n.DQYU1D_P.js +1 -0
  35. package/dist/client/_astro/{login.astro_astro_type_script_index_0_lang.BLf2Iun3.js → login.astro_astro_type_script_index_0_lang.DA827d72.js} +1 -1
  36. package/dist/client/_astro/{pt-BR.zZcF2v3X.js → pt-BR.C041vzOT.js} +1 -1
  37. package/dist/client/_astro/slots.CSARb9TW.js +1 -0
  38. package/dist/client/_astro/store.CjNcmZUB.js +1 -0
  39. package/dist/server/chunks/{404_BjHJCErQ.mjs → 404_vQwudBEj.mjs} +1 -1
  40. package/dist/server/chunks/{BaseLayout_DrIrAANk.mjs → BaseLayout_CJGULIpb.mjs} +3 -3
  41. package/dist/server/chunks/{ContentEditor_BhXk6xd0.mjs → ContentEditor_D3hp0Gyo.mjs} +49 -11
  42. package/dist/server/chunks/{DashboardLayout_DxMWAFCu.mjs → DashboardLayout_DvfGK5S9.mjs} +20 -17
  43. package/dist/server/chunks/{FieldRenderer_CD8prpXz.mjs → FieldRenderer_hN7BJpMp.mjs} +6 -6
  44. package/dist/server/chunks/{MediaLibrary_BY9b_CPa.mjs → MediaLibrary_BP42MRyJ.mjs} +2 -2
  45. package/dist/server/chunks/{Modal_BmuvdwoB.mjs → Modal_Ch2TxBxO.mjs} +1 -1
  46. package/dist/server/chunks/_.._DuD24v6o.mjs +76 -0
  47. package/dist/server/chunks/{_id__BeIHLdfs.mjs → _id__DK_jXL1Q.mjs} +4 -4
  48. package/dist/server/chunks/{access_ClmMoH40.mjs → access_pGLFLBaE.mjs} +3 -3
  49. package/dist/server/chunks/{api-keys_DLbrSM4U.mjs → api-keys_BPiWCywt.mjs} +3 -3
  50. package/dist/server/chunks/{comments_Cg1jrxti.mjs → comments_HtxLK4Vu.mjs} +2 -2
  51. package/dist/server/chunks/{custom-fields_CVJsfyk6.mjs → custom-fields_CLqVsj2N.mjs} +2 -2
  52. package/dist/server/chunks/{customize_BW-P44BY.mjs → customize_C8xbYnPi.mjs} +123 -43
  53. package/dist/server/chunks/{edit_DdmQd4K3.mjs → edit_CHln4Kd_.mjs} +2 -2
  54. package/dist/server/chunks/{i18n_C-sgJSi1.mjs → i18n_BlAR9yiz.mjs} +23 -2
  55. package/dist/server/chunks/{index_BSQio-Py.mjs → index_BiKJEUK6.mjs} +2 -2
  56. package/dist/server/chunks/{index_Bv2fgBnE.mjs → index_CNk9hfS_.mjs} +3 -3
  57. package/dist/server/chunks/{index_DxNPNwIw.mjs → index_COr5MHJ7.mjs} +2 -2
  58. package/dist/server/chunks/{index_BktteRMy.mjs → index_DK_fTf2_.mjs} +2 -2
  59. package/dist/server/chunks/{index_Bw0pBVRv.mjs → index_T7SwCQJ9.mjs} +2 -2
  60. package/dist/server/chunks/{login_BCRPUCQz.mjs → login_4_AiN3uA.mjs} +1 -1
  61. package/dist/server/chunks/{logs_DlzM1kpI.mjs → logs_BnmhxL0Y.mjs} +2 -2
  62. package/dist/server/chunks/{menus_pMKatAHX.mjs → menus_CnlArgBT.mjs} +2 -2
  63. package/dist/server/chunks/{new_C9JrPY2y.mjs → new_BLx19-Ni.mjs} +2 -2
  64. package/dist/server/chunks/{new_B3cNZZO2.mjs → new_CtlziJrk.mjs} +2 -2
  65. package/dist/server/chunks/{plugins_BTPNe18c.mjs → plugins_CgMxXTGS.mjs} +13 -5
  66. package/dist/server/chunks/{post-types_DIYWDXCR.mjs → post-types_cQc2Msvm.mjs} +2 -2
  67. package/dist/server/chunks/{pt-BR_AVNE88MZ.mjs → pt-BR_B8bZo1Id.mjs} +7 -1
  68. package/dist/server/chunks/{reading_BBV5Dsg0.mjs → reading_0A4laJFd.mjs} +2 -2
  69. package/dist/server/chunks/{taxonomies_G6ROt7Dn.mjs → taxonomies_CiAk4uQu.mjs} +2 -2
  70. package/dist/server/chunks/{taxonomy_B59mViQc.mjs → taxonomy_C1yrRsga.mjs} +3 -3
  71. package/dist/server/chunks/{themes_CygkZJbP.mjs → themes_C8eP1zzS.mjs} +2 -2
  72. package/dist/server/chunks/{upload_BOPk3diJ.mjs → upload_BNO83SEC.mjs} +2 -2
  73. package/dist/server/chunks/{webhooks_BiHf1cMk.mjs → webhooks_BQe0fs4j.mjs} +2 -2
  74. package/dist/server/entry.mjs +43 -43
  75. package/dist/server/virtual_astro_middleware.mjs +1 -1
  76. package/package.json +3 -3
  77. package/dist/client/_astro/ContentEditor.BlsJ2bwD.js +0 -1
  78. package/dist/client/_astro/ContentTypeWorkspace.BPVuQgzA.js +0 -1
  79. package/dist/client/_astro/FieldRenderer.AYtSBfHZ.js +0 -3
  80. package/dist/client/_astro/PluginManager.DLfgQFPF.js +0 -112
  81. package/dist/client/_astro/extensions.DzQcQsO9.js +0 -1
  82. package/dist/client/_astro/i18n.A82w5XQu.js +0 -1
  83. package/dist/client/_astro/preload-helper.oCYlU9a4.js +0 -1
  84. package/dist/client/_astro/store.DLCqLxBR.js +0 -1
  85. package/dist/server/chunks/_slug__Dsz2U4cu.mjs +0 -34
@@ -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_C-sgJSi1.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_DxMWAFCu.mjs";
6
- import { n as isFieldVisible } from "./FieldRenderer_CD8prpXz.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BlAR9yiz.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_DvfGK5S9.mjs";
6
+ import { n as isFieldVisible } from "./FieldRenderer_hN7BJpMp.mjs";
7
7
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
8
8
  import { createComponent, escape, memo, ssr, ssrAttribute, ssrHydrationKey, ssrStyleProperty } from "solid-js/web";
9
9
  import { For, Show, createMemo, createSignal, onMount } from "solid-js";
@@ -362,17 +362,17 @@ var _tmpl$8$3 = [
362
362
  "<!--/--><!--$-->",
363
363
  "<!--/--><style>\n .media-picker-customizer { position: relative; }\n .media-picker-customizer__trigger {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n border: 1px solid var(--color-border);\n border-radius: var(--radius-md);\n background: var(--color-white);\n color: var(--color-text);\n cursor: pointer;\n transition: all 0.15s ease;\n min-width: 200px;\n }\n .media-picker-customizer__trigger:hover {\n border-color: var(--color-primary);\n }\n .media-picker-customizer__icon { font-size: 1.25rem; }\n .media-picker-customizer__text { flex: 1; font-size: 0.875rem; }\n .media-picker-customizer__label { font-size: 0.75rem; color: var(--color-muted); }\n .media-picker-customizer__error { color: var(--color-error); font-size: 0.75rem; margin-top: 0.25rem; }\n .media-picker-customizer__modal-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n padding: 1rem;\n }\n .media-picker-customizer__modal {\n background: var(--color-white);\n border-radius: var(--radius-lg);\n box-shadow: var(--shadow-xl);\n width: 100%;\n max-width: 900px;\n max-height: 90vh;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n .media-picker-customizer__modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 1rem;\n border-bottom: 1px solid var(--color-border);\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n .media-picker-customizer__modal-header h3 { margin: 0; font-size: 1rem; }\n .media-picker-customizer__modal-actions { display: flex; gap: 0.5rem; }\n .media-picker-customizer__upload-btn { position: relative; }\n .media-picker-customizer__upload-btn input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }\n .media-picker-customizer__toolbar {\n display: flex;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n border-bottom: 1px solid var(--color-border);\n flex-wrap: wrap;\n align-items: center;\n }\n .media-picker-customizer__toolbar input[type=\"text\"] { flex: 1; min-width: 200px; }\n .media-picker-customizer__dropzone {\n padding: 2rem;\n border: 2px dashed var(--color-border);\n border-radius: var(--radius-md);\n margin: 1rem;\n text-align: center;\n transition: all 0.15s ease;\n }\n .media-picker-customizer__dropzone.drag-over {\n border-color: var(--color-primary);\n background: var(--color-primary-soft);\n }\n .media-picker-customizer__dropzone input[type=\"file\"] { display: none; }\n .media-picker-customizer__dropzone-text { color: var(--color-muted); font-size: 0.875rem; }\n .media-picker-customizer__grid {\n flex: 1;\n overflow-y: auto;\n padding: 1rem;\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));\n gap: 0.75rem;\n }\n .media-picker-customizer__item {\n border: 2px solid var(--color-border);\n border-radius: var(--radius-md);\n overflow: hidden;\n cursor: pointer;\n transition: all 0.15s ease;\n background: var(--color-white);\n }\n .media-picker-customizer__item:hover { border-color: var(--color-primary); }\n .media-picker-customizer__item.selected {\n border-color: var(--color-primary);\n box-shadow: 0 0 0 2px var(--color-primary);\n }\n .media-picker-customizer__preview {\n aspect-ratio: 16/9;\n background: #f5f5f5;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n overflow: hidden;\n }\n .media-picker-customizer__preview img { width: 100%; height: 100%; object-fit: cover; }\n .media-picker-customizer__icon-large { font-size: 3rem; color: var(--color-muted); }\n .media-picker-customizer__checkmark {\n position: absolute;\n top: 0.5rem;\n right: 0.5rem;\n background: var(--color-primary);\n color: white;\n width: 1.5rem;\n height: 1.5rem;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: bold;\n }\n .media-picker-customizer__info { padding: 0.5rem; }\n .media-picker-customizer__name { display: block; font-size: 0.75rem; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n .media-picker-customizer__meta { display: block; font-size: 0.625rem; color: var(--color-muted); margin-top: 0.125rem; }\n .media-picker-customizer__empty { grid-column: 1 / -1; padding: 3rem; text-align: center; color: var(--color-muted); }\n .media-picker-customizer__pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; padding: 1rem; border-top: 1px solid var(--color-border); font-size: 0.8125rem; color: var(--color-muted); }\n </style></div>"
364
364
  ];
365
- var _tmpl$9$2 = [
365
+ var _tmpl$9$3 = [
366
366
  "<span",
367
367
  " class=\"media-picker-customizer__label\">",
368
368
  "</span>"
369
369
  ];
370
- var _tmpl$0$2 = [
370
+ var _tmpl$0$3 = [
371
371
  "<div",
372
372
  " class=\"media-picker-customizer__error\">",
373
373
  "</div>"
374
374
  ];
375
- var _tmpl$1$2 = [
375
+ var _tmpl$1$3 = [
376
376
  "<div",
377
377
  " class=\"",
378
378
  "\"><div class=\"media-picker-customizer__preview\"><!--$-->",
@@ -388,7 +388,7 @@ var _tmpl$11$2 = [
388
388
  " class=\"media-picker-customizer__icon-large\">",
389
389
  "</div>"
390
390
  ];
391
- var _tmpl$12$1 = ["<div", " class=\"media-picker-customizer__checkmark\">✓</div>"];
391
+ var _tmpl$12$2 = ["<div", " class=\"media-picker-customizer__checkmark\">✓</div>"];
392
392
  var _tmpl$13$1 = [
393
393
  "<div",
394
394
  " class=\"media-picker-customizer__empty\">",
@@ -463,7 +463,7 @@ function MediaPickerCustomizer(props) {
463
463
  }
464
464
  };
465
465
  const isSelected = (mediaId) => selectedIds().includes(mediaId);
466
- return ssr(_tmpl$8$3, ssrHydrationKey(), selectedIds().length > 0 ? `${escape(selectedIds().length)} mídia(s) selecionada(s)` : escape(placeholder), label && ssr(_tmpl$9$2, ssrHydrationKey(), escape(label)), error() && ssr(_tmpl$0$2, ssrHydrationKey(), escape(error())), escape(createComponent(Show, {
466
+ return ssr(_tmpl$8$3, ssrHydrationKey(), selectedIds().length > 0 ? `${escape(selectedIds().length)} mídia(s) selecionada(s)` : escape(placeholder), label && ssr(_tmpl$9$3, ssrHydrationKey(), escape(label)), error() && ssr(_tmpl$0$3, ssrHydrationKey(), escape(error())), escape(createComponent(Show, {
467
467
  get when() {
468
468
  return showModal();
469
469
  },
@@ -490,7 +490,7 @@ function MediaPickerCustomizer(props) {
490
490
  get each() {
491
491
  return items();
492
492
  },
493
- children: (media) => ssr(_tmpl$1$2, ssrHydrationKey(), `media-picker-customizer__item ${isSelected(media.id) ? "selected" : ""}`, isImage(media) ? ssr(_tmpl$10$2, ssrHydrationKey() + ssrAttribute("src", escape(mediaUrl(media), true), false)) : ssr(_tmpl$11$2, ssrHydrationKey(), escape(getMediaIcon(media))), isSelected(media.id) && _tmpl$12$1[0] + ssrHydrationKey() + _tmpl$12$1[1], escape(media.title || media.filename), escape(formatSize(media.size)), escape(media.mime_type))
493
+ children: (media) => ssr(_tmpl$1$3, ssrHydrationKey(), `media-picker-customizer__item ${isSelected(media.id) ? "selected" : ""}`, isImage(media) ? ssr(_tmpl$10$2, ssrHydrationKey() + ssrAttribute("src", escape(mediaUrl(media), true), false)) : ssr(_tmpl$11$2, ssrHydrationKey(), escape(getMediaIcon(media))), isSelected(media.id) && _tmpl$12$2[0] + ssrHydrationKey() + _tmpl$12$2[1], escape(media.title || media.filename), escape(formatSize(media.size)), escape(media.mime_type))
494
494
  })), items().length === 0 && ssr(_tmpl$13$1, ssrHydrationKey(), total() === 0 ? escape(t("media.picker.empty")) : escape(t("media.picker.noResults"))), escape(createComponent(Show, {
495
495
  get when() {
496
496
  return total() > limit;
@@ -753,17 +753,17 @@ var _tmpl$8$2 = [
753
753
  " type=\"button\"",
754
754
  " aria-label=\"Tachado\"><s>S</s></button>"
755
755
  ];
756
- var _tmpl$9$1 = [
756
+ var _tmpl$9$2 = [
757
757
  "<button",
758
758
  " type=\"button\"",
759
759
  " aria-label=\"Bloco de citação\">❝</button>"
760
760
  ];
761
- var _tmpl$0$1 = [
761
+ var _tmpl$0$2 = [
762
762
  "<button",
763
763
  " type=\"button\"",
764
764
  " aria-label=\"Código\">&lt;pre></button>"
765
765
  ];
766
- var _tmpl$1$1 = [
766
+ var _tmpl$1$2 = [
767
767
  "<button",
768
768
  " type=\"button\"",
769
769
  " aria-label=\"Lista com marcadores\">• Lista</button>"
@@ -778,7 +778,7 @@ var _tmpl$11$1 = [
778
778
  " type=\"button\"",
779
779
  " aria-label=\"Inserir link (Ctrl+K)\">🔗</button>"
780
780
  ];
781
- var _tmpl$12 = [
781
+ var _tmpl$12$1 = [
782
782
  "<button",
783
783
  " type=\"button\"",
784
784
  " aria-label=\"Remover link\">🔗✕</button>"
@@ -856,7 +856,7 @@ function RichTextEditor(props) {
856
856
  const editor = editorRef();
857
857
  if (editor && editor.innerHTML !== value) editor.innerHTML = value;
858
858
  });
859
- return ssr(_tmpl$$3, ssrHydrationKey(), ssrAttribute("aria-label", toolbar.formatBlock ? "Editor de texto rico" : "", false), toolbar.formatBlock && ssr(_tmpl$2$3, ssrHydrationKey(), ssrAttribute("aria-label", toolbar.formatBlock ? "Formato de bloco" : "", false), ssrAttribute("disabled", disabled, true), escape(FORMAT_BLOCK_OPTIONS.map((opt) => ssr(_tmpl$3$3, ssrHydrationKey() + ssrAttribute("value", escape(opt.value, true), false), escape(opt.label))))), toolbar.formatBlock && _tmpl$4$3[0] + ssrHydrationKey() + _tmpl$4$3[1], toolbar.bold && ssr(_tmpl$5$3, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), toolbar.italic && ssr(_tmpl$6$2, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), toolbar.underline && ssr(_tmpl$7$2, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), toolbar.strikeThrough && ssr(_tmpl$8$2, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), (toolbar.bold || toolbar.italic || toolbar.underline || toolbar.strikeThrough) && _tmpl$4$3[0] + ssrHydrationKey() + _tmpl$4$3[1], toolbar.blockquote && ssr(_tmpl$9$1, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), toolbar.code && ssr(_tmpl$0$1, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), (toolbar.blockquote || toolbar.code) && _tmpl$4$3[0] + ssrHydrationKey() + _tmpl$4$3[1], toolbar.unorderedList && ssr(_tmpl$1$1, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), toolbar.orderedList && ssr(_tmpl$10$1, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), (toolbar.unorderedList || toolbar.orderedList) && _tmpl$4$3[0] + ssrHydrationKey() + _tmpl$4$3[1], toolbar.link && ssr(_tmpl$11$1, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), toolbar.unlink && ssr(_tmpl$12, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), (toolbar.link || toolbar.unlink) && _tmpl$4$3[0] + ssrHydrationKey() + _tmpl$4$3[1], toolbar.undo && ssr(_tmpl$13, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), toolbar.redo && ssr(_tmpl$14, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), toolbar.removeFormat && ssr(_tmpl$15, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), ssrAttribute("contenteditable", !disabled, false), ssrAttribute("aria-label", escape(placeholder, true), false) + ssrAttribute("data-placeholder", escape(placeholder, true), false), value);
859
+ return ssr(_tmpl$$3, ssrHydrationKey(), ssrAttribute("aria-label", toolbar.formatBlock ? "Editor de texto rico" : "", false), toolbar.formatBlock && ssr(_tmpl$2$3, ssrHydrationKey(), ssrAttribute("aria-label", toolbar.formatBlock ? "Formato de bloco" : "", false), ssrAttribute("disabled", disabled, true), escape(FORMAT_BLOCK_OPTIONS.map((opt) => ssr(_tmpl$3$3, ssrHydrationKey() + ssrAttribute("value", escape(opt.value, true), false), escape(opt.label))))), toolbar.formatBlock && _tmpl$4$3[0] + ssrHydrationKey() + _tmpl$4$3[1], toolbar.bold && ssr(_tmpl$5$3, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), toolbar.italic && ssr(_tmpl$6$2, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), toolbar.underline && ssr(_tmpl$7$2, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), toolbar.strikeThrough && ssr(_tmpl$8$2, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), (toolbar.bold || toolbar.italic || toolbar.underline || toolbar.strikeThrough) && _tmpl$4$3[0] + ssrHydrationKey() + _tmpl$4$3[1], toolbar.blockquote && ssr(_tmpl$9$2, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), toolbar.code && ssr(_tmpl$0$2, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), (toolbar.blockquote || toolbar.code) && _tmpl$4$3[0] + ssrHydrationKey() + _tmpl$4$3[1], toolbar.unorderedList && ssr(_tmpl$1$2, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), toolbar.orderedList && ssr(_tmpl$10$1, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), (toolbar.unorderedList || toolbar.orderedList) && _tmpl$4$3[0] + ssrHydrationKey() + _tmpl$4$3[1], toolbar.link && ssr(_tmpl$11$1, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), toolbar.unlink && ssr(_tmpl$12$1, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), (toolbar.link || toolbar.unlink) && _tmpl$4$3[0] + ssrHydrationKey() + _tmpl$4$3[1], toolbar.undo && ssr(_tmpl$13, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), toolbar.redo && ssr(_tmpl$14, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), toolbar.removeFormat && ssr(_tmpl$15, ssrHydrationKey(), ssrAttribute("disabled", disabled, true)), ssrAttribute("contenteditable", !disabled, false), ssrAttribute("aria-label", escape(placeholder, true), false) + ssrAttribute("data-placeholder", escape(placeholder, true), false), value);
860
860
  }
861
861
  //#endregion
862
862
  //#region src/components/shared/GroupCustomizer.tsx
@@ -968,6 +968,22 @@ var _tmpl$7$1 = [
968
968
  ">"
969
969
  ];
970
970
  var _tmpl$8$1 = [
971
+ "<select",
972
+ " class=\"input\"",
973
+ "><option value>Select an option</option><!--$-->",
974
+ "<!--/--></select>"
975
+ ];
976
+ var _tmpl$9$1 = [
977
+ "<option",
978
+ ">",
979
+ "</option>"
980
+ ];
981
+ var _tmpl$0$1 = [
982
+ "<label",
983
+ " class=\"checkbox-label\"><input type=\"checkbox\"",
984
+ "> Enabled</label>"
985
+ ];
986
+ var _tmpl$1$1 = [
971
987
  "<div",
972
988
  " class=\"field-renderer__fallback\"><span>Unsupported field type: <!--$-->",
973
989
  "<!--/--></span><!--$-->",
@@ -997,6 +1013,16 @@ function SlugInput(props) {
997
1013
  function ColorInput(props) {
998
1014
  return ssr(_tmpl$7$1, ssrHydrationKey(), ssrAttribute("value", escape(props.value, true), false));
999
1015
  }
1016
+ function SelectInput(props) {
1017
+ return ssr(_tmpl$8$1, ssrHydrationKey(), ssrAttribute("value", escape(String(props.value ?? ""), true), false), escape((props.field.options ?? []).map((option) => {
1018
+ const value = typeof option === "string" ? option : option.value;
1019
+ const label = typeof option === "string" ? option : option.label;
1020
+ return ssr(_tmpl$9$1, ssrHydrationKey() + ssrAttribute("value", escape(value, true), false), escape(label));
1021
+ })));
1022
+ }
1023
+ function CheckboxInput(props) {
1024
+ return ssr(_tmpl$0$1, ssrHydrationKey(), ssrAttribute("checked", props.value === true, true));
1025
+ }
1000
1026
  function FieldRendererFactory(props) {
1001
1027
  const { field, value, onChange } = props;
1002
1028
  const type = field.type;
@@ -1042,6 +1068,17 @@ function FieldRendererFactory(props) {
1042
1068
  return field.placeholder;
1043
1069
  }
1044
1070
  });
1071
+ case "select": return createComponent(SelectInput, {
1072
+ field,
1073
+ value,
1074
+ onChange
1075
+ });
1076
+ case "checkbox":
1077
+ case "toggle": return createComponent(CheckboxInput, {
1078
+ value,
1079
+ onChange
1080
+ });
1081
+ case "color":
1045
1082
  case "color_picker": return createComponent(ColorInput, {
1046
1083
  value,
1047
1084
  onChange
@@ -1131,6 +1168,20 @@ function FieldRendererFactory(props) {
1131
1168
  return field.placeholder;
1132
1169
  }
1133
1170
  });
1171
+ case "gallery": return createComponent(MediaPickerCustomizer, {
1172
+ value,
1173
+ onChange,
1174
+ multiple: true,
1175
+ get accept() {
1176
+ return field.accept;
1177
+ },
1178
+ get label() {
1179
+ return field.label;
1180
+ },
1181
+ get placeholder() {
1182
+ return field.placeholder;
1183
+ }
1184
+ });
1134
1185
  case "group": return createComponent(GroupCustomizer, {
1135
1186
  value,
1136
1187
  onChange,
@@ -1202,7 +1253,7 @@ function FieldRendererFactory(props) {
1202
1253
  return field.maxRows;
1203
1254
  }
1204
1255
  });
1205
- default: return ssr(_tmpl$8$1, ssrHydrationKey(), escape(type), escape(createComponent(SimpleInput, {
1256
+ default: return ssr(_tmpl$1$1, ssrHydrationKey(), escape(type), escape(createComponent(SimpleInput, {
1206
1257
  value: value || "",
1207
1258
  onChange,
1208
1259
  get placeholder() {
@@ -1215,57 +1266,63 @@ function FieldRendererFactory(props) {
1215
1266
  //#region src/components/apps/themes/ThemeCustomizer.tsx
1216
1267
  var _tmpl$ = [
1217
1268
  "<div",
1218
- "><div class=\"customizer__tabs\" role=\"tablist\">",
1219
- "</div><div class=\"customizer__tab-panels\">",
1220
- "</div></div>"
1269
+ " class=\"customizer__tab-panel\" role=\"tabpanel\">",
1270
+ "</div>"
1221
1271
  ];
1222
1272
  var _tmpl$2 = [
1273
+ "<div",
1274
+ "><div class=\"customizer__tabs\" role=\"tablist\">",
1275
+ "</div><div class=\"customizer__tab-panels\"><!--$-->",
1276
+ "<!--/--><!--$-->",
1277
+ "<!--/--></div></div>"
1278
+ ];
1279
+ var _tmpl$3 = [
1223
1280
  "<button",
1224
1281
  " class=\"",
1225
1282
  "\" role=\"tab\"",
1226
1283
  ">",
1227
1284
  "</button>"
1228
1285
  ];
1229
- var _tmpl$3 = [
1286
+ var _tmpl$4 = [
1230
1287
  "<div",
1231
1288
  " class=\"customizer__tab-panel\" role=\"tabpanel\"",
1232
1289
  ">",
1233
1290
  "</div>"
1234
1291
  ];
1235
- var _tmpl$4 = [
1292
+ var _tmpl$5 = [
1236
1293
  "<div",
1237
1294
  " class=\"customizer__field\"><label for=\"",
1238
1295
  "\">",
1239
1296
  "</label><!--$-->",
1240
1297
  "<!--/--></div>"
1241
1298
  ];
1242
- var _tmpl$5 = [
1299
+ var _tmpl$6 = [
1243
1300
  "<div",
1244
1301
  "><!--$-->",
1245
1302
  "<!--/--><!--$-->",
1246
1303
  "<!--/--></div>"
1247
1304
  ];
1248
- var _tmpl$6 = [
1305
+ var _tmpl$7 = [
1249
1306
  "<div",
1250
1307
  " class=\"customizer__accordion\">",
1251
1308
  "</div>"
1252
1309
  ];
1253
- var _tmpl$7 = [
1310
+ var _tmpl$8 = [
1254
1311
  "<p",
1255
1312
  " class=\"muted\">",
1256
1313
  "</p>"
1257
1314
  ];
1258
- var _tmpl$8 = [
1315
+ var _tmpl$9 = [
1259
1316
  "<span",
1260
1317
  " class=\"customizer__saved\">",
1261
1318
  "</span>"
1262
1319
  ];
1263
- var _tmpl$9 = [
1320
+ var _tmpl$0 = [
1264
1321
  "<div",
1265
1322
  " class=\"alert alert-error\">",
1266
1323
  "</div>"
1267
1324
  ];
1268
- var _tmpl$0 = [
1325
+ var _tmpl$1 = [
1269
1326
  "<div",
1270
1327
  " class=\"customizer__layout\"><aside class=\"customizer__panel\"><h3><!--$-->",
1271
1328
  "<!--/--> · <!--$-->",
@@ -1284,13 +1341,13 @@ var _tmpl$0 = [
1284
1341
  "></div><iframe class=\"customizer__frame\"",
1285
1342
  "></iframe></section></div>"
1286
1343
  ];
1287
- var _tmpl$1 = [
1344
+ var _tmpl$10 = [
1288
1345
  "<div",
1289
1346
  " class=\"customizer\"><!--$-->",
1290
1347
  "<!--/--><style>\n .customizer__layout {\n display: grid;\n grid-template-columns: minmax(280px, 340px) 1fr;\n gap: 1.25rem;\n align-items: start;\n }\n .customizer__panel {\n background: var(--color-surface);\n border: 1px solid var(--color-border);\n border-radius: var(--radius-lg);\n padding: 1.25rem;\n display: flex;\n flex-direction: column;\n gap: 0.85rem;\n position: sticky;\n top: 1rem;\n }\n .customizer__panel h3 { margin: 0; font-size: 1rem; }\n .customizer__field { display: flex; flex-direction: column; gap: 0.3rem; }\n .customizer__field label { font-size: 0.75rem; font-weight: 600; color: var(--color-text); }\n .customizer__color { height: 2.25rem; padding: 0.15rem; }\n .customizer__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }\n .customizer__saved { font-size: 0.75rem; color: var(--color-success); }\n .customizer__hint { font-size: 0.75rem; margin: 0; }\n .customizer__preview {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n min-width: 0;\n }\n .customizer__preview-bar { display: flex; gap: 0.5rem; }\n .customizer__frame {\n width: 100%;\n height: min(72vh, 780px);\n border: 1px solid var(--color-border);\n border-radius: var(--radius-md);\n background: var(--color-white);\n }\n .alert-error {\n background: var(--color-error-soft);\n color: var(--color-error);\n border: 1px solid var(--color-error);\n padding: 0.75rem 1rem;\n border-radius: var(--radius-md);\n }\n .empty-state { padding: 3rem; text-align: center; color: var(--color-muted); }\n .skeleton { padding: 2rem; text-align: center; color: var(--color-muted); }\n </style></div>"
1291
1348
  ];
1292
- var _tmpl$10 = ["<div", " class=\"skeleton\">Loading...</div>"];
1293
- var _tmpl$11 = [
1349
+ var _tmpl$11 = ["<div", " class=\"skeleton\">Loading...</div>"];
1350
+ var _tmpl$12 = [
1294
1351
  "<div",
1295
1352
  " class=\"empty-state\"><!--$-->",
1296
1353
  "<!--/--> <a class=\"btn btn-secondary\" href=\"/themes\">",
@@ -1428,15 +1485,17 @@ function ThemeCustomizer() {
1428
1485
  const previewUrl = () => {
1429
1486
  const base = previewPath() || "/";
1430
1487
  const encoded = encodeURIComponent(JSON.stringify(draft()));
1431
- return `${base}${base.includes("?") ? "&" : "?"}preview_settings=${encoded}&_=${previewNonce()}`;
1488
+ const separator = base.includes("?") ? "&" : "?";
1489
+ const themeName = selectedTheme()?.name;
1490
+ return `${base}${separator}preview_settings=${encoded}${themeName ? `&preview_theme=${encodeURIComponent(themeName)}` : ""}&_=${previewNonce()}`;
1432
1491
  };
1433
1492
  const settingsPanel = createMemo(() => {
1434
1493
  const groups = fieldGroups();
1435
- if (groups.groups.length > 0) return ssr(_tmpl$, ssrHydrationKey(), escape(groups.groups.map(([groupName]) => ssr(_tmpl$2, ssrHydrationKey(), `customizer__tab ${activeTab() === groupName ? "active" : ""}`, ssrAttribute("aria-selected", escape(activeTab(), true) === escape(groupName, true), false), escape(groupName)))), escape(groups.groups.map(([groupName, groupFields]) => ssr(_tmpl$3, ssrHydrationKey(), ssrAttribute("hidden", activeTab() !== groupName, true), escape(createComponent(For, {
1494
+ if (groups.groups.length > 0) return ssr(_tmpl$2, ssrHydrationKey(), escape(groups.groups.map(([groupName]) => ssr(_tmpl$3, ssrHydrationKey(), `customizer__tab ${activeTab() === groupName ? "active" : ""}`, ssrAttribute("aria-selected", escape(activeTab(), true) === escape(groupName, true), false), escape(groupName)))), escape(groups.groups.map(([groupName, groupFields]) => ssr(_tmpl$4, ssrHydrationKey(), ssrAttribute("hidden", activeTab() !== groupName, true), escape(createComponent(For, {
1436
1495
  each: groupFields,
1437
1496
  children: (field) => {
1438
1497
  const config = toCustomFieldConfig(field);
1439
- return ssr(_tmpl$4, ssrHydrationKey(), `customizer-${escape(field.name, true)}`, escape(field.label || field.name), escape(createComponent(FieldRendererFactory, {
1498
+ return ssr(_tmpl$5, ssrHydrationKey(), `customizer-${escape(field.name, true)}`, escape(field.label || field.name), escape(createComponent(FieldRendererFactory, {
1440
1499
  field: config,
1441
1500
  get value() {
1442
1501
  return draft()[field.name];
@@ -1444,14 +1503,35 @@ function ThemeCustomizer() {
1444
1503
  onChange: (val) => setDraftValue(field.name, val)
1445
1504
  })));
1446
1505
  }
1447
- }))))));
1448
- return ssr(_tmpl$5, ssrHydrationKey(), groups.groups.length === 1 && groups.groups[0] && ssr(_tmpl$6, ssrHydrationKey(), escape(createComponent(For, {
1506
+ }))))), escape(createComponent(Show, {
1507
+ get when() {
1508
+ return groups.ungrouped.length > 0;
1509
+ },
1510
+ get children() {
1511
+ return ssr(_tmpl$, ssrHydrationKey(), escape(createComponent(For, {
1512
+ get each() {
1513
+ return groups.ungrouped;
1514
+ },
1515
+ children: (field) => {
1516
+ const config = toCustomFieldConfig(field);
1517
+ return ssr(_tmpl$5, ssrHydrationKey(), `customizer-${escape(field.name, true)}`, escape(field.label || field.name), escape(createComponent(FieldRendererFactory, {
1518
+ field: config,
1519
+ get value() {
1520
+ return draft()[field.name];
1521
+ },
1522
+ onChange: (val) => setDraftValue(field.name, val)
1523
+ })));
1524
+ }
1525
+ })));
1526
+ }
1527
+ })));
1528
+ return ssr(_tmpl$6, ssrHydrationKey(), groups.groups.length === 1 && groups.groups[0] && ssr(_tmpl$7, ssrHydrationKey(), escape(createComponent(For, {
1449
1529
  get each() {
1450
1530
  return groups.groups[0][1];
1451
1531
  },
1452
1532
  children: (field) => {
1453
1533
  const config = toCustomFieldConfig(field);
1454
- return ssr(_tmpl$4, ssrHydrationKey(), `customizer-${escape(field.name, true)}`, escape(field.label || field.name), escape(createComponent(FieldRendererFactory, {
1534
+ return ssr(_tmpl$5, ssrHydrationKey(), `customizer-${escape(field.name, true)}`, escape(field.label || field.name), escape(createComponent(FieldRendererFactory, {
1455
1535
  field: config,
1456
1536
  get value() {
1457
1537
  return draft()[field.name];
@@ -1465,7 +1545,7 @@ function ThemeCustomizer() {
1465
1545
  },
1466
1546
  children: (field) => {
1467
1547
  const config = toCustomFieldConfig(field);
1468
- return ssr(_tmpl$4, ssrHydrationKey(), `customizer-${escape(field.name, true)}`, escape(field.label || field.name), escape(createComponent(FieldRendererFactory, {
1548
+ return ssr(_tmpl$5, ssrHydrationKey(), `customizer-${escape(field.name, true)}`, escape(field.label || field.name), escape(createComponent(FieldRendererFactory, {
1469
1549
  field: config,
1470
1550
  get value() {
1471
1551
  return draft()[field.name];
@@ -1475,12 +1555,12 @@ function ThemeCustomizer() {
1475
1555
  }
1476
1556
  })));
1477
1557
  });
1478
- return ssr(_tmpl$1, ssrHydrationKey(), escape(createComponent(Show, {
1558
+ return ssr(_tmpl$10, ssrHydrationKey(), escape(createComponent(Show, {
1479
1559
  get when() {
1480
1560
  return !loading();
1481
1561
  },
1482
1562
  get fallback() {
1483
- return ssr(_tmpl$10, ssrHydrationKey());
1563
+ return ssr(_tmpl$11, ssrHydrationKey());
1484
1564
  },
1485
1565
  get children() {
1486
1566
  return createComponent(Show, {
@@ -1488,29 +1568,29 @@ function ThemeCustomizer() {
1488
1568
  return selectedTheme();
1489
1569
  },
1490
1570
  get fallback() {
1491
- return ssr(_tmpl$11, ssrHydrationKey(), escape(t("customizer.noTheme")), escape(t("customizer.goToThemes")));
1571
+ return ssr(_tmpl$12, ssrHydrationKey(), escape(t("customizer.noTheme")), escape(t("customizer.goToThemes")));
1492
1572
  },
1493
1573
  get children() {
1494
- return ssr(_tmpl$0, ssrHydrationKey(), escape(selectedTheme().name), escape(t("customizer.title")), escape(createComponent(Show, {
1574
+ return ssr(_tmpl$1, ssrHydrationKey(), escape(selectedTheme().name), escape(t("customizer.title")), escape(createComponent(Show, {
1495
1575
  get when() {
1496
1576
  return fields().length === 0;
1497
1577
  },
1498
1578
  get children() {
1499
- return ssr(_tmpl$7, ssrHydrationKey(), escape(t("customizer.noSettings")));
1579
+ return ssr(_tmpl$8, ssrHydrationKey(), escape(t("customizer.noSettings")));
1500
1580
  }
1501
1581
  })), escape(settingsPanel()), ssrAttribute("disabled", saving() || !dirty(), true), saving() ? escape(t("customizer.saving")) : escape(t("customizer.save")), ssrAttribute("disabled", !dirty(), true), escape(t("customizer.reset")), escape(t("customizer.refreshPreview")), escape(createComponent(Show, {
1502
1582
  get when() {
1503
1583
  return saved();
1504
1584
  },
1505
1585
  get children() {
1506
- return ssr(_tmpl$8, ssrHydrationKey(), escape(t("customizer.saved")));
1586
+ return ssr(_tmpl$9, ssrHydrationKey(), escape(t("customizer.saved")));
1507
1587
  }
1508
1588
  })), escape(createComponent(Show, {
1509
1589
  get when() {
1510
1590
  return error();
1511
1591
  },
1512
1592
  get children() {
1513
- return ssr(_tmpl$9, ssrHydrationKey(), escape(error()));
1593
+ return ssr(_tmpl$0, ssrHydrationKey(), escape(error()));
1514
1594
  }
1515
1595
  })), escape(t("customizer.previewHint")), ssrAttribute("value", escape(previewPath(), true), false), ssrAttribute("aria-label", escape(t("customizer.previewPath"), true), false), ssrAttribute("title", escape(t("customizer.previewTitle"), true), false) + ssrAttribute("src", escape(previewUrl(), true), false));
1516
1596
  }
@@ -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_DxMWAFCu.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_DvfGK5S9.mjs";
5
5
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
6
- import { t as ContentEditor } from "./ContentEditor_BhXk6xd0.mjs";
6
+ import { t as ContentEditor } from "./ContentEditor_D3hp0Gyo.mjs";
7
7
  //#region src/pages/content/[type]/edit.astro
8
8
  var edit_exports = /* @__PURE__ */ __exportAll({
9
9
  default: () => $$Edit,
@@ -90,7 +90,7 @@ async function loadLocale(locale) {
90
90
  "./locales/it.json": () => import("./it_CgOxhoxy.mjs"),
91
91
  "./locales/ja.json": () => import("./ja_0swn1wUm.mjs"),
92
92
  "./locales/pl.json": () => import("./pl_eLBKfEwP.mjs"),
93
- "./locales/pt-BR.json": () => import("./pt-BR_AVNE88MZ.mjs"),
93
+ "./locales/pt-BR.json": () => import("./pt-BR_B8bZo1Id.mjs"),
94
94
  "./locales/ru.json": () => import("./ru_Dt3fMzac.mjs"),
95
95
  "./locales/sw.json": () => import("./sw_oPyQwKSK.mjs"),
96
96
  "./locales/tr.json": () => import("./tr_DG1ipiJ0.mjs"),
@@ -809,6 +809,21 @@ var ApiClient = class {
809
809
  async getAdminExtensions() {
810
810
  return this.request("GET", "/api/v1/plugins/extensions");
811
811
  }
812
+ async getBlocks() {
813
+ return (await this.request("GET", "/api/v1/blocks")).blocks ?? [];
814
+ }
815
+ async getPatterns() {
816
+ return (await this.request("GET", "/api/v1/patterns")).patterns ?? [];
817
+ }
818
+ async activatePlugin(id, tenantId) {
819
+ return this.request("POST", `/api/v1/plugins/${encodeURIComponent(id)}/activate`, { tenantId });
820
+ }
821
+ async deactivatePlugin(id, tenantId) {
822
+ return this.request("POST", `/api/v1/plugins/${encodeURIComponent(id)}/deactivate`, { tenantId });
823
+ }
824
+ async uninstallPlugin(id) {
825
+ return this.request("DELETE", `/api/v1/plugins/${encodeURIComponent(id)}`);
826
+ }
812
827
  /** Estado de runtime dos plugins (WP2) — por escopo platform/tenant. */
813
828
  async getPluginsRuntime() {
814
829
  return this.request("GET", "/api/v1/plugins/runtime");
@@ -1404,7 +1419,8 @@ var plugins = {
1404
1419
  "name": "Name",
1405
1420
  "version": "Version",
1406
1421
  "status": "Status",
1407
- "enabled": "Enabled for tenant"
1422
+ "enabled": "Enabled for tenant",
1423
+ "actions": "Actions"
1408
1424
  },
1409
1425
  "status": {
1410
1426
  "active": "Active",
@@ -1421,6 +1437,11 @@ var plugins = {
1421
1437
  "version": "Version",
1422
1438
  "manifest": "Manifest (JSON)",
1423
1439
  "loadError": "Could not load plugins.",
1440
+ "actionError": "Could not update the plugin.",
1441
+ "actions": {
1442
+ "activate": "Activate",
1443
+ "deactivate": "Deactivate"
1444
+ },
1424
1445
  "installError": "Could not install the plugin.",
1425
1446
  "uninstallError": "Could not uninstall the plugin.",
1426
1447
  "empty": "No plugins installed.",
@@ -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_C-sgJSi1.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_DxMWAFCu.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BlAR9yiz.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_DvfGK5S9.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,10 +1,10 @@
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_C-sgJSi1.mjs";
5
- import { c as Button, d as Input, g as Table, i as ActionLinksSlot, l as Card, m as Select, n as emptyExtensionsState, o as PluginComponentHost, p as Pagination, r as loadExtensions, s as Badge, t as $$DashboardLayout } from "./DashboardLayout_DxMWAFCu.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BlAR9yiz.mjs";
5
+ import { _ as Table, c as Badge, f as Input, h as Select, i as ActionLinksSlot, l as Button, m as Pagination, n as emptyExtensionsState, o as PluginComponentHost, r as loadExtensions, t as $$DashboardLayout, u as Card } from "./DashboardLayout_DvfGK5S9.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
- import { t as ContentEditor } from "./ContentEditor_BhXk6xd0.mjs";
7
+ import { t as ContentEditor } from "./ContentEditor_D3hp0Gyo.mjs";
8
8
  import { createComponent, escape, memo, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
9
9
  import { Show, createMemo, createSignal, onMount } from "solid-js";
10
10
  //#region src/components/content/ContentList.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_C-sgJSi1.mjs";
5
- import { c as Button, d as Input, h as Show2, m as Select, p as Pagination, s as Badge, t as $$DashboardLayout, u as For2, v as createSignal, y as onMount } from "./DashboardLayout_DxMWAFCu.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BlAR9yiz.mjs";
5
+ import { b as onMount, c as Badge, d as For2, f as Input, g as Show2, h as Select, l as Button, m as Pagination, t as $$DashboardLayout, y as createSignal } from "./DashboardLayout_DvfGK5S9.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,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 { a as LOCALE_LABELS, i as LOCALE_FLAGS, n as useTranslation, o as SUPPORTED_LOCALES, r as apiClient } from "./i18n_C-sgJSi1.mjs";
5
- import { _ as createMemo, c as Button, d as Input, h as Show2, l as Card, m as Select, t as $$DashboardLayout, v as createSignal, y as onMount } from "./DashboardLayout_DxMWAFCu.mjs";
4
+ import { a as LOCALE_LABELS, i as LOCALE_FLAGS, n as useTranslation, o as SUPPORTED_LOCALES, r as apiClient } from "./i18n_BlAR9yiz.mjs";
5
+ import { b as onMount, f as Input, g as Show2, h as Select, l as Button, t as $$DashboardLayout, u as Card, v as createMemo, y as createSignal } from "./DashboardLayout_DvfGK5S9.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  import { t as TimezoneSelect } from "./TimezoneSelect_D6o-2_7b.mjs";
8
8
  import { createComponent, escape, memo, ssr, ssrHydrationKey } from "solid-js/web";
@@ -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_DxMWAFCu.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_DvfGK5S9.mjs";
5
5
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
6
- import { t as MediaLibrary } from "./MediaLibrary_BY9b_CPa.mjs";
6
+ import { t as MediaLibrary } from "./MediaLibrary_BP42MRyJ.mjs";
7
7
  //#region src/pages/media/index.astro
8
8
  var media_exports = /* @__PURE__ */ __exportAll({
9
9
  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 { n as renderScript, t as $$BaseLayout } from "./BaseLayout_DrIrAANk.mjs";
4
+ import { n as renderScript, t as $$BaseLayout } from "./BaseLayout_CJGULIpb.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_C-sgJSi1.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_DxMWAFCu.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BlAR9yiz.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_DvfGK5S9.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_C-sgJSi1.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_DxMWAFCu.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BlAR9yiz.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_DvfGK5S9.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_C-sgJSi1.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_DxMWAFCu.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BlAR9yiz.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_DvfGK5S9.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,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_DxMWAFCu.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_DvfGK5S9.mjs";
5
5
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
6
- import { t as ContentEditor } from "./ContentEditor_BhXk6xd0.mjs";
6
+ import { t as ContentEditor } from "./ContentEditor_D3hp0Gyo.mjs";
7
7
  //#region src/pages/content/[type]/new.astro
8
8
  var new_exports = /* @__PURE__ */ __exportAll({
9
9
  default: () => $$New,