@langgraph-js/ui 5.0.2 → 5.3.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.
Files changed (66) hide show
  1. package/.env +1 -1
  2. package/cli.mjs +1 -1
  3. package/dist/assets/{arc-aR5fJlAZ.js → arc-ByBJT7ix.js} +1 -1
  4. package/dist/assets/{architectureDiagram-VXUJARFQ-CnTD2CUm.js → architectureDiagram-VXUJARFQ-TBGn1Rfl.js} +1 -1
  5. package/dist/assets/{blockDiagram-VD42YOAC-DLKfSMIb.js → blockDiagram-VD42YOAC-H3aCjd8C.js} +1 -1
  6. package/dist/assets/{c4Diagram-YG6GDRKO-7kPtVHXl.js → c4Diagram-YG6GDRKO-mLv4gXzg.js} +1 -1
  7. package/dist/assets/channel-C2ZY7jsG.js +1 -0
  8. package/dist/assets/{chunk-4BX2VUAB-DUB2kiDv.js → chunk-4BX2VUAB-q_t8Wicw.js} +1 -1
  9. package/dist/assets/{chunk-55IACEB6-Bz31tGM4.js → chunk-55IACEB6-B-dnHx34.js} +1 -1
  10. package/dist/assets/{chunk-B4BG7PRW-D2vAbQ4J.js → chunk-B4BG7PRW-Bd_EmK5n.js} +1 -1
  11. package/dist/assets/{chunk-DI55MBZ5-DHr0bO-q.js → chunk-DI55MBZ5-BC-nx3CQ.js} +1 -1
  12. package/dist/assets/{chunk-FMBD7UC4-wGvjdTUw.js → chunk-FMBD7UC4-Benh4DyV.js} +1 -1
  13. package/dist/assets/{chunk-QN33PNHL-ZGhQA1FA.js → chunk-QN33PNHL-evxJkdkh.js} +1 -1
  14. package/dist/assets/{chunk-QZHKN3VN-CTY4-zw_.js → chunk-QZHKN3VN-pD5jwMeq.js} +1 -1
  15. package/dist/assets/{chunk-TZMSLE5B-BO4UpKqp.js → chunk-TZMSLE5B-iXGBDV4R.js} +1 -1
  16. package/dist/assets/classDiagram-2ON5EDUG-zN_blmEE.js +1 -0
  17. package/dist/assets/classDiagram-v2-WZHVMYZB-zN_blmEE.js +1 -0
  18. package/dist/assets/clone-DvlZSVEg.js +1 -0
  19. package/dist/assets/{cose-bilkent-S5V4N54A-Bwll0ITj.js → cose-bilkent-S5V4N54A-CpE55JUO.js} +1 -1
  20. package/dist/assets/{dagre-6UL2VRFP-CfnRd8wu.js → dagre-6UL2VRFP-EvO-OLhz.js} +1 -1
  21. package/dist/assets/{diagram-PSM6KHXK-C5MLbJeQ.js → diagram-PSM6KHXK-CFY939Qh.js} +1 -1
  22. package/dist/assets/{diagram-QEK2KX5R-CmtYKjYL.js → diagram-QEK2KX5R-C9Zr7m8k.js} +1 -1
  23. package/dist/assets/{diagram-S2PKOQOG-B3OUKSIl.js → diagram-S2PKOQOG-DNcS9v33.js} +1 -1
  24. package/dist/assets/{erDiagram-Q2GNP2WA-N4bgTCfa.js → erDiagram-Q2GNP2WA-Cw-3m3iQ.js} +1 -1
  25. package/dist/assets/{flowDiagram-NV44I4VS-2y-UIMeT.js → flowDiagram-NV44I4VS-CLWeIeeE.js} +1 -1
  26. package/dist/assets/{ganttDiagram-LVOFAZNH-ByctDtMe.js → ganttDiagram-LVOFAZNH-HFaJpoPe.js} +1 -1
  27. package/dist/assets/{gitGraphDiagram-NY62KEGX-CNlVAV4i.js → gitGraphDiagram-NY62KEGX-CCUv-KE0.js} +1 -1
  28. package/dist/assets/{graph-DwThmPiy.js → graph-VOODAD3y.js} +1 -1
  29. package/dist/assets/index-BDnjyX2X.js +619 -0
  30. package/dist/assets/{index-BQdUADzy.js → index-BJ9C6D-a.js} +1 -1
  31. package/dist/assets/index-DkUikjP8.css +1 -0
  32. package/dist/assets/{infoDiagram-F6ZHWCRC-BVVj1VH9.js → infoDiagram-F6ZHWCRC-BhGv_djV.js} +1 -1
  33. package/dist/assets/{isUndefined-BAWoaQHV.js → isUndefined-0vq8NMH-.js} +1 -1
  34. package/dist/assets/{journeyDiagram-XKPGCS4Q-CEVy0yCc.js → journeyDiagram-XKPGCS4Q-DyCiaoHe.js} +1 -1
  35. package/dist/assets/{kanban-definition-3W4ZIXB7-B5R_vinx.js → kanban-definition-3W4ZIXB7-DSRBn_Rk.js} +1 -1
  36. package/dist/assets/{layout-B3tW1FTj.js → layout-0ID9q93j.js} +1 -1
  37. package/dist/assets/{linear-D2SSf2wz.js → linear-BuZdgMYG.js} +1 -1
  38. package/dist/assets/{mermaid.core-O_GKKNvM.js → mermaid.core-B8WZioq4.js} +5 -5
  39. package/dist/assets/{min-DaxAJUtV.js → min-piR6L-qa.js} +1 -1
  40. package/dist/assets/{mindmap-definition-VGOIOE7T-Cw8rUXiO.js → mindmap-definition-VGOIOE7T-CZb-iOUH.js} +1 -1
  41. package/dist/assets/{pieDiagram-ADFJNKIX-T5_BXAh9.js → pieDiagram-ADFJNKIX-Dzw0oI4o.js} +1 -1
  42. package/dist/assets/{quadrantDiagram-AYHSOK5B-qOvcrkCE.js → quadrantDiagram-AYHSOK5B-C73fqE74.js} +1 -1
  43. package/dist/assets/{requirementDiagram-UZGBJVZJ-Cifsyj9N.js → requirementDiagram-UZGBJVZJ-DenFzO4x.js} +1 -1
  44. package/dist/assets/{sankeyDiagram-TZEHDZUN-BkHiddfR.js → sankeyDiagram-TZEHDZUN-Cf4npYbH.js} +1 -1
  45. package/dist/assets/{sequenceDiagram-WL72ISMW-5Ym5MbKx.js → sequenceDiagram-WL72ISMW-D0B0sUMP.js} +1 -1
  46. package/dist/assets/{stateDiagram-FKZM4ZOC-BVa4R8vt.js → stateDiagram-FKZM4ZOC-DCkjEhse.js} +1 -1
  47. package/dist/assets/stateDiagram-v2-4FDKWEC3-BO7ffAwx.js +1 -0
  48. package/dist/assets/{timeline-definition-IT6M3QCI-WXogyvqC.js → timeline-definition-IT6M3QCI-wtq4Ovqb.js} +1 -1
  49. package/dist/assets/{treemap-KMMF4GRG-BR7WGEwd.js → treemap-KMMF4GRG-HbrSuDxx.js} +1 -1
  50. package/dist/assets/{xychartDiagram-PRI3JC2R-B_OuJRQ7.js → xychartDiagram-PRI3JC2R-BfqhPDDy.js} +1 -1
  51. package/dist/index.html +2 -2
  52. package/package.json +4 -4
  53. package/src/OpenSmithPlugin.ts +17 -4
  54. package/src/artifacts/ArtifactViewer.tsx +31 -4
  55. package/src/chat/Chat.tsx +58 -9
  56. package/src/chat/components/MessageHuman.tsx +83 -8
  57. package/src/settings/LoginSettings.tsx +1 -1
  58. package/vite.config.ts +2 -1
  59. package/dist/assets/channel-oDmMi5Q_.js +0 -1
  60. package/dist/assets/classDiagram-2ON5EDUG-zNTsY5XM.js +0 -1
  61. package/dist/assets/classDiagram-v2-WZHVMYZB-zNTsY5XM.js +0 -1
  62. package/dist/assets/clone-BlRjDbrH.js +0 -1
  63. package/dist/assets/index-DfuXfoTh.css +0 -1
  64. package/dist/assets/index-PxEZ0UyD.js +0 -607
  65. package/dist/assets/stateDiagram-v2-4FDKWEC3-CKzxpnns.js +0 -1
  66. package/vite.config.preview.ts +0 -35
@@ -1,4 +1,4 @@
1
- import{a3 as xc,a4 as Sc,t as $l,a5 as Ic,k as Xt,U as Cc,d as Us,g as Qn,h as ae,v as Bs,a6 as xl,T as Nc,N as wc,a7 as he,a8 as Sl,a9 as _c,aa as Lc,Q as Oc,ab as ga,e as bc,ac as Pc,ad as Mc,ae as Me,f as C,af as Vs,V as Ne,X as N,i as Et,r as le,a as D,ag as hi,y as ya,ah as Y,Z as Jt,ai as Dc,a0 as ft}from"./index-PxEZ0UyD.js";import{m as $,f as Qt,e as Ks,d as Fc}from"./min-DaxAJUtV.js";import{v as z,b as Gc,i as Ye,f as $e}from"./isUndefined-BAWoaQHV.js";import{c as ne}from"./clone-BlRjDbrH.js";var Uc=Object.prototype,Bc=Uc.hasOwnProperty,ke=xc(function(n,e){if(Sc(e)||$l(e)){Ic(e,Xt(e),n);return}for(var t in e)Bc.call(e,t)&&Cc(n,t,e[t])});function Zn(n){for(var e=-1,t=n==null?0:n.length,r=0,i=[];++e<t;){var s=n[e];s&&(i[r++]=s)}return i}function Vc(n,e,t,r){for(var i=-1,s=n==null?0:n.length;++i<s;){var a=n[i];e(r,a,t(a),n)}return r}function Kc(n,e,t,r){return Us(n,function(i,s,a){e(r,i,t(i),a)}),r}function Wc(n,e){return function(t,r){var i=ae(t)?Vc:Kc,s=e?e():{};return i(t,n,Qn(r),s)}}function Q(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:Bs(e),xl(n,e<0?0:e,r)):[]}function qn(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:Bs(e),e=r-e,xl(n,0,e<0?0:e)):[]}function jc(n,e){for(var t=-1,r=n==null?0:n.length;++t<r;)if(!e(n[t],t,n))return!1;return!0}function Hc(n,e){var t=!0;return Us(n,function(r,i,s){return t=!!e(r,i,s),t}),t}function be(n,e,t){var r=ae(n)?jc:Hc;return r(n,Qn(e))}function Pe(n){return n&&n.length?n[0]:void 0}function Ee(n,e){return Nc($(n,e),1)}var zc=Object.prototype,qc=zc.hasOwnProperty,Yc=Wc(function(n,e,t){qc.call(n,t)?n[t].push(e):wc(n,t,[e])}),Xc=Math.max;function de(n,e,t,r){n=$l(n)?n:z(n),t=t?Bs(t):0;var i=n.length;return t<0&&(t=Xc(i+t,0)),he(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&Sl(n,e,t)>-1}function Ta(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return Sl(n,e,i)}var Jc="[object RegExp]";function Qc(n){return _c(n)&&Lc(n)==Jc}var Ra=ga&&ga.isRegExp,Xe=Ra?Oc(Ra):Qc,Zc="Expected a function";function ed(n){if(typeof n!="function")throw new TypeError(Zc);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function pi(n,e){var t=ae(n)?bc:Gc;return t(n,ed(Qn(e)))}function td(n,e){var t;return Us(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function Il(n,e,t){var r=ae(n)?Pc:td;return r(n,Qn(e))}function nd(n,e){return n&&n.length?Mc(n,Qn(e)):[]}function se(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function Ue(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function rd(n){return typeof n=="object"&&n!==null&&typeof n.name=="string"&&typeof n.type=="string"&&typeof n.path=="string"}function Nr(n){return typeof n=="object"&&n!==null&&se(n.container)&&Ue(n.reference)&&typeof n.message=="string"}class Cl{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return se(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function Yn(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function Nl(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function wl(n){return Yn(n)&&typeof n.fullText=="string"}class Z{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new Z(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return ve})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=id(i.value)),s=!0;while(!i.done);return r}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new Z(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?ve:{done:!1,value:e(i)}})}filter(e){return new Z(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return ve})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new Z(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(Wr(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return ve})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new Z(()=>({this:t.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=t.nextFn(r.this);if(!i)if(Wr(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return ve})}head(){const t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new Z(()=>{const t=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new Z(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?ve:this.nextFn(t.state)))}distinct(e){return new Z(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return ve})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function id(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function Wr(n){return!!n&&typeof n[Symbol.iterator]=="function"}const sd=new Z(()=>{},()=>ve),ve=Object.freeze({done:!0,value:void 0});function ee(...n){if(n.length===1){const e=n[0];if(e instanceof Z)return e;if(Wr(e))return new Z(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new Z(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:ve)}return n.length>1?new Z(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<n.length){const t=n[e.collIndex++];Wr(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return ve}):sd}class Ws extends Z{constructor(e,t,r){super(()=>({iterators:r?.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(t(a.value)[Symbol.iterator]()),a}return ve})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var is;(function(n){function e(s){return s.reduce((a,o)=>a+o,0)}n.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}n.product=t;function r(s){return s.reduce((a,o)=>Math.min(a,o))}n.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}n.max=i})(is||(is={}));function ss(n){return new Ws(n,e=>Yn(e)?e.content:[],{includeRoot:!0})}function ad(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function as(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function jr(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}var He;(function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside",n[n.Outside=5]="Outside"})(He||(He={}));function od(n,e){if(n.end.line<e.start.line||n.end.line===e.start.line&&n.end.character<=e.start.character)return He.Before;if(n.start.line>e.end.line||n.start.line===e.end.line&&n.start.character>=e.end.character)return He.After;const t=n.start.line>e.start.line||n.start.line===e.start.line&&n.start.character>=e.start.character,r=n.end.line<e.end.line||n.end.line===e.end.line&&n.end.character<=e.end.character;return t&&r?He.Inside:t?He.OverlapBack:r?He.OverlapFront:He.Outside}function ld(n,e){return od(n,e)>He.After}const ud=/^[\w\p{L}]$/u;function cd(n,e){if(n){const t=dd(n,!0);if(t&&va(t,e))return t;if(wl(n)){const r=n.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=n.content[i];if(va(s,e))return s}}}}function va(n,e){return Nl(n)&&e.includes(n.tokenType.name)}function dd(n,e=!0){for(;n.container;){const t=n.container;let r=t.content.indexOf(n);for(;r>0;){r--;const i=t.content[r];if(e||!i.hidden)return i}n=t}}class _l extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function er(n){throw new Error("Error! The input value was not handled.")}const or="AbstractRule",lr="AbstractType",wi="Condition",Aa="TypeDefinition",_i="ValueLiteral",dn="AbstractElement";function fd(n){return M.isInstance(n,dn)}const ur="ArrayLiteral",cr="ArrayType",fn="BooleanLiteral";function hd(n){return M.isInstance(n,fn)}const hn="Conjunction";function pd(n){return M.isInstance(n,hn)}const pn="Disjunction";function md(n){return M.isInstance(n,pn)}const dr="Grammar",Li="GrammarImport",mn="InferredType";function Ll(n){return M.isInstance(n,mn)}const gn="Interface";function Ol(n){return M.isInstance(n,gn)}const Oi="NamedArgument",yn="Negation";function gd(n){return M.isInstance(n,yn)}const fr="NumberLiteral",hr="Parameter",Tn="ParameterReference";function yd(n){return M.isInstance(n,Tn)}const Rn="ParserRule";function we(n){return M.isInstance(n,Rn)}const pr="ReferenceType",wr="ReturnType";function Td(n){return M.isInstance(n,wr)}const vn="SimpleType";function Rd(n){return M.isInstance(n,vn)}const mr="StringLiteral",Nt="TerminalRule";function kt(n){return M.isInstance(n,Nt)}const An="Type";function bl(n){return M.isInstance(n,An)}const bi="TypeAttribute",gr="UnionType",En="Action";function mi(n){return M.isInstance(n,En)}const kn="Alternatives";function Pl(n){return M.isInstance(n,kn)}const $n="Assignment";function gt(n){return M.isInstance(n,$n)}const xn="CharacterRange";function vd(n){return M.isInstance(n,xn)}const Sn="CrossReference";function js(n){return M.isInstance(n,Sn)}const In="EndOfFile";function Ad(n){return M.isInstance(n,In)}const Cn="Group";function Hs(n){return M.isInstance(n,Cn)}const Nn="Keyword";function yt(n){return M.isInstance(n,Nn)}const wn="NegatedToken";function Ed(n){return M.isInstance(n,wn)}const _n="RegexToken";function kd(n){return M.isInstance(n,_n)}const Ln="RuleCall";function Tt(n){return M.isInstance(n,Ln)}const On="TerminalAlternatives";function $d(n){return M.isInstance(n,On)}const bn="TerminalGroup";function xd(n){return M.isInstance(n,bn)}const Pn="TerminalRuleCall";function Sd(n){return M.isInstance(n,Pn)}const Mn="UnorderedGroup";function Ml(n){return M.isInstance(n,Mn)}const Dn="UntilToken";function Id(n){return M.isInstance(n,Dn)}const Fn="Wildcard";function Cd(n){return M.isInstance(n,Fn)}class Dl extends Cl{getAllTypes(){return[dn,or,lr,En,kn,ur,cr,$n,fn,xn,wi,hn,Sn,pn,In,dr,Li,Cn,mn,gn,Nn,Oi,wn,yn,fr,hr,Tn,Rn,pr,_n,wr,Ln,vn,mr,On,bn,Nt,Pn,An,bi,Aa,gr,Mn,Dn,_i,Fn]}computeIsSubtype(e,t){switch(e){case En:case kn:case $n:case xn:case Sn:case In:case Cn:case Nn:case wn:case _n:case Ln:case On:case bn:case Pn:case Mn:case Dn:case Fn:return this.isSubtype(dn,t);case ur:case fr:case mr:return this.isSubtype(_i,t);case cr:case pr:case vn:case gr:return this.isSubtype(Aa,t);case fn:return this.isSubtype(wi,t)||this.isSubtype(_i,t);case hn:case pn:case yn:case Tn:return this.isSubtype(wi,t);case mn:case gn:case An:return this.isSubtype(lr,t);case Rn:return this.isSubtype(or,t)||this.isSubtype(lr,t);case Nt:return this.isSubtype(or,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return lr;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return or;case"Grammar:usedGrammars":return dr;case"NamedArgument:parameter":case"ParameterReference:parameter":return hr;case"TerminalRuleCall:rule":return Nt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case dn:return{name:dn,properties:[{name:"cardinality"},{name:"lookahead"}]};case ur:return{name:ur,properties:[{name:"elements",defaultValue:[]}]};case cr:return{name:cr,properties:[{name:"elementType"}]};case fn:return{name:fn,properties:[{name:"true",defaultValue:!1}]};case hn:return{name:hn,properties:[{name:"left"},{name:"right"}]};case pn:return{name:pn,properties:[{name:"left"},{name:"right"}]};case dr:return{name:dr,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case Li:return{name:Li,properties:[{name:"path"}]};case mn:return{name:mn,properties:[{name:"name"}]};case gn:return{name:gn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Oi:return{name:Oi,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case yn:return{name:yn,properties:[{name:"value"}]};case fr:return{name:fr,properties:[{name:"value"}]};case hr:return{name:hr,properties:[{name:"name"}]};case Tn:return{name:Tn,properties:[{name:"parameter"}]};case Rn:return{name:Rn,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case pr:return{name:pr,properties:[{name:"referenceType"}]};case wr:return{name:wr,properties:[{name:"name"}]};case vn:return{name:vn,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case mr:return{name:mr,properties:[{name:"value"}]};case Nt:return{name:Nt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case An:return{name:An,properties:[{name:"name"},{name:"type"}]};case bi:return{name:bi,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case gr:return{name:gr,properties:[{name:"types",defaultValue:[]}]};case En:return{name:En,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case kn:return{name:kn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case Sn:return{name:Sn,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case In:return{name:In,properties:[{name:"cardinality"},{name:"lookahead"}]};case Cn:return{name:Cn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case Nn:return{name:Nn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case wn:return{name:wn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case _n:return{name:_n,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case Ln:return{name:Ln,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case On:return{name:On,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case bn:return{name:bn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Pn:return{name:Pn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Mn:return{name:Mn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Dn:return{name:Dn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Fn:return{name:Fn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const M=new Dl;function Nd(n){for(const[e,t]of Object.entries(n))e.startsWith("$")||(Array.isArray(t)?t.forEach((r,i)=>{se(r)&&(r.$container=n,r.$containerProperty=e,r.$containerIndex=i)}):se(t)&&(t.$container=n,t.$containerProperty=e))}function gi(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function Ze(n){const t=os(n).$document;if(!t)throw new Error("AST node has no document.");return t}function os(n){for(;n.$container;)n=n.$container;return n}function zs(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e?.range;return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=n[i];if(se(s)){if(r.keyIndex++,Ea(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(se(o)&&Ea(o,t))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return ve})}function tr(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Ws(n,t=>zs(t,e))}function _t(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Ws(n,t=>zs(t,e),{includeRoot:!0})}function Ea(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?ld(r,e):!1}function Fl(n){return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const t=e.keys[e.keyIndex];if(!t.startsWith("$")){const r=n[t];if(Ue(r))return e.keyIndex++,{done:!1,value:{reference:r,container:n,property:t}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(Ue(s))return{done:!1,value:{reference:s,container:n,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return ve})}function wd(n,e){const t=n.getTypeMetaData(e.$type),r=e;for(const i of t.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=Gl(i.defaultValue))}function Gl(n){return Array.isArray(n)?[...n.map(Gl)]:n}function w(n){return n.charCodeAt(0)}function Pi(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function ln(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function Ct(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function _d(){throw Error("Internal Error - Should never get here!")}function ka(n){return n.type==="Character"}const Hr=[];for(let n=w("0");n<=w("9");n++)Hr.push(n);const zr=[w("_")].concat(Hr);for(let n=w("a");n<=w("z");n++)zr.push(n);for(let n=w("A");n<=w("Z");n++)zr.push(n);const $a=[w(" "),w("\f"),w(`
1
+ import{a3 as xc,a4 as Sc,t as $l,a5 as Ic,k as Xt,U as Cc,d as Us,g as Qn,h as ae,v as Bs,a6 as xl,T as Nc,N as wc,a7 as he,a8 as Sl,a9 as _c,aa as Lc,Q as Oc,ab as ga,e as bc,ac as Pc,ad as Mc,ae as Me,f as C,af as Vs,V as Ne,X as N,i as Et,r as le,a as D,ag as hi,y as ya,ah as Y,Z as Jt,ai as Dc,a0 as ft}from"./index-BDnjyX2X.js";import{m as $,f as Qt,e as Ks,d as Fc}from"./min-piR6L-qa.js";import{v as z,b as Gc,i as Ye,f as $e}from"./isUndefined-0vq8NMH-.js";import{c as ne}from"./clone-DvlZSVEg.js";var Uc=Object.prototype,Bc=Uc.hasOwnProperty,ke=xc(function(n,e){if(Sc(e)||$l(e)){Ic(e,Xt(e),n);return}for(var t in e)Bc.call(e,t)&&Cc(n,t,e[t])});function Zn(n){for(var e=-1,t=n==null?0:n.length,r=0,i=[];++e<t;){var s=n[e];s&&(i[r++]=s)}return i}function Vc(n,e,t,r){for(var i=-1,s=n==null?0:n.length;++i<s;){var a=n[i];e(r,a,t(a),n)}return r}function Kc(n,e,t,r){return Us(n,function(i,s,a){e(r,i,t(i),a)}),r}function Wc(n,e){return function(t,r){var i=ae(t)?Vc:Kc,s=e?e():{};return i(t,n,Qn(r),s)}}function Q(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:Bs(e),xl(n,e<0?0:e,r)):[]}function qn(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:Bs(e),e=r-e,xl(n,0,e<0?0:e)):[]}function jc(n,e){for(var t=-1,r=n==null?0:n.length;++t<r;)if(!e(n[t],t,n))return!1;return!0}function Hc(n,e){var t=!0;return Us(n,function(r,i,s){return t=!!e(r,i,s),t}),t}function be(n,e,t){var r=ae(n)?jc:Hc;return r(n,Qn(e))}function Pe(n){return n&&n.length?n[0]:void 0}function Ee(n,e){return Nc($(n,e),1)}var zc=Object.prototype,qc=zc.hasOwnProperty,Yc=Wc(function(n,e,t){qc.call(n,t)?n[t].push(e):wc(n,t,[e])}),Xc=Math.max;function de(n,e,t,r){n=$l(n)?n:z(n),t=t?Bs(t):0;var i=n.length;return t<0&&(t=Xc(i+t,0)),he(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&Sl(n,e,t)>-1}function Ta(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return Sl(n,e,i)}var Jc="[object RegExp]";function Qc(n){return _c(n)&&Lc(n)==Jc}var Ra=ga&&ga.isRegExp,Xe=Ra?Oc(Ra):Qc,Zc="Expected a function";function ed(n){if(typeof n!="function")throw new TypeError(Zc);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function pi(n,e){var t=ae(n)?bc:Gc;return t(n,ed(Qn(e)))}function td(n,e){var t;return Us(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function Il(n,e,t){var r=ae(n)?Pc:td;return r(n,Qn(e))}function nd(n,e){return n&&n.length?Mc(n,Qn(e)):[]}function se(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function Ue(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function rd(n){return typeof n=="object"&&n!==null&&typeof n.name=="string"&&typeof n.type=="string"&&typeof n.path=="string"}function Nr(n){return typeof n=="object"&&n!==null&&se(n.container)&&Ue(n.reference)&&typeof n.message=="string"}class Cl{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return se(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function Yn(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function Nl(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function wl(n){return Yn(n)&&typeof n.fullText=="string"}class Z{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new Z(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return ve})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=id(i.value)),s=!0;while(!i.done);return r}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new Z(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?ve:{done:!1,value:e(i)}})}filter(e){return new Z(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return ve})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new Z(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(Wr(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return ve})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new Z(()=>({this:t.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=t.nextFn(r.this);if(!i)if(Wr(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return ve})}head(){const t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new Z(()=>{const t=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new Z(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?ve:this.nextFn(t.state)))}distinct(e){return new Z(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return ve})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function id(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function Wr(n){return!!n&&typeof n[Symbol.iterator]=="function"}const sd=new Z(()=>{},()=>ve),ve=Object.freeze({done:!0,value:void 0});function ee(...n){if(n.length===1){const e=n[0];if(e instanceof Z)return e;if(Wr(e))return new Z(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new Z(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:ve)}return n.length>1?new Z(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<n.length){const t=n[e.collIndex++];Wr(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return ve}):sd}class Ws extends Z{constructor(e,t,r){super(()=>({iterators:r?.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(t(a.value)[Symbol.iterator]()),a}return ve})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var is;(function(n){function e(s){return s.reduce((a,o)=>a+o,0)}n.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}n.product=t;function r(s){return s.reduce((a,o)=>Math.min(a,o))}n.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}n.max=i})(is||(is={}));function ss(n){return new Ws(n,e=>Yn(e)?e.content:[],{includeRoot:!0})}function ad(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function as(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function jr(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}var He;(function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside",n[n.Outside=5]="Outside"})(He||(He={}));function od(n,e){if(n.end.line<e.start.line||n.end.line===e.start.line&&n.end.character<=e.start.character)return He.Before;if(n.start.line>e.end.line||n.start.line===e.end.line&&n.start.character>=e.end.character)return He.After;const t=n.start.line>e.start.line||n.start.line===e.start.line&&n.start.character>=e.start.character,r=n.end.line<e.end.line||n.end.line===e.end.line&&n.end.character<=e.end.character;return t&&r?He.Inside:t?He.OverlapBack:r?He.OverlapFront:He.Outside}function ld(n,e){return od(n,e)>He.After}const ud=/^[\w\p{L}]$/u;function cd(n,e){if(n){const t=dd(n,!0);if(t&&va(t,e))return t;if(wl(n)){const r=n.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=n.content[i];if(va(s,e))return s}}}}function va(n,e){return Nl(n)&&e.includes(n.tokenType.name)}function dd(n,e=!0){for(;n.container;){const t=n.container;let r=t.content.indexOf(n);for(;r>0;){r--;const i=t.content[r];if(e||!i.hidden)return i}n=t}}class _l extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function er(n){throw new Error("Error! The input value was not handled.")}const or="AbstractRule",lr="AbstractType",wi="Condition",Aa="TypeDefinition",_i="ValueLiteral",dn="AbstractElement";function fd(n){return M.isInstance(n,dn)}const ur="ArrayLiteral",cr="ArrayType",fn="BooleanLiteral";function hd(n){return M.isInstance(n,fn)}const hn="Conjunction";function pd(n){return M.isInstance(n,hn)}const pn="Disjunction";function md(n){return M.isInstance(n,pn)}const dr="Grammar",Li="GrammarImport",mn="InferredType";function Ll(n){return M.isInstance(n,mn)}const gn="Interface";function Ol(n){return M.isInstance(n,gn)}const Oi="NamedArgument",yn="Negation";function gd(n){return M.isInstance(n,yn)}const fr="NumberLiteral",hr="Parameter",Tn="ParameterReference";function yd(n){return M.isInstance(n,Tn)}const Rn="ParserRule";function we(n){return M.isInstance(n,Rn)}const pr="ReferenceType",wr="ReturnType";function Td(n){return M.isInstance(n,wr)}const vn="SimpleType";function Rd(n){return M.isInstance(n,vn)}const mr="StringLiteral",Nt="TerminalRule";function kt(n){return M.isInstance(n,Nt)}const An="Type";function bl(n){return M.isInstance(n,An)}const bi="TypeAttribute",gr="UnionType",En="Action";function mi(n){return M.isInstance(n,En)}const kn="Alternatives";function Pl(n){return M.isInstance(n,kn)}const $n="Assignment";function gt(n){return M.isInstance(n,$n)}const xn="CharacterRange";function vd(n){return M.isInstance(n,xn)}const Sn="CrossReference";function js(n){return M.isInstance(n,Sn)}const In="EndOfFile";function Ad(n){return M.isInstance(n,In)}const Cn="Group";function Hs(n){return M.isInstance(n,Cn)}const Nn="Keyword";function yt(n){return M.isInstance(n,Nn)}const wn="NegatedToken";function Ed(n){return M.isInstance(n,wn)}const _n="RegexToken";function kd(n){return M.isInstance(n,_n)}const Ln="RuleCall";function Tt(n){return M.isInstance(n,Ln)}const On="TerminalAlternatives";function $d(n){return M.isInstance(n,On)}const bn="TerminalGroup";function xd(n){return M.isInstance(n,bn)}const Pn="TerminalRuleCall";function Sd(n){return M.isInstance(n,Pn)}const Mn="UnorderedGroup";function Ml(n){return M.isInstance(n,Mn)}const Dn="UntilToken";function Id(n){return M.isInstance(n,Dn)}const Fn="Wildcard";function Cd(n){return M.isInstance(n,Fn)}class Dl extends Cl{getAllTypes(){return[dn,or,lr,En,kn,ur,cr,$n,fn,xn,wi,hn,Sn,pn,In,dr,Li,Cn,mn,gn,Nn,Oi,wn,yn,fr,hr,Tn,Rn,pr,_n,wr,Ln,vn,mr,On,bn,Nt,Pn,An,bi,Aa,gr,Mn,Dn,_i,Fn]}computeIsSubtype(e,t){switch(e){case En:case kn:case $n:case xn:case Sn:case In:case Cn:case Nn:case wn:case _n:case Ln:case On:case bn:case Pn:case Mn:case Dn:case Fn:return this.isSubtype(dn,t);case ur:case fr:case mr:return this.isSubtype(_i,t);case cr:case pr:case vn:case gr:return this.isSubtype(Aa,t);case fn:return this.isSubtype(wi,t)||this.isSubtype(_i,t);case hn:case pn:case yn:case Tn:return this.isSubtype(wi,t);case mn:case gn:case An:return this.isSubtype(lr,t);case Rn:return this.isSubtype(or,t)||this.isSubtype(lr,t);case Nt:return this.isSubtype(or,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return lr;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return or;case"Grammar:usedGrammars":return dr;case"NamedArgument:parameter":case"ParameterReference:parameter":return hr;case"TerminalRuleCall:rule":return Nt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case dn:return{name:dn,properties:[{name:"cardinality"},{name:"lookahead"}]};case ur:return{name:ur,properties:[{name:"elements",defaultValue:[]}]};case cr:return{name:cr,properties:[{name:"elementType"}]};case fn:return{name:fn,properties:[{name:"true",defaultValue:!1}]};case hn:return{name:hn,properties:[{name:"left"},{name:"right"}]};case pn:return{name:pn,properties:[{name:"left"},{name:"right"}]};case dr:return{name:dr,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case Li:return{name:Li,properties:[{name:"path"}]};case mn:return{name:mn,properties:[{name:"name"}]};case gn:return{name:gn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Oi:return{name:Oi,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case yn:return{name:yn,properties:[{name:"value"}]};case fr:return{name:fr,properties:[{name:"value"}]};case hr:return{name:hr,properties:[{name:"name"}]};case Tn:return{name:Tn,properties:[{name:"parameter"}]};case Rn:return{name:Rn,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case pr:return{name:pr,properties:[{name:"referenceType"}]};case wr:return{name:wr,properties:[{name:"name"}]};case vn:return{name:vn,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case mr:return{name:mr,properties:[{name:"value"}]};case Nt:return{name:Nt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case An:return{name:An,properties:[{name:"name"},{name:"type"}]};case bi:return{name:bi,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case gr:return{name:gr,properties:[{name:"types",defaultValue:[]}]};case En:return{name:En,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case kn:return{name:kn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case Sn:return{name:Sn,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case In:return{name:In,properties:[{name:"cardinality"},{name:"lookahead"}]};case Cn:return{name:Cn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case Nn:return{name:Nn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case wn:return{name:wn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case _n:return{name:_n,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case Ln:return{name:Ln,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case On:return{name:On,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case bn:return{name:bn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Pn:return{name:Pn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Mn:return{name:Mn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Dn:return{name:Dn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Fn:return{name:Fn,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const M=new Dl;function Nd(n){for(const[e,t]of Object.entries(n))e.startsWith("$")||(Array.isArray(t)?t.forEach((r,i)=>{se(r)&&(r.$container=n,r.$containerProperty=e,r.$containerIndex=i)}):se(t)&&(t.$container=n,t.$containerProperty=e))}function gi(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function Ze(n){const t=os(n).$document;if(!t)throw new Error("AST node has no document.");return t}function os(n){for(;n.$container;)n=n.$container;return n}function zs(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e?.range;return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=n[i];if(se(s)){if(r.keyIndex++,Ea(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(se(o)&&Ea(o,t))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return ve})}function tr(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Ws(n,t=>zs(t,e))}function _t(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new Ws(n,t=>zs(t,e),{includeRoot:!0})}function Ea(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?ld(r,e):!1}function Fl(n){return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const t=e.keys[e.keyIndex];if(!t.startsWith("$")){const r=n[t];if(Ue(r))return e.keyIndex++,{done:!1,value:{reference:r,container:n,property:t}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(Ue(s))return{done:!1,value:{reference:s,container:n,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return ve})}function wd(n,e){const t=n.getTypeMetaData(e.$type),r=e;for(const i of t.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=Gl(i.defaultValue))}function Gl(n){return Array.isArray(n)?[...n.map(Gl)]:n}function w(n){return n.charCodeAt(0)}function Pi(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function ln(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function Ct(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function _d(){throw Error("Internal Error - Should never get here!")}function ka(n){return n.type==="Character"}const Hr=[];for(let n=w("0");n<=w("9");n++)Hr.push(n);const zr=[w("_")].concat(Hr);for(let n=w("a");n<=w("z");n++)zr.push(n);for(let n=w("A");n<=w("Z");n++)zr.push(n);const $a=[w(" "),w("\f"),w(`
2
2
  `),w("\r"),w(" "),w("\v"),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w("\u2028"),w("\u2029"),w(" "),w(" "),w(" "),w("\uFEFF")],Ld=/[0-9a-fA-F]/,yr=/[0-9]/,Od=/[1-9]/;class Ul{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");const t=this.disjunction();this.consumeChar("/");const r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":ln(r,"global");break;case"i":ln(r,"ignoreCase");break;case"m":ln(r,"multiLine");break;case"u":ln(r,"unicode");break;case"y":ln(r,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:t,loc:this.loc(0)}}disjunction(){const e=[],t=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){const e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let t;switch(this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break}Ct(t);const r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return _d()}quantifier(e=!1){let t;const r=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":const i=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:i,atMost:i};break;case",":let s;this.isDigit()?(s=this.integerIncludingZero(),t={atLeast:i,atMost:s}):t={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&t===void 0)return;Ct(t);break}if(!(e===!0&&t===void 0)&&Ct(t))return this.peekChar(0)==="?"?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t}atom(){let e;const t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Ct(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[w(`
3
3
  `),w("\r"),w("\u2028"),w("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=Hr;break;case"D":e=Hr,t=!0;break;case"s":e=$a;break;case"S":e=$a,t=!0;break;case"w":e=zr;break;case"W":e=zr,t=!0;break}if(Ct(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=w("\f");break;case"n":e=w(`
4
4
  `);break;case"r":e=w("\r");break;case"t":e=w(" ");break;case"v":e=w("\v");break}if(Ct(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:w("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){const e=this.popChar();return{type:"Character",value:w(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
@@ -1,4 +1,4 @@
1
- import{_ as a,s as gi,g as xi,q as Xt,p as di,a as fi,b as pi,l as Nt,I as mi,d as yi,y as bi,F as St,E as Yt,G as Ai,a0 as wi,h as Ci,az as Si,a8 as Wt}from"./mermaid.core-O_GKKNvM.js";import"./index-PxEZ0UyD.js";import{i as _i}from"./init-Gi6I4Gst.js";import{o as ki}from"./ordinal-Cboi1Yqb.js";import{l as zt}from"./linear-D2SSf2wz.js";import"./defaultLocale-C4B-KCzX.js";function Ri(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(n);++s<n;)o[s]=e+s*i;return o}function yt(){var e=ki().unknown(void 0),t=e.domain,i=e.range,s=0,n=1,o,g,m=!1,p=0,k=0,v=.5;delete e.unknown;function C(){var b=t().length,E=n<s,D=E?n:s,P=E?s:n;o=(P-D)/Math.max(1,b-p+k*2),m&&(o=Math.floor(o)),D+=(P-D-o*(b-p))*v,g=o*(1-p),m&&(D=Math.round(D),g=Math.round(g));var I=Ri(b).map(function(y){return D+o*y});return i(E?I.reverse():I)}return e.domain=function(b){return arguments.length?(t(b),C()):t()},e.range=function(b){return arguments.length?([s,n]=b,s=+s,n=+n,C()):[s,n]},e.rangeRound=function(b){return[s,n]=b,s=+s,n=+n,m=!0,C()},e.bandwidth=function(){return g},e.step=function(){return o},e.round=function(b){return arguments.length?(m=!!b,C()):m},e.padding=function(b){return arguments.length?(p=Math.min(1,k=+b),C()):p},e.paddingInner=function(b){return arguments.length?(p=Math.min(1,b),C()):p},e.paddingOuter=function(b){return arguments.length?(k=+b,C()):k},e.align=function(b){return arguments.length?(v=Math.max(0,Math.min(1,b)),C()):v},e.copy=function(){return yt(t(),[s,n]).round(m).paddingInner(p).paddingOuter(k).align(v)},_i.apply(C(),arguments)}var bt=function(){var e=a(function(F,h,u,x){for(u=u||{},x=F.length;x--;u[F[x]]=h);return u},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],n=[1,5],o=[1,6],g=[1,7],m=[1,5,10,12,14,16,18,19,21,23,34,35,36],p=[1,25],k=[1,26],v=[1,28],C=[1,29],b=[1,30],E=[1,31],D=[1,32],P=[1,33],I=[1,34],y=[1,35],_=[1,36],c=[1,37],W=[1,43],z=[1,42],U=[1,47],X=[1,50],l=[1,10,12,14,16,18,19,21,23,34,35,36],L=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],S=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],R=[1,64],$={trace:a(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:a(function(h,u,x,d,w,r,at){var f=r.length-1;switch(w){case 5:d.setOrientation(r[f]);break;case 9:d.setDiagramTitle(r[f].text.trim());break;case 12:d.setLineData({text:"",type:"text"},r[f]);break;case 13:d.setLineData(r[f-1],r[f]);break;case 14:d.setBarData({text:"",type:"text"},r[f]);break;case 15:d.setBarData(r[f-1],r[f]);break;case 16:this.$=r[f].trim(),d.setAccTitle(this.$);break;case 17:case 18:this.$=r[f].trim(),d.setAccDescription(this.$);break;case 19:this.$=r[f-1];break;case 20:this.$=[Number(r[f-2]),...r[f]];break;case 21:this.$=[Number(r[f])];break;case 22:d.setXAxisTitle(r[f]);break;case 23:d.setXAxisTitle(r[f-1]);break;case 24:d.setXAxisTitle({type:"text",text:""});break;case 25:d.setXAxisBand(r[f]);break;case 26:d.setXAxisRangeData(Number(r[f-2]),Number(r[f]));break;case 27:this.$=r[f-1];break;case 28:this.$=[r[f-2],...r[f]];break;case 29:this.$=[r[f]];break;case 30:d.setYAxisTitle(r[f]);break;case 31:d.setYAxisTitle(r[f-1]);break;case 32:d.setYAxisTitle({type:"text",text:""});break;case 33:d.setYAxisRangeData(Number(r[f-2]),Number(r[f]));break;case 37:this.$={text:r[f],type:"text"};break;case 38:this.$={text:r[f],type:"text"};break;case 39:this.$={text:r[f],type:"markdown"};break;case 40:this.$=r[f];break;case 41:this.$=r[f-1]+""+r[f];break}},"anonymous"),table:[e(t,i,{3:1,4:2,7:4,5:s,34:n,35:o,36:g}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,34:n,35:o,36:g}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:o,36:g}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(m,[2,34]),e(m,[2,35]),e(m,[2,36]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,34:n,35:o,36:g}),{1:[2,3]},e(m,[2,5]),e(t,[2,7],{4:22,34:n,35:o,36:g}),{11:23,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{11:39,13:38,24:W,27:z,29:40,30:41,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{11:45,15:44,27:U,33:46,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{11:49,17:48,24:X,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{11:52,17:51,24:X,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{20:[1,53]},{22:[1,54]},e(l,[2,18]),{1:[2,2]},e(l,[2,8]),e(l,[2,9]),e(L,[2,37],{40:55,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c}),e(L,[2,38]),e(L,[2,39]),e(S,[2,40]),e(S,[2,42]),e(S,[2,43]),e(S,[2,44]),e(S,[2,45]),e(S,[2,46]),e(S,[2,47]),e(S,[2,48]),e(S,[2,49]),e(S,[2,50]),e(S,[2,51]),e(l,[2,10]),e(l,[2,22],{30:41,29:56,24:W,27:z}),e(l,[2,24]),e(l,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},e(l,[2,11]),e(l,[2,30],{33:60,27:U}),e(l,[2,32]),{31:[1,61]},e(l,[2,12]),{17:62,24:X},{25:63,27:R},e(l,[2,14]),{17:65,24:X},e(l,[2,16]),e(l,[2,17]),e(S,[2,41]),e(l,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(l,[2,31]),{27:[1,69]},e(l,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(l,[2,15]),e(l,[2,26]),e(l,[2,27]),{11:59,32:72,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},e(l,[2,33]),e(l,[2,19]),{25:73,27:R},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:a(function(h,u){if(u.recoverable)this.trace(h);else{var x=new Error(h);throw x.hash=u,x}},"parseError"),parse:a(function(h){var u=this,x=[0],d=[],w=[null],r=[],at=this.table,f="",lt=0,It=0,hi=2,Mt=1,li=r.slice.call(arguments,1),T=Object.create(this.lexer),Y={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(Y.yy[dt]=this.yy[dt]);T.setInput(h,Y.yy),Y.yy.lexer=T,Y.yy.parser=this,typeof T.yylloc>"u"&&(T.yylloc={});var ft=T.yylloc;r.push(ft);var ci=T.options&&T.options.ranges;typeof Y.yy.parseError=="function"?this.parseError=Y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ui(V){x.length=x.length-2*V,w.length=w.length-V,r.length=r.length-V}a(ui,"popStack");function Vt(){var V;return V=d.pop()||T.lex()||Mt,typeof V!="number"&&(V instanceof Array&&(d=V,V=d.pop()),V=u.symbols_[V]||V),V}a(Vt,"lex");for(var M,H,B,pt,q={},ct,O,Bt,ut;;){if(H=x[x.length-1],this.defaultActions[H]?B=this.defaultActions[H]:((M===null||typeof M>"u")&&(M=Vt()),B=at[H]&&at[H][M]),typeof B>"u"||!B.length||!B[0]){var mt="";ut=[];for(ct in at[H])this.terminals_[ct]&&ct>hi&&ut.push("'"+this.terminals_[ct]+"'");T.showPosition?mt="Parse error on line "+(lt+1)+`:
1
+ import{_ as a,s as gi,g as xi,q as Xt,p as di,a as fi,b as pi,l as Nt,I as mi,d as yi,y as bi,F as St,E as Yt,G as Ai,a0 as wi,h as Ci,az as Si,a8 as Wt}from"./mermaid.core-B8WZioq4.js";import"./index-BDnjyX2X.js";import{i as _i}from"./init-Gi6I4Gst.js";import{o as ki}from"./ordinal-Cboi1Yqb.js";import{l as zt}from"./linear-BuZdgMYG.js";import"./defaultLocale-C4B-KCzX.js";function Ri(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(n);++s<n;)o[s]=e+s*i;return o}function yt(){var e=ki().unknown(void 0),t=e.domain,i=e.range,s=0,n=1,o,g,m=!1,p=0,k=0,v=.5;delete e.unknown;function C(){var b=t().length,E=n<s,D=E?n:s,P=E?s:n;o=(P-D)/Math.max(1,b-p+k*2),m&&(o=Math.floor(o)),D+=(P-D-o*(b-p))*v,g=o*(1-p),m&&(D=Math.round(D),g=Math.round(g));var I=Ri(b).map(function(y){return D+o*y});return i(E?I.reverse():I)}return e.domain=function(b){return arguments.length?(t(b),C()):t()},e.range=function(b){return arguments.length?([s,n]=b,s=+s,n=+n,C()):[s,n]},e.rangeRound=function(b){return[s,n]=b,s=+s,n=+n,m=!0,C()},e.bandwidth=function(){return g},e.step=function(){return o},e.round=function(b){return arguments.length?(m=!!b,C()):m},e.padding=function(b){return arguments.length?(p=Math.min(1,k=+b),C()):p},e.paddingInner=function(b){return arguments.length?(p=Math.min(1,b),C()):p},e.paddingOuter=function(b){return arguments.length?(k=+b,C()):k},e.align=function(b){return arguments.length?(v=Math.max(0,Math.min(1,b)),C()):v},e.copy=function(){return yt(t(),[s,n]).round(m).paddingInner(p).paddingOuter(k).align(v)},_i.apply(C(),arguments)}var bt=function(){var e=a(function(F,h,u,x){for(u=u||{},x=F.length;x--;u[F[x]]=h);return u},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],n=[1,5],o=[1,6],g=[1,7],m=[1,5,10,12,14,16,18,19,21,23,34,35,36],p=[1,25],k=[1,26],v=[1,28],C=[1,29],b=[1,30],E=[1,31],D=[1,32],P=[1,33],I=[1,34],y=[1,35],_=[1,36],c=[1,37],W=[1,43],z=[1,42],U=[1,47],X=[1,50],l=[1,10,12,14,16,18,19,21,23,34,35,36],L=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],S=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],R=[1,64],$={trace:a(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:a(function(h,u,x,d,w,r,at){var f=r.length-1;switch(w){case 5:d.setOrientation(r[f]);break;case 9:d.setDiagramTitle(r[f].text.trim());break;case 12:d.setLineData({text:"",type:"text"},r[f]);break;case 13:d.setLineData(r[f-1],r[f]);break;case 14:d.setBarData({text:"",type:"text"},r[f]);break;case 15:d.setBarData(r[f-1],r[f]);break;case 16:this.$=r[f].trim(),d.setAccTitle(this.$);break;case 17:case 18:this.$=r[f].trim(),d.setAccDescription(this.$);break;case 19:this.$=r[f-1];break;case 20:this.$=[Number(r[f-2]),...r[f]];break;case 21:this.$=[Number(r[f])];break;case 22:d.setXAxisTitle(r[f]);break;case 23:d.setXAxisTitle(r[f-1]);break;case 24:d.setXAxisTitle({type:"text",text:""});break;case 25:d.setXAxisBand(r[f]);break;case 26:d.setXAxisRangeData(Number(r[f-2]),Number(r[f]));break;case 27:this.$=r[f-1];break;case 28:this.$=[r[f-2],...r[f]];break;case 29:this.$=[r[f]];break;case 30:d.setYAxisTitle(r[f]);break;case 31:d.setYAxisTitle(r[f-1]);break;case 32:d.setYAxisTitle({type:"text",text:""});break;case 33:d.setYAxisRangeData(Number(r[f-2]),Number(r[f]));break;case 37:this.$={text:r[f],type:"text"};break;case 38:this.$={text:r[f],type:"text"};break;case 39:this.$={text:r[f],type:"markdown"};break;case 40:this.$=r[f];break;case 41:this.$=r[f-1]+""+r[f];break}},"anonymous"),table:[e(t,i,{3:1,4:2,7:4,5:s,34:n,35:o,36:g}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,34:n,35:o,36:g}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:o,36:g}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(m,[2,34]),e(m,[2,35]),e(m,[2,36]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,34:n,35:o,36:g}),{1:[2,3]},e(m,[2,5]),e(t,[2,7],{4:22,34:n,35:o,36:g}),{11:23,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{11:39,13:38,24:W,27:z,29:40,30:41,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{11:45,15:44,27:U,33:46,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{11:49,17:48,24:X,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{11:52,17:51,24:X,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},{20:[1,53]},{22:[1,54]},e(l,[2,18]),{1:[2,2]},e(l,[2,8]),e(l,[2,9]),e(L,[2,37],{40:55,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c}),e(L,[2,38]),e(L,[2,39]),e(S,[2,40]),e(S,[2,42]),e(S,[2,43]),e(S,[2,44]),e(S,[2,45]),e(S,[2,46]),e(S,[2,47]),e(S,[2,48]),e(S,[2,49]),e(S,[2,50]),e(S,[2,51]),e(l,[2,10]),e(l,[2,22],{30:41,29:56,24:W,27:z}),e(l,[2,24]),e(l,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},e(l,[2,11]),e(l,[2,30],{33:60,27:U}),e(l,[2,32]),{31:[1,61]},e(l,[2,12]),{17:62,24:X},{25:63,27:R},e(l,[2,14]),{17:65,24:X},e(l,[2,16]),e(l,[2,17]),e(S,[2,41]),e(l,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(l,[2,31]),{27:[1,69]},e(l,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(l,[2,15]),e(l,[2,26]),e(l,[2,27]),{11:59,32:72,37:24,38:p,39:k,40:27,41:v,42:C,43:b,44:E,45:D,46:P,47:I,48:y,49:_,50:c},e(l,[2,33]),e(l,[2,19]),{25:73,27:R},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:a(function(h,u){if(u.recoverable)this.trace(h);else{var x=new Error(h);throw x.hash=u,x}},"parseError"),parse:a(function(h){var u=this,x=[0],d=[],w=[null],r=[],at=this.table,f="",lt=0,It=0,hi=2,Mt=1,li=r.slice.call(arguments,1),T=Object.create(this.lexer),Y={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(Y.yy[dt]=this.yy[dt]);T.setInput(h,Y.yy),Y.yy.lexer=T,Y.yy.parser=this,typeof T.yylloc>"u"&&(T.yylloc={});var ft=T.yylloc;r.push(ft);var ci=T.options&&T.options.ranges;typeof Y.yy.parseError=="function"?this.parseError=Y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ui(V){x.length=x.length-2*V,w.length=w.length-V,r.length=r.length-V}a(ui,"popStack");function Vt(){var V;return V=d.pop()||T.lex()||Mt,typeof V!="number"&&(V instanceof Array&&(d=V,V=d.pop()),V=u.symbols_[V]||V),V}a(Vt,"lex");for(var M,H,B,pt,q={},ct,O,Bt,ut;;){if(H=x[x.length-1],this.defaultActions[H]?B=this.defaultActions[H]:((M===null||typeof M>"u")&&(M=Vt()),B=at[H]&&at[H][M]),typeof B>"u"||!B.length||!B[0]){var mt="";ut=[];for(ct in at[H])this.terminals_[ct]&&ct>hi&&ut.push("'"+this.terminals_[ct]+"'");T.showPosition?mt="Parse error on line "+(lt+1)+`:
2
2
  `+T.showPosition()+`
3
3
  Expecting `+ut.join(", ")+", got '"+(this.terminals_[M]||M)+"'":mt="Parse error on line "+(lt+1)+": Unexpected "+(M==Mt?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(mt,{text:T.match,token:this.terminals_[M]||M,line:T.yylineno,loc:ft,expected:ut})}if(B[0]instanceof Array&&B.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+M);switch(B[0]){case 1:x.push(M),w.push(T.yytext),r.push(T.yylloc),x.push(B[1]),M=null,It=T.yyleng,f=T.yytext,lt=T.yylineno,ft=T.yylloc;break;case 2:if(O=this.productions_[B[1]][1],q.$=w[w.length-O],q._$={first_line:r[r.length-(O||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(O||1)].first_column,last_column:r[r.length-1].last_column},ci&&(q._$.range=[r[r.length-(O||1)].range[0],r[r.length-1].range[1]]),pt=this.performAction.apply(q,[f,It,lt,Y.yy,B[1],w,r].concat(li)),typeof pt<"u")return pt;O&&(x=x.slice(0,-1*O*2),w=w.slice(0,-1*O),r=r.slice(0,-1*O)),x.push(this.productions_[B[1]][0]),w.push(q.$),r.push(q._$),Bt=at[x[x.length-2]][x[x.length-1]],x.push(Bt);break;case 3:return!0}}return!0},"parse")},Et=function(){var F={EOF:1,parseError:a(function(u,x){if(this.yy.parser)this.yy.parser.parseError(u,x);else throw new Error(u)},"parseError"),setInput:a(function(h,u){return this.yy=u||this.yy||{},this._input=h,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:a(function(){var h=this._input[0];this.yytext+=h,this.yyleng++,this.offset++,this.match+=h,this.matched+=h;var u=h.match(/(?:\r\n?|\n).*/g);return u?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),h},"input"),unput:a(function(h){var u=h.length,x=h.split(/(?:\r\n?|\n)/g);this._input=h+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-u),this.offset-=u;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),x.length-1&&(this.yylineno-=x.length-1);var w=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:x?(x.length===d.length?this.yylloc.first_column:0)+d[d.length-x.length].length-x[0].length:this.yylloc.first_column-u},this.options.ranges&&(this.yylloc.range=[w[0],w[0]+this.yyleng-u]),this.yyleng=this.yytext.length,this},"unput"),more:a(function(){return this._more=!0,this},"more"),reject:a(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:a(function(h){this.unput(this.match.slice(h))},"less"),pastInput:a(function(){var h=this.matched.substr(0,this.matched.length-this.match.length);return(h.length>20?"...":"")+h.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:a(function(){var h=this.match;return h.length<20&&(h+=this._input.substr(0,20-h.length)),(h.substr(0,20)+(h.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:a(function(){var h=this.pastInput(),u=new Array(h.length+1).join("-");return h+this.upcomingInput()+`
package/dist/index.html CHANGED
@@ -12,8 +12,8 @@
12
12
  padding: 0;
13
13
  }
14
14
  </style>
15
- <script type="module" crossorigin src="/assets/index-PxEZ0UyD.js"></script>
16
- <link rel="stylesheet" crossorigin href="/assets/index-DfuXfoTh.css">
15
+ <script type="module" crossorigin src="/assets/index-BDnjyX2X.js"></script>
16
+ <link rel="stylesheet" crossorigin href="/assets/index-DkUikjP8.css">
17
17
  </head>
18
18
  <body>
19
19
  <div id="root" class="h-screen w-screen"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@langgraph-js/ui",
3
- "version": "5.0.2",
3
+ "version": "5.3.0",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/",
@@ -12,11 +12,11 @@
12
12
  "main": "./dist/react/src/index.js",
13
13
  "type": "module",
14
14
  "dependencies": {
15
- "@langgraph-js/open-smith": "^2.0.0",
15
+ "@langgraph-js/open-smith": "^2.3.0",
16
16
  "@tailwindcss/vite": "^4.1.14",
17
17
  "@vitejs/plugin-basic-ssl": "^2.1.0",
18
18
  "@vitejs/plugin-react": "^5.0.4",
19
- "ai-artifacts": "^1.2.2",
19
+ "ai-artifacts": "^1.3.1",
20
20
  "next-themes": "^0.4.6",
21
21
  "sonner": "^2.0.7",
22
22
  "@langchain/core": "^1.0.2",
@@ -54,7 +54,7 @@
54
54
  "tailwindcss": "^4.1.14",
55
55
  "tw-animate-css": "^1.4.0",
56
56
  "zod": "^4",
57
- "@langgraph-js/sdk": "3.5.2"
57
+ "@langgraph-js/sdk": "3.6.0"
58
58
  },
59
59
  "scripts": {
60
60
  "dev": "vite",
@@ -1,12 +1,23 @@
1
- import { Plugin } from "vite";
1
+ import { loadEnv, Plugin } from "vite";
2
2
  import { Readable } from "stream";
3
- import { app } from "@langgraph-js/open-smith/dist/app.js";
4
3
  import appendLLMRouter from "../server/index";
4
+ import { Hono } from "hono";
5
5
  export const OpenSmithPlugin = () =>
6
6
  ({
7
7
  name: "open-smith",
8
- configureServer(server) {
9
- console.log("open-smith is open on http://localhost:4173/api/open-smith/ui/index.html");
8
+ async configureServer(server) {
9
+ if (server.config.mode === "production") return;
10
+ const { app: OpenSmithApp } = await import("@langgraph-js/open-smith/dist/app.js");
11
+ console.log(`open-smith is open on http://localhost:${server.config.server.port}/api/open-smith/ui/index.html`);
12
+ const env = loadEnv(server.config.mode, process.cwd(), "LANGSMITH");
13
+ if (!env.LANGSMITH_TRACING) {
14
+ console.log(`
15
+ Please add the following environment variables to your project to record the tracing data:
16
+
17
+ LANGSMITH_TRACING=true
18
+ LANGSMITH_ENDPOINT= http://localhost:${server.config.server.port}/api/open-smith
19
+ `);
20
+ }
10
21
  server.middlewares.use("/api/open-smith", async (req, res, next) => {
11
22
  try {
12
23
  const body = Readable.toWeb(req);
@@ -20,6 +31,8 @@ export const OpenSmithPlugin = () =>
20
31
  });
21
32
 
22
33
  // Proxy the request to app.basePath handler
34
+ const app = new Hono();
35
+ app.route("/", OpenSmithApp);
23
36
  const response = await appendLLMRouter(app).basePath("/api/open-smith").fetch(fetchRequest);
24
37
 
25
38
  // Set status and headers
@@ -1,16 +1,43 @@
1
1
  "use client";
2
- import { useEffect } from "react";
3
- import { setArtifactStore, artifactStore, ArtifactType } from "ai-artifacts";
2
+ import { useEffect, useRef } from "react";
3
+ import { setArtifactStore, eventCenter, ArtifactType } from "ai-artifacts";
4
4
  import { useChat } from "@langgraph-js/sdk/react";
5
5
 
6
- export const ArtifactViewer: React.FC = () => {
6
+ export interface ArtifactViewerProps {
7
+ onSendBackToAI: (data: { storeId: string; groupId: string; versionId: string; file: string; error: string }) => void;
8
+ }
9
+
10
+ export const ArtifactViewer: React.FC<ArtifactViewerProps> = ({ onSendBackToAI }) => {
7
11
  const { artifacts, currentArtifactId } = useChat();
12
+ const artifactsRef = useRef(artifacts);
13
+
14
+ useEffect(() => {
15
+ artifactsRef.current = artifacts;
16
+ }, [artifacts]);
17
+
8
18
  useEffect(() => {
9
19
  setArtifactStore({
10
20
  artifacts: { default: artifacts as ArtifactType[] },
11
21
  });
12
22
  }, [artifacts]);
13
- return <ai-artifacts store-id="default" group-id={currentArtifactId?.[0] || ""} version-id={currentArtifactId?.[1] || ""}></ai-artifacts>;
23
+
24
+ useEffect(() => {
25
+ const handleSendBackToAI = (data: any) => {
26
+ onSendBackToAI(data);
27
+ };
28
+ eventCenter.on("sendBackToAI", handleSendBackToAI);
29
+ return () => {
30
+ eventCenter.off("sendBackToAI", handleSendBackToAI);
31
+ };
32
+ }, []);
33
+ return (
34
+ <ai-artifacts
35
+ src="https://bafybeifi2u3a56o6t46fi5dsti3ikrmv42yywvzxbxi3akeu73zpwuu45q.pinme.dev"
36
+ store-id="default"
37
+ group-id={currentArtifactId?.[0] || ""}
38
+ version-id={currentArtifactId?.[1] || ""}
39
+ ></ai-artifacts>
40
+ );
14
41
  };
15
42
 
16
43
  declare module "react" {
package/src/chat/Chat.tsx CHANGED
@@ -36,6 +36,18 @@ const ChatMessages: React.FC = () => {
36
36
  messagesEndRef.current?.scrollIntoView({ behavior: "instant" });
37
37
  };
38
38
 
39
+ useEffect(() => {
40
+ const container = MessageContainer.current;
41
+ if (!container) return;
42
+ const observer = new ResizeObserver(() => {
43
+ if (container.scrollHeight - container.scrollTop - container.clientHeight < 100) {
44
+ scrollToBottom();
45
+ }
46
+ });
47
+ observer.observe(container);
48
+ return () => observer.disconnect();
49
+ }, []);
50
+
39
51
  useEffect(() => {
40
52
  if (renderMessages.length > 0 && MessageContainer.current) {
41
53
  console.log(renderMessages);
@@ -125,25 +137,38 @@ const ChatInput: React.FC = () => {
125
137
  };
126
138
 
127
139
  const [usingSingleMode, setUsingSingleMode] = useState(true);
140
+ const textareaRef = useRef<HTMLTextAreaElement>(null);
141
+
128
142
  useEffect(() => {
129
- if (mediaUrls.length > 0) {
143
+ if (mediaUrls.length > 0 || (userInput && (userInput.length > 50 || userInput.includes("\n")))) {
130
144
  setUsingSingleMode(false);
131
145
  } else {
132
146
  setUsingSingleMode(true);
133
147
  }
134
- }, [renderMessages.length, mediaUrls.length]);
148
+ }, [renderMessages.length, mediaUrls.length, userInput]);
149
+
150
+ useEffect(() => {
151
+ if (textareaRef.current) {
152
+ textareaRef.current.style.height = "auto";
153
+ if (!usingSingleMode) {
154
+ textareaRef.current.style.height = Math.min(textareaRef.current.scrollHeight, 96) + "px";
155
+ }
156
+ }
157
+ }, [userInput, usingSingleMode]);
158
+
135
159
  return (
136
160
  <div className=" pb-8 ">
137
- <div className={"bg-white border border-gray-200 shadow-lg shadow-gray-200 " + (usingSingleMode ? "rounded-full px-3 py-3" : "rounded-4xl px-4 py-3")}>
161
+ <div className={"bg-white border border-gray-200 shadow-lg shadow-gray-200 " + (usingSingleMode ? "rounded-full px-3 py-3" : "rounded-[2rem] px-4 py-3")}>
138
162
  {!usingSingleMode && mediaUrls.length > 0 && (
139
163
  <div className="flex items-center justify-between mb-2 border-b border-gray-200 pb-2">
140
164
  <FileList />
141
165
  </div>
142
166
  )}
143
- <div className={`flex gap-3 items-center`}>
167
+ <div className={`flex gap-3 ${usingSingleMode ? "items-center" : "items-end"}`}>
144
168
  <UploadButton />
145
169
  <textarea
146
- className="flex-1 text-sm resize-none active:outline-none focus:outline-none"
170
+ ref={textareaRef}
171
+ className={`flex-1 text-sm resize-none active:outline-none focus:outline-none ${usingSingleMode ? "" : "py-2"}`}
147
172
  rows={1}
148
173
  value={userInput}
149
174
  onChange={(e) => setUserInput(e.target.value)}
@@ -207,7 +232,7 @@ const Chat: React.FC = () => {
207
232
  const [isModelTesterOpen, setIsModelTesterOpen] = useState(false);
208
233
  const { showHistory, toggleHistoryVisible, showGraph, toggleGraphVisible, renderMessages, setTools, client } = useChat();
209
234
  const { extraParams, setExtraParams } = useExtraParams();
210
- const { showArtifact, setShowArtifact } = useChat();
235
+ const { showArtifact, sendMessage } = useChat();
211
236
  const { openMonitor } = useMonitor();
212
237
  useEffect(() => {
213
238
  setTools([show_form, create_artifacts, __default_tool__]);
@@ -219,7 +244,7 @@ const Chat: React.FC = () => {
219
244
  <HistoryList onClose={() => toggleHistoryVisible()} />
220
245
  </div>
221
246
  )}
222
- <section className="flex-1 flex flex-col overflow-auto items-center ">
247
+ <section className="flex-1 flex flex-col overflow-hidden items-center ">
223
248
  <header className="flex items-center gap-2 px-3 py-2 justify-end h-16 mt-4 max-w-6xl w-full">
224
249
  <button
225
250
  className="px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-200 cursor-pointer rounded-xl hover:bg-gray-100 focus:outline-none transition-colors flex items-center gap-2"
@@ -285,7 +310,7 @@ const Chat: React.FC = () => {
285
310
  控制台
286
311
  </button>
287
312
  </header>
288
- <main className="flex-1 overflow-y-auto overflow-x-hidden max-w-6xl w-full h-full flex flex-col">
313
+ <main className="flex-1 overflow-hidden max-w-6xl w-full h-full flex flex-col">
289
314
  <ChatMessages />
290
315
  <FileListProvider>
291
316
  <ChatInput />
@@ -305,7 +330,31 @@ const Chat: React.FC = () => {
305
330
  {(showGraph || showArtifact) && (
306
331
  <div className="overflow-hidden flex-1">
307
332
  {showGraph && <GraphPanel />}
308
- {showArtifact && <ArtifactViewer />}
333
+ {showArtifact && (
334
+ <ArtifactViewer
335
+ onSendBackToAI={(errorData) => {
336
+ sendMessage(
337
+ [
338
+ {
339
+ type: "human",
340
+ content: [
341
+ {
342
+ type: "text",
343
+ text: `
344
+ error react file:
345
+ - filename: ${errorData.groupId}
346
+ - version: ${errorData.versionId}
347
+
348
+ ${errorData.error}`,
349
+ },
350
+ ],
351
+ },
352
+ ],
353
+ { extraParams }
354
+ );
355
+ }}
356
+ />
357
+ )}
309
358
  </div>
310
359
  )}
311
360
  </div>
@@ -1,7 +1,8 @@
1
1
  import { RenderMessage } from "@langgraph-js/sdk";
2
2
  import { useChat } from "@langgraph-js/sdk/react";
3
- import React from "react";
4
- import { RotateCcw, Undo } from "lucide-react";
3
+ import React, { useState } from "react";
4
+ import { RotateCcw, Undo, ChevronDown, ChevronUp, Edit3, Check, X } from "lucide-react";
5
+ import { useExtraParams } from "../context/ExtraParamsContext";
5
6
 
6
7
  interface MessageHumanProps {
7
8
  message: RenderMessage;
@@ -54,9 +55,76 @@ const parseFileTags = (text: string): any[] => {
54
55
 
55
56
  const MessageHuman: React.FC<MessageHumanProps> = ({ message, content }) => {
56
57
  const chat = useChat();
58
+ const { extraParams } = useExtraParams();
59
+ const [isExpanded, setIsExpanded] = useState(false);
60
+ const [isEditing, setIsEditing] = useState(false);
61
+ const [editedContent, setEditedContent] = useState<string>("");
62
+
63
+ // 获取纯文本内容用于编辑
64
+ const getTextContent = (content: string | any[]): string => {
65
+ if (typeof content === "string") {
66
+ return content;
67
+ }
68
+ if (Array.isArray(content)) {
69
+ return content
70
+ .filter((item) => item.type === "text" && typeof item.text === "string")
71
+ .map((item) => item.text)
72
+ .join("");
73
+ }
74
+ return "";
75
+ };
76
+
77
+ // 处理双击进入编辑模式
78
+ const handleDoubleClick = () => {
79
+ setIsEditing(true);
80
+ setEditedContent(getTextContent(content));
81
+ };
82
+
83
+ // 确认编辑并调用 revertChatTo + sendMessage
84
+ const handleEditConfirm = async () => {
85
+ if (editedContent.trim() !== getTextContent(content)) {
86
+ await chat.revertChatTo(message.id!, false, { includeMessageId: true }); // 先回退到该消息
87
+ await chat.sendMessage([{ type: "human", content: editedContent }], { extraParams }); // 发送编辑的内容
88
+ }
89
+ setIsEditing(false);
90
+ setEditedContent("");
91
+ };
92
+
93
+ // 取消编辑
94
+ const handleEditCancel = () => {
95
+ setIsEditing(false);
96
+ setEditedContent("");
97
+ };
98
+
57
99
  const renderContent = () => {
100
+ if (isEditing) {
101
+ return (
102
+ <div className="flex flex-col gap-2">
103
+ <textarea
104
+ value={editedContent}
105
+ onChange={(e) => setEditedContent(e.target.value)}
106
+ className="w-full bg-transparent text-white rounded px-3 py-2 min-h-[120px] resize-none border-2 border-blue-400 outline-none"
107
+ placeholder="编辑消息内容..."
108
+ autoFocus
109
+ />
110
+ <div className="flex gap-2 justify-end">
111
+ <button onClick={handleEditConfirm} className="px-3 py-1 bg-green-600 text-white rounded text-sm hover:bg-green-700 transition-colors" title="确认编辑">
112
+ <Check size={14} />
113
+ </button>
114
+ <button onClick={handleEditCancel} className="px-3 py-1 bg-gray-600 text-white rounded text-sm hover:bg-gray-700 transition-colors" title="取消编辑">
115
+ <X size={14} />
116
+ </button>
117
+ </div>
118
+ </div>
119
+ );
120
+ }
121
+
58
122
  if (typeof content === "string") {
59
- return <div className="text-white whitespace-pre-wrap">{content}</div>;
123
+ return (
124
+ <div className="text-white whitespace-pre-wrap cursor-pointer" onDoubleClick={handleDoubleClick} title="双击编辑">
125
+ {content}
126
+ </div>
127
+ );
60
128
  }
61
129
 
62
130
  if (Array.isArray(content)) {
@@ -78,7 +146,7 @@ const MessageHuman: React.FC<MessageHumanProps> = ({ message, content }) => {
78
146
  switch (item.type) {
79
147
  case "text":
80
148
  return (
81
- <div key={index} className="text-white whitespace-pre-wrap">
149
+ <div key={index} className="text-white whitespace-pre-wrap cursor-pointer" onDoubleClick={handleDoubleClick} title="双击编辑">
82
150
  {item.text}
83
151
  </div>
84
152
  );
@@ -129,16 +197,23 @@ const MessageHuman: React.FC<MessageHumanProps> = ({ message, content }) => {
129
197
  };
130
198
 
131
199
  return (
132
- <div className="flex flex-row w-full justify-end group/message-human">
200
+ <div className="flex flex-row w-full justify-end group/message-human ">
133
201
  <div className="hidden group-hover/message-human:flex gap-2 mx-2">
134
202
  <button onClick={() => chat.revertChatTo(message.id!, true)} className="p-2 text-gray-700 transition-colors cursor-pointer" title="重试">
135
203
  <RotateCcw size={16} />
136
204
  </button>
137
- <button onClick={() => chat.revertChatTo(message.id!, false)} className="p-2 text-gray-700 transition-colors cursor-pointer" title="回退">
138
- <Undo size={16} />
205
+ <button onClick={handleDoubleClick} className="p-2 text-gray-700 transition-colors cursor-pointer" title="编辑">
206
+ <Edit3 size={16} />
139
207
  </button>
208
+ <button onClick={() => setIsExpanded(!isExpanded)} className="p-2 text-gray-700 transition-colors cursor-pointer" title={isExpanded ? "收起" : "展开"}>
209
+ {isExpanded ? <ChevronUp size={16} /> : <ChevronDown size={16} />}
210
+ </button>
211
+ </div>
212
+ <div
213
+ className={`flex flex-col w-fit bg-blue-500/90 rounded-2xl text-white px-4 py-3 max-w-[80%] ${isExpanded || isEditing ? "" : "max-h-40 overflow-y-auto"} ${isEditing ? "w-full h-52" : ""}`}
214
+ >
215
+ {renderContent()}
140
216
  </div>
141
- <div className="flex flex-col w-fit bg-blue-500/90 rounded-2xl text-white px-4 py-3 max-w-[80%]">{renderContent()}</div>
142
217
  </div>
143
218
  );
144
219
  };
@@ -16,7 +16,7 @@ interface LoginSettingsData {
16
16
  const initialLoginSettings: LoginSettingsData = {
17
17
  headers: [{ key: "authorization", value: "" }],
18
18
  withCredentials: false,
19
- apiUrl: "/api-langgraph",
19
+ apiUrl: "/api/langgraph",
20
20
  defaultAgent: "agent",
21
21
  };
22
22
 
package/vite.config.ts CHANGED
@@ -2,12 +2,13 @@ import react from "@vitejs/plugin-react";
2
2
  import { defineConfig, Plugin } from "vite";
3
3
  import basicSsl from "@vitejs/plugin-basic-ssl";
4
4
  import tailwindcss from "@tailwindcss/vite";
5
+ import { OpenSmithPlugin } from "./src/OpenSmithPlugin";
5
6
 
6
7
  // https://vitejs.dev/config/
7
8
  export default defineConfig(({ mode, command }) => {
8
9
  const isHttps = mode === "https";
9
10
  return {
10
- plugins: [react(), tailwindcss(), isHttps ? basicSsl() : undefined],
11
+ plugins: [react(), tailwindcss(), isHttps ? basicSsl() : undefined, OpenSmithPlugin()],
11
12
  resolve: {
12
13
  alias: {
13
14
  "@langgraph-js/sdk": new URL("../langgraph-client/src", import.meta.url).pathname,
@@ -1 +0,0 @@
1
- import{U as a,C as n}from"./mermaid.core-O_GKKNvM.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-B4BG7PRW-D2vAbQ4J.js";import{_ as i}from"./mermaid.core-O_GKKNvM.js";import"./index-PxEZ0UyD.js";import"./chunk-FMBD7UC4-wGvjdTUw.js";import"./chunk-55IACEB6-Bz31tGM4.js";import"./chunk-QN33PNHL-ZGhQA1FA.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-B4BG7PRW-D2vAbQ4J.js";import{_ as i}from"./mermaid.core-O_GKKNvM.js";import"./index-PxEZ0UyD.js";import"./chunk-FMBD7UC4-wGvjdTUw.js";import"./chunk-55IACEB6-Bz31tGM4.js";import"./chunk-QN33PNHL-ZGhQA1FA.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1 +0,0 @@
1
- import{b as r}from"./index-PxEZ0UyD.js";var e=4;function a(o){return r(o,e)}export{a as c};