@oktis-works/admin 0.1.5 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/client/_astro/{BaseLayout.COf3Eran.css → BaseLayout.BPkaFsmK.css} +1 -1
  2. package/dist/client/_astro/ContentEditor.C9TSxsGW.js +1 -0
  3. package/dist/client/_astro/ContentList.e1datweV.js +1 -0
  4. package/dist/client/_astro/DashboardHome.CqnldWlv.js +1 -0
  5. package/dist/client/_astro/DashboardLayout.astro_astro_type_script_index_0_lang.sNve10RH.js +1 -0
  6. package/dist/client/_astro/GeneralSettings.D-ALN9_r.js +1 -0
  7. package/dist/client/_astro/MediaLibrary.NQ1lF95i.js +1 -0
  8. package/dist/client/_astro/PostTypesManager.CdMx_Nxn.js +1 -0
  9. package/dist/client/_astro/TaxonomiesManager.BU7A02Ay.js +1 -0
  10. package/dist/client/_astro/UserCreateForm.BvDn97aZ.js +1 -0
  11. package/dist/client/_astro/UsersManager.CFBCKO-t.js +1 -0
  12. package/dist/client/_astro/api.DCaprPaL.js +1 -0
  13. package/dist/client/_astro/client.BY0Z100j.js +1 -0
  14. package/dist/client/_astro/dist.B3u752Tx.js +1 -0
  15. package/dist/client/_astro/extensions.PfWqwyUU.js +1 -0
  16. package/dist/client/_astro/{login.astro_astro_type_script_index_0_lang.BLhqPWk8.js → login.astro_astro_type_script_index_0_lang.BZaUVRCc.js} +1 -1
  17. package/dist/client/_astro/{web.BRlgYXBp.js → web.D_vCtCLj.js} +1 -1
  18. package/dist/server/chunks/{BaseLayout_Mvr1_6Ng.mjs → BaseLayout_C41_wW4F.mjs} +19 -2
  19. package/dist/server/chunks/{edit_D14rRl_p.mjs → ContentEditor_CrO12IkK.mjs} +535 -48
  20. package/dist/server/chunks/DashboardLayout_h9iqOf7E.mjs +524 -0
  21. package/dist/server/chunks/MediaLibrary_Ctc5H6Od.mjs +309 -0
  22. package/dist/server/chunks/_slug__FVgVdi48.mjs +30 -0
  23. package/dist/server/chunks/api_C1VC3OiH.mjs +286 -0
  24. package/dist/server/chunks/edit_Dau0tASP.mjs +30 -0
  25. package/dist/server/chunks/general_DOXmhv-h.mjs +180 -0
  26. package/dist/server/chunks/index_B26K6w42.mjs +316 -0
  27. package/dist/server/chunks/index_BYBvZsat.mjs +23 -0
  28. package/dist/server/chunks/index_D9OGVvPs.mjs +275 -0
  29. package/dist/server/chunks/index_Owj31XBA.mjs +133 -0
  30. package/dist/server/chunks/index_oZK1qJym.mjs +30 -0
  31. package/dist/server/chunks/{login_B7vbWIed.mjs → login_BH67N4b1.mjs} +2 -19
  32. package/dist/server/chunks/new_2mb-n_fU.mjs +86 -0
  33. package/dist/server/chunks/new_BhA9pTES.mjs +30 -0
  34. package/dist/server/chunks/{post-types_BtNyF2Iv.mjs → post-types_B4rrV0WI.mjs} +2 -2
  35. package/dist/server/chunks/{taxonomies_DSgstawN.mjs → taxonomies_Bdxv94jK.mjs} +2 -2
  36. package/dist/server/chunks/upload_RgdwSWbY.mjs +31 -0
  37. package/dist/server/entry.mjs +291 -15
  38. package/package.json +5 -5
  39. package/dist/client/_astro/ContentEditor.COyD6bGV.js +0 -1
  40. package/dist/client/_astro/PostTypesManager.APvO7Cs9.js +0 -1
  41. package/dist/client/_astro/TaxonomiesManager.CVFdfaUR.js +0 -1
  42. package/dist/client/_astro/api.DSP61PKM.js +0 -1
  43. package/dist/client/_astro/client.D7G9q8lk.js +0 -1
  44. package/dist/server/chunks/DashboardLayout_CP5ag-_P.mjs +0 -17
  45. package/dist/server/chunks/api_Cy8sbUHf.mjs +0 -153
  46. package/dist/server/chunks/index_BgbHlcwr.mjs +0 -23
  47. package/dist/server/chunks/index_c3b5hMDp.mjs +0 -22
@@ -0,0 +1,180 @@
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 { c as Select, f as createSignal, i as Card, l as Show2, o as Input, p as onMount, r as Button, t as $$DashboardLayout } from "./DashboardLayout_h9iqOf7E.mjs";
5
+ import { t as apiClient } from "./api_C1VC3OiH.mjs";
6
+ import { createComponent, escape, memo, ssr, ssrHydrationKey } from "solid-js/web";
7
+ //#region src/components/apps/settings/GeneralSettings.tsx
8
+ var _tmpl$ = [
9
+ "<div",
10
+ " class=\"notice notice--error\">",
11
+ "</div>"
12
+ ];
13
+ var _tmpl$2 = [
14
+ "<div",
15
+ " class=\"notice\">",
16
+ "</div>"
17
+ ];
18
+ var _tmpl$3 = [
19
+ "<form",
20
+ "><h3>Geral</h3><div class=\"form-grid\">",
21
+ "</div><div class=\"media-details__actions\">",
22
+ "</div></form>"
23
+ ];
24
+ var _tmpl$4 = [
25
+ "<div",
26
+ " class=\"general-settings\"><!--$-->",
27
+ "<!--/--><!--$-->",
28
+ "<!--/--><!--$-->",
29
+ "<!--/--></div>"
30
+ ];
31
+ var _tmpl$5 = ["<p", " class=\"muted\">Carregando…</p>"];
32
+ var FIELDS = [
33
+ {
34
+ key: "siteTitle",
35
+ label: "Título do site",
36
+ type: "text",
37
+ placeholder: "Meu Site"
38
+ },
39
+ {
40
+ key: "siteDescription",
41
+ label: "Descrição",
42
+ type: "text",
43
+ placeholder: "Um novo site feito com OkCMS"
44
+ },
45
+ {
46
+ key: "language",
47
+ label: "Idioma",
48
+ type: "select",
49
+ options: [
50
+ "pt-BR",
51
+ "en-US",
52
+ "es-ES"
53
+ ]
54
+ },
55
+ {
56
+ key: "timezone",
57
+ label: "Fuso horário",
58
+ type: "text",
59
+ placeholder: "America/Sao_Paulo"
60
+ }
61
+ ];
62
+ function GeneralSettings() {
63
+ const [values, setValues] = createSignal({});
64
+ const [loaded, setLoaded] = createSignal(false);
65
+ const [error, setError] = createSignal("");
66
+ const [info, setInfo] = createSignal("");
67
+ const [saving, setSaving] = createSignal(false);
68
+ onMount(async () => {
69
+ try {
70
+ const rows = await apiClient.getSettings("general");
71
+ const map = {};
72
+ for (const row of rows) map[row.key] = typeof row.value === "string" ? row.value : JSON.stringify(row.value ?? "");
73
+ for (const field of FIELDS) if (map[field.key] === void 0) map[field.key] = "";
74
+ setValues(map);
75
+ setLoaded(true);
76
+ } catch (err) {
77
+ setError(err instanceof Error ? err.message : String(err));
78
+ }
79
+ });
80
+ return ssr(_tmpl$4, ssrHydrationKey(), escape(createComponent(Show2, {
81
+ get when() {
82
+ return error();
83
+ },
84
+ get children() {
85
+ return ssr(_tmpl$, ssrHydrationKey(), escape(error()));
86
+ }
87
+ })), escape(createComponent(Show2, {
88
+ get when() {
89
+ return info();
90
+ },
91
+ get children() {
92
+ return ssr(_tmpl$2, ssrHydrationKey(), escape(info()));
93
+ }
94
+ })), escape(createComponent(Show2, {
95
+ get when() {
96
+ return loaded();
97
+ },
98
+ get fallback() {
99
+ return ssr(_tmpl$5, ssrHydrationKey());
100
+ },
101
+ get children() {
102
+ return createComponent(Card, { get children() {
103
+ return ssr(_tmpl$3, ssrHydrationKey(), escape(FIELDS.map((field) => field.type === "select" ? createComponent(Select, {
104
+ get name() {
105
+ return field.key;
106
+ },
107
+ get label() {
108
+ return field.label;
109
+ },
110
+ get value() {
111
+ return values()[field.key] ?? "";
112
+ },
113
+ get options() {
114
+ return memo(() => "options" in field)() ? field.options.map((option) => ({
115
+ value: option,
116
+ label: option
117
+ })) : [];
118
+ },
119
+ onChange: (value) => setValues({
120
+ ...values(),
121
+ [field.key]: value
122
+ })
123
+ }) : createComponent(Input, {
124
+ get name() {
125
+ return field.key;
126
+ },
127
+ get label() {
128
+ return field.label;
129
+ },
130
+ get placeholder() {
131
+ return memo(() => "placeholder" in field)() ? field.placeholder : "";
132
+ },
133
+ get value() {
134
+ return values()[field.key] ?? "";
135
+ },
136
+ onInput: (value) => setValues({
137
+ ...values(),
138
+ [field.key]: value
139
+ })
140
+ }))), escape(createComponent(Button, {
141
+ variant: "primary",
142
+ type: "submit",
143
+ get disabled() {
144
+ return saving();
145
+ },
146
+ get loading() {
147
+ return saving();
148
+ },
149
+ children: "Salvar"
150
+ })));
151
+ } });
152
+ }
153
+ })));
154
+ }
155
+ //#endregion
156
+ //#region src/pages/settings/general.astro
157
+ var general_exports = /* @__PURE__ */ __exportAll({
158
+ default: () => $$General,
159
+ file: () => $$file,
160
+ url: () => $$url
161
+ });
162
+ var $$General = createComponent$1(($$result, $$props, $$slots) => {
163
+ return renderTemplate`${renderComponent($$result, "DashboardLayout", $$DashboardLayout, {
164
+ "title": "Settings · General",
165
+ "data-astro-cid-nzku6miy": true
166
+ }, { "default": ($$result) => renderTemplate`${maybeRenderHead($$result)}<div class="settings-page" data-astro-cid-nzku6miy><div class="page-header" data-astro-cid-nzku6miy><h2 data-astro-cid-nzku6miy>Geral</h2><p data-astro-cid-nzku6miy>Informações básicas exibidas no site.</p><p data-astro-cid-nzku6miy><a href="/settings" data-astro-cid-nzku6miy>← Todas as configurações</a></p></div>${renderComponent($$result, "GeneralSettings", GeneralSettings, {
167
+ "client:load": true,
168
+ "data-astro-cid-nzku6miy": true,
169
+ "client:component-hydration": "load",
170
+ "client:component-path": "/home/runner/work/cms/cms/apps/admin/src/components/apps/settings/GeneralSettings.tsx",
171
+ "client:component-export": "GeneralSettings"
172
+ })}</div>` })}`;
173
+ }, "/home/runner/work/cms/cms/apps/admin/src/pages/settings/general.astro", void 0);
174
+ var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/settings/general.astro";
175
+ var $$url = "/settings/general";
176
+ //#endregion
177
+ //#region \0virtual:astro:page:src/pages/settings/general@_@astro
178
+ var page = () => general_exports;
179
+ //#endregion
180
+ export { page };
@@ -0,0 +1,316 @@
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 { a as For2, c as Select, f as createSignal, l as Show2, n as Badge, o as Input, p as onMount, r as Button, s as Pagination, t as $$DashboardLayout } from "./DashboardLayout_h9iqOf7E.mjs";
5
+ import { t as apiClient } from "./api_C1VC3OiH.mjs";
6
+ import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
7
+ //#region src/components/apps/users/UsersManager.tsx
8
+ var _tmpl$ = [
9
+ "<div",
10
+ " class=\"notice notice--error\">",
11
+ "</div>"
12
+ ];
13
+ var _tmpl$2 = [
14
+ "<div",
15
+ " class=\"notice\">",
16
+ "</div>"
17
+ ];
18
+ var _tmpl$3 = [
19
+ "<table",
20
+ " 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>",
21
+ "</tbody></table>"
22
+ ];
23
+ var _tmpl$4 = [
24
+ "<div",
25
+ " class=\"users-manager\"><!--$-->",
26
+ "<!--/--><!--$-->",
27
+ "<!--/--><div class=\"toolbar\"><!--$-->",
28
+ "<!--/--><!--$-->",
29
+ "<!--/--><a class=\"btn btn-primary\" href=\"/users/new\">+ Novo usuário</a><!--$-->",
30
+ "<!--/--></div><!--$-->",
31
+ "<!--/--><!--$-->",
32
+ "<!--/--><!--$-->",
33
+ "<!--/--></div>"
34
+ ];
35
+ var _tmpl$5 = ["<p", " class=\"muted\">Nenhum usuário encontrado.</p>"];
36
+ var _tmpl$6 = [
37
+ "<tr",
38
+ " class=\"",
39
+ "\"><td>",
40
+ "</td><td class=\"muted\">",
41
+ "</td><td>",
42
+ "</td><td><span class=\"",
43
+ "\"></span><!--$-->",
44
+ "<!--/--></td><td class=\"muted\">",
45
+ "</td><td class=\"users-table__actions\"><!--$-->",
46
+ "<!--/--><!--$-->",
47
+ "<!--/--></td></tr>"
48
+ ];
49
+ var _tmpl$7 = ["<span", " class=\"muted\">sem papel</span>"];
50
+ var _tmpl$8 = [
51
+ "<div",
52
+ " class=\"card user-details\"><h3>Gerenciar usuário</h3><div class=\"form-grid\"><label>Nome<input class=\"input\"",
53
+ "></label><label>Email<input class=\"input\" type=\"email\"",
54
+ "></label><label>Status<select class=\"input\"",
55
+ "><option value=\"ACTIVE\">Ativo</option><option value=\"INACTIVE\">Inativo</option></select></label><label>Papel<select class=\"input\"",
56
+ "",
57
+ "><option value>— sem papel —</option><!--$-->",
58
+ "<!--/--></select></label></div><p class=\"muted\">Criado em <!--$-->",
59
+ "<!--/--> · último acesso <!--$-->",
60
+ "<!--/--></p><div class=\"media-details__actions\"><!--$-->",
61
+ "<!--/--><!--$-->",
62
+ "<!--/--><!--$-->",
63
+ "<!--/--></div></div>"
64
+ ];
65
+ var _tmpl$9 = [
66
+ "<option",
67
+ "><!--$-->",
68
+ "<!--/--> (<!--$-->",
69
+ "<!--/-->)</option>"
70
+ ];
71
+ function formatDate(value) {
72
+ if (!value) return "—";
73
+ const date = new Date(value);
74
+ return Number.isNaN(date.getTime()) ? "—" : date.toLocaleString("pt-BR");
75
+ }
76
+ function UsersManager() {
77
+ const [users, setUsers] = createSignal([]);
78
+ const [roles, setRoles] = createSignal([]);
79
+ const [total, setTotal] = createSignal(0);
80
+ const [page, setPage] = createSignal(1);
81
+ const [search, setSearch] = createSignal("");
82
+ const [status, setStatus] = createSignal("");
83
+ const [error, setError] = createSignal("");
84
+ const [info, setInfo] = createSignal("");
85
+ const [selected, setSelected] = createSignal(null);
86
+ const [busy, setBusy] = createSignal(false);
87
+ const limit = 20;
88
+ const load = async () => {
89
+ try {
90
+ const result = await apiClient.listUsers({
91
+ page: page(),
92
+ limit,
93
+ search: search() || void 0,
94
+ status: status() || void 0
95
+ });
96
+ setUsers(result.data ?? []);
97
+ setTotal(result.total ?? 0);
98
+ } catch (err) {
99
+ setError(err instanceof Error ? err.message : String(err));
100
+ }
101
+ };
102
+ onMount(async () => {
103
+ await load();
104
+ try {
105
+ setRoles(await apiClient.listRoles());
106
+ } catch {}
107
+ });
108
+ const searchNow = async () => {
109
+ setPage(1);
110
+ await load();
111
+ };
112
+ const resetPassword = async (user) => {
113
+ const password = prompt(`Nova senha para ${user.email} (mínimo 8 caracteres):`);
114
+ if (!password) return;
115
+ if (password.length < 8) {
116
+ setError("A senha precisa de pelo menos 8 caracteres");
117
+ return;
118
+ }
119
+ setBusy(true);
120
+ setError("");
121
+ try {
122
+ await apiClient.setUserPassword(user.id, password);
123
+ setInfo(`Senha de ${user.name} alterada ✓`);
124
+ } catch (err) {
125
+ setError(err instanceof Error ? err.message : String(err));
126
+ } finally {
127
+ setBusy(false);
128
+ }
129
+ };
130
+ const saveUser = async (user) => {
131
+ setBusy(true);
132
+ setError("");
133
+ try {
134
+ await apiClient.updateUser(user.id, {
135
+ name: user.name,
136
+ email: user.email,
137
+ status: user.status
138
+ });
139
+ setInfo(`Usuário ${user.name} salvo ✓`);
140
+ setSelected(null);
141
+ await load();
142
+ } catch (err) {
143
+ setError(err instanceof Error ? err.message : String(err));
144
+ } finally {
145
+ setBusy(false);
146
+ }
147
+ };
148
+ const removeUser = async (user) => {
149
+ if (!confirm(`Excluir o usuário ${user.email}?`)) return;
150
+ setBusy(true);
151
+ setError("");
152
+ try {
153
+ await apiClient.deleteUser(user.id);
154
+ if (selected()?.id === user.id) setSelected(null);
155
+ setInfo(`Usuário ${user.name} excluído ✓`);
156
+ await load();
157
+ } catch (err) {
158
+ setError(err instanceof Error ? err.message : String(err));
159
+ } finally {
160
+ setBusy(false);
161
+ }
162
+ };
163
+ const currentRole = (user) => roles().find((r) => r.slug === user.roles[0]);
164
+ return ssr(_tmpl$4, ssrHydrationKey(), escape(createComponent(Show2, {
165
+ get when() {
166
+ return error();
167
+ },
168
+ get children() {
169
+ return ssr(_tmpl$, ssrHydrationKey(), escape(error()));
170
+ }
171
+ })), escape(createComponent(Show2, {
172
+ get when() {
173
+ return info();
174
+ },
175
+ get children() {
176
+ return ssr(_tmpl$2, ssrHydrationKey(), escape(info()));
177
+ }
178
+ })), escape(createComponent(Input, {
179
+ name: "user-search",
180
+ placeholder: "Buscar por nome ou email…",
181
+ get value() {
182
+ return search();
183
+ },
184
+ onInput: (value) => {
185
+ setSearch(value);
186
+ searchNow();
187
+ }
188
+ })), escape(createComponent(Select, {
189
+ name: "user-status",
190
+ placeholder: "Todos os status",
191
+ get value() {
192
+ return status();
193
+ },
194
+ options: [{
195
+ value: "ACTIVE",
196
+ label: "Ativos"
197
+ }, {
198
+ value: "INACTIVE",
199
+ label: "Inativos"
200
+ }],
201
+ onChange: (value) => {
202
+ setStatus(value);
203
+ searchNow();
204
+ }
205
+ })), escape(createComponent(Button, {
206
+ variant: "secondary",
207
+ onClick: () => void searchNow(),
208
+ children: "Buscar"
209
+ })), escape(createComponent(Show2, {
210
+ get when() {
211
+ return users().length > 0;
212
+ },
213
+ get fallback() {
214
+ return ssr(_tmpl$5, ssrHydrationKey());
215
+ },
216
+ get children() {
217
+ return ssr(_tmpl$3, ssrHydrationKey(), escape(createComponent(For2, {
218
+ get each() {
219
+ return users();
220
+ },
221
+ children: (user) => ssr(_tmpl$6, ssrHydrationKey(), selected()?.id === user.id ? "users-table__row--selected" : "", escape(user.name), escape(user.email), escape(createComponent(Show2, {
222
+ get when() {
223
+ return user.roles.length > 0;
224
+ },
225
+ get fallback() {
226
+ return ssr(_tmpl$7, ssrHydrationKey());
227
+ },
228
+ get children() {
229
+ return createComponent(Badge, { get children() {
230
+ return user.roles.join(", ");
231
+ } });
232
+ }
233
+ })), `status-dot ${user.status === "ACTIVE" ? "status-dot--active" : ""}`, escape(user.status), escape(formatDate(user.last_login_at)), escape(createComponent(Button, {
234
+ variant: "secondary",
235
+ size: "sm",
236
+ onClick: () => setSelected(user),
237
+ children: "Gerenciar"
238
+ })), escape(createComponent(Button, {
239
+ variant: "danger",
240
+ size: "sm",
241
+ onClick: () => void removeUser(user),
242
+ children: "Excluir"
243
+ })))
244
+ })));
245
+ }
246
+ })), escape(createComponent(Pagination, {
247
+ get page() {
248
+ return page();
249
+ },
250
+ limit,
251
+ get total() {
252
+ return total();
253
+ },
254
+ onPageChange: (next) => {
255
+ setPage(next);
256
+ load();
257
+ }
258
+ })), escape(createComponent(Show2, {
259
+ get when() {
260
+ return selected();
261
+ },
262
+ children: (user) => ssr(_tmpl$8, 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(For2, {
263
+ get each() {
264
+ return roles();
265
+ },
266
+ children: (role) => ssr(_tmpl$9, ssrHydrationKey() + ssrAttribute("value", escape(role.id, true), false), escape(role.name), escape(role.slug))
267
+ })), escape(formatDate(user().created_at)), escape(formatDate(user().last_login_at)), escape(createComponent(Button, {
268
+ variant: "primary",
269
+ get disabled() {
270
+ return busy();
271
+ },
272
+ get loading() {
273
+ return busy();
274
+ },
275
+ onClick: () => void saveUser(user()),
276
+ children: "Salvar"
277
+ })), escape(createComponent(Button, {
278
+ variant: "secondary",
279
+ get disabled() {
280
+ return busy();
281
+ },
282
+ onClick: () => void resetPassword(user()),
283
+ children: "Redefinir senha"
284
+ })), escape(createComponent(Button, {
285
+ variant: "secondary",
286
+ onClick: () => setSelected(null),
287
+ children: "Fechar"
288
+ })))
289
+ })));
290
+ }
291
+ //#endregion
292
+ //#region src/pages/users/index.astro
293
+ var users_exports = /* @__PURE__ */ __exportAll({
294
+ default: () => $$Index,
295
+ file: () => $$file,
296
+ url: () => $$url
297
+ });
298
+ var $$Index = createComponent$1(($$result, $$props, $$slots) => {
299
+ return renderTemplate`${renderComponent($$result, "DashboardLayout", $$DashboardLayout, {
300
+ "title": "Users",
301
+ "data-astro-cid-ao6unroh": true
302
+ }, { "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, {
303
+ "client:load": true,
304
+ "data-astro-cid-ao6unroh": true,
305
+ "client:component-hydration": "load",
306
+ "client:component-path": "/home/runner/work/cms/cms/apps/admin/src/components/apps/users/UsersManager.tsx",
307
+ "client:component-export": "UsersManager"
308
+ })}</div>` })}`;
309
+ }, "/home/runner/work/cms/cms/apps/admin/src/pages/users/index.astro", void 0);
310
+ var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/users/index.astro";
311
+ var $$url = "/users";
312
+ //#endregion
313
+ //#region \0virtual:astro:page:src/pages/users/index@_@astro
314
+ var page = () => users_exports;
315
+ //#endregion
316
+ 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_h9iqOf7E.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 };