@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.
- package/dist/client/_astro/{ActivityWidget.DmhtX3Xm.js → ActivityWidget.ChzmikZu.js} +1 -1
- package/dist/client/_astro/{AdminBar.DKoQ5M3w.js → AdminBar.BJWCyHKH.js} +1 -1
- package/dist/client/_astro/{ApiKeysManager.BaPrAyqm.js → ApiKeysManager.BhT6maqs.js} +1 -1
- package/dist/client/_astro/{AtGlanceWidget.zlWIhmzI.js → AtGlanceWidget.DxzCpOV6.js} +1 -1
- package/dist/client/_astro/{CommentsManager.DROGQRli.js → CommentsManager.ENdf74ep.js} +1 -1
- package/dist/client/_astro/ContentEditor.D0k_DlIU.js +1 -0
- package/dist/client/_astro/{ContentEditor.ChA5r0aE.js → ContentEditor.D5ceM2cx.js} +1 -1
- package/dist/client/_astro/{ContentTypeWorkspace.Dj9dP14a.js → ContentTypeWorkspace.Pt26MjgI.js} +1 -1
- package/dist/client/_astro/{DashboardHome.Dn6_pJuX.js → DashboardHome.CFRpf5gq.js} +1 -1
- 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
- package/dist/client/_astro/{FieldGroupEditor.CiFoYYb2.js → FieldGroupEditor.CJrN1zwx.js} +1 -1
- package/dist/client/_astro/{FieldGroupList.CdN99hvU.js → FieldGroupList.BwV0WQKr.js} +1 -1
- package/dist/client/_astro/{FieldRenderer.DYMREsip.js → FieldRenderer.2TxRD88c.js} +1 -1
- package/dist/client/_astro/{Footer.VGpnxqkW.js → Footer.GKAEli7Z.js} +1 -1
- package/dist/client/_astro/{GeneralSettings.mQ7FyhM-.js → GeneralSettings.CVL2OygA.js} +1 -1
- package/dist/client/_astro/{LogsManager.BUJ7baOa.js → LogsManager.CFLnd9ZB.js} +1 -1
- package/dist/client/_astro/{MediaLibrary.DMvI8KXX.js → MediaLibrary.7dkXH_rK.js} +1 -1
- package/dist/client/_astro/{MenuManager._4YgarRt.js → MenuManager.DR4WuUgm.js} +1 -1
- package/dist/client/_astro/{Modal.DbBPpkbR.js → Modal.C6l3xeBc.js} +1 -1
- package/dist/client/_astro/PluginManager.DGS7ULAQ.js +112 -0
- package/dist/client/_astro/{PostTypesManager.CifIQbeV.js → PostTypesManager.CFYtUiMC.js} +1 -1
- package/dist/client/_astro/{QuickDraftWidget.CsG3_wS2.js → QuickDraftWidget.6BO0a_eK.js} +1 -1
- package/dist/client/_astro/ReadingSettings.DPXWhZzQ.js +1 -0
- package/dist/client/_astro/{ResourceHubs.DedTFbiz.js → ResourceHubs.BkQbEmJj.js} +1 -1
- package/dist/client/_astro/{TaxonomiesManager.JqBPU1pf.js → TaxonomiesManager.C_5zrayU.js} +1 -1
- package/dist/client/_astro/{TaxonomyTermsManager.BLGRLt8p.js → TaxonomyTermsManager.j3RcgMUq.js} +1 -1
- package/dist/client/_astro/{ThemeCustomizer.DrSQPj4W.js → ThemeCustomizer.CA-V4vrP.js} +1 -1
- package/dist/client/_astro/ThemeManager.BRbihPtF.js +144 -0
- package/dist/client/_astro/{UserCreateForm.C54wZYbf.js → UserCreateForm.Zz8aGR3k.js} +1 -1
- package/dist/client/_astro/{UsersManager.BYTWz2I8.js → UsersManager.BrtySwDC.js} +1 -1
- package/dist/client/_astro/{WebhooksManager.DeJ_f1Gk.js → WebhooksManager.UOfDFaV5.js} +1 -1
- package/dist/client/_astro/{api.flUgn70U.js → api.B03e8F6d.js} +1 -1
- package/dist/client/_astro/{extensions.DtuT3Phu.js → extensions.EzvpwBZm.js} +1 -1
- package/dist/client/_astro/{i18n.CBexpqud.js → i18n.DeOz3HxE.js} +1 -1
- 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
- package/dist/client/_astro/{pt-BR.DlIhl4_A.js → pt-BR.C-EQC0-7.js} +1 -1
- package/dist/client/_astro/{store.CYzqtRKs.js → store.DJjOMYcw.js} +1 -1
- package/dist/server/chunks/{404_BxFvEXYq.mjs → 404_DSq1z3nq.mjs} +1 -1
- package/dist/server/chunks/{BaseLayout_BTzlA_Yr.mjs → BaseLayout_BfJCf1zO.mjs} +1 -1
- package/dist/server/chunks/{ContentEditor_DStZ4RZE.mjs → ContentEditor_Bm8Txfp0.mjs} +3 -3
- package/dist/server/chunks/{DashboardLayout_PXoRmnBH.mjs → DashboardLayout_Bgig4Bzt.mjs} +2 -2
- package/dist/server/chunks/{FieldRenderer_BlZgS0Im.mjs → FieldRenderer_CDx8Zaxh.mjs} +2 -2
- package/dist/server/chunks/{MediaLibrary_D7vu5VMd.mjs → MediaLibrary_D5Q4ofCd.mjs} +2 -2
- package/dist/server/chunks/{Modal_I_mBEOz2.mjs → Modal_B8BarHWg.mjs} +1 -1
- package/dist/server/chunks/{_id__DFFoFesR.mjs → _id__BlTMZrdv.mjs} +2 -2
- package/dist/server/chunks/{_slug__DBH2w1la.mjs → _slug__Dj-IRSFr.mjs} +1 -1
- package/dist/server/chunks/{access_D1rk89Sh.mjs → access_CNiloHkT.mjs} +3 -3
- package/dist/server/chunks/{api-keys_BqhmvOer.mjs → api-keys_GqT5bD0q.mjs} +3 -3
- package/dist/server/chunks/{comments_D_ta2fip.mjs → comments_BXNvPafa.mjs} +2 -2
- package/dist/server/chunks/{custom-fields_Cl8P-rrK.mjs → custom-fields_CO1IKHOz.mjs} +2 -2
- package/dist/server/chunks/{customize_DgtzmFmz.mjs → customize_Byc8itgW.mjs} +2 -2
- package/dist/server/chunks/{edit_DTk4qFj5.mjs → edit_D0rn3HA1.mjs} +2 -2
- package/dist/server/chunks/{general_B-fEXuQn.mjs → general_B0fNmZbu.mjs} +2 -2
- package/dist/server/chunks/{i18n_BmAxDr2Q.mjs → i18n_ie92fcXF.mjs} +6 -33
- package/dist/server/chunks/{index_DI8jAAVQ.mjs → index_7b0VyAS9.mjs} +2 -2
- package/dist/server/chunks/{index_BcVtYp1L.mjs → index_CV9dE_yu.mjs} +2 -2
- package/dist/server/chunks/{index_DXsKda1J.mjs → index_DhgdylFA.mjs} +2 -2
- package/dist/server/chunks/{index_BKjRvOw4.mjs → index_M4NDX1QC.mjs} +3 -3
- package/dist/server/chunks/{index_BXnSMGRk.mjs → index_i8ebBGvR.mjs} +2 -2
- package/dist/server/chunks/{login_BGPEB2l4.mjs → login_D50phFgs.mjs} +1 -1
- package/dist/server/chunks/{logs_XjDk7dqi.mjs → logs_BRNxhbeo.mjs} +2 -2
- package/dist/server/chunks/{menus_Kqym4CNK.mjs → menus_B-GjEx8-.mjs} +2 -2
- package/dist/server/chunks/{new_Dnp7PIHP.mjs → new_Bi2kaUnl.mjs} +2 -2
- package/dist/server/chunks/{new_BiikYmvu.mjs → new_CK6-d0l3.mjs} +2 -2
- package/dist/server/chunks/plugins_D7EHhXUJ.mjs +150 -0
- package/dist/server/chunks/{post-types_Dr4t-TYB.mjs → post-types_BBn7Tk48.mjs} +2 -2
- package/dist/server/chunks/{pt-BR_DH_fNjEo.mjs → pt-BR_CQWainBO.mjs} +5 -20
- package/dist/server/chunks/reading_BGq2c5HM.mjs +197 -0
- package/dist/server/chunks/{taxonomies_B0YzIdmD.mjs → taxonomies_D5-WJMXM.mjs} +2 -2
- package/dist/server/chunks/{taxonomy_CCWZ58qQ.mjs → taxonomy__yis5-wJ.mjs} +3 -3
- package/dist/server/chunks/{themes_C7G3LcIz.mjs → themes_Dpg-ee2S.mjs} +27 -129
- package/dist/server/chunks/{upload_BT3ud_vb.mjs → upload_BPY5ZFIb.mjs} +2 -2
- package/dist/server/chunks/{webhooks_CWW0L8EK.mjs → webhooks_DFrRhSdU.mjs} +2 -2
- package/dist/server/entry.mjs +66 -35
- package/dist/server/virtual_astro_middleware.mjs +1 -1
- package/package.json +1 -1
- package/dist/client/_astro/ContentEditor.CtCFQb14.js +0 -1
- package/dist/client/_astro/PluginManager.BozI4gXB.js +0 -136
- package/dist/client/_astro/ThemeManager.Csu39Xjr.js +0 -176
- package/dist/server/chunks/plugins_C6qX0SAE.mjs +0 -179
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import{S as e,a as t,h as n,l as r,p as i,r as a}from"./solid.Ck4Vtfe4.js";import{_ as o,a as s,f as c,i as l,l as u,m as d,o as f,p,s as m,u as h}from"./web.DD6VKaIp.js";import{n as g}from"./i18n.CBexpqud.js";import{n as _}from"./api.flUgn70U.js";var v=o(`<div class=theme-manager><div class=theme-toolbar><p class=page-hint></p><button class="btn btn-refresh"></button></div><!$><!/><!$><!/><!$><!/><style>
|
|
2
|
-
.theme-toolbar {
|
|
3
|
-
display: flex;
|
|
4
|
-
align-items: flex-start;
|
|
5
|
-
justify-content: space-between;
|
|
6
|
-
gap: 1rem;
|
|
7
|
-
margin-bottom: 1.25rem;
|
|
8
|
-
}
|
|
9
|
-
.page-hint {
|
|
10
|
-
margin: 0;
|
|
11
|
-
color: var(--color-muted);
|
|
12
|
-
font-size: 0.8125rem;
|
|
13
|
-
}
|
|
14
|
-
.btn-refresh {
|
|
15
|
-
flex-shrink: 0;
|
|
16
|
-
}
|
|
17
|
-
.themes-grid {
|
|
18
|
-
display: grid;
|
|
19
|
-
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
|
|
20
|
-
gap: 1.5rem;
|
|
21
|
-
}
|
|
22
|
-
.theme-card {
|
|
23
|
-
background: var(--color-surface);
|
|
24
|
-
border: 1px solid var(--color-border);
|
|
25
|
-
border-radius: var(--radius-lg);
|
|
26
|
-
padding: 1.5rem;
|
|
27
|
-
display: flex;
|
|
28
|
-
flex-direction: column;
|
|
29
|
-
gap: 1rem;
|
|
30
|
-
transition: all 0.2s;
|
|
31
|
-
}
|
|
32
|
-
.theme-card:hover {
|
|
33
|
-
border-color: var(--color-primary);
|
|
34
|
-
box-shadow: var(--shadow-md);
|
|
35
|
-
}
|
|
36
|
-
.theme-card.active {
|
|
37
|
-
border-color: var(--color-primary);
|
|
38
|
-
box-shadow: 0 0 0 1px var(--color-primary), var(--shadow-md);
|
|
39
|
-
}
|
|
40
|
-
.theme-preview {
|
|
41
|
-
position: relative;
|
|
42
|
-
}
|
|
43
|
-
.theme-preview__img {
|
|
44
|
-
display: block;
|
|
45
|
-
width: 100%;
|
|
46
|
-
border-radius: var(--radius-md);
|
|
47
|
-
border: 1px solid var(--color-border);
|
|
48
|
-
}
|
|
49
|
-
.theme-badge {
|
|
50
|
-
position: absolute;
|
|
51
|
-
top: 0.5rem;
|
|
52
|
-
right: 0.5rem;
|
|
53
|
-
background: var(--color-primary);
|
|
54
|
-
color: var(--color-primary-contrast);
|
|
55
|
-
padding: 0.25rem 0.5rem;
|
|
56
|
-
border-radius: var(--radius-full);
|
|
57
|
-
font-size: 0.625rem;
|
|
58
|
-
font-weight: 700;
|
|
59
|
-
text-transform: uppercase;
|
|
60
|
-
}
|
|
61
|
-
.theme-info {
|
|
62
|
-
display: flex;
|
|
63
|
-
flex-direction: column;
|
|
64
|
-
gap: 0.5rem;
|
|
65
|
-
}
|
|
66
|
-
.theme-info h3 {
|
|
67
|
-
margin: 0;
|
|
68
|
-
font-size: 1.125rem;
|
|
69
|
-
font-weight: 600;
|
|
70
|
-
}
|
|
71
|
-
.theme-version {
|
|
72
|
-
margin: 0;
|
|
73
|
-
font-size: 0.75rem;
|
|
74
|
-
color: var(--color-muted);
|
|
75
|
-
}
|
|
76
|
-
.theme-desc {
|
|
77
|
-
margin: 0;
|
|
78
|
-
font-size: 0.8125rem;
|
|
79
|
-
color: var(--color-text);
|
|
80
|
-
line-height: 1.5;
|
|
81
|
-
}
|
|
82
|
-
.theme-status {
|
|
83
|
-
display: flex;
|
|
84
|
-
align-items: center;
|
|
85
|
-
gap: 0.5rem;
|
|
86
|
-
}
|
|
87
|
-
.status-badge {
|
|
88
|
-
display: inline-flex;
|
|
89
|
-
align-items: center;
|
|
90
|
-
padding: 0.25rem 0.5rem;
|
|
91
|
-
border-radius: var(--radius-full);
|
|
92
|
-
font-size: 0.625rem;
|
|
93
|
-
font-weight: 600;
|
|
94
|
-
text-transform: uppercase;
|
|
95
|
-
}
|
|
96
|
-
.status-active {
|
|
97
|
-
background: var(--color-success-soft);
|
|
98
|
-
color: var(--color-success);
|
|
99
|
-
}
|
|
100
|
-
.status-installed {
|
|
101
|
-
background: var(--color-primary-soft);
|
|
102
|
-
color: var(--color-primary);
|
|
103
|
-
}
|
|
104
|
-
.status-inactive {
|
|
105
|
-
background: var(--color-muted-soft);
|
|
106
|
-
color: var(--color-muted);
|
|
107
|
-
}
|
|
108
|
-
.config-panel {
|
|
109
|
-
display: flex;
|
|
110
|
-
flex-direction: column;
|
|
111
|
-
gap: 0.75rem;
|
|
112
|
-
padding: 1rem;
|
|
113
|
-
background: var(--color-muted-soft, rgba(0, 0, 0, 0.03));
|
|
114
|
-
border-radius: var(--radius-md);
|
|
115
|
-
}
|
|
116
|
-
.config-field {
|
|
117
|
-
display: flex;
|
|
118
|
-
flex-direction: column;
|
|
119
|
-
gap: 0.25rem;
|
|
120
|
-
}
|
|
121
|
-
.config-label {
|
|
122
|
-
font-size: 0.75rem;
|
|
123
|
-
font-weight: 600;
|
|
124
|
-
color: var(--color-text);
|
|
125
|
-
}
|
|
126
|
-
.config-color {
|
|
127
|
-
height: 2.25rem;
|
|
128
|
-
padding: 0.15rem;
|
|
129
|
-
}
|
|
130
|
-
.config-actions {
|
|
131
|
-
display: flex;
|
|
132
|
-
align-items: center;
|
|
133
|
-
gap: 0.75rem;
|
|
134
|
-
}
|
|
135
|
-
.config-saved {
|
|
136
|
-
font-size: 0.75rem;
|
|
137
|
-
color: var(--color-success);
|
|
138
|
-
}
|
|
139
|
-
.theme-actions {
|
|
140
|
-
margin-top: 0.5rem;
|
|
141
|
-
display: flex;
|
|
142
|
-
flex-wrap: wrap;
|
|
143
|
-
gap: 0.5rem;
|
|
144
|
-
}
|
|
145
|
-
.btn-secondary {
|
|
146
|
-
background: transparent;
|
|
147
|
-
color: var(--color-text);
|
|
148
|
-
border: 1px solid var(--color-border);
|
|
149
|
-
}
|
|
150
|
-
.btn-danger {
|
|
151
|
-
background: transparent;
|
|
152
|
-
color: var(--color-error);
|
|
153
|
-
border: 1px solid var(--color-error);
|
|
154
|
-
}
|
|
155
|
-
.empty-state {
|
|
156
|
-
grid-column: 1 / -1;
|
|
157
|
-
padding: 3rem;
|
|
158
|
-
text-align: center;
|
|
159
|
-
color: var(--color-muted);
|
|
160
|
-
}
|
|
161
|
-
.alert {
|
|
162
|
-
padding: 0.75rem 1rem;
|
|
163
|
-
border-radius: var(--radius-md);
|
|
164
|
-
margin-bottom: 1rem;
|
|
165
|
-
}
|
|
166
|
-
.alert-error {
|
|
167
|
-
background: var(--color-error-soft);
|
|
168
|
-
color: var(--color-error);
|
|
169
|
-
border: 1px solid var(--color-error);
|
|
170
|
-
}
|
|
171
|
-
.skeleton {
|
|
172
|
-
padding: 2rem;
|
|
173
|
-
text-align: center;
|
|
174
|
-
color: var(--color-muted);
|
|
175
|
-
}
|
|
176
|
-
`),y=o(`<div class="alert alert-error">`),b=o(`<div class=skeleton>Loading...`),x=o(`<div class=themes-grid><!$><!/><!$><!/>`),S=o(`<img class=theme-preview__img alt loading=lazy>`,!0,!1,!1),ee=o(`<span class=config-saved>`),C=o(`<div class=config-panel><!$><!/><div class=config-actions><button class=btn></button><!$><!/>`),te=o(`<button class="btn btn-secondary">`),w=o(`<div><div class=theme-preview><!$><!/><!$><!/></div><div class=theme-info><h3></h3><p class=theme-version><!$><!/>: <!$><!/></p><p class=theme-status><span></span></p><!$><!/></div><!$><!/><div class=theme-actions><button></button><!$><!/><button class="btn btn-danger">`),T=o(`<div class="theme-badge active-badge">`),E=o(`<p class=theme-desc>`),ne=o(`<div class=config-field><label class=config-label></label><!$><!/>`),re=o(`<textarea class=input rows=3>`),ie=o(`<select class=input>`),ae=o(`<option>`),oe=o(`<input type=checkbox>`),se=o(`<input type=color class="input config-color">`),ce=o(`<input class=input>`),D=o(`<div class=empty-state>`);function O(){let{t:o}=g(),[s,O]=n([]),[k,A]=n(!0),[j,M]=n(null),[N,P]=n(null),[F,I]=n(null),[L,R]=n({}),[le,z]=n(!1),[B,V]=n(!1);e(async()=>{await H()});async function H(){M(null);try{A(!0);let e;try{e=await _.syncThemes()}catch{e=await _.getThemes()}O(e)}catch{M(o(`themes.loadError`))}finally{A(!1)}}async function U(e){let t=e.status===`ACTIVE`;M(null),P(e.id);try{let n=t?await _.deactivateTheme(e.id):await _.activateTheme(e.id);O(s().map(t=>t.id===e.id?n:t.status===`ACTIVE`&&n.status===`ACTIVE`?{...t,status:`INACTIVE`}:t))}catch{M(o(t?`themes.deactivateError`:`themes.activateError`))}finally{P(null)}}async function ue(e){if(window.confirm(o(`themes.confirmUninstall`,{name:e.name}))){M(null),P(e.id);try{await _.uninstallTheme(e.id),O(s().filter(t=>t.id!==e.id))}catch{M(o(`themes.uninstallError`))}finally{P(null)}}}function W(e){let t=e.manifest?.preview??e.manifest?.screenshots?.[0];return!t||typeof t!=`string`?null:/^(https?:)?\/\//.test(t)||t.startsWith(`/`)?t:`/themes/${encodeURIComponent(e.name)}/${t}`}function G(e){return(e.manifest?.settings??[]).filter(e=>!!e&&typeof e.name==`string`)}function K(e){return e.default===void 0?e.type===`checkbox`?!1:e.type===`number`?0:``:e.default}function de(e){return typeof e==`string`?e:e.value}function fe(e){return typeof e==`string`?e:e.label??e.value}function pe(e){if(F()===e.id){I(null);return}let t={};for(let n of G(e)){let r=e.config?.[n.name];t[n.name]=r===void 0?K(n):r}R(t),V(!1),I(e.id)}function q(e,t){R({...L(),[e]:t})}async function me(e){M(null),V(!1),z(!0);try{let t=await _.updateThemeConfig(e.id,L());O(s().map(n=>n.id===e.id?t:n)),V(!0)}catch{M(o(`themes.configError`))}finally{z(!1)}}let he=e=>{switch(e){case`ACTIVE`:return o(`themes.status.active`);case`INSTALLED`:return o(`themes.status.installed`);case`INACTIVE`:return o(`themes.status.inactive`);default:return e}},ge=e=>{switch(e){case`ACTIVE`:return`status-active`;case`INSTALLED`:return`status-installed`;case`INACTIVE`:return`status-inactive`;default:return``}};return(()=>{var e=f(v),n=e.firstChild,g=n.firstChild,_=g.nextSibling,O=n.nextSibling,[A,M]=m(O.nextSibling),P=A.nextSibling,[I,R]=m(P.nextSibling),z=I.nextSibling,[V,K]=m(z.nextSibling);return V.nextSibling,u(g,()=>o(`themes.directoryHint`)),_.$$click=H,u(_,()=>o(`themes.reload`)),u(e,(()=>{var e=h(()=>!!j());return()=>e()&&(()=>{var e=f(y);return u(e,j),e})()})(),A,M),u(e,(()=>{var e=h(()=>!!k());return()=>e()&&f(b)})(),I,R),u(e,(()=>{var e=h(()=>!k());return()=>e()&&(()=>{var e=f(x),n=e.firstChild,[g,_]=m(n.nextSibling),v=g.nextSibling,[y,b]=m(v.nextSibling);return u(e,r(a,{get each(){return s()},children:e=>{let n=G(e),s=W(e);return(()=>{var g=f(w),_=g.firstChild,v=_.firstChild,[y,b]=m(v.nextSibling),x=y.nextSibling,[D,O]=m(x.nextSibling),k=_.nextSibling,A=k.firstChild,j=A.nextSibling,M=j.firstChild,[P,I]=m(M.nextSibling),R=P.nextSibling.nextSibling,[z,V]=m(R.nextSibling),H=j.nextSibling,W=H.firstChild,G=H.nextSibling,[K,J]=m(G.nextSibling),_e=k.nextSibling,[Y,ve]=m(_e.nextSibling),X=Y.nextSibling,Z=X.firstChild,ye=Z.nextSibling,[Q,be]=m(ye.nextSibling),$=Q.nextSibling;return u(_,r(t,{when:s,get children(){var e=f(S);return e.addEventListener(`error`,e=>{e.currentTarget.style.display=`none`}),p(e,`src`,s),e}}),y,b),u(_,(()=>{var t=h(()=>e.status===`ACTIVE`);return()=>t()&&(()=>{var e=f(T);return u(e,()=>o(`themes.active`)),e})()})(),D,O),u(A,()=>e.name),u(j,()=>o(`themes.version`),P,I),u(j,()=>e.version,z,V),u(W,()=>he(e.status)),u(k,(()=>{var t=h(()=>!!e.manifest?.description);return()=>t()&&(()=>{var t=f(E);return u(t,()=>e.manifest.description),t})()})(),K,J),u(g,r(t,{get when(){return h(()=>F()===e.id)()&&n.length>0},get children(){var s=f(C),l=s.firstChild,[g,_]=m(l.nextSibling),v=g.nextSibling,y=v.firstChild,b=y.nextSibling,[x,S]=m(b.nextSibling);return u(s,r(a,{each:n,children:t=>(()=>{var n=f(ne),o=n.firstChild,s=o.nextSibling,[l,g]=m(s.nextSibling);return u(o,()=>t.label||t.name),u(n,(()=>{var n=h(()=>t.type===`textarea`);return()=>n()?(()=>{var n=f(re);return n.$$input=e=>q(t.name,e.currentTarget.value),i(()=>p(n,`id`,`cfg-${e.id}-${t.name}`)),i(()=>d(n,`value`,String(L()[t.name]??``))),c(),n})():h(()=>t.type===`select`)()?(()=>{var n=f(ie);return n.addEventListener(`change`,e=>q(t.name,e.currentTarget.value)),u(n,r(a,{get each(){return t.options??[]},children:e=>(()=>{var t=f(ae);return u(t,()=>fe(e)),i(()=>d(t,`value`,de(e))),t})()})),i(()=>p(n,`id`,`cfg-${e.id}-${t.name}`)),i(()=>d(n,`value`,String(L()[t.name]??``))),n})():h(()=>t.type===`checkbox`)()?(()=>{var n=f(oe);return n.addEventListener(`change`,e=>q(t.name,e.currentTarget.checked)),i(()=>p(n,`id`,`cfg-${e.id}-${t.name}`)),i(()=>d(n,`checked`,!!L()[t.name])),n})():h(()=>t.type===`color`)()?(()=>{var n=f(se);return n.$$input=e=>q(t.name,e.currentTarget.value),i(()=>p(n,`id`,`cfg-${e.id}-${t.name}`)),i(()=>d(n,`value`,String(L()[t.name]??`#000000`))),c(),n})():(()=>{var n=f(ce);return n.$$input=e=>q(t.name,t.type===`number`?Number(e.currentTarget.value):e.currentTarget.value),i(r=>{var i=`cfg-${e.id}-${t.name}`,a=t.type===`number`?`number`:`text`;return i!==r.e&&p(n,`id`,r.e=i),a!==r.t&&p(n,`type`,r.t=a),r},{e:void 0,t:void 0}),i(()=>d(n,`value`,String(L()[t.name]??``))),c(),n})()})(),l,g),i(()=>p(o,`for`,`cfg-${e.id}-${t.name}`)),n})()}),g,_),y.$$click=()=>me(e),u(y,()=>o(`themes.configSave`)),u(v,r(t,{get when(){return B()},get children(){var e=f(ee);return u(e,()=>o(`themes.configSaved`)),e}}),x,S),i(()=>d(y,`disabled`,le())),c(),s}}),Y,ve),Z.$$click=()=>U(e),u(Z,(()=>{var t=h(()=>e.status===`ACTIVE`);return()=>t()?o(`themes.deactivate`):o(`themes.activate`)})()),u(X,r(t,{get when(){return n.length>0},get children(){var t=f(te);return t.$$click=()=>pe(e),u(t,(()=>{var t=h(()=>F()===e.id);return()=>t()?o(`themes.configClose`):o(`themes.configTitle`)})()),i(()=>d(t,`disabled`,N()!==null)),c(),t}}),Q,be),$.$$click=()=>ue(e),u($,()=>o(`themes.uninstall`)),i(t=>{var n=`theme-card ${e.status===`ACTIVE`?`active`:``}`,r=`status-badge ${ge(e.status)}`,i=`btn ${N()===e.id?`btn-loading`:``}`,a=N()!==null,o=N()!==null;return n!==t.e&&l(g,t.e=n),r!==t.t&&l(W,t.t=r),i!==t.a&&l(Z,t.a=i),a!==t.o&&d(Z,`disabled`,t.o=a),o!==t.i&&d($,`disabled`,t.i=o),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),c(),g})()}}),g,_),u(e,(()=>{var e=h(()=>s().length===0);return()=>e()&&(()=>{var e=f(D);return u(e,()=>o(`themes.empty`)),e})()})(),y,b),e})()})(),V,K),i(()=>d(_,`disabled`,k())),c(),e})()}s([`click`,`input`]);export{O as ThemeManager};
|
|
@@ -1,179 +0,0 @@
|
|
|
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_BmAxDr2Q.mjs";
|
|
5
|
-
import { t as $$DashboardLayout } from "./DashboardLayout_PXoRmnBH.mjs";
|
|
6
|
-
import { t as PageHeader } from "./PageHeader_CRpzf5xU.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.jsx
|
|
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.jsx",
|
|
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 };
|