prompt-area 0.3.1 → 0.4.0

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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,48 @@
3
3
  All notable changes to the `prompt-area` package are documented here. This
4
4
  project adheres to [Semantic Versioning](https://semver.org/).
5
5
 
6
+ ## 0.4.0
7
+
8
+ ### Changed
9
+
10
+ - **`commandTrigger()` now fires anywhere in the input by default, and exposes a
11
+ `position` option.** Previously the preset hardcoded `position: 'start'` and
12
+ did not let you override it, so `/commands` only worked at the very start of a
13
+ line — an artificial limitation. The default is now `position: 'any'` (a `/`
14
+ after any whitespace opens the menu), and you can opt back into the classic
15
+ line-start behavior with `commandTrigger({ position: 'start' })`. Consumers
16
+ using the raw `TriggerConfig` are unaffected — they already set `position`
17
+ explicitly.
18
+ - **BREAKING: `clsx` and `tailwind-merge` are now peer dependencies** instead of
19
+ bundled runtime dependencies. The package no longer ships its own copies of
20
+ the two `cn` helpers; they dedupe with the copies any shadcn/Tailwind project
21
+ already has, so prompt-area now declares **zero bundled runtime dependencies**
22
+ (`tailwind-merge` alone was ~17 KB gzipped — larger than the rest of the
23
+ package combined). Both are tiny and present in essentially every shadcn
24
+ project, but if your project doesn't already depend on them, install them
25
+ explicitly: `pnpm add clsx tailwind-merge`.
26
+
27
+ ### Fixed
28
+
29
+ - **`autoGrow` now respects the `maxHeight` prop.** Previously, enabling
30
+ `autoGrow` ignored `maxHeight` and always capped the editor at `70dvh`, so a
31
+ composer seeded with lots of content could grow to fill most of the screen.
32
+ The explicit `maxHeight` is now honored (falling back to `70dvh` only when no
33
+ cap is provided).
34
+
35
+ ## 0.3.2
36
+
37
+ ### Fixed
38
+
39
+ - **Installs cleanly alongside Tailwind v3 (or no Tailwind).** `tailwindcss` and
40
+ `tw-animate-css` are no longer declared as (optional) peer dependencies — they
41
+ are build-time tools, and an optional peer still triggers an npm `ERESOLVE`
42
+ conflict when the consumer has a non-matching version (e.g. Tailwind v3)
43
+ installed. The prebuilt `prompt-area/styles.css` is self-contained and works
44
+ with any stack; the optional `prompt-area/tailwind.css` preset still requires
45
+ Tailwind v4 in your own project (documented, not version-gated). No API or
46
+ runtime changes.
47
+
6
48
  ## 0.3.1
7
49
 
8
50
  ### Changed
package/README.md CHANGED
@@ -11,6 +11,8 @@ Ships **two ways** from the same source:
11
11
  - **npm package** (this package) — `npm install prompt-area`, import the component and a stylesheet. Versioned, opinionated, batteries-included.
12
12
  - **[shadcn registry](https://prompt-area.com)** — `npx shadcn@latest add https://prompt-area.com/r/prompt-area.json` to copy the source into your project and own it.
13
13
 
14
+ **Try it live:** [run the example in your browser](https://prompt-area.com/docs/try-it-live) — a full Vite + React app, no setup. ([source](https://github.com/just-marketing/prompt-area/tree/main/examples/basic))
15
+
14
16
  ## Install
15
17
 
16
18
  ```bash
@@ -18,7 +20,13 @@ pnpm add prompt-area
18
20
  # or: npm install prompt-area · yarn add prompt-area
19
21
  ```
20
22
 
21
- `react` and `react-dom` are peer dependencies (most React apps already have them).
23
+ Peer dependencies: `react` and `react-dom` (most React apps already have them),
24
+ plus `clsx` and `tailwind-merge` — the two `cn` helpers, already present in any
25
+ shadcn/Tailwind project. If you don't have them yet:
26
+
27
+ ```bash
28
+ pnpm add clsx tailwind-merge
29
+ ```
22
30
 
23
31
  ## Quick start
24
32
 
@@ -110,12 +118,17 @@ The components are client components and carry a `'use client'` boundary, so you
110
118
 
111
119
  ## Dependencies
112
120
 
113
- - **Peer:** `react`, `react-dom` (>= 18)
114
- - **Optional peer:** `tailwindcss` (>= 4) and `tw-animate-css` only needed if
115
- you use the `prompt-area/tailwind.css` preset. The prebuilt
116
- `prompt-area/styles.css` needs neither.
117
- - **Runtime:** `clsx`, `tailwind-merge` the two `cn` helpers, both already
118
- present in any shadcn/Tailwind project.
121
+ - **Peer:** `react`, `react-dom` (>= 18), plus `clsx` and `tailwind-merge` —
122
+ the two `cn` helpers. These are peer (not bundled) dependencies so they
123
+ dedupe with the copies any shadcn/Tailwind project already ships, keeping
124
+ prompt-area's own footprint to **zero bundled runtime dependencies**. Both
125
+ are tiny and already present in shadcn projects; install them explicitly if
126
+ you don't have them (`pnpm add clsx tailwind-merge`).
127
+ - **Tailwind is not a peer dependency.** The prebuilt `prompt-area/styles.css`
128
+ is self-contained and works with **any** stack — Tailwind v4, v3, or no
129
+ Tailwind at all. The optional `prompt-area/tailwind.css` preset uses Tailwind
130
+ v4 syntax, so it requires Tailwind v4 in your own project; if you're on v3 or
131
+ not using Tailwind, use `styles.css` (and theme via the CSS variables above).
119
132
 
120
133
  No animation library and no icon library: animations use CSS (`tw-animate-css`
121
134
  utilities) and icons are inline SVGs. No editor framework (ProseMirror, Slate,
@@ -0,0 +1 @@
1
+ function n(e){return {type:"text",text:e}}function o(e){return {type:"chip",...e}}function g(e){return e.length===0?true:e.every(t=>t.type==="text"&&t.text.trim()==="")}function p(e){return e.some(t=>t.type==="chip")}function s(e){return e.filter(t=>t.type==="chip")}function a(e,t){return e.filter(r=>r.type==="chip"&&r.trigger===t)}function m(e={}){let{char:t="@",...r}=e;return {char:t,position:"any",mode:"dropdown",chipStyle:"pill",accessibilityLabel:"mention",...r}}function h(e={}){let{char:t="/",position:r="any",...i}=e;return {char:t,position:r,mode:"dropdown",chipStyle:"inline",accessibilityLabel:"command",...i}}function l(e={}){let{char:t="#",...r}=e;return {char:t,position:"any",mode:"dropdown",chipStyle:"pill",resolveOnSpace:true,accessibilityLabel:"tag",...r}}function T(e){let{char:t,...r}=e;return {char:t,position:"start",mode:"callback",...r}}export{n as a,o as b,g as c,p as d,s as e,a as f,m as g,h,l as i,T as j};
@@ -0,0 +1,3 @@
1
+ function b(t){return t.map(e=>e.type==="text"?e.text:`${e.trigger}${e.displayText}`).join("")}function M(t){return t?[{type:"text",text:t}]:[]}function x(t){return t===" "||t===`
2
+ `||t===" "}function S(t){let e=new Map;for(let r of t)e.has(r.char)||e.set(r.char,r);return e}function m(t,e,r){if(e===0)return true;let i=t[e-1];return r==="start"?i===`
3
+ `:x(i)}function w(t,e,r){if(!t||e===0||r.length===0)return null;let i=S(r);for(let n=e-1;n>=0;n--){let s=t[n];if(x(s)){if(n+1<e){let u=t[n+1],o=i.get(u);if(o&&m(t,n+1,o.position))return {config:o,startOffset:n+1,query:t.slice(n+2,e)}}return null}let l=i.get(s);if(l&&m(t,n,l.position))return {config:l,startOffset:n,query:t.slice(n+1,e)}}return null}function O(t,e,r){let i=e.startOffset,n=i+1+e.query.length,s=[],l=0;for(let g of t)if(g.type==="chip"){let f=`${g.trigger}${g.displayText}`,a=l,h=l+f.length;(h<=i||a>=n)&&s.push(g),l=h;}else {let f=l,a=l+g.text.length;if(a<=i)s.push(g);else if(f>=n)s.push(g);else {let h=g.text.slice(0,Math.max(0,i-f)),d=g.text.slice(Math.min(g.text.length,n-f));h&&s.push({type:"text",text:h});let v={type:"chip",trigger:e.config.char,value:r.value,displayText:r.displayText,...r.data!==void 0?{data:r.data}:{},...r.autoResolved?{autoResolved:true}:{}};s.push(v),d?s.push({type:"text",text:" "+d.replace(/^\s/,"")}):s.push({type:"text",text:" "});}l=a;}let u=y(s),o=-1,p=0;for(let g of u)g.type==="text"?p+=g.text.length:(p+=g.trigger.length+g.displayText.length,g.value===r.value&&g.displayText===r.displayText&&g.trigger===e.config.char&&(o=p));let c=o===-1?p:o+1;return {segments:u,cursorOffset:c}}function A(t,e){if(e<0||e>=t.length||t[e].type!=="chip")return t;let r=[...t.slice(0,e),...t.slice(e+1)];return y(r)}function R(t,e){if(e<0||e>=t.length)return null;let r=t[e];if(r.type!=="chip"||!r.autoResolved)return null;let i=`${r.trigger}${r.displayText}`,n=[...t.slice(0,e),{type:"text",text:i},...t.slice(e+1)];return {segments:y(n),revertedText:i}}function $(t,e){let r=e.filter(s=>s.resolveOnSpace);if(r.length===0)return t;let i=S(r),n=[];for(let s of t){if(s.type==="chip"){n.push(s);continue}let l=C(s.text,i);n.push(...l);}return y(n)}function C(t,e){if(!t)return [];let r=[],i=0;for(;i<t.length;){let n=t[i];if(e.has(n)&&(i===0||x(t[i-1]))){let u=e.get(n);if(u&&m(t,i,u.position)){let o=i+1;for(;o<t.length&&!x(t[o]);)o++;let p=t.slice(i+1,o);if(p.length>0){let c=u.onSelect?.({value:p,label:p})||p;r.push({type:"chip",trigger:n,value:p,displayText:c,autoResolved:true}),i=o;continue}}}let s=i;for(i++;i<t.length&&!(e.has(t[i])&&x(t[i-1]));)i++;r.push({type:"text",text:t.slice(s,i)});}return r}function T(t,e,r,i){let n=[],s=0,l=false;for(let u of t)if(u.type==="chip"){let o=`${u.trigger}${u.displayText}`,p=s,c=s+o.length;!l&&e===r&&p===e&&(n.push({type:"text",text:i}),l=true),(c<=e||p>=r)&&n.push(u),s=c;}else {let o=s,p=s+u.text.length,c=e===r?p<e:p<=e,g=e===r?o>r:o>=r;if(c)n.push(u);else if(g)n.push(u);else {let f=u.text.slice(0,Math.max(0,e-o)),a=u.text.slice(Math.min(u.text.length,r-o));f&&n.push({type:"text",text:f}),!l&&o<=e&&(n.push({type:"text",text:i}),l=true),a&&n.push({type:"text",text:a});}s=p;}return !l&&i&&n.push({type:"text",text:i}),y(n)}function k(t,e,r,i){if(e===r)return null;let n=b(t),s=i.length,l=e>=s&&n.slice(e-s,e)===i,u=r+s<=n.length&&n.slice(r,r+s)===i,o=l&&u;if(o&&s===1){let g=e>s?n[e-s-1]:"",f=r+s<n.length?n[r+s]:"";(g===i||f===i)&&(o=false);}if(o){let g=T(t,r,r+s,"");return {segments:T(g,e-s,e,""),selectionStart:e-s,selectionEnd:r-s}}let p=T(t,r,r,i);return {segments:T(p,e,e,i),selectionStart:e+s,selectionEnd:r+s}}function q(t){if(!t)return [];let e=[],r=/(\*{3}(.+?)\*{3})|(\*{2}(.+?)\*{2})|(\*(.+?)\*)|(https?:\/\/[^\s),]+)/g,i=0,n;for(;(n=r.exec(t))!==null;)n.index>i&&e.push({type:"plain",text:t.slice(i,n.index)}),n[1]&&n[2]?e.push({type:"bold-italic",text:n[2]}):n[3]&&n[4]?e.push({type:"bold",text:n[4]}):n[5]&&n[6]?e.push({type:"italic",text:n[6]}):n[7]&&e.push({type:"url",text:n[7]}),i=n.index+n[0].length;return i<t.length&&e.push({type:"plain",text:t.slice(i)}),e}function B(t,e){if(t===e)return true;if(t.length!==e.length)return false;for(let r=0;r<t.length;r++){let i=t[r],n=e[r];if(i.type!==n.type)return false;if(i.type==="text"){if(n.type!=="text"||i.text!==n.text)return false}else if(n.type!=="chip"||i.trigger!==n.trigger||i.value!==n.value||i.displayText!==n.displayText||i.autoResolved!==n.autoResolved)return false}return true}function y(t){let e=[];for(let r of t){if(r.type==="text"&&r.text==="")continue;let i=e[e.length-1];r.type==="text"&&i?.type==="text"?e[e.length-1]={type:"text",text:i.text+r.text}:e.push(r);}return e}export{b as a,M as b,m as c,w as d,O as e,A as f,R as g,$ as h,T as i,k as j,q as k,B as l,y as m};
@@ -0,0 +1,3 @@
1
+ 'use client';
2
+ import {a,c}from'./chunk-XPB4WORP.js';import {a as a$1}from'./chunk-23Y7B365.js';import {useRef,useState,useImperativeHandle,useCallback}from'react';import {jsxs,jsx}from'react/jsx-runtime';function P({className:e,children:s}){return jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",className:e,children:s})}var q=({className:e})=>jsxs(P,{className:e,children:[jsx("path",{d:"M5 12h14"}),jsx("path",{d:"M12 5v14"})]}),J=({className:e})=>jsxs(P,{className:e,children:[jsx("path",{d:"m5 12 7-7 7 7"}),jsx("path",{d:"M12 19V5"})]}),x="duration-[240ms] ease-[cubic-bezier(0.33,1,0.68,1)] motion-reduce:transition-none";function K({value:e,onChange:s,triggers:v,placeholder:y,disabled:i=false,markdown:C,onSubmit:d,onEscape:k,onChipClick:w,onChipAdd:A,onChipDelete:N,onPaste:R,images:I,onImagePaste:H,onImageRemove:z,files:M,onFileRemove:E,plusButtonIcon:F,onPlusClick:L,submitButtonIcon:S,beforeSubmitSlot:p,maxHeight:T=320,className:B,"aria-label":D,"data-test-id":_,ref:j}){let r=useRef(null),l=useRef(null),[G,m]=useState(false);useImperativeHandle(j,()=>({focus:()=>r.current?.focus(),blur:()=>r.current?.blur(),insertChip:V=>r.current?.insertChip(V),getPlainText:()=>r.current?.getPlainText()??"",clear:()=>r.current?.clear()}),[]);let u=e.length===0||e.length===1&&e[0].type==="text"&&e[0].text==="",n=G||!u,U=useCallback(()=>{m(true);},[]),O=useCallback(()=>{setTimeout(()=>{l.current?.contains(document.activeElement)||m(false);},a);},[]),f=useCallback(()=>{d?.(e);},[d,e]);return jsxs("div",{ref:l,onFocus:U,onBlur:O,"aria-label":D,"data-test-id":_,"data-expanded":n||void 0,className:a$1("compact-prompt-area relative isolate overflow-hidden","bg-background border","transition-[border-radius,box-shadow,border-color]",x,n?"rounded-2xl shadow-sm":"rounded-3xl",B),children:[jsx("div",{onClick:()=>r.current?.focus(),className:a$1("min-w-0 cursor-text","transition-[padding]",x,n?"pt-4 pr-5 pb-14 pl-5":a$1("py-3 pl-[3.25rem]",p?"pr-[5.5rem]":"pr-[3.25rem]")),children:jsx(c,{ref:r,value:e,onChange:s,triggers:v,placeholder:y,disabled:i,markdown:C,onSubmit:f,onEscape:k,onChipClick:w,onChipAdd:A,onChipDelete:N,onPaste:R,images:I,onImagePaste:H,onImageRemove:z,files:M,onFileRemove:E,autoGrow:true,minHeight:n?48:24,maxHeight:T})}),jsx("button",{type:"button",onClick:L,disabled:i,className:a$1("absolute bottom-1.5 left-1.5 z-10 flex size-9 shrink-0 items-center justify-center","rounded-xl transition-colors","bg-muted text-muted-foreground","hover:bg-accent hover:text-foreground","disabled:pointer-events-none disabled:opacity-50"),"aria-label":"Add attachment",children:F??jsx(q,{className:"size-4"})}),jsxs("div",{className:"absolute right-1.5 bottom-1.5 z-10 flex items-center gap-1.5",children:[p,jsx("button",{type:"button",onClick:f,disabled:i||u,className:a$1("flex size-9 shrink-0 items-center justify-center rounded-xl transition-colors","bg-primary text-primary-foreground","hover:bg-primary/90","disabled:pointer-events-none disabled:opacity-50"),"aria-label":"Send message",children:S??jsx(J,{className:"size-4"})})]})]})}
3
+ export{K as a};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import {a}from'./chunk-MJSTEY4N.js';import {useState,useRef,useMemo,useCallback}from'react';function A(s={}){let{initialValue:a$1=[]}=s,[e,p]=useState(a$1),r=useRef(null),m=useMemo(()=>a(e),[e]),g=useMemo(()=>e.length===0?true:e.every(t=>t.type==="text"&&t.text.trim()===""),[e]),l=useMemo(()=>e.some(t=>t.type==="chip"),[e]),c=useMemo(()=>e.filter(t=>t.type==="chip"),[e]),u=useMemo(()=>({ref:r,value:e,onChange:p}),[e]),h=useCallback(()=>{r.current?r.current.clear():p([]);},[]),T=useCallback(()=>r.current?.focus(),[]),S=useCallback(()=>r.current?.blur(),[]),P=useCallback(t=>r.current?.insertChip(t),[]);return {bind:u,plainText:m,isEmpty:g,hasChips:l,chips:c,clear:h,focus:T,blur:S,insertChip:P}}export{A as a};
2
+ import {a}from'./chunk-OV5KR42S.js';import {useState,useRef,useMemo,useCallback}from'react';function A(s={}){let{initialValue:a$1=[]}=s,[e,p]=useState(a$1),r=useRef(null),m=useMemo(()=>a(e),[e]),g=useMemo(()=>e.length===0?true:e.every(t=>t.type==="text"&&t.text.trim()===""),[e]),l=useMemo(()=>e.some(t=>t.type==="chip"),[e]),c=useMemo(()=>e.filter(t=>t.type==="chip"),[e]),u=useMemo(()=>({ref:r,value:e,onChange:p}),[e]),h=useCallback(()=>{r.current?r.current.clear():p([]);},[]),T=useCallback(()=>r.current?.focus(),[]),S=useCallback(()=>r.current?.blur(),[]),P=useCallback(t=>r.current?.insertChip(t),[]);return {bind:u,plainText:m,isEmpty:g,hasChips:l,chips:c,clear:h,focus:T,blur:S,insertChip:P}}export{A as a};
@@ -0,0 +1,14 @@
1
+ 'use client';
2
+ import {a}from'./chunk-23Y7B365.js';import {a as a$1,d,e,l,f,g,j,i,h,m}from'./chunk-OV5KR42S.js';import {useRef,useState,useCallback,useEffect,useMemo,useImperativeHandle}from'react';import {jsxs,Fragment,jsx}from'react/jsx-runtime';function de(e,n){let r=e.lastIndexOf(`
3
+ `,n-1)+1,t=e.indexOf(`
4
+ `,n),o=e.slice(r,t===-1?e.length:t),a=o.match(/^(\s*)([•\-*]) /);if(a){let g=a[1];return {lineStart:r,prefix:a[0],indent:Math.floor(g.length/2),listType:"bullet",contentStart:r+a[0].length}}let c=o.match(/^(\s*)(\d+)\. /);if(c){let g=c[1];return {lineStart:r,prefix:c[0],indent:Math.floor(g.length/2),listType:"numbered",number:parseInt(c[2],10),contentStart:r+c[0].length}}return null}function ut(e,n){let r=a$1(e),t=r.lastIndexOf(`
5
+ `,n-1)+1,o=r.slice(t,n),a=o.match(/^(\s*)[-*] $/);if(!a)return null;let g=`${a[1]}\u2022 `,x=t,T=t+o.length;return {segments:i(e,x,T,g),cursorOffset:t+g.length}}function dt(e,n){let r=a$1(e),t=de(r,n);if(!t)return null;let o=r.indexOf(`
6
+ `,n);if(r.slice(t.contentStart,o===-1?r.length:o).trim()==="")return {segments:i(e,t.lineStart,t.lineStart+t.prefix.length,""),cursorOffset:t.lineStart};let c=" ".repeat(t.indent),g;if(t.listType==="bullet")g=`${c}\u2022 `;else {let y=(t.number??1)+1;g=`${c}${y}. `;}let x=`
7
+ ${g}`;return {segments:i(e,n,n,x),cursorOffset:n+x.length}}function ft(e,n){let r=a$1(e),t=de(r,n);return t?{segments:i(e,t.lineStart,t.lineStart," "),cursorOffset:n+2}:null}function mt(e,n){let r=a$1(e),t=de(r,n);return !t||t.indent===0?null:{segments:i(e,t.lineStart,t.lineStart+2,""),cursorOffset:Math.max(t.lineStart,n-2)}}function pt(e,n){let r=a$1(e),t=de(r,n);return !t||n>t.contentStart?null:{segments:i(e,t.lineStart,t.contentStart," ".repeat(t.indent)),cursorOffset:t.lineStart+t.indent*2}}function $e(e,n){let r=false,t=e.map(o=>{if(o.type!=="text")return o;let a=n?o.text.replace(/(^|\n)(\s*)- /g,"$1$2\u2022 "):o.text.replace(/(^|\n)(\s*)• /g,"$1$2- ");return a===o.text?o:(r=true,{...o,text:a})});return r?t:e}function se(e){return e instanceof HTMLElement}function B(e){return e instanceof HTMLElement&&e.dataset.chipTrigger!==void 0}function ve(e){return e instanceof HTMLBRElement}function xt(e){return e instanceof Text}function ke(e){return B(e)&&e.dataset.chipAutoResolved==="true"}function vt(e){return e instanceof HTMLAnchorElement&&e.dataset.url==="true"}function Vt(e){try{return JSON.parse(e)}catch{return}}function Oe(e){try{return JSON.stringify(e)}catch{return}}function Ke(e){if(B(e))return e.dataset.chipTrigger}function jt(e){if(B(e))return e.dataset.chipValue}function _e(e){if(B(e))return e.dataset.chipDisplay??e.textContent??void 0}function qt(e){if(!B(e))return;let n=e.dataset.chipData;if(n)return Vt(n)}function ze(e){let n=e.dataset.chipTrigger??"",r=e.dataset.chipDisplay??e.textContent??"";return n.length+r.length}function ye(e){if(!B(e))return null;let n=Ke(e),r=jt(e),t=_e(e);if(!n||r===void 0||!t)return null;let o=qt(e),a=ke(e);return {type:"chip",trigger:n,value:r,displayText:t,...o!==void 0?{data:o}:{},...a?{autoResolved:true}:{}}}function Ce(e,n){let r=e.childNodes;for(let t=0;t<r.length;t++)if(r[t]===n)return t;return -1}function We(e,n){let r=0;for(let t=0;t<n;t++){let o=e.childNodes[t];(o.nodeType===Node.TEXT_NODE&&(o.textContent??"")!==""||B(o)||ve(o))&&r++;}return r}function Ee(e,n){let r=n;for(;r!==null;){if(r.parentNode===e)return r;r=r.parentNode;}return null}function Jt(e,n){let r=document.createDocumentFragment();for(;n.firstChild;)r.appendChild(n.firstChild);r.appendChild(document.createElement("br")),e.replaceChild(r,n);}function be(e){let n=false,r=new Set(["DIV","P","SECTION","ARTICLE","BLOCKQUOTE"]);for(let t=e.childNodes.length-1;t>=0;t--){let o=e.childNodes[t];if(!(o instanceof HTMLElement)||o.dataset.chipTrigger!==void 0||o instanceof HTMLBRElement)continue;let a=o.tagName;if(r.has(a))Jt(e,o),n=true;else if(a==="FONT"||a==="B"||a==="I"||a==="U"||a==="STRONG"||a==="EM"||a==="A"||a==="SPAN"){let c=o.textContent??"";c?e.replaceChild(document.createTextNode(c),o):e.removeChild(o),n=true;}}return e.normalize(),n}var gt=/https?:\/\/[^\s),]+/g;function Xe(e){let n=false,r=[];for(let t=0;t<e.childNodes.length;t++){let o=e.childNodes[t];xt(o)&&o.textContent&&r.push(o);}for(let t of r){let o=t.textContent??"";gt.lastIndex=0;let a=[],c;for(;(c=gt.exec(o))!==null;){let C=c[0];for(;C.length>0&&/[.;:!?]$/.test(C);)C=C.slice(0,-1);C.length>0&&a.push({url:C,index:c.index});}if(a.length===0)continue;let g=t.parentNode;if(!g)continue;let x=[];for(let{url:C,index:E}of a)try{let h=new URL(C);(h.protocol==="http:"||h.protocol==="https:")&&x.push({url:C,href:h.href,index:E});}catch{}if(x.length===0)continue;n=true;let T=document.createDocumentFragment(),y=0;for(let{url:C,href:E,index:h}of x){h>y&&T.appendChild(document.createTextNode(o.slice(y,h)));let d=document.createElement("a");d.href=E,d.target="_blank",d.rel="noopener noreferrer",d.dataset.url="true",d.className="text-primary hover:text-primary/80 underline cursor-pointer",d.textContent=C,T.appendChild(d),y=h+C.length;}y<o.length&&T.appendChild(document.createTextNode(o.slice(y))),g.replaceChild(T,t);}return n}var ht=/(\*{3})(.+?)\*{3}|(\*{2})(.+?)\*{2}|(\*)(.+?)\*/g;function Ve(e){let n=false,r=[];for(let t=0;t<e.childNodes.length;t++){let o=e.childNodes[t];xt(o)&&o.textContent&&r.push(o);}for(let t of r){let o=t.textContent??"";ht.lastIndex=0;let a=[],c;for(;(c=ht.exec(o))!==null;)c[1]&&c[2]?a.push({fullMatch:c[0],marker:c[1],content:c[2],index:c.index,className:"font-bold italic"}):c[3]&&c[4]?a.push({fullMatch:c[0],marker:c[3],content:c[4],index:c.index,className:"font-bold"}):c[5]&&c[6]&&a.push({fullMatch:c[0],marker:c[5],content:c[6],index:c.index,className:"italic"});if(a.length===0)continue;n=true;let g=t.parentNode;if(!g)continue;let x=document.createDocumentFragment(),T=0;for(let{fullMatch:y,marker:C,content:E,index:h,className:d}of a){h>T&&x.appendChild(document.createTextNode(o.slice(T,h)));let S=document.createElement("span");S.dataset.md="true";let P=document.createElement("span");P.className="prompt-area-md-marker",P.textContent=C;let F=document.createElement("span");F.className=d,F.textContent=E;let U=document.createElement("span");U.className="prompt-area-md-marker",U.textContent=C,S.appendChild(P),S.appendChild(F),S.appendChild(U),x.appendChild(S),T=h+y.length;}T<o.length&&x.appendChild(document.createTextNode(o.slice(T))),g.replaceChild(x,t);}return n}function _(){let e=window.getSelection();return !e||e.rangeCount===0?null:e.getRangeAt(0)}function St(e){let n=_();if(!n||!e.contains(n.startContainer))return null;let r=n.startContainer;if(r===e)return {nodeIndex:n.startOffset,offset:0};let t=Ee(e,r);return t?{nodeIndex:Ce(e,t),offset:n.startOffset}:null}function Tt(e,n){let r=window.getSelection();if(!r)return;let t=e.childNodes;if(t.length===0)return;let o=document.createRange();if(n.nodeIndex>=t.length){let a=t[t.length-1];a.nodeType===Node.TEXT_NODE?o.setStart(a,(a.textContent??"").length):o.setStartAfter(a);}else {let a=t[n.nodeIndex];if(a.nodeType===Node.TEXT_NODE){let c=(a.textContent??"").length;o.setStart(a,Math.min(n.offset,c));}else o.setStartAfter(a);}o.collapse(true),r.removeAllRanges(),r.addRange(o);}function Se(e){let n=_();if(!n||!e.contains(n.startContainer))return null;let r=document.createRange();return r.selectNodeContents(e),r.setEnd(n.startContainer,n.startOffset),Ne(r)}function yt(e,n){let r=Re(e,n);if(!r)return null;let t=document.createRange();return t.setStart(r.node,r.offset),t.collapse(true),t}function ee(e,n){let r=window.getSelection();if(!r)return;let t=Re(e,n);if(t){let a=document.createRange();a.setStart(t.node,t.offset),a.collapse(true),r.removeAllRanges(),r.addRange(a);return}let o=document.createRange();o.selectNodeContents(e),o.collapse(false),r.removeAllRanges(),r.addRange(o);}function Ne(e){let n=e.cloneContents(),r=0,t=o=>{if(o.nodeType===Node.TEXT_NODE)r+=(o.textContent??"").length;else if(B(o))r+=ze(o);else if(se(o)&&o.tagName==="BR"){if(o.dataset.sentinel)return;r+=1;}else se(o)&&o.childNodes.forEach(t);};return n.childNodes.forEach(t),r}function Ae(e){let n=_();if(!n||!e.contains(n.startContainer))return null;let r=document.createRange();r.selectNodeContents(e),r.setEnd(n.startContainer,n.startOffset);let t=Ne(r);if(n.collapsed)return {start:t,end:t};let o=document.createRange();o.selectNodeContents(e),o.setEnd(n.endContainer,n.endOffset);let a=Ne(o);return {start:t,end:a}}function Ct(e,n,r){let t=window.getSelection();if(!t)return;if(n===r){ee(e,n);return}let o=Re(e,n),a=Re(e,r);if(!o||!a)return;let c=document.createRange();c.setStart(o.node,o.offset),c.setEnd(a.node,a.offset),t.removeAllRanges(),t.addRange(c);}function Re(e,n){let r=n;for(let t=0;t<e.childNodes.length;t++){let o=e.childNodes[t];if(o.nodeType===Node.TEXT_NODE){let a=(o.textContent??"").length;if(r<=a)return {node:o,offset:r};r-=a;}else if(B(o)){let a=ze(o);if(r<=a)return {node:e,offset:t+1};r-=a;}else if(ve(o)){if(o.dataset.sentinel)continue;if(r<=1)return {node:e,offset:t+1};r-=1;}else if(se(o)){let a=(o.textContent??"").length;if(r<=a){let c=Re(o,r);if(c)return c}r-=a;}}return {node:e,offset:e.childNodes.length}}function Yt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Et(e,n){let r=t=>{t.nodeType===Node.TEXT_NODE?n.onText(t.textContent??""):B(t)?n.onChip(t):se(t)&&t.tagName==="BR"?n.onBreak():t.childNodes.forEach(r);};e.childNodes.forEach(r);}function bt(e){let n="";return Et(e,{onText:r=>{n+=r;},onChip:r=>{n+=(Ke(r)??"")+(_e(r)??"");},onBreak:()=>{n+=`
8
+ `;}}),n}function Nt(e){let n=[];return Et(e,{onText:r=>{r&&n.push({type:"text",text:r});},onChip:r=>{let t=ye(r);t&&n.push(t);},onBreak:()=>{n.push({type:"text",text:`
9
+ `});}}),n}function Rt(e){try{let n=JSON.parse(e);if(!Array.isArray(n))return null;let r=[];for(let t of n){if(!Yt(t))return null;if(t.type==="text"&&typeof t.text=="string")r.push({type:"text",text:t.text});else if(t.type==="chip"&&typeof t.trigger=="string"&&typeof t.value=="string"&&typeof t.displayText=="string"){let o={type:"chip",trigger:t.trigger,value:t.value,displayText:t.displayText,...t.data!==void 0?{data:t.data}:{},...t.autoResolved?{autoResolved:!0}:{}};r.push(o);}else return null}return r}catch{return null}}function Dt(e,n,r){let t=_();if(!t)return [...e,...n];let o=document.createRange();o.selectNodeContents(r),o.setEnd(t.startContainer,t.startOffset);let a=Ne(o),c=[],g=0,x=false,T=()=>{x||(c.push(...n),x=true);};for(let y of e){if(y.type==="chip"){let E=y.trigger.length+y.displayText.length;g>=a&&T(),c.push(y),g+=E;continue}let C=g+y.text.length;if(C<=a)c.push(y);else if(g>=a)T(),c.push(y);else {let E=a-g,h=y.text.slice(0,E),d=y.text.slice(E);h&&c.push({type:"text",text:h}),T(),d&&c.push({type:"text",text:d});}g=C;}return T(),m(c)}var Qt=100,je=150;function Lt(e){let{editorRef:n,readSegmentsFromDOM:r,onChange:t,renderSegmentsToDOM:o,runTriggerDetection:a,dismissTrigger:c,triggers:g,onPaste:x,onUndo:T,onRedo:y,onChipAdd:C,onImagePaste:E}=e,h$1=useRef(false),d=useRef({undoStack:[],redoStack:[]}),S=useCallback(b=>{let L=d.current;L.undoStack.push(b),L.undoStack.length>Qt&&L.undoStack.shift(),L.redoStack=[];},[]),P=useCallback(()=>{d.current={undoStack:[],redoStack:[]};},[]),F=useCallback(b=>{b.preventDefault();let L=n.current;if(!L)return;let D=Array.from(b.clipboardData.files).find(w=>w.type.startsWith("image/"))??Array.from(b.clipboardData.items).find(K=>K.type.startsWith("image/"))?.getAsFile()??null;if(D){E?.(D);return}let k=r();S(k);let v=b.clipboardData.getData("text/prompt-area-segments");if(v){let w=Rt(v);if(w&&w.length>0){let K=_();if(!K)return;K.deleteContents();let ge=r(),oe=Dt(ge,w,L);t(oe),o(oe),x?.({segments:oe,source:"internal"});for(let ce of w)ce.type==="chip"&&C?.(ce);a();return}}let O=b.clipboardData.getData("text/plain");if(!O)return;let M=_();if(!M)return;M.deleteContents();let $=O.split(`
10
+ `),N=document.createDocumentFragment();for(let w=0;w<$.length;w++)$[w]&&N.appendChild(document.createTextNode($[w])),w<$.length-1&&N.appendChild(document.createElement("br"));M.insertNode(N),M.collapse(false);let ae=window.getSelection();ae?.removeAllRanges(),ae?.addRange(M),be(L);let re=r(),G=h(re,g);if(G!==re){t(G),o(G);for(let w of G)w.type==="chip"&&!re.some(K=>K.type==="chip"&&K.trigger===w.trigger&&K.value===w.value&&K.displayText===w.displayText)&&C?.(w);}else t(re);x?.({segments:G,source:"external"}),a();},[n,r,t,S,a,o,g,x,C,E]),U=useCallback(b=>{b.preventDefault();let L=_();if(!L)return;let D=L.cloneContents(),k=bt(D);b.clipboardData.setData("text/plain",k);let v=Nt(D);if(v.some(M=>M.type==="chip")){let M=Oe(v);M&&b.clipboardData.setData("text/prompt-area-segments",M);}},[]),H=useCallback(b=>{U(b);let L=_();if(!L)return;let D=r();S(D),L.deleteContents();let k=n.current;k&&be(k);let v=r();t(v),a();},[U,n,r,t,S,a]),z=useCallback(b=>{b.preventDefault();},[]),Z=useCallback(b=>{b.preventDefault();},[]),me=useCallback(()=>{h$1.current=true;},[]),le=useCallback(()=>{h$1.current=false,a();},[a]),pe=useCallback(()=>{setTimeout(()=>{let b=n.current;if(!b)return;let L=document.activeElement;L&&b.parentElement?.contains(L)||c();},je);},[n,c]),ne=useCallback(b=>{if(!(b.metaKey||b.ctrlKey)||b.key!=="z")return false;b.preventDefault();let D=d.current;if(b.shiftKey){if(D.redoStack.length===0)return true;let k=D.redoStack.pop();if(!k)return true;let v=r();D.undoStack.push(v),t(k),o(k),y?.(k);}else {if(D.undoStack.length===0)return true;let k=D.undoStack.pop();if(!k)return true;let v=r();D.redoStack.push(v),t(k),o(k),T?.(k);}return true},[r,t,o,T,y]);return {handlePaste:F,handleCopy:U,handleCut:H,handleDrop:z,handleDragOver:Z,handleCompositionStart:me,handleCompositionEnd:le,handleBlur:pe,handleKeyDownForUndoRedo:ne,pushUndo:S,resetUndoHistory:P,isComposing:h$1}}function kt(){let[e,n]=useState([]),[r,t]=useState(false),[o,a]=useState(null),c=useRef(0),g=useRef(null),x=useRef(null),T=useCallback(()=>{g.current?.abort(),x.current&&clearTimeout(x.current),n([]),t(false),a(null);},[]),y=useCallback((C,E)=>{if(!E.onSearch)return;g.current?.abort(),x.current&&clearTimeout(x.current),t(true),a(null),c.current++;let h=c.current,d=new AbortController;g.current=d;let{onSearch:S,onSearchError:P,searchDebounceMs:F}=E,U=()=>{let H=S(C,{signal:d.signal});H instanceof Promise?H.then(z=>{d.signal.aborted||c.current!==h||(n(z),t(false));},z=>{d.signal.aborted||c.current!==h||z instanceof DOMException&&z.name==="AbortError"||(a(z instanceof Error?z.message:"Search failed"),t(false),P?.(z));}):(n(H),t(false));};F&&F>0&&C.length>0?x.current=setTimeout(U,F):U();},[]);return useEffect(()=>()=>{g.current?.abort(),x.current&&clearTimeout(x.current);},[]),{suggestions:e,suggestionsLoading:r,suggestionsError:o,search:y,reset:T}}var Gt=300;function At({value:e$1,onChange:n,triggers:r=[],onSubmit:t,onEscape:o,onChipClick:a$2,onChipAdd:c,onChipDelete:g$1,onLinkClick:x,onPaste:T,onUndo:y,onRedo:C,onImagePaste:E,markdown:h=true}){let d$1=useRef(null),[S,P]=useState(null),[F,U]=useState(0),[H,z]=useState(null),{suggestions:Z,suggestionsLoading:me,suggestionsError:le,search:pe,reset:ne}=kt(),b=useRef(false),L=useRef([]),D=useRef(null),k=useRef(null),v=useCallback(()=>{let s=d$1.current;if(!s)return [];let f=[];for(let m=0;m<s.childNodes.length;m++){let i=s.childNodes[m];if(i.nodeType===Node.TEXT_NODE){let l=i.textContent??"";l&&f.push({type:"text",text:l});}else if(B(i)){let l=ye(i);l&&f.push(l);}else if(ve(i)){if(i.dataset.sentinel)continue;f.push({type:"text",text:`
11
+ `});}else if(se(i)){let l=i.textContent??"";l&&f.push({type:"text",text:l});}}return f},[]),O=useCallback(s=>{let f=d$1.current;if(!f)return;b.current=true;let m=St(f);for(;f.firstChild;)f.removeChild(f.firstChild);for(let i of s)if(i.type==="text"){let l=i.text.split(`
12
+ `);for(let u=0;u<l.length;u++)l[u]&&f.appendChild(document.createTextNode(l[u])),u<l.length-1&&f.appendChild(document.createElement("br"));}else {let l=document.createElement("span");if(l.contentEditable="false",l.dataset.chipTrigger=i.trigger,l.dataset.chipValue=i.value,l.dataset.chipDisplay=i.displayText,i.data!==void 0){let R=Oe(i.data);R&&(l.dataset.chipData=R);}i.autoResolved&&(l.dataset.chipAutoResolved="true");let u=r.find(R=>R.char===i.trigger),p=u?.chipStyle??"pill";l.dataset.chipStyle=p,l.className=a("prompt-area-chip",p==="inline"&&"prompt-area-chip--inline",u?.chipClassName),l.textContent=`${i.trigger}${i.displayText}`,l.setAttribute("role","button"),l.setAttribute("tabindex","-1"),f.appendChild(l);}if(f.lastChild&&ve(f.lastChild)){let i=document.createElement("br");i.dataset.sentinel="true",f.appendChild(i);}Xe(f),h&&Ve(f),m&&Tt(f,m),L.current=s,b.current=false;},[r,h]),M=useCallback(()=>{let s=d$1.current;if(!s)return;let f=v(),m=a$1(f),i=Se(s);if(i===null)return;let l=d(m,i,r);if(l){P(l),U(0);let u=yt(s,l.startOffset);if(u){let p=u.getBoundingClientRect();(p.height>0||p.left>0||p.top>0)&&z(p);}l.config.mode==="dropdown"&&l.config.onSearch&&pe(l.query,l.config),l.config.mode==="callback"&&l.config.onActivate&&l.config.onActivate({text:m,cursorPosition:i,insertChip:p=>{let R=e(f,l,{value:p.value,displayText:p.displayText,data:p.data});n(R.segments),O(R.segments),c?.({type:"chip",trigger:l.config.char,value:p.value,displayText:p.displayText,...p.data!==void 0?{data:p.data}:{}});let X=d$1.current;X&&ee(X,R.cursorOffset);}});}else P(null),ne();},[r,v,n,O,c,ne,pe]),$=useCallback(()=>{P(null),U(0),ne();},[ne]),N=Lt({editorRef:d$1,readSegmentsFromDOM:v,onChange:n,renderSegmentsToDOM:O,runTriggerDetection:M,dismissTrigger:$,triggers:r,onPaste:T,onUndo:y,onRedo:C,onChipAdd:c,onImagePaste:E});useEffect(()=>{if(!b.current&&!l(e$1,L.current)){if(h){let s=$e(e$1,true);if(s!==e$1){n(s);return}}O(e$1);}},[e$1,O,h,n]);let ae=useRef(h);useEffect(()=>{if(ae.current===h)return;ae.current=h;let s=$e(e$1,h);s!==e$1?n(s):O(e$1);},[h,O,e$1,n]),useEffect(()=>()=>{D.current&&clearTimeout(D.current);},[]);let re=useCallback(()=>{if(b.current)return;if(N.isComposing.current){let i=v();L.current=i,n(i);return}let s=d$1.current,f=s?Se(s):null;s&&be(s);let m=v();if(h&&s&&f!==null){let i=ut(m,f);if(i){L.current=i.segments,n(i.segments),O(i.segments),ee(s,i.cursorOffset),M();return}}k.current||(k.current=L.current),L.current=m,n(m),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{k.current&&(N.pushUndo(k.current),k.current=null),D.current=null;},Gt),s&&(Xe(s),h&&Ve(s),f!==null&&ee(s,f)),M();},[n,v,M,O,h,N]),G=useCallback(s=>{let f=s.target;if(!(f instanceof Node))return;let m=d$1.current;if(!m)return;let i=f;for(;i&&i!==m;){if(vt(i)){if(s.metaKey||s.ctrlKey){s.preventDefault(),x?.(i.href),window.open(i.href,"_blank","noopener,noreferrer");return}break}if(B(i)){let l=i.getBoundingClientRect(),u=document.createElement("span");u.className="prompt-area-chip-ripple";let p=Math.max(l.width,l.height);if(u.style.width=`${p}px`,u.style.height=`${p}px`,u.style.left=`${s.clientX-l.left-p/2}px`,u.style.top=`${s.clientY-l.top-p/2}px`,i.appendChild(u),u.addEventListener("animationend",()=>u.remove()),!a$2)return;let R=ye(i);R&&a$2(R);return}i=i.parentNode;}},[a$2,x]),w=useCallback((s,f$1)=>{let m=v(),i=Ce(s,f$1);if(i===-1)return false;let l=We(s,i),u=m[l],p=f(m,l);return n(p),O(p),u?.type==="chip"&&g$1?.(u),true},[v,n,O,g$1]),K=useCallback((s,f)=>{let m=v(),i=Ce(s,f);if(i===-1)return false;let l=We(s,i),u=m[l],p=g(m,l);if(!p)return false;let R=0;for(let X=0;X<l;X++){let xe=m[X];xe.type==="text"?R+=xe.text.length:R+=xe.trigger.length+xe.displayText.length;}return R+=p.revertedText.length,n(p.segments),O(p.segments),ee(s,R),u?.type==="chip"&&g$1?.(u),true},[v,n,O,g$1]),ge=useCallback(()=>{let s=d$1.current;if(!s)return false;let f=_();if(!f||!f.collapsed)return false;let m=f.startContainer,i=f.startOffset;if(m===s&&i>0){let l=s.childNodes[i-1];if(l&&B(l))return ke(l)?K(s,l):w(s,l)}if(m.nodeType===Node.TEXT_NODE&&i===0){let l=Ee(s,m);if(!l)return false;let u=l.previousSibling;for(;u&&u.nodeType===Node.TEXT_NODE&&u.textContent==="";)u=u.previousSibling;if(u&&B(u))return ke(u)?K(s,u):w(s,u)}return false},[w,K]),oe=useCallback(()=>{let s=d$1.current;if(!s)return false;let f=_();if(!f||!f.collapsed)return false;let m=f.startContainer,i=f.startOffset;if(m===s&&i<s.childNodes.length){let l=s.childNodes[i];if(l&&B(l))return w(s,l)}if(m.nodeType===Node.TEXT_NODE&&i===(m.textContent??"").length){let l=Ee(s,m);if(!l)return false;let u=l.nextSibling;for(;u&&u.nodeType===Node.TEXT_NODE&&u.textContent==="";)u=u.nextSibling;if(u&&B(u))return w(s,u)}return false},[w]),ce=useCallback(s=>{let f=v(),m=s.query,i={value:m,label:m},l=s.config.onSelect?.(i)??m,u={value:m,displayText:l||m,autoResolved:true},p=e(f,s,u);n(p.segments),O(p.segments),c?.({type:"chip",trigger:s.config.char,...u});let R=d$1.current;R&&ee(R,p.cursorOffset),$();},[v,n,O,$,c]),he=useCallback(s=>{if(!S)return;let f=v(),m=S.config.onSelect?.(s)??s.label,i={value:s.value,displayText:m||s.label,data:s.data},l=e(f,S,i);n(l.segments),O(l.segments),c?.({type:"chip",trigger:S.config.char,...i});let u=d$1.current;u&&ee(u,l.cursorOffset),$(),setTimeout(()=>{d$1.current?.focus();},0);},[S,v,n,O,$,c]),Be=he,q=useCallback(s=>{let f=(i,l)=>{L.current=l.segments,n(l.segments),O(l.segments),ee(i,l.cursorOffset);},m=i=>{if(!h)return false;let l=v(),u=Se(i);if(u===null)return false;let p=a$1(l);if(!de(p,u))return false;let R=dt(l,u);return R&&f(i,R),true};if((s.metaKey||s.ctrlKey)&&s.key==="z"&&k.current&&(D.current&&(clearTimeout(D.current),D.current=null),N.pushUndo(k.current),k.current=null),!N.handleKeyDownForUndoRedo(s)){if(h&&(s.metaKey||s.ctrlKey)&&!s.shiftKey&&(s.key==="b"||s.key==="i")){s.preventDefault();let i=d$1.current;if(!i)return;let l=Ae(i);if(!l||l.start===l.end)return;let u=s.key==="b"?"**":"*",p=v();N.pushUndo(p);let R=j(p,l.start,l.end,u);if(!R)return;L.current=R.segments,n(R.segments),O(R.segments),Ct(i,R.selectionStart,R.selectionEnd);return}if(S&&S.config.mode==="dropdown"&&Z.length>0){if(s.key==="ArrowDown"){s.preventDefault(),U(i=>Math.min(i+1,Z.length-1));return}if(s.key==="ArrowUp"){s.preventDefault(),U(i=>Math.max(i-1,0));return}if(s.key==="Enter"||s.key==="Tab"){s.preventDefault();let i=Z[F];i&&he(i);return}if(s.key==="Escape"){s.preventDefault(),$();return}}if(s.key===" "&&S&&S.config.resolveOnSpace&&S.query.trim().length>0){s.preventDefault(),ce(S);return}if(h&&s.key==="Tab"&&!S){let i=d$1.current;if(i){let l=v(),u=a$1(l),p=Se(i);if(p!==null&&de(u,p)){s.preventDefault();let X=s.shiftKey?mt(l,p):ft(l,p);X&&f(i,X);return}}}if(s.key==="Enter"&&s.shiftKey&&!s.nativeEvent.isComposing){s.preventDefault();let i$1=d$1.current;if(i$1){if(m(i$1))return;let l=Ae(i$1);if(l){let u=v();N.pushUndo(u);let p=i(u,l.start,l.end,`
13
+ `);f(i$1,{segments:p,cursorOffset:l.start+1});}}return}if(s.key==="Enter"&&!s.shiftKey&&!s.nativeEvent.isComposing){let i=d$1.current;if(i&&m(i)){s.preventDefault();return}if(t){s.preventDefault(),t(v());return}}if(s.key==="Escape"&&o){o();return}if((s.key==="Backspace"||s.key==="Delete")&&!s.nativeEvent.isComposing){let i$1=d$1.current;if(i$1){let l=Ae(i$1);if(l&&l.start!==l.end){s.preventDefault();let u=v();N.pushUndo(u);let p=i(u,l.start,l.end,"");f(i$1,{segments:p,cursorOffset:l.start}),M();return}}}if(s.key==="Backspace"){let i=d$1.current;if(i){let l=v(),u=Se(i);if(h&&u!==null){let p=pt(l,u);if(p){s.preventDefault(),f(i,p),M();return}}}if(ge()){s.preventDefault(),M();return}}if(s.key==="Delete"&&oe()){s.preventDefault(),M();return}}},[S,Z,F,t,o,v,n,O,h,$,ge,oe,ce,M,he,N]),W=useMemo(()=>({focus:()=>d$1.current?.focus(),blur:()=>d$1.current?.blur(),insertChip:s=>{let f=v(),m={type:"chip",...s},i=[...f,m,{type:"text",text:" "}];n(i),O(i),c?.(m);},getPlainText:()=>a$1(v()),clear:()=>{n([]);let s=d$1.current;if(s)for(;s.firstChild;)s.removeChild(s.firstChild);N.resetUndoHistory(),D.current&&(clearTimeout(D.current),D.current=null),k.current=null;}}),[v,n,O,c,N]),Le=useMemo(()=>({onPaste:N.handlePaste,onCopy:N.handleCopy,onCut:N.handleCut,onDrop:N.handleDrop,onDragOver:N.handleDragOver,onCompositionStart:N.handleCompositionStart,onCompositionEnd:N.handleCompositionEnd,onBlur:N.handleBlur}),[N.handlePaste,N.handleCopy,N.handleCut,N.handleDrop,N.handleDragOver,N.handleCompositionStart,N.handleCompositionEnd,N.handleBlur]);return {editorRef:d$1,activeTrigger:S,suggestions:Z,suggestionsLoading:me,suggestionsError:le,selectedSuggestionIndex:F,handleInput:re,handleKeyDown:q,handleClick:G,selectSuggestion:Be,dismissTrigger:$,handle:W,triggerRect:H,eventHandlers:Le}}function Ft({suggestions:e,loading:n,error:r,emptyMessage:t,selectedIndex:o,onSelect:a$1,onDismiss:c,triggerRect:g,triggerChar:x}){let T=useRef(null),y=useRef(null);if(useEffect(()=>{y.current?.scrollIntoView({block:"nearest"});},[o]),useEffect(()=>{let d=S=>{let P=S.target;T.current&&P instanceof Node&&!T.current.contains(P)&&c();};return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[c]),!g||e.length===0&&!n&&!r&&!t)return null;let C=Math.min(320,window.innerWidth-16),E=Math.min(g.left,window.innerWidth-C-8),h={position:"fixed",left:`${Math.max(8,E)}px`,top:`${g.bottom+4}px`,zIndex:50,maxWidth:`${C}px`};return jsx("div",{ref:T,className:a("max-h-[240px] min-w-[200px] overflow-y-auto","bg-popover rounded-xl border p-2 shadow-md","animate-in fade-in-0 zoom-in-95"),style:h,role:"listbox","aria-label":`${x} suggestions`,children:n?jsx("div",{role:"option","aria-selected":false,className:"text-muted-foreground px-3 py-2 text-sm",children:"Loading suggestions..."}):r?jsx("div",{role:"option","aria-selected":false,className:"text-destructive px-3 py-2 text-sm",children:r}):e.length===0&&t?jsx("div",{role:"option","aria-selected":false,className:"text-muted-foreground px-3 py-2 text-sm",children:t}):e.map((d,S)=>jsxs("button",{ref:S===o?y:void 0,type:"button",role:"option","aria-selected":S===o,className:a("text-foreground flex w-full items-start gap-2 rounded-lg px-3 py-2 text-left text-sm","hover:bg-accent cursor-pointer transition-colors",S===o&&"bg-accent"),onMouseDown:P=>{P.preventDefault(),a$1(d);},children:[d.icon&&jsx("span",{className:"mt-0.5 shrink-0",children:d.icon}),jsxs("div",{className:"min-w-0 flex-1",children:[jsx("div",{className:"truncate font-medium",children:d.label}),d.description&&jsx("div",{className:"text-muted-foreground truncate text-xs",children:d.description})]})]},d.value))})}function Ut({texts:e,interval:n=3e3}){let[r,t]=useState(0);return useEffect(()=>{if(e.length<=1)return;let o=setInterval(()=>{t(a=>(a+1)%e.length);},n);return ()=>clearInterval(o)},[e.length,n]),jsx("div",{className:"pointer-events-none absolute top-0 left-0 overflow-hidden text-sm leading-relaxed select-none",style:{color:"var(--prompt-area-placeholder, var(--muted-foreground))"},"aria-hidden":"true",children:jsx("div",{className:"animate-in fade-in-0 slide-in-from-top-4 duration-300 ease-in-out",children:e[r]},r)})}function He({onClick:e,label:n,className:r}){return jsx("button",{type:"button",onClick:t=>{t.stopPropagation(),e();},className:a("absolute top-0.5 right-0.5 grid h-3.5 w-3.5 cursor-pointer place-items-center","rounded-full bg-black/60 text-white hover:bg-black/80 dark:bg-white/60 dark:text-black dark:hover:bg-white/80","transition-colors",r),"aria-label":n,children:jsxs("svg",{width:"8",height:"8",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[jsx("line",{x1:"2.75",y1:"2.75",x2:"7.25",y2:"7.25"}),jsx("line",{x1:"7.25",y1:"2.75",x2:"2.75",y2:"7.25"})]})})}function $t({images:e,onRemove:n,onClick:r,className:t}){return e.length===0?null:jsx("div",{className:a("flex flex-wrap gap-2",t),role:"list","aria-label":"Attached images",children:e.map(o=>jsxs("div",{role:"listitem",className:a("border-border relative h-16 w-16 flex-shrink-0 overflow-hidden rounded-md border",r&&"cursor-pointer"),onClick:()=>r?.(o),children:[jsx("img",{src:o.url,alt:o.alt??"Attached image",className:"h-full w-full object-cover"}),o.loading&&jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/40",children:jsx("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-white border-t-transparent"})}),n&&jsx(He,{onClick:()=>n(o),label:`Remove ${o.alt??"image"}`})]},o.id))})}function Me({className:e,children:n}){return jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",className:e,children:n})}var Ie=jsxs(Fragment,{children:[jsx("path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"}),jsx("path",{d:"M14 2v5a1 1 0 0 0 1 1h5"})]}),ln=({className:e})=>jsx(Me,{className:e,children:Ie}),an=({className:e})=>jsxs(Me,{className:e,children:[Ie,jsx("path",{d:"M10 9H8"}),jsx("path",{d:"M16 13H8"}),jsx("path",{d:"M16 17H8"})]}),cn=({className:e})=>jsxs(Me,{className:e,children:[Ie,jsx("path",{d:"M8 13h2"}),jsx("path",{d:"M14 13h2"}),jsx("path",{d:"M8 17h2"}),jsx("path",{d:"M14 17h2"})]}),un=({className:e})=>jsxs(Me,{className:e,children:[Ie,jsx("path",{d:"M10 12.5 8 15l2 2.5"}),jsx("path",{d:"m14 12.5 2 2.5-2 2.5"})]}),dn=({className:e})=>jsxs(Me,{className:e,children:[jsx("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"}),jsx("circle",{cx:"9",cy:"9",r:"2"}),jsx("path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"})]}),Pe=3;function fn(e){return e?e==="application/pdf"?"pdf":e.includes("spreadsheet")||e==="text/csv"?"spreadsheet":e.startsWith("text/")||e.includes("javascript")||e.includes("json")||e.includes("xml")?"code":e.startsWith("image/")?"image":"default":"default"}var mn={pdf:an,spreadsheet:cn,code:un,image:dn,default:ln};function pn(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(1)} GB`}function gn(e){let n=e.lastIndexOf(".");return n===-1||n===e.length-1?null:e.slice(n+1).toUpperCase()}function _t({file:e,compact:n,onRemove:r,onClick:t}){let o=gn(e.name),a$1=e.size!=null?pn(e.size):null,c=[o,a$1].filter(Boolean).join(" \xB7 ");return jsxs("div",{role:"listitem",className:a("border-border relative flex flex-shrink-0 items-center gap-2 overflow-hidden rounded-lg border transition-colors","hover:bg-accent",n?"h-10 w-36 px-2":"h-14 w-48 px-3",t&&"cursor-pointer"),onClick:()=>t?.(e),children:[(()=>{let g=mn[fn(e.type)];return jsx(g,{className:a("text-muted-foreground flex-shrink-0",n?"h-4 w-4":"h-5 w-5")})})(),jsxs("div",{className:"min-w-0 flex-1",children:[jsx("div",{className:a("truncate font-medium",n?"text-xs":"text-sm"),title:e.name,children:e.name}),!n&&c&&jsx("div",{className:"text-muted-foreground truncate text-xs",children:c})]}),e.loading&&jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/40",children:jsx("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-white border-t-transparent"})}),r&&jsx(He,{onClick:()=>r(e),label:`Remove ${e.name}`})]})}function zt({files:e,onRemove:n,onClick:r,className:t}){let[o,a$1]=useState(false),c=useRef(null),g=useRef(null);if(useEffect(()=>{if(!o)return;let E=h=>{let d=h.target;d instanceof Node&&c.current&&!c.current.contains(d)&&!g.current?.contains(d)&&a$1(false);};return document.addEventListener("mousedown",E),()=>document.removeEventListener("mousedown",E)},[o]),e.length===0)return null;let x=e.length>Pe,T=x,y=e.length-Pe,C=e.slice(0,Pe);return jsxs("div",{className:a("relative",t),children:[jsxs("div",{className:"flex flex-wrap gap-2",role:"list","aria-label":"Attached files",children:[(x?C:e).map(E=>jsx(_t,{file:E,compact:T,onRemove:n,onClick:r},E.id)),x&&jsx("div",{role:"listitem",children:jsx("button",{ref:g,type:"button",onClick:()=>a$1(E=>!E),className:a("border-border text-muted-foreground hover:bg-accent flex flex-shrink-0 cursor-pointer items-center justify-center rounded-lg border transition-colors",T?"h-10 px-3 text-xs":"h-14 px-4 text-sm"),children:o?"Show less":`+${y} more`})})]}),o&&jsx("div",{ref:c,className:a("bg-popover border-border absolute bottom-full left-0 z-10 mb-2 max-h-48 overflow-y-auto rounded-lg border p-2 shadow-lg"),children:jsx("div",{className:"flex flex-wrap gap-2",role:"list","aria-label":"More attached files",children:e.slice(Pe).map(E=>jsx(_t,{file:E,compact:T,onRemove:n,onClick:r},E.id))})})]})}function vr({value:e,onChange:n,triggers:r,placeholder:t,className:o,disabled:a$1=false,markdown:c,onSubmit:g,onEscape:x,onChipClick:T,onChipAdd:y,onChipDelete:C,onLinkClick:E,onPaste:h,onUndo:d,onRedo:S,minHeight:P=80,maxHeight:F,autoFocus:U=false,autoGrow:H=false,"aria-label":z,"data-test-id":Z,images:me=[],imagePosition:le="above",onImagePaste:pe,onImageRemove:ne,onImageClick:b,files:L=[],filePosition:D="above",onFileRemove:k,onFileClick:v,ref:O}){let{editorRef:M,activeTrigger:$,suggestions:N,suggestionsLoading:ae,suggestionsError:re,selectedSuggestionIndex:G,handleInput:w,handleKeyDown:K,handleClick:ge,selectSuggestion:oe,dismissTrigger:ce,handle:he,triggerRect:Be,eventHandlers:q}=At({value:e,onChange:n,triggers:r,onSubmit:g,onEscape:x,onChipClick:T,onChipAdd:y,onChipDelete:C,onLinkClick:E,onPaste:h,onUndo:d,onRedo:S,onImagePaste:pe,markdown:c});useImperativeHandle(O,()=>he,[he]),useEffect(()=>{U&&M.current?.focus();},[U,M]);let[W,Le]=useState(false),[s,f]=useState(void 0),m=useCallback(()=>{let V=M.current;if(!V)return;V.style.height="auto";let ue=V.scrollHeight;V.style.height=`${ue}px`,f(ue);},[M]),i=useCallback(()=>{H&&(Le(true),m());},[H,m]),l=useCallback(()=>{q.onBlur(),H&&setTimeout(()=>{let V=M.current;if(!V)return;let ue=document.activeElement;ue&&V.parentElement?.contains(ue)||(Le(false),f(void 0));},je);},[q,H,M]),u=useCallback(()=>{w(),H&&W&&m();},[w,H,W,m]);useEffect(()=>{H&&W&&requestAnimationFrame(()=>m());},[e,H,W,m]);let[p,R]=useState(false),X=useRef(null);useEffect(()=>{if(!H)return;let V=()=>{if(W){R(false);return}let Ue=M.current;Ue&&R(Ue.scrollHeight>Ue.clientHeight);},ue=W?0:160;return X.current=setTimeout(V,ue),()=>{X.current!==null&&clearTimeout(X.current);}},[H,W,e,M]);let xe=useMemo(()=>{if(!H){let V={minHeight:`${P}px`};return F&&(V.maxHeight=`${F}px`,V.overflowY="auto"),V}return {height:W&&s?`${s}px`:`${P}px`,minHeight:`${P}px`,maxHeight:F?`${F}px`:"70dvh",overflowY:W?"auto":"hidden",transition:"height 150ms ease-out, min-height 240ms cubic-bezier(0.33, 1, 0.68, 1)"}},[H,P,F,W,s]),Xt=e.length===0||e.length===1&&e[0].type==="text"&&e[0].text==="",tt=me.length>0?jsx($t,{images:me,onRemove:ne,onClick:b,className:le==="above"?"pb-2":"pt-2"}):null,nt=L.length>0?jsx(zt,{files:L,onRemove:k,onClick:v,className:D==="above"?"pb-2":"pt-2"}):null;return jsxs("div",{className:a("prompt-area-container relative",o),children:[le==="above"&&tt,D==="above"&&nt,jsxs("div",{className:"relative",children:[jsx("div",{ref:M,contentEditable:!a$1,suppressContentEditableWarning:true,role:"textbox","aria-label":z??"Text input","aria-multiline":"true","aria-disabled":a$1||void 0,"data-test-id":Z,className:a("prompt-area-editor","w-full min-w-0 break-words whitespace-pre-wrap outline-none","text-sm leading-relaxed",a$1&&"cursor-not-allowed opacity-50"),style:xe,onFocus:i,onInput:H?u:w,onKeyDown:K,onClick:ge,onPaste:q.onPaste,onCopy:q.onCopy,onCut:q.onCut,onDrop:q.onDrop,onDragOver:q.onDragOver,onCompositionStart:q.onCompositionStart,onCompositionEnd:q.onCompositionEnd,onBlur:H?l:q.onBlur}),H&&p&&!W&&jsx("div",{"aria-hidden":"true",className:"pointer-events-auto absolute right-0 bottom-0 left-0 cursor-pointer",style:{height:"32px"},onClick:()=>M.current?.focus(),children:jsx("div",{className:"h-full w-full",style:{background:"linear-gradient(to bottom, transparent, color-mix(in srgb, var(--prompt-area-surface, var(--background)) 80%, transparent), var(--prompt-area-surface, var(--background)))"}})}),Xt&&t&&(Array.isArray(t)?jsx(Ut,{texts:t}):jsx("div",{className:"pointer-events-none absolute top-0 left-0 text-sm leading-relaxed select-none",style:{color:"var(--prompt-area-placeholder, var(--muted-foreground))"},"aria-hidden":"true",children:t}))]}),D==="below"&&nt,le==="below"&&tt,$&&$.config.mode==="dropdown"&&jsx(Ft,{suggestions:N,loading:ae,error:re,emptyMessage:$.config.emptyMessage,selectedIndex:G,onSelect:oe,onDismiss:ce,triggerRect:Be,triggerChar:$.config.char})]})}
14
+ export{je as a,At as b,vr as c};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- export{a as CompactPromptArea}from'../chunk-2R57LWJO.js';import'../chunk-LJJ6HHR6.js';import'../chunk-23Y7B365.js';import'../chunk-MJSTEY4N.js';
2
+ export{a as CompactPromptArea}from'../chunk-PCT7X7IP.js';import'../chunk-XPB4WORP.js';import'../chunk-23Y7B365.js';import'../chunk-OV5KR42S.js';
@@ -158,12 +158,22 @@ declare function mentionTrigger(opts?: MentionTriggerOptions): TriggerConfig;
158
158
  type CommandTriggerOptions = TriggerPresetOptions & {
159
159
  /** Override the trigger character. Defaults to `'/'`. */
160
160
  char?: string;
161
+ /**
162
+ * Where the command trigger is valid. Defaults to `'any'`, so commands fire
163
+ * anywhere a `/` follows whitespace — not just at the start of a line.
164
+ * Set to `'start'` to restrict the dropdown to the very start of the input
165
+ * or immediately after a newline (the classic slash-command behavior).
166
+ */
167
+ position?: TriggerPosition;
161
168
  };
162
169
  /**
163
170
  * Creates a **command** trigger (`/`).
164
171
  *
165
- * Defaults: `position: 'start'`, `mode: 'dropdown'`, `chipStyle: 'inline'`,
172
+ * Defaults: `position: 'any'`, `mode: 'dropdown'`, `chipStyle: 'inline'`,
166
173
  * accessible label `"command"`.
174
+ *
175
+ * By default commands work everywhere in the input. Pass `position: 'start'`
176
+ * to limit them to the start of a line.
167
177
  */
168
178
  declare function commandTrigger(opts?: CommandTriggerOptions): TriggerConfig;
169
179
  type HashtagTriggerOptions = TriggerPresetOptions & {
@@ -1 +1 @@
1
- export{j as callbackTrigger,b as chip,h as commandTrigger,e as getChips,f as getChipsByTrigger,d as hasChips,i as hashtagTrigger,c as isSegmentsEmpty,g as mentionTrigger,a as text}from'../chunk-A6EFF4BI.js';export{d as detectActiveTrigger,c as isValidTriggerPosition,m as mergeAdjacentTextSegments,k as parseInlineMarkdown,b as plainTextToSegments,e as resolveChip,h as resolveTriggersInSegments,l as segmentsEqual,a as segmentsToPlainText}from'../chunk-MJSTEY4N.js';
1
+ export{j as callbackTrigger,b as chip,h as commandTrigger,e as getChips,f as getChipsByTrigger,d as hasChips,i as hashtagTrigger,c as isSegmentsEmpty,g as mentionTrigger,a as text}from'../chunk-2NJF7OW6.js';export{d as detectActiveTrigger,c as isValidTriggerPosition,m as mergeAdjacentTextSegments,k as parseInlineMarkdown,b as plainTextToSegments,e as resolveChip,h as resolveTriggersInSegments,l as segmentsEqual,a as segmentsToPlainText}from'../chunk-OV5KR42S.js';
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- export{a as usePromptAreaState}from'./chunk-3D4ZBBYY.js';export{a as ActionBar}from'./chunk-VULUMPYE.js';export{a as StatusBar}from'./chunk-6VISE4VA.js';export{a as CompactPromptArea}from'./chunk-2R57LWJO.js';export{c as PromptArea,b as usePromptArea}from'./chunk-LJJ6HHR6.js';export{a as ChatPromptLayout}from'./chunk-CRC4ST6U.js';import'./chunk-23Y7B365.js';export{j as callbackTrigger,b as chip,h as commandTrigger,e as getChips,f as getChipsByTrigger,d as hasChips,i as hashtagTrigger,c as isSegmentsEmpty,g as mentionTrigger,a as text}from'./chunk-A6EFF4BI.js';export{d as detectActiveTrigger,c as isValidTriggerPosition,m as mergeAdjacentTextSegments,k as parseInlineMarkdown,b as plainTextToSegments,e as resolveChip,h as resolveTriggersInSegments,l as segmentsEqual,a as segmentsToPlainText}from'./chunk-MJSTEY4N.js';
2
+ export{a as usePromptAreaState}from'./chunk-QOBBIC5J.js';export{a as ActionBar}from'./chunk-VULUMPYE.js';export{a as StatusBar}from'./chunk-6VISE4VA.js';export{a as CompactPromptArea}from'./chunk-PCT7X7IP.js';export{c as PromptArea,b as usePromptArea}from'./chunk-XPB4WORP.js';export{a as ChatPromptLayout}from'./chunk-CRC4ST6U.js';import'./chunk-23Y7B365.js';export{j as callbackTrigger,b as chip,h as commandTrigger,e as getChips,f as getChipsByTrigger,d as hasChips,i as hashtagTrigger,c as isSegmentsEmpty,g as mentionTrigger,a as text}from'./chunk-2NJF7OW6.js';export{d as detectActiveTrigger,c as isValidTriggerPosition,m as mergeAdjacentTextSegments,k as parseInlineMarkdown,b as plainTextToSegments,e as resolveChip,h as resolveTriggersInSegments,l as segmentsEqual,a as segmentsToPlainText}from'./chunk-OV5KR42S.js';
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- export{a as usePromptAreaState}from'../chunk-3D4ZBBYY.js';export{c as PromptArea,b as usePromptArea}from'../chunk-LJJ6HHR6.js';import'../chunk-23Y7B365.js';export{j as callbackTrigger,b as chip,h as commandTrigger,e as getChips,f as getChipsByTrigger,d as hasChips,i as hashtagTrigger,c as isSegmentsEmpty,g as mentionTrigger,a as text}from'../chunk-A6EFF4BI.js';export{d as detectActiveTrigger,c as isValidTriggerPosition,m as mergeAdjacentTextSegments,k as parseInlineMarkdown,b as plainTextToSegments,e as resolveChip,h as resolveTriggersInSegments,l as segmentsEqual,a as segmentsToPlainText}from'../chunk-MJSTEY4N.js';
2
+ export{a as usePromptAreaState}from'../chunk-QOBBIC5J.js';export{c as PromptArea,b as usePromptArea}from'../chunk-XPB4WORP.js';import'../chunk-23Y7B365.js';export{j as callbackTrigger,b as chip,h as commandTrigger,e as getChips,f as getChipsByTrigger,d as hasChips,i as hashtagTrigger,c as isSegmentsEmpty,g as mentionTrigger,a as text}from'../chunk-2NJF7OW6.js';export{d as detectActiveTrigger,c as isValidTriggerPosition,m as mergeAdjacentTextSegments,k as parseInlineMarkdown,b as plainTextToSegments,e as resolveChip,h as resolveTriggersInSegments,l as segmentsEqual,a as segmentsToPlainText}from'../chunk-OV5KR42S.js';
package/dist/styles.css CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-blue-100:oklch(93.2% .032 255.585);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-bold:700;--leading-relaxed:1.625;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base;@layer components{.prompt-area-chip{cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:baseline;background-color:var(--secondary);color:var(--foreground);border-radius:4px;align-items:center;margin:0 1px;padding:1px 6px;font-size:.875rem;font-weight:500;transition:background-color .2s,transform .15s cubic-bezier(.4,0,.2,1),box-shadow .2s;display:inline-flex;position:relative;overflow:hidden}.prompt-area-chip:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.prompt-area-chip:hover{background-color:color-mix(in srgb, var(--secondary) 80%, var(--foreground) 20%)}}.prompt-area-chip:hover{box-shadow:0 1px 4px var(--foreground)}@supports (color:color-mix(in lab, red, red)){.prompt-area-chip:hover{box-shadow:0 1px 4px color-mix(in srgb, var(--foreground) 10%, transparent)}}.prompt-area-chip:active{background-color:var(--secondary);transform:scale(.93)}@supports (color:color-mix(in lab, red, red)){.prompt-area-chip:active{background-color:color-mix(in srgb, var(--secondary) 70%, var(--foreground) 30%)}}.prompt-area-chip:active{transition:background-color 50ms,transform 80ms cubic-bezier(.4,0,.2,1),box-shadow 50ms;box-shadow:0 0 #0000}@keyframes prompt-area-chip-ripple{0%{opacity:.4;transform:scale(0)}to{opacity:0;transform:scale(2.5)}}.prompt-area-chip-ripple{aspect-ratio:1;background:var(--foreground);border-radius:50%;width:100%;position:absolute}@supports (color:color-mix(in lab, red, red)){.prompt-area-chip-ripple{background:color-mix(in srgb, var(--foreground) 15%, transparent)}}.prompt-area-chip-ripple{pointer-events:none;animation:.45s ease-out forwards prompt-area-chip-ripple}.prompt-area-md-marker{font-size:0;display:inline}.prompt-area-chip--inline{border-radius:0;margin:0;padding:0;font-weight:700}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.top-0\.5{top:calc(var(--spacing) * .5)}.right-0{right:0}.right-0\.5{right:calc(var(--spacing) * .5)}.bottom-0{bottom:0}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-full{bottom:100%}.left-0{left:0}.z-10{z-index:10}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-10{height:calc(var(--spacing) * 10)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-\[600px\]{height:600px}.h-full{height:100%}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-\[240px\]{max-height:240px}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-36{width:calc(var(--spacing) * 36)}.w-48{width:calc(var(--spacing) * 48)}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[200px\]{min-width:200px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-border{border-color:var(--border)}.border-white{border-color:var(--color-white)}.border-t-transparent{border-top-color:#0000}.bg-accent{background-color:var(--accent)}.bg-background{background-color:var(--background)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-muted{background-color:var(--muted)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.object-cover{object-fit:cover}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.text-left{text-align:left}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.break-words{overflow-wrap:break-word}.whitespace-pre-wrap{white-space:pre-wrap}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-white{color:var(--color-white)}.italic{font-style:italic}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.slide-in-from-top-4{--tw-enter-translate-y:calc(4*var(--spacing)*-1)}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-black\/80:hover{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/80:hover{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-primary\/80:hover{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:text-primary\/80:hover{color:color-mix(in oklab, var(--primary) 80%, transparent)}}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.dark\:bg-white\/60:is(.dark *){background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.dark\:bg-white\/60:is(.dark *){background-color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.dark\:text-black:is(.dark *){color:var(--color-black)}@media (hover:hover){.dark\:hover\:bg-white\/80:is(.dark *):hover{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-white\/80:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0)}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.14);--input:oklch(100% 0 0/.2);--ring:oklch(55.6% 0 0)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-blue-100:oklch(93.2% .032 255.585);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-bold:700;--leading-relaxed:1.625;--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base;@layer components{.prompt-area-chip{cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:baseline;background-color:var(--secondary);color:var(--foreground);border-radius:4px;align-items:center;margin:0 1px;padding:1px 6px;font-size:.875rem;font-weight:500;transition:background-color .2s,transform .15s cubic-bezier(.4,0,.2,1),box-shadow .2s;display:inline-flex;position:relative;overflow:hidden}.prompt-area-chip:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.prompt-area-chip:hover{background-color:color-mix(in srgb, var(--secondary) 80%, var(--foreground) 20%)}}.prompt-area-chip:hover{box-shadow:0 1px 4px var(--foreground)}@supports (color:color-mix(in lab, red, red)){.prompt-area-chip:hover{box-shadow:0 1px 4px color-mix(in srgb, var(--foreground) 10%, transparent)}}.prompt-area-chip:active{background-color:var(--secondary);transform:scale(.93)}@supports (color:color-mix(in lab, red, red)){.prompt-area-chip:active{background-color:color-mix(in srgb, var(--secondary) 70%, var(--foreground) 30%)}}.prompt-area-chip:active{transition:background-color 50ms,transform 80ms cubic-bezier(.4,0,.2,1),box-shadow 50ms;box-shadow:0 0 #0000}@keyframes prompt-area-chip-ripple{0%{opacity:.4;transform:scale(0)}to{opacity:0;transform:scale(2.5)}}.prompt-area-chip-ripple{aspect-ratio:1;background:var(--foreground);border-radius:50%;width:100%;position:absolute}@supports (color:color-mix(in lab, red, red)){.prompt-area-chip-ripple{background:color-mix(in srgb, var(--foreground) 15%, transparent)}}.prompt-area-chip-ripple{pointer-events:none;animation:.45s ease-out forwards prompt-area-chip-ripple}.prompt-area-md-marker{font-size:0;display:inline}.prompt-area-chip--inline{border-radius:0;margin:0;padding:0;font-weight:700}@media (prefers-reduced-motion:reduce){.prompt-area-editor{transition:none!important}}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.top-0\.5{top:calc(var(--spacing) * .5)}.right-0{right:0}.right-0\.5{right:calc(var(--spacing) * .5)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.bottom-0{bottom:0}.bottom-1\.5{bottom:calc(var(--spacing) * 1.5)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-full{bottom:100%}.left-0{left:0}.left-1\.5{left:calc(var(--spacing) * 1.5)}.isolate{isolation:isolate}.z-10{z-index:10}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-10{height:calc(var(--spacing) * 10)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-\[600px\]{height:600px}.h-full{height:100%}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-\[240px\]{max-height:240px}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-36{width:calc(var(--spacing) * 36)}.w-48{width:calc(var(--spacing) * 48)}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[200px\]{min-width:200px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-border{border-color:var(--border)}.border-white{border-color:var(--color-white)}.border-t-transparent{border-top-color:#0000}.bg-accent{background-color:var(--accent)}.bg-background{background-color:var(--background)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-muted{background-color:var(--muted)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.object-cover{object-fit:cover}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-\[3\.25rem\]{padding-right:3.25rem}.pr-\[5\.5rem\]{padding-right:5.5rem}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-14{padding-bottom:calc(var(--spacing) * 14)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-\[3\.25rem\]{padding-left:3.25rem}.text-left{text-align:left}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.break-words{overflow-wrap:break-word}.whitespace-pre-wrap{white-space:pre-wrap}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-white{color:var(--color-white)}.italic{font-style:italic}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-radius\,box-shadow\,border-color\]{transition-property:border-radius,box-shadow,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[padding\]{transition-property:padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-\[240ms\]{--tw-duration:.24s;transition-duration:.24s}.ease-\[cubic-bezier\(0\.33\,1\,0\.68\,1\)\]{--tw-ease:cubic-bezier(.33,1,.68,1);transition-timing-function:cubic-bezier(.33,1,.68,1)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.slide-in-from-top-4{--tw-enter-translate-y:calc(4*var(--spacing)*-1)}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-black\/80:hover{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/80:hover{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-primary\/80:hover{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:text-primary\/80:hover{color:color-mix(in oklab, var(--primary) 80%, transparent)}}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}.dark\:bg-white\/60:is(.dark *){background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.dark\:bg-white\/60:is(.dark *){background-color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.dark\:text-black:is(.dark *){color:var(--color-black)}@media (hover:hover){.dark\:hover\:bg-white\/80:is(.dark *):hover{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-white\/80:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0)}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.14);--input:oklch(100% 0 0/.2);--ring:oklch(55.6% 0 0)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}
package/dist/tailwind.css CHANGED
@@ -178,4 +178,14 @@
178
178
  /* Base styles for status-bar; Tailwind utilities handle the layout.
179
179
  This class exists as a stable selector for consumer overrides. */
180
180
  }
181
+
182
+ /* Honour reduced-motion for the auto-grow editor. Its height / min-height
183
+ transition is applied via inline styles (e.g. the compact prompt area's
184
+ collapse/expand), so it sits outside Tailwind's `motion-reduce` variant
185
+ and needs an explicit override here. */
186
+ @media (prefers-reduced-motion: reduce) {
187
+ .prompt-area-editor {
188
+ transition: none !important;
189
+ }
190
+ }
181
191
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prompt-area",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "An opinionated, dependency-light React rich-text prompt input with trigger-based chips (@mentions, /commands, #tags), inline markdown, undo/redo, file & image attachments, and a complete chat-input layout. Ships as an npm package or a shadcn registry.",
5
5
  "keywords": [
6
6
  "react",
@@ -72,37 +72,30 @@
72
72
  "clean": "rm -rf dist",
73
73
  "typecheck": "tsc --noEmit",
74
74
  "lint:exports": "publint && attw --pack . --profile esm-only --exclude-entrypoints styles.css tailwind.css",
75
+ "size": "size-limit",
75
76
  "prepublishOnly": "pnpm run build"
76
77
  },
77
78
  "engines": {
78
79
  "node": ">=18"
79
80
  },
80
81
  "peerDependencies": {
82
+ "clsx": ">=2",
81
83
  "react": ">=18",
82
84
  "react-dom": ">=18",
83
- "tailwindcss": ">=4",
84
- "tw-animate-css": ">=1"
85
- },
86
- "peerDependenciesMeta": {
87
- "tailwindcss": {
88
- "optional": true
89
- },
90
- "tw-animate-css": {
91
- "optional": true
92
- }
93
- },
94
- "dependencies": {
95
- "clsx": "^2.1.1",
96
- "tailwind-merge": "^3.6.0"
85
+ "tailwind-merge": ">=2"
97
86
  },
98
87
  "devDependencies": {
99
88
  "@arethetypeswrong/cli": "^0.18.2",
89
+ "@size-limit/preset-small-lib": "^11.2.0",
100
90
  "@tailwindcss/cli": "^4.3.0",
101
91
  "@types/react": "19.2.17",
102
92
  "@types/react-dom": "^19.2.3",
93
+ "clsx": "^2.1.1",
103
94
  "publint": "^0.3.14",
104
95
  "react": "^19.2.7",
105
96
  "react-dom": "^19.2.7",
97
+ "size-limit": "^11.2.0",
98
+ "tailwind-merge": "^3.6.0",
106
99
  "tailwindcss": "^4.3.0",
107
100
  "tsup": "^8.5.0",
108
101
  "tw-animate-css": "^1.4.0",
@@ -1,3 +0,0 @@
1
- 'use client';
2
- import {a,c}from'./chunk-LJJ6HHR6.js';import {a as a$1}from'./chunk-23Y7B365.js';import {useRef,useState,useImperativeHandle,useCallback}from'react';import {jsx,jsxs}from'react/jsx-runtime';function y({className:t,children:s}){return jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",className:t,children:s})}var v=({className:t})=>jsxs(y,{className:t,children:[jsx("path",{d:"M5 12h14"}),jsx("path",{d:"M12 5v14"})]}),q=({className:t})=>jsxs(y,{className:t,children:[jsx("path",{d:"m5 12 7-7 7 7"}),jsx("path",{d:"M12 19V5"})]});function J({value:t,onChange:s,triggers:P,placeholder:k,disabled:a$2=false,markdown:C,onSubmit:d,onEscape:N,onChipClick:A,onChipAdd:w,onChipDelete:R,onPaste:H,images:I,onImagePaste:S,onImageRemove:z,files:E,onFileRemove:F,plusButtonIcon:l,onPlusClick:p,submitButtonIcon:L,beforeSubmitSlot:M,maxHeight:j=320,className:B,"aria-label":D,"data-test-id":T,ref:U}){let i=useRef(null),m=useRef(null),[_,u]=useState(false);useImperativeHandle(U,()=>i.current,[]);let f=t.length===0||t.length===1&&t[0].type==="text"&&t[0].text==="",r=_||!f,G=useCallback(()=>{u(true);},[]),V=useCallback(()=>{setTimeout(()=>{m.current?.contains(document.activeElement)||u(false);},a);},[]),b=useCallback(()=>{d?.(t);},[d,t]);return jsx("div",{ref:m,onFocus:G,onBlur:V,"aria-label":D,"data-test-id":T,className:a$1("compact-prompt-area","bg-background border transition-all duration-200 ease-out",r?"rounded-2xl":"rounded-full",B),children:jsxs("div",{className:a$1("flex",r?"flex-col":"items-center p-1.5"),children:[!r&&jsx("button",{type:"button",onClick:p,disabled:a$2,className:a$1("flex shrink-0 items-center justify-center rounded-xl transition-colors","bg-muted text-muted-foreground size-9","hover:bg-accent hover:text-foreground","disabled:pointer-events-none disabled:opacity-50"),"aria-label":"Add attachment",children:l??jsx(v,{className:"size-4"})}),jsx("div",{className:a$1("min-w-0 flex-1",r?"px-5 pt-4 pb-2":"overflow-hidden px-3"),onClick:()=>i.current?.focus(),children:jsx(c,{ref:i,value:t,onChange:s,triggers:P,placeholder:k,disabled:a$2,markdown:C,onSubmit:b,onEscape:N,onChipClick:A,onChipAdd:w,onChipDelete:R,onPaste:H,images:I,onImagePaste:S,onImageRemove:z,files:E,onFileRemove:F,autoGrow:true,minHeight:r?48:24,maxHeight:j})}),jsxs("div",{className:a$1("flex shrink-0 items-center",r?"justify-between px-3 pt-1 pb-3":"gap-1.5"),children:[r&&jsx("button",{type:"button",onClick:p,disabled:a$2,className:a$1("flex shrink-0 items-center justify-center rounded-xl transition-colors","bg-muted text-muted-foreground size-9","hover:bg-accent hover:text-foreground","disabled:pointer-events-none disabled:opacity-50"),"aria-label":"Add attachment",children:l??jsx(v,{className:"size-4"})}),jsxs("div",{className:"flex items-center gap-1.5",children:[M,jsx("button",{type:"button",onClick:b,disabled:a$2||f,className:a$1("flex shrink-0 items-center justify-center rounded-xl transition-colors","bg-primary text-primary-foreground size-9","hover:bg-primary/90","disabled:pointer-events-none disabled:opacity-50"),"aria-label":"Send message",children:L??jsx(q,{className:"size-4"})})]})]})]})})}
3
- export{J as a};
@@ -1 +0,0 @@
1
- function i(e){return {type:"text",text:e}}function n(e){return {type:"chip",...e}}function o(e){return e.length===0?true:e.every(t=>t.type==="text"&&t.text.trim()==="")}function g(e){return e.some(t=>t.type==="chip")}function p(e){return e.filter(t=>t.type==="chip")}function s(e,t){return e.filter(r=>r.type==="chip"&&r.trigger===t)}function c(e={}){let{char:t="@",...r}=e;return {char:t,position:"any",mode:"dropdown",chipStyle:"pill",accessibilityLabel:"mention",...r}}function m(e={}){let{char:t="/",...r}=e;return {char:t,position:"start",mode:"dropdown",chipStyle:"inline",accessibilityLabel:"command",...r}}function h(e={}){let{char:t="#",...r}=e;return {char:t,position:"any",mode:"dropdown",chipStyle:"pill",resolveOnSpace:true,accessibilityLabel:"tag",...r}}function l(e){let{char:t,...r}=e;return {char:t,position:"start",mode:"callback",...r}}export{i as a,n as b,o as c,g as d,p as e,s as f,c as g,m as h,h as i,l as j};
@@ -1,14 +0,0 @@
1
- 'use client';
2
- import {a}from'./chunk-23Y7B365.js';import {a as a$1,d,e,l,f,g,j,i,h,m}from'./chunk-MJSTEY4N.js';import {useRef,useState,useCallback,useEffect,useMemo,useImperativeHandle}from'react';import {jsxs,Fragment,jsx}from'react/jsx-runtime';function fe(e,n){let o=e.lastIndexOf(`
3
- `,n-1)+1,t=e.indexOf(`
4
- `,n),r=e.slice(o,t===-1?e.length:t),a=r.match(/^(\s*)([•\-*]) /);if(a){let g=a[1];return {lineStart:o,prefix:a[0],indent:Math.floor(g.length/2),listType:"bullet",contentStart:o+a[0].length}}let c=r.match(/^(\s*)(\d+)\. /);if(c){let g=c[1];return {lineStart:o,prefix:c[0],indent:Math.floor(g.length/2),listType:"numbered",number:parseInt(c[2],10),contentStart:o+c[0].length}}return null}function ut(e,n){let o=a$1(e),t=o.lastIndexOf(`
5
- `,n-1)+1,r=o.slice(t,n),a=r.match(/^(\s*)[-*] $/);if(!a)return null;let g=`${a[1]}\u2022 `,x=t,T=t+r.length;return {segments:i(e,x,T,g),cursorOffset:t+g.length}}function dt(e,n){let o=a$1(e),t=fe(o,n);if(!t)return null;let r=o.indexOf(`
6
- `,n);if(o.slice(t.contentStart,r===-1?o.length:r).trim()==="")return {segments:i(e,t.lineStart,t.lineStart+t.prefix.length,""),cursorOffset:t.lineStart};let c=" ".repeat(t.indent),g;if(t.listType==="bullet")g=`${c}\u2022 `;else {let C=(t.number??1)+1;g=`${c}${C}. `;}let x=`
7
- ${g}`;return {segments:i(e,n,n,x),cursorOffset:n+x.length}}function ft(e,n){let o=a$1(e),t=fe(o,n);return t?{segments:i(e,t.lineStart,t.lineStart," "),cursorOffset:n+2}:null}function pt(e,n){let o=a$1(e),t=fe(o,n);return !t||t.indent===0?null:{segments:i(e,t.lineStart,t.lineStart+2,""),cursorOffset:Math.max(t.lineStart,n-2)}}function gt(e,n){let o=a$1(e),t=fe(o,n);return !t||n>t.contentStart?null:{segments:i(e,t.lineStart,t.contentStart," ".repeat(t.indent)),cursorOffset:t.lineStart+t.indent*2}}function Ve(e,n){let o=false,t=e.map(r=>{if(r.type!=="text")return r;let a=n?r.text.replace(/(^|\n)(\s*)- /g,"$1$2\u2022 "):r.text.replace(/(^|\n)(\s*)• /g,"$1$2- ");return a===r.text?r:(o=true,{...r,text:a})});return o?t:e}function te(e){return e instanceof HTMLElement}function B(e){return e instanceof HTMLElement&&e.dataset.chipTrigger!==void 0}function pe(e){return e instanceof HTMLBRElement}function vt(e){return e instanceof Text}function ge(e){return B(e)&&e.dataset.chipAutoResolved==="true"}function xt(e){return e instanceof HTMLAnchorElement&&e.dataset.url==="true"}function Wt(e){try{return JSON.parse(e)}catch{return}}function Be(e){try{return JSON.stringify(e)}catch{return}}function Te(e){if(B(e))return e.dataset.chipTrigger}function Ne(e){if(B(e))return e.dataset.chipValue}function ye(e){if(B(e))return e.dataset.chipDisplay??e.textContent??void 0}function Re(e){if(!B(e))return;let n=e.dataset.chipData;if(n)return Wt(n)}function De(e,n){let o=e.childNodes;for(let t=0;t<o.length;t++)if(o[t]===n)return t;return -1}function Me(e,n){let o=n;for(;o!==null;){if(o.parentNode===e)return o;o=o.parentNode;}return null}function Xt(e,n){let o=document.createDocumentFragment();for(;n.firstChild;)o.appendChild(n.firstChild);o.appendChild(document.createElement("br")),e.replaceChild(o,n);}function Le(e){let n=false,o=new Set(["DIV","P","SECTION","ARTICLE","BLOCKQUOTE"]);for(let t=e.childNodes.length-1;t>=0;t--){let r=e.childNodes[t];if(!(r instanceof HTMLElement)||r.dataset.chipTrigger!==void 0||r instanceof HTMLBRElement)continue;let a=r.tagName;if(o.has(a))Xt(e,r),n=true;else if(a==="FONT"||a==="B"||a==="I"||a==="U"||a==="STRONG"||a==="EM"||a==="A"||a==="SPAN"){let c=r.textContent??"";c?e.replaceChild(document.createTextNode(c),r):e.removeChild(r),n=true;}}return e.normalize(),n}var mt=/https?:\/\/[^\s),]+/g;function je(e){let n=false,o=[];for(let t=0;t<e.childNodes.length;t++){let r=e.childNodes[t];vt(r)&&r.textContent&&o.push(r);}for(let t of o){let r=t.textContent??"";mt.lastIndex=0;let a=[],c;for(;(c=mt.exec(r))!==null;){let E=c[0];for(;E.length>0&&/[.;:!?]$/.test(E);)E=E.slice(0,-1);E.length>0&&a.push({url:E,index:c.index});}if(a.length===0)continue;let g=t.parentNode;if(!g)continue;let x=[];for(let{url:E,index:b}of a)try{let h=new URL(E);(h.protocol==="http:"||h.protocol==="https:")&&x.push({url:E,href:h.href,index:b});}catch{}if(x.length===0)continue;n=true;let T=document.createDocumentFragment(),C=0;for(let{url:E,href:b,index:h}of x){h>C&&T.appendChild(document.createTextNode(r.slice(C,h)));let d=document.createElement("a");d.href=b,d.target="_blank",d.rel="noopener noreferrer",d.dataset.url="true",d.className="text-primary hover:text-primary/80 underline cursor-pointer",d.textContent=E,T.appendChild(d),C=h+E.length;}C<r.length&&T.appendChild(document.createTextNode(r.slice(C))),g.replaceChild(T,t);}return n}var ht=/(\*{3})(.+?)\*{3}|(\*{2})(.+?)\*{2}|(\*)(.+?)\*/g;function qe(e){let n=false,o=[];for(let t=0;t<e.childNodes.length;t++){let r=e.childNodes[t];vt(r)&&r.textContent&&o.push(r);}for(let t of o){let r=t.textContent??"";ht.lastIndex=0;let a=[],c;for(;(c=ht.exec(r))!==null;)c[1]&&c[2]?a.push({fullMatch:c[0],marker:c[1],content:c[2],index:c.index,className:"font-bold italic"}):c[3]&&c[4]?a.push({fullMatch:c[0],marker:c[3],content:c[4],index:c.index,className:"font-bold"}):c[5]&&c[6]&&a.push({fullMatch:c[0],marker:c[5],content:c[6],index:c.index,className:"italic"});if(a.length===0)continue;n=true;let g=t.parentNode;if(!g)continue;let x=document.createDocumentFragment(),T=0;for(let{fullMatch:C,marker:E,content:b,index:h,className:d}of a){h>T&&x.appendChild(document.createTextNode(r.slice(T,h)));let y=document.createElement("span");y.dataset.md="true";let I=document.createElement("span");I.className="prompt-area-md-marker",I.textContent=E;let K=document.createElement("span");K.className=d,K.textContent=b;let U=document.createElement("span");U.className="prompt-area-md-marker",U.textContent=E,y.appendChild(I),y.appendChild(K),y.appendChild(U),x.appendChild(y),T=h+C.length;}T<r.length&&x.appendChild(document.createTextNode(r.slice(T))),g.replaceChild(x,t);}return n}function W(){let e=window.getSelection();return !e||e.rangeCount===0?null:e.getRangeAt(0)}function St(e){let n=W();if(!n||!e.contains(n.startContainer))return null;let o=n.startContainer;if(o===e)return {nodeIndex:n.startOffset,offset:0};let t=Me(e,o);return t?{nodeIndex:De(e,t),offset:n.startOffset}:null}function Tt(e,n){let o=window.getSelection();if(!o)return;let t=e.childNodes;if(t.length===0)return;let r=document.createRange();if(n.nodeIndex>=t.length){let a=t[t.length-1];a.nodeType===Node.TEXT_NODE?r.setStart(a,(a.textContent??"").length):r.setStartAfter(a);}else {let a=t[n.nodeIndex];if(a.nodeType===Node.TEXT_NODE){let c=(a.textContent??"").length;r.setStart(a,Math.min(n.offset,c));}else r.setStartAfter(a);}r.collapse(true),o.removeAllRanges(),o.addRange(r);}function Ce(e){let n=W();if(!n||!e.contains(n.startContainer))return null;let o=document.createRange();return o.selectNodeContents(e),o.setEnd(n.startContainer,n.startOffset),we(o)}function yt(e,n){let o=Oe(e,n);if(!o)return null;let t=document.createRange();return t.setStart(o.node,o.offset),t.collapse(true),t}function ne(e,n){let o=window.getSelection();if(!o)return;let t=Oe(e,n);if(t){let a=document.createRange();a.setStart(t.node,t.offset),a.collapse(true),o.removeAllRanges(),o.addRange(a);return}let r=document.createRange();r.selectNodeContents(e),r.collapse(false),o.removeAllRanges(),o.addRange(r);}function we(e){let n=e.cloneContents(),o=0,t=r=>{if(r.nodeType===Node.TEXT_NODE)o+=(r.textContent??"").length;else if(B(r)){let a=r.dataset.chipTrigger??"",c=r.dataset.chipDisplay??r.textContent??"";o+=a.length+c.length;}else if(te(r)&&r.tagName==="BR"){if(r.dataset.sentinel)return;o+=1;}else te(r)&&r.childNodes.forEach(t);};return n.childNodes.forEach(t),o}function Ue(e){let n=W();if(!n||!e.contains(n.startContainer))return null;let o=document.createRange();o.selectNodeContents(e),o.setEnd(n.startContainer,n.startOffset);let t=we(o);if(n.collapsed)return {start:t,end:t};let r=document.createRange();r.selectNodeContents(e),r.setEnd(n.endContainer,n.endOffset);let a=we(r);return {start:t,end:a}}function Ct(e,n,o){let t=window.getSelection();if(!t)return;if(n===o){ne(e,n);return}let r=Oe(e,n),a=Oe(e,o);if(!r||!a)return;let c=document.createRange();c.setStart(r.node,r.offset),c.setEnd(a.node,a.offset),t.removeAllRanges(),t.addRange(c);}function Oe(e,n){let o=n;for(let t=0;t<e.childNodes.length;t++){let r=e.childNodes[t];if(r.nodeType===Node.TEXT_NODE){let a=(r.textContent??"").length;if(o<=a)return {node:r,offset:o};o-=a;}else if(B(r)){let a=r.dataset.chipTrigger??"",c=r.dataset.chipDisplay??r.textContent??"",g=a.length+c.length;if(o<=g)return {node:e,offset:t+1};o-=g;}else if(pe(r)){if(r.dataset.sentinel)continue;if(o<=1)return {node:e,offset:t+1};o-=1;}else if(te(r)){let a=(r.textContent??"").length;if(o<=a){let c=Oe(r,o);if(c)return c}o-=a;}}return {node:e,offset:e.childNodes.length}}function Vt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Et(e){let n="",o=t=>{if(t.nodeType===Node.TEXT_NODE)n+=t.textContent??"";else if(B(t)){let r=Te(t)??"",a=ye(t)??"";n+=r+a;}else te(t)&&t.tagName==="BR"?n+=`
8
- `:t.childNodes.forEach(o);};return e.childNodes.forEach(o),n}function bt(e){let n=[],o=t=>{if(t.nodeType===Node.TEXT_NODE){let r=t.textContent??"";r&&n.push({type:"text",text:r});}else if(B(t)){let r=Te(t),a=Ne(t),c=ye(t),g=Re(t),x=ge(t);if(r&&a!==void 0&&c){let T={type:"chip",trigger:r,value:a,displayText:c,...g!==void 0?{data:g}:{},...x?{autoResolved:true}:{}};n.push(T);}}else te(t)&&t.tagName==="BR"?n.push({type:"text",text:`
9
- `}):t.childNodes.forEach(o);};return e.childNodes.forEach(o),n}function Nt(e){try{let n=JSON.parse(e);if(!Array.isArray(n))return null;let o=[];for(let t of n){if(!Vt(t))return null;if(t.type==="text"&&typeof t.text=="string")o.push({type:"text",text:t.text});else if(t.type==="chip"&&typeof t.trigger=="string"&&typeof t.value=="string"&&typeof t.displayText=="string"){let r={type:"chip",trigger:t.trigger,value:t.value,displayText:t.displayText,...t.data!==void 0?{data:t.data}:{},...t.autoResolved?{autoResolved:!0}:{}};o.push(r);}else return null}return o}catch{return null}}function Rt(e,n,o){let t=W();if(!t)return [...e,...n];let r=document.createRange();r.selectNodeContents(o),r.setEnd(t.startContainer,t.startOffset);let a=we(r),c=[],g=0,x=false,T=()=>{x||(c.push(...n),x=true);};for(let C of e){if(C.type==="chip"){let b=C.trigger.length+C.displayText.length;g>=a&&T(),c.push(C),g+=b;continue}let E=g+C.text.length;if(E<=a)c.push(C);else if(g>=a)T(),c.push(C);else {let b=a-g,h=C.text.slice(0,b),d=C.text.slice(b);h&&c.push({type:"text",text:h}),T(),d&&c.push({type:"text",text:d});}g=E;}return T(),m(c)}var jt=100,Je=150;function Mt(e){let{editorRef:n,readSegmentsFromDOM:o,onChange:t,renderSegmentsToDOM:r,runTriggerDetection:a,dismissTrigger:c,triggers:g,onPaste:x,onUndo:T,onRedo:C,onChipAdd:E,onImagePaste:b}=e,h$1=useRef(false),d=useRef({undoStack:[],redoStack:[]}),y=useCallback(N=>{let L=d.current;L.undoStack.push(N),L.undoStack.length>jt&&L.undoStack.shift(),L.redoStack=[];},[]),I=useCallback(()=>{d.current={undoStack:[],redoStack:[]};},[]),K=useCallback(N=>{N.preventDefault();let L=n.current;if(!L)return;let D=Array.from(N.clipboardData.files).find(w=>w.type.startsWith("image/"))??Array.from(N.clipboardData.items).find(_=>_.type.startsWith("image/"))?.getAsFile()??null;if(D){b?.(D);return}let O=o();y(O);let S=N.clipboardData.getData("text/prompt-area-segments");if(S){let w=Nt(S);if(w&&w.length>0){let _=W();if(!_)return;_.deleteContents();let xe=o(),ie=Rt(xe,w,L);t(ie),r(ie),x?.({segments:ie,source:"internal"});for(let ue of w)ue.type==="chip"&&E?.(ue);a();return}}let k=N.clipboardData.getData("text/plain");if(!k)return;let M=W();if(!M)return;M.deleteContents();let $=k.split(`
10
- `),R=document.createDocumentFragment();for(let w=0;w<$.length;w++)$[w]&&R.appendChild(document.createTextNode($[w])),w<$.length-1&&R.appendChild(document.createElement("br"));M.insertNode(R),M.collapse(false);let ce=window.getSelection();ce?.removeAllRanges(),ce?.addRange(M),Le(L);let se=o(),ee=h(se,g);if(ee!==se){t(ee),r(ee);for(let w of ee)w.type==="chip"&&!se.some(_=>_.type==="chip"&&_.trigger===w.trigger&&_.value===w.value&&_.displayText===w.displayText)&&E?.(w);}else t(se);x?.({segments:ee,source:"external"}),a();},[n,o,t,y,a,r,g,x,E,b]),U=useCallback(N=>{N.preventDefault();let L=W();if(!L)return;let D=L.cloneContents(),O=Et(D);N.clipboardData.setData("text/plain",O);let S=bt(D);if(S.some(M=>M.type==="chip")){let M=Be(S);M&&N.clipboardData.setData("text/prompt-area-segments",M);}},[]),P=useCallback(N=>{U(N);let L=W();if(!L)return;let D=o();y(D),L.deleteContents();let O=n.current;O&&Le(O);let S=o();t(S),a();},[U,n,o,t,y,a]),X=useCallback(N=>{N.preventDefault();},[]),G=useCallback(N=>{N.preventDefault();},[]),he=useCallback(()=>{h$1.current=true;},[]),ae=useCallback(()=>{h$1.current=false,a();},[a]),ve=useCallback(()=>{setTimeout(()=>{let N=n.current;if(!N)return;let L=document.activeElement;L&&N.parentElement?.contains(L)||c();},Je);},[n,c]),oe=useCallback(N=>{if(!(N.metaKey||N.ctrlKey)||N.key!=="z")return false;N.preventDefault();let D=d.current;if(N.shiftKey){if(D.redoStack.length===0)return true;let O=D.redoStack.pop();if(!O)return true;let S=o();D.undoStack.push(S),t(O),r(O),C?.(O);}else {if(D.undoStack.length===0)return true;let O=D.undoStack.pop();if(!O)return true;let S=o();D.redoStack.push(S),t(O),r(O),T?.(O);}return true},[o,t,r,T,C]);return {handlePaste:K,handleCopy:U,handleCut:P,handleDrop:X,handleDragOver:G,handleCompositionStart:he,handleCompositionEnd:ae,handleBlur:ve,handleKeyDownForUndoRedo:oe,pushUndo:y,resetUndoHistory:I,isComposing:h$1}}function wt(){let[e,n]=useState([]),[o,t]=useState(false),[r,a]=useState(null),c=useRef(0),g=useRef(null),x=useRef(null),T=useCallback(()=>{g.current?.abort(),x.current&&clearTimeout(x.current),n([]),t(false),a(null);},[]),C=useCallback((E,b)=>{if(!b.onSearch)return;g.current?.abort(),x.current&&clearTimeout(x.current),t(true),a(null),c.current++;let h=c.current,d=new AbortController;g.current=d;let{onSearch:y,onSearchError:I,searchDebounceMs:K}=b,U=()=>{let P=y(E,{signal:d.signal});P instanceof Promise?P.then(X=>{d.signal.aborted||c.current!==h||(n(X),t(false));},X=>{d.signal.aborted||c.current!==h||X instanceof DOMException&&X.name==="AbortError"||(a(X instanceof Error?X.message:"Search failed"),t(false),I?.(X));}):(n(P),t(false));};K&&K>0&&E.length>0?x.current=setTimeout(U,K):U();},[]);return useEffect(()=>()=>{g.current?.abort(),x.current&&clearTimeout(x.current);},[]),{suggestions:e,suggestionsLoading:o,suggestionsError:r,search:C,reset:T}}var Jt=300;function kt({value:e$1,onChange:n,triggers:o=[],onSubmit:t,onEscape:r,onChipClick:a$2,onChipAdd:c,onChipDelete:g$1,onLinkClick:x,onPaste:T,onUndo:C,onRedo:E,onImagePaste:b,markdown:h=true}){let d$1=useRef(null),[y,I]=useState(null),[K,U]=useState(0),[P,X]=useState(null),{suggestions:G,suggestionsLoading:he,suggestionsError:ae,search:ve,reset:oe}=wt(),N=useRef(false),L=useRef([]),D=useRef(null),O=useRef(null),S=useCallback(()=>{let s=d$1.current;if(!s)return [];let f=[];for(let m=0;m<s.childNodes.length;m++){let i=s.childNodes[m];if(i.nodeType===Node.TEXT_NODE){let l=i.textContent??"";l&&f.push({type:"text",text:l});}else if(B(i)){let l=Te(i),u=Ne(i),p=ye(i),v=Re(i);if(l&&u!==void 0&&p){let H=ge(i);f.push({type:"chip",trigger:l,value:u,displayText:p,...v!==void 0?{data:v}:{},...H?{autoResolved:true}:{}});}}else if(pe(i)){if(i.dataset.sentinel)continue;f.push({type:"text",text:`
11
- `});}else if(te(i)){let l=i.textContent??"";l&&f.push({type:"text",text:l});}}return f},[]),k=useCallback(s=>{let f=d$1.current;if(!f)return;N.current=true;let m=St(f);for(;f.firstChild;)f.removeChild(f.firstChild);for(let i of s)if(i.type==="text"){let l=i.text.split(`
12
- `);for(let u=0;u<l.length;u++)l[u]&&f.appendChild(document.createTextNode(l[u])),u<l.length-1&&f.appendChild(document.createElement("br"));}else {let l=document.createElement("span");if(l.contentEditable="false",l.dataset.chipTrigger=i.trigger,l.dataset.chipValue=i.value,l.dataset.chipDisplay=i.displayText,i.data!==void 0){let v=Be(i.data);v&&(l.dataset.chipData=v);}i.autoResolved&&(l.dataset.chipAutoResolved="true");let u=o.find(v=>v.char===i.trigger),p=u?.chipStyle??"pill";l.dataset.chipStyle=p,l.className=a("prompt-area-chip",p==="inline"&&"prompt-area-chip--inline",u?.chipClassName),l.textContent=`${i.trigger}${i.displayText}`,l.setAttribute("role","button"),l.setAttribute("tabindex","-1"),f.appendChild(l);}if(f.lastChild&&pe(f.lastChild)){let i=document.createElement("br");i.dataset.sentinel="true",f.appendChild(i);}je(f),h&&qe(f),m&&Tt(f,m),L.current=s,N.current=false;},[o,h]),M=useCallback(()=>{let s=d$1.current;if(!s)return;let f=S(),m=a$1(f),i=Ce(s);if(i===null)return;let l=d(m,i,o);if(l){I(l),U(0);let u=yt(s,l.startOffset);if(u){let p=u.getBoundingClientRect();(p.height>0||p.left>0||p.top>0)&&X(p);}l.config.mode==="dropdown"&&l.config.onSearch&&ve(l.query,l.config),l.config.mode==="callback"&&l.config.onActivate&&l.config.onActivate({text:m,cursorPosition:i,insertChip:p=>{let v=e(f,l,{value:p.value,displayText:p.displayText,data:p.data});n(v.segments),k(v.segments),c?.({type:"chip",trigger:l.config.char,value:p.value,displayText:p.displayText,...p.data!==void 0?{data:p.data}:{}});let H=d$1.current;H&&ne(H,v.cursorOffset);}});}else I(null),oe();},[o,S,n,k,c,oe,ve]),$=useCallback(()=>{I(null),U(0),oe();},[oe]),R=Mt({editorRef:d$1,readSegmentsFromDOM:S,onChange:n,renderSegmentsToDOM:k,runTriggerDetection:M,dismissTrigger:$,triggers:o,onPaste:T,onUndo:C,onRedo:E,onChipAdd:c,onImagePaste:b});useEffect(()=>{if(!N.current&&!l(e$1,L.current)){if(h){let s=Ve(e$1,true);if(s!==e$1){n(s);return}}k(e$1);}},[e$1,k,h,n]);let ce=useRef(h);useEffect(()=>{if(ce.current===h)return;ce.current=h;let s=Ve(e$1,h);s!==e$1?n(s):k(e$1);},[h,k,e$1,n]),useEffect(()=>()=>{D.current&&clearTimeout(D.current);},[]);let se=useCallback(()=>{if(N.current)return;if(R.isComposing.current){let i=S();L.current=i,n(i);return}let s=d$1.current,f=s?Ce(s):null;s&&Le(s);let m=S();if(h&&s&&f!==null){let i=ut(m,f);if(i){L.current=i.segments,n(i.segments),k(i.segments),ne(s,i.cursorOffset),M();return}}O.current||(O.current=L.current),L.current=m,n(m),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{O.current&&(R.pushUndo(O.current),O.current=null),D.current=null;},Jt),s&&(je(s),h&&qe(s),f!==null&&ne(s,f)),M();},[n,S,M,k,h,R]),ee=useCallback(s=>{let f=s.target;if(!(f instanceof Node))return;let m=d$1.current;if(!m)return;let i=f;for(;i&&i!==m;){if(xt(i)){if(s.metaKey||s.ctrlKey){s.preventDefault(),x?.(i.href),window.open(i.href,"_blank","noopener,noreferrer");return}break}if(B(i)){let l=i,u=l.getBoundingClientRect(),p=document.createElement("span");p.className="prompt-area-chip-ripple";let v=Math.max(u.width,u.height);if(p.style.width=`${v}px`,p.style.height=`${v}px`,p.style.left=`${s.clientX-u.left-v/2}px`,p.style.top=`${s.clientY-u.top-v/2}px`,l.appendChild(p),p.addEventListener("animationend",()=>p.remove()),!a$2)return;let H=Te(i),z=Ne(i),Pe=ye(i),be=Re(i);if(H&&z!==void 0&&Pe){let Ie=ge(i),J={type:"chip",trigger:H,value:z,displayText:Pe,...be!==void 0?{data:be}:{},...Ie?{autoResolved:true}:{}};a$2(J);}return}i=i.parentNode;}},[a$2,x]),w=useCallback((s,f$1)=>{let m=S(),i=De(s,f$1);if(i===-1)return false;let l=0;for(let v=0;v<i;v++){let H=s.childNodes[v];(H.nodeType===Node.TEXT_NODE&&(H.textContent??"")!==""||B(H)||pe(H))&&l++;}let u=m[l],p=f(m,l);return n(p),k(p),u?.type==="chip"&&g$1?.(u),true},[S,n,k,g$1]),_=useCallback((s,f)=>{let m=S(),i=De(s,f);if(i===-1)return false;let l=0;for(let H=0;H<i;H++){let z=s.childNodes[H];(z.nodeType===Node.TEXT_NODE&&(z.textContent??"")!==""||B(z)||pe(z))&&l++;}let u=m[l],p=g(m,l);if(!p)return false;let v=0;for(let H=0;H<l;H++){let z=m[H];z.type==="text"?v+=z.text.length:v+=z.trigger.length+z.displayText.length;}return v+=p.revertedText.length,n(p.segments),k(p.segments),ne(s,v),u?.type==="chip"&&g$1?.(u),true},[S,n,k,g$1]),xe=useCallback(()=>{let s=d$1.current;if(!s)return false;let f=W();if(!f||!f.collapsed)return false;let m=f.startContainer,i=f.startOffset;if(m===s&&i>0){let l=s.childNodes[i-1];if(l&&B(l))return ge(l)?_(s,l):w(s,l)}if(m.nodeType===Node.TEXT_NODE&&i===0){let l=Me(s,m);if(!l)return false;let u=l.previousSibling;for(;u&&u.nodeType===Node.TEXT_NODE&&u.textContent==="";)u=u.previousSibling;if(u&&B(u))return ge(u)?_(s,u):w(s,u)}return false},[w,_]),ie=useCallback(()=>{let s=d$1.current;if(!s)return false;let f=W();if(!f||!f.collapsed)return false;let m=f.startContainer,i=f.startOffset;if(m===s&&i<s.childNodes.length){let l=s.childNodes[i];if(l&&B(l))return w(s,l)}if(m.nodeType===Node.TEXT_NODE&&i===(m.textContent??"").length){let l=Me(s,m);if(!l)return false;let u=l.nextSibling;for(;u&&u.nodeType===Node.TEXT_NODE&&u.textContent==="";)u=u.nextSibling;if(u&&B(u))return w(s,u)}return false},[w]),ue=useCallback(s=>{let f=S(),m=s.query,i={value:m,label:m},l=s.config.onSelect?.(i)??m,u={value:m,displayText:l||m,autoResolved:true},p=e(f,s,u);n(p.segments),k(p.segments),c?.({type:"chip",trigger:s.config.char,...u});let v=d$1.current;v&&ne(v,p.cursorOffset),$();},[S,n,k,$,c]),Se=useCallback(s=>{if(!y)return;let f=S(),m=y.config.onSelect?.(s)??s.label,i={value:s.value,displayText:m||s.label,data:s.data},l=e(f,y,i);n(l.segments),k(l.segments),c?.({type:"chip",trigger:y.config.char,...i});let u=d$1.current;u&&ne(u,l.cursorOffset),$(),setTimeout(()=>{d$1.current?.focus();},0);},[y,S,n,k,$,c]),We=Se,q=useCallback(s=>{let f=(i,l)=>{L.current=l.segments,n(l.segments),k(l.segments),ne(i,l.cursorOffset);},m=i=>{if(!h)return false;let l=S(),u=Ce(i);if(u===null)return false;let p=a$1(l);if(!fe(p,u))return false;let v=dt(l,u);return v&&f(i,v),true};if((s.metaKey||s.ctrlKey)&&s.key==="z"&&O.current&&(D.current&&(clearTimeout(D.current),D.current=null),R.pushUndo(O.current),O.current=null),!R.handleKeyDownForUndoRedo(s)){if(h&&(s.metaKey||s.ctrlKey)&&!s.shiftKey&&(s.key==="b"||s.key==="i")){s.preventDefault();let i=d$1.current;if(!i)return;let l=Ue(i);if(!l||l.start===l.end)return;let u=s.key==="b"?"**":"*",p=S();R.pushUndo(p);let v=j(p,l.start,l.end,u);if(!v)return;L.current=v.segments,n(v.segments),k(v.segments),Ct(i,v.selectionStart,v.selectionEnd);return}if(y&&y.config.mode==="dropdown"&&G.length>0){if(s.key==="ArrowDown"){s.preventDefault(),U(i=>Math.min(i+1,G.length-1));return}if(s.key==="ArrowUp"){s.preventDefault(),U(i=>Math.max(i-1,0));return}if(s.key==="Enter"||s.key==="Tab"){s.preventDefault();let i=G[K];i&&Se(i);return}if(s.key==="Escape"){s.preventDefault(),$();return}}if(s.key===" "&&y&&y.config.resolveOnSpace&&y.query.trim().length>0){s.preventDefault(),ue(y);return}if(h&&s.key==="Tab"&&!y){let i=d$1.current;if(i){let l=S(),u=a$1(l),p=Ce(i);if(p!==null&&fe(u,p)){s.preventDefault();let H=s.shiftKey?pt(l,p):ft(l,p);H&&f(i,H);return}}}if(s.key==="Enter"&&s.shiftKey&&!s.nativeEvent.isComposing){s.preventDefault();let i$1=d$1.current;if(i$1){if(m(i$1))return;let l=Ue(i$1);if(l){let u=S();R.pushUndo(u);let p=i(u,l.start,l.end,`
13
- `);f(i$1,{segments:p,cursorOffset:l.start+1});}}return}if(s.key==="Enter"&&!s.shiftKey&&!s.nativeEvent.isComposing){let i=d$1.current;if(i&&m(i)){s.preventDefault();return}if(t){s.preventDefault(),t(S());return}}if(s.key==="Escape"&&r){r();return}if((s.key==="Backspace"||s.key==="Delete")&&!s.nativeEvent.isComposing){let i$1=d$1.current;if(i$1){let l=Ue(i$1);if(l&&l.start!==l.end){s.preventDefault();let u=S();R.pushUndo(u);let p=i(u,l.start,l.end,"");f(i$1,{segments:p,cursorOffset:l.start}),M();return}}}if(s.key==="Backspace"){let i=d$1.current;if(i){let l=S(),u=Ce(i);if(h&&u!==null){let p=gt(l,u);if(p){s.preventDefault(),f(i,p),M();return}}}if(xe()){s.preventDefault(),M();return}}if(s.key==="Delete"&&ie()){s.preventDefault(),M();return}}},[y,G,K,t,r,S,n,k,h,$,xe,ie,ue,M,Se,R]),V=useMemo(()=>({focus:()=>d$1.current?.focus(),blur:()=>d$1.current?.blur(),insertChip:s=>{let f=S(),m={type:"chip",...s},i=[...f,m,{type:"text",text:" "}];n(i),k(i),c?.(m);},getPlainText:()=>a$1(S()),clear:()=>{n([]);let s=d$1.current;if(s)for(;s.firstChild;)s.removeChild(s.firstChild);R.resetUndoHistory(),D.current&&(clearTimeout(D.current),D.current=null),O.current=null;}}),[S,n,k,c,R]),He=useMemo(()=>({onPaste:R.handlePaste,onCopy:R.handleCopy,onCut:R.handleCut,onDrop:R.handleDrop,onDragOver:R.handleDragOver,onCompositionStart:R.handleCompositionStart,onCompositionEnd:R.handleCompositionEnd,onBlur:R.handleBlur}),[R.handlePaste,R.handleCopy,R.handleCut,R.handleDrop,R.handleDragOver,R.handleCompositionStart,R.handleCompositionEnd,R.handleBlur]);return {editorRef:d$1,activeTrigger:y,suggestions:G,suggestionsLoading:he,suggestionsError:ae,selectedSuggestionIndex:K,handleInput:se,handleKeyDown:q,handleClick:ee,selectSuggestion:We,dismissTrigger:$,handle:V,triggerRect:P,eventHandlers:He}}function It({suggestions:e,loading:n,error:o,emptyMessage:t,selectedIndex:r,onSelect:a$1,onDismiss:c,triggerRect:g,triggerChar:x}){let T=useRef(null),C=useRef(null);if(useEffect(()=>{C.current?.scrollIntoView({block:"nearest"});},[r]),useEffect(()=>{let d=y=>{let I=y.target;T.current&&I instanceof Node&&!T.current.contains(I)&&c();};return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[c]),!g||e.length===0&&!n&&!o&&!t)return null;let E=Math.min(320,window.innerWidth-16),b=Math.min(g.left,window.innerWidth-E-8),h={position:"fixed",left:`${Math.max(8,b)}px`,top:`${g.bottom+4}px`,zIndex:50,maxWidth:`${E}px`};return jsx("div",{ref:T,className:a("max-h-[240px] min-w-[200px] overflow-y-auto","bg-popover rounded-xl border p-2 shadow-md","animate-in fade-in-0 zoom-in-95"),style:h,role:"listbox","aria-label":`${x} suggestions`,children:n?jsx("div",{role:"option","aria-selected":false,className:"text-muted-foreground px-3 py-2 text-sm",children:"Loading suggestions..."}):o?jsx("div",{role:"option","aria-selected":false,className:"text-destructive px-3 py-2 text-sm",children:o}):e.length===0&&t?jsx("div",{role:"option","aria-selected":false,className:"text-muted-foreground px-3 py-2 text-sm",children:t}):e.map((d,y)=>jsxs("button",{ref:y===r?C:void 0,type:"button",role:"option","aria-selected":y===r,className:a("text-foreground flex w-full items-start gap-2 rounded-lg px-3 py-2 text-left text-sm","hover:bg-accent cursor-pointer transition-colors",y===r&&"bg-accent"),onMouseDown:I=>{I.preventDefault(),a$1(d);},children:[d.icon&&jsx("span",{className:"mt-0.5 shrink-0",children:d.icon}),jsxs("div",{className:"min-w-0 flex-1",children:[jsx("div",{className:"truncate font-medium",children:d.label}),d.description&&jsx("div",{className:"text-muted-foreground truncate text-xs",children:d.description})]})]},d.value))})}function Bt({texts:e,interval:n=3e3}){let[o,t]=useState(0);return useEffect(()=>{if(e.length<=1)return;let r=setInterval(()=>{t(a=>(a+1)%e.length);},n);return ()=>clearInterval(r)},[e.length,n]),jsx("div",{className:"pointer-events-none absolute top-0 left-0 overflow-hidden text-sm leading-relaxed select-none",style:{color:"var(--prompt-area-placeholder, var(--muted-foreground))"},"aria-hidden":"true",children:jsx("div",{className:"animate-in fade-in-0 slide-in-from-top-4 duration-300 ease-in-out",children:e[o]},o)})}function $e({onClick:e,label:n,className:o}){return jsx("button",{type:"button",onClick:t=>{t.stopPropagation(),e();},className:a("absolute top-0.5 right-0.5 grid h-3.5 w-3.5 cursor-pointer place-items-center","rounded-full bg-black/60 text-white hover:bg-black/80 dark:bg-white/60 dark:text-black dark:hover:bg-white/80","transition-colors",o),"aria-label":n,children:jsxs("svg",{width:"8",height:"8",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",children:[jsx("line",{x1:"2.75",y1:"2.75",x2:"7.25",y2:"7.25"}),jsx("line",{x1:"7.25",y1:"2.75",x2:"2.75",y2:"7.25"})]})})}function Ut({images:e,onRemove:n,onClick:o,className:t}){return e.length===0?null:jsx("div",{className:a("flex flex-wrap gap-2",t),role:"list","aria-label":"Attached images",children:e.map(r=>jsxs("div",{role:"listitem",className:a("border-border relative h-16 w-16 flex-shrink-0 overflow-hidden rounded-md border",o&&"cursor-pointer"),onClick:()=>o?.(r),children:[jsx("img",{src:r.url,alt:r.alt??"Attached image",className:"h-full w-full object-cover"}),r.loading&&jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/40",children:jsx("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-white border-t-transparent"})}),n&&jsx($e,{onClick:()=>n(r),label:`Remove ${r.alt??"image"}`})]},r.id))})}function Ae({className:e,children:n}){return jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",className:e,children:n})}var _e=jsxs(Fragment,{children:[jsx("path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"}),jsx("path",{d:"M14 2v5a1 1 0 0 0 1 1h5"})]}),nn=({className:e})=>jsx(Ae,{className:e,children:_e}),rn=({className:e})=>jsxs(Ae,{className:e,children:[_e,jsx("path",{d:"M10 9H8"}),jsx("path",{d:"M16 13H8"}),jsx("path",{d:"M16 17H8"})]}),on=({className:e})=>jsxs(Ae,{className:e,children:[_e,jsx("path",{d:"M8 13h2"}),jsx("path",{d:"M14 13h2"}),jsx("path",{d:"M8 17h2"}),jsx("path",{d:"M14 17h2"})]}),sn=({className:e})=>jsxs(Ae,{className:e,children:[_e,jsx("path",{d:"M10 12.5 8 15l2 2.5"}),jsx("path",{d:"m14 12.5 2 2.5-2 2.5"})]}),ln=({className:e})=>jsxs(Ae,{className:e,children:[jsx("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"}),jsx("circle",{cx:"9",cy:"9",r:"2"}),jsx("path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"})]}),Ke=3;function an(e){return e?e==="application/pdf"?"pdf":e.includes("spreadsheet")||e==="text/csv"?"spreadsheet":e.startsWith("text/")||e.includes("javascript")||e.includes("json")||e.includes("xml")?"code":e.startsWith("image/")?"image":"default":"default"}var cn={pdf:rn,spreadsheet:on,code:sn,image:ln,default:nn};function un(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(1)} GB`}function dn(e){let n=e.lastIndexOf(".");return n===-1||n===e.length-1?null:e.slice(n+1).toUpperCase()}function Kt({file:e,compact:n,onRemove:o,onClick:t}){let r=dn(e.name),a$1=e.size!=null?un(e.size):null,c=[r,a$1].filter(Boolean).join(" \xB7 ");return jsxs("div",{role:"listitem",className:a("border-border relative flex flex-shrink-0 items-center gap-2 overflow-hidden rounded-lg border transition-colors","hover:bg-accent",n?"h-10 w-36 px-2":"h-14 w-48 px-3",t&&"cursor-pointer"),onClick:()=>t?.(e),children:[(()=>{let g=cn[an(e.type)];return jsx(g,{className:a("text-muted-foreground flex-shrink-0",n?"h-4 w-4":"h-5 w-5")})})(),jsxs("div",{className:"min-w-0 flex-1",children:[jsx("div",{className:a("truncate font-medium",n?"text-xs":"text-sm"),title:e.name,children:e.name}),!n&&c&&jsx("div",{className:"text-muted-foreground truncate text-xs",children:c})]}),e.loading&&jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/40",children:jsx("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-white border-t-transparent"})}),o&&jsx($e,{onClick:()=>o(e),label:`Remove ${e.name}`})]})}function _t({files:e,onRemove:n,onClick:o,className:t}){let[r,a$1]=useState(false),c=useRef(null),g=useRef(null);if(useEffect(()=>{if(!r)return;let b=h=>{let d=h.target;c.current&&!c.current.contains(d)&&!g.current?.contains(d)&&a$1(false);};return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[r]),e.length===0)return null;let x=e.length>Ke,T=x,C=e.length-Ke,E=e.slice(0,Ke);return jsxs("div",{className:a("relative",t),children:[jsxs("div",{className:"flex flex-wrap gap-2",role:"list","aria-label":"Attached files",children:[(x?E:e).map(b=>jsx(Kt,{file:b,compact:T,onRemove:n,onClick:o},b.id)),x&&jsx("div",{role:"listitem",children:jsx("button",{ref:g,type:"button",onClick:()=>a$1(b=>!b),className:a("border-border text-muted-foreground hover:bg-accent flex flex-shrink-0 cursor-pointer items-center justify-center rounded-lg border transition-colors",T?"h-10 px-3 text-xs":"h-14 px-4 text-sm"),children:r?"Show less":`+${C} more`})})]}),r&&jsx("div",{ref:c,className:a("bg-popover border-border absolute bottom-full left-0 z-10 mb-2 max-h-48 overflow-y-auto rounded-lg border p-2 shadow-lg"),children:jsx("div",{className:"flex flex-wrap gap-2",role:"list","aria-label":"More attached files",children:e.slice(Ke).map(b=>jsx(Kt,{file:b,compact:T,onRemove:n,onClick:o},b.id))})})]})}function gr({value:e,onChange:n,triggers:o,placeholder:t,className:r,disabled:a$1=false,markdown:c,onSubmit:g,onEscape:x,onChipClick:T,onChipAdd:C,onChipDelete:E,onLinkClick:b,onPaste:h,onUndo:d,onRedo:y,minHeight:I=80,maxHeight:K,autoFocus:U=false,autoGrow:P=false,"aria-label":X,"data-test-id":G,images:he=[],imagePosition:ae="above",onImagePaste:ve,onImageRemove:oe,onImageClick:N,files:L=[],filePosition:D="above",onFileRemove:O,onFileClick:S,ref:k}){let{editorRef:M,activeTrigger:$,suggestions:R,suggestionsLoading:ce,suggestionsError:se,selectedSuggestionIndex:ee,handleInput:w,handleKeyDown:_,handleClick:xe,selectSuggestion:ie,dismissTrigger:ue,handle:Se,triggerRect:We,eventHandlers:q}=kt({value:e,onChange:n,triggers:o,onSubmit:g,onEscape:x,onChipClick:T,onChipAdd:C,onChipDelete:E,onLinkClick:b,onPaste:h,onUndo:d,onRedo:y,onImagePaste:ve,markdown:c});useImperativeHandle(k,()=>Se,[Se]),useEffect(()=>{U&&M.current?.focus();},[U,M]);let[V,He]=useState(false),[s,f]=useState(void 0),m=useCallback(()=>{let J=M.current;if(!J)return;J.style.height="auto";let de=J.scrollHeight;J.style.height=`${de}px`,f(de);},[M]),i=useCallback(()=>{P&&(He(true),m());},[P,m]),l=useCallback(()=>{q.onBlur(),P&&setTimeout(()=>{let J=M.current;if(!J)return;let de=document.activeElement;de&&J.parentElement?.contains(de)||(He(false),f(void 0));},Je);},[q,P,M]),u=useCallback(()=>{w(),P&&V&&m();},[w,P,V,m]);useEffect(()=>{P&&V&&requestAnimationFrame(()=>m());},[e,P,V,m]);let[p,v]=useState(false),H=useRef(null);useEffect(()=>{if(!P)return;let J=()=>{if(V){v(false);return}let Xe=M.current;Xe&&v(Xe.scrollHeight>Xe.clientHeight);},de=V?0:160;return H.current=setTimeout(J,de),()=>{H.current!==null&&clearTimeout(H.current);}},[P,V,e,M]);let z=useMemo(()=>P?{height:V&&s?`${s}px`:`${I}px`,minHeight:`${I}px`,maxHeight:"70dvh",overflowY:V?"auto":"hidden",transition:"height 150ms ease-out"}:{minHeight:`${I}px`,...K?{maxHeight:`${K}px`,overflowY:"auto"}:{}},[P,I,K,V,s]),Pe=e.length===0||e.length===1&&e[0].type==="text"&&e[0].text==="",be=he.length>0?jsx(Ut,{images:he,onRemove:oe,onClick:N,className:ae==="above"?"pb-2":"pt-2"}):null,Ie=L.length>0?jsx(_t,{files:L,onRemove:O,onClick:S,className:D==="above"?"pb-2":"pt-2"}):null;return jsxs("div",{className:a("prompt-area-container relative",r),children:[ae==="above"&&be,D==="above"&&Ie,jsxs("div",{className:"relative",children:[jsx("div",{ref:M,contentEditable:!a$1,suppressContentEditableWarning:true,role:"textbox","aria-label":X??"Text input","aria-multiline":"true","aria-disabled":a$1||void 0,"data-test-id":G,className:a("prompt-area-editor","w-full min-w-0 break-words whitespace-pre-wrap outline-none","text-sm leading-relaxed",a$1&&"cursor-not-allowed opacity-50"),style:z,onFocus:i,onInput:P?u:w,onKeyDown:_,onClick:xe,onPaste:q.onPaste,onCopy:q.onCopy,onCut:q.onCut,onDrop:q.onDrop,onDragOver:q.onDragOver,onCompositionStart:q.onCompositionStart,onCompositionEnd:q.onCompositionEnd,onBlur:P?l:q.onBlur}),P&&p&&!V&&jsx("div",{"aria-hidden":"true",className:"pointer-events-auto absolute right-0 bottom-0 left-0 cursor-pointer",style:{height:"32px"},onClick:()=>M.current?.focus(),children:jsx("div",{className:"h-full w-full",style:{background:"linear-gradient(to bottom, transparent, color-mix(in srgb, var(--prompt-area-surface, var(--background)) 80%, transparent), var(--prompt-area-surface, var(--background)))"}})}),Pe&&t&&(Array.isArray(t)?jsx(Bt,{texts:t}):jsx("div",{className:"pointer-events-none absolute top-0 left-0 text-sm leading-relaxed select-none",style:{color:"var(--prompt-area-placeholder, var(--muted-foreground))"},"aria-hidden":"true",children:t}))]}),D==="below"&&Ie,ae==="below"&&be,$&&$.config.mode==="dropdown"&&jsx(It,{suggestions:R,loading:ce,error:se,emptyMessage:$.config.emptyMessage,selectedIndex:ee,onSelect:ie,onDismiss:ue,triggerRect:We,triggerChar:$.config.char})]})}
14
- export{Je as a,kt as b,gr as c};
@@ -1,7 +0,0 @@
1
- function S(n){return n.map(t=>t.type==="text"?t.text:`${t.trigger}${t.displayText}`).join("")}function b(n){return n?[{type:"text",text:n}]:[]}function m(n,t,r){if(t===0)return true;let i=n[t-1];return r==="start"?i===`
2
- `:i===" "||i===`
3
- `||i===" "}function C(n,t,r){if(!n||t===0||r.length===0)return null;for(let i=t-1;i>=0;i--){let e=n[i];if(e===" "||e===`
4
- `||e===" "){if(i+1<t){let g=n[i+1],p=r.find(u=>u.char===g);if(p&&m(n,i+1,p.position))return {config:p,startOffset:i+1,query:n.slice(i+2,t)}}return null}let s=r.find(g=>g.char===e);if(s&&m(n,i,s.position))return {config:s,startOffset:i,query:n.slice(i+1,t)}}return null}function w(n,t,r){let i=t.startOffset,e=i+1+t.query.length,s=[],g=0;for(let o of n)if(o.type==="chip"){let c=`${o.trigger}${o.displayText}`,a=g,h=g+c.length;(h<=i||a>=e)&&s.push(o),g=h;}else {let c=g,a=g+o.text.length;if(a<=i)s.push(o);else if(c>=e)s.push(o);else {let h=o.text.slice(0,Math.max(0,i-c)),T=o.text.slice(Math.min(o.text.length,e-c));h&&s.push({type:"text",text:h});let d={type:"chip",trigger:t.config.char,value:r.value,displayText:r.displayText,...r.data!==void 0?{data:r.data}:{},...r.autoResolved?{autoResolved:true}:{}};s.push(d),T?s.push({type:"text",text:" "+T.replace(/^\s/,"")}):s.push({type:"text",text:" "});}g=a;}let p=x(s),u=-1,l=0;for(let o of p)o.type==="text"?l+=o.text.length:(l+=o.trigger.length+o.displayText.length,o.value===r.value&&o.displayText===r.displayText&&o.trigger===t.config.char&&(u=l));let f=u===-1?l:u+1;return {segments:p,cursorOffset:f}}function O(n,t){if(t<0||t>=n.length||n[t].type!=="chip")return n;let r=[...n.slice(0,t),...n.slice(t+1)];return x(r)}function A(n,t){if(t<0||t>=n.length)return null;let r=n[t];if(r.type!=="chip"||!r.autoResolved)return null;let i=`${r.trigger}${r.displayText}`,e=[...n.slice(0,t),{type:"text",text:i},...n.slice(t+1)];return {segments:x(e),revertedText:i}}function M(n,t){let r=t.filter(s=>s.resolveOnSpace);if(r.length===0)return n;let i=new Set(r.map(s=>s.char)),e=[];for(let s of n){if(s.type==="chip"){e.push(s);continue}let g=v(s.text,r,i);e.push(...g);}return x(e)}function v(n,t,r){if(!n)return [];let i=[],e=0;for(;e<n.length;){let s=n[e];if(r.has(s)&&(e===0||n[e-1]===" "||n[e-1]===`
5
- `||n[e-1]===" ")){let u=t.find(l=>l.char===s);if(u&&m(n,e,u.position)){let l=e+1;for(;l<n.length&&n[l]!==" "&&n[l]!==`
6
- `&&n[l]!==" ";)l++;let f=n.slice(e+1,l);if(f.length>0){let o=u.onSelect?.({value:f,label:f})||f;i.push({type:"chip",trigger:s,value:f,displayText:o,autoResolved:true}),e=l;continue}}}let g=e;for(e++;e<n.length&&!(r.has(n[e])&&(n[e-1]===" "||n[e-1]===`
7
- `||n[e-1]===" "));)e++;i.push({type:"text",text:n.slice(g,e)});}return i}function y(n,t,r,i){let e=[],s=0,g=false;for(let p of n)if(p.type==="chip"){let u=`${p.trigger}${p.displayText}`,l=s,f=s+u.length;!g&&t===r&&l===t&&(e.push({type:"text",text:i}),g=true),(f<=t||l>=r)&&e.push(p),s=f;}else {let u=s,l=s+p.text.length,f=t===r?l<t:l<=t,o=t===r?u>r:u>=r;if(f)e.push(p);else if(o)e.push(p);else {let c=p.text.slice(0,Math.max(0,t-u)),a=p.text.slice(Math.min(p.text.length,r-u));c&&e.push({type:"text",text:c}),!g&&u<=t&&(e.push({type:"text",text:i}),g=true),a&&e.push({type:"text",text:a});}s=l;}return !g&&i&&e.push({type:"text",text:i}),x(e)}function R(n,t,r,i){if(t===r)return null;let e=S(n),s=i.length,g=t>=s&&e.slice(t-s,t)===i,p=r+s<=e.length&&e.slice(r,r+s)===i,u=g&&p;if(u&&s===1){let o=t>s?e[t-s-1]:"",c=r+s<e.length?e[r+s]:"";(o===i||c===i)&&(u=false);}if(u){let o=y(n,r,r+s,"");return {segments:y(o,t-s,t,""),selectionStart:t-s,selectionEnd:r-s}}let l=y(n,r,r,i);return {segments:y(l,t,t,i),selectionStart:t+s,selectionEnd:r+s}}function $(n){if(!n)return [];let t=[],r=/(\*{3}(.+?)\*{3})|(\*{2}(.+?)\*{2})|(\*(.+?)\*)|(https?:\/\/[^\s),]+)/g,i=0,e;for(;(e=r.exec(n))!==null;)e.index>i&&t.push({type:"plain",text:n.slice(i,e.index)}),e[1]&&e[2]?t.push({type:"bold-italic",text:e[2]}):e[3]&&e[4]?t.push({type:"bold",text:e[4]}):e[5]&&e[6]?t.push({type:"italic",text:e[6]}):e[7]&&t.push({type:"url",text:e[7]}),i=e.index+e[0].length;return i<n.length&&t.push({type:"plain",text:n.slice(i)}),t}function k(n,t){if(n===t)return true;if(n.length!==t.length)return false;for(let r=0;r<n.length;r++){let i=n[r],e=t[r];if(i.type!==e.type)return false;if(i.type==="text"){if(e.type!=="text"||i.text!==e.text)return false}else if(e.type!=="chip"||i.trigger!==e.trigger||i.value!==e.value||i.displayText!==e.displayText||i.autoResolved!==e.autoResolved)return false}return true}function x(n){let t=[];for(let r of n){if(r.type==="text"&&r.text==="")continue;let i=t[t.length-1];r.type==="text"&&i?.type==="text"?t[t.length-1]={type:"text",text:i.text+r.text}:t.push(r);}return t}export{S as a,b,m as c,C as d,w as e,O as f,A as g,M as h,y as i,R as j,$ as k,k as l,x as m};