@oktis-works/admin 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/client/_astro/{ActivityWidget.ChQWOeJC.js → ActivityWidget.D9s4FOLp.js} +1 -1
  2. package/dist/client/_astro/{AdminBar.Dt8_nO1o.js → AdminBar.D8078Gqs.js} +1 -1
  3. package/dist/client/_astro/ApiKeysManager.BjyxI6JT.js +1 -0
  4. package/dist/client/_astro/{AtGlanceWidget.NFubs9y9.js → AtGlanceWidget.DBA3mEnF.js} +1 -1
  5. package/dist/client/_astro/{ContentEditor.DfL_lpMd.js → ContentEditor.BZ8aLcGz.js} +1 -1
  6. package/dist/client/_astro/ContentEditor.CfQqsa6r.js +1 -0
  7. package/dist/client/_astro/{ContentTypeWorkspace.BitHXXxQ.js → ContentTypeWorkspace.BhHFc6WZ.js} +1 -1
  8. package/dist/client/_astro/{DashboardHome.Bc3UoI13.js → DashboardHome.BXIUgb4u.js} +1 -1
  9. package/dist/client/_astro/{DashboardLayout.astro_astro_type_script_index_0_lang.CzpgSZHu.js → DashboardLayout.astro_astro_type_script_index_0_lang.Cc0PvXrs.js} +1 -1
  10. package/dist/client/_astro/{FieldGroupEditor.DZI2aKIV.js → FieldGroupEditor.CVoPJ2v-.js} +1 -1
  11. package/dist/client/_astro/{FieldGroupList.Jz2ScLbc.js → FieldGroupList.BG2ET5gZ.js} +1 -1
  12. package/dist/client/_astro/{Footer.CoQHbtro.js → Footer.Chcu8yzV.js} +1 -1
  13. package/dist/client/_astro/{GeneralSettings.CE_IKxIn.js → GeneralSettings.CefkBcVj.js} +1 -1
  14. package/dist/client/_astro/{LogsManager.BQUduS0g.js → LogsManager.ya0kmAUm.js} +1 -1
  15. package/dist/client/_astro/{MediaLibrary.Bt-NcHbG.js → MediaLibrary.Bod2Afk4.js} +1 -1
  16. package/dist/client/_astro/{MenuManager.D4NmoaFw.js → MenuManager.d6_0hgNg.js} +1 -1
  17. package/dist/client/_astro/Modal.DR905gyF.js +1 -0
  18. package/dist/client/_astro/{PluginManager.BlNWs5RU.js → PluginManager.BHvKQlj2.js} +1 -1
  19. package/dist/client/_astro/{PostTypesManager.BKcoZ1gF.js → PostTypesManager.DMUxfOp9.js} +1 -1
  20. package/dist/client/_astro/{QuickDraftWidget.CRQ7FmTm.js → QuickDraftWidget.DyX_bJ1p.js} +1 -1
  21. package/dist/client/_astro/ResourceHubs.BwxYHeE5.js +1 -0
  22. package/dist/client/_astro/{TaxonomiesManager.BZZ626v_.js → TaxonomiesManager.DlVS4Ujm.js} +1 -1
  23. package/dist/client/_astro/{TaxonomyTermsManager.CxXNNf5j.js → TaxonomyTermsManager.B_ZDFU-K.js} +1 -1
  24. package/dist/client/_astro/{ThemeManager.DzbQaPu4.js → ThemeManager.DuHgcKyn.js} +1 -1
  25. package/dist/client/_astro/{UserCreateForm.DL04jrgd.js → UserCreateForm.1KIa3Aa2.js} +1 -1
  26. package/dist/client/_astro/{UsersManager.DGQJqlbN.js → UsersManager.v24y8OSk.js} +1 -1
  27. package/dist/client/_astro/{WebhooksManager.DACLOiX1.js → WebhooksManager.DPkFhoVr.js} +1 -1
  28. package/dist/client/_astro/api.CYg1SW2X.js +1 -0
  29. package/dist/client/_astro/{extensions.BWDpAUyI.js → extensions.Brl6zAPA.js} +1 -1
  30. package/dist/client/_astro/i18n.AbBpo2WD.js +1 -0
  31. package/dist/client/_astro/{login.astro_astro_type_script_index_0_lang.Dni6a5dD.js → login.astro_astro_type_script_index_0_lang.F2J3xZhK.js} +1 -1
  32. package/dist/client/_astro/{pt-BR.BpKbXMEZ.js → pt-BR.B0jeLTb0.js} +1 -1
  33. package/dist/server/chunks/{404_CfM6kYWd.mjs → 404_C9d1fN7T.mjs} +1 -1
  34. package/dist/server/chunks/{BaseLayout_DTOkhEmH.mjs → BaseLayout_D-10OcWZ.mjs} +3 -3
  35. package/dist/server/chunks/{ContentEditor_D3N5qDZK.mjs → ContentEditor_DZWLWgAD.mjs} +2 -2
  36. package/dist/server/chunks/{DashboardLayout_CidaIIqh.mjs → DashboardLayout_HxBoC5fJ.mjs} +7 -2
  37. package/dist/server/chunks/{MediaLibrary_DZqdhYpt.mjs → MediaLibrary_CD_cadEt.mjs} +2 -2
  38. package/dist/server/chunks/Modal_vHjkS4i2.mjs +33 -0
  39. package/dist/server/chunks/{_id__9FIehtyR.mjs → _id__DrGJOSWh.mjs} +2 -2
  40. package/dist/server/chunks/{_slug__Izz0oLah.mjs → _slug__C6TfwYcI.mjs} +1 -1
  41. package/dist/server/chunks/{access_BSltT-j0.mjs → access_D46Rg5g2.mjs} +4 -32
  42. package/dist/server/chunks/api-keys_BUCeuDw4.mjs +283 -0
  43. package/dist/server/chunks/{custom-fields_ChGoFU6v.mjs → custom-fields_B7PeZo06.mjs} +2 -2
  44. package/dist/server/chunks/{edit_BDJsuJht.mjs → edit_H_Z0tUXd.mjs} +2 -2
  45. package/dist/server/chunks/{general_J5JruaEJ.mjs → general_BROn356D.mjs} +2 -2
  46. package/dist/server/chunks/{i18n_Cr9pc66i.mjs → i18n_CItvcX64.mjs} +54 -2
  47. package/dist/server/chunks/{index__TzLfz1Y.mjs → index_9wINU7Wu.mjs} +2 -2
  48. package/dist/server/chunks/{index_BZk89gnA.mjs → index_BSanLOwq.mjs} +2 -2
  49. package/dist/server/chunks/{index_goZUoZn8.mjs → index_BYjGHhFv.mjs} +3 -3
  50. package/dist/server/chunks/{index_DEkpVnI-.mjs → index_GXbAk6jt.mjs} +2 -2
  51. package/dist/server/chunks/{index_ph0CQvPI.mjs → index_WgopTFB2.mjs} +2 -2
  52. package/dist/server/chunks/{login_D1vntlDR.mjs → login_BzHv0uQ0.mjs} +1 -1
  53. package/dist/server/chunks/{logs_BQ-8tURM.mjs → logs_C32euU-n.mjs} +2 -2
  54. package/dist/server/chunks/{menus_CxwSYjnB.mjs → menus_EJ0NIw-1.mjs} +2 -2
  55. package/dist/server/chunks/{new_CZGMo6CG.mjs → new_BwrgYLev.mjs} +2 -2
  56. package/dist/server/chunks/{new_DoFj-hVB.mjs → new_CWKqh8oV.mjs} +2 -2
  57. package/dist/server/chunks/{plugins_CM-vRDfx.mjs → plugins_C8RXEzie.mjs} +2 -2
  58. package/dist/server/chunks/{post-types_9YdRCAhN.mjs → post-types_bDF0xDxo.mjs} +2 -2
  59. package/dist/server/chunks/{pt-BR_CLa-GGIZ.mjs → pt-BR_DpWzkRv5.mjs} +42 -1
  60. package/dist/server/chunks/{taxonomies_C2yLbsVU.mjs → taxonomies_AHnU1mD0.mjs} +2 -2
  61. package/dist/server/chunks/{taxonomy_BAqqS2TS.mjs → taxonomy_DwH2xYGw.mjs} +2 -2
  62. package/dist/server/chunks/{themes_zV_FXCDj.mjs → themes_DE_yoCn2.mjs} +2 -2
  63. package/dist/server/chunks/{upload_Bba7badi.mjs → upload_BQA9bixd.mjs} +2 -2
  64. package/dist/server/chunks/{webhooks_LTF3h9-l.mjs → webhooks_iWH_jV-x.mjs} +2 -2
  65. package/dist/server/entry.mjs +68 -37
  66. package/dist/server/virtual_astro_middleware.mjs +1 -1
  67. package/package.json +3 -3
  68. package/dist/client/_astro/ContentEditor.CV3dhbjt.js +0 -1
  69. package/dist/client/_astro/ResourceHubs.Dz0u_gL5.js +0 -1
  70. package/dist/client/_astro/api.CNp-a9Z3.js +0 -1
  71. package/dist/client/_astro/i18n.DCpVFQAZ.js +0 -1
@@ -0,0 +1,283 @@
1
+ import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
+ import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
+ import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_CItvcX64.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_HxBoC5fJ.mjs";
6
+ import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
+ import { t as Modal } from "./Modal_vHjkS4i2.mjs";
8
+ import { createComponent, escape, memo, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
9
+ import { For, Show, createSignal, onMount } from "solid-js";
10
+ //#region src/components/apps/settings/ApiKeysManager.tsx
11
+ var _tmpl$ = [
12
+ "<div",
13
+ " class=\"notice notice--error\">",
14
+ "</div>"
15
+ ];
16
+ var _tmpl$2 = [
17
+ "<div",
18
+ " class=\"notice notice--success\">",
19
+ "</div>"
20
+ ];
21
+ var _tmpl$3 = [
22
+ "<section",
23
+ " class=\"card\"><h3>",
24
+ "</h3><form class=\"resource-form\"><label><!--$-->",
25
+ "<!--/--><input class=\"input\" required type=\"text\"",
26
+ "></label><label><!--$-->",
27
+ "<!--/--><select class=\"input\"",
28
+ ">",
29
+ "</select></label><label><!--$-->",
30
+ "<!--/--><input class=\"input\" type=\"datetime-local\"",
31
+ "></label><label class=\"checkbox-label\"><input type=\"checkbox\"",
32
+ "> <!--$-->",
33
+ "<!--/--></label><p class=\"muted\">",
34
+ "</p><div><button class=\"btn btn-primary\" type=\"submit\">",
35
+ "</button> <button class=\"btn\" type=\"button\">",
36
+ "</button></div></form></section>"
37
+ ];
38
+ var _tmpl$4 = [
39
+ "<div",
40
+ " class=\"table-scroll\"><table class=\"table\"><thead><tr><th>",
41
+ "</th><th>",
42
+ "</th><th>",
43
+ "</th><th>",
44
+ "</th><th>",
45
+ "</th><th>",
46
+ "</th></tr></thead><tbody>",
47
+ "</tbody></table></div>"
48
+ ];
49
+ var _tmpl$5 = [
50
+ "<div",
51
+ " class=\"modal-body\"><div class=\"notice notice--error\">",
52
+ "</div><label><!--$-->",
53
+ "<!--/--><input class=\"input\" readonly type=\"text\"",
54
+ " data-testid=\"api-key-plaintext\"></label><p class=\"muted\">",
55
+ "</p><pre class=\"api-key-sample\"><code>",
56
+ "</code></pre><div><button class=\"btn btn-primary\" type=\"button\">",
57
+ "</button> <button class=\"btn\" type=\"button\">",
58
+ "</button></div></div>"
59
+ ];
60
+ var _tmpl$6 = [
61
+ "<div",
62
+ " class=\"resource-hub api-keys-manager\"><!--$-->",
63
+ "<!--/--><!--$-->",
64
+ "<!--/--><div class=\"card-header-row\"><div><h3>",
65
+ "</h3><p class=\"muted\">",
66
+ "</p></div><button class=\"btn btn-primary\" type=\"button\">",
67
+ "</button></div><!--$-->",
68
+ "<!--/--><section class=\"card\">",
69
+ "</section><!--$-->",
70
+ "<!--/--><style>.api-key-sample{background:var(--color-surface-muted,#f5f5f5);border:1px solid var(--color-border,#dcdcde);border-radius:4px;padding:.6rem;overflow:auto;font-size:.8rem;white-space:pre-wrap;word-break:break-all}.api-keys-manager .modal-body{display:grid;gap:.75rem;padding:1rem}</style></div>"
71
+ ];
72
+ var _tmpl$7 = [
73
+ "<option",
74
+ " value>",
75
+ "</option>"
76
+ ];
77
+ var _tmpl$8 = [
78
+ "<option",
79
+ "><!--$-->",
80
+ "<!--/--> (<!--$-->",
81
+ "<!--/-->)</option>"
82
+ ];
83
+ var _tmpl$9 = [
84
+ "<p",
85
+ ">",
86
+ "</p>"
87
+ ];
88
+ var _tmpl$0 = [
89
+ "<span",
90
+ ">",
91
+ "</span>"
92
+ ];
93
+ var _tmpl$1 = [
94
+ "<button",
95
+ " class=\"btn btn-danger\" type=\"button\">",
96
+ "</button>"
97
+ ];
98
+ var _tmpl$10 = [
99
+ "<tr",
100
+ "><td>",
101
+ "</td><td>",
102
+ "</td><td><code>okcms_<!--$-->",
103
+ "<!--/-->_…</code></td><td>",
104
+ "</td><td>",
105
+ "</td><td>",
106
+ "</td></tr>"
107
+ ];
108
+ var _tmpl$11 = [
109
+ "<span",
110
+ " class=\"notice notice--error\">",
111
+ "</span>"
112
+ ];
113
+ function formatDate(value) {
114
+ if (!value) return "—";
115
+ const date = new Date(value);
116
+ return Number.isNaN(date.getTime()) ? "—" : date.toLocaleString();
117
+ }
118
+ function ApiKeysManager() {
119
+ const { t } = useTranslation();
120
+ const [keys, setKeys] = createSignal([]);
121
+ const [users, setUsers] = createSignal([]);
122
+ const [form, setForm] = createSignal(null);
123
+ const [created, setCreated] = createSignal(null);
124
+ const [error, setError] = createSignal("");
125
+ const [notice, setNotice] = createSignal("");
126
+ const [loading, setLoading] = createSignal(true);
127
+ const [copied, setCopied] = createSignal(false);
128
+ const load = async () => {
129
+ setLoading(true);
130
+ try {
131
+ const list = await apiClient.getApiKeys();
132
+ setKeys(list);
133
+ } catch (err) {
134
+ setError(err instanceof Error ? err.message : String(err));
135
+ } finally {
136
+ setLoading(false);
137
+ }
138
+ };
139
+ onMount(() => {
140
+ load();
141
+ apiClient.listUsers({
142
+ limit: 100,
143
+ status: "ACTIVE"
144
+ }).then((res) => setUsers(res.data ?? [])).catch(() => setUsers([]));
145
+ });
146
+ const closeCreated = () => {
147
+ setCreated(null);
148
+ setCopied(false);
149
+ };
150
+ const ownerName = (key) => {
151
+ const user = users().find((entry) => entry.id === key.user_id);
152
+ return user ? user.name : key.user_id ?? "—";
153
+ };
154
+ return ssr(_tmpl$6, ssrHydrationKey(), escape(createComponent(Show, {
155
+ get when() {
156
+ return error();
157
+ },
158
+ get children() {
159
+ return ssr(_tmpl$, ssrHydrationKey(), escape(error()));
160
+ }
161
+ })), escape(createComponent(Show, {
162
+ get when() {
163
+ return notice();
164
+ },
165
+ get children() {
166
+ return ssr(_tmpl$2, ssrHydrationKey(), escape(notice()));
167
+ }
168
+ })), escape(t("apiKeys.listTitle")), escape(t("apiKeys.howItWorks")), escape(t("apiKeys.new")), escape(createComponent(Show, {
169
+ get when() {
170
+ return form();
171
+ },
172
+ get children() {
173
+ return ssr(_tmpl$3, ssrHydrationKey(), escape(t("apiKeys.create")), escape(t("apiKeys.form.name")), ssrAttribute("value", escape(form()?.name ?? "", true), false) + ssrAttribute("placeholder", escape(t("apiKeys.form.namePlaceholder"), true), false), escape(t("apiKeys.form.user")), ssrAttribute("value", escape(form()?.userId ?? "", true), false), escape(createComponent(Show, {
174
+ get when() {
175
+ return users().length > 0;
176
+ },
177
+ get fallback() {
178
+ return ssr(_tmpl$7, ssrHydrationKey(), escape(t("apiKeys.form.currentUser")));
179
+ },
180
+ get children() {
181
+ return createComponent(For, {
182
+ get each() {
183
+ return users();
184
+ },
185
+ children: (user) => ssr(_tmpl$8, ssrHydrationKey() + ssrAttribute("value", escape(user.id, true), false), escape(user.name), escape(user.email))
186
+ });
187
+ }
188
+ })), escape(t("apiKeys.form.expiresAt")), ssrAttribute("value", escape(form()?.expiresAt ?? "", true), false), ssrAttribute("checked", form()?.oneTime ?? false, true), escape(t("apiKeys.form.oneTime")), escape(t("apiKeys.form.oneTimeHint")), escape(t("apiKeys.createSubmit")), escape(t("common.cancel")));
189
+ }
190
+ })), escape(createComponent(Show, {
191
+ get when() {
192
+ return !loading();
193
+ },
194
+ get fallback() {
195
+ return ssr(_tmpl$9, ssrHydrationKey(), escape(t("apiKeys.loading")));
196
+ },
197
+ get children() {
198
+ return createComponent(Show, {
199
+ get when() {
200
+ return keys().length > 0;
201
+ },
202
+ get fallback() {
203
+ return ssr(_tmpl$9, ssrHydrationKey(), escape(t("apiKeys.empty")));
204
+ },
205
+ get children() {
206
+ return ssr(_tmpl$4, ssrHydrationKey(), escape(t("apiKeys.form.name")), escape(t("apiKeys.form.user")), escape(t("apiKeys.prefix")), escape(t("apiKeys.lastUsed")), escape(t("apiKeys.status")), escape(t("common.actions")), escape(createComponent(For, {
207
+ get each() {
208
+ return keys();
209
+ },
210
+ children: (key) => ssr(_tmpl$10, ssrHydrationKey(), escape(key.name), escape(ownerName(key)), escape(key.key_prefix), key.last_used_at ? escape(formatDate(key.last_used_at)) : escape(t("apiKeys.neverUsed")), escape(createComponent(Show, {
211
+ get when() {
212
+ return !key.revoked_at;
213
+ },
214
+ get fallback() {
215
+ return ssr(_tmpl$11, ssrHydrationKey(), escape(t("apiKeys.status.revoked")));
216
+ },
217
+ get children() {
218
+ return createComponent(Show, {
219
+ get when() {
220
+ return memo(() => !!key.expires_at)() && new Date(key.expires_at).getTime() <= Date.now();
221
+ },
222
+ get fallback() {
223
+ return ssr(_tmpl$0, ssrHydrationKey(), key.one_time ? escape(t("apiKeys.status.oneTime")) : escape(t("apiKeys.status.active")));
224
+ },
225
+ get children() {
226
+ return ssr(_tmpl$0, ssrHydrationKey(), escape(t("apiKeys.status.expired")));
227
+ }
228
+ });
229
+ }
230
+ })), escape(createComponent(Show, {
231
+ get when() {
232
+ return !key.revoked_at;
233
+ },
234
+ get children() {
235
+ return ssr(_tmpl$1, ssrHydrationKey(), escape(t("apiKeys.revoke")));
236
+ }
237
+ })))
238
+ })));
239
+ }
240
+ });
241
+ }
242
+ })), escape(createComponent(Modal, {
243
+ get open() {
244
+ return !!created();
245
+ },
246
+ onClose: closeCreated,
247
+ get title() {
248
+ return t("apiKeys.created.title");
249
+ },
250
+ get children() {
251
+ return ssr(_tmpl$5, ssrHydrationKey(), escape(t("apiKeys.created.warning")), escape(t("apiKeys.created.value")), ssrAttribute("value", escape(created()?.plaintext ?? "", true), false), escape(t("apiKeys.created.howToUse")), `POST /api/v1/auth/api-key-login\n{ "apiKey": "${escape(created()?.plaintext ?? "")}" }`, copied() ? escape(t("apiKeys.created.copied")) : escape(t("apiKeys.created.copy")), escape(t("common.close")));
252
+ }
253
+ })));
254
+ }
255
+ //#endregion
256
+ //#region src/pages/settings/api-keys.astro
257
+ var api_keys_exports = /* @__PURE__ */ __exportAll({
258
+ default: () => $$ApiKeys,
259
+ file: () => $$file,
260
+ url: () => $$url
261
+ });
262
+ createAstro("https://astro.build");
263
+ var $$ApiKeys = createComponent$1(($$result, $$props, $$slots) => {
264
+ const Astro = $$result.createAstro($$props, $$slots);
265
+ Astro.self = $$ApiKeys;
266
+ const { t } = Astro.locals;
267
+ return renderTemplate`${renderComponent($$result, "DashboardLayout", $$DashboardLayout, { "title": t("apiKeys.title") }, { "default": ($$result) => renderTemplate`${renderComponent($$result, "PageHeader", PageHeader, {
268
+ "title": t("apiKeys.title"),
269
+ "description": t("apiKeys.description")
270
+ })}${renderComponent($$result, "ApiKeysManager", ApiKeysManager, {
271
+ "client:load": true,
272
+ "client:component-hydration": "load",
273
+ "client:component-path": "/home/runner/work/cms/cms/apps/admin/src/components/apps/settings/ApiKeysManager.tsx",
274
+ "client:component-export": "ApiKeysManager"
275
+ })}` })}`;
276
+ }, "/home/runner/work/cms/cms/apps/admin/src/pages/settings/api-keys.astro", void 0);
277
+ var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/settings/api-keys.astro";
278
+ var $$url = "/settings/api-keys";
279
+ //#endregion
280
+ //#region \0virtual:astro:page:src/pages/settings/api-keys@_@astro
281
+ var page = () => api_keys_exports;
282
+ //#endregion
283
+ export { page };
@@ -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 "./i18n_Cr9pc66i.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_CidaIIqh.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_CItvcX64.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_HxBoC5fJ.mjs";
6
6
  import { t as FbIcon } from "./FbIcon_D0f6QiFJ.mjs";
7
7
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
8
8
  import { For, Show, createMemo, 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, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent } from "./compiler_O7J1rlsi.mjs";
4
- import { t as $$DashboardLayout } from "./DashboardLayout_CidaIIqh.mjs";
5
- import { t as ContentEditor } from "./ContentEditor_D3N5qDZK.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_HxBoC5fJ.mjs";
5
+ import { t as ContentEditor } from "./ContentEditor_DZWLWgAD.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  //#region src/pages/content/[type]/edit.astro
8
8
  var edit_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 { a as LOCALE_LABELS, i as LOCALE_FLAGS, n as useTranslation, o as SUPPORTED_LOCALES, r as apiClient } from "./i18n_Cr9pc66i.mjs";
5
- import { f as createMemo$1, i as Card, l as Select, m as onMount$1, o as Input, p as createSignal$1, r as Button, t as $$DashboardLayout, u as Show2 } from "./DashboardLayout_CidaIIqh.mjs";
4
+ import { a as LOCALE_LABELS, i as LOCALE_FLAGS, n as useTranslation, o as SUPPORTED_LOCALES, r as apiClient } from "./i18n_CItvcX64.mjs";
5
+ import { f as createMemo$1, i as Card, l as Select, m as onMount$1, o as Input, p as createSignal$1, r as Button, t as $$DashboardLayout, u as Show2 } from "./DashboardLayout_HxBoC5fJ.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  import { t as FloatingPanel } from "./FloatingPanel_DI2CdUZK.mjs";
8
8
  import { createComponent, escape, memo, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
@@ -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-BR_CLa-GGIZ.mjs"),
93
+ "./locales/pt-BR.json": () => import("./pt-BR_DpWzkRv5.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"),
@@ -386,7 +386,7 @@ var ApiClient = class {
386
386
  const url = joinApiUrl(this.baseUrl, path);
387
387
  const send = async () => {
388
388
  const requestHeaders = { ...headers };
389
- if (options?.bodyInit !== void 0 || body !== void 0) requestHeaders["Content-Type"] = "application/json";
389
+ if ((options?.bodyInit !== void 0 || body !== void 0) && options?.bodyInit === void 0) requestHeaders["Content-Type"] = "application/json";
390
390
  if (![
391
391
  "GET",
392
392
  "HEAD",
@@ -628,6 +628,16 @@ var ApiClient = class {
628
628
  async deleteWebhook(id) {
629
629
  await this.request("DELETE", `/api/v1/webhooks/${id}`);
630
630
  }
631
+ async getApiKeys() {
632
+ return this.request("GET", "/api/v1/api-keys");
633
+ }
634
+ /** A resposta traz `plaintext` — único momento em que o valor claro existe. */
635
+ async createApiKey(data) {
636
+ return this.request("POST", "/api/v1/api-keys", data);
637
+ }
638
+ async deleteApiKey(id) {
639
+ await this.request("DELETE", `/api/v1/api-keys/${id}`);
640
+ }
631
641
  async listMedia(options) {
632
642
  const params = new URLSearchParams();
633
643
  if (options?.page) params.set("page", String(options.page));
@@ -848,6 +858,7 @@ var en_exports = /* @__PURE__ */ __exportAll({
848
858
  access: () => access,
849
859
  activity: () => activity,
850
860
  adminBar: () => adminBar,
861
+ apiKeys: () => apiKeys,
851
862
  common: () => common,
852
863
  content: () => content,
853
864
  dashboard: () => dashboard,
@@ -1310,6 +1321,46 @@ var webhooks = {
1310
1321
  "hmac_sha256": "HMAC SHA-256"
1311
1322
  }
1312
1323
  };
1324
+ var apiKeys = {
1325
+ "title": "API keys",
1326
+ "description": "Issue one-time credentials so external apps can exchange an API key for access and refresh JWTs and consume the content API.",
1327
+ "howItWorks": "The key is used only once, at POST /api/v1/auth/api-key-login, to obtain JWTs. It never authorizes requests directly.",
1328
+ "listTitle": "Issued keys",
1329
+ "new": "New API key",
1330
+ "create": "Create API key",
1331
+ "createSubmit": "Create key",
1332
+ "prefix": "Prefix",
1333
+ "lastUsed": "Last used",
1334
+ "neverUsed": "Never used",
1335
+ "revoke": "Revoke",
1336
+ "revoked": "API key revoked.",
1337
+ "loading": "Loading API keys…",
1338
+ "empty": "No API keys issued.",
1339
+ "status": {
1340
+ "active": "Active",
1341
+ "oneTime": "Single-use",
1342
+ "expired": "Expired",
1343
+ "revoked": "Revoked"
1344
+ },
1345
+ "form": {
1346
+ "name": "Name",
1347
+ "namePlaceholder": "e.g. Mobile app backend",
1348
+ "user": "Identity (user)",
1349
+ "currentUser": "Current user",
1350
+ "expiresAt": "Expires at (optional)",
1351
+ "oneTime": "Single-use (revoke automatically after the first login)",
1352
+ "oneTimeHint": "Recommended for integrations that can exchange the key for JWTs immediately."
1353
+ },
1354
+ "errors": { "nameRequired": "Name is required." },
1355
+ "created": {
1356
+ "title": "API key created",
1357
+ "warning": "Copy this value now — it will never be shown again. If you lose it, revoke the key and create a new one.",
1358
+ "value": "API key",
1359
+ "howToUse": "Use it once to obtain JWTs:",
1360
+ "copy": "Copy",
1361
+ "copied": "Copied!"
1362
+ }
1363
+ };
1313
1364
  var plugins = {
1314
1365
  "title": "Plugins",
1315
1366
  "description": "Manage installed plugins.",
@@ -1503,6 +1554,7 @@ var en_default = {
1503
1554
  access,
1504
1555
  logs,
1505
1556
  webhooks,
1557
+ apiKeys,
1506
1558
  plugins,
1507
1559
  themes,
1508
1560
  notFound,
@@ -1,8 +1,8 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
2
  import { S as createAstro, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_Cr9pc66i.mjs";
5
- import { a as For2, c as Pagination, l as Select, m as onMount, n as Badge, o as Input, p as createSignal, r as Button, t as $$DashboardLayout, u as Show2 } from "./DashboardLayout_CidaIIqh.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_CItvcX64.mjs";
5
+ import { a as For2, c as Pagination, l as Select, m as onMount, n as Badge, o as Input, p as createSignal, r as Button, t as $$DashboardLayout, u as Show2 } from "./DashboardLayout_HxBoC5fJ.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
8
8
  //#region src/components/apps/users/UsersManager.tsx
@@ -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 "./i18n_Cr9pc66i.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_CidaIIqh.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_CItvcX64.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_HxBoC5fJ.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.tsx
@@ -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$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_Cr9pc66i.mjs";
5
- import { c as Pagination, d as Table, i as Card, l as Select, n as Badge, o as Input, r as Button, t as $$DashboardLayout } from "./DashboardLayout_CidaIIqh.mjs";
6
- import { t as ContentEditor } from "./ContentEditor_D3N5qDZK.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_CItvcX64.mjs";
5
+ import { c as Pagination, d as Table, i as Card, l as Select, n as Badge, o as Input, r as Button, t as $$DashboardLayout } from "./DashboardLayout_HxBoC5fJ.mjs";
6
+ import { t as ContentEditor } from "./ContentEditor_DZWLWgAD.mjs";
7
7
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
8
8
  import { createComponent, escape, memo, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
9
9
  import { Show, createMemo, createSignal, onMount } from "solid-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 "./DashboardLayout_CidaIIqh.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_HxBoC5fJ.mjs";
5
5
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
6
- import { t as MediaLibrary } from "./MediaLibrary_DZqdhYpt.mjs";
6
+ import { t as MediaLibrary } from "./MediaLibrary_CD_cadEt.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 "./DashboardLayout_CidaIIqh.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_HxBoC5fJ.mjs";
5
5
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
6
6
  //#region src/pages/settings/index.astro
7
7
  var settings_exports = /* @__PURE__ */ __exportAll({
@@ -21,7 +21,7 @@ var $$Index = createComponent(($$result, $$props, $$slots) => {
21
21
  "title": t("settings.general.title"),
22
22
  "description": t("settings.general.description"),
23
23
  "data-astro-cid-pvy7orjg": true
24
- })}${maybeRenderHead($$result)}<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>${t("settings.general.title")}</h3><p class="muted" data-astro-cid-pvy7orjg>${t("settings.general.fields.siteTitle")}, ${t("settings.general.fields.siteDescription")}, ${t("settings.general.fields.language")} e ${t("settings.general.fields.timezone")} do site.</p></a><a class="card settings-card" href="/settings/post-types" data-astro-cid-pvy7orjg><h3 data-astro-cid-pvy7orjg>${t("settings.postTypes.title")}</h3><p class="muted" data-astro-cid-pvy7orjg>${t("settings.postTypes.description")}</p></a><a class="card settings-card" href="/settings/taxonomies" data-astro-cid-pvy7orjg><h3 data-astro-cid-pvy7orjg>${t("settings.taxonomies.title")}</h3><p class="muted" data-astro-cid-pvy7orjg>${t("settings.taxonomies.description")}</p></a><a class="card settings-card" href="/settings/custom-fields" data-astro-cid-pvy7orjg><h3 data-astro-cid-pvy7orjg>${t("settings.customFields.title")}</h3><p class="muted" data-astro-cid-pvy7orjg>${t("settings.customFields.description")}</p></a><a class="card settings-card" href="/settings/access" data-astro-cid-pvy7orjg><h3 data-astro-cid-pvy7orjg>${t("access.title")}</h3><p class="muted" data-astro-cid-pvy7orjg>${t("access.description")}</p></a><a class="card settings-card" href="/settings/logs" data-astro-cid-pvy7orjg><h3 data-astro-cid-pvy7orjg>${t("logs.title")}</h3><p class="muted" data-astro-cid-pvy7orjg>${t("logs.description")}</p></a><a class="card settings-card" href="/settings/webhooks" data-astro-cid-pvy7orjg><h3 data-astro-cid-pvy7orjg>${t("webhooks.title")}</h3><p class="muted" data-astro-cid-pvy7orjg>${t("webhooks.description")}</p></a></div>` })}`;
24
+ })}${maybeRenderHead($$result)}<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>${t("settings.general.title")}</h3><p class="muted" data-astro-cid-pvy7orjg>${t("settings.general.fields.siteTitle")}, ${t("settings.general.fields.siteDescription")}, ${t("settings.general.fields.language")} e ${t("settings.general.fields.timezone")} do site.</p></a><a class="card settings-card" href="/settings/post-types" data-astro-cid-pvy7orjg><h3 data-astro-cid-pvy7orjg>${t("settings.postTypes.title")}</h3><p class="muted" data-astro-cid-pvy7orjg>${t("settings.postTypes.description")}</p></a><a class="card settings-card" href="/settings/taxonomies" data-astro-cid-pvy7orjg><h3 data-astro-cid-pvy7orjg>${t("settings.taxonomies.title")}</h3><p class="muted" data-astro-cid-pvy7orjg>${t("settings.taxonomies.description")}</p></a><a class="card settings-card" href="/settings/custom-fields" data-astro-cid-pvy7orjg><h3 data-astro-cid-pvy7orjg>${t("settings.customFields.title")}</h3><p class="muted" data-astro-cid-pvy7orjg>${t("settings.customFields.description")}</p></a><a class="card settings-card" href="/settings/access" data-astro-cid-pvy7orjg><h3 data-astro-cid-pvy7orjg>${t("access.title")}</h3><p class="muted" data-astro-cid-pvy7orjg>${t("access.description")}</p></a><a class="card settings-card" href="/settings/logs" data-astro-cid-pvy7orjg><h3 data-astro-cid-pvy7orjg>${t("logs.title")}</h3><p class="muted" data-astro-cid-pvy7orjg>${t("logs.description")}</p></a><a class="card settings-card" href="/settings/webhooks" data-astro-cid-pvy7orjg><h3 data-astro-cid-pvy7orjg>${t("webhooks.title")}</h3><p class="muted" data-astro-cid-pvy7orjg>${t("webhooks.description")}</p></a><a class="card settings-card" href="/settings/api-keys" data-astro-cid-pvy7orjg><h3 data-astro-cid-pvy7orjg>${t("apiKeys.title")}</h3><p class="muted" data-astro-cid-pvy7orjg>${t("apiKeys.description")}</p></a></div>` })}`;
25
25
  }, "/home/runner/work/cms/cms/apps/admin/src/pages/settings/index.astro", void 0);
26
26
  var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/settings/index.astro";
27
27
  var $$url = "/settings";
@@ -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 "./BaseLayout_DTOkhEmH.mjs";
4
+ import { n as renderScript, t as $$BaseLayout } from "./BaseLayout_D-10OcWZ.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 "./i18n_Cr9pc66i.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_CidaIIqh.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_CItvcX64.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_HxBoC5fJ.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.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 "./i18n_Cr9pc66i.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_CidaIIqh.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_CItvcX64.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_HxBoC5fJ.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.tsx
@@ -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 } from "./compiler_O7J1rlsi.mjs";
4
- import { t as $$DashboardLayout } from "./DashboardLayout_CidaIIqh.mjs";
5
- import { t as ContentEditor } from "./ContentEditor_D3N5qDZK.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_HxBoC5fJ.mjs";
5
+ import { t as ContentEditor } from "./ContentEditor_DZWLWgAD.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  //#region src/pages/content/[type]/new.astro
8
8
  var new_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 "./i18n_Cr9pc66i.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_CidaIIqh.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_CItvcX64.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_HxBoC5fJ.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.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, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_Cr9pc66i.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_CidaIIqh.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_CItvcX64.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_HxBoC5fJ.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
8
8
  import { For, 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, i as renderComponent, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent$1 } from "./compiler_O7J1rlsi.mjs";
4
- import { n as useTranslation, r as apiClient } from "./i18n_Cr9pc66i.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_CidaIIqh.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_CItvcX64.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_HxBoC5fJ.mjs";
6
6
  import { t as PageHeader } from "./PageHeader_CBOioOjo.mjs";
7
7
  import { t as FloatingPanel } from "./FloatingPanel_DI2CdUZK.mjs";
8
8
  import { createComponent, escape, memo, ssr, ssrAttribute, ssrHydrationKey, ssrStyleProperty } from "solid-js/web";
@@ -440,6 +440,46 @@ var webhooks = {
440
440
  "hmac_sha256": "HMAC SHA-256"
441
441
  }
442
442
  };
443
+ var apiKeys = {
444
+ "title": "API keys",
445
+ "description": "Emita credenciais para aplicações externas trocarem uma API key por access e refresh JWT e consumirem a API de conteúdo.",
446
+ "howItWorks": "A key é usada somente uma vez, em POST /api/v1/auth/api-key-login, para obter JWTs. Ela nunca autoriza requests diretamente.",
447
+ "listTitle": "Keys emitidas",
448
+ "new": "Nova API key",
449
+ "create": "Criar API key",
450
+ "createSubmit": "Criar key",
451
+ "prefix": "Prefixo",
452
+ "lastUsed": "Último uso",
453
+ "neverUsed": "Nunca usada",
454
+ "revoke": "Revogar",
455
+ "revoked": "API key revogada.",
456
+ "loading": "Carregando API keys…",
457
+ "empty": "Nenhuma API key emitida.",
458
+ "status": {
459
+ "active": "Ativa",
460
+ "oneTime": "Uso único",
461
+ "expired": "Expirada",
462
+ "revoked": "Revogada"
463
+ },
464
+ "form": {
465
+ "name": "Nome",
466
+ "namePlaceholder": "ex.: Backend do app mobile",
467
+ "user": "Identidade (usuário)",
468
+ "currentUser": "Usuário atual",
469
+ "expiresAt": "Expira em (opcional)",
470
+ "oneTime": "Uso único (revoga automaticamente após o primeiro login)",
471
+ "oneTimeHint": "Recomendado para integrações que conseguem trocar a key por JWTs imediatamente."
472
+ },
473
+ "errors": { "nameRequired": "O nome é obrigatório." },
474
+ "created": {
475
+ "title": "API key criada",
476
+ "warning": "Copie este valor agora — ele nunca mais será exibido. Se perder, revogue a key e crie outra.",
477
+ "value": "API key",
478
+ "howToUse": "Use-a uma vez para obter os JWTs:",
479
+ "copy": "Copiar",
480
+ "copied": "Copiado!"
481
+ }
482
+ };
443
483
  var plugins = {
444
484
  "title": "Plugins",
445
485
  "description": "Gerencie os plugins instalados.",
@@ -633,6 +673,7 @@ var pt_BR_default = {
633
673
  access,
634
674
  logs,
635
675
  webhooks,
676
+ apiKeys,
636
677
  plugins,
637
678
  themes,
638
679
  notFound,
@@ -646,4 +687,4 @@ var pt_BR_default = {
646
687
  screenOptions
647
688
  };
648
689
  //#endregion
649
- export { access, activity, adminBar, common, content, dashboard, pt_BR_default as default, footer, helpTabs, layout, login, logs, media, menus, notFound, plugins, rateLimit, resources, screenOptions, settings, themes, users, webhooks };
690
+ export { access, activity, adminBar, apiKeys, common, content, dashboard, pt_BR_default as default, footer, helpTabs, layout, login, logs, media, menus, notFound, plugins, rateLimit, resources, screenOptions, settings, themes, users, webhooks };