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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/README.md +27 -20
  2. package/dist/2SSKDMRQ-BnsZi3K3.cjs +1 -0
  3. package/dist/2SSKDMRQ-CnSDkQcy.js +42 -0
  4. package/dist/AP7HFJJL-B31839PG.cjs +1228 -0
  5. package/dist/AP7HFJJL-CymCmW14.js +9214 -0
  6. package/dist/IconPicker-B1rWC-Ex.js +59 -0
  7. package/dist/IconPicker-DREyo007.cjs +1 -0
  8. package/dist/WDYDFRGG-BUVnbAci.js +33 -0
  9. package/dist/WDYDFRGG-BxhOCHc3.cjs +1 -0
  10. package/dist/_commonjsHelpers-C6fGbg64.js +6 -0
  11. package/dist/_commonjsHelpers-DwGv2jUC.cjs +1 -0
  12. package/dist/actions-registery-CZ1w0NKa.js +15545 -0
  13. package/dist/actions-registery-YnFmU21O.cjs +418 -0
  14. package/dist/actions.cjs +1 -0
  15. package/dist/actions.d.ts +3202 -0
  16. package/dist/actions.js +216 -0
  17. package/dist/active-in-another-tab-B47YjQGN.cjs +1 -0
  18. package/dist/active-in-another-tab-CyjngVA6.js +34 -0
  19. package/dist/add-new-language-page-88xzrUy8.cjs +1 -0
  20. package/dist/add-new-language-page-WmlCnytQ.js +401 -0
  21. package/dist/add-new-page-VW2wAYZp.js +31 -0
  22. package/dist/add-new-page-soZ8GAkN.cjs +1 -0
  23. package/dist/ai-panel-content-7zCil042.cjs +1 -0
  24. package/dist/ai-panel-content-D_o7Q_A-.js +61 -0
  25. package/dist/ai-panel-default-lang-COYaxNwn.cjs +3 -0
  26. package/dist/ai-panel-default-lang-DnElspF0.js +341 -0
  27. package/dist/ai-panel-other-lang-CkynNlAU.cjs +1 -0
  28. package/dist/ai-panel-other-lang-Dp0E9_Hx.js +162 -0
  29. package/dist/ai-prompt-input-Bhc0ds7X.js +655 -0
  30. package/dist/ai-prompt-input-CThbVp0_.cjs +1 -0
  31. package/dist/ai-translation-prompt-C2kJQFDX.cjs +1 -0
  32. package/dist/ai-translation-prompt-CZ55HQmo.js +28 -0
  33. package/dist/apply-binding-6iwlED02.js +833 -0
  34. package/dist/apply-binding-KKp5PnpZ.cjs +1 -0
  35. package/dist/code-display-BnqzqzoP.cjs +1 -0
  36. package/dist/{code-display-337R7Dev.js → code-display-DhD_RBcg.js} +1 -1
  37. package/dist/code-editor-DRIAnNbb.js +50 -0
  38. package/dist/code-editor-o3___nu2.cjs +1 -0
  39. package/dist/common-functions-B3a4xKt_.cjs +1 -0
  40. package/dist/common-functions-D2lMFR6K.js +13 -0
  41. package/dist/continue-editing-in-this-client-CS2aQ7yY.js +24 -0
  42. package/dist/continue-editing-in-this-client-CtMYsk-A.cjs +1 -0
  43. package/dist/core-BoRDjj4h.cjs +1 -0
  44. package/dist/core-yvI6kCyw.js +56 -0
  45. package/dist/core.cjs +1 -1
  46. package/dist/core.d.ts +51 -383
  47. package/dist/core.js +39 -106
  48. package/dist/{css-import-modal-DA2L6kwP.js → css-import-modal-Byg6wV0O.js} +36 -36
  49. package/dist/css-import-modal-CyqkXWCO.cjs +13 -0
  50. package/dist/delete-design-token-BRZZiWtQ.js +40 -0
  51. package/dist/delete-design-token-DkVs1oBf.cjs +1 -0
  52. package/dist/delete-page-BzyX9TN-.js +70 -0
  53. package/dist/delete-page-DxX7PFIE.cjs +1 -0
  54. package/dist/design-token-usage-CAHzEGgJ.cjs +1 -0
  55. package/dist/design-token-usage-xQs6SlaJ.js +113 -0
  56. package/dist/digital-asset-manager--uO8Agia.cjs +1 -0
  57. package/dist/digital-asset-manager-DbtwzxRz.js +876 -0
  58. package/dist/duplicate-page-BR7Dlo9d.js +133 -0
  59. package/dist/duplicate-page-CaNAbXwV.cjs +1 -0
  60. package/dist/dynamic-page-selector-Cb5r_W8s.js +85 -0
  61. package/dist/dynamic-page-selector-Cxk_gjni.cjs +1 -0
  62. package/dist/fonts-B-Xt29pe.cjs +1 -0
  63. package/dist/fonts-DRly3Wzd.js +78 -0
  64. package/dist/{get-chai-builder-tailwind-config-C6MHaUM0.cjs → get-chai-builder-tailwind-config-B9rCyiQo.cjs} +1 -1
  65. package/dist/{get-chai-builder-tailwind-config-BqaIvg8p.js → get-chai-builder-tailwind-config-DjoVOuAf.js} +13 -10
  66. package/dist/{get-chai-builder-theme-D0IsUvK4.js → get-chai-builder-theme-BYtp20KD.js} +4 -4
  67. package/dist/get-chai-builder-theme-Dl72X7cz.cjs +1 -0
  68. package/dist/get-seo-defaults-9zHebckY.js +65 -0
  69. package/dist/get-seo-defaults-Cw7vFt-B.cjs +1 -0
  70. package/dist/image-compression-DZ9WMmyn.cjs +1 -0
  71. package/dist/image-compression-DsZ1oqpb.js +37 -0
  72. package/dist/image-editor-DV8kUKhl.js +108 -0
  73. package/dist/image-editor-G-K28aTS.cjs +1 -0
  74. package/dist/index-B-rSiAp_.cjs +1 -0
  75. package/dist/index-Ct7ElCGK.js +19069 -0
  76. package/dist/index-DF5DEvqb.cjs +160 -0
  77. package/dist/index-Dxfyt4d4.js +39 -0
  78. package/dist/index-WQwzsC7A.cjs +5 -0
  79. package/dist/index-ZuacEL1j.js +4732 -0
  80. package/dist/json-diff-viewer-D7z4zNvv.cjs +8 -0
  81. package/dist/json-diff-viewer-krslPepD.js +258 -0
  82. package/dist/lang-panel-BwIewMyw.js +215 -0
  83. package/dist/lang-panel-DT96k1xg.cjs +1 -0
  84. package/dist/manage-design-tokens-Caz_20VK.js +240 -0
  85. package/dist/manage-design-tokens-CrmLe7UT.cjs +1 -0
  86. package/dist/mark-as-template-D295ZQtU.js +156 -0
  87. package/dist/mark-as-template-W3LmpiqN.cjs +1 -0
  88. package/dist/models-5gOsRC56.cjs +1 -0
  89. package/dist/models-D95ZYr_x.js +70 -0
  90. package/dist/nested-path-selector-content-CKYYK-C5.js +87 -0
  91. package/dist/nested-path-selector-content-CoS_d3dc.cjs +1 -0
  92. package/dist/no-language-page-content-BvqRBP6y.js +42 -0
  93. package/dist/no-language-page-content-DkfeMl90.cjs +1 -0
  94. package/dist/no-language-page-dialog-BcEoqyQB.cjs +1 -0
  95. package/dist/no-language-page-dialog-PjNqTUpl.js +10 -0
  96. package/dist/page-creator-C4gc5NSC.cjs +1 -0
  97. package/dist/page-creator-DiOITEMw.js +795 -0
  98. package/dist/page-lock-BdYmCks0.cjs +1 -0
  99. package/dist/page-lock-Bfbs6RgL.js +30 -0
  100. package/dist/page-locked-dialog-B1FAtK92.cjs +1 -0
  101. package/dist/page-locked-dialog-B6MKTRfY.js +133 -0
  102. package/dist/page-manager-new-CHDueBDk.cjs +1 -0
  103. package/dist/page-manager-new-CzX22g2n.js +394 -0
  104. package/dist/page-manager-search-and-filter-CM0UMb6U.js +201 -0
  105. package/dist/page-manager-search-and-filter-DkkRIH86.cjs +1 -0
  106. package/dist/page-revisions-content-ChY-4f2V.cjs +1 -0
  107. package/dist/page-revisions-content-NH9JK4Ey.js +445 -0
  108. package/dist/pages.cjs +1 -0
  109. package/dist/pages.d.ts +491 -0
  110. package/dist/pages.js +27 -0
  111. package/dist/plugin-3ZKK6RXm.js +245 -0
  112. package/dist/plugin-C6rgJDNQ.cjs +22 -0
  113. package/dist/publish-pages-content-D9aixMN5.js +178 -0
  114. package/dist/publish-pages-content-x-JuSFJ9.cjs +1 -0
  115. package/dist/register-partial-type-BjtdfKHE.js +36 -0
  116. package/dist/register-partial-type-ig9fUWIJ.cjs +1 -0
  117. package/dist/render.cjs +2 -2
  118. package/dist/render.d.ts +26 -13
  119. package/dist/render.js +130 -124
  120. package/dist/rte-widget-modal-BaHIuEjF.cjs +1 -0
  121. package/dist/rte-widget-modal-DOJEXLIf.js +38 -0
  122. package/dist/runtime.cjs +1 -1
  123. package/dist/runtime.d.ts +306 -7
  124. package/dist/runtime.js +44 -1
  125. package/dist/save-to-lib-Cgpxw8-g.cjs +1 -0
  126. package/dist/save-to-lib-eiOc_SSN.js +422 -0
  127. package/dist/sdk.css +1 -1
  128. package/dist/selected-block-display-BgRY82CT.cjs +16 -0
  129. package/dist/selected-block-display-CBFePS19.js +319 -0
  130. package/dist/seo-panel-C1-iMOR1.js +798 -0
  131. package/dist/seo-panel-DfAb8U7W.cjs +2 -0
  132. package/dist/shared-json-ld-B4PxAM_0.js +565 -0
  133. package/dist/shared-json-ld-DzG398hr.cjs +1 -0
  134. package/dist/slug-input-AwNJs9im.js +86 -0
  135. package/dist/slug-input-C_ijLQ_X.cjs +1 -0
  136. package/dist/supabase-actions.cjs +1 -0
  137. package/dist/supabase-actions.d.ts +284 -0
  138. package/dist/supabase-actions.js +524 -0
  139. package/dist/take-over-request-BNxcjY2j.cjs +1 -0
  140. package/dist/take-over-request-C4FeDtN_.js +63 -0
  141. package/dist/theme-panel-footer-Cq9pljro.cjs +1 -0
  142. package/dist/theme-panel-footer-uBQqSJXm.js +25 -0
  143. package/dist/translation-warning-modal-B64YqlbI.js +26 -0
  144. package/dist/translation-warning-modal-BZAcwM2_.cjs +1 -0
  145. package/dist/unmark-as-template-CZ9sQp_P.js +39 -0
  146. package/dist/unmark-as-template-EVvk0vmp.cjs +1 -0
  147. package/dist/unpublish-page-D4VwOlxc.js +27 -0
  148. package/dist/unpublish-page-bdSmwAVQ.cjs +1 -0
  149. package/dist/use-page-expand-manager-B6XTvk0E.cjs +1 -0
  150. package/dist/use-page-expand-manager-Cf4MUEJw.js +85 -0
  151. package/dist/{tailwind.cjs → utils.cjs} +1 -1
  152. package/dist/{tailwind.d.ts → utils.d.ts} +12 -11
  153. package/dist/utils.js +7 -0
  154. package/dist/web-blocks.cjs +1 -1
  155. package/dist/web-blocks.d.ts +0 -6
  156. package/dist/web-blocks.js +248 -241
  157. package/dist/web-preview-Cio70gk5.cjs +1 -0
  158. package/dist/web-preview-Djy6WIyj.js +73 -0
  159. package/package.json +175 -105
  160. package/dist/IconPicker-CGWn9C4u.cjs +0 -1
  161. package/dist/IconPicker-QvxJ-4Ez.js +0 -64
  162. package/dist/apply-binding-DCno1xQL.js +0 -711
  163. package/dist/apply-binding-DvHNFLQD.cjs +0 -1
  164. package/dist/code-display-BZ1x7SqI.cjs +0 -1
  165. package/dist/code-editor-B28LoECM.cjs +0 -1
  166. package/dist/code-editor-CfG2FhJ-.js +0 -58
  167. package/dist/common-functions-BGzDsf1z.js +0 -14
  168. package/dist/common-functions-BZmyleS1.cjs +0 -1
  169. package/dist/css-import-modal-CENUYvcl.cjs +0 -13
  170. package/dist/get-chai-builder-theme-Ck_Z4Q-M.cjs +0 -1
  171. package/dist/index-CaGNHF7f.js +0 -12209
  172. package/dist/index-Gn6pJt2v.cjs +0 -166
  173. package/dist/mockServiceWorker.js +0 -307
  174. package/dist/plugin-B5627hMN.js +0 -195
  175. package/dist/plugin-UxTRfDum.cjs +0 -22
  176. package/dist/rte-widget-modal-DL739qeQ.cjs +0 -1
  177. package/dist/rte-widget-modal-Dte0od04.js +0 -41
  178. package/dist/tailwind.js +0 -7
  179. package/dist/tooltip-A4qGk781.cjs +0 -1
  180. package/dist/tooltip-tLiIOgjq.js +0 -1067
  181. package/dist/ui.cjs +0 -1
  182. package/dist/ui.d.ts +0 -415
  183. package/dist/ui.js +0 -129
  184. package/dist/vite.svg +0 -1
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("./index-DF5DEvqb.cjs"),y=require("lucide-react"),ee=require("nanoid"),l=require("react"),_=require("class-variance-authority"),te=require("react-i18next"),L=require("./models-5gOsRC56.cjs");function se({className:t,...s}){return e.jsx("div",{"data-slot":"input-group",role:"group",className:o.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 ne=_.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 W({className:t,align:s="inline-start",...i}){return e.jsx("div",{role:"group","data-slot":"input-group-addon","data-align":s,className:o.cn(ne({align:s}),t),onClick:u=>{var c,f;u.target.closest("button")||(f=(c=u.currentTarget.parentElement)==null?void 0:c.querySelector("input"))==null||f.focus()},...i})}const re=_.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 H({className:t,type:s="button",variant:i="ghost",size:u="xs",...c}){return e.jsx(o.Button,{type:s,"data-size":u,variant:i,className:o.cn(re({size:u}),t),...c})}function ae({className:t,...s}){return e.jsx(o.Textarea,{"data-slot":"input-group-control",className:o.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 oe=l.createContext(null),ie=l.createContext(null),K=()=>l.useContext(oe),ce=()=>l.useContext(ie),X=l.createContext(null),O=()=>{const t=ce(),s=l.useContext(X),i=t??s;if(!i)throw new Error("usePromptInputAttachments must be used within a PromptInput or PromptInputProvider");return i};function le({data:t,className:s,...i}){var x;const u=O(),c=t.filename||"",p=((x=t.mediaType)!=null&&x.startsWith("image/")&&t.url?"image":"file")==="image",v=c||(p?"Image":"Attachment");return e.jsxs(Ne,{children:[e.jsx(o.HoverCardTrigger,{asChild:!0,children:e.jsxs("div",{className:o.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),...i,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:p?e.jsx("img",{alt:c||"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(o.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:I=>{I.stopPropagation(),u.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(Ie,{className:"w-auto p-2",children:e.jsxs("div",{className:"w-auto space-y-3",children:[p&&e.jsx("div",{className:"flex max-h-96 w-96 items-center justify-center overflow-hidden rounded-md border",children:e.jsx("img",{alt:c||"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:c||(p?"Image":"Attachment")}),t.mediaType&&e.jsx("p",{className:"truncate font-mono text-xs text-muted-foreground",children:t.mediaType})]})})]})})]})}function ue({children:t,className:s,...i}){const u=O();return u.files.length?e.jsx("div",{className:o.cn("flex flex-wrap items-center gap-2 p-3",s),...i,children:u.files.map(c=>e.jsx(l.Fragment,{children:t(c)},c.id))}):null}const de=({label:t="Add photos or files",...s})=>{const i=O();return e.jsxs(o.DropdownMenuItem,{...s,onSelect:u=>{u.preventDefault(),i.openFileDialog()},children:[e.jsx(y.ImageIcon,{className:"mr-2 size-4"})," ",t]})},pe=({className:t,accept:s,multiple:i,globalDrop:u,syncHiddenInput:c,maxFiles:f,maxFileSize:p,onError:v,onSubmit:x,children:I,...D})=>{const n=K(),a=!!n,m=l.useRef(null),k=l.useRef(null),N=l.useRef(null);l.useEffect(()=>{var j;const r=(j=k.current)==null?void 0:j.closest("form");r instanceof HTMLFormElement&&(N.current=r)},[]);const[S,z]=l.useState([]),g=a?n.attachments.files:S,T=l.useCallback(()=>{var r;(r=m.current)==null||r.click()},[]),R=l.useCallback(r=>!s||s.trim()===""?!0:s.includes("image/*")?r.type.startsWith("image/"):!0,[s]),M=l.useCallback(r=>{const j=Array.from(r),h=j.filter(w=>R(w));if(j.length&&h.length===0){v==null||v({code:"accept",message:"No files match the accepted types."});return}const d=w=>p?w.size<=p:!0,b=h.filter(d);if(h.length>0&&b.length===0){v==null||v({code:"max_file_size",message:"All files exceed the maximum size."});return}z(w=>{const C=typeof f=="number"?Math.max(0,f-w.length):void 0,Z=typeof C=="number"?b.slice(0,C):b;typeof C=="number"&&b.length>C&&(v==null||v({code:"max_files",message:"Too many files. Some were not added."}));const B=[];for(const q of Z)B.push({id:ee.nanoid(),type:"file",url:URL.createObjectURL(q),mediaType:q.type,filename:q.name});return w.concat(B)})},[R,f,p,v]),P=a?r=>n.attachments.add(r):M,A=a?r=>n.attachments.remove(r):r=>z(j=>{const h=j.find(d=>d.id===r);return h!=null&&h.url&&URL.revokeObjectURL(h.url),j.filter(d=>d.id!==r)}),U=a?()=>n.attachments.clear():()=>z(r=>{for(const j of r)j.url&&URL.revokeObjectURL(j.url);return[]}),F=a?()=>n.attachments.openFileDialog():T;l.useEffect(()=>{a&&n.__registerFileInput(m,()=>{var r;return(r=m.current)==null?void 0:r.click()})},[a,n]),l.useEffect(()=>{c&&m.current&&g.length===0&&(m.current.value="")},[g,c]),l.useEffect(()=>{const r=N.current;if(!r)return;const j=d=>{var b,w;(w=(b=d.dataTransfer)==null?void 0:b.types)!=null&&w.includes("Files")&&d.preventDefault()},h=d=>{var b,w,C;(w=(b=d.dataTransfer)==null?void 0:b.types)!=null&&w.includes("Files")&&d.preventDefault(),(C=d.dataTransfer)!=null&&C.files&&d.dataTransfer.files.length>0&&P(d.dataTransfer.files)};return r.addEventListener("dragover",j),r.addEventListener("drop",h),()=>{r.removeEventListener("dragover",j),r.removeEventListener("drop",h)}},[P]),l.useEffect(()=>{if(!u)return;const r=h=>{var d,b;(b=(d=h.dataTransfer)==null?void 0:d.types)!=null&&b.includes("Files")&&h.preventDefault()},j=h=>{var d,b,w;(b=(d=h.dataTransfer)==null?void 0:d.types)!=null&&b.includes("Files")&&h.preventDefault(),(w=h.dataTransfer)!=null&&w.files&&h.dataTransfer.files.length>0&&P(h.dataTransfer.files)};return document.addEventListener("dragover",r),document.addEventListener("drop",j),()=>{document.removeEventListener("dragover",r),document.removeEventListener("drop",j)}},[P,u]),l.useEffect(()=>()=>{if(!a)for(const r of g)r.url&&URL.revokeObjectURL(r.url)},[a,g]);const $=r=>{r.currentTarget.files&&P(r.currentTarget.files)},Y=async r=>{const h=await(await fetch(r)).blob();return new Promise((d,b)=>{const w=new FileReader;w.onloadend=()=>d(w.result),w.onerror=b,w.readAsDataURL(h)})},J=l.useMemo(()=>({files:g.map(r=>({...r,id:r.id})),add:P,remove:A,clear:U,openFileDialog:F,fileInputRef:m}),[g,P,A,U,F]),Q=r=>{r.preventDefault();const j=r.currentTarget,h=a?n.textInput.value:new FormData(j).get("message")||"";a||j.reset(),Promise.all(g.map(async({...d})=>d.url&&d.url.startsWith("blob:")?{...d,url:await Y(d.url)}:d)).then(d=>{try{const b=x({text:h,files:d},r);b instanceof Promise?b.then(()=>{U(),a&&n.textInput.clear()}).catch(()=>{}):(U(),a&&n.textInput.clear())}catch{}})},G=e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",className:"hidden",ref:k}),e.jsx("input",{accept:s,"aria-label":"Upload files",className:"hidden",multiple:i,onChange:$,ref:m,title:"Upload files",type:"file"}),e.jsx("form",{className:o.cn("w-full",t),onSubmit:Q,...D,children:e.jsx(se,{className:"overflow-hidden",children:I})})]});return a?G:e.jsx(X.Provider,{value:J,children:G})},me=({onChange:t,className:s,placeholder:i="What would you like to know?",...u})=>{const c=K(),f=O(),[p,v]=l.useState(!1),x=n=>{if(n.key==="Enter"){if(p||n.nativeEvent.isComposing||n.shiftKey)return;n.preventDefault();const a=n.currentTarget.form,m=a==null?void 0:a.querySelector('button[type="submit"]');if(m!=null&&m.disabled)return;a==null||a.requestSubmit()}if(n.key==="Backspace"&&n.currentTarget.value===""&&f.files.length>0){n.preventDefault();const a=f.files.at(-1);a&&f.remove(a.id)}},I=n=>{var k;const a=(k=n.clipboardData)==null?void 0:k.items;if(!a)return;const m=[];for(const N of a)if(N.kind==="file"){const S=N.getAsFile();S&&m.push(S)}m.length>0&&(n.preventDefault(),f.add(m))},D=c?{value:c.textInput.value,onChange:n=>{c.textInput.setInput(n.currentTarget.value),t==null||t(n)}}:{onChange:t};return e.jsx(ae,{className:o.cn("field-sizing-content max-h-48 min-h-16",s),name:"message",onCompositionEnd:()=>v(!1),onCompositionStart:()=>v(!0),onKeyDown:x,onPaste:I,placeholder:i,...u,...D})},fe=({className:t,...s})=>e.jsx(W,{align:"block-end",className:o.cn("order-first flex-wrap gap-1",t),...s}),he=({className:t,...s})=>e.jsx(W,{align:"block-end",className:o.cn("justify-between gap-1",t),...s}),xe=({className:t,...s})=>e.jsx("div",{className:o.cn("flex items-center gap-1",t),...s}),E=({variant:t="ghost",className:s,size:i,...u})=>{const c=i??(l.Children.count(u.children)>1?"sm":"icon-sm");return e.jsx(H,{className:o.cn(s),size:c,type:"button",variant:t,...u})},ge=t=>e.jsx(o.DropdownMenu,{...t}),ve=({className:t,children:s,...i})=>e.jsx(o.DropdownMenuTrigger,{asChild:!0,children:e.jsx(E,{className:t,...i,children:s??e.jsx(y.PlusIcon,{className:"size-4"})})}),je=({className:t,...s})=>e.jsx(o.DropdownMenuContent,{align:"start",className:o.cn(t),...s}),be=({className:t,variant:s="default",size:i="icon-sm",status:u,children:c,...f})=>{let p=e.jsx(y.CornerDownLeftIcon,{className:"size-4"});return u==="submitted"?p=e.jsx(y.Loader2Icon,{className:"size-4 animate-spin"}):u==="streaming"?p=e.jsx(y.SquareIcon,{className:"size-4"}):u==="error"&&(p=e.jsx(y.XIcon,{className:"size-4"})),e.jsx(H,{"aria-label":"Submit",className:o.cn(t),size:i,type:"submit",variant:s,...f,children:c??p})},we=({className:t,textareaRef:s,onTranscriptionChange:i,...u})=>{const[c,f]=l.useState(!1),[p,v]=l.useState(null),x=l.useRef(null);l.useEffect(()=>{if(typeof window<"u"&&("SpeechRecognition"in window||"webkitSpeechRecognition"in window)){const D=window.SpeechRecognition||window.webkitSpeechRecognition,n=new D;n.continuous=!0,n.interimResults=!0,n.lang="en-US",n.onstart=()=>{f(!0)},n.onend=()=>{f(!1)},n.onresult=a=>{var k;let m="";for(let N=a.resultIndex;N<a.results.length;N++){const S=a.results[N];S.isFinal&&(m+=((k=S[0])==null?void 0:k.transcript)??"")}if(m&&(s!=null&&s.current)){const N=s.current,S=N.value,z=S+(S?" ":"")+m;N.value=z,N.dispatchEvent(new Event("input",{bubbles:!0})),i==null||i(z)}},n.onerror=a=>{console.error("Speech recognition error:",a.error),f(!1)},x.current=n,v(n)}return()=>{x.current&&x.current.stop()}},[s,i]);const I=l.useCallback(()=>{p&&(c?p.stop():p.start())},[p,c]);return e.jsx(E,{className:o.cn("relative transition-all duration-200",c&&"animate-pulse bg-accent text-accent-foreground",t),disabled:!p,onClick:I,...u,children:e.jsx(y.MicIcon,{className:"size-4"})})},Ne=({openDelay:t=0,closeDelay:s=0,...i})=>e.jsx(o.HoverCard,{closeDelay:s,openDelay:t,...i}),Ie=({align:t="start",...s})=>e.jsx(o.HoverCardContent,{align:t,...s}),ye=t=>e.jsx(o.Dialog,{...t}),Se=t=>e.jsx(o.DialogTrigger,{...t}),ke=({className:t,children:s,title:i="Model Selector",...u})=>e.jsxs(o.DialogContent,{className:o.cn("p-0",t),...u,children:[e.jsx(o.DialogTitle,{className:"sr-only",children:i}),e.jsx(o.Command,{className:"**:data-[slot=command-input-wrapper]:h-auto",children:s})]}),De=({className:t,...s})=>e.jsx(o.CommandInput,{className:o.cn("h-auto py-3.5",t),...s}),Pe=t=>e.jsx(o.CommandList,{...t}),ze=t=>e.jsx(o.CommandGroup,{...t}),Te=t=>e.jsx(o.CommandItem,{...t}),Ce=({provider:t,className:s,...i})=>e.jsx("img",{...i,alt:`${t} logo`,className:o.cn("size-3 dark:invert",s),height:12,src:`https://models.dev/logos/${t}.svg`,width:12}),Ae=({className:t,...s})=>e.jsx("span",{className:o.cn("flex-1 truncate text-left",t),...s}),Le=({selectedModel:t,onModelChange:s,disabled:i=!1})=>{const[u,c]=l.useState(!1),[f,p]=l.useState(""),v=L.getModelById(t)||L.getDefaultModel(),I=L.AI_MODELS.filter(n=>n.name.toLowerCase().includes(f.toLowerCase())||n.provider.toLowerCase().includes(f.toLowerCase())).reduce((n,a)=>(n[a.provider]||(n[a.provider]=[]),n[a.provider].push(a),n),{}),D=n=>{s(n),c(!1),p("")};return e.jsxs(ye,{open:u,onOpenChange:c,children:[e.jsx(Se,{asChild:!0,children:e.jsxs(o.Button,{variant:"outline",size:"sm",disabled:i,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(ke,{className:"w-96 p-0",children:[e.jsx(De,{placeholder:"Search models...",value:f,onValueChange:p}),e.jsx(Pe,{children:Object.entries(I).map(([n,a])=>e.jsx(ze,{heading:n.charAt(0).toUpperCase()+n.slice(1),children:a.map(m=>e.jsxs(Te,{value:m.id,onSelect:()=>D(m.id),className:"flex cursor-pointer items-center gap-2 p-2",children:[e.jsx(Ce,{provider:m.provider}),e.jsxs("div",{className:"flex flex-1 flex-col",children:[e.jsx(Ae,{children:m.name}),e.jsx("span",{className:"text-xs text-muted-foreground",children:m.description})]}),t===m.id&&e.jsx("div",{className:"h-2 w-2 rounded-full bg-blue-500"})]},m.id))},n))})]})]})},V="chai-ai-selected-model",Re=({input:t,setInput:s,onSend:i,onStop:u,isLoading:c,disabled:f,selectedLang:p,selectedModel:v=L.getDefaultModel().id,onModelChange:x})=>{const{t:I}=te.useTranslation(),[D,n]=l.useState(v),[a,m]=l.useState(null),k=l.useRef(null),[N,S]=l.useState(!1);l.useEffect(()=>{if(!p){const g=localStorage.getItem(V);if(g)n(g),x==null||x(g);else{const T=L.getDefaultModel().id;n(T),x==null||x(T)}}},[p,x]);const z=g=>{var M;const T=g.files.find(P=>{var A;return(A=P.mediaType)==null?void 0:A.startsWith("image/")}),R=(T==null?void 0:T.url)||a;i((M=g.text)==null?void 0:M.trim(),void 0,R,D),m(null)};return e.jsx("div",{className:"relative",children:e.jsx("div",{className:"border-gray-20 rounded-lg border",children:e.jsxs(pe,{onSubmit:z,accept:"image/*",className:"flex h-auto w-full flex-col",children:[e.jsx(fe,{className:"p-0",children:e.jsx(ue,{className:"pb-0",children:g=>e.jsx(le,{className:"text-xs",data:g})})}),e.jsx(me,{ref:k,value:t,onChange:g=>s(g.target.value),placeholder:I(p?"Ask to update content":"Ask me anything..."),disabled:c,className:"max-h-[200px] min-h-[60px] w-full",rows:3}),e.jsxs(he,{children:[p?e.jsx("div",{}):e.jsxs(xe,{children:[e.jsxs(ge,{children:[e.jsx(ve,{disabled:c,children:e.jsx(y.Paperclip,{size:16})}),e.jsx(je,{children:e.jsx(de,{})})]}),e.jsx(we,{textareaRef:k,onTranscriptionChange:s,disabled:c}),e.jsx(Le,{selectedModel:D,onModelChange:g=>{n(g),x==null||x(g),localStorage.setItem(V,g)},disabled:c}),e.jsxs(E,{className:"hidden",size:"sm",onClick:()=>S(!N),variant:N?"default":"ghost",children:[e.jsx(y.GlobeIcon,{size:16}),e.jsx("span",{children:"Search"})]})]}),c?e.jsxs("button",{onClick:u,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:I("Stop generation"),children:[e.jsx(y.Square,{size:16})," ",e.jsx("span",{className:"text-xs",children:I("Stop")})]}):e.jsx(be,{disabled:!t.trim()||f,children:e.jsx(y.Send,{size:16})})]})]})})})};exports.default=Re;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("./index-DF5DEvqb.cjs"),r=require("./index-WQwzsC7A.cjs"),i=require("lucide-react"),o=require("react-i18next"),x=({selectedLang:s,isLoading:n,selectedBlock:l,onClick:a})=>{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:l?e.jsx(c.Button,{variant:"outline",className:"h-auto",onClick:()=>a("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")," ",r.LANGUAGES[s]," ",e.jsx(i.ArrowRight,{className:"h-4 w-4"})]})]})}):null})})};exports.default=x;
@@ -0,0 +1,28 @@
1
+ import { jsx as t, jsxs as a } from "react/jsx-runtime";
2
+ import { B as r } from "./index-Ct7ElCGK.js";
3
+ import { L as i } from "./index-ZuacEL1j.js";
4
+ import { ArrowRight as c } from "lucide-react";
5
+ import { useTranslation as m } from "react-i18next";
6
+ const u = ({
7
+ selectedLang: l,
8
+ isLoading: o,
9
+ selectedBlock: s,
10
+ onClick: n
11
+ }) => {
12
+ const { t: e } = m();
13
+ return /* @__PURE__ */ t("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ t("div", { className: `flex flex-col gap-2 ${o ? "pointer-events-none opacity-50" : ""}`, children: s ? /* @__PURE__ */ t(r, { variant: "outline", className: "h-auto", onClick: () => n("TRANSLATE"), children: /* @__PURE__ */ a("div", { className: "flex flex-col", children: [
14
+ /* @__PURE__ */ t("p", { className: "text-left text-xs font-thin", children: e("Quick Action:") }),
15
+ /* @__PURE__ */ a("span", { className: "flex items-center gap-x-2 text-sm font-medium", children: [
16
+ e("Translate Content"),
17
+ " ",
18
+ e("to"),
19
+ " ",
20
+ i[l],
21
+ " ",
22
+ /* @__PURE__ */ t(c, { className: "h-4 w-4" })
23
+ ] })
24
+ ] }) }) : null }) });
25
+ };
26
+ export {
27
+ u as default
28
+ };