@oktis-works/admin 0.4.20 → 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 (144) hide show
  1. package/dist/client/_astro/{ActivityWidget.BbEtaaM-.js → ActivityWidget.DaftIB1V.js} +2 -2
  2. package/dist/client/_astro/AdminBar.B-diRxPt.js +253 -0
  3. package/dist/client/_astro/{AtGlanceWidget.C1hpeDlx.js → AtGlanceWidget.q_xwhOJa.js} +3 -3
  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.CFzwh3Rc.js +1 -0
  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.sBNUxHjt.js +1 -0
  11. package/dist/client/_astro/{DashboardLayout.CGou4voc.css → DashboardLayout.cOPI1C7I.css} +1 -1
  12. package/dist/client/_astro/{Footer.rUGgtlfI.js → Footer.nQEKIcjo.js} +2 -2
  13. package/dist/client/_astro/GeneralSettings.C5lXnnvB.js +1 -0
  14. package/dist/client/_astro/LogsManager.BSXD0gFG.js +1 -0
  15. package/dist/client/_astro/MediaLibrary.9tlXDGsx.js +1 -0
  16. package/dist/client/_astro/MenuManager.CfLmtMhF.js +1 -0
  17. package/dist/client/_astro/PluginManager.Ba2R7ZVx.js +98 -0
  18. package/dist/client/_astro/PostTypesManager.DqbyhhLF.js +1 -0
  19. package/dist/client/_astro/QuickDraftWidget.J5LOLOY3.js +17 -0
  20. package/dist/client/_astro/ResourceHubs.sI10AY3z.js +1 -0
  21. package/dist/client/_astro/TaxonomiesManager.BFd3zjNe.js +1 -0
  22. package/dist/client/_astro/TaxonomyTermsManager.C7ClYXtt.js +1 -0
  23. package/dist/client/_astro/ThemeManager.C4t-yZay.js +129 -0
  24. package/dist/client/_astro/UserCreateForm.B-7pKOO6.js +1 -0
  25. package/dist/client/_astro/UsersManager.aI6-3vtM.js +1 -0
  26. package/dist/client/_astro/WebhooksManager.C3E91U9V.js +1 -0
  27. package/dist/client/_astro/api.DSIz0zxF.js +1 -0
  28. package/dist/client/_astro/ar.9BcNkJMI.js +1 -0
  29. package/dist/client/_astro/client.BDaUmf7m.js +1 -0
  30. package/dist/client/_astro/custom-fields.pl-GPt9A.css +1 -0
  31. package/dist/client/_astro/dist.BqeNZlzo.js +1 -0
  32. package/dist/client/_astro/es-ES.DgqDFCmG.js +1 -0
  33. package/dist/client/_astro/extensions.BD4YTWQq.js +1 -0
  34. package/dist/client/_astro/he.11dIJHQw.js +1 -0
  35. package/dist/client/_astro/i18n.Tk18hqHh.js +1 -0
  36. package/dist/client/_astro/it.yCdgk3Xj.js +1 -0
  37. package/dist/client/_astro/ja.BIm7Hwe_.js +1 -0
  38. package/dist/client/_astro/{login.astro_astro_type_script_index_0_lang.O-AlzgHd.js → login.astro_astro_type_script_index_0_lang.CJiWhdn-.js} +1 -1
  39. package/dist/client/_astro/lucide.DlU56wZ1.js +4 -0
  40. package/dist/client/_astro/pl.dUwrcITB.js +1 -0
  41. package/dist/client/_astro/pt-BR.BvjbjXKW.js +1 -0
  42. package/dist/client/_astro/rolldown-runtime.BpQH8Ho1.js +1 -0
  43. package/dist/client/_astro/ru.lmDiQaSu.js +1 -0
  44. package/dist/client/_astro/solid.TEtyrbLc.js +1 -0
  45. package/dist/client/_astro/sw._qHdoFbp.js +1 -0
  46. package/dist/client/_astro/tr.Do-lr98T.js +1 -0
  47. package/dist/client/_astro/uk.DTUX-N1c.js +1 -0
  48. package/dist/client/_astro/{version.BQq07lEn.js → version.Cvcb-3YL.js} +1 -1
  49. package/dist/client/_astro/web.C8wWxyYF.js +1 -0
  50. package/dist/client/_astro/yo.BIYG0J7I.js +1 -0
  51. package/dist/client/_astro/zh-CN.C7Iod1E1.js +1 -0
  52. package/dist/server/chunks/{ContentEditor_DS7flRjR.mjs → ContentEditor_Bz6HNlOl.mjs} +11 -31
  53. package/dist/server/chunks/{DashboardLayout_09DepSVn.mjs → DashboardLayout_DnvPikNH.mjs} +42 -17
  54. package/dist/server/chunks/MediaLibrary_CfwJY7WG.mjs +466 -0
  55. package/dist/server/chunks/{_slug__l8CTaLpP.mjs → _slug__Bf1zTrrT.mjs} +1 -1
  56. package/dist/server/chunks/access_Iqz1YRc2.mjs +138 -0
  57. package/dist/server/chunks/{ar_B0LfQbpu.mjs → ar_DlCzOUGe.mjs} +22 -2
  58. package/dist/server/chunks/custom-fields_HXTX5-i-.mjs +1297 -0
  59. package/dist/server/chunks/{edit_hSCrM2Gq.mjs → edit_ibDxQgfc.mjs} +2 -2
  60. package/dist/server/chunks/{es-ES_dBEm2FNw.mjs → es-ES_DD40B9Zr.mjs} +22 -2
  61. package/dist/server/chunks/{general_Ct9MU7b-.mjs → general_VinYjg7Y.mjs} +2 -2
  62. package/dist/server/chunks/{he_DRWoI1A5.mjs → he_8WSAyM_S.mjs} +22 -2
  63. package/dist/server/chunks/{i18n_BqFK0MIW.mjs → i18n_BgHPm3Sm.mjs} +337 -57
  64. package/dist/server/chunks/{index_CBfRX_VO.mjs → index_BIz2E9Ay.mjs} +3 -3
  65. package/dist/server/chunks/{index_uv0IHg8r.mjs → index_DmY8Cm8s.mjs} +2 -2
  66. package/dist/server/chunks/{index_DQ5pFuPN.mjs → index_DvyRjH_d.mjs} +2 -2
  67. package/dist/server/chunks/{index_Cv2j9xC_.mjs → index_WfuyDGIh.mjs} +2 -2
  68. package/dist/server/chunks/{index_B77wdzK2.mjs → index_kl5K78eg.mjs} +1 -1
  69. package/dist/server/chunks/{it_BDY3lerP.mjs → it_DEDC6yxf.mjs} +22 -2
  70. package/dist/server/chunks/{ja_C-EybQiV.mjs → ja_BRQi6rW3.mjs} +22 -2
  71. package/dist/server/chunks/{login_D-Z6bo6E.mjs → login_s3hMBW1K.mjs} +1 -1
  72. package/dist/server/chunks/logs_DUQUxzzy.mjs +160 -0
  73. package/dist/server/chunks/menus_CgKz8KBb.mjs +532 -0
  74. package/dist/server/chunks/{new_DpJfTahF.mjs → new_CU0A50ce.mjs} +2 -2
  75. package/dist/server/chunks/{new_XOnqlHm3.mjs → new_CZuza7Tx.mjs} +2 -2
  76. package/dist/server/chunks/{pl_DH5LKmVG.mjs → pl_CKanAk0F.mjs} +22 -2
  77. package/dist/server/chunks/plugins_fppkr9jv.mjs +133 -0
  78. package/dist/server/chunks/{post-types_DziideHh.mjs → post-types_BAWPD3pX.mjs} +2 -2
  79. package/dist/server/chunks/{pt-BR_CBnqy3xP.mjs → pt-BR_CoM1872j.mjs} +263 -13
  80. package/dist/server/chunks/{ru_CFa1xYFr.mjs → ru_CuNXt2MB.mjs} +22 -2
  81. package/dist/server/chunks/{sw_QZf7NSsI.mjs → sw_RLMWPkos.mjs} +22 -2
  82. package/dist/server/chunks/{taxonomies_Bc6xPaKp.mjs → taxonomies_BACV08DC.mjs} +2 -2
  83. package/dist/server/chunks/{taxonomy_Cv4_KTTL.mjs → taxonomy_CZLTclnV.mjs} +30 -15
  84. package/dist/server/chunks/themes_DHNmoF_s.mjs +132 -0
  85. package/dist/server/chunks/{tr_Fjry5R-K.mjs → tr_Dz8pqyTZ.mjs} +22 -2
  86. package/dist/server/chunks/{uk_Bxc3qY45.mjs → uk_BjwqlweA.mjs} +22 -2
  87. package/dist/server/chunks/{upload_CB_L9tkU.mjs → upload_BZgCqIbH.mjs} +2 -2
  88. package/dist/server/chunks/webhooks_D0qA5-De.mjs +300 -0
  89. package/dist/server/chunks/{yo_BARL-Qrh.mjs → yo_Dv14KWVR.mjs} +22 -2
  90. package/dist/server/chunks/{zh-CN_CkjPJL88.mjs → zh-CN_DjIZCWzG.mjs} +22 -2
  91. package/dist/server/entry.mjs +77 -50
  92. package/dist/server/virtual_astro_middleware.mjs +1 -1
  93. package/package.json +1 -1
  94. package/dist/client/_astro/AdminBar.CU2eba2D.js +0 -253
  95. package/dist/client/_astro/BaseLayout.Y8xW22CP.css +0 -1
  96. package/dist/client/_astro/ContentEditor.Bc5Jq8Dv.js +0 -1
  97. package/dist/client/_astro/ContentEditor.DvpaqJBD.js +0 -3
  98. package/dist/client/_astro/ContentTypeWorkspace.DakVi21h.js +0 -1
  99. package/dist/client/_astro/CustomFieldsManager.B7WOTvb7.js +0 -3
  100. package/dist/client/_astro/DashboardHome.CUfuLLDH.js +0 -1
  101. package/dist/client/_astro/DashboardLayout.astro_astro_type_script_index_0_lang.Dpnx6U2l.js +0 -4
  102. package/dist/client/_astro/FieldTypePicker.Cyfzqug-.js +0 -1
  103. package/dist/client/_astro/GeneralSettings.C4mnJ7P2.js +0 -1
  104. package/dist/client/_astro/MediaLibrary.2geQYfXB.js +0 -1
  105. package/dist/client/_astro/PluginManager.D3pm88iu.js +0 -93
  106. package/dist/client/_astro/PostTypesManager.Cyhr3VEJ.js +0 -1
  107. package/dist/client/_astro/QuickDraftWidget.CPljoS31.js +0 -17
  108. package/dist/client/_astro/ResourceHubs.DpCJERsJ.js +0 -1
  109. package/dist/client/_astro/TaxonomiesManager.P3bc-fnu.js +0 -1
  110. package/dist/client/_astro/TaxonomyTermsManager.BxP9gwm7.js +0 -1
  111. package/dist/client/_astro/ThemeManager.3MUOwqex.js +0 -129
  112. package/dist/client/_astro/UserCreateForm.C3RiEJEa.js +0 -1
  113. package/dist/client/_astro/UsersManager.DR9XR3FX.js +0 -1
  114. package/dist/client/_astro/api.25OAsWO0.js +0 -1
  115. package/dist/client/_astro/ar.CwC9hXB9.js +0 -1
  116. package/dist/client/_astro/client.W0NY0lEa.js +0 -1
  117. package/dist/client/_astro/custom-fields.IjuRIdAC.css +0 -1
  118. package/dist/client/_astro/es-ES.qNcd-cVX.js +0 -1
  119. package/dist/client/_astro/extensions.Bj86CHnv.js +0 -1
  120. package/dist/client/_astro/he.DfZ0ZzM-.js +0 -1
  121. package/dist/client/_astro/i18n.C24_pkIi.js +0 -1
  122. package/dist/client/_astro/it.PFmLQj2s.js +0 -1
  123. package/dist/client/_astro/ja.CMi5cD8g.js +0 -1
  124. package/dist/client/_astro/pl.CRExzLlj.js +0 -1
  125. package/dist/client/_astro/pt-BR.BPvwNpKR.js +0 -1
  126. package/dist/client/_astro/ru.CWV-tkZ3.js +0 -1
  127. package/dist/client/_astro/solid.DN8T1HsY.js +0 -1
  128. package/dist/client/_astro/src.Cq47pnsg.js +0 -1
  129. package/dist/client/_astro/sw.B5x6GU4s.js +0 -1
  130. package/dist/client/_astro/tr.BzxCGQu8.js +0 -1
  131. package/dist/client/_astro/uk.DJHMwNRU.js +0 -1
  132. package/dist/client/_astro/web.Bze9SKEA.js +0 -1
  133. package/dist/client/_astro/yo.DNw_hOnW.js +0 -1
  134. package/dist/client/_astro/zh-CN.Bs7H6Unx.js +0 -1
  135. package/dist/server/chunks/FieldTypePicker_CXwpmcQ3.mjs +0 -79
  136. package/dist/server/chunks/MediaLibrary_Xs09kLza.mjs +0 -335
  137. package/dist/server/chunks/ResourceHubs_Dwb0xyPZ.mjs +0 -453
  138. package/dist/server/chunks/access_D93W5BWD.mjs +0 -34
  139. package/dist/server/chunks/custom-fields_Dp7DHJ0M.mjs +0 -488
  140. package/dist/server/chunks/operations_0sYvzzNC.mjs +0 -34
  141. package/dist/server/chunks/plugins_Clk92l6Q.mjs +0 -156
  142. package/dist/server/chunks/resources_dPTDnpAf.mjs +0 -34
  143. package/dist/server/chunks/themes_BRtDtEK7.mjs +0 -155
  144. /package/dist/server/chunks/{BaseLayout_m8b8Eemd.mjs → BaseLayout_CXafpVV9.mjs} +0 -0
@@ -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, p as addAttribute, 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_BqFK0MIW.mjs";
5
- import { t as $$DashboardLayout } from "./DashboardLayout_09DepSVn.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, memo, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
7
7
  import { For, Show, createSignal, onMount } from "solid-js";
8
8
  //#region src/components/content/TaxonomyTermsManager.tsx
@@ -12,6 +12,11 @@ var _tmpl$ = [
12
12
  "</div>"
13
13
  ];
14
14
  var _tmpl$2 = [
15
+ "<button",
16
+ " class=\"btn\" type=\"button\">",
17
+ "</button>"
18
+ ];
19
+ var _tmpl$3 = [
15
20
  "<form",
16
21
  " class=\"card term-form\"><h3>",
17
22
  "</h3><label><!--$-->",
@@ -20,18 +25,19 @@ var _tmpl$2 = [
20
25
  "<!--/--><input class=\"input\"",
21
26
  "></label><label><!--$-->",
22
27
  "<!--/--><textarea class=\"input\" rows=\"3\"",
23
- "></textarea></label><button class=\"btn btn-primary\" type=\"submit\"",
28
+ "></textarea></label><div class=\"form-actions\"><button class=\"btn btn-primary\" type=\"submit\"",
24
29
  ">",
25
- "</button></form>"
30
+ "</button><!--$-->",
31
+ "<!--/--></div></form>"
26
32
  ];
27
- var _tmpl$3 = [
33
+ var _tmpl$4 = [
28
34
  "<table",
29
35
  " class=\"table\"><thead><tr><th>",
30
36
  "</th><th>",
31
37
  "</th><th></th></tr></thead><tbody>",
32
38
  "</tbody></table>"
33
39
  ];
34
- var _tmpl$4 = [
40
+ var _tmpl$5 = [
35
41
  "<div",
36
42
  " class=\"card\"><div class=\"card-header\"><div><h3>",
37
43
  "</h3><p class=\"muted\">",
@@ -39,23 +45,24 @@ var _tmpl$4 = [
39
45
  "</span></div><!--$-->",
40
46
  "<!--/--></div>"
41
47
  ];
42
- var _tmpl$5 = [
48
+ var _tmpl$6 = [
43
49
  "<div",
44
50
  " class=\"terms-panel\"><!--$-->",
45
51
  "<!--/--><!--$-->",
46
52
  "<!--/--><!--$-->",
47
53
  "<!--/--></div>"
48
54
  ];
49
- var _tmpl$6 = [
55
+ var _tmpl$7 = [
50
56
  "<p",
51
57
  " class=\"muted\">",
52
58
  "</p>"
53
59
  ];
54
- var _tmpl$7 = [
60
+ var _tmpl$8 = [
55
61
  "<tr",
56
62
  "><td>",
57
63
  "</td><td>",
58
- "</td><td><button class=\"btn btn-danger btn-sm\" type=\"button\">",
64
+ "</td><td><button class=\"btn btn-secondary btn-sm\" type=\"button\">",
65
+ "</button> <button class=\"btn btn-danger btn-sm\" type=\"button\">",
59
66
  "</button></td></tr>"
60
67
  ];
61
68
  function TaxonomyTermsManager(props) {
@@ -65,6 +72,7 @@ function TaxonomyTermsManager(props) {
65
72
  const [name, setName] = createSignal("");
66
73
  const [slug, setSlug] = createSignal("");
67
74
  const [description, setDescription] = createSignal("");
75
+ const [editingId, setEditingId] = createSignal(null);
68
76
  const [error, setError] = createSignal("");
69
77
  const [saving, setSaving] = createSignal(false);
70
78
  const load = async () => {
@@ -78,7 +86,7 @@ function TaxonomyTermsManager(props) {
78
86
  }
79
87
  };
80
88
  onMount(load);
81
- return ssr(_tmpl$5, ssrHydrationKey(), escape(createComponent(Show, {
89
+ return ssr(_tmpl$6, ssrHydrationKey(), escape(createComponent(Show, {
82
90
  get when() {
83
91
  return error();
84
92
  },
@@ -97,19 +105,26 @@ function TaxonomyTermsManager(props) {
97
105
  return taxonomy();
98
106
  },
99
107
  get children() {
100
- return [ssr(_tmpl$2, ssrHydrationKey(), escape(t("content.taxonomy.addTerm")), escape(t("content.taxonomy.name")), ssrAttribute("value", escape(name(), true), false), escape(t("content.taxonomy.slug")), ssrAttribute("value", escape(slug(), true), false), escape(t("content.taxonomy.description")), ssrAttribute("value", escape(description(), true), false), ssrAttribute("disabled", saving(), true), escape(t("content.taxonomy.add"))), ssr(_tmpl$4, ssrHydrationKey(), escape(taxonomy().name), props.contentType ? `${escape(t("content.taxonomy.attachedTo"))}: ${escape(props.contentType)}` : escape(t("content.taxonomy.descriptionHint")), escape(terms().length), escape(createComponent(Show, {
108
+ return [ssr(_tmpl$3, ssrHydrationKey(), editingId() ? escape(t("content.taxonomy.editTerm")) : escape(t("content.taxonomy.addTerm")), escape(t("content.taxonomy.name")), ssrAttribute("value", escape(name(), true), false), escape(t("content.taxonomy.slug")), ssrAttribute("value", escape(slug(), true), false), escape(t("content.taxonomy.description")), ssrAttribute("value", escape(description(), true), false), ssrAttribute("disabled", saving(), true), editingId() ? escape(t("common.save")) : escape(t("content.taxonomy.add")), escape(createComponent(Show, {
109
+ get when() {
110
+ return editingId();
111
+ },
112
+ get children() {
113
+ return ssr(_tmpl$2, ssrHydrationKey(), escape(t("common.cancel")));
114
+ }
115
+ }))), ssr(_tmpl$5, ssrHydrationKey(), escape(taxonomy().name), props.contentType ? `${escape(t("content.taxonomy.attachedTo"))}: ${escape(props.contentType)}` : escape(t("content.taxonomy.descriptionHint")), escape(terms().length), escape(createComponent(Show, {
101
116
  get when() {
102
117
  return terms().length > 0;
103
118
  },
104
119
  get fallback() {
105
- return ssr(_tmpl$6, ssrHydrationKey(), escape(t("content.taxonomy.empty")));
120
+ return ssr(_tmpl$7, ssrHydrationKey(), escape(t("content.taxonomy.empty")));
106
121
  },
107
122
  get children() {
108
- return ssr(_tmpl$3, ssrHydrationKey(), escape(t("content.taxonomy.name")), escape(t("content.taxonomy.slug")), escape(createComponent(For, {
123
+ return ssr(_tmpl$4, ssrHydrationKey(), escape(t("content.taxonomy.name")), escape(t("content.taxonomy.slug")), escape(createComponent(For, {
109
124
  get each() {
110
125
  return terms();
111
126
  },
112
- children: (term) => ssr(_tmpl$7, ssrHydrationKey(), escape(term.name), escape(term.slug), escape(t("content.taxonomy.delete")))
127
+ children: (term) => ssr(_tmpl$8, ssrHydrationKey(), escape(term.name), escape(term.slug), escape(t("common.edit")), escape(t("content.taxonomy.delete")))
113
128
  })));
114
129
  }
115
130
  })))];
@@ -0,0 +1,132 @@
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_BgHPm3Sm.mjs";
5
+ import { t as $$DashboardLayout } from "./DashboardLayout_DnvPikNH.mjs";
6
+ import { createComponent, escape, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
7
+ import { For, createSignal, onMount } from "solid-js";
8
+ //#region src/components/apps/themes/ThemeManager.tsx
9
+ var _tmpl$ = [
10
+ "<div",
11
+ " class=\"theme-manager\"><div class=\"page-header\"><h2>",
12
+ "</h2><p class=\"page-description\">",
13
+ "</p><p class=\"page-hint\">",
14
+ "</p></div><!--$-->",
15
+ "<!--/--><!--$-->",
16
+ "<!--/--><!--$-->",
17
+ "<!--/--><style>\n .page-header {\n margin-bottom: 1.5rem;\n }\n .page-header h2 {\n margin: 0 0 0.5rem;\n font-size: 1.5rem;\n font-weight: 600;\n }\n .page-description {\n margin: 0;\n color: var(--color-muted);\n font-size: 0.875rem;\n }\n .page-hint {\n margin: 0.35rem 0 0;\n color: var(--color-muted);\n font-size: 0.75rem;\n }\n .themes-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 1.5rem;\n }\n .theme-card {\n background: var(--color-surface);\n border: 1px solid var(--color-border);\n border-radius: var(--radius-lg);\n padding: 1.5rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n transition: all 0.2s;\n }\n .theme-card:hover {\n border-color: var(--color-primary);\n box-shadow: var(--shadow-md);\n }\n .theme-card.active {\n border-color: var(--color-primary);\n box-shadow: 0 0 0 1px var(--color-primary), var(--shadow-md);\n }\n .theme-preview {\n position: relative;\n }\n .theme-badge {\n position: absolute;\n top: 0.5rem;\n right: 0.5rem;\n background: var(--color-primary);\n color: var(--color-primary-contrast);\n padding: 0.25rem 0.5rem;\n border-radius: var(--radius-full);\n font-size: 0.625rem;\n font-weight: 700;\n text-transform: uppercase;\n }\n .theme-info {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n }\n .theme-info h3 {\n margin: 0;\n font-size: 1.125rem;\n font-weight: 600;\n }\n .theme-version {\n margin: 0;\n font-size: 0.75rem;\n color: var(--color-muted);\n }\n .theme-desc {\n margin: 0;\n font-size: 0.8125rem;\n color: var(--color-text);\n line-height: 1.5;\n }\n .theme-status {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n }\n .status-badge {\n display: inline-flex;\n align-items: center;\n padding: 0.25rem 0.5rem;\n border-radius: var(--radius-full);\n font-size: 0.625rem;\n font-weight: 600;\n text-transform: uppercase;\n }\n .status-active {\n background: var(--color-success-soft);\n color: var(--color-success);\n }\n .status-installed {\n background: var(--color-primary-soft);\n color: var(--color-primary);\n }\n .status-inactive {\n background: var(--color-muted-soft);\n color: var(--color-muted);\n }\n .theme-actions {\n margin-top: 0.5rem;\n }\n .empty-state {\n grid-column: 1 / -1;\n padding: 3rem;\n text-align: center;\n color: var(--color-muted);\n }\n .alert {\n padding: 0.75rem 1rem;\n border-radius: var(--radius-md);\n margin-bottom: 1rem;\n }\n .alert-error {\n background: var(--color-error-soft);\n color: var(--color-error);\n border: 1px solid var(--color-error);\n }\n .skeleton {\n padding: 2rem;\n text-align: center;\n color: var(--color-muted);\n }\n </style></div>"
18
+ ];
19
+ var _tmpl$2 = [
20
+ "<div",
21
+ " class=\"alert alert-error\">",
22
+ "</div>"
23
+ ];
24
+ var _tmpl$3 = ["<div", " class=\"skeleton\">Loading...</div>"];
25
+ var _tmpl$4 = [
26
+ "<div",
27
+ " class=\"themes-grid\"><!--$-->",
28
+ "<!--/--><!--$-->",
29
+ "<!--/--></div>"
30
+ ];
31
+ var _tmpl$5 = [
32
+ "<div",
33
+ " class=\"",
34
+ "\"><div class=\"theme-preview\">",
35
+ "</div><div class=\"theme-info\"><h3>",
36
+ "</h3><p class=\"theme-version\"><!--$-->",
37
+ "<!--/-->: <!--$-->",
38
+ "<!--/--></p><p class=\"theme-status\"><span class=\"",
39
+ "\">",
40
+ "</span></p><!--$-->",
41
+ "<!--/--></div><div class=\"theme-actions\"><button class=\"",
42
+ "\"",
43
+ ">",
44
+ "</button></div></div>"
45
+ ];
46
+ var _tmpl$6 = [
47
+ "<div",
48
+ " class=\"theme-badge active-badge\">",
49
+ "</div>"
50
+ ];
51
+ var _tmpl$7 = [
52
+ "<p",
53
+ " class=\"theme-desc\">",
54
+ "</p>"
55
+ ];
56
+ var _tmpl$8 = [
57
+ "<div",
58
+ " class=\"empty-state\">",
59
+ "</div>"
60
+ ];
61
+ function ThemeManager() {
62
+ const { t } = useTranslation();
63
+ const [themes, setThemes] = createSignal([]);
64
+ const [loading, setLoading] = createSignal(true);
65
+ const [error, setError] = createSignal(null);
66
+ const [toggling, setToggling] = createSignal(null);
67
+ onMount(async () => {
68
+ await loadThemes();
69
+ });
70
+ async function loadThemes() {
71
+ try {
72
+ setLoading(true);
73
+ const data = await apiClient.getThemes();
74
+ setThemes(data);
75
+ } catch {
76
+ setError(t("themes.loadError"));
77
+ } finally {
78
+ setLoading(false);
79
+ }
80
+ }
81
+ const getStatusLabel = (status) => {
82
+ switch (status) {
83
+ case "ACTIVE": return t("themes.status.active");
84
+ case "INSTALLED": return t("themes.status.installed");
85
+ case "INACTIVE": return t("themes.status.inactive");
86
+ default: return status;
87
+ }
88
+ };
89
+ const getStatusClass = (status) => {
90
+ switch (status) {
91
+ case "ACTIVE": return "status-active";
92
+ case "INSTALLED": return "status-installed";
93
+ case "INACTIVE": return "status-inactive";
94
+ default: return "";
95
+ }
96
+ };
97
+ return ssr(_tmpl$, ssrHydrationKey(), escape(t("themes.title")), escape(t("themes.description")), escape(t("themes.directoryHint")), error() && ssr(_tmpl$2, ssrHydrationKey(), escape(error())), loading() && _tmpl$3[0] + ssrHydrationKey() + _tmpl$3[1], !loading() && !error() && ssr(_tmpl$4, ssrHydrationKey(), escape(createComponent(For, {
98
+ get each() {
99
+ return themes();
100
+ },
101
+ children: (theme) => ssr(_tmpl$5, ssrHydrationKey(), `theme-card ${theme.status === "ACTIVE" ? "active" : ""}`, theme.manifest?.name && ssr(_tmpl$6, ssrHydrationKey(), escape(t("themes.active"))), escape(theme.name), escape(t("themes.version")), escape(theme.version), `status-badge ${escape(getStatusClass(theme.status), true)}`, escape(getStatusLabel(theme.status)), theme.manifest?.description && ssr(_tmpl$7, ssrHydrationKey(), escape(theme.manifest.description)), `btn ${toggling() === theme.id ? "btn-loading" : ""}`, ssrAttribute("disabled", toggling() !== null, true), theme.status === "ACTIVE" ? escape(t("themes.deactivate")) : escape(t("themes.activate")))
102
+ })), themes().length === 0 && ssr(_tmpl$8, ssrHydrationKey(), escape(t("themes.empty")))));
103
+ }
104
+ //#endregion
105
+ //#region src/pages/themes.astro
106
+ var themes_exports = /* @__PURE__ */ __exportAll({
107
+ default: () => $$Themes,
108
+ file: () => $$file,
109
+ url: () => $$url
110
+ });
111
+ createAstro("https://astro.build");
112
+ var $$Themes = createComponent$1(($$result, $$props, $$slots) => {
113
+ const Astro = $$result.createAstro($$props, $$slots);
114
+ Astro.self = $$Themes;
115
+ const { t } = Astro.locals;
116
+ return renderTemplate`${renderComponent($$result, "DashboardLayout", $$DashboardLayout, {
117
+ "title": t("themes.title"),
118
+ "description": t("themes.description")
119
+ }, { "default": ($$result) => renderTemplate`${renderComponent($$result, "ThemeManager", ThemeManager, {
120
+ "client:load": true,
121
+ "client:component-hydration": "load",
122
+ "client:component-path": "/home/runner/work/cms/cms/apps/admin/src/components/apps/themes/ThemeManager.tsx",
123
+ "client:component-export": "ThemeManager"
124
+ })}` })}`;
125
+ }, "/home/runner/work/cms/cms/apps/admin/src/pages/themes.astro", void 0);
126
+ var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/themes.astro";
127
+ var $$url = "/themes";
128
+ //#endregion
129
+ //#region \0virtual:astro:page:src/pages/themes@_@astro
130
+ var page = () => themes_exports;
131
+ //#endregion
132
+ export { page };
@@ -7,6 +7,7 @@ var layout = {
7
7
  "content": "İçerik",
8
8
  "media": "Medya",
9
9
  "users": "Kullanıcılar",
10
+ "menus": "Menüler",
10
11
  "settings": "Ayarlar",
11
12
  "plugins": "Eklentiler",
12
13
  "themes": "Temalar"
@@ -122,7 +123,25 @@ var content = {
122
123
  "inspectTypes": "Mevcut türleri incele",
123
124
  "save": "Kaydet",
124
125
  "saved": "İçerik başarıyla kaydedildi."
125
- }
126
+ },
127
+ "taxonomy": { "editTerm": "Terimi düzenle" }
128
+ };
129
+ var menus = {
130
+ "title": "Menüler",
131
+ "description": "Sitenizde kullanılan gezinme menülerini oluşturun ve yönetin.",
132
+ "hint": "Menüler içerik türlerinden bağımsızdır ve temanız tarafından görüntülenebilir.",
133
+ "new": "Yeni menü",
134
+ "create": "Menü oluştur",
135
+ "edit": "Menüyü düzenle",
136
+ "name": "Ad",
137
+ "slug": "Slug",
138
+ "items": "Menü öğeleri (JSON)",
139
+ "itemsHint": "Menü öğesi nesnelerinden oluşan bir JSON dizisi kullanın.",
140
+ "invalidItems": "Menü öğeleri geçerli bir JSON dizisi olmalıdır.",
141
+ "saved": "Menü kaydedildi.",
142
+ "deleted": "Menü silindi.",
143
+ "empty": "Henüz menü yok.",
144
+ "confirmDelete": "\"{name}\" menüsü silinsin mi?"
126
145
  };
127
146
  var media = {
128
147
  "title": "Medya Kütüphanesi",
@@ -395,6 +414,7 @@ var tr_default = {
395
414
  layout,
396
415
  dashboard,
397
416
  content,
417
+ menus,
398
418
  media,
399
419
  users,
400
420
  settings,
@@ -407,4 +427,4 @@ var tr_default = {
407
427
  screenOptions
408
428
  };
409
429
  //#endregion
410
- export { activity, adminBar, common, content, dashboard, tr_default as default, footer, helpTabs, layout, login, media, screenOptions, settings, users };
430
+ export { activity, adminBar, common, content, dashboard, tr_default as default, footer, helpTabs, layout, login, media, menus, screenOptions, settings, users };
@@ -7,6 +7,7 @@ var layout = {
7
7
  "content": "Контент",
8
8
  "media": "Медіа",
9
9
  "users": "Користувачі",
10
+ "menus": "Меню",
10
11
  "settings": "Налаштування",
11
12
  "plugins": "Плагіни",
12
13
  "themes": "Теми"
@@ -122,7 +123,25 @@ var content = {
122
123
  "inspectTypes": "Переглянути доступні типи",
123
124
  "save": "Зберегти",
124
125
  "saved": "Контент успішно збережено."
125
- }
126
+ },
127
+ "taxonomy": { "editTerm": "Редагувати термін" }
128
+ };
129
+ var menus = {
130
+ "title": "Меню",
131
+ "description": "Створюйте та керуйте навігаційними меню сайту.",
132
+ "hint": "Меню незалежні від типів контенту і можуть відображатися темою.",
133
+ "new": "Нове меню",
134
+ "create": "Створити меню",
135
+ "edit": "Редагувати меню",
136
+ "name": "Назва",
137
+ "slug": "Slug",
138
+ "items": "Елементи меню (JSON)",
139
+ "itemsHint": "Використовуйте JSON-масив об'єктів елементів меню.",
140
+ "invalidItems": "Елементи меню мають бути коректним JSON-масивом.",
141
+ "saved": "Меню збережено.",
142
+ "deleted": "Меню видалено.",
143
+ "empty": "Меню ще немає.",
144
+ "confirmDelete": "Видалити меню \"{name}\"?"
126
145
  };
127
146
  var media = {
128
147
  "title": "Медіатека",
@@ -395,6 +414,7 @@ var uk_default = {
395
414
  layout,
396
415
  dashboard,
397
416
  content,
417
+ menus,
398
418
  media,
399
419
  users,
400
420
  settings,
@@ -407,4 +427,4 @@ var uk_default = {
407
427
  screenOptions
408
428
  };
409
429
  //#endregion
410
- export { activity, adminBar, common, content, dashboard, uk_default as default, footer, helpTabs, layout, login, media, screenOptions, settings, users };
430
+ export { activity, adminBar, common, content, dashboard, uk_default as default, footer, helpTabs, layout, login, media, menus, screenOptions, settings, users };
@@ -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 } from "./compiler_O7J1rlsi.mjs";
4
- import { t as $$DashboardLayout } from "./DashboardLayout_09DepSVn.mjs";
5
- import { t as MediaLibrary } from "./MediaLibrary_Xs09kLza.mjs";
4
+ import { t as $$DashboardLayout } from "./DashboardLayout_DnvPikNH.mjs";
5
+ import { t as MediaLibrary } from "./MediaLibrary_CfwJY7WG.mjs";
6
6
  //#region src/pages/media/upload.astro
7
7
  var upload_exports = /* @__PURE__ */ __exportAll({
8
8
  default: () => $$Upload,