@oktis-works/admin 0.14.0 → 0.16.0

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 (80) hide show
  1. package/dist/client/_astro/{ActivityWidget.DmhtX3Xm.js → ActivityWidget.ChzmikZu.js} +1 -1
  2. package/dist/client/_astro/{AdminBar.DKoQ5M3w.js → AdminBar.BJWCyHKH.js} +1 -1
  3. package/dist/client/_astro/{ApiKeysManager.BaPrAyqm.js → ApiKeysManager.BhT6maqs.js} +1 -1
  4. package/dist/client/_astro/{AtGlanceWidget.zlWIhmzI.js → AtGlanceWidget.DxzCpOV6.js} +1 -1
  5. package/dist/client/_astro/{CommentsManager.DROGQRli.js → CommentsManager.ENdf74ep.js} +1 -1
  6. package/dist/client/_astro/ContentEditor.D0k_DlIU.js +1 -0
  7. package/dist/client/_astro/{ContentEditor.ChA5r0aE.js → ContentEditor.D5ceM2cx.js} +1 -1
  8. package/dist/client/_astro/{ContentTypeWorkspace.Dj9dP14a.js → ContentTypeWorkspace.Pt26MjgI.js} +1 -1
  9. package/dist/client/_astro/{DashboardHome.Dn6_pJuX.js → DashboardHome.CFRpf5gq.js} +1 -1
  10. package/dist/client/_astro/{DashboardLayout.astro_astro_type_script_index_0_lang.NiobGnWg.js → DashboardLayout.astro_astro_type_script_index_0_lang.K2BlxaxN.js} +1 -1
  11. package/dist/client/_astro/{FieldGroupEditor.CiFoYYb2.js → FieldGroupEditor.CJrN1zwx.js} +1 -1
  12. package/dist/client/_astro/{FieldGroupList.CdN99hvU.js → FieldGroupList.BwV0WQKr.js} +1 -1
  13. package/dist/client/_astro/{FieldRenderer.DYMREsip.js → FieldRenderer.2TxRD88c.js} +1 -1
  14. package/dist/client/_astro/{Footer.VGpnxqkW.js → Footer.GKAEli7Z.js} +1 -1
  15. package/dist/client/_astro/{GeneralSettings.mQ7FyhM-.js → GeneralSettings.CVL2OygA.js} +1 -1
  16. package/dist/client/_astro/{LogsManager.BUJ7baOa.js → LogsManager.CFLnd9ZB.js} +1 -1
  17. package/dist/client/_astro/{MediaLibrary.DMvI8KXX.js → MediaLibrary.7dkXH_rK.js} +1 -1
  18. package/dist/client/_astro/{MenuManager._4YgarRt.js → MenuManager.DR4WuUgm.js} +1 -1
  19. package/dist/client/_astro/{Modal.DbBPpkbR.js → Modal.C6l3xeBc.js} +1 -1
  20. package/dist/client/_astro/PluginManager.DGS7ULAQ.js +112 -0
  21. package/dist/client/_astro/{PostTypesManager.CifIQbeV.js → PostTypesManager.CFYtUiMC.js} +1 -1
  22. package/dist/client/_astro/{QuickDraftWidget.CsG3_wS2.js → QuickDraftWidget.6BO0a_eK.js} +1 -1
  23. package/dist/client/_astro/ReadingSettings.DPXWhZzQ.js +1 -0
  24. package/dist/client/_astro/{ResourceHubs.DedTFbiz.js → ResourceHubs.BkQbEmJj.js} +1 -1
  25. package/dist/client/_astro/{TaxonomiesManager.JqBPU1pf.js → TaxonomiesManager.C_5zrayU.js} +1 -1
  26. package/dist/client/_astro/{TaxonomyTermsManager.BLGRLt8p.js → TaxonomyTermsManager.j3RcgMUq.js} +1 -1
  27. package/dist/client/_astro/{ThemeCustomizer.DrSQPj4W.js → ThemeCustomizer.CA-V4vrP.js} +1 -1
  28. package/dist/client/_astro/ThemeManager.BRbihPtF.js +144 -0
  29. package/dist/client/_astro/{UserCreateForm.C54wZYbf.js → UserCreateForm.Zz8aGR3k.js} +1 -1
  30. package/dist/client/_astro/{UsersManager.BYTWz2I8.js → UsersManager.BrtySwDC.js} +1 -1
  31. package/dist/client/_astro/{WebhooksManager.DeJ_f1Gk.js → WebhooksManager.UOfDFaV5.js} +1 -1
  32. package/dist/client/_astro/{api.flUgn70U.js → api.B03e8F6d.js} +1 -1
  33. package/dist/client/_astro/{extensions.DtuT3Phu.js → extensions.EzvpwBZm.js} +1 -1
  34. package/dist/client/_astro/{i18n.CBexpqud.js → i18n.DeOz3HxE.js} +1 -1
  35. package/dist/client/_astro/{login.astro_astro_type_script_index_0_lang.COYjmQTY.js → login.astro_astro_type_script_index_0_lang.BUOUZuDy.js} +1 -1
  36. package/dist/client/_astro/{pt-BR.DlIhl4_A.js → pt-BR.C-EQC0-7.js} +1 -1
  37. package/dist/client/_astro/{store.CYzqtRKs.js → store.DJjOMYcw.js} +1 -1
  38. package/dist/server/chunks/{404_BxFvEXYq.mjs → 404_DSq1z3nq.mjs} +1 -1
  39. package/dist/server/chunks/{BaseLayout_BTzlA_Yr.mjs → BaseLayout_BfJCf1zO.mjs} +1 -1
  40. package/dist/server/chunks/{ContentEditor_DStZ4RZE.mjs → ContentEditor_Bm8Txfp0.mjs} +3 -3
  41. package/dist/server/chunks/{DashboardLayout_PXoRmnBH.mjs → DashboardLayout_Bgig4Bzt.mjs} +2 -2
  42. package/dist/server/chunks/{FieldRenderer_BlZgS0Im.mjs → FieldRenderer_CDx8Zaxh.mjs} +2 -2
  43. package/dist/server/chunks/{MediaLibrary_D7vu5VMd.mjs → MediaLibrary_D5Q4ofCd.mjs} +2 -2
  44. package/dist/server/chunks/{Modal_I_mBEOz2.mjs → Modal_B8BarHWg.mjs} +1 -1
  45. package/dist/server/chunks/{_id__DFFoFesR.mjs → _id__BlTMZrdv.mjs} +2 -2
  46. package/dist/server/chunks/{_slug__DBH2w1la.mjs → _slug__Dj-IRSFr.mjs} +1 -1
  47. package/dist/server/chunks/{access_D1rk89Sh.mjs → access_CNiloHkT.mjs} +3 -3
  48. package/dist/server/chunks/{api-keys_BqhmvOer.mjs → api-keys_GqT5bD0q.mjs} +3 -3
  49. package/dist/server/chunks/{comments_D_ta2fip.mjs → comments_BXNvPafa.mjs} +2 -2
  50. package/dist/server/chunks/{custom-fields_Cl8P-rrK.mjs → custom-fields_CO1IKHOz.mjs} +2 -2
  51. package/dist/server/chunks/{customize_DgtzmFmz.mjs → customize_Byc8itgW.mjs} +2 -2
  52. package/dist/server/chunks/{edit_DTk4qFj5.mjs → edit_D0rn3HA1.mjs} +2 -2
  53. package/dist/server/chunks/{general_B-fEXuQn.mjs → general_B0fNmZbu.mjs} +2 -2
  54. package/dist/server/chunks/{i18n_BmAxDr2Q.mjs → i18n_ie92fcXF.mjs} +6 -33
  55. package/dist/server/chunks/{index_DI8jAAVQ.mjs → index_7b0VyAS9.mjs} +2 -2
  56. package/dist/server/chunks/{index_BcVtYp1L.mjs → index_CV9dE_yu.mjs} +2 -2
  57. package/dist/server/chunks/{index_DXsKda1J.mjs → index_DhgdylFA.mjs} +2 -2
  58. package/dist/server/chunks/{index_BKjRvOw4.mjs → index_M4NDX1QC.mjs} +3 -3
  59. package/dist/server/chunks/{index_BXnSMGRk.mjs → index_i8ebBGvR.mjs} +2 -2
  60. package/dist/server/chunks/{login_BGPEB2l4.mjs → login_D50phFgs.mjs} +1 -1
  61. package/dist/server/chunks/{logs_XjDk7dqi.mjs → logs_BRNxhbeo.mjs} +2 -2
  62. package/dist/server/chunks/{menus_Kqym4CNK.mjs → menus_B-GjEx8-.mjs} +2 -2
  63. package/dist/server/chunks/{new_Dnp7PIHP.mjs → new_Bi2kaUnl.mjs} +2 -2
  64. package/dist/server/chunks/{new_BiikYmvu.mjs → new_CK6-d0l3.mjs} +2 -2
  65. package/dist/server/chunks/plugins_D7EHhXUJ.mjs +150 -0
  66. package/dist/server/chunks/{post-types_Dr4t-TYB.mjs → post-types_BBn7Tk48.mjs} +2 -2
  67. package/dist/server/chunks/{pt-BR_DH_fNjEo.mjs → pt-BR_CQWainBO.mjs} +5 -20
  68. package/dist/server/chunks/reading_BGq2c5HM.mjs +197 -0
  69. package/dist/server/chunks/{taxonomies_B0YzIdmD.mjs → taxonomies_D5-WJMXM.mjs} +2 -2
  70. package/dist/server/chunks/{taxonomy_CCWZ58qQ.mjs → taxonomy__yis5-wJ.mjs} +3 -3
  71. package/dist/server/chunks/{themes_C7G3LcIz.mjs → themes_Dpg-ee2S.mjs} +27 -129
  72. package/dist/server/chunks/{upload_BT3ud_vb.mjs → upload_BPY5ZFIb.mjs} +2 -2
  73. package/dist/server/chunks/{webhooks_CWW0L8EK.mjs → webhooks_DFrRhSdU.mjs} +2 -2
  74. package/dist/server/entry.mjs +66 -35
  75. package/dist/server/virtual_astro_middleware.mjs +1 -1
  76. package/package.json +1 -1
  77. package/dist/client/_astro/ContentEditor.CtCFQb14.js +0 -1
  78. package/dist/client/_astro/PluginManager.BozI4gXB.js +0 -136
  79. package/dist/client/_astro/ThemeManager.Csu39Xjr.js +0 -176
  80. package/dist/server/chunks/plugins_C6qX0SAE.mjs +0 -179
@@ -1,12 +1,12 @@
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_BmAxDr2Q.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_PXoRmnBH.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_ie92fcXF.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_Bgig4Bzt.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CRpzf5xU.mjs";
7
- import { createComponent, escape, memo, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
7
+ import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
8
8
  import { For, Show, createSignal, onMount } from "solid-js";
9
- //#region src/components/apps/themes/ThemeManager.jsx
9
+ //#region src/components/apps/themes/ThemeManager.tsx
10
10
  var _tmpl$ = [
11
11
  "<div",
12
12
  " class=\"theme-manager\"><div class=\"theme-toolbar\"><p class=\"page-hint\">",
@@ -15,45 +15,32 @@ var _tmpl$ = [
15
15
  "</button></div><!--$-->",
16
16
  "<!--/--><!--$-->",
17
17
  "<!--/--><!--$-->",
18
- "<!--/--><style>\n .theme-toolbar {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 1rem;\n margin-bottom: 1.25rem;\n }\n .page-hint {\n margin: 0;\n color: var(--color-muted);\n font-size: 0.8125rem;\n }\n .btn-refresh {\n flex-shrink: 0;\n }\n .themes-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 1.5rem;\n }\n .theme-card {\n background: var(--color-surface);\n border: 1px solid var(--color-border);\n border-radius: var(--radius-lg);\n padding: 1.5rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n transition: all 0.2s;\n }\n .theme-card:hover {\n border-color: var(--color-primary);\n box-shadow: var(--shadow-md);\n }\n .theme-card.active {\n border-color: var(--color-primary);\n box-shadow: 0 0 0 1px var(--color-primary), var(--shadow-md);\n }\n .theme-preview {\n position: relative;\n }\n .theme-preview__img {\n display: block;\n width: 100%;\n border-radius: var(--radius-md);\n border: 1px solid var(--color-border);\n }\n .theme-badge {\n position: absolute;\n top: 0.5rem;\n right: 0.5rem;\n background: var(--color-primary);\n color: var(--color-primary-contrast);\n padding: 0.25rem 0.5rem;\n border-radius: var(--radius-full);\n font-size: 0.625rem;\n font-weight: 700;\n text-transform: uppercase;\n }\n .theme-info {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n }\n .theme-info h3 {\n margin: 0;\n font-size: 1.125rem;\n font-weight: 600;\n }\n .theme-version {\n margin: 0;\n font-size: 0.75rem;\n color: var(--color-muted);\n }\n .theme-desc {\n margin: 0;\n font-size: 0.8125rem;\n color: var(--color-text);\n line-height: 1.5;\n }\n .theme-status {\n display: flex;\n align-items: center;\n gap: 0.5rem;\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.625rem;\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 .config-panel {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n padding: 1rem;\n background: var(--color-muted-soft, rgba(0, 0, 0, 0.03));\n border-radius: var(--radius-md);\n }\n .config-field {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n .config-label {\n font-size: 0.75rem;\n font-weight: 600;\n color: var(--color-text);\n }\n .config-color {\n height: 2.25rem;\n padding: 0.15rem;\n }\n .config-actions {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n }\n .config-saved {\n font-size: 0.75rem;\n color: var(--color-success);\n }\n .theme-actions {\n margin-top: 0.5rem;\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n .btn-secondary {\n background: transparent;\n color: var(--color-text);\n border: 1px solid var(--color-border);\n }\n .btn-danger {\n background: transparent;\n color: var(--color-error);\n border: 1px solid var(--color-error);\n }\n .empty-state {\n grid-column: 1 / -1;\n padding: 3rem;\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>"
18
+ "<!--/--><!--$-->",
19
+ "<!--/--><style>\n .theme-toolbar {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 1rem;\n margin-bottom: 1.25rem;\n }\n .page-hint {\n margin: 0;\n color: var(--color-muted);\n font-size: 0.8125rem;\n }\n .btn-refresh {\n flex-shrink: 0;\n }\n .themes-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 1.5rem;\n }\n .theme-card {\n background: var(--color-surface);\n border: 1px solid var(--color-border);\n border-radius: var(--radius-lg);\n padding: 1.5rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n transition: all 0.2s;\n }\n .theme-card:hover {\n border-color: var(--color-primary);\n box-shadow: var(--shadow-md);\n }\n .theme-card.active {\n border-color: var(--color-primary);\n box-shadow: 0 0 0 1px var(--color-primary), var(--shadow-md);\n }\n .theme-preview {\n position: relative;\n }\n .theme-preview__img {\n display: block;\n width: 100%;\n border-radius: var(--radius-md);\n border: 1px solid var(--color-border);\n }\n .theme-badge {\n position: absolute;\n top: 0.5rem;\n right: 0.5rem;\n background: var(--color-primary);\n color: var(--color-primary-contrast);\n padding: 0.25rem 0.5rem;\n border-radius: var(--radius-full);\n font-size: 0.625rem;\n font-weight: 700;\n text-transform: uppercase;\n }\n .theme-info {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n }\n .theme-info h3 {\n margin: 0;\n font-size: 1.125rem;\n font-weight: 600;\n }\n .theme-version {\n margin: 0;\n font-size: 0.75rem;\n color: var(--color-muted);\n }\n .theme-desc {\n margin: 0;\n font-size: 0.8125rem;\n color: var(--color-text);\n line-height: 1.5;\n }\n .theme-status {\n display: flex;\n align-items: center;\n gap: 0.5rem;\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.625rem;\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 .theme-actions {\n margin-top: 0.5rem;\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n .btn-loading {\n opacity: 0.6;\n cursor: wait;\n }\n .empty-state {\n grid-column: 1 / -1;\n padding: 3rem;\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 .alert-warning {\n background: var(--color-warning-soft);\n color: var(--color-warning);\n border: 1px solid var(--color-warning);\n }\n .skeleton {\n padding: 2rem;\n text-align: center;\n color: var(--color-muted);\n }\n </style></div>"
19
20
  ];
20
21
  var _tmpl$2 = [
21
22
  "<div",
22
23
  " class=\"alert alert-error\">",
23
24
  "</div>"
24
25
  ];
25
- var _tmpl$3 = ["<div", " class=\"skeleton\">Loading...</div>"];
26
- var _tmpl$4 = [
26
+ var _tmpl$3 = [
27
+ "<div",
28
+ " class=\"alert alert-warning\">",
29
+ "</div>"
30
+ ];
31
+ var _tmpl$4 = ["<div", " class=\"skeleton\">Loading...</div>"];
32
+ var _tmpl$5 = [
27
33
  "<div",
28
34
  " class=\"themes-grid\"><!--$-->",
29
35
  "<!--/--><!--$-->",
30
36
  "<!--/--></div>"
31
37
  ];
32
- var _tmpl$5 = [
38
+ var _tmpl$6 = [
33
39
  "<img",
34
40
  " class=\"theme-preview__img\"",
35
41
  " alt loading=\"lazy\">"
36
42
  ];
37
- var _tmpl$6 = [
38
- "<span",
39
- " class=\"config-saved\">",
40
- "</span>"
41
- ];
42
43
  var _tmpl$7 = [
43
- "<div",
44
- " class=\"config-panel\"><!--$-->",
45
- "<!--/--><div class=\"config-actions\"><button class=\"btn\"",
46
- ">",
47
- "</button><!--$-->",
48
- "<!--/--></div></div>"
49
- ];
50
- var _tmpl$8 = [
51
- "<button",
52
- " class=\"btn btn-secondary\"",
53
- ">",
54
- "</button>"
55
- ];
56
- var _tmpl$9 = [
57
44
  "<div",
58
45
  " class=\"",
59
46
  "\"><div class=\"theme-preview\"><!--$-->",
@@ -64,70 +51,22 @@ var _tmpl$9 = [
64
51
  "<!--/--></p><p class=\"theme-status\"><span class=\"",
65
52
  "\">",
66
53
  "</span></p><!--$-->",
67
- "<!--/--></div><!--$-->",
68
- "<!--/--><div class=\"theme-actions\"><button class=\"",
54
+ "<!--/--></div><div class=\"theme-actions\"><button class=\"",
69
55
  "\"",
70
56
  ">",
71
- "</button><!--$-->",
72
- "<!--/--><button class=\"btn btn-danger\"",
73
- ">",
74
57
  "</button></div></div>"
75
58
  ];
76
- var _tmpl$0 = [
59
+ var _tmpl$8 = [
77
60
  "<div",
78
61
  " class=\"theme-badge active-badge\">",
79
62
  "</div>"
80
63
  ];
81
- var _tmpl$1 = [
64
+ var _tmpl$9 = [
82
65
  "<p",
83
66
  " class=\"theme-desc\">",
84
67
  "</p>"
85
68
  ];
86
- var _tmpl$10 = [
87
- "<div",
88
- " class=\"config-field\"><label class=\"config-label\" for=\"",
89
- "\">",
90
- "</label><!--$-->",
91
- "<!--/--></div>"
92
- ];
93
- var _tmpl$11 = [
94
- "<textarea",
95
- " id=\"",
96
- "\" class=\"input\" rows=\"3\"",
97
- "></textarea>"
98
- ];
99
- var _tmpl$12 = [
100
- "<select",
101
- " id=\"",
102
- "\" class=\"input\"",
103
- ">",
104
- "</select>"
105
- ];
106
- var _tmpl$13 = [
107
- "<option",
108
- ">",
109
- "</option>"
110
- ];
111
- var _tmpl$14 = [
112
- "<input",
113
- " id=\"",
114
- "\" type=\"checkbox\"",
115
- ">"
116
- ];
117
- var _tmpl$15 = [
118
- "<input",
119
- " id=\"",
120
- "\" type=\"color\" class=\"input config-color\"",
121
- ">"
122
- ];
123
- var _tmpl$16 = [
124
- "<input",
125
- " id=\"",
126
- "\"",
127
- " class=\"input\"",
128
- ">"
129
- ];
130
- var _tmpl$17 = [
69
+ var _tmpl$0 = [
131
70
  "<div",
132
71
  " class=\"empty-state\">",
133
72
  "</div>"
@@ -137,16 +76,14 @@ function ThemeManager() {
137
76
  const [themes, setThemes] = createSignal([]);
138
77
  const [loading, setLoading] = createSignal(true);
139
78
  const [error, setError] = createSignal(null);
79
+ const [warning, setWarning] = createSignal(null);
140
80
  const [toggling, setToggling] = createSignal(null);
141
- const [openConfig, setOpenConfig] = createSignal(null);
142
- const [configDraft, setConfigDraft] = createSignal({});
143
- const [configSaving, setConfigSaving] = createSignal(false);
144
- const [configSaved, setConfigSaved] = createSignal(false);
145
81
  onMount(async () => {
146
82
  await loadThemes();
147
83
  });
148
84
  async function loadThemes() {
149
85
  setError(null);
86
+ setWarning(null);
150
87
  try {
151
88
  setLoading(true);
152
89
  let data;
@@ -162,22 +99,13 @@ function ThemeManager() {
162
99
  setLoading(false);
163
100
  }
164
101
  }
165
- /** Preview do manifesto: URL absoluta, path absoluto ou arquivo do tema. */
102
+ /** Manifest preview: absolute URL, absolute path or theme file. */
166
103
  function previewUrl(theme) {
167
104
  const raw = theme.manifest?.preview ?? theme.manifest?.screenshots?.[0];
168
105
  if (!raw || typeof raw !== "string") return null;
169
106
  if (/^(https?:)?\/\//.test(raw) || raw.startsWith("/")) return raw;
170
107
  return `/themes/${encodeURIComponent(theme.name)}/${raw}`;
171
108
  }
172
- function configFields(theme) {
173
- return (theme.manifest?.settings ?? []).filter((field) => Boolean(field) && typeof field.name === "string");
174
- }
175
- function optionValue(option) {
176
- return typeof option === "string" ? option : option.value;
177
- }
178
- function optionLabel(option) {
179
- return typeof option === "string" ? option : option.label ?? option.value;
180
- }
181
109
  const getStatusLabel = (status) => {
182
110
  switch (status) {
183
111
  case "ACTIVE": return t("themes.status.active");
@@ -194,50 +122,20 @@ function ThemeManager() {
194
122
  default: return "";
195
123
  }
196
124
  };
197
- return ssr(_tmpl$, ssrHydrationKey(), escape(t("themes.directoryHint")), ssrAttribute("disabled", loading(), true), escape(t("themes.reload")), error() && ssr(_tmpl$2, ssrHydrationKey(), escape(error())), loading() && _tmpl$3[0] + ssrHydrationKey() + _tmpl$3[1], !loading() && ssr(_tmpl$4, ssrHydrationKey(), escape(createComponent(For, {
125
+ return ssr(_tmpl$, ssrHydrationKey(), escape(t("themes.directoryHint")), ssrAttribute("disabled", loading(), true), escape(t("themes.reload")), error() && ssr(_tmpl$2, ssrHydrationKey(), escape(error())), warning() && ssr(_tmpl$3, ssrHydrationKey(), escape(warning())), loading() && _tmpl$4[0] + ssrHydrationKey() + _tmpl$4[1], !loading() && ssr(_tmpl$5, ssrHydrationKey(), escape(createComponent(For, {
198
126
  get each() {
199
127
  return themes();
200
128
  },
201
129
  children: (theme) => {
202
- const fields = configFields(theme);
203
130
  const preview = previewUrl(theme);
204
- return ssr(_tmpl$9, ssrHydrationKey(), `theme-card ${theme.status === "ACTIVE" ? "active" : ""}`, escape(createComponent(Show, {
131
+ return ssr(_tmpl$7, ssrHydrationKey(), `theme-card ${theme.status === "ACTIVE" ? "active" : ""}`, escape(createComponent(Show, {
205
132
  when: preview,
206
133
  get children() {
207
- return ssr(_tmpl$5, ssrHydrationKey(), ssrAttribute("src", escape(preview, true), false));
208
- }
209
- })), theme.status === "ACTIVE" && ssr(_tmpl$0, ssrHydrationKey(), escape(t("themes.active"))), escape(theme.name), escape(t("themes.version")), escape(theme.version), `status-badge ${escape(getStatusClass(theme.status), true)}`, escape(getStatusLabel(theme.status)), theme.manifest?.description && ssr(_tmpl$1, ssrHydrationKey(), escape(theme.manifest.description)), escape(createComponent(Show, {
210
- get when() {
211
- return memo(() => openConfig() === theme.id)() && fields.length > 0;
212
- },
213
- get children() {
214
- return ssr(_tmpl$7, ssrHydrationKey(), escape(createComponent(For, {
215
- each: fields,
216
- children: (field) => ssr(_tmpl$10, ssrHydrationKey(), `cfg-${escape(theme.id, true)}-${escape(field.name, true)}`, escape(field.label || field.name), field.type === "textarea" ? ssr(_tmpl$11, ssrHydrationKey(), `cfg-${escape(theme.id, true)}-${escape(field.name, true)}`, ssrAttribute("value", escape(String(configDraft()[field.name] ?? ""), true), false)) : field.type === "select" ? ssr(_tmpl$12, ssrHydrationKey(), `cfg-${escape(theme.id, true)}-${escape(field.name, true)}`, ssrAttribute("value", escape(String(configDraft()[field.name] ?? ""), true), false), escape(createComponent(For, {
217
- get each() {
218
- return field.options ?? [];
219
- },
220
- children: (option) => ssr(_tmpl$13, ssrHydrationKey() + ssrAttribute("value", escape(optionValue(option), true), false), escape(optionLabel(option)))
221
- }))) : field.type === "checkbox" ? ssr(_tmpl$14, ssrHydrationKey(), `cfg-${escape(theme.id, true)}-${escape(field.name, true)}`, ssrAttribute("checked", Boolean(configDraft()[field.name]), true)) : field.type === "color" ? ssr(_tmpl$15, ssrHydrationKey(), `cfg-${escape(theme.id, true)}-${escape(field.name, true)}`, ssrAttribute("value", escape(String(configDraft()[field.name] ?? "#000000"), true), false)) : ssr(_tmpl$16, ssrHydrationKey(), `cfg-${escape(theme.id, true)}-${escape(field.name, true)}`, ssrAttribute("type", field.type === "number" ? "number" : "text", false), ssrAttribute("value", escape(String(configDraft()[field.name] ?? ""), true), false)))
222
- })), ssrAttribute("disabled", configSaving(), true), escape(t("themes.configSave")), escape(createComponent(Show, {
223
- get when() {
224
- return configSaved();
225
- },
226
- get children() {
227
- return ssr(_tmpl$6, ssrHydrationKey(), escape(t("themes.configSaved")));
228
- }
229
- })));
230
- }
231
- })), `btn ${toggling() === theme.id ? "btn-loading" : ""}`, ssrAttribute("disabled", toggling() !== null, true), theme.status === "ACTIVE" ? escape(t("themes.deactivate")) : escape(t("themes.activate")), escape(createComponent(Show, {
232
- get when() {
233
- return fields.length > 0;
234
- },
235
- get children() {
236
- return ssr(_tmpl$8, ssrHydrationKey(), ssrAttribute("disabled", toggling() !== null, true), openConfig() === theme.id ? escape(t("themes.configClose")) : escape(t("themes.configTitle")));
134
+ return ssr(_tmpl$6, ssrHydrationKey(), ssrAttribute("src", escape(preview, true), false));
237
135
  }
238
- })), ssrAttribute("disabled", toggling() !== null, true), escape(t("themes.uninstall")));
136
+ })), theme.status === "ACTIVE" && ssr(_tmpl$8, ssrHydrationKey(), escape(t("themes.active"))), escape(theme.name), escape(t("themes.version")), escape(theme.version), `status-badge ${escape(getStatusClass(theme.status), true)}`, escape(getStatusLabel(theme.status)), theme.manifest?.description && ssr(_tmpl$9, ssrHydrationKey(), escape(theme.manifest.description)), `btn ${toggling() === theme.id ? "btn-loading" : ""}`, ssrAttribute("disabled", toggling() !== null, true), theme.status === "ACTIVE" ? escape(t("themes.deactivate")) : escape(t("themes.activate")));
239
137
  }
240
- })), themes().length === 0 && ssr(_tmpl$17, ssrHydrationKey(), escape(t("themes.empty")))));
138
+ })), themes().length === 0 && ssr(_tmpl$0, ssrHydrationKey(), escape(t("themes.empty")))));
241
139
  }
242
140
  //#endregion
243
141
  //#region src/pages/themes.astro
@@ -257,7 +155,7 @@ var $$Themes = createComponent$1(($$result, $$props, $$slots) => {
257
155
  })}${renderComponent($$result, "ThemeManager", ThemeManager, {
258
156
  "client:load": true,
259
157
  "client:component-hydration": "load",
260
- "client:component-path": "/home/runner/work/cms/cms/apps/admin/src/components/apps/themes/ThemeManager.jsx",
158
+ "client:component-path": "/home/runner/work/cms/cms/apps/admin/src/components/apps/themes/ThemeManager.tsx",
261
159
  "client:component-export": "ThemeManager"
262
160
  })}` })}`;
263
161
  }, "/home/runner/work/cms/cms/apps/admin/src/pages/themes.astro", void 0);
@@ -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_PXoRmnBH.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_Bgig4Bzt.mjs";
5
5
  import { t as PageHeader } from "./PageHeader_CRpzf5xU.mjs";
6
- import { t as MediaLibrary } from "./MediaLibrary_D7vu5VMd.mjs";
6
+ import { t as MediaLibrary } from "./MediaLibrary_D5Q4ofCd.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_BmAxDr2Q.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_PXoRmnBH.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_ie92fcXF.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_Bgig4Bzt.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CRpzf5xU.mjs";
7
7
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
8
8
  import { For, Show, createSignal, onCleanup, onMount } from "solid-js";