@oktis-works/admin 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/_astro/{BaseLayout.COf3Eran.css → BaseLayout.BPkaFsmK.css} +1 -1
- package/dist/client/_astro/{ContentEditor.COyD6bGV.js → ContentEditor.DOcUnkMP.js} +1 -1
- package/dist/client/_astro/ContentList.KzxsMMxH.js +1 -0
- package/dist/client/_astro/DashboardHome.DFRZ_yyM.js +1 -0
- package/dist/client/_astro/DashboardLayout.astro_astro_type_script_index_0_lang.B663y3aY.js +1 -0
- package/dist/client/_astro/GeneralSettings.gbcKHf_p.js +1 -0
- package/dist/client/_astro/MediaLibrary.BtCjwNlR.js +1 -0
- package/dist/client/_astro/{PostTypesManager.APvO7Cs9.js → PostTypesManager.DsxV-sF3.js} +1 -1
- package/dist/client/_astro/{TaxonomiesManager.CVFdfaUR.js → TaxonomiesManager.DqnwUCtt.js} +1 -1
- package/dist/client/_astro/UserCreateForm.BLaiQTzI.js +1 -0
- package/dist/client/_astro/UsersManager.BPRG8tjn.js +1 -0
- package/dist/client/_astro/api.BegLcOlq.js +1 -0
- package/dist/client/_astro/{login.astro_astro_type_script_index_0_lang.BLhqPWk8.js → login.astro_astro_type_script_index_0_lang.ozrnjgkA.js} +1 -1
- package/dist/server/chunks/{BaseLayout_Mvr1_6Ng.mjs → BaseLayout_C41_wW4F.mjs} +19 -2
- package/dist/server/chunks/{edit_D14rRl_p.mjs → ContentEditor_DwBpNq-K.mjs} +21 -30
- package/dist/server/chunks/DashboardLayout_DO66tdeZ.mjs +43 -0
- package/dist/server/chunks/MediaLibrary_DEi9k6ms.mjs +179 -0
- package/dist/server/chunks/api_BWOj0bUJ.mjs +274 -0
- package/dist/server/chunks/edit_DNavSwFw.mjs +30 -0
- package/dist/server/chunks/general_r50g45qE.mjs +173 -0
- package/dist/server/chunks/index_6G7rXrus.mjs +133 -0
- package/dist/server/chunks/index_B50u2M3P.mjs +23 -0
- package/dist/server/chunks/index_DUzUgyr4.mjs +155 -0
- package/dist/server/chunks/index_qxSk7_hO.mjs +30 -0
- package/dist/server/chunks/index_yiAU3Mfy.mjs +204 -0
- package/dist/server/chunks/{login_B7vbWIed.mjs → login_BH67N4b1.mjs} +2 -19
- package/dist/server/chunks/new_BWcSqoqV.mjs +86 -0
- package/dist/server/chunks/new_h8TItZZ9.mjs +30 -0
- package/dist/server/chunks/{post-types_BtNyF2Iv.mjs → post-types_BSobAovm.mjs} +2 -2
- package/dist/server/chunks/{taxonomies_DSgstawN.mjs → taxonomies_Ij7CReDF.mjs} +2 -2
- package/dist/server/chunks/upload_16xg6koU.mjs +31 -0
- package/dist/server/entry.mjs +259 -13
- package/package.json +4 -4
- package/dist/client/_astro/api.DSP61PKM.js +0 -1
- package/dist/server/chunks/DashboardLayout_CP5ag-_P.mjs +0 -17
- package/dist/server/chunks/api_Cy8sbUHf.mjs +0 -153
- package/dist/server/chunks/index_BgbHlcwr.mjs +0 -23
- package/dist/server/chunks/index_c3b5hMDp.mjs +0 -22
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
|
|
2
|
+
import { d as maybeRenderHead, i as renderComponent, u as renderTemplate } from "./server_CnzC2Y0K.mjs";
|
|
3
|
+
import { t as createComponent$1 } from "./compiler_CYjwXhLT.mjs";
|
|
4
|
+
import { t as $$DashboardLayout } from "./DashboardLayout_DO66tdeZ.mjs";
|
|
5
|
+
import { t as apiClient } from "./api_BWOj0bUJ.mjs";
|
|
6
|
+
import { createComponent, escape, ssr, ssrHydrationKey } from "solid-js/web";
|
|
7
|
+
import { For, Show, createSignal, onMount } from "solid-js";
|
|
8
|
+
//#region src/components/apps/dashboard/DashboardHome.tsx
|
|
9
|
+
var _tmpl$ = [
|
|
10
|
+
"<div",
|
|
11
|
+
" class=\"notice notice--error\">",
|
|
12
|
+
"</div>"
|
|
13
|
+
];
|
|
14
|
+
var _tmpl$2 = [
|
|
15
|
+
"<table",
|
|
16
|
+
" class=\"table\"><thead><tr><th>Title</th><th>Type</th><th>Status</th><th>Updated</th></tr></thead><tbody>",
|
|
17
|
+
"</tbody></table>"
|
|
18
|
+
];
|
|
19
|
+
var _tmpl$3 = [
|
|
20
|
+
"<div",
|
|
21
|
+
" class=\"dashboard-home\"><!--$-->",
|
|
22
|
+
"<!--/--><div class=\"stats-grid\"><div class=\"card stat-card\"><h3 class=\"stat-label\">Total Content</h3><p class=\"stat-value\">",
|
|
23
|
+
"</p></div><div class=\"card stat-card\"><h3 class=\"stat-label\">Published</h3><p class=\"stat-value\">",
|
|
24
|
+
"</p></div><div class=\"card stat-card\"><h3 class=\"stat-label\">Drafts</h3><p class=\"stat-value\">",
|
|
25
|
+
"</p></div><div class=\"card stat-card\"><h3 class=\"stat-label\">Media Files</h3><p class=\"stat-value\">",
|
|
26
|
+
"</p></div><div class=\"card stat-card\"><h3 class=\"stat-label\">Users</h3><p class=\"stat-value\">",
|
|
27
|
+
"</p></div></div><div class=\"card\"><div class=\"card-header\"><h3>Recent Content</h3><a href=\"/content\" class=\"btn btn-secondary btn-sm\">View All</a></div><!--$-->",
|
|
28
|
+
"<!--/--></div></div>"
|
|
29
|
+
];
|
|
30
|
+
var _tmpl$4 = ["<p", " class=\"muted\">Nenhum conteúdo ainda — crie o primeiro!</p>"];
|
|
31
|
+
var _tmpl$5 = [
|
|
32
|
+
"<tr",
|
|
33
|
+
"><td><a href=\"",
|
|
34
|
+
"\">",
|
|
35
|
+
"</a></td><td>",
|
|
36
|
+
"</td><td>",
|
|
37
|
+
"</td><td class=\"muted\">",
|
|
38
|
+
"</td></tr>"
|
|
39
|
+
];
|
|
40
|
+
function raw(row) {
|
|
41
|
+
return row;
|
|
42
|
+
}
|
|
43
|
+
function formatDate(row) {
|
|
44
|
+
const value = raw(row)["updated_at"] ?? raw(row)["updatedAt"] ?? raw(row)["created_at"];
|
|
45
|
+
if (typeof value !== "string") return "—";
|
|
46
|
+
const date = new Date(value);
|
|
47
|
+
return Number.isNaN(date.getTime()) ? "—" : date.toLocaleString("pt-BR");
|
|
48
|
+
}
|
|
49
|
+
function DashboardHome() {
|
|
50
|
+
const [stats, setStats] = createSignal({
|
|
51
|
+
total: "—",
|
|
52
|
+
published: "—",
|
|
53
|
+
drafts: "—",
|
|
54
|
+
media: "—",
|
|
55
|
+
users: "—"
|
|
56
|
+
});
|
|
57
|
+
const [recent, setRecent] = createSignal([]);
|
|
58
|
+
const [error, setError] = createSignal("");
|
|
59
|
+
onMount(async () => {
|
|
60
|
+
const [all, published, drafts, media, users, recentList] = await Promise.allSettled([
|
|
61
|
+
apiClient.getContent({ limit: 1 }),
|
|
62
|
+
apiClient.getContent({
|
|
63
|
+
limit: 1,
|
|
64
|
+
status: "PUBLISHED"
|
|
65
|
+
}),
|
|
66
|
+
apiClient.getContent({
|
|
67
|
+
limit: 1,
|
|
68
|
+
status: "DRAFT"
|
|
69
|
+
}),
|
|
70
|
+
apiClient.listMedia({ limit: 1 }),
|
|
71
|
+
apiClient.listUsers({ limit: 1 }),
|
|
72
|
+
apiClient.getContent({ limit: 5 })
|
|
73
|
+
]);
|
|
74
|
+
const count = (result) => result.status === "fulfilled" ? String(result.value.total) : "?";
|
|
75
|
+
setStats({
|
|
76
|
+
total: count(all),
|
|
77
|
+
published: count(published),
|
|
78
|
+
drafts: count(drafts),
|
|
79
|
+
media: count(media),
|
|
80
|
+
users: count(users)
|
|
81
|
+
});
|
|
82
|
+
if (recentList.status === "fulfilled") setRecent(recentList.value.data ?? []);
|
|
83
|
+
else setError(recentList.reason instanceof Error ? recentList.reason.message : String(recentList.reason));
|
|
84
|
+
});
|
|
85
|
+
return ssr(_tmpl$3, ssrHydrationKey(), escape(createComponent(Show, {
|
|
86
|
+
get when() {
|
|
87
|
+
return error();
|
|
88
|
+
},
|
|
89
|
+
get children() {
|
|
90
|
+
return ssr(_tmpl$, ssrHydrationKey(), escape(error()));
|
|
91
|
+
}
|
|
92
|
+
})), escape(stats().total), escape(stats().published), escape(stats().drafts), escape(stats().media), escape(stats().users), escape(createComponent(Show, {
|
|
93
|
+
get when() {
|
|
94
|
+
return recent().length > 0;
|
|
95
|
+
},
|
|
96
|
+
get fallback() {
|
|
97
|
+
return ssr(_tmpl$4, ssrHydrationKey());
|
|
98
|
+
},
|
|
99
|
+
get children() {
|
|
100
|
+
return ssr(_tmpl$2, ssrHydrationKey(), escape(createComponent(For, {
|
|
101
|
+
get each() {
|
|
102
|
+
return recent();
|
|
103
|
+
},
|
|
104
|
+
children: (row) => ssr(_tmpl$5, ssrHydrationKey(), `/content/edit?id=${escape(encodeURIComponent(String(raw(row)["id"] ?? "")), true)}`, escape(String(raw(row)["title"] ?? "—")), escape(String(raw(row)["type"] ?? "—")), escape(String(raw(row)["status"] ?? "—")), escape(formatDate(row)))
|
|
105
|
+
})));
|
|
106
|
+
}
|
|
107
|
+
})));
|
|
108
|
+
}
|
|
109
|
+
//#endregion
|
|
110
|
+
//#region src/pages/index.astro
|
|
111
|
+
var pages_exports = /* @__PURE__ */ __exportAll({
|
|
112
|
+
default: () => $$Index,
|
|
113
|
+
file: () => $$file,
|
|
114
|
+
url: () => ""
|
|
115
|
+
});
|
|
116
|
+
var $$Index = createComponent$1(($$result, $$props, $$slots) => {
|
|
117
|
+
return renderTemplate`${renderComponent($$result, "DashboardLayout", $$DashboardLayout, {
|
|
118
|
+
"title": "Dashboard",
|
|
119
|
+
"data-astro-cid-lcdefpme": true
|
|
120
|
+
}, { "default": ($$result) => renderTemplate`${maybeRenderHead($$result)}<div class="dashboard" data-astro-cid-lcdefpme>${renderComponent($$result, "DashboardHome", DashboardHome, {
|
|
121
|
+
"client:load": true,
|
|
122
|
+
"data-astro-cid-lcdefpme": true,
|
|
123
|
+
"client:component-hydration": "load",
|
|
124
|
+
"client:component-path": "/home/runner/work/cms/cms/apps/admin/src/components/apps/dashboard/DashboardHome.tsx",
|
|
125
|
+
"client:component-export": "DashboardHome"
|
|
126
|
+
})}<div class="quick-actions" data-astro-cid-lcdefpme><div class="card" data-astro-cid-lcdefpme><h3 class="card-header" data-astro-cid-lcdefpme>Quick Actions</h3><div class="actions-grid" data-astro-cid-lcdefpme><a href="/content/new" class="action-card" data-astro-cid-lcdefpme><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-lcdefpme><line x1="12" y1="5" x2="12" y2="19" data-astro-cid-lcdefpme></line><line x1="5" y1="12" x2="19" y2="12" data-astro-cid-lcdefpme></line></svg><span data-astro-cid-lcdefpme>New Post</span></a><a href="/media/upload" class="action-card" data-astro-cid-lcdefpme><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-lcdefpme><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" data-astro-cid-lcdefpme></path><polyline points="17 8 12 3 7 8" data-astro-cid-lcdefpme></polyline><line x1="12" y1="3" x2="12" y2="15" data-astro-cid-lcdefpme></line></svg><span data-astro-cid-lcdefpme>Upload Media</span></a><a href="/users/new" class="action-card" data-astro-cid-lcdefpme><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-lcdefpme><path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" data-astro-cid-lcdefpme></path><circle cx="8.5" cy="7" r="4" data-astro-cid-lcdefpme></circle><line x1="20" y1="8" x2="20" y2="14" data-astro-cid-lcdefpme></line><line x1="23" y1="11" x2="17" y2="11" data-astro-cid-lcdefpme></line></svg><span data-astro-cid-lcdefpme>Add User</span></a><a href="/settings" class="action-card" data-astro-cid-lcdefpme><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-lcdefpme><circle cx="12" cy="12" r="3" data-astro-cid-lcdefpme></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z" data-astro-cid-lcdefpme></path></svg><span data-astro-cid-lcdefpme>Settings</span></a></div></div></div></div>` })}`;
|
|
127
|
+
}, "/home/runner/work/cms/cms/apps/admin/src/pages/index.astro", void 0);
|
|
128
|
+
var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/index.astro";
|
|
129
|
+
//#endregion
|
|
130
|
+
//#region \0virtual:astro:page:src/pages/index@_@astro
|
|
131
|
+
var page = () => pages_exports;
|
|
132
|
+
//#endregion
|
|
133
|
+
export { page };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
|
|
2
|
+
import { d as maybeRenderHead, i as renderComponent, u as renderTemplate } from "./server_CnzC2Y0K.mjs";
|
|
3
|
+
import { t as createComponent } from "./compiler_CYjwXhLT.mjs";
|
|
4
|
+
import { t as $$DashboardLayout } from "./DashboardLayout_DO66tdeZ.mjs";
|
|
5
|
+
//#region src/pages/settings/index.astro
|
|
6
|
+
var settings_exports = /* @__PURE__ */ __exportAll({
|
|
7
|
+
default: () => $$Index,
|
|
8
|
+
file: () => $$file,
|
|
9
|
+
url: () => $$url
|
|
10
|
+
});
|
|
11
|
+
var $$Index = createComponent(($$result, $$props, $$slots) => {
|
|
12
|
+
return renderTemplate`${renderComponent($$result, "DashboardLayout", $$DashboardLayout, {
|
|
13
|
+
"title": "Settings",
|
|
14
|
+
"data-astro-cid-pvy7orjg": true
|
|
15
|
+
}, { "default": ($$result) => renderTemplate`${maybeRenderHead($$result)}<div class="settings-page" data-astro-cid-pvy7orjg><div class="page-header" data-astro-cid-pvy7orjg><h2 data-astro-cid-pvy7orjg>Configurações</h2><p data-astro-cid-pvy7orjg>Escolha uma seção para configurar o projeto.</p></div><div class="settings-cards" data-astro-cid-pvy7orjg><a class="card settings-card" href="/settings/general" data-astro-cid-pvy7orjg><h3 data-astro-cid-pvy7orjg>Geral</h3><p class="muted" data-astro-cid-pvy7orjg>Título, descrição, idioma e fuso horário do site.</p></a><a class="card settings-card" href="/settings/post-types" data-astro-cid-pvy7orjg><h3 data-astro-cid-pvy7orjg>Content Types</h3><p class="muted" data-astro-cid-pvy7orjg>Tipos de conteúdo personalizados (CPTs) além de Posts e Páginas.</p></a><a class="card settings-card" href="/settings/taxonomies" data-astro-cid-pvy7orjg><h3 data-astro-cid-pvy7orjg>Taxonomias</h3><p class="muted" data-astro-cid-pvy7orjg>Categorias, tags e taxonomias personalizadas.</p></a></div></div>` })}`;
|
|
16
|
+
}, "/home/runner/work/cms/cms/apps/admin/src/pages/settings/index.astro", void 0);
|
|
17
|
+
var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/settings/index.astro";
|
|
18
|
+
var $$url = "/settings";
|
|
19
|
+
//#endregion
|
|
20
|
+
//#region \0virtual:astro:page:src/pages/settings/index@_@astro
|
|
21
|
+
var page = () => settings_exports;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { page };
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
|
|
2
|
+
import { d as maybeRenderHead, i as renderComponent, u as renderTemplate } from "./server_CnzC2Y0K.mjs";
|
|
3
|
+
import { t as createComponent$1 } from "./compiler_CYjwXhLT.mjs";
|
|
4
|
+
import { t as $$DashboardLayout } from "./DashboardLayout_DO66tdeZ.mjs";
|
|
5
|
+
import { t as apiClient } from "./api_BWOj0bUJ.mjs";
|
|
6
|
+
import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
|
|
7
|
+
import { For, Show, createSignal, onMount } from "solid-js";
|
|
8
|
+
//#region src/components/content/ContentList.tsx
|
|
9
|
+
var _tmpl$ = [
|
|
10
|
+
"<div",
|
|
11
|
+
" class=\"notice notice--error\">",
|
|
12
|
+
"</div>"
|
|
13
|
+
];
|
|
14
|
+
var _tmpl$2 = [
|
|
15
|
+
"<table",
|
|
16
|
+
" class=\"table\"><thead><tr><th>Título</th><th>Tipo</th><th>Status</th><th>Atualizado</th><th></th></tr></thead><tbody>",
|
|
17
|
+
"</tbody></table>"
|
|
18
|
+
];
|
|
19
|
+
var _tmpl$3 = [
|
|
20
|
+
"<div",
|
|
21
|
+
" class=\"pagination\"><button class=\"btn btn-secondary btn-sm\" type=\"button\"",
|
|
22
|
+
">← Anterior</button><span class=\"muted\">Página <!--$-->",
|
|
23
|
+
"<!--/--> de <!--$-->",
|
|
24
|
+
"<!--/--></span><button class=\"btn btn-secondary btn-sm\" type=\"button\"",
|
|
25
|
+
">Próxima →</button></div>"
|
|
26
|
+
];
|
|
27
|
+
var _tmpl$4 = [
|
|
28
|
+
"<div",
|
|
29
|
+
" class=\"content-list\"><!--$-->",
|
|
30
|
+
"<!--/--><div class=\"toolbar\"><input class=\"input\" placeholder=\"Buscar conteúdo…\"",
|
|
31
|
+
"><select class=\"input\"",
|
|
32
|
+
"><option value>Todos os tipos</option><!--$-->",
|
|
33
|
+
"<!--/--></select><select class=\"input\"",
|
|
34
|
+
"><option value>Todos os status</option><option value=\"DRAFT\">Rascunho</option><option value=\"PUBLISHED\">Publicado</option><option value=\"ARCHIVED\">Arquivado</option></select><a class=\"btn btn-primary\" href=\"/content/new\">+ Novo conteúdo</a><button class=\"btn btn-secondary\" type=\"button\">Buscar</button></div><div class=\"card\"><!--$-->",
|
|
35
|
+
"<!--/--><!--$-->",
|
|
36
|
+
"<!--/--></div></div>"
|
|
37
|
+
];
|
|
38
|
+
var _tmpl$5 = [
|
|
39
|
+
"<option",
|
|
40
|
+
">",
|
|
41
|
+
"</option>"
|
|
42
|
+
];
|
|
43
|
+
var _tmpl$6 = ["<p", " class=\"muted\">Nenhum conteúdo encontrado.</p>"];
|
|
44
|
+
var _tmpl$7 = [
|
|
45
|
+
"<tr",
|
|
46
|
+
"><td>",
|
|
47
|
+
"</td><td>",
|
|
48
|
+
"</td><td>",
|
|
49
|
+
"</td><td class=\"muted\">",
|
|
50
|
+
"</td><td class=\"users-table__actions\"><a class=\"btn btn-secondary btn-sm\" href=\"",
|
|
51
|
+
"\">Editar</a><button class=\"btn btn-danger btn-sm\" type=\"button\">Excluir</button></td></tr>"
|
|
52
|
+
];
|
|
53
|
+
function raw(row) {
|
|
54
|
+
return row;
|
|
55
|
+
}
|
|
56
|
+
function formatDate(row) {
|
|
57
|
+
const value = raw(row)["updated_at"] ?? raw(row)["updatedAt"] ?? raw(row)["created_at"];
|
|
58
|
+
if (typeof value !== "string") return "—";
|
|
59
|
+
const date = new Date(value);
|
|
60
|
+
return Number.isNaN(date.getTime()) ? "—" : date.toLocaleString("pt-BR");
|
|
61
|
+
}
|
|
62
|
+
function ContentList() {
|
|
63
|
+
const [items, setItems] = createSignal([]);
|
|
64
|
+
const [types, setTypes] = createSignal([]);
|
|
65
|
+
const [total, setTotal] = createSignal(0);
|
|
66
|
+
const [page, setPage] = createSignal(1);
|
|
67
|
+
const [search, setSearch] = createSignal("");
|
|
68
|
+
const [type, setType] = createSignal("");
|
|
69
|
+
const [status, setStatus] = createSignal("");
|
|
70
|
+
const [error, setError] = createSignal("");
|
|
71
|
+
const limit = 20;
|
|
72
|
+
const load = async () => {
|
|
73
|
+
try {
|
|
74
|
+
const result = await apiClient.getContent({
|
|
75
|
+
page: page(),
|
|
76
|
+
limit,
|
|
77
|
+
type: type() || void 0,
|
|
78
|
+
status: status() || void 0,
|
|
79
|
+
search: search() || void 0
|
|
80
|
+
});
|
|
81
|
+
setItems(result.data ?? []);
|
|
82
|
+
setTotal(result.total ?? 0);
|
|
83
|
+
} catch (err) {
|
|
84
|
+
setError(err instanceof Error ? err.message : String(err));
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
onMount(async () => {
|
|
88
|
+
await load();
|
|
89
|
+
try {
|
|
90
|
+
setTypes(await apiClient.getContentTypes());
|
|
91
|
+
} catch {}
|
|
92
|
+
});
|
|
93
|
+
const totalPages = () => Math.max(1, Math.ceil(total() / limit));
|
|
94
|
+
return ssr(_tmpl$4, ssrHydrationKey(), escape(createComponent(Show, {
|
|
95
|
+
get when() {
|
|
96
|
+
return error();
|
|
97
|
+
},
|
|
98
|
+
get children() {
|
|
99
|
+
return ssr(_tmpl$, ssrHydrationKey(), escape(error()));
|
|
100
|
+
}
|
|
101
|
+
})), ssrAttribute("value", escape(search(), true), false), ssrAttribute("value", escape(type(), true), false), escape(createComponent(For, {
|
|
102
|
+
get each() {
|
|
103
|
+
return types();
|
|
104
|
+
},
|
|
105
|
+
children: (t) => ssr(_tmpl$5, ssrHydrationKey() + ssrAttribute("value", escape(t.slug, true), false), escape(t.pluralLabel || t.name))
|
|
106
|
+
})), ssrAttribute("value", escape(status(), true), false), escape(createComponent(Show, {
|
|
107
|
+
get when() {
|
|
108
|
+
return items().length > 0;
|
|
109
|
+
},
|
|
110
|
+
get fallback() {
|
|
111
|
+
return ssr(_tmpl$6, ssrHydrationKey());
|
|
112
|
+
},
|
|
113
|
+
get children() {
|
|
114
|
+
return ssr(_tmpl$2, ssrHydrationKey(), escape(createComponent(For, {
|
|
115
|
+
get each() {
|
|
116
|
+
return items();
|
|
117
|
+
},
|
|
118
|
+
children: (row) => ssr(_tmpl$7, ssrHydrationKey(), escape(String(raw(row)["title"] ?? "—")), escape(String(raw(row)["type"] ?? "—")), escape(String(raw(row)["status"] ?? "—")), escape(formatDate(row)), `/content/edit?id=${escape(encodeURIComponent(row.id), true)}`)
|
|
119
|
+
})));
|
|
120
|
+
}
|
|
121
|
+
})), escape(createComponent(Show, {
|
|
122
|
+
get when() {
|
|
123
|
+
return totalPages() > 1;
|
|
124
|
+
},
|
|
125
|
+
get children() {
|
|
126
|
+
return ssr(_tmpl$3, ssrHydrationKey(), ssrAttribute("disabled", page() <= 1, true), escape(page()), escape(totalPages()), ssrAttribute("disabled", page() >= totalPages(), true));
|
|
127
|
+
}
|
|
128
|
+
})));
|
|
129
|
+
}
|
|
130
|
+
//#endregion
|
|
131
|
+
//#region src/pages/content/index.astro
|
|
132
|
+
var content_exports = /* @__PURE__ */ __exportAll({
|
|
133
|
+
default: () => $$Index,
|
|
134
|
+
file: () => $$file,
|
|
135
|
+
url: () => $$url
|
|
136
|
+
});
|
|
137
|
+
var $$Index = createComponent$1(($$result, $$props, $$slots) => {
|
|
138
|
+
return renderTemplate`${renderComponent($$result, "DashboardLayout", $$DashboardLayout, {
|
|
139
|
+
"title": "Content",
|
|
140
|
+
"data-astro-cid-qhu5jad5": true
|
|
141
|
+
}, { "default": ($$result) => renderTemplate`${maybeRenderHead($$result)}<div class="content-page" data-astro-cid-qhu5jad5><div class="page-header" data-astro-cid-qhu5jad5><h2 data-astro-cid-qhu5jad5>Conteúdo</h2><p data-astro-cid-qhu5jad5>Busque, filtre, edite e publique seu conteúdo.</p></div>${renderComponent($$result, "ContentList", ContentList, {
|
|
142
|
+
"client:load": true,
|
|
143
|
+
"data-astro-cid-qhu5jad5": true,
|
|
144
|
+
"client:component-hydration": "load",
|
|
145
|
+
"client:component-path": "/home/runner/work/cms/cms/apps/admin/src/components/content/ContentList.tsx",
|
|
146
|
+
"client:component-export": "ContentList"
|
|
147
|
+
})}</div>` })}`;
|
|
148
|
+
}, "/home/runner/work/cms/cms/apps/admin/src/pages/content/index.astro", void 0);
|
|
149
|
+
var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/content/index.astro";
|
|
150
|
+
var $$url = "/content";
|
|
151
|
+
//#endregion
|
|
152
|
+
//#region \0virtual:astro:page:src/pages/content/index@_@astro
|
|
153
|
+
var page = () => content_exports;
|
|
154
|
+
//#endregion
|
|
155
|
+
export { page };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
|
|
2
|
+
import { d as maybeRenderHead, i as renderComponent, u as renderTemplate } from "./server_CnzC2Y0K.mjs";
|
|
3
|
+
import { t as createComponent } from "./compiler_CYjwXhLT.mjs";
|
|
4
|
+
import { t as $$DashboardLayout } from "./DashboardLayout_DO66tdeZ.mjs";
|
|
5
|
+
import { t as MediaLibrary } from "./MediaLibrary_DEi9k6ms.mjs";
|
|
6
|
+
//#region src/pages/media/index.astro
|
|
7
|
+
var media_exports = /* @__PURE__ */ __exportAll({
|
|
8
|
+
default: () => $$Index,
|
|
9
|
+
file: () => $$file,
|
|
10
|
+
url: () => $$url
|
|
11
|
+
});
|
|
12
|
+
var $$Index = createComponent(($$result, $$props, $$slots) => {
|
|
13
|
+
return renderTemplate`${renderComponent($$result, "DashboardLayout", $$DashboardLayout, {
|
|
14
|
+
"title": "Media",
|
|
15
|
+
"data-astro-cid-jureezux": true
|
|
16
|
+
}, { "default": ($$result) => renderTemplate`${maybeRenderHead($$result)}<div class="media-page" data-astro-cid-jureezux><div class="page-header" data-astro-cid-jureezux><h2 data-astro-cid-jureezux>Biblioteca de mídia</h2><p data-astro-cid-jureezux>Envie e gerencie imagens, vídeos e documentos. Os arquivos ficam em <code data-astro-cid-jureezux>uploads/</code> e são servidos publicamente.</p></div>${renderComponent($$result, "MediaLibrary", MediaLibrary, {
|
|
17
|
+
"client:load": true,
|
|
18
|
+
"data-astro-cid-jureezux": true,
|
|
19
|
+
"client:component-hydration": "load",
|
|
20
|
+
"client:component-path": "/home/runner/work/cms/cms/apps/admin/src/components/media/MediaLibrary.tsx",
|
|
21
|
+
"client:component-export": "MediaLibrary"
|
|
22
|
+
})}</div>` })}`;
|
|
23
|
+
}, "/home/runner/work/cms/cms/apps/admin/src/pages/media/index.astro", void 0);
|
|
24
|
+
var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/media/index.astro";
|
|
25
|
+
var $$url = "/media";
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region \0virtual:astro:page:src/pages/media/index@_@astro
|
|
28
|
+
var page = () => media_exports;
|
|
29
|
+
//#endregion
|
|
30
|
+
export { page };
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
|
|
2
|
+
import { d as maybeRenderHead, i as renderComponent, u as renderTemplate } from "./server_CnzC2Y0K.mjs";
|
|
3
|
+
import { t as createComponent$1 } from "./compiler_CYjwXhLT.mjs";
|
|
4
|
+
import { t as $$DashboardLayout } from "./DashboardLayout_DO66tdeZ.mjs";
|
|
5
|
+
import { t as apiClient } from "./api_BWOj0bUJ.mjs";
|
|
6
|
+
import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
|
|
7
|
+
import { For, Show, createSignal, onMount } from "solid-js";
|
|
8
|
+
//#region src/components/apps/users/UsersManager.tsx
|
|
9
|
+
var _tmpl$ = [
|
|
10
|
+
"<div",
|
|
11
|
+
" class=\"notice notice--error\">",
|
|
12
|
+
"</div>"
|
|
13
|
+
];
|
|
14
|
+
var _tmpl$2 = [
|
|
15
|
+
"<div",
|
|
16
|
+
" class=\"notice\">",
|
|
17
|
+
"</div>"
|
|
18
|
+
];
|
|
19
|
+
var _tmpl$3 = [
|
|
20
|
+
"<table",
|
|
21
|
+
" class=\"users-table\"><thead><tr><th>Nome</th><th>Email</th><th>Papel</th><th>Status</th><th>Último acesso</th><th></th></tr></thead><tbody>",
|
|
22
|
+
"</tbody></table>"
|
|
23
|
+
];
|
|
24
|
+
var _tmpl$4 = [
|
|
25
|
+
"<div",
|
|
26
|
+
" class=\"pagination\"><button class=\"btn btn-secondary btn-sm\" type=\"button\"",
|
|
27
|
+
">← Anterior</button><span class=\"muted\">Página <!--$-->",
|
|
28
|
+
"<!--/--> de <!--$-->",
|
|
29
|
+
"<!--/--></span><button class=\"btn btn-secondary btn-sm\" type=\"button\"",
|
|
30
|
+
">Próxima →</button></div>"
|
|
31
|
+
];
|
|
32
|
+
var _tmpl$5 = [
|
|
33
|
+
"<div",
|
|
34
|
+
" class=\"users-manager\"><!--$-->",
|
|
35
|
+
"<!--/--><!--$-->",
|
|
36
|
+
"<!--/--><div class=\"toolbar\"><input class=\"input\" placeholder=\"Buscar por nome ou email…\"",
|
|
37
|
+
"><select class=\"input\"",
|
|
38
|
+
"><option value>Todos os status</option><option value=\"ACTIVE\">Ativos</option><option value=\"INACTIVE\">Inativos</option></select><a class=\"btn btn-primary\" href=\"/users/new\">+ Novo usuário</a><button class=\"btn btn-secondary\" type=\"button\">Buscar</button></div><!--$-->",
|
|
39
|
+
"<!--/--><!--$-->",
|
|
40
|
+
"<!--/--><!--$-->",
|
|
41
|
+
"<!--/--></div>"
|
|
42
|
+
];
|
|
43
|
+
var _tmpl$6 = ["<p", " class=\"muted\">Nenhum usuário encontrado.</p>"];
|
|
44
|
+
var _tmpl$7 = [
|
|
45
|
+
"<span",
|
|
46
|
+
" class=\"badge\">",
|
|
47
|
+
"</span>"
|
|
48
|
+
];
|
|
49
|
+
var _tmpl$8 = [
|
|
50
|
+
"<tr",
|
|
51
|
+
" class=\"",
|
|
52
|
+
"\"><td>",
|
|
53
|
+
"</td><td class=\"muted\">",
|
|
54
|
+
"</td><td>",
|
|
55
|
+
"</td><td><span class=\"",
|
|
56
|
+
"\"></span><!--$-->",
|
|
57
|
+
"<!--/--></td><td class=\"muted\">",
|
|
58
|
+
"</td><td class=\"users-table__actions\"><button class=\"btn btn-secondary btn-sm\" type=\"button\">Gerenciar</button><button class=\"btn btn-danger btn-sm\" type=\"button\">Excluir</button></td></tr>"
|
|
59
|
+
];
|
|
60
|
+
var _tmpl$9 = ["<span", " class=\"muted\">sem papel</span>"];
|
|
61
|
+
var _tmpl$0 = [
|
|
62
|
+
"<div",
|
|
63
|
+
" class=\"card user-details\"><h3>Gerenciar usuário</h3><div class=\"form-grid\"><label>Nome<input class=\"input\"",
|
|
64
|
+
"></label><label>Email<input class=\"input\" type=\"email\"",
|
|
65
|
+
"></label><label>Status<select class=\"input\"",
|
|
66
|
+
"><option value=\"ACTIVE\">Ativo</option><option value=\"INACTIVE\">Inativo</option></select></label><label>Papel<select class=\"input\"",
|
|
67
|
+
"",
|
|
68
|
+
"><option value>— sem papel —</option><!--$-->",
|
|
69
|
+
"<!--/--></select></label></div><p class=\"muted\">Criado em <!--$-->",
|
|
70
|
+
"<!--/--> · último acesso <!--$-->",
|
|
71
|
+
"<!--/--></p><div class=\"media-details__actions\"><button class=\"btn btn-primary\" type=\"button\"",
|
|
72
|
+
">",
|
|
73
|
+
"</button><button class=\"btn btn-secondary\" type=\"button\"",
|
|
74
|
+
">Redefinir senha</button><button class=\"btn btn-secondary\" type=\"button\">Fechar</button></div></div>"
|
|
75
|
+
];
|
|
76
|
+
var _tmpl$1 = [
|
|
77
|
+
"<option",
|
|
78
|
+
"><!--$-->",
|
|
79
|
+
"<!--/--> (<!--$-->",
|
|
80
|
+
"<!--/-->)</option>"
|
|
81
|
+
];
|
|
82
|
+
function formatDate(value) {
|
|
83
|
+
if (!value) return "—";
|
|
84
|
+
const date = new Date(value);
|
|
85
|
+
return Number.isNaN(date.getTime()) ? "—" : date.toLocaleString("pt-BR");
|
|
86
|
+
}
|
|
87
|
+
function UsersManager() {
|
|
88
|
+
const [users, setUsers] = createSignal([]);
|
|
89
|
+
const [roles, setRoles] = createSignal([]);
|
|
90
|
+
const [total, setTotal] = createSignal(0);
|
|
91
|
+
const [page, setPage] = createSignal(1);
|
|
92
|
+
const [search, setSearch] = createSignal("");
|
|
93
|
+
const [status, setStatus] = createSignal("");
|
|
94
|
+
const [error, setError] = createSignal("");
|
|
95
|
+
const [info, setInfo] = createSignal("");
|
|
96
|
+
const [selected, setSelected] = createSignal(null);
|
|
97
|
+
const [busy, setBusy] = createSignal(false);
|
|
98
|
+
const limit = 20;
|
|
99
|
+
const load = async () => {
|
|
100
|
+
try {
|
|
101
|
+
const result = await apiClient.listUsers({
|
|
102
|
+
page: page(),
|
|
103
|
+
limit,
|
|
104
|
+
search: search() || void 0,
|
|
105
|
+
status: status() || void 0
|
|
106
|
+
});
|
|
107
|
+
setUsers(result.data ?? []);
|
|
108
|
+
setTotal(result.total ?? 0);
|
|
109
|
+
} catch (err) {
|
|
110
|
+
setError(err instanceof Error ? err.message : String(err));
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
onMount(async () => {
|
|
114
|
+
await load();
|
|
115
|
+
try {
|
|
116
|
+
setRoles(await apiClient.listRoles());
|
|
117
|
+
} catch {}
|
|
118
|
+
});
|
|
119
|
+
const totalPages = () => Math.max(1, Math.ceil(total() / limit));
|
|
120
|
+
const currentRole = (user) => roles().find((r) => r.slug === user.roles[0]);
|
|
121
|
+
return ssr(_tmpl$5, ssrHydrationKey(), escape(createComponent(Show, {
|
|
122
|
+
get when() {
|
|
123
|
+
return error();
|
|
124
|
+
},
|
|
125
|
+
get children() {
|
|
126
|
+
return ssr(_tmpl$, ssrHydrationKey(), escape(error()));
|
|
127
|
+
}
|
|
128
|
+
})), escape(createComponent(Show, {
|
|
129
|
+
get when() {
|
|
130
|
+
return info();
|
|
131
|
+
},
|
|
132
|
+
get children() {
|
|
133
|
+
return ssr(_tmpl$2, ssrHydrationKey(), escape(info()));
|
|
134
|
+
}
|
|
135
|
+
})), ssrAttribute("value", escape(search(), true), false), ssrAttribute("value", escape(status(), true), false), escape(createComponent(Show, {
|
|
136
|
+
get when() {
|
|
137
|
+
return users().length > 0;
|
|
138
|
+
},
|
|
139
|
+
get fallback() {
|
|
140
|
+
return ssr(_tmpl$6, ssrHydrationKey());
|
|
141
|
+
},
|
|
142
|
+
get children() {
|
|
143
|
+
return ssr(_tmpl$3, ssrHydrationKey(), escape(createComponent(For, {
|
|
144
|
+
get each() {
|
|
145
|
+
return users();
|
|
146
|
+
},
|
|
147
|
+
children: (user) => ssr(_tmpl$8, ssrHydrationKey(), selected()?.id === user.id ? "users-table__row--selected" : "", escape(user.name), escape(user.email), escape(createComponent(Show, {
|
|
148
|
+
get when() {
|
|
149
|
+
return user.roles.length > 0;
|
|
150
|
+
},
|
|
151
|
+
get fallback() {
|
|
152
|
+
return ssr(_tmpl$9, ssrHydrationKey());
|
|
153
|
+
},
|
|
154
|
+
get children() {
|
|
155
|
+
return ssr(_tmpl$7, ssrHydrationKey(), escape(user.roles.join(", ")));
|
|
156
|
+
}
|
|
157
|
+
})), `status-dot ${user.status === "ACTIVE" ? "status-dot--active" : ""}`, escape(user.status), escape(formatDate(user.last_login_at)))
|
|
158
|
+
})));
|
|
159
|
+
}
|
|
160
|
+
})), escape(createComponent(Show, {
|
|
161
|
+
get when() {
|
|
162
|
+
return totalPages() > 1;
|
|
163
|
+
},
|
|
164
|
+
get children() {
|
|
165
|
+
return ssr(_tmpl$4, ssrHydrationKey(), ssrAttribute("disabled", page() <= 1, true), escape(page()), escape(totalPages()), ssrAttribute("disabled", page() >= totalPages(), true));
|
|
166
|
+
}
|
|
167
|
+
})), escape(createComponent(Show, {
|
|
168
|
+
get when() {
|
|
169
|
+
return selected();
|
|
170
|
+
},
|
|
171
|
+
children: (user) => ssr(_tmpl$0, ssrHydrationKey(), ssrAttribute("value", escape(user().name, true), false), ssrAttribute("value", escape(user().email, true), false), ssrAttribute("value", escape(user().status, true), false), ssrAttribute("value", escape(currentRole(user())?.id ?? "", true), false), ssrAttribute("disabled", busy(), true), escape(createComponent(For, {
|
|
172
|
+
get each() {
|
|
173
|
+
return roles();
|
|
174
|
+
},
|
|
175
|
+
children: (role) => ssr(_tmpl$1, ssrHydrationKey() + ssrAttribute("value", escape(role.id, true), false), escape(role.name), escape(role.slug))
|
|
176
|
+
})), escape(formatDate(user().created_at)), escape(formatDate(user().last_login_at)), ssrAttribute("disabled", busy(), true), busy() ? "Salvando…" : "Salvar", ssrAttribute("disabled", busy(), true))
|
|
177
|
+
})));
|
|
178
|
+
}
|
|
179
|
+
//#endregion
|
|
180
|
+
//#region src/pages/users/index.astro
|
|
181
|
+
var users_exports = /* @__PURE__ */ __exportAll({
|
|
182
|
+
default: () => $$Index,
|
|
183
|
+
file: () => $$file,
|
|
184
|
+
url: () => $$url
|
|
185
|
+
});
|
|
186
|
+
var $$Index = createComponent$1(($$result, $$props, $$slots) => {
|
|
187
|
+
return renderTemplate`${renderComponent($$result, "DashboardLayout", $$DashboardLayout, {
|
|
188
|
+
"title": "Users",
|
|
189
|
+
"data-astro-cid-ao6unroh": true
|
|
190
|
+
}, { "default": ($$result) => renderTemplate`${maybeRenderHead($$result)}<div class="users-page" data-astro-cid-ao6unroh><div class="page-header" data-astro-cid-ao6unroh><h2 data-astro-cid-ao6unroh>Usuários</h2><p data-astro-cid-ao6unroh>Gerencie contas, papéis (roles) e acessos do projeto.</p></div>${renderComponent($$result, "UsersManager", UsersManager, {
|
|
191
|
+
"client:load": true,
|
|
192
|
+
"data-astro-cid-ao6unroh": true,
|
|
193
|
+
"client:component-hydration": "load",
|
|
194
|
+
"client:component-path": "/home/runner/work/cms/cms/apps/admin/src/components/apps/users/UsersManager.tsx",
|
|
195
|
+
"client:component-export": "UsersManager"
|
|
196
|
+
})}</div>` })}`;
|
|
197
|
+
}, "/home/runner/work/cms/cms/apps/admin/src/pages/users/index.astro", void 0);
|
|
198
|
+
var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/users/index.astro";
|
|
199
|
+
var $$url = "/users";
|
|
200
|
+
//#endregion
|
|
201
|
+
//#region \0virtual:astro:page:src/pages/users/index@_@astro
|
|
202
|
+
var page = () => users_exports;
|
|
203
|
+
//#endregion
|
|
204
|
+
export { page };
|
|
@@ -1,24 +1,7 @@
|
|
|
1
1
|
import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
|
|
2
|
-
import { d as maybeRenderHead, i as renderComponent,
|
|
2
|
+
import { d as maybeRenderHead, i as renderComponent, u as renderTemplate } from "./server_CnzC2Y0K.mjs";
|
|
3
3
|
import { t as createComponent } from "./compiler_CYjwXhLT.mjs";
|
|
4
|
-
import { t as $$BaseLayout } from "./
|
|
5
|
-
//#region ../../node_modules/.bun/astro@7.3.5+b816f5dfb7c6296d/node_modules/astro/dist/runtime/server/render/script.js
|
|
6
|
-
async function renderScript(result, id) {
|
|
7
|
-
const inlined = result.inlinedScripts.get(id);
|
|
8
|
-
let content = "";
|
|
9
|
-
if (inlined != null) {
|
|
10
|
-
if (inlined) content = `<script type="module">${inlined}<\/script>`;
|
|
11
|
-
} else {
|
|
12
|
-
const resolved = await result.resolve(id);
|
|
13
|
-
content = `<script type="module" src="${result.userAssetsBase ? (result.base === "/" ? "" : result.base) + result.userAssetsBase : ""}${resolved}"><\/script>`;
|
|
14
|
-
}
|
|
15
|
-
return createRenderInstruction({
|
|
16
|
-
type: "script",
|
|
17
|
-
id,
|
|
18
|
-
content
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
//#endregion
|
|
4
|
+
import { n as renderScript, t as $$BaseLayout } from "./BaseLayout_C41_wW4F.mjs";
|
|
22
5
|
//#region src/pages/login.astro
|
|
23
6
|
var login_exports = /* @__PURE__ */ __exportAll({
|
|
24
7
|
default: () => $$Login,
|