@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
@@ -1,591 +0,0 @@
1
- import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
2
- import { S as createAstro, d as maybeRenderHead, 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_BJJWXenY.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_DsYrIyKK.mjs";
6
- import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
7
- import { For, Show, createMemo, createSignal, onMount } from "solid-js";
8
- import { createIcons, icons } from "lucide";
9
- //#region src/components/content/FieldTypePicker.tsx
10
- var _tmpl$$1 = [
11
- "<div",
12
- " class=\"field-type-picker__panel\" role=\"listbox\"><input type=\"search\" class=\"field-type-picker__search\" placeholder=\"Buscar tipo de campo...\"",
13
- "><!--$-->",
14
- "<!--/--></div>"
15
- ];
16
- var _tmpl$2$1 = [
17
- "<div",
18
- " class=\"field-type-picker\"><button type=\"button\" class=\"field-type-picker__trigger\"",
19
- "><span class=\"field-type-picker__selected\"><i",
20
- " aria-hidden=\"true\"></i><!--$-->",
21
- "<!--/--></span><span aria-hidden=\"true\">",
22
- "</span></button><!--$-->",
23
- "<!--/--></div>"
24
- ];
25
- var _tmpl$3$1 = [
26
- "<div",
27
- " class=\"field-type-picker__group\"><div class=\"field-type-picker__group-label\"><i",
28
- " aria-hidden=\"true\"></i><!--$-->",
29
- "<!--/--></div><!--$-->",
30
- "<!--/--></div>"
31
- ];
32
- var _tmpl$4$1 = ["<span", " class=\"field-type-picker__hint\">sem lógica condicional</span>"];
33
- var _tmpl$5$1 = [
34
- "<button",
35
- " type=\"button\" role=\"option\"",
36
- " class=\"",
37
- "\"><i",
38
- " aria-hidden=\"true\"></i><span>",
39
- "</span><!--$-->",
40
- "<!--/--></button>"
41
- ];
42
- function FieldTypePicker(props) {
43
- const [open, setOpen] = createSignal(false);
44
- const [query, setQuery] = createSignal("");
45
- const selected = () => props.types.find((type) => type.type === props.value);
46
- const filteredTypes = () => {
47
- const q = query().toLowerCase();
48
- return q ? props.types.filter((type) => type.label.toLowerCase().includes(q) || type.type.includes(q)) : props.types;
49
- };
50
- const refreshIcons = () => {
51
- queueMicrotask(() => createIcons({ icons }));
52
- };
53
- onMount(refreshIcons);
54
- return ssr(_tmpl$2$1, ssrHydrationKey(), ssrAttribute("aria-expanded", escape(open(), true), false), ssrAttribute("data-lucide", escape(selected()?.icon ?? "box", true), false), escape(selected()?.label ?? "Selecione o tipo"), open() ? "▴" : "▾", escape(createComponent(Show, {
55
- get when() {
56
- return open();
57
- },
58
- get children() {
59
- return ssr(_tmpl$$1, ssrHydrationKey(), ssrAttribute("value", escape(query(), true), false), escape(createComponent(For, {
60
- get each() {
61
- return props.categories;
62
- },
63
- children: (category) => {
64
- const categoryTypes = filteredTypes().filter((type) => type.category === category.id);
65
- return createComponent(Show, {
66
- get when() {
67
- return categoryTypes.length > 0;
68
- },
69
- get children() {
70
- return ssr(_tmpl$3$1, ssrHydrationKey(), ssrAttribute("data-lucide", escape(category.icon, true), false), escape(category.label), escape(createComponent(For, {
71
- each: categoryTypes,
72
- children: (type) => ssr(_tmpl$5$1, ssrHydrationKey(), ssrAttribute("aria-selected", escape(props.value, true) === escape(type.type, true), false), `field-type-picker__option ${props.value === type.type ? "is-selected" : ""}`, ssrAttribute("data-lucide", escape(type.icon, true), false), escape(type.label), escape(createComponent(Show, {
73
- get when() {
74
- return !type.supportsConditions;
75
- },
76
- get children() {
77
- return ssr(_tmpl$4$1, ssrHydrationKey());
78
- }
79
- })))
80
- })));
81
- }
82
- });
83
- }
84
- })));
85
- }
86
- })));
87
- }
88
- //#endregion
89
- //#region src/components/apps/settings/CustomFieldsManager.tsx
90
- var _tmpl$ = [
91
- "<div",
92
- " class=\"notice notice--error\">",
93
- "</div>"
94
- ];
95
- var _tmpl$2 = [
96
- "<div",
97
- " class=\"notice\">",
98
- "</div>"
99
- ];
100
- var _tmpl$3 = [
101
- "<div",
102
- " class=\"custom-fields-toolbar\"><label><!--$-->",
103
- "<!--/--><select class=\"input\"",
104
- ">",
105
- "</select></label><button type=\"button\" class=\"btn btn-primary\">+ <!--$-->",
106
- "<!--/--></button></div>"
107
- ];
108
- var _tmpl$4 = [
109
- "<section",
110
- " class=\"card standard-fields-card\"><div class=\"section-heading\"><div><h3>",
111
- "</h3><p class=\"muted\">",
112
- "</p></div></div><div class=\"standard-fields-list\">",
113
- "</div></section>"
114
- ];
115
- var _tmpl$5 = [
116
- "<div",
117
- " class=\"groups-list\">",
118
- "</div>"
119
- ];
120
- var _tmpl$6 = [
121
- "<section",
122
- " class=\"card groups-card\"><div class=\"section-heading\"><h3>",
123
- "</h3></div><!--$-->",
124
- "<!--/--></section>"
125
- ];
126
- var _tmpl$7 = [
127
- "<div",
128
- " class=\"custom-fields-manager\"><!--$-->",
129
- "<!--/--><!--$-->",
130
- "<!--/--><!--$-->",
131
- "<!--/--></div>"
132
- ];
133
- var _tmpl$8 = [
134
- "<p",
135
- " class=\"muted\">",
136
- "</p>"
137
- ];
138
- var _tmpl$9 = [
139
- "<option",
140
- "><!--$-->",
141
- "<!--/--> (<!--$-->",
142
- "<!--/-->)</option>"
143
- ];
144
- var _tmpl$0 = [
145
- "<span",
146
- " class=\"badge badge-secondary\">",
147
- "</span>"
148
- ];
149
- var _tmpl$1 = [
150
- "<span",
151
- " class=\"muted\">",
152
- "</span>"
153
- ];
154
- var _tmpl$10 = [
155
- "<label",
156
- " class=\"",
157
- "\"><span><strong>",
158
- "</strong><small><!--$-->",
159
- "<!--/--> · <!--$-->",
160
- "<!--/--></small></span><span class=\"standard-field-control\"><!--$-->",
161
- "<!--/--><!--$-->",
162
- "<!--/--></span></label>"
163
- ];
164
- var _tmpl$11 = [
165
- "<input",
166
- " type=\"checkbox\"",
167
- ">"
168
- ];
169
- var _tmpl$12 = [
170
- "<section",
171
- " class=\"card field-group-editor\"><div class=\"section-heading\"><h3>",
172
- "</h3><button type=\"button\" class=\"btn\">",
173
- "</button></div><form><div class=\"form-grid\"><label><!--$-->",
174
- "<!--/--><input class=\"input\" required",
175
- "></label><label><!--$-->",
176
- "<!--/--><select class=\"input\"",
177
- "><option value=\"normal\">",
178
- "</option><option value=\"side\">",
179
- "</option><option value=\"acf_after_title\">",
180
- "</option></select></label><label><!--$-->",
181
- "<!--/--><select class=\"input\"",
182
- "><option value=\"standard\">",
183
- "</option><option value=\"seamless\">",
184
- "</option><option value=\"grouped\">",
185
- "</option></select></label><label class=\"checkbox-label\"><input type=\"checkbox\"",
186
- "><!--$-->",
187
- "<!--/--></label></div><div class=\"acf-assignment\"><div><h4>",
188
- "</h4><p class=\"muted\">",
189
- "</p></div><label><!--$-->",
190
- "<!--/--><select class=\"input\"",
191
- ">",
192
- "</select></label></div><div class=\"location-rules-editor\"><div class=\"fields-editor-heading\"><div><h4>",
193
- "</h4><p class=\"muted\">",
194
- "</p></div><button type=\"button\" class=\"btn\">+ <!--$-->",
195
- "<!--/--></button></div><!--$-->",
196
- "<!--/--></div><div class=\"fields-editor-heading\"><h4>",
197
- "</h4><button type=\"button\" class=\"btn\">+ <!--$-->",
198
- "<!--/--></button></div><div class=\"editable-fields-list\">",
199
- "</div><div class=\"editor-actions\"><button type=\"submit\" class=\"btn btn-primary\"",
200
- ">",
201
- "</button></div></form></section>"
202
- ];
203
- var _tmpl$13 = [
204
- "<div",
205
- " class=\"rule-connector\">",
206
- "</div>"
207
- ];
208
- var _tmpl$14 = [
209
- "<div",
210
- " class=\"location-rule-group\"><!--$-->",
211
- "<!--/--><!--$-->",
212
- "<!--/--><button type=\"button\" class=\"btn rule-add\">+ <!--$-->",
213
- "<!--/--></button></div>"
214
- ];
215
- var _tmpl$15 = [
216
- "<select",
217
- " class=\"input\" required",
218
- "><option value>",
219
- "</option><!--$-->",
220
- "<!--/--></select>"
221
- ];
222
- var _tmpl$16 = [
223
- "<div",
224
- " class=\"location-rule-row\"><select class=\"input\"",
225
- ">",
226
- "</select><select class=\"input\"",
227
- "><option value=\"eq\">",
228
- "</option><option value=\"neq\">",
229
- "</option></select><!--$-->",
230
- "<!--/--><button type=\"button\" class=\"btn btn-danger\">",
231
- "</button></div>"
232
- ];
233
- var _tmpl$17 = [
234
- "<option",
235
- ">",
236
- "</option>"
237
- ];
238
- var _tmpl$18 = [
239
- "<input",
240
- " class=\"input\" required",
241
- ">"
242
- ];
243
- var _tmpl$19 = [
244
- "<label",
245
- "><!--$-->",
246
- "<!--/--><textarea class=\"input\" rows=\"3\"",
247
- "></textarea><small class=\"muted\">",
248
- "</small></label>"
249
- ];
250
- var _tmpl$20 = [
251
- "<article",
252
- " class=\"",
253
- "\" draggable=\"true\"><div class=\"editable-field__topline\"><span class=\"drag-handle\"",
254
- ">⠿</span><strong><!--$-->",
255
- "<!--/--> <!--$-->",
256
- "<!--/--></strong><span class=\"muted\">",
257
- "</span><button type=\"button\" class=\"btn btn-danger\">",
258
- "</button></div><div class=\"field-grid\"><label><!--$-->",
259
- "<!--/--><input class=\"input\" required",
260
- "></label><label><!--$-->",
261
- "<!--/--><input class=\"input\" required pattern=\"[a-zA-Z0-9_-]+\"",
262
- "></label><label><!--$-->",
263
- "<!--/--><!--$-->",
264
- "<!--/--></label><label class=\"checkbox-label field-required\"><input type=\"checkbox\"",
265
- "><!--$-->",
266
- "<!--/--></label></div><label><!--$-->",
267
- "<!--/--><input class=\"input\"",
268
- "></label><!--$-->",
269
- "<!--/--></article>"
270
- ];
271
- var _tmpl$21 = [
272
- "<div",
273
- " class=\"group-row\"><div><strong>",
274
- "</strong><small><!--$-->",
275
- "<!--/--> · <!--$-->",
276
- "<!--/--> <!--$-->",
277
- "<!--/--></small><small><!--$-->",
278
- "<!--/-->: <!--$-->",
279
- "<!--/--></small></div><div class=\"group-row__actions\"><span class=\"",
280
- "\">",
281
- "</span><button type=\"button\" class=\"btn\">",
282
- "</button><button type=\"button\" class=\"btn btn-danger\">",
283
- "</button></div></div>"
284
- ];
285
- var STANDARD_FIELD_KEYS = [
286
- "title",
287
- "slug",
288
- "content",
289
- "excerpt",
290
- "featured_image",
291
- "seo_title",
292
- "seo_description",
293
- "status",
294
- "author"
295
- ];
296
- var LOCATION_PARAMS = [
297
- "content_type",
298
- "content_slug",
299
- "taxonomy",
300
- "term",
301
- "user_role",
302
- "page_template",
303
- "post_status"
304
- ];
305
- function CustomFieldsManager() {
306
- const { t } = useTranslation();
307
- const [contentTypes, setContentTypes] = createSignal([]);
308
- const [taxonomies, setTaxonomies] = createSignal([]);
309
- const [groups, setGroups] = createSignal([]);
310
- const [fieldTypes, setFieldTypes] = createSignal([]);
311
- const [categories, setCategories] = createSignal([]);
312
- const [selectedType, setSelectedType] = createSignal("");
313
- const [draft, setDraft] = createSignal(null);
314
- const [draggedIndex, setDraggedIndex] = createSignal(null);
315
- const [loading, setLoading] = createSignal(true);
316
- const [saving, setSaving] = createSignal(false);
317
- const [error, setError] = createSignal("");
318
- const [notice, setNotice] = createSignal("");
319
- const selectedContentType = createMemo(() => contentTypes().find((type) => type.slug === selectedType()));
320
- const coreGroup = createMemo(() => groups().find((group) => group.key === `core-fields-${selectedType()}`));
321
- const groupContentTypes = (group) => [...new Set((group.locationRules ?? []).flat().filter((rule) => rule.param === "content_type" && rule.operator === "eq" && rule.value).map((rule) => rule.value))];
322
- const customGroups = createMemo(() => groups().filter((group) => {
323
- if (group.key.startsWith("core-fields-")) return false;
324
- const targets = groupContentTypes(group);
325
- return targets.length === 0 || targets.includes(selectedType());
326
- }));
327
- const standardFields = createMemo(() => STANDARD_FIELD_KEYS.map((key) => {
328
- const definition = coreGroup()?.fields.find((field) => field.coreFieldKey === key || field.name === key);
329
- return {
330
- key,
331
- label: t(`settings.customFields.standard.fields.${key}`),
332
- type: definition?.type ?? "text",
333
- locked: key === "title" || key === "slug" || Boolean(definition?.isLocked)
334
- };
335
- }));
336
- const enabledStandardFields = createMemo(() => {
337
- const configured = selectedContentType()?.defaultFields;
338
- return new Set(configured?.length ? configured : STANDARD_FIELD_KEYS);
339
- });
340
- const load = async () => {
341
- setLoading(true);
342
- setError("");
343
- try {
344
- const [types, taxonomyList, catalog, summaries] = await Promise.all([
345
- apiClient.getContentTypes(),
346
- apiClient.getTaxonomies(),
347
- apiClient.getFieldTypes(),
348
- apiClient.getFieldGroups()
349
- ]);
350
- const details = await Promise.all(summaries.map((summary) => apiClient.getFieldGroup(summary.id)));
351
- setContentTypes(types);
352
- setTaxonomies(taxonomyList);
353
- setFieldTypes(catalog.types);
354
- setCategories(catalog.categories);
355
- setGroups(details);
356
- if (!selectedType() && types[0]) setSelectedType(types[0].slug);
357
- } catch (err) {
358
- setError(err instanceof Error ? err.message : t("settings.customFields.loadError"));
359
- } finally {
360
- setLoading(false);
361
- }
362
- };
363
- onMount(load);
364
- const updateField = (index, patch) => {
365
- setDraft((current) => current ? {
366
- ...current,
367
- fields: current.fields.map((field, fieldIndex) => fieldIndex === index ? {
368
- ...field,
369
- ...patch
370
- } : field)
371
- } : current);
372
- };
373
- const locationParamLabel = (param) => t(`settings.customFields.location.params.${param}`);
374
- const locationOperatorLabel = (operator) => operator === "eq" ? t("settings.customFields.location.operators.eq") : t("settings.customFields.location.operators.neq");
375
- const locationValueOptions = (param) => {
376
- if (param === "content_type") return contentTypes().map((type) => ({
377
- value: type.slug,
378
- label: `${type.pluralLabel} (${type.slug})`
379
- }));
380
- if (param === "taxonomy") return taxonomies().map((taxonomy) => ({
381
- value: taxonomy.slug,
382
- label: `${taxonomy.name} (${taxonomy.slug})`
383
- }));
384
- if (param === "post_status") return [
385
- "DRAFT",
386
- "PUBLISHED",
387
- "ARCHIVED",
388
- "TRASHED"
389
- ].map((status) => ({
390
- value: status,
391
- label: status
392
- }));
393
- return [];
394
- };
395
- const draftContentType = (rules) => rules.flat().find((rule) => rule.param === "content_type" && rule.operator === "eq")?.value ?? selectedType();
396
- const locationSummary = (group) => {
397
- const targets = groupContentTypes(group);
398
- if (targets.length === 0) return t("settings.customFields.groups.allContentTypes");
399
- return targets.map((slug) => contentTypes().find((type) => type.slug === slug)?.pluralLabel ?? slug).join(", ");
400
- };
401
- const optionsText = (field) => {
402
- const options = field.config["options"];
403
- if (!Array.isArray(options)) return "";
404
- return options.map((option) => {
405
- if (option && typeof option === "object") {
406
- const row = option;
407
- return `${String(row.value ?? "")}|${String(row.label ?? row.value ?? "")}`;
408
- }
409
- return String(option);
410
- }).join("\n");
411
- };
412
- return ssr(_tmpl$7, ssrHydrationKey(), escape(createComponent(Show, {
413
- get when() {
414
- return error();
415
- },
416
- get children() {
417
- return ssr(_tmpl$, ssrHydrationKey(), escape(error()));
418
- }
419
- })), escape(createComponent(Show, {
420
- get when() {
421
- return notice();
422
- },
423
- get children() {
424
- return ssr(_tmpl$2, ssrHydrationKey(), escape(notice()));
425
- }
426
- })), escape(createComponent(Show, {
427
- get when() {
428
- return !loading();
429
- },
430
- get fallback() {
431
- return ssr(_tmpl$8, ssrHydrationKey(), escape(t("settings.customFields.loading")));
432
- },
433
- get children() {
434
- return [
435
- ssr(_tmpl$3, ssrHydrationKey(), escape(t("settings.customFields.contentType")), ssrAttribute("value", escape(selectedType(), true), false), escape(createComponent(For, {
436
- get each() {
437
- return contentTypes();
438
- },
439
- children: (type) => ssr(_tmpl$9, ssrHydrationKey() + ssrAttribute("value", escape(type.slug, true), false), escape(type.pluralLabel), escape(type.slug))
440
- })), escape(t("settings.customFields.groups.new"))),
441
- ssr(_tmpl$4, ssrHydrationKey(), escape(t("settings.customFields.standard.title")), escape(t("settings.customFields.standard.description")), escape(createComponent(For, {
442
- get each() {
443
- return standardFields();
444
- },
445
- children: (field) => ssr(_tmpl$10, ssrHydrationKey(), `standard-field-row ${field.locked ? "is-locked" : ""}`, escape(field.label), escape(field.key), escape(field.type), escape(createComponent(Show, {
446
- get when() {
447
- return field.locked;
448
- },
449
- get fallback() {
450
- return ssr(_tmpl$11, ssrHydrationKey(), ssrAttribute("checked", enabledStandardFields().has(field.key), true));
451
- },
452
- get children() {
453
- return ssr(_tmpl$0, ssrHydrationKey(), escape(t("settings.customFields.standard.locked")));
454
- }
455
- })), escape(createComponent(Show, {
456
- get when() {
457
- return !field.locked;
458
- },
459
- get children() {
460
- return ssr(_tmpl$1, ssrHydrationKey(), enabledStandardFields().has(field.key) ? escape(t("settings.customFields.standard.enabled")) : escape(t("settings.customFields.groups.inactive")));
461
- }
462
- })))
463
- }))),
464
- createComponent(Show, {
465
- get when() {
466
- return draft();
467
- },
468
- children: (current) => ssr(_tmpl$12, ssrHydrationKey(), current().id ? escape(t("settings.customFields.form.editTitle")) : escape(t("settings.customFields.form.createTitle")), escape(t("settings.customFields.form.cancel")), escape(t("settings.customFields.form.title")), ssrAttribute("value", escape(current().title, true), false) + ssrAttribute("placeholder", escape(t("settings.customFields.form.titlePlaceholder"), true), false), escape(t("settings.customFields.form.position")), ssrAttribute("value", escape(current().position, true), false), escape(t("settings.customFields.form.positions.normal")), escape(t("settings.customFields.form.positions.side")), escape(t("settings.customFields.form.positions.acf_after_title")), escape(t("settings.customFields.form.displayStyle")), ssrAttribute("value", escape(current().displayStyle, true), false), escape(t("settings.customFields.form.displayStyles.standard")), escape(t("settings.customFields.form.displayStyles.seamless")), escape(t("settings.customFields.form.displayStyles.grouped")), ssrAttribute("checked", current().active, true), escape(t("settings.customFields.groups.active")), escape(t("settings.customFields.form.assignTitle")), escape(t("settings.customFields.form.assignDescription")), escape(t("settings.customFields.form.contentType")), ssrAttribute("value", escape(draftContentType(current().locationRules), true), false), escape(createComponent(For, {
469
- get each() {
470
- return contentTypes();
471
- },
472
- children: (type) => ssr(_tmpl$9, ssrHydrationKey() + ssrAttribute("value", escape(type.slug, true), false), escape(type.pluralLabel), escape(type.slug))
473
- })), escape(t("settings.customFields.location.title")), escape(t("settings.customFields.location.description")), escape(t("settings.customFields.location.addGroup")), escape(createComponent(For, {
474
- get each() {
475
- return current().locationRules;
476
- },
477
- children: (ruleGroup, groupIndex) => ssr(_tmpl$14, ssrHydrationKey(), escape(createComponent(Show, {
478
- get when() {
479
- return groupIndex() > 0;
480
- },
481
- get children() {
482
- return ssr(_tmpl$13, ssrHydrationKey(), escape(t("settings.customFields.location.or")));
483
- }
484
- })), escape(createComponent(For, {
485
- each: ruleGroup,
486
- children: (rule, ruleIndex) => [createComponent(Show, {
487
- get when() {
488
- return ruleIndex() > 0;
489
- },
490
- get children() {
491
- return ssr(_tmpl$13, ssrHydrationKey(), escape(t("settings.customFields.location.and")));
492
- }
493
- }), ssr(_tmpl$16, ssrHydrationKey(), ssrAttribute("value", escape(rule.param, true), false) + ssrAttribute("aria-label", escape(t("settings.customFields.location.parameter"), true), false), escape(createComponent(For, {
494
- each: LOCATION_PARAMS,
495
- children: (param) => ssr(_tmpl$17, ssrHydrationKey() + ssrAttribute("value", escape(param, true), false), escape(locationParamLabel(param)))
496
- })), ssrAttribute("value", escape(rule.operator, true), false) + ssrAttribute("aria-label", escape(t("settings.customFields.location.operator"), true), false), escape(locationOperatorLabel("eq")), escape(locationOperatorLabel("neq")), escape(createComponent(Show, {
497
- get when() {
498
- return locationValueOptions(rule.param).length > 0;
499
- },
500
- get fallback() {
501
- return ssr(_tmpl$18, ssrHydrationKey(), ssrAttribute("value", escape(rule.value, true), false) + ssrAttribute("placeholder", escape(t("settings.customFields.location.valuePlaceholder"), true), false));
502
- },
503
- get children() {
504
- return ssr(_tmpl$15, ssrHydrationKey(), ssrAttribute("value", escape(rule.value, true), false), escape(t("settings.customFields.location.chooseValue")), escape(createComponent(For, {
505
- get each() {
506
- return locationValueOptions(rule.param);
507
- },
508
- children: (option) => ssr(_tmpl$17, ssrHydrationKey() + ssrAttribute("value", escape(option.value, true), false), escape(option.label))
509
- })));
510
- }
511
- })), escape(t("settings.customFields.location.remove")))]
512
- })), escape(t("settings.customFields.location.addRule")))
513
- })), escape(t("settings.customFields.form.field")), escape(t("settings.customFields.form.addField")), escape(createComponent(For, {
514
- get each() {
515
- return current().fields;
516
- },
517
- children: (field, index) => ssr(_tmpl$20, ssrHydrationKey(), `editable-field ${draggedIndex() === index() ? "is-dragging" : ""}`, ssrAttribute("title", escape(t("settings.customFields.form.dragHint"), true), false) + ssrAttribute("aria-label", escape(t("settings.customFields.form.dragHint"), true), false), escape(t("settings.customFields.form.field")), escape(index()) + 1, escape(t("settings.customFields.form.dragHint")), escape(t("settings.customFields.form.removeField")), escape(t("settings.customFields.form.fieldLabel")), ssrAttribute("value", escape(field.label, true), false) + ssrAttribute("placeholder", escape(t("settings.customFields.form.fieldLabelPlaceholder"), true), false), escape(t("settings.customFields.form.fieldName")), ssrAttribute("value", escape(field.name, true), false) + ssrAttribute("placeholder", escape(t("settings.customFields.form.fieldNamePlaceholder"), true), false), escape(t("settings.customFields.form.fieldType")), escape(createComponent(FieldTypePicker, {
518
- get categories() {
519
- return categories();
520
- },
521
- get types() {
522
- return fieldTypes();
523
- },
524
- get value() {
525
- return field.type;
526
- },
527
- onChange: (type) => updateField(index(), { type })
528
- })), ssrAttribute("checked", field.required, true), escape(t("settings.customFields.form.required")), escape(t("settings.customFields.form.instructions")), ssrAttribute("value", escape(field.instructions ?? "", true), false) + ssrAttribute("placeholder", escape(t("settings.customFields.form.instructionsPlaceholder"), true), false), escape(createComponent(Show, {
529
- get when() {
530
- return [
531
- "select",
532
- "checkbox",
533
- "radio"
534
- ].includes(field.type);
535
- },
536
- get children() {
537
- return ssr(_tmpl$19, ssrHydrationKey(), escape(t("settings.customFields.form.options")), ssrAttribute("value", escape(optionsText(field), true), false) + ssrAttribute("placeholder", escape(t("settings.customFields.form.optionsHint"), true), false), escape(t("settings.customFields.form.optionsHint")));
538
- }
539
- })))
540
- })), ssrAttribute("disabled", saving(), true), saving() ? escape(t("common.loading")) : escape(t("settings.customFields.form.save")))
541
- }),
542
- ssr(_tmpl$6, ssrHydrationKey(), escape(t("settings.customFields.groups.title")), escape(createComponent(Show, {
543
- get when() {
544
- return customGroups().length > 0;
545
- },
546
- get fallback() {
547
- return ssr(_tmpl$8, ssrHydrationKey(), escape(t("settings.customFields.groups.empty")));
548
- },
549
- get children() {
550
- return ssr(_tmpl$5, ssrHydrationKey(), escape(createComponent(For, {
551
- get each() {
552
- return customGroups();
553
- },
554
- children: (group) => ssr(_tmpl$21, ssrHydrationKey(), escape(group.title), escape(group.key), escape(group.fields.length), escape(t("settings.customFields.groups.fields")), escape(t("settings.customFields.groups.appliesTo")), escape(locationSummary(group)), `badge ${group.active !== false ? "badge-success" : ""} ${group.active === false ? "badge-secondary" : ""}`, group.active !== false ? escape(t("settings.customFields.groups.active")) : escape(t("settings.customFields.groups.inactive")), escape(t("settings.customFields.groups.edit")), escape(t("settings.customFields.actions.delete")))
555
- })));
556
- }
557
- })))
558
- ];
559
- }
560
- })));
561
- }
562
- //#endregion
563
- //#region src/pages/settings/custom-fields.astro
564
- var custom_fields_exports = /* @__PURE__ */ __exportAll({
565
- default: () => $$CustomFields,
566
- file: () => $$file,
567
- url: () => $$url
568
- });
569
- createAstro("https://astro.build");
570
- var $$CustomFields = createComponent$1(($$result, $$props, $$slots) => {
571
- const Astro = $$result.createAstro($$props, $$slots);
572
- Astro.self = $$CustomFields;
573
- const { t } = Astro.locals;
574
- return renderTemplate`${renderComponent($$result, "DashboardLayout", $$DashboardLayout, {
575
- "title": t("settings.customFields.title"),
576
- "data-astro-cid-2wrpkwch": true
577
- }, { "default": ($$result) => renderTemplate`${maybeRenderHead($$result)}<div class="settings-page" data-astro-cid-2wrpkwch><div class="page-header" data-astro-cid-2wrpkwch><h2 data-astro-cid-2wrpkwch>${t("settings.customFields.title")}</h2><p data-astro-cid-2wrpkwch>${t("settings.customFields.description")}</p></div>${renderComponent($$result, "CustomFieldsManager", CustomFieldsManager, {
578
- "client:load": true,
579
- "data-astro-cid-2wrpkwch": true,
580
- "client:component-hydration": "load",
581
- "client:component-path": "/home/runner/work/cms/cms/apps/admin/src/components/apps/settings/CustomFieldsManager.tsx",
582
- "client:component-export": "CustomFieldsManager"
583
- })}</div>` })}`;
584
- }, "/home/runner/work/cms/cms/apps/admin/src/pages/settings/custom-fields.astro", void 0);
585
- var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/settings/custom-fields.astro";
586
- var $$url = "/settings/custom-fields";
587
- //#endregion
588
- //#region \0virtual:astro:page:src/pages/settings/custom-fields@_@astro
589
- var page = () => custom_fields_exports;
590
- //#endregion
591
- export { page };