@chaibuilder/sdk 4.0.0-beta.30 → 4.0.0-beta.31

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 (178) hide show
  1. package/dist/{2SSKDMRQ-Dub3pRV1.cjs → 2SSKDMRQ-BksFOLpD.cjs} +1 -1
  2. package/dist/{2SSKDMRQ-B5Tzwoh4.js → 2SSKDMRQ-gmj-yWTy.js} +2 -2
  3. package/dist/{AP7HFJJL-Dt6MglIr.cjs → AP7HFJJL-CO-deD_p.cjs} +1 -1
  4. package/dist/{AP7HFJJL-CfmdXP9M.js → AP7HFJJL-kVgc0R61.js} +1 -1
  5. package/dist/{IconPicker-DLqOB-ri.cjs → IconPicker-BJHUCDn4.cjs} +1 -1
  6. package/dist/{IconPicker-Cn8Z42-Z.js → IconPicker-D_GRfhwS.js} +1 -1
  7. package/dist/{WDYDFRGG-BOpmZGHS.js → WDYDFRGG-C9_E3QW0.js} +2 -2
  8. package/dist/{WDYDFRGG-Dfj1ikzw.cjs → WDYDFRGG-KPpWFul_.cjs} +1 -1
  9. package/dist/{active-in-another-tab-CEWvA8SG.js → active-in-another-tab-1GoKTVcF.js} +2 -2
  10. package/dist/{active-in-another-tab-DV83cJ_v.cjs → active-in-another-tab-iEd5fZD0.cjs} +1 -1
  11. package/dist/{add-new-language-page-B3wK94-S.js → add-new-language-page-B3GUvWdP.js} +3 -3
  12. package/dist/{add-new-language-page-C3Uu92KN.cjs → add-new-language-page-Cq8R42Ro.cjs} +1 -1
  13. package/dist/{add-new-page-DsvGVrR8.js → add-new-page-C5HlQfzy.js} +2 -2
  14. package/dist/{add-new-page-BOE-xwBc.cjs → add-new-page-DiHnECAR.cjs} +1 -1
  15. package/dist/{ai-panel-content-DBlnfRRi.cjs → ai-panel-content-BPpawv4D.cjs} +1 -1
  16. package/dist/{ai-panel-content-BBSzHZG6.js → ai-panel-content-tExD3yhH.js} +3 -3
  17. package/dist/{ai-panel-default-lang-DJJWAtN0.cjs → ai-panel-default-lang-C6N4wUUF.cjs} +2 -2
  18. package/dist/{ai-panel-default-lang-BVBuwnyU.js → ai-panel-default-lang-DnYLHSaS.js} +9 -9
  19. package/dist/{ai-panel-other-lang-v8Yd5ggR.cjs → ai-panel-other-lang-C65lVVtZ.cjs} +1 -1
  20. package/dist/{ai-panel-other-lang-fIEZkmRy.js → ai-panel-other-lang-D1pCJluY.js} +13 -13
  21. package/dist/{ai-prompt-input-CmSfGxTN.js → ai-prompt-input-B2q30bhR.js} +16 -16
  22. package/dist/{ai-prompt-input-C7ha_0Cn.cjs → ai-prompt-input-Dws5BHhQ.cjs} +1 -1
  23. package/dist/{ai-translation-prompt-CtBmvsRy.js → ai-translation-prompt-Dnn6i_t3.js} +1 -1
  24. package/dist/{ai-translation-prompt-BzTGAS3W.cjs → ai-translation-prompt-DnwG2BmF.cjs} +1 -1
  25. package/dist/{change-password-modal-DxkhBI5d.js → change-password-modal-C0MMizgl.js} +2 -2
  26. package/dist/{change-password-modal-CdOwtCWN.cjs → change-password-modal-LKtYY-8V.cjs} +1 -1
  27. package/dist/{code-editor-Bpn8z2fo.js → code-editor-CWOmKcUc.js} +1 -1
  28. package/dist/{code-editor-fL3s6Hk7.cjs → code-editor-Cim6jQVF.cjs} +1 -1
  29. package/dist/{continue-editing-in-this-client-DjxpjsA8.cjs → continue-editing-in-this-client-Dd6nKIvX.cjs} +1 -1
  30. package/dist/{continue-editing-in-this-client-DDB816CQ.js → continue-editing-in-this-client-oxYWGWON.js} +2 -2
  31. package/dist/core.cjs +1 -1
  32. package/dist/core.d.ts +3 -0
  33. package/dist/core.js +37 -37
  34. package/dist/{css-import-modal-CL8SIC3K.js → css-import-modal-6bMTRlCg.js} +1 -1
  35. package/dist/{css-import-modal-CRC7bK1c.cjs → css-import-modal-CXulmaB4.cjs} +1 -1
  36. package/dist/{delete-page-BHPlx8ec.cjs → delete-page-D0tdn6VW.cjs} +1 -1
  37. package/dist/{delete-page-41tvYcEw.js → delete-page-LnzR01A8.js} +2 -2
  38. package/dist/{design-token-usage-DtdjTCn3.cjs → design-token-usage-D-hrcKz1.cjs} +1 -1
  39. package/dist/{design-token-usage-CyOY4Pni.js → design-token-usage-lf7N_uOk.js} +28 -28
  40. package/dist/{digital-asset-manager-C_ru4Zes.js → digital-asset-manager-DJhRhLGC.js} +3 -3
  41. package/dist/{digital-asset-manager-DSLQz8qk.cjs → digital-asset-manager-eCJHNSjj.cjs} +1 -1
  42. package/dist/{duplicate-page-DMmDdmfS.js → duplicate-page-CXzYy7vx.js} +3 -3
  43. package/dist/{duplicate-page-BvggF83O.cjs → duplicate-page-ChSp1TYN.cjs} +1 -1
  44. package/dist/{dynamic-page-selector-C5agz2Ze.cjs → dynamic-page-selector-btGtkyyv.cjs} +1 -1
  45. package/dist/{dynamic-page-selector-D2z51nLi.js → dynamic-page-selector-r5IR9_7k.js} +2 -2
  46. package/dist/{get-chai-builder-tailwind-config-DNp8Vhme.cjs → get-chai-builder-tailwind-config-7CxFxEYL.cjs} +1 -1
  47. package/dist/{get-chai-builder-tailwind-config-k8l5sdcw.js → get-chai-builder-tailwind-config-DC4sDOYK.js} +3 -3
  48. package/dist/{get-chai-builder-theme-BSUcPs5t.js → get-chai-builder-theme-BpuwSLeS.js} +1 -1
  49. package/dist/{image-editor-DFmlG348.cjs → image-editor-BdW476J8.cjs} +1 -1
  50. package/dist/{image-editor-sKvOFo-S.js → image-editor-CilPMtAC.js} +1 -1
  51. package/dist/index-CAhDwfHE.cjs +5 -0
  52. package/dist/{index-BFnMzGe6.js → index-DsQXiNA_.js} +4997 -4877
  53. package/dist/{index-CA1OwKJX.js → index-DtMksfXx.js} +1711 -1666
  54. package/dist/index-mPCp0j2h.cjs +160 -0
  55. package/dist/{json-diff-viewer-DRQSNhaS.cjs → json-diff-viewer-BkrnLb3B.cjs} +1 -1
  56. package/dist/{json-diff-viewer-B5wAR5GY.js → json-diff-viewer-D3N3w3Ax.js} +34 -34
  57. package/dist/{lang-panel-q04hEq5o.js → lang-panel-BAaaP4Qc.js} +3 -3
  58. package/dist/{lang-panel-BZsICcBR.cjs → lang-panel-BjDRrpwN.cjs} +1 -1
  59. package/dist/library-blocks/bento/agency-showcase/agency-showcase.html +175 -0
  60. package/dist/library-blocks/bento/agency-showcase/agency-showcase.webp +0 -0
  61. package/dist/library-blocks/bento/creative-portfolio/creative-portfolio.html +116 -0
  62. package/dist/library-blocks/bento/creative-portfolio/creative-portfolio.webp +0 -0
  63. package/dist/library-blocks/bento/product-features/product-features.html +159 -0
  64. package/dist/library-blocks/bento/product-features/product-features.webp +0 -0
  65. package/dist/library-blocks/bento/saas-dashboard/saas-dashboard.html +182 -0
  66. package/dist/library-blocks/bento/saas-dashboard/saas-dashboard.webp +0 -0
  67. package/dist/library-blocks/bento/startup-metrics/startup-metrics.html +170 -0
  68. package/dist/library-blocks/bento/startup-metrics/startup-metrics.webp +0 -0
  69. package/dist/library-blocks/blocks-list.json +145 -12
  70. package/dist/library-blocks/feature/agency-services/agency-services.html +194 -0
  71. package/dist/library-blocks/feature/agency-services/agency-services.webp +0 -0
  72. package/dist/library-blocks/feature/consulting-firm/consulting-firm.html +219 -0
  73. package/dist/library-blocks/feature/consulting-firm/consulting-firm.webp +0 -0
  74. package/dist/library-blocks/feature/design-studio/design-studio.html +190 -0
  75. package/dist/library-blocks/feature/design-studio/design-studio.webp +0 -0
  76. package/dist/library-blocks/feature/freelancer-toolkit/freelancer-toolkit.html +195 -0
  77. package/dist/library-blocks/feature/freelancer-toolkit/freelancer-toolkit.webp +0 -0
  78. package/dist/library-blocks/feature/marketing-agency/marketing-agency.html +212 -0
  79. package/dist/library-blocks/feature/marketing-agency/marketing-agency.webp +0 -0
  80. package/dist/library-blocks/footer/creative-agency/creative-agency.html +64 -0
  81. package/dist/library-blocks/footer/creative-agency/creative-agency.webp +0 -0
  82. package/dist/library-blocks/footer/minimal-portfolio/minimal-portfolio.html +106 -0
  83. package/dist/library-blocks/footer/minimal-portfolio/minimal-portfolio.webp +0 -0
  84. package/dist/library-blocks/footer/saas-startup/saas-startup.html +117 -0
  85. package/dist/library-blocks/footer/saas-startup/saas-startup.webp +0 -0
  86. package/dist/library-blocks/hero/creative-agency/creative-agency.html +117 -0
  87. package/dist/library-blocks/hero/creative-agency/creative-agency.webp +0 -0
  88. package/dist/library-blocks/hero/developer-focused/developer-focused.html +124 -0
  89. package/dist/library-blocks/hero/developer-focused/developer-focused.webp +0 -0
  90. package/dist/library-blocks/hero/minimal-saas/minimal-saas.html +98 -0
  91. package/dist/library-blocks/hero/minimal-saas/minimal-saas.webp +0 -0
  92. package/dist/library-blocks/hero/portfolio-showcase/portfolio-showcase.html +148 -0
  93. package/dist/library-blocks/hero/portfolio-showcase/portfolio-showcase.webp +0 -0
  94. package/dist/library-blocks/hero/startup-landing/startup-landing.html +130 -0
  95. package/dist/library-blocks/hero/startup-landing/startup-landing.webp +0 -0
  96. package/dist/library-blocks/navbar/creative-agency/creative-agency.html +139 -0
  97. package/dist/library-blocks/navbar/creative-agency/creative-agency.webp +0 -0
  98. package/dist/library-blocks/navbar/minimal-portfolio/minimal-portfolio.html +164 -0
  99. package/dist/library-blocks/navbar/minimal-portfolio/minimal-portfolio.webp +0 -0
  100. package/dist/library-blocks/navbar/saas-startup/saas-startup.html +129 -0
  101. package/dist/library-blocks/navbar/saas-startup/saas-startup.webp +0 -0
  102. package/dist/manage-design-tokens-BknGNAKE.cjs +1 -0
  103. package/dist/manage-design-tokens-Co5677WS.js +428 -0
  104. package/dist/manage-design-tokens-modal-9qpcb-EC.js +161 -0
  105. package/dist/manage-design-tokens-modal-BcgdwEXE.cjs +1 -0
  106. package/dist/{mark-as-template-raTtKmQ9.js → mark-as-template-DNHYNjI9.js} +2 -2
  107. package/dist/{mark-as-template-CT-hLGIW.cjs → mark-as-template-IYRjta97.cjs} +1 -1
  108. package/dist/{nested-path-selector-content-CzQ2Lorl.js → nested-path-selector-content-Be-pbnVl.js} +1 -1
  109. package/dist/{nested-path-selector-content-CSUHTj9G.cjs → nested-path-selector-content-CWmPgU-L.cjs} +1 -1
  110. package/dist/{no-language-page-content-Bkj8JpEY.cjs → no-language-page-content-8_J6y-cm.cjs} +1 -1
  111. package/dist/{no-language-page-content-Bg6VjMVY.js → no-language-page-content-C-ltY7bj.js} +4 -4
  112. package/dist/{no-language-page-dialog-TffLjvJn.cjs → no-language-page-dialog-BOZZZzqx.cjs} +1 -1
  113. package/dist/{no-language-page-dialog-CRPMr9YT.js → no-language-page-dialog-D5NXpDHi.js} +2 -2
  114. package/dist/{page-creator-CQhE1tgn.js → page-creator-BuHHnqiQ.js} +172 -172
  115. package/dist/{page-creator-RrUhy8uH.cjs → page-creator-wtbae2U7.cjs} +1 -1
  116. package/dist/{page-lock-D9h5pgxn.cjs → page-lock-DN4iJc-V.cjs} +1 -1
  117. package/dist/{page-lock-Dye1JZBB.js → page-lock-pPGlTxj7.js} +2 -2
  118. package/dist/{page-locked-dialog-b2_f-A7a.cjs → page-locked-dialog-B_vdgv24.cjs} +1 -1
  119. package/dist/{page-locked-dialog-BMjPVyHF.js → page-locked-dialog-Bl-ojgIW.js} +16 -16
  120. package/dist/page-manager-new-5W5M9_ue.cjs +1 -0
  121. package/dist/page-manager-new-Bg8H6yrg.js +418 -0
  122. package/dist/{page-manager-search-and-filter-D0ZXojiu.cjs → page-manager-search-and-filter-CDXunXNd.cjs} +1 -1
  123. package/dist/{page-manager-search-and-filter-DCcYyoPO.js → page-manager-search-and-filter-CyfO7O96.js} +2 -2
  124. package/dist/{page-revisions-content-mDwvH6J-.js → page-revisions-content-B-egQgoZ.js} +13 -13
  125. package/dist/{page-revisions-content-BX8ZWebc.cjs → page-revisions-content-BKT8S9_g.cjs} +1 -1
  126. package/dist/pages.cjs +1 -1
  127. package/dist/pages.d.ts +3 -0
  128. package/dist/pages.js +1 -1
  129. package/dist/{plugin-Dkmjb2_e.js → plugin-BSjgGgwo.js} +10 -10
  130. package/dist/{publish-pages-content-M_Kb8b-F.js → publish-pages-content-D2B_ScCQ.js} +3 -3
  131. package/dist/{publish-pages-content-CR4e9inX.cjs → publish-pages-content-WJHTVYnx.cjs} +1 -1
  132. package/dist/render.cjs +1 -1
  133. package/dist/render.d.ts +1 -0
  134. package/dist/render.js +32 -32
  135. package/dist/{rte-widget-modal-BRSm1Lnp.cjs → rte-widget-modal-CC1KcrAT.cjs} +1 -1
  136. package/dist/{rte-widget-modal-CVZDktXI.js → rte-widget-modal-c3T09VeO.js} +1 -1
  137. package/dist/runtime.d.ts +1 -0
  138. package/dist/{save-to-lib-CYEAWxL9.cjs → save-to-lib-CiM0wiIr.cjs} +1 -1
  139. package/dist/{save-to-lib-B1ccNhR2.js → save-to-lib-dT1NDd5w.js} +26 -26
  140. package/dist/sdk.css +1 -1
  141. package/dist/{selected-block-display-aGR7p5JC.js → selected-block-display-BQndDPcY.js} +11 -11
  142. package/dist/{selected-block-display-MyU0rS4q.cjs → selected-block-display-BgqcPsXI.cjs} +1 -1
  143. package/dist/{seo-panel-B5mDwpaT.cjs → seo-panel-DXZvGYEM.cjs} +1 -1
  144. package/dist/{seo-panel-P9uixkoZ.js → seo-panel-Z93Zf_bz.js} +138 -138
  145. package/dist/{shared-json-ld-Ba9GcvLr.js → shared-json-ld-Ct68RlWD.js} +70 -70
  146. package/dist/{shared-json-ld-DhQJh_mT.cjs → shared-json-ld-DwvUDGAS.cjs} +1 -1
  147. package/dist/{slug-input-CAfGHqMW.js → slug-input-CAqkFZBq.js} +1 -1
  148. package/dist/{slug-input-BdMnlYKT.cjs → slug-input-Curnt2n3.cjs} +1 -1
  149. package/dist/{take-over-request-CXjaDliJ.js → take-over-request-C6ngP1QR.js} +10 -10
  150. package/dist/{take-over-request-BeHTL28z.cjs → take-over-request-D6y2HcDr.cjs} +1 -1
  151. package/dist/{theme-panel-footer-BkwhuXM7.js → theme-panel-footer-CGZL2F7R.js} +2 -2
  152. package/dist/{theme-panel-footer-D_gxD0j4.cjs → theme-panel-footer-IgGj-_OA.cjs} +1 -1
  153. package/dist/{translation-warning-modal-D_vt37fW.cjs → translation-warning-modal-B876S5yp.cjs} +1 -1
  154. package/dist/{translation-warning-modal-CTfArsb1.js → translation-warning-modal-kRcfrPgo.js} +1 -1
  155. package/dist/types.d.ts +3 -0
  156. package/dist/{unmark-as-template-vFgMIdxN.js → unmark-as-template-DeeWUTco.js} +2 -2
  157. package/dist/{unmark-as-template-D2bvjGKt.cjs → unmark-as-template-f1dl_YTz.cjs} +1 -1
  158. package/dist/{unpublish-page-CPjHmtSM.cjs → unpublish-page-DEPFjGuu.cjs} +1 -1
  159. package/dist/{unpublish-page-CxkjTzBB.js → unpublish-page-U_79Pwc0.js} +2 -2
  160. package/dist/unpublished-partials-modal-CEFXp1D1.cjs +1 -0
  161. package/dist/unpublished-partials-modal-Ts5ZhAK9.js +41 -0
  162. package/dist/utils.cjs +1 -1
  163. package/dist/utils.js +2 -2
  164. package/dist/{web-preview--by73Vvr.js → web-preview-CoT8r96b.js} +1 -1
  165. package/dist/{web-preview-C3AMe_BB.cjs → web-preview-DTDoIE-c.cjs} +1 -1
  166. package/package.json +1 -1
  167. package/dist/delete-design-token-B0md8qUi.js +0 -40
  168. package/dist/delete-design-token-C94IgWdi.cjs +0 -1
  169. package/dist/index-Bzn_gpaK.cjs +0 -5
  170. package/dist/index-D30xvFa5.cjs +0 -160
  171. package/dist/library-blocks/hero-1/hero-1.html +0 -74
  172. package/dist/library-blocks/hero-1/hero-1.webp +0 -0
  173. package/dist/library-blocks/hero-2/hero-2.html +0 -95
  174. package/dist/library-blocks/hero-2/hero-2.webp +0 -0
  175. package/dist/manage-design-tokens-Cene3KEu.js +0 -241
  176. package/dist/manage-design-tokens-Di5C6nTj.cjs +0 -1
  177. package/dist/page-manager-new-2mDjnSqc.cjs +0 -1
  178. package/dist/page-manager-new-DP1b_dXt.js +0 -411
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),m=require("./index-D30xvFa5.cjs"),L=require("./register-chai-top-bar-DyW9GPzV.cjs"),z=require("date-fns"),p=require("lodash-es"),N=require("lucide-react"),b=require("react"),M=require("react-diff-view"),O=require("./index-Bzn_gpaK.cjs"),H=require("@tanstack/react-query");function K(t,r){const o=O.useApiUrl(),n=O.useFetch(),d=p.startsWith(t.uid,"draft:")||p.startsWith(r.uid,"live:");return H.useQuery({queryKey:["revision-comparison",t.uid,r.uid],queryFn:async()=>{if(!t.uid||!r.uid)throw new Error("Both revision IDs are required for comparison");const l=h=>h==="draft"||h==="live"?h:"revision",s=h=>p.replace(h.uid,`${h.label}:`,"");return await n(o,{action:O.ACTIONS.GET_COMPARE_DATA,data:{versions:{version1:{type:l(t.label),id:s(t)},version2:{type:l(r.label),id:s(r)}}}})},enabled:!!t.uid&&!!r.uid,staleTime:d?0:1/0,refetchOnMount:d?"always":!1,gcTime:d?0:void 0})}const V=({version:t})=>{const r=t==null?void 0:t.item,{data:o}=O.useChaiUserInfo(r==null?void 0:r.currentEditor),n=t.label==="live",d=t.label==="draft";return e.jsxs("span",{className:`flex min-h-8 items-center gap-x-2 rounded border bg-white px-2 text-xs shadow-lg ${n?"border-green-500/30":d?"border-amber-500/30":"border-purple-500/30"}`,children:[e.jsx("div",{className:"h-full items-center rounded px-1.5 py-0.5 font-medium capitalize"+(n?" bg-green-500 text-green-50":d?" bg-amber-500 text-amber-50":" bg-purple-500 text-purple-50"),children:t.label}),e.jsxs("div",{className:"py-1 text-xs font-light leading-none text-gray-800",children:[e.jsxs("div",{children:[e.jsx("span",{className:"font-light opacity-90",children:d?"Currently editing":"Published by"}),!d&&e.jsx("span",{className:"pl-1 font-medium",children:(o==null?void 0:o.name)||"Unknown"})]}),(r==null?void 0:r.createdAt)&&e.jsx("div",{className:"pt-0.5 text-[10px] leading-tight",children:z.formatDate(r.createdAt,"dd MMM yyyy, h:mm a")})]})]})},F=({version:t})=>e.jsx(V,{version:t});function U(t,r,o="data.json"){const n=JSON.stringify(t,null,2),d=JSON.stringify(r,null,2),l=n.split(`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),m=require("./index-mPCp0j2h.cjs"),L=require("./register-chai-top-bar-DyW9GPzV.cjs"),z=require("date-fns"),p=require("lodash-es"),N=require("lucide-react"),b=require("react"),M=require("react-diff-view"),O=require("./index-CAhDwfHE.cjs"),H=require("@tanstack/react-query");function K(t,r){const o=O.useApiUrl(),n=O.useFetch(),d=p.startsWith(t.uid,"draft:")||p.startsWith(r.uid,"live:");return H.useQuery({queryKey:["revision-comparison",t.uid,r.uid],queryFn:async()=>{if(!t.uid||!r.uid)throw new Error("Both revision IDs are required for comparison");const l=h=>h==="draft"||h==="live"?h:"revision",s=h=>p.replace(h.uid,`${h.label}:`,"");return await n(o,{action:O.ACTIONS.GET_COMPARE_DATA,data:{versions:{version1:{type:l(t.label),id:s(t)},version2:{type:l(r.label),id:s(r)}}}})},enabled:!!t.uid&&!!r.uid,staleTime:d?0:1/0,refetchOnMount:d?"always":!1,gcTime:d?0:void 0})}const V=({version:t})=>{const r=t==null?void 0:t.item,{data:o}=O.useChaiUserInfo(r==null?void 0:r.currentEditor),n=t.label==="live",d=t.label==="draft";return e.jsxs("span",{className:`flex min-h-8 items-center gap-x-2 rounded border bg-white px-2 text-xs shadow-lg ${n?"border-green-500/30":d?"border-amber-500/30":"border-purple-500/30"}`,children:[e.jsx("div",{className:"h-full items-center rounded px-1.5 py-0.5 font-medium capitalize"+(n?" bg-green-500 text-green-50":d?" bg-amber-500 text-amber-50":" bg-purple-500 text-purple-50"),children:t.label}),e.jsxs("div",{className:"py-1 text-xs font-light leading-none text-gray-800",children:[e.jsxs("div",{children:[e.jsx("span",{className:"font-light opacity-90",children:d?"Currently editing":"Published by"}),!d&&e.jsx("span",{className:"pl-1 font-medium",children:(o==null?void 0:o.name)||"Unknown"})]}),(r==null?void 0:r.createdAt)&&e.jsx("div",{className:"pt-0.5 text-[10px] leading-tight",children:z.formatDate(r.createdAt,"dd MMM yyyy, h:mm a")})]})]})},F=({version:t})=>e.jsx(V,{version:t});function U(t,r,o="data.json"){const n=JSON.stringify(t,null,2),d=JSON.stringify(r,null,2),l=n.split(`
2
2
  `),s=d.split(`
3
3
  `);let u=`--- a/${o}
4
4
  `;u+=`+++ b/${o}
@@ -1,12 +1,12 @@
1
1
  import { jsx as e, jsxs as u } from "react/jsx-runtime";
2
- import { D as V, e as _, f as q, g as G, ac as $, a6 as A, ad as P } from "./index-BFnMzGe6.js";
2
+ import { D as V, e as _, f as q, g as G, aa as $, a6 as A, ab as P } from "./index-DsQXiNA_.js";
3
3
  import { B as z } from "./register-chai-top-bar-D6GjnauV.js";
4
4
  import { formatDate as Q } from "date-fns";
5
5
  import { startsWith as T, replace as W, isString as X, trim as Y, isArray as Z, map as ee, isPlainObject as te, mapValues as re } from "lodash-es";
6
6
  import { FileJson as B, Loader as ne, Check as F, Copy as H } from "lucide-react";
7
7
  import { useState as D, useMemo as I } from "react";
8
- import { parseDiff as se, Diff as le, Hunk as ae } from "react-diff-view";
9
- import { ar as ie, as as oe, A as ce, ap as de } from "./index-CA1OwKJX.js";
8
+ import { parseDiff as se, Diff as ae, Hunk as le } from "react-diff-view";
9
+ import { ar as ie, as as oe, A as ce, ap as de } from "./index-DtMksfXx.js";
10
10
  import { useQuery as fe } from "@tanstack/react-query";
11
11
  function me(t, n) {
12
12
  const o = ie(), s = oe(), d = T(t.uid, "draft:") || T(n.uid, "live:");
@@ -15,13 +15,13 @@ function me(t, n) {
15
15
  queryFn: async () => {
16
16
  if (!t.uid || !n.uid)
17
17
  throw new Error("Both revision IDs are required for comparison");
18
- const l = (m) => m === "draft" || m === "live" ? m : "revision", r = (m) => W(m.uid, `${m.label}:`, "");
18
+ const a = (m) => m === "draft" || m === "live" ? m : "revision", r = (m) => W(m.uid, `${m.label}:`, "");
19
19
  return await s(o, {
20
20
  action: ce.GET_COMPARE_DATA,
21
21
  data: {
22
22
  versions: {
23
- version1: { type: l(t.label), id: r(t) },
24
- version2: { type: l(n.label), id: r(n) }
23
+ version1: { type: a(t.label), id: r(t) },
24
+ version2: { type: a(n.label), id: r(n) }
25
25
  }
26
26
  }
27
27
  });
@@ -58,7 +58,7 @@ const he = ({ version: t }) => {
58
58
  );
59
59
  }, K = ({ version: t }) => /* @__PURE__ */ e(he, { version: t });
60
60
  function ue(t, n, o = "data.json") {
61
- const s = JSON.stringify(t, null, 2), d = JSON.stringify(n, null, 2), l = s.split(`
61
+ const s = JSON.stringify(t, null, 2), d = JSON.stringify(n, null, 2), a = s.split(`
62
62
  `), r = d.split(`
63
63
  `);
64
64
  let f = `--- a/${o}
@@ -67,35 +67,35 @@ function ue(t, n, o = "data.json") {
67
67
  `;
68
68
  const m = [];
69
69
  let c = 0, p = 0;
70
- for (; c < l.length || p < r.length; ) {
71
- const g = l[c] || "", N = r[p] || "";
70
+ for (; c < a.length || p < r.length; ) {
71
+ const g = a[c] || "", N = r[p] || "";
72
72
  if (g === N)
73
73
  m.push(` ${g}`), c++, p++;
74
74
  else {
75
75
  let h = -1, x = -1;
76
- for (let a = c + 1; a < l.length; a++)
77
- if (r[p] === l[a]) {
78
- h = a;
76
+ for (let l = c + 1; l < a.length; l++)
77
+ if (r[p] === a[l]) {
78
+ h = l;
79
79
  break;
80
80
  }
81
- for (let a = p + 1; a < r.length; a++)
82
- if (l[c] === r[a]) {
83
- x = a;
81
+ for (let l = p + 1; l < r.length; l++)
82
+ if (a[c] === r[l]) {
83
+ x = l;
84
84
  break;
85
85
  }
86
86
  if (h !== -1 && (x === -1 || h - c <= x - p)) {
87
- for (let a = c; a < h; a++)
88
- m.push(`-${l[a]}`);
87
+ for (let l = c; l < h; l++)
88
+ m.push(`-${a[l]}`);
89
89
  c = h;
90
90
  } else if (x !== -1) {
91
- for (let a = p; a < x; a++)
92
- m.push(`+${r[a]}`);
91
+ for (let l = p; l < x; l++)
92
+ m.push(`+${r[l]}`);
93
93
  p = x;
94
94
  } else
95
95
  g && m.push(`-${g}`), N && m.push(`+${N}`), c++, p++;
96
96
  }
97
97
  }
98
- const y = l.length, O = r.length;
98
+ const y = a.length, O = r.length;
99
99
  return f += `@@ -1,${y} +1,${O} @@
100
100
  `, f += m.join(`
101
101
  `) + `
@@ -106,8 +106,8 @@ function S(t, n = !0, o = !1) {
106
106
  const s = Y(t);
107
107
  if (T(s, "{") || T(s, "[") || n && (s === "true" || s === "false" || s === "null" || /^-?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(s)))
108
108
  try {
109
- const l = JSON.parse(s);
110
- return S(l, n, o);
109
+ const a = JSON.parse(s);
110
+ return S(a, n, o);
111
111
  } catch {
112
112
  if (o)
113
113
  throw new Error(`Invalid JSON string: ${s}`);
@@ -140,11 +140,11 @@ const pe = (t) => {
140
140
  o.add(c);
141
141
  });
142
142
  const d = [];
143
- let l = -1;
143
+ let a = -1;
144
144
  return t.forEach((r, f) => {
145
145
  if (o.has(f)) {
146
- if (l !== -1 && f - l > 1) {
147
- const m = t[l].lineNumber != null ? t[l].lineNumber + 1 : l + 2, c = t[f].lineNumber != null ? t[f].lineNumber - 1 : f;
146
+ if (a !== -1 && f - a > 1) {
147
+ const m = t[a].lineNumber != null ? t[a].lineNumber + 1 : a + 2, c = t[f].lineNumber != null ? t[f].lineNumber - 1 : f;
148
148
  d.push({
149
149
  content: /* @__PURE__ */ e(P, { className: "pointer-events-none w-60 -translate-x-1/2 cursor-default border-none bg-transparent py-1 shadow-none", children: /* @__PURE__ */ u("span", { className: "rounded border border-border bg-muted px-3 py-1 text-xs font-light leading-none text-muted-foreground", children: [
150
150
  "No changes from ",
@@ -155,16 +155,16 @@ const pe = (t) => {
155
155
  ] }) })
156
156
  });
157
157
  }
158
- d.push(r), l = f;
158
+ d.push(r), a = f;
159
159
  }
160
160
  }), d;
161
161
  };
162
162
  function Oe({ open: t, compare: n, onOpenChange: o }) {
163
- const s = n[0], d = n[1], [l, r] = D(null), [f, m] = D("split"), [c, p] = D(!1), [y, O] = D(!0), [g, N] = D("blocks"), { data: h, isLoading: x } = me(s, d), { leftData: a, rightData: w, options: U } = I(() => {
163
+ const s = n[0], d = n[1], [a, r] = D(null), [f, m] = D("split"), [c, p] = D(!1), [y, O] = D(!0), [g, N] = D("blocks"), { data: h, isLoading: x } = me(s, d), { leftData: l, rightData: w, options: U } = I(() => {
164
164
  var b, R;
165
165
  const i = (b = h == null ? void 0 : h.version1) == null ? void 0 : b[g], v = (R = h == null ? void 0 : h.version2) == null ? void 0 : R[g], k = S(i), C = S(v), J = ge(h == null ? void 0 : h.version1, h == null ? void 0 : h.version2);
166
166
  return { leftData: k, rightData: C, options: J };
167
- }, [h, g]), j = I(() => !a || !w ? "" : ue(a, w), [a, w]), M = I(() => {
167
+ }, [h, g]), j = I(() => !l || !w ? "" : ue(l, w), [l, w]), M = I(() => {
168
168
  if (!j) return [];
169
169
  try {
170
170
  return se(j);
@@ -223,15 +223,15 @@ function Oe({ open: t, compare: n, onOpenChange: o }) {
223
223
  ] }),
224
224
  c ? /* @__PURE__ */ u("div", { className: "grid h-full grid-cols-2 gap-3 rounded-lg border", children: [
225
225
  /* @__PURE__ */ u("div", { className: "relative flex min-h-0 flex-col border-r", children: [
226
- /* @__PURE__ */ e("div", { className: "absolute -top-4 right-4 z-50", children: /* @__PURE__ */ u(z, { variant: "outline", size: "sm", onClick: () => E(a, "left"), children: [
227
- l === "left" ? /* @__PURE__ */ e(F, { className: "text-green-500" }) : /* @__PURE__ */ e(H, {}),
226
+ /* @__PURE__ */ e("div", { className: "absolute -top-4 right-4 z-50", children: /* @__PURE__ */ u(z, { variant: "outline", size: "sm", onClick: () => E(l, "left"), children: [
227
+ a === "left" ? /* @__PURE__ */ e(F, { className: "text-green-500" }) : /* @__PURE__ */ e(H, {}),
228
228
  "Copy"
229
229
  ] }) }),
230
- /* @__PURE__ */ e(A, { className: "flex-1 rounded-lg bg-slate-50 p-3 dark:bg-slate-900", children: /* @__PURE__ */ e("pre", { className: "whitespace-pre-wrap font-mono text-xs", children: L(a) }) })
230
+ /* @__PURE__ */ e(A, { className: "flex-1 rounded-lg bg-slate-50 p-3 dark:bg-slate-900", children: /* @__PURE__ */ e("pre", { className: "whitespace-pre-wrap font-mono text-xs", children: L(l) }) })
231
231
  ] }),
232
232
  /* @__PURE__ */ u("div", { className: "relative flex min-h-0 flex-col", children: [
233
233
  /* @__PURE__ */ e("div", { className: "absolute -top-4 right-4 z-50", children: /* @__PURE__ */ u(z, { variant: "outline", size: "sm", onClick: () => E(w, "right"), children: [
234
- l === "right" ? /* @__PURE__ */ e(F, { className: "text-green-500" }) : /* @__PURE__ */ e(H, {}),
234
+ a === "right" ? /* @__PURE__ */ e(F, { className: "text-green-500" }) : /* @__PURE__ */ e(H, {}),
235
235
  "Copy"
236
236
  ] }) }),
237
237
  /* @__PURE__ */ e(A, { className: "flex-1 rounded-lg bg-slate-50 p-3 dark:bg-slate-900", children: /* @__PURE__ */ e("pre", { className: "whitespace-pre-wrap font-mono text-xs", children: L(w) }) })
@@ -240,7 +240,7 @@ function Oe({ open: t, compare: n, onOpenChange: o }) {
240
240
  /* @__PURE__ */ e(B, { className: "mx-auto mb-2 h-8 w-8 opacity-50" }),
241
241
  /* @__PURE__ */ e("p", { children: "No differences found or unable to parse diff" })
242
242
  ] }) }) : /* @__PURE__ */ e("div", { children: M.map((i, v) => /* @__PURE__ */ e("div", { className: "relative mb-4", children: /* @__PURE__ */ e(
243
- le,
243
+ ae,
244
244
  {
245
245
  viewType: f,
246
246
  diffType: i.type,
@@ -248,7 +248,7 @@ function Oe({ open: t, compare: n, onOpenChange: o }) {
248
248
  className: "rounded-lg text-xs",
249
249
  children: (k) => k.map((C, J) => {
250
250
  const b = y ? xe(C.changes) : C.changes;
251
- return (b == null ? void 0 : b.length) === 0 ? /* @__PURE__ */ e("div", { className: "absolute h-full w-full border-l pt-64 text-center font-sans text-sm", children: /* @__PURE__ */ e("span", { children: "No difference found" }) }) : /* @__PURE__ */ e(ae, { hunk: { ...C, changes: b } }, J);
251
+ return (b == null ? void 0 : b.length) === 0 ? /* @__PURE__ */ e("div", { className: "absolute h-full w-full border-l pt-64 text-center font-sans text-sm", children: /* @__PURE__ */ e("span", { children: "No difference found" }) }) : /* @__PURE__ */ e(le, { hunk: { ...C, changes: b } }, J);
252
252
  })
253
253
  },
254
254
  y ? "hide-common-data" : "show-common-data"
@@ -1,7 +1,7 @@
1
1
  import { jsx as e, jsxs as s, Fragment as M } from "react/jsx-runtime";
2
2
  import { D as j, z as F, B as A } from "./register-chai-top-bar-D6GjnauV.js";
3
- import { D as B, e as H, f as O, g as W, p as q, q as R, r as J, d as K, s as Q, t as V, v as X, w } from "./index-BFnMzGe6.js";
4
- import { au as Y, m as T, L as I, av as Z, l as ee, aw as se, j as ae, ax as f, ay as o } from "./index-CA1OwKJX.js";
3
+ import { D as B, e as H, f as O, g as W, p as q, q as R, r as J, d as K, s as Q, t as V, v as X, w } from "./index-DsQXiNA_.js";
4
+ import { au as Y, m as T, L as I, av as Z, l as ee, aw as se, j as ae, ax as f, ay as o } from "./index-DtMksfXx.js";
5
5
  import { find as G, startsWith as E, isEqual as ne, filter as te, get as D, map as le, isEmpty as ie } from "lodash-es";
6
6
  import { AlertCircle as re, StarIcon as ce, MoreHorizontal as oe, PencilIcon as de, Power as me, TrashIcon as ue } from "lucide-react";
7
7
  import { useState as S, useMemo as he, Suspense as L, lazy as z } from "react";
@@ -81,7 +81,7 @@ const fe = ({ page: a, onClose: g }) => {
81
81
  /* @__PURE__ */ e(J, { children: /* @__PURE__ */ e(A, { type: "submit", disabled: y || !E(i, `/${d}`) || ne(a == null ? void 0 : a.slug, i), children: l(y ? "Changing..." : "Change Slug") }) })
82
82
  ] })
83
83
  ] }) });
84
- }, Ne = z(() => import("./delete-page-41tvYcEw.js")), ye = z(() => import("./unpublish-page-CxkjTzBB.js")), ke = () => {
84
+ }, Ne = z(() => import("./delete-page-LnzR01A8.js")), ye = z(() => import("./unpublish-page-U_79Pwc0.js")), ke = () => {
85
85
  const { t: a } = U(), g = pe(Z), { selectedLang: l, fallbackLang: i, setSelectedLang: v } = K(), { data: N, isFetching: y } = ee(), { data: t } = se(), { data: r } = T(), x = he(() => {
86
86
  const n = r == null ? void 0 : r.find((h) => h.key === (t == null ? void 0 : t.pageType));
87
87
  return t != null && t.dynamic ? n == null ? void 0 : n.dynamicSlug : "";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),N=require("./register-chai-top-bar-DyW9GPzV.cjs"),a=require("./index-D30xvFa5.cjs"),n=require("./index-Bzn_gpaK.cjs"),r=require("lodash-es"),j=require("lucide-react"),c=require("react"),I=require("react-i18next"),L=require("sonner"),k=require("jotai"),M=({page:s,onClose:p})=>{const{t:l}=I.useTranslation(),[o,P]=c.useState(s.slug||""),{mutate:y,isPending:f}=n.useChangeSlug(),{data:i}=n.usePageTypes(),d=r.find(i,{key:s==null?void 0:s.pageType}),E=h=>{if(h.preventDefault(),!(s!=null&&s.primaryPage)&&Object.keys(n.LANGUAGES).some(S=>o===`/${S}`||r.startsWith(o,`/${S}/`))){L.toast.error(l("Error"),{description:l("Slugs cannot start with a language code for primary page")});return}y({...s,slug:o},{onSuccess:p})},m=(s==null?void 0:s.lang)||"";return e.jsx(a.Dialog,{open:!!s,onOpenChange:p,children:e.jsxs(a.DialogContent,{children:[e.jsxs(a.DialogHeader,{children:[e.jsx(a.DialogTitle,{children:l("Change Slug")}),e.jsx(a.DialogDescription,{className:"text-xs",children:e.jsxs(N.Alert,{variant:"destructive",className:"mt-2",children:[e.jsx(j.AlertCircle,{className:"h-4 w-4"}),l("Changing the slug may have impact on your SEO. Please proceed with caution.")]})})]}),e.jsxs("form",{onSubmit:E,children:[e.jsxs("div",{className:"space-y-4 py-4 text-sm",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{children:[e.jsxs("span",{children:[l("Type"),":"]}),e.jsxs("span",{className:"font-medium text-gray-600",children:[" ",(d==null?void 0:d.name)||(s==null?void 0:s.pageType)]})]}),e.jsxs("div",{children:[e.jsxs("span",{children:[l("Name"),":"]}),e.jsxs("span",{className:"font-medium text-gray-600",children:[" ",s.name]})]})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs(a.Label,{htmlFor:"slug",className:"text-right",children:[l("Slug")," ",e.jsxs("small",{className:"font-light text-gray-500",children:[l("Slug should start with")," /",m]})]}),e.jsx(N.Input,{id:"slug",value:o,onChange:h=>{const x=h.target.value;r.startsWith(x,`/${m}`)&&P(x)},className:"col-span-3",required:!0,pattern:"^/.*",title:l("Slug must start with /"),placeholder:l("Enter page slug")})]})]}),e.jsx(a.DialogFooter,{children:e.jsx(N.Button,{type:"submit",disabled:f||!r.startsWith(o,`/${m}`)||r.isEqual(s==null?void 0:s.slug,o),children:l(f?"Changing...":"Change Slug")})})]})]})})},T=c.lazy(()=>Promise.resolve().then(()=>require("./delete-page-BHPlx8ec.cjs"))),q=c.lazy(()=>Promise.resolve().then(()=>require("./unpublish-page-CPjHmtSM.cjs"))),_=()=>{const{t:s}=I.useTranslation(),p=k.useSetAtom(n.addNewLangAtom),{selectedLang:l,fallbackLang:o,setSelectedLang:P}=a.useLanguages(),{data:y,isFetching:f}=n.useLanguagePages(),{data:i}=n.useChaiCurrentPage(),{data:d}=n.usePageTypes(),E=c.useMemo(()=>{const t=d==null?void 0:d.find(g=>g.key===(i==null?void 0:i.pageType));return i!=null&&i.dynamic?t==null?void 0:t.dynamicSlug:""},[d,i==null?void 0:i.pageType,i==null?void 0:i.dynamic]),[m,h]=c.useState(null),[x,C]=c.useState(null),[S,A]=c.useState(null),{data:b}=n.useWebsiteSetting(),D=r.filter(r.get(b,"languages")||["en"],t=>!r.find(y,{lang:t})&&t!==r.get(b,"fallbackLang"));return e.jsxs("div",{className:"space-y-4",children:[e.jsx("ul",{className:"space-y-2",children:f?e.jsxs("div",{className:"w-full space-y-3 py-4",children:[e.jsx("div",{className:"h-8 w-full animate-pulse rounded bg-gray-300"}),e.jsx("div",{className:"h-8 w-full animate-pulse rounded bg-gray-300"}),e.jsx("div",{className:"h-8 w-full animate-pulse rounded bg-gray-300"})]}):r.map(y,t=>{const g=t.lang,v=t.slug,w=!t.primaryPage,G=g===l;return e.jsxs(e.Fragment,{children:[e.jsxs("li",{className:`flex w-full cursor-pointer items-center justify-between rounded p-2 text-slate-500 ${G?"bg-gray-200":"hover:bg-gray-100"}`,onClick:()=>P(g),children:[e.jsxs("div",{className:"flex-1 gap-x-3",children:[e.jsxs("div",{className:"flex items-center gap-x-2 text-[13px] text-slate-800",children:[e.jsx("div",{className:`h-2.5 w-2.5 rounded-full ${t.online?"bg-green-300":"bg-gray-300"}`}),r.get(n.LANGUAGES,w?o:g,g)]}),e.jsxs("div",{children:[v&&e.jsxs("div",{className:"text-[11px] font-light text-slate-600",children:["Slug: ",e.jsx("b",{className:"font-mono font-medium",children:E?`${v}/${E}`:v})]}),e.jsxs("div",{className:"text-[11px] font-light text-slate-600",children:["Name:",e.jsxs("b",{className:"font-medium",children:[" ",t.name," "]})]})]})]}),w?e.jsxs("div",{className:"flex items-center gap-x-1 text-[11px] text-orange-500",children:[e.jsx(j.StarIcon,{fill:"orange",className:"h-3 w-3"}),e.jsx("b",{children:" Primary"})]}):e.jsx("div",{className:"flex items-center gap-x-3",children:e.jsx(n.PermissionChecker,{permissions:[n.PAGES_PERMISSIONS.EDIT_PAGE,n.PAGES_PERMISSIONS.DELETE_PAGE,n.PAGES_PERMISSIONS.UNPUBLISH_PAGE],children:e.jsxs(a.DropdownMenu,{children:[e.jsx(a.DropdownMenuTrigger,{asChild:!0,onClick:u=>u.stopPropagation(),children:e.jsx(N.Button,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",children:e.jsx(j.MoreHorizontal,{className:"h-4 w-4"})})}),e.jsxs(a.DropdownMenuContent,{align:"end",className:"z-[9999] text-sm",children:[e.jsx(n.PermissionChecker,{permissions:[n.PAGES_PERMISSIONS.EDIT_PAGE],children:e.jsxs(a.DropdownMenuItem,{className:"flex cursor-pointer items-center gap-2",onClick:u=>{u.stopPropagation(),p({edit:!0,id:t.id,primaryPage:t.primaryPage})},children:[e.jsx(j.PencilIcon,{className:"size-3"}),s("Edit")]})}),e.jsx(n.PermissionChecker,{permissions:[n.PAGES_PERMISSIONS.UNPUBLISH_PAGE],children:(t==null?void 0:t.online)&&e.jsxs(a.DropdownMenuItem,{className:"flex cursor-pointer items-center gap-2",onClick:u=>{u.stopPropagation(),C(t)},children:[e.jsx(j.Power,{className:"size-3"}),s("Unpublish")]})}),e.jsx(n.PermissionChecker,{permissions:[n.PAGES_PERMISSIONS.DELETE_PAGE],children:e.jsxs(a.DropdownMenuItem,{className:"flex cursor-pointer items-center gap-2",onClick:u=>{u.stopPropagation(),h(t)},children:[e.jsx(j.TrashIcon,{className:"size-3"}),s("Delete")]})})]})]})})})]},t.id),e.jsx("div",{className:"h-1 w-full border-b"})]})})}),e.jsx(n.PermissionChecker,{permissions:[n.PAGES_PERMISSIONS.ADD_PAGE],children:e.jsx("div",{className:"flex w-full justify-center",children:e.jsx(N.Button,{variant:"default",size:"sm",disabled:r.isEmpty(D),onClick:()=>{p({primaryPage:i==null?void 0:i.id,edit:!1})},children:s("Add new language page")})})}),m&&e.jsx(c.Suspense,{children:e.jsx(T,{page:m,onClose:()=>h(null)})}),x&&e.jsx(c.Suspense,{children:e.jsx(q,{page:x,onClose:()=>C(null)})}),S&&e.jsx(c.Suspense,{children:e.jsx(M,{page:S,onClose:()=>A(null)})})]})};exports.default=_;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),N=require("./register-chai-top-bar-DyW9GPzV.cjs"),a=require("./index-mPCp0j2h.cjs"),n=require("./index-CAhDwfHE.cjs"),r=require("lodash-es"),j=require("lucide-react"),c=require("react"),I=require("react-i18next"),L=require("sonner"),k=require("jotai"),M=({page:s,onClose:p})=>{const{t:l}=I.useTranslation(),[o,P]=c.useState(s.slug||""),{mutate:y,isPending:f}=n.useChangeSlug(),{data:i}=n.usePageTypes(),d=r.find(i,{key:s==null?void 0:s.pageType}),E=h=>{if(h.preventDefault(),!(s!=null&&s.primaryPage)&&Object.keys(n.LANGUAGES).some(S=>o===`/${S}`||r.startsWith(o,`/${S}/`))){L.toast.error(l("Error"),{description:l("Slugs cannot start with a language code for primary page")});return}y({...s,slug:o},{onSuccess:p})},m=(s==null?void 0:s.lang)||"";return e.jsx(a.Dialog,{open:!!s,onOpenChange:p,children:e.jsxs(a.DialogContent,{children:[e.jsxs(a.DialogHeader,{children:[e.jsx(a.DialogTitle,{children:l("Change Slug")}),e.jsx(a.DialogDescription,{className:"text-xs",children:e.jsxs(N.Alert,{variant:"destructive",className:"mt-2",children:[e.jsx(j.AlertCircle,{className:"h-4 w-4"}),l("Changing the slug may have impact on your SEO. Please proceed with caution.")]})})]}),e.jsxs("form",{onSubmit:E,children:[e.jsxs("div",{className:"space-y-4 py-4 text-sm",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{children:[e.jsxs("span",{children:[l("Type"),":"]}),e.jsxs("span",{className:"font-medium text-gray-600",children:[" ",(d==null?void 0:d.name)||(s==null?void 0:s.pageType)]})]}),e.jsxs("div",{children:[e.jsxs("span",{children:[l("Name"),":"]}),e.jsxs("span",{className:"font-medium text-gray-600",children:[" ",s.name]})]})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs(a.Label,{htmlFor:"slug",className:"text-right",children:[l("Slug")," ",e.jsxs("small",{className:"font-light text-gray-500",children:[l("Slug should start with")," /",m]})]}),e.jsx(N.Input,{id:"slug",value:o,onChange:h=>{const x=h.target.value;r.startsWith(x,`/${m}`)&&P(x)},className:"col-span-3",required:!0,pattern:"^/.*",title:l("Slug must start with /"),placeholder:l("Enter page slug")})]})]}),e.jsx(a.DialogFooter,{children:e.jsx(N.Button,{type:"submit",disabled:f||!r.startsWith(o,`/${m}`)||r.isEqual(s==null?void 0:s.slug,o),children:l(f?"Changing...":"Change Slug")})})]})]})})},T=c.lazy(()=>Promise.resolve().then(()=>require("./delete-page-D0tdn6VW.cjs"))),q=c.lazy(()=>Promise.resolve().then(()=>require("./unpublish-page-DEPFjGuu.cjs"))),_=()=>{const{t:s}=I.useTranslation(),p=k.useSetAtom(n.addNewLangAtom),{selectedLang:l,fallbackLang:o,setSelectedLang:P}=a.useLanguages(),{data:y,isFetching:f}=n.useLanguagePages(),{data:i}=n.useChaiCurrentPage(),{data:d}=n.usePageTypes(),E=c.useMemo(()=>{const t=d==null?void 0:d.find(g=>g.key===(i==null?void 0:i.pageType));return i!=null&&i.dynamic?t==null?void 0:t.dynamicSlug:""},[d,i==null?void 0:i.pageType,i==null?void 0:i.dynamic]),[m,h]=c.useState(null),[x,C]=c.useState(null),[S,A]=c.useState(null),{data:b}=n.useWebsiteSetting(),D=r.filter(r.get(b,"languages")||["en"],t=>!r.find(y,{lang:t})&&t!==r.get(b,"fallbackLang"));return e.jsxs("div",{className:"space-y-4",children:[e.jsx("ul",{className:"space-y-2",children:f?e.jsxs("div",{className:"w-full space-y-3 py-4",children:[e.jsx("div",{className:"h-8 w-full animate-pulse rounded bg-gray-300"}),e.jsx("div",{className:"h-8 w-full animate-pulse rounded bg-gray-300"}),e.jsx("div",{className:"h-8 w-full animate-pulse rounded bg-gray-300"})]}):r.map(y,t=>{const g=t.lang,v=t.slug,w=!t.primaryPage,G=g===l;return e.jsxs(e.Fragment,{children:[e.jsxs("li",{className:`flex w-full cursor-pointer items-center justify-between rounded p-2 text-slate-500 ${G?"bg-gray-200":"hover:bg-gray-100"}`,onClick:()=>P(g),children:[e.jsxs("div",{className:"flex-1 gap-x-3",children:[e.jsxs("div",{className:"flex items-center gap-x-2 text-[13px] text-slate-800",children:[e.jsx("div",{className:`h-2.5 w-2.5 rounded-full ${t.online?"bg-green-300":"bg-gray-300"}`}),r.get(n.LANGUAGES,w?o:g,g)]}),e.jsxs("div",{children:[v&&e.jsxs("div",{className:"text-[11px] font-light text-slate-600",children:["Slug: ",e.jsx("b",{className:"font-mono font-medium",children:E?`${v}/${E}`:v})]}),e.jsxs("div",{className:"text-[11px] font-light text-slate-600",children:["Name:",e.jsxs("b",{className:"font-medium",children:[" ",t.name," "]})]})]})]}),w?e.jsxs("div",{className:"flex items-center gap-x-1 text-[11px] text-orange-500",children:[e.jsx(j.StarIcon,{fill:"orange",className:"h-3 w-3"}),e.jsx("b",{children:" Primary"})]}):e.jsx("div",{className:"flex items-center gap-x-3",children:e.jsx(n.PermissionChecker,{permissions:[n.PAGES_PERMISSIONS.EDIT_PAGE,n.PAGES_PERMISSIONS.DELETE_PAGE,n.PAGES_PERMISSIONS.UNPUBLISH_PAGE],children:e.jsxs(a.DropdownMenu,{children:[e.jsx(a.DropdownMenuTrigger,{asChild:!0,onClick:u=>u.stopPropagation(),children:e.jsx(N.Button,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",children:e.jsx(j.MoreHorizontal,{className:"h-4 w-4"})})}),e.jsxs(a.DropdownMenuContent,{align:"end",className:"z-[9999] text-sm",children:[e.jsx(n.PermissionChecker,{permissions:[n.PAGES_PERMISSIONS.EDIT_PAGE],children:e.jsxs(a.DropdownMenuItem,{className:"flex cursor-pointer items-center gap-2",onClick:u=>{u.stopPropagation(),p({edit:!0,id:t.id,primaryPage:t.primaryPage})},children:[e.jsx(j.PencilIcon,{className:"size-3"}),s("Edit")]})}),e.jsx(n.PermissionChecker,{permissions:[n.PAGES_PERMISSIONS.UNPUBLISH_PAGE],children:(t==null?void 0:t.online)&&e.jsxs(a.DropdownMenuItem,{className:"flex cursor-pointer items-center gap-2",onClick:u=>{u.stopPropagation(),C(t)},children:[e.jsx(j.Power,{className:"size-3"}),s("Unpublish")]})}),e.jsx(n.PermissionChecker,{permissions:[n.PAGES_PERMISSIONS.DELETE_PAGE],children:e.jsxs(a.DropdownMenuItem,{className:"flex cursor-pointer items-center gap-2",onClick:u=>{u.stopPropagation(),h(t)},children:[e.jsx(j.TrashIcon,{className:"size-3"}),s("Delete")]})})]})]})})})]},t.id),e.jsx("div",{className:"h-1 w-full border-b"})]})})}),e.jsx(n.PermissionChecker,{permissions:[n.PAGES_PERMISSIONS.ADD_PAGE],children:e.jsx("div",{className:"flex w-full justify-center",children:e.jsx(N.Button,{variant:"default",size:"sm",disabled:r.isEmpty(D),onClick:()=>{p({primaryPage:i==null?void 0:i.id,edit:!1})},children:s("Add new language page")})})}),m&&e.jsx(c.Suspense,{children:e.jsx(T,{page:m,onClose:()=>h(null)})}),x&&e.jsx(c.Suspense,{children:e.jsx(q,{page:x,onClose:()=>C(null)})}),S&&e.jsx(c.Suspense,{children:e.jsx(M,{page:S,onClose:()=>A(null)})})]})};exports.default=_;
@@ -0,0 +1,175 @@
1
+ <section chai-name="Agency Showcase Bento" class="relative overflow-hidden bg-background px-6 py-20 lg:py-28">
2
+ <div
3
+ class="absolute bottom-0 right-0 -z-10 h-80 w-80 translate-x-1/3 translate-y-1/3 rounded-full bg-primary/5 blur-3xl"></div>
4
+
5
+ <div class="mx-auto max-w-7xl">
6
+ <div chai-name="Section Header" class="mb-14 text-center">
7
+ <span class="mb-3 inline-block font-mono text-xs font-bold uppercase tracking-[0.2em] text-primary"
8
+ >Why Choose Us</span
9
+ >
10
+ <h2
11
+ class="mx-auto mb-4 max-w-3xl text-3xl font-extrabold leading-tight tracking-tight text-foreground sm:text-4xl lg:text-5xl">
12
+ A full-service agency built for the <span class="text-primary">modern era.</span>
13
+ </h2>
14
+ <p class="mx-auto max-w-lg text-base text-muted-foreground">
15
+ We combine strategy, design, and technology to deliver experiences that move the needle.
16
+ </p>
17
+ </div>
18
+
19
+ <div chai-name="Bento Grid" class="grid grid-cols-1 gap-4 md:grid-cols-3 lg:grid-cols-3 lg:grid-rows-3">
20
+ <div class="group relative overflow-hidden rounded-md border border-border bg-card md:col-span-2 md:row-span-2">
21
+ <img
22
+ src="https://picsum.photos/seed/agency-hero-work/900/700"
23
+ alt="Agency team working on a large-scale brand campaign in a modern studio"
24
+ class="h-full w-full object-cover transition-transform duration-700 group-hover:scale-105"
25
+ width="900"
26
+ height="700" />
27
+ <div class="absolute inset-0 bg-gradient-to-t from-card via-card/30 to-transparent"></div>
28
+ <div class="absolute bottom-0 left-0 right-0 p-8">
29
+ <span
30
+ class="mb-2 inline-block rounded-full bg-primary px-3 py-1 text-[10px] font-bold uppercase tracking-widest text-primary-foreground"
31
+ >Case Study</span
32
+ >
33
+ <h3 class="mb-2 text-2xl font-bold text-foreground">Vectro Global Launch</h3>
34
+ <p class="max-w-md text-sm text-muted-foreground">
35
+ Full rebrand, website, and launch campaign that drove 340% increase in qualified leads within 90 days.
36
+ </p>
37
+ <a href="#" class="mt-4 inline-flex items-center gap-1 text-sm font-semibold text-primary">
38
+ Read case study
39
+ <svg
40
+ xmlns="http://www.w3.org/2000/svg"
41
+ width="14"
42
+ height="14"
43
+ viewBox="0 0 24 24"
44
+ fill="none"
45
+ stroke="currentColor"
46
+ stroke-width="2"
47
+ stroke-linecap="round"
48
+ stroke-linejoin="round">
49
+ <path d="M5 12h14" />
50
+ <path d="m12 5 7 7-7 7" />
51
+ </svg>
52
+ </a>
53
+ </div>
54
+ </div>
55
+
56
+ <div
57
+ class="group rounded-md border border-border bg-primary p-8 text-primary-foreground transition-all hover:shadow-lg">
58
+ <div class="mb-4 flex h-10 w-10 items-center justify-center rounded-md bg-primary-foreground/10">
59
+ <svg
60
+ xmlns="http://www.w3.org/2000/svg"
61
+ width="20"
62
+ height="20"
63
+ viewBox="0 0 24 24"
64
+ fill="none"
65
+ stroke="currentColor"
66
+ stroke-width="2"
67
+ stroke-linecap="round"
68
+ stroke-linejoin="round"
69
+ class="text-primary-foreground">
70
+ <path
71
+ d="m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z" />
72
+ </svg>
73
+ </div>
74
+ <h3 class="mb-2 text-lg font-bold">Award-Winning</h3>
75
+ <p class="text-sm leading-relaxed text-primary-foreground/70">
76
+ 15+ industry awards including Webby, Awwwards, and Communication Arts.
77
+ </p>
78
+ </div>
79
+
80
+ <div
81
+ class="group rounded-md border border-border bg-card p-8 transition-all hover:border-primary/30 hover:shadow-lg">
82
+ <div class="mb-4 flex h-10 w-10 items-center justify-center rounded-md bg-accent">
83
+ <svg
84
+ xmlns="http://www.w3.org/2000/svg"
85
+ width="20"
86
+ height="20"
87
+ viewBox="0 0 24 24"
88
+ fill="none"
89
+ stroke="currentColor"
90
+ stroke-width="2"
91
+ stroke-linecap="round"
92
+ stroke-linejoin="round"
93
+ class="text-accent-foreground">
94
+ <circle cx="12" cy="12" r="10" />
95
+ <polyline points="12 6 12 12 16 14" />
96
+ </svg>
97
+ </div>
98
+ <h3 class="mb-2 text-lg font-bold text-foreground">Fast Turnaround</h3>
99
+ <p class="text-sm leading-relaxed text-muted-foreground">
100
+ Agile sprints with weekly deliverables. Most projects launch within 6–8 weeks.
101
+ </p>
102
+ </div>
103
+
104
+ <div
105
+ class="group rounded-md border border-border bg-card p-8 transition-all hover:border-primary/30 hover:shadow-lg md:col-span-2">
106
+ <div class="flex flex-col gap-6 md:flex-row md:items-center md:justify-between">
107
+ <div>
108
+ <div class="mb-4 flex h-10 w-10 items-center justify-center rounded-md bg-secondary">
109
+ <svg
110
+ xmlns="http://www.w3.org/2000/svg"
111
+ width="20"
112
+ height="20"
113
+ viewBox="0 0 24 24"
114
+ fill="none"
115
+ stroke="currentColor"
116
+ stroke-width="2"
117
+ stroke-linecap="round"
118
+ stroke-linejoin="round"
119
+ class="text-secondary-foreground">
120
+ <path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" />
121
+ <circle cx="9" cy="7" r="4" />
122
+ <path d="M22 21v-2a4 4 0 0 0-3-3.87" />
123
+ <path d="M16 3.13a4 4 0 0 1 0 7.75" />
124
+ </svg>
125
+ </div>
126
+ <h3 class="mb-2 text-lg font-bold text-foreground">Dedicated Team Model</h3>
127
+ <p class="max-w-sm text-sm leading-relaxed text-muted-foreground">
128
+ Every client gets a dedicated strategist, designer, and developer. No hand-offs, no miscommunication.
129
+ </p>
130
+ </div>
131
+ <div class="flex flex-shrink-0 items-center gap-6 rounded-md border border-border bg-background px-6 py-4">
132
+ <div class="text-center">
133
+ <div class="text-2xl font-bold text-foreground">48</div>
134
+ <div class="text-[10px] text-muted-foreground">Team members</div>
135
+ </div>
136
+ <div class="h-8 w-px bg-border"></div>
137
+ <div class="text-center">
138
+ <div class="text-2xl font-bold text-foreground">6</div>
139
+ <div class="text-[10px] text-muted-foreground">Time zones</div>
140
+ </div>
141
+ <div class="h-8 w-px bg-border"></div>
142
+ <div class="text-center">
143
+ <div class="text-2xl font-bold text-foreground">3</div>
144
+ <div class="text-[10px] text-muted-foreground">Offices</div>
145
+ </div>
146
+ </div>
147
+ </div>
148
+ </div>
149
+
150
+ <div
151
+ class="group rounded-md border border-border bg-foreground p-8 text-background transition-all hover:shadow-lg">
152
+ <div class="mb-4 flex h-10 w-10 items-center justify-center rounded-md bg-background/10">
153
+ <svg
154
+ xmlns="http://www.w3.org/2000/svg"
155
+ width="20"
156
+ height="20"
157
+ viewBox="0 0 24 24"
158
+ fill="none"
159
+ stroke="currentColor"
160
+ stroke-width="2"
161
+ stroke-linecap="round"
162
+ stroke-linejoin="round"
163
+ class="text-background">
164
+ <path
165
+ d="M21 12a9 9 0 0 1-9 9m9-9a9 9 0 0 0-9-9m9 9H3m9 9a9 9 0 0 1-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 0 1 9-9" />
166
+ </svg>
167
+ </div>
168
+ <h3 class="mb-2 text-lg font-bold">Global Reach</h3>
169
+ <p class="text-sm leading-relaxed text-background/70">
170
+ Clients across 28 countries. Multilingual campaigns in 12+ languages.
171
+ </p>
172
+ </div>
173
+ </div>
174
+ </div>
175
+ </section>
@@ -0,0 +1,116 @@
1
+ <section chai-name="Creative Portfolio Bento" class="relative bg-card px-6 py-20 lg:py-28">
2
+ <div class="mx-auto max-w-7xl">
3
+ <div chai-name="Section Header" class="mb-14 flex flex-col gap-4 lg:flex-row lg:items-end lg:justify-between">
4
+ <div>
5
+ <div class="mb-3 flex items-center gap-3">
6
+ <div class="h-px w-10 bg-primary"></div>
7
+ <span class="text-sm font-semibold text-primary">Selected Work</span>
8
+ </div>
9
+ <h2 class="max-w-md font-serif text-3xl font-light leading-tight text-foreground sm:text-4xl lg:text-5xl">
10
+ Projects that
11
+ <em class="not-italic text-primary">define</em> brands.
12
+ </h2>
13
+ </div>
14
+ <a
15
+ href="#"
16
+ class="inline-flex items-center gap-2 text-sm font-semibold text-foreground underline underline-offset-4 transition-colors hover:text-primary">
17
+ View all projects
18
+ <svg
19
+ xmlns="http://www.w3.org/2000/svg"
20
+ width="14"
21
+ height="14"
22
+ viewBox="0 0 24 24"
23
+ fill="none"
24
+ stroke="currentColor"
25
+ stroke-width="2"
26
+ stroke-linecap="round"
27
+ stroke-linejoin="round">
28
+ <path d="m7 7 10 10" />
29
+ <path d="M17 7v10H7" />
30
+ </svg>
31
+ </a>
32
+ </div>
33
+
34
+ <div chai-name="Bento Mosaic" class="grid grid-cols-2 gap-3 md:grid-cols-4 md:grid-rows-3 lg:gap-4">
35
+ <div class="group relative col-span-2 row-span-2 overflow-hidden rounded-md border border-border bg-background">
36
+ <img
37
+ src="https://picsum.photos/seed/portfolio-hero-project/800/700"
38
+ alt="Brand identity project for luxury fashion label"
39
+ class="h-full w-full object-cover transition-transform duration-700 group-hover:scale-105"
40
+ width="800"
41
+ height="700" />
42
+ <div class="absolute inset-0 bg-gradient-to-t from-background via-background/20 to-transparent"></div>
43
+ <div class="absolute bottom-0 left-0 right-0 p-6 lg:p-8">
44
+ <span
45
+ class="mb-2 inline-block rounded-full bg-primary px-3 py-1 text-[10px] font-bold uppercase tracking-widest text-primary-foreground"
46
+ >Featured</span
47
+ >
48
+ <h3 class="mb-1 text-xl font-bold text-foreground lg:text-2xl">Meridian Rebrand</h3>
49
+ <p class="text-sm text-muted-foreground">Brand Identity &amp; Digital Strategy</p>
50
+ </div>
51
+ </div>
52
+
53
+ <div class="group relative overflow-hidden rounded-md border border-border bg-background">
54
+ <img
55
+ src="https://picsum.photos/seed/portfolio-project2/400/350"
56
+ alt="Mobile app interface design for fintech startup"
57
+ class="h-full w-full object-cover transition-transform duration-700 group-hover:scale-105"
58
+ width="400"
59
+ height="350" />
60
+ <div
61
+ class="absolute inset-0 bg-gradient-to-t from-background/90 to-transparent opacity-0 transition-opacity group-hover:opacity-100">
62
+ <div class="absolute bottom-0 left-0 right-0 p-4">
63
+ <h3 class="text-sm font-bold text-foreground">Flux Finance</h3>
64
+ <p class="text-xs text-muted-foreground">Mobile App Design</p>
65
+ </div>
66
+ </div>
67
+ </div>
68
+
69
+ <div class="group relative overflow-hidden rounded-md border border-border bg-background">
70
+ <img
71
+ src="https://picsum.photos/seed/portfolio-project3/400/350"
72
+ alt="E-commerce website redesign with modern aesthetics"
73
+ class="h-full w-full object-cover transition-transform duration-700 group-hover:scale-105"
74
+ width="400"
75
+ height="350" />
76
+ <div
77
+ class="absolute inset-0 bg-gradient-to-t from-background/90 to-transparent opacity-0 transition-opacity group-hover:opacity-100">
78
+ <div class="absolute bottom-0 left-0 right-0 p-4">
79
+ <h3 class="text-sm font-bold text-foreground">Aura Commerce</h3>
80
+ <p class="text-xs text-muted-foreground">E-commerce Redesign</p>
81
+ </div>
82
+ </div>
83
+ </div>
84
+
85
+ <div
86
+ class="group relative overflow-hidden rounded-md border border-border bg-primary p-6 transition-all hover:shadow-lg">
87
+ <div class="flex h-full flex-col justify-between">
88
+ <div>
89
+ <div class="text-4xl font-black text-primary-foreground">140+</div>
90
+ <div class="mt-1 text-sm text-primary-foreground/70">Projects delivered worldwide</div>
91
+ </div>
92
+ <div class="mt-4 flex items-center gap-2">
93
+ <div class="h-1.5 w-1.5 animate-pulse rounded-full bg-primary-foreground"></div>
94
+ <span class="text-xs font-medium text-primary-foreground/80">Currently accepting projects</span>
95
+ </div>
96
+ </div>
97
+ </div>
98
+
99
+ <div class="group relative overflow-hidden rounded-md border border-border bg-background">
100
+ <img
101
+ src="https://picsum.photos/seed/portfolio-project4/400/350"
102
+ alt="Packaging design for organic skincare brand"
103
+ class="h-full w-full object-cover transition-transform duration-700 group-hover:scale-105"
104
+ width="400"
105
+ height="350" />
106
+ <div
107
+ class="absolute inset-0 bg-gradient-to-t from-background/90 to-transparent opacity-0 transition-opacity group-hover:opacity-100">
108
+ <div class="absolute bottom-0 left-0 right-0 p-4">
109
+ <h3 class="text-sm font-bold text-foreground">Botanica Packaging</h3>
110
+ <p class="text-xs text-muted-foreground">Packaging &amp; Print</p>
111
+ </div>
112
+ </div>
113
+ </div>
114
+ </div>
115
+ </div>
116
+ </section>