@oktis-works/admin 0.13.1 → 0.15.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.CCls_jrK.js → ActivityWidget.CedrZ3yN.js} +2 -2
- package/dist/client/_astro/AdminBar.CkfSUzJJ.js +253 -0
- package/dist/client/_astro/ApiKeysManager.ChCtr3J2.js +1 -0
- package/dist/client/_astro/{AtGlanceWidget.DPkp-rxl.js → AtGlanceWidget.DMrAc7qb.js} +3 -3
- package/dist/client/_astro/{BaseLayout.DAkzjMTq.css → BaseLayout.Cp-O10m_.css} +1 -1
- package/dist/client/_astro/CommentsManager.CtiI8mwU.js +21 -0
- package/dist/client/_astro/ContentEditor.BQTSumnU.js +1 -0
- package/dist/client/_astro/ContentEditor.Bl295osh.js +3 -0
- package/dist/client/_astro/ContentTypeWorkspace.xZAsn-ok.js +1 -0
- package/dist/client/_astro/DashboardHome.B7PYDcS1.js +1 -0
- package/dist/client/_astro/{DashboardLayout.astro_astro_type_script_index_0_lang.D2eyDf2o.js → DashboardLayout.astro_astro_type_script_index_0_lang.BFY8jBwE.js} +1 -1
- package/dist/client/_astro/FbIcon.Bn4e_qFb.js +1 -0
- package/dist/client/_astro/FieldGroupEditor.BsV0u51p.js +69 -0
- package/dist/client/_astro/FieldGroupList.CXyFKdsR.js +1 -0
- package/dist/client/_astro/FieldRenderer.2TxRD88c.js +1 -0
- package/dist/client/_astro/FloatingPanel.BetdW5N2.js +1 -0
- package/dist/client/_astro/{Footer.JI2Mqd9V.js → Footer.BKD9_ctB.js} +2 -2
- package/dist/client/_astro/GeneralSettings.Di8ILdOl.js +1 -0
- package/dist/client/_astro/LogsManager.WBGR0Ci2.js +1 -0
- package/dist/client/_astro/MediaLibrary.B5ozN2R7.js +1 -0
- package/dist/client/_astro/MenuManager.9UORktNs.js +1 -0
- package/dist/client/_astro/Modal.CPaZJlDP.js +1 -0
- package/dist/client/_astro/PluginManager._RYLLtJI.js +112 -0
- package/dist/client/_astro/PostTypesManager.B6dDnCOy.js +1 -0
- package/dist/client/_astro/QuickDraftWidget.DCVYrBPm.js +17 -0
- package/dist/client/_astro/ResourceHubs.Cd0KB4Rx.js +1 -0
- package/dist/client/_astro/TaxonomiesManager.9I03xqrR.js +1 -0
- package/dist/client/_astro/TaxonomyTermsManager.btLVdHr-.js +1 -0
- package/dist/client/_astro/ThemeCustomizer.CXg9hm9t.js +49 -0
- package/dist/client/_astro/ThemeManager.BfQh8JJa.js +144 -0
- package/dist/client/_astro/UserCreateForm.BAd11jYs.js +1 -0
- package/dist/client/_astro/UsersManager.gkehfvoP.js +1 -0
- package/dist/client/_astro/WebhooksManager.BCilUaGs.js +1 -0
- package/dist/client/_astro/{api.CYg1SW2X.js → api.B03e8F6d.js} +1 -1
- package/dist/client/_astro/client.ljtU74WL.js +1 -0
- package/dist/client/_astro/extensions.EzvpwBZm.js +1 -0
- package/dist/client/_astro/i18n.LMZI7jyc.js +1 -0
- package/dist/client/_astro/{login.astro_astro_type_script_index_0_lang.F2J3xZhK.js → login.astro_astro_type_script_index_0_lang.BUOUZuDy.js} +1 -1
- package/dist/client/_astro/preload-helper.oCYlU9a4.js +1 -0
- package/dist/client/_astro/pt-BR.CfJP86YC.js +1 -0
- package/dist/client/_astro/solid.Ck4Vtfe4.js +1 -0
- package/dist/client/_astro/src.CYKGYEyR.js +1 -0
- package/dist/client/_astro/store.DJjOMYcw.js +1 -0
- package/dist/client/_astro/web.DD6VKaIp.js +1 -0
- package/dist/server/chunks/{404_C9Eokbcv.mjs → 404_CIlW8Cz9.mjs} +1 -1
- package/dist/server/chunks/{BaseLayout_DgDmTH8p.mjs → BaseLayout_DdN9Gl3i.mjs} +5 -5
- package/dist/server/chunks/ContentEditor_GenRIOIJ.mjs +655 -0
- package/dist/server/chunks/{DashboardLayout_CrxyUavx.mjs → DashboardLayout_BY4AqWC6.mjs} +354 -91
- package/dist/server/chunks/{ContentEditor_VK16JJMh.mjs → FieldRenderer_pM3Tq7vY.mjs} +54 -615
- package/dist/server/chunks/{MediaLibrary_CZuj5byR.mjs → MediaLibrary_woj8kWSK.mjs} +2 -2
- package/dist/server/chunks/{Modal_BfWFiyry.mjs → Modal_BQZlVP1o.mjs} +1 -1
- package/dist/server/chunks/{_id__BYx77RvL.mjs → _id__CIrIQBGk.mjs} +5 -4
- package/dist/server/chunks/{_slug__CR6t9xra.mjs → _slug__DP5cppSD.mjs} +1 -1
- package/dist/server/chunks/{access_Bp3EnO2H.mjs → access_Cr1RkoC8.mjs} +3 -3
- package/dist/server/chunks/{api-keys_Dt87wCbg.mjs → api-keys_DxCfUQiR.mjs} +3 -3
- package/dist/server/chunks/comments_CDCO_DTQ.mjs +208 -0
- package/dist/server/chunks/{custom-fields_CC_ZhBpp.mjs → custom-fields_DUby1Cd7.mjs} +2 -2
- package/dist/server/chunks/customize_DITLWxTB.mjs +233 -0
- package/dist/server/chunks/{edit_VYWajKgt.mjs → edit_6xBPrb1J.mjs} +3 -3
- package/dist/server/chunks/{general_DtYlpwnZ.mjs → general_CA6aT6cZ.mjs} +2 -2
- package/dist/server/chunks/{i18n_B-DWAN0e.mjs → i18n_BBVOgA0q.mjs} +75 -36
- package/dist/server/chunks/{index_CDmqkl48.mjs → index_1C4PfYEy.mjs} +2 -2
- package/dist/server/chunks/{index_ieyhXCVt.mjs → index_CO2SvpwW.mjs} +1 -1
- package/dist/server/chunks/{index_DXmHKYjS.mjs → index_Cn92C8CO.mjs} +2 -2
- package/dist/server/chunks/{index_6a-jaApt.mjs → index_D2ypKpAG.mjs} +111 -62
- package/dist/server/chunks/{index_DgVVWosZ.mjs → index_D_AiNQGl.mjs} +2 -2
- package/dist/server/chunks/{login_DRJNLDt7.mjs → login_vyj4WhBt.mjs} +1 -1
- package/dist/server/chunks/{logs_CaMNxV6h.mjs → logs_BjuW-do3.mjs} +2 -2
- package/dist/server/chunks/{menus_BsV0U5D5.mjs → menus_CPi_m-b8.mjs} +2 -2
- package/dist/server/chunks/{new_BQ2d8AHk.mjs → new_BlENJv6A.mjs} +3 -3
- package/dist/server/chunks/{new_CyBl1PM1.mjs → new_D_pNdD5e.mjs} +2 -2
- package/dist/server/chunks/plugins_sYgOSowJ.mjs +150 -0
- package/dist/server/chunks/{post-types_BBKtACUm.mjs → post-types_Bm8olePm.mjs} +2 -2
- package/dist/server/chunks/{pt-BR_Da5G4GOV.mjs → pt-BR_DYDMLZu_.mjs} +53 -24
- package/dist/server/chunks/{taxonomies_gwfTSCOV.mjs → taxonomies_DbsqX_QZ.mjs} +2 -2
- package/dist/server/chunks/{taxonomy_BKdLzLps.mjs → taxonomy_ByKdjp9j.mjs} +64 -19
- package/dist/server/chunks/{themes_CqOUZiNg.mjs → themes_BKAM_crI.mjs} +27 -129
- package/dist/server/chunks/{upload_keeE9Mn0.mjs → upload_CE4Lbc1u.mjs} +2 -2
- package/dist/server/chunks/{webhooks_sTUPF0Xn.mjs → webhooks_CpruP30e.mjs} +2 -2
- package/dist/server/entry.mjs +104 -50
- package/dist/server/virtual_astro_middleware.mjs +1 -1
- package/package.json +5 -5
- package/dist/client/_astro/AdminBar.BW8zYZI3.js +0 -253
- package/dist/client/_astro/ApiKeysManager.Cj5tsk4N.js +0 -1
- package/dist/client/_astro/ContentEditor.CByEz10Q.js +0 -3
- package/dist/client/_astro/ContentEditor.kdYzULib.js +0 -1
- package/dist/client/_astro/ContentTypeWorkspace.BMVbiGGy.js +0 -1
- package/dist/client/_astro/DashboardHome.BuDu0DuB.js +0 -1
- package/dist/client/_astro/FbIcon.CUNS6rpP.js +0 -1
- package/dist/client/_astro/FieldGroupEditor.DGjV1n67.js +0 -69
- package/dist/client/_astro/FieldGroupList.BJ2TKSgY.js +0 -1
- package/dist/client/_astro/FloatingPanel.BeCEt_JP.js +0 -1
- package/dist/client/_astro/GeneralSettings.BSObhTfM.js +0 -1
- package/dist/client/_astro/LogsManager.B4-BxzoP.js +0 -1
- package/dist/client/_astro/MediaLibrary.BHVM3oJh.js +0 -1
- package/dist/client/_astro/MenuManager.BAn4_w6-.js +0 -1
- package/dist/client/_astro/Modal.BSZ5IjBl.js +0 -1
- package/dist/client/_astro/PluginManager.D_E-lPWP.js +0 -136
- package/dist/client/_astro/PostTypesManager.BHU1d2ta.js +0 -1
- package/dist/client/_astro/QuickDraftWidget.ClSsMYB_.js +0 -17
- package/dist/client/_astro/ResourceHubs.C3suqlP0.js +0 -1
- package/dist/client/_astro/TaxonomiesManager.BXYUiJEA.js +0 -1
- package/dist/client/_astro/TaxonomyTermsManager.obB3lkr3.js +0 -1
- package/dist/client/_astro/ThemeManager.C0TKggfZ.js +0 -176
- package/dist/client/_astro/UserCreateForm.DaIOqr8v.js +0 -1
- package/dist/client/_astro/UsersManager.B5zFoWmR.js +0 -1
- package/dist/client/_astro/WebhooksManager.BRvVuxLt.js +0 -1
- package/dist/client/_astro/client.DU9Dc2oe.js +0 -1
- package/dist/client/_astro/extensions.Brl6zAPA.js +0 -1
- package/dist/client/_astro/i18n.vdBFsiPK.js +0 -1
- package/dist/client/_astro/pt-BR.CKJnipDe.js +0 -1
- package/dist/client/_astro/solid.D49dPDCT.js +0 -1
- package/dist/client/_astro/src.DXVWCoHp.js +0 -1
- package/dist/client/_astro/web.Bqbl_1YR.js +0 -1
- package/dist/server/chunks/plugins_BiaE4So1.mjs +0 -179
|
@@ -90,7 +90,7 @@ async function loadLocale(locale) {
|
|
|
90
90
|
"./locales/it.json": () => import("./it_CMLpQyoj.mjs"),
|
|
91
91
|
"./locales/ja.json": () => import("./ja_CYRz0pHv.mjs"),
|
|
92
92
|
"./locales/pl.json": () => import("./pl_BuXVPvU1.mjs"),
|
|
93
|
-
"./locales/pt-BR.json": () => import("./pt-
|
|
93
|
+
"./locales/pt-BR.json": () => import("./pt-BR_DYDMLZu_.mjs"),
|
|
94
94
|
"./locales/ru.json": () => import("./ru_C56ltukG.mjs"),
|
|
95
95
|
"./locales/sw.json": () => import("./sw_Dhw0GAgD.mjs"),
|
|
96
96
|
"./locales/tr.json": () => import("./tr_zELRy7A-.mjs"),
|
|
@@ -123,7 +123,7 @@ function joinApiUrl(base, path) {
|
|
|
123
123
|
return `${base}${path}`;
|
|
124
124
|
}
|
|
125
125
|
//#endregion
|
|
126
|
-
//#region src/lib/api.
|
|
126
|
+
//#region src/lib/api.ts
|
|
127
127
|
var ApiError = class ApiError extends Error {
|
|
128
128
|
status;
|
|
129
129
|
code;
|
|
@@ -545,6 +545,22 @@ var ApiClient = class {
|
|
|
545
545
|
async deleteTaxonomyTerm(slug, id) {
|
|
546
546
|
await this.request("DELETE", `/api/v1/taxonomies/${encodeURIComponent(slug)}/terms/${id}`);
|
|
547
547
|
}
|
|
548
|
+
async getComments(query = {}) {
|
|
549
|
+
const params = new URLSearchParams();
|
|
550
|
+
if (query.status) params.set("status", query.status);
|
|
551
|
+
if (query.contentId) params.set("contentId", query.contentId);
|
|
552
|
+
if (query.search) params.set("search", query.search);
|
|
553
|
+
if (query.limit !== void 0) params.set("limit", String(query.limit));
|
|
554
|
+
if (query.offset !== void 0) params.set("offset", String(query.offset));
|
|
555
|
+
const qs = params.toString();
|
|
556
|
+
return this.request("GET", `/api/v1/comments${qs ? `?${qs}` : ""}`);
|
|
557
|
+
}
|
|
558
|
+
async updateComment(id, data) {
|
|
559
|
+
return this.request("PATCH", `/api/v1/comments/${id}`, data);
|
|
560
|
+
}
|
|
561
|
+
async deleteComment(id) {
|
|
562
|
+
await this.request("DELETE", `/api/v1/comments/${id}`);
|
|
563
|
+
}
|
|
548
564
|
async getCategories() {
|
|
549
565
|
return this.request("GET", "/api/v1/categories");
|
|
550
566
|
}
|
|
@@ -772,9 +788,6 @@ var ApiClient = class {
|
|
|
772
788
|
async installTheme(data) {
|
|
773
789
|
return this.request("POST", "/api/v1/themes/install", data);
|
|
774
790
|
}
|
|
775
|
-
async uninstallTheme(id) {
|
|
776
|
-
await this.request("DELETE", `/api/v1/themes/${id}`);
|
|
777
|
-
}
|
|
778
791
|
async getPlugins() {
|
|
779
792
|
return (await this.request("GET", "/api/v1/plugins")).map((plugin) => ({
|
|
780
793
|
id: String(plugin["id"] ?? ""),
|
|
@@ -785,14 +798,9 @@ var ApiClient = class {
|
|
|
785
798
|
manifest: plugin["manifest"] ?? null
|
|
786
799
|
}));
|
|
787
800
|
}
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
async deactivatePlugin(id, tenantId) {
|
|
792
|
-
return this.request("POST", `/api/v1/plugins/${id}/deactivate`, { tenantId });
|
|
793
|
-
}
|
|
794
|
-
async uninstallPlugin(id) {
|
|
795
|
-
await this.request("DELETE", `/api/v1/plugins/${id}`);
|
|
801
|
+
/** Slots declarativos do admin (FEAT-098): manifest.admin + api.admin (runtime). */
|
|
802
|
+
async getAdminExtensions() {
|
|
803
|
+
return this.request("GET", "/api/v1/plugins/extensions");
|
|
796
804
|
}
|
|
797
805
|
/** Estado de runtime dos plugins (WP2) — por escopo platform/tenant. */
|
|
798
806
|
async getPluginsRuntime() {
|
|
@@ -859,8 +867,10 @@ var en_exports = /* @__PURE__ */ __exportAll({
|
|
|
859
867
|
activity: () => activity,
|
|
860
868
|
adminBar: () => adminBar,
|
|
861
869
|
apiKeys: () => apiKeys,
|
|
870
|
+
comments: () => comments,
|
|
862
871
|
common: () => common,
|
|
863
872
|
content: () => content,
|
|
873
|
+
customizer: () => customizer,
|
|
864
874
|
dashboard: () => dashboard,
|
|
865
875
|
default: () => en_default,
|
|
866
876
|
footer: () => footer,
|
|
@@ -891,7 +901,9 @@ var layout = {
|
|
|
891
901
|
"menus": "Menus",
|
|
892
902
|
"settings": "Settings",
|
|
893
903
|
"plugins": "Plugins",
|
|
894
|
-
"themes": "Themes"
|
|
904
|
+
"themes": "Themes",
|
|
905
|
+
"customize": "Customize",
|
|
906
|
+
"comments": "Comments"
|
|
895
907
|
},
|
|
896
908
|
"actions": {
|
|
897
909
|
"logout": "Logout",
|
|
@@ -1035,7 +1047,8 @@ var content = {
|
|
|
1035
1047
|
"add": "Add term",
|
|
1036
1048
|
"delete": "Delete",
|
|
1037
1049
|
"empty": "No terms yet.",
|
|
1038
|
-
"confirmDelete": "Delete \"{name}\"?"
|
|
1050
|
+
"confirmDelete": "Delete \"{name}\"?",
|
|
1051
|
+
"termFields": "Term fields"
|
|
1039
1052
|
}
|
|
1040
1053
|
};
|
|
1041
1054
|
var media = {
|
|
@@ -1146,7 +1159,7 @@ var users = {
|
|
|
1146
1159
|
"confirmDelete": "Delete user {email}?"
|
|
1147
1160
|
}
|
|
1148
1161
|
};
|
|
1149
|
-
var settings = /*#__PURE__*/ JSON.parse("{\"general\":{\"title\":\"General\",\"description\":\"Basic information displayed on the site.\",\"back\":\"← All settings\",\"fields\":{\"siteTitle\":\"Site Title\",\"siteTitlePlaceholder\":\"My Site\",\"siteDescription\":\"Description\",\"siteDescriptionPlaceholder\":\"A new site built with OkCMS\",\"language\":\"Language\",\"timezone\":\"Timezone\",\"timezonePlaceholder\":\"America/Sao_Paulo\"},\"saved\":\"Settings saved ✓\",\"loading\":\"Loading…\",\"save\":\"Save\"},\"postTypes\":{\"title\":\"Content Types\",\"description\":\"Create custom content types (CPTs) beyond Posts and Pages.\",\"form\":{\"title\":\"Create Content Type\",\"slug\":\"Slug (singular, e.g.: portfolio)\",\"slugHint\":\"Only lowercase letters, numbers and underscore\",\"singular\":\"Singular name\",\"plural\":\"Plural name\",\"supports\":\"Supports\",\"supportsOptions\":{\"title\":\"Title\",\"editor\":\"Editor\",\"thumbnail\":\"Featured Image\",\"excerpt\":\"Excerpt\",\"revisions\":\"Revisions\"},\"hasArchive\":\"Has public archive (/slug)\",\"singleton\":\"Singleton (only one content entry)\",\"icon\":\"Sidebar menu icon\",\"iconHint\":\"Pick a Lucide icon — its name is what shows in the admin sidebar\",\"iconSearchPlaceholder\":\"Search icons…\",\"iconEmpty\":\"No icons found.\",\"iconCount\":\"{count} icons available\",\"editTitle\":\"Edit Content Type\",\"update\":\"Update\",\"cancel\":\"Cancel\",\"create\":\"Create\"},\"table\":{\"slug\":\"Slug\",\"singular\":\"Singular\",\"plural\":\"Plural\",\"source\":\"Source\",\"supports\":\"Supports\",\"archive\":\"Archive\",\"mode\":\"Mode\",\"singleton\":\"Singleton\",\"collection\":\"Collection\",\"icon\":\"Icon\",\"actions\":{\"edit\":\"Edit\",\"remove\":\"Remove\"}},\"sources\":{\"admin\":\"Admin\",\"core\":\"Core\"}},\"taxonomies\":{\"title\":\"Taxonomies\",\"description\":\"Create custom taxonomies and link them to content types.\",\"form\":{\"title\":\"Create Taxonomy\",\"name\":\"Name (e.g.: Genre)\",\"slug\":\"Slug (optional, generated from name)\",\"slugHint\":\"Only lowercase letters, numbers and underscore\",\"hierarchical\":\"Hierarchical (allows parent/child terms)\",\"attachTo\":\"Link to content types\",\"create\":\"Create\"},\"table\":{\"taxonomy\":\"Taxonomy\",\"hierarchical\":\"Hierarchical\",\"attachedTypes\":\"Linked content types\",\"actions\":{\"remove\":\"Remove\"}}},\"customFields\":{\"title\":\"Custom Fields\",\"description\":\"Create field groups, arrange fields and choose which standard fields are visible for each content type.\",\"contentType\":\"Content type\",\"location\":{\"title\":\"Location rules\",\"description\":\"Choose where this field group appears. Rules in the same group use AND; groups use OR.\",\"parameter\":\"Location parameter\",\"operator\":\"Operator\",\"chooseValue\":\"Choose a value\",\"valuePlaceholder\":\"Enter a value or slug\",\"showIf\":\"Show if\",\"removeRule\":\"Remove rule\",\"required\":\"Add a value to every location rule.\",\"addRule\":\"Add condition\",\"addGroup\":\"Add OR group\",\"remove\":\"Remove\",\"and\":\"AND\",\"or\":\"OR\",\"params\":{\"content_type\":\"Post type\",\"content_slug\":\"Post slug\",\"taxonomy\":\"Taxonomy\",\"term\":\"Term slug\",\"user_role\":\"User role\",\"page_template\":\"Page template\",\"post_status\":\"Post status\"},\"operators\":{\"eq\":\"is\",\"neq\":\"is not\"}},\"standard\":{\"title\":\"Standard fields\",\"description\":\"Title and slug are required. The other standard fields can be enabled or disabled.\",\"enabled\":\"Enabled\",\"locked\":\"Required\",\"fields\":{\"title\":\"Title\",\"slug\":\"Slug\",\"content\":\"Content\",\"excerpt\":\"Excerpt\",\"featured_image\":\"Featured image\",\"seo_title\":\"SEO title\",\"seo_description\":\"SEO description\",\"status\":\"Status\",\"author\":\"Author\"}},\"groups\":{\"title\":\"Field groups\",\"new\":\"New field group\",\"empty\":\"No custom field groups yet.\",\"emptyHint\":\"Create your first group to start modelling your content.\",\"search\":\"Search groups…\",\"groupName\":\"Group\",\"status\":\"Status\",\"fields\":\"fields\",\"appliesTo\":\"Applies to\",\"allContentTypes\":\"All content types\",\"edit\":\"Edit\",\"active\":\"Active\",\"inactive\":\"Inactive\"},\"form\":{\"createTitle\":\"Create field group\",\"editTitle\":\"Edit field group\",\"title\":\"Group name\",\"titlePlaceholder\":\"Example: Product details\",\"displayTitle\":\"Display title\",\"active\":\"Active\",\"backToGroups\":\"Back to groups\",\"editorEyebrow\":\"Field builder\",\"groupTitleHint\":\"This name identifies the field set inside the content editor.\",\"fieldsTitle\":\"Fields\",\"fieldsDescription\":\"Add, configure and order fields. Use the six-dot handle to drag without losing their position.\",\"noFields\":\"This group has no fields yet.\",\"settingsTitle\":\"Group settings\",\"settingsDescription\":\"Presentation and panel visibility options for this panel.\",\"description\":\"Description\",\"labelPlacement\":\"Label placement\",\"instructionPlacement\":\"Instruction placement\",\"menuOrder\":\"Menu order\",\"hideOnScreen\":\"Hide on edit screen\",\"hide\":{\"permalink\":\"Permalink\",\"content\":\"Content editor\",\"excerpt\":\"Excerpt\",\"featured_image\":\"Featured image\",\"author\":\"Author\",\"revisions\":\"Revisions\",\"comments\":\"Comments\"},\"assignTitle\":\"Location\",\"assignDescription\":\"Choose the content type where this field group will be available.\",\"contentType\":\"Content type\",\"position\":\"Position\",\"positions\":{\"normal\":\"Normal\",\"side\":\"Sidebar\",\"after_title\":\"After title\"},\"displayStyle\":\"Display style\",\"displayStyles\":{\"standard\":\"Standard\",\"seamless\":\"Seamless\",\"grouped\":\"Grouped\"},\"field\":\"Field\",\"fieldName\":\"Name/key\",\"fieldNamePlaceholder\":\"product_code\",\"fieldLabel\":\"Label\",\"fieldLabelPlaceholder\":\"Product code\",\"fieldType\":\"Type\",\"instructions\":\"Instructions\",\"instructionsPlaceholder\":\"Optional help text for editors\",\"required\":\"Required\",\"options\":\"Options\",\"optionsHint\":\"One option per line: value|Label\",\"addField\":\"Add field\",\"removeField\":\"Remove\",\"dragHint\":\"Drag to reorder\",\"editField\":\"Edit\",\"duplicateField\":\"Duplicate\",\"copySuffix\":\"(copy)\",\"selectFieldType\":\"Select field type\",\"searchFieldTypes\":\"Search field types…\",\"popularFields\":\"Popular\",\"noMatchingFieldTypes\":\"No field types found.\",\"fieldTypeHint\":\"Choose the type that best represents the value editors will enter in this field.\",\"selectField\":\"Select field\",\"save\":\"Save group\",\"cancel\":\"Cancel\",\"newFieldDefault\":\"New field\",\"saved\":\"Field group saved.\",\"deleted\":\"Field group deleted.\"},\"listEyebrow\":\"Content structure\",\"validation\":{\"titleRequired\":\"Group name is required.\"},\"tabs\":{\"locationRules\":\"Location rules\",\"presentation\":\"Presentation\",\"groupSettings\":\"Group settings\"},\"fieldSettings\":{\"general\":\"General\",\"fieldLabel\":\"Field label\",\"fieldName\":\"Field name\",\"instructions\":\"Instructions\",\"required\":\"Required\",\"defaultValue\":\"Default value\",\"placeholder\":\"Placeholder\",\"presentation\":\"Presentation\",\"wrapperWidth\":\"Wrapper width (%)\",\"labelPlacement\":\"Label\",\"instructionPlacement\":\"Instructions\",\"top\":\"Above\",\"left\":\"Left\",\"above\":\"Before field\",\"below\":\"After field\",\"textSettings\":\"Text\",\"prepend\":\"Prepend\",\"append\":\"Append\",\"minLength\":\"Minimum length\",\"maxLength\":\"Maximum length\",\"rows\":\"Rows\",\"newLines\":\"New lines\",\"wpautop\":\"Automatic paragraphs\",\"none\":\"None\",\"numberSettings\":\"Number\",\"min\":\"Minimum\",\"max\":\"Maximum\",\"step\":\"Step\",\"choiceSettings\":\"Choices\",\"choices\":\"Choices\",\"layout\":\"Layout\",\"vertical\":\"Vertical\",\"horizontal\":\"Horizontal\",\"multiple\":\"Multiple choice\",\"allowNull\":\"Allow empty\",\"mediaSettings\":\"Media\",\"returnFormat\":\"Return format\",\"array\":\"Array\",\"id\":\"ID\",\"previewSize\":\"Preview size\",\"library\":\"Library\",\"all\":\"All\",\"uploadedToPost\":\"Uploaded to this post\",\"allowedTypes\":\"Allowed types\",\"minWidth\":\"Minimum width\",\"maxWidth\":\"Maximum width\",\"minHeight\":\"Minimum height\",\"maxHeight\":\"Maximum height\",\"wysiwygSettings\":\"WYSIWYG\",\"tabs\":\"Tabs\",\"toolbar\":\"Toolbar\",\"mediaUpload\":\"Allow media upload\",\"dateSettings\":\"Date and time\",\"displayFormat\":\"Display format\",\"firstDay\":\"First day\",\"colorSettings\":\"Color\",\"enableOpacity\":\"Allow opacity\",\"mapSettings\":\"Map\",\"center\":\"Center\",\"zoom\":\"Zoom\",\"height\":\"Height\",\"relationSettings\":\"Relationship\",\"postType\":\"Post type\",\"taxonomy\":\"Taxonomy\",\"booleanSettings\":\"True/False\",\"message\":\"Message\",\"defaultChecked\":\"Checked by default\",\"linkSettings\":\"Link\",\"cloneSettings\":\"Clone\",\"cloneFields\":\"Fields to clone\",\"cloneHint\":\"One field name per line\",\"containerSettings\":\"Structure\",\"buttonLabel\":\"Button label\",\"collapsed\":\"Collapsed row title field\",\"subFields\":\"Subfields\",\"layouts\":\"Layouts\",\"addLayout\":\"Add layout\",\"newLayout\":\"New layout\",\"layoutName\":\"Layout name\",\"layoutLabel\":\"Layout label\",\"layoutDisplay\":\"Layout display\",\"conditionalLogic\":\"Conditional logic\",\"conditionalHint\":\"Show this field only when the rules match.\",\"chooseField\":\"Choose a field\",\"conditionValue\":\"Value\",\"addCondition\":\"Add condition\",\"addConditionGroup\":\"Add OR group\",\"conditionsAnd\":\"Conditions in this group use AND.\",\"choicesHint\":\"One choice per line in the format value|Label.\",\"cloneSource\":\"Source group or field\",\"cloneSourceHint\":\"Field group key or field name to copy fields from.\",\"requiredOn\":\"Required\",\"requiredOff\":\"Not required\",\"pluginConfig\":\"Plugin Configuration\",\"mermaid\":{\"diagramSettings\":\"Diagram Settings\",\"theme\":\"Theme\",\"selectTheme\":\"Select theme\",\"editable\":\"Allow editing in content editor\",\"defaultCode\":\"Default Mermaid Code\",\"defaultCodeHint\":\"Initial code when field is added to content. User can edit later.\",\"examples\":\"Examples\",\"exampleFlowchart\":\"Flowchart\",\"exampleSequence\":\"Sequence\",\"exampleClass\":\"Class Diagram\",\"diagram\":\"Mermaid Diagram\",\"copyCode\":\"Copy code\",\"rerender\":\"Re-render\",\"showCode\":\"Show source code\",\"renderError\":\"Render Error\",\"rendering\":\"Rendering diagram...\"},\"libraryAll\":\"All\",\"libraryUploaded\":\"Uploaded to this post\",\"ui\":\"Enhanced UI\",\"uiHint\":\"Use enhanced styling for the dropdown.\",\"wrapperClass\":\"Wrapper class\",\"wrapperWidthHint\":\"CSS width of the field wrapper, e.g. 50%.\",\"collapsedHint\":\"Name of the sub-field used as the row title.\",\"conditionalActive\":\"Active\",\"showIf\":\"Show if\",\"removeRule\":\"Remove rule\",\"and\":\"AND\",\"or\":\"OR\",\"noLayouts\":\"No layouts yet.\",\"validation\":\"Validation\",\"advanced\":\"Advanced\",\"fieldType\":\"Type\",\"fieldNameHint\":\"Letters, numbers and underscores only.\",\"ariaLabel\":\"Field settings\",\"operators\":{\"eq\":\"equals\",\"neq\":\"does not equal\",\"gt\":\"is greater than\",\"lt\":\"is less than\",\"contains\":\"contains\",\"hasAny\":\"has any value\",\"hasNone\":\"is empty\"}},\"actions\":{\"delete\":\"Delete\",\"confirmDelete\":\"Delete this field group?\",\"edit\":\"Edit\",\"duplicate\":\"Duplicate\",\"activate\":\"Activate\",\"deactivate\":\"Deactivate\",\"export\":\"Export\",\"import\":\"Import\"},\"import\":{\"description\":\"Import field groups from a JSON file. The file must contain a field group object or an array of field group objects. Existing groups with the same key will be updated; new groups will be created.\",\"dropzone\":\"Click to select a .json file, or drag and drop here\",\"hint\":\"File selected. Click Import to proceed.\"},\"loading\":\"Loading custom fields…\",\"loadError\":\"Could not load custom fields.\"}}");
|
|
1162
|
+
var settings = /*#__PURE__*/ JSON.parse("{\"general\":{\"title\":\"General\",\"description\":\"Basic information displayed on the site.\",\"back\":\"← All settings\",\"fields\":{\"siteTitle\":\"Site Title\",\"siteTitlePlaceholder\":\"My Site\",\"siteDescription\":\"Description\",\"siteDescriptionPlaceholder\":\"A new site built with OkCMS\",\"language\":\"Language\",\"timezone\":\"Timezone\",\"timezonePlaceholder\":\"America/Sao_Paulo\"},\"saved\":\"Settings saved ✓\",\"loading\":\"Loading…\",\"save\":\"Save\"},\"postTypes\":{\"title\":\"Content Types\",\"description\":\"Create custom content types (CPTs) beyond Posts and Pages.\",\"form\":{\"title\":\"Create Content Type\",\"slug\":\"Slug (singular, e.g.: portfolio)\",\"slugHint\":\"Only lowercase letters, numbers and underscore\",\"singular\":\"Singular name\",\"plural\":\"Plural name\",\"supports\":\"Supports\",\"supportsOptions\":{\"title\":\"Title\",\"editor\":\"Editor\",\"thumbnail\":\"Featured Image\",\"excerpt\":\"Excerpt\",\"revisions\":\"Revisions\"},\"hasArchive\":\"Has public archive (/slug)\",\"singleton\":\"Singleton (only one content entry)\",\"icon\":\"Sidebar menu icon\",\"iconHint\":\"Pick a Lucide icon — its name is what shows in the admin sidebar\",\"iconSearchPlaceholder\":\"Search icons…\",\"iconEmpty\":\"No icons found.\",\"iconCount\":\"{count} icons available\",\"editTitle\":\"Edit Content Type\",\"update\":\"Update\",\"cancel\":\"Cancel\",\"create\":\"Create\"},\"table\":{\"slug\":\"Slug\",\"singular\":\"Singular\",\"plural\":\"Plural\",\"source\":\"Source\",\"supports\":\"Supports\",\"archive\":\"Archive\",\"mode\":\"Mode\",\"singleton\":\"Singleton\",\"collection\":\"Collection\",\"icon\":\"Icon\",\"actions\":{\"edit\":\"Edit\",\"remove\":\"Remove\"}},\"sources\":{\"admin\":\"Admin\",\"core\":\"Core\"}},\"taxonomies\":{\"title\":\"Taxonomies\",\"description\":\"Create custom taxonomies and link them to content types.\",\"form\":{\"title\":\"Create Taxonomy\",\"name\":\"Name (e.g.: Genre)\",\"slug\":\"Slug (optional, generated from name)\",\"slugHint\":\"Only lowercase letters, numbers and underscore\",\"hierarchical\":\"Hierarchical (allows parent/child terms)\",\"attachTo\":\"Link to content types\",\"create\":\"Create\"},\"table\":{\"taxonomy\":\"Taxonomy\",\"hierarchical\":\"Hierarchical\",\"attachedTypes\":\"Linked content types\",\"actions\":{\"remove\":\"Remove\"}}},\"customFields\":{\"title\":\"Custom Fields\",\"description\":\"Create field groups, arrange fields and choose which standard fields are visible for each content type.\",\"contentType\":\"Content type\",\"location\":{\"title\":\"Location rules\",\"description\":\"Choose where this field group appears. Rules in the same group use AND; groups use OR.\",\"parameter\":\"Location parameter\",\"operator\":\"Operator\",\"chooseValue\":\"Choose a value\",\"valuePlaceholder\":\"Enter a value or slug\",\"showIf\":\"Show if\",\"removeRule\":\"Remove rule\",\"required\":\"Add a value to every location rule.\",\"addRule\":\"Add condition\",\"addGroup\":\"Add OR group\",\"remove\":\"Remove\",\"and\":\"AND\",\"or\":\"OR\",\"params\":{\"content_type\":\"Post type\",\"content_slug\":\"Post slug\",\"taxonomy\":\"Taxonomy\",\"term\":\"Term slug\",\"user_role\":\"User role\",\"page_template\":\"Page template\",\"post_status\":\"Post status\",\"block\":\"Block\"},\"operators\":{\"eq\":\"is\",\"neq\":\"is not\"}},\"standard\":{\"title\":\"Standard fields\",\"description\":\"Title and slug are required. The other standard fields can be enabled or disabled.\",\"enabled\":\"Enabled\",\"locked\":\"Required\",\"fields\":{\"title\":\"Title\",\"slug\":\"Slug\",\"content\":\"Content\",\"excerpt\":\"Excerpt\",\"featured_image\":\"Featured image\",\"seo_title\":\"SEO title\",\"seo_description\":\"SEO description\",\"status\":\"Status\",\"author\":\"Author\"}},\"groups\":{\"title\":\"Field groups\",\"new\":\"New field group\",\"empty\":\"No custom field groups yet.\",\"emptyHint\":\"Create your first group to start modelling your content.\",\"search\":\"Search groups…\",\"groupName\":\"Group\",\"status\":\"Status\",\"fields\":\"fields\",\"appliesTo\":\"Applies to\",\"allContentTypes\":\"All content types\",\"edit\":\"Edit\",\"active\":\"Active\",\"inactive\":\"Inactive\"},\"form\":{\"createTitle\":\"Create field group\",\"editTitle\":\"Edit field group\",\"title\":\"Group name\",\"titlePlaceholder\":\"Example: Product details\",\"displayTitle\":\"Display title\",\"active\":\"Active\",\"backToGroups\":\"Back to groups\",\"editorEyebrow\":\"Field builder\",\"groupTitleHint\":\"This name identifies the field set inside the content editor.\",\"fieldsTitle\":\"Fields\",\"fieldsDescription\":\"Add, configure and order fields. Use the six-dot handle to drag without losing their position.\",\"noFields\":\"This group has no fields yet.\",\"settingsTitle\":\"Group settings\",\"settingsDescription\":\"Presentation and panel visibility options for this panel.\",\"description\":\"Description\",\"labelPlacement\":\"Label placement\",\"instructionPlacement\":\"Instruction placement\",\"menuOrder\":\"Menu order\",\"hideOnScreen\":\"Hide on edit screen\",\"hide\":{\"permalink\":\"Permalink\",\"content\":\"Content editor\",\"excerpt\":\"Excerpt\",\"featured_image\":\"Featured image\",\"author\":\"Author\",\"revisions\":\"Revisions\",\"comments\":\"Comments\"},\"assignTitle\":\"Location\",\"assignDescription\":\"Choose the content type where this field group will be available.\",\"contentType\":\"Content type\",\"position\":\"Position\",\"positions\":{\"normal\":\"Normal\",\"side\":\"Sidebar\",\"after_title\":\"After title\"},\"displayStyle\":\"Display style\",\"displayStyles\":{\"standard\":\"Standard\",\"seamless\":\"Seamless\",\"grouped\":\"Grouped\"},\"field\":\"Field\",\"fieldName\":\"Name/key\",\"fieldNamePlaceholder\":\"product_code\",\"fieldLabel\":\"Label\",\"fieldLabelPlaceholder\":\"Product code\",\"fieldType\":\"Type\",\"instructions\":\"Instructions\",\"instructionsPlaceholder\":\"Optional help text for editors\",\"required\":\"Required\",\"options\":\"Options\",\"optionsHint\":\"One option per line: value|Label\",\"addField\":\"Add field\",\"removeField\":\"Remove\",\"dragHint\":\"Drag to reorder\",\"editField\":\"Edit\",\"duplicateField\":\"Duplicate\",\"copySuffix\":\"(copy)\",\"selectFieldType\":\"Select field type\",\"searchFieldTypes\":\"Search field types…\",\"popularFields\":\"Popular\",\"noMatchingFieldTypes\":\"No field types found.\",\"fieldTypeHint\":\"Choose the type that best represents the value editors will enter in this field.\",\"selectField\":\"Select field\",\"save\":\"Save group\",\"cancel\":\"Cancel\",\"newFieldDefault\":\"New field\",\"saved\":\"Field group saved.\",\"deleted\":\"Field group deleted.\"},\"listEyebrow\":\"Content structure\",\"validation\":{\"titleRequired\":\"Group name is required.\"},\"tabs\":{\"locationRules\":\"Location rules\",\"presentation\":\"Presentation\",\"groupSettings\":\"Group settings\"},\"fieldSettings\":{\"general\":\"General\",\"fieldLabel\":\"Field label\",\"fieldName\":\"Field name\",\"instructions\":\"Instructions\",\"required\":\"Required\",\"defaultValue\":\"Default value\",\"placeholder\":\"Placeholder\",\"presentation\":\"Presentation\",\"wrapperWidth\":\"Wrapper width (%)\",\"labelPlacement\":\"Label\",\"instructionPlacement\":\"Instructions\",\"top\":\"Above\",\"left\":\"Left\",\"above\":\"Before field\",\"below\":\"After field\",\"textSettings\":\"Text\",\"prepend\":\"Prepend\",\"append\":\"Append\",\"minLength\":\"Minimum length\",\"maxLength\":\"Maximum length\",\"rows\":\"Rows\",\"newLines\":\"New lines\",\"wpautop\":\"Automatic paragraphs\",\"none\":\"None\",\"numberSettings\":\"Number\",\"min\":\"Minimum\",\"max\":\"Maximum\",\"step\":\"Step\",\"choiceSettings\":\"Choices\",\"choices\":\"Choices\",\"layout\":\"Layout\",\"vertical\":\"Vertical\",\"horizontal\":\"Horizontal\",\"multiple\":\"Multiple choice\",\"allowNull\":\"Allow empty\",\"mediaSettings\":\"Media\",\"returnFormat\":\"Return format\",\"array\":\"Array\",\"id\":\"ID\",\"previewSize\":\"Preview size\",\"library\":\"Library\",\"all\":\"All\",\"uploadedToPost\":\"Uploaded to this post\",\"allowedTypes\":\"Allowed types\",\"minWidth\":\"Minimum width\",\"maxWidth\":\"Maximum width\",\"minHeight\":\"Minimum height\",\"maxHeight\":\"Maximum height\",\"wysiwygSettings\":\"WYSIWYG\",\"tabs\":\"Tabs\",\"toolbar\":\"Toolbar\",\"mediaUpload\":\"Allow media upload\",\"dateSettings\":\"Date and time\",\"displayFormat\":\"Display format\",\"firstDay\":\"First day\",\"colorSettings\":\"Color\",\"enableOpacity\":\"Allow opacity\",\"mapSettings\":\"Map\",\"center\":\"Center\",\"zoom\":\"Zoom\",\"height\":\"Height\",\"relationSettings\":\"Relationship\",\"postType\":\"Post type\",\"taxonomy\":\"Taxonomy\",\"booleanSettings\":\"True/False\",\"message\":\"Message\",\"defaultChecked\":\"Checked by default\",\"linkSettings\":\"Link\",\"cloneSettings\":\"Clone\",\"cloneFields\":\"Fields to clone\",\"cloneHint\":\"One field name per line\",\"containerSettings\":\"Structure\",\"buttonLabel\":\"Button label\",\"collapsed\":\"Collapsed row title field\",\"subFields\":\"Subfields\",\"layouts\":\"Layouts\",\"addLayout\":\"Add layout\",\"newLayout\":\"New layout\",\"layoutName\":\"Layout name\",\"layoutLabel\":\"Layout label\",\"layoutDisplay\":\"Layout display\",\"conditionalLogic\":\"Conditional logic\",\"conditionalHint\":\"Show this field only when the rules match.\",\"chooseField\":\"Choose a field\",\"conditionValue\":\"Value\",\"addCondition\":\"Add condition\",\"addConditionGroup\":\"Add OR group\",\"conditionsAnd\":\"Conditions in this group use AND.\",\"choicesHint\":\"One choice per line in the format value|Label.\",\"cloneSource\":\"Source group or field\",\"cloneSourceHint\":\"Field group key or field name to copy fields from.\",\"requiredOn\":\"Required\",\"requiredOff\":\"Not required\",\"pluginConfig\":\"Plugin Configuration\",\"mermaid\":{\"diagramSettings\":\"Diagram Settings\",\"theme\":\"Theme\",\"selectTheme\":\"Select theme\",\"editable\":\"Allow editing in content editor\",\"defaultCode\":\"Default Mermaid Code\",\"defaultCodeHint\":\"Initial code when field is added to content. User can edit later.\",\"examples\":\"Examples\",\"exampleFlowchart\":\"Flowchart\",\"exampleSequence\":\"Sequence\",\"exampleClass\":\"Class Diagram\",\"diagram\":\"Mermaid Diagram\",\"copyCode\":\"Copy code\",\"rerender\":\"Re-render\",\"showCode\":\"Show source code\",\"renderError\":\"Render Error\",\"rendering\":\"Rendering diagram...\"},\"libraryAll\":\"All\",\"libraryUploaded\":\"Uploaded to this post\",\"ui\":\"Enhanced UI\",\"uiHint\":\"Use enhanced styling for the dropdown.\",\"wrapperClass\":\"Wrapper class\",\"wrapperWidthHint\":\"CSS width of the field wrapper, e.g. 50%.\",\"collapsedHint\":\"Name of the sub-field used as the row title.\",\"conditionalActive\":\"Active\",\"showIf\":\"Show if\",\"removeRule\":\"Remove rule\",\"and\":\"AND\",\"or\":\"OR\",\"noLayouts\":\"No layouts yet.\",\"validation\":\"Validation\",\"advanced\":\"Advanced\",\"fieldType\":\"Type\",\"fieldNameHint\":\"Letters, numbers and underscores only.\",\"ariaLabel\":\"Field settings\",\"operators\":{\"eq\":\"equals\",\"neq\":\"does not equal\",\"gt\":\"is greater than\",\"lt\":\"is less than\",\"contains\":\"contains\",\"hasAny\":\"has any value\",\"hasNone\":\"is empty\"}},\"actions\":{\"delete\":\"Delete\",\"confirmDelete\":\"Delete this field group?\",\"edit\":\"Edit\",\"duplicate\":\"Duplicate\",\"activate\":\"Activate\",\"deactivate\":\"Deactivate\",\"export\":\"Export\",\"import\":\"Import\"},\"import\":{\"description\":\"Import field groups from a JSON file. The file must contain a field group object or an array of field group objects. Existing groups with the same key will be updated; new groups will be created.\",\"dropzone\":\"Click to select a .json file, or drag and drop here\",\"hint\":\"File selected. Click Import to proceed.\"},\"loading\":\"Loading custom fields…\",\"loadError\":\"Could not load custom fields.\"}}");
|
|
1150
1163
|
var menus = {
|
|
1151
1164
|
"title": "Menus",
|
|
1152
1165
|
"description": "Create and manage the navigation menus used by your site.",
|
|
@@ -1363,14 +1376,13 @@ var apiKeys = {
|
|
|
1363
1376
|
};
|
|
1364
1377
|
var plugins = {
|
|
1365
1378
|
"title": "Plugins",
|
|
1366
|
-
"description": "
|
|
1367
|
-
"directoryHint": "Detected automatically from the project's plugins/ directory.
|
|
1379
|
+
"description": "View installed plugins.",
|
|
1380
|
+
"directoryHint": "Detected automatically from the project's plugins/ directory. To install, update or activate a plugin, place its files in plugins/ and restart the server (okcms start, pm2 or docker).",
|
|
1368
1381
|
"columns": {
|
|
1369
1382
|
"name": "Name",
|
|
1370
1383
|
"version": "Version",
|
|
1371
1384
|
"status": "Status",
|
|
1372
|
-
"enabled": "Enabled for tenant"
|
|
1373
|
-
"actions": "Actions"
|
|
1385
|
+
"enabled": "Enabled for tenant"
|
|
1374
1386
|
},
|
|
1375
1387
|
"status": {
|
|
1376
1388
|
"active": "Active",
|
|
@@ -1380,8 +1392,6 @@ var plugins = {
|
|
|
1380
1392
|
"missing": "Missing",
|
|
1381
1393
|
"loadFailed": "Load failed"
|
|
1382
1394
|
},
|
|
1383
|
-
"activate": "Activate",
|
|
1384
|
-
"deactivate": "Deactivate",
|
|
1385
1395
|
"install": "Install plugin",
|
|
1386
1396
|
"uninstall": "Uninstall",
|
|
1387
1397
|
"confirmUninstall": "Uninstall {name}?",
|
|
@@ -1389,14 +1399,9 @@ var plugins = {
|
|
|
1389
1399
|
"version": "Version",
|
|
1390
1400
|
"manifest": "Manifest (JSON)",
|
|
1391
1401
|
"loadError": "Could not load plugins.",
|
|
1392
|
-
"activateError": "Could not activate the plugin.",
|
|
1393
|
-
"deactivateError": "Could not deactivate the plugin.",
|
|
1394
1402
|
"installError": "Could not install the plugin.",
|
|
1395
1403
|
"uninstallError": "Could not uninstall the plugin.",
|
|
1396
1404
|
"empty": "No plugins installed.",
|
|
1397
|
-
"selectTenant": "Select tenant",
|
|
1398
|
-
"selectTenantPlaceholder": "Choose a tenant to activate/deactivate for",
|
|
1399
|
-
"hideSelector": "Hide selector",
|
|
1400
1405
|
"enabledForTenant": "Active for this tenant",
|
|
1401
1406
|
"enabledYes": "Yes",
|
|
1402
1407
|
"enabledNo": "No"
|
|
@@ -1415,21 +1420,14 @@ var themes = {
|
|
|
1415
1420
|
"activate": "Activate",
|
|
1416
1421
|
"deactivate": "Deactivate",
|
|
1417
1422
|
"install": "Install theme",
|
|
1418
|
-
"uninstall": "Uninstall",
|
|
1419
|
-
"confirmUninstall": "Uninstall {name}?",
|
|
1420
1423
|
"name": "Theme name",
|
|
1421
1424
|
"manifest": "Manifest (JSON)",
|
|
1422
1425
|
"loadError": "Could not load themes.",
|
|
1423
1426
|
"activateError": "Could not activate the theme.",
|
|
1424
1427
|
"deactivateError": "Could not deactivate the theme.",
|
|
1428
|
+
"deactivateBlocked": "At least one theme must remain active.",
|
|
1425
1429
|
"installError": "Could not install the theme.",
|
|
1426
|
-
"uninstallError": "Could not uninstall the theme.",
|
|
1427
1430
|
"reload": "Reload",
|
|
1428
|
-
"configTitle": "Settings",
|
|
1429
|
-
"configClose": "Hide settings",
|
|
1430
|
-
"configSave": "Save settings",
|
|
1431
|
-
"configSaved": "Settings saved.",
|
|
1432
|
-
"configError": "Could not save the theme settings.",
|
|
1433
1431
|
"empty": "No themes installed."
|
|
1434
1432
|
};
|
|
1435
1433
|
var notFound = {
|
|
@@ -1542,6 +1540,45 @@ var screenOptions = {
|
|
|
1542
1540
|
"label": "Screen Options",
|
|
1543
1541
|
"showOnScreen": "Show on screen"
|
|
1544
1542
|
};
|
|
1543
|
+
var customizer = {
|
|
1544
|
+
"title": "Customizer",
|
|
1545
|
+
"description": "Adjust the active theme settings with a live preview. Changes apply to the preview instantly and only persist when you save.",
|
|
1546
|
+
"loadError": "Failed to load themes.",
|
|
1547
|
+
"saveError": "Failed to save the theme settings.",
|
|
1548
|
+
"noTheme": "No active theme to customize.",
|
|
1549
|
+
"goToThemes": "Go to Themes",
|
|
1550
|
+
"noSettings": "This theme declares no customizable settings (manifest.settings).",
|
|
1551
|
+
"save": "Save",
|
|
1552
|
+
"saving": "Saving...",
|
|
1553
|
+
"saved": "Saved.",
|
|
1554
|
+
"reset": "Reset",
|
|
1555
|
+
"refreshPreview": "Refresh preview",
|
|
1556
|
+
"previewHint": "The preview overlays your draft on top of the saved settings — it is request-only and never persists.",
|
|
1557
|
+
"previewPath": "Preview path",
|
|
1558
|
+
"previewTitle": "Theme preview"
|
|
1559
|
+
};
|
|
1560
|
+
var comments = {
|
|
1561
|
+
"title": "Comments",
|
|
1562
|
+
"description": "Moderate visitor comments: approve, mark as spam, trash or delete permanently.",
|
|
1563
|
+
"loading": "Loading comments...",
|
|
1564
|
+
"empty": "No comments in this queue.",
|
|
1565
|
+
"reload": "Reload",
|
|
1566
|
+
"author": "Author",
|
|
1567
|
+
"comment": "Comment",
|
|
1568
|
+
"inReplyTo": "Content",
|
|
1569
|
+
"submitted": "Submitted",
|
|
1570
|
+
"approve": "Approve",
|
|
1571
|
+
"spam": "Spam",
|
|
1572
|
+
"trash": "Trash",
|
|
1573
|
+
"delete": "Delete",
|
|
1574
|
+
"confirmDelete": "Delete this comment permanently? This cannot be undone.",
|
|
1575
|
+
"status": {
|
|
1576
|
+
"pending": "Pending",
|
|
1577
|
+
"approved": "Approved",
|
|
1578
|
+
"spam": "Spam",
|
|
1579
|
+
"trashed": "Trash"
|
|
1580
|
+
}
|
|
1581
|
+
};
|
|
1545
1582
|
var en_default = {
|
|
1546
1583
|
layout,
|
|
1547
1584
|
dashboard,
|
|
@@ -1565,7 +1602,9 @@ var en_default = {
|
|
|
1565
1602
|
adminBar,
|
|
1566
1603
|
footer,
|
|
1567
1604
|
helpTabs,
|
|
1568
|
-
screenOptions
|
|
1605
|
+
screenOptions,
|
|
1606
|
+
customizer,
|
|
1607
|
+
comments
|
|
1569
1608
|
};
|
|
1570
1609
|
//#endregion
|
|
1571
1610
|
//#region src/i18n/index.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 "./
|
|
4
|
+
import { t as $$DashboardLayout } from "./DashboardLayout_BY4AqWC6.mjs";
|
|
5
5
|
import { t as PageHeader } from "./PageHeader_CRpzf5xU.mjs";
|
|
6
|
-
import { t as MediaLibrary } from "./
|
|
6
|
+
import { t as MediaLibrary } from "./MediaLibrary_woj8kWSK.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 { t as $$DashboardLayout } from "./
|
|
4
|
+
import { t as $$DashboardLayout } from "./DashboardLayout_BY4AqWC6.mjs";
|
|
5
5
|
import { t as PageHeader } from "./PageHeader_CRpzf5xU.mjs";
|
|
6
6
|
//#region src/pages/settings/index.astro
|
|
7
7
|
var settings_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -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 "./
|
|
5
|
-
import {
|
|
4
|
+
import { n as useTranslation, r as apiClient } from "./i18n_BBVOgA0q.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_BY4AqWC6.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
|
//#region src/components/apps/users/UsersManager.jsx
|
|
@@ -1,19 +1,25 @@
|
|
|
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 "./
|
|
5
|
-
import { c as
|
|
6
|
-
import { t as ContentEditor } from "./ContentEditor_VK16JJMh.mjs";
|
|
4
|
+
import { n as useTranslation, r as apiClient } from "./i18n_BBVOgA0q.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_BY4AqWC6.mjs";
|
|
7
6
|
import { t as PageHeader } from "./PageHeader_CRpzf5xU.mjs";
|
|
7
|
+
import { t as ContentEditor } from "./ContentEditor_GenRIOIJ.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
|
-
//#region src/components/content/ContentList.
|
|
11
|
-
var _tmpl$$1 = [
|
|
10
|
+
//#region src/components/content/ContentList.tsx
|
|
11
|
+
var _tmpl$$1 = ["<span", " class=\"muted\">—</span>"];
|
|
12
|
+
var _tmpl$2$1 = [
|
|
12
13
|
"<span",
|
|
13
14
|
" class=\"muted\">",
|
|
14
15
|
"</span>"
|
|
15
16
|
];
|
|
16
|
-
var _tmpl$
|
|
17
|
+
var _tmpl$3 = [
|
|
18
|
+
"<span",
|
|
19
|
+
">",
|
|
20
|
+
"</span>"
|
|
21
|
+
];
|
|
22
|
+
var _tmpl$4 = [
|
|
17
23
|
"<div",
|
|
18
24
|
" class=\"users-table__actions\"><a class=\"btn btn-secondary btn-sm\" href=\"",
|
|
19
25
|
"\">",
|
|
@@ -21,17 +27,17 @@ var _tmpl$2$1 = [
|
|
|
21
27
|
"<!--/--><!--$-->",
|
|
22
28
|
"<!--/--></div>"
|
|
23
29
|
];
|
|
24
|
-
var _tmpl$
|
|
30
|
+
var _tmpl$5 = [
|
|
25
31
|
"<div",
|
|
26
32
|
" class=\"notice notice--error\">",
|
|
27
33
|
"</div>"
|
|
28
34
|
];
|
|
29
|
-
var _tmpl$
|
|
35
|
+
var _tmpl$6 = [
|
|
30
36
|
"<div",
|
|
31
37
|
" class=\"notice\">",
|
|
32
38
|
"</div>"
|
|
33
39
|
];
|
|
34
|
-
var _tmpl$
|
|
40
|
+
var _tmpl$7 = [
|
|
35
41
|
"<div",
|
|
36
42
|
" class=\"content-list\"><div class=\"content-list__heading\"><div><h2>",
|
|
37
43
|
"</h2><p class=\"muted\">",
|
|
@@ -43,6 +49,7 @@ var _tmpl$5 = [
|
|
|
43
49
|
"<!--/--><!--$-->",
|
|
44
50
|
"<!--/--><!--$-->",
|
|
45
51
|
"<!--/--></div><!--$-->",
|
|
52
|
+
"<!--/--><!--$-->",
|
|
46
53
|
"<!--/--></div>"
|
|
47
54
|
];
|
|
48
55
|
function raw(row) {
|
|
@@ -66,6 +73,7 @@ function ContentList(props) {
|
|
|
66
73
|
const [error, setError] = createSignal("");
|
|
67
74
|
const [info, setInfo] = createSignal("");
|
|
68
75
|
const [busyId, setBusyId] = createSignal("");
|
|
76
|
+
const [extensions, setExtensions] = createSignal(emptyExtensionsState());
|
|
69
77
|
const limit = 20;
|
|
70
78
|
const load = async () => {
|
|
71
79
|
try {
|
|
@@ -83,6 +91,7 @@ function ContentList(props) {
|
|
|
83
91
|
}
|
|
84
92
|
};
|
|
85
93
|
onMount(async () => {
|
|
94
|
+
loadExtensions().then(setExtensions);
|
|
86
95
|
const query = new URLSearchParams(window.location.search);
|
|
87
96
|
setStatus(query.get("status") ?? "");
|
|
88
97
|
setSearch(query.get("search") ?? "");
|
|
@@ -123,71 +132,109 @@ function ContentList(props) {
|
|
|
123
132
|
setError(err instanceof Error ? err.message : String(err));
|
|
124
133
|
}
|
|
125
134
|
};
|
|
126
|
-
const columns = createMemo(() =>
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
key: "type",
|
|
133
|
-
label: t("content.list.columns.type")
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
key: "status",
|
|
137
|
-
label: t("content.list.columns.status"),
|
|
135
|
+
const columns = createMemo(() => {
|
|
136
|
+
const pluginDefs = extensions().columns[type()] ?? [];
|
|
137
|
+
const pluginRenderers = extensions().columnRenderers[type()] ?? {};
|
|
138
|
+
const pluginColumn = (def) => ({
|
|
139
|
+
key: def.key,
|
|
140
|
+
label: def.label,
|
|
138
141
|
render: (_value, row) => {
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
142
|
+
const rendererId = pluginRenderers[def.key];
|
|
143
|
+
if (rendererId) {
|
|
144
|
+
const pluginName = rendererId.split(":")[0] ?? "";
|
|
145
|
+
return createComponent(PluginComponentHost, {
|
|
146
|
+
componentId: rendererId,
|
|
147
|
+
plugin: pluginName,
|
|
148
|
+
extraProps: { row }
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
const value = row[def.key];
|
|
152
|
+
if (value == null) return ssr(_tmpl$$1, ssrHydrationKey());
|
|
153
|
+
if (typeof value === "object") return ssr(_tmpl$2$1, ssrHydrationKey(), escape(JSON.stringify(value)));
|
|
154
|
+
return ssr(_tmpl$3, ssrHydrationKey(), escape(String(value)));
|
|
144
155
|
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
156
|
+
});
|
|
157
|
+
const beforeTitle = pluginDefs.filter((def) => def.position === "before_title").map(pluginColumn);
|
|
158
|
+
const afterTitle = pluginDefs.filter((def) => def.position === "after_title").map(pluginColumn);
|
|
159
|
+
const implicit = pluginDefs.filter((def) => !def.position).map(pluginColumn);
|
|
160
|
+
const atEnd = pluginDefs.filter((def) => def.position === "end").map(pluginColumn);
|
|
161
|
+
const core = [
|
|
162
|
+
{
|
|
163
|
+
key: "title",
|
|
164
|
+
label: t("content.list.columns.title")
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
key: "type",
|
|
168
|
+
label: t("content.list.columns.type")
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
key: "status",
|
|
172
|
+
label: t("content.list.columns.status"),
|
|
173
|
+
render: (_value, row) => {
|
|
174
|
+
const statusValue = String(row["status"] ?? "");
|
|
175
|
+
return createComponent(Badge, {
|
|
176
|
+
variant: statusValue === "PUBLISHED" ? "success" : statusValue === "ARCHIVED" ? "warning" : "secondary",
|
|
177
|
+
children: statusValue
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
key: "updated_at",
|
|
183
|
+
label: t("content.list.columns.updated"),
|
|
184
|
+
render: (_value, row) => ssr(_tmpl$2$1, ssrHydrationKey(), escape(formatDate(row)))
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
key: "actions",
|
|
188
|
+
label: "",
|
|
189
|
+
render: (_value, row) => {
|
|
190
|
+
const content = row;
|
|
191
|
+
const isPublished = raw(content)["status"] === "PUBLISHED";
|
|
192
|
+
return ssr(_tmpl$4, ssrHydrationKey(), `/content/${escape(encodeURIComponent(content.type || type()), true)}/edit?id=${escape(encodeURIComponent(content.id), true)}`, escape(t("content.list.actions.edit")), escape(createComponent(Button, {
|
|
193
|
+
variant: isPublished ? "secondary" : "primary",
|
|
194
|
+
size: "sm",
|
|
195
|
+
get loading() {
|
|
196
|
+
return busyId() === content.id;
|
|
197
|
+
},
|
|
198
|
+
onClick: () => void togglePublish(content),
|
|
199
|
+
get children() {
|
|
200
|
+
return isPublished ? t("content.list.actions.unpublish") : t("content.list.actions.publish");
|
|
201
|
+
}
|
|
202
|
+
})), escape(createComponent(Button, {
|
|
203
|
+
variant: "danger",
|
|
204
|
+
size: "sm",
|
|
205
|
+
onClick: () => void remove(content),
|
|
206
|
+
get children() {
|
|
207
|
+
return t("content.list.actions.delete");
|
|
208
|
+
}
|
|
209
|
+
})));
|
|
210
|
+
}
|
|
175
211
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
212
|
+
];
|
|
213
|
+
return [
|
|
214
|
+
...beforeTitle,
|
|
215
|
+
core[0],
|
|
216
|
+
...afterTitle,
|
|
217
|
+
core[1],
|
|
218
|
+
core[2],
|
|
219
|
+
core[3],
|
|
220
|
+
...implicit,
|
|
221
|
+
core[4],
|
|
222
|
+
...atEnd
|
|
223
|
+
];
|
|
224
|
+
});
|
|
225
|
+
return ssr(_tmpl$7, ssrHydrationKey(), escape(pageTitle()), escape(t("content.list.description")), ssrAttribute("href", escape(newContentHref(), true), false), escape(t("content.list.buttons.addNew")), escape(createComponent(Show, {
|
|
179
226
|
get when() {
|
|
180
227
|
return error();
|
|
181
228
|
},
|
|
182
229
|
get children() {
|
|
183
|
-
return ssr(_tmpl$
|
|
230
|
+
return ssr(_tmpl$5, ssrHydrationKey(), escape(error()));
|
|
184
231
|
}
|
|
185
232
|
})), escape(createComponent(Show, {
|
|
186
233
|
get when() {
|
|
187
234
|
return info();
|
|
188
235
|
},
|
|
189
236
|
get children() {
|
|
190
|
-
return ssr(_tmpl$
|
|
237
|
+
return ssr(_tmpl$6, ssrHydrationKey(), escape(info()));
|
|
191
238
|
}
|
|
192
239
|
})), escape(createComponent(Input, {
|
|
193
240
|
name: "search",
|
|
@@ -235,7 +282,9 @@ function ContentList(props) {
|
|
|
235
282
|
get children() {
|
|
236
283
|
return t("content.list.buttons.search");
|
|
237
284
|
}
|
|
238
|
-
})), escape(createComponent(
|
|
285
|
+
})), escape(createComponent(ActionLinksSlot, { get extensions() {
|
|
286
|
+
return extensions();
|
|
287
|
+
} })), escape(createComponent(Card, { get children() {
|
|
239
288
|
return [createComponent(Table, {
|
|
240
289
|
get columns() {
|
|
241
290
|
return columns();
|
|
@@ -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 "./
|
|
5
|
-
import { t as $$DashboardLayout } from "./
|
|
4
|
+
import { n as useTranslation, r as apiClient } from "./i18n_BBVOgA0q.mjs";
|
|
5
|
+
import { t as $$DashboardLayout } from "./DashboardLayout_BY4AqWC6.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.jsx
|
|
@@ -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 "./
|
|
4
|
+
import { n as renderScript, t as $$BaseLayout } from "./BaseLayout_DdN9Gl3i.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 "./
|
|
5
|
-
import { t as $$DashboardLayout } from "./
|
|
4
|
+
import { n as useTranslation, r as apiClient } from "./i18n_BBVOgA0q.mjs";
|
|
5
|
+
import { t as $$DashboardLayout } from "./DashboardLayout_BY4AqWC6.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, 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 "./
|
|
5
|
-
import { t as $$DashboardLayout } from "./
|
|
4
|
+
import { n as useTranslation, r as apiClient } from "./i18n_BBVOgA0q.mjs";
|
|
5
|
+
import { t as $$DashboardLayout } from "./DashboardLayout_BY4AqWC6.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.jsx
|