@chaibuilder/sdk 4.0.0-beta.1 → 4.0.0-beta.3

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 (184) hide show
  1. package/README.md +27 -20
  2. package/dist/2SSKDMRQ-BnsZi3K3.cjs +1 -0
  3. package/dist/2SSKDMRQ-CnSDkQcy.js +42 -0
  4. package/dist/AP7HFJJL-B31839PG.cjs +1228 -0
  5. package/dist/AP7HFJJL-CymCmW14.js +9214 -0
  6. package/dist/IconPicker-B1rWC-Ex.js +59 -0
  7. package/dist/IconPicker-DREyo007.cjs +1 -0
  8. package/dist/WDYDFRGG-BUVnbAci.js +33 -0
  9. package/dist/WDYDFRGG-BxhOCHc3.cjs +1 -0
  10. package/dist/_commonjsHelpers-C6fGbg64.js +6 -0
  11. package/dist/_commonjsHelpers-DwGv2jUC.cjs +1 -0
  12. package/dist/actions-registery-CZ1w0NKa.js +15545 -0
  13. package/dist/actions-registery-YnFmU21O.cjs +418 -0
  14. package/dist/actions.cjs +1 -0
  15. package/dist/actions.d.ts +3202 -0
  16. package/dist/actions.js +216 -0
  17. package/dist/active-in-another-tab-B47YjQGN.cjs +1 -0
  18. package/dist/active-in-another-tab-CyjngVA6.js +34 -0
  19. package/dist/add-new-language-page-88xzrUy8.cjs +1 -0
  20. package/dist/add-new-language-page-WmlCnytQ.js +401 -0
  21. package/dist/add-new-page-VW2wAYZp.js +31 -0
  22. package/dist/add-new-page-soZ8GAkN.cjs +1 -0
  23. package/dist/ai-panel-content-7zCil042.cjs +1 -0
  24. package/dist/ai-panel-content-D_o7Q_A-.js +61 -0
  25. package/dist/ai-panel-default-lang-COYaxNwn.cjs +3 -0
  26. package/dist/ai-panel-default-lang-DnElspF0.js +341 -0
  27. package/dist/ai-panel-other-lang-CkynNlAU.cjs +1 -0
  28. package/dist/ai-panel-other-lang-Dp0E9_Hx.js +162 -0
  29. package/dist/ai-prompt-input-Bhc0ds7X.js +655 -0
  30. package/dist/ai-prompt-input-CThbVp0_.cjs +1 -0
  31. package/dist/ai-translation-prompt-C2kJQFDX.cjs +1 -0
  32. package/dist/ai-translation-prompt-CZ55HQmo.js +28 -0
  33. package/dist/apply-binding-6iwlED02.js +833 -0
  34. package/dist/apply-binding-KKp5PnpZ.cjs +1 -0
  35. package/dist/code-display-BnqzqzoP.cjs +1 -0
  36. package/dist/{code-display-337R7Dev.js → code-display-DhD_RBcg.js} +1 -1
  37. package/dist/code-editor-DRIAnNbb.js +50 -0
  38. package/dist/code-editor-o3___nu2.cjs +1 -0
  39. package/dist/common-functions-B3a4xKt_.cjs +1 -0
  40. package/dist/common-functions-D2lMFR6K.js +13 -0
  41. package/dist/continue-editing-in-this-client-CS2aQ7yY.js +24 -0
  42. package/dist/continue-editing-in-this-client-CtMYsk-A.cjs +1 -0
  43. package/dist/core-BoRDjj4h.cjs +1 -0
  44. package/dist/core-yvI6kCyw.js +56 -0
  45. package/dist/core.cjs +1 -1
  46. package/dist/core.d.ts +51 -383
  47. package/dist/core.js +39 -106
  48. package/dist/{css-import-modal-DA2L6kwP.js → css-import-modal-Byg6wV0O.js} +36 -36
  49. package/dist/css-import-modal-CyqkXWCO.cjs +13 -0
  50. package/dist/delete-design-token-BRZZiWtQ.js +40 -0
  51. package/dist/delete-design-token-DkVs1oBf.cjs +1 -0
  52. package/dist/delete-page-BzyX9TN-.js +70 -0
  53. package/dist/delete-page-DxX7PFIE.cjs +1 -0
  54. package/dist/design-token-usage-CAHzEGgJ.cjs +1 -0
  55. package/dist/design-token-usage-xQs6SlaJ.js +113 -0
  56. package/dist/digital-asset-manager--uO8Agia.cjs +1 -0
  57. package/dist/digital-asset-manager-DbtwzxRz.js +876 -0
  58. package/dist/duplicate-page-BR7Dlo9d.js +133 -0
  59. package/dist/duplicate-page-CaNAbXwV.cjs +1 -0
  60. package/dist/dynamic-page-selector-Cb5r_W8s.js +85 -0
  61. package/dist/dynamic-page-selector-Cxk_gjni.cjs +1 -0
  62. package/dist/fonts-B-Xt29pe.cjs +1 -0
  63. package/dist/fonts-DRly3Wzd.js +78 -0
  64. package/dist/{get-chai-builder-tailwind-config-C6MHaUM0.cjs → get-chai-builder-tailwind-config-B9rCyiQo.cjs} +1 -1
  65. package/dist/{get-chai-builder-tailwind-config-BqaIvg8p.js → get-chai-builder-tailwind-config-DjoVOuAf.js} +13 -10
  66. package/dist/{get-chai-builder-theme-D0IsUvK4.js → get-chai-builder-theme-BYtp20KD.js} +4 -4
  67. package/dist/get-chai-builder-theme-Dl72X7cz.cjs +1 -0
  68. package/dist/get-seo-defaults-9zHebckY.js +65 -0
  69. package/dist/get-seo-defaults-Cw7vFt-B.cjs +1 -0
  70. package/dist/image-compression-DZ9WMmyn.cjs +1 -0
  71. package/dist/image-compression-DsZ1oqpb.js +37 -0
  72. package/dist/image-editor-DV8kUKhl.js +108 -0
  73. package/dist/image-editor-G-K28aTS.cjs +1 -0
  74. package/dist/index-B-rSiAp_.cjs +1 -0
  75. package/dist/index-Ct7ElCGK.js +19069 -0
  76. package/dist/index-DF5DEvqb.cjs +160 -0
  77. package/dist/index-Dxfyt4d4.js +39 -0
  78. package/dist/index-WQwzsC7A.cjs +5 -0
  79. package/dist/index-ZuacEL1j.js +4732 -0
  80. package/dist/json-diff-viewer-D7z4zNvv.cjs +8 -0
  81. package/dist/json-diff-viewer-krslPepD.js +258 -0
  82. package/dist/lang-panel-BwIewMyw.js +215 -0
  83. package/dist/lang-panel-DT96k1xg.cjs +1 -0
  84. package/dist/manage-design-tokens-Caz_20VK.js +240 -0
  85. package/dist/manage-design-tokens-CrmLe7UT.cjs +1 -0
  86. package/dist/mark-as-template-D295ZQtU.js +156 -0
  87. package/dist/mark-as-template-W3LmpiqN.cjs +1 -0
  88. package/dist/models-5gOsRC56.cjs +1 -0
  89. package/dist/models-D95ZYr_x.js +70 -0
  90. package/dist/nested-path-selector-content-CKYYK-C5.js +87 -0
  91. package/dist/nested-path-selector-content-CoS_d3dc.cjs +1 -0
  92. package/dist/no-language-page-content-BvqRBP6y.js +42 -0
  93. package/dist/no-language-page-content-DkfeMl90.cjs +1 -0
  94. package/dist/no-language-page-dialog-BcEoqyQB.cjs +1 -0
  95. package/dist/no-language-page-dialog-PjNqTUpl.js +10 -0
  96. package/dist/page-creator-C4gc5NSC.cjs +1 -0
  97. package/dist/page-creator-DiOITEMw.js +795 -0
  98. package/dist/page-lock-BdYmCks0.cjs +1 -0
  99. package/dist/page-lock-Bfbs6RgL.js +30 -0
  100. package/dist/page-locked-dialog-B1FAtK92.cjs +1 -0
  101. package/dist/page-locked-dialog-B6MKTRfY.js +133 -0
  102. package/dist/page-manager-new-CHDueBDk.cjs +1 -0
  103. package/dist/page-manager-new-CzX22g2n.js +394 -0
  104. package/dist/page-manager-search-and-filter-CM0UMb6U.js +201 -0
  105. package/dist/page-manager-search-and-filter-DkkRIH86.cjs +1 -0
  106. package/dist/page-revisions-content-ChY-4f2V.cjs +1 -0
  107. package/dist/page-revisions-content-NH9JK4Ey.js +445 -0
  108. package/dist/pages.cjs +1 -0
  109. package/dist/pages.d.ts +491 -0
  110. package/dist/pages.js +27 -0
  111. package/dist/plugin-3ZKK6RXm.js +245 -0
  112. package/dist/plugin-C6rgJDNQ.cjs +22 -0
  113. package/dist/publish-pages-content-D9aixMN5.js +178 -0
  114. package/dist/publish-pages-content-x-JuSFJ9.cjs +1 -0
  115. package/dist/register-partial-type-BjtdfKHE.js +36 -0
  116. package/dist/register-partial-type-ig9fUWIJ.cjs +1 -0
  117. package/dist/render.cjs +2 -2
  118. package/dist/render.d.ts +26 -13
  119. package/dist/render.js +130 -124
  120. package/dist/rte-widget-modal-BaHIuEjF.cjs +1 -0
  121. package/dist/rte-widget-modal-DOJEXLIf.js +38 -0
  122. package/dist/runtime.cjs +1 -1
  123. package/dist/runtime.d.ts +306 -7
  124. package/dist/runtime.js +44 -1
  125. package/dist/save-to-lib-Cgpxw8-g.cjs +1 -0
  126. package/dist/save-to-lib-eiOc_SSN.js +422 -0
  127. package/dist/sdk.css +1 -1
  128. package/dist/selected-block-display-BgRY82CT.cjs +16 -0
  129. package/dist/selected-block-display-CBFePS19.js +319 -0
  130. package/dist/seo-panel-C1-iMOR1.js +798 -0
  131. package/dist/seo-panel-DfAb8U7W.cjs +2 -0
  132. package/dist/shared-json-ld-B4PxAM_0.js +565 -0
  133. package/dist/shared-json-ld-DzG398hr.cjs +1 -0
  134. package/dist/slug-input-AwNJs9im.js +86 -0
  135. package/dist/slug-input-C_ijLQ_X.cjs +1 -0
  136. package/dist/supabase-actions.cjs +1 -0
  137. package/dist/supabase-actions.d.ts +284 -0
  138. package/dist/supabase-actions.js +524 -0
  139. package/dist/take-over-request-BNxcjY2j.cjs +1 -0
  140. package/dist/take-over-request-C4FeDtN_.js +63 -0
  141. package/dist/theme-panel-footer-Cq9pljro.cjs +1 -0
  142. package/dist/theme-panel-footer-uBQqSJXm.js +25 -0
  143. package/dist/translation-warning-modal-B64YqlbI.js +26 -0
  144. package/dist/translation-warning-modal-BZAcwM2_.cjs +1 -0
  145. package/dist/unmark-as-template-CZ9sQp_P.js +39 -0
  146. package/dist/unmark-as-template-EVvk0vmp.cjs +1 -0
  147. package/dist/unpublish-page-D4VwOlxc.js +27 -0
  148. package/dist/unpublish-page-bdSmwAVQ.cjs +1 -0
  149. package/dist/use-page-expand-manager-B6XTvk0E.cjs +1 -0
  150. package/dist/use-page-expand-manager-Cf4MUEJw.js +85 -0
  151. package/dist/{tailwind.cjs → utils.cjs} +1 -1
  152. package/dist/{tailwind.d.ts → utils.d.ts} +12 -11
  153. package/dist/utils.js +7 -0
  154. package/dist/web-blocks.cjs +1 -1
  155. package/dist/web-blocks.d.ts +0 -6
  156. package/dist/web-blocks.js +248 -241
  157. package/dist/web-preview-Cio70gk5.cjs +1 -0
  158. package/dist/web-preview-Djy6WIyj.js +73 -0
  159. package/package.json +175 -105
  160. package/dist/IconPicker-CGWn9C4u.cjs +0 -1
  161. package/dist/IconPicker-QvxJ-4Ez.js +0 -64
  162. package/dist/apply-binding-DCno1xQL.js +0 -711
  163. package/dist/apply-binding-DvHNFLQD.cjs +0 -1
  164. package/dist/code-display-BZ1x7SqI.cjs +0 -1
  165. package/dist/code-editor-B28LoECM.cjs +0 -1
  166. package/dist/code-editor-CfG2FhJ-.js +0 -58
  167. package/dist/common-functions-BGzDsf1z.js +0 -14
  168. package/dist/common-functions-BZmyleS1.cjs +0 -1
  169. package/dist/css-import-modal-CENUYvcl.cjs +0 -13
  170. package/dist/get-chai-builder-theme-Ck_Z4Q-M.cjs +0 -1
  171. package/dist/index-CaGNHF7f.js +0 -12209
  172. package/dist/index-Gn6pJt2v.cjs +0 -166
  173. package/dist/mockServiceWorker.js +0 -307
  174. package/dist/plugin-B5627hMN.js +0 -195
  175. package/dist/plugin-UxTRfDum.cjs +0 -22
  176. package/dist/rte-widget-modal-DL739qeQ.cjs +0 -1
  177. package/dist/rte-widget-modal-Dte0od04.js +0 -41
  178. package/dist/tailwind.js +0 -7
  179. package/dist/tooltip-A4qGk781.cjs +0 -1
  180. package/dist/tooltip-tLiIOgjq.js +0 -1067
  181. package/dist/ui.cjs +0 -1
  182. package/dist/ui.d.ts +0 -415
  183. package/dist/ui.js +0 -129
  184. package/dist/vite.svg +0 -1
@@ -0,0 +1,216 @@
1
+ import { g as u, A as h } from "./actions-registery-CZ1w0NKa.js";
2
+ import { a as b, d as y, b as A, s as S, c as v } from "./actions-registery-CZ1w0NKa.js";
3
+ const c = (r) => async (s) => {
4
+ const { apiKey: o, userId: t } = r;
5
+ try {
6
+ const a = s, { action: e, data: n } = a, i = u(e);
7
+ return i ? i.validate(n) ? (i.setContext({ appId: o, userId: t }), await i.execute(n)) : {
8
+ error: `Validation failed: ${i.getValidationErrors(n)}`,
9
+ code: "INVALID_REQUEST_DATA",
10
+ status: 400
11
+ } : {
12
+ error: `Action ${e} not found`,
13
+ code: "ACTION_NOT_FOUND",
14
+ status: 404
15
+ };
16
+ } catch (a) {
17
+ return console.log("Error in builderApiHandler:", a), a instanceof h ? { error: a.message, code: a.code, status: 400 } : { error: "Something went wrong.", status: 500 };
18
+ }
19
+ }, d = {
20
+ ab: "Abkhazian",
21
+ aa: "Afar",
22
+ af: "Afrikaans",
23
+ ak: "Akan",
24
+ sq: "Albanian",
25
+ am: "Amharic",
26
+ ar: "Arabic",
27
+ an: "Aragonese",
28
+ hy: "Armenian",
29
+ as: "Assamese",
30
+ av: "Avaric",
31
+ ae: "Avestan",
32
+ ay: "Aymara",
33
+ az: "Azerbaijani",
34
+ bm: "Bambara",
35
+ ba: "Bashkir",
36
+ eu: "Basque",
37
+ be: "Belarusian",
38
+ bn: "Bengali",
39
+ bh: "Bihari",
40
+ bi: "Bislama",
41
+ bs: "Bosnian",
42
+ br: "Breton",
43
+ bg: "Bulgarian",
44
+ my: "Burmese",
45
+ ca: "Catalan",
46
+ ch: "Chamorro",
47
+ ce: "Chechen",
48
+ ny: "Chichewa",
49
+ zh: "Chinese",
50
+ "zh-Hans": "Chinese (Simplified)",
51
+ "zh-Hant": "Chinese (Traditional)",
52
+ cv: "Chuvash",
53
+ kw: "Cornish",
54
+ co: "Corsican",
55
+ cr: "Cree",
56
+ hr: "Croatian",
57
+ cs: "Czech",
58
+ da: "Danish",
59
+ dv: "Maldivian",
60
+ nl: "Dutch",
61
+ dz: "Dzongkha",
62
+ en: "English",
63
+ eo: "Esperanto",
64
+ et: "Estonian",
65
+ ee: "Ewe",
66
+ fo: "Faroese",
67
+ fj: "Fijian",
68
+ fi: "Finnish",
69
+ fr: "French",
70
+ ff: "Fula, Pular",
71
+ gl: "Galician",
72
+ gd: "Gaelic (Scottish)",
73
+ gv: "Manx",
74
+ ka: "Georgian",
75
+ de: "German",
76
+ el: "Greek",
77
+ kl: "Kalaallisut",
78
+ gn: "Guarani",
79
+ gu: "Gujarati",
80
+ ht: "Haitian Creole",
81
+ ha: "Hausa",
82
+ he: "Hebrew",
83
+ hz: "Herero",
84
+ hi: "Hindi",
85
+ ho: "Hiri Motu",
86
+ hu: "Hungarian",
87
+ is: "Icelandic",
88
+ io: "Ido",
89
+ ig: "Igbo",
90
+ id: "Indonesian",
91
+ ia: "Interlingua",
92
+ ie: "Interlingue",
93
+ iu: "Inuktitut",
94
+ ik: "Inupiak",
95
+ ga: "Irish",
96
+ it: "Italian",
97
+ ja: "Japanese",
98
+ jv: "Javanese",
99
+ kn: "Kannada",
100
+ kr: "Kanuri",
101
+ ks: "Kashmiri",
102
+ kk: "Kazakh",
103
+ km: "Khmer",
104
+ ki: "Kikuyu",
105
+ rw: "Kinyarwanda",
106
+ rn: "Kirundi",
107
+ ky: "Kyrgyz",
108
+ kv: "Komi",
109
+ kg: "Kongo",
110
+ ko: "Korean",
111
+ ku: "Kurdish",
112
+ kj: "Kwanyama",
113
+ lo: "Lao",
114
+ la: "Latin",
115
+ lv: "Latvian",
116
+ li: "Limburgish",
117
+ ln: "Lingala",
118
+ lt: "Lithuanian",
119
+ lu: "Luga-Katanga",
120
+ lg: "Luganda, Ganda",
121
+ lb: "Luxembourgish",
122
+ mk: "Macedonian",
123
+ mg: "Malagasy",
124
+ ms: "Malay",
125
+ ml: "Malayalam",
126
+ mt: "Maltese",
127
+ mi: "Maori",
128
+ mr: "Marathi",
129
+ mh: "Marshallese",
130
+ mo: "Moldavian",
131
+ mn: "Mongolian",
132
+ na: "Nauru",
133
+ nv: "Navajo",
134
+ ng: "Ndonga",
135
+ nd: "Northern Ndebele",
136
+ ne: "Nepali",
137
+ no: "Norwegian",
138
+ nb: "Norwegian bokmål",
139
+ nn: "Norwegian nynorsk",
140
+ ii: "Sichuan Yi",
141
+ oc: "Occitan",
142
+ oj: "Ojibwe",
143
+ cu: "Old Church Slavonic",
144
+ or: "Oriya",
145
+ om: "Oromo",
146
+ os: "Ossetian",
147
+ pi: "Pāli",
148
+ ps: "Pashto, Pushto",
149
+ fa: "Persian (Farsi)",
150
+ pl: "Polish",
151
+ pt: "Portuguese",
152
+ pa: "Punjabi (Eastern)",
153
+ qu: "Quechua",
154
+ rm: "Romansh",
155
+ ro: "Romanian",
156
+ ru: "Russian",
157
+ se: "Sami",
158
+ sm: "Samoan",
159
+ sg: "Sango",
160
+ sa: "Sanskrit",
161
+ sr: "Serbian",
162
+ sh: "Serbo-Croatian",
163
+ st: "Sesotho",
164
+ tn: "Setswana",
165
+ sn: "Shona",
166
+ sd: "Sindhi",
167
+ si: "Sinhalese",
168
+ ss: "Swati",
169
+ sk: "Slovak",
170
+ sl: "Slovenian",
171
+ so: "Somali",
172
+ nr: "Southern Ndebele",
173
+ es: "Spanish",
174
+ su: "Sundanese",
175
+ sw: "Swahili (Kiswahili)",
176
+ sv: "Swedish",
177
+ tl: "Tagalog",
178
+ ty: "Tahitian",
179
+ tg: "Tajik",
180
+ ta: "Tamil",
181
+ tt: "Tatar",
182
+ te: "Telugu",
183
+ th: "Thai",
184
+ bo: "Tibetan",
185
+ ti: "Tigrinya",
186
+ to: "Tonga",
187
+ ts: "Tsonga",
188
+ tr: "Turkish",
189
+ tk: "Turkmen",
190
+ tw: "Twi",
191
+ ug: "Uyghur",
192
+ uk: "Ukrainian",
193
+ ur: "Urdu",
194
+ uz: "Uzbek",
195
+ ve: "Venda",
196
+ vi: "Vietnamese",
197
+ vo: "Volapük",
198
+ wa: "Wallon",
199
+ cy: "Welsh",
200
+ wo: "Wolof",
201
+ fy: "Western Frisian",
202
+ xh: "Xhosa",
203
+ yi: "Yiddish",
204
+ yo: "Yoruba",
205
+ za: "Zhuang, Chuang",
206
+ zu: "Zulu"
207
+ };
208
+ export {
209
+ b as ChaiActionsRegistry,
210
+ d as LANGUAGES,
211
+ y as db,
212
+ A as getAskAiSystemPrompt,
213
+ c as initChaiBuilderActionHandler,
214
+ S as safeQuery,
215
+ v as schema
216
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("./index-DF5DEvqb.cjs"),s=require("./index-WQwzsC7A.cjs"),a=require("lucide-react"),c=require("react-i18next"),l=()=>{const r=s.useSendRealtimeEvent(),{setPageStatus:i}=s.usePageLockStatus(),{t:n}=c.useTranslation();return e.jsx(s.BlurContainer,{children:e.jsxs(t.Card,{className:"mx-auto w-full max-w-md",children:[e.jsx(t.CardHeader,{className:"space-y-1",children:e.jsxs(t.CardTitle,{className:"flex items-center gap-2 text-xl font-medium",children:[e.jsx(a.TableIcon,{className:"h-6 w-6 text-green-500"}),e.jsx("span",{children:n("Active in Another Tab")})]})}),e.jsx(t.CardContent,{className:"space-y-4",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:n("This page is currently being edited in another tab. You can continue editing here, which will close the editor in the other tab.")})}),e.jsx(t.CardFooter,{className:"flex justify-end gap-2",children:e.jsxs(t.Button,{variant:"default",onClick:()=>{r(s.EVENT.CONTINUE_EDITING_IN_THIS_TAB_REQUEST),i(s.PAGE_STATUS.CHECKING)},className:"gap-2",children:[e.jsx(a.Edit,{className:"h-4 w-4"}),n("Continue Editing Here")]})})]})})};exports.default=l;
@@ -0,0 +1,34 @@
1
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
+ import { W as r, X as i, Y as o, Z as l, _ as c, B as d } from "./index-Ct7ElCGK.js";
3
+ import { ao as m, a as h, B as u, E as N, P as p } from "./index-ZuacEL1j.js";
4
+ import { TableIcon as T, Edit as f } from "lucide-react";
5
+ import { useTranslation as E } from "react-i18next";
6
+ const S = () => {
7
+ const s = m(), { setPageStatus: n } = h(), { t: a } = E();
8
+ return /* @__PURE__ */ e(u, { children: /* @__PURE__ */ t(r, { className: "mx-auto w-full max-w-md", children: [
9
+ /* @__PURE__ */ e(i, { className: "space-y-1", children: /* @__PURE__ */ t(o, { className: "flex items-center gap-2 text-xl font-medium", children: [
10
+ /* @__PURE__ */ e(T, { className: "h-6 w-6 text-green-500" }),
11
+ /* @__PURE__ */ e("span", { children: a("Active in Another Tab") })
12
+ ] }) }),
13
+ /* @__PURE__ */ e(l, { className: "space-y-4", children: /* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground", children: a(
14
+ "This page is currently being edited in another tab. You can continue editing here, which will close the editor in the other tab."
15
+ ) }) }),
16
+ /* @__PURE__ */ e(c, { className: "flex justify-end gap-2", children: /* @__PURE__ */ t(
17
+ d,
18
+ {
19
+ variant: "default",
20
+ onClick: () => {
21
+ s(N.CONTINUE_EDITING_IN_THIS_TAB_REQUEST), n(p.CHECKING);
22
+ },
23
+ className: "gap-2",
24
+ children: [
25
+ /* @__PURE__ */ e(f, { className: "h-4 w-4" }),
26
+ a("Continue Editing Here")
27
+ ]
28
+ }
29
+ ) })
30
+ ] }) });
31
+ };
32
+ export {
33
+ S as default
34
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),f=require("./index-DF5DEvqb.cjs"),V=require("./slug-input-C_ijLQ_X.cjs"),g=require("./index-WQwzsC7A.cjs"),Y=require("lodash-es"),is=require("lucide-react"),N=require("react"),T=require("react-i18next"),X=({edit:c,lang:h,languages:a,name:u,setLang:t,setName:i,primaryPageObject:o})=>{const{t:s}=T.useTranslation();return e.jsxs("div",{className:"space-y-1",children:[e.jsx(f.Label,{htmlFor:"lang",children:s("Language")}),e.jsxs("select",{value:c?"":h,disabled:c||!a.length,onChange:l=>{const x=l.target.value;t(x),!c&&(Y.startsWith(u,o==null?void 0:o.name)||u.length===0)&&i(`${o==null?void 0:o.name} - ${g.LANGUAGES[x]}`)},className:"col-span-3 flex h-9 w-full rounded-md border border-border bg-background px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",children:[e.jsx("option",{value:"",disabled:!0,children:c?g.LANGUAGES[h]||h:a.length?s("Choose language"):s("All available language page is created.")}),a.map(l=>e.jsx("option",{value:l,children:g.LANGUAGES[l]||l},l))]})]})},Z=({lang:c,name:h,setName:a,parentHasSelectedLanguagePage:u})=>{const{t}=T.useTranslation();return e.jsxs("div",{className:"space-y-1",children:[e.jsx(f.Label,{htmlFor:"name",children:t("Page Name")}),e.jsx(f.Input,{id:"name",value:c?h:"",onChange:i=>a(i.target.value),required:!0,placeholder:t(c?"Enter page name":"Choose language to add slug"),disabled:!u||!c})]})},ds=({dynamic:c,isNonSlugPageType:h,isRootPage:a,lang:u,useLanguagePrefix:t,setUseLanguagePrefix:i,isHomePage:o,parentSlug:s,parentHasSelectedLanguagePage:l,slug:x,setSlug:d,setIsSlugValid:m,getSlug:S})=>{const{t:r}=T.useTranslation();return h?null:e.jsxs("div",{className:"space-y-1",children:[a&&u&&e.jsxs("div",{className:"flex items-center space-x-2 pb-1",children:[e.jsx("input",{type:"checkbox",id:"useLanguagePrefix",checked:t,onChange:A=>i(A.target.checked),className:"rounded border-gray-300"}),e.jsxs(f.Label,{htmlFor:"useLanguagePrefix",className:"text-sm font-normal leading-tight",children:["Add language code (",e.jsxs("span",{className:"font-mono text-gray-900",children:["/",u]}),") as slug prefix"]})]}),e.jsx(f.Label,{htmlFor:"slug",children:r("Slug")}),c?e.jsx(f.Alert,{variant:"default",className:"p-2 text-xs font-medium italic text-muted-foreground",children:r("This page will use dynamic slug as defined in primary page")}):e.jsx(V.SlugInput,{disabled:!u||!l,value:x,onChange:d,placeholder:r(u?o&&t?"Leave empty for home page":"Enter page slug":"Choose language to add slug"),parentSlug:s,onValidationChange:m,fullSlug:S()})]})},_=({parentHasSelectedLanguagePage:c,name:h,lang:a,slug:u,edit:t,id:i,primaryPageObject:o,pages:s,isNonSlugPageType:l,isHomePage:x,useLanguagePrefix:d,isSlugValid:m,isPending:S})=>{const{t:r}=T.useTranslation(),A=S||!h||!a||s.some(v=>(t?v.id!==i:!0)&&v.parent===(o==null?void 0:o.id)&&v.lang===a)||!l&&!(x&&d)&&(!m||!u);return e.jsx(f.DialogFooter,{children:c?e.jsxs(e.Fragment,{children:[e.jsx(f.Button,{type:"submit",disabled:A&&!o.dynamic,children:S?e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"loader mr-2"}),r(t?"Updating...":"Adding...")]}):r(t?"Update":"Add new language page")}),s.some(v=>(t?v.id!==i:!0)&&v.parent===(o==null?void 0:o.id)&&v.lang===a)&&e.jsx("p",{className:"mt-2 text-xs text-red-500",children:r("A page for this language already exists.")})]}):a&&e.jsx(f.Alert,{variant:"destructive",children:e.jsxs("p",{className:"mx-auto w-5/6 text-center",children:[r("You need to create the")," ",e.jsx("span",{className:"font-medium",children:g.LANGUAGES[a]})," ",r("page in the parent to add here.")]})})})},cs=({onSubmit:c,edit:h,lang:a,languages:u,name:t,setLang:i,setName:o,primaryPageObject:s,parentHasSelectedLanguagePage:l,id:x,pages:d,isNonSlugPageType:m,isHomePage:S,useLanguagePrefix:r,slug:A,isSlugValid:v,isPending:p})=>e.jsxs("form",{onSubmit:c,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsx(X,{edit:h,lang:a,languages:u,name:t,setLang:i,setName:o,primaryPageObject:s}),e.jsx(Z,{lang:a,name:t,setName:o,parentHasSelectedLanguagePage:l})]}),e.jsx(_,{parentHasSelectedLanguagePage:l,name:t,lang:a,slug:A,edit:h,id:x,primaryPageObject:s,pages:d,isNonSlugPageType:m,isHomePage:S,useLanguagePrefix:r,isSlugValid:v,isPending:p})]}),rs=({loading:c,onSubmit:h,edit:a,lang:u,languages:t,name:i,setLang:o,setName:s,primaryPageObject:l,parentHasSelectedLanguagePage:x,isNonSlugPageType:d,isRootPage:m,useLanguagePrefix:S,setUseLanguagePrefix:r,isHomePage:A,parentSlug:v,slug:p,setSlug:C,isSlugValid:U,setIsSlugValid:k,getSlug:I,isPending:$,id:D,pages:L})=>c?e.jsx("div",{className:"flex h-80 items-center justify-center",children:e.jsx(is.Loader,{className:"animate-spin"})}):d?e.jsx(cs,{onSubmit:h,edit:a,lang:u,languages:t,name:i,setLang:o,setName:s,primaryPageObject:l,parentHasSelectedLanguagePage:x,id:D,pages:L,isNonSlugPageType:d,isHomePage:A,useLanguagePrefix:S,slug:p,isSlugValid:U,isPending:$}):e.jsxs("form",{onSubmit:h,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsx(X,{edit:a,lang:u,languages:t,name:i,setLang:o,setName:s,primaryPageObject:l}),e.jsx(Z,{lang:u,name:i,setName:s,parentHasSelectedLanguagePage:x}),e.jsx(ds,{dynamic:l==null?void 0:l.dynamic,isNonSlugPageType:d,isRootPage:m,lang:u,useLanguagePrefix:S,setUseLanguagePrefix:r,isHomePage:A,parentSlug:v,parentHasSelectedLanguagePage:x,slug:p,setSlug:C,isSlugValid:U,setIsSlugValid:k,getSlug:I})]}),e.jsx(_,{parentHasSelectedLanguagePage:x,name:i,lang:u,slug:p,edit:a,id:D,primaryPageObject:l,pages:L,isNonSlugPageType:d,isHomePage:A,useLanguagePrefix:S,isSlugValid:U,isPending:$})]}),hs=({id:c,isOpen:h,onClose:a,primaryPage:u,edit:t=!1,preselectedLang:i})=>{const{data:o=[]}=g.useWebsitePages(),s=N.useMemo(()=>o.find(n=>n.id===u),[o,u]),[l,x]=N.useState(""),[d,m]=N.useState(""),[S,r]=N.useState(""),[A,v]=N.useState(!0),[p,C]=N.useState(!0),{mutate:U,isPending:k}=g.useCreatePage(),{mutate:I,isPending:$}=g.useUpdatePage(),D=k||$,{data:L,isFetching:H}=g.useWebsiteSetting(),j=g.useFallbackLang(),{data:w,isFetching:b}=g.useLanguagePages(u),{data:F=[],isFetching:y}=g.useLanguagePages(s==null?void 0:s.parent),{data:z=[],isFetching:P}=g.usePageTypes(),{setSelectedLang:O}=f.useLanguages(),{t:M}=T.useTranslation(),[,ss]=g.useSearchParams(),[,es]=f.useSidebarActivePanel(),ns=H||b||y||P,G=N.useMemo(()=>Y.filter(L==null?void 0:L.languages,n=>!Y.find(w,{lang:n})),[L,w]),W=N.useMemo(()=>z.find(n=>n.key===(s==null?void 0:s.pageType)),[z,s==null?void 0:s.pageType]),J=!(W!=null&&W.hasSlug),B=(s==null?void 0:s.slug)==="/";N.useEffect(()=>{if(!t&&s&&i&&(m(i),x(`${s.name} - ${g.LANGUAGES[i]}`)),!t||!s)return;const n=w==null?void 0:w.find(us=>us.id===c);if(!n)return;x(n.name),m(n.lang);const E=n.slug||"",{initSlug:R,prefix:as}=V.parseSlugForEdit(E,s);r(R),C(as)},[t,c,w,s,i]),N.useEffect(()=>{if(i)m(i);else if((G==null?void 0:G.length)===1&&!t){const n=G[0];if(!n||!g.LANGUAGES[n])return;m(n),(!l||l===(s==null?void 0:s.name))&&x(`${s==null?void 0:s.name} - ${g.LANGUAGES[n]}`)}},[i,G,t,l,s]);const{parentSlug:K,isRootPage:q}=N.useMemo(()=>{if(B||!d)return{parentSlug:void 0,isRootPage:!(s!=null&&s.parent)};if(!(s!=null&&s.parent))return{parentSlug:p?`/${d}`:void 0,isRootPage:!0};const n=F==null?void 0:F.find(E=>E.lang===d);return{parentSlug:n==null?void 0:n.slug,isRootPage:!1}},[s==null?void 0:s.parent,F,p,d,B]),ts=N.useMemo(()=>q?!0:!!(F!=null&&F.some(n=>(n==null?void 0:n.lang)===d)),[d,F,q]),Q=()=>{let n="";return q?n=`/${p?[d,S].filter(Boolean).join("/"):S}`:n=`${V.removeSlugExtension(K)}/${S}`,n.replace(/\/{2,}/g,"/").replace(/\/$/,"")},os=n=>{const E=new URLSearchParams(window.location.search);j&&n===j?E.delete("lang"):E.set("lang",n),ss(E),window.dispatchEvent(new PopStateEvent("popstate"))},ls=n=>{n.preventDefault();const E={name:l,lang:d,primaryPage:s==null?void 0:s.id,slug:J?"":Q(),pageType:s==null?void 0:s.pageType,...t&&{id:c}},R=()=>{!t&&d&&(O(d),os(d)),es("outline"),a()};t?I(E,{onSuccess:R}):U(E,{onSuccess:R})};return e.jsx(f.Dialog,{open:h,onOpenChange:a,children:h&&e.jsxs(f.DialogContent,{className:"text-slate-600 sm:max-w-[425px]",children:[e.jsxs(f.DialogHeader,{children:[e.jsx(f.DialogTitle,{children:M(t?"Edit language":"Add new language page")}),e.jsx(f.DialogDescription,{className:"font-light",children:M("Enter the details for the language")})]}),e.jsx(rs,{id:c,pages:o,loading:ns,onSubmit:ls,edit:t,lang:d,languages:G,name:l,setLang:m,setName:x,primaryPageObject:s,parentHasSelectedLanguagePage:ts,isNonSlugPageType:J,isRootPage:q,useLanguagePrefix:p,setUseLanguagePrefix:C,isHomePage:B,parentSlug:K,slug:S,setSlug:r,isSlugValid:A,setIsSlugValid:v,getSlug:Q,isPending:D})]})})};exports.default=hs;
@@ -0,0 +1,401 @@
1
+ import { jsx as t, jsxs as g, Fragment as hn } from "react/jsx-runtime";
2
+ import { n as fn, o as gn, D as mn, d as xn, e as vn, f as Sn, p as pn, L as W, I as Nn, A as H, q as Fn, B as wn } from "./index-Ct7ElCGK.js";
3
+ import { p as An, r as Cn, S as Dn } from "./slug-input-AwNJs9im.js";
4
+ import { g as En, h as $n, i as Ln, j as kn, k as Tn, l as Z, m as Un, c as Bn, L as A } from "./index-ZuacEL1j.js";
5
+ import { filter as In, find as Rn, startsWith as Wn } from "lodash-es";
6
+ import { Loader as qn } from "lucide-react";
7
+ import { useMemo as $, useState as L, useEffect as _ } from "react";
8
+ import { useTranslation as k } from "react-i18next";
9
+ const b = ({
10
+ edit: c,
11
+ lang: h,
12
+ languages: a,
13
+ name: i,
14
+ setLang: s,
15
+ setName: d,
16
+ primaryPageObject: o
17
+ }) => {
18
+ const { t: n } = k();
19
+ return /* @__PURE__ */ g("div", { className: "space-y-1", children: [
20
+ /* @__PURE__ */ t(W, { htmlFor: "lang", children: n("Language") }),
21
+ /* @__PURE__ */ g(
22
+ "select",
23
+ {
24
+ value: c ? "" : h,
25
+ disabled: c || !a.length,
26
+ onChange: (l) => {
27
+ const f = l.target.value;
28
+ s(f), !c && (Wn(i, o == null ? void 0 : o.name) || i.length === 0) && d(`${o == null ? void 0 : o.name} - ${A[f]}`);
29
+ },
30
+ className: "col-span-3 flex h-9 w-full rounded-md border border-border bg-background px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
31
+ children: [
32
+ /* @__PURE__ */ t("option", { value: "", disabled: !0, children: c ? A[h] || h : a.length ? n("Choose language") : n("All available language page is created.") }),
33
+ a.map((l) => /* @__PURE__ */ t("option", { value: l, children: A[l] || l }, l))
34
+ ]
35
+ }
36
+ )
37
+ ] });
38
+ }, y = ({ lang: c, name: h, setName: a, parentHasSelectedLanguagePage: i }) => {
39
+ const { t: s } = k();
40
+ return /* @__PURE__ */ g("div", { className: "space-y-1", children: [
41
+ /* @__PURE__ */ t(W, { htmlFor: "name", children: s("Page Name") }),
42
+ /* @__PURE__ */ t(
43
+ Nn,
44
+ {
45
+ id: "name",
46
+ value: c ? h : "",
47
+ onChange: (d) => a(d.target.value),
48
+ required: !0,
49
+ placeholder: s(c ? "Enter page name" : "Choose language to add slug"),
50
+ disabled: !i || !c
51
+ }
52
+ )
53
+ ] });
54
+ }, Gn = ({
55
+ dynamic: c,
56
+ isNonSlugPageType: h,
57
+ isRootPage: a,
58
+ lang: i,
59
+ useLanguagePrefix: s,
60
+ setUseLanguagePrefix: d,
61
+ isHomePage: o,
62
+ parentSlug: n,
63
+ parentHasSelectedLanguagePage: l,
64
+ slug: f,
65
+ setSlug: u,
66
+ setIsSlugValid: x,
67
+ getSlug: m
68
+ }) => {
69
+ const { t: r } = k();
70
+ return h ? null : /* @__PURE__ */ g("div", { className: "space-y-1", children: [
71
+ a && i && /* @__PURE__ */ g("div", { className: "flex items-center space-x-2 pb-1", children: [
72
+ /* @__PURE__ */ t(
73
+ "input",
74
+ {
75
+ type: "checkbox",
76
+ id: "useLanguagePrefix",
77
+ checked: s,
78
+ onChange: (S) => d(S.target.checked),
79
+ className: "rounded border-gray-300"
80
+ }
81
+ ),
82
+ /* @__PURE__ */ g(W, { htmlFor: "useLanguagePrefix", className: "text-sm font-normal leading-tight", children: [
83
+ "Add language code (",
84
+ /* @__PURE__ */ g("span", { className: "font-mono text-gray-900", children: [
85
+ "/",
86
+ i
87
+ ] }),
88
+ ") as slug prefix"
89
+ ] })
90
+ ] }),
91
+ /* @__PURE__ */ t(W, { htmlFor: "slug", children: r("Slug") }),
92
+ c ? /* @__PURE__ */ t(H, { variant: "default", className: "p-2 text-xs font-medium italic text-muted-foreground", children: r("This page will use dynamic slug as defined in primary page") }) : /* @__PURE__ */ t(
93
+ Dn,
94
+ {
95
+ disabled: !i || !l,
96
+ value: f,
97
+ onChange: u,
98
+ placeholder: r(i ? o && s ? "Leave empty for home page" : "Enter page slug" : "Choose language to add slug"),
99
+ parentSlug: n,
100
+ onValidationChange: x,
101
+ fullSlug: m()
102
+ }
103
+ )
104
+ ] });
105
+ }, P = ({
106
+ parentHasSelectedLanguagePage: c,
107
+ name: h,
108
+ lang: a,
109
+ slug: i,
110
+ edit: s,
111
+ id: d,
112
+ primaryPageObject: o,
113
+ pages: n,
114
+ isNonSlugPageType: l,
115
+ isHomePage: f,
116
+ useLanguagePrefix: u,
117
+ isSlugValid: x,
118
+ isPending: m
119
+ }) => {
120
+ const { t: r } = k(), S = m || !h || !a || n.some((v) => (s ? v.id !== d : !0) && v.parent === (o == null ? void 0 : o.id) && v.lang === a) || !l && !(f && u) && (!x || !i);
121
+ return /* @__PURE__ */ t(Fn, { children: c ? /* @__PURE__ */ g(hn, { children: [
122
+ /* @__PURE__ */ t(wn, { type: "submit", disabled: S && !o.dynamic, children: m ? /* @__PURE__ */ g("span", { className: "flex items-center gap-2", children: [
123
+ /* @__PURE__ */ t("span", { className: "loader mr-2" }),
124
+ r(s ? "Updating..." : "Adding...")
125
+ ] }) : r(s ? "Update" : "Add new language page") }),
126
+ n.some(
127
+ (v) => (s ? v.id !== d : !0) && v.parent === (o == null ? void 0 : o.id) && v.lang === a
128
+ ) && /* @__PURE__ */ t("p", { className: "mt-2 text-xs text-red-500", children: r("A page for this language already exists.") })
129
+ ] }) : a && /* @__PURE__ */ t(H, { variant: "destructive", children: /* @__PURE__ */ g("p", { className: "mx-auto w-5/6 text-center", children: [
130
+ r("You need to create the"),
131
+ " ",
132
+ /* @__PURE__ */ t("span", { className: "font-medium", children: A[a] }),
133
+ " ",
134
+ r("page in the parent to add here.")
135
+ ] }) }) });
136
+ }, Mn = ({
137
+ onSubmit: c,
138
+ edit: h,
139
+ lang: a,
140
+ languages: i,
141
+ name: s,
142
+ setLang: d,
143
+ setName: o,
144
+ primaryPageObject: n,
145
+ parentHasSelectedLanguagePage: l,
146
+ id: f,
147
+ pages: u,
148
+ isNonSlugPageType: x,
149
+ isHomePage: m,
150
+ useLanguagePrefix: r,
151
+ slug: S,
152
+ isSlugValid: v,
153
+ isPending: p
154
+ }) => /* @__PURE__ */ g("form", { onSubmit: c, children: [
155
+ /* @__PURE__ */ g("div", { className: "grid gap-4 py-4", children: [
156
+ /* @__PURE__ */ t(
157
+ b,
158
+ {
159
+ edit: h,
160
+ lang: a,
161
+ languages: i,
162
+ name: s,
163
+ setLang: d,
164
+ setName: o,
165
+ primaryPageObject: n
166
+ }
167
+ ),
168
+ /* @__PURE__ */ t(
169
+ y,
170
+ {
171
+ lang: a,
172
+ name: s,
173
+ setName: o,
174
+ parentHasSelectedLanguagePage: l
175
+ }
176
+ )
177
+ ] }),
178
+ /* @__PURE__ */ t(
179
+ P,
180
+ {
181
+ parentHasSelectedLanguagePage: l,
182
+ name: s,
183
+ lang: a,
184
+ slug: S,
185
+ edit: h,
186
+ id: f,
187
+ primaryPageObject: n,
188
+ pages: u,
189
+ isNonSlugPageType: x,
190
+ isHomePage: m,
191
+ useLanguagePrefix: r,
192
+ isSlugValid: v,
193
+ isPending: p
194
+ }
195
+ )
196
+ ] }), Vn = ({
197
+ loading: c,
198
+ onSubmit: h,
199
+ edit: a,
200
+ lang: i,
201
+ languages: s,
202
+ name: d,
203
+ setLang: o,
204
+ setName: n,
205
+ primaryPageObject: l,
206
+ parentHasSelectedLanguagePage: f,
207
+ isNonSlugPageType: u,
208
+ isRootPage: x,
209
+ useLanguagePrefix: m,
210
+ setUseLanguagePrefix: r,
211
+ isHomePage: S,
212
+ parentSlug: v,
213
+ slug: p,
214
+ setSlug: T,
215
+ isSlugValid: E,
216
+ setIsSlugValid: q,
217
+ getSlug: G,
218
+ isPending: U,
219
+ id: B,
220
+ pages: w
221
+ }) => c ? /* @__PURE__ */ t("div", { className: "flex h-80 items-center justify-center", children: /* @__PURE__ */ t(qn, { className: "animate-spin" }) }) : u ? /* @__PURE__ */ t(
222
+ Mn,
223
+ {
224
+ onSubmit: h,
225
+ edit: a,
226
+ lang: i,
227
+ languages: s,
228
+ name: d,
229
+ setLang: o,
230
+ setName: n,
231
+ primaryPageObject: l,
232
+ parentHasSelectedLanguagePage: f,
233
+ id: B,
234
+ pages: w,
235
+ isNonSlugPageType: u,
236
+ isHomePage: S,
237
+ useLanguagePrefix: m,
238
+ slug: p,
239
+ isSlugValid: E,
240
+ isPending: U
241
+ }
242
+ ) : /* @__PURE__ */ g("form", { onSubmit: h, children: [
243
+ /* @__PURE__ */ g("div", { className: "grid gap-4 py-4", children: [
244
+ /* @__PURE__ */ t(
245
+ b,
246
+ {
247
+ edit: a,
248
+ lang: i,
249
+ languages: s,
250
+ name: d,
251
+ setLang: o,
252
+ setName: n,
253
+ primaryPageObject: l
254
+ }
255
+ ),
256
+ /* @__PURE__ */ t(
257
+ y,
258
+ {
259
+ lang: i,
260
+ name: d,
261
+ setName: n,
262
+ parentHasSelectedLanguagePage: f
263
+ }
264
+ ),
265
+ /* @__PURE__ */ t(
266
+ Gn,
267
+ {
268
+ dynamic: l == null ? void 0 : l.dynamic,
269
+ isNonSlugPageType: u,
270
+ isRootPage: x,
271
+ lang: i,
272
+ useLanguagePrefix: m,
273
+ setUseLanguagePrefix: r,
274
+ isHomePage: S,
275
+ parentSlug: v,
276
+ parentHasSelectedLanguagePage: f,
277
+ slug: p,
278
+ setSlug: T,
279
+ isSlugValid: E,
280
+ setIsSlugValid: q,
281
+ getSlug: G
282
+ }
283
+ )
284
+ ] }),
285
+ /* @__PURE__ */ t(
286
+ P,
287
+ {
288
+ parentHasSelectedLanguagePage: f,
289
+ name: d,
290
+ lang: i,
291
+ slug: p,
292
+ edit: a,
293
+ id: B,
294
+ primaryPageObject: l,
295
+ pages: w,
296
+ isNonSlugPageType: u,
297
+ isHomePage: S,
298
+ useLanguagePrefix: m,
299
+ isSlugValid: E,
300
+ isPending: U
301
+ }
302
+ )
303
+ ] }), Hn = ({
304
+ id: c,
305
+ isOpen: h,
306
+ onClose: a,
307
+ primaryPage: i,
308
+ edit: s = !1,
309
+ preselectedLang: d
310
+ }) => {
311
+ const { data: o = [] } = En(), n = $(() => o.find((e) => e.id === i), [o, i]), [l, f] = L(""), [u, x] = L(""), [m, r] = L(""), [S, v] = L(!0), [p, T] = L(!0), { mutate: E, isPending: q } = $n(), { mutate: G, isPending: U } = Ln(), B = q || U, { data: w, isFetching: j } = kn(), z = Tn(), { data: C, isFetching: O } = Z(i), { data: F = [], isFetching: nn } = Z(
312
+ n == null ? void 0 : n.parent
313
+ ), { data: J = [], isFetching: en } = Un(), { setSelectedLang: sn } = fn(), { t: M } = k(), [, tn] = Bn(), [, on] = gn(), ln = j || O || nn || en, D = $(() => In(w == null ? void 0 : w.languages, (e) => !Rn(C, { lang: e })), [w, C]), V = $(
314
+ () => J.find((e) => e.key === (n == null ? void 0 : n.pageType)),
315
+ [J, n == null ? void 0 : n.pageType]
316
+ ), K = !(V != null && V.hasSlug), Y = (n == null ? void 0 : n.slug) === "/";
317
+ _(() => {
318
+ if (!s && n && d && (x(d), f(`${n.name} - ${A[d]}`)), !s || !n) return;
319
+ const e = C == null ? void 0 : C.find((rn) => rn.id === c);
320
+ if (!e) return;
321
+ f(e.name), x(e.lang);
322
+ const N = e.slug || "", { initSlug: R, prefix: cn } = An(N, n);
323
+ r(R), T(cn);
324
+ }, [s, c, C, n, d]), _(() => {
325
+ if (d)
326
+ x(d);
327
+ else if ((D == null ? void 0 : D.length) === 1 && !s) {
328
+ const e = D[0];
329
+ if (!e || !A[e]) return;
330
+ x(e), (!l || l === (n == null ? void 0 : n.name)) && f(`${n == null ? void 0 : n.name} - ${A[e]}`);
331
+ }
332
+ }, [d, D, s, l, n]);
333
+ const { parentSlug: Q, isRootPage: I } = $(() => {
334
+ if (Y || !u)
335
+ return { parentSlug: void 0, isRootPage: !(n != null && n.parent) };
336
+ if (!(n != null && n.parent))
337
+ return {
338
+ parentSlug: p ? `/${u}` : void 0,
339
+ isRootPage: !0
340
+ };
341
+ const e = F == null ? void 0 : F.find((N) => N.lang === u);
342
+ return { parentSlug: e == null ? void 0 : e.slug, isRootPage: !1 };
343
+ }, [n == null ? void 0 : n.parent, F, p, u, Y]), an = $(() => I ? !0 : !!(F != null && F.some((e) => (e == null ? void 0 : e.lang) === u)), [u, F, I]), X = () => {
344
+ let e = "";
345
+ return I ? e = `/${p ? [u, m].filter(Boolean).join("/") : m}` : e = `${Cn(Q)}/${m}`, e.replace(/\/{2,}/g, "/").replace(/\/$/, "");
346
+ }, dn = (e) => {
347
+ const N = new URLSearchParams(window.location.search);
348
+ z && e === z ? N.delete("lang") : N.set("lang", e), tn(N), window.dispatchEvent(new PopStateEvent("popstate"));
349
+ }, un = (e) => {
350
+ e.preventDefault();
351
+ const N = {
352
+ name: l,
353
+ lang: u,
354
+ primaryPage: n == null ? void 0 : n.id,
355
+ slug: K ? "" : X(),
356
+ pageType: n == null ? void 0 : n.pageType,
357
+ ...s && { id: c }
358
+ }, R = () => {
359
+ !s && u && (sn(u), dn(u)), on("outline"), a();
360
+ };
361
+ s ? G(N, { onSuccess: R }) : E(N, { onSuccess: R });
362
+ };
363
+ return /* @__PURE__ */ t(mn, { open: h, onOpenChange: a, children: h && /* @__PURE__ */ g(xn, { className: "text-slate-600 sm:max-w-[425px]", children: [
364
+ /* @__PURE__ */ g(vn, { children: [
365
+ /* @__PURE__ */ t(Sn, { children: M(s ? "Edit language" : "Add new language page") }),
366
+ /* @__PURE__ */ t(pn, { className: "font-light", children: M("Enter the details for the language") })
367
+ ] }),
368
+ /* @__PURE__ */ t(
369
+ Vn,
370
+ {
371
+ id: c,
372
+ pages: o,
373
+ loading: ln,
374
+ onSubmit: un,
375
+ edit: s,
376
+ lang: u,
377
+ languages: D,
378
+ name: l,
379
+ setLang: x,
380
+ setName: f,
381
+ primaryPageObject: n,
382
+ parentHasSelectedLanguagePage: an,
383
+ isNonSlugPageType: K,
384
+ isRootPage: I,
385
+ useLanguagePrefix: p,
386
+ setUseLanguagePrefix: T,
387
+ isHomePage: Y,
388
+ parentSlug: Q,
389
+ slug: m,
390
+ setSlug: r,
391
+ isSlugValid: S,
392
+ setIsSlugValid: v,
393
+ getSlug: X,
394
+ isPending: B
395
+ }
396
+ )
397
+ ] }) });
398
+ };
399
+ export {
400
+ Hn as default
401
+ };