@cascivo/ai 1.1.0 → 1.2.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/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use client";
2
2
  import './ai.css';
3
- import{useRef as e}from"react";import{useSignal as t,useSignalEffect as n,useSignals as r}from"@cascivo/core";import{jsx as i,jsxs as a}from"react/jsx-runtime";import{builtin as o,t as s}from"@cascivo/i18n";var c={root:`_root_ajc1u_2`,cursor:`_cursor_ajc1u_5`};function l({text:o,speed:s=2,onComplete:l,className:u}){r();let d=t(``),f=e(l);return f.current=l,d.value=d.value.length>o.length?``:d.value,n(()=>{let e=o;if(d.value===e){f.current?.();return}let t;function n(){let r=d.value;if(r.length>=e.length){f.current?.();return}d.value=e.slice(0,r.length+s),t=requestAnimationFrame(n)}return t=requestAnimationFrame(n),()=>cancelAnimationFrame(t)}),a(`span`,{className:[c.root,u].filter(Boolean).join(` `),children:[d.value,d.value!==o&&i(`span`,{className:c.cursor,"aria-hidden":`true`})]})}var u={root:`_root_tiibp_2`};function d({variant:e=`generating`,className:t,...n}){r();let a=s(e===`generating`?o.ai.generating:e===`done`?o.ai.done:o.ai.error);return i(`span`,{role:`status`,"aria-label":a,"data-variant":e,className:[u.root,t].filter(Boolean).join(` `),...n,children:a})}var f={root:`_root_131e4_2`,line:`_line_131e4_12`,prefix:`_prefix_131e4_16`,text:`_text_131e4_20`,cursor:`_cursor_131e4_23`};function p({lines:o,speed:s=3,loop:c=!1,onComplete:l,className:u}){r();let d=t(0),p=t(0),m=e(l);m.current=l,n(()=>{if(o.length===0)return;let e;function t(){let n=d.value,r=p.value;if(n>=o.length){m.current?.(),c&&(d.value=0,p.value=0);return}r<o[n].text.length?p.value=r+s:(d.value=n+1,p.value=0),e=requestAnimationFrame(t)}return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)});let h=o.slice(0,d.value+1).map((e,t)=>{let n=t===d.value,r=n?e.text.slice(0,p.value):e.text;return a(`div`,{className:f.line,"data-type":e.type??`output`,children:[e.prefix&&i(`span`,{className:f.prefix,children:e.prefix}),i(`span`,{className:f.text,children:r}),n&&d.value<o.length&&i(`span`,{className:f.cursor,"aria-hidden":`true`})]},t)});return i(`div`,{role:`log`,"aria-live":`polite`,"aria-label":`Terminal output`,className:[f.root,u].filter(Boolean).join(` `),children:h})}var m={root:`_root_ilql2_2`,messages:`_messages_ilql2_12`,message:`_message_ilql2_12`,roleLabel:`_roleLabel_ilql2_33`,content:`_content_ilql2_38`,inputArea:`_inputArea_ilql2_48`,textarea:`_textarea_ilql2_55`,sendButton:`_sendButton_ilql2_65`};function h({messages:n,onSend:c,isStreaming:u=!1,streamingText:d,className:f}){r();let p=t(``),h=e(null);function g(){let e=p.value.trim();e&&(c(e),p.value=``)}function _(e){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),g())}return a(`div`,{className:[m.root,f].filter(Boolean).join(` `),children:[a(`div`,{ref:h,className:m.messages,role:`log`,"aria-live":`polite`,children:[n.filter(e=>e.role!==`system`).map(e=>a(`div`,{className:m.message,"data-role":e.role,children:[i(`span`,{className:m.roleLabel,children:e.role===`user`?s(o.ai.you):s(o.ai.assistant)}),i(`div`,{className:m.content,children:e.content})]},e.id)),u&&d!==void 0&&a(`div`,{className:m.message,"data-role":`assistant`,children:[i(`span`,{className:m.roleLabel,children:s(o.ai.assistant)}),i(`div`,{className:m.content,children:i(l,{text:d})})]})]}),a(`div`,{className:m.inputArea,children:[i(`textarea`,{className:m.textarea,placeholder:s(o.ai.placeholder),value:p.value,onChange:e=>{p.value=e.target.value},onKeyDown:_,rows:1,"aria-label":s(o.ai.placeholder)}),i(`button`,{type:`button`,className:m.sendButton,onClick:g,disabled:u,"aria-label":s(o.ai.send),children:s(o.ai.send)})]})]})}export{h as AiChat,d as AiLabel,l as StreamingText,p as Terminal};
3
+ import{useRef as e}from"react";import{useSignal as t,useSignalEffect as n,useSignals as r}from"@cascivo/core";import{jsx as i,jsxs as a}from"react/jsx-runtime";import{builtin as o,t as s}from"@cascivo/i18n";var c={root:`_root_ajc1u_2`,cursor:`_cursor_ajc1u_5`};function StreamingText({text:o,speed:s=2,onComplete:l,className:u}){r();let d=t(``),f=e(l);return f.current=l,d.value=d.value.length>o.length?``:d.value,n(()=>{let e=o;if(d.value===e){f.current?.();return}let t;function tick(){let n=d.value;if(n.length>=e.length){f.current?.();return}d.value=e.slice(0,n.length+s),t=requestAnimationFrame(tick)}return t=requestAnimationFrame(tick),()=>cancelAnimationFrame(t)}),a(`span`,{className:[c.root,u].filter(Boolean).join(` `),children:[d.value,d.value!==o&&i(`span`,{className:c.cursor,"aria-hidden":`true`})]})}var l={root:`_root_tiibp_2`};function AiLabel({variant:e=`generating`,className:t,...n}){r();let a=s(e===`generating`?o.ai.generating:e===`done`?o.ai.done:o.ai.error);return i(`span`,{role:`status`,"aria-label":a,"data-variant":e,className:[l.root,t].filter(Boolean).join(` `),...n,children:a})}var u={root:`_root_131e4_2`,line:`_line_131e4_12`,prefix:`_prefix_131e4_16`,text:`_text_131e4_20`,cursor:`_cursor_131e4_23`};function Terminal({lines:o,speed:s=3,loop:c=!1,onComplete:l,className:d}){r();let f=t(0),p=t(0),m=e(l);m.current=l,n(()=>{if(o.length===0)return;let e;function tick(){let t=f.value,n=p.value;if(t>=o.length){m.current?.(),c&&(f.value=0,p.value=0);return}n<o[t].text.length?p.value=n+s:(f.value=t+1,p.value=0),e=requestAnimationFrame(tick)}return e=requestAnimationFrame(tick),()=>cancelAnimationFrame(e)});let h=o.slice(0,f.value+1).map((e,t)=>{let n=t===f.value,r=n?e.text.slice(0,p.value):e.text;return a(`div`,{className:u.line,"data-type":e.type??`output`,children:[e.prefix&&i(`span`,{className:u.prefix,children:e.prefix}),i(`span`,{className:u.text,children:r}),n&&f.value<o.length&&i(`span`,{className:u.cursor,"aria-hidden":`true`})]},t)});return i(`div`,{role:`log`,"aria-live":`polite`,"aria-label":`Terminal output`,className:[u.root,d].filter(Boolean).join(` `),children:h})}var d={root:`_root_ilql2_2`,messages:`_messages_ilql2_12`,message:`_message_ilql2_12`,roleLabel:`_roleLabel_ilql2_33`,content:`_content_ilql2_38`,inputArea:`_inputArea_ilql2_48`,textarea:`_textarea_ilql2_55`,sendButton:`_sendButton_ilql2_65`};function AiChat({messages:n,onSend:c,isStreaming:l=!1,streamingText:u,className:f}){r();let p=t(``),m=e(null);function handleSend(){let e=p.value.trim();e&&(c(e),p.value=``)}function handleKeyDown(e){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),handleSend())}return a(`div`,{className:[d.root,f].filter(Boolean).join(` `),children:[a(`div`,{ref:m,className:d.messages,role:`log`,"aria-live":`polite`,children:[n.filter(e=>e.role!==`system`).map(e=>a(`div`,{className:d.message,"data-role":e.role,children:[i(`span`,{className:d.roleLabel,children:e.role===`user`?s(o.ai.you):s(o.ai.assistant)}),i(`div`,{className:d.content,children:e.content})]},e.id)),l&&u!==void 0&&a(`div`,{className:d.message,"data-role":`assistant`,children:[i(`span`,{className:d.roleLabel,children:s(o.ai.assistant)}),i(`div`,{className:d.content,children:i(StreamingText,{text:u})})]})]}),a(`div`,{className:d.inputArea,children:[i(`textarea`,{className:d.textarea,placeholder:s(o.ai.placeholder),value:p.value,onChange:e=>{p.value=e.target.value},onKeyDown:handleKeyDown,rows:1,"aria-label":s(o.ai.placeholder)}),i(`button`,{type:`button`,className:d.sendButton,onClick:handleSend,disabled:l,"aria-label":s(o.ai.send),children:s(o.ai.send)})]})]})}export{AiChat,AiLabel,StreamingText,Terminal};
@@ -1 +1 @@
1
- "use client";import{useRef as e}from"react";import{useSignal as t,useSignalEffect as n,useSignals as r}from"@cascivo/core";import{jsx as i,jsxs as a}from"react/jsx-runtime";import{builtin as o,t as s}from"@cascivo/i18n";var c={root:`_root_ajc1u_2`,cursor:`_cursor_ajc1u_5`};function l({text:o,speed:s=2,onComplete:l,className:u}){r();let d=t(``),f=e(l);return f.current=l,d.value=d.value.length>o.length?``:d.value,n(()=>{let e=o;if(d.value===e){f.current?.();return}let t;function n(){let r=d.value;if(r.length>=e.length){f.current?.();return}d.value=e.slice(0,r.length+s),t=requestAnimationFrame(n)}return t=requestAnimationFrame(n),()=>cancelAnimationFrame(t)}),a(`span`,{className:[c.root,u].filter(Boolean).join(` `),children:[d.value,d.value!==o&&i(`span`,{className:c.cursor,"aria-hidden":`true`})]})}var u={root:`_root_tiibp_2`};function d({variant:e=`generating`,className:t,...n}){r();let a=s(e===`generating`?o.ai.generating:e===`done`?o.ai.done:o.ai.error);return i(`span`,{role:`status`,"aria-label":a,"data-variant":e,className:[u.root,t].filter(Boolean).join(` `),...n,children:a})}var f={root:`_root_131e4_2`,line:`_line_131e4_12`,prefix:`_prefix_131e4_16`,text:`_text_131e4_20`,cursor:`_cursor_131e4_23`};function p({lines:o,speed:s=3,loop:c=!1,onComplete:l,className:u}){r();let d=t(0),p=t(0),m=e(l);m.current=l,n(()=>{if(o.length===0)return;let e;function t(){let n=d.value,r=p.value;if(n>=o.length){m.current?.(),c&&(d.value=0,p.value=0);return}r<o[n].text.length?p.value=r+s:(d.value=n+1,p.value=0),e=requestAnimationFrame(t)}return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)});let h=o.slice(0,d.value+1).map((e,t)=>{let n=t===d.value,r=n?e.text.slice(0,p.value):e.text;return a(`div`,{className:f.line,"data-type":e.type??`output`,children:[e.prefix&&i(`span`,{className:f.prefix,children:e.prefix}),i(`span`,{className:f.text,children:r}),n&&d.value<o.length&&i(`span`,{className:f.cursor,"aria-hidden":`true`})]},t)});return i(`div`,{role:`log`,"aria-live":`polite`,"aria-label":`Terminal output`,className:[f.root,u].filter(Boolean).join(` `),children:h})}var m={root:`_root_ilql2_2`,messages:`_messages_ilql2_12`,message:`_message_ilql2_12`,roleLabel:`_roleLabel_ilql2_33`,content:`_content_ilql2_38`,inputArea:`_inputArea_ilql2_48`,textarea:`_textarea_ilql2_55`,sendButton:`_sendButton_ilql2_65`};function h({messages:n,onSend:c,isStreaming:u=!1,streamingText:d,className:f}){r();let p=t(``),h=e(null);function g(){let e=p.value.trim();e&&(c(e),p.value=``)}function _(e){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),g())}return a(`div`,{className:[m.root,f].filter(Boolean).join(` `),children:[a(`div`,{ref:h,className:m.messages,role:`log`,"aria-live":`polite`,children:[n.filter(e=>e.role!==`system`).map(e=>a(`div`,{className:m.message,"data-role":e.role,children:[i(`span`,{className:m.roleLabel,children:e.role===`user`?s(o.ai.you):s(o.ai.assistant)}),i(`div`,{className:m.content,children:e.content})]},e.id)),u&&d!==void 0&&a(`div`,{className:m.message,"data-role":`assistant`,children:[i(`span`,{className:m.roleLabel,children:s(o.ai.assistant)}),i(`div`,{className:m.content,children:i(l,{text:d})})]})]}),a(`div`,{className:m.inputArea,children:[i(`textarea`,{className:m.textarea,placeholder:s(o.ai.placeholder),value:p.value,onChange:e=>{p.value=e.target.value},onKeyDown:_,rows:1,"aria-label":s(o.ai.placeholder)}),i(`button`,{type:`button`,className:m.sendButton,onClick:g,disabled:u,"aria-label":s(o.ai.send),children:s(o.ai.send)})]})]})}export{h as AiChat,d as AiLabel,l as StreamingText,p as Terminal};
1
+ "use client";import{useRef as e}from"react";import{useSignal as t,useSignalEffect as n,useSignals as r}from"@cascivo/core";import{jsx as i,jsxs as a}from"react/jsx-runtime";import{builtin as o,t as s}from"@cascivo/i18n";var c={root:`_root_ajc1u_2`,cursor:`_cursor_ajc1u_5`};function StreamingText({text:o,speed:s=2,onComplete:l,className:u}){r();let d=t(``),f=e(l);return f.current=l,d.value=d.value.length>o.length?``:d.value,n(()=>{let e=o;if(d.value===e){f.current?.();return}let t;function tick(){let n=d.value;if(n.length>=e.length){f.current?.();return}d.value=e.slice(0,n.length+s),t=requestAnimationFrame(tick)}return t=requestAnimationFrame(tick),()=>cancelAnimationFrame(t)}),a(`span`,{className:[c.root,u].filter(Boolean).join(` `),children:[d.value,d.value!==o&&i(`span`,{className:c.cursor,"aria-hidden":`true`})]})}var l={root:`_root_tiibp_2`};function AiLabel({variant:e=`generating`,className:t,...n}){r();let a=s(e===`generating`?o.ai.generating:e===`done`?o.ai.done:o.ai.error);return i(`span`,{role:`status`,"aria-label":a,"data-variant":e,className:[l.root,t].filter(Boolean).join(` `),...n,children:a})}var u={root:`_root_131e4_2`,line:`_line_131e4_12`,prefix:`_prefix_131e4_16`,text:`_text_131e4_20`,cursor:`_cursor_131e4_23`};function Terminal({lines:o,speed:s=3,loop:c=!1,onComplete:l,className:d}){r();let f=t(0),p=t(0),m=e(l);m.current=l,n(()=>{if(o.length===0)return;let e;function tick(){let t=f.value,n=p.value;if(t>=o.length){m.current?.(),c&&(f.value=0,p.value=0);return}n<o[t].text.length?p.value=n+s:(f.value=t+1,p.value=0),e=requestAnimationFrame(tick)}return e=requestAnimationFrame(tick),()=>cancelAnimationFrame(e)});let h=o.slice(0,f.value+1).map((e,t)=>{let n=t===f.value,r=n?e.text.slice(0,p.value):e.text;return a(`div`,{className:u.line,"data-type":e.type??`output`,children:[e.prefix&&i(`span`,{className:u.prefix,children:e.prefix}),i(`span`,{className:u.text,children:r}),n&&f.value<o.length&&i(`span`,{className:u.cursor,"aria-hidden":`true`})]},t)});return i(`div`,{role:`log`,"aria-live":`polite`,"aria-label":`Terminal output`,className:[u.root,d].filter(Boolean).join(` `),children:h})}var d={root:`_root_ilql2_2`,messages:`_messages_ilql2_12`,message:`_message_ilql2_12`,roleLabel:`_roleLabel_ilql2_33`,content:`_content_ilql2_38`,inputArea:`_inputArea_ilql2_48`,textarea:`_textarea_ilql2_55`,sendButton:`_sendButton_ilql2_65`};function AiChat({messages:n,onSend:c,isStreaming:l=!1,streamingText:u,className:f}){r();let p=t(``),m=e(null);function handleSend(){let e=p.value.trim();e&&(c(e),p.value=``)}function handleKeyDown(e){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),handleSend())}return a(`div`,{className:[d.root,f].filter(Boolean).join(` `),children:[a(`div`,{ref:m,className:d.messages,role:`log`,"aria-live":`polite`,children:[n.filter(e=>e.role!==`system`).map(e=>a(`div`,{className:d.message,"data-role":e.role,children:[i(`span`,{className:d.roleLabel,children:e.role===`user`?s(o.ai.you):s(o.ai.assistant)}),i(`div`,{className:d.content,children:e.content})]},e.id)),l&&u!==void 0&&a(`div`,{className:d.message,"data-role":`assistant`,children:[i(`span`,{className:d.roleLabel,children:s(o.ai.assistant)}),i(`div`,{className:d.content,children:i(StreamingText,{text:u})})]})]}),a(`div`,{className:d.inputArea,children:[i(`textarea`,{className:d.textarea,placeholder:s(o.ai.placeholder),value:p.value,onChange:e=>{p.value=e.target.value},onKeyDown:handleKeyDown,rows:1,"aria-label":s(o.ai.placeholder)}),i(`button`,{type:`button`,className:d.sendButton,onClick:handleSend,disabled:l,"aria-label":s(o.ai.send),children:s(o.ai.send)})]})]})}export{AiChat,AiLabel,StreamingText,Terminal};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cascivo/ai",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "AI-native components for cascivo — StreamingText, AiLabel, Terminal, AiChat",
5
5
  "keywords": [
6
6
  "ai",
@@ -42,9 +42,9 @@
42
42
  "provenance": true
43
43
  },
44
44
  "dependencies": {
45
- "@cascivo/core": "^1.1.0",
46
- "@cascivo/i18n": "^1.1.0",
47
- "@cascivo/tokens": "^1.0.0"
45
+ "@cascivo/core": "^1.2.0",
46
+ "@cascivo/i18n": "^1.2.0",
47
+ "@cascivo/tokens": "^1.1.0"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@testing-library/jest-dom": "^6.9.1",