@chaibuilder/sdk 4.0.0-beta.24 → 4.0.0-beta.26

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 (122) hide show
  1. package/dist/{2SSKDMRQ-DTcPSOGn.js → 2SSKDMRQ-Bk_4y8lw.js} +2 -2
  2. package/dist/{2SSKDMRQ-C6XmPkPR.cjs → 2SSKDMRQ-vWeQ_IyI.cjs} +1 -1
  3. package/dist/{AP7HFJJL-6aBLUYOi.cjs → AP7HFJJL-CMPLeI6t.cjs} +1 -1
  4. package/dist/{AP7HFJJL-CVazlaEj.js → AP7HFJJL-D_mI2XSw.js} +1 -1
  5. package/dist/{IconPicker-sbWeQ9M9.cjs → IconPicker-DB_PpKvH.cjs} +1 -1
  6. package/dist/{IconPicker-CcBoA1K0.js → IconPicker-jc6_JzXf.js} +1 -1
  7. package/dist/{WDYDFRGG-CwiYliX0.js → WDYDFRGG-B4H3RPcp.js} +2 -2
  8. package/dist/{WDYDFRGG-BtzyRDmj.cjs → WDYDFRGG-D7vzbPjk.cjs} +1 -1
  9. package/dist/{active-in-another-tab-B4O3FEEg.js → active-in-another-tab-CDhFxBU7.js} +2 -2
  10. package/dist/{active-in-another-tab-DRJY0QqU.cjs → active-in-another-tab-CMPHyyHE.cjs} +1 -1
  11. package/dist/{add-new-language-page-BfYL9jXF.js → add-new-language-page-BliZ46WW.js} +3 -3
  12. package/dist/{add-new-language-page-CKIRTFjr.cjs → add-new-language-page-IbMzbf4v.cjs} +1 -1
  13. package/dist/{add-new-page-dzN_CD2c.cjs → add-new-page-BJJqSKp0.cjs} +1 -1
  14. package/dist/{add-new-page-DVgxz4fs.js → add-new-page-DUCKfyWo.js} +2 -2
  15. package/dist/{ai-panel-content-Dyw4RHCV.cjs → ai-panel-content-DWOqjq3Z.cjs} +1 -1
  16. package/dist/{ai-panel-content-D5eFLI_B.js → ai-panel-content-GeQIaXy8.js} +3 -3
  17. package/dist/{ai-panel-default-lang-DEj9Qx2M.cjs → ai-panel-default-lang-DGNDrfam.cjs} +2 -2
  18. package/dist/{ai-panel-default-lang-Cj7meZBD.js → ai-panel-default-lang-VQsV6KB3.js} +3 -3
  19. package/dist/{ai-panel-other-lang-Da2XLEcm.cjs → ai-panel-other-lang-DvXF0Nn5.cjs} +1 -1
  20. package/dist/{ai-panel-other-lang-Cbi6HKzd.js → ai-panel-other-lang-SuC8jyfr.js} +3 -3
  21. package/dist/{ai-prompt-input-B6QoqT9B.js → ai-prompt-input-CB6iQAmE.js} +1 -1
  22. package/dist/{ai-prompt-input-DXS8gzex.cjs → ai-prompt-input-a8s-JrZb.cjs} +1 -1
  23. package/dist/{ai-translation-prompt-Dmq_Ahjf.js → ai-translation-prompt-CoNVDclG.js} +1 -1
  24. package/dist/{ai-translation-prompt-Uswft8iz.cjs → ai-translation-prompt-Qn1Sz4BI.cjs} +1 -1
  25. package/dist/change-password-modal-BtdsU0mm.cjs +1 -0
  26. package/dist/change-password-modal-CMEo8lEm.js +137 -0
  27. package/dist/{code-editor-wQWmwFKW.js → code-editor-CTMQr0aU.js} +1 -1
  28. package/dist/{code-editor-DbSBrsUA.cjs → code-editor-CjatfjZe.cjs} +1 -1
  29. package/dist/{continue-editing-in-this-client-Dkkzk8YZ.cjs → continue-editing-in-this-client-7swLl0kq.cjs} +1 -1
  30. package/dist/{continue-editing-in-this-client-BV0OrgEU.js → continue-editing-in-this-client-CNVJZvXQ.js} +2 -2
  31. package/dist/core.cjs +1 -1
  32. package/dist/core.js +1 -1
  33. package/dist/{css-import-modal-Co_YLkLB.js → css-import-modal-B3XY8Hzw.js} +1 -1
  34. package/dist/{css-import-modal-C3f5sphx.cjs → css-import-modal-D2RqE-V0.cjs} +1 -1
  35. package/dist/{delete-design-token-CJPAcsWp.js → delete-design-token-DEyYFVHU.js} +1 -1
  36. package/dist/{delete-design-token-zzNmNYLR.cjs → delete-design-token-Dd3b86G7.cjs} +1 -1
  37. package/dist/{delete-page-CQTjB7ZZ.js → delete-page-BSn5mRvk.js} +2 -2
  38. package/dist/{delete-page-6lInxYM_.cjs → delete-page-BfsmsTek.cjs} +1 -1
  39. package/dist/{design-token-usage-blwlGuEE.cjs → design-token-usage-BY8meqAt.cjs} +1 -1
  40. package/dist/{design-token-usage-BQY6eqzE.js → design-token-usage-f20BdlHE.js} +1 -1
  41. package/dist/{digital-asset-manager-cGUpTcu3.cjs → digital-asset-manager-Pi0YiB35.cjs} +1 -1
  42. package/dist/{digital-asset-manager-lPKoJ4FH.js → digital-asset-manager-iXt27NlP.js} +3 -3
  43. package/dist/{duplicate-page-Dmgqp93w.js → duplicate-page-BuVub6uY.js} +3 -3
  44. package/dist/{duplicate-page-rYeBMwHR.cjs → duplicate-page-g5hiQkrZ.cjs} +1 -1
  45. package/dist/{dynamic-page-selector-CVyA9Zp0.js → dynamic-page-selector-NZ-rKLo3.js} +2 -2
  46. package/dist/{dynamic-page-selector-zqGqpcww.cjs → dynamic-page-selector-z6UGEjk1.cjs} +1 -1
  47. package/dist/{get-chai-builder-theme-CfJkQYZc.js → get-chai-builder-theme-CHXhAcdV.js} +1 -1
  48. package/dist/{get-chai-builder-theme-Dm1z70lQ.cjs → get-chai-builder-theme-CMypjJk8.cjs} +1 -1
  49. package/dist/{image-editor-mVBb0VD_.js → image-editor--WT9183_.js} +1 -1
  50. package/dist/{image-editor-Cn1DgrNp.cjs → image-editor-C6cZZNbB.cjs} +1 -1
  51. package/dist/index-BGGNVIKx.cjs +5 -0
  52. package/dist/{index-EFWvSWoi.cjs → index-CfsIhbT2.cjs} +3 -3
  53. package/dist/{index-GfOB5KV1.js → index-ckjNCVor.js} +990 -978
  54. package/dist/{index-lm46VtIP.js → index-iRqgNs2O.js} +14 -10
  55. package/dist/{json-diff-viewer-D5yJoFh1.js → json-diff-viewer-DAQ-qSHk.js} +2 -2
  56. package/dist/{json-diff-viewer-BeSMdSd5.cjs → json-diff-viewer-DheqS084.cjs} +1 -1
  57. package/dist/{lang-panel-7qTejsLm.js → lang-panel-DRDPvY1i.js} +3 -3
  58. package/dist/{lang-panel-B-QUotOn.cjs → lang-panel-oLc-QyU4.cjs} +1 -1
  59. package/dist/{manage-design-tokens-TeWNZekH.cjs → manage-design-tokens-Hu25ejcC.cjs} +1 -1
  60. package/dist/{manage-design-tokens-DeH-yNJN.js → manage-design-tokens-rEzXQJRW.js} +2 -2
  61. package/dist/{mark-as-template-RkfNETRW.js → mark-as-template-BNbn5zQG.js} +2 -2
  62. package/dist/{mark-as-template-Co00KkhA.cjs → mark-as-template-DEThYoS6.cjs} +1 -1
  63. package/dist/{nested-path-selector-content-Dimjyy8J.js → nested-path-selector-content-BERhs6_L.js} +1 -1
  64. package/dist/{nested-path-selector-content-hBvmT_2A.cjs → nested-path-selector-content-Dz3-bNqT.cjs} +1 -1
  65. package/dist/{no-language-page-content-Bk3sTsdM.js → no-language-page-content-CPVIz5rC.js} +2 -2
  66. package/dist/{no-language-page-content-CLovr1bL.cjs → no-language-page-content-CrUkIrUJ.cjs} +1 -1
  67. package/dist/{no-language-page-dialog-C21Fq-UD.cjs → no-language-page-dialog-964r8feg.cjs} +1 -1
  68. package/dist/{no-language-page-dialog-Cx-YOrAd.js → no-language-page-dialog-DPDJ6gkQ.js} +2 -2
  69. package/dist/{page-creator-BBuYY84G.js → page-creator-CDcfL4al.js} +3 -3
  70. package/dist/{page-creator-BDmospqO.cjs → page-creator-kvymje2i.cjs} +1 -1
  71. package/dist/{page-lock-BrGWj326.js → page-lock-BpUGSiCT.js} +2 -2
  72. package/dist/{page-lock-DG5IvZaG.cjs → page-lock-gOE-Tt7g.cjs} +1 -1
  73. package/dist/{page-locked-dialog-DUktYJzU.js → page-locked-dialog-UQeYxWz1.js} +2 -2
  74. package/dist/{page-locked-dialog-DKnQpIMB.cjs → page-locked-dialog-aJFtoEzq.cjs} +1 -1
  75. package/dist/{page-manager-new-iYsDkUzG.cjs → page-manager-new-DBomYOFT.cjs} +1 -1
  76. package/dist/{page-manager-new-BfKYDWs7.js → page-manager-new-Dg02OZtc.js} +22 -22
  77. package/dist/{page-manager-search-and-filter-DVAGxnlw.js → page-manager-search-and-filter-CCTh5gkC.js} +2 -2
  78. package/dist/{page-manager-search-and-filter-CIspvIW2.cjs → page-manager-search-and-filter-pWHXOgMJ.cjs} +1 -1
  79. package/dist/{page-revisions-content-B84UtAxm.cjs → page-revisions-content-BDY8RXJW.cjs} +1 -1
  80. package/dist/{page-revisions-content-DB4mj_Cw.js → page-revisions-content-C6YjUAx9.js} +7 -7
  81. package/dist/pages.cjs +1 -1
  82. package/dist/pages.js +12 -12
  83. package/dist/{plugin-DVNaUexn.js → plugin-DH3BDqys.js} +7 -7
  84. package/dist/{plugin-BfC_qpW2.cjs → plugin-DO5QAuc1.cjs} +7 -7
  85. package/dist/{publish-pages-content-BRKsIr9W.js → publish-pages-content-8MQN9iLc.js} +17 -17
  86. package/dist/{publish-pages-content-ysv37LxZ.cjs → publish-pages-content-DjUd9oWi.cjs} +1 -1
  87. package/dist/render.cjs +1 -1
  88. package/dist/render.js +2 -2
  89. package/dist/{rte-widget-modal-Dj5BvA-1.js → rte-widget-modal-Bj7lxFEs.js} +1 -1
  90. package/dist/{rte-widget-modal-BS040t_9.cjs → rte-widget-modal-O31cHitM.cjs} +1 -1
  91. package/dist/{save-to-lib-D3kp0ovZ.js → save-to-lib-BMlowHNl.js} +2 -2
  92. package/dist/{save-to-lib-ClCCNy6W.cjs → save-to-lib-vxpiXsok.cjs} +1 -1
  93. package/dist/sdk.css +1 -1
  94. package/dist/{selected-block-display-BvRoOMt9.cjs → selected-block-display-BjhZTfSL.cjs} +1 -1
  95. package/dist/{selected-block-display-BtlTAkei.js → selected-block-display-BxHTDLna.js} +2 -2
  96. package/dist/{seo-panel-C_Cnwj1-.js → seo-panel-197ULlty.js} +2 -2
  97. package/dist/{seo-panel-CHGdB8_7.cjs → seo-panel-MrGhioya.cjs} +1 -1
  98. package/dist/{shared-json-ld-DA0wz-k3.cjs → shared-json-ld-6ovlKZ7L.cjs} +1 -1
  99. package/dist/{shared-json-ld-DPr0Douk.js → shared-json-ld-B2kfIim8.js} +24 -24
  100. package/dist/{slug-input-CqhlfgAe.js → slug-input-CSqTWSv8.js} +1 -1
  101. package/dist/{slug-input-DltqfQ3y.cjs → slug-input-CV-Dvosn.cjs} +1 -1
  102. package/dist/supabase-actions.cjs +1 -1
  103. package/dist/supabase-actions.d.ts +34 -0
  104. package/dist/supabase-actions.js +231 -192
  105. package/dist/{take-over-request-Bq7OF5Gp.cjs → take-over-request-BFZbLBOK.cjs} +1 -1
  106. package/dist/{take-over-request-ByUlm_HK.js → take-over-request-Ds_-1dOv.js} +2 -2
  107. package/dist/{theme-panel-footer-DG7Z5YjD.js → theme-panel-footer-C1f2KMBq.js} +2 -2
  108. package/dist/{theme-panel-footer-XYoM6sn5.cjs → theme-panel-footer-dHh8VGgj.cjs} +1 -1
  109. package/dist/{translation-warning-modal-DaBUipEY.js → translation-warning-modal-DPdVK3CD.js} +1 -1
  110. package/dist/{translation-warning-modal-DTxxfo0H.cjs → translation-warning-modal-HD8Mlj1e.cjs} +1 -1
  111. package/dist/{unmark-as-template-C9EXTj0X.cjs → unmark-as-template-D8wEsu9z.cjs} +1 -1
  112. package/dist/{unmark-as-template-BOFHOO0_.js → unmark-as-template-DLVNotM_.js} +2 -2
  113. package/dist/{unpublish-page-B5rev9W3.cjs → unpublish-page-Cl2R_dfN.cjs} +1 -1
  114. package/dist/{unpublish-page-KDM7kEEV.js → unpublish-page-ik9a66Rz.js} +2 -2
  115. package/dist/utils.cjs +1 -1
  116. package/dist/utils.js +1 -1
  117. package/dist/web-blocks.cjs +1 -1
  118. package/dist/web-blocks.js +23 -22
  119. package/dist/{web-preview-CvpevNzM.cjs → web-preview-CE39XTw0.cjs} +1 -1
  120. package/dist/{web-preview-BDgUTTr8.js → web-preview-ztlGD_Xm.js} +1 -1
  121. package/package.json +1 -1
  122. package/dist/index-B5qvHqN5.cjs +0 -5
@@ -1,6 +1,6 @@
1
1
  import { jsxs as i, jsx as r } from "react/jsx-runtime";
2
2
  import { B as M, z as f } from "./register-chai-top-bar-CX_JkRJn.js";
3
- import { a7 as b, a8 as C, P as j } from "./index-lm46VtIP.js";
3
+ import { a7 as b, a8 as C, P as j } from "./index-iRqgNs2O.js";
4
4
  import { MagnifyingGlassIcon as x } from "@radix-ui/react-icons";
5
5
  import H from "fuse.js";
6
6
  import { useState as g, useMemo as d } from "react";
@@ -1,5 +1,5 @@
1
- import { c, T as l, P as m, a as u, D as v, Q as i } from "./AP7HFJJL-CVazlaEj.js";
2
- import { w as d, x as f, y as e } from "./index-GfOB5KV1.js";
1
+ import { c, T as l, P as m, a as u, D as v, Q as i } from "./AP7HFJJL-D_mI2XSw.js";
2
+ import { w as d, x as f, y as e } from "./index-ckjNCVor.js";
3
3
  var h = (t) => {
4
4
  const [r, o] = c({
5
5
  prefix: "TanstackQueryDevtools"
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./AP7HFJJL-6aBLUYOi.cjs"),t=require("./index-B5qvHqN5.cjs");var s=o=>{const[r,n]=e.createLocalStorage({prefix:"TanstackQueryDevtools"}),a=t.getPreferredColorScheme(),l=t.createMemo(()=>{const c=o.theme||r.theme_preference||e.THEME_PREFERENCE;return c!=="system"?c:a()});return t.createComponent(e.QueryDevtoolsContext.Provider,{value:o,get children(){return t.createComponent(e.PiPProvider,{localStore:r,setLocalStore:n,get children(){return t.createComponent(e.ThemeContext.Provider,{value:l,get children(){return t.createComponent(e.Devtools,{localStore:r,setLocalStore:n})}})}})}})},u=s;exports.default=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./AP7HFJJL-CMPLeI6t.cjs"),t=require("./index-BGGNVIKx.cjs");var s=o=>{const[r,n]=e.createLocalStorage({prefix:"TanstackQueryDevtools"}),a=t.getPreferredColorScheme(),l=t.createMemo(()=>{const c=o.theme||r.theme_preference||e.THEME_PREFERENCE;return c!=="system"?c:a()});return t.createComponent(e.QueryDevtoolsContext.Provider,{value:o,get children(){return t.createComponent(e.PiPProvider,{localStore:r,setLocalStore:n,get children(){return t.createComponent(e.ThemeContext.Provider,{value:l,get children(){return t.createComponent(e.Devtools,{localStore:r,setLocalStore:n})}})}})}})},u=s;exports.default=u;
@@ -1,7 +1,7 @@
1
1
  import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
2
  import { B as r } from "./register-chai-top-bar-CX_JkRJn.js";
3
- import { U as i, V as o, W as l, X as c, Y as d } from "./index-lm46VtIP.js";
4
- import { ao as m, a as h, B as u, E as p, P as N } from "./index-GfOB5KV1.js";
3
+ import { U as i, V as o, W as l, X as c, Y as d } from "./index-iRqgNs2O.js";
4
+ import { ao as m, a as h, B as u, E as p, P as N } from "./index-ckjNCVor.js";
5
5
  import { TableIcon as f, Edit as T } from "lucide-react";
6
6
  import { useTranslation as E } from "react-i18next";
7
7
  const b = () => {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("./register-chai-top-bar-DWTuRU53.cjs"),t=require("./index-EFWvSWoi.cjs"),s=require("./index-B5qvHqN5.cjs"),n=require("lucide-react"),l=require("react-i18next"),o=()=>{const r=s.useSendRealtimeEvent(),{setPageStatus:i}=s.usePageLockStatus(),{t:a}=l.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(n.TableIcon,{className:"h-6 w-6 text-green-500"}),e.jsx("span",{children:a("Active in Another Tab")})]})}),e.jsx(t.CardContent,{className:"space-y-4",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:a("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(c.Button,{variant:"default",onClick:()=>{r(s.EVENT.CONTINUE_EDITING_IN_THIS_TAB_REQUEST),i(s.PAGE_STATUS.CHECKING)},className:"gap-2",children:[e.jsx(n.Edit,{className:"h-4 w-4"}),a("Continue Editing Here")]})})]})})};exports.default=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("./register-chai-top-bar-DWTuRU53.cjs"),t=require("./index-CfsIhbT2.cjs"),s=require("./index-BGGNVIKx.cjs"),n=require("lucide-react"),l=require("react-i18next"),o=()=>{const r=s.useSendRealtimeEvent(),{setPageStatus:i}=s.usePageLockStatus(),{t:a}=l.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(n.TableIcon,{className:"h-6 w-6 text-green-500"}),e.jsx("span",{children:a("Active in Another Tab")})]})}),e.jsx(t.CardContent,{className:"space-y-4",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:a("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(c.Button,{variant:"default",onClick:()=>{r(s.EVENT.CONTINUE_EDITING_IN_THIS_TAB_REQUEST),i(s.PAGE_STATUS.CHECKING)},className:"gap-2",children:[e.jsx(n.Edit,{className:"h-4 w-4"}),a("Continue Editing Here")]})})]})})};exports.default=o;
@@ -1,8 +1,8 @@
1
1
  import { jsx as t, jsxs as g, Fragment as hn } from "react/jsx-runtime";
2
2
  import { z as fn, D as H, B as gn } from "./register-chai-top-bar-CX_JkRJn.js";
3
- import { d as mn, o as xn, D as vn, e as pn, f as Sn, g as Nn, p as Fn, q as I, r as wn } from "./index-lm46VtIP.js";
4
- import { p as An, r as Cn, S as Dn } from "./slug-input-CqhlfgAe.js";
5
- 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-GfOB5KV1.js";
3
+ import { d as mn, o as xn, D as vn, e as pn, f as Sn, g as Nn, p as Fn, q as I, r as wn } from "./index-iRqgNs2O.js";
4
+ import { p as An, r as Cn, S as Dn } from "./slug-input-CSqTWSv8.js";
5
+ 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-ckjNCVor.js";
6
6
  import { filter as Rn, find as Wn, startsWith as In } from "lodash-es";
7
7
  import { Loader as qn } from "lucide-react";
8
8
  import { useMemo as $, useState as L, useEffect as _ } from "react";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),k=require("./register-chai-top-bar-DWTuRU53.cjs"),N=require("./index-EFWvSWoi.cjs"),Y=require("./slug-input-DltqfQ3y.cjs"),g=require("./index-B5qvHqN5.cjs"),j=require("lodash-es"),ds=require("lucide-react"),v=require("react"),U=require("react-i18next"),Z=({edit:c,lang:h,languages:a,name:u,setLang:t,setName:i,primaryPageObject:o})=>{const{t:s}=U.useTranslation();return e.jsxs("div",{className:"space-y-1",children:[e.jsx(N.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&&(j.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))]})]})},_=({lang:c,name:h,setName:a,parentHasSelectedLanguagePage:u})=>{const{t}=U.useTranslation();return e.jsxs("div",{className:"space-y-1",children:[e.jsx(N.Label,{htmlFor:"name",children:t("Page Name")}),e.jsx(k.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})]})},cs=({dynamic:c,isNonSlugPageType:h,isRootPage:a,lang:u,useLanguagePrefix:t,setUseLanguagePrefix:i,isHomePage:o,parentSlug:s,parentHasSelectedLanguagePage:l,slug:x,setSlug:d,setIsSlugValid:S,getSlug:f})=>{const{t:r}=U.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(N.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(N.Label,{htmlFor:"slug",children:r("Slug")}),c?e.jsx(k.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(Y.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:S,fullSlug:f()})]})},H=({parentHasSelectedLanguagePage:c,name:h,lang:a,slug:u,edit:t,id:i,primaryPageObject:o,pages:s,isNonSlugPageType:l,isHomePage:x,useLanguagePrefix:d,isSlugValid:S,isPending:f})=>{const{t:r}=U.useTranslation(),A=f||!h||!a||s.some(m=>(t?m.id!==i:!0)&&m.parent===(o==null?void 0:o.id)&&m.lang===a)||!l&&!(x&&d)&&(!S||!u);return e.jsx(N.DialogFooter,{children:c?e.jsxs(e.Fragment,{children:[e.jsx(k.Button,{type:"submit",disabled:A&&!o.dynamic,children:f?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(m=>(t?m.id!==i:!0)&&m.parent===(o==null?void 0:o.id)&&m.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(k.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.")]})})})},rs=({onSubmit:c,edit:h,lang:a,languages:u,name:t,setLang:i,setName:o,primaryPageObject:s,parentHasSelectedLanguagePage:l,id:x,pages:d,isNonSlugPageType:S,isHomePage:f,useLanguagePrefix:r,slug:A,isSlugValid:m,isPending:p})=>e.jsxs("form",{onSubmit:c,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsx(Z,{edit:h,lang:a,languages:u,name:t,setLang:i,setName:o,primaryPageObject:s}),e.jsx(_,{lang:a,name:t,setName:o,parentHasSelectedLanguagePage:l})]}),e.jsx(H,{parentHasSelectedLanguagePage:l,name:t,lang:a,slug:A,edit:h,id:x,primaryPageObject:s,pages:d,isNonSlugPageType:S,isHomePage:f,useLanguagePrefix:r,isSlugValid:m,isPending:p})]}),hs=({loading:c,onSubmit:h,edit:a,lang:u,languages:t,name:i,setLang:o,setName:s,primaryPageObject:l,parentHasSelectedLanguagePage:x,isNonSlugPageType:d,isRootPage:S,useLanguagePrefix:f,setUseLanguagePrefix:r,isHomePage:A,parentSlug:m,slug:p,setSlug:C,isSlugValid:T,setIsSlugValid:I,getSlug:M,isPending:$,id:q,pages:L})=>c?e.jsx("div",{className:"flex h-80 items-center justify-center",children:e.jsx(ds.Loader,{className:"animate-spin"})}):d?e.jsx(rs,{onSubmit:h,edit:a,lang:u,languages:t,name:i,setLang:o,setName:s,primaryPageObject:l,parentHasSelectedLanguagePage:x,id:q,pages:L,isNonSlugPageType:d,isHomePage:A,useLanguagePrefix:f,slug:p,isSlugValid:T,isPending:$}):e.jsxs("form",{onSubmit:h,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsx(Z,{edit:a,lang:u,languages:t,name:i,setLang:o,setName:s,primaryPageObject:l}),e.jsx(_,{lang:u,name:i,setName:s,parentHasSelectedLanguagePage:x}),e.jsx(cs,{dynamic:l==null?void 0:l.dynamic,isNonSlugPageType:d,isRootPage:S,lang:u,useLanguagePrefix:f,setUseLanguagePrefix:r,isHomePage:A,parentSlug:m,parentHasSelectedLanguagePage:x,slug:p,setSlug:C,isSlugValid:T,setIsSlugValid:I,getSlug:M})]}),e.jsx(H,{parentHasSelectedLanguagePage:x,name:i,lang:u,slug:p,edit:a,id:q,primaryPageObject:l,pages:L,isNonSlugPageType:d,isHomePage:A,useLanguagePrefix:f,isSlugValid:T,isPending:$})]}),xs=({id:c,isOpen:h,onClose:a,primaryPage:u,edit:t=!1,preselectedLang:i})=>{const{data:o=[]}=g.useWebsitePages(),s=v.useMemo(()=>o.find(n=>n.id===u),[o,u]),[l,x]=v.useState(""),[d,S]=v.useState(""),[f,r]=v.useState(""),[A,m]=v.useState(!0),[p,C]=v.useState(!0),{mutate:T,isPending:I}=g.useCreatePage(),{mutate:M,isPending:$}=g.useUpdatePage(),q=I||$,{data:L,isFetching:b}=g.useWebsiteSetting(),z=g.useFallbackLang(),{data:w,isFetching:y}=g.useLanguagePages(u),{data:F=[],isFetching:P}=g.useLanguagePages(s==null?void 0:s.parent),{data:J=[],isFetching:O}=g.usePageTypes(),{setSelectedLang:ss}=N.useLanguages(),{t:B}=U.useTranslation(),[,es]=g.useSearchParams(),[,ns]=N.useSidebarActivePanel(),ts=b||y||P||O,G=v.useMemo(()=>j.filter(L==null?void 0:L.languages,n=>!j.find(w,{lang:n})),[L,w]),W=v.useMemo(()=>J.find(n=>n.key===(s==null?void 0:s.pageType)),[J,s==null?void 0:s.pageType]),K=!(W!=null&&W.hasSlug),V=(s==null?void 0:s.slug)==="/";v.useEffect(()=>{if(!t&&s&&i&&(S(i),x(`${s.name} - ${g.LANGUAGES[i]}`)),!t||!s)return;const n=w==null?void 0:w.find(is=>is.id===c);if(!n)return;x(n.name),S(n.lang);const E=n.slug||"",{initSlug:R,prefix:us}=Y.parseSlugForEdit(E,s);r(R),C(us)},[t,c,w,s,i]),v.useEffect(()=>{if(i)S(i);else if((G==null?void 0:G.length)===1&&!t){const n=G[0];if(!n||!g.LANGUAGES[n])return;S(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:Q,isRootPage:D}=v.useMemo(()=>{if(V||!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,V]),os=v.useMemo(()=>D?!0:!!(F!=null&&F.some(n=>(n==null?void 0:n.lang)===d)),[d,F,D]),X=()=>{let n="";return D?n=`/${p?[d,f].filter(Boolean).join("/"):f}`:n=`${Y.removeSlugExtension(Q)}/${f}`,n.replace(/\/{2,}/g,"/").replace(/\/$/,"")},ls=n=>{const E=new URLSearchParams(window.location.search);z&&n===z?E.delete("lang"):E.set("lang",n),es(E),window.dispatchEvent(new PopStateEvent("popstate"))},as=n=>{n.preventDefault();const E={name:l,lang:d,primaryPage:s==null?void 0:s.id,slug:K?"":X(),pageType:s==null?void 0:s.pageType,...t&&{id:c}},R=()=>{!t&&d&&(ss(d),ls(d)),ns("outline"),a()};t?M(E,{onSuccess:R}):T(E,{onSuccess:R})};return e.jsx(N.Dialog,{open:h,onOpenChange:a,children:h&&e.jsxs(N.DialogContent,{className:"text-slate-600 sm:max-w-[425px]",children:[e.jsxs(N.DialogHeader,{children:[e.jsx(N.DialogTitle,{children:B(t?"Edit language":"Add new language page")}),e.jsx(N.DialogDescription,{className:"font-light",children:B("Enter the details for the language")})]}),e.jsx(hs,{id:c,pages:o,loading:ts,onSubmit:as,edit:t,lang:d,languages:G,name:l,setLang:S,setName:x,primaryPageObject:s,parentHasSelectedLanguagePage:os,isNonSlugPageType:K,isRootPage:D,useLanguagePrefix:p,setUseLanguagePrefix:C,isHomePage:V,parentSlug:Q,slug:f,setSlug:r,isSlugValid:A,setIsSlugValid:m,getSlug:X,isPending:q})]})})};exports.default=xs;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),k=require("./register-chai-top-bar-DWTuRU53.cjs"),N=require("./index-CfsIhbT2.cjs"),Y=require("./slug-input-CV-Dvosn.cjs"),g=require("./index-BGGNVIKx.cjs"),j=require("lodash-es"),ds=require("lucide-react"),v=require("react"),U=require("react-i18next"),Z=({edit:c,lang:h,languages:a,name:u,setLang:t,setName:i,primaryPageObject:o})=>{const{t:s}=U.useTranslation();return e.jsxs("div",{className:"space-y-1",children:[e.jsx(N.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&&(j.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))]})]})},_=({lang:c,name:h,setName:a,parentHasSelectedLanguagePage:u})=>{const{t}=U.useTranslation();return e.jsxs("div",{className:"space-y-1",children:[e.jsx(N.Label,{htmlFor:"name",children:t("Page Name")}),e.jsx(k.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})]})},cs=({dynamic:c,isNonSlugPageType:h,isRootPage:a,lang:u,useLanguagePrefix:t,setUseLanguagePrefix:i,isHomePage:o,parentSlug:s,parentHasSelectedLanguagePage:l,slug:x,setSlug:d,setIsSlugValid:S,getSlug:f})=>{const{t:r}=U.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(N.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(N.Label,{htmlFor:"slug",children:r("Slug")}),c?e.jsx(k.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(Y.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:S,fullSlug:f()})]})},H=({parentHasSelectedLanguagePage:c,name:h,lang:a,slug:u,edit:t,id:i,primaryPageObject:o,pages:s,isNonSlugPageType:l,isHomePage:x,useLanguagePrefix:d,isSlugValid:S,isPending:f})=>{const{t:r}=U.useTranslation(),A=f||!h||!a||s.some(m=>(t?m.id!==i:!0)&&m.parent===(o==null?void 0:o.id)&&m.lang===a)||!l&&!(x&&d)&&(!S||!u);return e.jsx(N.DialogFooter,{children:c?e.jsxs(e.Fragment,{children:[e.jsx(k.Button,{type:"submit",disabled:A&&!o.dynamic,children:f?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(m=>(t?m.id!==i:!0)&&m.parent===(o==null?void 0:o.id)&&m.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(k.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.")]})})})},rs=({onSubmit:c,edit:h,lang:a,languages:u,name:t,setLang:i,setName:o,primaryPageObject:s,parentHasSelectedLanguagePage:l,id:x,pages:d,isNonSlugPageType:S,isHomePage:f,useLanguagePrefix:r,slug:A,isSlugValid:m,isPending:p})=>e.jsxs("form",{onSubmit:c,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsx(Z,{edit:h,lang:a,languages:u,name:t,setLang:i,setName:o,primaryPageObject:s}),e.jsx(_,{lang:a,name:t,setName:o,parentHasSelectedLanguagePage:l})]}),e.jsx(H,{parentHasSelectedLanguagePage:l,name:t,lang:a,slug:A,edit:h,id:x,primaryPageObject:s,pages:d,isNonSlugPageType:S,isHomePage:f,useLanguagePrefix:r,isSlugValid:m,isPending:p})]}),hs=({loading:c,onSubmit:h,edit:a,lang:u,languages:t,name:i,setLang:o,setName:s,primaryPageObject:l,parentHasSelectedLanguagePage:x,isNonSlugPageType:d,isRootPage:S,useLanguagePrefix:f,setUseLanguagePrefix:r,isHomePage:A,parentSlug:m,slug:p,setSlug:C,isSlugValid:T,setIsSlugValid:I,getSlug:M,isPending:$,id:q,pages:L})=>c?e.jsx("div",{className:"flex h-80 items-center justify-center",children:e.jsx(ds.Loader,{className:"animate-spin"})}):d?e.jsx(rs,{onSubmit:h,edit:a,lang:u,languages:t,name:i,setLang:o,setName:s,primaryPageObject:l,parentHasSelectedLanguagePage:x,id:q,pages:L,isNonSlugPageType:d,isHomePage:A,useLanguagePrefix:f,slug:p,isSlugValid:T,isPending:$}):e.jsxs("form",{onSubmit:h,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsx(Z,{edit:a,lang:u,languages:t,name:i,setLang:o,setName:s,primaryPageObject:l}),e.jsx(_,{lang:u,name:i,setName:s,parentHasSelectedLanguagePage:x}),e.jsx(cs,{dynamic:l==null?void 0:l.dynamic,isNonSlugPageType:d,isRootPage:S,lang:u,useLanguagePrefix:f,setUseLanguagePrefix:r,isHomePage:A,parentSlug:m,parentHasSelectedLanguagePage:x,slug:p,setSlug:C,isSlugValid:T,setIsSlugValid:I,getSlug:M})]}),e.jsx(H,{parentHasSelectedLanguagePage:x,name:i,lang:u,slug:p,edit:a,id:q,primaryPageObject:l,pages:L,isNonSlugPageType:d,isHomePage:A,useLanguagePrefix:f,isSlugValid:T,isPending:$})]}),xs=({id:c,isOpen:h,onClose:a,primaryPage:u,edit:t=!1,preselectedLang:i})=>{const{data:o=[]}=g.useWebsitePages(),s=v.useMemo(()=>o.find(n=>n.id===u),[o,u]),[l,x]=v.useState(""),[d,S]=v.useState(""),[f,r]=v.useState(""),[A,m]=v.useState(!0),[p,C]=v.useState(!0),{mutate:T,isPending:I}=g.useCreatePage(),{mutate:M,isPending:$}=g.useUpdatePage(),q=I||$,{data:L,isFetching:b}=g.useWebsiteSetting(),z=g.useFallbackLang(),{data:w,isFetching:y}=g.useLanguagePages(u),{data:F=[],isFetching:P}=g.useLanguagePages(s==null?void 0:s.parent),{data:J=[],isFetching:O}=g.usePageTypes(),{setSelectedLang:ss}=N.useLanguages(),{t:B}=U.useTranslation(),[,es]=g.useSearchParams(),[,ns]=N.useSidebarActivePanel(),ts=b||y||P||O,G=v.useMemo(()=>j.filter(L==null?void 0:L.languages,n=>!j.find(w,{lang:n})),[L,w]),W=v.useMemo(()=>J.find(n=>n.key===(s==null?void 0:s.pageType)),[J,s==null?void 0:s.pageType]),K=!(W!=null&&W.hasSlug),V=(s==null?void 0:s.slug)==="/";v.useEffect(()=>{if(!t&&s&&i&&(S(i),x(`${s.name} - ${g.LANGUAGES[i]}`)),!t||!s)return;const n=w==null?void 0:w.find(is=>is.id===c);if(!n)return;x(n.name),S(n.lang);const E=n.slug||"",{initSlug:R,prefix:us}=Y.parseSlugForEdit(E,s);r(R),C(us)},[t,c,w,s,i]),v.useEffect(()=>{if(i)S(i);else if((G==null?void 0:G.length)===1&&!t){const n=G[0];if(!n||!g.LANGUAGES[n])return;S(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:Q,isRootPage:D}=v.useMemo(()=>{if(V||!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,V]),os=v.useMemo(()=>D?!0:!!(F!=null&&F.some(n=>(n==null?void 0:n.lang)===d)),[d,F,D]),X=()=>{let n="";return D?n=`/${p?[d,f].filter(Boolean).join("/"):f}`:n=`${Y.removeSlugExtension(Q)}/${f}`,n.replace(/\/{2,}/g,"/").replace(/\/$/,"")},ls=n=>{const E=new URLSearchParams(window.location.search);z&&n===z?E.delete("lang"):E.set("lang",n),es(E),window.dispatchEvent(new PopStateEvent("popstate"))},as=n=>{n.preventDefault();const E={name:l,lang:d,primaryPage:s==null?void 0:s.id,slug:K?"":X(),pageType:s==null?void 0:s.pageType,...t&&{id:c}},R=()=>{!t&&d&&(ss(d),ls(d)),ns("outline"),a()};t?M(E,{onSuccess:R}):T(E,{onSuccess:R})};return e.jsx(N.Dialog,{open:h,onOpenChange:a,children:h&&e.jsxs(N.DialogContent,{className:"text-slate-600 sm:max-w-[425px]",children:[e.jsxs(N.DialogHeader,{children:[e.jsx(N.DialogTitle,{children:B(t?"Edit language":"Add new language page")}),e.jsx(N.DialogDescription,{className:"font-light",children:B("Enter the details for the language")})]}),e.jsx(hs,{id:c,pages:o,loading:ts,onSubmit:as,edit:t,lang:d,languages:G,name:l,setLang:S,setName:x,primaryPageObject:s,parentHasSelectedLanguagePage:os,isNonSlugPageType:K,isRootPage:D,useLanguagePrefix:p,setUseLanguagePrefix:C,isHomePage:V,parentSlug:Q,slug:f,setSlug:r,isSlugValid:A,setIsSlugValid:m,getSlug:X,isPending:q})]})})};exports.default=xs;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("./index-EFWvSWoi.cjs"),c=require("react"),a=require("react-i18next"),u=c.lazy(()=>Promise.resolve().then(()=>require("./page-creator-BDmospqO.cjs"))),x=({addEditPage:n,setAddEditPage:r,closePanel:l})=>{const{t:o}=a.useTranslation(),t=!!(n!=null&&n.id),i=!!n;return e.jsx(s.Dialog,{open:i,onOpenChange:()=>r(void 0),children:i&&e.jsxs(s.DialogContent,{className:"sm:max-w-[425px]",children:[e.jsxs(s.DialogHeader,{children:[e.jsxs(s.DialogTitle,{children:[o(t?"Edit":"Add New")," "]}),e.jsx(s.DialogDescription,{children:o(t?"Update your page name":"Enter details to create a new page")})]}),e.jsx(c.Suspense,{fallback:e.jsx("div",{className:"min-h-40"}),children:e.jsx(u,{closePanel:l,addEditPage:n,close:()=>r(void 0)})})]})})};exports.default=x;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("./index-CfsIhbT2.cjs"),c=require("react"),a=require("react-i18next"),u=c.lazy(()=>Promise.resolve().then(()=>require("./page-creator-kvymje2i.cjs"))),x=({addEditPage:n,setAddEditPage:r,closePanel:l})=>{const{t:o}=a.useTranslation(),t=!!(n!=null&&n.id),i=!!n;return e.jsx(s.Dialog,{open:i,onOpenChange:()=>r(void 0),children:i&&e.jsxs(s.DialogContent,{className:"sm:max-w-[425px]",children:[e.jsxs(s.DialogHeader,{children:[e.jsxs(s.DialogTitle,{children:[o(t?"Edit":"Add New")," "]}),e.jsx(s.DialogDescription,{children:o(t?"Update your page name":"Enter details to create a new page")})]}),e.jsx(c.Suspense,{fallback:e.jsx("div",{className:"min-h-40"}),children:e.jsx(u,{closePanel:l,addEditPage:n,close:()=>r(void 0)})})]})})};exports.default=x;
@@ -1,8 +1,8 @@
1
1
  import { jsx as o, jsxs as r } from "react/jsx-runtime";
2
- import { D as t, e as c, f as p, g as m, p as h } from "./index-lm46VtIP.js";
2
+ import { D as t, e as c, f as p, g as m, p as h } from "./index-iRqgNs2O.js";
3
3
  import { Suspense as f, lazy as D } from "react";
4
4
  import { useTranslation as u } from "react-i18next";
5
- const x = D(() => import("./page-creator-BBuYY84G.js")), C = ({
5
+ const x = D(() => import("./page-creator-CDcfL4al.js")), C = ({
6
6
  addEditPage: e,
7
7
  setAddEditPage: s,
8
8
  closePanel: l
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),L=require("./register-chai-top-bar-DWTuRU53.cjs"),N=require("./index-EFWvSWoi.cjs"),j=require("./index-B5qvHqN5.cjs"),M=require("lucide-react"),s=require("react"),k=require("react-i18next"),A=require("sonner"),B=require("./models-5gOsRC56.cjs"),R=s.lazy(()=>Promise.resolve().then(()=>require("./ai-panel-default-lang-DEj9Qx2M.cjs"))),z=s.lazy(()=>Promise.resolve().then(()=>require("./ai-panel-other-lang-Da2XLEcm.cjs"))),F=()=>{const{t:o}=k.useTranslation(),[m,a]=s.useState(""),[t,l]=s.useState([]),[c,i]=s.useState(!1),[u,d]=s.useState(null),[S,f]=s.useState(null),[p,b]=s.useState(B.getDefaultModel().id),{selectedLang:h,fallbackLang:q}=N.useLanguages(),P=j.useBuilderFetch(),[v]=j.useSearchParams(),w=v.get("page"),C=(t==null?void 0:t.filter(n=>n.role==="user").length)>=4,y=(t==null?void 0:t.filter(n=>n.role==="user").length)>=10;s.useEffect(()=>{l([])},[h,w]);const g=()=>{l([]),a(""),f(null),d(null),i(!1)},x={t:o,fetch:P,input:m,messages:t,setInput:a,isLoading:c,handleStop:()=>{u&&(u.abort(),d(null)),i(!1),a(""),f(null),l(n=>{const r=n[n.length-1];return r&&r.role==="assistant"&&r.isReasoning&&r.isStreaming?n.slice(0,-1):n}),A.toast.info(o("Generation stopped"))},handleReset:g,setMessages:l,setIsLoading:i,currentBlock:S,fallbackLang:q,abortController:u,setCurrentBlock:f,setAbortController:d,forceNewConversation:y,suggestNewConversation:C,selectedModel:p,onModelChange:b};return e.jsxs(e.Fragment,{children:[c&&e.jsx("div",{className:"fixed inset-0 left-0 top-0 z-40 flex h-screen w-screen flex-col items-center justify-center bg-transparent"}),e.jsxs("div",{className:"flex h-full w-full flex-col",children:[e.jsxs("div",{className:"flex w-full items-center justify-between",children:[e.jsx("p",{className:"text-xs text-gray-500",children:o("Your conversation will not be saved")}),(t==null?void 0:t.length)>0&&e.jsx(L.Button,{variant:"outline",size:"icon",onClick:g,className:"h-6 w-6",disabled:c,children:e.jsx(M.Plus,{})})]}),e.jsx(s.Suspense,{fallback:e.jsx("div",{className:"flex h-full w-full items-center justify-center text-xs",children:"Loading AI Panel"}),children:h?e.jsx(z,{...x,selectedLang:h}):e.jsx(R,{...x})})]})]})};exports.default=F;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),L=require("./register-chai-top-bar-DWTuRU53.cjs"),N=require("./index-CfsIhbT2.cjs"),j=require("./index-BGGNVIKx.cjs"),M=require("lucide-react"),s=require("react"),k=require("react-i18next"),A=require("sonner"),B=require("./models-5gOsRC56.cjs"),R=s.lazy(()=>Promise.resolve().then(()=>require("./ai-panel-default-lang-DGNDrfam.cjs"))),z=s.lazy(()=>Promise.resolve().then(()=>require("./ai-panel-other-lang-DvXF0Nn5.cjs"))),F=()=>{const{t:o}=k.useTranslation(),[m,a]=s.useState(""),[t,l]=s.useState([]),[c,i]=s.useState(!1),[u,d]=s.useState(null),[S,f]=s.useState(null),[p,b]=s.useState(B.getDefaultModel().id),{selectedLang:h,fallbackLang:q}=N.useLanguages(),P=j.useBuilderFetch(),[v]=j.useSearchParams(),w=v.get("page"),C=(t==null?void 0:t.filter(n=>n.role==="user").length)>=4,y=(t==null?void 0:t.filter(n=>n.role==="user").length)>=10;s.useEffect(()=>{l([])},[h,w]);const g=()=>{l([]),a(""),f(null),d(null),i(!1)},x={t:o,fetch:P,input:m,messages:t,setInput:a,isLoading:c,handleStop:()=>{u&&(u.abort(),d(null)),i(!1),a(""),f(null),l(n=>{const r=n[n.length-1];return r&&r.role==="assistant"&&r.isReasoning&&r.isStreaming?n.slice(0,-1):n}),A.toast.info(o("Generation stopped"))},handleReset:g,setMessages:l,setIsLoading:i,currentBlock:S,fallbackLang:q,abortController:u,setCurrentBlock:f,setAbortController:d,forceNewConversation:y,suggestNewConversation:C,selectedModel:p,onModelChange:b};return e.jsxs(e.Fragment,{children:[c&&e.jsx("div",{className:"fixed inset-0 left-0 top-0 z-40 flex h-screen w-screen flex-col items-center justify-center bg-transparent"}),e.jsxs("div",{className:"flex h-full w-full flex-col",children:[e.jsxs("div",{className:"flex w-full items-center justify-between",children:[e.jsx("p",{className:"text-xs text-gray-500",children:o("Your conversation will not be saved")}),(t==null?void 0:t.length)>0&&e.jsx(L.Button,{variant:"outline",size:"icon",onClick:g,className:"h-6 w-6",disabled:c,children:e.jsx(M.Plus,{})})]}),e.jsx(s.Suspense,{fallback:e.jsx("div",{className:"flex h-full w-full items-center justify-center text-xs",children:"Loading AI Panel"}),children:h?e.jsx(z,{...x,selectedLang:h}):e.jsx(R,{...x})})]})]})};exports.default=F;
@@ -1,13 +1,13 @@
1
1
  import { jsxs as h, Fragment as k, jsx as n } from "react/jsx-runtime";
2
2
  import { B as y } from "./register-chai-top-bar-CX_JkRJn.js";
3
- import { d as A } from "./index-lm46VtIP.js";
4
- import { v as B, c as F } from "./index-GfOB5KV1.js";
3
+ import { d as A } from "./index-iRqgNs2O.js";
4
+ import { v as B, c as F } from "./index-ckjNCVor.js";
5
5
  import { Plus as z } from "lucide-react";
6
6
  import { useState as l, useEffect as I, Suspense as D, lazy as x } from "react";
7
7
  import { useTranslation as R } from "react-i18next";
8
8
  import { toast as E } from "sonner";
9
9
  import { g as G } from "./models-D95ZYr_x.js";
10
- const O = x(() => import("./ai-panel-default-lang-Cj7meZBD.js")), T = x(() => import("./ai-panel-other-lang-Cbi6HKzd.js")), Z = () => {
10
+ const O = x(() => import("./ai-panel-default-lang-VQsV6KB3.js")), T = x(() => import("./ai-panel-other-lang-SuC8jyfr.js")), Z = () => {
11
11
  const { t: r } = R(), [b, a] = l(""), [e, s] = l([]), [i, c] = l(!1), [f, u] = l(null), [w, d] = l(null), [C, L] = l(G().id), { selectedLang: m, fallbackLang: N } = A(), P = B(), [v] = F(), S = v.get("page"), M = (e == null ? void 0 : e.filter((t) => t.role === "user").length) >= 4, j = (e == null ? void 0 : e.filter((t) => t.role === "user").length) >= 10;
12
12
  I(() => {
13
13
  s([]);
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),x=require("./index-EFWvSWoi.cjs"),B=require("./selected-block-display-BvRoOMt9.cjs"),P=require("lucide-react"),j=require("react"),O=require("sonner"),W=require("./models-5gOsRC56.cjs"),q=require("./apply-binding-nqrhHgIz.cjs"),F=require("lodash-es"),$=require("@tanstack/react-query"),_=(l,S)=>{const m=l.filter(g=>g._parent===S),v=m.map(g=>g._id),p=m.flatMap(g=>_(l,g._id));return[...v,...p]},V=(l,S,m)=>{const v=F.find(l,{_id:S});if(!v)return l;const p=l.findIndex(h=>h._id===S),g=_(l,S),w=new Set([S,...g]),d=l.filter(h=>!w.has(h._id)),C=new Set(m.map(h=>h._id)),R=m.map(h=>!h._parent||!C.has(h._parent)?{...h,_parent:v._parent}:h);return[...d.slice(0,p),...R,...d.slice(p)]},K=()=>{const[,l]=x.useSelectedBlockIds(),{setNewBlocks:S}=x.useBlocksStoreUndoableActions(),{hasPermission:m}=x.usePermissions();return j.useCallback((v,p)=>{if(!m(x.PERMISSIONS.EDIT_BLOCK))return;const g=x.builderStore.get(x.presentBlocksAtom),w=v?V(g,v,p):p;S(w),p.length>0&&setTimeout(()=>l([p[0]._id]),200)},[l,S,m])},U=()=>{const{addPredefinedBlock:l}=x.useAddBlock(),S=K(),m=x.useRemoveBlocks(),v=$.useQueryClient(),p=async(r,t)=>{if(!t)return;const s=q.getBlocksFromHTML(t);await l(s,r.parentId,r.position)},g=async(r,t)=>{if(!r.blockId||!t)return;const s=q.getBlocksFromHTML(t);await S(r.blockId,s)},w=async r=>{!r.ids||r.ids.length===0||await m(r.ids)};let d=null;const C=(r,t)=>{const s=document.getElementById("canvas-iframe");if(!s)return null;const f=s==null?void 0:s.contentDocument;if(!f)return null;f.querySelectorAll("[data-stream-canvas]").forEach(n=>n.remove());let o=null;if(r&&r!=="undefined"&&(o=f.querySelector(`[data-block-id="${r}"]`)),o||(o=f.body),!o)return null;if(d=f.createElement("div"),d.setAttribute("data-stream-canvas","true"),t!==void 0&&t>=0&&o.children){const n=Math.min(t,o.children.length);n<o.children.length?o.insertBefore(d,o.children[n]):o.appendChild(d)}else o.appendChild(d);return d},R=r=>{var o;const t=document.getElementById("canvas-iframe");if(!t)return null;const s=t==null?void 0:t.contentDocument;if(!s)return null;s.querySelectorAll("[data-stream-canvas]").forEach(n=>n.remove());const A=s.querySelector(`[data-block-id="${r}"]`);return A?(d=s.createElement("div"),d.setAttribute("data-stream-canvas","true"),(o=A.parentNode)==null||o.insertBefore(d,A.nextSibling),A.style.display="none",d):null},M=r=>{const t=document.getElementById("canvas-iframe");(t==null?void 0:t.contentWindow)&&r.scrollIntoView({behavior:"smooth",block:"end"})},h=(r,t,s)=>{const f=C(t,s);f&&(f.innerHTML=r,M(f))},b=(r,t)=>{const s=R(t);s&&(s.innerHTML=r,M(s))},N=r=>{const t=r.match(/^--ACTION=(.+)--$/);if(!t)return null;let f=t[1].replace(/--/g,"").split("|");const o={type:f[0]};return f.forEach(n=>{const e=n.trim();if(e.startsWith("PARENT=")){const T=e.substring(7);o.parentId=T==="undefined"?void 0:T}else e.startsWith("POS=")?o.position=parseInt(e.substring(4)):e.startsWith("ID=")?o.blockId=e.substring(3):e.startsWith("IDS=")&&(o.ids=e.substring(4).split(",").map(T=>T.trim()))}),o};return j.useCallback(async(r,t)=>{const s=new TextDecoder;let f="",A="",o=!1,n=null;const e={isInAction:!1,currentAction:null,htmlBuffer:"",isCapturingHtml:!1},T=async k=>{const i=k.trim();if(i==="--START--"){o=!0;return}if(o){if(i==="--END--"){e.currentAction&&(e.htmlBuffer||e.currentAction.type==="REMOVE")&&await D(e.currentAction,e.htmlBuffer),d&&(d.remove(),d=null);return}if(i.startsWith("--THINKING=")){const c=i.substring(11);t(u=>{const I=[...u],y=I[I.length-1];if(y&&y.role==="assistant"&&y.isReasoning)y.content=c,y.isStreaming=!1;else{const E={id:Date.now().toString(),role:"assistant",content:c,isReasoning:!0,isStreaming:!1};I.push(E)}return I});return}if(i.startsWith("--TASK=")){const c=i.substring(7),u=`task-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,I={id:u,role:"assistant",content:c.replace(/--$/,""),isTask:!0,isTaskLoading:!0,isTaskCompleted:!1};n=u,t(y=>[...y,I]);return}if(i.startsWith("--MSG=")){const c=i.substring(6),u={id:Date.now().toString(),role:"assistant",content:c.replace(/--$/g,""),isReasoning:!1,isStreaming:!1};t(I=>[...I,u]);return}if(i.startsWith("--ACTION=")){e.currentAction&&(e.htmlBuffer||e.currentAction.type==="REMOVE")&&await D(e.currentAction,e.htmlBuffer),e.currentAction=N(i),e.htmlBuffer="",e.isInAction=!0;return}if(i==="--ENDACTION--"){e.currentAction&&(e.htmlBuffer||e.currentAction.type==="REMOVE")&&await D(e.currentAction,e.htmlBuffer),n&&(t(c=>c.map(u=>u.isTask?{...u,isTaskCompleted:!0}:u)),n=null),e.currentAction=null,e.htmlBuffer="",e.isInAction=!1;return}if(i==="--HTML--"){e.isCapturingHtml=!0;return}if(i==="--ENDHTML--"){e.isCapturingHtml=!1;return}if(i.startsWith("--HTML--")&&i.includes("--ENDHTML--")){const c=i.match(/^--HTML--(.+?)--ENDHTML--$/);if(c&&e.currentAction){const u=c[1];e.htmlBuffer+=u,e.currentAction.type==="ADD"?h(e.htmlBuffer,e.currentAction.parentId,e.currentAction.position):e.currentAction.type==="EDIT"&&e.currentAction.blockId&&b(e.htmlBuffer,e.currentAction.blockId)}return}e.isCapturingHtml&&e.currentAction&&(e.htmlBuffer+=k+`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),x=require("./index-CfsIhbT2.cjs"),B=require("./selected-block-display-BjhZTfSL.cjs"),P=require("lucide-react"),j=require("react"),O=require("sonner"),W=require("./models-5gOsRC56.cjs"),q=require("./apply-binding-nqrhHgIz.cjs"),F=require("lodash-es"),$=require("@tanstack/react-query"),_=(l,S)=>{const m=l.filter(g=>g._parent===S),v=m.map(g=>g._id),p=m.flatMap(g=>_(l,g._id));return[...v,...p]},V=(l,S,m)=>{const v=F.find(l,{_id:S});if(!v)return l;const p=l.findIndex(h=>h._id===S),g=_(l,S),w=new Set([S,...g]),d=l.filter(h=>!w.has(h._id)),C=new Set(m.map(h=>h._id)),R=m.map(h=>!h._parent||!C.has(h._parent)?{...h,_parent:v._parent}:h);return[...d.slice(0,p),...R,...d.slice(p)]},K=()=>{const[,l]=x.useSelectedBlockIds(),{setNewBlocks:S}=x.useBlocksStoreUndoableActions(),{hasPermission:m}=x.usePermissions();return j.useCallback((v,p)=>{if(!m(x.PERMISSIONS.EDIT_BLOCK))return;const g=x.builderStore.get(x.presentBlocksAtom),w=v?V(g,v,p):p;S(w),p.length>0&&setTimeout(()=>l([p[0]._id]),200)},[l,S,m])},U=()=>{const{addPredefinedBlock:l}=x.useAddBlock(),S=K(),m=x.useRemoveBlocks(),v=$.useQueryClient(),p=async(r,t)=>{if(!t)return;const s=q.getBlocksFromHTML(t);await l(s,r.parentId,r.position)},g=async(r,t)=>{if(!r.blockId||!t)return;const s=q.getBlocksFromHTML(t);await S(r.blockId,s)},w=async r=>{!r.ids||r.ids.length===0||await m(r.ids)};let d=null;const C=(r,t)=>{const s=document.getElementById("canvas-iframe");if(!s)return null;const f=s==null?void 0:s.contentDocument;if(!f)return null;f.querySelectorAll("[data-stream-canvas]").forEach(n=>n.remove());let o=null;if(r&&r!=="undefined"&&(o=f.querySelector(`[data-block-id="${r}"]`)),o||(o=f.body),!o)return null;if(d=f.createElement("div"),d.setAttribute("data-stream-canvas","true"),t!==void 0&&t>=0&&o.children){const n=Math.min(t,o.children.length);n<o.children.length?o.insertBefore(d,o.children[n]):o.appendChild(d)}else o.appendChild(d);return d},R=r=>{var o;const t=document.getElementById("canvas-iframe");if(!t)return null;const s=t==null?void 0:t.contentDocument;if(!s)return null;s.querySelectorAll("[data-stream-canvas]").forEach(n=>n.remove());const A=s.querySelector(`[data-block-id="${r}"]`);return A?(d=s.createElement("div"),d.setAttribute("data-stream-canvas","true"),(o=A.parentNode)==null||o.insertBefore(d,A.nextSibling),A.style.display="none",d):null},M=r=>{const t=document.getElementById("canvas-iframe");(t==null?void 0:t.contentWindow)&&r.scrollIntoView({behavior:"smooth",block:"end"})},h=(r,t,s)=>{const f=C(t,s);f&&(f.innerHTML=r,M(f))},b=(r,t)=>{const s=R(t);s&&(s.innerHTML=r,M(s))},N=r=>{const t=r.match(/^--ACTION=(.+)--$/);if(!t)return null;let f=t[1].replace(/--/g,"").split("|");const o={type:f[0]};return f.forEach(n=>{const e=n.trim();if(e.startsWith("PARENT=")){const T=e.substring(7);o.parentId=T==="undefined"?void 0:T}else e.startsWith("POS=")?o.position=parseInt(e.substring(4)):e.startsWith("ID=")?o.blockId=e.substring(3):e.startsWith("IDS=")&&(o.ids=e.substring(4).split(",").map(T=>T.trim()))}),o};return j.useCallback(async(r,t)=>{const s=new TextDecoder;let f="",A="",o=!1,n=null;const e={isInAction:!1,currentAction:null,htmlBuffer:"",isCapturingHtml:!1},T=async k=>{const i=k.trim();if(i==="--START--"){o=!0;return}if(o){if(i==="--END--"){e.currentAction&&(e.htmlBuffer||e.currentAction.type==="REMOVE")&&await D(e.currentAction,e.htmlBuffer),d&&(d.remove(),d=null);return}if(i.startsWith("--THINKING=")){const c=i.substring(11);t(u=>{const I=[...u],y=I[I.length-1];if(y&&y.role==="assistant"&&y.isReasoning)y.content=c,y.isStreaming=!1;else{const E={id:Date.now().toString(),role:"assistant",content:c,isReasoning:!0,isStreaming:!1};I.push(E)}return I});return}if(i.startsWith("--TASK=")){const c=i.substring(7),u=`task-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,I={id:u,role:"assistant",content:c.replace(/--$/,""),isTask:!0,isTaskLoading:!0,isTaskCompleted:!1};n=u,t(y=>[...y,I]);return}if(i.startsWith("--MSG=")){const c=i.substring(6),u={id:Date.now().toString(),role:"assistant",content:c.replace(/--$/g,""),isReasoning:!1,isStreaming:!1};t(I=>[...I,u]);return}if(i.startsWith("--ACTION=")){e.currentAction&&(e.htmlBuffer||e.currentAction.type==="REMOVE")&&await D(e.currentAction,e.htmlBuffer),e.currentAction=N(i),e.htmlBuffer="",e.isInAction=!0;return}if(i==="--ENDACTION--"){e.currentAction&&(e.htmlBuffer||e.currentAction.type==="REMOVE")&&await D(e.currentAction,e.htmlBuffer),n&&(t(c=>c.map(u=>u.isTask?{...u,isTaskCompleted:!0}:u)),n=null),e.currentAction=null,e.htmlBuffer="",e.isInAction=!1;return}if(i==="--HTML--"){e.isCapturingHtml=!0;return}if(i==="--ENDHTML--"){e.isCapturingHtml=!1;return}if(i.startsWith("--HTML--")&&i.includes("--ENDHTML--")){const c=i.match(/^--HTML--(.+?)--ENDHTML--$/);if(c&&e.currentAction){const u=c[1];e.htmlBuffer+=u,e.currentAction.type==="ADD"?h(e.htmlBuffer,e.currentAction.parentId,e.currentAction.position):e.currentAction.type==="EDIT"&&e.currentAction.blockId&&b(e.htmlBuffer,e.currentAction.blockId)}return}e.isCapturingHtml&&e.currentAction&&(e.htmlBuffer+=k+`
2
2
  `,e.currentAction.type==="ADD"?h(e.htmlBuffer,e.currentAction.parentId,e.currentAction.position):e.currentAction.type==="EDIT"&&e.currentAction.blockId&&b(e.htmlBuffer,e.currentAction.blockId))}},D=async(k,i)=>{try{switch(k.type){case"ADD":await p(k,i);break;case"EDIT":await g(k,i);break;case"REMOVE":await w(k);break}t(c=>c.filter(u=>!u.isTask))}catch(c){console.log(c)}};try{for(;;){const{done:k,value:i}=await r.read();if(k)break;const c=s.decode(i,{stream:!0});f+=c,A+=c;const u=A.split(`
3
- `);A=u.pop()||"";for(const I of u)await T(I)}A&&await T(A),v.invalidateQueries({queryKey:["AI_USAGE"]})}catch(k){console.log(k)}},[m])},G=j.lazy(()=>Promise.resolve().then(()=>require("./ai-prompt-input-DXS8gzex.cjs"))),Q=({t:l,fetch:S,input:m,messages:v,setInput:p,isLoading:g,setMessages:w,handleStop:d,setIsLoading:C,currentBlock:R,fallbackLang:M,setCurrentBlock:h,setAbortController:b,selectedModel:N=W.getDefaultModel().id,onModelChange:r})=>{const t=x.useSelectedBlock(),[,s]=x.useSelectedBlockIds(),f=x.useBlocksHtmlForAi(),A=U(),o=async(n,e,T,D)=>{var I;if(!n||g)return;h(t);const k=f(t?{blockId:t._id,additionalCoreBlocks:["Icon"]}:{additionalCoreBlocks:["Icon"]});if(t&&!k){O.toast.error(l("Something went wrong. Please try again."));return}const i={id:Date.now().toString(),role:"user",content:B.getUserPrompt({language:M,userInput:e||n,currentHtml:k}),userMessage:n},c={id:(Date.now()+1).toString(),role:"assistant",content:"",isReasoning:!0,isStreaming:!0};w(y=>[...y,i,c]),C(!0);const u=new AbortController;b(u);try{const y={messages:[i].map(L=>({role:L.role,content:L.content})),model:D||N};T&&(y.image=T);const E=await S({body:{action:"ASK_AI",data:y},streamResponse:!0});if(!E.ok)throw new Error(l("Failed to get AI response"));const H=(I=E.body)==null?void 0:I.getReader();if(!H)throw new Error(l("Response body is not readable"));await A(H,w)}catch(y){if(y.name!=="AbortError"){const E={id:(Date.now()+1).toString(),role:"assistant",content:l("Sorry, I encountered an error. Please try again.")};w(H=>[...H,E])}}finally{p(""),C(!1),h(null),b(null)}};return a.jsxs(a.Fragment,{children:[a.jsxs(B.Conversation,{className:"no-scrollbar",children:[a.jsxs(B.ConversationContent,{className:"gap-2 px-0",children:[v.length===0&&a.jsx(B.ConversationEmptyState,{icon:a.jsx(P.Bot,{size:48,className:"text-gray-300"}),title:"Start a conversation",description:l("Start a conversation with the AI assistant to add/edit current page")}),v.map(n=>n.role!=="system"&&a.jsx(j.Fragment,{children:n.isReasoning?a.jsxs(B.Reasoning,{isStreaming:n.isStreaming,defaultOpen:!0,children:[a.jsx(B.ReasoningTrigger,{className:"text-xs [&_p]:text-muted-foreground"}),a.jsx(B.ReasoningContent,{className:"p-0 text-xs",children:n.content})]}):n.isTask&&!n.isTaskCompleted?a.jsx(B.TaskMessage,{content:n.content,isLoading:n.isTaskLoading}):a.jsx(B.Message,{from:n.role,children:a.jsx(B.MessageContent,{className:"p-0",children:n.role==="assistant"?a.jsx(B.MessageResponse,{className:"p-0 text-xs",children:n.content}):a.jsx("div",{className:"p-0 text-xs",children:n.userMessage||n.content})})})},n.id))]}),a.jsx(B.ConversationScrollButton,{})]}),a.jsxs("div",{className:"border-gray-200 pb-2",children:[a.jsx(B.SelectedBlockDisplay,{onRemove:()=>s([]),isLoading:g}),a.jsx(j.Suspense,{fallback:a.jsx("div",{children:"Loading..."}),children:a.jsx(G,{input:m,setInput:p,onSend:o,onStop:d,isLoading:g,selectedLang:"",currentBlock:t||R,disabled:(m==null?void 0:m.length)===0,selectedModel:N,onModelChange:r})})]})]})};exports.default=Q;
3
+ `);A=u.pop()||"";for(const I of u)await T(I)}A&&await T(A),v.invalidateQueries({queryKey:["AI_USAGE"]})}catch(k){console.log(k)}},[m])},G=j.lazy(()=>Promise.resolve().then(()=>require("./ai-prompt-input-a8s-JrZb.cjs"))),Q=({t:l,fetch:S,input:m,messages:v,setInput:p,isLoading:g,setMessages:w,handleStop:d,setIsLoading:C,currentBlock:R,fallbackLang:M,setCurrentBlock:h,setAbortController:b,selectedModel:N=W.getDefaultModel().id,onModelChange:r})=>{const t=x.useSelectedBlock(),[,s]=x.useSelectedBlockIds(),f=x.useBlocksHtmlForAi(),A=U(),o=async(n,e,T,D)=>{var I;if(!n||g)return;h(t);const k=f(t?{blockId:t._id,additionalCoreBlocks:["Icon"]}:{additionalCoreBlocks:["Icon"]});if(t&&!k){O.toast.error(l("Something went wrong. Please try again."));return}const i={id:Date.now().toString(),role:"user",content:B.getUserPrompt({language:M,userInput:e||n,currentHtml:k}),userMessage:n},c={id:(Date.now()+1).toString(),role:"assistant",content:"",isReasoning:!0,isStreaming:!0};w(y=>[...y,i,c]),C(!0);const u=new AbortController;b(u);try{const y={messages:[i].map(L=>({role:L.role,content:L.content})),model:D||N};T&&(y.image=T);const E=await S({body:{action:"ASK_AI",data:y},streamResponse:!0});if(!E.ok)throw new Error(l("Failed to get AI response"));const H=(I=E.body)==null?void 0:I.getReader();if(!H)throw new Error(l("Response body is not readable"));await A(H,w)}catch(y){if(y.name!=="AbortError"){const E={id:(Date.now()+1).toString(),role:"assistant",content:l("Sorry, I encountered an error. Please try again.")};w(H=>[...H,E])}}finally{p(""),C(!1),h(null),b(null)}};return a.jsxs(a.Fragment,{children:[a.jsxs(B.Conversation,{className:"no-scrollbar",children:[a.jsxs(B.ConversationContent,{className:"gap-2 px-0",children:[v.length===0&&a.jsx(B.ConversationEmptyState,{icon:a.jsx(P.Bot,{size:48,className:"text-gray-300"}),title:"Start a conversation",description:l("Start a conversation with the AI assistant to add/edit current page")}),v.map(n=>n.role!=="system"&&a.jsx(j.Fragment,{children:n.isReasoning?a.jsxs(B.Reasoning,{isStreaming:n.isStreaming,defaultOpen:!0,children:[a.jsx(B.ReasoningTrigger,{className:"text-xs [&_p]:text-muted-foreground"}),a.jsx(B.ReasoningContent,{className:"p-0 text-xs",children:n.content})]}):n.isTask&&!n.isTaskCompleted?a.jsx(B.TaskMessage,{content:n.content,isLoading:n.isTaskLoading}):a.jsx(B.Message,{from:n.role,children:a.jsx(B.MessageContent,{className:"p-0",children:n.role==="assistant"?a.jsx(B.MessageResponse,{className:"p-0 text-xs",children:n.content}):a.jsx("div",{className:"p-0 text-xs",children:n.userMessage||n.content})})})},n.id))]}),a.jsx(B.ConversationScrollButton,{})]}),a.jsxs("div",{className:"border-gray-200 pb-2",children:[a.jsx(B.SelectedBlockDisplay,{onRemove:()=>s([]),isLoading:g}),a.jsx(j.Suspense,{fallback:a.jsx("div",{children:"Loading..."}),children:a.jsx(G,{input:m,setInput:p,onSend:o,onStop:d,isLoading:g,selectedLang:"",currentBlock:t||R,disabled:(m==null?void 0:m.length)===0,selectedModel:N,onModelChange:r})})]})]})};exports.default=Q;
@@ -1,6 +1,6 @@
1
1
  import { jsxs as D, Fragment as O, jsx as h } from "react/jsx-runtime";
2
- import { a as _, ah as F, ai as $, aj as q, ak as V, al as K, am as j, an as U, ao as G, ap as z } from "./index-lm46VtIP.js";
3
- import { C as Q, a as J, b as X, R as Y, c as Z, d as tt, T as et, M as nt, e as rt, f as st, g as ot, S as at, h as it } from "./selected-block-display-BtlTAkei.js";
2
+ import { a as _, ah as F, ai as $, aj as q, ak as V, al as K, am as j, an as U, ao as G, ap as z } from "./index-iRqgNs2O.js";
3
+ import { C as Q, a as J, b as X, R as Y, c as Z, d as tt, T as et, M as nt, e as rt, f as st, g as ot, S as at, h as it } from "./selected-block-display-BxHTDLna.js";
4
4
  import { Bot as ct } from "lucide-react";
5
5
  import { useCallback as P, Fragment as lt, Suspense as dt, lazy as ut } from "react";
6
6
  import { toast as ft } from "sonner";
@@ -222,7 +222,7 @@ const W = (c, I) => {
222
222
  },
223
223
  [f]
224
224
  );
225
- }, St = ut(() => import("./ai-prompt-input-B6QoqT9B.js")), Rt = ({
225
+ }, St = ut(() => import("./ai-prompt-input-CB6iQAmE.js")), Rt = ({
226
226
  t: c,
227
227
  fetch: I,
228
228
  input: f,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),p=require("./index-EFWvSWoi.cjs"),f=require("lodash-es"),l=require("react"),G=require("./core-BWQrViOY.cjs"),c=require("./selected-block-display-BvRoOMt9.cjs"),H=require("lucide-react"),Q=require("react-i18next"),X=require("./models-5gOsRC56.cjs"),C=(s,o)=>{const r=s.filter(n=>n._parent===o),i=r.flatMap(n=>C(s,n._id));return[...r,...i]},Y=(s,o)=>{const r=o.find(n=>n._id===s);if(!r)return[];const i=C(o,s);return[r,...i]},Z=()=>{const s=p.useSelectedBlock(),[o]=p.useBlocksStore();return l.useCallback((r="")=>{const i=s!=null&&s._id?Y(s._id,o):o;return i?f.compact(i.map(n=>{const h=G.getRegisteredChaiBlock(n._type);if(!h)return null;const x=(h==null?void 0:h.i18nProps)??[];if(x.length===0)return null;const g=r==="ALL"?Object.keys(n).filter(a=>x.find(S=>a.startsWith(S))):x.map(a=>r?`${a}-${r}`:a),d=f.pick(n,["_id"]);return f.each(g,a=>{d[a]=f.get(n,a,f.get(n,a.replace(`-${r}`,"")))}),d})):[]},[s==null?void 0:s._id,o])},ee=l.lazy(()=>Promise.resolve().then(()=>require("./ai-translation-prompt-Uswft8iz.cjs"))),te=l.lazy(()=>Promise.resolve().then(()=>require("./ai-prompt-input-DXS8gzex.cjs"))),ne=({fetch:s,input:o,messages:r,setInput:i,isLoading:n,handleStop:h,setMessages:x,setIsLoading:g,selectedLang:d,currentBlock:a,fallbackLang:S,abortController:k,setAbortController:E,setCurrentBlock:T,selectedModel:B=X.getDefaultModel().id,onModelChange:M})=>{const{t:u}=Q.useTranslation(),O=l.useRef(null),y=p.useSelectedBlock(),[,D]=p.useSelectedBlockIds(),R=Z(),I=p.useStreamMultipleBlocksProps(),F=()=>{var t;(t=O.current)==null||t.scrollIntoView({behavior:"smooth"})};l.useEffect(()=>{F()},[r,n]);const N=async(t,w,$)=>{var P;y&&T(y);const q=(t==null?void 0:t.toLowerCase())==="translate",v={id:Date.now().toString(),role:"user",content:c.getTranslationUserPrompt({fallbackLang:S,userInput:w||t,language:d,blocks:q?R():R(d)}),userMessage:w||t||u("Translate the content")},z={id:(Date.now()+1).toString(),role:"assistant",content:"Thinking...",isReasoning:!0,isStreaming:!0};g(!0);const W=new AbortController;E(W),x(b=>[...b,v,z]),g(!0);try{const A=await s({body:{action:"ASK_AI",data:{messages:[v],initiator:q?"TRANSLATE_CONTENT":"UPDATE_CONTENT",model:$||B}},streamResponse:!0});if(!A.ok)throw new Error(u("Failed to get AI response"));const _=(P=A.body)==null?void 0:P.getReader(),U=new TextDecoder;let j="";if(!_)throw new Error(u("Response body is not readable"));for(;;){const{done:K,value:L}=await _.read();if(K)break;const V=U.decode(L,{stream:!0});j+=V,x(m=>(m[m.length-1].content=j,[...m]))}const J=JSON.parse(j==null?void 0:j.replace("```json","").replace("```",""));I(J)}catch{k==null||k.abort()}finally{g(!1),i(""),T(null)}};return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"py-2",children:e.jsx(l.Suspense,{fallback:e.jsx("div",{children:u("Loading...")}),children:e.jsx(ee,{isLoading:n,selectedBlock:y,selectedLang:d,onClick:N})})}),e.jsx(c.Conversation,{children:e.jsxs(c.ConversationContent,{className:"gap-4 px-0",children:[r.length===0&&e.jsx(c.ConversationEmptyState,{icon:e.jsx(H.Bot,{size:48,className:"text-gray-300"}),title:u("Start a conversation with the AI assistant to translate/edit your content"),description:u("Only content can be edited in secondary languages. To edit layout, styles and more, switch to the default language.")}),r.map(t=>t.role!=="system"&&e.jsx(l.Fragment,{children:t.isReasoning?e.jsxs(c.Reasoning,{isStreaming:t.isStreaming,defaultOpen:!0,children:[e.jsx(c.ReasoningTrigger,{className:"text-xs [&_p]:text-muted-foreground"}),e.jsx(c.ReasoningContent,{className:"p-0 text-xs",children:t.content})]}):t.isTask?e.jsx(c.TaskMessage,{content:t.content,isLoading:t.isTaskLoading}):e.jsx(c.Message,{from:t.role,children:e.jsx(c.MessageContent,{className:"p-0",children:t.role==="assistant"?e.jsx(c.MessageResponse,{className:"p-0 text-xs",children:t.content}):e.jsx("div",{className:"p-0 text-xs",children:t.userMessage||t.content})})})},t.id))]})}),e.jsxs("div",{className:"border-gray-200 pb-2",children:[e.jsx(c.SelectedBlockDisplay,{onRemove:()=>D([]),isLoading:n}),e.jsx(l.Suspense,{fallback:e.jsx("div",{children:u("Loading...")}),children:e.jsx(te,{input:o,setInput:i,onSend:N,onStop:h,isLoading:n,selectedLang:d,currentBlock:y||a,disabled:(o==null?void 0:o.length)===0,selectedModel:B,onModelChange:M})})]})]})};exports.default=ne;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),p=require("./index-CfsIhbT2.cjs"),f=require("lodash-es"),l=require("react"),G=require("./core-BWQrViOY.cjs"),c=require("./selected-block-display-BjhZTfSL.cjs"),H=require("lucide-react"),Q=require("react-i18next"),X=require("./models-5gOsRC56.cjs"),C=(s,o)=>{const r=s.filter(n=>n._parent===o),i=r.flatMap(n=>C(s,n._id));return[...r,...i]},Y=(s,o)=>{const r=o.find(n=>n._id===s);if(!r)return[];const i=C(o,s);return[r,...i]},Z=()=>{const s=p.useSelectedBlock(),[o]=p.useBlocksStore();return l.useCallback((r="")=>{const i=s!=null&&s._id?Y(s._id,o):o;return i?f.compact(i.map(n=>{const h=G.getRegisteredChaiBlock(n._type);if(!h)return null;const x=(h==null?void 0:h.i18nProps)??[];if(x.length===0)return null;const g=r==="ALL"?Object.keys(n).filter(a=>x.find(S=>a.startsWith(S))):x.map(a=>r?`${a}-${r}`:a),d=f.pick(n,["_id"]);return f.each(g,a=>{d[a]=f.get(n,a,f.get(n,a.replace(`-${r}`,"")))}),d})):[]},[s==null?void 0:s._id,o])},ee=l.lazy(()=>Promise.resolve().then(()=>require("./ai-translation-prompt-Qn1Sz4BI.cjs"))),te=l.lazy(()=>Promise.resolve().then(()=>require("./ai-prompt-input-a8s-JrZb.cjs"))),ne=({fetch:s,input:o,messages:r,setInput:i,isLoading:n,handleStop:h,setMessages:x,setIsLoading:g,selectedLang:d,currentBlock:a,fallbackLang:S,abortController:k,setAbortController:E,setCurrentBlock:T,selectedModel:B=X.getDefaultModel().id,onModelChange:M})=>{const{t:u}=Q.useTranslation(),O=l.useRef(null),y=p.useSelectedBlock(),[,D]=p.useSelectedBlockIds(),R=Z(),I=p.useStreamMultipleBlocksProps(),F=()=>{var t;(t=O.current)==null||t.scrollIntoView({behavior:"smooth"})};l.useEffect(()=>{F()},[r,n]);const N=async(t,w,$)=>{var P;y&&T(y);const q=(t==null?void 0:t.toLowerCase())==="translate",v={id:Date.now().toString(),role:"user",content:c.getTranslationUserPrompt({fallbackLang:S,userInput:w||t,language:d,blocks:q?R():R(d)}),userMessage:w||t||u("Translate the content")},z={id:(Date.now()+1).toString(),role:"assistant",content:"Thinking...",isReasoning:!0,isStreaming:!0};g(!0);const W=new AbortController;E(W),x(b=>[...b,v,z]),g(!0);try{const A=await s({body:{action:"ASK_AI",data:{messages:[v],initiator:q?"TRANSLATE_CONTENT":"UPDATE_CONTENT",model:$||B}},streamResponse:!0});if(!A.ok)throw new Error(u("Failed to get AI response"));const _=(P=A.body)==null?void 0:P.getReader(),U=new TextDecoder;let j="";if(!_)throw new Error(u("Response body is not readable"));for(;;){const{done:K,value:L}=await _.read();if(K)break;const V=U.decode(L,{stream:!0});j+=V,x(m=>(m[m.length-1].content=j,[...m]))}const J=JSON.parse(j==null?void 0:j.replace("```json","").replace("```",""));I(J)}catch{k==null||k.abort()}finally{g(!1),i(""),T(null)}};return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"py-2",children:e.jsx(l.Suspense,{fallback:e.jsx("div",{children:u("Loading...")}),children:e.jsx(ee,{isLoading:n,selectedBlock:y,selectedLang:d,onClick:N})})}),e.jsx(c.Conversation,{children:e.jsxs(c.ConversationContent,{className:"gap-4 px-0",children:[r.length===0&&e.jsx(c.ConversationEmptyState,{icon:e.jsx(H.Bot,{size:48,className:"text-gray-300"}),title:u("Start a conversation with the AI assistant to translate/edit your content"),description:u("Only content can be edited in secondary languages. To edit layout, styles and more, switch to the default language.")}),r.map(t=>t.role!=="system"&&e.jsx(l.Fragment,{children:t.isReasoning?e.jsxs(c.Reasoning,{isStreaming:t.isStreaming,defaultOpen:!0,children:[e.jsx(c.ReasoningTrigger,{className:"text-xs [&_p]:text-muted-foreground"}),e.jsx(c.ReasoningContent,{className:"p-0 text-xs",children:t.content})]}):t.isTask?e.jsx(c.TaskMessage,{content:t.content,isLoading:t.isTaskLoading}):e.jsx(c.Message,{from:t.role,children:e.jsx(c.MessageContent,{className:"p-0",children:t.role==="assistant"?e.jsx(c.MessageResponse,{className:"p-0 text-xs",children:t.content}):e.jsx("div",{className:"p-0 text-xs",children:t.userMessage||t.content})})})},t.id))]})}),e.jsxs("div",{className:"border-gray-200 pb-2",children:[e.jsx(c.SelectedBlockDisplay,{onRemove:()=>D([]),isLoading:n}),e.jsx(l.Suspense,{fallback:e.jsx("div",{children:u("Loading...")}),children:e.jsx(te,{input:o,setInput:i,onSend:N,onStop:h,isLoading:n,selectedLang:d,currentBlock:y||a,disabled:(o==null?void 0:o.length)===0,selectedModel:B,onModelChange:M})})]})]})};exports.default=ne;
@@ -1,9 +1,9 @@
1
1
  import { jsxs as p, Fragment as H, jsx as t } from "react/jsx-runtime";
2
- import { ao as P, af as Q, a as X, aq as Y } from "./index-lm46VtIP.js";
2
+ import { ao as P, af as Q, a as X, aq as Y } from "./index-iRqgNs2O.js";
3
3
  import { compact as Z, pick as ee, each as te, get as v } from "lodash-es";
4
4
  import { useCallback as ne, useRef as se, useEffect as oe, Suspense as M, lazy as E, Fragment as re } from "react";
5
5
  import { e as ae } from "./core-QlWEXm1d.js";
6
- import { C as ie, a as ce, b as le, R as de, c as ue, d as he, T as fe, M as me, e as pe, f as ge, S as ye, i as Se } from "./selected-block-display-BtlTAkei.js";
6
+ import { C as ie, a as ce, b as le, R as de, c as ue, d as he, T as fe, M as me, e as pe, f as ge, S as ye, i as Se } from "./selected-block-display-BxHTDLna.js";
7
7
  import { Bot as Te } from "lucide-react";
8
8
  import { useTranslation as ke } from "react-i18next";
9
9
  import { g as Ne } from "./models-D95ZYr_x.js";
@@ -35,7 +35,7 @@ const O = (s, r) => {
35
35
  },
36
36
  [s == null ? void 0 : s._id, r]
37
37
  );
38
- }, Re = E(() => import("./ai-translation-prompt-Dmq_Ahjf.js")), xe = E(() => import("./ai-prompt-input-B6QoqT9B.js")), De = ({
38
+ }, Re = E(() => import("./ai-translation-prompt-CoNVDclG.js")), xe = E(() => import("./ai-prompt-input-CB6iQAmE.js")), De = ({
39
39
  fetch: s,
40
40
  input: r,
41
41
  messages: o,
@@ -1,6 +1,6 @@
1
1
  import { jsx as e, jsxs as w, Fragment as ie } from "react/jsx-runtime";
2
2
  import { E as N, B as E } from "./register-chai-top-bar-CX_JkRJn.js";
3
- import { T as le, av as ce, s as ue, t as de, v as pe, w as me, aw as fe, ax as he, D as ge, ay as ve, e as be, g as xe, C as we, j as Ne, k as Ie, m as ye, n as Se } from "./index-lm46VtIP.js";
3
+ import { T as le, av as ce, s as ue, t as de, v as pe, w as me, aw as fe, ax as he, D as ge, ay as ve, e as be, g as xe, C as we, j as Ne, k as Ie, m as ye, n as Se } from "./index-iRqgNs2O.js";
4
4
  import { cva as Y } from "class-variance-authority";
5
5
  import { PaperclipIcon as ke, XIcon as J, PlusIcon as De, ImageIcon as ze, MicIcon as Pe, CornerDownLeftIcon as Te, Loader2Icon as Ae, SquareIcon as Le, Cpu as Ce, Paperclip as Re, GlobeIcon as Me, Square as je, Send as Ue } from "lucide-react";
6
6
  import { nanoid as Oe } from "nanoid";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),g=require("./register-chai-top-bar-DWTuRU53.cjs"),N=require("./index-EFWvSWoi.cjs"),W=require("class-variance-authority"),y=require("lucide-react"),te=require("nanoid"),c=require("react"),se=require("react-i18next"),R=require("./models-5gOsRC56.cjs");function ne({className:t,...s}){return e.jsx("div",{"data-slot":"input-group",role:"group",className:g.cn("group/input-group shadow-xs relative flex w-full items-center rounded-md border border-input outline-none transition-[color,box-shadow] dark:bg-input/30","h-9 has-[>textarea]:h-auto","has-[>[data-align=inline-start]]:[&>input]:pl-2","has-[>[data-align=inline-end]]:[&>input]:pr-2","has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3","has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3","has-[[data-slot=input-group-control]:focus-visible]:ring-1 has-[[data-slot=input-group-control]:focus-visible]:ring-ring","has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",t),...s})}const re=W.cva("text-muted-foreground flex h-auto cursor-text select-none items-center justify-center gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]","inline-end":"order-last pr-3 has-[>button]:mr-[-0.4rem] has-[>kbd]:mr-[-0.35rem]","block-start":"[.border-b]:pb-3 order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5","block-end":"[.border-t]:pt-3 order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5"}},defaultVariants:{align:"inline-start"}});function H({className:t,align:s="inline-start",...o}){return e.jsx("div",{role:"group","data-slot":"input-group-addon","data-align":s,className:g.cn(re({align:s}),t),onClick:l=>{var i,m;l.target.closest("button")||(m=(i=l.currentTarget.parentElement)==null?void 0:i.querySelector("input"))==null||m.focus()},...o})}const ae=W.cva("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",sm:"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5","icon-xs":"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});function K({className:t,type:s="button",variant:o="ghost",size:l="xs",...i}){return e.jsx(g.Button,{type:s,"data-size":l,variant:o,className:g.cn(ae({size:l}),t),...i})}function oe({className:t,...s}){return e.jsx(N.Textarea,{"data-slot":"input-group-control",className:g.cn("flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent",t),...s})}const ie=c.createContext(null),ce=c.createContext(null),X=()=>c.useContext(ie),le=()=>c.useContext(ce),$=c.createContext(null),q=()=>{const t=le(),s=c.useContext($),o=t??s;if(!o)throw new Error("usePromptInputAttachments must be used within a PromptInput or PromptInputProvider");return o};function ue({data:t,className:s,...o}){var h;const l=q(),i=t.filename||"",d=((h=t.mediaType)!=null&&h.startsWith("image/")&&t.url?"image":"file")==="image",v=i||(d?"Image":"Attachment");return e.jsxs(Ie,{children:[e.jsx(N.HoverCardTrigger,{asChild:!0,children:e.jsxs("div",{className:g.cn("group relative flex h-8 cursor-default select-none items-center gap-1.5 rounded-md border border-border px-1.5 text-sm font-medium transition-all hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",s),...o,children:[e.jsxs("div",{className:"relative size-5 shrink-0",children:[e.jsx("div",{className:"absolute inset-0 flex size-5 items-center justify-center overflow-hidden rounded bg-background transition-opacity group-hover:opacity-0",children:d?e.jsx("img",{alt:i||"attachment",className:"size-5 object-cover",height:20,src:t.url,width:20}):e.jsx("div",{className:"flex size-5 items-center justify-center text-muted-foreground",children:e.jsx(y.PaperclipIcon,{className:"size-3"})})}),e.jsxs(g.Button,{"aria-label":"Remove attachment",className:"absolute inset-0 size-5 cursor-pointer rounded p-0 opacity-0 transition-opacity group-hover:pointer-events-auto group-hover:opacity-100 [&>svg]:size-2.5",onClick:S=>{S.stopPropagation(),l.remove(t.id)},type:"button",variant:"ghost",children:[e.jsx(y.XIcon,{}),e.jsx("span",{className:"sr-only",children:"Remove"})]})]}),e.jsx("span",{className:"flex-1 truncate",children:v})]},t.id)}),e.jsx(ye,{className:"w-auto p-2",children:e.jsxs("div",{className:"w-auto space-y-3",children:[d&&e.jsx("div",{className:"flex max-h-96 w-96 items-center justify-center overflow-hidden rounded-md border",children:e.jsx("img",{alt:i||"attachment preview",className:"max-h-full max-w-full object-contain",height:384,src:t.url,width:448})}),e.jsx("div",{className:"flex items-center gap-2.5",children:e.jsxs("div",{className:"min-w-0 flex-1 space-y-1 px-0.5",children:[e.jsx("h4",{className:"truncate text-sm font-semibold leading-none",children:i||(d?"Image":"Attachment")}),t.mediaType&&e.jsx("p",{className:"truncate font-mono text-xs text-muted-foreground",children:t.mediaType})]})})]})})]})}function de({children:t,className:s,...o}){const l=q();return l.files.length?e.jsx("div",{className:g.cn("flex flex-wrap items-center gap-2 p-3",s),...o,children:l.files.map(i=>e.jsx(c.Fragment,{children:t(i)},i.id))}):null}const pe=({label:t="Add photos or files",...s})=>{const o=q();return e.jsxs(N.DropdownMenuItem,{...s,onSelect:l=>{l.preventDefault(),o.openFileDialog()},children:[e.jsx(y.ImageIcon,{className:"mr-2 size-4"})," ",t]})},me=({className:t,accept:s,multiple:o,globalDrop:l,syncHiddenInput:i,maxFiles:m,maxFileSize:d,onError:v,onSubmit:h,children:S,...P})=>{const n=X(),a=!!n,p=c.useRef(null),D=c.useRef(null),I=c.useRef(null);c.useEffect(()=>{var j;const r=(j=D.current)==null?void 0:j.closest("form");r instanceof HTMLFormElement&&(I.current=r)},[]);const[k,z]=c.useState([]),x=a?n.attachments.files:k,C=c.useCallback(()=>{var r;(r=p.current)==null||r.click()},[]),M=c.useCallback(r=>!s||s.trim()===""?!0:s.includes("image/*")?r.type.startsWith("image/"):!0,[s]),U=c.useCallback(r=>{const j=Array.from(r),f=j.filter(w=>M(w));if(j.length&&f.length===0){v==null||v({code:"accept",message:"No files match the accepted types."});return}const u=w=>d?w.size<=d:!0,b=f.filter(u);if(f.length>0&&b.length===0){v==null||v({code:"max_file_size",message:"All files exceed the maximum size."});return}z(w=>{const A=typeof m=="number"?Math.max(0,m-w.length):void 0,ee=typeof A=="number"?b.slice(0,A):b;typeof A=="number"&&b.length>A&&(v==null||v({code:"max_files",message:"Too many files. Some were not added."}));const V=[];for(const E of ee)V.push({id:te.nanoid(),type:"file",url:URL.createObjectURL(E),mediaType:E.type,filename:E.name});return w.concat(V)})},[M,m,d,v]),T=a?r=>n.attachments.add(r):U,L=a?r=>n.attachments.remove(r):r=>z(j=>{const f=j.find(u=>u.id===r);return f!=null&&f.url&&URL.revokeObjectURL(f.url),j.filter(u=>u.id!==r)}),O=a?()=>n.attachments.clear():()=>z(r=>{for(const j of r)j.url&&URL.revokeObjectURL(j.url);return[]}),B=a?()=>n.attachments.openFileDialog():C;c.useEffect(()=>{a&&n.__registerFileInput(p,()=>{var r;return(r=p.current)==null?void 0:r.click()})},[a,n]),c.useEffect(()=>{i&&p.current&&x.length===0&&(p.current.value="")},[x,i]),c.useEffect(()=>{const r=I.current;if(!r)return;const j=u=>{var b,w;(w=(b=u.dataTransfer)==null?void 0:b.types)!=null&&w.includes("Files")&&u.preventDefault()},f=u=>{var b,w,A;(w=(b=u.dataTransfer)==null?void 0:b.types)!=null&&w.includes("Files")&&u.preventDefault(),(A=u.dataTransfer)!=null&&A.files&&u.dataTransfer.files.length>0&&T(u.dataTransfer.files)};return r.addEventListener("dragover",j),r.addEventListener("drop",f),()=>{r.removeEventListener("dragover",j),r.removeEventListener("drop",f)}},[T]),c.useEffect(()=>{if(!l)return;const r=f=>{var u,b;(b=(u=f.dataTransfer)==null?void 0:u.types)!=null&&b.includes("Files")&&f.preventDefault()},j=f=>{var u,b,w;(b=(u=f.dataTransfer)==null?void 0:u.types)!=null&&b.includes("Files")&&f.preventDefault(),(w=f.dataTransfer)!=null&&w.files&&f.dataTransfer.files.length>0&&T(f.dataTransfer.files)};return document.addEventListener("dragover",r),document.addEventListener("drop",j),()=>{document.removeEventListener("dragover",r),document.removeEventListener("drop",j)}},[T,l]),c.useEffect(()=>()=>{if(!a)for(const r of x)r.url&&URL.revokeObjectURL(r.url)},[a,x]);const Y=r=>{r.currentTarget.files&&T(r.currentTarget.files)},J=async r=>{const f=await(await fetch(r)).blob();return new Promise((u,b)=>{const w=new FileReader;w.onloadend=()=>u(w.result),w.onerror=b,w.readAsDataURL(f)})},Q=c.useMemo(()=>({files:x.map(r=>({...r,id:r.id})),add:T,remove:L,clear:O,openFileDialog:B,fileInputRef:p}),[x,T,L,O,B]),Z=r=>{r.preventDefault();const j=r.currentTarget,f=a?n.textInput.value:new FormData(j).get("message")||"";a||j.reset(),Promise.all(x.map(async({...u})=>u.url&&u.url.startsWith("blob:")?{...u,url:await J(u.url)}:u)).then(u=>{try{const b=h({text:f,files:u},r);b instanceof Promise?b.then(()=>{O(),a&&n.textInput.clear()}).catch(()=>{}):(O(),a&&n.textInput.clear())}catch{}})},G=e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",className:"hidden",ref:D}),e.jsx("input",{accept:s,"aria-label":"Upload files",className:"hidden",multiple:o,onChange:Y,ref:p,title:"Upload files",type:"file"}),e.jsx("form",{className:g.cn("w-full",t),onSubmit:Z,...P,children:e.jsx(ne,{className:"overflow-hidden",children:S})})]});return a?G:e.jsx($.Provider,{value:Q,children:G})},fe=({onChange:t,className:s,placeholder:o="What would you like to know?",...l})=>{const i=X(),m=q(),[d,v]=c.useState(!1),h=n=>{if(n.key==="Enter"){if(d||n.nativeEvent.isComposing||n.shiftKey)return;n.preventDefault();const a=n.currentTarget.form,p=a==null?void 0:a.querySelector('button[type="submit"]');if(p!=null&&p.disabled)return;a==null||a.requestSubmit()}if(n.key==="Backspace"&&n.currentTarget.value===""&&m.files.length>0){n.preventDefault();const a=m.files.at(-1);a&&m.remove(a.id)}},S=n=>{var D;const a=(D=n.clipboardData)==null?void 0:D.items;if(!a)return;const p=[];for(const I of a)if(I.kind==="file"){const k=I.getAsFile();k&&p.push(k)}p.length>0&&(n.preventDefault(),m.add(p))},P=i?{value:i.textInput.value,onChange:n=>{i.textInput.setInput(n.currentTarget.value),t==null||t(n)}}:{onChange:t};return e.jsx(oe,{className:g.cn("field-sizing-content max-h-48 min-h-16",s),name:"message",onCompositionEnd:()=>v(!1),onCompositionStart:()=>v(!0),onKeyDown:h,onPaste:S,placeholder:o,...l,...P})},he=({className:t,...s})=>e.jsx(H,{align:"block-end",className:g.cn("order-first flex-wrap gap-1",t),...s}),xe=({className:t,...s})=>e.jsx(H,{align:"block-end",className:g.cn("justify-between gap-1",t),...s}),ge=({className:t,...s})=>e.jsx("div",{className:g.cn("flex items-center gap-1",t),...s}),F=({variant:t="ghost",className:s,size:o,...l})=>{const i=o??(c.Children.count(l.children)>1?"sm":"icon-sm");return e.jsx(K,{className:g.cn(s),size:i,type:"button",variant:t,...l})},ve=t=>e.jsx(N.DropdownMenu,{...t}),je=({className:t,children:s,...o})=>e.jsx(N.DropdownMenuTrigger,{asChild:!0,children:e.jsx(F,{className:t,...o,children:s??e.jsx(y.PlusIcon,{className:"size-4"})})}),be=({className:t,...s})=>e.jsx(N.DropdownMenuContent,{align:"start",className:g.cn(t),...s}),we=({className:t,variant:s="default",size:o="icon-sm",status:l,children:i,...m})=>{let d=e.jsx(y.CornerDownLeftIcon,{className:"size-4"});return l==="submitted"?d=e.jsx(y.Loader2Icon,{className:"size-4 animate-spin"}):l==="streaming"?d=e.jsx(y.SquareIcon,{className:"size-4"}):l==="error"&&(d=e.jsx(y.XIcon,{className:"size-4"})),e.jsx(K,{"aria-label":"Submit",className:g.cn(t),size:o,type:"submit",variant:s,...m,children:i??d})},Ne=({className:t,textareaRef:s,onTranscriptionChange:o,...l})=>{const[i,m]=c.useState(!1),[d,v]=c.useState(null),h=c.useRef(null);c.useEffect(()=>{if(typeof window<"u"&&("SpeechRecognition"in window||"webkitSpeechRecognition"in window)){const P=window.SpeechRecognition||window.webkitSpeechRecognition,n=new P;n.continuous=!0,n.interimResults=!0,n.lang="en-US",n.onstart=()=>{m(!0)},n.onend=()=>{m(!1)},n.onresult=a=>{var D;let p="";for(let I=a.resultIndex;I<a.results.length;I++){const k=a.results[I];k.isFinal&&(p+=((D=k[0])==null?void 0:D.transcript)??"")}if(p&&(s!=null&&s.current)){const I=s.current,k=I.value,z=k+(k?" ":"")+p;I.value=z,I.dispatchEvent(new Event("input",{bubbles:!0})),o==null||o(z)}},n.onerror=a=>{console.error("Speech recognition error:",a.error),m(!1)},h.current=n,c.startTransition(()=>v(n))}return()=>{h.current&&h.current.stop()}},[s,o]);const S=c.useCallback(()=>{d&&(i?d.stop():d.start())},[d,i]);return e.jsx(F,{className:g.cn("relative transition-all duration-200",i&&"animate-pulse bg-accent text-accent-foreground",t),disabled:!d,onClick:S,...l,children:e.jsx(y.MicIcon,{className:"size-4"})})},Ie=({openDelay:t=0,closeDelay:s=0,...o})=>e.jsx(N.HoverCard,{closeDelay:s,openDelay:t,...o}),ye=({align:t="start",...s})=>e.jsx(N.HoverCardContent,{align:t,...s}),Se=t=>e.jsx(N.Dialog,{...t}),ke=t=>e.jsx(N.DialogTrigger,{...t}),De=({className:t,children:s,title:o="Model Selector",...l})=>e.jsxs(N.DialogContent,{className:g.cn("p-0",t),...l,children:[e.jsx(N.DialogTitle,{className:"sr-only",children:o}),e.jsx(N.Command,{className:"**:data-[slot=command-input-wrapper]:h-auto",children:s})]}),Pe=({className:t,...s})=>e.jsx(N.CommandInput,{className:g.cn("h-auto py-3.5",t),...s}),Te=t=>e.jsx(N.CommandList,{...t}),ze=t=>e.jsx(N.CommandGroup,{...t}),Ce=t=>e.jsx(N.CommandItem,{...t}),Ae=({provider:t,className:s,...o})=>e.jsx("img",{...o,alt:`${t} logo`,className:g.cn("size-3 dark:invert",s),height:12,src:`https://models.dev/logos/${t}.svg`,width:12}),Le=({className:t,...s})=>e.jsx("span",{className:g.cn("flex-1 truncate text-left",t),...s}),Re=({selectedModel:t,onModelChange:s,disabled:o=!1})=>{const[l,i]=c.useState(!1),[m,d]=c.useState(""),v=R.getModelById(t)||R.getDefaultModel(),S=R.AI_MODELS.filter(n=>n.name.toLowerCase().includes(m.toLowerCase())||n.provider.toLowerCase().includes(m.toLowerCase())).reduce((n,a)=>(n[a.provider]||(n[a.provider]=[]),n[a.provider].push(a),n),{}),P=n=>{s(n),i(!1),d("")};return e.jsxs(Se,{open:l,onOpenChange:i,children:[e.jsx(ke,{asChild:!0,children:e.jsxs(g.Button,{variant:"outline",size:"sm",disabled:o,className:"h-8 gap-1 px-2 text-xs",children:[e.jsx(y.Cpu,{size:14}),e.jsx("span",{className:"max-w-20 truncate",children:v.name})]})}),e.jsxs(De,{className:"w-96 p-0",children:[e.jsx(Pe,{placeholder:"Search models...",value:m,onValueChange:d}),e.jsx(Te,{children:Object.entries(S).map(([n,a])=>e.jsx(ze,{heading:n.charAt(0).toUpperCase()+n.slice(1),children:a.map(p=>e.jsxs(Ce,{value:p.id,onSelect:()=>P(p.id),className:"flex cursor-pointer items-center gap-2 p-2",children:[e.jsx(Ae,{provider:p.provider}),e.jsxs("div",{className:"flex flex-1 flex-col",children:[e.jsx(Le,{children:p.name}),e.jsx("span",{className:"text-xs text-muted-foreground",children:p.description})]}),t===p.id&&e.jsx("div",{className:"h-2 w-2 rounded-full bg-blue-500"})]},p.id))},n))})]})]})},_="chai-ai-selected-model",Me=({input:t,setInput:s,onSend:o,onStop:l,isLoading:i,disabled:m,selectedLang:d,selectedModel:v=R.getDefaultModel().id,onModelChange:h})=>{const{t:S}=se.useTranslation(),[P,n]=c.useState(v),[a,p]=c.useState(null),D=c.useRef(null),[I,k]=c.useState(!1);c.useEffect(()=>{if(!d){const x=localStorage.getItem(_);if(x)n(x),h==null||h(x);else{const C=R.getDefaultModel().id;n(C),h==null||h(C)}}},[d,h]);const z=x=>{var U;const C=x.files.find(T=>{var L;return(L=T.mediaType)==null?void 0:L.startsWith("image/")}),M=(C==null?void 0:C.url)||a;o((U=x.text)==null?void 0:U.trim(),void 0,M,P),p(null)};return e.jsx("div",{className:"relative",children:e.jsx("div",{className:"border-gray-20 rounded-lg border",children:e.jsxs(me,{onSubmit:z,accept:"image/*",className:"flex h-auto w-full flex-col",children:[e.jsx(he,{className:"p-0",children:e.jsx(de,{className:"pb-0",children:x=>e.jsx(ue,{className:"text-xs",data:x})})}),e.jsx(fe,{ref:D,value:t,onChange:x=>s(x.target.value),placeholder:S(d?"Ask to update content":"Ask me anything..."),disabled:i,className:"max-h-[200px] min-h-[60px] w-full",rows:3}),e.jsxs(xe,{children:[d?e.jsx("div",{}):e.jsxs(ge,{children:[e.jsxs(ve,{children:[e.jsx(je,{disabled:i,children:e.jsx(y.Paperclip,{size:16})}),e.jsx(be,{children:e.jsx(pe,{})})]}),e.jsx(Ne,{textareaRef:D,onTranscriptionChange:s,disabled:i}),e.jsx(Re,{selectedModel:P,onModelChange:x=>{n(x),h==null||h(x),localStorage.setItem(_,x)},disabled:i}),e.jsxs(F,{className:"hidden",size:"sm",onClick:()=>k(!I),variant:I?"default":"ghost",children:[e.jsx(y.GlobeIcon,{size:16}),e.jsx("span",{children:"Search"})]})]}),i?e.jsx("button",{onClick:l,className:"z-50 flex items-center gap-x-1 rounded-md bg-red-500 p-1.5 text-white transition-colors hover:bg-red-600",title:S("Stop generation"),children:e.jsx(y.Square,{size:16})}):e.jsx(we,{disabled:!t.trim()||m,children:e.jsx(y.Send,{size:16})})]})]})})})};exports.default=Me;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),g=require("./register-chai-top-bar-DWTuRU53.cjs"),N=require("./index-CfsIhbT2.cjs"),W=require("class-variance-authority"),y=require("lucide-react"),te=require("nanoid"),c=require("react"),se=require("react-i18next"),R=require("./models-5gOsRC56.cjs");function ne({className:t,...s}){return e.jsx("div",{"data-slot":"input-group",role:"group",className:g.cn("group/input-group shadow-xs relative flex w-full items-center rounded-md border border-input outline-none transition-[color,box-shadow] dark:bg-input/30","h-9 has-[>textarea]:h-auto","has-[>[data-align=inline-start]]:[&>input]:pl-2","has-[>[data-align=inline-end]]:[&>input]:pr-2","has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3","has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3","has-[[data-slot=input-group-control]:focus-visible]:ring-1 has-[[data-slot=input-group-control]:focus-visible]:ring-ring","has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",t),...s})}const re=W.cva("text-muted-foreground flex h-auto cursor-text select-none items-center justify-center gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]","inline-end":"order-last pr-3 has-[>button]:mr-[-0.4rem] has-[>kbd]:mr-[-0.35rem]","block-start":"[.border-b]:pb-3 order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5","block-end":"[.border-t]:pt-3 order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5"}},defaultVariants:{align:"inline-start"}});function H({className:t,align:s="inline-start",...o}){return e.jsx("div",{role:"group","data-slot":"input-group-addon","data-align":s,className:g.cn(re({align:s}),t),onClick:l=>{var i,m;l.target.closest("button")||(m=(i=l.currentTarget.parentElement)==null?void 0:i.querySelector("input"))==null||m.focus()},...o})}const ae=W.cva("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",sm:"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5","icon-xs":"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});function K({className:t,type:s="button",variant:o="ghost",size:l="xs",...i}){return e.jsx(g.Button,{type:s,"data-size":l,variant:o,className:g.cn(ae({size:l}),t),...i})}function oe({className:t,...s}){return e.jsx(N.Textarea,{"data-slot":"input-group-control",className:g.cn("flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent",t),...s})}const ie=c.createContext(null),ce=c.createContext(null),X=()=>c.useContext(ie),le=()=>c.useContext(ce),$=c.createContext(null),q=()=>{const t=le(),s=c.useContext($),o=t??s;if(!o)throw new Error("usePromptInputAttachments must be used within a PromptInput or PromptInputProvider");return o};function ue({data:t,className:s,...o}){var h;const l=q(),i=t.filename||"",d=((h=t.mediaType)!=null&&h.startsWith("image/")&&t.url?"image":"file")==="image",v=i||(d?"Image":"Attachment");return e.jsxs(Ie,{children:[e.jsx(N.HoverCardTrigger,{asChild:!0,children:e.jsxs("div",{className:g.cn("group relative flex h-8 cursor-default select-none items-center gap-1.5 rounded-md border border-border px-1.5 text-sm font-medium transition-all hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",s),...o,children:[e.jsxs("div",{className:"relative size-5 shrink-0",children:[e.jsx("div",{className:"absolute inset-0 flex size-5 items-center justify-center overflow-hidden rounded bg-background transition-opacity group-hover:opacity-0",children:d?e.jsx("img",{alt:i||"attachment",className:"size-5 object-cover",height:20,src:t.url,width:20}):e.jsx("div",{className:"flex size-5 items-center justify-center text-muted-foreground",children:e.jsx(y.PaperclipIcon,{className:"size-3"})})}),e.jsxs(g.Button,{"aria-label":"Remove attachment",className:"absolute inset-0 size-5 cursor-pointer rounded p-0 opacity-0 transition-opacity group-hover:pointer-events-auto group-hover:opacity-100 [&>svg]:size-2.5",onClick:S=>{S.stopPropagation(),l.remove(t.id)},type:"button",variant:"ghost",children:[e.jsx(y.XIcon,{}),e.jsx("span",{className:"sr-only",children:"Remove"})]})]}),e.jsx("span",{className:"flex-1 truncate",children:v})]},t.id)}),e.jsx(ye,{className:"w-auto p-2",children:e.jsxs("div",{className:"w-auto space-y-3",children:[d&&e.jsx("div",{className:"flex max-h-96 w-96 items-center justify-center overflow-hidden rounded-md border",children:e.jsx("img",{alt:i||"attachment preview",className:"max-h-full max-w-full object-contain",height:384,src:t.url,width:448})}),e.jsx("div",{className:"flex items-center gap-2.5",children:e.jsxs("div",{className:"min-w-0 flex-1 space-y-1 px-0.5",children:[e.jsx("h4",{className:"truncate text-sm font-semibold leading-none",children:i||(d?"Image":"Attachment")}),t.mediaType&&e.jsx("p",{className:"truncate font-mono text-xs text-muted-foreground",children:t.mediaType})]})})]})})]})}function de({children:t,className:s,...o}){const l=q();return l.files.length?e.jsx("div",{className:g.cn("flex flex-wrap items-center gap-2 p-3",s),...o,children:l.files.map(i=>e.jsx(c.Fragment,{children:t(i)},i.id))}):null}const pe=({label:t="Add photos or files",...s})=>{const o=q();return e.jsxs(N.DropdownMenuItem,{...s,onSelect:l=>{l.preventDefault(),o.openFileDialog()},children:[e.jsx(y.ImageIcon,{className:"mr-2 size-4"})," ",t]})},me=({className:t,accept:s,multiple:o,globalDrop:l,syncHiddenInput:i,maxFiles:m,maxFileSize:d,onError:v,onSubmit:h,children:S,...P})=>{const n=X(),a=!!n,p=c.useRef(null),D=c.useRef(null),I=c.useRef(null);c.useEffect(()=>{var j;const r=(j=D.current)==null?void 0:j.closest("form");r instanceof HTMLFormElement&&(I.current=r)},[]);const[k,z]=c.useState([]),x=a?n.attachments.files:k,C=c.useCallback(()=>{var r;(r=p.current)==null||r.click()},[]),M=c.useCallback(r=>!s||s.trim()===""?!0:s.includes("image/*")?r.type.startsWith("image/"):!0,[s]),U=c.useCallback(r=>{const j=Array.from(r),f=j.filter(w=>M(w));if(j.length&&f.length===0){v==null||v({code:"accept",message:"No files match the accepted types."});return}const u=w=>d?w.size<=d:!0,b=f.filter(u);if(f.length>0&&b.length===0){v==null||v({code:"max_file_size",message:"All files exceed the maximum size."});return}z(w=>{const A=typeof m=="number"?Math.max(0,m-w.length):void 0,ee=typeof A=="number"?b.slice(0,A):b;typeof A=="number"&&b.length>A&&(v==null||v({code:"max_files",message:"Too many files. Some were not added."}));const V=[];for(const E of ee)V.push({id:te.nanoid(),type:"file",url:URL.createObjectURL(E),mediaType:E.type,filename:E.name});return w.concat(V)})},[M,m,d,v]),T=a?r=>n.attachments.add(r):U,L=a?r=>n.attachments.remove(r):r=>z(j=>{const f=j.find(u=>u.id===r);return f!=null&&f.url&&URL.revokeObjectURL(f.url),j.filter(u=>u.id!==r)}),O=a?()=>n.attachments.clear():()=>z(r=>{for(const j of r)j.url&&URL.revokeObjectURL(j.url);return[]}),B=a?()=>n.attachments.openFileDialog():C;c.useEffect(()=>{a&&n.__registerFileInput(p,()=>{var r;return(r=p.current)==null?void 0:r.click()})},[a,n]),c.useEffect(()=>{i&&p.current&&x.length===0&&(p.current.value="")},[x,i]),c.useEffect(()=>{const r=I.current;if(!r)return;const j=u=>{var b,w;(w=(b=u.dataTransfer)==null?void 0:b.types)!=null&&w.includes("Files")&&u.preventDefault()},f=u=>{var b,w,A;(w=(b=u.dataTransfer)==null?void 0:b.types)!=null&&w.includes("Files")&&u.preventDefault(),(A=u.dataTransfer)!=null&&A.files&&u.dataTransfer.files.length>0&&T(u.dataTransfer.files)};return r.addEventListener("dragover",j),r.addEventListener("drop",f),()=>{r.removeEventListener("dragover",j),r.removeEventListener("drop",f)}},[T]),c.useEffect(()=>{if(!l)return;const r=f=>{var u,b;(b=(u=f.dataTransfer)==null?void 0:u.types)!=null&&b.includes("Files")&&f.preventDefault()},j=f=>{var u,b,w;(b=(u=f.dataTransfer)==null?void 0:u.types)!=null&&b.includes("Files")&&f.preventDefault(),(w=f.dataTransfer)!=null&&w.files&&f.dataTransfer.files.length>0&&T(f.dataTransfer.files)};return document.addEventListener("dragover",r),document.addEventListener("drop",j),()=>{document.removeEventListener("dragover",r),document.removeEventListener("drop",j)}},[T,l]),c.useEffect(()=>()=>{if(!a)for(const r of x)r.url&&URL.revokeObjectURL(r.url)},[a,x]);const Y=r=>{r.currentTarget.files&&T(r.currentTarget.files)},J=async r=>{const f=await(await fetch(r)).blob();return new Promise((u,b)=>{const w=new FileReader;w.onloadend=()=>u(w.result),w.onerror=b,w.readAsDataURL(f)})},Q=c.useMemo(()=>({files:x.map(r=>({...r,id:r.id})),add:T,remove:L,clear:O,openFileDialog:B,fileInputRef:p}),[x,T,L,O,B]),Z=r=>{r.preventDefault();const j=r.currentTarget,f=a?n.textInput.value:new FormData(j).get("message")||"";a||j.reset(),Promise.all(x.map(async({...u})=>u.url&&u.url.startsWith("blob:")?{...u,url:await J(u.url)}:u)).then(u=>{try{const b=h({text:f,files:u},r);b instanceof Promise?b.then(()=>{O(),a&&n.textInput.clear()}).catch(()=>{}):(O(),a&&n.textInput.clear())}catch{}})},G=e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",className:"hidden",ref:D}),e.jsx("input",{accept:s,"aria-label":"Upload files",className:"hidden",multiple:o,onChange:Y,ref:p,title:"Upload files",type:"file"}),e.jsx("form",{className:g.cn("w-full",t),onSubmit:Z,...P,children:e.jsx(ne,{className:"overflow-hidden",children:S})})]});return a?G:e.jsx($.Provider,{value:Q,children:G})},fe=({onChange:t,className:s,placeholder:o="What would you like to know?",...l})=>{const i=X(),m=q(),[d,v]=c.useState(!1),h=n=>{if(n.key==="Enter"){if(d||n.nativeEvent.isComposing||n.shiftKey)return;n.preventDefault();const a=n.currentTarget.form,p=a==null?void 0:a.querySelector('button[type="submit"]');if(p!=null&&p.disabled)return;a==null||a.requestSubmit()}if(n.key==="Backspace"&&n.currentTarget.value===""&&m.files.length>0){n.preventDefault();const a=m.files.at(-1);a&&m.remove(a.id)}},S=n=>{var D;const a=(D=n.clipboardData)==null?void 0:D.items;if(!a)return;const p=[];for(const I of a)if(I.kind==="file"){const k=I.getAsFile();k&&p.push(k)}p.length>0&&(n.preventDefault(),m.add(p))},P=i?{value:i.textInput.value,onChange:n=>{i.textInput.setInput(n.currentTarget.value),t==null||t(n)}}:{onChange:t};return e.jsx(oe,{className:g.cn("field-sizing-content max-h-48 min-h-16",s),name:"message",onCompositionEnd:()=>v(!1),onCompositionStart:()=>v(!0),onKeyDown:h,onPaste:S,placeholder:o,...l,...P})},he=({className:t,...s})=>e.jsx(H,{align:"block-end",className:g.cn("order-first flex-wrap gap-1",t),...s}),xe=({className:t,...s})=>e.jsx(H,{align:"block-end",className:g.cn("justify-between gap-1",t),...s}),ge=({className:t,...s})=>e.jsx("div",{className:g.cn("flex items-center gap-1",t),...s}),F=({variant:t="ghost",className:s,size:o,...l})=>{const i=o??(c.Children.count(l.children)>1?"sm":"icon-sm");return e.jsx(K,{className:g.cn(s),size:i,type:"button",variant:t,...l})},ve=t=>e.jsx(N.DropdownMenu,{...t}),je=({className:t,children:s,...o})=>e.jsx(N.DropdownMenuTrigger,{asChild:!0,children:e.jsx(F,{className:t,...o,children:s??e.jsx(y.PlusIcon,{className:"size-4"})})}),be=({className:t,...s})=>e.jsx(N.DropdownMenuContent,{align:"start",className:g.cn(t),...s}),we=({className:t,variant:s="default",size:o="icon-sm",status:l,children:i,...m})=>{let d=e.jsx(y.CornerDownLeftIcon,{className:"size-4"});return l==="submitted"?d=e.jsx(y.Loader2Icon,{className:"size-4 animate-spin"}):l==="streaming"?d=e.jsx(y.SquareIcon,{className:"size-4"}):l==="error"&&(d=e.jsx(y.XIcon,{className:"size-4"})),e.jsx(K,{"aria-label":"Submit",className:g.cn(t),size:o,type:"submit",variant:s,...m,children:i??d})},Ne=({className:t,textareaRef:s,onTranscriptionChange:o,...l})=>{const[i,m]=c.useState(!1),[d,v]=c.useState(null),h=c.useRef(null);c.useEffect(()=>{if(typeof window<"u"&&("SpeechRecognition"in window||"webkitSpeechRecognition"in window)){const P=window.SpeechRecognition||window.webkitSpeechRecognition,n=new P;n.continuous=!0,n.interimResults=!0,n.lang="en-US",n.onstart=()=>{m(!0)},n.onend=()=>{m(!1)},n.onresult=a=>{var D;let p="";for(let I=a.resultIndex;I<a.results.length;I++){const k=a.results[I];k.isFinal&&(p+=((D=k[0])==null?void 0:D.transcript)??"")}if(p&&(s!=null&&s.current)){const I=s.current,k=I.value,z=k+(k?" ":"")+p;I.value=z,I.dispatchEvent(new Event("input",{bubbles:!0})),o==null||o(z)}},n.onerror=a=>{console.error("Speech recognition error:",a.error),m(!1)},h.current=n,c.startTransition(()=>v(n))}return()=>{h.current&&h.current.stop()}},[s,o]);const S=c.useCallback(()=>{d&&(i?d.stop():d.start())},[d,i]);return e.jsx(F,{className:g.cn("relative transition-all duration-200",i&&"animate-pulse bg-accent text-accent-foreground",t),disabled:!d,onClick:S,...l,children:e.jsx(y.MicIcon,{className:"size-4"})})},Ie=({openDelay:t=0,closeDelay:s=0,...o})=>e.jsx(N.HoverCard,{closeDelay:s,openDelay:t,...o}),ye=({align:t="start",...s})=>e.jsx(N.HoverCardContent,{align:t,...s}),Se=t=>e.jsx(N.Dialog,{...t}),ke=t=>e.jsx(N.DialogTrigger,{...t}),De=({className:t,children:s,title:o="Model Selector",...l})=>e.jsxs(N.DialogContent,{className:g.cn("p-0",t),...l,children:[e.jsx(N.DialogTitle,{className:"sr-only",children:o}),e.jsx(N.Command,{className:"**:data-[slot=command-input-wrapper]:h-auto",children:s})]}),Pe=({className:t,...s})=>e.jsx(N.CommandInput,{className:g.cn("h-auto py-3.5",t),...s}),Te=t=>e.jsx(N.CommandList,{...t}),ze=t=>e.jsx(N.CommandGroup,{...t}),Ce=t=>e.jsx(N.CommandItem,{...t}),Ae=({provider:t,className:s,...o})=>e.jsx("img",{...o,alt:`${t} logo`,className:g.cn("size-3 dark:invert",s),height:12,src:`https://models.dev/logos/${t}.svg`,width:12}),Le=({className:t,...s})=>e.jsx("span",{className:g.cn("flex-1 truncate text-left",t),...s}),Re=({selectedModel:t,onModelChange:s,disabled:o=!1})=>{const[l,i]=c.useState(!1),[m,d]=c.useState(""),v=R.getModelById(t)||R.getDefaultModel(),S=R.AI_MODELS.filter(n=>n.name.toLowerCase().includes(m.toLowerCase())||n.provider.toLowerCase().includes(m.toLowerCase())).reduce((n,a)=>(n[a.provider]||(n[a.provider]=[]),n[a.provider].push(a),n),{}),P=n=>{s(n),i(!1),d("")};return e.jsxs(Se,{open:l,onOpenChange:i,children:[e.jsx(ke,{asChild:!0,children:e.jsxs(g.Button,{variant:"outline",size:"sm",disabled:o,className:"h-8 gap-1 px-2 text-xs",children:[e.jsx(y.Cpu,{size:14}),e.jsx("span",{className:"max-w-20 truncate",children:v.name})]})}),e.jsxs(De,{className:"w-96 p-0",children:[e.jsx(Pe,{placeholder:"Search models...",value:m,onValueChange:d}),e.jsx(Te,{children:Object.entries(S).map(([n,a])=>e.jsx(ze,{heading:n.charAt(0).toUpperCase()+n.slice(1),children:a.map(p=>e.jsxs(Ce,{value:p.id,onSelect:()=>P(p.id),className:"flex cursor-pointer items-center gap-2 p-2",children:[e.jsx(Ae,{provider:p.provider}),e.jsxs("div",{className:"flex flex-1 flex-col",children:[e.jsx(Le,{children:p.name}),e.jsx("span",{className:"text-xs text-muted-foreground",children:p.description})]}),t===p.id&&e.jsx("div",{className:"h-2 w-2 rounded-full bg-blue-500"})]},p.id))},n))})]})]})},_="chai-ai-selected-model",Me=({input:t,setInput:s,onSend:o,onStop:l,isLoading:i,disabled:m,selectedLang:d,selectedModel:v=R.getDefaultModel().id,onModelChange:h})=>{const{t:S}=se.useTranslation(),[P,n]=c.useState(v),[a,p]=c.useState(null),D=c.useRef(null),[I,k]=c.useState(!1);c.useEffect(()=>{if(!d){const x=localStorage.getItem(_);if(x)n(x),h==null||h(x);else{const C=R.getDefaultModel().id;n(C),h==null||h(C)}}},[d,h]);const z=x=>{var U;const C=x.files.find(T=>{var L;return(L=T.mediaType)==null?void 0:L.startsWith("image/")}),M=(C==null?void 0:C.url)||a;o((U=x.text)==null?void 0:U.trim(),void 0,M,P),p(null)};return e.jsx("div",{className:"relative",children:e.jsx("div",{className:"border-gray-20 rounded-lg border",children:e.jsxs(me,{onSubmit:z,accept:"image/*",className:"flex h-auto w-full flex-col",children:[e.jsx(he,{className:"p-0",children:e.jsx(de,{className:"pb-0",children:x=>e.jsx(ue,{className:"text-xs",data:x})})}),e.jsx(fe,{ref:D,value:t,onChange:x=>s(x.target.value),placeholder:S(d?"Ask to update content":"Ask me anything..."),disabled:i,className:"max-h-[200px] min-h-[60px] w-full",rows:3}),e.jsxs(xe,{children:[d?e.jsx("div",{}):e.jsxs(ge,{children:[e.jsxs(ve,{children:[e.jsx(je,{disabled:i,children:e.jsx(y.Paperclip,{size:16})}),e.jsx(be,{children:e.jsx(pe,{})})]}),e.jsx(Ne,{textareaRef:D,onTranscriptionChange:s,disabled:i}),e.jsx(Re,{selectedModel:P,onModelChange:x=>{n(x),h==null||h(x),localStorage.setItem(_,x)},disabled:i}),e.jsxs(F,{className:"hidden",size:"sm",onClick:()=>k(!I),variant:I?"default":"ghost",children:[e.jsx(y.GlobeIcon,{size:16}),e.jsx("span",{children:"Search"})]})]}),i?e.jsx("button",{onClick:l,className:"z-50 flex items-center gap-x-1 rounded-md bg-red-500 p-1.5 text-white transition-colors hover:bg-red-600",title:S("Stop generation"),children:e.jsx(y.Square,{size:16})}):e.jsx(we,{disabled:!t.trim()||m,children:e.jsx(y.Send,{size:16})})]})]})})})};exports.default=Me;
@@ -1,6 +1,6 @@
1
1
  import { jsx as t, jsxs as a } from "react/jsx-runtime";
2
2
  import { B as r } from "./register-chai-top-bar-CX_JkRJn.js";
3
- import { L as i } from "./index-GfOB5KV1.js";
3
+ import { L as i } from "./index-ckjNCVor.js";
4
4
  import { ArrowRight as c } from "lucide-react";
5
5
  import { useTranslation as m } from "react-i18next";
6
6
  const u = ({
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("./register-chai-top-bar-DWTuRU53.cjs"),i=require("./index-B5qvHqN5.cjs"),c=require("lucide-react"),o=require("react-i18next"),x=({selectedLang:s,isLoading:n,selectedBlock:a,onClick:l})=>{const{t}=o.useTranslation();return e.jsx("div",{className:"flex flex-col gap-2",children:e.jsx("div",{className:`flex flex-col gap-2 ${n?"pointer-events-none opacity-50":""}`,children:a?e.jsx(r.Button,{variant:"outline",className:"h-auto",onClick:()=>l("TRANSLATE"),children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("p",{className:"text-left text-xs font-thin",children:t("Quick Action:")}),e.jsxs("span",{className:"flex items-center gap-x-2 text-sm font-medium",children:[t("Translate Content")," ",t("to")," ",i.LANGUAGES[s]," ",e.jsx(c.ArrowRight,{className:"h-4 w-4"})]})]})}):null})})};exports.default=x;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("./register-chai-top-bar-DWTuRU53.cjs"),i=require("./index-BGGNVIKx.cjs"),c=require("lucide-react"),o=require("react-i18next"),x=({selectedLang:s,isLoading:n,selectedBlock:a,onClick:l})=>{const{t}=o.useTranslation();return e.jsx("div",{className:"flex flex-col gap-2",children:e.jsx("div",{className:`flex flex-col gap-2 ${n?"pointer-events-none opacity-50":""}`,children:a?e.jsx(r.Button,{variant:"outline",className:"h-auto",onClick:()=>l("TRANSLATE"),children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("p",{className:"text-left text-xs font-thin",children:t("Quick Action:")}),e.jsxs("span",{className:"flex items-center gap-x-2 text-sm font-medium",children:[t("Translate Content")," ",t("to")," ",i.LANGUAGES[s]," ",e.jsx(c.ArrowRight,{className:"h-4 w-4"})]})]})}):null})})};exports.default=x;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),l=require("./register-chai-top-bar-DWTuRU53.cjs"),n=require("./index-CfsIhbT2.cjs"),u=require("./index-BGGNVIKx.cjs"),A=require("@tanstack/react-query"),F=require("lucide-react"),d=require("react"),k=require("react-i18next"),m=require("zod"),E=()=>{const r=u.useApiUrl(),o=u.useFetch();return A.useMutation({mutationKey:[u.ACTIONS.CHANGE_PASSWORD],mutationFn:async e=>{const t=await o(r,{action:u.ACTIONS.CHANGE_PASSWORD,data:e});return t==null?void 0:t.data}})},L=r=>m.z.object({oldPassword:m.z.string().min(1,r("Current password is required")),newPassword:m.z.string().min(8,r("Password must be at least 8 characters")).max(128,r("Password must be less than 128 characters")).regex(/[A-Z]/,r("Password must contain at least one uppercase letter")).regex(/[a-z]/,r("Password must contain at least one lowercase letter")).regex(/[0-9]/,r("Password must contain at least one number")).regex(/[!@#$%^&*(),.?":{}|<>]/,r("Password must contain at least one special character")),confirmPassword:m.z.string().min(1,r("Confirm password is required"))}).refine(o=>o.newPassword===o.confirmPassword,{message:r("New password and confirm password do not match"),path:["confirmPassword"]}).refine(o=>o.oldPassword!==o.newPassword,{message:r("New password must be different from current password"),path:["newPassword"]}),T=({open:r,onOpenChange:o})=>{const{t:e}=k.useTranslation(),t=u.usePagesProp("currentUser",null),{mutate:q,isPending:h,isSuccess:p,reset:P}=E(),[x,f]=d.useState(""),[j,C]=d.useState(""),[N,v]=d.useState(""),[b,i]=d.useState(null),S=d.useCallback(()=>{f(""),C(""),v(""),i(null),P()},[P]),w=d.useCallback(a=>{o(a),a||S()},[o,S]);d.useEffect(()=>{if(p){const a=setTimeout(()=>{w(!1)},2e3);return()=>clearTimeout(a)}},[p,w]);const D=()=>{var y;i(null);const a={oldPassword:x.trim(),newPassword:j.trim(),confirmPassword:N.trim()},c=L(e).safeParse(a);if(!c.success){i(((y=c.error.issues[0])==null?void 0:y.message)||e("Validation failed"));return}if(!(t!=null&&t.email)){i(e("User email not found"));return}q({email:t.email,oldPassword:c.data.oldPassword,newPassword:c.data.newPassword,confirmPassword:c.data.confirmPassword},{onError:g=>{i((g==null?void 0:g.message)||e("Failed to change password"))}})};return s.jsx(n.Dialog,{open:r,onOpenChange:w,children:s.jsx(n.DialogContent,{className:"sm:max-w-[425px]",children:h?s.jsx("div",{className:"flex h-[340px] items-center justify-center",children:s.jsx(F.Loader2,{className:"h-8 w-8 animate-spin text-muted-foreground"})}):p?s.jsxs("div",{className:"flex h-[340px] flex-col items-center justify-center gap-2",children:[s.jsx("div",{className:"rounded-full bg-green-100 p-3",children:s.jsx("svg",{className:"h-6 w-6 text-green-600",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})}),s.jsx("p",{className:"text-lg font-medium",children:e("Password updated successfully")})]}):s.jsxs(s.Fragment,{children:[s.jsxs(n.DialogHeader,{children:[s.jsx(n.DialogTitle,{children:e("Change Password")}),s.jsx(n.DialogDescription,{children:e("Enter your current password and a new password.")})]}),s.jsxs("div",{className:"grid gap-4 py-4",children:[s.jsxs("div",{className:"grid gap-2",children:[s.jsx(n.Label,{htmlFor:"old-password",children:e("Current Password")}),s.jsx(l.Input,{id:"old-password",type:"password",value:x,onChange:a=>f(a.target.value),placeholder:e("Enter current password")})]}),s.jsxs("div",{className:"grid gap-2",children:[s.jsx(n.Label,{htmlFor:"new-password",children:e("New Password")}),s.jsx(l.Input,{id:"new-password",type:"password",value:j,onChange:a=>C(a.target.value),placeholder:e("Enter new password")})]}),s.jsxs("div",{className:"grid gap-2",children:[s.jsx(n.Label,{htmlFor:"confirm-password",children:e("Confirm Password")}),s.jsx(l.Input,{id:"confirm-password",type:"password",value:N,onChange:a=>v(a.target.value),placeholder:e("Confirm new password")})]}),b&&s.jsx("p",{className:"text-sm text-destructive",children:b})]}),s.jsxs(n.DialogFooter,{children:[s.jsx(l.Button,{variant:"outline",onClick:()=>w(!1),disabled:h,children:e("Cancel")}),s.jsx(l.Button,{onClick:D,disabled:h,children:e("Change Password")})]})]})})})};exports.ChangePasswordModal=T;
@@ -0,0 +1,137 @@
1
+ import { jsx as s, jsxs as t, Fragment as L } from "react/jsx-runtime";
2
+ import { z as h, B as F } from "./register-chai-top-bar-CX_JkRJn.js";
3
+ import { D as T, e as z, f as O, g as q, p as B, q as f, r as H } from "./index-iRqgNs2O.js";
4
+ import { ar as I, as as M, A as E, az as R } from "./index-ckjNCVor.js";
5
+ import { useMutation as U } from "@tanstack/react-query";
6
+ import { Loader2 as W } from "lucide-react";
7
+ import { useState as c, useCallback as S, useEffect as G } from "react";
8
+ import { useTranslation as _ } from "react-i18next";
9
+ import { z as m } from "zod";
10
+ const K = () => {
11
+ const a = I(), o = M();
12
+ return U({
13
+ mutationKey: [E.CHANGE_PASSWORD],
14
+ mutationFn: async (e) => {
15
+ const n = await o(a, {
16
+ action: E.CHANGE_PASSWORD,
17
+ data: e
18
+ });
19
+ return n == null ? void 0 : n.data;
20
+ }
21
+ });
22
+ }, V = (a) => m.object({
23
+ oldPassword: m.string().min(1, a("Current password is required")),
24
+ newPassword: m.string().min(8, a("Password must be at least 8 characters")).max(128, a("Password must be less than 128 characters")).regex(/[A-Z]/, a("Password must contain at least one uppercase letter")).regex(/[a-z]/, a("Password must contain at least one lowercase letter")).regex(/[0-9]/, a("Password must contain at least one number")).regex(/[!@#$%^&*(),.?":{}|<>]/, a("Password must contain at least one special character")),
25
+ confirmPassword: m.string().min(1, a("Confirm password is required"))
26
+ }).refine((o) => o.newPassword === o.confirmPassword, {
27
+ message: a("New password and confirm password do not match"),
28
+ path: ["confirmPassword"]
29
+ }).refine((o) => o.oldPassword !== o.newPassword, {
30
+ message: a("New password must be different from current password"),
31
+ path: ["newPassword"]
32
+ }), os = ({ open: a, onOpenChange: o }) => {
33
+ const { t: e } = _(), n = R("currentUser", null), { mutate: k, isPending: w, isSuccess: u, reset: g } = K(), [P, C] = c(""), [x, N] = c(""), [v, D] = c(""), [b, d] = c(null), y = S(() => {
34
+ C(""), N(""), D(""), d(null), g();
35
+ }, [g]), l = S(
36
+ (r) => {
37
+ o(r), r || y();
38
+ },
39
+ [o, y]
40
+ );
41
+ G(() => {
42
+ if (u) {
43
+ const r = setTimeout(() => {
44
+ l(!1);
45
+ }, 2e3);
46
+ return () => clearTimeout(r);
47
+ }
48
+ }, [u, l]);
49
+ const j = () => {
50
+ var A;
51
+ d(null);
52
+ const r = {
53
+ oldPassword: P.trim(),
54
+ newPassword: x.trim(),
55
+ confirmPassword: v.trim()
56
+ }, i = V(e).safeParse(r);
57
+ if (!i.success) {
58
+ d(((A = i.error.issues[0]) == null ? void 0 : A.message) || e("Validation failed"));
59
+ return;
60
+ }
61
+ if (!(n != null && n.email)) {
62
+ d(e("User email not found"));
63
+ return;
64
+ }
65
+ k(
66
+ {
67
+ email: n.email,
68
+ oldPassword: i.data.oldPassword,
69
+ newPassword: i.data.newPassword,
70
+ confirmPassword: i.data.confirmPassword
71
+ },
72
+ {
73
+ onError: (p) => {
74
+ d((p == null ? void 0 : p.message) || e("Failed to change password"));
75
+ }
76
+ }
77
+ );
78
+ };
79
+ return /* @__PURE__ */ s(T, { open: a, onOpenChange: l, children: /* @__PURE__ */ s(z, { className: "sm:max-w-[425px]", children: w ? /* @__PURE__ */ s("div", { className: "flex h-[340px] items-center justify-center", children: /* @__PURE__ */ s(W, { className: "h-8 w-8 animate-spin text-muted-foreground" }) }) : u ? /* @__PURE__ */ t("div", { className: "flex h-[340px] flex-col items-center justify-center gap-2", children: [
80
+ /* @__PURE__ */ s("div", { className: "rounded-full bg-green-100 p-3", children: /* @__PURE__ */ s("svg", { className: "h-6 w-6 text-green-600", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ s("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }) }),
81
+ /* @__PURE__ */ s("p", { className: "text-lg font-medium", children: e("Password updated successfully") })
82
+ ] }) : /* @__PURE__ */ t(L, { children: [
83
+ /* @__PURE__ */ t(O, { children: [
84
+ /* @__PURE__ */ s(q, { children: e("Change Password") }),
85
+ /* @__PURE__ */ s(B, { children: e("Enter your current password and a new password.") })
86
+ ] }),
87
+ /* @__PURE__ */ t("div", { className: "grid gap-4 py-4", children: [
88
+ /* @__PURE__ */ t("div", { className: "grid gap-2", children: [
89
+ /* @__PURE__ */ s(f, { htmlFor: "old-password", children: e("Current Password") }),
90
+ /* @__PURE__ */ s(
91
+ h,
92
+ {
93
+ id: "old-password",
94
+ type: "password",
95
+ value: P,
96
+ onChange: (r) => C(r.target.value),
97
+ placeholder: e("Enter current password")
98
+ }
99
+ )
100
+ ] }),
101
+ /* @__PURE__ */ t("div", { className: "grid gap-2", children: [
102
+ /* @__PURE__ */ s(f, { htmlFor: "new-password", children: e("New Password") }),
103
+ /* @__PURE__ */ s(
104
+ h,
105
+ {
106
+ id: "new-password",
107
+ type: "password",
108
+ value: x,
109
+ onChange: (r) => N(r.target.value),
110
+ placeholder: e("Enter new password")
111
+ }
112
+ )
113
+ ] }),
114
+ /* @__PURE__ */ t("div", { className: "grid gap-2", children: [
115
+ /* @__PURE__ */ s(f, { htmlFor: "confirm-password", children: e("Confirm Password") }),
116
+ /* @__PURE__ */ s(
117
+ h,
118
+ {
119
+ id: "confirm-password",
120
+ type: "password",
121
+ value: v,
122
+ onChange: (r) => D(r.target.value),
123
+ placeholder: e("Confirm new password")
124
+ }
125
+ )
126
+ ] }),
127
+ b && /* @__PURE__ */ s("p", { className: "text-sm text-destructive", children: b })
128
+ ] }),
129
+ /* @__PURE__ */ t(H, { children: [
130
+ /* @__PURE__ */ s(F, { variant: "outline", onClick: () => l(!1), disabled: w, children: e("Cancel") }),
131
+ /* @__PURE__ */ s(F, { onClick: j, disabled: w, children: e("Change Password") })
132
+ ] })
133
+ ] }) }) });
134
+ };
135
+ export {
136
+ os as ChangePasswordModal
137
+ };
@@ -1,5 +1,5 @@
1
1
  import { jsx as t, jsxs as c } from "react/jsx-runtime";
2
- import { u as k, a as v, b as T, c as E, d as L, L as N, D as y, e as w, f as D, g as H, T as M } from "./index-lm46VtIP.js";
2
+ import { u as k, a as v, b as T, c as E, d as L, L as N, D as y, e as w, f as D, g as H, T as M } from "./index-iRqgNs2O.js";
3
3
  import { useThrottledCallback as P } from "@react-hookz/web";
4
4
  import { get as B } from "lodash-es";
5
5
  import { useState as p, useMemo as I, useCallback as S, useEffect as j } from "react";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),t=require("./index-EFWvSWoi.cjs"),j=require("@react-hookz/web"),v=require("lodash-es"),l=require("react"),T=require("react-i18next"),h=c=>{const o=document.createElement("div");return o.innerHTML=c,o.innerHTML};function y(){const{t:c}=T.useTranslation(),[o,p]=l.useState(!1),[r,f]=l.useState(""),[e,d]=t.useCodeEditor(),[u]=t.useSelectedBlockIds(),g=t.useUpdateBlocksProps(),b=t.useUpdateBlocksPropsRealtime(),{selectedLang:i}=t.useLanguages(),x=l.useMemo(()=>v.get(t.LANGUAGES,i,i),[i]),C=j.useThrottledCallback(n=>{if(!e)return;const a=h(n);b([e.blockId],{[e.blockProp]:a})},[],300),m=l.useCallback(()=>{if(o&&e){const n=h(r);g([e.blockId],{[e.blockProp]:n})}},[o,r,e]);l.useEffect(()=>{e&&!u.includes(e.blockId)&&(m(),d(null))},[u,e]);const k=()=>{m(),d(null)};return s.jsx(t.Dialog,{open:!0,onOpenChange:k,children:s.jsxs(t.DialogContent,{className:"flex max-h-[400px] min-h-[200px] max-w-4xl flex-col border-gray-700 text-black",children:[s.jsx(t.DialogHeader,{className:"shrink-0 pb-3",children:s.jsx(t.DialogTitle,{className:"flex items-center justify-between text-black",children:s.jsxs("div",{className:"space-x-3 text-sm font-semibold",children:[s.jsx("span",{children:c("HTML Code Editor")}),x&&s.jsxs("span",{className:"text-xs text-gray-400",children:["(",x,")"]}),s.jsx("span",{className:"text-xs text-gray-400",children:c("Scripts will be only executed in preview and live mode.")})]})})}),s.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:s.jsx(t.Textarea,{className:"h-full w-full resize-none font-mono md:text-xs",value:e?r||e.initialCode:"",onChange:n=>{const a=n.target.value;p(!0),f(a),C(a)},rows:10,placeholder:"Enter your code here..."})})]})})}exports.default=y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),t=require("./index-CfsIhbT2.cjs"),j=require("@react-hookz/web"),v=require("lodash-es"),l=require("react"),T=require("react-i18next"),h=c=>{const o=document.createElement("div");return o.innerHTML=c,o.innerHTML};function y(){const{t:c}=T.useTranslation(),[o,p]=l.useState(!1),[r,f]=l.useState(""),[e,d]=t.useCodeEditor(),[u]=t.useSelectedBlockIds(),g=t.useUpdateBlocksProps(),b=t.useUpdateBlocksPropsRealtime(),{selectedLang:i}=t.useLanguages(),x=l.useMemo(()=>v.get(t.LANGUAGES,i,i),[i]),C=j.useThrottledCallback(n=>{if(!e)return;const a=h(n);b([e.blockId],{[e.blockProp]:a})},[],300),m=l.useCallback(()=>{if(o&&e){const n=h(r);g([e.blockId],{[e.blockProp]:n})}},[o,r,e]);l.useEffect(()=>{e&&!u.includes(e.blockId)&&(m(),d(null))},[u,e]);const k=()=>{m(),d(null)};return s.jsx(t.Dialog,{open:!0,onOpenChange:k,children:s.jsxs(t.DialogContent,{className:"flex max-h-[400px] min-h-[200px] max-w-4xl flex-col border-gray-700 text-black",children:[s.jsx(t.DialogHeader,{className:"shrink-0 pb-3",children:s.jsx(t.DialogTitle,{className:"flex items-center justify-between text-black",children:s.jsxs("div",{className:"space-x-3 text-sm font-semibold",children:[s.jsx("span",{children:c("HTML Code Editor")}),x&&s.jsxs("span",{className:"text-xs text-gray-400",children:["(",x,")"]}),s.jsx("span",{className:"text-xs text-gray-400",children:c("Scripts will be only executed in preview and live mode.")})]})})}),s.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:s.jsx(t.Textarea,{className:"h-full w-full resize-none font-mono md:text-xs",value:e?r||e.initialCode:"",onChange:n=>{const a=n.target.value;p(!0),f(a),C(a)},rows:10,placeholder:"Enter your code here..."})})]})})}exports.default=y;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),i=require("./register-chai-top-bar-DWTuRU53.cjs"),s=require("./index-EFWvSWoi.cjs"),a=require("./index-B5qvHqN5.cjs"),n=require("lucide-react"),l=require("react-i18next"),o=()=>{const{setPageLockMeta:r}=a.usePageLockMeta(),{t}=l.useTranslation(),c=async()=>{r({})};return e.jsx(a.BlurContainer,{children:e.jsxs(s.Card,{className:"mx-auto w-full max-w-md",children:[e.jsx(s.CardHeader,{className:"space-y-1",children:e.jsxs(s.CardTitle,{className:"flex items-center gap-2 text-xl",children:[e.jsx(n.CheckCircle,{className:"h-6 w-6 text-green-500"}),t("You can edit the page now")]})}),e.jsx(s.CardContent,{className:"space-y-4",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:t("This page is released by other user you can continue editing now")})}),e.jsx(s.CardFooter,{className:"flex gap-2",children:e.jsxs(i.Button,{variant:"default",onClick:c,className:"flex-1 gap-2",children:[e.jsx(n.Check,{className:"h-4 w-4"}),t("Continue Editing")]})})]})})};exports.default=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),i=require("./register-chai-top-bar-DWTuRU53.cjs"),s=require("./index-CfsIhbT2.cjs"),a=require("./index-BGGNVIKx.cjs"),n=require("lucide-react"),l=require("react-i18next"),o=()=>{const{setPageLockMeta:r}=a.usePageLockMeta(),{t}=l.useTranslation(),c=async()=>{r({})};return e.jsx(a.BlurContainer,{children:e.jsxs(s.Card,{className:"mx-auto w-full max-w-md",children:[e.jsx(s.CardHeader,{className:"space-y-1",children:e.jsxs(s.CardTitle,{className:"flex items-center gap-2 text-xl",children:[e.jsx(n.CheckCircle,{className:"h-6 w-6 text-green-500"}),t("You can edit the page now")]})}),e.jsx(s.CardContent,{className:"space-y-4",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:t("This page is released by other user you can continue editing now")})}),e.jsx(s.CardFooter,{className:"flex gap-2",children:e.jsxs(i.Button,{variant:"default",onClick:c,className:"flex-1 gap-2",children:[e.jsx(n.Check,{className:"h-4 w-4"}),t("Continue Editing")]})})]})})};exports.default=o;