@oktis-works/admin 0.4.22 → 0.4.23

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 (93) hide show
  1. package/dist/client/_astro/{ActivityWidget.DPHDSR70.js → ActivityWidget.DaftIB1V.js} +2 -2
  2. package/dist/client/_astro/{AdminBar.Cfe6Btfm.js → AdminBar.B-diRxPt.js} +2 -2
  3. package/dist/client/_astro/{AtGlanceWidget.BdmMxHd5.js → AtGlanceWidget.q_xwhOJa.js} +2 -2
  4. package/dist/client/_astro/BaseLayout.sayhdG_g.css +1 -0
  5. package/dist/client/_astro/ContentEditor.B1b1Ixz0.js +3 -0
  6. package/dist/client/_astro/ContentEditor.DGTZ51kU.js +1 -0
  7. package/dist/client/_astro/{ContentTypeWorkspace.C-17fiDL.js → ContentTypeWorkspace.CFzwh3Rc.js} +1 -1
  8. package/dist/client/_astro/CustomFieldsManager.DqCE6rSX.js +5 -0
  9. package/dist/client/_astro/DashboardHome.HrqKA0mK.js +1 -0
  10. package/dist/client/_astro/{DashboardLayout.astro_astro_type_script_index_0_lang.CKDcT5kP.js → DashboardLayout.astro_astro_type_script_index_0_lang.sBNUxHjt.js} +1 -1
  11. package/dist/client/_astro/{Footer.CIzMoBJk.js → Footer.nQEKIcjo.js} +1 -1
  12. package/dist/client/_astro/{GeneralSettings.XVjUJxtp.js → GeneralSettings.C5lXnnvB.js} +1 -1
  13. package/dist/client/_astro/LogsManager.BSXD0gFG.js +1 -0
  14. package/dist/client/_astro/MediaLibrary.9tlXDGsx.js +1 -0
  15. package/dist/client/_astro/MenuManager.CfLmtMhF.js +1 -0
  16. package/dist/client/_astro/{PluginManager.D65lPRrH.js → PluginManager.Ba2R7ZVx.js} +2 -2
  17. package/dist/client/_astro/{PostTypesManager.dsx3ybTa.js → PostTypesManager.DqbyhhLF.js} +1 -1
  18. package/dist/client/_astro/{QuickDraftWidget.DYsI_PJ5.js → QuickDraftWidget.J5LOLOY3.js} +2 -2
  19. package/dist/client/_astro/ResourceHubs.sI10AY3z.js +1 -0
  20. package/dist/client/_astro/TaxonomiesManager.BFd3zjNe.js +1 -0
  21. package/dist/client/_astro/TaxonomyTermsManager.C7ClYXtt.js +1 -0
  22. package/dist/client/_astro/{ThemeManager.CuhjguCi.js → ThemeManager.C4t-yZay.js} +2 -2
  23. package/dist/client/_astro/UserCreateForm.B-7pKOO6.js +1 -0
  24. package/dist/client/_astro/UsersManager.aI6-3vtM.js +1 -0
  25. package/dist/client/_astro/WebhooksManager.C3E91U9V.js +1 -0
  26. package/dist/client/_astro/api.DSIz0zxF.js +1 -0
  27. package/dist/client/_astro/client.BDaUmf7m.js +1 -0
  28. package/dist/client/_astro/custom-fields.pl-GPt9A.css +1 -0
  29. package/dist/client/_astro/dist.BqeNZlzo.js +1 -0
  30. package/dist/client/_astro/extensions.BD4YTWQq.js +1 -0
  31. package/dist/client/_astro/i18n.Tk18hqHh.js +1 -0
  32. package/dist/client/_astro/{login.astro_astro_type_script_index_0_lang.DHHzJWgm.js → login.astro_astro_type_script_index_0_lang.CJiWhdn-.js} +1 -1
  33. package/dist/client/_astro/pt-BR.BvjbjXKW.js +1 -0
  34. package/dist/client/_astro/solid.TEtyrbLc.js +1 -0
  35. package/dist/client/_astro/{version.DPFOQ4hp.js → version.Cvcb-3YL.js} +1 -1
  36. package/dist/client/_astro/web.C8wWxyYF.js +1 -0
  37. package/dist/server/chunks/{ContentEditor_Dat_38Nz.mjs → ContentEditor_Bz6HNlOl.mjs} +6 -6
  38. package/dist/server/chunks/{DashboardLayout_DsYrIyKK.mjs → DashboardLayout_DnvPikNH.mjs} +31 -6
  39. package/dist/server/chunks/MediaLibrary_CfwJY7WG.mjs +466 -0
  40. package/dist/server/chunks/{_slug__MPfKFp1f.mjs → _slug__Bf1zTrrT.mjs} +1 -1
  41. package/dist/server/chunks/{access_dvh8pEEF.mjs → access_Iqz1YRc2.mjs} +2 -2
  42. package/dist/server/chunks/custom-fields_HXTX5-i-.mjs +1297 -0
  43. package/dist/server/chunks/{edit_BaSFaTjX.mjs → edit_ibDxQgfc.mjs} +2 -2
  44. package/dist/server/chunks/{general_CWkM-QPS.mjs → general_VinYjg7Y.mjs} +2 -2
  45. package/dist/server/chunks/{i18n_BJJWXenY.mjs → i18n_BgHPm3Sm.mjs} +227 -5
  46. package/dist/server/chunks/{index_DCsZz61C.mjs → index_BIz2E9Ay.mjs} +3 -3
  47. package/dist/server/chunks/{index_Bck2SDPK.mjs → index_DmY8Cm8s.mjs} +2 -2
  48. package/dist/server/chunks/{index_1F1_RTJb.mjs → index_DvyRjH_d.mjs} +2 -2
  49. package/dist/server/chunks/{index_B4nb6VH_.mjs → index_WfuyDGIh.mjs} +2 -2
  50. package/dist/server/chunks/{index_DA7KSBNI.mjs → index_kl5K78eg.mjs} +1 -1
  51. package/dist/server/chunks/{login_DnB1gNqL.mjs → login_s3hMBW1K.mjs} +1 -1
  52. package/dist/server/chunks/{logs_BArVlSoG.mjs → logs_DUQUxzzy.mjs} +2 -2
  53. package/dist/server/chunks/menus_CgKz8KBb.mjs +532 -0
  54. package/dist/server/chunks/{new_D4KZk7Yr.mjs → new_CU0A50ce.mjs} +2 -2
  55. package/dist/server/chunks/{new_CSaDDm4Z.mjs → new_CZuza7Tx.mjs} +2 -2
  56. package/dist/server/chunks/{plugins_Rnyim3HN.mjs → plugins_fppkr9jv.mjs} +2 -2
  57. package/dist/server/chunks/{post-types_B9aran6P.mjs → post-types_BAWPD3pX.mjs} +2 -2
  58. package/dist/server/chunks/{pt-BR_C4s8qQI4.mjs → pt-BR_CoM1872j.mjs} +184 -4
  59. package/dist/server/chunks/{taxonomies_BoQfQyXo.mjs → taxonomies_BACV08DC.mjs} +2 -2
  60. package/dist/server/chunks/{taxonomy_IQtZsy_i.mjs → taxonomy_CZLTclnV.mjs} +2 -2
  61. package/dist/server/chunks/{themes_DbXTXyPr.mjs → themes_DHNmoF_s.mjs} +2 -2
  62. package/dist/server/chunks/{upload_DFhwOXyV.mjs → upload_BZgCqIbH.mjs} +2 -2
  63. package/dist/server/chunks/{webhooks_rjPh4g3b.mjs → webhooks_D0qA5-De.mjs} +114 -31
  64. package/dist/server/entry.mjs +23 -23
  65. package/dist/server/virtual_astro_middleware.mjs +1 -1
  66. package/package.json +1 -1
  67. package/dist/client/_astro/BaseLayout.DZs74Ly2.css +0 -1
  68. package/dist/client/_astro/ContentEditor.C0QRayGL.js +0 -3
  69. package/dist/client/_astro/ContentEditor.DI_TzQ3t.js +0 -1
  70. package/dist/client/_astro/CustomFieldsManager.DWfyFNKg.js +0 -3
  71. package/dist/client/_astro/DashboardHome.DogWw0Mx.js +0 -1
  72. package/dist/client/_astro/LogsManager.Dj9eegoH.js +0 -1
  73. package/dist/client/_astro/MediaLibrary.DFdil0q8.js +0 -1
  74. package/dist/client/_astro/MenuManager.CInlK214.js +0 -19
  75. package/dist/client/_astro/ResourceHubs.C3EJHpe7.js +0 -1
  76. package/dist/client/_astro/TaxonomiesManager.BYcDeL3s.js +0 -1
  77. package/dist/client/_astro/TaxonomyTermsManager.DLD_SWSE.js +0 -1
  78. package/dist/client/_astro/UserCreateForm.YrvnokVf.js +0 -1
  79. package/dist/client/_astro/UsersManager.BWkuqIyw.js +0 -1
  80. package/dist/client/_astro/WebhooksManager.BLy6DI8f.js +0 -1
  81. package/dist/client/_astro/api.DSW9LMA5.js +0 -1
  82. package/dist/client/_astro/client.W0NY0lEa.js +0 -1
  83. package/dist/client/_astro/custom-fields.XYcte01g.css +0 -1
  84. package/dist/client/_astro/dist.Di6E6ZlC.js +0 -1
  85. package/dist/client/_astro/extensions.BbGSgyUX.js +0 -1
  86. package/dist/client/_astro/i18n.Ck_XVuPY.js +0 -1
  87. package/dist/client/_astro/pt-BR.BNlZx8-w.js +0 -1
  88. package/dist/client/_astro/solid.DN8T1HsY.js +0 -1
  89. package/dist/client/_astro/web.Bze9SKEA.js +0 -1
  90. package/dist/server/chunks/MediaLibrary_BmYgO6Lm.mjs +0 -335
  91. package/dist/server/chunks/custom-fields_Dp_CVTYc.mjs +0 -591
  92. package/dist/server/chunks/menus_CYoSRDEL.mjs +0 -170
  93. /package/dist/server/chunks/{BaseLayout_C_gR8Xx3.mjs → BaseLayout_CXafpVV9.mjs} +0 -0
@@ -0,0 +1,466 @@
1
+ import { n as useTranslation, r as apiClient } from "./i18n_BgHPm3Sm.mjs";
2
+ import { a as For2, c as Pagination, l as Select, m as onMount, o as Input, p as createSignal, r as Button, s as Modal, u as Show2 } from "./DashboardLayout_DnvPikNH.mjs";
3
+ import { createComponent, escape, memo, ssr, ssrAttribute, ssrHydrationKey, ssrStyleProperty } from "solid-js/web";
4
+ //#region src/components/media/MediaLibrary.tsx
5
+ var _tmpl$ = [
6
+ "<div",
7
+ " class=\"notice notice--error\">",
8
+ "</div>"
9
+ ];
10
+ var _tmpl$2 = [
11
+ "<div",
12
+ " class=\"notice\">",
13
+ "</div>"
14
+ ];
15
+ var _tmpl$3 = [
16
+ "<div",
17
+ " class=\"media-grid\">",
18
+ "</div>"
19
+ ];
20
+ var _tmpl$4 = [
21
+ "<div",
22
+ " class=\"media-library\"><!--$-->",
23
+ "<!--/--><!--$-->",
24
+ "<!--/--><div class=\"",
25
+ "\"><p><strong>",
26
+ "</strong> ou</p><label class=\"btn btn-primary\" style=\"",
27
+ "\"><!--$-->",
28
+ "<!--/--><input type=\"file\" multiple style=\"",
29
+ "\"",
30
+ "></label><p class=\"muted\">",
31
+ "</p></div><div class=\"toolbar\"><!--$-->",
32
+ "<!--/--><!--$-->",
33
+ "<!--/--><!--$-->",
34
+ "<!--/--></div><!--$-->",
35
+ "<!--/--><!--$-->",
36
+ "<!--/--><!--$-->",
37
+ "<!--/--></div>"
38
+ ];
39
+ var _tmpl$5 = [
40
+ "<p",
41
+ " class=\"muted\">",
42
+ "</p>"
43
+ ];
44
+ var _tmpl$6 = ["<img", " loading=\"lazy\">"];
45
+ var _tmpl$7 = [
46
+ "<button",
47
+ " type=\"button\" class=\"",
48
+ "\"><div class=\"media-card__preview\">",
49
+ "</div><div class=\"media-card__meta\"><span class=\"media-card__name\"",
50
+ ">",
51
+ "</span><span class=\"muted\"><!--$-->",
52
+ "<!--/--> · <!--$-->",
53
+ "<!--/--></span></div></button>"
54
+ ];
55
+ var _tmpl$8 = [
56
+ "<span",
57
+ " class=\"media-card__ext\">",
58
+ "</span>"
59
+ ];
60
+ var _tmpl$9 = ["<img", ">"];
61
+ var _tmpl$0 = [
62
+ "<video",
63
+ " controls",
64
+ "></video>"
65
+ ];
66
+ var _tmpl$1 = [
67
+ "<audio",
68
+ " controls",
69
+ "></audio>"
70
+ ];
71
+ var _tmpl$10 = ["<iframe", "></iframe>"];
72
+ var _tmpl$11 = [
73
+ "<div",
74
+ " class=\"media-card__ext media-modal__file-icon\">",
75
+ "</div>"
76
+ ];
77
+ var _tmpl$12 = [
78
+ "<dt",
79
+ ">",
80
+ "</dt>"
81
+ ];
82
+ var _tmpl$13 = [
83
+ "<dd",
84
+ ">",
85
+ "</dd>"
86
+ ];
87
+ var _tmpl$14 = [
88
+ "<div",
89
+ " class=\"media-modal\"><div class=\"media-modal__preview\"><!--$-->",
90
+ "<!--/--><!--$-->",
91
+ "<!--/--><!--$-->",
92
+ "<!--/--><!--$-->",
93
+ "<!--/--><!--$-->",
94
+ "<!--/--></div><div class=\"media-modal__layout\"><div class=\"media-modal__fields\"><!--$-->",
95
+ "<!--/--><!--$-->",
96
+ "<!--/--><!--$-->",
97
+ "<!--/--><label class=\"field__label\"><!--$-->",
98
+ "<!--/--><textarea class=\"input media-modal__textarea\" name=\"media-description\"",
99
+ "></textarea></label></div><dl class=\"media-details__list media-modal__facts\"><dt>",
100
+ "</dt><dd>",
101
+ "</dd><dt>",
102
+ "</dt><dd>",
103
+ "</dd><dt>",
104
+ "</dt><dd>",
105
+ "</dd><!--$-->",
106
+ "<!--/--><dt>",
107
+ "</dt><dd>",
108
+ "</dd><dt>",
109
+ "</dt><dd class=\"media-details__url\"><code>",
110
+ "</code><button class=\"btn btn-secondary btn-sm\" type=\"button\">",
111
+ "</button></dd></dl></div><div class=\"media-modal__replace\"><label class=\"btn btn-secondary\" style=\"",
112
+ "\"><!--$-->",
113
+ "<!--/--><input type=\"file\" style=\"",
114
+ "\"",
115
+ "></label><span class=\"muted\">",
116
+ "</span></div><div class=\"media-details__actions\"><!--$-->",
117
+ "<!--/--><!--$-->",
118
+ "<!--/--><!--$-->",
119
+ "<!--/--></div></div>"
120
+ ];
121
+ function formatSize(bytes) {
122
+ if (!Number.isFinite(bytes)) return "—";
123
+ if (bytes < 1024) return `${bytes} B`;
124
+ if (bytes < 1048576) return `${(bytes / 1024).toFixed(1)} KB`;
125
+ return `${(bytes / 1048576).toFixed(1)} MB`;
126
+ }
127
+ function isImage(media) {
128
+ return media.mime_type.startsWith("image/");
129
+ }
130
+ function isVideo(media) {
131
+ return media.mime_type.startsWith("video/");
132
+ }
133
+ function isAudio(media) {
134
+ return media.mime_type.startsWith("audio/");
135
+ }
136
+ function isPdf(media) {
137
+ return media.mime_type === "application/pdf";
138
+ }
139
+ function displayTitle(media) {
140
+ return media.title?.trim() || media.filename;
141
+ }
142
+ function dimensions(media) {
143
+ const metadata = media.metadata;
144
+ const width = Number(metadata?.["width"]);
145
+ const height = Number(metadata?.["height"]);
146
+ return width > 0 && height > 0 ? `${width} × ${height} px` : null;
147
+ }
148
+ function draftFrom(media) {
149
+ return {
150
+ title: media.title ?? media.filename,
151
+ alt: media.alt ?? "",
152
+ caption: media.caption ?? "",
153
+ description: media.description ?? ""
154
+ };
155
+ }
156
+ function MediaLibrary(props) {
157
+ const { t } = useTranslation();
158
+ const [items, setItems] = createSignal([]);
159
+ const [total, setTotal] = createSignal(0);
160
+ const [page, setPage] = createSignal(1);
161
+ const [search, setSearch] = createSignal("");
162
+ const [mimeType, setMimeType] = createSignal("");
163
+ const [error, setError] = createSignal("");
164
+ const [info, setInfo] = createSignal("");
165
+ const [uploading, setUploading] = createSignal(false);
166
+ const [selected, setSelected] = createSignal(null);
167
+ const [draft, setDraft] = createSignal({
168
+ title: "",
169
+ alt: "",
170
+ caption: "",
171
+ description: ""
172
+ });
173
+ const [dragOver, setDragOver] = createSignal(false);
174
+ const [savingDetails, setSavingDetails] = createSignal(false);
175
+ const [replacing, setReplacing] = createSignal(false);
176
+ const limit = 24;
177
+ const mediaUrl = (media) => apiClient.mediaUrl(media.url);
178
+ const load = async () => {
179
+ try {
180
+ const result = await apiClient.listMedia({
181
+ page: page(),
182
+ limit,
183
+ search: search() || void 0,
184
+ mimeType: mimeType() || void 0
185
+ });
186
+ setItems(result.data ?? []);
187
+ setTotal(result.total ?? 0);
188
+ } catch (err) {
189
+ setError(err instanceof Error ? err.message : String(err));
190
+ }
191
+ };
192
+ onMount(load);
193
+ const searchNow = async () => {
194
+ setPage(1);
195
+ await load();
196
+ };
197
+ const remove = async (media) => {
198
+ if (!confirm(t("media.details.confirmDelete", { filename: media.filename }))) return;
199
+ try {
200
+ await apiClient.deleteMedia(media.id);
201
+ if (selected()?.id === media.id) setSelected(null);
202
+ await load();
203
+ } catch (err) {
204
+ setError(err instanceof Error ? err.message : String(err));
205
+ }
206
+ };
207
+ const saveDetails = async () => {
208
+ const media = selected();
209
+ if (!media) return;
210
+ setSavingDetails(true);
211
+ setError("");
212
+ try {
213
+ const updated = await apiClient.updateMedia(media.id, draft());
214
+ const merged = {
215
+ ...media,
216
+ ...updated
217
+ };
218
+ setSelected(merged);
219
+ setDraft(draftFrom(merged));
220
+ setInfo(t("media.details.saved"));
221
+ await load();
222
+ } catch (err) {
223
+ setError(err instanceof Error ? err.message : String(err));
224
+ } finally {
225
+ setSavingDetails(false);
226
+ }
227
+ };
228
+ return ssr(_tmpl$4, ssrHydrationKey(), escape(createComponent(Show2, {
229
+ get when() {
230
+ return error();
231
+ },
232
+ get children() {
233
+ return ssr(_tmpl$, ssrHydrationKey(), escape(error()));
234
+ }
235
+ })), escape(createComponent(Show2, {
236
+ get when() {
237
+ return info();
238
+ },
239
+ get children() {
240
+ return ssr(_tmpl$2, ssrHydrationKey(), escape(info()));
241
+ }
242
+ })), `upload-zone ${dragOver() || props.focusUpload ? "upload-zone--active" : ""}`, escape(t("media.upload.dropzone")), ssrStyleProperty("cursor:", "pointer"), uploading() ? escape(t("media.upload.uploading")) : escape(t("media.upload.select")), ssrStyleProperty("display:", "none"), ssrAttribute("disabled", uploading(), true), escape(t("media.upload.hint")), escape(createComponent(Input, {
243
+ name: "media-search",
244
+ get placeholder() {
245
+ return t("media.toolbar.search");
246
+ },
247
+ get value() {
248
+ return search();
249
+ },
250
+ onInput: (value) => {
251
+ setSearch(value);
252
+ searchNow();
253
+ }
254
+ })), escape(createComponent(Select, {
255
+ name: "media-mime",
256
+ get placeholder() {
257
+ return t("media.toolbar.allTypes");
258
+ },
259
+ get value() {
260
+ return mimeType();
261
+ },
262
+ get options() {
263
+ return [
264
+ {
265
+ value: "image/png",
266
+ label: t("media.mimeTypes.png")
267
+ },
268
+ {
269
+ value: "image/jpeg",
270
+ label: t("media.mimeTypes.jpeg")
271
+ },
272
+ {
273
+ value: "image/gif",
274
+ label: t("media.mimeTypes.gif")
275
+ },
276
+ {
277
+ value: "image/webp",
278
+ label: t("media.mimeTypes.webp")
279
+ },
280
+ {
281
+ value: "image/svg+xml",
282
+ label: t("media.mimeTypes.svg")
283
+ },
284
+ {
285
+ value: "application/pdf",
286
+ label: t("media.mimeTypes.pdf")
287
+ },
288
+ {
289
+ value: "video/mp4",
290
+ label: t("media.mimeTypes.mp4")
291
+ },
292
+ {
293
+ value: "audio/mpeg",
294
+ label: t("media.mimeTypes.mp3")
295
+ }
296
+ ];
297
+ },
298
+ onChange: (value) => {
299
+ setMimeType(value);
300
+ searchNow();
301
+ }
302
+ })), escape(createComponent(Button, {
303
+ variant: "secondary",
304
+ onClick: () => void searchNow(),
305
+ get children() {
306
+ return t("media.toolbar.searchBtn");
307
+ }
308
+ })), escape(createComponent(Show2, {
309
+ get when() {
310
+ return items().length > 0;
311
+ },
312
+ get fallback() {
313
+ return ssr(_tmpl$5, ssrHydrationKey(), escape(t("media.empty")));
314
+ },
315
+ get children() {
316
+ return ssr(_tmpl$3, ssrHydrationKey(), escape(createComponent(For2, {
317
+ get each() {
318
+ return items();
319
+ },
320
+ children: (media) => ssr(_tmpl$7, ssrHydrationKey(), `media-card ${selected()?.id === media.id ? "media-card--selected" : ""}`, escape(createComponent(Show2, {
321
+ get when() {
322
+ return isImage(media);
323
+ },
324
+ get fallback() {
325
+ return ssr(_tmpl$8, ssrHydrationKey(), escape(media.mime_type.split("/")[1]?.toUpperCase() ?? "FILE"));
326
+ },
327
+ get children() {
328
+ return ssr(_tmpl$6, ssrHydrationKey() + ssrAttribute("src", escape(mediaUrl(media), true), false) + ssrAttribute("alt", escape(media.alt ?? displayTitle(media), true), false));
329
+ }
330
+ })), ssrAttribute("title", escape(displayTitle(media), true), false), escape(displayTitle(media)), escape(media.filename), escape(formatSize(media.size)))
331
+ })));
332
+ }
333
+ })), escape(createComponent(Pagination, {
334
+ get page() {
335
+ return page();
336
+ },
337
+ limit,
338
+ get total() {
339
+ return total();
340
+ },
341
+ onPageChange: (next) => {
342
+ setPage(next);
343
+ load();
344
+ }
345
+ })), escape(createComponent(Modal, {
346
+ get open() {
347
+ return Boolean(selected());
348
+ },
349
+ get title() {
350
+ return memo(() => !!selected())() ? displayTitle(selected()) : t("media.details.title");
351
+ },
352
+ onClose: () => setSelected(null),
353
+ get children() {
354
+ return createComponent(Show2, {
355
+ get when() {
356
+ return selected();
357
+ },
358
+ children: (media) => ssr(_tmpl$14, ssrHydrationKey(), escape(createComponent(Show2, {
359
+ get when() {
360
+ return isImage(media());
361
+ },
362
+ get children() {
363
+ return ssr(_tmpl$9, ssrHydrationKey() + ssrAttribute("src", escape(mediaUrl(media()), true), false) + ssrAttribute("alt", escape(draft().alt || displayTitle(media()), true), false));
364
+ }
365
+ })), escape(createComponent(Show2, {
366
+ get when() {
367
+ return isVideo(media());
368
+ },
369
+ get children() {
370
+ return ssr(_tmpl$0, ssrHydrationKey(), ssrAttribute("src", escape(mediaUrl(media()), true), false));
371
+ }
372
+ })), escape(createComponent(Show2, {
373
+ get when() {
374
+ return isAudio(media());
375
+ },
376
+ get children() {
377
+ return ssr(_tmpl$1, ssrHydrationKey(), ssrAttribute("src", escape(mediaUrl(media()), true), false));
378
+ }
379
+ })), escape(createComponent(Show2, {
380
+ get when() {
381
+ return isPdf(media());
382
+ },
383
+ get children() {
384
+ return ssr(_tmpl$10, ssrHydrationKey() + ssrAttribute("title", escape(displayTitle(media()), true), false) + ssrAttribute("src", escape(mediaUrl(media()), true), false));
385
+ }
386
+ })), escape(createComponent(Show2, {
387
+ get when() {
388
+ return memo(() => !!(!isImage(media()) && !isVideo(media()) && !isAudio(media())))() && !isPdf(media());
389
+ },
390
+ get children() {
391
+ return ssr(_tmpl$11, ssrHydrationKey(), escape(media().mime_type.split("/")[1]?.toUpperCase() ?? "FILE"));
392
+ }
393
+ })), escape(createComponent(Input, {
394
+ name: "media-title",
395
+ get label() {
396
+ return t("media.details.titleField");
397
+ },
398
+ get value() {
399
+ return draft().title;
400
+ },
401
+ onInput: (value) => setDraft({
402
+ ...draft(),
403
+ title: value
404
+ })
405
+ })), escape(createComponent(Input, {
406
+ name: "media-alt",
407
+ get label() {
408
+ return t("media.details.alt");
409
+ },
410
+ get value() {
411
+ return draft().alt;
412
+ },
413
+ onInput: (value) => setDraft({
414
+ ...draft(),
415
+ alt: value
416
+ })
417
+ })), escape(createComponent(Input, {
418
+ name: "media-caption",
419
+ get label() {
420
+ return t("media.details.caption");
421
+ },
422
+ get value() {
423
+ return draft().caption;
424
+ },
425
+ onInput: (value) => setDraft({
426
+ ...draft(),
427
+ caption: value
428
+ })
429
+ })), escape(t("media.details.description")), ssrAttribute("value", escape(draft().description, true), false), escape(t("media.details.file")), escape(media().filename), escape(t("media.details.type")), escape(media().mime_type), escape(t("media.details.size")), escape(formatSize(media().size)), escape(createComponent(Show2, {
430
+ get when() {
431
+ return dimensions(media());
432
+ },
433
+ get children() {
434
+ return [ssr(_tmpl$12, ssrHydrationKey(), escape(t("media.details.dimensions"))), ssr(_tmpl$13, ssrHydrationKey(), escape(dimensions(media())))];
435
+ }
436
+ })), escape(t("media.details.uploaded")), media().created_at ? escape(new Date(media().created_at).toLocaleString()) : "—", escape(t("media.details.url")), escape(mediaUrl(media())), escape(t("media.details.copy")), ssrStyleProperty("cursor:", "pointer"), replacing() ? escape(t("media.details.replacing")) : escape(t("media.details.replace")), ssrStyleProperty("display:", "none"), ssrAttribute("disabled", replacing(), true), escape(t("media.details.replaceHint")), escape(createComponent(Button, {
437
+ variant: "primary",
438
+ get disabled() {
439
+ return savingDetails();
440
+ },
441
+ get loading() {
442
+ return savingDetails();
443
+ },
444
+ onClick: () => void saveDetails(),
445
+ get children() {
446
+ return t("media.details.save");
447
+ }
448
+ })), escape(createComponent(Button, {
449
+ variant: "danger",
450
+ onClick: () => void remove(media()),
451
+ get children() {
452
+ return t("media.details.delete");
453
+ }
454
+ })), escape(createComponent(Button, {
455
+ variant: "secondary",
456
+ onClick: () => setSelected(null),
457
+ get children() {
458
+ return t("media.details.close");
459
+ }
460
+ })))
461
+ });
462
+ }
463
+ })));
464
+ }
465
+ //#endregion
466
+ export { MediaLibrary as t };
@@ -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, p as addAttribute, u as renderTemplate } from "./server_B5N27szj.mjs";
3
3
  import { t as createComponent } from "./compiler_O7J1rlsi.mjs";
4
- import { t as $$DashboardLayout } from "./DashboardLayout_DsYrIyKK.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_DnvPikNH.mjs";
5
5
  //#region src/pages/plugins/[slug].astro
6
6
  var _slug__exports = /* @__PURE__ */ __exportAll({
7
7
  default: () => $$Slug,
@@ -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_BJJWXenY.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_DsYrIyKK.mjs";
4
+ import { n as useTranslation, r as apiClient } from "./i18n_BgHPm3Sm.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_DnvPikNH.mjs";
6
6
  import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
7
7
  import { For, Show, createSignal, onMount } from "solid-js";
8
8
  //#region src/components/apps/settings/ResourceHubs.tsx