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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/dist/{2SSKDMRQ-Dub3pRV1.cjs → 2SSKDMRQ-BksFOLpD.cjs} +1 -1
  2. package/dist/{2SSKDMRQ-B5Tzwoh4.js → 2SSKDMRQ-gmj-yWTy.js} +2 -2
  3. package/dist/{AP7HFJJL-Dt6MglIr.cjs → AP7HFJJL-CO-deD_p.cjs} +1 -1
  4. package/dist/{AP7HFJJL-CfmdXP9M.js → AP7HFJJL-kVgc0R61.js} +1 -1
  5. package/dist/{IconPicker-DLqOB-ri.cjs → IconPicker-BJHUCDn4.cjs} +1 -1
  6. package/dist/{IconPicker-Cn8Z42-Z.js → IconPicker-D_GRfhwS.js} +1 -1
  7. package/dist/{WDYDFRGG-BOpmZGHS.js → WDYDFRGG-C9_E3QW0.js} +2 -2
  8. package/dist/{WDYDFRGG-Dfj1ikzw.cjs → WDYDFRGG-KPpWFul_.cjs} +1 -1
  9. package/dist/{active-in-another-tab-CEWvA8SG.js → active-in-another-tab-1GoKTVcF.js} +2 -2
  10. package/dist/{active-in-another-tab-DV83cJ_v.cjs → active-in-another-tab-iEd5fZD0.cjs} +1 -1
  11. package/dist/{add-new-language-page-B3wK94-S.js → add-new-language-page-B3GUvWdP.js} +3 -3
  12. package/dist/{add-new-language-page-C3Uu92KN.cjs → add-new-language-page-Cq8R42Ro.cjs} +1 -1
  13. package/dist/{add-new-page-DsvGVrR8.js → add-new-page-C5HlQfzy.js} +2 -2
  14. package/dist/{add-new-page-BOE-xwBc.cjs → add-new-page-DiHnECAR.cjs} +1 -1
  15. package/dist/{ai-panel-content-DBlnfRRi.cjs → ai-panel-content-BPpawv4D.cjs} +1 -1
  16. package/dist/{ai-panel-content-BBSzHZG6.js → ai-panel-content-tExD3yhH.js} +3 -3
  17. package/dist/{ai-panel-default-lang-DJJWAtN0.cjs → ai-panel-default-lang-C6N4wUUF.cjs} +2 -2
  18. package/dist/{ai-panel-default-lang-BVBuwnyU.js → ai-panel-default-lang-DnYLHSaS.js} +9 -9
  19. package/dist/{ai-panel-other-lang-v8Yd5ggR.cjs → ai-panel-other-lang-C65lVVtZ.cjs} +1 -1
  20. package/dist/{ai-panel-other-lang-fIEZkmRy.js → ai-panel-other-lang-D1pCJluY.js} +13 -13
  21. package/dist/{ai-prompt-input-CmSfGxTN.js → ai-prompt-input-B2q30bhR.js} +16 -16
  22. package/dist/{ai-prompt-input-C7ha_0Cn.cjs → ai-prompt-input-Dws5BHhQ.cjs} +1 -1
  23. package/dist/{ai-translation-prompt-CtBmvsRy.js → ai-translation-prompt-Dnn6i_t3.js} +1 -1
  24. package/dist/{ai-translation-prompt-BzTGAS3W.cjs → ai-translation-prompt-DnwG2BmF.cjs} +1 -1
  25. package/dist/{change-password-modal-DxkhBI5d.js → change-password-modal-C0MMizgl.js} +2 -2
  26. package/dist/{change-password-modal-CdOwtCWN.cjs → change-password-modal-LKtYY-8V.cjs} +1 -1
  27. package/dist/{code-editor-Bpn8z2fo.js → code-editor-CWOmKcUc.js} +1 -1
  28. package/dist/{code-editor-fL3s6Hk7.cjs → code-editor-Cim6jQVF.cjs} +1 -1
  29. package/dist/{continue-editing-in-this-client-DjxpjsA8.cjs → continue-editing-in-this-client-Dd6nKIvX.cjs} +1 -1
  30. package/dist/{continue-editing-in-this-client-DDB816CQ.js → continue-editing-in-this-client-oxYWGWON.js} +2 -2
  31. package/dist/core.cjs +1 -1
  32. package/dist/core.d.ts +3 -0
  33. package/dist/core.js +37 -37
  34. package/dist/{css-import-modal-CL8SIC3K.js → css-import-modal-6bMTRlCg.js} +1 -1
  35. package/dist/{css-import-modal-CRC7bK1c.cjs → css-import-modal-CXulmaB4.cjs} +1 -1
  36. package/dist/{delete-page-BHPlx8ec.cjs → delete-page-D0tdn6VW.cjs} +1 -1
  37. package/dist/{delete-page-41tvYcEw.js → delete-page-LnzR01A8.js} +2 -2
  38. package/dist/{design-token-usage-DtdjTCn3.cjs → design-token-usage-D-hrcKz1.cjs} +1 -1
  39. package/dist/{design-token-usage-CyOY4Pni.js → design-token-usage-lf7N_uOk.js} +28 -28
  40. package/dist/{digital-asset-manager-C_ru4Zes.js → digital-asset-manager-DJhRhLGC.js} +3 -3
  41. package/dist/{digital-asset-manager-DSLQz8qk.cjs → digital-asset-manager-eCJHNSjj.cjs} +1 -1
  42. package/dist/{duplicate-page-DMmDdmfS.js → duplicate-page-CXzYy7vx.js} +3 -3
  43. package/dist/{duplicate-page-BvggF83O.cjs → duplicate-page-ChSp1TYN.cjs} +1 -1
  44. package/dist/{dynamic-page-selector-C5agz2Ze.cjs → dynamic-page-selector-btGtkyyv.cjs} +1 -1
  45. package/dist/{dynamic-page-selector-D2z51nLi.js → dynamic-page-selector-r5IR9_7k.js} +2 -2
  46. package/dist/{get-chai-builder-tailwind-config-DNp8Vhme.cjs → get-chai-builder-tailwind-config-7CxFxEYL.cjs} +1 -1
  47. package/dist/{get-chai-builder-tailwind-config-k8l5sdcw.js → get-chai-builder-tailwind-config-DC4sDOYK.js} +3 -3
  48. package/dist/{get-chai-builder-theme-BSUcPs5t.js → get-chai-builder-theme-BpuwSLeS.js} +1 -1
  49. package/dist/{image-editor-DFmlG348.cjs → image-editor-BdW476J8.cjs} +1 -1
  50. package/dist/{image-editor-sKvOFo-S.js → image-editor-CilPMtAC.js} +1 -1
  51. package/dist/index-CAhDwfHE.cjs +5 -0
  52. package/dist/{index-BFnMzGe6.js → index-DsQXiNA_.js} +4997 -4877
  53. package/dist/{index-CA1OwKJX.js → index-DtMksfXx.js} +1711 -1666
  54. package/dist/index-mPCp0j2h.cjs +160 -0
  55. package/dist/{json-diff-viewer-DRQSNhaS.cjs → json-diff-viewer-BkrnLb3B.cjs} +1 -1
  56. package/dist/{json-diff-viewer-B5wAR5GY.js → json-diff-viewer-D3N3w3Ax.js} +34 -34
  57. package/dist/{lang-panel-q04hEq5o.js → lang-panel-BAaaP4Qc.js} +3 -3
  58. package/dist/{lang-panel-BZsICcBR.cjs → lang-panel-BjDRrpwN.cjs} +1 -1
  59. package/dist/library-blocks/bento/agency-showcase/agency-showcase.html +175 -0
  60. package/dist/library-blocks/bento/agency-showcase/agency-showcase.webp +0 -0
  61. package/dist/library-blocks/bento/creative-portfolio/creative-portfolio.html +116 -0
  62. package/dist/library-blocks/bento/creative-portfolio/creative-portfolio.webp +0 -0
  63. package/dist/library-blocks/bento/product-features/product-features.html +159 -0
  64. package/dist/library-blocks/bento/product-features/product-features.webp +0 -0
  65. package/dist/library-blocks/bento/saas-dashboard/saas-dashboard.html +182 -0
  66. package/dist/library-blocks/bento/saas-dashboard/saas-dashboard.webp +0 -0
  67. package/dist/library-blocks/bento/startup-metrics/startup-metrics.html +170 -0
  68. package/dist/library-blocks/bento/startup-metrics/startup-metrics.webp +0 -0
  69. package/dist/library-blocks/blocks-list.json +145 -12
  70. package/dist/library-blocks/feature/agency-services/agency-services.html +194 -0
  71. package/dist/library-blocks/feature/agency-services/agency-services.webp +0 -0
  72. package/dist/library-blocks/feature/consulting-firm/consulting-firm.html +219 -0
  73. package/dist/library-blocks/feature/consulting-firm/consulting-firm.webp +0 -0
  74. package/dist/library-blocks/feature/design-studio/design-studio.html +190 -0
  75. package/dist/library-blocks/feature/design-studio/design-studio.webp +0 -0
  76. package/dist/library-blocks/feature/freelancer-toolkit/freelancer-toolkit.html +195 -0
  77. package/dist/library-blocks/feature/freelancer-toolkit/freelancer-toolkit.webp +0 -0
  78. package/dist/library-blocks/feature/marketing-agency/marketing-agency.html +212 -0
  79. package/dist/library-blocks/feature/marketing-agency/marketing-agency.webp +0 -0
  80. package/dist/library-blocks/footer/creative-agency/creative-agency.html +64 -0
  81. package/dist/library-blocks/footer/creative-agency/creative-agency.webp +0 -0
  82. package/dist/library-blocks/footer/minimal-portfolio/minimal-portfolio.html +106 -0
  83. package/dist/library-blocks/footer/minimal-portfolio/minimal-portfolio.webp +0 -0
  84. package/dist/library-blocks/footer/saas-startup/saas-startup.html +117 -0
  85. package/dist/library-blocks/footer/saas-startup/saas-startup.webp +0 -0
  86. package/dist/library-blocks/hero/creative-agency/creative-agency.html +117 -0
  87. package/dist/library-blocks/hero/creative-agency/creative-agency.webp +0 -0
  88. package/dist/library-blocks/hero/developer-focused/developer-focused.html +124 -0
  89. package/dist/library-blocks/hero/developer-focused/developer-focused.webp +0 -0
  90. package/dist/library-blocks/hero/minimal-saas/minimal-saas.html +98 -0
  91. package/dist/library-blocks/hero/minimal-saas/minimal-saas.webp +0 -0
  92. package/dist/library-blocks/hero/portfolio-showcase/portfolio-showcase.html +148 -0
  93. package/dist/library-blocks/hero/portfolio-showcase/portfolio-showcase.webp +0 -0
  94. package/dist/library-blocks/hero/startup-landing/startup-landing.html +130 -0
  95. package/dist/library-blocks/hero/startup-landing/startup-landing.webp +0 -0
  96. package/dist/library-blocks/navbar/creative-agency/creative-agency.html +139 -0
  97. package/dist/library-blocks/navbar/creative-agency/creative-agency.webp +0 -0
  98. package/dist/library-blocks/navbar/minimal-portfolio/minimal-portfolio.html +164 -0
  99. package/dist/library-blocks/navbar/minimal-portfolio/minimal-portfolio.webp +0 -0
  100. package/dist/library-blocks/navbar/saas-startup/saas-startup.html +129 -0
  101. package/dist/library-blocks/navbar/saas-startup/saas-startup.webp +0 -0
  102. package/dist/manage-design-tokens-BknGNAKE.cjs +1 -0
  103. package/dist/manage-design-tokens-Co5677WS.js +428 -0
  104. package/dist/manage-design-tokens-modal-9qpcb-EC.js +161 -0
  105. package/dist/manage-design-tokens-modal-BcgdwEXE.cjs +1 -0
  106. package/dist/{mark-as-template-raTtKmQ9.js → mark-as-template-DNHYNjI9.js} +2 -2
  107. package/dist/{mark-as-template-CT-hLGIW.cjs → mark-as-template-IYRjta97.cjs} +1 -1
  108. package/dist/{nested-path-selector-content-CzQ2Lorl.js → nested-path-selector-content-Be-pbnVl.js} +1 -1
  109. package/dist/{nested-path-selector-content-CSUHTj9G.cjs → nested-path-selector-content-CWmPgU-L.cjs} +1 -1
  110. package/dist/{no-language-page-content-Bkj8JpEY.cjs → no-language-page-content-8_J6y-cm.cjs} +1 -1
  111. package/dist/{no-language-page-content-Bg6VjMVY.js → no-language-page-content-C-ltY7bj.js} +4 -4
  112. package/dist/{no-language-page-dialog-TffLjvJn.cjs → no-language-page-dialog-BOZZZzqx.cjs} +1 -1
  113. package/dist/{no-language-page-dialog-CRPMr9YT.js → no-language-page-dialog-D5NXpDHi.js} +2 -2
  114. package/dist/{page-creator-CQhE1tgn.js → page-creator-BuHHnqiQ.js} +172 -172
  115. package/dist/{page-creator-RrUhy8uH.cjs → page-creator-wtbae2U7.cjs} +1 -1
  116. package/dist/{page-lock-D9h5pgxn.cjs → page-lock-DN4iJc-V.cjs} +1 -1
  117. package/dist/{page-lock-Dye1JZBB.js → page-lock-pPGlTxj7.js} +2 -2
  118. package/dist/{page-locked-dialog-b2_f-A7a.cjs → page-locked-dialog-B_vdgv24.cjs} +1 -1
  119. package/dist/{page-locked-dialog-BMjPVyHF.js → page-locked-dialog-Bl-ojgIW.js} +16 -16
  120. package/dist/page-manager-new-5W5M9_ue.cjs +1 -0
  121. package/dist/page-manager-new-Bg8H6yrg.js +418 -0
  122. package/dist/{page-manager-search-and-filter-D0ZXojiu.cjs → page-manager-search-and-filter-CDXunXNd.cjs} +1 -1
  123. package/dist/{page-manager-search-and-filter-DCcYyoPO.js → page-manager-search-and-filter-CyfO7O96.js} +2 -2
  124. package/dist/{page-revisions-content-mDwvH6J-.js → page-revisions-content-B-egQgoZ.js} +13 -13
  125. package/dist/{page-revisions-content-BX8ZWebc.cjs → page-revisions-content-BKT8S9_g.cjs} +1 -1
  126. package/dist/pages.cjs +1 -1
  127. package/dist/pages.d.ts +3 -0
  128. package/dist/pages.js +1 -1
  129. package/dist/{plugin-Dkmjb2_e.js → plugin-BSjgGgwo.js} +10 -10
  130. package/dist/{publish-pages-content-M_Kb8b-F.js → publish-pages-content-D2B_ScCQ.js} +3 -3
  131. package/dist/{publish-pages-content-CR4e9inX.cjs → publish-pages-content-WJHTVYnx.cjs} +1 -1
  132. package/dist/render.cjs +1 -1
  133. package/dist/render.d.ts +1 -0
  134. package/dist/render.js +32 -32
  135. package/dist/{rte-widget-modal-BRSm1Lnp.cjs → rte-widget-modal-CC1KcrAT.cjs} +1 -1
  136. package/dist/{rte-widget-modal-CVZDktXI.js → rte-widget-modal-c3T09VeO.js} +1 -1
  137. package/dist/runtime.d.ts +1 -0
  138. package/dist/{save-to-lib-CYEAWxL9.cjs → save-to-lib-CiM0wiIr.cjs} +1 -1
  139. package/dist/{save-to-lib-B1ccNhR2.js → save-to-lib-dT1NDd5w.js} +26 -26
  140. package/dist/sdk.css +1 -1
  141. package/dist/{selected-block-display-aGR7p5JC.js → selected-block-display-BQndDPcY.js} +11 -11
  142. package/dist/{selected-block-display-MyU0rS4q.cjs → selected-block-display-BgqcPsXI.cjs} +1 -1
  143. package/dist/{seo-panel-B5mDwpaT.cjs → seo-panel-DXZvGYEM.cjs} +1 -1
  144. package/dist/{seo-panel-P9uixkoZ.js → seo-panel-Z93Zf_bz.js} +138 -138
  145. package/dist/{shared-json-ld-Ba9GcvLr.js → shared-json-ld-Ct68RlWD.js} +70 -70
  146. package/dist/{shared-json-ld-DhQJh_mT.cjs → shared-json-ld-DwvUDGAS.cjs} +1 -1
  147. package/dist/{slug-input-CAfGHqMW.js → slug-input-CAqkFZBq.js} +1 -1
  148. package/dist/{slug-input-BdMnlYKT.cjs → slug-input-Curnt2n3.cjs} +1 -1
  149. package/dist/{take-over-request-CXjaDliJ.js → take-over-request-C6ngP1QR.js} +10 -10
  150. package/dist/{take-over-request-BeHTL28z.cjs → take-over-request-D6y2HcDr.cjs} +1 -1
  151. package/dist/{theme-panel-footer-BkwhuXM7.js → theme-panel-footer-CGZL2F7R.js} +2 -2
  152. package/dist/{theme-panel-footer-D_gxD0j4.cjs → theme-panel-footer-IgGj-_OA.cjs} +1 -1
  153. package/dist/{translation-warning-modal-D_vt37fW.cjs → translation-warning-modal-B876S5yp.cjs} +1 -1
  154. package/dist/{translation-warning-modal-CTfArsb1.js → translation-warning-modal-kRcfrPgo.js} +1 -1
  155. package/dist/types.d.ts +3 -0
  156. package/dist/{unmark-as-template-vFgMIdxN.js → unmark-as-template-DeeWUTco.js} +2 -2
  157. package/dist/{unmark-as-template-D2bvjGKt.cjs → unmark-as-template-f1dl_YTz.cjs} +1 -1
  158. package/dist/{unpublish-page-CPjHmtSM.cjs → unpublish-page-DEPFjGuu.cjs} +1 -1
  159. package/dist/{unpublish-page-CxkjTzBB.js → unpublish-page-U_79Pwc0.js} +2 -2
  160. package/dist/unpublished-partials-modal-CEFXp1D1.cjs +1 -0
  161. package/dist/unpublished-partials-modal-Ts5ZhAK9.js +41 -0
  162. package/dist/utils.cjs +1 -1
  163. package/dist/utils.js +2 -2
  164. package/dist/{web-preview--by73Vvr.js → web-preview-CoT8r96b.js} +1 -1
  165. package/dist/{web-preview-C3AMe_BB.cjs → web-preview-DTDoIE-c.cjs} +1 -1
  166. package/package.json +1 -1
  167. package/dist/delete-design-token-B0md8qUi.js +0 -40
  168. package/dist/delete-design-token-C94IgWdi.cjs +0 -1
  169. package/dist/index-Bzn_gpaK.cjs +0 -5
  170. package/dist/index-D30xvFa5.cjs +0 -160
  171. package/dist/library-blocks/hero-1/hero-1.html +0 -74
  172. package/dist/library-blocks/hero-1/hero-1.webp +0 -0
  173. package/dist/library-blocks/hero-2/hero-2.html +0 -95
  174. package/dist/library-blocks/hero-2/hero-2.webp +0 -0
  175. package/dist/manage-design-tokens-Cene3KEu.js +0 -241
  176. package/dist/manage-design-tokens-Di5C6nTj.cjs +0 -1
  177. package/dist/page-manager-new-2mDjnSqc.cjs +0 -1
  178. package/dist/page-manager-new-DP1b_dXt.js +0 -411
@@ -1,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-D6GjnauV.js";
3
- import { aa as b, ab as C, P as j } from "./index-BFnMzGe6.js";
3
+ import { X as b, Y as C, P as j } from "./index-DsQXiNA_.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-CfmdXP9M.js";
2
- import { w as d, x as f, y as e } from "./index-CA1OwKJX.js";
1
+ import { c, T as l, P as m, a as u, D as v, Q as i } from "./AP7HFJJL-kVgc0R61.js";
2
+ import { w as d, x as f, y as e } from "./index-DtMksfXx.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-Dt6MglIr.cjs"),t=require("./index-Bzn_gpaK.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-CO-deD_p.cjs"),t=require("./index-CAhDwfHE.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-D6GjnauV.js";
3
- import { U as i, V as o, W as l, X as c, Y as d } from "./index-BFnMzGe6.js";
4
- import { ao as m, a as h, B as u, E as p, P as N } from "./index-CA1OwKJX.js";
3
+ import { G as i, H as o, I as l, J as c, K as d } from "./index-DsQXiNA_.js";
4
+ import { ao as m, a as h, B as u, E as p, P as N } from "./index-DtMksfXx.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-DyW9GPzV.cjs"),t=require("./index-D30xvFa5.cjs"),s=require("./index-Bzn_gpaK.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-DyW9GPzV.cjs"),t=require("./index-mPCp0j2h.cjs"),s=require("./index-CAhDwfHE.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-D6GjnauV.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-BFnMzGe6.js";
4
- import { p as An, r as Cn, S as Dn } from "./slug-input-CAfGHqMW.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-CA1OwKJX.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-DsQXiNA_.js";
4
+ import { p as An, r as Cn, S as Dn } from "./slug-input-CAqkFZBq.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-DtMksfXx.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-DyW9GPzV.cjs"),N=require("./index-D30xvFa5.cjs"),Y=require("./slug-input-BdMnlYKT.cjs"),g=require("./index-Bzn_gpaK.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-DyW9GPzV.cjs"),N=require("./index-mPCp0j2h.cjs"),Y=require("./slug-input-Curnt2n3.cjs"),g=require("./index-CAhDwfHE.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,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-BFnMzGe6.js";
2
+ import { D as t, e as c, f as p, g as m, p as h } from "./index-DsQXiNA_.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-CQhE1tgn.js")), C = ({
5
+ const x = D(() => import("./page-creator-BuHHnqiQ.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"),s=require("./index-D30xvFa5.cjs"),c=require("react"),a=require("react-i18next"),u=c.lazy(()=>Promise.resolve().then(()=>require("./page-creator-RrUhy8uH.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-mPCp0j2h.cjs"),c=require("react"),a=require("react-i18next"),u=c.lazy(()=>Promise.resolve().then(()=>require("./page-creator-wtbae2U7.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 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),L=require("./register-chai-top-bar-DyW9GPzV.cjs"),N=require("./index-D30xvFa5.cjs"),j=require("./index-Bzn_gpaK.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-DJJWAtN0.cjs"))),z=s.lazy(()=>Promise.resolve().then(()=>require("./ai-panel-other-lang-v8Yd5ggR.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-DyW9GPzV.cjs"),N=require("./index-mPCp0j2h.cjs"),j=require("./index-CAhDwfHE.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-C6N4wUUF.cjs"))),z=s.lazy(()=>Promise.resolve().then(()=>require("./ai-panel-other-lang-C65lVVtZ.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-D6GjnauV.js";
3
- import { d as A } from "./index-BFnMzGe6.js";
4
- import { v as B, c as F } from "./index-CA1OwKJX.js";
3
+ import { d as A } from "./index-DsQXiNA_.js";
4
+ import { v as B, c as F } from "./index-DtMksfXx.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-BVBuwnyU.js")), T = x(() => import("./ai-panel-other-lang-fIEZkmRy.js")), Z = () => {
10
+ const O = x(() => import("./ai-panel-default-lang-DnYLHSaS.js")), T = x(() => import("./ai-panel-other-lang-D1pCJluY.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"),S=require("./index-D30xvFa5.cjs"),p=require("./selected-block-display-MyU0rS4q.cjs"),P=require("lucide-react"),j=require("react"),W=require("sonner"),F=require("./models-5gOsRC56.cjs"),L=require("./apply-binding-9XSrYzAE.cjs"),O=require("@tanstack/react-query"),$=()=>{const{addPredefinedBlock:k}=S.useAddBlock(),N=S.useReplaceBlock(),y=S.useRemoveBlocks(),T=O.useQueryClient(),w=async(r,e)=>{if(!e)return;const s=L.getBlocksFromHTML(e);await k(s,r.parentId,r.position)},B=async(r,e)=>{if(!r.blockId||!e)return;const s=L.getBlocksFromHTML(e);await N(r.blockId,s)},I=async r=>{!r.ids||r.ids.length===0||await y(r.ids)};let d=null;const E=(r,e)=>{const s=document.getElementById("canvas-iframe");if(!s)return null;const u=s==null?void 0:s.contentDocument;if(!u)return null;u.querySelectorAll("[data-stream-canvas]").forEach(n=>n.remove());let o=null;if(r&&r!=="undefined"&&(o=u.querySelector(`[data-block-id="${r}"]`)),o||(o=u.body),!o)return null;if(d=u.createElement("div"),d.setAttribute("data-stream-canvas","true"),e!==void 0&&e>=0&&o.children){const n=Math.min(e,o.children.length);n<o.children.length?o.insertBefore(d,o.children[n]):o.appendChild(d)}else o.appendChild(d);return d},H=r=>{var o;const e=document.getElementById("canvas-iframe");if(!e)return null;const s=e==null?void 0:e.contentDocument;if(!s)return null;s.querySelectorAll("[data-stream-canvas]").forEach(n=>n.remove());const f=s.querySelector(`[data-block-id="${r}"]`);return f?(d=s.createElement("div"),d.setAttribute("data-stream-canvas","true"),(o=f.parentNode)==null||o.insertBefore(d,f.nextSibling),f.style.display="none",d):null},M=r=>{const e=document.getElementById("canvas-iframe");(e==null?void 0:e.contentWindow)&&r.scrollIntoView({behavior:"smooth",block:"end"})},v=(r,e,s)=>{const u=E(e,s);u&&(u.innerHTML=r,M(u))},x=(r,e)=>{const s=H(e);s&&(s.innerHTML=r,M(s))},D=r=>{const e=r.match(/^--ACTION=(.+)--$/);if(!e)return null;let u=e[1].replace(/--/g,"").split("|");const o={type:u[0]};return u.forEach(n=>{const t=n.trim();if(t.startsWith("PARENT=")){const A=t.substring(7);o.parentId=A==="undefined"?void 0:A}else t.startsWith("POS=")?o.position=parseInt(t.substring(4)):t.startsWith("ID=")?o.blockId=t.substring(3):t.startsWith("IDS=")&&(o.ids=t.substring(4).split(",").map(A=>A.trim()))}),o};return j.useCallback(async(r,e)=>{const s=new TextDecoder;let u="",f="",o=!1,n=null;const t={isInAction:!1,currentAction:null,htmlBuffer:"",isCapturingHtml:!1},A=async m=>{const i=m.trim();if(i==="--START--"){o=!0;return}if(o){if(i==="--END--"){t.currentAction&&(t.htmlBuffer||t.currentAction.type==="REMOVE")&&await C(t.currentAction,t.htmlBuffer),d&&(d.remove(),d=null);return}if(i.startsWith("--THINKING=")){const c=i.substring(11);e(l=>{const h=[...l],g=h[h.length-1];if(g&&g.role==="assistant"&&g.isReasoning)g.content=c,g.isStreaming=!1;else{const b={id:Date.now().toString(),role:"assistant",content:c,isReasoning:!0,isStreaming:!1};h.push(b)}return h});return}if(i.startsWith("--TASK=")){const c=i.substring(7),l=`task-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,h={id:l,role:"assistant",content:c.replace(/--$/,""),isTask:!0,isTaskLoading:!0,isTaskCompleted:!1};n=l,e(g=>[...g,h]);return}if(i.startsWith("--MSG=")){const c=i.substring(6),l={id:Date.now().toString(),role:"assistant",content:c.replace(/--$/g,""),isReasoning:!1,isStreaming:!1};e(h=>[...h,l]);return}if(i.startsWith("--ACTION=")){t.currentAction&&(t.htmlBuffer||t.currentAction.type==="REMOVE")&&await C(t.currentAction,t.htmlBuffer),t.currentAction=D(i),t.htmlBuffer="",t.isInAction=!0;return}if(i==="--ENDACTION--"){t.currentAction&&(t.htmlBuffer||t.currentAction.type==="REMOVE")&&await C(t.currentAction,t.htmlBuffer),n&&(e(c=>c.map(l=>l.isTask?{...l,isTaskCompleted:!0}:l)),n=null),t.currentAction=null,t.htmlBuffer="",t.isInAction=!1;return}if(i==="--HTML--"){t.isCapturingHtml=!0;return}if(i==="--ENDHTML--"){t.isCapturingHtml=!1;return}if(i.startsWith("--HTML--")&&i.includes("--ENDHTML--")){const c=i.match(/^--HTML--(.+?)--ENDHTML--$/);if(c&&t.currentAction){const l=c[1];t.htmlBuffer+=l,t.currentAction.type==="ADD"?v(t.htmlBuffer,t.currentAction.parentId,t.currentAction.position):t.currentAction.type==="EDIT"&&t.currentAction.blockId&&x(t.htmlBuffer,t.currentAction.blockId)}return}t.isCapturingHtml&&t.currentAction&&(t.htmlBuffer+=m+`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),S=require("./index-mPCp0j2h.cjs"),p=require("./selected-block-display-BgqcPsXI.cjs"),P=require("lucide-react"),j=require("react"),W=require("sonner"),F=require("./models-5gOsRC56.cjs"),L=require("./apply-binding-9XSrYzAE.cjs"),O=require("@tanstack/react-query"),$=()=>{const{addPredefinedBlock:k}=S.useAddBlock(),N=S.useReplaceBlock(),y=S.useRemoveBlocks(),T=O.useQueryClient(),w=async(r,e)=>{if(!e)return;const s=L.getBlocksFromHTML(e);await k(s,r.parentId,r.position)},B=async(r,e)=>{if(!r.blockId||!e)return;const s=L.getBlocksFromHTML(e);await N(r.blockId,s)},I=async r=>{!r.ids||r.ids.length===0||await y(r.ids)};let d=null;const E=(r,e)=>{const s=document.getElementById("canvas-iframe");if(!s)return null;const u=s==null?void 0:s.contentDocument;if(!u)return null;u.querySelectorAll("[data-stream-canvas]").forEach(n=>n.remove());let o=null;if(r&&r!=="undefined"&&(o=u.querySelector(`[data-block-id="${r}"]`)),o||(o=u.body),!o)return null;if(d=u.createElement("div"),d.setAttribute("data-stream-canvas","true"),e!==void 0&&e>=0&&o.children){const n=Math.min(e,o.children.length);n<o.children.length?o.insertBefore(d,o.children[n]):o.appendChild(d)}else o.appendChild(d);return d},H=r=>{var o;const e=document.getElementById("canvas-iframe");if(!e)return null;const s=e==null?void 0:e.contentDocument;if(!s)return null;s.querySelectorAll("[data-stream-canvas]").forEach(n=>n.remove());const f=s.querySelector(`[data-block-id="${r}"]`);return f?(d=s.createElement("div"),d.setAttribute("data-stream-canvas","true"),(o=f.parentNode)==null||o.insertBefore(d,f.nextSibling),f.style.display="none",d):null},M=r=>{const e=document.getElementById("canvas-iframe");(e==null?void 0:e.contentWindow)&&r.scrollIntoView({behavior:"smooth",block:"end"})},v=(r,e,s)=>{const u=E(e,s);u&&(u.innerHTML=r,M(u))},x=(r,e)=>{const s=H(e);s&&(s.innerHTML=r,M(s))},D=r=>{const e=r.match(/^--ACTION=(.+)--$/);if(!e)return null;let u=e[1].replace(/--/g,"").split("|");const o={type:u[0]};return u.forEach(n=>{const t=n.trim();if(t.startsWith("PARENT=")){const A=t.substring(7);o.parentId=A==="undefined"?void 0:A}else t.startsWith("POS=")?o.position=parseInt(t.substring(4)):t.startsWith("ID=")?o.blockId=t.substring(3):t.startsWith("IDS=")&&(o.ids=t.substring(4).split(",").map(A=>A.trim()))}),o};return j.useCallback(async(r,e)=>{const s=new TextDecoder;let u="",f="",o=!1,n=null;const t={isInAction:!1,currentAction:null,htmlBuffer:"",isCapturingHtml:!1},A=async m=>{const i=m.trim();if(i==="--START--"){o=!0;return}if(o){if(i==="--END--"){t.currentAction&&(t.htmlBuffer||t.currentAction.type==="REMOVE")&&await C(t.currentAction,t.htmlBuffer),d&&(d.remove(),d=null);return}if(i.startsWith("--THINKING=")){const c=i.substring(11);e(l=>{const h=[...l],g=h[h.length-1];if(g&&g.role==="assistant"&&g.isReasoning)g.content=c,g.isStreaming=!1;else{const b={id:Date.now().toString(),role:"assistant",content:c,isReasoning:!0,isStreaming:!1};h.push(b)}return h});return}if(i.startsWith("--TASK=")){const c=i.substring(7),l=`task-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,h={id:l,role:"assistant",content:c.replace(/--$/,""),isTask:!0,isTaskLoading:!0,isTaskCompleted:!1};n=l,e(g=>[...g,h]);return}if(i.startsWith("--MSG=")){const c=i.substring(6),l={id:Date.now().toString(),role:"assistant",content:c.replace(/--$/g,""),isReasoning:!1,isStreaming:!1};e(h=>[...h,l]);return}if(i.startsWith("--ACTION=")){t.currentAction&&(t.htmlBuffer||t.currentAction.type==="REMOVE")&&await C(t.currentAction,t.htmlBuffer),t.currentAction=D(i),t.htmlBuffer="",t.isInAction=!0;return}if(i==="--ENDACTION--"){t.currentAction&&(t.htmlBuffer||t.currentAction.type==="REMOVE")&&await C(t.currentAction,t.htmlBuffer),n&&(e(c=>c.map(l=>l.isTask?{...l,isTaskCompleted:!0}:l)),n=null),t.currentAction=null,t.htmlBuffer="",t.isInAction=!1;return}if(i==="--HTML--"){t.isCapturingHtml=!0;return}if(i==="--ENDHTML--"){t.isCapturingHtml=!1;return}if(i.startsWith("--HTML--")&&i.includes("--ENDHTML--")){const c=i.match(/^--HTML--(.+?)--ENDHTML--$/);if(c&&t.currentAction){const l=c[1];t.htmlBuffer+=l,t.currentAction.type==="ADD"?v(t.htmlBuffer,t.currentAction.parentId,t.currentAction.position):t.currentAction.type==="EDIT"&&t.currentAction.blockId&&x(t.htmlBuffer,t.currentAction.blockId)}return}t.isCapturingHtml&&t.currentAction&&(t.htmlBuffer+=m+`
2
2
  `,t.currentAction.type==="ADD"?v(t.htmlBuffer,t.currentAction.parentId,t.currentAction.position):t.currentAction.type==="EDIT"&&t.currentAction.blockId&&x(t.htmlBuffer,t.currentAction.blockId))}},C=async(m,i)=>{try{switch(m.type){case"ADD":await w(m,i);break;case"EDIT":await B(m,i);break;case"REMOVE":await I(m);break}e(c=>c.filter(l=>!l.isTask))}catch(c){console.log(c)}};try{for(;;){const{done:m,value:i}=await r.read();if(m)break;const c=s.decode(i,{stream:!0});u+=c,f+=c;const l=f.split(`
3
- `);f=l.pop()||"";for(const h of l)await A(h)}f&&await A(f),T.invalidateQueries({queryKey:["AI_USAGE"]})}catch(m){console.log(m)}},[y])},V=j.lazy(()=>Promise.resolve().then(()=>require("./ai-prompt-input-C7ha_0Cn.cjs"))),K=({t:k,fetch:N,input:y,messages:T,setInput:w,isLoading:B,setMessages:I,handleStop:d,setIsLoading:E,currentBlock:H,fallbackLang:M,setCurrentBlock:v,setAbortController:x,selectedModel:D=F.getDefaultModel().id,onModelChange:r})=>{const e=S.useSelectedBlock(),[,s]=S.useSelectedBlockIds(),u=S.useBlocksHtmlForAi(),f=$(),o=async(n,t,A,C)=>{var h;if(!n||B)return;v(e);const m=u(e?{blockId:e._id,additionalCoreBlocks:["Icon"]}:{additionalCoreBlocks:["Icon"]});if(e&&!m){W.toast.error(k("Something went wrong. Please try again."));return}const i={id:Date.now().toString(),role:"user",content:p.getUserPrompt({language:M,userInput:t||n,currentHtml:m}),userMessage:n},c={id:(Date.now()+1).toString(),role:"assistant",content:"",isReasoning:!0,isStreaming:!0};I(g=>[...g,i,c]),E(!0);const l=new AbortController;x(l);try{const g={messages:[i].map(q=>({role:q.role,content:q.content})),model:C||D};A&&(g.image=A);const b=await N({body:{action:"ASK_AI",data:g},streamResponse:!0});if(!b.ok)throw new Error(k("Failed to get AI response"));const R=(h=b.body)==null?void 0:h.getReader();if(!R)throw new Error(k("Response body is not readable"));await f(R,I)}catch(g){if(g.name!=="AbortError"){const b={id:(Date.now()+1).toString(),role:"assistant",content:k("Sorry, I encountered an error. Please try again.")};I(R=>[...R,b])}}finally{w(""),E(!1),v(null),x(null)}};return a.jsxs(a.Fragment,{children:[a.jsxs(p.Conversation,{className:"no-scrollbar",children:[a.jsxs(p.ConversationContent,{className:"gap-2 px-0",children:[T.length===0&&a.jsx(p.ConversationEmptyState,{icon:a.jsx(P.Bot,{size:48,className:"text-gray-300"}),title:"Start a conversation",description:k("Start a conversation with the AI assistant to add/edit current page")}),T.map(n=>n.role!=="system"&&a.jsx(j.Fragment,{children:n.isReasoning?a.jsxs(p.Reasoning,{isStreaming:n.isStreaming,defaultOpen:!0,children:[a.jsx(p.ReasoningTrigger,{className:"text-xs [&_p]:text-muted-foreground"}),a.jsx(p.ReasoningContent,{className:"p-0 text-xs",children:n.content})]}):n.isTask&&!n.isTaskCompleted?a.jsx(p.TaskMessage,{content:n.content,isLoading:n.isTaskLoading}):a.jsx(p.Message,{from:n.role,children:a.jsx(p.MessageContent,{className:"p-0",children:n.role==="assistant"?a.jsx(p.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(p.ConversationScrollButton,{})]}),a.jsxs("div",{className:"border-gray-200 pb-2",children:[a.jsx(p.SelectedBlockDisplay,{onRemove:()=>s([]),isLoading:B}),a.jsx(j.Suspense,{fallback:a.jsx("div",{children:"Loading..."}),children:a.jsx(V,{input:y,setInput:w,onSend:o,onStop:d,isLoading:B,selectedLang:"",currentBlock:e||H,disabled:(y==null?void 0:y.length)===0,selectedModel:D,onModelChange:r})})]})]})};exports.default=K;
3
+ `);f=l.pop()||"";for(const h of l)await A(h)}f&&await A(f),T.invalidateQueries({queryKey:["AI_USAGE"]})}catch(m){console.log(m)}},[y])},V=j.lazy(()=>Promise.resolve().then(()=>require("./ai-prompt-input-Dws5BHhQ.cjs"))),K=({t:k,fetch:N,input:y,messages:T,setInput:w,isLoading:B,setMessages:I,handleStop:d,setIsLoading:E,currentBlock:H,fallbackLang:M,setCurrentBlock:v,setAbortController:x,selectedModel:D=F.getDefaultModel().id,onModelChange:r})=>{const e=S.useSelectedBlock(),[,s]=S.useSelectedBlockIds(),u=S.useBlocksHtmlForAi(),f=$(),o=async(n,t,A,C)=>{var h;if(!n||B)return;v(e);const m=u(e?{blockId:e._id,additionalCoreBlocks:["Icon"]}:{additionalCoreBlocks:["Icon"]});if(e&&!m){W.toast.error(k("Something went wrong. Please try again."));return}const i={id:Date.now().toString(),role:"user",content:p.getUserPrompt({language:M,userInput:t||n,currentHtml:m}),userMessage:n},c={id:(Date.now()+1).toString(),role:"assistant",content:"",isReasoning:!0,isStreaming:!0};I(g=>[...g,i,c]),E(!0);const l=new AbortController;x(l);try{const g={messages:[i].map(q=>({role:q.role,content:q.content})),model:C||D};A&&(g.image=A);const b=await N({body:{action:"ASK_AI",data:g},streamResponse:!0});if(!b.ok)throw new Error(k("Failed to get AI response"));const R=(h=b.body)==null?void 0:h.getReader();if(!R)throw new Error(k("Response body is not readable"));await f(R,I)}catch(g){if(g.name!=="AbortError"){const b={id:(Date.now()+1).toString(),role:"assistant",content:k("Sorry, I encountered an error. Please try again.")};I(R=>[...R,b])}}finally{w(""),E(!1),v(null),x(null)}};return a.jsxs(a.Fragment,{children:[a.jsxs(p.Conversation,{className:"no-scrollbar",children:[a.jsxs(p.ConversationContent,{className:"gap-2 px-0",children:[T.length===0&&a.jsx(p.ConversationEmptyState,{icon:a.jsx(P.Bot,{size:48,className:"text-gray-300"}),title:"Start a conversation",description:k("Start a conversation with the AI assistant to add/edit current page")}),T.map(n=>n.role!=="system"&&a.jsx(j.Fragment,{children:n.isReasoning?a.jsxs(p.Reasoning,{isStreaming:n.isStreaming,defaultOpen:!0,children:[a.jsx(p.ReasoningTrigger,{className:"text-xs [&_p]:text-muted-foreground"}),a.jsx(p.ReasoningContent,{className:"p-0 text-xs",children:n.content})]}):n.isTask&&!n.isTaskCompleted?a.jsx(p.TaskMessage,{content:n.content,isLoading:n.isTaskLoading}):a.jsx(p.Message,{from:n.role,children:a.jsx(p.MessageContent,{className:"p-0",children:n.role==="assistant"?a.jsx(p.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(p.ConversationScrollButton,{})]}),a.jsxs("div",{className:"border-gray-200 pb-2",children:[a.jsx(p.SelectedBlockDisplay,{onRemove:()=>s([]),isLoading:B}),a.jsx(j.Suspense,{fallback:a.jsx("div",{children:"Loading..."}),children:a.jsx(V,{input:y,setInput:w,onSend:o,onStop:d,isLoading:B,selectedLang:"",currentBlock:e||H,disabled:(y==null?void 0:y.length)===0,selectedModel:D,onModelChange:r})})]})]})};exports.default=K;
@@ -1,6 +1,6 @@
1
1
  import { jsxs as C, Fragment as W, jsx as d } from "react/jsx-runtime";
2
- import { ak as F, al as P, am as O, a1 as $, a as q, an as V } from "./index-BFnMzGe6.js";
3
- import { C as K, a as _, b as j, R as G, c as z, d as Q, T as U, M as J, e as X, f as Y, h as Z, S as tt, i as et } from "./selected-block-display-aGR7p5JC.js";
2
+ import { ah as F, ai as P, aj as O, U as $, a as q, ak as V } from "./index-DsQXiNA_.js";
3
+ import { C as j, a as K, b as _, R as G, c as U, d as z, T as Q, M as J, e as X, f as Y, h as Z, S as tt, i as et } from "./selected-block-display-BQndDPcY.js";
4
4
  import { Bot as nt } from "lucide-react";
5
5
  import { useCallback as rt, Fragment as st, Suspense as ot, lazy as at } from "react";
6
6
  import { toast as it } from "sonner";
@@ -199,7 +199,7 @@ const ut = () => {
199
199
  },
200
200
  [k]
201
201
  );
202
- }, dt = at(() => import("./ai-prompt-input-CmSfGxTN.js")), It = ({
202
+ }, dt = at(() => import("./ai-prompt-input-B2q30bhR.js")), It = ({
203
203
  t: A,
204
204
  fetch: x,
205
205
  input: k,
@@ -273,10 +273,10 @@ const ut = () => {
273
273
  }
274
274
  };
275
275
  return /* @__PURE__ */ C(W, { children: [
276
- /* @__PURE__ */ C(K, { className: "no-scrollbar", children: [
277
- /* @__PURE__ */ C(_, { className: "gap-2 px-0", children: [
276
+ /* @__PURE__ */ C(j, { className: "no-scrollbar", children: [
277
+ /* @__PURE__ */ C(K, { className: "gap-2 px-0", children: [
278
278
  w.length === 0 && /* @__PURE__ */ d(
279
- j,
279
+ _,
280
280
  {
281
281
  icon: /* @__PURE__ */ d(nt, { size: 48, className: "text-gray-300" }),
282
282
  title: "Start a conversation",
@@ -285,9 +285,9 @@ const ut = () => {
285
285
  ),
286
286
  w.map(
287
287
  (n) => n.role !== "system" && /* @__PURE__ */ d(st, { children: n.isReasoning ? /* @__PURE__ */ C(G, { isStreaming: n.isStreaming, defaultOpen: !0, children: [
288
- /* @__PURE__ */ d(z, { className: "text-xs [&_p]:text-muted-foreground" }),
289
- /* @__PURE__ */ d(Q, { className: "p-0 text-xs", children: n.content })
290
- ] }) : n.isTask && !n.isTaskCompleted ? /* @__PURE__ */ d(U, { content: n.content, isLoading: n.isTaskLoading }) : /* @__PURE__ */ d(J, { from: n.role, children: /* @__PURE__ */ d(X, { className: "p-0", children: n.role === "assistant" ? /* @__PURE__ */ d(Y, { className: "p-0 text-xs", children: n.content }) : /* @__PURE__ */ d("div", { className: "p-0 text-xs", children: n.userMessage || n.content }) }) }) }, n.id)
288
+ /* @__PURE__ */ d(U, { className: "text-xs [&_p]:text-muted-foreground" }),
289
+ /* @__PURE__ */ d(z, { className: "p-0 text-xs", children: n.content })
290
+ ] }) : n.isTask && !n.isTaskCompleted ? /* @__PURE__ */ d(Q, { content: n.content, isLoading: n.isTaskLoading }) : /* @__PURE__ */ d(J, { from: n.role, children: /* @__PURE__ */ d(X, { className: "p-0", children: n.role === "assistant" ? /* @__PURE__ */ d(Y, { className: "p-0 text-xs", children: n.content }) : /* @__PURE__ */ d("div", { className: "p-0 text-xs", children: n.userMessage || n.content }) }) }) }, n.id)
291
291
  )
292
292
  ] }),
293
293
  /* @__PURE__ */ d(Z, {})
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("./index-D30xvFa5.cjs"),s=require("./selected-block-display-MyU0rS4q.cjs"),G=require("lucide-react"),o=require("react"),H=require("react-i18next"),Q=require("./models-5gOsRC56.cjs"),X=o.lazy(()=>Promise.resolve().then(()=>require("./ai-translation-prompt-BzTGAS3W.cjs"))),Y=o.lazy(()=>Promise.resolve().then(()=>require("./ai-prompt-input-C7ha_0Cn.cjs"))),Z=({fetch:v,input:a,messages:u,setInput:j,isLoading:c,handleStop:q,setMessages:y,setIsLoading:h,selectedLang:i,currentBlock:A,fallbackLang:P,abortController:x,setAbortController:E,setCurrentBlock:k,selectedModel:S=Q.getDefaultModel().id,onModelChange:M})=>{const{t:n}=H.useTranslation(),O=o.useRef(null),l=d.useSelectedBlock(),[,D]=d.useSelectedBlockIds(),T=d.useI18nBlocks(),I=d.useStreamMultipleBlocksProps(),C=()=>{var t;(t=O.current)==null||t.scrollIntoView({behavior:"smooth"})};o.useEffect(()=>{C()},[u,c]);const f=async(t,m,F)=>{var b;l&&k(l);const p=(t==null?void 0:t.toLowerCase())==="translate",R={id:Date.now().toString(),role:"user",content:s.getTranslationUserPrompt({fallbackLang:P,userInput:m||t,language:i,blocks:p?T():T(i)}),userMessage:m||t||n("Translate the content")},_={id:(Date.now()+1).toString(),role:"assistant",content:"Thinking...",isReasoning:!0,isStreaming:!0};h(!0);const z=new AbortController;E(z),y(w=>[...w,R,_]),h(!0);try{const N=await v({body:{action:"ASK_AI",data:{messages:[R],initiator:p?"TRANSLATE_CONTENT":"UPDATE_CONTENT",model:F||S}},streamResponse:!0});if(!N.ok)throw new Error(n("Failed to get AI response"));const B=(b=N.body)==null?void 0:b.getReader(),U=new TextDecoder;let r="";if(!B)throw new Error(n("Response body is not readable"));for(;;){const{done:K,value:V}=await B.read();if(K)break;const W=U.decode(V,{stream:!0});r+=W,y(g=>(g[g.length-1].content=r,[...g]))}const J=JSON.parse(r==null?void 0:r.replace("```json","").replace("```",""));I(J)}catch{x==null||x.abort()}finally{h(!1),j(""),k(null)}};return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"py-2",children:e.jsx(o.Suspense,{fallback:e.jsx("div",{children:n("Loading...")}),children:e.jsx(X,{isLoading:c,selectedBlock:l,selectedLang:i,onClick:f})})}),e.jsx(s.Conversation,{children:e.jsxs(s.ConversationContent,{className:"gap-4 px-0",children:[u.length===0&&e.jsx(s.ConversationEmptyState,{icon:e.jsx(G.Bot,{size:48,className:"text-gray-300"}),title:n("Start a conversation with the AI assistant to translate/edit your content"),description:n("Only content can be edited in secondary languages. To edit layout, styles and more, switch to the default language.")}),u.map(t=>t.role!=="system"&&e.jsx(o.Fragment,{children:t.isReasoning?e.jsxs(s.Reasoning,{isStreaming:t.isStreaming,defaultOpen:!0,children:[e.jsx(s.ReasoningTrigger,{className:"text-xs [&_p]:text-muted-foreground"}),e.jsx(s.ReasoningContent,{className:"p-0 text-xs",children:t.content})]}):t.isTask?e.jsx(s.TaskMessage,{content:t.content,isLoading:t.isTaskLoading}):e.jsx(s.Message,{from:t.role,children:e.jsx(s.MessageContent,{className:"p-0",children:t.role==="assistant"?e.jsx(s.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(s.SelectedBlockDisplay,{onRemove:()=>D([]),isLoading:c}),e.jsx(o.Suspense,{fallback:e.jsx("div",{children:n("Loading...")}),children:e.jsx(Y,{input:a,setInput:j,onSend:f,onStop:q,isLoading:c,selectedLang:i,currentBlock:l||A,disabled:(a==null?void 0:a.length)===0,selectedModel:S,onModelChange:M})})]})]})};exports.default=Z;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("./index-mPCp0j2h.cjs"),s=require("./selected-block-display-BgqcPsXI.cjs"),G=require("lucide-react"),o=require("react"),H=require("react-i18next"),Q=require("./models-5gOsRC56.cjs"),X=o.lazy(()=>Promise.resolve().then(()=>require("./ai-translation-prompt-DnwG2BmF.cjs"))),Y=o.lazy(()=>Promise.resolve().then(()=>require("./ai-prompt-input-Dws5BHhQ.cjs"))),Z=({fetch:v,input:a,messages:u,setInput:j,isLoading:c,handleStop:q,setMessages:y,setIsLoading:h,selectedLang:i,currentBlock:A,fallbackLang:P,abortController:x,setAbortController:E,setCurrentBlock:k,selectedModel:S=Q.getDefaultModel().id,onModelChange:M})=>{const{t:n}=H.useTranslation(),O=o.useRef(null),l=d.useSelectedBlock(),[,D]=d.useSelectedBlockIds(),T=d.useI18nBlocks(),I=d.useStreamMultipleBlocksProps(),C=()=>{var t;(t=O.current)==null||t.scrollIntoView({behavior:"smooth"})};o.useEffect(()=>{C()},[u,c]);const f=async(t,m,F)=>{var b;l&&k(l);const p=(t==null?void 0:t.toLowerCase())==="translate",R={id:Date.now().toString(),role:"user",content:s.getTranslationUserPrompt({fallbackLang:P,userInput:m||t,language:i,blocks:p?T():T(i)}),userMessage:m||t||n("Translate the content")},_={id:(Date.now()+1).toString(),role:"assistant",content:"Thinking...",isReasoning:!0,isStreaming:!0};h(!0);const z=new AbortController;E(z),y(w=>[...w,R,_]),h(!0);try{const N=await v({body:{action:"ASK_AI",data:{messages:[R],initiator:p?"TRANSLATE_CONTENT":"UPDATE_CONTENT",model:F||S}},streamResponse:!0});if(!N.ok)throw new Error(n("Failed to get AI response"));const B=(b=N.body)==null?void 0:b.getReader(),U=new TextDecoder;let r="";if(!B)throw new Error(n("Response body is not readable"));for(;;){const{done:K,value:V}=await B.read();if(K)break;const W=U.decode(V,{stream:!0});r+=W,y(g=>(g[g.length-1].content=r,[...g]))}const J=JSON.parse(r==null?void 0:r.replace("```json","").replace("```",""));I(J)}catch{x==null||x.abort()}finally{h(!1),j(""),k(null)}};return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"py-2",children:e.jsx(o.Suspense,{fallback:e.jsx("div",{children:n("Loading...")}),children:e.jsx(X,{isLoading:c,selectedBlock:l,selectedLang:i,onClick:f})})}),e.jsx(s.Conversation,{children:e.jsxs(s.ConversationContent,{className:"gap-4 px-0",children:[u.length===0&&e.jsx(s.ConversationEmptyState,{icon:e.jsx(G.Bot,{size:48,className:"text-gray-300"}),title:n("Start a conversation with the AI assistant to translate/edit your content"),description:n("Only content can be edited in secondary languages. To edit layout, styles and more, switch to the default language.")}),u.map(t=>t.role!=="system"&&e.jsx(o.Fragment,{children:t.isReasoning?e.jsxs(s.Reasoning,{isStreaming:t.isStreaming,defaultOpen:!0,children:[e.jsx(s.ReasoningTrigger,{className:"text-xs [&_p]:text-muted-foreground"}),e.jsx(s.ReasoningContent,{className:"p-0 text-xs",children:t.content})]}):t.isTask?e.jsx(s.TaskMessage,{content:t.content,isLoading:t.isTaskLoading}):e.jsx(s.Message,{from:t.role,children:e.jsx(s.MessageContent,{className:"p-0",children:t.role==="assistant"?e.jsx(s.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(s.SelectedBlockDisplay,{onRemove:()=>D([]),isLoading:c}),e.jsx(o.Suspense,{fallback:e.jsx("div",{children:n("Loading...")}),children:e.jsx(Y,{input:a,setInput:j,onSend:f,onStop:q,isLoading:c,selectedLang:i,currentBlock:l||A,disabled:(a==null?void 0:a.length)===0,selectedModel:S,onModelChange:M})})]})]})};exports.default=Z;
@@ -1,11 +1,11 @@
1
1
  import { jsxs as c, Fragment as $, jsx as t } from "react/jsx-runtime";
2
- import { a1 as G, a as H, a2 as Q, a3 as X } from "./index-BFnMzGe6.js";
3
- import { C as Y, a as Z, b as L, R as ee, c as te, d as ne, T as se, M as oe, e as ae, f as re, S as ie, g as ce } from "./selected-block-display-aGR7p5JC.js";
2
+ import { U as G, a as H, V as Q, W as X } from "./index-DsQXiNA_.js";
3
+ import { C as Y, a as Z, b as L, R as ee, c as te, d as ne, T as se, M as oe, e as ae, f as re, S as ie, g as ce } from "./selected-block-display-BQndDPcY.js";
4
4
  import { Bot as le } from "lucide-react";
5
5
  import { useRef as de, useEffect as ue, Suspense as B, lazy as v, Fragment as he } from "react";
6
6
  import { useTranslation as me } from "react-i18next";
7
7
  import { g as ge } from "./models-D95ZYr_x.js";
8
- const fe = v(() => import("./ai-translation-prompt-CtBmvsRy.js")), pe = v(() => import("./ai-prompt-input-CmSfGxTN.js")), xe = ({
8
+ const fe = v(() => import("./ai-translation-prompt-Dnn6i_t3.js")), pe = v(() => import("./ai-prompt-input-B2q30bhR.js")), xe = ({
9
9
  fetch: A,
10
10
  input: o,
11
11
  messages: l,
@@ -43,7 +43,7 @@ const fe = v(() => import("./ai-translation-prompt-CtBmvsRy.js")), pe = v(() =>
43
43
  blocks: S ? k() : k(r)
44
44
  }),
45
45
  userMessage: y || e || n("Translate the content")
46
- }, q = {
46
+ }, U = {
47
47
  id: (Date.now() + 1).toString(),
48
48
  role: "assistant",
49
49
  content: "Thinking...",
@@ -51,8 +51,8 @@ const fe = v(() => import("./ai-translation-prompt-CtBmvsRy.js")), pe = v(() =>
51
51
  isStreaming: !0
52
52
  };
53
53
  d(!0);
54
- const z = new AbortController();
55
- O(z), g((b) => [...b, w, q]), d(!0);
54
+ const q = new AbortController();
55
+ O(q), g((b) => [...b, w, U]), d(!0);
56
56
  try {
57
57
  const x = await A({ body: { action: "ASK_AI", data: {
58
58
  messages: [w],
@@ -61,18 +61,18 @@ const fe = v(() => import("./ai-translation-prompt-CtBmvsRy.js")), pe = v(() =>
61
61
  } }, streamResponse: !0 });
62
62
  if (!x.ok)
63
63
  throw new Error(n("Failed to get AI response"));
64
- const R = (N = x.body) == null ? void 0 : N.getReader(), U = new TextDecoder();
64
+ const R = (N = x.body) == null ? void 0 : N.getReader(), z = new TextDecoder();
65
65
  let s = "";
66
66
  if (!R) throw new Error(n("Response body is not readable"));
67
67
  for (; ; ) {
68
- const { done: K, value: V } = await R.read();
69
- if (K)
68
+ const { done: W, value: J } = await R.read();
69
+ if (W)
70
70
  break;
71
- const W = U.decode(V, { stream: !0 });
72
- s += W, g((h) => (h[h.length - 1].content = s, [...h]));
71
+ const K = z.decode(J, { stream: !0 });
72
+ s += K, g((h) => (h[h.length - 1].content = s, [...h]));
73
73
  }
74
- const J = JSON.parse(s == null ? void 0 : s.replace("```json", "").replace("```", ""));
75
- F(J);
74
+ const V = JSON.parse(s == null ? void 0 : s.replace("```json", "").replace("```", ""));
75
+ F(V);
76
76
  } catch {
77
77
  u == null || u.abort();
78
78
  } finally {
@@ -1,8 +1,8 @@
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-D6GjnauV.js";
3
- import { T as le, at as ce, s as ue, t as de, v as pe, w as me, au as fe, av as he, D as ge, aw 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-BFnMzGe6.js";
3
+ import { T as le, aA as ce, s as ue, t as de, v as pe, w as me, aB as fe, aC as he, D as ge, aD 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-DsQXiNA_.js";
4
4
  import { cva as Y } from "class-variance-authority";
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";
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 Ce, Cpu as Le, Paperclip as Re, GlobeIcon as Me, Square as je, Send as Ue } from "lucide-react";
6
6
  import { nanoid as Oe } from "nanoid";
7
7
  import { useContext as V, useRef as M, useEffect as A, useState as P, useCallback as F, useMemo as Fe, createContext as W, Fragment as Ge, startTransition as Be, Children as _e } from "react";
8
8
  import { useTranslation as Ee } from "react-i18next";
@@ -223,7 +223,7 @@ const et = ({
223
223
  const r = (v = k.current) == null ? void 0 : v.closest("form");
224
224
  r instanceof HTMLFormElement && (I.current = r);
225
225
  }, []);
226
- const [S, L] = P([]), h = a ? s.attachments.files : S, T = F(() => {
226
+ const [S, C] = P([]), h = a ? s.attachments.files : S, T = F(() => {
227
227
  var r;
228
228
  (r = d.current) == null || r.click();
229
229
  }, []), j = F(
@@ -247,9 +247,9 @@ const et = ({
247
247
  });
248
248
  return;
249
249
  }
250
- L((x) => {
251
- const C = typeof p == "number" ? Math.max(0, p - x.length) : void 0, oe = typeof C == "number" ? b.slice(0, C) : b;
252
- typeof C == "number" && b.length > C && (g == null || g({
250
+ C((x) => {
251
+ const L = typeof p == "number" ? Math.max(0, p - x.length) : void 0, oe = typeof L == "number" ? b.slice(0, L) : b;
252
+ typeof L == "number" && b.length > L && (g == null || g({
253
253
  code: "max_files",
254
254
  message: "Too many files. Some were not added."
255
255
  }));
@@ -266,10 +266,10 @@ const et = ({
266
266
  });
267
267
  },
268
268
  [j, p, u, g]
269
- ), z = a ? (r) => s.attachments.add(r) : U, R = a ? (r) => s.attachments.remove(r) : (r) => L((v) => {
269
+ ), z = a ? (r) => s.attachments.add(r) : U, R = a ? (r) => s.attachments.remove(r) : (r) => C((v) => {
270
270
  const m = v.find((c) => c.id === r);
271
271
  return m != null && m.url && URL.revokeObjectURL(m.url), v.filter((c) => c.id !== r);
272
- }), O = a ? () => s.attachments.clear() : () => L((r) => {
272
+ }), O = a ? () => s.attachments.clear() : () => C((r) => {
273
273
  for (const v of r)
274
274
  v.url && URL.revokeObjectURL(v.url);
275
275
  return [];
@@ -288,8 +288,8 @@ const et = ({
288
288
  var b, x;
289
289
  (x = (b = c.dataTransfer) == null ? void 0 : b.types) != null && x.includes("Files") && c.preventDefault();
290
290
  }, m = (c) => {
291
- var b, x, C;
292
- (x = (b = c.dataTransfer) == null ? void 0 : b.types) != null && x.includes("Files") && c.preventDefault(), (C = c.dataTransfer) != null && C.files && c.dataTransfer.files.length > 0 && z(c.dataTransfer.files);
291
+ var b, x, L;
292
+ (x = (b = c.dataTransfer) == null ? void 0 : b.types) != null && x.includes("Files") && c.preventDefault(), (L = c.dataTransfer) != null && L.files && c.dataTransfer.files.length > 0 && z(c.dataTransfer.files);
293
293
  };
294
294
  return r.addEventListener("dragover", v), r.addEventListener("drop", m), () => {
295
295
  r.removeEventListener("dragover", v), r.removeEventListener("drop", m);
@@ -435,7 +435,7 @@ const et = ({
435
435
  ...p
436
436
  }) => {
437
437
  let u = /* @__PURE__ */ e(Te, { className: "size-4" });
438
- return l === "submitted" ? u = /* @__PURE__ */ e(Ae, { className: "size-4 animate-spin" }) : l === "streaming" ? u = /* @__PURE__ */ e(Le, { className: "size-4" }) : l === "error" && (u = /* @__PURE__ */ e(J, { className: "size-4" })), /* @__PURE__ */ e(
438
+ return l === "submitted" ? u = /* @__PURE__ */ e(Ae, { className: "size-4 animate-spin" }) : l === "streaming" ? u = /* @__PURE__ */ e(Ce, { className: "size-4" }) : l === "error" && (u = /* @__PURE__ */ e(J, { className: "size-4" })), /* @__PURE__ */ e(
439
439
  Z,
440
440
  {
441
441
  "aria-label": "Submit",
@@ -469,8 +469,8 @@ const et = ({
469
469
  S.isFinal && (d += ((k = S[0]) == null ? void 0 : k.transcript) ?? "");
470
470
  }
471
471
  if (d && (n != null && n.current)) {
472
- const I = n.current, S = I.value, L = S + (S ? " " : "") + d;
473
- I.value = L, I.dispatchEvent(new Event("input", { bubbles: !0 })), o == null || o(L);
472
+ const I = n.current, S = I.value, C = S + (S ? " " : "") + d;
473
+ I.value = C, I.dispatchEvent(new Event("input", { bubbles: !0 })), o == null || o(C);
474
474
  }
475
475
  }, s.onerror = (a) => {
476
476
  console.error("Speech recognition error:", a.error), p(!1);
@@ -530,7 +530,7 @@ const et = ({
530
530
  };
531
531
  return /* @__PURE__ */ w(mt, { open: l, onOpenChange: i, children: [
532
532
  /* @__PURE__ */ e(ft, { asChild: !0, children: /* @__PURE__ */ w(E, { variant: "outline", size: "sm", disabled: o, className: "h-8 gap-1 px-2 text-xs", children: [
533
- /* @__PURE__ */ e(Ce, { size: 14 }),
533
+ /* @__PURE__ */ e(Le, { size: 14 }),
534
534
  /* @__PURE__ */ e("span", { className: "max-w-20 truncate", children: g.name })
535
535
  ] }) }),
536
536
  /* @__PURE__ */ w(ht, { className: "w-96 p-0", children: [
@@ -554,7 +554,7 @@ const et = ({
554
554
  )) }, s)) })
555
555
  ] })
556
556
  ] });
557
- }, X = "chai-ai-selected-model", Ct = ({
557
+ }, X = "chai-ai-selected-model", Lt = ({
558
558
  input: t,
559
559
  setInput: n,
560
560
  onSend: o,
@@ -648,5 +648,5 @@ const et = ({
648
648
  ] }) }) });
649
649
  };
650
650
  export {
651
- Ct as default
651
+ Lt as default
652
652
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),g=require("./register-chai-top-bar-DyW9GPzV.cjs"),N=require("./index-D30xvFa5.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-DyW9GPzV.cjs"),N=require("./index-mPCp0j2h.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-D6GjnauV.js";
3
- import { L as i } from "./index-CA1OwKJX.js";
3
+ import { L as i } from "./index-DtMksfXx.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-DyW9GPzV.cjs"),i=require("./index-Bzn_gpaK.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-DyW9GPzV.cjs"),i=require("./index-CAhDwfHE.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,7 +1,7 @@
1
1
  import { jsx as s, jsxs as t, Fragment as L } from "react/jsx-runtime";
2
2
  import { z as h, B as F } from "./register-chai-top-bar-D6GjnauV.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-BFnMzGe6.js";
4
- import { ar as I, as as M, A as E, az as R } from "./index-CA1OwKJX.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-DsQXiNA_.js";
4
+ import { ar as I, as as M, A as E, az as R } from "./index-DtMksfXx.js";
5
5
  import { useMutation as U } from "@tanstack/react-query";
6
6
  import { Loader2 as W } from "lucide-react";
7
7
  import { useState as c, useCallback as S, useEffect as G } from "react";